Interrupt List Release 61 Last change 16jul00
Copyright (c) 1989-1999,2000 Ralf Brown
Table of Contents: by Order by Category
Table of Contents by Order
FILELIST - Please redistribute the following files unmodified as a group, in a quartet of
CONTACT_INFO - If you notice any mistakes or omissions, please let me know! It is only with
Note - See INTERRUP.1ST for the key to system abbreviations and a list of the
DISCLAIMER - DISCLAIMER: THIS MATERIAL IS PROVIDED "AS IS". I verify the information
FLAGS - The use of -> instead of = signifies that the indicated register or register
CATEGORIES - The ninth column of the divider line preceding an entry usually contains a
00 - INT 00 C - CPU-generated - DIVIDE ERROR
00 - INT 00 - Zenith - ROM DEBUGGER
01 - INT 01 C - CPU-generated - SINGLE STEP
01 - INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
02 - INT 02 C - external hardware - NON-MASKABLE INTERRUPT
02----SI0714 - INT 02 U - STB RAPIDMAP.SYS - ???
03 - INT 03 C - CPU-generated - BREAKPOINT
03 - INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
03 - INT 03 - Realia COBOL - DEBUGGER SUPPORT
03 - INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
03 - INT 03 - DTown Utilities - POP UP
030000 - INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET Soft-ICE VERSION
0301 - INT 03 - Soft-ICE - BACK DOOR COMMANDS - ???
030900 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
030902 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - POPUP & START A DEBUG SESSION
030903 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
030907 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
03090A - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
03090B - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
030910 - INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
030911 - INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
030912 - INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
030913 - INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
030914 - INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
030918 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
0310 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
0311 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
03130C - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
03130E - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
031313 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
030900 - INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
04 - INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
05 - INT 05 - PRINT SCREEN
05 - INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
05454A - INT 05 U - PSPS v2.01 - EJECT PAGE
054E57 - INT 05 U - PSPS v2.01 - SET PARAMETERS
055053 - INT 05 U - PSPS v2.01 - GET PARAMETERS
05554E - INT 05 U - PSPS v2.01 - UNINSTALL
06 - INT 06 C - CPU-generated (80186+) - INVALID OPCODE
06 - INT 06 C - HP 95LX - SLEEP/WAKEUP
06 - INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
07 - INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
08 - INT 08 C - IRQ0 - SYSTEM TIMER
08 - INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
09 - INT 09 C - IRQ1 - KEYBOARD DATA READY
09 - INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
09 - INT 09 P - internal hardware - RESERVED BY Intel (80486)
0A - INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
0A - INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
0A - INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
0A - INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
0B - INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
0B - INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
0B - INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
0C - INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
0C - INT 0C C - CPU-generated (80286+) - STACK FAULT
0C - INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
0D - INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
0D - INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
0D - INT 0D - HP 95LX - INFRARED INTERRUPT
0D - INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
0E - INT 0E C - IRQ6 - DISKETTE CONTROLLER
0E - INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
0E - INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
0F - INT 0F C - IRQ7 - PARALLEL PRINTER
0F - INT 0F C - HP 95LX - REAL-TIME CLOCK
10 - INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
10 - INT 10h - LIRVGA19 - CHAR HEIGHT HOOK
1000 - INT 10 - VIDEO - SET VIDEO MODE
100070 - INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
10007E - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
10007FBH00 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
10007FBH01 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
10007FBH02 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
10007FBH03 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE
10007FBH04 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE
10007FBH05 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE
10007FBH06 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE
10007FBH07 - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE
10007F - INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS
10007FBH60 - INT 10 - Paradise VGA - ???
10007FBH61 - INT 10 - Paradise VGA - ???
10007FBXA500 - INT 10 - Paradise VGA - ???
10007FBHA5 - INT 10 - Paradise VGA - ???
10007FBHA6 - INT 10 - Paradise VGA - ???
1001 - INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
1002 - INT 10 - VIDEO - SET CURSOR POSITION
1003 - INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
1004 - INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
1004 - INT 10 - HUNTER 16 - GET CURSOR ADDRESS
1005 - INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
100500 - INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER
10050F - INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER
100580 - INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS
1005 - INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS
1006 - INT 10 - VIDEO - SCROLL UP WINDOW
1007 - INT 10 - VIDEO - SCROLL DOWN WINDOW
1008 - INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
1009 - INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
100A - INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
100B--BH00 - INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
100B--BH01 - INT 10 - VIDEO - SET PALETTE
100B--BH02 - INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY
100C - INT 10 - VIDEO - WRITE GRAPHICS PIXEL
100D - INT 10 - VIDEO - READ GRAPHICS PIXEL
100E - INT 10 - VIDEO - TELETYPE OUTPUT
100E--CXABCD - INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
100F - INT 10 - VIDEO - GET CURRENT VIDEO MODE
100F56BX4756 - INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
100F--SIF123 - INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
1010 - INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
1010 - INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
1010 - INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS
101000 - INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
101001 - INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
101002 - INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
101003 - INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
101007 - INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
101008 - INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
101009 - INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
101010 - INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
101012 - INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
101013 - INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
101015 - INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
101017 - INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
101018 - INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
101019 - INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
10101A - INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
10101B - INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
1010E0 - INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
1010F0 - INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
1010F1 - INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
1010F2 - INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
1011 - INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
1011 - INT 10 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY
101100 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
101101 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
101102 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
101103 - INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA)
101104 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
1011 - INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
10110F - INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
101110 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
101110 - INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
101111 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
101111 - INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
101112 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
101112 - INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
101114 - INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
101118 - INT 10 - IBM SurePath BIOS - Officially "Private" Function
101120 - INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
101121 - INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
101122 - INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
101123 - INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
101124 - INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
101129 - INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
101129 - INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond)
101130 - INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
101130BX4D4F - INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
1012 - INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
1012 - INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW
1012--BL10 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
1012--BL11 - INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
1012--BL12 - INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
1012--BL20 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
1012--BL2E - INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
1012--BL30 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
1012--BL31 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
1012--BL32 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
1012--BL33 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
1012--BL34 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
1012--BL35 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
1012--BL36 - INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
1012--BL37 - INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
1012--BL38 - INT 10 - IBM SurePath BIOS - Officially "Private" Function
1012--BL39 - INT 10 - IBM SurePath BIOS - Officially "Private" Function
1012--BL3A - INT 10 - IBM SurePath BIOS - Officially "Private" Function
1012--BL53 - INT 10 - Tseng ET-4000 BIOS v8.00 (1991/06/07) - BUG
1012--BL57 - INT 10 - Tseng ET-4000 BIOS v8.00 (1991/06/07) - BUG
1012--BH55 - INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
1012--BL74 - INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
1012--BL80 - INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
1012--BL80 - INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
1012--BL81 - INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
1012--BL82 - INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
1012--BL84 - INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
1012--BL85 - INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
1012--BL89 - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
1012--BL8A - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
1012--BL8B - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
1012--BL8C - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
1012--BL8F - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
1012--BL90 - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
1012--BL91 - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
1012--BL92 - INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
1012--BL93 - INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
1012--BL94 - INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
1012--BL9A - INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
1012--BLA0 - INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
1012--BLA1 - INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
1012--BLA2 - INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
1012--BLA3 - INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
1012--BLA4 - INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
1012--BLAE - INT 10 - Cirrus Logic BIOS - GET HIGH REFRESH
1012--BLAF - INT 10 - Cirrus Logic BIOS - SET HIGH REFRESH
1012--BLBE - INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
1012--BLC6 - INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
1012--BLF0 - INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
1012--BLF1 - INT 10 - Tseng ET-4000 BIOS - GET/SET SCREEN REFRESH RATE
1013 - INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
1013 - INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
101400 - INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
101401 - INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
101402 - INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
1015 - INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
1015 - INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
1018 - INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
1019 - INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
101A00 - INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
101A01 - INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
101B - INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
101C - INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
101D - INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
101D - INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
101D - INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
101DAABXFDEC - INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK
101E00 - INT 10 - VIDEO - FLAT-PANEL - READ INFORMATION
101E01 - INT 10 - VIDEO - FLAT-PANEL - LCD/CRT DISPLAY CONTROL
101E02 - INT 10 - VIDEO - FLAT-PANEL - DISPLAY POSITION
101E03 - INT 10 - VIDEO - FLAT-PANEL - VERTICAL EXPANSION FOR TEXT/GRAPHICS MODES
101E04 - INT 10 - VIDEO - FLAT-PANEL - NORMAL/REVERSE VIDEO FOR TEXT/GRAPHICS MODES
101E05 - INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS CONTROL
101E06 - INT 10 - VIDEO - FLAT-PANEL - CONTRAST CONTROL FOR TEXT/GRAPHICS
101E07 - INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS SETTING
101E08 - INT 10 - VIDEO - FLAT-PANEL - CONTRAST SETTING
101EFE - INT 10 - VIDEO - FLAT-PANEL - FUNCTION SUPPORT FLAG
101F00 - INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
101F01 - INT 10 - VIDEO - XGA - READ DMQS DATA
101F02 - INT 10 - VIDEO - XGA - GET SVGA DMQS DATA LENGTH
101F03 - INT 10 - VIDEO - XGA - GET SVGA DMQS DATA
103000CX0000 - INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
103800 - INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
103801 - INT 10 - Tinytalk Personal v1.10 - ???
103802 - INT 10 - Tinytalk Personal v1.10 - ???
103803 - INT 10 - Tinytalk Personal v1.10 - GET ???
103804 - INT 10 - Tinytalk Personal v1.10 - GET ???
103805 - INT 10 - Tinytalk Personal v1.10 - GET ???
103806 - INT 10 - Tinytalk Personal v1.10 - ???
1039 - INT 10 - Tinytalk Personal v1.10 - ???
1040 - INT 10 - VIDEO - Hercules GRAFIX - "GMODE" - SET GRAPHICS MODE
1041 - INT 10 - VIDEO - Hercules GRAFIX - "TMODE" - SET TEXT MODE
1042 - INT 10 - VIDEO - Hercules GRAFIX - "CLRSCR" - CLEAR CURRENT PAGE
1043 - INT 10 - VIDEO - Hercules GRAFIX - "GPAGE" - SELECT DRAWING PAGE
1044 - INT 10 - VIDEO - Hercules GRAFIX - "LEVEL" - SELECT DRAWING FUNCTION
1045 - INT 10 - VIDEO - Hercules GRAFIX - "DISP" - SELECT PAGE TO DISPLAY
1046 - INT 10 - VIDEO - Hercules GRAFIX - "PLOT" - DRAW ONE PIXEL
1047 - INT 10 - VIDEO - Hercules GRAFIX - "GETPT" - FIND PIXEL VALUE
1048 - INT 10 - VIDEO - Hercules GRAFIX - "MOVE" - MOVE TO POINT
1049 - INT 10 - VIDEO - Hercules GRAFIX - "DLINE" - DRAW TO POINT
104A - INT 10 - VIDEO - Hercules GRAFIX - "BLKFIL" - BLOCK FILL
104B - INT 10 - VIDEO - Hercules GRAFIX - "TEXT" - DISPLAY CHARACTER
104B - INT 10 - FRIEZE - API
104C - INT 10 - VIDEO - Hercules GRAFIX - "ARC" - DRAW ARC
104D - INT 10 - VIDEO - Hercules GRAFIX - "CIRC" - DRAW CIRCLE
104E - INT 10 - VIDEO - Hercules GRAFIX - "FILL" - FILL AREA
104E00 - INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
104E01 - INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
104E02 - INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
104E03 - INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
104E04 - INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
104E05 - INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
104E06 - INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
104F00 - INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
104F01 - INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
104F02 - INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
104F03 - INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
104F04 - INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
104F05 - INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
104F06 - INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
104F06BL02 - INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
104F06BL03 - INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
104F07 - INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
104F07 - INT 10 - VESA SuperVGA BIOS v3.0+ - SCHEDULED DISPLAY START
104F07 - INT 10 - VESA SuperVGA BIOS v3.0+ - ENABLE/DISABLE STEREOSCOPIC MODE
104F08 - INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
104F09 - INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
104F0ABL00 - INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE INTERFACE
104F0A - INT 10 O - VESA SuperVGA BIOS v2.0 beta - GET PROTECTED-MODE CODE
104F0BBL00 - INT 10 - VESA SuperVGA BIOS v3.0 - GET NEAREST PIXEL CLOCK
104F0B - INT 10 - VESA SuperVGA BIOS - GET VBE/AF v1.0P DEVICE CONTEXT BUFFER
104F0C - INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS
104F0B - INT 10 - Diamond Viper V330 - ???
104F10BL00 - INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
104F10BL01 - INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
104F10BL02 - INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
104F11 - INT 10 - VESA VBE/FP (Flat Panel Interface) - API
104F12 - INT 10 - VESA VBE/CI (Cursor Interface) - API
104F13BX0000 - INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
104F13BX0001 - INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
104F13BX0002 - INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
104F13BX0003 - INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
104F13BX0004 - INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
104F13BX0005 - INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
104F13BX0006 - INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
104F14 - INT 10 - VESA OEM Extensions - API
104F14 - INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1)
104F15BL00 - INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES
104F15BL01 - INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID
104F15BL02 - INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF
104F16 - INT 10 - VESA VBE/GC (Graphics System Configuration) - API
104F17 - INT 10 - VESA VBE/AF (Accelerator Functions) - API
104F4D - INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
104F70 - INT 10 - Avance Logic - GET ADAPTER INFORMATION
104FDD - INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT
104FFF - INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
104FFF - INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
104FFFBX364D - INT 10 - ATI M64VBE.COM - UNINSTALL
1050 - INT 10 - SCROLOCK.COM - INSTALLATION CHECK
105000 - INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
105001 - INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
105049 - INT 10 - VIDEO - SCREENR v1.55+ - API
1051 - INT 10 - SCROLOCK.COM - ENABLE/DISABLE
105100 - INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
105101 - INT 10 - VIDEO - AX PC - READ CHARACTER
105200 - INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
105201 - INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
1053 - INT 10 - Show Partner F/X v3.6 - START PRESENTATION
1055 - INT 10 - Show Partner F/X v3.6 - UNINSTALL
105555 - INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
105555BXAAAA - INT 10 - LIR - SET CONFIGURATION
105555BXBBBB - INT 10 - LIR - GET CONFIGURATION
105F00 - INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
105F00 - INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
105F01 - INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
105F01 - INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
105F02 - INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
105F02 - INT 10 - Chips & Technologies '64300' BIOS - SET CLOCK
105F02 - INT 10 - Chips & Technologies '65530' BIOS - SET CLOCK
105F02 - INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
105F03 - INT 10 - VIDEO - Realtek RTVGA - SET ???
105F03BL00 - INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE
105F03BH00 - INT 10 - Chips & Technologies '64300' BIOS - GET CLOCK SPEED
105F03BL01 - INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
105F04 - INT 10 - Chips & Technologies '64300' BIOS - GET REFRESH RATE
105F05 - INT 10 - Chips & Technologies '64300' BIOS - SET REFRESH RATE
105F06 - INT 10 - Chips & Technologies '64300' BIOS - GET XRAM INFORMATION
105F08 - INT 10 - Chips & Technologies '64300' BIOS - SET LINEAR MEMORY START ADDRESS
105F10 - INT 10 - Chips & Technologies '64300'/'65530' BIOS - GET LINEAR MEMORY INFO
105F50 - INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
105F50 - INT 10 - Chips & Technologies '65530' BIOS - GET 655xx INFORMATION
105F51 - INT 10 - Chips & Technologies Extended BIOS - SWITCH DISPLAY DEVICE
105F53 - INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE ACCELERATOR SUPPORT
105F54 - INT 10 - Chips & Technologies Extended BIOS - TURN FLAT PANEL ON/OFF
105F5A - INT 10 - Chips & Technologies Extended BIOS - SET FLAT-PANEL VIDEO POLARITY
105F5C - INT 10 - Chips & Technologies Extended BIOS - SET VERTICAL COMPENSATION
105F5E - INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE TALL FONT LOADING
105F5F - INT 10 - Chips & Technologies Extended BIOS - HORIZONTAL COMPENSATION
105F90 - INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE
105F91 - INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE
105F92 - INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE
105FA0 - INT 10 - Chips & Technologies Wingine DGX - GET EXTENDED BIOS SAVE BUFFER SIZE
105FA1 - INT 10 - Chips & Technologies Wingine DGX - SAVE VIDEO STATE
105FA2 - INT 10 - Chips & Technologies Wingine DGX - RESTORE VIDEO STATE
1060 - INT 10 - HUNTER 16 - SET GRAPHICS FONT
1061 - INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
1062 - INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
1063 - INT 10 - HUNTER 16 - SET CONTRAST
1064 - INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
106500 - INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
106501 - INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
1066 - INT 10 - HUNTER 16 - SPLIT DISPLAY
106A00BX0000 - INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
106A01CX0000 - INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
106A02 - INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
106D74 - INT 10 - MTRFONTS - INSTALLATION CHECK
106E00 - INT 10 - Paradise VGA internal - GET ???
106E04 - INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
106E05 - INT 10 - Paradise VGA internal - SET MODE
106F00 - INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
106F00BX0000 - INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
106F01 - INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
106F02 - INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
106F03 - INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
106F04 - INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
106F05 - INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
106F06 - INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
106F07 - INT 10 - VIDEO - Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
1070 - INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
1070 - INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
107000BX0000 - INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
107000BX0004 - INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
107000BX0005 - INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
1071 - INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
1071 - INT 10 - HUNTER 16 - DRAW LINE/BOX
1072 - INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
1072 - INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
1073 - INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
1073 - INT 10 - HUNTER 16 - SELECT TEXT FONT
1074 - INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
1075 - INT 10 - HUNTER 16 - SET ZOOM
1076 - INT 10 - HUNTER 16 - LOOKING KEYS
1077 - INT 10 - HUNTER 16 - GET GRAPHICS FONT
1078 - INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
107F - INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
107F00 - INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
107F00BX4000 - INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
107F00BX4001 - INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
107F00BX4002 - INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
107F01BL00 - INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
107F01BL01 - INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
107F01BL02 - INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
107F02BL00 - INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
107F02BL01 - INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
107F03BL00 - INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
107F03BL01 - INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
107F03BL02 - INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
107F04BL00 - INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
107F04BL01 - INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
107F04BL02 - INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
107F04BL03 - INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
107F05 - INT 10 - SOLLEX SuperVGA - LOAD REGISTER
107F06 - INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
107F07 - INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
1080 - INT 10 - CU Writer v1.4 - GET OPTION
1080--DX4456 - INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
1081 - INT 10 - CU Writer v1.4 - SET OPTION
1081--DX4456 - INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
1082--DX4456 - INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
108200 - INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
108300 - INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
1086 - INT 10 - ???
108B - INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
1090 - INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
1091 - INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
1092 - INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
1093 - INT 10 - Alloy MW386 - REDRAW SCREEN
109508 - INT 10 - VHRBIOS.SYS - ???
1096 - INT 10 - VHRBIOS.SYS - GET OTHER DISPLAY INFO
10A0 - INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
10A000 - INT 10 - ATI BIOS Extensions - ???
10A001 - INT 10 - ATI Mach64 BIOS - ???
10A002 - INT 10 - ATI Mach64 BIOS - ???
10A003 - INT 10 - ATI Mach64 BIOS - ???
10A004 - INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
10A004 - INT 10 - ATI Mach64 BIOS - ???
10A005 - INT 10 - ATI Mach64 BIOS - ???
10A006 - INT 10 - ATI Mach64 BIOS - ???
10A007 - INT 10 - ATI Mach64 BIOS - GET ???
10A008 - INT 10 - ATI Mach64 BIOS - GET ??? SIZE
10A009 - INT 10 - ATI Mach64 BIOS - GET ???
10A00A - INT 10 - ATI Mach64 BIOS - GET ???
10A00B - INT 10 - ATI Mach64 BIOS - ???
10A00C - INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
10A00D - INT 10 - ATI Mach64 BIOS - GET SLEEP MODE
10A00D - INT 10 - ATI Rage128 BIOS - GET ???
10A00E - INT 10 - ATI Mach64 BIOS - SET ???
10A00F - INT 10 - ATI Mach64 BIOS - GET ???
10A010 - INT 10 - ATI Mach64 BIOS - ???
10A011 - INT 10 - ATI Mach64 BIOS - GET ???
10A012 - INT 10 - ATI Mach64 BIOS - GET ???
10A013 - INT 10 - ATI Mach64 BIOS - ???
10A014 - INT 10 - ATI Rage128 BIOS - ???
10A015 - INT 10 - ATI Rage128 BIOS - GET/SET ???
10A016 - INT 10 - ATI Rage128 BIOS - NOP
10A017 - INT 10 - ATI Rage128 BIOS - ???
10A01B - INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
10AA - INT 10 OU - Player's Tool 3.0 - UNINSTALL
10AB - INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK
10B0 - INT 10 - CU Writer v1.4 - PUT PIXEL
10B1 - INT 10 - CU Writer v1.4 - MOVE TO
10B2 - INT 10 - CU Writer v1.4 - DRAW LINE TO
10B3 - INT 10 - CU Writer v1.4 - FLOOD FILL
10B4 - INT 10 - CU Writer v1.4 - DRAW RECTANGLE
10B5 - INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
10BB - INT 10 U - Doorway - SET BIOS/DIRECT REDIRECTION
10BD44 - INT 10 U - Compaq QVision - ???
Section -
10BF--CX0000 - INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
10BF00 - INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
10BF01 - INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
10BF02 - INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
10BF03BX0000 - INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
10BF04 - INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
10BF05 - INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
10BF06 - INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
10BF07 - INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
10BF08 - INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
10BF09 - INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
10BF0A - INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
10BF0B - INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
10BF0C - INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
10BF0D - INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
10BF0E - INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
10BF0F - INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
10BF10 - INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
10BF11 - INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
10BF12 - INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
10BF13 - INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
10BFA0BXADAD - INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
10BFA1 - INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
10BFA2 - INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
10C0 - INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
10C000 - INT 10 - S3 SpeedUp v3.00+ - INSTALLATION CHECK
10C001 - INT 10 - S3 SpeedUp v3.00+ - GET ACTIVE OPTIONS
10C002 - INT 10 - S3 SpeedUp v3.00+ - SET ACTIVE OPTIONS
10C003 - INT 10 - S3 SpeedUp v3.10+ - GET FLAGS
10C004 - INT 10 - S3 SpeedUp v3.10+ - RESERVED FUNCTIONS
10C1 - INT 10 - CU Writer v1.4 - OUTPUT TEXT
10C2 - INT 10 - CU Writer v1.4 - REVERSE TEXT
10C3 - INT 10 - CU Writer v1.4 - TEXT BAR
10C4 - INT 10 - CU Writer v1.4 - TEXT MENU
10CB00 - INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
10CB01 - INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
10CB02 - INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
10CB03 - INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
10CB04 - INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
10CB05 - INT 10 - UNCHAIN - SAVE PALETTE
10CB06 - INT 10 - UNCHAIN - RESTORE VGA REGISTERS
10CBFF - INT 10 - UNCHAIN - INSTALLATION CHECK
10CC00 - INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
10CC01 - INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
10CC02 - INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
10CCAB - INT 10 - HiFont - INSTALLATION CHECK
10CD00 - INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
10CD01 - INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
10CD02 - INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
10CD03 - INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
10CD04 - INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
10CD05 - INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
10CD06 - INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
10CD07 - INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
10CD08 - INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
10CD0F - INT 10 - VIDEO - UltraVision - GET POINTER TO ??? (EGA,VGA)
10CD10 - INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
10CD - INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
10D0 - INT 10 - CU Writer v1.4 - LOAD PICTURE
10D0 - INT 10 U - VIDEO - HP 100LX/200LX - SET ZOOM MODE
10D000 - INT 10 - S3VBE/Core2.0 v3.00+ - INSTALLATION CHECK
10D001 - INT 10 - S3VBE/Core2.0 v3.00+ - GET ACTIVE OPTIONS
10D002 - INT 10 - S3VBE/Core2.0 v3.00+ - SET ACTIVE OPTIONS
10D003 - INT 10 U - S3VBE/Core2.0 v3.10+ - GET VBE/Core CAPABILITIES
10D004 - INT 10 U - S3VBE/Core2.0 v3.10+ - ACTIVATE SPEED-UP
10D005 - INT 10 U - S3VBE/Core2.0 v3.10+ - DEACTIVATE SPEED-UP
10D1 - INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
10D4 - INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
10D5 - INT 10 - Netroom SCRNCLK - ???
10DAAD - INT 10 - TSRUNIT v1.10 - INSTALLATION CHECK
10DFA5 - INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
10EE - INT 10 - VIDEO - IBM "Private" Function
10EF - INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
10F0 - INT 10 - EGA Register Interface Library - READ ONE REGISTER
10F0 - INT 10 - VHRBIOS.SYS - INSTALLATION CHECK
10F1 - INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
10F1 - INT 10 - VHRBIOS.SYS - SET REVERSE VIDEO
10F2 - INT 10 - EGA Register Interface Library - READ REGISTER RANGE
10F2 - INT 10 - VHRBIOS.SYS - ???
10F3 - INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
10F3 - INT 10 - VHRBIOS.SYS - SWITCH BETWEEN DUAL MONITORS???
10F4 - INT 10 - EGA Register Interface Library - READ REGISTER SET
10F4 - INT 10 - VHRBIOS.SYS - GET VERSION
10F5 - INT 10 - EGA Register Interface Library - WRITE REGISTER SET
10F5 - INT 10 - VHRBIOS.SYS - GET VENDOR ID
10F6 - INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
10F6 - INT 10 - VHRBIOS.SYS - GET INFO
10F7 - INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
10FA--BX0000 - INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
10FA - INT 10 - FASTBUFF.COM - INSTALLATION CHECK
10FE - INT 10 - TopView - GET SHADOW BUFFER
10FF - INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
10FF - INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
10FF - INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
10FF00 - INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
10FF01 - INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
10FF02 - INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
11 - INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
11 - INT 11 - BIOS - GET EQUIPMENT LIST
11----SI6A6A - INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
110225BX6900 - INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
110225BX6901 - INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
110225BX6902 - INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
110225BX6903 - INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
110225BX6904 - INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
110225BX6905 - INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
110225BX6906 - INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
110225BX6907 - INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
110225BX6908 - INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
110225BX6909 - INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
1105D7 - INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
1177 - INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
1178 - INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
1179 - INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
117A - INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
117C01 - INT 11 - RainbowFAX v1.3 - SFENGINE API - SET ??? FLAG
117C02 - INT 11 - RainbowFAX v1.3 - SFENGINE API - CLEAR ??? FLAG
117C03 - INT 11 - RainbowFAX v1.3 - SFENGINE API - UNSUPPORTED FUNCTIONS
11BC--DX1954 - INT 11 - BNU FOSSIL - INSTALLATION CHECK
11FF--SI6A6A - INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
11FFFECXFFFE - INT 11 - BACK&FORTH (before v1.62) API
12 - INT 12 - BIOS - GET MEMORY SIZE
12 - INT 12 - CPU-generated (Pentium +) - MACHINE CHECK EXCEPTION
12----CX1806 - INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
12----CX1807 - INT 12 - PARKER v2.0+ - INSTALLATION CHECK
1205D7BX05D7 - INT 12 U - Borland C++ IDE - INSTALLATION CHECK
124350BX4920 - INT 12 C - CPI-standard virus - "FRIEND" CHECK
12FFFECXFFFE - INT 12 - Back&Forth v1.62+ - API
1300 - INT 13 - DISK - RESET DISK SYSTEM
1301 - INT 13 - DISK - GET STATUS OF LAST OPERATION
1302 - INT 13 - DISK - READ SECTOR(S) INTO MEMORY
1303 - INT 13 - DISK - WRITE DISK SECTOR(S)
1304 - INT 13 - DISK - VERIFY DISK SECTOR(S)
1305 - INT 13 - FLOPPY - FORMAT TRACK
1305 - INT 13 - FIXED DISK - FORMAT TRACK
1305 - INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
13057FSI324D - INT 13 - 2M - FORMAT TRACK
1306 - INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
1306 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
1306 - INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
1306 - INT 13 - V10DISK.SYS - READ DELETED SECTORS
1307 - INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
1307 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
1307 - INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
1308 - INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
1308 - INT 13 - V10DISK.SYS - SET FORMAT
130800DLF0 - INT 13 - SecureDrive - INSTALLATION CHECK
1309 - INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
130A - INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
130B - INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
130C - INT 13 - HARD DISK - SEEK TO CYLINDER
130D - INT 13 - HARD DISK - RESET HARD DISKS
130E - INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
130F - INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
1310 - INT 13 - HARD DISK - CHECK IF DRIVE READY
1311 - INT 13 - HARD DISK - RECALIBRATE DRIVE
1312 - INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
1312 - INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
1312 - INT 13 - SyQuest - START/STOP SCSI DISK
1313 - INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
1313 - INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
1314 - INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
1315 - INT 13 - DISK - GET DISK TYPE (XT 1986/1/10 or later,XT286,AT,PS)
1316 - INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1986/1/10 or later,XT286,AT,PS)
1317 - INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
131700 - INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
1318 - INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
1318 - INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
1318--CX5055 - INT 13 - PU_1700.COM - INSTALLATION CHECK
1318--CXD2C9 - INT 13 - XDF.COM - API
1319 - INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
1319 - INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
131A - INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
131A - INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
131B - INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
131B - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
131C - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
131C - INT 13 U - ESDI FIXED DISK - ???
131C08 - INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
131C09 - INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
131C0A - INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
131C0B - INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
131C0C - INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
131C0D - INT 13 U - ESDI FIXED DISK - ???
131C0E - INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
131C0F - INT 13 U - ESDI FIXED DISK - ???
131C12 - INT 13 U - ESDI FIXED DISK - ???
131D - INT 13 - IBMCACHE.SYS - CACHE STATUS
131F - INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
1320 - INT 13 - DISK - ??? (Western Digital "Super BIOS")
1320 - INT 13 U - Compaq, ATAPI Removable Media Device - GET CURRENT MEDIA FORMAT
1320 - INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
1321 - INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
1321 - INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
1322 - INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
1322 - INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
1323 - INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
1323 - INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
1324 - INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
1324 - INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
1325 - INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
1325 - INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
1326 - INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
1327--BX0000 - INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
1328 - INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
1329 - INT 13 U - QUICKCACHE II v4.20 - NOP
132A - INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
132B - INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
132C - INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
132D - INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
132E - INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
132F - INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
1330 - INT 13 u - QUICKCACHE II v4.20 - GET INFO
1331 - INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
1332 - INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
1333 - INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
1334 - INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
1335 - INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
1336 - INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
1337 - INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
1338 - INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
1339 - INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
133A - INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
133B - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
133C - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
133D - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
133E - INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
133F - INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
1340 - INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
1341--BX55AA - INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
1341 - INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
1342 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
134257DX1234 - INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
1343 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
1344 - INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS
1345 - INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE
1346 - INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA
1347 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
1348 - INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
1349 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE
134A - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION
134B00 - INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION
134B01 - INT 13 - Bootable CD-ROM - GET STATUS
134C - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT
134D00 - INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG
134E - INT 13 - IBM/MS INT 13 Extensions v2.1+ - SET HARDWARE CONFIGURATION
135001 - INT 13 - Enhanced Disk Drive Spec v3.0 - SEND PACKET COMMAND
135001 - INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK
135342CX0001 - INT 13 - ScanBoot - INSTALLATION CHECK
135501 - INT 13 - Seagate ST01/ST02 - Inquiry
135502 - INT 13 - Seagate ST01/ST02 - RESERVED
135503 - INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
135504 - INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
135504 - INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
135505 - INT 13 - Seagate - ??? - PARK HEADS
135505 - INT 13 - Seagate ST01/ST02 - PARK HEADS
135506 - INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
135507 - INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
135514 - INT 13 U - Seagate - ???
135515 - INT 13 U - Seagate - PARK HEADS???
1359 - INT 13 - SyQuest - Generic SCSI pass through
1370 - INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
1375 - INT 13 - ???
1376 - INT 13 - ???
137B00 - INT 13 - NOW! v3.05 - GET INFORMATION
137B01 - INT 13 - NOW! v3.05 - ???
137B02 - INT 13 - NOW! v3.05 - SET INFORMATION
137B03 - INT 13 - NOW! v3.05 - ???
137B04 - INT 13 - NOW! v3.05 - ???
137B05 - INT 13 - NOW! v3.05 - GET DISK ACCESSES???
137B06 - INT 13 - NOW! v3.05 - GET ???
137B07 - INT 13 - NOW! v3.05 - GET ???
137B08 - INT 13 - NOW! v3.05 - ???
1380--CX6572 - INT 13 - FAST! v4.02+ - API
138001CX6572 - INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
138006CX6572 - INT 13 - FAST! v4.02+ - INSTALLATION CHECK
138007CX6572 - INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
1381--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1382--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1383--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1384--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1385--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1386--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
1387--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
1388--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
1389--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
138A--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
138EED - INT 13 - HyperDisk v4.01+ - ???
138EEE - INT 13 - HyperDisk v4.01+ - ???
138EEF - INT 13 - HyperDisk v4.01+ - ???
1392--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1393--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1394--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1395--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1396--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1397--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1398--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1399--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139A--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139B--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139C--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139D--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
13A0--SI4358 - INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
13A1--SI4358 - INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
13A2--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
13A3--SI4358 - INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
13A4--SI4358 - INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
13A5--SI4358 - INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
13A6--SI4358 - INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
13A7--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - ???
13A759 - INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
13A8--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - ???
13A9--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
13AA--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AB--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AC--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AD - INT 13 - Priam HARD DISK CONTROLLER???
13AD--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AE--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
13B0--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
13BF00 - INT 13 - Mylex/Adaptec??? - ???
13E000 - INT 13 - XBIOS - COMMAND
13EC00 - INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK
13EE - INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
13EF - INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
13F2 - INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK
13F9 - INT 13 - SWBIOS - INSTALLATION CHECK
13FA--DX5945 - INT 13 - PC Tools v8+ VSAFE, VWATCH - API
13FD50 - INT 13 - VIRUS - "Predator" - INSTALLATION CHECK
13FE - INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
13FF - INT 13 - EZ-Drive - INSTALLATION CHECK
13FF - INT 13 - IBM SurePath BIOS - Officially "Private" Function
13FFFFBHAA - INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
14 - INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
1400 - INT 14 - SERIAL - INITIALIZE PORT
1400 - INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE
1400 - INT 14 - Tandy 2000 - SERIAL - RESET COMM PORT
1400 - INT 14 - MBBIOS - INITIALIZE PORT
1400--DXFFFF - INT 14 - Connection Manager - MODIFY DEFAULT CONNECTION PARAMETERS
1401 - INT 14 - SERIAL - WRITE CHARACTER TO PORT
1401--DXFFFF - INT 14 - Connection Manager - SEND CHARACTER
1402 - INT 14 - SERIAL - READ CHARACTER FROM PORT
1402 - INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT
1402--DXFFFF - INT 14 - Connection Manager - RECEIVE CHARACTER
1403 - INT 14 - SERIAL - GET PORT STATUS
1403--DXFFFF - INT 14 - Connection Manager - RETURN COMMUNICATION PORT STATUS
1404 - INT 14 - SERIAL - EXTENDED INITIALIZE (CONVERTIBLE,PS)
1404 - INT 14 - Tandy 2000 - SERIAL - FLUSH COMM BUFFER
1404 - INT 14 - FOSSIL - INITIALIZE DRIVER
1404 - INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT
1404 - INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE
1404 - INT 14 - MBBIOS - INSTALLATION CHECK
1404--DXFFFF - INT 14 - Connection Manager - OPEN COMMUNICATION
140400 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INSTALLATION CHECK
140401 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INITIALIZE MODE
140402 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE
140403 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT
140404 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER
140405 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET RECEIVE BUFFER COUNT
140406 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE TRANSMIT BUFFER
140407 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET TRANSMIT BUFFER COUNT
140408 - INT 14 - Microsoft Systems Journal TSRCOMM INT14 - UNINSTALL
1405 - INT 14 - SERIAL - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)
1405 - INT 14 - FOSSIL - DEINITIALIZE DRIVER
1405 - INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT
1405 - INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL
1405 - INT 14 - MBBIOS - DROP DTR AND RTS
1405 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHANGE PORT PROTOCOL
1405 - INT 14 - PhysTechSoft PTS ROM-DOS - SET PACKET
1405--DXFFFF - INT 14 - Connection Manager - CLOSE COMMUNICATION
1406 - INT 14 - FOSSIL - RAISE/LOWER DTR
1406 - INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT
1406 - INT 14 - MBBIOS - RAISE DTR AND RTS
1406 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DRIVER 'ID' FUNCTION
1406 - INT 14 - TelAPI - WRITE BLOCK
1406 - INT 14 - PhysTechSoft PTS ROM-DOS - GET PACKET
1406--DXFFFF - INT 14 - Connection Manager - SEND CHARACTER BLOCK
1407 - INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS
1407 - INT 14 - MultiDOS Plus IODRV - GET PORT STATUS
1407 - INT 14 - MBBIOS - SEND BREAK
1407 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SEND RS-232 BREAK
1407 - INT 14 - TelAPI - READ BLOCK
1407--DXFFFF - INT 14 - Connection Manager - RECEIVE CHARACTER BLOCK
1408 - INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE
1408 - INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS
1408 - INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK
1408 - INT 14 - MBBIOS - NON-DESTRUCTIVE READ
1408 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STATUS CHECK
1408--DXFFFF - INT 14 - Connection Manager - RETURN DEFAULT CONNECTION PARAMETERS
1409 - INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT
1409 - INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS
1409 - INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS
1409 - INT 14 - MBBIOS - GET/SET OPTIONS
1409 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RESET I/O BUFFER POINTERS
1409--DXFFFF - INT 14 - Connection Manager - SEND BREAK
140A - INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT
140A - INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK
140A - INT 14 - MBBIOS - WRITE BUFFER
140A--DXFFFF - INT 14 - Connection Manager - MODIFY ACTIVE CONNECTION PARAMETERS
140B - INT 14 - FOSSIL - TRANSMIT NO WAIT
140B - INT 14 - MBBIOS - READ BUFFER
140B--DXFFFF - INT 14 - Connection Manager - PREPARE FOR INBOUND CONNECTION
140C - INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD
140C - INT 14 - MBBIOS PACCOM support - BUFFER MANAGEMENT
140C--DXFFFF - INT 14 - Connection Manager - TEST FOR INBOUND CONNECTION REQUEST
140D - INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
140D - INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG
140D - INT 14 - MBBIOS PACCOM support - SET TXD
140D--DXFFFF - INT 14 - Connection Manager - TERMINATE CONNECTION CLIENT ACTIVITY
140D00 - INT 14 - MBBIOS - GET AVAILABLE BYTES
140D01 - INT 14 - MBBIOS - LOWER ALL MODEM CONTROL SIGNALS
140D02 - INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS
140D03 - INT 14 - MBBIOS - SET HANDSHAKE BYTE
140E - INT 14 - FOSSIL - KEYBOARD READ WITH WAIT
140E - INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING
140E - INT 14 - MBBIOS PACCOM support - SET PERSISTENCE
140E--DXFFFF - INT 14 - Connection Manager - SET HARDWARE FLOW STATE
140F - INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL
140F - INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING
140F - INT 14 - MBBIOS PACCOM support - SET SLOT TIME
140F--DXFFFF - INT 14 - Connection Manager - RETURN ACTIVE CONNECTION PARAMETERS
1410 - INT 14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF
1410 - INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER
1410 - INT 14 - MBBIOS PACCOM support - SET CRC WAIT
1410--DXFFFF - INT 14 - Connection Manager - QUERY SERVICE NAMES
1411 - INT 14 - FOSSIL - SET CURRENT CURSOR LOCATION
1411 - INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER
1411 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DISABLE PORT
1412 - INT 14 - FOSSIL - READ CURRENT CURSOR LOCATION
1412 - INT 14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE
1412 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET CURRENT PORT PARAMETERS
1413 - INT 14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN
1413 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - REGISTER A PORT WITH A TERMINAL
1414 - INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING
1414 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT STRING
1414 - INT 14 - Digiboard - GET NUMBER OF BOARDS INSTALLED
1415 - INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES
1415 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STRING
1415 - INT 14 - Digiboard - ENABLE/DISABLE MEMORY
1416 - INT 14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN
1416 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - LINK TO ANOTHER SERIAL DRIVER
1416 - INT 14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND
141646 - INT 14 - Digiboard - CCB COMMAND - SET INTERRUPT TO HOST MASK
141647 - INT 14 - Digiboard - CCB COMMAND - SET BAUD/DATABITS/STOPBITS/PARITY
141649 - INT 14 - Digiboard - CCB COMMAND - SET MODEM LINES
14164A - INT 14 - Digiboard - CCB COMMAND - SET BREAK COUNT
14164B - INT 14 - Digiboard - CCB COMMAND - SET HANDSHAKE
14164C - INT 14 - Digiboard - CCB COMMAND - SET XON/XOFF CHARACTERS
14164D - INT 14 - Digiboard - CCB COMMAND - SET TRANSMIT MID-WATER MARK
14164E - INT 14 - Digiboard - CCB COMMAND - IRQ POLLING TIMER TO HOST
14164F - INT 14 - Digiboard - CCB COMMAND - BUFFER SET ALL
141653 - INT 14 - Digiboard - CCB COMMAND - SPECIAL CHARACTER INTERRUPT
1417 - INT 14 - FOSSIL - REBOOT SYSTEM
1417 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - WRITE MODEM CONTROL REGISTER
1418 - INT 14 - FOSSIL - READ BLOCK
1418 - INT 14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND
1418 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET DRIVER DESCRIPTION
1419 - INT 14 - FOSSIL - WRITE BLOCK
1419 - INT 14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT
1419 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SELECTIVE BUFFER FLUSH
141A - INT 14 - FOSSIL - BREAK BEGIN OR END
141A - INT 14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER
141B - INT 14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER
141C - INT 14 - X00 FOSSIL - ACTIVATE PORT
141D - INT 14 - X00 FOSSIL - DEACTIVATE PORT
141E - INT 14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION
141E - INT 14 - HUNTER 16 - READ COMMS PARAMETERS
141F - INT 14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL
1420 - INT 14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT
1420 - INT 14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT
1420 - INT 14 - MultiDOS Plus - INITIALIZE PORT
1420 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHECK OUTPUT QUEUE
1420 - INT 14 - HUNTER 16 - SELECT COMMS PARAMETERS
1421 - INT 14 - X00 FOSSIL - STUFF RECEIVE BUFFER
1421 - INT 14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT
1421 - INT 14 - MultiDOS Plus - TRANSMIT CHARACTER
1421 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT CHARACTER, WITH TIMEOUT
1421 - INT 14 - HUNTER 16 - EXTENDED CONTROL
1422 - INT 14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT
1422 - INT 14 - MultiDOS Plus - RECEIVE CHARACTER
1422 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RECEIVE CHARACTER, WITH TIMEOUT
1422 - INT 14 - HUNTER 16 - EXTENDED STATUS
1423 - INT 14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID
1423 - INT 14 - MultiDOS Plus - GET PORT STATUS
1423 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DECLARE PORT OWNERSHIP
1423 - INT 14 - HUNTER 16 - CONTROL HANDSHAKE LINES
1424 - INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS
1424 - INT 14 - MultiDOS Plus - SET MONITOR MODE
1424 - INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - ???
1424 - INT 14 - HUNTER 16 - CONTROL CTS HANDSHAKING
1425 - INT 14 - MultiDOS Plus - CLEAR BUFFERS
1425 - INT 14 - HUNTER 16 - CONTROL RS232 DRIVERS
1426 - INT 14 - HUNTER 16 - CONTROL RI POWER UP
1427 - INT 14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT
1427 - INT 14 - HUNTER 16 - GET INSTALLED PROTOCOLS COUNT
1428 - INT 14 - HUNTER 16 - GET PROTOCOL NAME
1429 - INT 14 - HUNTER 16 - GET PROTOCOL HANDLE
142A - INT 14 - HUNTER 16 - EXTENDED PROTOCOL MENU
142B - INT 14 - HUNTER 16 - GET EXTENDED PROTOCOL PARAMETERS
142C00 - INT 14 - HUNTER 16 - GET DTR
142C - INT 14 - HUNTER 16 - SET DTR
1436 - INT 14 - ComShare - INSTALLATION CHECK
144000 - INT 14 - I1541 - INSTALLATION CHECK
144001 - INT 14 - I1541 - TEST IF 1541 CABLE CONNECTED
144002 - INT 14 - I1541 - SELECT LPT PORT FOR OUTPUT
144003 - INT 14 - I1541 - RESET ALL DEVICES
144004 - INT 14 - I1541 - SEND LISTEN SIGNAL
144005 - INT 14 - I1541 - SEND SECONDARY ADDRESS FOR LISTEN
144006 - INT 14 - I1541 - SEND UNLISTEN SIGNAL
144007 - INT 14 - I1541 - SEND TALK SIGNAL
144008 - INT 14 - I1541 - SEND SECONDARY ADDRESS FOR TALK
144009 - INT 14 - I1541 - SEND UNTALK SIGNAL
14400A - INT 14 - I1541 - SEND A BYTE TO A DEVICE
14400B - INT 14 - I1541 - RECEIVE A BYTE FROM A DEVICE
14400C - INT 14 - I1541 - WAIT
14400D - INT 14 - I1541 - LONGWAIT
14400E - INT 14 - I1541 - GET INFO
1456 - INT 14 U - BWCOM14 - INSTALLATION CHECK
1457 - INT 14 U - BWCOM14 - INITIALIZE
1458 - INT 14 U - BWCOM14 - SHUTDOWN
146F--BXFFFE - INT 14 U - Connection Manager - ???
146F--BXFFFF - INT 14 - Connection Manager - INSTALLATION CHECK
146F00 - INT 14 - HP Vectra EX-BIOS - "F14_INQUIRE" - INSTALLATION CHECK
146F01 - INT 14 - HP Vectra EX-BIOS - "F14_EXINIT" - INITIALIZE SERIAL PORT
146F02 - INT 14 - HP Vectra EX-BIOS - "F14_PUT_BUFFER" - TRANSMIT BUFFER
146F03 - INT 14 - HP Vectra EX-BIOS - "F14_GET_BUFFER" - READ DATA INTO BUFFER
146F04 - INT 14 - HP Vectra EX-BIOS - "F14_TRM_BUFFER" - READ UNTIL TERMINATOR
147000 - INT 14 - NEWCOM - INSTALLATION CHECK
147E - INT 14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION
147F - INT 14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION
1480 - INT 14 - COMMUNICATIONS FOSSIL
1480 - INT 14 - COURIERS.COM - INSTALLATION CHECK
148000 - INT 14 - ARTICOM - INSTALLATION CHECK
148000 - INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET ERROR CODE AND BUFFER STATUS
148001 - INT 14 - ARTICOM - UNLOAD ASYNCHRONOUS REDIRECTOR FROM MEMORY
148001 - INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS
148002 - INT 14 - ARTICOM - GET ASYNCHRONOUS REDIRECTOR STATUS
148002 - INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS
148003 - INT 14 - ARTICOM - TRANSLATE ERROR CODE TO ERROR STRING
148003 - INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET I/O BUFFER SIZES
148004 - INT 14 - ARTICOM - ATTACH ASYNCHRONOUS RESOURCE
148005 - INT 14 - ARTICOM - DETACH ASYNCHRONOUS RESOURCE
148006 - INT 14 - ARTICOM - GET RESOURCE INFORMATION
148007 - INT 14 - ARTICOM - GET REDIRECTED PORT INFORMATION
148008 - INT 14 - ARTICOM - GET AVAILABLE SERVER NAME
148009 - INT 14 - ARTICOM - SET SEND AND RECEIVE TIMEOUTS
14800A - INT 14 - ARTICOM - MODIFY FLOW CONTROL
148025 - INT 14 - ARTICOM - SET INTERNAL SEND/RECEIVE VECTOR
148035 - INT 14 - ARTICOM - GET INTERNAL SEND/RECEIVE VECTOR
1481 - INT 14 - COURIERS.COM - CHECK IF PORT BUSY
1481 - INT 14 - COMM-DRV - EXTENDED INITIALIZATION
148100 - INT 14 - VIDEO FOSSIL - RETURN VFOSSIL INFORMATION
148101 - INT 14 - VIDEO FOSSIL - OPEN VFOSSIL
148102 - INT 14 - VIDEO FOSSIL - CLOSE VFOSSIL
148103 - INT 14 - VIDEO FOSSIL - UNINSTALL
1482 - INT 14 - KEYBOARD FOSSIL
1482 - INT 14 - COURIERS.COM - CONFIGURE PORT
1482 - INT 14 - COMM-DRV v14.0 - PORT CLEANUP
1483 - INT 14 - SYSTEM FOSSIL
1483 - INT 14 - COURIERS.COM - START INPUT
1483 - INT 14 - COMM-DRV v14.0 - FLUSH COMMUNICATION BUFFERS
1484 - INT 14 - COURIERS.COM - READ CHARACTER
1484 - INT 14 - COMM-DRV v14.0 - SEND PACKET
1485 - INT 14 - COURIERS.COM - FLUSH PENDING INPUT
1485 - INT 14 - COMM-DRV v14.0 - RECEIVE PACKET
1486 - INT 14 - COURIERS.COM - START OUTPUT
1486 - INT 14 - COMM-DRV v14.0 - SET INPUT/OUTPUT TIMEOUTS
1487 - INT 14 - COURIERS.COM - OUTPUT STATUS
1487 - INT 14 - COMM-DRV v14.0 - TURN ON DTR
1488 - INT 14 - COURIERS.COM - ABORT OUTPUT
1488 - INT 14 - COMM-DRV v14.0 - TURN OFF DTR
1489 - INT 14 - COURIERS.COM - SEND SINGLE CHARACTER
1489 - INT 14 - COMM-DRV v14.0 - TURN ON RTS
148A - INT 14 - COURIERS.COM - SEND BREAK
148A - INT 14 - COMM-DRV v14.0 - TURN OFF RTS
148B - INT 14 - COMM-DRV v14.0 - SET USER INTERRUPT ROUTINE
148C - INT 14 - COURIERS.COM - SET SPEED
148C - INT 14 - COMM-DRV v14.0 - READ UART REGISTER
148D - INT 14 - COURIERS.COM - DECONFIGURE PORT
148D - INT 14 - COMM-DRV v14.0 - WRITE UART REGISTER
148E - INT 14 - COMM-DRV v14.0 - READ PACKET NONDESTRUCTIVELY
14A0 - INT 14 - 3com BAPI SERIAL I/O - CONNECT TO PORT
14A0--CXFFFF - INT 14 - Interconnections Inc. TES - INSTALLATION CHECK/STATUS REPORT
14A1 - INT 14 - 3com BAPI SERIAL I/O - DISCONNECT FROM PORT
14A1 - INT 14 - Interconnections Inc. TES - GET LIST OF SESSIONS WITH STATUS
14A2 - INT 14 - 3com BAPI SERIAL I/O - WRITE CHARACTER
14A2 - INT 14 - Interconnections Inc. TES - GET LIST OF SERVER NAMES
14A3 - INT 14 - 3com BAPI SERIAL I/O - READ CHARACTER
14A3 - INT 14 - Interconnections Inc. TES - START A NEW SESSION
14A4 - INT 14 - 3com BAPI SERIAL I/O - WRITE BLOCK
14A4 - INT 14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION
14A5 - INT 14 - 3com BAPI SERIAL I/O - READ BLOCK
14A5 - INT 14 - Interconnections Inc. TES - RESUME A SESSION
14A6 - INT 14 - 3com BAPI SERIAL I/O - SEND SHORT BREAK
14A6 - INT 14 - Interconnections Inc. TES - DROP A SESSION
14A7 - INT 14 - 3com BAPI SERIAL I/O - READ STATUS
14A7 - INT 14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION
14A8 - INT 14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER
14A8 - INT 14 - Novell TelAPI v4.01 - CONNECTION INFORMATION???
14A9 - INT 14 - Novell TelAPI v4.01 - CONNECTION CONTROL???
14AA01 - INT 14 - DimVGA v2.0+ - INSTALLATION CHECK
14AA02 - INT 14 - DimVGA v2.0+ - SET TIME-OUT (DIMMING/BLANKING) PERIOD
14AA03 - INT 14 - DimVGA v2.0+ - SET DIMMING FACTOR
14AA04 - INT 14 - DimVGA v2.0+ - GET TIME-OUT PERIOD
14AA05 - INT 14 - DimVGA v2.0+ - GET DIMMING FACTOR
14AA06 - INT 14 - DimVGA v2.0+ - DISABLE
14AA07 - INT 14 - DimVGA v2.0+ - ENABLE
14AA08 - INT 14 - DimVGA v2.0+ - DIM SCREEN 'MANUALLY'
14AA09 - INT 14 - DimVGA v2.0+ - UNDIM SCREEN 'MANUALLY'
14AA0A - INT 14 - DimVGA v2.0+ - CHECK WHETHER ENABLED
14AA0B - INT 14 - DimVGA v2.1+ - SET HOTKEY
14AA0C - INT 14 - DimVGA v2.1+ - GET HOTKEY
14AA0D - INT 14 - DimVGA v3.0+ - SET MOUSE CHECK STATUS
14AA0E - INT 14 - DimVGA v3.0+ - GET MOUSE CHECK STATUS
14AA0F - INT 14 - DimVGA v3.4 - SET LOCKING STATUS
14AA10 - INT 14 - DimVGA v3.4 - GET MOUSE CHECK STATUS
14AD - INT 14 - IBM SurePath BIOS - Officially "Private" Function
14AE - INT 14 - IBM SurePath BIOS - Officially "Private" Function
14AF - INT 14 - IBM SurePath BIOS - Officially "Private" Function
14AF00BXAAAA - INT 14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK
14B0 - INT 14 - 3com BAPI SERIAL I/O - EN/DISABLE "ENTER COMMAND MODE" (ECM) CHARACTER
14B1 - INT 14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE
14B2 - INT 14 - 3com BAPI SERIAL I/O - GET ECM WATCH STATE
14B3 - INT 14 - 3com BAPI SERIAL I/O - GET/SET CONFIGURATION INFO
14E0 - INT 14 - TelAPI - "telopen" - CREATE TELNET CONNECTION (BLOCKING)
14E000 - INT 14 - MX5 Extended FOSSIL - GET MNP STATUS BLOCK
14E001 - INT 14 - MX5 Extended FOSSIL - GET/SET MNP LEVEL
14E002 - INT 14 - MX5 Extended FOSSIL - GET/SET MNP ANSWER/ORIGINATE MODE
14E003 - INT 14 - MX5 Extended FOSSIL - GET/SET MNP WAIT TICKS
14E004 - INT 14 - MX5 Extended FOSSIL - GET/SET MNP CONNECT SOUND LEVEL
14E005 - INT 14 - MX5 Extended FOSSIL - UNINSTALL
14E006BX0000 - INT 14 - MX5 Extended FOSSIL - INSTALLATION CHECK
14E007 - INT 14 - MX5 Extended FOSSIL - WAIT SPECIFIED NUMBER OF TICKS
14E1 - INT 14 - TelAPI - "telclose" - TERMINATE TELNET CONNECTION
14E2 - INT 14 - TelAPI - "telread" - BUFFERED READ
14E3 - INT 14 - TelAPI - "telwrite" - BUFFERED WRITE
14E4 - INT 14 - TelAPI - "telioctl" - CONNECTION CONTROL
14E5 - INT 14 - TelAPI - "telreset" - RESET ALL CONNECTIONS
14E6 - INT 14 - TelAPI - "telunload" - UNINSTALL
14E7 - INT 14 - TelAPI - "tellist" - GET TELNET SESSION LIST
14E8 - INT 14 - TelAPI - "telattach" - ATTACH COM PORT TO/FROM TELNET SESSION
14E9 - INT 14 - TelAPI - "telportosn" - GET SESSION NUMBER FOR COM PORT
14EA - INT 14 - TelAPI - "telstatus" - GET TELNET CONNECTION STATUS INFORMATION
14EB - INT 14 - TelAPI - "telname" - GET AVAILABLE/INUSE STATUS FOR ALL SESSIONS
14EC - INT 14 - TelAPI - "telnblkopen" - CREATE TELNET CONNECTION (NON-BLOCKING)
14ED - INT 14 - TelAPI - "telpoll" - POLL TELNET SESSION FOR CONNECTION COMPLETION
14F0F0 - INT 14 - ASAP v1.0 - ???
14F0F1DX0000 - INT 14 - ASAP v1.0 - INSTALLATION CHECK
14F4FF - INT 14 - IBM/Yale EBIOS SERIAL I/O - INSTALLATION CHECK
14F9 - INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL
14FA - INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK
14FB - INT 14 - IBM/Yale EBIOS SERIAL I/O - SET OUTGOING MODEM SIGNALS
14FC - INT 14 - IBM/Yale EBIOS SERIAL I/O - READ CHARACTER, NO WAIT
14FD02 - INT 14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS
14FF00 - INT 14 - TelAPI - "telcheck" - INSTALLATION CHECK
14FF01 - INT 14 - IBM/Yale EBIOS SERIAL I/O - SET SEND BUFFER
14FF02 - INT 14 - IBM/Yale EBIOS SERIAL I/O - SET RECEIVE BUFFER
14FFF8 - INT 14 - COMM-DRV v14.0 - SET BAUD RATE DIVISOR
14FFFB - INT 14 - COMM-DRV v14.0 - GET HIGHEST ALLOWED PORT NUMBER
14FFFC - INT 14 - COMM-DRV v14.0 - GET INT 14 FLAGS
14FFFD - INT 14 - COMM-DRV v14.0 - SET INT 14 FLAGS
14FFFE - INT 14 - COMM-DRV v14.0 - RESTORE INT 14 VECTOR TO ORIGINAL
14FFFF - INT 14 - COMM-DRV v14.0 - GET INT 14 INFORMATION AREA
15 - INT 15 - Microsoft TSR Specification
1500 - INT 15 - CASSETTE - TURN ON TAPE DRIVE'S MOTOR (PC and PCjr only)
1500 - INT 15 - Amstrad PC1512 - GET AND RESET MOUSE COUNTS
1500 - INT 15 - VMiX v2+ - INSTALLATION CHECK
1500 - INT 15 - MultiDOS Plus - GIVE UP TIME SLICE
1501 - INT 15 - CASSETTE - TURN OFF TAPE DRIVE'S MOTOR (PC and PCjr only)
1501 - INT 15 - Amstrad PC1512 - WRITE DATA TO NON-VOLATILE RAM
1501 - INT 15 - VMiX - "sys_chanreq" - I/O CHANNEL OBJECT MANAGER
1501 - INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE
1502 - INT 15 - CASSETTE - READ DATA (PC and PCjr only)
1502 - INT 15 - Amstrad PC1512 - READ DATA FROM NON-VOLATILE RAM
1502 - INT 15 - VMiX - "sys_memreq" - MEMORY OBJECT MANAGER
1502 - INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE
1503 - INT 15 - CASSETTE - WRITE DATA (PC and PCjr only)
1503 - INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE WRITE REGISTER
1503 - INT 15 - VMiX - "sys_pinput" - PROMPTED CONSOLE INPUT
1503 - INT 15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL
1504 - INT 15 - SYSTEM - BUILD ABIOS SYSTEM PARAMETER TABLE (PS)
1504 - INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE READ REGISTER
1504 - INT 15 - VMiX - "sys_vprintf" - FORMATTED OUTPUT TO STREAM
1504 - INT 15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK
1505 - INT 15 - SYSTEM - BUILD ABIOS INITIALIZATION TABLE (PS)
1505 - INT 15 - Amstrad PC1512 - WRITE VDU GRAPHICS BORDER REGISTER
1505 - INT 15 - VMiX - "sys_getpid" - GET PROCESS ID OF CURRENT PROCESS
1505 - INT 15 - MultiDOS Plus - CHECK MAILBOX
1506 - INT 15 - Amstrad PC1512 - GET ROS VERSION NUMBER
1506 - INT 15 - VMiX - "sys_getpcb" - GET POINTER TO PROCESS CONTROL BLOCK
1506 - INT 15 - MultiDOS Plus - READ MAILBOX
1507 - INT 15 - VMiX - "sys_getocb" - GET POINTER TO OBJECT CONTROL BLOCK
1507 - INT 15 - IBM SurePath BIOS - Officially "Private" Function
1507 - INT 15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD)
1508 - INT 15 - VMiX - "sys_getccb" - GET CHANNEL CONTROL BLOCK
1508 - INT 15 - IBM SurePath BIOS - WAIT REQUESTED TIME PERIOD
1508 - INT 15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD)
1509 - INT 15 - VMiX - "sys_getqueue" - GET ID OF QUEUED ELEMENT
1509 - INT 15 - IBM BIOS - RESERVED FOR PCMCIA SYSTEM RESOURCE TABLE ACCESS
1509 - INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY
150A - INT 15 - VMiX - "sys_qetqnext" - GET ID OF NEXT QUEUED ELEMENT
150A - INT 15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL
150B - INT 15 - VMiX - "sys_sysreq" - SYSTEM CONFIGURATION MANAGER
150B - INT 15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY
150C - INT 15 - VMiX - "sys_getstack" - GET POINTER TO PROCESS TSS STACK
150C - INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY
150D - INT 15 - VMiX - "sys_spawn" - START A CHILD PROCESS JOB SHELL
150D - INT 15 - MultiDOS Plus - DISABLE MULTITASKING
150E - INT 15 - VMiX - "sys_kill" - HARD TERMINATE PROCESS
150E - INT 15 - MultiDOS Plus - ENABLE MULTITASKING
150F - INT 15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only)
150F - INT 15 - VMiX - "sys_getqkey" - GET KEY FIELD OF QUEUED ELEMENT
150F - INT 15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND
Section -
1510 - INT 15 - VMiX - "sys_virtual" - EXECUTE CONFORMING FUNCTION IN PROTECTED MODE
1510 - INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE
151000 - INT 15 - TopView - "PAUSE" - GIVE UP CPU TIME
151001 - INT 15 - TopView - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
151002 - INT 15 - TopView - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
151003 - INT 15 - TopView - "PRINTC" - DISPLAY CHARACTER/ATTRIBUTE ON SCREEN
1510 - INT 15 - TopView - UNIMPLEMENTED IN DV 2.x
151013 - INT 15 - TopView - "GETBIT" - DEFINE A 2ND-LEVEL INTERRUPT HANDLER
151014 - INT 15 - TopView - "FREEBIT" - UNDEFINE A 2ND-LEVEL INTERRUPT HANDLER
151015 - INT 15 - TopView - "SETBIT" - SCHEDULE ONE OR MORE 2ND-LEVEL INTERRUPTS
151016 - INT 15 - TopView - "ISOBJ" - VERIFY OBJECT HANDLE
151017 - INT 15 - TopView - UNIMPLEMENTED IN DV 2.x
151018 - INT 15 - TopView - "LOCATE" - FIND WINDOW AT A GIVEN SCREEN LOCATION
151019 - INT 15 - TopView - "SOUND" - MAKE TONE
15101A - INT 15 - TopView - "OSTACK" - SWITCH TO TASK'S INTERNAL STACK
15101B - INT 15 - TopView - "BEGINC" - BEGIN CRITICAL REGION
15101C - INT 15 - TopView - "ENDC" - END CRITICAL REGION
15101D - INT 15 - TopView - "STOP" - STOP TASK
15101E - INT 15 - TopView - "START" - START TASK
15101F - INT 15 - TopView - "DISPEROR" - POP-UP ERROR WINDOW
151020 - INT 15 - TopView - UNIMPLEMENTED IN DV v2.00+
151021 - INT 15 - TopView - "PGMINT" - INTERRUPT ANOTHER TASK
151022BX0000 - INT 15 - TopView - "GETVER" - GET VERSION
151023 - INT 15 - TopView - "POSWIN" - POSITION WINDOW
151024 - INT 15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO
151025 - INT 15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK
1510 - INT 15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x
15102B - INT 15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK
15102C - INT 15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS
15102D - INT 15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL
15102E - INT 15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY
1511 - INT 15 - TopView commands
1511 - INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS
1511 - INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE
151117BX0000 - INT 15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
1511DE - INT 15 - DESQview - QEXT.SYS - INSTALLATION CHECK
1512 - INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP
1512 - INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE
1512--BH00 - INT 15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE
1512--BH01 - INT 15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT
1512--BH02 - INT 15 - TopView - SEND MESSAGE - "FREE" - FREE AN OBJECT
1512--BH03 - INT 15 - TopView - SEND MESSAGE - "ADDR" - GET HANDLE OF MESSAGE SENDER
1512--BH03 - INT 15 - DESQview v2.26+ - "CONNECT" - CONNECT TWO WINDOWS
1512--BX0300 - INT 15 - TopView - SEND MESSAGE - "DIR" - GET PANEL FILE DIRECTORY
1512--BH04 - INT 15 - TopView - SEND MESSAGE - "READ" - READ NEXT LOGICAL LINE OF WINDOW
1512--BH04 - INT 15 - TopView - SEND MESSAGE - "READ" - GET NEXT RECORD FROM OBJECT
1512--BX0400 - INT 15 - TopView - SEND MESSAGE - "READ" - WAIT FOR TIMER TO EXPIRE
1512--BX0400 - INT 15 - TopView - SEND MESSAGE - "APPLY" - WRITE PANEL TO WINDOW
1512--BH05 - INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE TO OBJECT
1512--BH05 - INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE STRING TO WINDOW
1512--BH06 - INT 15 - DESQview 2.20+ - SEND MESSAGE - "SETPRI" - SET PRIORITY WITHIN OBJECTQ
1512--BH07 - INT 15 - DESQview 2.20+ - SEND MESSAGE - "GETPRI" - GET PRIORITY WITHIN OBJECTQ
1512--BH08 - INT 15 - TopView - SEND MESSAGE - "SIZEOF" - GET OBJECT SIZE
1512--BH09 - INT 15 - TopView - SEND MESSAGE - "LEN" - GET OBJECT LENGTH
1512--BH0A - INT 15 - TopView - SEND MESSAGE - "ADDTO" - WRITE CHARS AND ATTRIBS TO WINDOW
1512--BH0A - INT 15 - TopView - SEND MESSAGE - "ADDTO" - SEND MAILBOX MESSAGE/STAT BY VALUE
1512--BH0A - INT 15 - TopView - SEND MESSAGE - "ADDTO" - SET OBJECT BITS
1512--BH0B - INT 15 - TopView - SEND MESSAGE - "SUBFROM" - WRITE ATTRIBUTES TO WINDOW
1512--BH0B - INT 15 - TopView - SEND MESSAGE - "SUBFROM" - SEND MAILBOX MESSAGE/STAT BY REF
1512--BH0B - INT 15 - TopView - SEND MESSAGE - "SUBFROM" - REMOVE OBJECT FROM OBJECTQ
1512--BH0B - INT 15 - TopView - SEND MESSAGE - "SUBFROM" - RESET OBJECT BITS
1512--BH0C - INT 15 - TopView - SEND MESSAGE - "OPEN" - OPEN OBJECT
1512--BH0D - INT 15 - TopView - SEND MESSAGE - "CLOSE" - CLOSE OBJECT
1512--BH0E - INT 15 - TopView - SEND MESSAGE - "ERASE" - ERASE OBJECT
1512--BH0F - INT 15 - TopView - SEND MESSAGE - "STATUS" - GET OBJECT STATUS
1512--BH10 - INT 15 - TopView - SEND MESSAGE - "EOF" - GET OBJECT EOF STATUS
1512--BH11 - INT 15 - TopView - SEND MESSAGE - "AT" - POSITION OBJECT CURSOR
1512--BH11 - INT 15 - TopView - SEND MESSAGE - "SETNAME" - ASSIGN NAME TO MAILBOX
1512--BX1100 - INT 15 - TopView - SEND MESSAGE - "SETSCALE" - SET POINTER SCALE FACTOR
1512--BH12 - INT 15 - TopView - SEND MESSAGE - "READN" - GET NEXT N OBJECT BYTES
1512--BH12 - INT 15 - DESQview 2.50+ - SEND MESSAGE - "GETNAME" - GET NAME OF MAILBOX
1512--BX1200 - INT 15 - TopView - SEND MESSAGE - "GETSCALE" - GET POINTER SCALE FACTOR
1512--BH13 - INT 15 - TopView - SEND MESSAGE - "REDRAW" - REDRAW WINDOW
1512--BH13 - INT 15 - DESQview 2.50+ - SEND MESSAGE - "READINTO" - GET NEXT MAIL MESSAGE
1512--BX1300 - INT 15 - TopView - SEND MESSAGE - "SETICON" - SPECIFY POINTER ICON
1512--BH14 - INT 15 - TopView - SEND MESSAGE - "SETESC" - SET ESCAPE ROUTINE ADDRESS
1512--BH14 - INT 15 - TopView - SEND MESSAGE - "LOCK" - REQUEST EXCLUSIVE ACCESS TO RESOURCE
1512--BH15 - INT 15 - DESQview v2.20+ - SEND MESSAGE - "SETFLAGS" - SET OBJECT FLAGS
1512--BH16 - INT 15 - DESQview v2.20+ - SEND MESSAGE - "GETFLAGS" - GET OBJECT FLAGS
1512--BH17 - INT 15 - DESQview v2.42-2.52 - BUG
1512--BH80 - INT 15 - DESQview v2.50+ - SEND MESSAGE 00h WITH ERROR RECOVERY
1512--BH81 - INT 15 - DESQview v2.50+ - SEND MESSAGE 01h WITH ERROR RECOVERY
1512--BH82 - INT 15 - DESQview v2.50+ - SEND MESSAGE 02h WITH ERROR RECOVERY
1512--BH83 - INT 15 - DESQview v2.50+ - SEND MESSAGE 03h WITH ERROR RECOVERY
1512--BH84 - INT 15 - DESQview v2.50+ - SEND MESSAGE 04h WITH ERROR RECOVERY
1512--BH85 - INT 15 - DESQview v2.50+ - SEND MESSAGE 05h WITH ERROR RECOVERY
1512--BH86 - INT 15 - DESQview v2.50+ - SEND MESSAGE 06h WITH ERROR RECOVERY
1512--BH87 - INT 15 - DESQview v2.50+ - SEND MESSAGE 07h WITH ERROR RECOVERY
1512--BH88 - INT 15 - DESQview v2.50+ - SEND MESSAGE 08h WITH ERROR RECOVERY
1512--BH89 - INT 15 - DESQview v2.50+ - SEND MESSAGE 09h WITH ERROR RECOVERY
1512--BH8A - INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ah WITH ERROR RECOVERY
1512--BH8B - INT 15 - DESQview v2.50+ - SEND MESSAGE 0Bh WITH ERROR RECOVERY
1512--BH8C - INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ch WITH ERROR RECOVERY
1512--BH8D - INT 15 - DESQview v2.50+ - SEND MESSAGE 0Dh WITH ERROR RECOVERY
1512--BH8E - INT 15 - DESQview v2.50+ - SEND MESSAGE 0Eh WITH ERROR RECOVERY
1512--BH8F - INT 15 - DESQview v2.50+ - SEND MESSAGE 0Fh WITH ERROR RECOVERY
1512--BH90 - INT 15 - DESQview v2.50+ - SEND MESSAGE 10h WITH ERROR RECOVERY
1512--BH91 - INT 15 - DESQview v2.50+ - SEND MESSAGE 11h WITH ERROR RECOVERY
1512--BH92 - INT 15 - DESQview v2.50+ - SEND MESSAGE 12h WITH ERROR RECOVERY
1512--BH93 - INT 15 - DESQview v2.50+ - SEND MESSAGE 13h WITH ERROR RECOVERY
1512--BH94 - INT 15 - DESQview v2.50+ - SEND MESSAGE 14h WITH ERROR RECOVERY
1512--BH95 - INT 15 - DESQview v2.50+ - SEND MESSAGE 15h WITH ERROR RECOVERY
1512--BH96 - INT 15 - DESQview v2.50+ - SEND MESSAGE 16h WITH ERROR RECOVERY
1513 - INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS
1513 - INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK
1514 - INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW
1514 - INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND
1515 - INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE
1515 - INT 15 - MultiDOS Plus - GET SYSTEM BLOCK
1516 - INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR
1516 - INT 15 - MultiDOS Plus - INITIALIZATION
1517 - INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS
1517 - INT 15 - MultiDOS Plus - MAP IRQ
1518 - INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS
1518 - INT 15 - MultiDOS Plus - UNMAP IRQ
1519 - INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS
1519 - INT 15 - MultiDOS Plus - UNMAP ALL IRQs
151A - INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT
151A - INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER
151B - INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK
151B - INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME
151C - INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION
151C - INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME
151D - INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT
151D - INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME
151E - INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT
151E00 - INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER
151E01 - INT 15 - MultiDOS Plus - TRIGGER EVENT
151E02 - INT 15 - MultiDOS Plus - WAIT FOR EVENT
151E08 - INT 15 - MultiDOS Plus 4.01 - SET CONTEXT-SWITCH FUNCTIONS
151F - INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW
151F - INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS
1520 - INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED
152000 - INT 15 U - DOS 3.0+ PRINT.COM - DISABLE CRITICAL REGION FLAG
152001 - INT 15 U - DOS 3.0+ PRINT.COM - SET CRITICAL REGION FLAG
152010 - INT 15 - OS HOOK - SETUP SYSREQ ROUTINE (AT,XT286,PS50+)
152011 - INT 15 - OS HOOK - COMPLETION OF SYSREQ FUNCTION (AT,XT286,PS50+)
1521 - INT 15 - SYSTEM - POWER-ON SELF-TEST ERROR LOG (PS50+)
1522 - INT 15 - SYSTEM - later PS/2s - LOCATE ROM BASIC
152300 - INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ??? CMOS DATA
152301 - INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SET ??? CMOS DATA
152302 - INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ROM STARTUP VIDEO REG TABLES
152303 - INT 15 U - IBM BIOS - SMART ENERGY SYSTEM - ???
152304 - INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SYSTEM SETUP
152305 - INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET PROCESSOR SPEED
152400 - INT 15 - SYSTEM - later PS/2s - DISABLE A20 GATE
152401 - INT 15 - SYSTEM - later PS/2s - ENABLE A20 GATE
152402 - INT 15 - SYSTEM - later PS/2s - GET A20 GATE STATUS
152403 - INT 15 - SYSTEM - later PS/2s - QUERY A20 GATE SUPPORT
153000 - INT 15 - Object Kernel for DOS - INSTALLATION CHECK
153001 - INT 15 - Object Kernel for DOS - GET STATUS BLOCK
153002 - INT 15 - Object Kernel for DOS - KILL PROCESS
153003 - INT 15 - Object Kernel for DOS - STOP PROCESS
153004 - INT 15 - Object Kernel for DOS - START PROCESS
153005 - INT 15 - Object Kernel for DOS - RESTART PROCESS
153006 - INT 15 - Object Kernel for DOS - EXECUTE PROCESS
153007 - INT 15 - Object Kernel for DOS - LIST PROCESSES
153008 - INT 15 - Object Kernel for DOS - SWITCH ObjectKernel ON/OFF
153009 - INT 15 - Object Kernel for DOS - RESERVED FOR FUTURE USE
153D - INT 15 - IBM SurePath BIOS - Officially "Private" Function
153E - INT 15 - IBM SurePath BIOS - Officially "Private" Function
153F - INT 15 - IBM SurePath BIOS - Officially "Private" Function
1540 - INT 15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE)
154000 - INT 15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT
154001 - INT 15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT
1541 - INT 15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE and some others)
1542 - INT 15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX)
154280 - INT 15 - Compaq SLT/286 - ENTER STANDBY
1543 - INT 15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE)
1544 - INT 15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE)
1544C0 - INT 15 - Olivetti Quaderno - INITIALIZE DIGITAL SIGNAL PROCESSING???
1544C1 - INT 15 - Olivetti Quaderno - ???
1544C2 - INT 15 - Olivetti Quaderno - ???
1544C3 - INT 15 - Olivetti Quaderno - GET ???
1544C4 - INT 15 - Olivetti Quaderno - ???
1544C6 - INT 15 - Olivetti Quaderno - READ LCD
1544C7 - INT 15 - Olivetti Quaderno - WRITE LCD
1544C8 - INT 15 - Olivetti Quaderno - ???
1544C9 - INT 15 - Olivetti Quaderno - GET XBIOS VERSION
1544F1 - INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
1544F2BX0604 - INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
1544F3 - INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
1545 - INT 15 U - HP 100LX/200LX - SET DISPLAY CONTROL STATUS
1546 - INT 15 U - HP 100LX/200LX - SET POWER OFF TIMEOUT
154600 - INT 15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION
154601 - INT 15 - Compaq SLT/286 - MODIFY POWER CONSERVATION/MODEM CONFIGURATION
154604 - INT 15 - Compaq Contura 486 and "Alladin" 1993/08/05 ROMs - GET ???
154605 - INT 15 - Compaq Contura 486 and "Alladin" 1993/08/05 ROMs - ???
1547 - INT 15 U - HP 100LX/200LX - GET/SET DISPLAY CONTRAST
1548 - INT 15 U - HP 100LX/200LX - SET BUZZER VOLUME
1549 - INT 15 U - HP 100LX/200LX - SERIAL INTERFACE SELECT
154900 - INT 15 - Far East MS-DOS - GET BIOS TYPE
154A - INT 15 U - HP 100LX/200LX - SERIAL INTERFACE CONTROL
154B - INT 15 U - HP 100LX/200LX - ADJUST SYSTEM TIME
154DD4 - INT 15 - HP 95LX/100LX/200LX - INSTALLATION CHECK
154E - INT 15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP
154E - INT 15 - IBM SurePath BIOS - Officially "Private" Function
154F - INT 15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)
1550 - INT 15 - DOS/V - FONT SUBSYSTEM ACCESS
1550 - INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE
1551 - INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE
155101 - INT 15 - SYSTEM - later PS/2s - EXPANSION UNIT, RETURN CONFIGURATION NUMBER
1552 - INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT
1552 - INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT
155300 - INT 15 - Advanced Power Management v1.0+ - INSTALLATION CHECK
155301 - INT 15 - Advanced Power Management v1.0+ - CONNECT REAL-MODE INTERFACE
155302 - INT 15 R - Advanced Power Management v1.0+ - CONNECT 16-BIT PROTMODE INTERFACE
155303 - INT 15 - Advanced Power Management v1.0+ - CONNECT 32-BIT PROTMODE INTERFACE
155304 - INT 15 - Advanced Power Management v1.0+ - DISCONNECT INTERFACE
155305 - INT 15 - Advanced Power Management v1.0+ - CPU IDLE
155306 - INT 15 - Advanced Power Management v1.0+ - CPU BUSY
155307 - INT 15 - Advanced Power Management v1.0+ - SET POWER STATE
155307CX0001 - INT 15 - Advanced Power Management v1.0+ - SYSTEM STAND-BY
155307CX0002 - INT 15 - Advanced Power Management v1.0+ - SUSPEND SYSTEM
155307CX0003 - INT 15 - Advanced Power Management v1.2 - TURN OFF SYSTEM
155308 - INT 15 - Advanced Power Management v1.0+ - ENABLE/DISABLE POWER MANAGEMENT
155309 - INT 15 - Advanced Power Management v1.0+ - RESTORE POWER-ON DEFAULTS
15530A - INT 15 - Advanced Power Management v1.0+ - GET POWER STATUS
15530B - INT 15 - Advanced Power Management v1.0+ - GET POWER MANAGEMENT EVENT
15530C - INT 15 - Advanced Power Management v1.1+ - GET POWER STATE
15530D - INT 15 - Advanced Power Management v1.1+ - EN/DISABLE DEVICE POWER MANAGEMENT
15530E - INT 15 - Advanced Power Management v1.1+ - DRIVER VERSION
15530F - INT 15 - Advanced Power Management v1.1+ - ENGAGE/DISENGAGE POWER MANAGEMENT
155310 - INT 15 - Advanced Power Management v1.2 - GET CAPABILITIES
155311 - INT 15 - Advanced Power Management v1.2 - GET/SET/DISABLE RESUME TIMER
155312 - INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE RESUME ON RING
155313 - INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE TIMER-BASED REQUESTS
155380BH00 - INT 15 - APM SL Enhanced v1.0 - GET SUSPEND/GLOBAL STANDBY MODE
155380BH01 - INT 15 - APM SL Enhanced v1.0 - SET SUSPEND/GLOBAL STANDBY MODE
155380BH02 - INT 15 - APM SL Enhanced v1.0 - GET GLOBAL STANDBY TIMER
155380BH03 - INT 15 - APM SL Enhanced v1.0 - SET GLOBAL STANDBY TIMER
155380BH04 - INT 15 - APM SL Enhanced v1.0 - GET AUTO POWER OFF TIMER
155380BH05 - INT 15 - APM SL Enhanced v1.0 - SET AUTO POWER OFF TIMER
155380BH06 - INT 15 - APM SL Enhanced v1.0 - GET RESUME CONDITION
155380BH07 - INT 15 - APM SL Enhanced v1.0 - SET RESUME CONDITION
155380BH08 - INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT TIME
155380BH09 - INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT TIME
155380BH0A - INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT DATE
155380BH0B - INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT DATE
155380BH0C - INT 15 - APM SL Enhanced v1.0 - GET CPU SPEED MODE
155380BH0D - INT 15 - APM SL Enhanced v1.0 - SET CPU SPEED MODE
155380BH7E - INT 15 - APM SL Enhanced v1.0 - SL HW PARAMETER
155380BH7F - INT 15 - Advanced Power Management v1.1 - OEM APM INSTALLATION CHECK
155380 - INT 15 - Advanced Power Management v1.1 - OEM APM FUNCTIONS
155380BX8000 - INT 15 U - Phoenix BIOS 4.0 Rel 6.0 - ???
155380BX8001 - INT 15 U - Phoenix BIOS 4.0 Rel 6.0 - ???
1553B0BH00 - INT 15 - Intel System Management Bus - RESERVED
1553B0BH01 - INT 15 - Intel System Management Bus - INSTALLATION CHECK
1553B0BH02 - INT 15 - Intel System Management Bus - REAL MODE CONNECT
1553B0BH03 - INT 15 - Intel System Management Bus - 16-BIT PROTECTED-MODE CONNECT
1553B0BH04 - INT 15 - Intel System Management Bus - 32-BIT PROTECTED-MODE CONNECT
1553B0BH05 - INT 15 - Intel System Management Bus - DISCONNECT
1553B0BH06 - INT 15 - Intel System Management Bus - GET DEVICE ADDRESSES
1553B0BH07 - INT 15 - Intel System Management Bus - RETRIEVE CRITICAL MESSAGES
1553B0BH08 - INT 15 - Intel System Management Bus - RESERVED
1553B0BH10 - INT 15 - Intel System Management Bus - REQUEST
1553B0BH11 - INT 15 - Intel System Management Bus - REQUEST CONTINUATION
1553B0BH12 - INT 15 - Intel System Management Bus - REQUEST ABORT
1553B0BH13 - INT 15 - Intel System Management Bus - REQUEST DATA AND STATUS
1554 - INT 15 - IBM SurePath BIOS - Officially "Private" Function
155400 - INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION
155401 - INT 15 C - Omniview Multitasker - PROCESS CREATION
155402 - INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION
155403 - INT 15 C - Omniview Multitasker - SAVE
155404 - INT 15 C - Omniview Multitasker - RESTORE
155405 - INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND
155406 - INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND
155407 - INT 15 C - Omniview Multitasker - EXIT NOTIFICATION
155F31 - INT 15 C - Chips & Technologies '65530' BIOS - POST INITIALIZATION NOTIFICATION
155F33 - INT 15 C - Chips & Technologies '65530' BIOS - MODE SET HOOK
155F35 - INT 15 C - Chips & Technologies '65530' BIOS - MONITOR SENSING HOOK
1560 - INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED
156000 - INT 15 U - HP 100LX/200LX - GET MAIN BATTERY LEVEL
156001 - INT 15 U - HP 100LX/200LX - GET BACKUP BATTERY LEVEL
156002 - INT 15 U - HP 100LX/200LX - GET POWER INFO
156003 - INT 15 U - HP 100LX/200LX - SET MAIN BATTERY TYPE
156004 - INT 15 U - HP 100LX/200LX - SET BATTERY CHARGING MODE
1561 - INT 15 - HUNTER 16 - GET POWER LEVEL
1561 - INT 15 U - HP 100LX/200LX - SET ANNOUNCIATORS POSITION
1562 - INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD
1562 - INT 15 U - HP 100LX/200LX - SET DISPLAY CONTRAST
156300 - INT 15 - HUNTER 16 - GET IDLE TIMEOUT
156301 - INT 15 - HUNTER 16 - SET IDLE TIMEOUT
1564 - INT 15 - HUNTER 16 - CONTROL RESUME MODE
1565 - INT 15 - HUNTER 16 - AUTHORISE CHARGING
1566 - INT 15 - HUNTER 16 - SET BATTERY LEVEL
1567 - INT 15 - HUNTER 16 - CONTROL STOP MODE
156700BXFFFF - INT 15h - Arabic/Hebrew MS-DOS 5.0???+ - INSTALLATION CHECK
- INT 15h - Arabic/Hebrew MS-DOS 5.0???+ - HGC & HGC/RAMFont support???
1568 - INT 15 - HUNTER 16 - REQUEST POWER DOWN
1569 - INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY
156A - INT 15 - HUNTER 16 - CONTROL SLOW MODE
156B - INT 15 - HUNTER 16 - GET ROM BIOS VERSION
156C - INT 15 - HUNTER 16 - GET SERIAL NUMBER
156D - INT 15 - HUNTER 16 - GET EVENT DETAIL
156E - INT 15 - HUNTER 16 - ENABLE/TRAP EVENT
156F - INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT
1570 - INT 15 - HUNTER 16 - CONTROL SOUND
157000 - INT 15 - Tandy 1000SL/TL - READ FROM EEPROM
157001 - INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM
157002 - INT 15 U - Tandy 1000 Model ??? - GET ROM PAGE
157003 - INT 15 U - Tandy 1000 Model ??? - SET ROM PAGE
1571 - INT 15 - HUNTER 16 - SELECT POWER UP KEYS
157200 - INT 15 - HUNTER 16 - RESET SERIAL NUMBER
1572 - INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER
1573 - INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL
1574 - INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE
1575 - INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE
1576 - INT 15 - HUNTER 16 - CONTROL POWER SAVE
1579 - INT 15 - HUNTER 16 - REDIRECT LPT1
157A - INT 15 - HUNTER 16 - INVOKE HOT KEY
157B - INT 15 - HUNTER 16 - CONTROL HOT KEY
157C - INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION
157D - INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF
157E - INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM)
157F - INT 15 - HUNTER 16 - SET BATTERY TYPE (APM)
1580 - INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
1580 - INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
1581 - INT 15 C - OS HOOK - DEVICE CLOSE
1581 - INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
1582 - INT 15 C - OS HOOK - PROGRAM TERMINATION
1582 - INT 15 - HUNTER 16 - SOUND OUTPUT
1583 - INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
1583 - INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
1584 - INT 15 - BIOS - JOYSTICK SUPPORT (XT after 1982/11/8,AT,XT286,PS)
1584 - INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT
1584--DX0002 - INT 15 - AMIGATSR - INSTALLATION CHECK
1584--DX0002 - INT 15 - MULTIJOY - INSTALLATION CHECK
1584--DX0003 - INT 15 - MULTIJOY - GET ACTIVE JOYSTICK
1584--DX0004 - INT 15 - MULTIJOY - SELECT JOYSTICK
158400 - INT 15 - HUNTER 16 - GET DISKETTE PORT
158401 - INT 15 - HUNTER 16 - SET DISKETTE PORT
1585 - INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
158500 - INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
158501 - INT 15 - HUNTER 16 - SET POWER MENU (APM)
1586 - INT 15 - BIOS - WAIT (AT,PS)
1586 - INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
1587 - INT 15 - SYSTEM - COPY EXTENDED MEMORY
1587 - INT 15 - HUNTER 16 - SET INT 72h VECTOR
1588 - INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
1588 - INT 15 - HUNTER 16 - GET POWER UP KEYS
1589 - INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
158900 - INT 15 - HUNTER 16 - GET POWER MODE
158901 - INT 15 - HUNTER 16 - SET POWER MODE
158A - INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
158A - INT 15 - Phoenix BIOS v4.0 - GET BIG MEMORY SIZE
158B - INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
158C - INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
158D - INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
1590 - INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
1591 - INT 15 - OS HOOK - DEVICE POST (AT,PS)
1592 - INT 15 - IBM SurePath BIOS - Officially "Private" Function
15A0 - INT 15 - IBM SurePath BIOS - ACCESS LOADABLE-ABIOS SIGNATURE
15A100 - INT 15 U - AMI PCI BIOS - SET ??? FLAG
15AB - INT 15 - IBM SurePath BIOS - Officially "Private" Function
15B001CX5354 - INT 15 - Stac STACKER - INSTALLATION CHECK
15BA10 - INT 15 - HP OmniShare - Pen Driver - REPORT PEN CONTROL AREA EVENT
15BA11 - INT 15 - HP OmniShare - Pen Driver - SET THE COMMUNICATION LED STATE
15BA12 - INT 15 - HP OmniShare - Pen Driver - STORE PEN BATTERY CHARGE
15BA13 - INT 15 - HP OmniShare - Pen Driver - GET PEN BATTERY CHARGE
15BA20 - INT 15 - HP OmniShare - STANDBY.COM - INSTALLATION CHECK
15BA21 - INT 15 - HP OmniShare - STANDBY.COM - SET STANDBY DURATION
15BA22 - INT 15 - HP OmniShare - STANDBY.COM - GET STANDBY DURATION
15BA23 - INT 15 - HP OmniShare - STANDBY.COM - TURN ON THE SCREEN IMMEDIATELY
15BA24 - INT 15 - HP OmniShare - STANDBY.COM - TURN OFF THE SCREEN IMMEDIATELY
15BA25 - INT 15 - HP OmniShare - STANDBY.COM - PREPARE FOR UNINSTALL
15BA26 - INT 15 - HP OmniShare - STANDBY.COM - IS THE DISPLAY IN STANDBY MODE?
15BA27 - INT 15 - HP OmniShare - STANDBY.COM - RESERVED FUNCTIONS
15BC - INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
15BF00 - INT 15 - Rational Systems DOS/16M - ???
15BF01 - INT 15 - Rational Systems DOS/16M - ???
15BF02DX0000 - INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
15BF03 - INT 15 - Rational Systems DOS/4GW - UNINSTALL???
15BF04 - INT 15 - Rational Systems DOS/4GW - ???
15BF05 - INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
15BF06 - INT 15 - Rational Systems DOS/4GW - ???
15BFDCDX0000 - INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
15BFDEBX0000 - INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
15BFDEBX0001 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
15BFDEBX0002 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
15BFDEBX0003 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
15BFDEBX0004 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
15BFDEBX0005 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
15BFDEBX0006 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
15BFDEBX0007 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
15BFDEBX0008 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
15BFDEBX0009 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
15BFDEBX000A - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
15BFDEBX000B - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
15BFDEBX000C - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
15BFDEBX000D - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
15BFDEBX000E - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
15BFDEBX000F - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
15BFDEBX0010 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
15BFDEBX0011 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
15BFDEBX0012 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
15BFDEBX0013 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
15BFDEBX0014 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
15BFDEBX0015 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
15BFDEBX0016 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
15BFDEBX0017 - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
15BFDEBXFFFD - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
15BFDEBXFFFE - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
15BFDEBXFFFF - INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
15C0 - INT 15 - SYSTEM - GET CONFIGURATION (XT >1986/1/10,AT mdl 3x9,CONV,XT286,PS)
15C1 - INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
15C200 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
15C201 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
15C202 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
15C203 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
15C204 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
15C205 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
15C206 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
15C207 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
15C208 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - WRITE TO POINTER PORT
15C209 - INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - READ FROM POINTER PORT
15C2 - INT 15 - IBM SurePath BIOS - Officially "Private" Function
15C3 - INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
15C4 - INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
15C5 - INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
15C6 - INT 15 U - later PS/2 models - GET POS DATA
15C7 - INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
15C8 - INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
15C9 - INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
15CA - INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY
15CB - INT 15 U - PS/2 Model 95 - RESERVED
15CC - INT 15 U - PS/2 Model 95 - RESERVED
15CCCC - INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK
15CD - INT 15 U - PS/2 Model 95 - RESERVED
15CE--BL00 - INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL
15CF - INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL
15D0 - INT 15 - later PS/2s - RESERVED
15D042BL00 - INT 15 R - Intel Pentium Pro BIOS UPDATE - INSTALLATION CHECK
15D042BL01 - INT 15 R - Intel Pentium Pro BIOS UPDATE - WRITE BIOS UPDATE AREA
15D042BL02 - INT 15 R - Intel Pentium Pro BIOS UPDATE - BIOS UPDATE CONTROL
15D042BL03 - INT 15 R - Intel Pentium Pro BIOS UPDATE - READ BIOS UPDATE AREA
15D100DX0000 - INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES
15D101 - INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER
15D102 - INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS
15D103DX0000 - INT 15 - later PS/2s - RETURN ENTIRE DDT
15D104 - INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID
15D2 - INT 15 - later PS/2s - RESERVED
15D3 - INT 15 - later PS/2s - RESERVED
15D4 - INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT)
15D5 - INT 15 - later PS/2s - RESERVED
15D600BL00 - INT 15 - later PS/2s - READ BOOT DEVICE ID
15D600BL01 - INT 15 - later PS/2s - WRITE BOOT DEVICE ID
15D601BL00 - INT 15 - later PS/2s - READ BOOT DEVICE KEY
15D601BL01 - INT 15 - later PS/2s - WRITE BOOT DEVICE KEY
15D602 - INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION
15D800 - INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION
15D801 - INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION
15D802 - INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)
15D803 - INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY
15D804 - INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT
15D820 - INT 15 - Compaq LTE Lite - GET ???
15D821 - INT 15 - Compaq LTE Lite - SET ???
15D822BL00 - INT 15 - Compaq EISA System ROM 04/08/93 - GET ???
15D823 - INT 15 - Compaq EISA System ROM 04/08/93 - ???
15D824 - INT 15 - Compaq EISA System ROM 04/08/93 - ???
15D825 - INT 15 - Compaq EISA System ROM 04/08/93 - ???
15D826 - INT 15 - Compaq EISA System ROM 04/08/93 - ???
15D8 - INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS
15D8 - INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS
15DA - INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
15DA00 - INT 15 U - AMI PCI BIOS - ???
15DA01 - INT 15 U - AMI PCI BIOS - CPU SPEED CONTROL
15DA05 - INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
15DA08 - INT 15 U - AMI PCI BIOS - ???
15DA12 - INT 15 U - AMI PCI BIOS - v1.00.05.AX1 - ???
15DA14 - INT 15 U - AMI PCI BIOS - GET/SET ???
15DA15 - INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
15DA19 - INT 15 U - AMI PCI BIOS - GET/SET ???
15DA20 - INT 15 U - AMI PCI BIOS v1.00.12.AX1T - CMOS RAM BITFIELD MANIPULATION
15DA88 - INT 15 U - AMI PCI BIOS - GET EXTENDED MEMORY SIZE
15DA8C - INT 15 U - AMI PCI BIOS - GET BIOS AND CHIPSET IDENTIFICATION
15DA8E - INT 15 U - AMI PCI BIOS - ???
15DA92 - INT 15 U - AMI PCI BIOS - GET CPU TYPE AND SPEED
15DA99 - INT 15 U - AMI PCI BIOS - GET/SET ??? FLAG
15DB00 - INT 15 U - AMI BIOS - Flash ROM - READ FLASH BIOS
15DB01 - INT 15 U - AMI BIOS - Flash ROM - GET BIOS SUBSYSTEM INFORMATION
15DB02 - INT 15 U - AMI BIOS - Flash ROM - GET SIZE OF FLASH ROM PROGRAMMING CODE
15DB03 - INT 15 U - AMI BIOS - Flash ROM - GET FLASH ROM PROGRAMMING CODE
15DB04 - INT 15 U - AMI BIOS - Flash ROM - GET BIOS REVISION
15DE00 - INT 15 - DESQview - GET PROGRAM NAME
15DE01 - INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU
15DE02 - INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW
15DE03 - INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW
15DE04 - INT 15 - DESQview - GET AVAILABLE COMMON MEMORY
15DE05 - INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY
15DE06 - INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY
15DE07 - INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER
15DE08 - INT 15 - DESQview - GET ???
15DE09 - INT 15 - DESQview - UNIMPLEMENTED
15DE0A - INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE
15DE0B - INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED
15DE0C - INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
15DE0D - INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
15DE0E - INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME
15DE0F - INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS
15DE10 - INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM
15DE11BL00 - INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION
15DE12BX0000 - INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET
15DE13 - INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT
15DE14 - INT 15 - DESQview v2.20+ - GET OBJECT TYPE
15DE15 - INT 15 - DESQview v2.20+ - SET ERROR HANDLING
15DE16 - INT 15 - DESQview v2.20+ - GET ERROR HANDLING
15DE17 - INT 15 - DESQview v2.20-2.25 - reserved
15DE17 - INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
15DE18 - INT 15 - DESQview v2.20+ - internal - ???
15DE19 - INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY
15DE1A - INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY
15DE1B - INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT
15DE1C - INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT
15DE1D - INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES
15DE1E - INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS
15DE1F - INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS
15DE20 - INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK
15DE21 - INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION
15DE22 - INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS
15DE23 - INT 15 U - DESQview v2.31+ - ???
15DE24 - INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION
15DE25 - INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY
15DE26 - INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS
15DE27 - INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA
15DE28 - INT 15 U - DESQview v2.50+ - ???
15DE29BX0000 - INT 15 U - DESQview/X - ???
15DE29BX0001 - INT 15 U - DESQview/X - ???
15DE29BX0002 - INT 15 U - DESQview/X - ???
15DE29BX0003 - INT 15 U - DESQview/X - ???
15DE29BX0004 - INT 15 U - DESQview/X - GET DISPLAY NAME
15DE29BX0005 - INT 15 U - DESQview/X - ???
15DE2A - INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK
15DE2B - INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST
15DE2C - INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION
15DE2D - INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER
15DE2E - INT 15 U - DESQview v2.50+ - SOCKET API
15DE2F - INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?
15DE30 - INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION
15DE31 - INT 15 - DESQview/X v1.10 - ???
15DF - INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL
15E00F - INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH
15E10E - INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH
15E200 - INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE
15E4 - INT 15 - Tandy??? - ???
15E4 - INT 15 - Compaq ROM BIOS 1993/08/03 and newer - ???
Section -
15E800 - INT 15 - Compaq Contura - GET ???
15E800 - INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE???
15E800 - INT 15 - Compaq Prolinea - GET ???
15E801 - INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS
15E802 - INT 15 - Compaq Contura - GET ???
15E820 - INT 15 - newer BIOSes - GET SYSTEM MEMORY MAP
15E881 - INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS (32-bit)
15E900 - INT 15 - PhysTechSoft PTS ROM-DOS - RESET WATCHDOG TIMER
15E901 - INT 15 - PhysTechSoft PTS ROM-DOS - WRITE DIAGNOSTIC CONTROL POINT CODE
15E902 - INT 15 - PhysTechSoft PTS ROM-DOS - SET DIAGNOSTIC DOS ERROR FLAG
15E903 - INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-ENABLE FLASH-DISK
15E904 - INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-PROTECT FLASH-DISK
15E905 - INT 15 - PhysTechSoft PTS ROM-DOS - WRITE IMAGE OF BIOS TO FLASH-MEMORY
15E906 - INT 15 - PhysTechSoft PTS ROM-DOS - READ SETUP INFORMATION FROM FLASH-DISK
15E907 - INT 15 - PhysTechSoft PTS ROM-DOS - WRITE SETUP INFORMATION ON FLASH-DISK
15E908 - INT 15 - PhysTechSoft PTS ROM-DOS - SET BREAKPOINT
15E909 - INT 15 - PhysTechSoft PTS ROM-DOS - REMOVE BREAKPOINT
15F200CX454D - INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALIZATION CHECK ???
1600 - INT 16 - KEYBOARD - GET KEYSTROKE
1601 - INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
1602 - INT 16 - KEYBOARD - GET SHIFT FLAGS
1603 - INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
1604 - INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)
1604 - INT 16 - Tandy 2000 - KEYBOARD - FLUSH KEYBOARD BUFFER
1604 - INT 16 - K3PLUS v6.22+ - SET KEYCLICK
1605 - INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)
1605 - INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)
1605 - INT 16 - Tandy 2000 - KEYBOARD - RESET KEYBOARD
160600 - INT 16 - AAKEYS - GET NEXT KEYBOARD EVENT
160601 - INT 16 - AAKEYS - EMPTY KEY-EVENT BUFFER
160602 - INT 16 - AAKEYS - DISABLE AAKEYS
160603 - INT 16 - AAKEYS - GET KEY-EVENT BUFFER
160604 - INT 16 - AAKEYS - EMPTY BIOS KEYBOARD BUFFER
1609 - INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY
160A - INT 16 - KEYBOARD - GET KEYBOARD ID
1610 - INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)
1611 - INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)
1612 - INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)
1613 - INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL
1614 - INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL
1620 - INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only)
1620 - INT 16 - HUNTER 16 - SET TEMPORARY SHIFT
1620 - INT 16 O - K3 v1.5x, K3PLUS v5.xx - GET EXTENDED BUFFER STATE
1621 - INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only)
1621 - INT 16 - HUNTER 16 - CONTROL SHIFT KEYS
1622 - INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only)
1622 - INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL
1623 - INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT
1624 - INT 16 - HUNTER 16 - REDEFINE KEY CODES
1625 - INT 16 - HUNTER 16 - RESET KEYBOARD
1625 - INT 16 O - K3 v1.5x, K3PLUS v5.xx - COPY INTO EXTENDED BUFFER
1626 - INT 16 - HUNTER 16 - CONTROL KEYCLICK
1627 - INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA
1629 - INT 16 - HUNTER 16 - GET KEY REPEAT
162A - INT 16 - HUNTER 16 - CONTROL KEY REPEAT
162B - INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES
162C - INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES
162D - INT 16 - HUNTER 16 - CONTROL BREAK KEYS
163577 - INT 16 U - TextWare TWTSR - API
164252 - INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
164253 - INT 16 - TEXTCAP 2.0 - UNINSTALL
164254 - INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
164500 - INT 16 - Shamrock Software EMAIL - GET STATUS
164501 - INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
164502 - INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
164503 - INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
164504 - INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
164505 - INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
164506 - INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
164B - INT 16 - Frank Klemm Keyboard Driver v2.0 - API
164D4F - INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK
165000 - INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE
165001 - INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
1651 - INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
165453BX5242 - INT 16 - TSRBONES - INSTALLATION CHECK
165472BX4C54 - INT 16 - TrLit - API
165500 - INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
1655FE - INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR
1655FF - INT 16 C - Microsoft Word - TSR COOPERATION???
165758BX4858 - INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
165758BX5754 - INT 16 U - Netroom ??? - ???
165758BX5755 - INT 16 U - Netroom ??? - ???
165758BX5756 - INT 16 U - Netroom ??? - INSTALLATION CHECK
165758BX5858 - INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS
165758BX5859 - INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS
1667 - INT 16 - Doorway v2.x+ - INSTALLATION CHECK / REDIRECTION CONTROLa
166969BX6968 - INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
166969BX6969 - INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
166A6B - INT 16 U - FastJuice - DISABLE/UNLOAD???
166C63 - INT 16 U - TMED v1.6a - INSTALLATION CHECK
166D74 - INT 16 - MTRTSR - INSTALLATION CHECK
166F00 - INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
166F01 - INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
166F02 - INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
166F03 - INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
166F04 - INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
166F05 - INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
166F06 - INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
166F07 - INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
166F08 - INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
166F09 - INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
166F0A - INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
166F0B - INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
166F0C - INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
166F0D - INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
166F0E - INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
166F0F - INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
166F10 - INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
166F11 - INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
166F12 - INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
1670 - INT 16 - FAKEY.COM - INSTALLATION CHECK
1671 - INT 16 - FAKEY.COM - PUSH KEYSTROKES
1672 - INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
1673 - INT 16 - FAKEY.COM - PLAY TONES
167463 - INT 16 U - FastJuice - INSTALLATION CHECK
1675 - INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
1676 - INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
1677 - INT 16 - pcANYWHERE III - LOG OFF
167761 - INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
167788BX7789 - INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
1679 - INT 16 - pcANYWHERE III - CHECK STATUS
167A - INT 16 - pcANYWHERE III - CANCEL SESSION
167B00 - INT 16 - pcANYWHERE III - SUSPEND
167B01 - INT 16 - pcANYWHERE III - RESUME
167C - INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
167D - INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
167E - INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
167F - INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
1680 - INT 16 - MAKEY.COM - INSTALLATION CHECK
1687 - INT 16 - DK.COM v1.03 - INSTALLATION CHECK
168765BX4321 - INT 16 - AT.COM version 8/26/87 - API
1692 - INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
1699 - INT 16 - SCOUT v5.4 - GET ???
169E - INT 16 - SCOUT v5.4 - INSTALLATION CHECK
16A2 - INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
16AA - INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
16AABBBXEEFF - INT 16 U - JORJ v4.3 - INSTALLATION CHECK
16AF20BX4B33 - INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
16AF25BX4B33 - INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
16AF4DBX4B33 - INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
16AF50BX4B33 - INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
16AF51BX4B33 - INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
16AF80BX4B33 - INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
16AF81BX4B33 - INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
16AF82BX4B33 - INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
16B0B1 - INT 16 - VGARAM v1.00 - INSTALLATION CHECK
16CA--BX736B - INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
16CA00BX6570 - INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
16CA00BX7670 - INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
16CB00 - INT 16 - PUPClip v1.12+ - INSTALLATION CHECK
16CB01 - INT 16 - PUPClip v1.12+ - GET CLIPBOARD CURSOR POSITION
16CB02 - INT 16 - PUPClip v1.12+ - SET CLIPBOARD CURSOR POSITION
16CB03 - INT 16 - PUPClip v1.12+ - GET CHARACTER FROM CURRENT CLIPBOARD CURSOR POSITION
16CB04 - INT 16 - PUPClip v1.12+ - WRITE CHARACTER TO CURRENT CLIPBOARD CURSOR POSITION
16CB05 - INT 16 - PUPClip v1.12+ - CLEAR CLIPBOARD CONTENTS
16CB06 - INT 16 - PUPClip v1.12+ - SCROLL UP CLIPBOARD CONTENTS
16CB07 - INT 16 - PUPClip v1.12+ - SCROLL DOWN CLIPBOARD CONTENTS
16CB08 - INT 16 - PUPClip v1.12+ - POP UP
16D724CX00CB - INT 16 U - APCAL v3.20 - GET ???
16D724CX00CC - INT 16 U - APCAL v3.20 - GET ???
16D724CX00CD - INT 16 U - APCAL v3.20 - GET ???
16DD - INT 16 - VIRUS - "Frumble" - INSTALLATION CHECK
16DFDF - INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
16E000 - INT 16 - AMI BIOS - BIOS-FLASH Interface - GET VERSION NUMBER
16E001 - INT 16 - AMI BIOS - BIOS-FLASH Interface - GET CHIPSET SAVE/RESTORE SIZE
16E002 - INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE CHIPSET STATUS & PREPARE CHPSET
16E003 - INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE CHIPSET STATUS
16E004 - INT 16 - AMI BIOS - BIOS-FLASH Interface - LOWER PROGRAMMING VOLTAGE Vpp
16E005 - INT 16 - AMI BIOS - BIOS-FLASH Interface - RAISE PROGRAMMING VOLTAGE Vpp
16E006 - INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE PROTECT
16E007 - INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE ENABLE
16E008 - INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH SELECT
16E009 - INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH DE-SELECT
16E00A - INT 16 - AMI BIOS - BIOS-FLASH Interface - VERIFY ALLOCATED MEMORY
16E00B - INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE INTERNAL CACHE STATUS
16E00C - INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE INTERNAL CACHE STATUS
16E0E0 - INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
16E0FF - INT 16 - AMI BIOS - BIOS-FLASH Interface - GENERATE CPU RESET
16ED--BHED - INT 16 - BORLAND TURBO LIGHTNING - API
16EF - INT 16 - CALCULATOR - INSTALLATION CHECK
16F0 - INT 16 - Compaq 386 and newer - SET CPU SPEED
16F0F0 - INT 16 - TurboPower TSRs - INSTALLATION CHECK
16F1 - INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
16F2 - INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
16F3 - INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
16F398 - INT 16 U - NORTON GUIDES - INSTALLATION CHECK
16F400 - INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
16F401 - INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
16F402 - INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
16FA00DX5945 - INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
16FA01DX5945 - INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
16FA02DX5945 - INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
16FA03DX5945 - INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
16FA04DX5945 - INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
16FA05DX5945 - INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
16FA06DX5945 - INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
16FA07DX5945 - INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
16FA08DX5945 - INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
16FE55 - INT 16 U - PC Tools v8+ programs - GET ???
16FEA4 - INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
16FEC6 - INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
16FED3 - INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
16FEDC - INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
16FEEFCX0000 - INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
16FEF1 - INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
16FF - INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
16FF - INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
16FF--BH00 - INT 16 - FREEZE.COM - INSTALLATION CHECK
16FF70BX0000 - INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
16FF70BX0001 - INT 16 U - PC Tools v8+ DRIVEMAP - ???
16FF70BX0002 - INT 16 U - PC Tools v8+ DRIVEMAP - ???
16FF80BX0000 - INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
16FF80BX0001 - INT 16 U - PC Tools v8+ CPTASK - GET ???
16FF80BX0002 - INT 16 U - PC Tools v8+ CPTASK - GET ???
16FF80BX0003 - INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
16FF80BX0004 - INT 16 U - PC Tools v8+ CPTASK - SET ???
16FF80BX0005 - INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
16FF80BX0006 - INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
16FF80BX0007 - INT 16 U - PC Tools v8+ CPTASK - ???
16FF80BX0008 - INT 16 U - PC Tools v8+ CPTASK - ???
16FF80BX0009 - INT 16 U - PC Tools v8+ CPTASK - GET ???
16FF80BX000A - INT 16 U - PC Tools v9+ CPTASK - SET ???
16FF80BX000B - INT 16 U - PC Tools v9+ CPTASK - SET ???
16FF80BX000C - INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
16FF80BX4350 - INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
16FF90 - INT 16 U - PC Tools v8+ DESKTOP - ???
16FF91 - INT 16 U - PC Tools v7+ DESKTOP - ???
16FF92 - INT 16 U - PC Tools v7+ DESKTOP - ???
16FF93 - INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
16FF94 - INT 16 U - PC Tools v7+ DESKTOP - SET ???
16FF95 - INT 16 U - PC Tools v7+ DESKTOP - SET ???
16FF96 - INT 16 U - PC Tools v7+ DESKTOP - ???
16FF97 - INT 16 U - PC Tools v7+ DESKTOP - ???
16FF98 - INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
16FF99 - INT 16 U - PC Tools v7+ DESKTOP - ???
16FF9A - INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
16FF9B - INT 16 U - PC Tools v7+ DESKTOP - UNUSED
16FF9C - INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
16FF9D - INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
16FF9E - INT 16 U - PC Tools v7+ DESKTOP - ???
16FFA1 - INT 16 U - PC Tools v7+ DESKTOP - ???
16FFA2 - INT 16 U - PC Tools v7+ DESKTOP - ???
16FFA3BX0000 - INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
16FFA3BX0001 - INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
16FFA3BX0002 - INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
16FFA3BX0003 - INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
16FFA3BX0004 - INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
16FFA3BX0005 - INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
16FFA3BX0006 - INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
16FFA3BXFFA3 - INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
16FFA4 - INT 16 U - PC Tools v7-8 DESKTOP - ???
16FFA5CX1111 - INT 16 - PC-Cache v6+ - INSTALLATION CHECK
16FFA5CXAAAA - INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
16FFA5CXCCCC - INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
16FFA5CXDDDD - INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
16FFA5CXEEEE - INT 16 - PC-Cache v6+ - ENABLE CACHE
16FFA5CXFFFF - INT 16 - PC-Cache v6+ - FLUSH CACHE
16FFA6 - INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
16FFA7 - INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
16FFA8 - INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
16FFA9 - INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
16FFAA - INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
16FFAB - INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
16FFAC - INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
16FFAD - INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
16FFAE - INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
16FFAF - INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
16FFB0 - INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
16FFB1 - INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
16FFB2 - INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
16FFB3 - INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
16FFB4 - INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
16FFB5 - INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
16FFB6 - INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
16FFB7 - INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
16FFB8 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
16FFB9 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFBA - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFBB - INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
16FFBC - INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
16FFBD - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
16FFBE - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFBF - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFC0 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFC1 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFC2 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFC3 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFC4 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
16FFC5 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
16FFC6 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
16FFC7 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
16FFC8 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
16FFC9 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
16FFCA - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
16FFCB - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
16FFCC - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
16FFCD - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFCE - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
16FFCF - INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
16FFD0 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
16FFD1 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
16FFD2 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFD3 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFD4BH3C - INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
16FFD5 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFD6 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFD7 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFD8 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
16FFD9 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
16FFDA - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
16FFDB - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
16FFDC - INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
16FFDDBX0000 - INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
16FFDDBX0001 - INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
16FFDDBX0002 - INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
16FFDDBX0003 - INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
16FFDDBX0004 - INT 16 U - PC Tools v5.1+ PCShell API - GET ???
16FFDDBX0005 - INT 16 U - PC Tools v5.1+ PCShell API - ???
16FFDDBX0006 - INT 16 U - PC Tools v5.1+ PCShell API - ???
16FFDDBX0007 - INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
16FFDDBX0008 - INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
16FFDDBX0009 - INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
16FFDDBX000A - INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
16FFDDBX000B - INT 16 U - PC Tools v6.0+ PCRUN API - ???
16FFDE - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
16FFDF - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFE0 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFE1 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
16FFE2 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFE3 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
16FFE4 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFE5 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
16FFE6 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
16FFE7 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFE8 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
16FFE9 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
16FFEA - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
16FFEB - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFEC - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
16FFED - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
16FFEE - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
16FFEFCX0000 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
16FFF0 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
16FFF1BX0000 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
16FFF2 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
16FFF3 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
16FFF4 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
16FFF5 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
16FFF6 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
16FFF7 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
16FFF8 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
16FFF9 - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
16FFFA - INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
16FFFB - INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
16FFFC - INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
16FFFD - INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
16FFFE - INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
16FFFF - INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
17----DX0ABC - INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
17----DX0B90 - INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
17----DX0B91 - INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
17----DX0F5F - INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
1700 - INT 17 - PRINTER - WRITE CHARACTER
1701 - INT 17 - PRINTER - INITIALIZE PORT
1702 - INT 17 - PRINTER - GET STATUS
1702--DX0000 - INT 17 - INSET - INSTALLATION CHECK
170200BX5050 - INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
1703 - INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
1703 - INT 17 - IBM SurePath BIOS - Officially "Private" Function
1703 - INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
1703--BX5A00 - INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
170300 - INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
1704 - INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
1704 - INT 17 - IBM SurePath BIOS - Officially "Private" Function
170400 - INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
1705 - INT 17 - IBM SurePath BIOS - Officially "Private" Function
170500 - INT 17 U - Emulaser ELTSR - ???
170500 - INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
170501 - INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
170502 - INT 17 U - Emulaser ELTSR - SET ???
170503 - INT 17 U - Emulaser ELTSR - DEACTIVATE???
1706 - INT 17 U - Emulaser ELTSR - ???
170600 - INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
1707 - INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
170700 - INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
1708 - INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
170800 - INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
1709 - INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
170900 - INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
170A - INT 17 U - Emulaser ELTSR - SET ??? FILENAME
170A00 - INT 17 - DOSISODE to WATTCP TSR Interface - "select"
170B - INT 17 U - Emulaser ELTSR - GET ???
170B - INT 17 - IBM SurePath BIOS - Officially "Private" Function
170B00 - INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
170C - INT 17 U - Emulaser ELTSR - SET ??? FLAG
170C - INT 17 - IBM SurePath BIOS - Officially "Private" Function
170C00 - INT 17 - DOSISODE to WATTCP TSR Interface - "close"
170D - INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
170D - INT 17 - IBM SurePath BIOS - Officially "Private" Function
170D00 - INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
170E - INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
170E - INT 17 - IBM SurePath BIOS - Officially "Private" Function
170E00 - INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
172000 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
172001 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
172002 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
172003 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
172004 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
172005 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
172006 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
172007 - INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
172400 - INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
172401 - INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
172402 - INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
172403 - INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
172404 - INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
172405 - INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
172406 - INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
172407 - INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
172408 - INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
172409 - INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
17240A - INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
17240B - INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
17240C - INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
174B00 - INT 17 - Brother P-Touch - INSTALLATION CHECK
174B01 - INT 17 - Brother P-Touch - UNINSTALL
175000 - INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
175001 - INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
1751 - INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
1752 - INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
175555BXAAAA - INT 17 - LR - SET CONFIGURATION
175555BXBBBB - INT 17 - LR - GET CONFIGURATION
1760 - INT 17 - FLASHUP.COM - INSTALLATION CHECK
1761 - INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
1762 - INT 17 U - T2PS v1.0 - UNINSTALL
1763 - INT 17 U - T2PS v1.0 - SET PARAMETERS
1764 - INT 17 U - T2PS v1.0 - GET PARAMETERS
176F00BX0000 - INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
176F02 - INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
1780 - INT 17 - IBM SurePath BIOS - Officially "Private" Function
1781 - INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
1782 - INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
1783 - INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
1784 - INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
1784 - INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
1785 - INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
1787 - INT 17 - Alloy NTNX - SET INDOS POINTER
1788 - INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
1789 - INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
178A - INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
178B - INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
178C - INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
178D - INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
178E - INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
178F - INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
1790 - INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
1791 - INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
1792 - INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
1794 - INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
1795 - INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
1796 - INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
1797 - INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
1798 - INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
1799 - INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
179A - INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
179B - INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
17A0 - INT 17 - Alloy MW386 - SPOOL COPY OF FILE
17A4 - INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
17A6 - INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
17A7 - INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
17A8 - INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
17A9 - INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
17AA - INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
17AF - INT 17 - Alloy MW386 - CHECK SPOOLER
17C0 - INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
17C1 - INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
17C2 - INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
17C3 - INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
17C4 - INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
17C5 - INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
17C6 - INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
17C7 - INT 17 - PC Magazine PCSpool - CLOSE QUEUE
17CD00 - INT 17 - INSET - EXECUTE COMMAND STRING
17CD01 - INT 17 - INSET - GET IMAGE SIZE
17CD02 - INT 17 - INSET - INITIALIZE
17CD03 - INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
17CD04 - INT 17 - INSET - INITIALIZE LINKED MODE
17CD05 - INT 17 - INSET - START MERGING IMAGE INTO TEXT
17CD06 - INT 17 - INSET - GRAPHICS LINE FEED
17CD07 - INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
17CD08 - INT 17 - INSET - CANCEL LINK MODE
17CD09 - INT 17 - INSET - ALTER TEXT LINE SPACING
17CD0A - INT 17 - INSET - GET SETUP
17CD0B - INT 17 - INSET - START GETTING SCALED IMAGE
17CD0C - INT 17 - INSET - GET NEXT IMAGE STRIP
17E0 - INT 17 - EPP BIOS - INSTALLATION CHECK
17E1 - INT 17 - EPP BIOS - DISABLE EPP
17E2 - INT 17 - EPP BIOS - ENABLE EPP
17F0 - INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
17F1 - INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
17F2 - INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
17F3 - INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
17F4 - INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
17F5 - INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
17FF--BX0000 - INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
18 - INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
1800 - INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
1801 - INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
1802 - INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
1803 - INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
1804 - INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
18 - INT 18 - NEC PC-9800 series - VIDEO
180E - INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA
181B - INT 18 - NEC PC-9800 series - SET DISPLAY MODE
185350BX4849 - INT 18 - SPHINX C-- - WB.COM - API
186900 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
186901 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
186902 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
186903 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
186904 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
186905 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
186906 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
186907 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
186908 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
186909 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
18690A - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
18690B - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
18690C - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
18690D - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
188000 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
188001 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
188002 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
188003 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
188004 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
19 - INT 19 - SYSTEM - BOOTSTRAP LOADER
1A00 - INT 1A - TIME - GET SYSTEM TIME
1A01 - INT 1A - TIME - SET SYSTEM TIME
1A02 - INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
1A02 - INT 1A - Tandy 2000 - TIME - GET DATE AND TIME
1A03 - INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
1A03 - INT 1A - Tandy 2000 - TIME - SET DATE AND TIME
1A04 - INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
1A04 - INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
1A04--CX4555 - INT 1A - CheckIt Year 2000 Fix v2.06 - INSTALLATION CHECK
1A05 - INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
1A05 - INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
1A06 - INT 1A - TIME - SET ALARM (AT,XT286,PS)
1A07 - INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
1A08 - INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
1A09 - INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
1A0A - INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
1A0B - INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
1A0C - INT 1A - TIME - SET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
1A0D - INT 1A - TIME - RESET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
1A0E - INT 1A - TIME - GET RTC DATE/TIME ALARM AND STATUS (IBM)
1A0F - INT 1A - TIME - INITIALIZE REAL-TIME CLOCK
1A10 - INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
1A1000 - INT 1A - NEC PC-9800 series - INSTALLATION CHECK
1A11 - INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
1A12 - INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
1A3601 - INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
1A6108 - INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
1A6205 - INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
1A6308 - INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
1A6405 - INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
1A6900 - INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
1A6A01 - INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
1A6B01 - INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
1A6C04 - INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
1A6D04 - INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
1A6E01 - INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
1A6F01 - INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
1A7002 - INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
1A7101 - INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
1A7202 - INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
1A7302 - INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
1A7400 - INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
1A75 - INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
1A76 - INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
1A77 - INT 1A - SNAP.EXE 3.4 - ???
1A7802 - INT 1A - SNAP.EXE 3.4 - ???
1A7F - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
1A80 - INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
1A80 - INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
1A81 - INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
1A8100 - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
1A82 - INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
1A82 - INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
1A83 - INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
1A83 - INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
1A84 - INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
1A84 - INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
1A85 - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
1A85 - INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
1A86 - INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
1A87 - INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
1A88 - INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
1A89 - INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
1A8A - INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
1A8B - INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
1A8C - INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
1A8D - INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
1A8E - INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
1A8F - INT 1A - PCMCIA Socket Services v1.00 - GET CARD
1A90 - INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
1A91 - INT 1A - PCMCIA Socket Services v1.00 - READ ONE
1A92 - INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
1A93 - INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
1A94 - INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
1A95 - INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
1A96 - INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
1A97 - INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
1A98 - INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
1A99 - INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
1A9A - INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
1A9B - INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
1A9C - INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
1A9D - INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO
1A9D - INT 1A - Intel PCMCIA ExCA Card Services - API
1A9E - INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT
1A9F - INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER
1AA0 - INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
1AA0 - INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS
1AA1 - INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS
1AA2 - INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE
1AA4 - INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES
1AA5 - INT 1A - CardBus Socket Services - SET BRIDGE WINDOW
1AAB - INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
1AAC - INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
1AAD - INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
1AAE - INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC
1AAE - INT 1A - PCMCIA Socket Services v2.1 - API
1AAF - INT 1A - PCMCIA v2 Card Services - API
1AB000 - INT 1A U - HP 100LX/200LX - PCMCIA - ???
1AB001CX4D52 - INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
Section -
1AB101 - INT 1A - PCI BIOS v2.0c+ - INSTALLATION CHECK
1AB102 - INT 1A - PCI BIOS v2.0c+ - FIND PCI DEVICE
1AB103 - INT 1A - PCI BIOS v2.0c+ - FIND PCI CLASS CODE
1AB106 - INT 1A - PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS
1AB108 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION BYTE
1AB109 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION WORD
1AB10A - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD
1AB10ASF1004 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (VLSI devices)
1AB10ASF100B - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (National Semicond. device)
1AB10ASF1011 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (DEC device)
1AB10ASF1022 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (AMD devices)
1AB10ASF1042 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (PC Technology devices)
1AB10ASF1045 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (OPTi devices)
1AB10ASF1066 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (PicoPower devices)
1AB10ASF1066 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Brooktree devices)
1AB10ASF1106 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (VIA Technologies devices)
1AB10ASF8086 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Intel devices)
1AB10ASF9004 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Adaptec devices)
1AB10B - INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE
1AB10C - INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD
1AB10D - INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD
1AB10EBX0000 - INT 1A - PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION
1AB10F - INT 1A - PCI BIOS v2.1+ - SET PCI IRQ
1AB181 - INT 1A - PCI BIOS v2.0c+ - INSTALLATION CHECK (32-bit)
1AB182 - INT 1A - PCI BIOS v2.0c+ - FIND PCI DEVICE (32-bit)
1AB183 - INT 1A - PCI BIOS v2.0c+ - FIND PCI CLASS CODE (32-bit)
1AB186 - INT 1A - PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS (32-bit)
1AB188 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION BYTE (32-bit)
1AB189 - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION WORD (32-bit)
1AB18A - INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (32-bit)
1AB18B - INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE (32-bit)
1AB18C - INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD (32-bit)
1AB18D - INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD (32-bit)
1AB18EBX0000 - INT 1A - PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION (32-bit)
1AB18F - INT 1A - PCI BIOS v2.1+ - SET PCI IRQ (32-bit)
1AB2 - INT 1A - Reserved For PCI
1AB3 - INT 1A - Reserved For PCI
1AB400 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - INSTALLATION CHECK
1AB401 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET DEFAULT CONFIG TABLE
1AB402 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - COPY AND VERIFY CONFIG TABLE
1AB403 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - STORE ESCD TABLE IN NVRAM
1AB404 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET AVAILABLE IRQs???
1AB405 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET ???
1AB406 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET PCI IRQ ROUTING TABLE
1AB407 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - ???
1AB4 - INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - 32-BIT API
1AC0 - INT 1A U - Disk Spool II v2.07+ - ALTERNATE INSTALLATION CHECK
1ACCCCBXCCCC - INT 1A U - DATEFIX - INSTALLATION CHECK
1AD0 - INT 1A U - Disk Spool II v2.07+ - FUNCTION CALLS
1AE0 - INT 1A - Disk Spool II v4.0x - ENABLE/DISABLE
1AE1 - INT 1A - Disk Spool II v4.0x - GET STATUS
1AE11B - INT 1A - TheGrab v4.60 - ???
1AE11D - INT 1A - TheGrab v4.60 - INSTALLATION CHECK
1AE2 - INT 1A - Disk Spool II v4.0x - GET SPOOL FILES
1AE301 - INT 1A - Disk Spool II v4.0x - GET SPOOL FILE STATUS
1AE302 - INT 1A - Disk Spool II v4.0x - UPDATE SPOOL FILE
1AE401 - INT 1A - Disk Spool II v4.0x - SPOOL EXISTING FILE
1AE402 - INT 1A U - Disk Spool II v4.0x - SPOOL EXISTING FILE???
1AE5 - INT 1A U - Emulaser ELSPL.COM - ???
1AEE - INT 1A U - Disk Spool II v4.05 - ???
1AF7 - INT 1A - RighTime v1.1 - TEMPORARILY DISABLE
1AF8 - INT 1A - RighTime v1.1 - ENABLE
1AFE - INT 1A - AT&T 6300 - READ TIME AND DATE
1AFF - INT 1A - AT&T 6300 - SET TIME AND DATE
1AFF - INT 1A - RighTime v1.1 - PERMANENTLY DISABLE
1AFF00 - INT 1A - SND - INSTALLATION CHECK???
1AFF01 - INT 1A - SND - PAUSE
1AFF02 - INT 1A - SND - START SOUND
1AFF03 - INT 1A - SND - STOP SOUND
1AFF04 - INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
1AFF05 - INT 1A - SND - UNCONDITIONALLY STOP SOUND
1B - INT 1B C - KEYBOARD - CONTROL-BREAK HANDLER
1C - INT 1C - TIME - SYSTEM TIMER TICK
1D - INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES
1E - INT 1E - SYSTEM DATA - DISKETTE PARAMETERS
1F - INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT
1F12 - INT 1F U - C&T "SuperState" BIOS - POWER OFF
1F17 - INT 1F U - C&T "SuperState" BIOS - EXECUTE FAR PROC ROUTINE ON SuperState
1F19 - INT 1F U - C&T "SuperState" BIOS - ENABLE AUTO WAKEUP AND SET TIME AND DATE
1F1C - INT 1F U - C&T "SuperState" BIOS - SET SUSPEND TIMEOUT
1F1D - INT 1F U - C&T "SuperState" BIOS - SET SLEEP TIMEOUT
1F90 - INT 1F - NEC PC-9801 - COPY EXTENDED MEMORY
1FF5--BLFA - INT 1F U - C&T "SuperState" BIOS - REQUEST PASSWORD INPUT
1FF5--BLFD - INT 1F U - C&T "SuperState" BIOS - ENCRYPT PASSWORD
1FF5--BLFE - INT 1F U - C&T "SuperState" BIOS - SET PASSWORD
1FF5--BLFF - INT 1F U - C&T "SuperState" BIOS - GET ENCRYPTED PASSWORD
1FFB - INT 1F U - C&T "SuperState" BIOS - GET/SET CPU SPEED
1FFC--BL00 - INT 1F U - C&T "SuperState" BIOS - GET ALARM STATUS
1FFC--BL01 - INT 1F U - C&T "SuperState" BIOS - SET ALARM STATUS
1FFC--BL02 - INT 1F U - C&T "SuperState" BIOS - GET ALARM TIME
1FFC--BL03 - INT 1F U - C&T "SuperState" BIOS - SET ALARM TIME
1FFC--BL04 - INT 1F U - C&T "SuperState" BIOS - GET ALARM DATE
1FFC--BL05 - INT 1F U - C&T "SuperState" BIOS - SET ALARM DATE
1FFD--BL00 - INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP STATUS
1FFD--BL01 - INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP STATUS
1FFD--BL02 - INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP TIME
1FFD--BL03 - INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP TIME
1FFD--BL04 - INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP DATE
1FFD--BL05 - INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP DATE
Section -
20 - INT 20 - Minix - SEND/RECEIVE MESSAGE
20 - INT 20 - DOS 1+ - TERMINATE PROGRAM
20 - INT 20 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE FIRMWARE DEBUGGER
20----Vx0001 - INT 20 P - Microsoft Windows - VMM - VxD SERVICES
20----Vx0002 - INT 20 P - Microsoft Windows - DEBUG - VxD SERVICES
20----Vx0003 - INT 20 P - Microsoft Windows - VPICD - VxD SERVICES
20----Vx0004 - INT 20 P - Microsoft Windows - VDMAD - VxD SERVICES
20----Vx0005 - INT 20 P - Microsoft Windows - VTD - VxD SERVICES
20----Vx0006 - INT 20 P - Microsoft Windows - V86MMGR - VxD SERVICES
20----Vx0007 - INT 20 P - Microsoft Windows - PageSwap - VxD SERVICES
20----Vx0009 - INT 20 P - Microsoft Windows - REBOOT - VxD SERVICES
20----Vx000A - INT 20 P - Microsoft Windows - VDD - VxD SERVICES
20----Vx000B - INT 20 P - Microsoft Windows - VSD - VxD SERVICES
20----Vx000C - INT 20 P - Microsoft Windows - VMD / VMOUSE - VxD SERVICES
20----Vx000D - INT 20 P - Microsoft Windows - VKD - VxD SERVICES
20----Vx000E - INT 20 P - Microsoft Windows - VCD - VxD SERVICES
20----Vx0010 - INT 20 P - Microsoft Windows - BlockDev / IOS - VxD SERVICES
20----Vx0011 - INT 20 P - Microsoft Windows - VMCPD - VxD SERVICES
20----Vx0012 - INT 20 P - Microsoft Windows - EBIOS - VxD SERVICES
20----Vx0014 - INT 20 P - Microsoft Windows - VNETBIOS - VxD SERVICES
20----Vx0015 - INT 20 P - Microsoft Windows - DOSMGR - VxD SERVICES
20----Vx0017 - INT 20 P - Microsoft Windows - SHELL - VxD SERVICES
20----Vx0018 - INT 20 P - Microsoft Windows - VMPoll - VxD SERVICES
20----Vx001A - INT 20 P - Microsoft Windows - DOSNET - VxD SERVICES
20----Vx001B - INT 20 P - Microsoft Windows - VFD - VxD SERVICES
20----Vx001C - INT 20 P - Microsoft Windows - LoadHi - VxD SERVICES
20----Vx0020 - INT 20 P - Microsoft Windows - Int13 - VxD SERVICES
20----Vx0021 - INT 20 P - Microsoft Windows - PAGEFILE - VxD SERVICES
20----Vx0026 - INT 20 P - Microsoft Windows - VPOWERD - VxD SERVICES
20----Vx0027 - INT 20 P - Microsoft Windows - VXDLDR - VxD SERVICES
20----Vx0028 - INT 20 P - Microsoft Windows - NDIS - VxD SERVICES
20----Vx002A - INT 20 P - Microsoft Windows - VWIN32 - VxD SERVICES
20----Vx002B - INT 20 P - Microsoft Windows - VCOMM - VxD SERVICES
20----Vx002C - INT 20 P - Microsoft Windows - SPOOLER - VxD SERVICES
20----Vx0032 - INT 20 P - Microsoft Windows - VSERVER - VxD SERVICES
20----Vx0033 - INT 20 P - Microsoft Windows - CONFIGMG - VxD SERVICES
20----Vx0034 - INT 20 P - Microsoft Windows - DWCFGMG.SYS - VxD SERVICES
20----Vx0036 - INT 20 P - Microsoft Windows - VFBACKUP - VxD SERVICES
20----Vx0037 - INT 20 P - Microsoft Windows - VMINI / ENABLE - VxD SERVICES
20----Vx0038 - INT 20 P - Microsoft Windows - VCOND - VxD SERVICES
20----Vx003D - INT 20 P - Microsoft Windows - BIOS - VxD SERVICES
20----Vx003E - INT 20 P - Microsoft Windows - WSOCK - VxD SERVICES
20----Vx0040 - INT 20 P - Microsoft Windows - IFSMgr - VxD SERVICES
20----Vx0041 - INT 20 P - Microsoft Windows - VCDFSD - VxD SERVICES
20----Vx0048 - INT 20 P - Microsoft Windows - PERF - VxD SERVICES
20----Vx004A - INT 20 P - Microsoft Windows - MTRR - VxD SERVICES
20----Vx004B - INT 20 P - Microsoft Windows - NTKERN - VxD SERVICES
20----Vx011F - INT 20 P - Microsoft Windows - VFLATD - VxD SERVICES
20----Vx0449 - INT 20 P - Microsoft Windows - vjoyd - VxD SERVICES
20----Vx044A - INT 20 P - Microsoft Windows - mmdevldr - VxD SERVICES
20----Vx0480 - INT 20 P - Microsoft Windows - VNetSup - VxD SERVICES
20----Vx0481 - INT 20 P - Microsoft Windows - VREDIR - VxD SERVICES
20----Vx0483 - INT 20 P - Microsoft Windows - VSHARE - VxD SERVICES
20----Vx0487 - INT 20 P - Microsoft Windows - NWLINK - VxD SERVICES
20----Vx0488 - INT 20 P - Microsoft Windows - VTDI - VxD SERVICES
20----Vx0489 - INT 20 P - Microsoft Windows - VIP - VxD SERVICES
20----Vx048A - INT 20 P - Microsoft Windows - MSTCP - VxD SERVICES
20----Vx048B - INT 20 P - Microsoft Windows - VCACHE - VxD SERVICES
20----Vx048E - INT 20 P - Microsoft Windows - NWREDIR - VxD SERVICES
20----Vx0491 - INT 20 P - Microsoft Windows - FILESEC - VxD SERVICES
20----Vx0492 - INT 20 P - Microsoft Windows - NWSERVER - VxD SERVICES
20----Vx0493 - INT 20 P - Microsoft Windows - MSSP / NWSP - VxD SERVICES
20----Vx0494 - INT 20 P - Microsoft Windows - NSCL - VxD SERVICES
20----Vx0495 - INT 20 P - Microsoft Windows - AFVXD - VxD SERVICES
20----Vx0496 - INT 20 P - Microsoft Windows - NDIS2SUP - VxD SERVICES
20----Vx0498 - INT 20 P - Microsoft Windows - Splitter - VxD SERVICES
20----Vx0499 - INT 20 P - Microsoft Windows - PPPMAC - VxD SERVICES
20----Vx049A - INT 20 P - Microsoft Windows - VDHCP - VxD SERVICES
20----Vx049B - INT 20 P - Microsoft Windows - VNBT - VxD SERVICES
20----Vx049D - INT 20 P - Microsoft Windows - LOGGER - VxD SERVICES
20----Vx097C - INT 20 P - Microsoft Windows - PCCARD - VxD SERVICES
20----Vx3048 - INT 20 P - Frontier Technologies ??? - VxD SERVICES
20----Vx3049 - INT 20 P - Frontier Technologies ??? - VxD SERVICES
20----Vx3098 - INT 20 P - QEMM - VstlthD - VxD SERVICES
20----Vx30F6 - INT 20 P - Microsoft Windows - WSVV - VxD SERVICES
20----Vx33FC - INT 20 P - Microsoft Windows - ASPIENUM - VxD SERVICES
20----Vx357E - INT 20 P - Microsoft Windows - DSOUND - VxD SERVICES
20----Vx39E6 - INT 20 P - Microsoft Windows - A3D - VxD SERVICES
20----Vx3BFD - INT 20 P - Microsoft Windows - CWCPROXY - VxD SERVICES
20----Vx3C78 - INT 20 P - Microsoft Windows - VGARTD - VxD SERVICES
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
Section -
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
Section -
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
Section -
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
Section -
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
22 - INT 22 - DOS 1+ - PROGRAM TERMINATION ADDRESS
22 - INT 22 - COMTROL HOSTESS i/ISA DEBUGGER - CHANGE FIRMWARE DEBUGGING PORT
23 - INT 23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER
23 - INT 23 - COMTROL HOSTESS i/ISA DEBUGGER - GET CONFIGURATION INFORMATION
24 - INT 24 C - DOS 1+ - CRITICAL ERROR HANDLER
25 - INT 25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M)
25----CXFFFF - INT 25 - DOS 3.31+ - ABSOLUTE DISK READ (32M-2047M hard-disk partition)
25CDCD - INT 25 - Stacker - GET DEVICE DRIVER ADDRESS
25--FFSI4358 - INT 25 - PC-CACHE.SYS - INSTALLATION CHECK
Section -
26 - INT 26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M)
26----CXFFFF - INT 26 - DOS 3.31+ - ABSOLUTE DISK WRITE (32M-2047M hard-disk partition)
26 - INT 26 - COMTROL HOSTESS i/ISA DEBUGGER - ENTER/EXIT EXTENDED ADDRESSING MODE
27 - INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT
27 - INT 27 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE REMOTE TURBO DEBUGGER KERNEL
28 - INT 28 C - DOS 2+ - DOS IDLE INTERRUPT
289999 - INT 28 u - PCXDUMP v9.00+ - INSTALLATION CHECK
29 - INT 29 C - DOS 2+ - FAST CONSOLE OUTPUT
29E60DCL0E - INT 29 - ShowGFX - INSTALLATION CHECK
2A00 - INT 2A - NETWORK - INSTALLATION CHECK
2A0000 - INT 2A - AT&T Starlan Extended NetBIOS (var length names) - INSTALLATION CHECK
2A01 - INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NETBIOS REQUEST,NO ERROR RETRY
2A02 - INT 2A - NETWORK (Microsoft) - SET NET PRINTER MODE
2A0300 - INT 2A - NETWORK - CHECK DIRECT I/O
2A04 - INT 2A - NETWORK - EXECUTE NetBIOS REQUEST
2A0500 - INT 2A - NETWORK - GET NETWORK RESOURCE AVAILABILITY
2A06 - INT 2A - NETBIOS, LANtastic - NETWORK PRINT-STREAM CONTROL
2A07 - INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
2A2001 - INT 2A - MS Networks or NETBIOS - ???
2A2002 - INT 2A - NETWORK - ???
2A2003 - INT 2A - NETWORK - ???
2A4147DX0000 - INT 2A U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK
2A7802 - INT 2A - NETWORK - PC LAN PROG v1.31+ - GET LOGGED ON USER NAME
2A80 - INT 2A CU - NETWORK - BEGIN DOS CRITICAL SECTION
2A81 - INT 2A CU - NETWORK - END DOS CRITICAL SECTION
2A82 - INT 2A CU - NETWORK - END DOS CRITICAL SECTIONS 0 THROUGH 7
2A84 - INT 2A CU - NETWORK - KEYBOARD BUSY LOOP
2A86 - INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
2A8700 - INT 2A CU - PRINT - BEGIN BACKGROUND PRINTING
2A8701 - INT 2A CU - PRINT - END BACKGROUND PRINTING
2A89 - INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
2A90 - INT 2A U - IBM PC 3270 EMULATION PROGRAM - ???
2AC2 - INT 2A U - Network - ???
2AC4 - INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
2AD800 - INT 2A U - Novell NetWare Lite - SERVER - DOS CRITICAL SECTION DISABLE
2AD801 - INT 2A U - Novell NetWare Lite - SERVER - DOS CRITICAL SECTION ENABLE
2AD850 - INT 2A U - Novell NetWare Lite - CLIENT - START SERVER CRITICAL SECTION
2AD851 - INT 2A U - Novell NetWare Lite - CLIENT - END SERVER CRITICAL SECTION
2AD852 - INT 2A U - Novell NetWare - DOS Requester v1.03 - SERVER LOADED
2AD853 - INT 2A U - Novell NetWare - DOS Requester v1.03 - SERVER UNLOADED
2AE0 - INT 2A U - PC Network 1.00 - ???
2AFF90 - INT 2A - PC/TCP PREDIR.EXE - ???
2AFF91 - INT 2A - PC/TCP PREDIR.EXE - ???
2AFF92 - INT 2A - PC/TCP PREDIR.EXE - INSTALLATION CHECK
2AFF93 - INT 2A - PC/TCP PREDIR.EXE - ???
2AFF94 - INT 2A - PC/TCP PREDIR.EXE - ???
2AFF95 - INT 2A - PC/TCP PREDIR.EXE - GET CONFIGURATION STRINGS
2AFF96 - INT 2A - PC/TCP PREDIR.EXE - SET PRINT JOB TERMINATION CONFIGURATION
2AFF97 - INT 2A - PC/TCP PREDIR.EXE - GET PRINT JOB TERMINATION CONFIGURATION
2B - INT 2B - DOS 2+ - RESERVED
2B - INT 2B - IBM ROM-DOS v4.0 - ???
2C - INT 2C - DOS 2+ - RESERVED
2C - INT 2C - STARLITE architecture - KERNEL API
2C - INT 2C R - Cloaking - CALL PROTECTED-MODE PASSALONG CHAIN
2C0000 - INT 2C P - Cloaking - ALLOCATE GDT SELECTOR
2C0001 - INT 2C P - Cloaking - FREE GDT SELECTOR
2C0002 - INT 2C P - Cloaking - SET SEGMENT BASE ADDRESS
2C0003 - INT 2C P - Cloaking - SET SEGMENT LIMIT
2C0004 - INT 2C P - Cloaking - SET SEGMENT ACCESS MODE
2C0005 - INT 2C P - Cloaking - SET SEGMENT EXTENDED ACCESS MODE
2C0006 - INT 2C P - Cloaking - GET PROTECTED-MODE INTERRUPT VECTOR
2C0007 - INT 2C P - Cloaking - SET PROTECTED-MODE INTERRUPT VECTOR
2C0008 - INT 2C P - Cloaking - GET PASSALONG ADDRESS
2C0009 - INT 2C P - Cloaking - SET PASSALONG ADDRESS
2C000A - INT 2C P - Cloaking - GET BASE ADDRESS OF GDT SELECTOR
2C000B - INT 2C P - Cloaking - GET SELECTOR LIMIT
2C - INT 2C P - RM386 v6.00 - CLOAKING - RESERVED FOR CLOAKED BIOS USE UNDER WINDOWS
2C000F - INT 2C P - Cloaking v1.01 - "Simulate_Shell_Event"
2C0011 - INT 2C P - Cloaking v1.01 - "Switch_VMs_and_Call_back"
2C0012 - INT 2C P - Cloaking v1.01 - "Query_Current_VM"
2C0013 - INT 2C P - Cloaking v1.01 - "Issue_System_Modal_Message"
2C001D - INT 2C P - Cloaking v1.01 - GET INT 2C API HANDLER ENTRY POINT
2C001E - INT 2C P - Cloaking v1.01 - CLEAR CRITICAL SECTION
2C001F - INT 2C P - Cloaking v1.01 - SET CRITICAL SECTION
2C0020 - INT 2C P - Cloaking - GET SIZE OF PROTECTED-MODE STATE
2C0021 - INT 2C P - Cloaking - SAVE PROTECTED-MODE STATE
2C0022 - INT 2C P - Cloaking - RESTORE PROTECTED-MODE STATE
2C0023 - INT 2C P - Cloaking - ISSUE PROTECTED-MODE XMS CALL
2C0024 - INT 2C P - Cloaking - SET V86-MODE STACK
2C0025 - INT 2C P - Cloaking - CALL V86-MODE PROCEDURE
2C0026 - INT 2C P - Cloaking - CALL V86-MODE INTERRUPT HANDLER
2C0027 - INT 2C P - Cloaking - CHAIN TO V86-MODE INTERRUPT HANDLER
2C0028 - INT 2C P - Cloaking - GET ESP0 FROM TSS
2C0029 - INT 2C P - Cloaking - SET SECONDARY STACK
2C002A - INT 2C P - Cloaking - SET 8259 IRQ BASE VECTORS
2C002BCH81 - INT 2C P - Cloaking - PROTECTED-MODE VIRTUAL DMA SERVICES
2C002C - INT 2C P - Cloaking - GET PORT-TRAPPING PASSALONG
2C002D - INT 2C P - Cloaking - SET PORT-TRAPPING PASSALONG
2C002E - INT 2C P - Cloaking - TRAP I/O PORT
2C002F - INT 2C PU - Cloaking - UNTRAP I/O PORT
2C0030 - INT 2C PU - Cloaking - GET TRAPPING STATE OF SPECIFIED PORT
2C0031 - INT 2C PU - RM386 v6.00 - BUG
2C0031 - INT 2C P - Cloaking v1.01 - ALLOCATE V86 CALLBACK
2C0032 - INT 2C P - Cloaking v1.01 - FREE V86 CALLBACK
2C0033 - INT 2C P - Cloaking v1.01 - REGISTER CLOAKING CLIENT
2C0034 - INT 2C P - Cloaking v1.01 - UNREGISTER CLOAKING CLIENT
2D - INT 2D - DOS 2+ - RESERVED
2D - INT 2D - ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.6]
2D--00 - INT 2D - AMIS v3.0+ - INSTALLATION CHECK
2D--01 - INT 2D - AMIS v3.0+ - GET PRIVATE ENTRY POINT
2D--02 - INT 2D - AMIS v3.0+ - UNINSTALL
2D--03 - INT 2D - AMIS v3.0+ - REQUEST POP-UP
2D--04 - INT 2D - AMIS v3.0+ - DETERMINE CHAINED INTERRUPTS
2D--05 - INT 2D - AMIS v3.5+ - GET HOTKEYS
2D--06 - INT 2D - AMIS v3.6 - GET DEVICE-DRIVER INFORMATION
2D--10 - INT 2D - RATSR 2.0+ - GET STATUS
2D--10 - INT 2D - dLite 1.0+ - GET PARAMETER BLOCK ADDRESS
2D--10 - INT 2D - Burnout Plus v3.00 - GET STATE/CONTROL INFORMATION
2D--10 - INT 2D U - Screen Thief v1.00 - FREE HIGH MEMORY BUFFERS
2D--10 - INT 2D U - RAMLIGHT v1.0 - GET MONITORING INFORMATION
2D--10 - INT 2D - DTown Utilities v1.40+ - EXTENDED API INSTALLATION CHECK
2D--10 - INT 2D - CDTSR - GET INTERNAL VARIABLE TABLE
2D--10 - INT 2D - KEYBIT Lite v5+ - GET POINTER TO STATUS BYTE
2D--10 - INT 2D - ALTMENU - GET POINTER TO KEY CODE
2D--11 - INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET ORIGINAL SIZE
2D--11 - INT 2D - DTown Utilities v1.40+ - UTILITY INSTALLATION CHECK
2D--11 - INT 2D - CDTSR - REPROGRAM CDTSR
2D--12 - INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET COMPRESSED SIZE
2D--12 - INT 2D - CDTSR - DISABLE POPUP
2D--12 - INT 2D - FREEVER - GET ORIGINAL DOS VERSION INFO
2D--13 - INT 2D - CDTSR - ENABLE POPUP
2D--13 - INT 2D - FREEVER - SET VERSION NUMBERS
2D--14 - INT 2D - FREEVER - ENABLE TSR
2D--15 - INT 2D - FREEVER - DISABLE TSR
2D--16 - INT 2D - FREEVER - GET TSR STATUS
2D--17 - INT 2D - FREEVER - GET TaskMAX STATUS AT INSTALLATION
2D--20 - INT 2D - DTown Utilities v1.40+ - GET POP-UP HANDLER ADDRESS
2D--21 - INT 2D - DTown Utilities v1.40+ - POP UP
2D--50 - INT 2D - DTown Utilities v1.40+ - MEMORY VIEW SET ADDRESS
2D--51 - INT 2D - DTown Utilities v1.40+ - MEMORY VIEW SET REFERENCE
2D--DC - INT 2D C - DAISY.SYS - BROADCAST: CHAIN RESCANNED
2E - INT 2E U - DOS 2+ - PASS COMMAND TO COMMAND INTERPRETER FOR EXECUTION
2E - INT 2E UP - Windows NT - NATIVE API
2E----BXE22E - INT 2E - 4DOS v2.x-3.03 SHELL2E.COM - UNINSTALL
2F - INT 2F - Multiplex - NOTES
2F - INT 2F - BMB Compuscience Canada Utilities Interface - INSTALLATION CHECK
2F - INT 2F - Ross Wentworth's Turbo Pascal POPUP LIBRARY
2F - INT 2F - CiriSOFT Spanish University of Valladolid TSR's Interface
2F00 - INT 2F U - DOS 2.x only PRINT.COM - SUBMIT FILE FOR PRINTING
2F00 - INT 2F U - PSPRINT - PRINT JOB CONTROL
2F0080 - INT 2F - DOS 3.1+ PRINT - GIVE PRINT A TIME SLICE
2F00D8 - INT 2F - Personal NetWare - VLM - ???
2F01 - INT 2F U - DOS 2.x only PRINT.COM - REMOVE FILE FROM PRINT QUEUE
2F0100 - INT 2F - DOS 3.0+ PRINT - INSTALLATION CHECK
2F0100SI20D6 - INT 2F U - PrintCache 3.1 PRINT.COM - INSTALLATION CHECK
2F0101 - INT 2F - DOS 3.0+ PRINT - SUBMIT FILE FOR PRINTING
2F0101SI20D6 - INT 2F U - PrintCache v3.1 PRINT.COM - SUBMIT FILE FOR PRINTING
2F0102 - INT 2F - DOS 3.0+ PRINT - REMOVE FILE FROM PRINT QUEUE
2F0103 - INT 2F - DOS 3.0+ PRINT - CANCEL ALL FILES IN PRINT QUEUE
2F0104 - INT 2F - DOS 3.0+ PRINT - FREEZE PRINT QUEUE TO READ JOB STATUS
2F0105 - INT 2F - DOS 3.0+ PRINT - RESTART PRINT QUEUE AFTER STATUS READ
2F0106 - INT 2F - DOS 3.3+ PRINT - GET PRINTER DEVICE
2F0107 - INT 2F U - PrintCache v3.1 PRINT.COM - SET TRAILING FORM FEEDS
2F0200 - INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - INSTALLATION CHECK
2F0201 - INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
2F0202 - INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
2F0203 - INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
2F0204 - INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
2F - INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
2F0500 - INT 2F U - DOS 3.0+ CRITICAL ERROR HANDLER - INSTALLATION CHECK
2F05 - INT 2F CU - DOS 3.0+ CRITICAL ERROR HANDLER - EXPAND ERROR INTO STRING
2F0600 - INT 2F - DOS 3.0+ ASSIGN - INSTALLATION CHECK
2F0601 - INT 2F U - DOS 3.0+ ASSIGN - GET DRIVE ASSIGNMENT TABLE
2F0800 - INT 2F U - DRIVER.SYS support - INSTALLATION CHECK
2F0801 - INT 2F U - DRIVER.SYS support - ADD NEW BLOCK DEVICE
2F0802 - INT 2F U - DRIVER.SYS support - EXECUTE DEVICE DRIVER REQUEST
2F0803 - INT 2F U - DOS 4.0+ DRIVER.SYS support - GET DRIVE DATA TABLE LIST
2F1000 - INT 2F - SHARE - INSTALLATION CHECK
2F1001 - INT 2F U - DR DOS 6.0+ FDOS EXTENSIONS - INSTALL FDOS HOOK (SHARE / DELWATCH)
2F1002CHFF - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - READ BUFFERS
2F1003 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - FLUSH BUFFERS
2F1004 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - FREE FAT CHAIN
2F1005 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - ALLOCATE CLUSTER
2F1006 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - NEXT CLUSTER / READ FAT???
2F1007 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - UPDATE FAT ENTRY / WRITE FAT???
2F1008 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - FIXUP CHECKSUMS / DIR UPDATE???
2F1009 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - DIRECTORY BUFFER INFO
2F1010CX0000 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - SUPERSTOR - QUERY PHYS FREE SPACE
2F1020 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - CREATE PASSWORD ENTRY
2F1021 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - CHANGE PASSWORD ENTRY
2F1022 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - CHECK PASSWORD ENTRY
2F1040 - INT 2F U - DOS 4 only SHARE internal - ???
2F1080 - INT 2F U - DOS 4 only SHARE internal - TURN ON FILE SHARING CHECKS
2F1081 - INT 2F U - DOS 4 only SHARE internal - TURN OFF FILE SHARING CHECKS
2F10FE - INT 2F U - DR DOS 6.0+ DELWATCH.EXE - INSTALLATION CHECK
2F10FF - INT 2F U - DR DOS 5.0 - FIXUP SHARE STUB TABLE???
2F1100 - INT 2F C - NETWORK REDIRECTOR - INSTALLATION CHECK
2F1100SFDADA - INT 2F - MSCDEX (MS CD-ROM Extensions) - INSTALLATION CHECK
2F1101 - INT 2F CU - NETWORK REDIRECTOR - REMOVE REMOTE DIRECTORY
2F1102 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - REMOVE REMOTE DIRECTORY
2F1103 - INT 2F CU - NETWORK REDIRECTOR - MAKE REMOTE DIRECTORY
2F1104 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - MAKE REMOTE DIRECTORY
2F1105 - INT 2F CU - NETWORK REDIRECTOR - CHDIR
2F1106 - INT 2F CU - NETWORK REDIRECTOR - CLOSE REMOTE FILE
2F1107 - INT 2F CU - NETWORK REDIRECTOR - COMMIT REMOTE FILE
2F1108 - INT 2F CU - NETWORK REDIRECTOR - READ FROM REMOTE FILE
2F1109 - INT 2F CU - NETWORK REDIRECTOR - WRITE TO REMOTE FILE
2F110A - INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - LOCK REGION OF FILE
2F110A - INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - LOCK/UNLOCK REGION OF FILE
2F110B - INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - UNLOCK REGION OF FILE
2F110C - INT 2F CU - NETWORK REDIRECTOR - GET DISK INFORMATION
2F110D - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - SET REMOTE FILE'S ATTRIBUTES
2F110E - INT 2F CU - NETWORK REDIRECTOR - SET REMOTE FILE'S ATTRIBUTES
2F110F - INT 2F CU - NETWORK REDIRECTOR - GET REMOTE FILE'S ATTRIBUTES AND SIZE
2F1110 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GET REMOTE FILE'S ATTRIBUTES AND SIZE
2F1111 - INT 2F CU - NETWORK REDIRECTOR - RENAME REMOTE FILE
2F1112 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - RENAME REMOTE FILE
2F1113 - INT 2F CU - NETWORK REDIRECTOR - DELETE REMOTE FILE
2F1114 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - DELETE REMOTE FILE
2F1115 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - OPEN REMOTE FILE
2F1116 - INT 2F CU - NETWORK REDIRECTOR - OPEN EXISTING REMOTE FILE
2F1117 - INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE REMOTE FILE
2F1118 - INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE FILE WITHOUT CDS
2F1119 - INT 2F CU - NETWORK REDIRECTOR - FIND FIRST FILE WITHOUT CDS
2F111A - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - FIND NEXT FILE WITHOUT CDS
2F111B - INT 2F CU - NETWORK REDIRECTOR - FINDFIRST
2F111C - INT 2F CU - NETWORK REDIRECTOR - FINDNEXT
2F111D - INT 2F CU - NETWORK REDIRECTOR - CLOSE ALL REMOTE FILES FOR PROCESS (ABORT)
2F111E - INT 2F CU - NETWORK REDIRECTOR - DO REDIRECTION
2F111F - INT 2F CU - NETWORK REDIRECTOR - PRINTER SETUP
2F1120 - INT 2F CU - NETWORK REDIRECTOR - FLUSH ALL DISK BUFFERS
2F1121 - INT 2F CU - NETWORK REDIRECTOR - SEEK FROM END OF REMOTE FILE
2F1122 - INT 2F CU - NETWORK REDIRECTOR - PROCESS TERMINATION HOOK
2F1123 - INT 2F CU - NETWORK REDIRECTOR - QUALIFY REMOTE FILENAME
2F1124 - INT 2F CU - NETWORK REDIRECTOR - TURN OFF REMOTE PRINTER
2F1125 - INT 2F CU - NETWORK REDIRECTOR - REDIRECTED PRINTER MODE
2F1126 - INT 2F CU - NETWORK REDIRECTOR - REMOTE PRINTER ECHO ON/OFF
2F1127 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED
2F1127BX4E57 - INT 2F - NetWare 4.0 - REMOTE FILE COPY
2F1128 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED
2F1129 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED
2F112A - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - CLOSE ALL FILES FOR PROCESS
2F112B - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GENERIC IOCTL
2F112C - INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - "UPDATE_CB" - ???
2F112D - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - EXTENDED ATTRIBUTES
2F112E - INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - EXTENDED OPEN/CREATE FILE
2F112F - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - IFS IOCTL
2F1130 - INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GET IFSFUNC SEGMENT
2F1180 - INT 2F - LAN Manager Enhanced DOS Services - ???
2F1181 - INT 2F - LAN Manager Enhanced DOS Services - SET USER NAME???
2F1182 - INT 2F - LAN Manager Enhanced DOS Services - INSTALL SERVICE
2F1184 - INT 2F - LAN Manager Enhanced DOS - ???
2F1186 - INT 2F - LAN Manager Enhanced DOS - DosReadAsynchNmPipe
2F118A - INT 2F - LAN Manager 2.0+ DOS Enhanced ENCRYPT.EXE - STREAM ENCRYPTION SERVICE
2F118B - INT 2F - LAN Manager Enhanced DOS - ???
2F118C - INT 2F - LAN Manager Enhanced DOS - ???
2F118E - INT 2F - LAN Manager Enhanced DOS - ???
2F118F - INT 2F - LAN Manager Enhanced DOS - DosWriteAsynchNmPipe
2F1190 - INT 2F - LAN Manager Enhanced DOS - DosReadAsynchNmPipe2
2F1191 - INT 2F - LAN Manager Enhanced DOS - DosWriteAsynchNmPipe2
2F11F0 - INT 2F - Novell ??? - REMOTE FILE COPY
2F1200 - INT 2F U - DOS 3.0+ internal - INSTALLATION CHECK
2F1201 - INT 2F U - DOS 3.0+ internal - CLOSE CURRENT FILE
2F1202 - INT 2F U - DOS 3.0+ internal - GET INTERRUPT ADDRESS
2F1203 - INT 2F U - DOS 3.0+ internal - GET DOS DATA SEGMENT
2F1204 - INT 2F U - DOS 3.0+ internal - NORMALIZE PATH SEPARATOR
2F1205 - INT 2F U - DOS 3.0+ internal - OUTPUT CHARACTER TO STANDARD OUTPUT
2F1206 - INT 2F U - DOS 3.0+ internal - INVOKE CRITICAL ERROR
2F1207 - INT 2F U - DOS 3.0+ internal - MAKE DISK BUFFER MOST-RECENTLY USED
2F1208 - INT 2F U - DOS 3.0+ internal - DECREMENT SFT REFERENCE COUNT
2F1209 - INT 2F U - DOS 3.0+ internal - FLUSH AND FREE DISK BUFFER
2F120A - INT 2F U - DOS 3.0+ internal - PERFORM CRITICAL ERROR INTERRUPT
2F120B - INT 2F U - DOS 3.0+ internal - SIGNAL SHARING VIOLATION TO USER
2F120C - INT 2F U - DOS 3.0+ internal - OPEN DEVICE AND SET SFT OWNER/MODE
2F120D - INT 2F U - DOS 3.0+ internal - GET DATE AND TIME
2F120E - INT 2F U - DOS 3.0+ internal - MARK ALL DISK BUFFERS UNREFERENCED
2F120F - INT 2F U - DOS 3.0+ internal - MAKE BUFFER MOST RECENTLY USED
2F1210 - INT 2F U - DOS 3.0+ internal - FIND UNREFERENCED DISK BUFFER
2F1211 - INT 2F U - DOS 3.0+ internal - NORMALIZE ASCIZ FILENAME
2F1212 - INT 2F U - DOS 3.0+ internal - GET LENGTH OF ASCIZ STRING
2F1213 - INT 2F U - DOS 3.0+ internal - UPPERCASE CHARACTER
2F1214 - INT 2F U - DOS 3.0+ internal - COMPARE FAR POINTERS
2F1215 - INT 2F U - DOS 3.0+ internal - FLUSH BUFFER
2F1216 - INT 2F U - DOS 3.0+ internal - GET ADDRESS OF SYSTEM FILE TABLE ENTRY
2F1217 - INT 2F U - DOS 3.0+ internal - GET CURRENT DIRECTORY STRUCTURE FOR DRIVE
2F1218 - INT 2F U - DOS 3.0+ internal - GET CALLER'S REGISTERS
2F1219 - INT 2F U - DOS 3.0+ internal - SET DRIVE???
2F121A - INT 2F U - DOS 3.0+ internal - GET FILE'S DRIVE
2F121B - INT 2F U - DOS 3.0+ internal - SET YEAR/LENGTH OF FEBRUARY
2F121C - INT 2F U - DOS 3.0+ internal - CHECKSUM MEMORY
2F121D - INT 2F U - DOS 3.0+ internal - SUM MEMORY
2F121E - INT 2F U - DOS 3.0+ internal - COMPARE FILENAMES
2F121F - INT 2F U - DOS 3.0+ internal - BUILD CURRENT DIRECTORY STRUCTURE
2F1220 - INT 2F U - DOS 3.0+ internal - GET JOB FILE TABLE ENTRY
2F1221 - INT 2F U - DOS 3.0+ internal - CANONICALIZE FILE NAME
2F1222 - INT 2F U - DOS 3.0+ internal - SET EXTENDED ERROR INFO
2F1223 - INT 2F U - DOS 3.0+ internal - CHECK IF CHARACTER DEVICE
2F1224 - INT 2F U - DOS 3.0+ internal - SHARING RETRY DELAY
2F1225 - INT 2F U - DOS 3.0+ internal - GET LENGTH OF ASCIZ STRING
2F1226 - INT 2F U - DOS 3.3+ internal - OPEN FILE
2F1227 - INT 2F U - DOS 3.3+ internal - CLOSE FILE
2F1228BP4200 - INT 2F U - DOS 3.3+ internal - MOVE FILE POINTER
2F1229 - INT 2F U - DOS 3.3+ internal - READ FROM FILE
2F122A - INT 2F U - DOS 3.3+ internal - SET FASTOPEN ENTRY POINT
2F122B - INT 2F U - DOS 3.3+ internal - IOCTL
2F122C - INT 2F U - DOS 3.3+ internal - GET DEVICE CHAIN
2F122D - INT 2F U - DOS 3.3+ internal - GET EXTENDED ERROR CODE
2F122E - INT 2F U - DOS 4.0+ internal - GET OR SET ERROR TABLE ADDRESSES
2F122F - INT 2F U - DOS 4.x internal - SET DOS VERSION NUMBER TO RETURN
2F1230 - INT 2F U - Windows95 - FIND SFT ENTRY IN INTERNAL FILE TABLES
2F1231 - INT 2F U - Windows95 - SET/CLEAR "REPORT WINDOWS TO DOS PROGRAMS" FLAG
2F1250 - INT 2F U - PTS-DOS - SET MACHINE ID
2F1251 - INT 2F U - PTS-DOS - GET MACHINE ID
2F1252 - INT 2F U - PTS-DOS 6.51, S/DOS 1.0+ - SET SFT INCREMENT
2F1253 - INT 2F U - PTS-DOS 6.51, S/DOS 1.0+ - GET SFT INCREMENT
2F1260 - INT 2F C - PTS-DOS 6.51, S/DOS 1.0+ - "EMPTY" (RESERVED FOR INPUT STRING)
2F1261 - INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - GET FIRST UMB
2F1262 - INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - GET DOS COLOR
2F1263 - INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - SET DOS COLOR
2F1270 - INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - "SYSBELL" - EMIT A BEEP
2F1271 - INT 2F C - PTS-DOS, S/DOS - RESERVED FOR BEEP
2F12F0 - INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - BACKDOOR INTERCEPT INT 2Fh CHAIN
2F12F1 - INT 2F - PTS-DOS, S/DOS - RESERVED
2F12FFBL00 - INT 2F - FreeDOS - FDAK-DDT - INSTALLATION CHECK / STATUS CHECK
2F12FFBL01 - INT 2F - FreeDOS - FDAK-DDT - ENABLE FDAK DRIVERS
2F12FFBL02 - INT 2F - FreeDOS - FDAK-DDT - DISABLE FDAK DRIVERS
2F12FFBL03 - INT 2F - FreeDOS - FDAK-DDT - SWITCH BLOCK DEVICE TO READ-ONLY
2F12FFBL04 - INT 2F - FreeDOS - FDAK-DDT - SWITCH BLOCK DEVICE TO READ-WRITE
2F12FFBL05 - INT 2F - FreeDOS - FDAK-DDT - TURN ACTIVITY INDICATOR ON
2F12FFBL06 - INT 2F - FreeDOS - FDAK-DDT - TURN ACTIVITY INDICATOR OFF
2F12FFBL07 - INT 2F - FreeDOS - FDAK-DDT - UNINSTALL
2F12FFBX0000 - INT 2F U - DR DOS 6.0+ IBMBIO.COM - QUERY SIZE OF THE BDOS
2F12FFBX0001 - INT 2F U - DR DOS 6.0+ IBMBIO.COM - RELOCATE THE BDOS
2F12FFBX0002 - INT 2F U - DR DOS 6.0+ IBMBIO.COM - QUERY SIZE OF THE BIOS
2F12FFBX0003 - INT 2F U - DR DOS 6.0+ IBMBIO.COM - RELOCATE THE BIOS
2F12FFBX0005 - INT 2F U - DR DOS 6.0+ - BOOT PHASE BROADCASTS FOR MEMORYMAX/RPLOADER/SECURITY
2F12FFBX0006 - INT 2F U - DR DOS 6+, Novell DOS 7+ - EMM386.EXE - VIDEO MEMORY SPACE CONTROL
2F12FFBX0007 - INT 2F U - Novell DOS 7 - SCRIPT.EXE - GET ???
2F12FFBX0009 - INT 2F - DR DOS 6.0+ IBMBIO.COM - REGISTER ROOT OF UPPER MEMORY LINK
2F12FFBX0106 - INT 2F U - Novell DOS 7+ - MEMORYMAX INSTALLATION CHECK
2F12FFBX0206 - INT 2F - Novell DOS 7+ - MEMORYMAX GET PAGE TABLE ENTRY
2F12FFBX0306 - INT 2F - Novell DOS 7+ - MEMORYMAX SET PAGE TABLE ENTRY
2F12FFBX0406 - INT 2F - Novell DOS 7+ - MEMORYMAX CREATE ACCESS KEY
2F12FFBX0506 - INT 2F - Novell DOS 7+ - MEMORYMAX DESTROY ACCESS KEY
2F12FFBL06 - INT 2F U - Novell DOS 7 - EMM386.EXE - ???
2F12FFBX0EDC - INT 2F U - Novell DOS 7 - EMM386.EXE - CHECK IF MULTITASKING SUPPORT LOADED???
2F13 - INT 2F U - DOS 3.2+ - SET DISK INTERRUPT HANDLER
2F13 - INT 2F U - MS-NET - ???
2F1400 - INT 2F C - NLSFUNC.COM - INSTALLATION CHECK
2F1400BX0EDC - INT 2Fh - DR-DOS NLSFUNC 4.01+ - ENHANCED INSTALLATION CHECK
2F1400 - INT 2F - European MS-DOS 4.0 POPUP - "CheckPu" - INSTALLATION CHECK
2F1401 - INT 2F CU - NLSFUNC.COM - CHANGE CODE PAGE
2F1401 - INT 2F - European MS-DOS 4.0 POPUP - "PostPu" - OPEN/CLOSE POPUP SCREEN
2F1402 - INT 2F CU - NLSFUNC.COM - GET EXTENDED COUNTRY INFO
2F1402 - INT 2F - European MS-DOS 4.0 POPUP - "SavePu" - SAVE POPUP SCREEN
2F1403 - INT 2F CU - NLSFUNC.COM - SET CODE PAGE
2F1403 - INT 2F - European MS-DOS 4.0 POPUP - "RestorePu" - RESTORE SCREEN
2F1404 - INT 2F CU - NLSFUNC.COM - GET COUNTRY INFO
2F14FE - INT 2F U - DR DOS 5.0 NLSFUNC - GET EXTENDED COUNTRY INFORMATION
2F14FF - INT 2F U - DR DOS 5.0+ NLSFUNC - PREPARE CODE PAGE
2F1500 - INT 2F - DOS 4.00 GRAPHICS.COM - INSTALLATION CHECK
2F1500BX0000 - INT 2F - CD-ROM - INSTALLATION CHECK
2F1500CH90 - INT 2F U - CDBLITZ v2.11 - INSTALLATION CHECK
2F1500CH91 - INT 2F U - CDBLITZ v2.11 - GET STATISTICS
2F1500CH92 - INT 2F U - CDBLITZ v2.11 - ENABLE CACHE
2F1500CH93 - INT 2F U - CDBLITZ v2.11 - DISABLE CACHE
2F1500CH94 - INT 2F U - CDBLITZ v2.11 - SET 'MAX' MODE (CACHE BOTH DIRECTORIES AND DATA)
2F1500CH95 - INT 2F U - CDBLITZ v2.11 - SET 'MIN' MODE (CACHE ONLY DIRECTORY ENTRIES)
2F1500CH96 - INT 2F U - CDBLITZ v2.11 - FLUSH CACHE
2F1500CH97 - INT 2F U - CDBLITZ v2.11 - GET CACHE STATISTICS
2F1500CH99 - INT 2F U - CDBLITZ v2.11 - UNINSTALL
2F1501 - INT 2F - CD-ROM - GET DRIVE DEVICE LIST
2F1502 - INT 2F - CD-ROM - GET COPYRIGHT FILE NAME
2F1503 - INT 2F - CD-ROM - GET ABSTRACT FILE NAME
2F1504 - INT 2F - CD-ROM - GET BIBLIOGRAPHIC DOC FILE NAME
2F1505 - INT 2F - CD-ROM - READ VTOC
2F1506 - INT 2F - CD-ROM - TURN DEBUGGING ON
2F1507 - INT 2F - CD-ROM - TURN DEBUGGING OFF
2F1508 - INT 2F - CD-ROM - ABSOLUTE DISK READ
2F1509 - INT 2F - CD-ROM - ABSOLUTE DISK WRITE
2F150A - INT 2F - CD-ROM - RESERVED
2F150B - INT 2F - CD-ROM v2.00+ - DRIVE CHECK
2F150CBX0000 - INT 2F - CD-ROM v2.00+ - GET MSCDEX.EXE VERSION (GET VERSION)
2F150D - INT 2F - CD-ROM v2.00+ - GET CD-ROM DRIVE LETTERS
2F150E - INT 2F - CD-ROM v2.00+ - GET/SET VOLUME DESCRIPTOR PREFERENCE
2F150F - INT 2F - CD-ROM v2.00+ - GET DIRECTORY ENTRY
2F1510 - INT 2F - CD-ROM v2.10+ - SEND DEVICE DRIVER REQUEST
2F15FFBX0000 - INT 2F - CD-ROM - CORELCDX - INSTALLATION CHECK
Section -
2F1600 - INT 2F - MS Windows - WINDOWS ENHANCED MODE INSTALLATION CHECK
2F1602 - INT 2F - MS Windows/386 2.x - GET API ENTRY POINT
2F1603 - INT 2F C - MS Windows/386 - GET INSTANCE DATA
2F1605 - INT 2F C - MS Windows - WINDOWS ENHANCED MODE & 286 DOSX INIT BROADCAST
2F1606 - INT 2F C - MS Windows - WINDOWS ENHANCED MODE & 286 DOSX EXIT BROADCAST
2F1607 - INT 2F C - MS Windows - VIRTUAL DEVICE CALL OUT API
2F1607BX0006 - INT 2F C - MS Windows - "V86MMGR" VIRTUAL DEVICE API
2F1607BX000C - INT 2F C - MS Windows - "VMD" VIRTUAL MOUSE DEVICE API
2F1607BX000D - INT 2F C - MS Windows95 - "VKD" VIRTUAL DEVICE - ??? CALLOUT
2F1607BX0010 - INT 2F C - MS Windows 3.1 - "BLOCKDEV" VIRTUAL HARD DISK DEVICE API
2F1607BX0014 - INT 2F C - MS Windows - "VNETBIOS" VIRTUAL DEVICE API
2F1607BX0015 - INT 2F C - MS Windows - "DOSMGR" VIRTUAL DEVICE API
2F1607BX0018 - INT 2F C - MS Windows - "VMPoll" VIRTUAL DEVICE - IDLE CALLOUT
2F1607BX0021 - INT 2F C - MS Windows - "PageFile" VIRTUAL DEVICE - GET LOCK BYTE
2F1607BX002D - INT 2F C - MS Windows - "W32S" VIRTUAL DEVICE - ??? CALLOUT
2F1607BX0040 - INT 2F C - MS Windows - "IFSMgr" VIRTUAL DEVICE - ??? CALLOUT
2F1607BX0446 - INT 2F C - MS Windows - "VADLIBD" VIRTUAL DEVICE - ??? CALLOUT
2F1607BX0484 - INT 2F C - MS Windows - "IFSMgr" VIRTUAL DEVICE - ??? CALLOUT
2F1607BX0487 - INT 2F C - MS Windows - "NWSUP" VIRTUAL DEVICE - ??? CALLOUT
2F1607BX22C0 - INT 2F C - Rational Systems DOS/4GW - ???
2F1607BX28A1 - INT 2F C - MS Windows - "PharLap" VIRTUAL DEVICE - ??? CALLOUT
2F1607BX7A5F - INT 2F C - MS Windows - "SIWVID" VIRTUAL DEVICE - ??? CALLOUT
2F1608 - INT 2F C - MS Windows - WINDOWS ENHANCED MODE INIT COMPLETE BROADCAST
2F1609 - INT 2F C - MS Windows - WINDOWS ENHANCED MODE BEGIN EXIT BROADCAST
2F160A - INT 2F - MS Windows 3.1 - IDENTIFY WINDOWS VERSION AND TYPE
2F160B - INT 2F - MS Windows 3.1 - IDENTIFY TSRs
2F160C - INT 2F - MS Windows 3.1 - DETECT ROMs
2F160E - INT 2F U - MS-DOS 7 kernel - BOOT LOGO SUPPORT???
2F160F - INT 2F U - MS-DOS 7 kernel - GET/SET ??? HANDLER
2F1610 - INT 2F - XMS v1.x only - GET DRIVER ADDRESS
2F1611 - INT 2F U - MS-DOS 7 kernel - GET SHELL PARAMETERS
2F1612 - INT 2F U - MS-DOS 7 kernel - GET ???
2F1613 - INT 2F - MS-DOS 7 kernel - GET SYSTEM.DAT (REGISTRY FILE) PATHNAME
2F1614 - INT 2F U - MS-DOS 7 kernel - SET SYSTEM.DAT (REGISTRY FILE) PATHNAME
2F1615 - INT 2F - Windows95 - SAVE32.COM - INSTALLATION CHECK
2F1680 - INT 2F - MS Windows, DPMI, various - RELEASE CURRENT VIRTUAL MACHINE TIME-SLICE
2F1681 - INT 2F - MS Windows 3+ - BEGIN CRITICAL SECTION
2F1682 - INT 2F - MS Windows 3+ - END CRITICAL SECTION
2F1683 - INT 2F - MS Windows 3+ - GET CURRENT VIRTUAL MACHINE ID
2F1684 - INT 2F - MS Windows - GET DEVICE API ENTRY POINT
2F1684BX0001 - INT 2F - MS Windows95 - VMM - GET API ENTRY POINT
2F1684BX0003 - INT 2F - MS Windows - VPICD - GET API ENTRY POINT
2F1684BX0005 - INT 2F - MS Windows - VTD - GET API ENTRY POINT
2F1684BX0006 - INT 2F P - MS Windows95 - V86MMGR - GET API ENTRY POINT
2F1684BX0009 - INT 2F P - MS Windows - REBOOT - GET API ENTRY POINT
2F1684BX000A - INT 2F P - MS Windows - VDD - GET API ENTRY POINT
2F1684BX000C - INT 2F - MS Windows - VMD - GET API ENTRY POINT
2F1684BX000D - INT 2F P - MS Windows - VKD - GET API ENTRY POINT
2F1684BX000E - INT 2F P - MS Windows - VCD - GET API ENTRY POINT
2F1684BX000F - INT 2F P - MS Windows - VPD - GET API ENTRY POINT
2F1684BX0010 - INT 2F - MS Windows - IOS - GET API ENTRY POINT
2F1684BX0011 - INT 2F - MS Windows - VMCPD - GET API ENTRY POINT
2F1684BX0015 - INT 2F - MS Windows - DOSMGR - GET API ENTRY POINT
2F1684BX0017 - INT 2F U - MS Windows - SHELL - GET API ENTRY POINT
2F1684BX001A - INT 2F - MS Windows - VNETWARE - GET API ENTRY POINT
2F1684BX001D - INT 2F P - MS Windows - WINDEBUG - GET API ENTRY POINT
2F1684BX0021 - INT 2F PU - MS Windows - PAGEFILE - GET API ENTRY POINT
2F1684BX0022 - INT 2F P - MS Windows - APIX - GET API ENTRY POINT
2F1684BX0026 - INT 2F P - MS Windows - VPOWERD - GET API ENTRY POINT
2F1684BX0027 - INT 2F - MS Windows95 - VXDLDR - GET API ENTRY POINT
2F1684BX0028 - INT 2F - MS Windows - NDIS - GET API ENTRY POINT
2F1684BX002A - INT 2F P - MS Windows - VWIN32 - GET API ENTRY POINT
2F1684BX002B - INT 2F - MS Windows - VCOMM - GET API ENTRY POINT
2F1684BX002D - INT 2F P - MS Windows - W32S - GET API ENTRY POINT
2F1684BX0030 - INT 2F P - MS Windows - MACH32 - GET API ENTRY POINT
2F1684BX0032 - INT 2F - MS Windows - SERVER / VSERVER - GET API ENTRY POINT
2F1684BX0033 - INT 2F - MS Windows - CONFIGMG - GET API ENTRY POINT
2F1684BX0034 - INT 2F - Intel Plug-and-Play - CONFIGURATION MANAGER - GET ENTRY POINT
2F1684BX0036 - INT 2F - MS Windows - VFBACKUP - GET API ENTRY POINT
2F1684BX0037 - INT 2F - MS Windows - ENABLE.VXD - GET API ENTRY POINT
2F1684BX0038 - INT 2F - MS Windows - VCOND - GET API ENTRY POINT
2F1684BX003B - INT 2F - MS Windows - DSVXD - GET API ENTRY POINT
2F1684BX003D - INT 2F - MS Windows - BIOS VxD - GET API ENTRY POINT
2F1684BX003E - INT 2F - MS Windows - WSOCK - GET API ENTRY POINT
2F1684BX011F - INT 2F P - MS Windows - VFLATD - GET API ENTRY POINT
2F1684BX0200 - INT 2F - MS Windows - VIPX - GET API ENTRY POINT
2F1684BX0202 - INT 2F - MS Windows - WINICE - GET API ENTRY POINT
2F1684BX0203 - INT 2F P - MS Windows - VCLIENT - GET API ENTRY POINT
2F1684BX0205 - INT 2F - MS Windows - BCW - GET API ENTRY POINT
2F1684BX0207 - INT 2F R - MS Windows - DPMS VxD - GET API ENTRY POINT
2F1684BX0234 - INT 2F - MS Windows - VCOMMUTE - GET API ENTRY POINT
2F1684BX0442 - INT 2F P - MS Windows - VTDAPI - GET API ENTRY POINT
2F1684BX0444 - INT 2F - MS Windows - VADMAD - GET API ENTRY POINT
2F1684BX0445 - INT 2F - MS Windows - VSBD - GET API ENTRY POINT
2F1684BX0446 - INT 2F - MS Windows - VADLIBD - GET API ENTRY POINT
2F1684BX0449 - INT 2F P - MS Windows - vjoyd - GET API ENTRY POINT
2F1684BX044A - INT 2F - MS Windows - mmdevldr - GET API ENTRY POINT
2F1684BX045D - INT 2F P - MS Windows - VflatD - GET API ENTRY POINT
2F1684BX045F - INT 2F - MS Windows - azt16 - GET API ENTRY POINT
2F1684BX0460 - INT 2F P - MS Windows - UNIMODEM - GET API ENTRY POINT
2F1684BX0480 - INT 2F - MS Windows - VNetSup - GET API ENTRY POINT
2F1684BX0482 - INT 2F - MS Windows - VBrowse - GET API ENTRY POINT
2F1684BX0483 - INT 2F - MS Windows - VSHARE - GET API ENTRY POINT
2F1684BX0484 - INT 2F P - MS Windows - IFSMgr - GET API ENTRY POINT
2F1684BX0486 - INT 2F - MS Windows - VFAT - GET API ENTRY POINT
2F1684BX0487 - INT 2F - MS Windows - NWLINK - GET API ENTRY POINT
2F1684BX0489 - INT 2F R - MS Windows - VIP - GET API ENTRY POINT
2F1684BX048A - INT 2F - MS Windows 3.11 - VXDLDR - GET API ENTRY POINT
2F1684BX048A - INT 2F - MS Windows - VCACHE - GET API ENTRY POINT
2F1684BX048D - INT 2F - MS Windows - RASMAC - GET API ENTRY POINT
2F1684BX048E - INT 2F - MS Windows - NWREDIR - GET API ENTRY POINT
2F1684BX0494 - INT 2F - MS Windows - NSCL - GET API ENTRY POINT
2F1684BX0499 - INT 2F - MS Windows - PPPMAC - GET API ENTRY POINT
2F1684BX049A - INT 2F - MS Windows - VDHCP - GET API ENTRY POINT
2F1684BX049B - INT 2F - MS Windows - VNBT - GET API ENTRY POINT
2F1684BX1021 - INT 2F - MS Windows - VMB - GET API ENTRY POINT
2F1684BX28A0 - INT 2F - MS Windows - PHARLAPX - GET API ENTRY POINT
2F1684BX28A1 - INT 2F - MS Windows - PharLap VxD - GET API ENTRY POINT
2F1684BX2925 - INT 2F - MS Windows - EDOS - GET API ENTRY POINT
2F1684BX292D - INT 2F - MS Windows - VSBPD - GET API ENTRY POINT
2F1684BX295A - INT 2F - MS Windows - GRVSULTR - GET API ENTRY POINT
2F1684BX304C - INT 2F - Intel Plug-and-Play - CONFIGURATION ACCESS - GET ENTRY POINT
2F1684BX3099 - INT 2F - MS Windows - VVidramD - GET API ENTRY POINT
2F1684BX30F6 - INT 2F P - MS Windows - WSVV - GET API ENTRY POINT
2F1684BX310E - INT 2F - MS Windows - WPS - GET API ENTRY POINT
2F1684BX3110 - INT 2F - MS Windows - VSGLX16.386 - GET API ENTRY POINT
2F1684BX31CF - INT 2F - MS Windows - STAT.386 - GET API ENTRY POINT
2F1684BX34DC - INT 2F - QEMM v8.01 - MAGNARAM VxD - GET API ENTRY POINT
2F1684BX357E - INT 2F - MS Windows - DSOUND - GET API ENTRY POINT
2F1684BX377B - INT 2F - MS Windows - MX1501HAD - GET API ENTRY POINT
2F1684BX38DA - INT 2F - MS Windows - VIWD - GET API ENTRY POINT
2F1684BX4321 - INT 2F - MS Windows - POSTMSG - GET API ENTRY POINT
2F1684BX7FE0 - INT 2F - MS Windows - VSWITCHD - GET API ENTRY POINT
2F1684BX8888 - INT 2F - MS Windows - VbillD - GET API ENTRY POINT
2F1685 - INT 2F - MS Windows - SWITCH VMs AND CALLBACK
2F1686 - INT 2F - DOS Protected-Mode Interface - DETECT MODE
2F1687 - INT 2F - DOS Protected-Mode Interface - INSTALLATION CHECK
2F1688BX0BAD - INT 2F U - MS Windows 3.0, 386MAX v6.01 - GET ALIAS SELECTOR TO LDT
2F1689 - INT 2F U - MS Windows 3.0+ - KERNEL IDLE CALL
2F168A - INT 2F - DPMI 0.9+ - GET VENDOR-SPECIFIC API ENTRY POINT
2F168B - INT 2F - MS Windows 3.1 - SET FOCUS TO SPECIFIED VIRTUAL MACHINE
2F168C - INT 2F - MS Windows 3.1 - RESTART COMMAND
2F168EDX0000 - INT 2F - Windows95 - TITLE - SET APPLICATION TITLE
2F168EDX0001 - INT 2F - Windows95 - TITLE - SET VIRTUAL MACHINE TITLE
2F168EDX0002 - INT 2F - Windows95 - TITLE - GET APPLICATION TITLE
2F168EDX0003 - INT 2F - Windows95 - TITLE - GET VIRTUAL MACHINE TITLE
2F168FDH00 - INT 2F - Windows95 - CLOSE-AWARENESS - ENABLE/DISABLE CLOSE COMMAND
2F168FDH01 - INT 2F - Windows95 - CLOSE-AWARENESS - QUERY CLOSE
2F168FDH02 - INT 2F - Windows95 - CLOSE-AWARENESS - ACKNOWLEDGE CLOSE
2F168FDH03 - INT 2F - Windows95 - CLOSE-AWARENESS - CANCEL CLOSE
2F1690 - INT 2F U - MS-DOS 7 kernel - GET/SET ???
2F1700 - INT 2F - MS Windows "WINOLDAP" - IDENTIFY WinOldAp VERSION
2F1701 - INT 2F - MS Windows "WINOLDAP" - OPEN CLIPBOARD
2F1702 - INT 2F - MS Windows "WINOLDAP" - EMPTY CLIPBOARD
2F1703 - INT 2F - MS Windows "WINOLDAP" - SET CLIPBOARD DATA
2F1704 - INT 2F - MS Windows "WINOLDAP" - GET CLIPBOARD DATA SIZE
2F1705 - INT 2F - MS Windows "WINOLDAP" - GET CLIPBOARD DATA
2F1708 - INT 2F - MS Windows "WINOLDAP" - CloseClipboard
2F1709 - INT 2F - MS Windows "WINOLDAP" - COMPACT CLIPBOARD
2F170A - INT 2F - MS Windows "WINOLDAP" - GET DEVICE CAPABILITIES
2F18 - INT 2F U - MS-Manager
2F1900 - INT 2F U - DOS 4.x only SHELLB.COM - INSTALLATION CHECK
2F1901 - INT 2F U - DOS 4.x only SHELLB.COM - SHELLC.EXE INTERFACE
2F1902 - INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM INTERFACE
2F1903 - INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM interface
2F1904 - INT 2F U - DOS 4.x only SHELLB.COM - SHELLB transient to TSR interface
2F1980 - INT 2F U - IBM ROM-DOS v4.0 - INSTALLATION CHECK
2F1981 - INT 2F U - IBM ROM-DOS v4.0 - GET ??? STRING
2F1982 - INT 2F U - IBM ROM-DOS v4.0 - GET ??? TABLE
2F1A00 - INT 2F - DOS 4.0+ ANSI.SYS - INSTALLATION CHECK
2F1A00BX414E - INT 2F - ANSIPLUS.SYS v2.00+ - INSTALLATION CHECK
2F1A00BX4156 - INT 2F - AVATAR.SYS - INSTALLATION CHECK
2F1A01 - INT 2F U - DOS 4.0+ ANSI.SYS internal - GET/SET DISPLAY INFORMATION
2F1A02 - INT 2F U - DOS 4.0+ ANSI.SYS internal - MISCELLANEOUS REQUESTS
2F1A21 - INT 2F - AVATAR.SYS - SET DRIVER STATE
2F1A3C - INT 2F U - AVATAR.SYS v0.11 - ???
2F1A3E - INT 2F U - AVATAR.SYS v0.11 - ???
2F1A3F - INT 2F - AVATAR.SYS - QUERY DRIVER STATE
2F1A42BX4156 - INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ3 HANDLER
2F1A43BX4156 - INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ4 HANDLER
2F1A44BX4156 - INT 2F - AVATAR.SYS v0.11+ - GET DATA SEGMENT
2F1A52 - INT 2F U - AVATAR.SYS v0.11 - GET ???
2F1A53 - INT 2F U - AVATAR.SYS v0.11 - ???
2F1A62BX4156 - INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ3 HANDLER
2F1A63BX4156 - INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ4 HANDLER
2F1A72 - INT 2F U - AVATAR.SYS v0.11 - GET ??? SIZE
2F1A7B - INT 2F U - AVATAR.SYS v0.11 - ???
2F1A7D - INT 2F U - AVATAR.SYS v0.11 - ???
2F1AA3 - INT 2F - ANSIPLUS v4.03+ - GET/SET ANSIPLUS INTERNAL VARIABLES
2F1AA4 - INT 2F - ANSIPLUS v4.02+ - GET/SET ANSIPLUS SMOOTH SCROLLING RATE
2F1AA5 - INT 2F - ANSIPLUS v4.00+ - GET/SET ANSIPLUS CLIPBOARD
2F1AA6 - INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS DRIVER
2F1AA7 - INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS FEATURES
2F1AA8 - INT 2F - ANSIPLUS v3.10+ - GET NEXT ANSIPLUS SCROLLBACK LINE
2F1AA9 - INT 2F - ANSIPLUS v3.10+ - GET ANSIPLUS SCROLLBACK INFORMATION
2F1AAA - INT 2F - ANSIPLUS v3.01+ - GET/SET ANSIPLUS SCREEN SAVER BLANKING TIME
2F1AAB - INT 2F - ANSIPLUS v3.01+ - SET ANSIPLUS KEY REPEAT RATE
2F1AAC - INT 2F - ANSIPLUS v3.00+ - LOAD CHARACTER GENERATOR
2F1AAD - INT 2F - ANSIPLUS v2.00+ - ANSIPLUS DEVICE STATUS REPORT
2F1AADDX0000 - INT 2F U - AVATAR.SYS v0.11 - ???
2F1B00 - INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - INSTALLATION CHECK
2F1B - INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - GET HIDDEN FRAME INFORMATION
2F2300 - INT 2F - DR DOS 5.0 GRAFTABL - INSTALLATION CHECK
2F23 - INT 2F - DR DOS 5.0 GRAFTABL - GET GRAPHICS DATA
2F2700 - INT 2F - DR DOS 6.0 TaskMAX - INSTALLATION CHECK
2F2701 - INT 2F - DR DOS 6.0 TaskMAX - GET STATUS
2F2702 - INT 2F - DR DOS 6.0 TaskMAX - GET PER-TASK EMS LIMIT
2F2703 - INT 2F - DR DOS 6.0 TaskMAX - SET PER-TASK EMS LIMIT
2F2704 - INT 2F - DR DOS 6.0 TaskMAX - REGISTER/UNREGISTER TASK MANAGER
2F2705 - INT 2F - DR DOS 6.0 TaskMAX - ENABLE/DISABLE DIRECT SWITCHING
2F2706 - INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO SPECIFIED TASK
2F2707 - INT 2F - DR DOS 6.0 TaskMAX - CREATE NEW TASK
2F2708 - INT 2F - DR DOS 6.0 TaskMAX - DELETE TASK
2F2709 - INT 2F - DR DOS 6.0 TaskMAX - NAME TASK
2F270A - INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK INDEX TO TASK ID
2F270B - INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK ID TO TASK INDEX
2F270C - INT 2F - DR DOS 6.0 TaskMAX - CHECK OPEN FILES
2F270D - INT 2F - DR DOS 6.0 TaskMAX - CHECK IF TASK RUNNING PRIMARY COMMAND INTERPRETER
2F270E - INT 2F - DR DOS 6.0 TaskMAX - GET/SET TEXT PASTE LEAD-IN
2F270F - INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE LEAD-IN
2F2710 - INT 2F - DR DOS 6.0 TaskMAX - GET/SET PASTE LINE TERMINATOR STRING
2F2711 - INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE DECIMAL POINT
2F2712 - INT 2F - DR DOS 6.0 TaskMAX - INITIATE EXPORTING TASK DATA
2F2713 - INT 2F - DR DOS 6.0 TaskMAX - INITIATE PASTE OPERATION
2F2714 - INT 2F - DR DOS 6.0 TaskMAX - GET SWAP SPACE INFO
2F2715 - INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO TASK MANAGER
2F2716 - INT 2F - DR DOS 6.0 TaskMAX - GET PASTE BUFFER STATUS
2F2717 - INT 2F - DR DOS 6.0 TaskMAX - PASTE DATA DIRECTLY TO APPLICATION BUFFER
2F2718 - INT 2F - DR DOS 6.0 TaskMAX - COPY DATA DIRECTLY INTO PASTE BUFFER
2F2719 - INT 2F - Novell DOS 7 TaskMGR - NOP
2F271C - INT 2F U - Novell DOS 7 TaskMGR - ???
2F2780CL01 - INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - SUPERVISOR MODULE
2F2780CL02 - INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - REAL-TIME MONITOR
2F2780CL03 - INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - MEMORY
2F2780CL04 - INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DOMAINS
2F2780CL05 - INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - VIRTUAL MACHINES
2F2780CL06 - INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DPMI SERVICES
2F2780 - INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - AVAILABLE FOR APPS
2F2781 - INT 2F U - Novell DOS 7 TaskMGR - BEGIN CRITICAL SECTION???
2F2782 - INT 2F U - Novell DOS 7 TaskMGR - END CRITICAL SECTION???
2F2783 - INT 2F U - Novell DOS 7 - EMM386.EXE - GET ???
2F278F - INT 2F U - Novell DOS 7 TaskMGR - ??? API
2F2A - INT 2F - Gammafax DOS Dispatcher INTERFACE
2F2E00 - INT 2F U - Novell DOS 7 - GRAFTABL - INSTALLATION CHECK
2F2E - INT 2F U - Novell DOS 7 - GRAFTABL - GET FONT TABLE
2F3900 - INT 2F - Kingswood TSR INTERFACE - COMPATIBILITY MODE
2F39--BL00 - INT 2F - Kingswood TSR INTERFACE - INSTALLATION CHECK
2F39--BL01 - INT 2F - Kingswood TSR INTERFACE - REMOVAL CHECK
2F39 - INT 2F - Kingswood TSR INTERFACE - APPLICATION-SPECIFIC FUNCTION CALLS
2F3901BL02 - INT 2F - Kingswood TSR Windows - OPEN WINDOW
2F3901BL03 - INT 2F - Kingswood TSR Windows - HIDE WINDOWS
2F3901BL04 - INT 2F - Kingswood TSR Windows - SHOW WINDOWS
2F3901BL05 - INT 2F - Kingswood TSR Windows - CLOSE WINDOW
2F3901BL06 - INT 2F - Kingswood TSR Windows - SET WINDOW TITLE
2F3901BL07 - INT 2F - Kingswood TSR Windows - POSITION CURSOR
2F3901BL08 - INT 2F - Kingswood TSR Windows - DISPLAY STRING
2F3901BL09 - INT 2F - Kingswood TSR Windows - SCROLL WINDOW
2F3901BL0A - INT 2F - Kingswood TSR Windows - SOUND BEEPER
2F3901BL0B - INT 2F - Kingswood TSR Windows - ADD OR REMOVE USER
2F3912BL03 - INT 2F - Kingswood ANSI display driver - SET COMPATIBILITY MODE
2F3912BL04 - INT 2F - Kingswood ANSI display driver - SET FLAGS
2F4000 - INT 2F - Windows 3+ (OS/2 2.x???) - GET VIRTUAL DEVICE DRIVER (VDD) CAPABILTIES
2F4001 - INT 2F C - OS/2 compatibility box - SWITCHING DOS TO BACKGROUND
2F4002 - INT 2F C - OS/2 compatibility box - SWITCHING DOS TO FOREGROUND
2F4003 - INT 2F - Windows 3.x - ENTERING VIDEO DRIVER CRITICAL SECTION
2F4004 - INT 2F - Windows 3.x - EXITING VIDEO DRIVER CRITICAL SECTION
2F4005 - INT 2F C - Windows 3.x - SWITCHING DOS TO BACKGROUND
2F4006 - INT 2F C - Windows 3.x - SWITCHING DOS TO FOREGROUND
2F4007 - INT 2F - Windows 3.x - ENABLE VDD TRAPPING OF VIDEO REGISTERS
2F4010 - INT 2F - OS/2 v2.0+ - INSTALLATION CHECK / GET VERSION
2F4011 - INT 2F - OS/2 - GET VDD API ENTRY POINT
2F4021 - INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ???
2F4022 - INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ???
2F4023 - INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ???
2F4027 - INT 2F UC - Diamond Stealth64 Video - DMSSTL.DRV - ???
2F4040 - INT 2F - PharLap 286|DOS-Extender Lite v2.5 - ???
2F4100 - INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - INSTALLATION CHECK
2F4103 - INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - ???
2F4104 - INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - ???
2F42 - INT 2F - LAN Manager 2.0 DOS Enhanced MSRV.EXE - MESSENGER SERVICE
2F4300 - INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) v2+ - INSTALLATION CHECK
2F4308 - INT 2F U - HIMEM.SYS v2.77+ - GET A20 HANDLER NUMBER
2F4309 - INT 2F U - HIMEM.SYS v3.09+ - GET XMS HANDLE TABLE
2F4310 - INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) v2+ - GET DRIVER ADDRESS
2F4310 - INT 2F - Cloaking - REAL-MODE API
2F4310 - INT 2F - Helix Netroom RM386 v6.00 - XMS EXTENSIONS
2F4310 - INT 2F - NEC PC-9800 - XMZ - PRIVATE API
2F4320 - INT 2F U - HIMEM.SYS - Mach 20 SUPPORT
2F4330 - INT 2F CU - HIMEM.SYS v2.77+ - GET EXTERNAL A20 HANDLER ADDRESS
2F43D6 - INT 2F - Multiplex - ???
2F43E0BX0000 - INT 2F - DOS Protected Mode Services (DPMS) v1.0 - INSTALLATION CHECK
2F43E1 - INT 2F - DOS Protected Mode Services (DPMS) v1.0 - REGISTER CLIENT
2F43E2 - INT 2F - DOS Protected Mode Services (DPMS) v1.0 - ENABLE/DISABLE DPMS
2F43E3BX0000 - INT 2F C - DOS Protected Mode Services (DPMS) v1.0 - DPMS STARTUP BROADCAST
2F43E4BX0000 - INT 2F C - DOS Protected Mode Services (DPMS) v1.0 - DPMS EXIT BROADCAST
2F44 - INT 2F U - DOS Extender support???
2F4500 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - INSTALLATION CHECK
2F4501 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SETUP PROFILER
2F4502 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SET SAMPLING RATE
2F4503 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - START PROFILING
2F4504 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - STOP PROFILING
2F4505 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - CLEAR PROFILING DATA
2F4506 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFlush"
2F4507 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFinish"
2F4508 - INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - ALTERNATE SEGDEBUG IFACE
2F4601 - INT 2F CU - MS Windows WINOLDAP - SWITCHING ???
2F4602 - INT 2F CU - MS Windows WINOLDAP - SWITCHING ???
2F46 - INT 2F U - Windows/286 DOS Extender
2F4653CX0002 - INT 2F - F-PROT v1.x only - F-LOCK.EXE - API
2F4653CX0003 - INT 2F - F-PROT v1.x only - F-XCHK.EXE - API
2F4653CX0004 - INT 2F - F-PROT v1.x only - F-POPUP.EXE - API
2F4653CX0005 - INT 2F - F-PROT v1.x only - F-DLOCK.EXE - API
2F4653CX0007 - INT 2F - F-PROT v2.x - VIRSTOP - ENABLE/DISABLE BOOTSECTOR READ CHECKING
2F4653CX0008 - INT 2F - F-PROT v2.x - ???
2F4653CX0008 - INT 2F - F-PROT v2.x - VIRSTOP - INSTALLATION CHECK
2F4680 - INT 2F U - MS Windows v3.0 - INSTALLATION CHECK
2F47 - INT 2F U - ???
2F4800 - INT 2F - DOS 5+ DOSKEY - INSTALLATION CHECK
2F4800 - INT 2F - PCED v2.1 - INSTALLATION CHECK
2F4810 - INT 2F - DOS 5+ DOSKEY, PCED v2.1 - READ INPUT LINE FROM CONSOLE
2F48C0 - INT 2F - PCED v2.1 - PCED API
2F48C1BL00 - INT 2F - PCED/VSTACK - INSTALLATION CHECK
2F48C2BL00 - INT 2F - PCED/ATTRIB - INSTALLATION CHECK
2F48C3BL00 - INT 2F - PCED/KEYDEF - INSTALLATION CHECK
2F48C4BL00 - INT 2F - PCED/FLIST - INSTALLATION CHECK
2F48C5BL00 - INT 2F - PCED/ASSOC - INSTALLATION CHECK
2F48C5BL01 - INT 2F - PCED/ASSOC - GET VERSION
2F48C5BL02 - INT 2F - PCED/ASSOC - ASSOCIATION TEST
2F49 - INT 2F U - DOS 5.0+ SETUP
2F4A00CX0000 - INT 2F CU - DOS 5+ - FLOPPY-DISK LOGICAL DRIVE CHANGE NOTIFICATION
2F4A01 - INT 2F - DOS 5+ - QUERY FREE HMA SPACE
2F4A02 - INT 2F - DOS 5+ - ALLOCATE HMA SPACE
2F4A03 - INT 2F U - Windows95 - DOS KERNEL - (DE)ALLOCATE HMA MEMORY BLOCK
2F4A04 - INT 2F U - Windows95 - DOS KERNEL - GET START OF HMA MEMORY CHAIN
2F4A05 - INT 2F U - DOS 5+ DOSSHELL - TASK SWITCHING API???
2F4A06 - INT 2F CU - DOS 5+ - DOS SUPERVISOR "REBOOT PANEL" - ADJUST MEMORY SIZE
2F4A07 - INT 2F U - RESERVED FOR PROTMAN SUPPORT
2F4A10BX0000 - INT 2F - SMARTDRV v4.00+ - INSTALLATION CHECK AND HIT RATIOS
2F4A10BX0000 - INT 2F U - Novell NWCACHE - INSTALLATION CHECK AND STATISTICS
2F4A10BX0001 - INT 2F - SMARTDRV v4.00+ - FLUSH BUFFERS (COMMIT CACHE)
2F4A10BX0001 - INT 2F U - Novell NWCACHE - ???
2F4A10BX0002 - INT 2F - SMARTDRV v4.00+ - RESET CACHE
2F4A10BX0003 - INT 2F - SMARTDRV v4.00+ - STATUS
2F4A10BX0004 - INT 2F - SMARTDRV v4.00+ - GET CACHE SIZE
2F4A10BX0005 - INT 2F - SMARTDRV v4.00+ - GET DOUBLE-BUFFER STATUS
2F4A10BX0006 - INT 2F CU - SMARTDRV v4.00+ - CHECK IF DRIVE CACHEABLE
2F4A10BX0007 - INT 2F - SMARTDRV v4.00+ - GET DEVICE DRIVER FOR DRIVE
2F4A10BX0008 - INT 2F - SMARTDRV v4.20+ - GET/SET FLUSH BEFORE PROMPT, CD-ROM SUPPORT
2F4A10BX000A - INT 2F - SMARTDRV v4.00+ - GET ELEMENT STATUS TABLE
2F4A10BX1234 - INT 2F - SMARTDRV v4.00+ - SIGNAL SERIOUS ERROR
2F4A11BX0000 - INT 2F - DBLSPACE.BIN - "GetVersion" - INSTALLATION CHECK
2F4A11BX0001 - INT 2F - DBLSPACE.BIN - "GetDriveMapping" - GET DRIVE MAPPING
2F4A11BX0002 - INT 2F - DBLSPACE.BIN - "Swap Drive" - SWAP DRIVE LETTERS OF CVF AND HOST DRIVE
2F4A11BX0003 - INT 2F - DBLSPACE.BIN - "DSGetEntryPoints" - GET DEVICE DRIVER ENTRY POINTS
2F4A11BX0004 - INT 2F - DBLSPACE.BIN - "DSSetEntryPoints" - SET DEVICE DRIVER ENTRY POINTS
2F4A11BX0005 - INT 2F - DBLSPACE.BIN - "ActivateDrive" - MOUNT COMPRESSED DRIVE
2F4A11BX0006 - INT 2F - DBLSPACE.BIN - "DeactivateDrive" - UNMOUNT COMPRESSED DRIVE
2F4A11BX0007 - INT 2F - DBLSPACE.BIN - "GetDriveSpace" - GET SPACE AVAIL ON COMPRESSED DRIVE
2F4A11BX0008 - INT 2F - DBLSPACE.BIN - "GetFileFragmentSpace" - GET SIZE OF FRAGMENT HEAP
2F4A11BX0009 - INT 2F - DBLSPACE.BIN - "GetExtraInfo" - DETERMINE NUMBER OF DISK_UNIT STRUCTS
2F4A11BX000A - INT 2F - DBLSPACE.BIN v6.2 - SET AUTOMOUNT DRIVES
2F4A11BX000B - INT 2F - DBLSPACE.BIN v6.2 - GET AUTOMOUNT DRIVES
2F4A11BXFFFE - INT 2F U - DBLSPACE.BIN - RELOCATE
2F4A11BXFFFF - INT 2F U - DBLSPACE.BIN - GET RELOCATION SIZE
2F4A12CX4D52 - INT 2F - Microsoft Realtime Compression Interface (MRCI) - RAM-BASED SERVER
2F4A12CX5354 - INT 2F - Stacker 4 LZS Compression Interface (LZSAPI)
2F4A13 - INT 2F U - DBLSPACE.BIN - DBLSPACE/MRCI STEALTH PACKET API
2F4A15BX0000 - INT 2F - MS EMM386.EXE v4.46+ - INSTALL I/O VIRTUALIZATION HANDLER
2F4A16 - INT 2F U - Windows95 - OPEN BOOT LOG
2F4A17 - INT 2F U - Windows95 - WRITE TO BOOT LOG
2F4A18 - INT 2F U - Windows95 - CLOSE BOOT LOG
2F4A21 - INT 2F U - Windows95 - ???
2F4A31 - INT 2F U - Windows95 - ???
2F4A32 - INT 2F U - Windows95 - PATCH ???
2F4A33 - INT 2F - Windows95 - CHECK MS-DOS VERSION 7
2F4B - INT 2F - LAN Manager 2.0 DOS Enh NETWKSTA.EXE - NETWORK WORKSTATION REDIRECTOR
2F4B01 - INT 2F C - DOS 5+ TASK SWITCHER - BUILD CALLOUT CHAIN
2F4B02BX0000 - INT 2F - DOS 5+ TASK SWITCHER - INSTALLATION CHECK
2F4B03 - INT 2F - DOS 5+ TASK SWITCHER - ALLOCATE SWITCHER ID
2F4B04 - INT 2F - DOS 5+ TASK SWITCHER - FREE SWITCHER ID
2F4B05 - INT 2F C - DOS 5+ TASK SWITCHER - IDENTIFY INSTANCE DATA
2F4B06 - INT 2F - MS Windows - WIN.COM - GET ??? POINTER TO WIN.COM
2F4B20 - INT 2F - MS Windows 3+ - WIN.COM - SET PROGRAM TO EXECUTE ON EXIT
2F4B21 - INT 2F - Windows95 - WIN.COM - GET NESTING LEVEL
2F4B52 - INT 2F - KeyRus v7.3 - API
2F4B80 - INT 2F - MS Windows - WSWAP.EXE - RESET INTERNAL VARIABLES
2F4C - INT 2F U - Advanced Power Management
2F4D - INT 2F U - KKCFUNC
2F4E53BL00 - INT 2F - SilverNET v2+ - INSTALLATION CHECK
2F4E53BL01 - INT 2F - SilverNET - GET RUNTIME PARAMETER
2F4E53BL02 - INT 2F - SilverNET - SET RUNTIME PARAMETERS
2F5100 - INT 2F U - ODIHLP.EXE - INSTALLATION CHECK
2F5200 - INT 2F - JAM.SYS v1.10+ - "GetVersion" - INSTALLATION CHECK
2F5201 - INT 2F - JAM.SYS v1.10+ - "GetInfo" - GET COMPRESSED DRIVE INFORMATION
2F5202 - INT 2F - JAM.SYS v1.10+ - "Attach" - MOUNT COMPRESSED DRIVE
2F5203 - INT 2F - JAM.SYS v1.10+ - "Detach" - UNMOUNT COMPRESSED DRIVE
2F5204 - INT 2F - JAM.SYS v1.10+ - "Lock" - LOCK COMPRESSED DRIVE
2F5205 - INT 2F - JAM.SYS v1.10+ - "UnLock" - UNLOCK COMPRESSED DRIVE
2F5206 - INT 2F - JAM.SYS v1.10+ - "Read" - PHYSICAL READ DATA FROM JAM ARCHIVE
2F5207 - INT 2F - JAM.SYS v1.10+ - "Write" - PHYSICAL WRITE DATA TO JAM ARCHIVE
2F53 - INT 2F U - POWER.EXE - APM event broadcasting???
2F530B - INT 2F U - ??? (MOUSEPWR.COM, others) - ???
2F5400 - INT 2F U - POWER.EXE - INSTALLATION CHECK
2F5401 - INT 2F U - POWER.EXE - GET/SET POWER STATUS
2F5402 - INT 2F U - POWER.EXE - GET/SET IDLE DETECTION STRATEGY
2F5403 - INT 2F U - POWER.EXE - GET/SET ADVANCED POWER MANAGEMENT SETTING
2F5453 - INT 2F - TesSeRact RAM-RESIDENT PROGRAM INTERFACE
2F5480 - INT 2F U - POWER.EXE - GET/SET ???
2F5481 - INT 2F U - POWER.EXE - GET STATISTICS
2F5482 - INT 2F U - POWER.EXE - GET/SET APM POLLING FREQUENCY
2F548F - INT 2F U - POWER.EXE - GET/SET ???
2F5500 - INT 2F U - DOS 5+ - COMMAND.COM INTERFACE
2F5501 - INT 2F U - DOS 5+ - ROM COMMAND.COM INTERFACE
2F5600 - INT 2F - INTERLNK - INSTALLATION CHECK
2F5601 - INT 2F - INTERLNK - CHECK IF REDIRECTED DRIVE
2F5602 - INT 2F - INTERLNK - CHECK IF PORT IN USE
2F5700 - INT 2F U - IOMEGA DRIVERS - INSTALLATION CHECK
2F5701 - INT 2F U - IOMEGA DRIVERS - SECONDARY INSTALLATION CHECK
2F5710 - INT 2F U - IOMEGA DRIVERS - GET DRIVER INFORMATION???
2F5711 - INT 2F U - IOMEGA DRIVERS - LOCK MEDIA IN DRIVE
2F5712 - INT 2F U - IOMEGA DRIVERS - UNLOCK MEDIA IN DRIVE / EJECT
2F5758BX4858 - INT 2F U - Helix Multimedia Cloaking - CACHECLK - INSTALLATION CHECK
2F5D00 - INT 2F U - PCMCIA - AWARD PCDISK - GET INFO FROM DRIVER ???
2F5D01 - INT 2F U - PCMCIA - AWARD PCDISK - PUT INFO INTO DRIVER ???
2F60FFDL00 - INT 2F U - IPLAY v1.00b - INSTALLATION CHECK
2F60FFDL01 - INT 2F U - IPLAY v1.00b - GET DATA SEGMENT
2F6282 - INT 2F U - PC Tools v7.0+ VDEFEND, VSAFE, VWATCH, DATAMON - SET ??? ADDRESS
2F6284BX0000 - INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
2F6284BX0001 - INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
2F6284BX0002 - INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET OPTIONS
2F6284BX0003 - INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - SET OPTION??? FLAGS
2F6284BX0004 - INT 2F U - PC Tools v8 DATAMON, v9+ DPROTECT - ???
2F6400 - INT 2F - SCRNSAV2.COM - INSTALLATION CHECK
2F7000 - INT 2F - License Service API - INSTALLATION CHECK
2F7001 - INT 2F - License Service API - REQUEST LICENSE
2F7002 - INT 2F - License Service API - RELEASE LICENSE
2F7003 - INT 2F - License Service API - UPDATE
2F7004 - INT 2F - License Service API - GET ERROR
2F7005 - INT 2F - License Service API - QUERY LICENSE
2F7041BX4B70 - INT 2F U - HP 200LX - KEY200 - INSTALLATION CHECK
2F7200 - INT 2F - SRDISK v1.30+ - INSTALLATION CHECK
2F7201 - INT 2F - SRDISK v2.02 - GET CODE/DATA SEGMENT
Section -
2F7A00 - INT 2F - Novell NetWare - LOW-LEVEL API (IPX) INSTALLATION CHECK
2F7A10 - INT 2F U - Novell NetWare - TBMI v1.1+ - GET TBMI STATUS
2F7A11 - INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT2F HANDLERS
2F7A12 - INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT64 HANDLERS
2F7A13 - INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT7A HANDLERS
2F7A14 - INT 2F U - Novell NetWare - TBMI v1.1+ - GET STATISTICS
2F7A15 - INT 2F OU - Novell NetWare - TBMI v1.1 only - RESET ???
2F7A16 - INT 2F OU - Novell NetWare - TBMI v1.1 only - ???
2F7A17 - INT 2F OU - Novell NetWare - TBMI v1.1 only - ???
2F7A18 - INT 2F U - Novell NetWare - TASKID v1.0 - INSTALLATION CHECK
2F7A19 - INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 08 HANDLERS
2F7A1A - INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 2F HANDLERS
2F7A1B - INT 2F U - Novell NetWare - TASKID v1.0 - GET DIAGNOSTICS INFORMATION
2F7A1C - INT 2F U - Novell NetWare - TBMI v1.1+ - ???
2F7A1D - INT 2F U - Novell NetWare - TBMI v1.1+ - ???
2F7A1E - INT 2F U - Novell NetWare - TBMI v1.1+ - ???
2F7A20BX0000 - INT 2F - Novell NetWare - Adv NetWare 4.0 DOS Requester - GET VLM CALL ADDRESS
2F7A20BX0001 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM CallA ADDRESS
2F7A20BX0002 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTIPLEX ADDRESS
2F7A20BX0003 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM PARSE API ADDRESS
2F7A20BX0004 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTICAST CALLOUT
2F7A20BX0005 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM INT 24 ADDRESS
2F7A20BX0006 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
2F7A20BX0007 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
2F7A20BX0008 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
2F7A20BX0080 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
2F7A20BX0081 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
2F7A20BX0082 - INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
2F7A21 - INT 2F C - Novell NetWare - DOS Requester - BROADCAST CALLBACK
2F7A22 - INT 2F C - Novell NetWare - DOS Requester - BROADCAST/SFT3 INFORM
2F7A2F - INT 2F - Novell NetWare - IPXODI v2.12 - GET GNMA SUPPORT
2F7A2FBX0EDC - INT 2F U - Personal NetWare - HRMIB - UNINSTALL
2F7A40 - INT 2F - Novell NetWare - TCP/IP Protocol Stack - INSTALLATION CHECK
2F7A41 - INT 2F U - Novell NetWare - TCP/IP Protocol Stack - WINDOWS SUPPORT???
2F7A42 - INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ??? ENTRY POINT
2F7A43 - INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ???
2F7A44 - INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - SET ???
2F7A4C - INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ???
2F7A4DBX0001 - INT 2F U - Novell NetWare - ???
2F7A4E - INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - INSTALLATION CHECK
2F7A4F - INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - UNINSTALL
2F7A4FBX0001 - INT 2F U - Novell NetWare - SNMP.EXE - INSTALLATION CHECK
2F7A4FBX0002 - INT 2F U - Novell NetWare - SNMP.EXE - ???
2F7A80 - INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - ABNORMAL EXIT
2F7A81 - INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - SET SHELL INT 21 HANDLER
2F7A85 - INT 2F C - Novell NetWare - shell 3.01 - BROADCAST INFORM
2F7A90 - INT 2F U - Novell NetWare - NETBIOS.EXE 3+ - INSTALLATION CHECK
2F7AA0 - INT 2F U - Personal NetWare - HRMIB - ???
2F7AC1 - INT 2F - LAN HiJack - LHR - DISABLE???
2F7AC2 - INT 2F - LAN HiJack - LHR - SYNCHRONIZE SHIFT STATES???
2F7AC3 - INT 2F - LAN HiJack - LHR - CLEAR ??? FLAG
2F7AC8 - INT 2F - LAN HiJack - LHR - ENABLE FUNCTIONS
2F7AC9 - INT 2F - LAN HiJack - LHR - DISABLE FUNCTIONS
2F7ACA - INT 2F - LAN HiJack - LHJ - ???
2F7ACB - INT 2F - LAN HiJack - LHJ - ???
2F7ACC - INT 2F - LAN HiJack - LHJ - ???
2F7ACFBX0000 - INT 2F - LAN HiJack - LHR - INSTALLATION CHECK
2F7AF0 - INT 2F - Novell NetWare - DOSNP.EXE v1.30G - INSTALLATION CHECK
2F7AF1 - INT 2F - Novell NetWare - Access Server Driver - INSTALLATION CHECK
2F7AFE - INT 2F U - Novell NetWare - DOSNP.EXE - INSTALLATION CHECK
2F7AFFBX0000 - INT 2F - Novell NetWare - TBMI v1.1+ - INSTALLATION CHECK / Windows SUPPORT
2F7AFFBX0001 - INT 2F - Novell NetWare - TBMI v1.1+, shell v3.01d - INSTALLATION CHECK???
2F7F00 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - INSTALLATION CHECK
2F7F00 - INT 2F - PRINDIR v9.0 - INSTALLATION CHECK
2F7F01 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO COMMAND
2F7F01 - INT 2F - PRINDIR v9.0 - SET CAPTURE DEVICE
2F7F02 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO RESET
2F7F02 - INT 2F - PRINDIR v9.0 - SET DESTINATION DEVICE
2F7F03 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - UNINSTALL
2F7F03 - INT 2F - PRINDIR v9.0 - SET CAPTURE FILENAME
2F7F04 - INT 2F - PRINDIR v9.0 - SET LOCK FILENAME
2F7F05 - INT 2F - PRINDIR v9.0 - DUMP CAPTURE BUFFER
2F7F06 - INT 2F - PRINDIR v9.0 - SET NORMAL TEXT COLOR
2F7F07 - INT 2F - PRINDIR v9.0 - SET HIGHLIGHT TEXT COLOR
2F7F08 - INT 2F - PRINDIR v9.0 - SET POPUP HOTKEY
2F7F09 - INT 2F - PRINDIR v9.0 - SET BYTE COUNTER DISPLAY
2F7F0A - INT 2F - PRINDIR v9.0 - SET FLUSH DELAY
2F7F0B - INT 2F - PRINDIR v9.0 - SET MINIMUM DUMP SIZE
2F7F0C - INT 2F - PRINDIR v9.0 - SET ECHO STATE
2F7F0D - INT 2F - PRINDIR v9.0 - SHOW POPUP PARAMETER MENU
2F7F0E - INT 2F - PRINDIR v9.0 - SUBMIT BYTE TO CURRENT DESTINATION DEVICE
2F7F24 - INT 2F - Multiplex - ???
2F7F26 - INT 2F - Multiplex - ???
2F8000 - INT 2F - EASY-NET - INSTALLATION CHECK
2F8000 - INT 2F - Nanosoft, Inc. TurboNET server - INSTALLATION CHECK
2F8000 - INT 2F - CS_TSR specification - TSR INSTALLATION CHECK
2F8000DX0000 - INT 2F - FaxBIOS interface - INSTALLATION CHECK
2F8001 - INT 2F - Nanosoft, Inc. TurboNET server - ???
2F8001 - INT 2F - CS_TSR specification - GET HANDLE (TSR-SPECIFIC INSTALLATION CHECK)
2F8002 - INT 2F - CS_TSR specification - GET PROCESS BLOCK BY PROCESS HANDLE
2F8003 - INT 2F - CS_TSR specification - CUSTOM SUBFUNCTION
2F80FB - INT 2F - FaxBIOS interface - COMMAND SUBMISSION
2F8100 - INT 2F U - Nanosoft, Inc. TurboNET redirector - INSTALLATION CHECK
2F8101 - INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
2F8102 - INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
2F8103 - INT 2F U - Nanosoft, Inc. TurboNET redirector - GET MACHINE NAME???
2F8104 - INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
2F8105 - INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
2F8200 - INT 2F - RESPLAY - SAMPLE/PLAYBACK
2F8200 - INT 2F U - Nanosoft, Inc. CAPDOS - INSTALLATION CHECK
2F8201 - INT 2F - RESPLAY - INSTALLATION CHECK
2F8201 - INT 2F - Nanosoft, Inc. CAPDOS - CLEAR QUEUE
2F8202 - INT 2F - RESPLAY - UNINSTALL
2F8202 - INT 2F - Nanosoft, Inc. CAPDOS - START COLLECTION
2F8203 - INT 2F - Nanosoft, Inc. CAPDOS - STOP COLLECTION
2F8204 - INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE PARAMETERS
2F8205 - INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE ITEM
2F8210 - INT 2F - RESPLAY - INITIALIZE
2F8220 - INT 2F - MODRES - PLAY MODULE
2F8221 - INT 2F - MODRES - INSTALLATION CHECK
2F8222 - INT 2F - MODRES - UNINSTALL
2F8223 - INT 2F - MODRES - PLAY SAMPLE
2F8224 - INT 2F - MODRES - ???
2F8225 - INT 2F - MODRES v2.00+ - GET LOCATION IN MOD
2F8226 - INT 2F - MODRES v2.00+ - STOP PLAYING
2F8227 - INT 2F - MODRES - CONFIGURE
2F86 - INT 2F U - ???
2F8900 - INT 2F - WHOA!.COM - INSTALLATION CHECK
2F8901 - INT 2F - WHOA!.COM - UNINSTALL
2F8902 - INT 2F - WHOA!.COM - SET DELAY COUNT
2F9000 - INT 2F U - RAID - INSTALLATION CHECK
2F9001 - INT 2F U - RAID - GET ???
2F9002 - INT 2F U - RAID - GET RESIDENT SEGMENT
2F9003 - INT 2F U - RAID - UNINSTALL
2F9004 - INT 2F U - RAID - GET ???
2F92 - INT 2F - Network Courier E-Mail - API
2F9200 - INT 2F U - PC Tools v8.0 DRIVEMAP - BUG
2F9201 - INT 2F U - PC Tools v8.0 DRIVEMAP - CHECK IF MAPPED DRIVE
2F9202 - INT 2F U - PC Tools v8.0 DRIVEMAP - UNINSTALL
2F9203 - INT 2F U - PC Tools v8.0 DRIVEMAP - GET VERSION
2F9204 - INT 2F U - PC Tools v8.0 DRIVEMAP - INSTALLATION CHECK
2F9205 - INT 2F U - PC Tools v8.0 DRIVEMAP - SET ???
2F9206 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F9207 - INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
2F9208 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F9209 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F920A - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F920B - INT 2F U - PC Tools v8.0 DRIVEMAP - SET DRIVE MAPPING
2F920C - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F920D - INT 2F U - PC Tools v8.0 DRIVEMAP - GET DRIVE TYPE
2F920E - INT 2F U - PC Tools v8.0 DRIVEMAP - SET LPT MAPPING
2F920F - INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
2F9210 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F9211 - INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
2F9212 - INT 2F U - PC Tools v8.0 DRIVEMAP - CRITICAL SECTION???
2F9213 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F9214 - INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
2F9215 - INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
2F9216 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F9217 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F9218 - INT 2F U - PC Tools v8.0 DRIVEMAP - GET LPT TYPE???
2F9219 - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F921A - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F921B - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F921C - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F921D - INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
2F921E - INT 2F U - PC Tools v8.0 DRIVEMAP - ???
2F93 - INT 2F - InnerMission v1.7+ - INSTALLATION CHECK
2F9400 - INT 2F - MICRO.EXE - INSTALLATION CHECK
2F9401 - INT 2F - MICRO.EXE - SET ??? FLAG
2F9402 - INT 2F - MICRO.EXE - ???
2F9403 - INT 2F - MICRO.EXE - SET ??? FLAG
2F9404 - INT 2F - MICRO.EXE - CLEAR ??? FLAG
2F96C7 - INT 2F U - STRETCH - INSTALLATION CHECK
2F97 - INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
2F98 - INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
2F9800 - INT 2F U - S3RMDRV.SYS - INSTALLATION CHECK / VERSION CHECK
2F9803 - INT 2F U - S3RMDRV.SYS - COPY ??? INTO USER BUFFER
2F99 - INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
2F9900 - INT 2F U - DOS Navigator II - INSTALLATION CHECK
2F9901 - INT 2F U - DOS Navigator II - RETURN POINTER TO COMMAND LINE
2F9902 - INT 2F U - DOS Navigator II - SET 'TRUE' EXIT CODE OF DN.PRG
2F9903 - INT 2F U - DOS Navigator II - SPECIFY HOW TO EXECUTE COMMANDS
2F9904 - INT 2F U - DOS Navigator II v1.49 - SET ???
2F9905 - INT 2F U - DOS Navigator II v1.49 - GET ???
2F9906 - INT 2F U - DOS Navigator II v1.49 - GET ???
2F9A - INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
2F9C - INT 2F - Network Courier E-Mail OPERATOR.EXE - API
2F9E00 - INT 2F U - INTMON v2.1 - INSTALLATION CHECK
2F9E01 - INT 2F U - INTMON v2.1 - RESET
2F9E02 - INT 2F U - INTMON v2.1 - DISPLAY CPU REGISTERS???
2F9E03 - INT 2F U - INTMON v2.1 - HOOK INTERRUPT???
2F9F00 - INT 2F U - INTCFG v2.1 - INSTALLATION CHECK
2F9F01 - INT 2F U - INTCFG v2.1 - ???
2F9F30 - INT 2F U - INTCFG v2.1 - GET ???
2F9F49 - INT 2F U - INTCFG v2.1 - UNINSTALL
2FA1--BX0081 - INT 2F - Ergo DOS extenders - INSTALLATION CHECK
2FA189 - INT 2F U - Biologic HRAMDEV.SYS - API
2FA4E0 - INT 2F - Futurus Team - INSTALLATION CHECK
2FA900 - INT 2F - METZTSR.COM - INSTALLATION CHECK
2FA901 - INT 2F - METZTSR.COM - GET TIME OF LAST KEYBOARD ACTIVITY
2FA902 - INT 2F - METZTSR.COM - SET METZ Ctrl-Alt-Del FLAG
2FA903 - INT 2F - METZTSR.COM - GET METZ Ctrl-Alt-Del FLAG
2FAA - INT 2F - Player's Tool 3.996b+ - UNINSTALL
2FAA00 - INT 2F - VIDCLOCK.COM - INSTALLATION CHECK
2FAB - INT 2F - Player's Tool 3.996b+ - INSTALLATION CHECK
2FAB00 - INT 2F - Btrieve Multi-User - INSTALLATION CHECK
2FAB00 - INT 2F - SRSoft MODAL PC v2+ - INSTALLATION CHECK / GET VERSION
2FAB01 - INT 2F - Btrieve Multi-User - EXECUTE Btrieve OPERATION
2FAB01 - INT 2F - SRSoft MODAL PC v2+ - GET PROCESS RUN PARAMETER
2FAB02 - INT 2F - Btrieve Multi-User - GET NEW PROCESS ID
2FAB02 - INT 2F - SRSoft MODAL PC v2+ - SET PROCESS EXIT CODE
2FAB03 - INT 2F - SRSoft MODAL PC v2+ - ALLOCATE COMMON MEMORY
2FAB04 - INT 2F - SRSoft MODAL PC v2+ - GET ALL COMMON VARIABLES AND SEMAPHORES
2FAB05 - INT 2F - SRSoft MODAL PC v2+ - SET ALL COMMON VARIABLES AND SEMAPHORES
2FAB06 - INT 2F - SRSoft MODAL PC v2+ - GET A COMMON VARIABLE OR SEMAPHORE
2FAB07 - INT 2F - SRSoft MODAL PC v2+ - SET A COMMON VARIABLE OR SEMAPHORE
2FAC - INT 2F u - Player's Tool 3.996b+ - POP UP
2FAC00 - INT 2F - DOS 4.01+ GRAPHICS.COM - INSTALLATION CHECK
2FAC00DI1092 - INT 2F - QRIP/TSR - GIVE CPU TO QRIP
2FAC01DI1092 - INT 2F - QRIP/TSR - CHANGE INTERNAL FLAGS
2FAC02DI1092 - INT 2F - QRIP/TSR - TURN OFF GRAPHICS SCREEN
2FAC03DI1092 - INT 2F - QRIP/TSR - TURN ON GRAPHICS SCREEN
2FAC04DI1092 - INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP
2FAC05DI1092 - INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP
2FAC06DI1092 - INT 2F - QRIP/TSR - RECEIVE CHARACTERS FROM QRIP
2FAC07DI1092 - INT 2F - QRIP/TSR - GET FONT DIRECTORY
2FAC08DI1092 - INT 2F - QRIP/TSR - GET ICON DIRECTORY
2FAC09DI1092 - INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP
2FAC0ADI1092 - INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP
2FAC0BDI1092 - INT 2F - QRIP/TSR - EXECUTE RIP "END SCENE" COMMAND
2FAC0CDI1092 - INT 2F - QRIP/TSR - GET STRING TO BE SENT TO BBS
2FAC0DDI1092 - INT 2F - QRIP/TSR - SET PROTECTED SCREEN AREA
2FAC0EDI1092 - INT 2F - QRIP/TSR - WRITE ASCIZ STRING IN PROTECTED AREA
2FAC0FDI1092 - INT 2F - QRIP/TSR - SCROLL PROTECTED AREA
2FAC10DI1092 - INT 2F - QRIP/TSR - SET OUTPUT COLOR FOR PROTECTED AREA
2FAC11DI1092 - INT 2F - QRIP/TSR - CONVERT PROTECTED AREA TO ENTIRE SCREEN
2FAC12DI1092 - INT 2F - QRIP/TSR - BEGIN POPUP-WINDOW MODE
2FAC13DI1092 - INT 2F - QRIP/TSR - END POPUP-WINDOW MODE
2FAC14DI1092 - INT 2F - QRIP/TSR - SAVE GRAPHICS SCREEN AND SWITCH TO TEXT MODE
2FAC15DI1092 - INT 2F - QRIP/TSR - RESTORE GRAPHICS SCREEN
2FAC16DI1092 - INT 2F - QRIP/TSR - REPORT MODE CHANGE TO QRIP
2FAC17DI1092 - INT 2F - QRIP/TSR - CALL (EXECUTE) A RIP FILE
2FAC18DI1092 - INT 2F - QRIP/TSR - SEND USER KEY TO QRIP
2FAC19DI1092 - INT 2F - QRIP/TSR - HANGUP
2FAC1ADI1092 - INT 2F - QRIP/TSR - GET RIP_ENTER_BLOCK_MODE INFORMATION
2FAC1BDI1092 - INT 2F - QRIP/TSR - SET SYSTEM FONT SIZE
2FACF0DI1092 - INT 2F - QRIP/TSR - INSTALLATION CHECK
2FACFFDI1092 - INT 2F - QRIP/TSR - UNINSTALL
2FAD00 - INT 2F U - DOS 3.3+ DISPLAY.SYS internal - INSTALLATION CHECK
2FAD00 - INT 2F U - DR DOS 3.41-5.0, Novell DOS 7 KEYB - INSTALLATION CHECK
2FAD01 - INT 2F U - DOS 3.3+ DISPLAY.SYS internal - SET ACTIVE CODE PAGE
2FAD01 - INT 2F U - DR DOS 3.41,5.0 KEYB - GET CONFIGURATION
2FAD01 - INT 2F U - Novell DOS 7 KEYB - GET/SET??? CONFIGURATION
2FAD02 - INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET ACTIVE CODE PAGE
2FAD02 - INT 2F U - Novell DOS 7 KEYB - ???
2FAD03 - INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET CODE PAGE INFORMATION
2FAD04 - INT 2F U - DOS 4.x only DISPLAY.SYS internal - ???
2FAD10 - INT 2F U - DOS 4.x DISPLAY.SYS internal - INSTALLATION CHECK???
2FAD10 - INT 2F U - DOS 5+ DISPLAY.SYS internal - ???
2FAD40 - INT 2F - DOS 4.0+ - ???
2FAD41 - INT 2F - Arabic/Hebrew DOS 5.0???+ - GET CURRENT FONTPAGE
2FAD42 - INT 2F - Arabic/Hebrew DOS 5.0???+ SET CURRENT FONTPAGE
2FAD43 - INT 2F - Arabic/Hebrew DOS 5.0???+ - GET FONTPAGE STATUS???
2FAD80 - INT 2F u - MS-DOS 3.3+ KEYB.COM internal - INSTALLATION CHECK
2FAD80 - INT 2F u - Novell DOS 7 KEYB.COM - INSTALLATION CHECK
2FAD81 - INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD CODE PAGE
2FAD82 - INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD MAPPING
2FAD83 - INT 2F - DOS 5+ KEYB.COM - GET KEYBOARD MAPPING
2FAD84 - INT 2F - PC DOS 5.0+ KEYB.COM - SET KEYBOARD SUB-MAPPING
2FAD85 - INT 2F - PC DOS 5.0+ KEYB.COM - GET KEYBOARD SUB-MAPPING
2FADC1 - INT 2F U - DOS 4.0+ SELECT - DISPLAY FORMAT DISK PROMPT
2FAE00 - INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - INSTALLATION CHECK
2FAE01 - INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - EXECUTE
2FAF00 - INT 2F - WinDOS v2.11 - INSTALLATION CHECK
2FAF00 - INT 2F U - ???
2FAF01 - INT 2F - WinDOS v2.11 - TURN ON ONLINE MODE
2FAF02 - INT 2F - WinDOS v2.11 - TURN OFF ONLINE MODE
2FAF02 - INT 2F U - ???
2FAF03 - INT 2F - WinDOS v2.11 - TURN VIDMEM ON
2FAF03 - INT 2F U - ???
2FAF04 - INT 2F - WinDOS v2.11 - TURN VIDMEM OFF
2FAF04 - INT 2F U - ???
2FAF05 - INT 2F - WinDOS v2.11 - GET VIDMEM STATE
2FAF05 - INT 2F U - ???
2FAF06 - INT 2F - WinDOS v2.11 - MAKE PROGRAM UNBREAKABLE
2FAF07 - INT 2F - WinDOS v2.11 - SIGNAL FATAL OVERLAY FAULT
2FAF08 - INT 2F - WinDOS v2.11 - SIGNAL RECOVERABLE OVERLAY FAULT
2FAF09 - INT 2F - WinDOS v2.11 - GET TERMINATED PSP
2FAF0A - INT 2F - WinDOS v2.11 - GET MAIN SHELL PSP
2FAF0B - INT 2F - WinDOS v2.11 - SIGNAL FATAL ERROR
2FAF0C - INT 2F - WinDOS v2.11 - GET OTHER MAIN SHELL PARAMETERS
2FAF0D - INT 2F - WinDOS v2.11 - GET CURRENT PARAMETER
2FAF0E - INT 2F - WinDOS v2.11 - SET CURRENT PARAMETER BYTE VALUE
2FAF0F - INT 2F - WinDOS v2.11 - GET HISTORY SEGMENT
2FAF10 - INT 2F - WinDOS v2.11 - SET HISTORY SEGMENT
2FAF11 - INT 2F - WinDOS v2.11 - FREE XMS BLOCKS
2FAF12 - INT 2F - WinDOS v2.11 - SET XMS IDENTIFICATION VALUE
2FAF12 - INT 2F U - ???
2FAF13 - INT 2F - WinDOS v2.11 - SET ASSIGN VALUE
2FAF13 - INT 2F U - ???
2FAF14 - INT 2F - WinDOS v2.11 - GET ASSIGN VALUE
2FAF15 - INT 2F - WinDOS v2.11 - SIGNAL STACK ERROR
2FAF16 - INT 2F - WinDOS v2.11 - GET SIMPLE TRUENAME
2FAF17 - INT 2F - WinDOS v2.11 - QUERY FOR NEW CURRENT DRIVE
2FAF18 - INT 2F - WinDOS v2.11 - SET CTRL-C/CTRL-BREAK DISABLE FLAG
2FAF19 - INT 2F - WinDOS v2.11 - SET HEAD SETTLE FLAG
2FAF1A - INT 2F - WinDOS v2.11 - SEARCH FOR NON-FRAGMENTED DISK AREA
2FAF30 - INT 2F U - ???
2FAFDE - INT 2F - Disk-Emu - INSTALLATION CHECK / GET VERSION
2FB000 - INT 2F - DOS 3.3+ GRAFTABL.COM - INSTALLATION CHECK
2FB001 - INT 2F - DOS 3.3+ GRAFTABL.COM - GET GRAPHICS FONT TABLE
2FB400 - INT 2F - IBM PC3270 EMULATION PROG v3 - INSTALLATION CHECK
2FB401 - INT 2F - IBM PC3270 EMULATION PROG v3 - GET HOST BUFFER ADDRESS
2FB402 - INT 2F - IBM PC3270 EMULATION PROG v3 - ???
2FB403 - INT 2F - IBM PC3270 EMULATION PROG v3 - ???
2FB404 - INT 2F - IBM PC3270 EMULATION PROG v3 - ???
2FB405 - INT 2F - IBM PC3270 EMULATION PROG v3 - ???
2FB700 - INT 2F - APPEND - INSTALLATION CHECK
2FB701 - INT 2F U - APPEND v3.21 only - GET APPEND PATH
2FB702 - INT 2F - APPEND - GET VERSION
2FB703 - INT 2F U - DOS 3.3, DOS 5.0 APPEND - HOOK INT 21
2FB704 - INT 2F - DOS 3.3+ APPEND - GET APPEND PATH
2FB706 - INT 2F - DOS 4.0+ APPEND - GET APPEND FUNCTION STATE
2FB707 - INT 2F - DOS 4.0+ APPEND - SET APPEND FUNCTION STATE
2FB710 - INT 2F U - DOS 3.3+ APPEND - GET VERSION INFO
2FB711 - INT 2F - DOS 4.0+ APPEND - SET RETURN FOUND NAME STATE
2FB800 - INT 2F - NETWORK - INSTALLATION CHECK
2FB800CXF041 - INT 2F - 10NET - INSTALLATION CHECK
2FB803 - INT 2F - NETWORK - GET NETWORK EVENT POST HANDLER
2FB804 - INT 2F - NETWORK - SET NETWORK EVENT POST HANDLER
2FB807 - INT 2F - NETWORK - GET NetBIOS NAME NUMBER OF MACHINE NAME
2FB808 - INT 2F U - NETWORK - RELINK KEYBOARD HANDLER
2FB809 - INT 2F - NETWORK - LANtastic, NetWare Lite - GET VERSION
2FB809 - INT 2F - NETWORK - PC LAN Program, Microsoft Networking - GET VERSION
2FB80A - INT 2F u - PC Network 1.00 - ???
2FB80E - INT 2F U - DOS LAN Requester - GET XSI2 ADDRESS / DATA
2FB80F - INT 2F - DOS LAN Requester - GET START PARAMETERS
2FB900 - INT 2F - PC Network RECEIVER.COM - INSTALLATION CHECK
2FB901 - INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM INT 2F HANDLER ADDRESS
2FB903 - INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM POST ADDRESS
2FB904 - INT 2F - PC Network RECEIVER.COM - SET RECEIVER.COM POST ADDRESS
2FB905 - INT 2F - PC Network RECEIVER.COM - GET FILENAME
2FB906 - INT 2F - PC Network RECEIVER.COM - SET FILENAME
2FB908 - INT 2F - PC Network RECEIVER.COM - UNLINK KEYBOARD HANDLER
2FBB00BX0000 - INT 2F - CATC USB4DOS Host Controller - INSTALLATION CHECK
2FBB00BX0001 - INT 2F - CATC USB4DOS Host Controller - GET ???
2FBB00BX0002 - INT 2F - CATC USB4DOS Host Controller - EXECUTE USB REQUEST
2FBB00BX0003 - INT 2F - CATC USB4DOS Host Controller - ??? (POLLS VARIOUS I/O PORTS)
2FBB00 - INT 2F - CATC USB4DOS Host Controller - INVALID FUNCTION
2FBC00 - INT 2F - Windows 3.0, DOS 5+ EGA.SYS - INSTALLATION CHECK
2FBC00BL00 - INT 2F - CATC USB4DOS Device Manager - INSTALLATION CHECK
2FBC00BL01 - INT 2F - CATC USB4DOS Device Manager - REGISTER DEVICE
2FBC00BL02 - INT 2F - CATC USB4DOS Device Manager - UNLOAD DEVICE
2FBC00BL03 - INT 2F - CATC USB4DOS Device Manager - HUB DEVICE ATTACHED
2FBC00BL04 - INT 2F - CATC USB4DOS Device Manager - HUB DEVICE DETACHED
2FBC00BX3F3F - INT 2F - MediaVision MVSOUND.SYS - INSTALLATION CHECK
2FBC01 - INT 2F - MediaVision MVSOUND.SYS - GET VERSION
2FBC02 - INT 2F - MediaVision MVSOUND.SYS - GET STATE TABLE POINTER
2FBC03 - INT 2F - MediaVision MVSOUND.SYS - GET FUNCTION TABLE POINTER
2FBC04 - INT 2F - MediaVision MVSOUND.SYS - GET DMA AND IRQ CHANNELS
2FBC06 - INT 2F U - MS Windows 3.0, DOS 5+ EGA.SYS - GET VERSION INFO
2FBC06 - INT 2F - MediaVision MVSOUND.SYS - GET STATUS STRING
2FBC0B - INT 2F - MediaVision MVSOUND.SYS - GET EXECUTABLE PATH
2FBC0E - INT 2F - MediaVision MVSOUND.SYS - RE-INITIALIZE INT 09 HANDLER
2FBE00 - INT 2F - REDVIEW - INSTALLATION CHECK
2FBF00 - INT 2F - PC LAN PROGRAM REDIRIFS.EXE internal - INSTALLATION CHECK
2FBF01 - INT 2F U - PC LAN PROGRAM REDIRIFS.EXE internal - ???
2FBF80 - INT 2F - PC LAN PROG REDIR.SYS internal - SET REDIRIFS ENTRY POINT
2FC0 - INT 2F - METZ XpressFax Hardware TSR (CLASS2) - API
2FC000 - INT 2F - Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK
2FC000 - INT 2F - Novell NetWare Event Service Layer (NESL) 1.0 - INSTALLATION CHECK
2FC000 - INT 2F - Novell NetWare Connect NETWARN - INSTALLATION CHECK
2FC000 - INT 2F - FN32 32 character filename utilities - INSTALLATION CHECK
2FC000 - INT 2F - QMR - INSTALLATION CHECK
2FC000 - INT 2F - VGAsave v1.93 - INSTALLATION CHECK
2FC000 - INT 2F - AD-DOS - INSTALLATION CHECK
2FC000 - INT 2F U - WANG_ER.COM - INSTALLATION CHECK
2FC000 - INT 2F O - ASPIHOOK.SYS - INSTALLATION CHECK
2FC000 - INT 2F - PMEASURE.EXE - INSTALLATION CHECK
2FC000 - INT 2F - PERSONAL MEASURE - HOOK MODULE INSTALLATION CHECK
2FC000 - INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALLATION CHECK
2FC000 - INT 2F - Frank Kintrup TSR Utilities - INSTALLATION CHECK
2FC000 - INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK
2FC000 - INT 2F - DIMWIT - INSTALLATION CHECK
2FC000BX444B - INT 2F - METZ XpressFax Hardware TSR (CLASS2) - INSTALLATION CHECK
2FC000 - INT 2F U - TSENGP.COM - INSTALLATION CHECK
2FC000 - INT 2F U - LapLink RemoteAccess (LLRA) - INSTALLATION CHECK
2FC001 - INT 2F - QMR - REQUEST HARDWARE RESET
2FC001 - INT 2F - DIMWIT - GET CONFIGURATION DATA
2FC001ES0000 - INT 2F - AD-DOS - GET RESIDENT CODE SEGMENT
2FC001 - INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ENTRY POINTS
2FC001 - INT 2F - Frank Kintrup TSR Utilities - CLOCK - DISABLE DISPLAY UPDATE
2FC001CX03FB - INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - UNINSTALL
2FC001 - INT 2F - PERSONAL MEASURE - PASS PARAMETERS TO HOOK MODULE(S)
2FC002 - INT 2F - AD-DOS - CHECK FOR NEW INPUT
2FC002 - INT 2F - QMR - DISABLE QMR
2FC002 - INT 2F U - PrintCache v3.1 PCACHE.EXE - GET BUFFER SIZE
2FC002 - INT 2F - Frank Kintrup TSR Utilities - CLOCK - ENABLE DISPLAY UPDATE
2FC002 - INT 2F U - LapLink RemoteAccess (LLRA) - Core - ???
2FC003 - INT 2F - AD-DOS - SET MINUTES TO WAIT
2FC003 - INT 2F - QMR - ENABLE QMR
2FC003 - INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
2FC004 - INT 2F - AD-DOS - GET MINUTES TO WAIT
2FC004 - INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
2FC005 - INT 2F - AD-DOS - SET BLANKER STATUS
2FC005 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC006 - INT 2F - AD-DOS - GET BLANKER STATUS
2FC006 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC007 - INT 2F - AD-DOS - SET HOT KEY
2FC007 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC008 - INT 2F - AD-DOS - GET CURRENT HOT KEY
2FC008 - INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
2FC009 - INT 2F - AD-DOS - UNBLANK MONITOR
2FC009 - INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
2FC00A - INT 2F - AD-DOS - ???
2FC00A - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC00B - INT 2F - AD-DOS - ???
2FC00B - INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP
2FC00C - INT 2F - AD-DOS - SET ??? INTERNAL FLAG TO 01h
2FC00C - INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
2FC00D - INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ???
2FC00E - INT 2F - AD-DOS - SET PASSWORD STATUS
2FC00E - INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALL ???
2FC00F - INT 2F - AD-DOS - GET PASSWORD STATUS
2FC00F - INT 2F U - PrintCache v3.1 PCACHE.EXE - REMOVE ???
2FC010 - INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
2FC011 - INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
2FC012 - INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
2FC013 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC014 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC015 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC016 - INT 2F U - PrintCache v3.1 PCACHE.EXE - INCREMENT ???
2FC017 - INT 2F U - PrintCache v3.1 PCACHE.EXE - DECREMENT ???
2FC018 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC019 - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC01A - INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
2FC01B - INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
2FC01C - INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
2FC01D - INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP
2FC020 - INT 2F - AD-DOS - GET AND RESET VxD API STATUS
2FC04E - INT 2F - Explosiv v2.00+ - NON-TSR EXECUTING CHECK
2FC050 - INT 2F - Explosiv v2.00+ - INSTALLATION CHECK
2FC052 - INT 2F - Explosiv v2.00+ - UNINSTALL
2FC054 - INT 2F - Explosiv v2.x - GET ANIMATION DELAY FACTOR
2FC054 - INT 2F - Explosiv v3.0+ - UPDATE PARAMETERS
2FC055 - INT 2F - Explosiv v2.x - SET BLANKING INTERVAL
2FC056 - INT 2F - Explosiv v2.x - SET ANIMATION DISPLAY TYPE
2FC056 - INT 2F - Explosiv v3.0+ - ENABLE/DISABLE EXPLOSIV
2FC057 - INT 2F - Explosiv v2.x - SET ANIMATION DELAY FACTOR
2FC058 - INT 2F - Explosiv v2.x - SET ANIMATION PARAMETER
2FC058 - INT 2F - Explosiv v3.0+ - LOAD NEW ANIMATION DISPLAY CODE
2FC059 - INT 2F - Explosiv v2.x - DISABLE EXPLOSIV
2FC05A - INT 2F u - Explosiv v2.x - ENABLE EXPLOSIV
2FC05B - INT 2F - Explosiv v2.x - CHANGE ANIMATION DISPLAY
2FC05C - INT 2F - Explosiv v2.x - SET INT 10 CHECKING
2FC080 - INT 2F U - AMI IAM.SYS - INSTALL ??? CALLBACK
2FC081 - INT 2F U - AMI IAM.SYS - CLEAR ???
2FC0AE - INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK
2FC0AF - INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - GET BUFFER ADDRESS
2FC100 - INT 2F U - Personal NetWare - STPIPX v1.00 - INSTALLATION CHECK
2FC101 - INT 2F U - Personal NetWare - STPIPX v1.00 - UNINSTALL
2FC205 - INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
2FC2F0 - INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
2FC2F1 - INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
2FC300 - INT 2F - SETWPR.COM - INSTALLATION CHECK
2FC300DX0000 - INT 2F U - SpaceManager - INSTALLATION CHECK
2FC300BX4F53 - INT 2F U - SpaceManager - INSTALLATION VERIFICATION
2FC301 - INT 2F U - SpaceManager - ???
2FC301 - INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
2FC302 - INT 2F U - SpaceManager - ENABLE PROGRAM
2FC302 - INT 2F - SETWPR.COM - SET WRITE-PROTECTION STATE
2FC303 - INT 2F U - SpaceManager - DISABLE PROGRAM
2FC304 - INT 2F U - SpaceManager - GET PER-DRIVE ENABLEMENT TABLE
2FC305DX9003 - INT 2F U - SpaceManager - FORTUNE.EXE - NOP
2FC305 - INT 2F U - SpaceManager - ???
2FC306 - INT 2F U - SpaceManager - CHECK WHETHER PROGRAM ENABLED
2FC307DX9001 - INT 2F U - SpaceManager - SELECTC - ???
2FC308DX9001 - INT 2F U - SpaceManager - SELECTC - ???
2FC3F0 - INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
2FC3F1 - INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
2FC500 - INT 2F - PC-DOS Econet v1.05 - INSTALLATION CHECK
2FC501 - INT 2F - PC-DOS Econet v1.05 - RESET BOARD AND DRIVER
2FC502 - INT 2F - PC-DOS Econet v1.05 - PERFORM NETWORK OPERATION
2FC503 - INT 2F - PC-DOS Econet v1.05 - ADD EVENT HANDLER
2FC504 - INT 2F - PC-DOS Econet v1.05 - REMOVE EVENT HANDLER
2FC505 - INT 2F - PC-DOS Econet v1.05 - SET DEFAULT EVENT ACTION
2FC506 - INT 2F - PC-DOS Econet v1.05 - SET INDIVIDUAL EVENT ACTION
2FC507 - INT 2F - PC-DOS Econet v1.05 - TEST/CLEAR EVENT STATUS
2FC508 - INT 2F - PC-DOS Econet v1.05 - ENABLE/DISABLE EVENT SCHEDULER
2FC64CBX5553 - INT 2F U - Smart Prompt - INSTALLATION CHECK
2FC700CX434C - INT 2F u - COLAP - INSTALLATION CHECK
2FC900BP0000 - INT 2F U - ThunderByte??? - INSTALLATION CHECK
2FC987 - INT 2F U - ThunderByte??? - DISINFECT FILE???
2FC9FD - INT 2F - ThunderByte TBLOG - WRITE STRING TO LOG
2FC9FF - INT 2F C - StackMan - INSTALLATION BROADCAST
2FCA - INT 2F - FAXPLUS - FAX TSR
2FCA00BX5442 - INT 2F - TBSCANX - INSTALLATION CHECK
2FCA01 - INT 2F - TBSCANX - GET STATUS
2FCA02 - INT 2F - TBSCANX - SET STATE
2FCA03 - INT 2F - TBSCANX - SCAN BUFFER
2FCA04 - INT 2F - TBSCANX - SCAN FILE
2FCAFEBX0000 - INT 2F U - THELP v3.0 - INSTALLATION CHECK
2FCB00 - INT 2F - Communicating Applications Specification - INSTALLATION CHECK
2FCB00BX4D53 - INT 2F - METZ XpressFax CASMGR - INSTALLATION CHECK
2FCB01 - INT 2F - Communicating Applications Specification - SUBMIT A TASK
2FCB02 - INT 2F - Communicating Applications Specification - ABORT CURRENT EVENT
2FCB05 - INT 2F - Communicating Applications Specification - FIND FIRST QUEUE ENTRY
2FCB06 - INT 2F - Communicating Applications Specification - FIND NEXT QUEUE ENTRY
2FCB07 - INT 2F - Communicating Applications Specification - OPEN FILE
2FCB08 - INT 2F - Communicating Applications Specification - DELETE FILE
2FCB09 - INT 2F - Communicating Applications Specification - DELETE ALL FILES IN Q
2FCB0A - INT 2F - Communicating Applications Specification - GET EVENT DATE
2FCB0B - INT 2F - Communicating Applications Specification - SET TASK DATE
2FCB0C - INT 2F - Communicating Applications Specification - GET EVENT TIME
2FCB0D - INT 2F - Communicating Applications Specification - SET TASK TIME
2FCB0E - INT 2F - Communicating Applications Specification - GET EXTERNAL DATA BLOCK
2FCB0F - INT 2F - Communicating Applications Specification - GET/SET AUTORECEIVE
2FCB10 - INT 2F - Communicating Applications Specification - GET CURRENT EVENT STATUS
2FCB11 - INT 2F - Communicating Applications Specification - GET QUEUE STATUS
2FCB11DL03 - INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF SEND EVENTS
2FCB11DL04 - INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF RECEIVE EVENTS
2FCB12 - INT 2F - Communicating Applications Specification - GET HARDWARE STATUS
2FCB13DL00 - INT 2F - Communicating Applications Specification - GET DIAGNOSTICS RESULTS
2FCB13DL01 - INT 2F - Communicating Applications Specification - START DIAGNOSTICS
2FCB14 - INT 2F - Communicating Applications Specification - MOVE RECEIVED FILE
2FCB15 - INT 2F - Communicating Applications Specification - SUBMIT FILE TO SEND
2FCB16BX1234 - INT 2F - Communicating Applications Spec v1.2+ - UNLOAD RESIDENT MANAGER
2FCB17 - INT 2F - Communicating Applications Spec v1.2+ - SET COVER PAGE STATUS
2FCB80 - INT 2F - Intel SatisFAXtion CASMGR - ???
2FCB81 - INT 2F - Intel SatisFAXtion CASMGR - ???
2FCB82 - INT 2F - Intel SatisFAXtion CASMGR - ???
2FCBDCBL56 - INT 2F - Comwave Microfax Specification - GET STATUS ARRAY
2FCBDDBL56 - INT 2F - Comwave Microfax Specification - COMMAND SUBMISSION
2FCC--SI5453 - INT 2F U - PC-Kwik Programs - API
2FCC00 - INT 2F - Tsoft NFSDRVR - INSTALLATION CHECK
2FCC01 - INT 2F - Tsoft NFSDRVR - ???
2FCC02 - INT 2F - Tsoft NFSDRVR - ???
2FCC03 - INT 2F - Tsoft NFSDRVR - ???
2FCC04 - INT 2F - Tsoft NFSDRVR - ???
2FCC05 - INT 2F - Tsoft NFSDRVR - ???
2FCC06 - INT 2F - Tsoft NFSDRVR - ???
2FCD00 - INT 2F - Intel Image Processing Interface - INSTALLATION CHECK
2FCD00 - INT 2F - LaserPort Interface - INSTALLATION CHECK
2FCD00 - INT 2F - SWELL.EXE - INSTALLATION CHECK
2FCD00BX464F - INT 2F - Forte/Gravis ULTRAMID - INSTALLATION CHECK
2FCD00DX4957 - INT 2F R - InterWave Game API - INSTALLATION CHECK
2FCD01 - INT 2F - Intel Image Processing Interface - SET DEVICE NAME
2FCD01 - INT 2F - SWELL.EXE - SUSPEND ONCE
2FCD01BX0000 - INT 2F R - InterWave Game API - GET NUMBER OF INTERWAVE PROGRAMS / PROGRAM ID
2FCD02 - INT 2F - Intel Image Processing Interface - GET VERSION NUMBER
2FCD02 - INT 2F - SWELL.EXE - SUSPEND
2FCD02 - INT 2F R - InterWave Game API - GET PROGRAM STATUS AND INFORMATION
2FCD03 - INT 2F - Intel Image Processing Interface - SELECT SCAN LINE
2FCD03 - INT 2F - SWELL.EXE - ACTIVATE
2FCD03 - INT 2F R - InterWave Game API - SUSPEND PROGRAM
2FCD04 - INT 2F - Intel Image Processing Interface - MOVE BITMAP TO SCANLINE
2FCD04 - INT 2F - SWELL.EXE - TURN OFF VERBOSE MODE
2FCD04 - INT 2F R - InterWave Game API - WAKE PROGRAM
2FCD05 - INT 2F - Intel Image Processing Interface - PRINT PAGE
2FCD05 - INT 2F - SWELL.EXE - TURN ON VERBOSE MODE
2FCD05 - INT 2F R - InterWave Game API - UNINSTALL RESIDENT DEVICE DRIVER
2FCD06 - INT 2F - Intel Image Processing Interface - CLEAR PAGE
2FCD06 - INT 2F - SWELL.EXE - UNINSTALL
2FCD07 - INT 2F - Intel Image Processing Interface - reserved
2FCD07 - INT 2F - SWELL.EXE - GET INFO
2FCD08 - INT 2F - Intel Image Processing Interface - SCREEN IMAGE
2FCD08 - INT 2F - SWELL.EXE - UNUSED
2FCD09 - INT 2F - Intel Image Processing Interface - LOAD SCREEN
2FCD09 - INT 2F - SWELL.EXE - TURN OFF "BORLAND SUPPORT"
2FCD0A - INT 2F - Intel Image Processing Interface - LOAD PALETTE
2FCD0A - INT 2F - SWELL.EXE - TURN ON "BORLAND SUPPORT"
2FCD0F - INT 2F - LaserPort Interface - EXECUTE FUNCTION
2FCD21 - INT 2F R - InterWave Game API - OPEN GAME DEVICE
2FCD22 - INT 2F R - InterWave Game API - CLOSE GAME DEVICE
2FCD80 - INT 2F RC - InterWave Game API - MIXER SETTINGS CHANGED BROADCAST
2FCF00 - INT 2F - TEMPLEXX 1.0 - INSTALLATION CHECK
2FD000 - INT 2F C - MDEBUG display driver - GET DRIVER STATUS
2FD000 - INT 2F - ZWmous - INSTALLATION CHECK
2FD000 - INT 2F - Lotus CD/Networker - INSTALLATION CHECK
2FD001 - INT 2F C - MDEBUG display driver - INITIALIZE DRIVER
2FD002 - INT 2F C - MDEBUG display driver - SAVE GRAPHIC DATA
2FD002BX4D44 - INT 2F - Multiplex - Lotus CD/Networker GET DATA AREA
2FD003 - INT 2F C - MDEBUG display driver - RESTORE GRAPHIC DATA
2FD004 - INT 2F - MDEBUG display driver - SHOW SAVED DATA
2FD005 - INT 2F - MDEBUG display driver - SWITCH BACK TO TEXT SCREEN
2FD0 - INT 2F - MDEBUG display driver - RESERVED FUNCTION NUMBERS
2FD0 - INT 2F - MDEBUG display driver - USER DEFINED FUNCTION NUMBERS
2FD100 - INT 2F C - MDEBUG command driver - GET STATUS
2FD101 - INT 2F - MDEBUG command driver - INITIALIZE DRIVER
2FD102 - INT 2F - MDEBUG command driver - EXECUTE INTERPRETER COMMAND
2FD103 - INT 2F - MDEBUG command driver - EXECUTE KEY IN THE MONITOR
2FD104 - INT 2F - MDEBUG command driver - EXECUTE KEY IN THE INTERPRETER
2FD1 - INT 2F - MDEBUG command driver - RESERVED FUNCTIONS
2FD110 - INT 2F - MDEBUG command driver - GET ADDRESS OF THE OLD INT 2F
2FD111 - INT 2F - MDEBUG command driver - START DRIVER
2FD112 - INT 2F - MDEBUG command driver - END DRIVER
2FD1 - INT 2F - MDEBUG command driver - RESERVED FUNCTIONS
2FD1 - INT 2F - MDEBUG command driver - USER DEFINED FUNCTIONS
2FD200 - INT 2F - PCL-838.EXE - INSTALLATION CHECK
2FD200BX5144 - INT 2F - Quarterdeck RPCI - INSTALLATION CHECK
2FD201 - INT 2F - PCL-838.EXE - UNINSTALL
2FD201BX4849 - INT 2F - Quarterdeck RPCI - GET QD HIMEM PRESENCE
2FD201BX4849 - INT 2F - Quarterdeck RPCI - QEMM/QRAM v5.0+ - GET HIRAM MEMORY CHAIN
2FD201BX4D41 - INT 2F U - Quarterdeck RPCI - MANIFEST v1.0+ - INSTALLATION CHECK
2FD201BX4D45 - INT 2F U - Quarterdeck RPCI - DVDOS4GX.DVR - ???
2FD201BX5145 - INT 2F - Quarterdeck RPCI - QEMM v5.0+ - INSTALLATION CHECK
2FD201BX5649 - INT 2F u - Quarterdeck RPCI - VIDRAM v5.0+ - INSTALLATION CHECK
2FD202 - INT 2F - PCL-838.EXE - EXECUTE PCL838 COMMANDS
2FD300BX4562 - INT 2F U - TeleReplica - INSTALLATION CHECK
2FD3CB - INT 2F U - LapLink Quick Connect v6 - API
2FD3D3BH00 - INT 2F - KDRIVE v2.x - INSTALLATION CHECK
2FD44D - INT 2F - 4DOS.COM v2.1+ - API
2FD44E - INT 2F C - 4DOS v3.0+ - AWAITING USER INPUT
2FD44FBX0000 - INT 2F - 4DOS v4.0+ - KSTACK.COM - INSTALLATION CHECK
2FD44FBX0001 - INT 2F - 4DOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK
2FD600 - INT 2F - HEART.COM - INSTALLATION CHECK
2FD600 - INT 2F U - VEDIT VSWAP - INSTALLATION CHECK
2FD601 - INT 2F U - VEDIT VSWAP - ???
2FD602 - INT 2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP
2FD701BX0000 - INT 2F - Banyan VINES v4+ - GET BANV INTERRUPT NUMBER
2FD702 - INT 2F U - Banyan VINES v4+ - PCPRINT interface
2FD703 - INT 2F U - Banyan VINES v4+ - MAIL interface
2FD704 - INT 2F U - Banyan VINES v4+ - Streettalk Directory Assistance interface
2FD800 - INT 2F U - Novell NetWare Lite - CLIENT.EXE - INSTALLATION CHECK
2FD856 - INT 2F U - Novell NetWare Lite v1.1 - SERVER - "VNWLSERV_INIT" - GET ???
2FD880 - INT 2F U - Novell NetWare Lite v1.0+ - SERVER - INSTALLATION CHECK
2FD8C0 - INT 2F U - Novell NLCACHE,NWCACHE - INSTALLATION CHECK
Section -
2FDA00 - INT 2F - ZyXEL ZFAX v1.x - INSTALLATION CHECK
2FDA01 - INT 2F - ZyXEL ZFAX v1.x - UNINSTALL
2FDA02 - INT 2F - ZyXEL ZFAX v.1x - DISABLE
2FDA03 - INT 2F - ZyXEL ZFAX v1.x - ENABLE
2FDA55 - INT 2F U - TRAP.COM - INSTALLATION CHECK
2FDAB2 - INT 2F U - Beame&Whiteside BWSNMP - INSTALLATION CHECK
2FDB00 - INT 2F - ZyXEL ZFAX v2+ - INSTALLATION CHECK
2FDB00 - INT 2F U - WINGO.COM - INSTALLATION CHECK
2FDB01 - INT 2F - ZyXEL ZFAX v2+ - UNINSTALL
2FDB01 - INT 2F U - WINGO.COM - SET CALLBACK FUNCTION POINTER
2FDB02 - INT 2F - ZyXEL ZFAX v2.x - DISABLE
2FDB02 - INT 2F U - WINGO.COM - RESET CALLBACK FUNCTION POINTER
2FDB03 - INT 2F - ZyXEL ZFAX v2.x - ENABLE
2FDB03 - INT 2F U - WINGO.COM - SET ??? FLAG
2FDB04 - INT 2F U - WINGO.COM - RESET ??? FLAG
2FDB05 - INT 2F U - WINGO.COM - GET ??? FLAG
2FDB06 - INT 2F U - WINGO.COM - CALL CALLBACK FUNCTION
2FDB10 - INT 2F - ZyXEL ZFAX v3+ - EXECUTE ZFAX MAIN MENU
2FDB11 - INT 2F - ZyXEL ZFAX v3+ - SEND FAX
2FDB12 - INT 2F - ZyXEL ZFAX v3+ - PRINT FAX
2FDB13 - INT 2F - ZyXEL ZFAX v3+ - CONVERT FAX
2FDB14 - INT 2F - ZyXEL ZFAX v3+ - VIEW FAX
2FDB15 - INT 2F - ZyXEL ZFAX v4.01 - SEND FAX WITH LOGO AND SIGNATURE
2FDB16 - INT 2F - ZyXEL ZFAX v4.01 - QUOTE PREVIOUS STATUS
2FDB17 - INT 2F - ZyXEL ZFAX v4.01 - BEGIN RECEIVING INCOMING CALL
2FDB18 - INT 2F - ZyXEL ZFAX v4.01 - SCHEDULE CALL
2FDB20 - INT 2F - ZyXEL ZFAX v3+ - POLL FAX
2FDB21 - INT 2F - ZyXEL ZFAX v3+ - SEND VOICE
2FDB22 - INT 2F - ZyXEL ZFAX v3+ - CONVERT VOICE FILE
2FDB23 - INT 2F - ZyXEL ZFAX v3+ - RECORD VOICE FILE
2FDB24 - INT 2F - ZyXEL ZFAX v3+ - PLAY VOICE FILE
2FDB25 - INT 2F - ZyXEL ZFAX v3+ - ANSWER MODEM WITH VOICE SYSTEM
2FDB26 - INT 2F - ZyXEL ZFAX v3+ - DIAL PHONE
2FDB27 - INT 2F - ZyXEL ZFAX v3+ - RECEIVE FAX - ANSWER MODEM AND SET TO FAX MODE
2FDB28 - INT 2F - ZyXEL ZFAX v3+ - RECEIVE FAX DATA - ANSWER MODEM IN MULTI-AUDIO MODE
2FDB40 - INT 2F - ZyXEL ZFAX v3+ - INTERNAL TERMINAL
2FDB41 - INT 2F - ZyXEL ZFAX v3+ - SEND DATA - DIAL NUMBER AND UPLOAD FILE WITH ZMODEM
2FDC00 - INT 2F - GOLD.COM - INSTALLATION CHECK
2FDC01 - INT 2F - GOLD.COM - GET STATE
2FDC02 - INT 2F - GOLD.COM - SET STATE
2FDD - INT 2F - CappaCom programs - API
2FDD - INT 2F - MIXFIX.EXE - API
2FDD--BX7844 - INT 2F - xDISK v3.32+ - INSTALLATION CHECK
2FDE00BL00 - INT 2F U - Novell Netware - RPRINTER, NPRINTER - INSTALLATION CHECK
2FDE00BX4456 - INT 2F - DESQview v2.26+ External Device Interface - INSTALLATION CHECK
2FDE01 - INT 2F - DESQview v2.26+ External Device Interface - DRIVER CUSTOM SUBFUNCTION
2FDE01BX4450 - INT 2F U - Quarterdeck QDPMI.SYS v1.0 - INSTALLATION CHECK
2FDE01BX5242 - INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, Ralf Brown's XDI drivers
2FDE01BX7474 - INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVTXDI.COM
2FDE01BX7575 - INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVSIXDI.COM
2FDE01BXFFFE - INT 2F U - DESQview v2.26+ XDI - DVXMS.DVR - ???
2FDE02 - INT 2F C - DESQview v2.26+ External Dev Interface - DV INITIALIZATION COMPLETE
2FDE03 - INT 2F C - DESQview v2.26+ External Dev Interface - DV TERMINATION
2FDE04 - INT 2F C - DESQview v2.26+ External Dev Interface - ADD PROCESS
2FDE05 - INT 2F C - DESQview v2.26+ External Dev Interface - REMOVE PROCESS
2FDE06 - INT 2F C - DESQview v2.26+ External Dev Interface - CREATE TASK
2FDE07 - INT 2F C - DESQview v2.26+ External Dev Interface - TERMINATE TASK
2FDE08 - INT 2F C - DESQview v2.26+ External Dev Interface - SAVE STATE
2FDE09 - INT 2F C - DESQview v2.26+ External Dev Interface - RESTORE STATE
2FDE0A - INT 2F C - DESQview v2.26+ External Dev Interface - CHANGE KEYBOARD FOCUS
2FDE0B - INT 2F C - DESQview v2.26+ External Dev Interface - DVP PROCESSING COMPLETE
2FDE0C - INT 2F C - DESQview v2.26+ External Dev Interface - SWAP OUT PROCESS
2FDE0D - INT 2F C - DESQview v2.26+ External Dev Interface - SWAP IN PROCESS
2FDE0E - INT 2F C - DESQview v2.26+ External Dev Interface - DVP START FAILED
2FDE0F - INT 2F C - DESQview v2.50+ External Dev Interface - INITIALIZE DV
2FDE10 - INT 2F C - DESQview v2.50+ External Dev Interface - FREE TASK
2FDF00 - INT 2F - HyperWare programs - INSTALLATION CHECK
2FDF00BX5445 - INT 2F U - Quarterdeck TELTSR.COM - INSTALLATION CHECK
2FDF01BX0000 - INT 2F U - MSG.COM - INSTALLATION CHECK
2FDF01BX4448 - INT 2F - HyperDisk v4.50+ - GET CURRENT CACHE STATE
2FDF01 - INT 2F U - Quarterdeck TELTSR.COM - CLOSE CONNECTION
2FDF02BX4448 - INT 2F - HyperDisk v4.50+ - SET CACHE STATE
2FDF02 - INT 2F U - Quarterdeck TELTSR.COM - OPEN CONNECTION
2FE000 - INT 2F - SETDRVER.COM v2.10+ - INSTALLATION CHECK
2FE000 - INT 2F - KAOSHIDE - INSTALLATION CHECK
2FE000DX4D50 - INT 2F - FREEVER v1.0+ - INSTALLATION CHECK
2FE000DX5354 - INT 2F - StuffIt v3.21+ - INSTALLATION CHECK
2FE001 - INT 2F - SETDRVER.COM v2.10+ - GET SETDRVER VERSION
2FE002 - INT 2F - SETDRVER.COM v2.10+ - GET ORIGINAL DOS VERSION INFO
2FE003 - INT 2F - SETDRVER.COM v2.10+ - RESET INTERNAL VARIABLES
2FE004 - INT 2F - SETDRVER.COM v2.10+ - ENABLE TSR
2FE005 - INT 2F - SETDRVER.COM v2.10+ - DISABLE TSR
2FE006 - INT 2F - SETDRVER.COM v2.10+ - GET TSR STATUS
2FE007 - INT 2F - SETDRVER.COM v2.10+ - GET TaskMAX STATUS AT INSTALLATION
2FE0 - INT 2F - SETDRVER.COM - RESERVED FOR FUTURE USE
2FE100 - INT 2F - Phantom2 v1.1+ - INSTALLATION CHECK
2FE101 - INT 2F - Phantom2 v1.1+ - FUNCTION REQUEST
2FE102 - INT 2F - Phantom2 v1.1+ - UNINSTALL
2FE103 - INT 2F - Phantom2 v2.8 - SET ??? FLAG
2FE200 - INT 2F - SecureDevice - LOGIN TO DRIVE
2FE201 - INT 2F - SecureDevice - GET INFORMATION
2FE203 - INT 2F - SecureDevice - DESTROY PASSWORD (LOGOUT FROM DRIVE)
2FE209DX0000 - INT 2F - SecureDevice - INSTALLATION CHECK
2FE300 - INT 2F - ANARKEY.COM - INSTALLATION CHECK
2FE300 - INT 2F - Blank - INSTALLATION CHECK
2FE301 - INT 2F U - ANARKEY.COM v2+ - GET ???
2FE302 - INT 2F U - ANARKEY.COM v3+ - ???
2FE303 - INT 2F U - ANARKEY.COM v3+ - ANARKMD API
2FE304 - INT 2F U - ANARKEY.COM v2+ - ???
2FE305 - INT 2F U - ANARKEY.COM v3+ - ENABLE/SUSPEND ANARKEY
2FE306 - INT 2F U - ANARKEY.COM v4.0 - GET ???
2FE307 - INT 2F U - ANARKEY.COM v4.0 - GET ???
2FE337 - INT 2F - INT16.COM - INSTALLATION CHECK
2FE44D - INT 2F - NDOS - API
2FE44E - INT 2F C - NDOS - AWAITING USER INPUT
2FE44FBX0000 - INT 2F - NDOS v4.0+ - KSTACK.COM - INSTALLATION CHECK
2FE44FBX0001 - INT 2F - NDOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK
2FE600CL30 - INT 2F - Virtual 486 - INSTALLATION CHECK
2FE700BX4158 - INT 2F - Multiplex - ??? - INSTALLATION CHECK???
2FE77EBX0000 - INT 2F - CTDEMN - INSTALLATION CHECK
2FED00 - INT 2F - Phar Lap DOS EXTENDERS - INSTALLATION CHECK
2FED03 - INT 2F R - Phar Lap 386/DOS-Extender v4.1 - GET EXTENDER ENTRY POINT
2FED10BL05 - INT 2F - Pharlap DOS Extender - ???
2FED11BL05 - INT 2F - Pharlap DOS Extender - FATAL EXIT TO REAL MODE ???
2FED58 - INT 2F U - K5.COM - INSTALLATION CHECK
2FED80 - INT 2F - Phar Lap 286|DOS Extender Lite v2.5 - ???
2FEDC8BX0000 - INT 2F - Novell DOS 7+ - SECURITY.BIN - INSTALLATION CHECK
2FEE00 - INT 2F - GRIDLOC.EXE - INSTALLATION CHECK
2FEE00 - INT 2F - XVIEW - INSTALLATION CHECK
2FEE00 - INT 2F - WEB v4.02 - INSTALLATION CHECK
2FEE01 - INT 2F - XVIEW - POP UP GIVING TOPIC SEARCH KEYWORD
2FEE02 - INT 2F - XVIEW - POP UP GIVING A PAGE NUMBER
2FEE03 - INT 2F - XVIEW - POP UP GIVING FILENAME AND SEARCH TOPIC OR PAGE NUMBER
2FEE04 - INT 2F - XVIEW - POP UP AND READ SCREEN FOR SEARCH TOPIC KEYWORD
2FEE05 - INT 2F - XVIEW - POP UP TO MOST-RECENTLY VIEWED PAGE
2FEE06 - INT 2F - XVIEW - WAIT FOR POP-DOWN AND GET EXIT CODE
2FEE - INT 2F - WEB v4.02 - WEB MODULE INSTALLATION CHECK
2FEEF0 - INT 2F - WEB v4.02 - WEB GENERAL NOTIFICATION
2FF000 - INT 2F U - 4MAP - INSTALLATION CHECK
2FF001 - INT 2F U - 4MAP - GET KEY MAPPINGS
2FF002 - INT 2F U - 4MAP - INSERT CHARACTER INTO ???
2FF003 - INT 2F U - 4MAP - INSERT CHARACTER INTO ???
2FF1 - INT 2F U - MIN-MEM v2.11 - INSTALLATION CHECK
2FF100 - INT 2F - DOS EXTENDER INSTALLATION CHECK
2FF1 - INT 2F U - RTKernel v4.0 - INSTALLATION CHECK
2FF200 - INT 2F - WINX - INSTALLATION CHECK
2FF201 - INT 2F - WINX - RETURN ADDRESS OF SERVER BUFFER
2FF202 - INT 2F - WINX - SET SERVER'S WORKING DIRECTORY
2FF203 - INT 2F - WINX - EXECUTE COMMAND
2FF400 - INT 2F - FINDIRQ.COM - INSTALLATION CHECK
2FF400 - INT 2F - PowerLAN - INSTALLATION CHECK???
2FF401 - INT 2F - PowerLAN - GET VERSION
2FF401CX5121 - INT 2F - FINDIRQ.COM - GET HOOKED INTERRUPTS
2FF483 - INT 2F - PowerLAN - ???
2FF700 - INT 2F - AUTOPARK.COM - INSTALLATION CHECK
2FF701 - INT 2F - AUTOPARK.COM - SET PARKING DELAY
2FF800CX4455 - INT 2F U - SuperStor PRO 2XON.COM - INSTALLATION CHECK
2FF801CX4455 - INT 2F U - SuperStor PRO 2XON.COM - UNINSTALL
2FFA00 - INT 2F - Multiplex - ??? - INSTALLATION CHECK???
2FFA00 - INT 2F - Multiplex - ??? - INSTALLATION CHECK???
2FFB - INT 2F - Multiplex - RESERVED BY BORLAND INTERNATIONAL
2FFB - INT 2F U - Conner Backup Exec AUTORES - API
2FFB00 - INT 2F U - AutoBraille v1.1A - INSTALLATION CHECK
2FFB00 - INT 2F U - Jot-It! v1.50 - INSTALLATION CHECK
2FFB01 - INT 2F U - AutoBraille v1.1A - ???
2FFB01 - INT 2F U - Jot-It! v1.50 - GET USER NAME
2FFB02 - INT 2F U - AutoBraille v1.1A - ???
2FFB02 - INT 2F U - Jot-It! v1.50 - GET MESSAGE DIRECTORY
2FFB03 - INT 2F U - AutoBraille v1.1A - GET NEXT ???
2FFB03 - INT 2F U - Jot-It! v1.50 - UNINSTALL
2FFB - INT 2F U - AutoBraille v1.1A - SET ???
2FFB - INT 2F U - AutoBraille v1.1A - SET ???
2FFB - INT 2F U - AutoBraille v1.1A - SET ???
2FFB20 - INT 2F U - AutoBraille v1.1A - SET ??? FLAGS
2FFB21 - INT 2F U - AutoBraille v1.1A - CLEAR ??? FLAGS
2FFB22 - INT 2F U - AutoBraille v1.1A - SET ???
2FFB28 - INT 2F U - AutoBraille v1.1A - ???
2FFB29 - INT 2F U - AutoBraille v1.1A - ???
2FFB - INT 2F U - AutoBraille v1.1A - SET ???
2FFB35 - INT 2F U - AutoBraille v1.1A - SET ???
2FFB36 - INT 2F U - AutoBraille v1.1A - SET ???
2FFB37 - INT 2F U - AutoBraille v1.1A - SET ???
2FFB42BX0001 - INT 2F PU - Borland C++ DPMILOAD.EXE - INSTALLATION CHECK???
2FFB42BX0002 - INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ALLOCATE MEMORY
2FFB42BX0002 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ALLOCATE MEMORY
2FFB42BX0003 - INT 2F PU - Borland C++ DPMILOAD.EXE - GET AVAILABLE MEMORY
2FFB42BX0004 - INT 2F PU - Borland C++ DPMILOAD.EXE - LOAD PROTECTED-MODE EXECUTABLE???
2FFB42BX0005 - INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NAME
2FFB42BX0006 - INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NUMBER
2FFB42BX0007 - INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ???
2FFB42BX0007 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX0008 - INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - FREE MEMORY BLOCK
2FFB42BX0008 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE MEMORY BLOCK
2FFB42BX0009 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - RESIZE MEMORY BLOCK
2FFB42BX000A - INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - INIT DPMI HOST AND SPAWN SUBSHELL
2FFB42BX000B - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - UNUSED
2FFB42BX000C - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE DESCRIPTORS FOR MEMORY BLOCK???
2FFB42BX000D - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SIMULATE REAL MODE INTERRUPT
2FFB42BX000E - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???
2FFB42BX000F - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - REALLOCATE LDT DESCRPS TO MEMBLK???
2FFB42BX0010 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SEGMENT TO SELECTOR
2FFB42BX0011 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX0012 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX0013 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX0014 - INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - INSTALLATION CHECK
2FFB42BX0015 - INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - UNINSTALL
2FFB42BX0016 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???
2FFB42BX0017 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX0018 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET ???
2FFB42BX0019 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX001A - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX001B - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX001C - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX001D - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???
2FFB42BX001E - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX001F - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???
2FFB42BX0020 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION???
2FFB42BX0021 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROCESSOR EXCEPTION HANDLER VECT
2FFB42BX0022 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROCESSOR EXCEPTION HANDLER VECT
2FFB42BX0023 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SELECTOR TO SEGMENT NUMBER
2FFB42BX0024 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROTECTED-MODE INTERRUPT VECTOR
2FFB42BX0025 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROTECTED-MODE INTERRUPT VECTOR
2FFB42BX0026 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
2FFB42BX0027 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???
2FFB42BX0080 - INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE
2FFB42BX0081 - INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE
2FFB42BX1001 - INT 2F U - Borland RTM.EXE 1.0 - INSTALLATION CHECK???
2FFB42BX1002 - INT 2F U - Borland RTM.EXE 1.0 - EXECUTE COMPILED PROGRAM
2FFB42BX1003 - INT 2F U - Borland RTM.EXE 1.0 - ???
2FFB43 - INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION
2FFB43BX0100 - INT 2F PU - Borland TDX - INSTALLATION CHECK
2FFB64 - INT 2F U - AutoBraille v1.1A - GET ???
2FFBA1BX0081 - INT 2F U - TKERNEL (Borland DOS extender) - INSTALLATION CHECK
2FFBA1BX0082 - INT 2F U - TKERNEL (Borland DOS extender) - GET ENTRY POINT
2FFBA1BX0084 - INT 2F U - TKERNEL (Borland DOS extender) - UNINSTALL
2FFBFBES0000 - INT 2F U - SoundBlaster speech driver - INSTALLATION CHECK
2FFD12 - INT 2F - KS/KEYSTKCT.EXE - INSTALLATION CHECK
2FFE00BX4454 - INT 2F - PC-NFS ??? - INSTALLATION CHECK
2FFE00BX4454 - INT 2F - PC-NFS ??? - INSTALLATION CHECK
2FFE00DI4E55 - INT 2F U - NORTON UTILITIES 5.0+ TSRs - INSTALLATION CHECK/STATUS REPORT
2FFE00DX474F - INT 2F - GO! v3.22+ - API
2FFE01DI4E55 - INT 2F U - NORTON UTILITIES 5.0+ TSRs - ENABLE
2FFE02DI4E55 - INT 2F U - NORTON UTILITIES 5.0+ TSRs - DISABLE
2FFE03DI4E55 - INT 2F U - NORTON UTILITIES 5.0+ TSRs - FLUSH BUFFERS
2FFE04DI4E55 - INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???
2FFE05DI4E55 - INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???
2FFE08 - INT 2F - PC-NFS ??? - GET ???
2FFE10DI4E55 - INT 2F U - NORTON UTILITIES 6.0 NCACHE - REBOOT
2FFEEF - INT 2F - RTS Control TSR - INSTALLATION CHECK
2FFF00 - INT 2F - Topware Network Operating System - INSTALLATION CHECK
2FFF01 - INT 2F - Topware Network Operating System - GET VERSION
2FFF02 - INT 2F - TopWare Network OS v5.10+ - GET TopNet VERSION STRING
2FFF10 - INT 2F - TopWare Network OS v5.10+ - TopTerm - INSTALLATION CHECK
2FFF11 - INT 2F - TopWare Network OS v5.10+ - TopTerm - ENABLE KEYBOARD SERVICE
2FFF12 - INT 2F - TopWare Network OS v5.10+ - TopTerm - DISABLE KEYBOARD SERVICE
2FFF13 - INT 2F - TopWare Network OS v5.10+ - TopTerm - SET INSTALLATION FLAG
2FFF14 - INT 2F - TopWare Network OS v5.10+ - START BACKGROUND RECEIVE VIDEO DATA
2FFF15 - INT 2F - TopWare Network OS v5.10+ - END BACKGROUND RECEIVE VIDEO DATA
2FFF16 - INT 2F - TopWare Network OS v5.10+ - SET CONTROL NUMBER OF "SHOW" SCREEN
2FFF18 - INT 2F - TopWare Network OS v5.10+ - SEND FULL SCREEN OF DATA FOR TopShow
2FFF23 - INT 2F - TopWare Network OS v5.10+ - CLOSE SPOOL FILES AND START PRINTING
2FFF27 - INT 2F - TopWare Network OS v5.10+ - GET "SHOW" TYPE
30 - INT 30 - (NOT A VECTOR!) - DOS 1+ - FAR JMP instruction for CP/M-style calls
30 - INT 30 - QRIP/TSR - USED BY GRAPHICS LIBRARY
30 - INT 30 P - MS Windows 3.1+ - PROTECTED-MODE CALLBACK
31 - INT 31 - overwritten by CP/M jump instruction in INT 30
31 - INT 31 - VIRUS - "Vacsina" series - INSTALLATION CHECK (NOT A VECTOR!)
310000 - INT 31 P - DPMI 0.9+ - ALLOCATE LDT DESCRIPTORS
310001 - INT 31 P - DPMI 0.9+ - FREE LDT DESCRIPTOR
310002 - INT 31 P - DPMI 0.9+ - SEGMENT TO DESCRIPTOR
310003 - INT 31 P - DPMI 0.9+ - GET NEXT SELECTOR INCREMENT VALUE
310004 - INT 31 P - DPMI 0.9+ - LOCK SELECTOR
310005 - INT 31 P - DPMI 0.9+ - UNLOCK SELECTOR
310006 - INT 31 P - DPMI 0.9+ - GET SEGMENT BASE ADDRESS
310007 - INT 31 P - DPMI 0.9+ - SET SEGMENT BASE ADDRESS
310008 - INT 31 P - DPMI 0.9+ - SET SEGMENT LIMIT
310009 - INT 31 P - DPMI 0.9+ - SET DESCRIPTOR ACCESS RIGHTS
31000A - INT 31 P - DPMI 0.9+ - CREATE ALIAS DESCRIPTOR
31000B - INT 31 P - DPMI 0.9+ - GET DESCRIPTOR
31000C - INT 31 P - DPMI 0.9+ - SET DESCRIPTOR
31000D - INT 31 P - DPMI 0.9+ - ALLOCATE SPECIFIC LDT DESCRIPTOR
31000E - INT 31 P - DPMI 1.0+ - GET MULTIPLE DESCRIPTORS
31000F - INT 31 P - DPMI 1.0+ - SET MULTIPLE DESCRIPTORS
310100 - INT 31 P - DPMI 0.9+ - ALLOCATE DOS MEMORY BLOCK
310101 - INT 31 P - DPMI 0.9+ - FREE DOS MEMORY BLOCK
310102 - INT 31 P - DPMI 0.9+ - RESIZE DOS MEMORY BLOCK
310200 - INT 31 P - DPMI 0.9+ - GET REAL MODE INTERRUPT VECTOR
310201 - INT 31 P - DPMI 0.9+ - SET REAL MODE INTERRUPT VECTOR
310202 - INT 31 P - DPMI 0.9+ - GET PROCESSOR EXCEPTION HANDLER VECTOR
310203 - INT 31 P - DPMI 0.9+ - SET PROCESSOR EXCEPTION HANDLER VECTOR
310204 - INT 31 P - DPMI 0.9+ - GET PROTECTED MODE INTERRUPT VECTOR
310205 - INT 31 P - DPMI 0.9+ - SET PROTECTED MODE INTERRUPT VECTOR
310210 - INT 31 P - DPMI 1.0+ - GET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER
310211 - INT 31 P - DPMI 1.0+ - GET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER
310212 - INT 31 P - DPMI 1.0+ - SET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER
310213 - INT 31 P - DPMI 1.0+ - SET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER
310300 - INT 31 P - DPMI 0.9+ - SIMULATE REAL MODE INTERRUPT
310301 - INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH FAR RETURN FRAME
310302 - INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH IRET FRAME
310303 - INT 31 P - DPMI 0.9+ - ALLOCATE REAL MODE CALLBACK ADDRESS
310304 - INT 31 P - DPMI 0.9+ - FREE REAL MODE CALLBACK ADDRESS
310305 - INT 31 P - DPMI 0.9+ - GET STATE SAVE/RESTORE ADDRESSES
310306 - INT 31 P - DPMI 0.9+ - GET RAW MODE SWITCH ADDRESSES
310400 - INT 31 P - DPMI 0.9+ - GET DPMI VERSION
310401 - INT 31 P - DPMI 1.0+ - GET DPMI CAPABILITIES
310500 - INT 31 P - DPMI 0.9+ - GET FREE MEMORY INFORMATION
310501 - INT 31 P - DPMI 0.9+ - ALLOCATE MEMORY BLOCK
310502 - INT 31 P - DPMI 0.9+ - FREE MEMORY BLOCK
310503 - INT 31 P - DPMI 0.9+ - RESIZE MEMORY BLOCK
310504 - INT 31 P - DPMI 1.0+ - ALLOCATE LINEAR MEMORY BLOCK
310505 - INT 31 P - DPMI 1.0+ - RESIZE LINEAR MEMORY BLOCK
310506 - INT 31 P - DPMI 1.0+ - GET PAGE ATTRIBUTES
310507 - INT 31 P - DPMI 1.0+ - MODIFY PAGE ATTRIBUTES
310508 - INT 31 P - DPMI 1.0+ - MAP DEVICE IN MEMORY BLOCK
310509 - INT 31 P - DPMI 1.0+ - MAP CONVENTIONAL MEMORY IN MEMORY BLOCK
31050A - INT 31 P - DPMI 1.0+ - GET MEMORY BLOCK SIZE AND BASE
31050B - INT 31 P - DPMI 1.0+ - GET MEMORY INFORMATION
310600 - INT 31 P - DPMI 0.9+ - LOCK LINEAR REGION
310601 - INT 31 P - DPMI 0.9+ - UNLOCK LINEAR REGION
310602 - INT 31 P - DPMI 0.9+ - MARK REAL MODE REGION AS PAGEABLE
310603 - INT 31 P - DPMI 0.9+ - RELOCK REAL MODE REGION
310604 - INT 31 P - DPMI 0.9+ - GET PAGE SIZE
310700 - INT 31 Pu - DPMI 0.9+ - MARK PAGES AS PAGING CANDIDATES
310701 - INT 31 Pu - DPMI 0.9+ - DISCARD PAGES
310702 - INT 31 P - DPMI 0.9+ - MARK PAGE AS DEMAND PAGING CANDIDATE
310703 - INT 31 P - DPMI 0.9+ - DISCARD PAGE CONTENTS
310800 - INT 31 P - DPMI 0.9+ - PHYSICAL ADDRESS MAPPING
310801 - INT 31 P - DPMI 1.0+ - FREE PHYSICAL ADDRESS MAPPING
310900 - INT 31 P - DPMI 0.9+ - GET AND DISABLE VIRTUAL INTERRUPT STATE
310901 - INT 31 P - DPMI 0.9+ - GET AND ENABLE VIRTUAL INTERRUPT STATE
310902 - INT 31 P - DPMI 0.9+ - GET VIRTUAL INTERRUPT STATE
310A00 - INT 31 P - DPMI 0.9+ - GET VENDOR SPECIFIC API ENTRY POINT
310B00 - INT 31 P - DPMI 0.9+ - SET DEBUG WATCHPOINT
310B01 - INT 31 P - DPMI 0.9+ - CLEAR DEBUG WATCHPOINT
310B02 - INT 31 P - DPMI 0.9+ - GET STATE OF DEBUG WATCHPOINT
310B03 - INT 31 P - DPMI 0.9+ - RESET DEBUG WATCHPOINT
310C00 - INT 31 P - DPMI 1.0+ - INSTALL RESIDENT HANDLER INIT CALLBACK
310C01 - INT 31 P - DPMI 1.0+ - TERMINATE AND STAY RESIDENT
310D00 - INT 31 P - DPMI 1.0+ - ALLOCATE SHARED MEMORY
310D01 - INT 31 P - DPMI 1.0+ - FREE SHARED MEMORY
310D02 - INT 31 P - DPMI 1.0+ - SERIALIZE SHARED MEMORY
310D03 - INT 31 P - DPMI 1.0+ - FREE SERIALIZATION ON SHARED MEMORY
310E00 - INT 31 P - DPMI 1.0+ - GET COPROCESSOR STATUS
310E01 - INT 31 P - DPMI 1.0+ - SET EMULATION
3157 - INT 31 - Netroom3 DPMI.EXE v3.00 - ???
315702 - INT 31 - Netroom3 DPMI.EXE v3.00 - SWITCH TO PROTECTED MODE
31EE00 - INT 31 - DOS32 v3.0+ - GET DOS32 VERSION AND SELECTOR VALUES
31EE02 - INT 31 - DOS32 v3.0+ - GET DOS32 ADDRESS INFORMATION
31EE10 - INT 31 - DOS32 v3.2+ - SET UP A DOS32 LOADABLE LIBRARY
31EE11 - INT 31 - DOS32 v3.2+ - LOAD LIBRARY FILE
31EE20 - INT 31 - DOS32 v3.0+ - GET REAL MODE CALL BACK ADDRESS WITH RETF STACK FRAME
31EE21 - INT 31 - DOS32 v3.0+ - GET REAL MODE CALL BACK ADDRESS WITH IRET STACK FRAME
31EE30 - INT 31 - DOS32 v3.0+ - TERMINATE AND STAY RESIDENT
31EE40 - INT 31 - DOS32 v3.0+ - UNDO PREVIOUS MEMORY ALLOCATION or DMA BUFFER
31EE41 - INT 31 - DOS32 v3.0+ - ALLOCATE 16KB DMA BLOCK
31EE42 - INT 31 - DOS32 v3.0+ - ALLOCATE MEMORY BLOCK
31FF00 - INT 31 P - CauseWay - "Info" - GET SYSTEM SELECTORS/FLAGS
31FF01 - INT 31 P - CauseWay - "IntXX" - SIMULATE REAL-MODE INTERRUPT
31FF02 - INT 31 P - CauseWay - "FarCallReal" - SIMULATE REAL-MODE FAR CALL
31FF03 - INT 31 P - CauseWay - "GetSel" - ALLOCATE NEW SELECTOR
31FF04 - INT 31 P - CauseWay - "RelSel" - RELEASE A SELECTOR
31FF05 - INT 31 P - CauseWay - "CodeSel" - CONVERT SELECTOR TO EXECUTABLE CODE SELECTOR
31FF06 - INT 31 P - CauseWay - "AliasSel" - CREATE READ/WRITE DATA ALIAS SELECTOR
31FF07 - INT 31 P - CauseWay - "GetSelDet" - GET SELECTOR BASE AND LIMIT
31FF08 - INT 31 P - CauseWay - "GetSelDet32" - GET SELECTOR BASE AND LIMIT (32-bit)
31FF09 - INT 31 P - CauseWay - "SetSelDet" - SET SELECTOR BASE AND LIMIT
31FF0A - INT 31 P - CauseWay - "SetSelDet32" - SET SELECTOR BASE AND LIMIT (32-bit)
31FF0B - INT 31 P - CauseWay - "GetMem" - ALLOCATE BLOCK OF MEMORY
31FF0C - INT 31 P - CauseWay - "GetMem32" - ALLOCATE BLOCK OF MEMORY (32-bit)
31FF0D - INT 31 P - CauseWay - "ResMem" - RESIZE MEMORY BLOCK
31FF0E - INT 31 P - CauseWay - "ResMem32" - RESIZE MEMORY BLOCK (32-bit)
31FF0F - INT 31 P - CauseWay - "RelMem" - RELEASE PREVIOUSLY ALLOCATED MEMORY
31FF10 - INT 31 P - CauseWay - "GetMemLinear" - ALLOCATE MEMORY WITHOUT SELECTOR
31FF11 - INT 31 P - CauseWay - "GetMemLinear32" - ALLOCATE MEMORY WITHOUT SELECTOR
31FF12 - INT 31 P - CauseWay - "ResMemLinear" - RESIZE LINEAR MEMORY BLOCK
31FF13 - INT 31 P - CauseWay - "ResMemLinear32" - RESIZE LINEAR MEMORY BLOCK (32-bit)
31FF14 - INT 31 P - CauseWay - "RelMemLinear" - RELEASE LINEAR MEMORY BLOCK
31FF15 - INT 31 P - CauseWay - "RelMemLinear32" - RELEASE LINEAR MEMORY BLOCK (32-bit)
31FF16 - INT 31 P - CauseWay - "GetMemNear" - ALLOCATE APPLICATION-RELATIVE MEMORY
31FF17 - INT 31 P - CauseWay - "ResMemNear" - RESIZE APPLICATION-RELATIVE MEMORY BLOCK
31FF18 - INT 31 P - CauseWay - "RelMemNear" - RELEASE APPLICATION-RELATIVE MEMORY BLOCK
31FF19 - INT 31 P - CauseWay - "Linear2Near" - CONVERT LINEAR TO APP-RELATIVE ADDRESS
31FF1A - INT 31 P - CauseWay - "Near2Linear" - CONVERT APP-RELATIVE TO LINEAR ADDRESS
31FF1B - INT 31 P - CauseWay - "LockMem" - LOCK REGION OF MEMORY
31FF1C - INT 31 P - CauseWay - "LockMem32" - LOCK REGION OF MEMORY (32-bit)
31FF1D - INT 31 P - CauseWay - "UnLockMem" - UNLOCK REGION OF MEMORY
31FF1E - INT 31 P - CauseWay - "UnLockMem32" - UNLOCK REGION OF MEMORY (32-bit)
31FF1F - INT 31 P - CauseWay - "LockMemNear" - LOCK APPLICATION-RELATIVE MEMORY REGION
31FF20 - INT 31 P - CauseWay - "UnLockMemNear" - UNLOCK APP-RELATIVE MEMORY REGION
31FF21 - INT 31 P - CauseWay - "GetMemDOS" - ALLOCATE CONVENTIONAL MEMORY
31FF22 - INT 31 P - CauseWay - "ResMemDOS" - RESIZE CONVENTIONAL MEMORY BLOCK
31FF23 - INT 31 P - CauseWay - "RelMemDOS" - RELEASE CONVENTIONAL MEMORY BLOCK
31FF24 - INT 31 P - CauseWay - "ExecOverlay" - LOAD AND OPTIONALLY EXECUTE APP CODE
31FF25 - INT 31 P - CauseWay - "GetDOSTrans" - GET DOS TRANSFER BUFFER
31FF26 - INT 31 P - CauseWay - "SetDOSTrans" - SET DOS TRANSFER BUFFER
31FF27 - INT 31 P - CauseWay v1.3 - "GetMCBSize" - GET CURRENT MCB ALLOCATION BLOCK SIZE
31FF28 - INT 31 P - CauseWay v1.3 - "SetMCBSize" - SET MCB MEMORY ALLOCATION BLOCK SIZE
31FF29 - INT 31 P - CauseWay v1.3 - "GetSels" - ALLOCATE MULTIPLE SELECTORS
31FF2A - INT 31 P - CauseWay v1.3 - "cwLoad" - LOAD ANOTHER CAUSEWAY PROGRAM AS OVERLAY
31FF2B - INT 31 P - CauseWay v1.3 - "cwcInfo" - VALIDATE AND GET SIZE OF CWC FILE
31FF2C - INT 31 P - CauseWay v1.3 - "GetMemSO" - ALLOCATE MEMORY AND RETURN SEL:OFFSET
31FF2D - INT 31 P - CauseWay v1.3 - "ResMemSO" - RESIZE SELECTOR:OFFSET MEMORY BLOCK
31FF2E - INT 31 P - CauseWay v1.3 - "RelMemSO" - RELEASE SELECTOR:OFFSET MEMORY BLOCK
31FFFB - INT 31 P - Causeway v1.3 - "cwcLoad" - LOAD/EXPAND CWC-COMPRESSED FILE
32 - INT 32 - VIRUS - "Tiny" Viruses - ORIGINAL INT 21h VECTOR
32 - INT 32 - VIRUS - "Plovdiv 1.3"/"Damage 1.3" - ORIGINAL INT 21h VECTOR
326E - INT 32 - NOISE.SYS 0.53 - API
326E00 - INT 32 - NOISE.SYS v0.53+ - INSTALLATION CHECK
326E01 - INT 32 - NOISE.SYS v0.53+ - GET ENTRY POINT
326E04 - INT 32 - NOISE.SYS v0.55+ - GET INTERRUPT HOOK LIST
326E06 - INT 32 - NOISE.SYS v0.55+ - GET DEVICE DRIVER HEADER
326E10 - INT 32 - NOISE.SYS v0.53+ - STATUS CHECK
326E11 - INT 32 - NOISE.SYS v0.53+ - GET ENTROPY ESTIMATE
326E12 - INT 32 - NOISE.SYS v0.53+ - ADD SAMPLE FROM FAST TIMER
326E13 - INT 32 - NOISE.SYS v0.53+ - ADD 16-BIT SAMPLE TO RANDOM POOL
326E14 - INT 32 - NOISE.SYS v0.53+ - GET FLAGS
326E15 - INT 32 - NOISE.SYS v0.53+ - SET FLAGS
326E16 - INT 32 - NOISE.SYS v0.53+ - READ URANDOM BYTES
326E17 - INT 32 - NOISE.SYS v0.53+ - READ RANDOM BYTES
326E18 - INT 32 - NOISE.SYS v0.6+ - READ CONTROL RECORD
326E - INT 32 - NOISE.SYS - RESERVED FOR FUTURE USE
330000 - INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS
330001 - INT 33 - MS MOUSE v1.0+ - SHOW MOUSE CURSOR
330002 - INT 33 - MS MOUSE v1.0+ - HIDE MOUSE CURSOR
330003 - INT 33 - MS MOUSE v1.0+ - RETURN POSITION AND BUTTON STATUS
330004 - INT 33 - MS MOUSE v1.0+ - POSITION MOUSE CURSOR
330005 - INT 33 - MS MOUSE v1.0+ - RETURN BUTTON PRESS DATA
330006 - INT 33 - MS MOUSE v1.0+ - RETURN BUTTON RELEASE DATA
330007 - INT 33 - MS MOUSE v1.0+ - DEFINE HORIZONTAL CURSOR RANGE
330008 - INT 33 - MS MOUSE v1.0+ - DEFINE VERTICAL CURSOR RANGE
330009 - INT 33 - MS MOUSE v3.0+ - DEFINE GRAPHICS CURSOR
33000A - INT 33 - MS MOUSE v3.0+ - DEFINE TEXT CURSOR
33000B - INT 33 - MS MOUSE v1.0+ - READ MOTION COUNTERS
33000C - INT 33 - MS MOUSE v1.0+ - DEFINE INTERRUPT SUBROUTINE PARAMETERS
33000D - INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION ON
33000E - INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION OFF
33000F - INT 33 - MS MOUSE v1.0+ - DEFINE MICKEY/PIXEL RATIO
330010 - INT 33 - MS MOUSE v1.0+ - DEFINE SCREEN REGION FOR UPDATING
330010 - INT 33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING
330011 - INT 33 - Genius Mouse 9.06 - GET NUMBER OF BUTTONS
330012 - INT 33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK
330013 - INT 33 - MS MOUSE v5.0+ - DEFINE DOUBLE-SPEED THRESHOLD
330014 - INT 33 - MS MOUSE v3.0+ - EXCHANGE INTERRUPT SUBROUTINES
330015 - INT 33 - MS MOUSE v6.0+ - RETURN DRIVER STORAGE REQUIREMENTS
330016 - INT 33 - MS MOUSE v6.0+ - SAVE DRIVER STATE
330017 - INT 33 - MS MOUSE v6.0+ - RESTORE DRIVER STATE
330018 - INT 33 - MS MOUSE v6.0+ - SET ALTERNATE MOUSE USER HANDLER
330019 - INT 33 - MS MOUSE v6.0+ - RETURN USER ALTERNATE INTERRUPT VECTOR
33001A - INT 33 - MS MOUSE v6.0+ - SET MOUSE SENSITIVITY
33001B - INT 33 - MS MOUSE v6.0+ - RETURN MOUSE SENSITIVITY
33001C - INT 33 - MS MOUSE v6.0+ - SET INTERRUPT RATE
33001D - INT 33 - MS MOUSE v6.0+ - DEFINE DISPLAY PAGE NUMBER
33001E - INT 33 - MS MOUSE v6.0+ - RETURN DISPLAY PAGE NUMBER
33001F - INT 33 - MS MOUSE v6.0+ - DISABLE MOUSE DRIVER
330020 - INT 33 - MS MOUSE v6.0+ - ENABLE MOUSE DRIVER
330021 - INT 33 - MS MOUSE v6.0+ - SOFTWARE RESET
330022 - INT 33 - MS MOUSE v6.0+ - SET LANGUAGE FOR MESSAGES
330023 - INT 33 - MS MOUSE v6.0+ - GET LANGUAGE FOR MESSAGES
330024BX0000 - INT 33 - MS MOUSE v6.26+ - GET SOFTWARE VERSION, MOUSE TYPE, AND IRQ NUMBER
330025 - INT 33 - MS MOUSE v6.26+ - GET GENERAL DRIVER INFORMATION
330026 - INT 33 - MS MOUSE v6.26+ - GET MAXIMUM VIRTUAL COORDINATES
330026 - INT 33 - Genius Mouse 9.06 - ???
330027 - INT 33 - MS MOUSE v7.01+ - GET SCREEN/CURSOR MASKS AND MICKEY COUNTS
330028 - INT 33 - MS MOUSE v7.0+ - SET VIDEO MODE
330029 - INT 33 - MS MOUSE v7.0+ - ENUMERATE VIDEO MODES
33002A - INT 33 - MS MOUSE v7.02+ - GET CURSOR HOT SPOT
33002B - INT 33 - MS MOUSE v7.0+ - LOAD ACCELERATION PROFILES
33002C - INT 33 - MS MOUSE v7.0+ - GET ACCELERATION PROFILES
33002D - INT 33 - MS MOUSE v7.0+ - SELECT ACCELERATION PROFILE
33002E - INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES
33002F - INT 33 - MS MOUSE v7.02+ - MOUSE HARDWARE RESET
330030 - INT 33 - MS MOUSE v7.04+ - GET/SET BallPoint INFORMATION
330031 - INT 33 - MS MOUSE v7.05+ - GET CURRENT MINIMUM/MAXIMUM VIRTUAL COORDINATES
330032 - INT 33 - MS MOUSE v7.05+ - GET ACTIVE ADVANCED FUNCTIONS
330033 - INT 33 - MS MOUSE v7.05+ - GET SWITCH SETTINGS AND ACCELERATION PROFILE DATA
330034 - INT 33 - MS MOUSE v8.0+ - GET INITIALIZATION FILE
330035 - INT 33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT
330042 - INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS
330043 - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CONFIGURE MOUSE???
330044CXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE IGNORE ACCELERATION CMDS
330045CXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE RESOLUTION DOUBLING
330047 - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET BUTTON ASSIGNMENTS
330048BXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET ???
33004B - INT 33 - LCS/Telegraphics MOUSE DRIVERS - INSTALLATION CHECK / GET VERSION
33004CBXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ??? FLAG
33004D - INT 33 - MS MOUSE - RETURN POINTER TO COPYRIGHT STRING
33004F - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ENABLE MOUSE
330050 - INT 33 - PCMOUSE - SAVE MSMOUSE STATE
330052 - INT 33 - PCMOUSE - RESTORE MSMOUSE STATE
330053 - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - DISABLE MOUSE
330054CXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SELECT ULTRARES ACCELERATION LEVEL
330055 - INT 33 - Kraft Mouse - GET ???
330058 - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
33005A - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ULTRARES ACCELERATIONS
330061BXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
330067 - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET MOUSE BUTTONS???
33006A - INT 33 U - ATI Mouse - INSTALLATION CHECK
33006C - INT 33 U - TRUEDOX Mouse driver v4.01 - GET/SET HARDWARE PARAMETERS
33006CBXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CLEAR ??? FLAG
33006D - INT 33 - MS MOUSE - GET VERSION STRING
330070BXABCD - INT 33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK
330072BXABCD - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
330073BXCDEF - INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET BUTTON ASSIGNMENTS
3300A0 - INT 33 U - TRUEDOX Mouse driver - SET HARDWARE PC MODE (3 button)
3300A1 - INT 33 U - TRUEDOX Mouse driver - SET HARDWARE MS MODE (2 button)
3300A6 - INT 33 U - TRUEDOX Mouse driver - SET RESOLUTION
3300B0 - INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
3300D6 - INT 33 - Twiddler TWMOUSE - GET BUTTON/TILT STATE
3300F0 - INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
3300F1 - INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
3300F2 - INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
3300F3 - INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
330100CX4752 - INT 33 - GRTMOUSE v1.00+ - INSTALLATION CHECK
330101 - INT 33 - GRTMOUSE v1.00+ - SET MOUSE CURSOR SHAPE
330102 - INT 33 - GRTMOUSE v1.00+ - GET MOUSE CURSOR SHAPE
330103 - INT 33 - GRTMOUSE v1.00+ - SET ACTIVE CHARACTERS
330104 - INT 33 - GRTMOUSE v1.00+ - GET ACTIVE CHARACTERS
33012E - INT 33 - MS MOUSE v8.10+ - ???
33022E - INT 33 - MS MOUSE v8.10+ - ???
330666 - INT 33 U - TRUEDOX Mouse driver v4.01 - GET COPYRIGHT STRING
33136C - INT 33 - LOGITECH MOUSE v6.10+ - ???
33146C - INT 33 - LOGITECH MOUSE v6.10+ - GET/SET ???
33156C - INT 33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS
33166C - INT 33 - LOGITECH MOUSE v6.10+ - ???
33176C - INT 33 - LOGITECH MOUSE v6.10+ - ???
33186C - INT 33 - LOGITECH MOUSE v6.10+ - ???
33196C - INT 33 - LOGITECH MOUSE v6.10+ - ???
331A6C - INT 33 - LOGITECH MOUSE v6.10+ - GET ???
331B6C - INT 33 - LOGITECH MOUSE v6.10+ - SET ???
331C6C - INT 33 - LOGITECH MOUSE v6.10+ - ???
331D6C - INT 33 - LOGITECH MOUSE - GET COMPASS PARAMETER
331E6C - INT 33 - LOGITECH MOUSE - SET COMPASS PARAMETER
331F6C - INT 33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION
33206C - INT 33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER
33216C - INT 33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER
33226C - INT 33 - LOGITECH MOUSE - REMOVE DRIVER FROM MEMORY
33236C - INT 33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION
33246C - INT 33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE
33256CBX0000 - INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET BAUD RATE (SERIAL MOUSE ONLY)
33256CBX0001 - INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET EMULATION (SERIAL MOUSE ONLY)
33256CBX0002 - INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET REPORT RATE (SERIAL MOUSE ONLY)
33256CBX0003 - INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE PORT (SERIAL MOUSE ONLY)
33256CBX0004 - INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE LOGICAL BUTTONS
33266C - INT 33 - LOGITECH MOUSE - GET VERSION???
33276C - INT 33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400
333000 - INT 33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK
333001 - INT 33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE
333002 - INT 33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE
333003 - INT 33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION
333004 - INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
333005 - INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
334F00 - INT 33 - LOGITECH MOUSE v6.10+ - GET ???
334F01 - INT 33 - LOGITECH MOUSE v6.10+ - ???
336F00 - INT 33 - Hewlett Packard - HP MOUSE DRIVER INSTALLATION CHECK
338800 - INT 33 U - InfoTrack IMOUSE.COM - UNHOOK MOUSE IRQ
338800BXFFFF - INT 33 U - InfoTrack IMOUSE.COM - GET ACTIVE IRQ
33FFE6 - INT 33 - Switch-It v3.23 - GET ??? PROGRAM
33FFE7 - INT 33 - Switch-It v3.23 - GET ???
33FFE8 - INT 33 - Switch-It v3.23 - ???
33FFE9 - INT 33 - Switch-It v3.23 - SET ???
33FFEA - INT 33 - Switch-It v3.23 - SET ???
33FFEB - INT 33 - Switch-It v3.23 - SET ??? FLAG
33FFEC - INT 33 - Switch-It v3.23 - SET ???
33FFED - INT 33 - Switch-It v3.23 - GET ???
33FFEE - INT 33 - Switch-It v3.23 - GET ???
33FFEF - INT 33 - Switch-It v3.23 - GET ???
33FFF0 - INT 33 - Switch-It v3.23 - SET ???
33FFF1 - INT 33 - Switch-It v3.23 - GET CONFIGURATION FILE
33FFF2 - INT 33 - Switch-It v3.23 - SET ??? FLAG
33FFF3 - INT 33 - Switch-It v3.23 - GET ???
33FFF4 - INT 33 - Switch-It v3.23 - SET ???
33FFF5 - INT 33 - Switch-It v3.23 - GET ???
33FFF6 - INT 33 - Switch-It v3.23 - GET ???
33FFF7 - INT 33 - Switch-It v3.23 - GET ???
33FFF8 - INT 33 - Switch-It v3.23 - ???
33FFF9 - INT 33 - Switch-It v3.23 - NOP
33FFFA - INT 33 - Switch-It v3.23 - SET ???
33FFFB - INT 33 - Switch-It v3.23 - GET ???
33FFFC - INT 33 - Switch-It v3.23 - CLEAR ???
33FFFD - INT 33 - Switch-It v3.23 - GET MEMORY ADDRESSES???
33FFFE - INT 33 - Switch-It v3.23 - INSTALLATION CHECK
33FFFF - INT 33 - Switch-It v3.23 - ???
34 - INT 34 - FLOATING POINT EMULATION - OPCODE D8h
35 - INT 35 - FLOATING POINT EMULATION - OPCODE D9h
36 - INT 36 - FLOATING POINT EMULATION - OPCODE DAh
37 - INT 37 - FLOATING POINT EMULATION - OPCODE DBh
38 - INT 38 - FLOATING POINT EMULATION - OPCODE DCh
38 - INT 38 - PC-MOS/386 v3.0 - API
39 - INT 39 - FLOATING POINT EMULATION - OPCODE DDh
3A - INT 3A - FLOATING POINT EMULATION - OPCODE DEh
3B - INT 3B - FLOATING POINT EMULATION - OPCODE DFh
3C - INT 3C - FLOATING POINT EMULATION - INSTRUCTIONS WITH SEGMENT OVERRIDE
3D - INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT
3E - INT 3E - FLOATING POINT EMULATION - Borland LANGUAGES "SHORTCUT" CALL
3F - INT 3F - Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM)
3F - INT 3F - Microsoft Dynamic Link Library manager
40 - INT 40 - DISKETTE - ROM BIOS DISKETTE HANDLER RELOCATED BY HARD DISK BIOS
40 - INT 40 - Z100 - Master 8259 - Parity error or S100 error
40 - INT 40 - Acorn BBC Master 512 - "OSFIND" - OPEN FILE
40 - INT 40 - TI Professional PC - IRQ0
41 - INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!]
41 - INT 41 - Z100 - Master 8259 - Processor Swap
41 - INT 41 - TI Professional PC - IRQ1
41 - INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT
410000 - INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
410001 - INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER
41000D - INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT
41000E - INT 41 CPU - MS Windows debugging kernel - TASK COMING IN
410012 - INT 41 CPU - MS Windows debugging kernel - "OutputDebugString"
41004F - INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
410050 - INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"
410051 - INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT
410052 - INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT
410059 - INT 41 CPU - MS Windows debugging kernel - LOAD TASK
41005C - INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT
410060 - INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT LOAD
410061 - INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD
410062 - INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING
410063 - INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
410064 - INT 41 CPU - MS Windows debugging kernel - DLL LOADED
410065 - INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED
410066 - INT 41 CPU - MS Windows debugging kernel - ERROR
410067 - INT 41 CPU - MS Windows debugging kernel - PARAMETER ERROR
42 - INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA)
42 - INT 42 - Z100 - Master 8259 - Timer
42 - INT 42 - TI Professional PC - IRQ2
42 - INT 42 - Western Digital WD1002 SuperBIOS - INT 40 CASCADE
42 - INT 42 - Acorn BBC Master 512 - "OSBPUT" - WRITE SINGLE BYTE TO FILE
425F33 - INT 42 C - Chips & Technologies '65530' BIOS - MODE SET HOOK
427500 - INT 42 U - Toshiba laptops - ???
427501 - INT 42 U - Toshiba laptop - GET ??? DATA
427502 - INT 42 U - Toshiba laptops - SET ??? DATA
427503 - INT 42 - Toshiba laptops - GET DISPLAY STATUS
427504 - INT 42 U - Toshiba laptops - ???
43 - INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA)
43 - INT 43 - Z100 - Master 8259 - Slave 8259 input
43 - INT 43 - TI Professional PC - IRQ3 - TIMER1 25ms INTERVAL INTERRUPT
43 - INT 43 - Acorn BBC Master 512 - "OSBGET" - READ SINGLE BYTE FROM FILE
44 - INT 44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr)
44 - INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE API
44 - INT 44 - IBM 3270-PC High Level Language API
44 - INT 44 - Z100 - Master 8259 - Serial A
44 - INT 44 - TI Professional PC - IRQ4
44 - INT 44 - VIRUS - "Lehigh" - ORIGINAL INT 21h VECTOR
4400 - INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
44 - INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
45 - INT 45 - Z100 - Master 8259 - Serial B
45 - INT 45 - TI Professional PC - IRQ5
45 - INT 45 - Acorn BBC Master 512 - "OSFILE" - READ/WRITE FILE OR DIRECTORY INFO
46 - INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE ADDRESS [NOT A VECTOR!]
46 - INT 46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen
46 - INT 46 - TI Professional PC - IRQ6 - FLOPPY DISK CONTROLLER
46 - INT 46 - Acorn BBC Master 512 - "OSRDCH" - GET CHARACTER FROM CUR INPUT STREAM
47 - INT 47 - Z100 - Master 8259 - Printer
47 - INT 47 - TI Professional PC - IRQ7 - KEYBOARD USART
47 - INT 47 - Acorn BBC Master 512 - "OSWRCH" - WRITE CHARACTER TO CUR OUTPUT STREAM
47 - INT 47 - Western Digital WD1002-27X SuperBIOS - INT 40 CASCADE
478000 - INT 47 - SQL Base - DATABASE ENGINE API
478001 - INT 47 - SQL Base - GET VERSION NUMBER
48 - INT 48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr)
48 - INT 48 - Z100 - Slave 8259 - S100 vectored line 0
48 - INT 48 - Watstar PC Network data pointer 1
48 - INT 48 - Acorn BBC Master 512 - "OSNEWL" - SEND NEWLINE TO OUTPUT STREAM
48 - INT 48 - Western Digital WD1002-27X SuperBIOS - DRIVE DATA (NOT A VECTOR!)
48 - INT 48 U - Compaq UILIB.EXE - API
4800 - INT 48 - TI Professional PC - SPEAKER DEVICE - SOUND SPEAKER
4801 - INT 48 - TI Professional PC - SPEAKER DEVICE - CHECK SPEAKER STATUS
4802 - INT 48 - TI Professional PC - SPEAKER DEVICE - SET SPEAKER FREQUENCY
4803 - INT 48 - TI Professional PC - SPEAKER DEVICE - TURN ON SPEAKER
4804 - INT 48 - TI Professional PC - SPEAKER DEVICE - TURN OFF SPEAKER
4805 - INT 48 - TI Professional PC - SPEAKER DEVICE - DELAY
4806 - INT 48 - TI Professional PC - CALCULATE CRC
4807 - INT 48 - TI Professional PC - PRINT ROM MESSAGE
4808 - INT 48 - TI Professional PC - DISPLAY SYSTEM ERROR MESSAGE
4809 - INT 48 - TI Professional PC - GET SYSTEM CONFIGURATION DATA
480A - INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFO ADDRESS
480B - INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFORMATION
481A70 - INT 48 U - Compaq UILIB.EXE - INSTALLATION CHECK
49 - INT 49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr)
49 - INT 49 - Z100 - Slave 8259 - S100 vectored line 1
49 - INT 49 - Watstar PC Network data pointer 2
49 - INT 49 - Acorn BBC Master 512 - "OSASCI" - WRITE CHARACTER TO CUR OUTPUT STREAM
49 - INT 49 - Tandy 2000 - BOOTSTRAP LOADER
490001 - INT 49 - MAGic v1.16+ - TURN ON MAGNIFICATION
490002 - INT 49 - MAGic v1.16+ - TURN OFF MAGNIFICATION
490003 - INT 49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION
490004 - INT 49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW
490005 - INT 49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW
490006 - INT 49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN
490007 - INT 49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW
490008 - INT 49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE
4901 - INT 49 - TI Professional PC - CRT - SET CURSOR SIZE AND TYPE
4902 - INT 49 - TI Professional PC - CRT - SET CURSOR POSITION
4903 - INT 49 - TI Professional PC - CRT - GET CURSOR POSTION AND TYPE
4906 - INT 49 - TI Professional PC - CRT - SCROLL UP/COPY WINDOW
4907 - INT 49 - TI Professional PC - CRT - SCROLL DOWN/COPY WINDOW
4908 - INT 49 - TI Professional PC - CRT - GET CHARACTER AND ATTRIBUTE AT POSITION
4909 - INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH ATTRIBUTE
490A - INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH CURRENT ATTRIBUTE
490E - INT 49 - TI Professional PC - CRT - TTY OUTPUT
4910 - INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH ATTRIBUTE
4911 - INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH CURR ATTRIB
4912 - INT 49 - TI Professional PC - CRT - FILL ENTIRE SCREEN WITH ATTRIBUTE
4913 - INT 49 - TI Professional PC - CRT - CLEAR ENTIRE TEXT SCREEN AND HOME CURSOR
4914 - INT 49 - TI Professional PC - CRT - CLEAR ENTIRE GRAPHICS SCREEN
4915 - INT 49 - TI Professional PC - CRT - SET PROTECTED STATUS AREA
4916 - INT 49 - TI Professional PC - CRT - SET ATTRIBUTE LATCH
4917 - INT 49 - TI Professional PC - CRT - GET START-OF-DISPLAY POINTER
4918 - INT 49 - TI Professional PC - CRT - PRINT TTY STRING
4A - INT 4A C - SYSTEM - USER ALARM HANDLER
4A - INT 4A - Z100 - Slave 8259 - S100 vectored line 2
4A - INT 4A - Tandy 2000 - PRINT SCREEN
4A - INT 4A - Acorn BBC Master 512 - "OSWORD" - MISC FUNCTIONS USING CONTROL BLOCK
4A00 - INT 4A - TI Professional PC - KEYBOARD - GET KEYPRESS
4A01 - INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD STATUS
4A02 - INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD MODE
4A03 - INT 4A - TI Professional PC - KEYBOARD - FLUSH KEYBOARD BUFFER
4A04 - INT 4A - TI Professional PC - KEYBOARD - SEND COMMAND TO KEYBOARD
4A05 - INT 4A - TI Professional PC - KEYBOARD - INSERT CHARACTER INTO KEYBOARD BUFFER
4B - INT 4B - Z100 - Slave 8259 - S100 vectored line 3
4B - INT 4B - Common Access Method SCSI interface (draft revision 1.9)
4B - INT 4B - Tandy 2000 - EQUIPMENT DETERMINATION
4B - INT 4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS
4B00 - INT 4B - TI Professional PC - PARALLEL PORT - OUTPUT CHARACTER
4B01 - INT 4B - TI Professional PC - PARALLEL PORT - INITIALIZE PRINTER
4B02 - INT 4B - TI Professional PC - PARALLEL PORT - GET PRINTER STATUS
4B80 - INT 4B - IBM SCSI interface
4B8102DX0000 - INT 4B - Virtual DMA Specification (VDS) - GET VERSION
4B8103 - INT 4B - Virtual DMA Specification - LOCK DMA REGION
4B8104 - INT 4B - Virtual DMA Specification - UNLOCK DMA REGION
4B8105 - INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
4B8106 - INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
4B8107 - INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER
4B8108 - INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER
4B8109DX0000 - INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
4B810ADX0000 - INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
4B810B - INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION
4B810C - INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION
4B810D - INT 4B - QEMM-386 - BUG
4C - INT 4C - Z100 - Slave 8259 - S100 vectored line 4
4C - INT 4C - TI Professional PC - CLOCK/ANALOG INTERFACE
4C - INT 4C - Tandy 2000 - GET MEMORY SIZE
4C - INT 4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE
4D - INT 4D - Z100 - Slave 8259 - S100 vectored line 5
4D - INT 4D - IBM - M-Audio Adapter SUPPORT
4D00 - INT 4D - TI Professional PC - DISK - RESET DISK SYSTEM
4D01 - INT 4D - TI Professional PC - DISK - GET STATUS OF LAST OPERATION
4D02 - INT 4D - TI Professional PC - DISK - READ SECTOR(S) INTO MEMORY
4D03 - INT 4D - TI Professional PC - DISK - WRITE SECTOR(S) FROM MEMORY
4D04 - INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR CRC(S)
4D05 - INT 4D - TI Professional PC - DISK - NOP
4D06 - INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR(S)
4D07 - INT 4D - TI Professional PC - DISK - GET RETRY STATUS OF LAST OPERATION
4D08 - INT 4D - TI Professional PC - DISK - SET STANDARD DEVICE INTERFACE TABLE
4D09 - INT 4D - TI Professional PC - DISK - SET DEVICE INTERFACE TABLE ADDRESS
4D0A - INT 4D - TI Professional PC - DISK - GET DEVICE INTERFACE TABLE ADDRESS
4D0B - INT 4D - TI Professional PC - DISK - TURN OFF ALL DRIVES
4E - INT 4E - Z100 - Slave 8259 - S100 vectored line 6
4E00 - INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS DATE
4E01 - INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS TIME
4E02 - INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - GET BIOS DATA AND TIME
4F - INT 4F - Z100 - Slave 8259 - S100 vectored line 7
4F - INT 4F - TI Professional PC - SYSTEM CONFIGURATION CALL
4F0081 - INT 4F - ATA Software Programming Interface (ATASPI) - SEND ATASPI REQUEST
4F0082CX8765 - INT 4F - ATA Software Programming Interface (ATASPI) - INSTALLATION CHECK
4F8100 - INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM
4F8200CX8765 - INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK
50 - INT 50 - TIL Xpert AIM (X.25)
50 - INT 50 - IRQ0 relocated by DESQview
50 - INT 50 - IRQ0 relocated by IBM 3278 emulation control program
50 - INT 50 - IRQ0 relocated by OS/2 v1.x
50 - INT 50 - TI Professional PC - FATAL SOFTWARE ERROR TRAP
500000 - INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
500001 - INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
500002 - INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
500002 - INT 50 - PC Thuis Organizer Shell - PLOT TEXT
500003 - INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
500003 - INT 50 - PC Thuis Organizer Shell - WRITE FILE
500004 - INT 50 - Vanderaart TEXT WINDOWS - GET KEY
500004 - INT 50 - PC Thuis Organizer Shell - READ FILE
500005 - INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
500005 - INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
500006 - INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
500006 - INT 50 - PC Thuis Organizer Shell - ALERT USER
500007 - INT 50 - PC Thuis Organizer Shell - DO LINE
500008 - INT 50 - PC Thuis Organizer Shell - DO MENU
500009 - INT 50 - PC Thuis Organizer Shell - MESSAGE ON
50000A - INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
50000B - INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
50000C - INT 50 - PC Thuis Organizer Shell - DO REQUEST
50000D - INT 50 - PC Thuis Organizer Shell - EDIT LINE
50000E - INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
50000F - INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
500010 - INT 50 - PC Thuis Organizer Shell - TRACE MENU
500011 - INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
500012 - INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
500013 - INT 50 - PC Thuis Organizer Shell - GET KEY
500014 - INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
500015 - INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
Section -
51 - INT 51 - IRQ1 relocated by DESQview
51 - INT 51 - IRQ1 relocated by IBM 3278 emulation control program
51 - INT 51 - IRQ1 relocated by OS/2 v1.x
51 - INT 51 - TI Professional PC - RESTART TIMING EVENT
51 - INT 51 - Tandy 2000 - KEYBOARD SERVICES
52 - INT 52 - IRQ2 relocated by DESQview
52 - INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x
52 - INT 52 - TI Professional PC - CANCEL TIMING EVENT
52 - INT 52 - Tandy 2000 - VIDEO SERVICES
53 - INT 53 - IRQ3 relocated by DESQview
53 - INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x
53 - INT 53 - TI Professional PC - SVC INTERFACE
53 - INT 53 - Tandy 2000 - SERIAL COMMUNICATIONS
53 - INT 53 - WEB??? - API
54 - INT 54 - IRQ4 relocated by DESQview
54 - INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x
54 - INT 54 - TI Professional PC - ACTIVATE TASK SUBROUTINE
54 - INT 54 - Tandy 2000 - LINE PRINTER
545400 - INT 54 U - Toshiba PCMCIA2 - INSTALLATION CHECK
55 - INT 55 - IRQ5 relocated by DESQview
55 - INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x
55 - INT 55 - TI Professional PC - RESERVED FOR FUTURE USE
55 - INT 55 - Tandy 2000 - SYSTEM CLOCK
56 - INT 56 - IRQ6 relocated by DESQview
56 - INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x
56 - INT 56 - TI Professional PC - RESERVED FOR FUTURE USE
56 - INT 56 - Tandy 2000 - FLOPPY DISK SERVICES
57 - INT 57 - IRQ7 relocated by DESQview
57 - INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x
57 - INT 57 C - TI Professional PC - CRT MAPPING HOOK
58 - INT 58 - IRQ8 relocated by DESQview 2.26+
58 - INT 58 - IRQ0 relocated by DoubleDOS
58 - INT 58 C - TI Professional PC - SYSTEM TIMER 25ms HOOK
59 - INT 59 - IRQ9 relocated by DESQview 2.26+
59 - INT 59 - IRQ1 relocated by DoubleDOS
59 - INT 59 - TI Professional PC - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR
59 - INT 59 - GSS Computer Graphics Interface (GSS*CGI)
5A - INT 5A - IRQ10 relocated by DESQview 2.26+
5A - INT 5A - IRQ2 relocated by DoubleDOS
5A - INT 5A - PC Cluster adapter BIOS entry address
5A - INT 5A - TI Professional PC - SYSTEM TIMER 100ms HOOK
5B - INT 5B - IRQ11 relocated by DESQview 2.26+
5B - INT 5B - IRQ3 relocated by DoubleDOS
5B - INT 5B - PC cluster adapter - RELOCATED INT 19
5B - INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
5B - INT 5B - Microsoft Network Transport Layer Interface
5B - INT 5B - used by Alloy NTNX
5B - INT 5B - ISOLAN Multi Protocol Software
5B - INT 5B C - TI Professional PC - KEYBOARD MAPPING HOOK
5B5254DL04 - INT 5B U - SitBack v3.02R - GET ???
5B8485DL70 - INT 5B U - SitBack v3.02R - INSTALLATION CHECK
5B8485DL71 - INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS
5B8485DL72 - INT 5B U - SitBack v3.02R - CLEAR ??? FLAG
5B8485DL73 - INT 5B U - SitBack v3.02R - ???
5B8485DL74 - INT 5B U - SitBack v3.02R - ???
5B8485DL75 - INT 5B U - SitBack v3.02R - ???
5B8485DL76 - INT 5B U - SitBack v3.02R - ???
5B8485DL77 - INT 5B U - SitBack v3.02R - SET ??? FLAG
5B8485DL78 - INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT
5B8485DL79 - INT 5B U - SitBack v3.02R - GET DTA
5B8485DL7A - INT 5B U - SitBack v3.02R - TOGGLE ???
5C - INT 5C - NetBIOS INTERFACE
5C - INT 5C - IRQ12 relocated by DESQview 2.26+
5C - INT 5C - IRQ4 relocated by DoubleDOS
5C - INT 5C - TOPS INTERFACE
5C - INT 5C - ATALK.SYS - AppleTalk INTERFACE
5C - INT 5C - IBM 802.2 INTERFACE (LLC)
5C - INT 5C - $25 LAN - INSTALLATION CHECK
5C0100 - INT 5C C - TI Professional PC - KEYBOARD PAUSE KEY VECTOR
5C04 - INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
5D - INT 5D - IRQ13 relocated by DESQview 2.26+
5D - INT 5D - IRQ5 relocated by DoubleDOS
5D - INT 5D C - TI Professional PC - KEYBOARD BREAK KEY VECTOR
5E - INT 5E - IRQ14 relocated by DESQview 2.26+
5E - INT 5E - IRQ6 relocated by DoubleDOS
5E - INT 5E C - TI Professional PC - KEYBOARD PRINT-SCREEN VECTOR
5F - INT 5F - IRQ15 relocated by DESQview 2.26+
5F - INT 5F - IRQ7 relocated by DoubleDOS
5F - INT 5F C - TI Professional PC - KEYBOARD QUEUEING VECTOR
5F00 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET VIDEO MODE
5F01 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET FILL MASK
5F02 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFO
5F03 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
5F04 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET CLIP REGION
5F05 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
5F06 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW LINE
5F07 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PLOT POINT
5F08 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - MOVE PEN
5F09 - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET PEN COLOR
5F0A - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
5F0B - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LINE TYPE
5F0C - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET PIXEL
5F0D - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET IMAGE
5F0E - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PUT IMAGE
5F0F - INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - WRITE TEXT
5F10 - INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - GET FONT POINTER
5F11 - INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - SET CURRENT FONT
60 - INT 60 - reserved for user interrupt
60 - INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
60 - INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
60 - INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
60 - INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
60 - INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
60 - INT 60 - ATI M64VBE.COM - INSTALLATION SIGNATURE
60 - INT 60 U - Buffit v3.0 - (NOT A VECTOR!) - INSTALLATION CHECK
60 - INT 60 - PC-IPC API
60 - INT 60 - Tangram Arbiter - API
60 - INT 60 - Excelan LAN Workplace for DOS 3.5 - API
60 - INT 60 - TCPDRV 2.01 - TCP/IP Application Binary Interface (ABI)
60 - INT 60 U - INTRSPY/CMDSPY v1.0 only - API
60 - INT 60 U - PC/370 v4.2 - ???
60 - INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
60 - INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
60 - INT 60 u - 3270-PC CONTROL PROGRAM - ???
60----DI0100 - INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
60----DI0101 - INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
60----DI0102 - INT 60 u - HP 95LX System Manager - "SH_STATUS"
60----DI0104 - INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
60----DI0105 - INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
60----DI0106 - INT 60 u - HP 95LX System Manager - YIELD CPU
60----DI0107 - INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
60----DI0200 - INT 60 u - HP 95LX System Manager - SETUP MENU
60----DI0201 - INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
60----DI0202 - INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
60----DI0203 - INT 60 u - HP 95LX System Manager - REMOVE MENU
60----DI0204 - INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
60----DI0205 - INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
60----DI0206 - INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
60----DI0207 - INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
60----DI0208 - INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
60----DI0300 - INT 60 u - HP 95LX System Manager - DISPLAY STRING
60----DI0301 - INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
60----DI0302 - INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
60----DI0303 - INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
60----DI0304 - INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
60----DI0305 - INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
60----DI0307 - INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
60----DI0308 - INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
60----DI0309 - INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
60----DI030A - INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
60----DI030B - INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
60----DI0400 - INT 60 u - HP 95LX System Manager - "EDIT_INIT"
60----DI0401 - INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
60----DI0402 - INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
60----DI0403 - INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
60----DI0404 - INT 60 u - HP 95LX System Manager - "MDIT_INI"
60----DI0405 - INT 60 u - HP 95LX System Manager - "MDIT_DIS"
60----DI0406 - INT 60 u - HP 95LX System Manager - "MDIT_KEY"
60----DI0407 - INT 60 u - HP 95LX System Manager - "MDIT_FIL"
60----DI0408 - INT 60 u - HP 95LX System Manager - "MDIT_MARK"
60----DI0409 - INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
60----DI040A - INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
60----DI040B - INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
60----DI0500 - INT 60 u - HP 95LX System Manager - OPEN FILE
60----DI0501 - INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
60----DI0502 - INT 60 u - HP 95LX System Manager - CREATE NEW FILE
60----DI0503 - INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
60----DI0504 - INT 60 u - HP 95LX System Manager - READ FROM FILE
60----DI0505 - INT 60 - HP 95LX System Manager - WRITE TO FILE
60----DI0506 - INT 60 u - HP 95LX System Manager - SET FILE POSITION
60----DI0507 - INT 60 u - HP 95LX System Manager - GET FILE POSITION
60----DI0508 - INT 60 u - HP 95LX System Manager - CLOSE FILE
60----DI0509 - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
60----DI050A - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
60----DI050B - INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
60----DI050C - INT 60 u - HP 95LX System Manager - DELETE FILE
60----DI050D - INT 60 u - HP 95LX System Manager - RENAME FILE
60----DI050E - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
60----DI050F - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
60----DI0510 - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
60----DI0511 - INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
60----DI0512 - INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
60----DI0513 - INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
60----DI0514 - INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
60----DI0515 - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
60----DI0516 - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
60----DI0517 - INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
60----DI0518 - INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
60----DI0519 - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
60----DI051A - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
60----DI051B - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
60----DI051C - INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
60----DI0600 - INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
60----DI0601 - INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
60----DI0602 - INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
60----DI0603 - INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
60----DI0604 - INT 60 u - HP 95LX System Manager - "M_SPAWN"
60----DI0605 - INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
60----DI0606 - INT 60 u - HP 95LX System Manager - "M_REBOOT"
60----DI0607 - INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
60----DI0608 - INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
60----DI0609 - INT 60 u - HP 95LX System Manager - "M_APP_NAME"
60----DI0700 - INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
60----DI0701 - INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
60----DI0702 - INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
60----DI0704 - INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
60----DI0705 - INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
60----DI0706 - INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
60----DI0707 - INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
60----DI0708 - INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
60----DI0709 - INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
60----DI0800 - INT 60 u - HP 95LX System Manager - BEEP
60----DI0801 - INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
60----DI0802 - INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
60----DI0803 - INT 60 u - HP 95LX System Manager - TURN OFF SOUND
60----DI0900 - INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
60----DI0902 - INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
60----DI0903 - INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
60----DI0904 - INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
60----DI0B00 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
60----DI0B01 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
60----DI0B02 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
60----DI0B03 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
60----DI0B04 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
60----DI0B05 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
60----DI0B06 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
60----DI0B07 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
60----DI0B08 - INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
60----DI0B09 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
60----DI0B0A - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
60----DI0B0B - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
60----DI0B0C - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
60----DI0B0D - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
60----DI0B0E - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
60----DI0B0F - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
60----DI0B10 - INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
60----DI0B11 - INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
60----DI0B12 - INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
60----DI0B13 - INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
60----DI0B14 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
60----DI0B15 - INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
60----DI0C00 - INT 60 u - HP 95LX System Manager - OPEN PRINTER
60----DI0C01 - INT 60 u - HP 95LX System Manager - CLOSE PRINTER
60----DI0C02 - INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
60----DI0C03 - INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
60----DI0C04 - INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
60----DI0C05 - INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
60----DI0E00 - INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
60----DI0E01 - INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
60----DI0E02 - INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
60----DI0E03 - INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
60----DI0E04 - INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
60----DI0E05 - INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
60----DI0E06 - INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
60----DI0E07 - INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
60----DI0E08 - INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
60----DI0E09 - INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
60----DI0E0A - INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
60----DI0E0B - INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
60----DI0E0C - INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
60----DI0E0D - INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
60----DI0E0E - INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
60----DI0E0F - INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
60----DI0E10 - INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
60----DI0E11 - INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
60----DI0E12 - INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
60----DI0E13 - INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
60----DI0E14 - INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
60----DI0E15 - INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
60----DI0E16 - INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
60----DI0E17 - INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
60----DI0F00 - INT 60 u - HP 95LX System Manager - "M_ERRMSG"
60----DI0F01 - INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
60----DI0F02 - INT 60 u - HP 95LX System Manager - "SHOWNAME"
60----DI0F03 - INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
60----DI0F04 - INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
60----DI0F05 - INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
60----DI0F06 - INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
60----DI0F07 - INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
60----DI0F08 - INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
60----DI0F09 - INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
60----DI0F0A - INT 60 u - HP 95LX System Manager - DISABLE MACROS
60----DI0F0B - INT 60 u - HP 95LX System Manager - ENABLE MACROS
60----DI0F0C - INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
60----DI0F0D - INT 60 u - HP 95LX System Manager - "M_FORM_FT"
60----DI0F0E - INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
60----DI1005 - INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
60----DI1200 - INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
60----DI1201 - INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
60----DI1202 - INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
60----DI1203 - INT 60 u - HP 95LX System Manager - "INIT_SYSMGR_RSRCS"
60----DI1300 - INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
60----DI1301 - INT 60 u - HP 95LX System Manager - DISPLAY HELP
60----DI1302 - INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
60----DI1303 - INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
60----DI1400 - INT 60 u - HP 95LX System Manager - "M_ColInit"
60----DI1401 - INT 60 u - HP 95LX System Manager - "M_ColCpStr"
60----DI1402 - INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
60----DI1403 - INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
60----DI1404 - INT 60 u - HP 95LX System Manager - "M_ColToLower"
60----DI1405 - INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
60----DI1406 - INT 60 u - HP 95LX System Manager - "M_ColToUpper"
60----DI1500 - INT 60 u - HP 95LX System Manager - "GrDispInit"
60----DI1501 - INT 60 u - HP 95LX System Manager - "GrDispClear"
60----DI1502 - INT 60 u - HP 95LX System Manager - "GrDispDot"
60----DI1503 - INT 60 u - HP 95LX System Manager - "GrDispDraw"
60----DI1504 - INT 60 u - HP 95LX System Manager - "GrDispFill"
60----DI1505 - INT 60 u - HP 95LX System Manager - "GrDispRead"
60----DI1506 - INT 60 u - HP 95LX System Manager - "GrDispString"
60----DI1507 - INT 60 u - HP 95LX System Manager - "GrDispPan"
60----DI1508 - INT 60 u - HP 95LX System Manager - "GrDispZoom"
60----DI1509 - INT 60 u - HP 95LX System Manager - "GrDispSave"
60----DI150A - INT 60 u - HP 95LX System Manager - "GrDispRestore"
60----DI150B - INT 60 u - HP 95LX System Manager - "GrDispCorner"
60----DI1604 - INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
6000 - INT 60 - SYS_PROF.EXE - PROFILER STATUS
6000 - INT 60 - MDEBUG - GET STATUS
600000 - INT 60 - RIFS - CLIENT - INSTALLATION CHECK
600001 - INT 60 - RIFS - CLIENT - UNINSTALL
600002 - INT 60 - RIFS - CLIENT - REMAP DRIVE
600003 - INT 60 - RIFS - CLIENT - UNMAP DRIVE
600004 - INT 60 - RIFS - CLIENT - UNMAP ALL DRIVES
600005 - INT 60 - RIFS - CLIENT - GET TRANSLATION TABLE
600006 - INT 60 - RIFS - CLIENT - GET STATISTICS TABLE
600007 - INT 60 - RIFS - CLIENT - GET PORT TRANSLATION TABLE
600008 - INT 60 - RIFS - SERVER - INSTALLATION CHECK
600009 - INT 60 - RIFS - SERVER - UNINSTALL
60000A - INT 60 - RIFS - SERVER - GET STATISTICS TABLE
60000B - INT 60 - RIFS - SERVER - RESET
6001 - INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
6001 - INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
6001FF - INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
6002 - INT 60 - MDEBUG - SET STATUS
6002 - INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
6002 - INT 60 - SYS_PROF.EXE - TURN PROFILING ON
6003 - INT 60 - MDEBUG - POP UP
6003 - INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
6003 - INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
6004 - INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
6004 - INT 60 - MDEBUG - POP UP
6004 - INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
6005 - INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
6005 - INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
6006 - INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
6006 - INT 60 - MDEBUG - GET PASSWORD STATUS
6007 - INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
6007 - INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
6008 - INT 60 - MDEBUG - UNUSED
600A - INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
600B - INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
600C - INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
600C - INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
600D - INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
6011 - INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
6012 - INT 60 - 3com, 10NET, Banyan VINES - LOCK
6013 - INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
6014 - INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
6015 - INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
6016 - INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
6017 - INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
6018 - INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
6019 - INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
601A - INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
601B - INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
601C - INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
60899B - INT 60 U - Agfa TTSR.EXE - API
60AD - INT 60 - AccessDOS - API
60E9 - INT 60 - FTP Packet Driver - Crynwr Software - AUTOSELECT TRANSCEIVER
61 - INT 61 - reserved for user interrupt
61 - INT 61 - Atari Portfolio - EXTENDED BIOS
61 - INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
61 - INT 61 - HP 95LX System Manager - LOAD DS
61 - INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
61 - INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
61 - INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
61 - INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
61 - INT 61 - PC-Magazin - PAGE, SWAPx
61 - INT 61 - TCPOpen kernel - API
61 - INT 61 - XFS v1.76 - XFSKRNL.EXE - API
61 - INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
6100 - INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
6100 - INT 61 - Banyan VINES - CALL A SERVICE
6100 - INT 61 - Atari Portfolio - SERVICE INITIALIZATION
610000 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
610001DS0001 - INT 61 - Banyan VINES - INTERNAL VINES SOCKET API (NEAR DATA)
610001SF0001 - INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
610001SF0002 - INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
610001SF0003 - INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
610001SF0004 - INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
610001SF0005 - INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
610001SF0008 - INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
610001SF000B - INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
610001 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
610002 - INT 61 - Banyan VINES - 3270 INTERFACE
610002 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
610003SF00 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
610003SF01 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
610003SF02 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
610003SF03 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
610003SF04 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
610003SF05 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
610003SF06 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
610003SF07 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
610003SF08 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
610003SF09 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
610003SF0A - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
610003SF0B - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
610003SF0C - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
610003SF0D - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
610003SF0E - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
610003SF0F - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
610003SF10 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
610003SF11 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
610003SF12 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
610003SF13 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
610003SF14 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
610003SF15 - INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
610003 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
610004 - INT 61 - Banyan VINES - FILE SERVICE CONTROL
610004SF0001 - INT 61 - Banyan VINES - SET DRIVE CONNECTION
610004SF0002 - INT 61 - Banyan VINES - GET DRIVE CONNECTION
610004SF0003 - INT 61 - Banyan VINES - GET NETWORK DRIVE MAP
610004SF0004 - INT 61 - Banyan VINES - SET USER NAME
610004SF0005 - INT 61 - Banyan VINES - GET USER NAME
610004SF0006 - INT 61 - Banyan VINES - TEST DRIVE CONNECTION
610004SF0007 - INT 61 - Banyan VINES - GET CONNECTION DATA STRUCTURES
610004SF0008 - INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
610004SF0009 - INT 61 - Banyan VINES - SET ??? PARAMETER
610004SF000B - INT 61 - Banyan VINES - GET ??? DRIVE PARAMETER
610004SF000C - INT 61 - Banyan VINES - LOGOUT FROM VINES
610004SF000E - INT 61 - Banyan VINES - GET ACCESS RIGHTS LIST (ARL)
610004SF000F - INT 61 - Banyan VINES - SET ACCESS RIGHTS LIST (ARL)
610004SF0010 - INT 61 - Banyan VINES - FILE SERVICE CONTROL - ???
610004SF0013 - INT 61 - Banyan VINES - GET VALUE OF GLOBAL VARIABLE
610004SF0014 - INT 61 - Banyan VINES - SET VALUE OF GLOBAL VARIABLE
610004SF0016 - INT 61 - Banyan VINES - GET NUMBER OF OPEN FILES ON REMOTE DRIVE
610004SF0018 - INT 61 - Banyan VINES - SET UNIDENTIFIED INTERNAL FLAG
610004SF001B - INT 61 - Banyan VINES - UNIDENTIFIED DRIVE SPECIFIC FUNCTION
610004SF001C - INT 61 - Banyan VINES - UNIDENTIFIED FUNCTION
610004 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
610005 - INT 61 - Banyan VINES - PRINT SERVICE CONTROL
610005 - INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
610006 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
610006 - INT 61 - Banyan VINES - GET ADDRESS OF GLOBAL VARIABLE
610007 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
610007BX0000 - INT 61 - Banyan VINES - RECONNECT TO STREETTALK
610007BX0001 - INT 61 - Banyan VINES - GET MM PORT FOR A SERVICE
610007BX0002 - INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
610007BX0003 - INT 61 - Banyan VINES - FIND A SERVICE
610007BX0004 - INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
610007BX0005 - INT 61 - Banyan VINES - GET USER NAME
610007BX0006 - INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
610007BX0007 - INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
610007BX0008 - INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
610007BX0009 - INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING (SELECTED PORT)
610007BX000A - INT 61 - Banyan VINES - internal, OS/2 only - GET MANY PORTS FOR SERVICE
610008 - INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
610008BX0000 - INT 61 - Banyan VINES - TALKPORT SERVICE - GET HANDLER ADDRESS
610008BX0001 - INT 61 - Banyan VINES - TALKPORT SERVICE - SET HANDLER ADDRESS
610008BX0002 - INT 61 - Banyan VINES - TALKPORT SERVICE - POST MESSAGE ON LOCAL DISPLAY
610008BX0003 - INT 61 - Banyan VINES - TALKPORT SERVICE - INTERCEPT VINES 25th-LINE MESSAGES
610009 - INT 61 - Banyan VINES - NETBIOS CLIENT SERVICE
61000A - INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
61000B - INT 61 - Banyan VINES - SEMAPHORE SERVICE
61000C - INT 61 - Banyan VINES - 3270 KEYBOARD HANDLER
61000D - INT 61 - Banyan VINES - T3270 SERVICE FUNCTION
61000E - INT 61 - Banyan VINES - ENHANCED 3270 SERVICE
61000F - INT 61 - Banyan VINES - VINES SOCKET API (FAR DATA)
61000FSF0001 - INT 61 - Banyan VINES - OPEN SOCKET
61000FSF0002 - INT 61 - Banyan VINES - SEND MESSAGE ON A SOCKET
61000FSF0004 - INT 61 - Banyan VINES - CLOSE SOCKET
61000FSF0008 - INT 61 - Banyan VINES - GET PROCESS HANDLE
610010 - INT 61 - Banyan VINES - INTERFACE TO NBNS
6101 - INT 61 - Banyan VINES - CHECK SERVICE
6101--BX0000 - INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
6102 - INT 61 - Banyan VINES - GET REVISION NUMBER
6102--BX0000 - INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
6103 - INT 61 - Banyan VINES - INSTALL SERVICE HANDLER
6104 - INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE
6105 - INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
6105 - INT 61 - Banyan VINES - READ PCCONFIG BYTES
6106 - INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
6106 - INT 61 - Banyan VINES - GET PCCONFIG BASE ADDRESS
6107 - INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
6107 - INT 61 - Banyan VINES - GET VINES REVISION NUMBER (LONG)
6107 - INT 61 - Atari Portfolio - FORMAT CREDIT CARD MEMORY
6108 - INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
6108 - INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE (LONG)
6108 - INT 61 - Atari Portfolio - GET SIZE OF INTERNAL DISK
6109 - INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
6109 - INT 61 - Banyan VINES - GET VALUE OF AN OS/2 BACKEND VARIABLE
6109 - INT 61 - Atari Portfolio - FORMAT INTERNAL DISK
610A - INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
610A - INT 61 - Banyan VINES - SET VALUE OF AN OS/2 BACKEND VARIABLE
610B - INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
610B - INT 61 - Banyan VINES - SET PCCONFIG IN BACKEND
610B - INT 61 - Atari Portfolio - DETERMINE CCM VALIDITY
610C - INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
610D - INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
610D - INT 61 - Atari Portfolio - GET SCREEN SIZE
610E - INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
610E - INT 61 - Atari Portfolio - GET/SET SCREEN MODE
610F - INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
610F - INT 61 - Atari Portfolio - GET/SET CURSOR MODE
6110 - INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
6110 - INT 61 - Atari Portfolio - GET/SET VIRTUAL SCREEN POSITION
6111 - INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
6111 - INT 61 - Atari Portfolio - MOVE VIRTUAL SCREEN ORIGIN
6112 - INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
6112 - INT 61 - Atari Portfolio - SCREEN REFRESH
6113 - INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
6114 - INT 61 Ou - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
6115 - INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
6115 - INT 61 - Atari Portfolio - SOUND GENERATION
6116 - INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
6116 - INT 61 - Atari Portfolio - MELODY TONE GENERATOR
6117 - INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
6117 - INT 61 - Atari Portfolio - DIAL NUMBER
6118 - INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
6118 - INT 61 - Atari Portfolio - MUTE STATES
6119 - INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
6119 - INT 61 - Atari Portfolio - GET SERIAL PORT PARAMETERS
611A - INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
611A - INT 61 - Atari Portfolio - GET PERIPHERAL ID BYTE
611B - INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
611B - INT 61 - Atari Portfolio - SET PERIPHERAL ID BYTE
611C - INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
611C - INT 61 - Atari Portfolio - PRESET/GET PERIPHERAL DATA
611D - INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
611E - INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
611E - INT 61 - Atari Portfolio - GET/SET CLOCK TICK SPEED
611F - INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
611F - INT 61 - Atari Portfolio - GET KEY/NMI-INVOKED SCREEN REFRESH
6120 - INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
6120 - INT 61 - Atari Portfolio - GET/SET INT 09 REVECTORING
6121 - INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
6122 - INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
6123 - INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
6124 - INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
6124 - INT 61 - Atari Portfolio - GET/SET ROM/CCM SPACE STATE
6125 - INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
6126 - INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
6126 - INT 61 - Atari Portfolio - GET/SET POWER CONTROL
6127 - INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
6128 - INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
6128 - INT 61 - Atari Portfolio - GET/SET TEXT/KEYBOARD LANGUAGE
6129 - INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
612A - INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
612B - INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
612C - INT 61 - Atari Portfolio - GET VERSION
612D - INT 61 - Atari Portfolio - TURN SYSTEM OFF
612E - INT 61 - Atari Portfolio - ENABLE/DISABLE SYSTEM STATUS LINE
6130 - INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
6130 - INT 61 - Atari Portfolio - FILE TRANSFER SERVICES
61 - INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
6132 - INT 61 U - PC/TCP kernel v2.3 - GET ???
6134 - INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
6150 - INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
6151 - INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
6152 - INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
6153 - INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
6154 - INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
6155 - INT 61 U - PC/TCP kernel v2.3 - ???
6156 - INT 61 U - PC/TCP kernel v2.3 - ???
6157 - INT 61 U - PC/TCP kernel v2.3 - ???
6158 - INT 61 U - PC/TCP kernel v2.3 - ???
6159 - INT 61 U - PC/TCP kernel v2.3 - ???
615A - INT 61 U - PC/TCP kernel v2.3 - ???
615B - INT 61 U - PC/TCP kernel v2.3 - ???
615C - INT 61 U - PC/TCP kernel v2.3 - ???
615D - INT 61 U - PC/TCP kernel v2.3 - ???
615E - INT 61 U - PC/TCP kernel v2.3 - ???
615F - INT 61 U - PC/TCP kernel v2.3 - ???
Section -
62 - INT 62 - reserved for user interrupt
62 - INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
62 - INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
62 - INT 62 - HP 95LX - USED BY CALCULATOR
62 - INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
62 - INT 62 - MPAUSE - ???
62 - INT 62 - XFS v1.76 - FILTERED PACKET DRIVER API
62 - INT 62 - PC-DRAFT - PRIMARY DISPLAY DRIVER
6200 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET PHYSICAL HARDWARE ADDRESS
620000 - INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
620001 - INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONV)
620002 - INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
620003 - INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
620004 - INT 62 u - FGDRIVER 1.10,3.03+ - "FG_AUTOMODE" - GET VIDEO MODE W/MOST FEATURES
620005 - INT 62 u - FGDRIVER v3.03+ - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
620006 - INT 62 u - FGDRIVER v3.03+ - "FG_BOX" - DRAW UNFILLED RECTANGLE
620007 - INT 62 u - FGDRIVER v3.03+ - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
620008 - INT 62 u - FGDRIVER v3.03+ - "FG_BOXX" - XOR HOLLOW RECTANGLE
620009 - INT 62 u - FGDRIVER v3.03+ - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
62000A - INT 62 u - FGDRIVER v3.03+ - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
62000B - INT 62 u - FGDRIVER v3.03+ - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
62000C - INT 62 u - FGDRIVER v3.03+ - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
62000D - INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
62000E - INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLEF" - DRAW FILLED CIRCLE
62000F - INT 62 u - FGDRIVER v4.02 - "FG_CLIPMAP" - DISPLAY CLIPPED IMAGE (MODE-INDEP)
620010 - INT 62 u - FGDRIVER v4.02 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
620011 - INT 62 u - FGDRIVER v4.02 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
620012 - INT 62 u - FGDRIVER v4.02 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
620013 - INT 62 u - FGDRIVER v4.02 - "FG_COLORS" - GET SIMULTANEOUSLY-AVAILABLE COLORS
620014 - INT 62 u - FGDRIVER v4.02 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
620015 - INT 62 u - FGDRIVER v4.02 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
620016 - INT 62 u - FGDRIVER v4.02 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
620017 - INT 62 u - FGDRIVER v4.02 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
620018 - INT 62 u - FGDRIVER v4.02 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
620019 - INT 62 u - FGDRIVER v4.02 - "FG_DEFPAGES" - DEF SRC/DEST PAGES FOR BLOCK XFERS
62001A - INT 62 u - FGDRIVER v4.02 - "FG_DISPFILE" - DISPLAY STORED IMAGE
62001B - INT 62 u - FGDRIVER v4.02 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
62001C - INT 62 u - FGDRIVER v4.02 - "FG_DISPLAYP" - DISPLAY IMAGE (PACKED PIXEL RUNS)
62001D - INT 62 u - FGDRIVER v4.02 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
62001E - INT 62 u - FGDRIVER v4.02 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
62001F - INT 62 u - FGDRIVER v4.02 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
620020 - INT 62 u - FGDRIVER v4.02 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
620021 - INT 62 u - FGDRIVER v4.02 - "FG_DRAWRELX" - XOR SOLID LINE TO RELATIVE POSITION
620022 - INT 62 u - FGDRIVER v4.02 - "FG_DRAWX" - XOR SOLID LINE TO ABSOLUTE POSITION
620023 - INT 62 u - FGDRIVER v4.02 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
620024 - INT 62 u - FGDRIVER v4.02 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
620025 - INT 62 u - FGDRIVER v4.02 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
620026 - INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
620027 - INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSEF" - DRAW FILLED ELLIPSE IN SCREEN SPACE
620028 - INT 62 u - FGDRIVER v4.02 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
620029 - INT 62 u - FGDRIVER v4.02 - "FG_FADEIN" - FADE IN HIDDEN PAGE
62002A - INT 62 u - FGDRIVER v4.02 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
62002B - INT 62 u - FGDRIVER v4.02 - "FG_FILLPAGE" - FILL THE ACTIVE VIDEO PAGE
62002C - INT 62 u - FGDRIVER v4.02 - "FG_FINDPAGE" - FIND AVAILABLE VIRTUAL/LOGICAL PAGE
62002D - INT 62 u - FGDRIVER v4.02 - "FG_FLICDONE" - CLOSE FLIC FILE
62002E - INT 62 u - FGDRIVER v4.02 - "FG_FLICHEAD" - READ FLI/FLC FILE HEADER
62002F - INT 62 u - FGDRIVER v4.02 - "FG_FLICMODE" - GET OPTIMAL VIDEO MODE FOR FLI/FLC
620030 - INT 62 u - FGDRIVER v4.02 - "FG_FLICOPEN" - OPEN FLI/FLC FILE
620031 - INT 62 u - FGDRIVER v4.02 - "FG_FLICPLAY" - DISPLAY NEXT FRAME(S) IN FLI/FLC
620032 - INT 62 u - FGDRIVER v4.02 - "FG_FLICSIZE" - GET IMAGE SIZE
620033 - INT 62 u - FGDRIVER v4.02 - "FG_FLICSKIP" - SKIP FRAME(S) IN FLI/FLC FILE
620034 - INT 62 u - FGDRIVER v4.02 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
620035 - INT 62 u - FGDRIVER v4.02 - "FG_FLOOD" - FLOOD FILL ARBITRARY CLOSED REGION
620036 - INT 62 u - FGDRIVER v4.02 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
620037 - INT 62 u - FGDRIVER v4.02 - "FG_FONTSIZE" - SPECIFY FONT SIZE FOR TEXT OUTPUT
620038 - INT 62 u - FGDRIVER v4.02 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
620039 - INT 62 u - FGDRIVER v4.02 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
62003A - INT 62 u - FGDRIVER v4.02 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
62003B - INT 62 u - FGDRIVER v4.02 - "FG_GETBANKS" - GET SVGA READ AND WRITE BANKS
62003C - INT 62 u - FGDRIVER v4.02 - "FG_GETBLOCK" - GRAB RECTANGLE OF DISPLAY
62003D - INT 62 u - FGDRIVER v4.02 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
62003E - INT 62 u - FGDRIVER v4.02 - "FG_GETCLIP" - GET CLIPPING REGION IN SCREEN SPACE
62003F - INT 62 u - FGDRIVER v4.02 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
620040 - INT 62 u - FGDRIVER v4.02 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
620041 - INT 62 u - FGDRIVER v4.02 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
620042 - INT 62 u - FGDRIVER v4.02 - "FG_GETENTRY" - GET PAGE TYPE AND ADDRESS
620043 - INT 62 u - FGDRIVER v4.02 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
620044 - INT 62 u - FGDRIVER v4.02 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
620045 - INT 62 u - FGDRIVER v4.02 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
620046 - INT 62 u - FGDRIVER v4.02 - "FG_GETKEY" - GET NEXT KEYSTROKE
620047 - INT 62 u - FGDRIVER v4.02 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
620048 - INT 62 u - FGDRIVER v4.02 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
620049 - INT 62 u - FGDRIVER v4.02 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
62004A - INT 62 u - FGDRIVER v4.02 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
62004B - INT 62 u - FGDRIVER v4.02 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
62004C - INT 62 u - FGDRIVER v4.02 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
62004D - INT 62 u - FGDRIVER v4.02 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
62004E - INT 62 u - FGDRIVER v4.02 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
62004F - INT 62 u - FGDRIVER v4.02 - "FG_GETVIEW" - GET VIEWPORT EXTREME LIMITS
620050 - INT 62 u - FGDRIVER v4.02 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
620051 - INT 62 u - FGDRIVER v4.02 - "FG_GETXBOX" - GET WIDTH OF VERTICAL BOX LINES
620052 - INT 62 u - FGDRIVER v4.02 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
620053 - INT 62 u - FGDRIVER v4.02 - "FG_GETXJUST" - GET HORIZONTAL JUSTIFICATION
620054 - INT 62 u - FGDRIVER v4.02 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
620055 - INT 62 u - FGDRIVER v4.02 - "FG_GETYBOX" - GET WIDTH OF HORIZONTAL BOX LINES
620056 - INT 62 u - FGDRIVER v4.02 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
620057 - INT 62 u - FGDRIVER v4.02 - "FG_GETYJUST" - GET VERTICAL JUSTIFICATION
620058 - INT 62 u - FGDRIVER v4.02 - "FG_GETYPOS" - GET GRAPHICS CURSOR ROW
620059 - INT 62 u - FGDRIVER v4.02 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
62005A - INT 62 u - FGDRIVER v4.02 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
62005B - INT 62 u - FGDRIVER v4.02 - "FG_IMAGEBUF" - SPECIFY TEMPORARY IMAGE BUFFER
62005C - INT 62 u - FGDRIVER v4.02 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
62005D - INT 62 u - FGDRIVER v4.02 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
62005E - INT 62 u - FGDRIVER v4.02 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
62005F - INT 62 u - FGDRIVER v4.02 - "FG_INITPM"??? - (NOT IMPLEMENTED)
620060 - INT 62 u - FGDRIVER v1.10 only - "FG_DISPPCX" - DISPLAY PCX FILE
620060 - INT 62 u - FGDRIVER v4.02 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
620061 - INT 62 u - FGDRIVER v4.02 - "FG_INSIDE" - CHECK IF POINT INSIDE CONVEX POLYGON
620062 - INT 62 u - FGDRIVER v4.02 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
620063 - INT 62 u - FGDRIVER v4.02 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
620064 - INT 62 u - FGDRIVER v4.02 - "FG_INVERT" - INVERT ORIENTATION OF BITMAP
620065 - INT 62 u - FGDRIVER v4.02 - "FG_JUSTIFY" - SET TEXT OUTPUT JUSTIFICATION
620066 - INT 62 u - FGDRIVER v4.02 - "FG_KBINIT" - ENABLE/DISABLE LOW-LEVEL KBD HANDLER
620067 - INT 62 u - FGDRIVER v4.02 - "FG_KBLAST" - GET MOST RECENT SCANCODE PROCESSED
620068 - INT 62 u - FGDRIVER v4.02 - "FG_KBRESET" - RESET LOW-LEVEL KEYBOARD HANDLER
620069 - INT 62 u - FGDRIVER v4.02 - "FG_KBTEST" - CHECK WHETHER SPECIFIED KEY PRESSED
62006A - INT 62 u - FGDRIVER v4.02 - "FG_LOADPCX" - LOAD .PCX INTO ACTIVE VIRTUAL BUFFER
62006B - INT 62 u - FGDRIVER v4.02 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
62006C - INT 62 u - FGDRIVER v4.02 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
62006D - INT 62 u - FGDRIVER v4.02 - "FG_MAKEPPR" - CREATE PACKED PIXEL RUN FILE
62006E - INT 62 u - FGDRIVER v4.02 - "FG_MAKESPR" - CREATE STANDARD PIXEL RUN FILE
62006F - INT 62 u - FGDRIVER v4.02 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
620070 - INT 62 u - FGDRIVER v4.02 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
620071 - INT 62 u - FGDRIVER v4.02 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
620072 - INT 62 u - FGDRIVER v4.02 - "FG_MEMORY" - GET SIZE OF VIDEO MEMORY
620073 - INT 62 u - FGDRIVER v4.02 - "FG_MOUSE256" - DEFINE 256-COLOR MOUSE CURSOR
620074 - INT 62 u - FGDRIVER v4.02 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
620075 - INT 62 u - FGDRIVER v4.02 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
620076 - INT 62 u - FGDRIVER v4.02 - "FG_MOUSEFIN" - UNHOOK FASTGRAPH MOUSE HANDLER
620077 - INT 62 u - FGDRIVER v4.02 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
620078 - INT 62 u - FGDRIVER v4.02 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
620079 - INT 62 u - FGDRIVER v4.02 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
62007A - INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
62007B - INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
62007C - INT 62 u - FGDRIVER v4.02 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
62007D - INT 62 u - FGDRIVER v4.02 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
62007E - INT 62 u - FGDRIVER v4.02 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
62007F - INT 62 u - FGDRIVER v4.02 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
620080 - INT 62 u - FGDRIVER v4.02 - "FG_MUSIC" - PLAY SERIES OF NOTES
620081 - INT 62 u - FGDRIVER v4.02 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
620082 - INT 62 u - FGDRIVER v4.02 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
620083 - INT 62 u - FGDRIVER v4.02 - "FG_PACK" - CONVERT PIXEL-PER-BYTE TO PACKED BITMAP
620084 - INT 62 u - FGDRIVER v4.02 - "FG_PAGESIZE" - GET VIDEO PAGE SIZE FOR CURR MODE
620085 - INT 62 u - FGDRIVER v4.02 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
620086 - INT 62 u - FGDRIVER v4.02 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
620087 - INT 62 u - FGDRIVER v4.02 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
620088 - INT 62 u - FGDRIVER v4.02 - "FG_PAN" - SET SCREEN ORIGIN
620089 - INT 62 u - FGDRIVER v4.02 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
62008A - INT 62 u - FGDRIVER v4.02 - "FG_PCXHEAD" - GET PCX FILE HEADER
62008B - INT 62 u - FGDRIVER v4.02 - "FG_PCXMODE" - GET OPTIMAL VIDEO MODE FOR DISPLAY
62008C - INT 62 u - FGDRIVER v4.02 - "FG_PCXPAL" - GET PALETTE STORED IN PCX FILE
62008D - INT 62 u - FGDRIVER v4.02 - "FG_PCXRANGE" - GET EXTENT OF PCX IMAGE
62008E - INT 62 u - FGDRIVER v4.02 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
62008F - INT 62 u - FGDRIVER v4.02 - "FG_POINT" - DISPLAY A PIXEL
620090 - INT 62 u - FGDRIVER v4.02 - "FG_POINTX" - DISPLAY A PIXEL IN XOR MODE
620091 - INT 62 u - FGDRIVER v4.02 - "FG_POLYEDGE" - SPECIFY INCLUSION OF FINAL PIXELS
620092 - INT 62 u - FGDRIVER v4.02 - "FG_POLYFILL" - DRAW A FILLED CONVEX POLYGON
620093 - INT 62 u - FGDRIVER v4.02 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
620094 - INT 62 u - FGDRIVER v4.02 - "FG_POLYLINE" - DRAW AN UNFILLED POLYGON
620095 - INT 62 u - FGDRIVER v4.02 - "FG_POLYOFF" - DEFINE POLYGON DRAWING OFFSET
620096 - INT 62 u - FGDRIVER v4.02 - "FG_PRINT" - DISPLAY STRING OF HARDWARE CHARACTERS
620097 - INT 62 u - FGDRIVER v4.02 - "FG_PRINTC" - DISPLAY STRING OF HW CHARS (CLIPPED)
620098 - INT 62 u - FGDRIVER v4.02 - "FG_PUTBLOCK" - RESTORE RECTANGLE OF DISPLAY
620099 - INT 62 u - FGDRIVER v4.02 - "FG_PUTIMAGE" - DISPLAY MODE-SPECIFIC BITMAP IMAGE
62009A - INT 62 u - FGDRIVER v4.02 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
62009B - INT 62 u - FGDRIVER v4.02 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
62009C - INT 62 u - FGDRIVER v4.02 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
62009D - INT 62 u - FGDRIVER v4.02 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
62009E - INT 62 u - FGDRIVER v4.02 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
62009F - INT 62 u - FGDRIVER v4.02 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
6200A0 - INT 62 u - FGDRIVER v4.02 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
6200A1 - INT 62 u - FGDRIVER v4.02 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
6200A2 - INT 62 u - FGDRIVER v4.02 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
6200A3 - INT 62 u - FGDRIVER v4.02 - "FG_SCALE" - SCALE BITMAP
6200A4 - INT 62 u - FGDRIVER v4.02 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
6200A5 - INT 62 u - FGDRIVER v4.02 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
6200A6 - INT 62 u - FGDRIVER v4.02 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
6200A7 - INT 62 u - FGDRIVER v4.02 - "FG_SETBANKS" - SET SVGA READ AND WRITE BANKS
6200A8 - INT 62 u - FGDRIVER v4.02 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
6200A9 - INT 62 u - FGDRIVER v4.02 - "FG_SETCLIP" - SET CLIPPING REGION
6200AA - INT 62 u - FGDRIVER v4.02 - "FG_SETCOLOR" - SET CURRENT COLOR
6200AB - INT 62 u - FGDRIVER v4.02 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
6200AC - INT 62 u - FGDRIVER v4.02 - "FG_SETENTRY" - SET TYPE AND ADDRESS OF VIDEO PAGE
6200AD - INT 62 u - FGDRIVER v4.02 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
6200AE - INT 62 u - FGDRIVER v4.02 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
6200AF - INT 62 u - FGDRIVER v4.02 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
6200B0 - INT 62 u - FGDRIVER v4.02 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
6200B1 - INT 62 u - FGDRIVER v4.02 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
6200B2 - INT 62 u - FGDRIVER v4.02 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
6200B3 - INT 62 u - FGDRIVER v4.02 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
6200B4 - INT 62 u - FGDRIVER v4.02 - UNUSED
6200B5 - INT 62 u - FGDRIVER v4.02 - "FG_SETVIEW" - DEFINE VIEWPORT
6200B6 - INT 62 u - FGDRIVER v4.02 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
6200B7 - INT 62 u - FGDRIVER v4.02 - "FG_SHEAR" - SHEAR UNPACKED BITMAP
6200B8 - INT 62 u - FGDRIVER v4.02 - "FG_SHOWFLIC" - DISPLAY IMAGE FROM FLI/FLC FILE
6200B9 - INT 62 u - FGDRIVER v4.02 - "FG_SHOWPCX" - DISPLAY IMAGE FROM PCX FILE
6200BA - INT 62 u - FGDRIVER v4.02 - "FG_SHOWPPR" - DISPLAY IMAGE FROM PPR FILE
6200BB - INT 62 u - FGDRIVER v4.02 - "FG_SHOWSPR" - DISPLAY IMAGE FROM SPR FILE
6200BC - INT 62 u - FGDRIVER v4.02 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
6200BD - INT 62 u - FGDRIVER v4.02 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
6200BE - INT 62 u - FGDRIVER v4.02 - "FG_SPLIT" - ENABLE/DISABLE SPLIT SCREEN ENVIRONMNT
6200BF - INT 62 u - FGDRIVER v4.02 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
6200C0 - INT 62 u - FGDRIVER v4.02 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
6200C1 - INT 62 u - FGDRIVER v4.02 - "FG_SVGAINIT" - INITIALIZE FASTGRAPH SVGA KERNEL
6200C2 - INT 62 u - FGDRIVER v4.02 - "FG_SVGASTAT" - GET SVGA CHIPSET INFORMATION
6200C3 - INT 62 u - FGDRIVER v4.02 - "FG_SVGAVER" - GET FASTGRAPH SVGA KERNEL VERSION
6200C4 - INT 62 u - FGDRIVER v4.02 - "FG_TCDEFINE" - DEFINE TRANSPARENCY OF COLOR INDEX
6200C5 - INT 62 u - FGDRIVER v4.02 - "FG_TCMASK" - SET TRANSPARENT COLORS
6200C6 - INT 62 u - FGDRIVER v4.02 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
6200C7 - INT 62 u - FGDRIVER v4.02 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
6200C8 - INT 62 u - FGDRIVER v4.02 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
6200C9 - INT 62 u - FGDRIVER v4.02 - "FG_TEXTC" - DISPLAY STRING OF CHARACTERS (CLIPPED)
6200CA - INT 62 u - FGDRIVER v4.02 - "FG_TRANSFER" - COPY REGION
6200CB - INT 62 u - FGDRIVER v4.02 - "FG_UNPACK" - EXPAND MODE-SPECIFIC BITMAP
6200CC - INT 62 u - FGDRIVER v4.02 - "FG_VBADDR" - GET ADDRESS OF VIRTUAL BUFFER
6200CD - INT 62 u - FGDRIVER v4.02 - "FG_VBALLOC" - CREATE VIRTUAL BUFFER
6200CE - INT 62 u - FGDRIVER v4.02 - "FG_VBCLOSE" - CLOSE ACTIVE VIRTUAL BUFFER
6200CF - INT 62 u - FGDRIVER v4.02 - "FG_VBCOPY" - COPY RECT BETWEEN VIRTUAL BUFFERS
6200D0 - INT 62 u - FGDRIVER v4.02 - "FG_VBCUT" - COPY RECT FROM VIDEO TO VIRTUAL BUFFER
6200D1 - INT 62 u - FGDRIVER v4.02 - "FG_VBDEFINE" - CREATE VIRTUAL BUFFER
6200D2 - INT 62 u - FGDRIVER v4.02 - "FG_VBFREE" - RELEASE VIRTUAL BUFFER
6200D3 - INT 62 u - FGDRIVER v4.02 - "FG_VBHANDLE" - GET ACTIVE VIRTUAL BUFFER'S HANDLE
6200D4 - INT 62 u - FGDRIVER v4.02 - "FG_VBINIT" - INITIALIZE VIRTUAL BUFFER ENVIRONMENT
6200D5 - INT 62 u - FGDRIVER v4.02 - "FG_VBOPEN" - MAKE VIRTUAL BUFFER ACTIVE
6200D6 - INT 62 u - FGDRIVER v4.02 - "FG_VBPASTE" - COPY RECT FROM VIRTUAL BUF TO VIDEO
6200D7 - INT 62 u - FGDRIVER v4.02 - "FG_VBTCCOPY" - COPY RECTANGLE BETWEEN VIRTUAL BUFS
6200D8 - INT 62 u - FGDRIVER v4.02 - "FG_VBTCXFER" - COPY RECTANGLE TO ACTIVE VIDEO PAGE
6200D9 - INT 62 u - FGDRIVER v4.02 - "FG_VBUNDEF" - RELEASE HANDLE FOR VIRTUAL BUFFER
6200DA - INT 62 u - FGDRIVER v4.02 - "FG_VGASTATE" - SAVE/RESTORE VGA CONTROLLER STATE
6200DB - INT 62 u - FGDRIVER v4.02 - "FG_VOICE" - START SOUND
6200DC - INT 62 u - FGDRIVER v4.02 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
6200DD - INT 62 u - FGDRIVER v4.02 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
6200DE - INT 62 u - FGDRIVER v4.02 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
6200DF - INT 62 u - FGDRIVER v4.02 - "FG_WAITVR" - ENABLE/DISABLE VERTICAL RETRACE WAIT
6200E0 - INT 62 u - FGDRIVER v4.02 - "FG_WHERE" - GET CURRENT CURSOR POSITION
6200E1 - INT 62 u - FGDRIVER v4.02 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
6200E2 - INT 62 u - FGDRIVER v4.02 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
6200E3 - INT 62 u - FGDRIVER v4.02 - "FG_XVIEW" - CONVERT VIEWPORT COORDINATE
6200E4 - INT 62 u - FGDRIVER v4.02 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
6200E5 - INT 62 u - FGDRIVER v4.02 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
6200E6 - INT 62 u - FGDRIVER v4.02 - "FG_YVIEW" - TRANSLATE VERTICAL VIEWPORT COORDINATE
6201 - INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
6201 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
6202 - INT 62 - Cswitch - WAIT FOR SEMAPHORE
6202 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - INITIALIZE
6203 - INT 62 - Cswitch - CHECK SEMAPHORE
6203 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET REAL IP ADDRESS
6204 - INT 62 - Cswitch - TRIGGER SEMAPHORE
6204 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
6205 - INT 62 - Cswitch - SLEEP
6205 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6206 - INT 62 - Cswitch - SUSPEND
6206 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6207 - INT 62 - Cswitch - SPAWN
6207 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6208 - INT 62 - Cswitch - WAKE UP TASK
6208 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6208--CXFFFE - INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
6209 - INT 62 - Cswitch - SET PRIORITY
6209 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - HOOK TIMER INTERRUPT
620A - INT 62 - Cswitch - TEST MESSAGE QUEUE
620A - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - UNHOOK TIMER INTERRUPT
620B - INT 62 - Cswitch - SEND MESSAGE
620B - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ADD ???
620C - INT 62 - Cswitch - READ MESSAGE
620C - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - REMOVE ???
620D - INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
620D - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
620E - INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
620E - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - BEGIN CRITICAL SECTION
620F - INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
620F - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - END CRITICAL SECTION
6210 - INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
6210 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - QUERY CRITICAL SECTION
6211 - INT 62 - Cswitch - GET TCB INFORMATION
6211 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
6212 - INT 62 - Cswitch - GET TCB ADDRESS
6212 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET SOCKET NUMBER???
6213 - INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
6213 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6214 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6215 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET ???
6216 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6217 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
6218 - INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ALLOCATE AND MAP EMS FOR DRIVER
6247 - INT 62 - PC Tools v7 COMMUTE - ???
6248 - INT 62 - PC Tools v7 COMMUTE - ???
6249 - INT 62 - PC Tools v7 COMMUTE - ???
624A - INT 62 - PC Tools v7 COMMUTE - ???
624B--BX1234 - INT 62 - PC Tools v7 COMMUTE - ???
624C - INT 62 - PC Tools v7 COMMUTE - ???
626262 - INT 62 - PC Tools v7 COMMUTE - INSTALLATION CHECK
62C0 - INT 62 U - GWBTSR - API
62FE - INT 62 - BW-TCP - ETHDRV.SYS - MAP EMS PAGE FRAME
63 - INT 63 - reserved for user interrupt
63 - INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
63 - INT 63 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
63 - INT 63 - Oracle SQL Protected Mode Executive - ???
63 - INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
63 - INT 63 - Kofax KF9X00 image manipulation card interface
63 - INT 63 - DESQview/X - SOCKET API
6300 - INT 63 - HP 100LX - MAP HIGH MEMORY
6300 - INT 63 - BW-TCP - TCPIP.SYS - SET IP ADDRESS???
6301 - INT 63 - HP 100LX - SAVE/RESTORE MEMORY MAP
6301 - INT 63 - BW-TCP - TCPIP.SYS - ???
6302 - INT 63 - BW-TCP - TCPIP.SYS - ???
6303 - INT 63 - BW-TCP - TCPIP.SYS - GET IP ADDRESS
6304 - INT 63 - BW-TCP - TCPIP.SYS - ???
6305 - INT 63 - BW-TCP - TCPIP.SYS - ???
6306 - INT 63 - BW-TCP - TCPIP.SYS - ???
6307 - INT 63 - BW-TCP - TCPIP.SYS - ???
6308 - INT 63 - BW-TCP - TCPIP.SYS - SET DEFAULT ??? HANDLER
6309 - INT 63 - BW-TCP - TCPIP.SYS - INSTALL ??? HANDLERS
630A - INT 63 - BW-TCP - TCPIP.SYS - DELETE ??? HANDLERS
630B - INT 63 - BW-TCP - TCPIP.SYS - ???
630C - INT 63 - BW-TCP - TCPIP.SYS - ???
630D - INT 63 - BW-TCP - TCPIP.SYS - INSTALL DEFAULT ??? HANDLER
630E - INT 63 - BW-TCP - TCPIP.SYS - CLOSE NETWORK DESCRIPTOR
630F - INT 63 - BW-TCP - TCPIP.SYS - ???
6310 - INT 63 - BW-TCP - TCPIP.SYS - ???
6311 - INT 63 - BW-TCP - TCPIP.SYS - ???
6312 - INT 63 - BW-TCP - TCPIP.SYS - LISTEN FOR INCOMING CONNECTIONS
6313 - INT 63 - BW-TCP - TCPIP.SYS - NOP
6314 - INT 63 - BW-TCP - TCPIP.SYS - OPEN NETWORK CONNECTION
6315 - INT 63 - BW-TCP - TCPIP.SYS - ???
6316 - INT 63 - BW-TCP - TCPIP.SYS - RESET NETWORK CONNECTION
6317 - INT 63 - BW-TCP - TCPIP.SYS - ???
6318 - INT 63 - BW-TCP - TCPIP.SYS - ???
6319 - INT 63 - BW-TCP - TCPIP.SYS - WRITE TO THE NETWORK
631A - INT 63 - BW-TCP - TCPIP.SYS - READ FROM THE NETWORK
631B - INT 63 - BW-TCP - TCPIP.SYS - ???
631C - INT 63 - BW-TCP - TCPIP.SYS - ???
631D - INT 63 - BW-TCP - TCPIP.SYS - ???
631E - INT 63 - BW-TCP - TCPIP.SYS - ???
631F - INT 63 - BW-TCP - TCPIP.SYS - SET SOCKET ??? HANDLER
6320 - INT 63 - BW-TCP - TCPIP.SYS - REMOVE SOCKET ??? HANDLER
6321 - INT 63 - BW-TCP - TCPIP.SYS - ???
6322 - INT 63 - BW-TCP - TCPIP.SYS - REMOVE ??? HANDLER
6323 - INT 63 - BW-TCP - TCPIP.SYS - ???
6324 - INT 63 - BW-TCP - TCPIP.SYS - GET SOCKET
6325 - INT 63 - BW-TCP - TCPIP.SYS - GET INTERNET ADDRESS
6326 - INT 63 - BW-TCP - TCPIP.SYS - SET INTERNET ADDRESS???
6327 - INT 63 - BW-TCP - TCPIP.SYS - SET ???
6328 - INT 63 - BW-TCP - TCPIP.SYS - ???
6329 - INT 63 - BW-TCP - TCPIP.SYS - ???
64 - INT 64 - reserved for user interrupt
64 - INT 64 - Adaptec controllers - DRIVE 1 DATA
64 - INT 64 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
64 - INT 64 - Oracle SQL Protected Mode Executive - ???
64 - INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
64 - INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
64 - INT 64 - Extended Batch Language v3.14+
64 - INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
64 - INT 64 - PC-DRAFT - ASYNCHRONOUS DRIVER
6401 - INT 64 U - BW-NFS - BWRPC - ???
6402 - INT 64 U - BW-NFS - BWRPC - ???
6403 - INT 64 U - BW-NFS - BWRPC - ADD ???
6404 - INT 64 U - BW-NFS - BWRPC - REMOVE ???
6405 - INT 64 U - BW-NFS - BWRPC - ???
6406 - INT 64 U - BW-NFS - BWRPC - ???
6407 - INT 64 U - BW-NFS - BWRPC - GET IP ADDRESS
6410 - INT 64 U - BW-NFS - BWRPC - CALL ETHDEV.SYS
6411 - INT 64 U - BW-NFS - BWRPC - NOP???
64FE - INT 64 - BW-NFS - BWRPC - MAP EMS PAGE FRAME
65 - INT 65 - reserved for user interrupt
65 - INT 65 - Adaptec controllers - DRIVE 1 DATA
65 - INT 65 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
65 - INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
65 - INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
65 - INT 65 - SD.COM v6.2
65 - INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
65 - INT 65 - PC-DRAFT - SECONDARY DISPLAY DRIVER
65 - INT 65 - Ad Lib SOUND.COM - INTERFACE
65----DX4147 - INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
65----DX4147 - INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
65----DX4147 - INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
65----DX4147 - INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
65----DX4147 - INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
65----DX4147 - INT 65 U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - NETBIOS - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - MACTEST - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - Physical Layer - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER.COM - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR.COM - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - COMREDIR.COM - ???
65----DX4741 - INT 65 U - NetSoft DOS-NET v1.20+ - FTP.COM - ???
65----SI0000 - INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
65----SI0003 - INT 65 - Ad Lib SOUND.COM - SET STATE
65----SI0004 - INT 65 - Ad Lib SOUND.COM - GET STATE
65----SI0006 - INT 65 - Ad Lib SOUND.COM - SET MODE
65----SI0007 - INT 65 - Ad Lib SOUND.COM - GET MODE
65----SI000C - INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
65----SI000D - INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
65----SI8000 - INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
65----SI8001 - INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
65----SI8002 - INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
65----SI8003 - INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
65----SI8004 - INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
65----SI8005 - INT 65 U - Media Vision FM.COM v4.1a+ - ???
65 - INT 65 U - EZRECV v1.0 - API
66 - INT 66 - reserved for user interrupt
66 - INT 66 - Adaptec controllers - DRIVE 1 DATA
66 - INT 66 - TI Professional PC - SYSTEM INFORMATION (NOT A VECTOR!)
66 - INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
66 - INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
66 - INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
66 - INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
66 - INT 66 - Newkey v5.4 - INSTALLATION VECTOR
66 - INT 66 - PC-DRAFT - TABLET/DIGITIZER DRIVER
66 - INT 66 - PC-Magazin - INCA
6601 - INT 66 - BitFax Scheduler - SET MODE???
6602 - INT 66 - BitFax Scheduler - SET MODE???
6603 - INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
6604 - INT 66 - BitFax Scheduler - GET STATUS???
6605 - INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
6606 - INT 66 - BitFax Scheduler - SET MODE???
660688 - INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
660689 - INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
66068A - INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
66068B - INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
66068C - INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
66068D - INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
66068E - INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
66068F - INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
660690 - INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
660691 - INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
660693 - INT 66 - DIGPAK - SET TIMER DIVISOR RATE
660694 - INT 66 - DIGPAK - PLAY PREFORMATTED DATA
660695 - INT 66 - DIGPAK - POST AUDIO PENDING
660696 - INT 66 - DIGPAK - GET AUDIO PENDING STATUS
660697 - INT 66 - DIGPAK - SET STEREO PANNING
660698 - INT 66 - DIGPAK - SET PLAY MODE
660699 - INT 66 - DIGPAK - GET ADDRESSES
66069A - INT 66 - DIGPAK - SET RECORD MODE
66069B - INT 66 - DIGPAK - STOP NEXT LOOP
66069C - INT 66 - DIGPAK - SET DMA BACKFILL MODE
66069D - INT 66 - DIGPAK - REPORT DMA COUNTER
66069E - INT 66 - DIGPAK - VERIFY DMA BLOCK
66069F - INT 66 - DIGPAK - SET PCM VOLUME
6606A0 - INT 66 - DIGPAK - SET DPMI MODE
660700 - INT 66 - MIDPAK - UNINSTALL
660701 - INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
660702 - INT 66 - MIDPAK - PLAY SEQUENCE
660703 - INT 66 - MIDPAK - SEGUE SEQUENCE
660704 - INT 66 - MIDPAK - REGISTER XMIDI
660705 - INT 66 - MIDPAK - STOP MIDI
660706 - INT 66 O - MIDPAK - REMAP CHANNEL
660707 - INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
660708 - INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
660709 - INT 66 O - MIDPAK - MIDI SLEEP
66070A - INT 66 O - MIDPAK - MIDI AWAKE
66070B - INT 66 - MIDPAK - RESUME PLAYING
66070C - INT 66 - MIDPAK - GET SEQUENCE STATUS
66070D - INT 66 - MIDPAK - REGISTER XMIDI FILE
66070E - INT 66 - MIDPAK - GET RELATIVE VOLUME
66070F - INT 66 - MIDPAK - SET RELATIVE VOLUME
660710 - INT 66 - MIDPAK - LOAD MIDPAK DRIVER
660711 - INT 66 - MIDPAK - POLL MIDPAK
660712 - INT 66 - MIDPAK - GET MIDI CLOCK
660713 - INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
660714 - INT 66 - MIDPAK - GET EVENT ID ADDRESS
660716 - INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
6610 - INT 66 - PenDOS - TDMOUSE.EXE - GET ???
6611 - INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
6612 - INT 66 - PenDOS - TDMOUSE.EXE - INITIALIZE
6613 - INT 66 - PenDOS - TDMOUSE.EXE - SHUTDOWN???
6614 - INT 66 - PenDOS - TDMOUSE.EXE - ???
6615 - INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
6616 - INT 66 - PenDOS - TDMOUSE.EXE - UNUSED FUNCTIONS
6621 - INT 66 - PenDOS - PINK - ???
6622 - INT 66 - PenDOS - PINK - ???
6623 - INT 66 - PenDOS - PINK - ???
6624 - INT 66 - PenDOS - PINK - ???
6625 - INT 66 - PenDOS - PINK - ???
6627 - INT 66 - PenDOS - PINK - ???
6628 - INT 66 - PenDOS - PINK - ???
6629 - INT 66 - PenDOS - PINK - ???
662A - INT 66 - PenDOS - PINK - ???
662B - INT 66 - PenDOS - PINK - ???
662F - INT 66 - PenDOS - PINK - INITIALIZE
663345 - INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
6640 - INT 66 - PenDOS - PKEYUS - GET VERSION
6641 - INT 66 - PenDOS - PKEYUS - SET ???
6642 - INT 66 - PenDOS - PKEYUS - ???
6643 - INT 66 - PenDOS - PKEYUS - ???
6644 - INT 66 - PenDOS - PKEYUS - UNUSED FUNCTIONS
6650 - INT 66 - PenDOS - PMOUSE - SET ???
6651 - INT 66 - PenDOS - PMOUSE - NOP
6652 - INT 66 - PenDOS - PMOUSE - ???
6653 - INT 66 - PenDOS - PMOUSE - UNUSED FUNCTIONS
66 - INT 66 - PenDOS - PMOUSE - ALTERNATE API
66AA02 - INT 66 - HelpTSR v2.10 - INSTALLATION CHECK
66C5 - INT 66 - PenDOS - VLOAD - API
66FFFBBXFFFB - INT 66 - MicroHelp Stay-Res Plus - ???
66FFFEBXFFFE - INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
66FFFFBXFFF0 - INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
67 - INT 67 - Adaptec controllers - DRIVE 1 DATA
67 - INT 67 - TI Professional PC - SYSTEM DATA (NOT A VECTOR!)
67 - INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
67 - INT 67 - Sangoma CCPOP 3270 resident module
67 - INT 67 - CUCKOO.COM - INSTALLATION CHECK
67 - INT 67 - PC-DRAFT - KEYBOARD DRIVER
6700 - INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT
6701 - INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE
6702 - INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE
671E - INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - INSTALLATION CHECK
671F - INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - API
672763CL01 - INT 67 - VIDEMS.SYS v1.31+ - INSTALLATION CHECK
672763CL02 - INT 67 - VIDEMS.SYS v1.31+ - FLUSH EMS TO VIDEO RAM
672763CL03 - INT 67 - VIDEMS.SYS v1.31+ - RELOAD EMS FROM VIDEO RAM
672763CL04 - INT 67 - VIDEMS.SYS v1.31+ - RETURN HIDDEN BLOCK SIZE
672763CL05 - INT 67 - VIDEMS.SYS v1.31+ - RETURN PHYSICAL PAGE SIZE
672763CL06 - INT 67 - VIDEMS.SYS v1.50+ - RETURN VIDEO RAM SIZE
672833 - INT 67 - Q87 v4+ - PREPARE TO UNLOAD AND GET XMS HANDLE FOR Q87 MEMORY
673F--CX5145 - INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK
6740 - INT 67 - LIM EMS - GET MANAGER STATUS
6741 - INT 67 - LIM EMS - GET PAGE FRAME SEGMENT
6742 - INT 67 - LIM EMS - GET NUMBER OF PAGES
6743 - INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY
674321 - INT 67 - Q87 v4+ - INSTALLATION CHECK
6744 - INT 67 - LIM EMS - MAP MEMORY
6745 - INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY
6746 - INT 67 - LIM EMS - GET EMM VERSION
6747 - INT 67 - LIM EMS - SAVE MAPPING CONTEXT
6748 - INT 67 - LIM EMS - RESTORE MAPPING CONTEXT
6749 - INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES
674A - INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY
674B - INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES
674C - INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE
674D - INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES
674E - INT 67 - LIM EMS - GET OR SET PAGE MAP
674F - INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP
6750 - INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES
6751 - INT 67 - LIM EMS 4.0 - REALLOCATE PAGES
6752 - INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES
6753 - INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME
6754 - INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY
6755 - INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP
6756 - INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL
6756FF - INT 67 - RM386 v6.00 - ???
6757 - INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION
6758 - INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY
675857 - INT 67 U - NETROOM??? - ???
6759 - INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION
675A - INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES
675B - INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET
675B - INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS
675BE0 - INT 67 - MICEMM v4D, RM386 - GET LINEAR ADDRESS OF MEMORY
675BE1 - INT 67 - RM386 v6.00+ - GET MEMORY MANAGER SIZE
675BE2 - INT 67 - RM386 v6.00+ - GET INTERRUPT VECTORS
675BF0 - INT 67 - MICEMM v4D, RM386 - INSTALLATION CHECK
675BF1 - INT 67 - MICEMM v4D, RM386 - GET ADDRESS MAP
675BF2 - INT 67 - RM386 - GET RM386 INTERNAL DATA
675BF3 - INT 67 - RM386 - RETURN TO REAL MODE
675BF4 - INT 67 - RM386 v6.00 - GET RM386 GLOBAL FLAGS
675BF5 - INT 67 - RM386 v6.00 - GET RM386 EMS HANDLE COUNT
675C - INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT
675D - INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS
675D03 - INT 67 u - Nanosoft MD386 - INTERNAL INITIALIZATION
675D04 - INT 67 - Nanosoft MD386 - GET ALTERNATE MAP STRUCTURE
675D05 - INT 67 - Nanosoft MD386 - GET INTERNAL HANDLE TABLE
675DE0 - INT 67 - RM386 - DISABLE RM386
675DE1 - INT 67 - RM386 - ENABLE RM386
675DE2 - INT 67 - RM386 - GET PAGE TABLE
675DE3 - INT 67 - RM386 - SET PAGE TABLE
675DE4 - INT 67 - RM386 - SET WRITE-PROTECTION FOR PAGE IN FIRST MEGABYTE
675DE5 - INT 67 - RM386 - MAP PHYSICAL PAGE TO PHYSICAL SEGMENT
675DE6 - INT 67 - RM386 - MAP LOGICAL 4K PAGE TO PHYSICAL SEGMENT
675DE7 - INT 67 - RM386 - SET PAGE TABLE BITS FOR RANGE OF PAGES
675DE8 - INT 67 - RM386 - GET PARTIAL PAGE TABLE
675DE9 - INT 67 - RM386 - SET PARTIAL PAGE TABLE
675DEA - INT 67 - RM386 - V86-MODE I/O PORT TRAPPING CONTROL
675DEB - INT 67 - RM386 - V86-MODE I/O TRAPPING PORT CONTROL
675DFD - INT 67 U - RM386 v6.00 - ???
675DFE - INT 67 U - RM386 v6.00 - ???
675DFF - INT 67 U - RM386 v6.00 - ???
675E00 - INT 67 - Nanosoft MD386 - SET HARDWARE BREAKPOINT
675E01 - INT 67 - Nanosoft MD386 - GET HARDWARE DEBUG REGISTER
675E02 - INT 67 - Nanosoft MD386 - SET DEBUG EXCEPTION HANDLER
675E03 - INT 67 - Nanosoft MD386 - ENABLE/DISABLE MEMORY WRITE PROTECTION
675E04 - INT 67 - Nanosoft MD386 - GET DEBUG EXCEPTION
675E05 - INT 67 - Nanosoft MD386 - IGNORE NEXT DEBUG EXCEPTION
6760 - INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY
6761 - INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT
676100 - INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - INSTALLATION CHECK???
676101 - INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - GET ??? ENTRY POINT
6768 - INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM
6769 - INT 67 - EEMS - MAP PAGE INTO FRAME
676A - INT 67 - EEMS - PAGE MAPPING
676B - INT 67 - DESQview 2.42-2.53 - BUG
67DD - INT 67 - Quadtel QMAPS - API
67DE00 - INT 67 - Virtual Control Program Interface - INSTALLATION CHECK
67DE01 - INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE
67DE02 - INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS
67DE03 - INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES
67DE04 - INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE
67DE05 - INT 67 - Virtual Control Program Interface - FREE 4K PAGE
67DE06 - INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB
67DE07 - INT 67 - Virtual Control Program Interface - READ CR0
67DE08 - INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS
67DE09 - INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS
67DE0A - INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS
67DE0B - INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS
67DE0C - INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE
67DE0F - INT 67 - Netroom3 - ???
67DEE1BX0C55 - INT 67 - "SB Live!" Sound Blaster 16 Emulation Driver - INSTALLATION CHECK
67EF - INT 67 - RM386 v6.00+ - EXECUTE XMS FUNCTION
67FFA5 - INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK
67FFA5BX4345 - INT 67 U - Compaq CEMM v5.10+ - PRIVATE API
68 - INT 68 - Sangoma CCPOP 3270 resident module
68 - INT 68 - Novell NetWare LU6.2
68 - INT 68 C - HP Vectra AT - IRQ16 - 8041 SERVICE REQUEST
6801--SF1B00 - INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DISPLAY
6801--SF2000 - INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH PHYSICAL UNIT
6801--SF2100 - INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH LOGICAL UNIT
6801--SF2200 - INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH LOGICAL UNIT
6801--SF2700 - INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH PHYSICAL UNIT
6801--SF2B00 - INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ACTIVATE DLC
6802--SF0100 - INT 68 - APPC/PC - CONNECTION CONTROL - ALLOCATE
6802--SF0300 - INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRM
6802--SF0400 - INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRMED
6802--SF0500 - INT 68 - APPC/PC - CONNECTION CONTROL - DEALLOCATE
6802--SF0600 - INT 68 - APPC/PC - CONNECTION CONTROL - FLUSH
6802--SF0700 - INT 68 - APPC/PC - CONNECTION CONTROL - GET ATTRIBUTES
6802--SF0800 - INT 68 - APPC/PC - CONNECTION CONTROL - GET CONVERSATION TYPE
6802--SF0900 - INT 68 - APPC/PC - CONNECTION CONTROL - POST ON RECEIPT
6802--SF0A00 - INT 68 - APPC/PC - CONNECTION CONTROL - PREPARE TO RECEIVE
6802--SF0B00 - INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE AND WAIT
6802--SF0C00 - INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE IMMEDIATE
6802--SF0E00 - INT 68 - APPC/PC - CONNECTION CONTROL - REQUEST TO SEND
6802--SF0F00 - INT 68 - APPC/PC - CONNECTION CONTROL - SEND DATA
6802--SF1000 - INT 68 - APPC/PC - CONNECTION CONTROL - SEND ERROR
6802--SF1200 - INT 68 - APPC/PC - CONNECTION CONTROL - TEST
6802--SF1300 - INT 68 - APPC/PC - CONNECTION CONTROL - WAIT
6803--SF2400 - INT 68 - APPC/PC - TP STARTED
6803--SF2800 - INT 68 - APPC/PC - GET ALLOCATE
6803--SF2A00 - INT 68 - APPC/PC - CHANGE LOGICAL UNIT
6804 - INT 68 - APPC/PC - TRANSACTION PROCESSING
6805 - INT 68 - APPC/PC - TRANSFER MESSAGE DATA
6806 - INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
6807 - INT 68 - APPC/PC - PASSTHROUGH
684300 - INT 68 U - ??? - INSTALLATION CHECK???
684400 - INT 68 U - ???
6847 - INT 68 - MS Windows debugging kernel - OUTPUT STRING
68FA - INT 68 - APPC/PC - ENABLE/DISABLE APPC
68FB - INT 68 - APPC/PC - CONVERT
68FC - INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
68FD - INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
68FE - INT 68 - APPC/PC - SET TRACE DESTINATION
68FF - INT 68 - APPC/PC - SET PASSTHROUGH
69 - INT 69 - Zenith AT BIOS - ???
69 - INT 69 C - HP Vectra AT - IRQ17 - KEYBOARD OUTPUT-BUFFER-FULL SERVICE ROUTINE
690100 - INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
690101 - INT 69 - DECnet DOS CTERM - SEND BYTE
690102 - INT 69 - DECnet DOS CTERM - READ BYTE
690103 - INT 69 - DECnet DOS CTERM - STATUS
690104 - INT 69 - DECnet DOS CTERM - DECnet STATUS
690105 - INT 69 - DECnet DOS CTERM - OPEN SESSION
690106 - INT 69 - DECnet DOS CTERM - CLOSE SESSION
69010A - INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
69010B - INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
69010F - INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
690A - INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
694001 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
694002 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
694101 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
694102 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
694103 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
694104 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
6942 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
6943 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
6944 - INT 69 - 10NET v5.0 - SYSSVC.COM - ???
6949 - INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
696996 - INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
69FF - INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
6A - INT 6A - OPTHELP.COM
6A - INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM - INSTALLATION CHECK
6A - INT 6A C - HP Vectra AT - IRQ18 - RESERVED HARDWARE INTERRUPT
6A0000 - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
6A0001 - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
6A0002 - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
6A0003 - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
6A0004 - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
6A0005 - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
6A000F - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
6A0010 - INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
6A01--DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
6A02--DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
6A03--DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
6AD0--DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
6AD000DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
6AD100DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
6AD300DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
6AD400DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
6AD500DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
6AD600DHFF - INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
Section -
6B - INT 6B - DECnet DOS - PORT DRIVER
6B - INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
6B - INT 6B C - HP Vectra AT - IRQ19 - RESERVED HARDWARE INTERRUPT
6B0000 - INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
6B0100 - INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
6B02 - INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
6B0600 - INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
6B0700 - INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
6B08 - INT 6B - TelAPI - CHECK FOR BREAK SIGNAL
6B10 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
6B11--DX0001 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
6B12 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
6B13 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
6B14 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
6B15 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
6B16 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
6B17 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
6B18 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
6B19 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
6B1A - INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
6B1B - INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
6B1C - INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
6B1D - INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
6B1E - INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
6B1F - INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
6B20 - INT 6B - Connection Manager CLIENT.EXE - ???
6B21 - INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
6B6B - INT 6B - Tandy SCHOOLMATE PLUS - API
6C - INT 6C - system resume vector (CONVERTIBLE)
6C - INT 6C - DOS 3.2 Realtime Clock update
6C - INT 6C - DECnet DOS network scheduler
6C - INT 6C C - HP Vectra AT - IRQ20 - HP-HIL CONTROLLER INTERRUPT
6D - INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT
6D - INT 6D - Trident SVGA - VIDEO BIOS HANDLER
6D - INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
6D - INT 6D C - HP Vectra AT - IRQ21 - RESERVED HARDWARE INTERRUPT
6DBD60 - INT 6D U - Matrox Multiple Monitor Support v1.0 - ???
6DBD61 - INT 6D U - Matrox Multiple Monitor Support v1.0 - GET VIDEO MODE INFORMATION
6DBD6F - INT 6D U - Matrox Multiple Monitor Support v1.0 - INSTALLATION CHECK
6DBDFF - INT 6D U - Matrox Multiple Monitor Support v1.0 - UNHOOK INTERRUPT (UNINSTALL)
6E - INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
6E - INT 6E C - HP Vectra AT - IRQ22 - RESERVED HARDWARE INTERRUPT
6F - INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
6F00 - INT 6F - 10NET - LOGIN
6F00 - INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR
6F01 - INT 6F - 10NET - LOGOFF
6F02 - INT 6F - 10NET - STATUS OF NODE
6F0200 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER
6F0202 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ.
6F0204 - INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
6F0204 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE
6F0206 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION
6F0208 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR
6F020A - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES
6F020C - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES
6F020E - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS
6F0210 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER
6F0212 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT
6F0214 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED
6F0216 - INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST
6F03 - INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
6F04 - INT 6F - 10NET - SEND
6F04--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS
6F04--BP005A - INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS
6F0400 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES
6F0400BP001E - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT
6F0400BP002A - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS
6F0400BP0054 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK
6F0400BP00CC - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER
6F0402 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES
6F0402BP001E - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT
6F0402BP002A - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS
6F0402BP0054 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO
6F0402BP00CC - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT
6F0404 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON
6F0404BP001E - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT
6F0404BP002A - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS
6F0404BP0054 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO
6F0406 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF
6F0406BP001E - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT
6F0406BP0054 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG
6F0406BP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK
6F0408 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER
6F0408BP001E - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT
6F0408BP0054 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN
6F0408BP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT
6F040A - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER
6F040ABP001E - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT
6F040ABP0054 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE
6F040ABP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY
6F040ABP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE
6F040C - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER
6F040CBP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY
6F040CBP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE
6F040E - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING
6F040EBP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE
6F040EBP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF
6F0410 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING
6F0410BP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE
6F0410BP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST
6F0412BP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041
6F0412BP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS
6F0414BP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH
6F0414BP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME
6F0416BP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE
6F0416BP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC
6F0418BP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME
6F0418BP0114 - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS
6F041ABP00AE - INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041
6F05 - INT 6F - 10NET - RECEIVE
6F06 - INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE
6F06 - INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION
6F06--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR
6F06--BP002A - INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD
6F06--BP005A - INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING
6F07 - INT 6F - 10NET - LOCK HANDLE
6F08 - INT 6F - 10NET - UNLOCK HANDLE
6F08 - INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE
6F08--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR
6F08--BP002A - INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE
6F08--BP005A - INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING
6F09 - INT 6F - 10NET - SUBMIT
6F0A - INT 6F - 10NET - CHAT
6F0A - INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE
6F0A - INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE
6F0A--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR
6F0A--BP002A - INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR
6F0A--BP005A - INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS
6F0B - INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
6F0C - INT 6F - 10NET - UNLOCK SEMAPHORE
6F0C - INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE
6F0C - INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE
6F0C--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR
6F0C--BP002A - INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT
6F0C--BP005A - INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS
6F0D - INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
6F0E - INT 6F - 10NET - SPOOL/PRINT
6F0E - INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE
6F0E - INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA
6F0E--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR
6F0E--BP005A - INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS
6F0F - INT 6F - 10NET v5.0 - "RM LOCK" - ???
6F10 - INT 6F - 10NET - ATTACH/DETACH PRINTER
6F10 - INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE
6F10--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR
6F10--BP005A - INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE
6F11 - INT 6F - 10NET - LOCK FCB
6F12 - INT 6F - 10NET - UNLOCK FCB
6F12--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR
6F12--BP005A - INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE
6F13 - INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
6F14 - INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
6F14--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR
6F1501 - INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
6F1502 - INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
6F1503 - INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
6F16 - INT 6F - 10NET v5.0 - "GL WHO" - ???
6F16--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR
6F17 - INT 6F - 10NET v3.3+ - MOUNT
6F18 - INT 6F - 10NET v3.3+ - UNMOUNT
6F18--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES
6F19 - INT 6F U - 10NET v5.0 - AUDIT
6F1A - INT 6F U - 10NET v5.0 - "BULL" - ???
6F1B - INT 6F U - 10NET v5.0 - "GMOUNT" - ???
6F1C - INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
6F1D - INT 6F U - 10NET v5.0 - "TABDATA" - ???
6F1E - INT 6F U - 10NET v5.0 - "SCHED" - ???
6F1E--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA
6F1F - INT 6F U - 10NET v5.0 - "WHOAMI" - ???
6F20 - INT 6F U - 10NET v5.0 - ???
6F20--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY
6F21 - INT 6F U - 10NET v5.0 - ???
6F22 - INT 6F U - 10NET v5.0 - ???
6F22--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY
6F24--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY
6F2A--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS
6F30--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS
6F32--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS
6F34--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK
6F36--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS
6F38--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS
6F3A--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES
6F3C--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION
6F3E--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION
6F40--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX
6F42--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST
6F44--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST
6F46--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST
6F48--BP0012 - INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING
6F636FBX6D70 - INT 6F - Clara Empricost - TSR Version - INSTALLATION CHECK
6F636FBX6D70 - INT 6F - Clara Empricost - TSR Version - UNINSTALL
6F80 - INT 6F - 10NET v5.0 - LOGIN
6F81 - INT 6F - 10NET v5.0 - LOGOUT
6F8A - INT 6F - 10NET v5.0 - CHAT
6F8D - INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
6F9501 - INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
6F9502 - INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
6F9503 - INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
6F9504 - INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
6F99 - INT 6F - 10NET v5.0 - AUDIT
6F9C - INT 6F - 10NET v5.0 - GET LOGIN LIST
70 - INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK
70 - INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
71 - INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS
72 - INT 72 C - IRQ10 - RESERVED
73 - INT 73 C - IRQ11 - RESERVED
74 - INT 74 C - IRQ12 - POINTING DEVICE (PS)
75 - INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
76 - INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later)
77 - INT 77 C - IRQ15 - RESERVED (AT,PS)
77 - INT 77 C - IRQ15 - SECONDARY IDE CONTROLLER - OPERATION COMPLETE
77 - INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
78 - INT 78 - UofSalford DBOS DOS extender - API
78 - INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
78 - INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
78 - INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
78 - INT 78 - ULTRAMID - API
7800 - INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
780000 - INT 78 - HugeRealMode Driver - INSTALLATION CHECK
780001 - INT 78 - HugeRealMode Driver - GET ENTRY POINT
7801 - INT 78 - TARGA.DEV - GET I/O PORT
7802 - INT 78 - TARGA.DEV - SET DMA CHANNEL
7803 - INT 78 - TARGA.DEV - GET DMA CHANNEL
7804 - INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
7805 - INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
7806 - INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
7808 - INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
7809 - INT 78 - TARGA.DEV - RESET SCSI BUS
7810 - INT 78 - TARGA.DEV - SEND SCSI COMMAND
7811 - INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
7812 - INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
7813 - INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
7814 - INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
7815 - INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
79 - INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
79 - INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
79 - INT 79 U - ADP-60 IDE adapter - ???
79 - INT 79 - DBOS DOS Extender
790001 - INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
790002 - INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
790003 - INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
7A - INT 7A U - Topware Network Operating System - ???
7A - INT 7A - X.PC Packet software interface
7A - INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
7A - INT 7A O - PRINDIR - API (moved to INT 7C, then INT 2F/AX=7F00h)
7A - INT 7A - Novell NetWare - LOW-LEVEL API - Notes
7A----BX0000 - INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
7A----BX0001 - INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
7A----BX0002 - INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
7A----BX0003 - INT 7A - Novell NetWare - IPX Driver - SEND PACKET
7A----BX0004 - INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
7A----BX0005 - INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
7A----BX0006 - INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
7A----BX0007 - INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
7A----BX0008 - INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
7A----BX0009 - INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
7A----BX000A - INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
7A----BX000B - INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
7A----BX000C - INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
7A----BX000D - INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
7A----BX000E - INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
7A----BX000F - INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
7A----BX0010 - INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
7A----BX0011 - INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
7A----BX0012 - INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
7A----BX0013 - INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
7A----BX0014 - INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
7A----BX0015 - INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
7A----BX0016 - INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
7A----BX0017 - INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
7A----BX0018 - INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
7A----BX0019 - INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
7A----BX001A - INT 7A - Novell NetWare - IPX Driver - GET DRIVER MAXIMUM PACKET SIZE
7A----BX001B - INT 7A U - Novell NetWare - IPX Driver - INTERNAL
7A----BX001C - INT 7A U - Novell NetWare - NetWare Access Server - GET ???
7A----BX001D - INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET
7A----BX001E - INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB
7A----BX001F - INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX INFORMATION
7A----BX0020 - INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
7A----BX0021 - INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
7A----BX0022 - INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
7A----BX0023 - INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
7A----BX0024 - INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
7A0001 - INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
7A0200BX0000 - INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
7A04 - INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
7A06 - INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
7A07D0 - INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
7A09--BX8020 - INT 7A - IBM 3270 Workstation Program API - Multi-DOS
7A09 - INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
7A13 - INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
7A7A - INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
7A81 - INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
7A83 - INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
7AFDCB - INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
7AFE01 - INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
7AFE02 - INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
7AFF01 - INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
7AFF02 - INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
7AFF03 - INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
7AFF04 - INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
7B - INT 7B - Btrieve API (single user)
7B - INT 7B - Eicon Access API (3270/5250 gateways)
7B - INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
7B - INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
7B - INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ???
7B - INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
7B8001 - INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
7B8002 - INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
7B8003 - INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
7C - INT 7C U - IBM REXX88PC command language
7C - INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
7C - INT 7C - PRINDIR v8.02-8.xx - API
7C - INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
7C - INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
7C0000 - INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
7C0001 - INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
7C0002 - INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
7C0003 - INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
7C0004 - INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
7C0005 - INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
7C0006 - INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
7C0007 - INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
7C0008 - INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
7C0009 - INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
7C000A - INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
7C000B - INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
7C000C - INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
7C000D - INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
7C000E - INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
7C000F - INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
7C0010 - INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
7C0011 - INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
7C0012 - INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
7C0013 - INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
7C0014 - INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
7C0015 - INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
7C0016 - INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
7C0017 - INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
7D - INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
7D - INT 7D U - YTERM 1.4 - CLOCK SUPPORT
7D - INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
7D - INT 7D - HyperPAD v2.2 - API ACCESS
7D - INT 7D - IBM DOS 6.1 E.EXE - ???
7D00 - INT 7D - SCSILink - RESET SCSI BUS
7D01 - INT 7D - SCSILink - CONNECT TO TARGET
7D02 - INT 7D - SCSILink - SEND COMMAND
7D03 - INT 7D - SCSILink - SET TIMEOUT
7D04 - INT 7D - SCSILink - GET ERROR STRING
7D05 - INT 7D - SCSILink - GET ADDRESS
7D06 - INT 7D - SCSILink - PUT DATA
7D07 - INT 7D - SCSILink - GET DATA
7D08 - INT 7D - SCSILink - TERMINATE SESSION
7D09 - INT 7D - SCSILink - POLL REQUEST
7E - INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
7E - INT 7E U - YTERM 1.4 - ???
7E - INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
7E00 - INT 7E - MaxSBOS v0.21 - GET ???
7E0001 - INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
7E0002 - INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
7E00F6 - INT 7E - SBOS v3.82 - SET ???
7E00F7 - INT 7E - SBOS v3.82 - GET ???
7E00F9 - INT 7E - SBOS v3.82 - SET ???
7E00FB - INT 7E - SBOS v3.82 - SET ???
7E00FD - INT 7E - SBOS v3.82 - SET ???
7E00FE - INT 7E - SBOS v3.82 - UNINSTALL
7E00FF - INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
7E01 - INT 7E - MaxSBOS v0.21 - ???
7E02 - INT 7E - MaxSBOS v0.21 - ???
7E03 - INT 7E - MaxSBOS v0.21 - NOP
7E5857BL57 - INT 7E - XLOAD - INSTALLATION CHECK
7E5857BL5A - INT 7E - XLOAD - GET ???
7E5857BL5B - INT 7E - XLOAD - GET XLOAD MEMORY SIZE
7E--80 - INT 7E - IWSBSDRV v1.41 - GET ???
7E--81 - INT 7E - IWSBSDRV v1.41 - ???
7E--82 - INT 7E - IWSBSDRV v1.41 - GET ???
7E--83 - INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
7E--84 - INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
7E--85 - INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
7E--86 - INT 7E - IWSBSDRV v1.41 - HOOK INT 21
7E--87 - INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
7F - INT 7F - Halo88 - API
7F - INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
7F - INT 7F - Telebit ACS SERIAL I/O
7F - INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
7F - INT 7F U - YTERM - ???
7F - INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
7F - INT 7F - Canon IXHND2 Scanner Interface
7F - INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
7F - INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
7F - INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
7F00 - INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
7F00 - INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
7F00 - INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
7F01 - INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
7F01 - INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
7F01 - INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
7F01 - INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
7F0104BX0000 - INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
7F0105 - INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
7F0105 - INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
7F0106 - INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
7F02 - INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
7F02 - INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
7F02 - INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
7F0200 - INT 7F - Btrieve Multi-User - GIVE UP TIME???
7F03 - INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
7F03 - INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
7F04 - INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
7F04 - INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
7F05 - INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
7F05 - INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
7F05 - INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
7F06 - INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
7F06 - INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
7F06 - INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
7F07 - INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
7F07 - INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
7F08 - INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
7F08--CL02 - INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
7F08 - INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
7F09 - INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
7F09 - INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
7F09 - INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
7F09--CL02 - INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
7F09--CL03 - INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
7F0A--CL00 - INT 7F - Alloy NTNX - GET SYSTEM FLAGS
7F0A - INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
7F0A - INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
7F0B--CL02 - INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
7F0B - INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
7F0C - INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
7F0D00 - INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
7F0D - INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
7F0F - INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
7F10--CL00 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
7F10--CL01 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
7F10--CL02 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
7F10--CL03 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
7F10--CL04 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
7F10--CL05 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
7F10--CL06 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
7F10--CL07 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
7F10--CL08 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
7F10--CL09 - INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
7F11 - INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
7F12 - INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
7F1234 - INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
7F13--CL00 - INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
7F14--CL00 - INT 7F - Alloy NTNX, MW386 - SET RECEIVE ISR
7F14--CL01 - INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
7F14--CL02 - INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
7F14--CL03 - INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
7F14--CL04 - INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
7F14--CL05 - INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
7F15--CL00 - INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
7F15--CL01 - INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
7F15--CL02 - INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
7F15--CL03 - INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
7F15--CL04 - INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
7F16 - INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
7F21 - INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
7F22 - INT 7F - Alloy NTNX - GET MESSAGE
7F24 - INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
7F24 - INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
7F25--CL00 - INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
7F25--CL01 - INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
7F2525 - INT 7F - TIGA Communications Driver v2.05 - ???
7F26--CL00 - INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
7F26 - INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
7F26--CL06 - INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
7F30 - INT 7F - Alloy MW386 - GET PORT INFORMATION
7F31 - INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
7F37 - INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
7F37 - INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
7F38 - INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
7F39 - INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
7F3A - INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
7F3B - INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
7F3C - INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
7F3D - INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
7F41 - INT 7F - Alloy NTNX - LOCK FILE FOR USER
7F41 - INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
7F4150BHC1 - INT 7F U - Voyetra - AAPISG - API
7F42 - INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
7F42 - INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
7F4321 - INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
7F4331BHC1 - INT 7F U - Voyetra - VAPISG - API
7F4E - INT 7F - Alloy MW386 v2+ - SET ERROR MODE
7F4F - INT 7F - Alloy MW386 v2+ - SET FCB MODE
7F5555 - INT 7F - TIGA Communications Driver v2.05 - ???
7F564DBHC1 - INT 7F U - Voyetra Multimedia Player - VMP.EXE API
7F5658BHC1 - INT 7F U - Voyetra - VAPISG - API
7F81 - INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
7F82 - INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
7FA0 - INT 7F - Alloy MW386 - GET USER NAME
7FA1 - INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
7FA2 - INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
7FA3 - INT 7F - Alloy MW386 - GET USER LOGIN STATE
7FA4 - INT 7F - Alloy MW386 - VERIFY USER PASSWORD
7FA500 - INT 7F - Alloy MW386 - GET USER STATUS
7FA501 - INT 7F - Alloy MW386 - SET USER STATUS
7FABCDBX0000 - INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
7FB0 - INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
7FB1--SF00 - INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
7FB2--SF01 - INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
7FB3--SF02 - INT 7F - Alloy NTNX - RELEASE FILES FOR USER
7FB4 - INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
7FC3 - INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
7FC5 - INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
7FC6 - INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
7FC7 - INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
7FC8 - INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
7FCF - INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
7FD6 - INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
7FD7 - INT 7F - Alloy MW386 - POST EVENT
7FD8 - INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
7FDB - INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
7FE0 - INT 7F - Alloy MW386 - CREATE DOS TASK
7FE1 - INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
7FE2 - INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
7FE3 - INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
7FE4 - INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
7FE5 - INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
7FE6 - INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
7FE7 - INT 7F - Alloy MW386 - REMOVE DOS TASK
7FE8 - INT 7F - Alloy MW386 - DOS TASK DELAY
7FF0 - INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
7FF1 - INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
7FF2 - INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
7FF3 - INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
7FF8 - INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
7FF9 - INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
7FFA - INT 7F - Alloy MW386 - GET USER GROUP LIST
7FFB - INT 7F - Alloy MW386 - ASSIGN GROUP NAME
7FFC - INT 7F - Alloy MW386 - GET GROUP NAME
80 - INT 80 - Q-PRO4 - ???
80 - INT 80 - reserved for BASIC
80 - INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN
80 - INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
80 - INT 80 - Linux - SYSTEM CALLS
80 - INT 80 - FreeBSD - SYSTEM CALLS
80 - INT 80 U - AMI BIOS v1.00.12.AX1T - internal - BIOS SUBSYSTEM SELECTION
80----BL00 - INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
80----BL01 - INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
80----BL02 - INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
80----BL03 - INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
80----BL04 - INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
80----BL05 - INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
80----BX0000 - INT 80 - SoundBlaster SBFM driver - GET VERSION
80----BX0000 - INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
80----BX0001 - INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
80----BX0001 - INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
80----BX0002 - INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
80----BX0002 - INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
80----BX0003 - INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
80----BX0004 - INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
80----BX0005 - INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
80----BX0005 - INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
80----BX0006 - INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
80----BX0007 - INT 80 - SoundBlaster SBFM driver - STOP MUSIC
80----BX0008 - INT 80 - SoundBlaster SBFM driver - RESET DRIVER
80----BX0009 - INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
80----BX000A - INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
80----BX000B - INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
80----BX0400 - INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
80----BX0401 - INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
8001 - INT 80 - QPC Software PKTINT.COM - INITIALIZE
8002 - INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
8003 - INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
8004 - INT 80 - QPC Software PKTINT.COM - ENABLE???
8005 - INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
8006 - INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
81 - INT 81 - reserved for BASIC
81 - INT 81 - IBM TOKEN RING ADAPTER - ???
81 - INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
81 - INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION
81 - INT 81 - Paragon Technology PTS/DOS 6.5x, S/DOS 1.0 - API
810200 - INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
810202 - INT 81 - Gravis UltraSound - MegaEm - ???
810300 - INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
810400 - INT 81 - Gravis UltraSound - MegaEm - ???
812010 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
812011 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
812012 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
812015 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
82 - INT 82 - reserved for BASIC
82 - INT 82 - IBM TOKEN RING ADAPTER - ???
83 - INT 83 - reserved for BASIC
8300 - INT 83 - JM Pro Tracker v5.0 - ???
8301 - INT 83 - JM Pro Tracker v5.0 - ???
8302 - INT 83 - JM Pro Tracker v5.0 - ???
8303 - INT 83 - JM Pro Tracker v5.0 - ???
8304 - INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
8305 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
8306 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
8307 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
8308 - INT 83 - JM Pro Tracker v5.0 - START PLAYING???
8309 - INT 83 - JM Pro Tracker v5.0 - PAUSE???
830A - INT 83 - JM Pro Tracker v5.0 - RESUME???
830B - INT 83 - JM Pro Tracker v5.0 - ???
830C - INT 83 - JM Pro Tracker v5.0 - ???
830D - INT 83 - JM Pro Tracker v5.0 - ???
830E - INT 83 - JM Pro Tracker v5.0 - ???
830F - INT 83 - JM Pro Tracker v5.0 - ???
8310 - INT 83 - JM Pro Tracker v5.0 - ???
8311 - INT 83 - JM Pro Tracker v5.0 - ???
8312 - INT 83 - JM Pro Tracker v5.0 - CLEAR ???
8313 - INT 83 - JM Pro Tracker v5.0 - ???
8314 - INT 83 - JM Pro Tracker v5.0 - ???
8315 - INT 83 - JM Pro Tracker v5.0 - GET ???
8316 - INT 83 - JM Pro Tracker v5.0 - ???
8317 - INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
8318 - INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
84 - INT 84 - reserved for BASIC
85 - INT 85 - reserved for BASIC
86 - INT 86 - NetBIOS - ORIGINAL INT 18
86 - INT 86 - IBM ROM BASIC - used while in interpreter
86 - INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
87 - INT 87 - IBM ROM BASIC - used while in interpreter
87 - INT 87 - APL*PLUS/PC - ???
87 - INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
88 - INT 88 - IBM ROM BASIC - used while in interpreter
88 - INT 88h - WANG PC - GET CONFIGURATION
88--00 - INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
88--01 - INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
88--02 - INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
88--08 - INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
88--F5 - INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
88--F6 - INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
88--F7 - INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
88--F8 - INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
88--F9 - INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
88--FC - INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
88--FD - INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
88--FE - INT 88 - APL*PLUS/PC - CREATE NAME
88--FF - INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
89 - INT 89 - IBM ROM BASIC - used while in interpreter
89 - INT 89 - APL*PLUS/PC - ???
8A - INT 8A - IBM ROM BASIC - used while in interpreter
8A - INT 8A - APL*PLUS/PC - PRINT SCREEN
8B - INT 8B - IBM ROM BASIC - used while in interpreter
8B - INT 8B - APL*PLUS/PC - BEEP
8B - INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
8C - INT 8C - IBM ROM BASIC - used while in interpreter
8C - INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
8D - INT 8D - IBM ROM BASIC - used while in interpreter
8E - INT 8E - IBM ROM BASIC - used while in interpreter
8F - INT 8F - IBM ROM BASIC - used while in interpreter
90 - INT 90 - IBM ROM BASIC - used while in interpreter
90 - INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
91 - INT 91 - IBM ROM BASIC - used while in interpreter
91 - INT 91 - IBM TOKEN RING ADAPTER - ???
Section -
92 - INT 92 - IBM ROM BASIC - used while in interpreter
92 - INT 92 - Sangoma X.25 INTERFACE PROGRAM
92E1 - INT 92 - Da Vinci eMail Dispatcher INTERFACE
92E100 - INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
92E101BX0000 - INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
92E102BX0000 - INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
92E103BX0000 - INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
92E104 - INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
92E105 - INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
92E106BX0004 - INT 92 - Da Vinci eMail Dispatcher - "NetRead"
92E107BX0002 - INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
92E108 - INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
92E109 - INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
92E10A - INT 92 - Da Vinci eMail Dispatcher - "NetClose"
92E10B - INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
92E10C - INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
92E10D - INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
92E10E - INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
92E10FBX0000 - INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
92E110 - INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
92E111 - INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
92E112 - INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
92E113 - INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
92E175 - INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
92E180 - INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
93 - INT 93 - IBM ROM BASIC - used while in interpreter
93 - INT 93 - IBM TOKEN RING ADAPTER - ???
94 - INT 94 - IBM ROM BASIC - used while in interpreter
94----SI0000 - INT 94 u - PCM driver - INITIALIZE SOUND
94----SI0001 - INT 94 u - PCM driver - INITIALIZE PCM
94----SI0002 - INT 94 u - PCM driver - INITIALIZE PCM INFO
94----SI0003 - INT 94 u - PCM driver - INITIALIZE DMA BUFFER
94----SI0004 - INT 94 u - PCM driver - INITIALIZE USER FUNCTION
94----SI0005 - INT 94 u - PCM driver - BEGIN AUDIO PLAY
94----SI0006 - INT 94 u - PCM driver - BEGIN AUDIO RECORD
94----SI0007 - INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
94----SI0008 - INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
94----SI0009 - INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
94----SI000A - INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
94----SI000B - INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
94----SI000D - INT 94 u - Media Vision PCM.COM - GET STATUS
94----SI8000 - INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
94----SI8001 - INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
94----SI8002 - INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
94----SI8004 - INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
94----SI8005 - INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
94----SI8011 - INT 94 u - Media Vision PCM.COM - INITIALIZE
94----SI8012 - INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
94----SI8013 - INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
94----SI8014 - INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
94----SI8015 - INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
94----SI8016 - INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
94--01SI8017 - INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
94--02SI8017 - INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
94--04SI8017 - INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
94--08SI8017 - INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
94--10SI8017 - INT 94 u - Media Vision PCM.COM - TIMER CONTROL
94----SI8018 - INT 94 u - Media Vision PCM.COM - GET INFO
95 - INT 95 - IBM ROM BASIC - used while in interpreter
95 - INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
96 - INT 96 - IBM ROM BASIC - used while in interpreter
96 - INT 96 U - KILL.COM, QKILL.COM - POP UP
97 - INT 97 - IBM ROM BASIC - used while in interpreter
98 - INT 98 - IBM ROM BASIC - used while in interpreter
99 - INT 99 - IBM ROM BASIC - used while in interpreter
9A - INT 9A - IBM ROM BASIC - used while in interpreter
9B - INT 9B - IBM ROM BASIC - used while in interpreter
9C - INT 9C - IBM ROM BASIC - used while in interpreter
9C - INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
9D - INT 9D - IBM ROM BASIC - used while in interpreter
9D - INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
9E - INT 9E - IBM ROM BASIC - used while in interpreter
9E - INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
9F - INT 9F - IBM ROM BASIC - used while in interpreter
9F - INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
A0 - INT A0 - IBM ROM BASIC - used while in interpreter
A0 - INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
A1 - INT A1 - IBM ROM BASIC - used while in interpreter
A2 - INT A2 - IBM ROM BASIC - used while in interpreter
A3 - INT A3 - IBM ROM BASIC - used while in interpreter
A4 - INT A4 - IBM ROM BASIC - used while in interpreter
A4 - INT A4 U - Right Hand Man - API
A5 - INT A5 - IBM ROM BASIC - used while in interpreter
A6 - INT A6 - IBM ROM BASIC - used while in interpreter
A7 - INT A7 - IBM ROM BASIC - used while in interpreter
A8 - INT A8 - IBM ROM BASIC - used while in interpreter
A9 - INT A9 - IBM ROM BASIC - used while in interpreter
AA - INT AA - IBM ROM BASIC - used while in interpreter
AB - INT AB - IBM ROM BASIC - used while in interpreter
AC - INT AC - IBM ROM BASIC - used while in interpreter
AD - INT AD - IBM ROM BASIC - used while in interpreter
AE - INT AE - IBM ROM BASIC - used while in interpreter
AF - INT AF - IBM ROM BASIC - used while in interpreter
B0 - INT B0 - IBM ROM BASIC - used while in interpreter
B1 - INT B1 - IBM ROM BASIC - used while in interpreter
B2 - INT B2 - IBM ROM BASIC - used while in interpreter
B3 - INT B3 - IBM ROM BASIC - used while in interpreter
B370 - INT B3 - ZIPKEY - GET VERSION
B371 - INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
B372 - INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
B373 - INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
B374 - INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
B375 - INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
B376 - INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
B377 - INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
B378 - INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
B379 - INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
B37A - INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
B37B - INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
B37C - INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
B37D - INT B3 - ZIPKEY - REQUEST POP UP
B37E - INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
B37F - INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
B380 - INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
B4 - INT B4 - IBM ROM BASIC - used while in interpreter
B4 - INT B4 - StackMan - REQUEST NEW STACK
B5 - INT B5 - IBM ROM BASIC - used while in interpreter
B5 - INT B5 - StackMan - RESTORE ORIGINAL STACK
B5 - INT B5 U - Netroom NETSWAP4 - ???
B6 - INT B6 - IBM ROM BASIC - used while in interpreter
B6 - INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
B7 - INT B7 - IBM ROM BASIC - used while in interpreter
B7 - INT B7 - TBFENCE - ???
B8 - INT B8 - IBM ROM BASIC - used while in interpreter
B9 - INT B9 - IBM ROM BASIC - used while in interpreter
BA - INT BA - IBM ROM BASIC - used while in interpreter
BB - INT BB - IBM ROM BASIC - used while in interpreter
BC - INT BC - IBM ROM BASIC - used while in interpreter
BD - INT BD - IBM ROM BASIC - used while in interpreter
BE - INT BE - IBM ROM BASIC - used while in interpreter
BE - INT BE - DESQview/X - ???
BF - INT BF - IBM ROM BASIC - used while in interpreter
C0 - INT C0 - IBM ROM BASIC - used while in interpreter
C0 - INT C0 - AMI BIOS - DRIVE 0 DATA
C1 - INT C1 - IBM ROM BASIC - used while in interpreter
C1 - INT C1 - AMI BIOS - DRIVE 0 DATA
C2 - INT C2 - IBM ROM BASIC - used while in interpreter
C2 - INT C2 - AMI BIOS - DRIVE 0 DATA
C3 - INT C3 - IBM ROM BASIC - used while in interpreter
C3 - INT C3 - AMI BIOS - DRIVE 0 DATA
C4 - INT C4 - IBM ROM BASIC - used while in interpreter
C4 - INT C4 - AMI BIOS - DRIVE 1 DATA
C5 - INT C5 - IBM ROM BASIC - used while in interpreter
C5 - INT C5 - AMI BIOS - DRIVE 1 DATA
C6 - INT C6 - IBM ROM BASIC - used while in interpreter
C6 - INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
C6 - INT C6 - AMI BIOS - DRIVE 1 DATA
C7 - INT C7 - IBM ROM BASIC - used while in interpreter
C7 - INT C7 - APL*PLUS/PC - ???
C7 - INT C7 - AMI BIOS - DRIVE 1 DATA
C8 - INT C8 - IBM ROM BASIC - used while in interpreter
C8 - INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
C9 - INT C9 - IBM ROM BASIC - used while in interpreter
C9 - INT C9 - APL*PLUS/PC - ???
CA - INT CA - IBM ROM BASIC - used while in interpreter
CA - INT CA - APL*PLUS/PC - PRINT SCREEN
CB - INT CB - IBM ROM BASIC - used while in interpreter
CB - INT CB - APL*PLUS/PC - BEEP
CC - INT CC - IBM ROM BASIC - used while in interpreter
CC - INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
CD - INT CD - IBM ROM BASIC - used while in interpreter
CD - INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
CE - INT CE - IBM ROM BASIC - used while in interpreter
CE - INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
CF - INT CF - IBM ROM BASIC - used while in interpreter
CF - INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
D0 - INT D0 - IBM ROM BASIC - used while in interpreter
D0 - INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D0 - INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
D1 - INT D1 - IBM ROM BASIC - used while in interpreter
D1 - INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D2 - INT D2 - IBM ROM BASIC - used while in interpreter
D2 - INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D3 - INT D3 - IBM ROM BASIC - used while in interpreter
D3 - INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D3 - INT D3 - VIRUS - "Antiexe" - RELOCATED INT 13
D4 - INT D4 - IBM ROM BASIC - used while in interpreter
D4 - INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D400 - INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
D402 - INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
D403 - INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
D404 - INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
D407 - INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
D410 - INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
D411 - INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
D412 - INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
D413 - INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
D416 - INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
D419 - INT D4 - PC-MOS/386 v5.01 - GET TASK ID
D41A - INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
D41B - INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
D41C - INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
D41D - INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
D41E - INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
D41F - INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
D420 - INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
D421 - INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
D422 - INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
D423 - INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
D424 - INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
D425 - INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
D426 - INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
D427 - INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
D428 - INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
D429 - INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
D42A - INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
D42C - INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
D42D - INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
D5 - INT D5 - IBM ROM BASIC - used while in interpreter
D5 - INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D6 - INT D6 - IBM ROM BASIC - used while in interpreter
D6 - INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D7 - INT D7 - IBM ROM BASIC - used while in interpreter
D7 - INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D8 - INT D8 - IBM ROM BASIC - used while in interpreter
D8 - INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D8 - INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
D9 - INT D9 - IBM ROM BASIC - used while in interpreter
D9 - INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
D9 - INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
DA - INT DA - IBM ROM BASIC - used while in interpreter
DA - INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
DA - INT DA - Screen Thief v1.00 - RELOCATED IRQ2
DB - INT DB - IBM ROM BASIC - used while in interpreter
DB - INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
DB - INT DB - Screen Thief v1.00 - RELOCATED IRQ3
DC - INT DC - PC/370 v4.1- - API
DC - INT DC - IBM ROM BASIC - used while in interpreter
DC - INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
DC - INT DC - Screen Thief v1.00 - RELOCATED IRQ4
DD - INT DD - IBM ROM BASIC - used while in interpreter
DD - INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
DD - INT DD - Screen Thief v1.00 - RELOCATED IRQ5
DE - INT DE - IBM ROM BASIC - used while in interpreter
DE - INT DE - APL*PLUS/PC - ???
DE - INT DE - Screen Thief v1.00 - RELOCATED IRQ6
DF - INT DF - Victor 9000/Sirius 1 - SuperBIOS
DF - INT DF - IBM ROM BASIC - used while in interpreter
DF - INT DF - APL*PLUS/PC - SAME AS INT 10
DF - INT DF - Screen Thief v1.00 - RELOCATED IRQ7
E0 - INT E0 - IBM ROM BASIC - used while in interpreter
E0 - INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
E0 - INT E0 - VIRUS - "Micro-128" - ???
E0 - INT E0 - DeskMate (Tandy) - DESK EXECUTIVE API
E0 - INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
E0----CL00 - INT E0 - REAL/32 - "P_TERMCPM" - TERMINATE CALLING PROCESS
E0----CL01 - INT E0 - REAL/32 - "C_READ" - FETCH CHARACTER FROM THE DEFAULT CONSOLE
E0----CL02 - INT E0 - REAL/32 - "C_WRITE" - WRITE CHARACTER TO DEFAULT CONSOLE
E0----CL03 - INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM DEFAULT AUX DEVICE
E0----CL04 - INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO DEFAULT AUX DEVICE
E0----CL05 - INT E0 - REAL/32 - "L_WRITE" - WRITE CHARACTER TO DEFAULT LIST DEVICE
E0----CL06 - INT E0 - REAL/32 - "C_RAWIO" - PERFORM RAW I/O WITH DEFAULT CONSOLE
E0----CL07 - INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
E0----CL08 - INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
E0----CL09 - INT E0 - REAL/32 - "C_WRITESTR" - WRITE STRING TO DEFAULT CONSOLE
E0----CL0A - INT E0 - REAL/32 - "C_READSTR" - READ STRING FROM DEFAULT CONSOLE
E0----CL0B - INT E0 - REAL/32 - "C_STAT" - RETURN DEFAULT CONSOLE INPUT STATUS
E0----CL0C - INT E0 - REAL/32 - "S_BDOSVER" - GET BDOS VERSION
E0----CL2F - INT E0 - REAL/32 - "P_CHAIN" - CHAIN PROCESS
E0----CL35 - INT E0 R - REAL/32 - "MC_MAX" - CP-M/86 ALLOCATE MAXIMUM MEMORY
E0----CL36 - INT E0 R - REAL/32 - "MC_ABSMAX" - ALLOCATE MAXIMUM MEMORY SEGMENT ABSOLUTE
E0----CL37 - INT E0 R - REAL/32 - "MC_ALLOC" - CP-M/86 ALLOCATE MEMORY SEGMENT
E0----CL38 - INT E0 R - REAL/32 - "MC_ABSALLOC" - ALLOCATE MEMORY SEGMENT ABSOLUTE
E0----CL39 - INT E0 R - REAL/32 - "MC_FREE" - CP-M/86 FREE SPECIFIED MEMORY SEGMENT
E0----CL3A - INT E0 R - REAL/32 - "MC_ALLFREE" - CP-M/86 FREE ALL MEMORY
E0----CL3B - INT E0 u - REAL/32 - "P_LOAD" - LOAD .CMD FILE INTO MEMORY
E0----CL40 - INT E0 - REAL/32 - "N_LOGON" - LOG ONTO A SERVER
E0----CL41 - INT E0 - REAL/32 - "N_LOGON" - LOG OFF A SERVER
E0----CL44 - INT E0 - REAL/32 - "N_STAT" - GET NETWORK STATUS
E0----CL45 - INT E0 - REAL/32 - "N_RCT" - GET REQUESTOR CONFIGURATION TABLE
E0----CL47 - INT E0 - REAL/32 - "N_SCT" - GET SERVER CONFIGURATION TABLE
E0----CL48 - INT E0 - REAL/32 - "N_ERRMODE" - SET NETWORK ERROR MODE
E0----CL59 - INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
E0----CL5C - INT E0 - REAL/32 - "P_PATH" - SCAN PATH FOR EXECUTABLE FILE
E0----CL5D - INT E0 - REAL/32 - "P_EXEC" - EXECUTE CHILD PROCESS
E0----CL5E - INT E0 - REAL/32 - "P_EXITCODE" - GET/SET PROCESS EXIT CODE
E0----CL6B - INT E0 - REAL/32 - "S_SERIAL" - GET OS SERIAL NUMBER
E0----CL6D - INT E0 - REAL/32 - "C_MODE" - GET/SET CONSOLE MODE
E0----CL6E - INT E0 - REAL/32 - "C_DELIMIT" - GET/SET STRING DELIMITER
E0----CL6F - INT E0 - REAL/32 - "C_WRITEBLK" - WRITE BLOCK TO DEFAULT CONSOLE
E0----CL70 - INT E0 - REAL/32 - "L_WRITEBLK" - WRITE BLOCK TO DEFAULT LIST (PRINTER) DEVICE
E0----CL71 - INT E0 R - ConcCP/M,DR Multiuser DOS - EXECUTE DOS-COMPATIBLE FUNCTIONS
E0----CL73 - INT E0 - GSX-86, GEM/1, GEM/2 - API
E0----CL80 - INT E0 - REAL/32 - "M_ALLOC" - ALLOCATE MEMORY
E0----CL81 - INT E0 - REAL/32 - "M_FREE" - DEALLOCATE MEMORY
E0----CL84 - INT E0 - REAL/32 - "DEV_WAITFLAG" - WAIT ON SYSTEM FLAG
E0----CL85 - INT E0 - REAL/32 - "DEV_SETFLAG" - SET SYSTEM FLAG
E0----CL86 - INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
E0----CL87 - INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
E0----CL88 - INT E0 - REAL/32 - "Q_DELETE" - DELETE SYSTEM QUEUE
E0----CL89 - INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
E0----CL8A - INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
E0----CL8B - INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
E0----CL8C - INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
E0----CL8E - INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
E0----CL8F - INT E0 - REAL/32 - "P_TERM" - TERMINATE CALLING PROCESS
E0----CL90 - INT E0 - REAL/32 - "P_CREATE" - CREATE A PROCESS
E0----CL91 - INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
E0----CL92 - INT E0 - ConcCP/M,DR Multiuser DOS - "C_ATTACH" - ATTACH TO DEFAULT CONSOLE
E0----CL93 - INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
E0----CL94 - INT E0 - REAL/32 - "C_SET" - SET PROCESS'S DEFAULT CONSOLE
E0----CL95 - INT E0 - REAL/32 - "C_ASSIGN" - ASSIGN DEFAULT CONSOLE TO ANOTHER PROCESS
E0----CL96 - INT E0 - REAL/32 - "P_CLI" - RUN COMMAND LINE INTERFACE
E0----CL99 - INT E0 - REAL/32 - "C_GET" - GET DEFAULT CONSOLE
E0----CL9A - INT E0 - REAL/32 - "S_SYSDAT" - GET SYSTEM DATA AREA
E0----CL9C - INT E0 - REAL/32 - "P_PDADR" - GET ADDRESS OF PROCESS DESCRIPTOR
E0----CL9D - INT E0 - REAL/32 - "P_ABORT" - ABORT PROCESS BY NAME OR DESCRIPTOR
E0----CL9E - INT E0 - REAL/32 - "L_ATTACH" - ATTACH TO DEFAULT LIST DEVICE
E0----CL9F - INT E0 - REAL/32 - "L_DETACH" - DETACH FROM DEFAULT LIST DEVICE
E0----CLA0 - INT E0 - REAL/32 - "L_SET" - SET DEFAULT LIST DEVICE
E0----CLA1 - INT E0 - REAL/32 - "L_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT LIST DEVICE
E0----CLA2 - INT E0 - REAL/32 - "C_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT CONSOLE
E0----CLA3 - INT E0 - ConcCP/M,DR Multiuser DOS,REAL/32 - "S_OSVER" - GET OS VERSION
E0----CLA4 - INT E0 - REAL/32 - "L_GET" - GET DEFAULT LIST (PRINTER) DEVICE
E0----CLA5 - INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
E0----CLA6 - INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
E0----CLA7 - INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
E0----CLA8 - INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
E0----CLA9 - INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
E0----CLAC - INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
E0----CLAD - INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
E0----CLB0 - INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
E0----CLB1 - INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
E0----CLB2 - INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
E0----CLB3 - INT E0 R - REAL/32 - "MP_ALLOC" - ALLOCATE PHYSICAL MEMORY
E0----CLB4 - INT E0 R - REAL/32 - "MP_FREE" - DEALLOCATE PHYSICAL MEMORY
E0----CLB5 - INT E0 R - REAL/32 - "MP_MAP" - MAP PHYSICAL MEMORY
E0----CLB6 - INT E0 - REAL/32 - "Q_NCREAD" - CONDITIONALLY NONDESTRUCTIVELY READ QUEUE
E0----CLB7 - INT E0 - REAL/32 - "DEV_TWAITFLAG" - TIMED WAIT ON SYSTEM FLAG
E0----CLB8 - INT E0 - REAL/32 - "DEV_MAP" - GET/SET SERIAL/PARALLEL PORT MAPPINGS
E0----CLB9 - INT E0 - REAL/32 - "L_TIMEOUT" - SET LIST DEVICE TIMEOUT
E0----CLBA - INT E0 - REAL/32 - "A_TIMEOUT" - SET AUX DEVICE TIMEOUT
E0----CLBD - INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
E00000 - INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
E00001 - INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
E00002 - INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
E00003 - INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
E00010 - INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
E00011 - INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
E00012 - INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
E00013 - INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
E00014 - INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
E00015 - INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
E00016 - INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
E00017 - INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
E00018 - INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
E00019 - INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
E0001A - INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
E0001B - INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER
E0001C - INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
E0001D - INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
E0001E - INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
E0001F - INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
E00020 - INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
E00021 - INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
E00022 - INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
E00023 - INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
E00024 - INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
E00025 - INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
E00026 - INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
E00027 - INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
E00028 - INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
E00029 - INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
E0002A - INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
E0002B - INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
E0002C - INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
E0002D - INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
E0002E - INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
E00080 - INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
E1 - INT E1 - IBM ROM BASIC - used while in interpreter
E1 - INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
E1 - INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS
E1 - INT E1 - DeskMate (Tandy) - TASK DATA SEGMENTS (NOT A VECTOR!)
E2 - INT E2 - IBM ROM BASIC - used while in interpreter
E2 - INT E2 - PC Cluster Program - RELOCATED INT 1C
E3 - INT E3 - IBM ROM BASIC - used while in interpreter
E40005 - INT E4 - Logitech Modula v2.0 - MonitorEntry
E40006 - INT E4 - Logitech Modula v2.0 - MonitorExit
E4 - INT E4 - IBM ROM BASIC - used while in interpreter
E4 - INT E4 - DIGITAL RESEARCH - FLAG INTERRUPT
E5 - INT E5 - IBM ROM BASIC - used while in interpreter
E5 - INT E5 - DIGITAL RESEARCH - FIDDS INTERRUPT
E6 - INT E6 - IBM ROM BASIC - used while in interpreter
E6 - INT E6 C - CP/M-86 v1.1 - XIOS INTERRUPT / UNKNOWN DISK DRIVE
E600 - INT E6 - Linux DOSEMU - INSTALLATION CHECK
E601 - INT E6 - Linux DOSEMU - REGISTER DUMP
E602 - INT E6 - Linux DOSEMU - SET I/O PORT PERMISSIONS
E605 - INT E6 - Linux DOSEMU - STARTUP BANNER
E612 - INT E6 - Linux DOSEMU - SET "HOGTHRESHOLD"
E622 - INT E6 - Linux DOSEMU - GET EMS STATUS
E630 - INT E6 - Linux DOSEMU - SET BOOTDISK FLAG
E650 - INT E6 - Linux DOSEMU - EXECUTE UNIX COMMAND
E651 - INT E6 - Linux DOSEMU - EXECUTE DOS COMMAND FROM UNIX
E680 - INT E6 - Linux DOSEMU - GET CURRENT UNIX DIRECTORY
E681 - INT E6 - Linux DOSEMU - CHANGE CURRENT UNIX DIRECTORY
E6FF - INT E6 - Linux DOSEMU - TERMINATE
E7 - INT E7 - IBM ROM BASIC - used while in interpreter
E8 - INT E8 - IBM ROM BASIC - used while in interpreter
E9 - INT E9 - IBM ROM BASIC - used while in interpreter
EA - INT EA - IBM ROM BASIC - used while in interpreter
EB - INT EB - IBM ROM BASIC - used while in interpreter
EC - INT EC - IBM ROM BASIC - used while in interpreter
EC - INT EC - used by Alloy NTNX
EC - INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
ED - INT ED - IBM ROM BASIC - used while in interpreter
EE - INT EE - IBM ROM BASIC - used while in interpreter
EF - INT EF - BASIC - ORIGINAL INT 09 VECTOR
EF----CX00C8 - INT EF - GEM - AES INTERFACE
EF----CX00C9 - INT EF - GEM - AES INTERFACE
EF----CX0473 - INT EF - GEM - VDI INTERFACE
F0 - INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
F1 - INT F1 - reserved for user interrupt
F1 - INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
F1 - INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
F1 - INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
F1 - INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
F1 - INT F1 - VIRUS - "Violetta" - ???
F101 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-REGISTER" - INITIALIZE CAPI
F1--01 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_REGISTER" - INITIALIZE CAPI
F102 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-RELEASE" - UNREGISTER FROM CAPI
F1--02 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_RELEASE" - UNREGISTER FROM CAPI
F103 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-PUT-MESSAGE"
F1--03 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_PUT_MESSAGE"
F104 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MESSAGE"
F1--04 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MESSAGE"
F105 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-SET-SIGNAL" - SIGNAL HANDLING
F1--05 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_SET_SIGNAL" - SIGNAL HANDLING
F106 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-DEINSTALL" - UNINSTALL
F1F0 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MANUFACTURER"
F1--F0 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MANUFACTURER"
F1F1 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-VERSION"
F1--F1 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_VERSION"
F1F2 - INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-SERIAL-NUMBER"
F1--F2 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_SERIAL_NUMBER"
F1--F3 - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_PROFILE" - GET CAPABILITIES
F1FF - INT F1 - Common ISDN API (CAPI) v1.1 - "API-MANUFACTURER" - VENDOR-SPECIFIC
F1--FF - INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_MANUFACTURER" - VENDOR-SPECIFIC
F2 - INT F2 - reserved for user interrupt
F2 - INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
F2 - INT F2 - NetWare Remote Boot - ORIGINAL INT 13
F2 - INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
F3 - INT F3 - reserved for user interrupt
F3 - INT F3 - SoundBlaster - POINTER TO ECHO VALUE
F3 - INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
F3 - INT F3 - NetWare Remote Boot - BOOT ROM'S INT 13 HANDLER
F4 - INT F4 - reserved for user interrupt
F4 - INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
F4 - INT F4 - NetWare Remote Boot - ???
F5 - INT F5 - reserved for user interrupt
F5 - INT F5 - DoubleDOS - ???
F6 - INT F6 - reserved for user interrupt
F6 - INT F6 - DoubleDOS - ???
F7 - INT F7 - reserved for user interrupt
F7 - INT F7 - DoubleDOS - ???
F700 - INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
F701 - INT F7 - FSBBS 2.0 - USER RECORD
F702 - INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
F703 - INT F7 - FSBBS 2.0 - TERMINAL NUMBER
F704 - INT F7 - FSBBS 2.0 - PASSDATA BUFFER
F705 - INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
F706 - INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
F707 - INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
F8 - INT F8 - reserved for user interrupt
F8 - INT F8 - Sanyo MBC-550/555 - IRQ0 - 100 HZ INTERRUPT
F8 - INT F8 - DoubleDOS - ???
F9 - INT F9 - reserved for user interrupt
F9 - INT F9 - DoubleDOS - ???
F9 - INT F9 - Sanyo MBC-550/555 - IRQ1 - ???
FA - INT FA - reserved for user interrupt
FA - INT FA - Sanyo MBC-550/555 - IRQ2 - SERIAL PORT USART INTERRUPT
FA - INT FA - DoubleDOS - TURN OFF TIMESHARING
FA - INT FA P - ASM Edit - INSTALLATION CHECK
FB - INT FB - reserved for user interrupt
FB - INT FB - Sanyo MBC-550/555 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT
FB - INT FB - DoubleDOS - TURN ON TIMESHARING
FC - INT FC - reserved for user interrupt
FC - INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
FC - INT FC - Sanyo MBC-550/555 - IRQ4 - PRINTER READY INTERRUPT
FD - INT FD - reserved for user interrupt
FD - INT FD - DoubleDOS - ???
FD - INT FD - Sanyo MBC-550/555 - IRQ5 - FLOPPY DISK CONTROLLER
FD - INT FD - TFPCX - INSTALLATION CHECK
FD01 - INT FD - TFPCX - TEST FOR CHARACTER WAITING
FD02 - INT FD - TFPCX - GET CHARACTER
FD03 - INT FD - TFPCX - OUTPUT CHARACTER
FDFE - INT FD - TFPCX - GET VERSION
FE - INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
FE - INT FE - DoubleDOS - GIVE UP TIME
FE - INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
FE - INT FE - Sanyo MBC-550/555 - IRQ6 - 8087 COPROCESSOR INTERRUPT
FF - INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
FF - INT FF - Z100 - WARM BOOT
FF - INT FF - Sanyo MBC-550/555 - IRQ7 - USER INTERRUPT FOR EXTERNAL INTERRUPT
FF - INT FF U - QEMM-386.SYS v6.0+ - internal
FF - INT FF - VIRUS - "Violetta" - ???
FF----BX0000 - INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE
FF - INT FF - PC/FORTH - GRAPHICS API
Admin - Highest Table Number = 04122
FILELIST - Please redistribute all of the files comprising the interrupt list (listed at
CONTACT_INFO - E-mail: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
Top
Please redistribute the following files unmodified as a group, in a quartet of archives named INTER61A through INTER61D (preferably the original authenticated PKZIP archives): INTERRUP.1ST the read-me file, containing credits, availability info INTERRUP.A INT 00 through INT 10/BE \ INTERRUP.B INT 10/BF through INT 15/0F\ INTERRUP.C INT 15/10 through INT 15/E7 \ INTERRUP.D INT 15/E8 through INT 1A/B0 \ INTERRUP.E INT 1A/B1 through INT 1F \ total 2520 pages at INTERRUP.F INT 20 through INT 21/43 \ 60 lines per page, INTERRUP.G INT 21/44 through INT 21/5E \ 2684 with INTPRINT -p INTERRUP.H INT 21/5F through INT 21/E2 >(8754 entries) INTERRUP.I INT 21/E3 through INT 21/F1 / (4135 tables) INTERRUP.J INT 21/F2 through INT 25 / INTERRUP.K INT 26 through INT 2F/15 / INTERRUP.L INT 2F/16 through INT 2F/79 / INTERRUP.M INT 2F/7A through INT 2F/D9 / INTERRUP.N INT 2F/DA through INT 50 / INTERRUP.O INT 51 through INT 61 / INTERRUP.P INT 62 through INT 6A / INTERRUP.Q INT 6B through INT 91 / INTERRUP.R INT 92 through INT FF / INTERRUP.PRI a brief introduction to interrupts INTPRINT.COM a simple formatter that also generates a list summary INTPRINT.DOC instructions for INTPRINT OVERVIEW.LST brief listing of major uses of each interrupt 86BUGS.LST a listing of CPU bugs and undocumented features BIBLIO.LST bibliography of information sources for the list CMOS.LST a description of the CMOS RAM data bytes FARCALL.LST APIs available through FAR CALLs GLOSSARY.LST a glossary of terms, abbreviations, and acronyms MEMORY.LST format of the BIOS data area OPCODES.LST a listing of recent and undocumented CPU instructions PORTS.A a listing of I/O ports 0000h-013Fh PORTS.B a listing of I/O ports 0140h-0AD5h PORTS.C a listing of I/O ports 0AD6h-FFFFh CATEGORY.KEY descriptions of divider-line category letters COMBINE.COM combine the pieces of the list into a single file COMBINE.DOC documentation for COMBINE The following files should be distributed in an archive called INTER61E: 86BUGSnn.ZIP programs to test for CPU bugs COMBINE.ASM source code for COMBINE.COM INT.* invoke interrupts from commandline INTHLP??.ZIP Interrupt Helper viewer for the interrupt list INTLIST.E Epsilon extension for handling list INTPRINT.C source code for INTPRINT INTSUM??.ZIP interrupt list browser (Interrupt Summary) IVIEW*.ZIP another interrupt list browser Finally, the following should be distributed in an archive called INTER61F: INT2RTF.ZIP Slava Gostrenko's Windows Help converter INT2WHLP.ZIP convert list into Windows Help database INTERRUP.ICO icon for interrupt list HINTSRCH.ZIP WinHelp DLL for full-text searches of interrupt list IL2ME???.ZIP convert list into Multi-Edit help database INT2GUID.* convert list into TurboPower GUIDE or POPHELP database INT2HLP.ZIP convert list into QuickHelp database INT2IPF.ZIP convert list into OS/2 .IPF database INT2QH.* program to convert list into QuickHelp database INT2TPH.ZIP convert to Turbo/Borland Pascal help file (.TPH) INTHELP.* convert list into TurboPower GUIDE database RB2NG???.ZIP convert list into Norton Guides database WH_ED*.ZIP WinHelp-file editorTop
If you notice any mistakes or omissions, please let me know! It is only with YOUR help that the list can continue to grow at the current rate. Please send all changes to me rather than distributing a modified version of the list. Please read the file INTERRUP.1ST before asking me any questions. You may find that they have already been addressed. Ralf Brown Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com) FIDO: Ralf Brown 1:129/26.1 or post a message to me in the DR_DEBUG echo (I probably won't see it unless you address it to me) I reply to all e-mail submissions, but some of my replies bounce because of bad return paths. If you don't get a response from me within a reasonable period of time, send it again with a better return path (many mailers are improperly configured and do not produce a valid From: address).Top
See INTERRUP.1ST for the key to system abbreviations and a list of the trademarks mentioned here.Top
DISCLAIMER: THIS MATERIAL IS PROVIDED "AS IS". I verify the information contained in this list to the best of my ability, but I cannot be held responsible for any problems caused by use or misuse of the information, especially for those functions not officially documented. If it is marked "internal" or undocumented, you should check it carefully to make sure it works the same way in your version of the software (and please let me know whether or not it works the same way). Information marked with "???" is known to be incomplete or guesswork.Top
The use of -> instead of = signifies that the indicated register or register pair contains a pointer to the specified item, rather than the item itself. Register pairs (such as AX:BX) indicate that the item is split across the registers, with the high-order half in the first register. One or more letters may follow the interrupt number; they have the following meanings: U - undocumented function, u - partially documented function, P - available only in protected mode, R - available only in real or V86 mode, C - callout or callback (usually hooked rather than called), O - obsolete (no longer present in current versions)Top
The ninth column of the divider line preceding an entry usually contains a classification code (the entry has not been classified if that character is a dash). The codes currently in use are: A - applications, a - access software (screen readers, etc), B - BIOS, b - vendor-specific BIOS extensions, C - CPU-generated, c - caches/spoolers, D - DOS kernel, d - disk I/O enhancements, E - DOS extenders, e - electronic mail, F - FAX, f - file manipulation, G - debuggers/debugging tools, g - games, H - hardware, h - vendor-specific hardware, I - IBM workstation/terminal emulators, i - system info/monitoring, J - Japanese, j - joke programs, K - keyboard enhancers, k - file/disk compression, l - shells/command interpreters, M - mouse/pointing device, m - memory management, N - network, n - non-traditional input devices, O - other operating systems, P - printer enhancements, p - power management, Q - DESQview/TopView and Quarterdeck programs, R - remote control/file access, r - runtime support, S - serial I/O, s - sound/speech, T - DOS-based task switchers/multitaskers, t - TSR libraries U - resident utilities, u - emulators, V - video, v - virus/antivirus, W - MS Windows, X - expansion bus BIOSes, x - non-volatile config storage y - security, * - reserved (and not otherwise classified)Top
INT 00 C - CPU-generated - DIVIDE ERROR Desc: generated if the divisor of a DIV or IDIV instruction is zero or the quotient overflows the result register; DX and AX will be unchanged. Notes: on an 8086/8088, the return address points to the following instruction on an 80286+, the return address points to the divide instruction an 8086/8088 will generate this interrupt if the result of a division is 80h (byte) or 8000h (word) SeeAlso: INT 04,OPCODE "AAD"Top
INT 00 - Zenith - ROM DEBUGGER Desc: invokes the ROM Debugger when at the BIOS level; equivalent to pressing Ctrl-Alt-Ins on booting. Note: since DOS revectors INT 00, it is necessary to restore this vector to its original ROM BIOS value in order to invoke the debugger once DOS loads SeeAlso: INT 03"Columbia"Top
INT 01 C - CPU-generated - SINGLE STEP Desc: generated after each instruction if TF (trap flag) is set; TF is cleared on invoking the single-step interrupt handler Notes: interrupts are prioritized such that external interrupts are invoked after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the first instruction of the handler executes used by debuggers for single-instruction execution tracing, such as MS-DOS DEBUG's T command SeeAlso: INT 03"CPU"Top
INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS Desc: generated by the CPU on various occurrences which may be of interest to a debugger program Note: events which may trigger the interrupt: Instruction address breakpoint fault - will return to execute inst Data address breakpoint trap - will return to following instruction General detect fault, debug registers in use Task-switch breakpoint trap undocumented 386/486 opcode F1h - will return to following instruc SeeAlso: INT 03"CPU"Top
INT 02 C - external hardware - NON-MASKABLE INTERRUPT Desc: generated by the CPU when the input to the NMI pin is asserted Notes: return address points to start of interrupted instruction on 80286+ on the 80286+, further NMIs are disabled until the next IRET instruction, but one additional NMI is remembered by the hardware and will be serviced after the IRET instruction reenables NMIs maskable interrupts may interrupt the NMI handler if interrupts are enabled although the Intel documentation states that this interrupt is typically used for power-failure procedures, it has many other uses on IBM-compatible machines: Memory parity error: all except Jr, CONV, and some machines without memory parity Breakout switch on hardware debuggers Coprocessor interrupt: all except Jr and CONV Keyboard interrupt: Jr, CONV I/O channel check: CONV, PS50+ Disk-controller power-on request: CONV System suspend: CONV Real-time clock: CONV System watch-dog timer, time-out interrupt: PS50+ DMA timer time-out interrupt: PS50+ Low battery: HP 95LX Module pulled: HP 95LXTop
INT 02 U - STB RAPIDMAP.SYS - ??? SI = 0714h ES:DI -> ??? Return: ??? SeeAlso: INT 67/AX=6100h"STB",PORT 00E1h"STB"Top
INT 03 C - CPU-generated - BREAKPOINT
Desc: generated by the one-byte breakpoint instruction (opcode CCh)
Notes: used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
command
also used by Turbo Pascal versions 1,2,3 when {$U+} specified
return address points to byte following the breakpoint instruction
called by Novell DOS 7 EMM386 after displaying an exception error
message (GPF, illegal opcodes, etc.) and before waiting for user
input
called by QEMM-386 if the user presses 'I' (undocumented) when prompted
after an exception error message
SeeAlso: INT 01"CPU"
Top
INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER Desc: invokes the ROM Debugger if INT 03 has not been revectored; equivalent to pressing Esc on booting. SeeAlso: INT 00"Zenith",INT 03"Realia"Top
INT 03 - Realia COBOL - DEBUGGER SUPPORT Note: Realia COBOL checks for a signature eight bytes prior to the interrupt handler when it starts up BUG: if the offset of the INT 03 vector is less than 8, the compiler and all executables generated by it will crash the system SeeAlso: INT 03"Columbia"Top
INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE STACK: DWORD selector DWORD offset of ASCIZ message to display Notes: the INT 03h instruction which invokes the debugger must be followed by a JMP SHORT and the signature string "WVIDEO" to check whether this interface is available, define a public byte variable named ___WD_Present, which the debugger will set to 01h before running the program SeeAlso: AX=0910hTop
INT 03 - DTown Utilities - POP UP Program: DTown Software Development's DTown Utilities contains various tools which are useful to programmers, such as a memory viewer and disassembler Note: DTU pops up on INT 03 (if not hooked by a debugger) to allow the user to inspect memory or code when the machine crashes; various memory managers will invoke INT 03 when displaying a CPU exception error message (either automatically or when the user presses a particular key) SeeAlso: INT 2D/AL=20h"DTown"Top
INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET Soft-ICE VERSION
AX = 0000h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
Return: SI = BCD version (0280h = v2.80)
SeeAlso: INT 03/AX=0910h
Top
INT 03 - Soft-ICE - BACK DOOR COMMANDS - ???
AH = 01h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
Return: ???
SeeAlso: AX=0000h,AX=090Bh,INT 03/AH=10h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 0900h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:BX -> ???
CX = ???
DX = ???
Return: ???
SeeAlso: AX=0000h,AH=01h,AX=0902h,AX=0914h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - POPUP & START A DEBUG SESSION
AX = 0902h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:BX -> initial register values (see #00001)
Return: registers as specified in initial register values table
Note: This function is called by LDR.EXE in loading a program to
be debugged. After executing the function, Soft-ICE pops up its
debugging window and you may start debugging your program.
Return: ???
SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h
Format of Soft-ICE initial register values:
Offset Size Description (Table 00001)
00h WORD initial value of SP
02h WORD initial value of SS
04h WORD initial value of IP
06h WORD initial value of CS
08h WORD initial value of DS and ES
0Ah WORD ???
0Ch WORD ???
0Eh WORD ???
10h WORD initial value of AX
12h WORD ??? (defaults to 000AH ???)
14h WORD ??? (defaults to 0001H ???)
16h WORD ??? (defaults to 0100H ???)
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 0903h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:BX -> ???
CX = ???
DX = ???
Return: ???
SeeAlso: AX=0000h,AX=0902h,AX=0907h,AX=0914h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 0907h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:BX -> ???
CX = ???
DX = ???
Return: ???
SeeAlso: AX=0000h,AX=0903h,AX=090Ah,AX=0914h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 090Ah
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:BX -> ???
CX = ???
DX = ???
Return: ???
SeeAlso: AX=0000h,AX=0907h,AX=090Bh,AX=0914h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 090Bh
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:BX -> ???
CX = ???
DX = ???
Return: ???
SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h
Top
INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
AX = 0910h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
SeeAlso: INT 03"WVIDEO"
Top
INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
AX = 0911h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
Return: nothing
SeeAlso: AX=0912h,AX=0913h
Top
INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
AX = 0912h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
Return: BH = entry number of last breakpoint set
BL = type of last breakpoint set (see #00002)
DH = entry number of last breakpoint to be triggered
DL = type of last triggered breakpoint (see #00002)
Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
SeeAlso: AX=0911h,AX=0913h,AX=0914h
(Table 00002)
Values for Soft-ICE breakpoint type:
00h BPM (breakpoint register types)
01h I/O
02h INTerrupt
03h BPX (INT 03-style breakpoint)
04h reserved
05h range
Top
INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
AX = 0913h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:DX -> breakpoint structure (see #00003)
Return: AX = status
00h successful
BX = breakpoint number
03h breakpoint table full
06h memory limit error
07h I/O limit error
09h range limit error
16h duplicate breakpoint
SeeAlso: AX=0911h,AX=0912h,AX=0914h
Format of Soft-ICE breakpoint structure:
Offset Size Description (Table 00003)
00h BYTE breakpoint type (see #00004)
01h DWORD breakpoint address 1
(lower range limit for memory BPs,
interrupt number for interrupt BPs,
address of BP for execution BPs,
I/O address (only word) for I/O BPs)
05h DWORD breakpoint address 2
(upper range limit for memory BPs,
optional value to check for for interrupt BPs,
overlay number (0 = root) for execution BPs)
09h DWORD breakpoint address 3
0Dh BYTE breakpoint mode 1 (see #00005)
(for interrupt BPs = register to check
00h no value checking
01h check AL
02h check AH
03h check AX)
0Eh BYTE breakpoint mode 2 (see #00005)
0Fh BYTE breakpoint size (00h byte, 01h word, 03h dword)
10h BYTE breakpoint pass count before program stop
11h BYTE breakpoint state
Note: all unused fields should contain zeros
(Table 00004)
Values for Soft-ICE breakpoint type:
00h memory location
01h memory range
03h I/O
04h interrupt
05h execution break
(Table 00005)
Values for Soft-ICE breakpoint mode:
01h read
02h write
04h execution
Top
INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
AX = 0914h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
BX = breakpoint number (returned by AX=0913h)
Return: BX = ???
Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
SeeAlso: AX=0912h,AX=0913h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 0918h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:BX -> ???
CX = ???
DX = ???
Return: ???
SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=0914h,INT 03/AH=10h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AH = 10h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
Return: ???
SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=01h,INT 03/AH=11h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AH = 11h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
Return: none???
SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AX=130Ch
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 130Ch
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
BX = ???
CX = ???
DX = ???
Return: AX = ??? (1300h)
SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=11h,INT 03/AX=130Eh
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 130Eh
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
BX = ???
CX = ???
DX = ???
Return: AX = ??? (1300h)
SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Ch,INT 03/AX=1313h
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 1313h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
BX = ???
CX = ???
DX = ???
Return: AX = ??? (1300h)
SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Eh
Top
INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
AX = 0900h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
Return: none???
SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AH=12h
Top
INT 04 C - CPU-generated - INTO DETECTED OVERFLOW Desc: the INTO instruction will generate this interrupt if OF (Overflow Flag) is set; otherwise, INTO is effectively a NOP Note: may be used for convenient overflow testing (to prevent errors from propagating) instead of JO or a JNO/JMP combination SeeAlso: INT 00"CPU",OPCODE "AAD",OPCODE "AAM"Top
INT 05 - PRINT SCREEN Desc: dump the current text screen to the first printer Notes: normally invoked by the INT 09 handler when PrtSc key is pressed, but may be invoked directly by applications byte at 0050h:0000h contains status used by default handler 00h not active 01h PrtSc in progress FFh last PrtSc encountered error default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes since the BOUND instruction also calls INT 05h, but returns control to the BOUND instruction, a failed BOUND check will cause an infinite loop of PrtScreens unless the INT 05 handler is aware of the problem and checks whether the interrupt was invoked by a BOUND instruction BUG: some old BIOSes/applications appear to destroy BP on return SeeAlso: INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional" SeeAlso: INT 80"Phar Lap"Top
INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED Desc: generated by BOUND instruction when the value to be tested is less than the indicated lower bound or greater than the indicated upper bound. Note: returning from this interrupt re-executes the failing BOUND instructionTop
INT 05 U - PSPS v2.01 - EJECT PAGE
AX = 454Ah ('EJ')
Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
Technologies
Note: sends a ^D to the current printer
SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
Top
INT 05 U - PSPS v2.01 - SET PARAMETERS
AX = 4E57h ('NW')
ES:SI -> 11-byte buffer containing new settings
Return: buffer filled
SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
Top
INT 05 U - PSPS v2.01 - GET PARAMETERS
AX = 5053h ('PS')
ES:SI -> 11-byte buffer for settings
Return: buffer filled
SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
Top
INT 05 U - PSPS v2.01 - UNINSTALL
AX = 554Eh ('UN')
Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
Technologies
SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
Top
INT 06 C - CPU-generated (80186+) - INVALID OPCODE Desc: this interrupt is generated when the CPU attempts to execute an invalid opcode (most protected-mode instructions are considered invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction which specifies a register rather than a memory address Notes: return address points to beginning of invalid instruction with proper programming, this interrupt may be used to emulate instructions which do not exist; many 386 BIOSes emulate the 80286 undocumented LOADALL instruction which was removed from the 80386+ generated by the 80386+ when the LOCK prefix is used with instructions other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC, NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction not accessing memory. SeeAlso: INT 0C"CPU",INT 0D"CPU"Top
INT 06 C - HP 95LX - SLEEP/WAKEUP Desc: this interrupt is called just before going into light or deep (shutdown) sleep and just after returning from light or deep sleep SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4EhTop
INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!) Desc: points at graphics data for characters 00h-7Fh of the current font SeeAlso: INT 43"EGA",INT 44"VIDEO"Top
INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE Desc: this interrupt is automatically called if a coprocessor instruction is encountered when no coprocessor is installed Note: can be used to emulate a numeric coprocessor in software SeeAlso: INT 09"CPU"Top
INT 08 C - IRQ0 - SYSTEM TIMER Desc: generated 18.2 times per second by channel 0 of the 8254 system timer, this interrupt is used to keep the time-of-day clock updated Notes: programs which need to be invoked regularly should use INT 1C unless they need to reprogram the timer while still keeping the time-of-day clock running at the proper rate default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes may be masked by setting bit 0 on I/O port 21h SeeAlso: INT 1C,INT 4A"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"IRQ8" SeeAlso: INT 78"GO32",INT D8"Screen Thief",MEM 0040h:0040h,MEM 0040h:006ChTop
INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED Desc: called when multiple exceptions occur on one instruction, or an exception occurs in an exception handler Notes: called in protected mode if an interrupt above the defined limit of the interrupt vector table occurs return address points at beginning of instruction with errors or the beginning of the instruction which was about to execute when the external interrupt caused the exception if an exception occurs in the double fault handler, the CPU goes into SHUTDOWN mode (which circuitry in the PC/AT converts to a reset); this "triple fault" is a faster way of returning to real mode on many 80286 machines than the standard keyboard controller resetTop
INT 09 C - IRQ1 - KEYBOARD DATA READY
Desc: this interrupt is generated when data is received from the keyboard.
This is normally a scan code (from either a keypress *or* a key
release), but may also be an ACK or NAK of a command on AT-class
keyboards.
Notes: this IRQ may be masked by setting bit 1 on I/O port 21h
if the BIOS supports an enhanced (101/102-key) keyboard, it calls
INT 15/AH=4Fh after reading the scan code (see #00006) from the
keyboard and before further processing; all further processing uses
the scan code returned from INT 15/AH=4Fh
the default interrupt handler is at F000h:E987h in 100%-compatible
BIOSes
the interrupt handler performs the following actions for certain
special keystrokes:
Ctrl-Break clear keyboard buffer, place word 0000h in buffer,
invoke INT 1B, and set flag at 0040h:0071h
SysReq invoke INT 15/AH=85h (SysReq is often labeled SysRq)
Ctrl-Numlock place system in a tight wait loop until next INT 09
Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
destination of the jump at that address)
Shift-PrtSc invoke INT 05
Ctrl-Alt-Plus (HP Vectra) enable keyclick
Ctrl-Alt-Plus (many clones) set clock speed to high
Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
Ctrl-Alt-Minus (many clones) set clock speed to low
Ctrl-Alt-SysReq (HP Vectra) generate hard reset
Ctrl-Alt-S (many clones) run BIOS setup program
Ctrl-Alt-Esc (many clones) run BIOS setup program
Ctrl-Alt-Ins (many clones) run BIOS setup program
Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache
Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache
DR DOS hooks this interrupt to control the cursor shape (underscore/
half block) for overwrite/insert mode
DR Multiuser DOS hooks this interrupt for cursor shape control and to
control whether Ctrl-Alt-Del reboots the current session or the
entire system
SeeAlso: INT 05"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h
SeeAlso: INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI"
SeeAlso: INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
(Table 00006)
Values for keyboard make/break (scan) code:
01h Esc 31h N
02h 1 ! 32h M
03h 2 @ 33h , < 63h F16
04h 3 # 34h . > 64h F17
05h 4 $ 35h / ? 65h F18
06h 5 % 36h Right Shift 66h F19
07h 6 ^ 37h Grey* 67h F20
08h 7 & 38h Alt 68h F21 (Fn) [*]
09h 8 * 39h SpaceBar 69h F22
0Ah 9 ( 3Ah CapsLock 6Ah F23
0Bh 0 ) 3Bh F1 6Bh F24
0Ch - _ 3Ch F2 6Ch --
0Dh = + 3Dh F3 6Dh EraseEOF
0Eh Backspace 3Eh F4
0Fh Tab 3Fh F5 6Fh Copy/Play
10h Q 40h F6
11h W 41h F7
12h E 42h F8 72h CrSel
13h R 43h F9 73h <delta> [*]
14h T 44h F10 74h ExSel
15h Y 45h NumLock 75h --
16h U 46h ScrollLock 76h Clear
17h I 47h Home 77h [Note2] Joyst But1
18h O 48h UpArrow 78h [Note2] Joyst But2
19h P 49h PgUp 79h [Note2] Joyst Right
1Ah [ { 4Ah Grey- 7Ah [Note2] Joyst Left
1Bh ] } 4Bh LeftArrow 7Bh [Note2] Joyst Up
1Ch Enter 4Ch Keypad 5 7Ch [Note2] Joyst Down
1Dh Ctrl 4Dh RightArrow 7Dh [Note2] right mouse
1Eh A 4Eh Grey+ 7Eh [Note2] left mouse
1Fh S 4Fh End
20h D 50h DownArrow
21h F 51h PgDn
22h G 52h Ins
23h H 53h Del
24h J 54h SysReq ---non-key codes---
25h K 55h [Note1] F11 00h kbd buffer full
26h L 56h left \| (102-key)
27h ; : 57h F11 AAh self-test complete
28h ' " 58h F12 E0h prefix code
29h ` ~ 59h [Note1] F15 E1h prefix code
2Ah Left Shift 5Ah PA1 EEh ECHO
2Bh \ | 5Bh F13 (LWin) F0h prefix code (key break)
2Ch Z 5Ch F14 (RWin) FAh ACK
2Dh X 5Dh F15 (Menu) FCh diag failure (MF-kbd)
2Eh C FDh diag failure (AT-kbd)
2Fh V FEh RESEND
30h B FFh kbd error/buffer full
Notes: scan codes 56h-E1h are only available on the extended (101/102-key)
keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
are only available on the 122-key keyboard and the Microsoft Natural
Keyboard; scan codes 5Eh-76h are only available on the 122-key
keyboard
in the default configuration, break codes are the make scan codes with
the high bit set; make codes 60h,61h,70h, etc. are not available
because the corresponding break codes conflict with prefix codes
(code 2Ah is available because the self-test result code AAh is only
sent on keyboard initialization). An alternate keyboard
configuration can be enabled on AT and later systems with enhanced
keyboards, in which break codes are the same as make codes, but
prefixed with an F0h scan code
prefix code E0h indicates that the following make/break code is for a
"gray" duplicate to a key which existed on the original PC keyboard;
prefix code E1h indicates that the following make code has no
corresponding break code (currently only the Pause key generates no
break code)
the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
(all with an E0h prefix) for the Left Windows, Right Windows, and
Menu keys on the bottom row
the European "Cherry G81-3000 SAx/04" keyboard contains contacts for
four additional keys, which can be made available by a user
modification; the three new keys located directly below the cursor
pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21);
the fourth new key, named <delta>, sends make code 73h
the SysReq key is often labeled SysRq
the "Accord" ergonomic keyboard with optional touchpad (no other
identification visible on keyboard or in owner's booklet) has an
additional key above the Grey- key marked with a left-pointing
triangle and labeled "Fn" in the owner's booklet which returns
scan codes E0h 68h on make and E0h E8h on break
the "Preh Commander AT" keyboard with additional F11-F22 keys treats
F11-F20 as Shift-F1..Shift-F10 and F21/F22 as Ctrl-F1/Ctrl-F2; the
Eagle PC-2 keyboard with F11-F24 keys treated those additional keys
in the same way
[Note1] the "Cherry G80-0777" keyboard has additional F11-F15 keys
which generate make codes 55h-59h; some other extended keyboards
generate codes 55h and 56h for F11 and F12, which cannot be managed
by standard DOS keyboard drivers
[Note2] the Schneider/Amstrad PC1512 PC keyboards contain extra keys,
a mouse, and a digital joystick, which are handled like extra keys.
The joystick's motion scancodes are converted into standard arrow
keys by the BIOS, and the joystick and mouse button scan codes are
converted to FFFFh codes in the BIOS keyboard buffer
(see CMOS 15h"AMSTRAD").
In addition to the keys listed in the table above, there are
Del-> (delete forward) 70h
Enter 74h
SeeAlso: #00602 at INT 16/AX=6F07h,#03214 at INT 4A/AH=05h
Top
INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR Desc: called if the coprocessor attempts to access memory outside a segment boundary; it may occur at an arbitrary time after the coprocessor instruction was issued Notes: until the condition is cleared or the coprocessor is reset, the only coprocessor instruction which may be used is FNINIT; WAIT or other coprocessor instructions will cause a deadlock because the coprocessor is still busy waiting for data for the 486+, a coprocessor protection error generates an INT 0D SeeAlso: INT 07"CPU"Top
INT 09 P - internal hardware - RESERVED BY Intel (80486) Note: this exception has been moved to INT 0D SeeAlso: INT 09"CPU",INT 0DTop
INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA) Notes: the TOPS and PCnet adapters use this interrupt request line by default DOS 3.2 revectors IRQ2 to a stack-switching routine; DOS 3.3+ does so unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS 3.3+ use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and connects to the slave 8259. The BIOS redirects the interrupt for IRQ9 back here. under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process many VGA boards do not implement the vertical retrace interrupt, including the IBM VGA Adapter where the traces are either cut or removed SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"Top
INT 0A C - IRQ2 - Tandy 1000-series HARD DISK Notes: this interrupt may be masked by setting bit 2 on I/O port 21h the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk interrupt use IRQ5 for vertical retrace. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71Top
INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE Note: newer Roland cards and MIDI interfaces by other manufacturers use a jumper-selectable IRQ, but software and hardware generally defaults to IRQ2 SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"Top
INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT Desc: automatically called during a task switch if the new TSS specified by the task gate is invalid for any of the following reasons: TSS limit is less than 43 (80286) or 103 (80386/80486) LDT selector invalid or segment not present null SS selector, or SS selector outside LDT/GDT limit stack segment is read-only stack segment DPL differs from new CPL, or RPL <> CPL CS selector is outside LDT/GDT limit or not code non-conforming code segment's DPL differs from CPL conforming code segment's DPL > CPL DS/ES selectors outside LDT/GDT limit or not readable segments Note: the handler must use a task gate in order to have a valid TSS under which to execute; it must also reset the busy bit in the new TSS SeeAlso: INT 0B"CPU"Top
INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2) Desc: automatically asserted by the UART when COM2 needs attention, if the UART has been programmed to generate interrupts Notes: the TOPS and PCnet adapters use this interrupt request line as an alternate on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4 shares this interrupt may be masked by setting bit 3 on I/O port 21h DOS 3.3+ revectors IRQ3 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"Top
INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT Desc: generated when loading a segment register if the segment descriptor indicates that the segment is not currently in memory, unless the segment is an LDT (see INT 0A"CPU") or stack segment (see INT 0C"CPU") needed by a task switch Note: may be used to implement virtual memory by loading in segments as they are accessed, clearing the "not present" bit after loading SeeAlso: INT 0A"CPU",INT 0E"CPU"Top
INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER Desc: this is the lowest-level keyboard handler on an HP 95LX palmtop Note: debounces key, places the keycode in I/O register 60h, and calls INT 09 SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4hTop
INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1) Desc: automatically asserted by the UART when COM1 needs attention, if the UART has been programmed to generate interrupts BUG: this vector is modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC Notes: on many PC's, COM3 shares this interrupt may be masked by setting bit 4 on I/O port 21h DOS 3.3+ revectors IRQ4 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"Top
INT 0C C - CPU-generated (80286+) - STACK FAULT Desc: this interrupt is generated in protected mode on a stack overflow or underflow, or if an inter-level transition or task switch references a stack segment marked "not present"; it is generated in real mode on accessing a word operand at SS:FFFFh Note: the 80286 will shut down in real mode if SP=1 before a push. On the PC AT and compatibles, external circuitry generates a reset on shutdown. SeeAlso: INT 0B"CPU",INT 0D"CPU"Top
INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER Desc: the IBM System 36/38 emulator may be invoked through a private API, whose entry point address (see #00007) is offset 100h in the segment pointed at by this vector (Table 00007) Call the System 36/38 emulator API entry point with: AH = function 03h update screen 05h select next session AL = session number (00h-03h) Return: AL = session type code 00h not active 01h display session 02h printer session FEh invalid session number DS = requested session's data segment (0 if not active) (see #00008) Return: ??? Format of System 36/38 emulator's data area: Offset Size Description (Table 00008) 13Eh BYTE bit flags for status line indicators turned on since this byte last zerod 13Fh BYTE bit flags for status line indicators turned off since this byte last set to FFh 140h WORD offset of EBCDIC to ASCII translation 146h WORD offset of EBCDIC screen buffer 148h WORD offset of EC (engineering change) level signature 150h BYTE "KEYI" 151h BYTE 5250 key scan code to be sent to remote 15Bh BYTE "SYSAV" 15Dh BYTE 5250 cursor column 15Eh BYTE 5250 cursor row 167h BYTE "DVCTAD" 178h BYTE "FLAGS" 184h BYTE "SESSNOAD" 193h BYTE "STNAD" 198h BYTE "NSDS" Note: offsets are from the interrupt handler's segmentTop
INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2) Notes: under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process DOS 3.3+ revectors IRQ5 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk interrupt use IRQ5 for vertical retrace. may be masked by setting bit 5 on I/O port 21h SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS" SeeAlso: INT 7D"GO32"Top
INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH Desc: used to ensure that the dynamic RAM retains its contents in earlier 1000-series models; later models use normal DMA for RAM refresh (some early models have no DMA unless it is added via an expansion card) SeeAlso: INT 55Top
INT 0D - HP 95LX - INFRARED INTERRUPT Desc: this interrupt is used to perform communications over the infrared data link SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4hTop
INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION Desc: the CPU generates this interrupt when it detects a protection violation which does not fit under any other category having a separate interrupt Notes: called in real mode when an instruction accesses a memory operand extending beyond offset FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment CS, DS, ES, FG, or GS a PUSH MEM or POP MEM instruction contains an invalid bit encoding in the second byte an instruction exceeds the maximum length allowed (10 bytes for 80286, 15 bytes for 80386/80486) an instruction wraps from offset FFFFh to offset 0000h called in protected mode on protection violations not covered by INT 06 through INT 0C, including segment limit violations write to read-only segments accesses using null DS or ES selectors accesses to segments with privilege greater than CPL wrong descriptor type called on 80486 protected-mode floating-point protection fault SeeAlso: INT 09"80486",INT 0C"STACK"Top
INT 0E C - IRQ6 - DISKETTE CONTROLLER Desc: this interrupt is generated by the floppy disk controller on completion of an operation Notes: default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes may be masked by setting bit 6 on I/O port 21h DOS 3.3+ revectors IRQ6 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"Top
INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT Desc: this interrupt is generated in protected and virtual-86 modes on attempting to access a 4K memory page whose page table entry has the "present" bit cleared Notes: used to implement virtual memory--when the page fault occurs, the operating system can load the appropriate page from disk a protected-mode program written in the Flat memory model will often generate this interrupt (typically reported as an Exception #14 or Exception 0E with a register dump) when dereferencing an uninitialized or corrupted pointer SeeAlso: INT 0B"CPU"Top
INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4hTop
INT 0F C - IRQ7 - PARALLEL PRINTER Desc: this interrupt is generated by the LPT1 printer adapter when the printer becomes ready Notes: most printer adapters do not reliably generate this interrupt the 8259 interrupt controller generates an interrupt corresponding to IRQ7 when an error condition occurs SeeAlso: INT 0D"IRQ5",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32" SeeAlso: MEM 0040h:006BhTop
INT 0F C - HP 95LX - REAL-TIME CLOCK SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70"IRQ8"Top
INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR Desc: this interrupt is generated by the CPU when the -ERROR pin is asserted by the coprocessor Note: AT's and clones usually wire the coprocessor to use IRQ13, but not all get it right SeeAlso: INT 09"hardware",INT 75Top
INT 10h - LIRVGA19 - CHAR HEIGHT HOOK Desc: LIRVGA19.COM fixes display problems on some notebooks by hooking INT 10h and resetting the BIOS character height (MEM 0040h:0085h) to 10h on return, if it happens to be greater than 10h. Program: LIRVGA19.COM is part of the Lithuanian LIR codepage support package developed by LABAS u.a.b. SeeAlso: INT 10/AX=5555h/BX=BBBBh,MEM 0040h:0085hTop
INT 10 - VIDEO - SET VIDEO MODE
AH = 00h
AL = desired video mode (see #00010)
Return: AL = video mode flag (Phoenix, AMI BIOS)
20h mode > 7
30h modes 0-5 and 7
3Fh mode 6
AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
Desc: specify the display mode for the currently active display adapter
InstallCheck: for Ahead adapters, the signature "AHEAD" at C000h:0025h
for Paradise adapters, the signature "VGA=" at C000h:007Dh
for Oak Tech OTI-037/057/067/077 chipsets, the signature "OAK VGA" at
C000h:0008h
for ATI adapters, the signature "761295520" at C000h:0031h; the byte
at C000h:0043h indicates the chipset revision:
31h for 18800
32h for 18800-1
33h for 18800-2
34h for 18800-4
35h for 18800-5
62h for 68800AX (Mach32) (see also #00732)
the two bytes at C000h:0040h indicate the adapter type
"22" EGA Wonder
"31" VGA Wonder
"32" EGA Wonder800+
the byte at C000h:0042h contains feature flags
bit 1: mouse port present
bit 4: programmable video clock
the byte at C000h:0044h contains additional feature flags if chipset
byte > 30h (see #00009)
for Genoa video adapters, the signature 77h XXh 99h 66h at C000h:NNNNh,
where NNNNh is stored at C000h:0037h and XXh is
00h for Genoa 6200/6300
11h for Genoa 6400/6600
22h for Genoa 6100
33h for Genoa 5100/5200
55h for Genoa 5300/5400
for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
for Genoa SuperEGA BIOS v3.0+, C000h:0070h contains the signature
"EXTMODE", indicating support for extended modes
Notes: IBM standard modes do not clear the screen if the high bit of AL is set
(EGA or higher only)
the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
Everex EV-673, etc.
intercepted by GRAFTABL from Novell DOS 7 and Caldera OpenDOS 7.01.
SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h,MEM 0040h:0049h
Index: installation check;Tseng ET4000|installation check;Ahead video cards
Index: installation check;Oak Technologies|installation check;ATI video cards
Index: installation check;Paradise video|installation check;Genoa video cards
Bitfields for ATI additional feature flags:
Bit(s) Description (Table 00009)
0 70 Hz non-interlaced display
1 Korean (double-byte) characters
2 45 MHz memory clock rather than 40 MHz
3 zero wait states
4 paged ROMs
6 no 8514/A monitor support
7 HiColor DAC
(Table 00010)
Values for video mode:
text/ text pixel pixel colors disply scrn system
grph resol box resolution pages addr
00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
= T 40x25 8x14 320x350 16gray 8 B800 EGA
= T 40x25 8x16 320x400 16 8 B800 MCGA
= T 40x25 9x16 360x400 16 8 B800 VGA
01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
= T 40x25 8x14 320x350 16 8 B800 EGA
= T 40x25 8x16 320x400 16 8 B800 MCGA
= T 40x25 9x16 360x400 16 8 B800 VGA
02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
= T 80x25 8x14 640x350 16gray 8 B800 EGA
= T 80x25 8x16 640x400 16 8 B800 MCGA
= T 80x25 9x16 720x400 16 8 B800 VGA
03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
= T 80x25 8x14 640x350 16/64 8 B800 EGA
= T 80x25 8x16 640x400 16 8 B800 MCGA
= T 80x25 9x16 720x400 16 8 B800 VGA
= T 80x43 8x8 640x350 16 4 B800 EGA,VGA [17]
= T 80x50 8x8 640x400 16 4 B800 VGA [17]
04h = G 40x25 8x8 320x200 4 . B800 CGA,PCjr,EGA,MCGA,VGA
05h = G 40x25 8x8 320x200 4gray . B800 CGA,PCjr,EGA
= G 40x25 8x8 320x200 4 . B800 MCGA,VGA
06h = G 80x25 8x8 640x200 2 . B800 CGA,PCjr,EGA,MCGA,VGA
= G 80x25 . . mono . B000 HERCULES.COM on HGC [14]
07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
= T 80x25 9x16 720x400 mono . B000 VGA
08h = T 132x25 8x8 1056x200 16 . B800 ATI EGA/VGA Wonder [2]
= T 132x25 8x8 1056x200 mono . B000 ATI EGA/VGA Wonder [2]
= G 20x25 8x8 160x200 16 . . PCjr, Tandy 1000
= G 80x25 8x16 640x400 color . . Tandy 2000
= G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
= G 90x45 8x8 720x360 mono . B000 Hercules + HERKULES [11]
= G 90x29 8x12 720x348 mono . . Hercules + HERCBIOS [15]
09h = G 40x25 8x8 320x200 16 . . PCjr, Tandy 1000
= G 80x25 8x16 640x400 mono . . Tandy 2000
= G 90x43 8x8 720x348 mono . . Hercules + HERCBIOS [15]
0Ah = G 80x25 8x8 640x200 4 . . PCjr, Tandy 1000
0Bh = reserved (EGA BIOS internal use)
= G 80x25 8x8 640x200 16 . . Tandy 1000 SL/TL [13]
0Ch = reserved (EGA BIOS internal use)
0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
= G . . 640x350 16 . A000 256k EGA,VGA
11h = G 80x30 8x16 640x480 mono . A000 VGA,MCGA,ATI EGA,ATI VIP
12h = G 80x30 8x16 640x480 16/256K . A000 VGA,ATI VIP
= G 80x30 8x16 640x480 16/64 . A000 ATI EGA Wonder
= G . . 640x480 16 . . UltraVision+256K EGA
13h = G 40x25 8x8 320x200 256/256K . A000 VGA,MCGA,ATI VIP
14h = T 132x25 Nx16 . 16 . B800 XGA, IBM Enhanced VGA [3]
= T 132x25 8x16 1056x400 16/256K . . Cirrus CL-GD5420/5422/5426
= G 80x25 8x8 640x200 . . . Lava Chrome II EGA
= G . . 640x400 16 . . Tecmar VGA/AD
15h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
16h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
= G . . 800x600 16 . . Tecmar VGA/AD
17h = T 132x25 . . . . . Tecmar VGA/AD
= T 80x43 8x8 640x348 16 4 B800 Tseng ET4000 BIOS [10]
= G 80x34 8x14 640x480 . . . Lava Chrome II EGA
18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
= T 132x25 . . mono . B000 Cirrus 5320 chipset
= T 132x44 8x8 1056x352 mono . B000 Tseng Labs EVA
= T 132x44 9x8 1188x352 4gray 2 B000 Tseng ET3000 chipset
= T 132x44 8x8 1056x352 16/256 2 B000 Tseng ET4000 chipset
= G 80x34 8x14 640x480 . . . Lava Chrome II EGA
= G 1024x768 16 . . Tecmar VGA/AD
19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
= T 132x25 8x14 1056x350 mono . B000 Tseng Labs EVA
= T 132x25 9x14 1188x350 4gray 4 B000 Tseng ET3000 chipset
= T 132x25 8x14 1056x350 16/256 4 B000 Tseng ET4000 chipset
= T 132x34 . . mono . B000 Cirrus 5320 chipset
1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
= T 132x28 8x13 1056x364 mono . B000 Tseng Labs EVA
= T 132x28 9x13 1188x364 4gray 4 B000 Tseng ET3000 chipset
= T 132x28 8x13 1056x364 16/256 4 B000 Tseng ET4000 chipset
= T 132x44 . . mono . B000 Cirrus 5320 chipset
= G . . 640x350 256 . . Tecmar VGA/AD
1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
= G . . 640x400 256 . . Tecmar VGA/AD
1Ch = T 132x25 . . . . . Cirrus 5320 chipset
= T 132x30 9x16 1188x480 16 1 A000 Realtek RTVGA [12]
= G . . 640x480 256 . . Tecmar VGA/AD
1Dh = T 132x43 . . . . . Cirrus 5320 chipset
= T 132x43 9x11 1188x473 16 1 A000 Realtek RTVGA [12]
= G . . 800x600 256 . . Tecmar VGA/AD
1Eh = T 132x44 . . . . . Cirrus 5320 chipset
= T 132x60 9x8 1188x480 16 1 A000 Realtek RTVGA [12]
1Fh = G 100x75 8x8 800x600 16 1 A000 Realtek RTVGA
20h = T 132x25 . . 16 . . Avance Logic AL2101
= G 40x16 . 240x128 mono . B000 HP 95LX/100LX/200LX
= G 80x30 8x16 640x480 16 . . C&T 64310/65530 BIOS
= G 120x45 8x16 960x720 16 1 A000 Realtek RTVGA
21h = T 80x25 . . mono . B000 HP 200LX
= T 132x30 . . 16 . . Avance Logic AL2101
= T 132x44 9x9 1188x396 16/256K . B800 WD90C
= T 132x44 9x9 1188x396 16 . B800 Diamond Speedstar 24X
= T 132x60 . . 16 2 B800 Tseng ET4000 chipset [10]
= G 80x43 8x8 720x348 mono . B000 DESQview 2.x+Hercules [4]
= G 128x48 8x16 1024x768 16 1 A000 Realtek RTVGA [12]
22h = T 132x43 . . . . . Allstar Peacock (VGA)
= T 132x43 . . 16 . . Avance Logic AL2101
= T 132x44 8x8 1056x352 . . B800 Tseng Labs EVA
= T 132x44 9x8 1188x352 16/256K 2 B800 Tseng ET3000 chipset
= T 132x44 8x8 1056x352 16/256K 2 B800 Tseng ET4000 chipset
= T 132x44 8x8 1056x352 . . . Ahead Systems EGA2001
= T 132x44 8x8 1056x352 16 2 B800 Ahead B
= T 132x44 8x9 1056x398 16 . . STB Lightspeed ET4000/W32P
= T 132x44 . . 16 . . Orchid Prodesigner VGA
= G 80x43 8x8 720x348 mono . B800 DESQview 2.x+Hercules [4]
= G 96x64 8x16 768x1024 16 1 A000 Realtek RTVGA
= G 100x37 8x16 800x600 16 . . C&T 64310/65530 BIOS
23h = T 132x25 6x14 792x350 . . B800 Tseng Labs EVA
= T 132x25 9x14 1188x350 16/256K 4 B800 Tseng ET3000 chipset
= T 132x25 8x14 1056x350 16/256 4 B800 Tseng ET4000 chipset
= T 132x25 8x14 1056x350 . . . Ahead Systems EGA2001
= T 132x25 8x14 1056x350 16 4 B800 Ahead B
= T 132x25 8x8 1056x200 16 . B800 ATI EGA Wonder,ATI VIP
= T 132x25 . . . . . Cirrus 5320 chipset
= T 132x28 . . . . . Allstar Peacock (VGA)
= T 132x28 . . 16 . . Orchid Prodesigner VGA
= T 132x60 . . 16 . . Avance Logic AL2101
= G 128x48 8x16 1024x768 4 1 A000 Realtek RTVGA
24h = T 80x30 . . 16 . . Avance Logic AL2101
= T 132x25 . . . . . Allstar Peacock (VGA)
= T 132x25 . . 16 . . Orchid Prodesigner VGA
= T 132x28 6x13 792x364 . . B800 Tseng Labs EVA
= T 132x28 9x13 1188x364 16/256K 4 B800 Tseng ET3000 chipset
= T 132x28 8x12 1056x336 16 1 B800 Ahead B
= T 132x28 8x13 1056x364 16/256K 4 B800 Tseng ET4000 chipset
= T 132x28 8x14 1056x392 16 . . STB Lightspeed ET4000/W32P
= T 132x28 . . . . . Cirrus 5320 chipset
= G 64x32 8x16 512x512 256 1 A000 Realtek RTVGA
= G 128x48 8x16 1024x768 16 . . C&T 64310/65530 BIOS
25h = T 80x43 . . 16 . . Avance Logic AL2101
= G 80x60 8x8 640x480 . . A000 Tseng Labs EVA
= G 80x60 8x8 640x480 16/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 640x480 16 . . VEGA VGA
= G 80x60 8x8 640x480 16 . A000 Orchid Prodesigner VGA
= G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
= G . . 640x480 16 . . NEC GB-1
= G . . 640x480 16 . . Cirrus 5320 chipset
= G . . 640x400 256 . . Realtek RTVGA
26h = T 80x60 8x8 640x480 . . . Tseng Labs EVA
= T 80x60 8x8 640x480 16/256K 3 B800 Tseng ET3000/4000 chipset
= T 80x60 . . . . . Allstar Peacock (VGA)
= T 80x60 . . 16 . . Orchid ProDesigner VGA
= T 80x60 . . 16 . . Avance Logic AL2101
= G 80x60 8x8 640x480 . . . Ahead Systems EGA2001
= G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
= G . . 640x480 256 . . Realtek RTVGA
27h = T 132x25 8x8 1056x200 mono . B000 ATI EGA Wonder,ATI VIP
= G . . 720x512 16 . . VEGA VGA
= G . . 720x512 16 . . Genoa
= G 100x75 8x8 800x600 256 1 A000 Realtek RTVGA [12]
= G . . 960x720 16 . . Avance Logic AL2101
28h = T ???x??? . . . . . VEGA VGA
= G . . 512x512 256 . . Avance Logic AL2101
= G . . 1024x768 256 . . Realtek RTVGA (1meg)
= G 160x64 8x16 1280x1024 16 . . Chips&Technologies 64310 [1]
29h = G . . 640x400 256 . . Avance Logic AL2101
= G . . 800x600 16 . . VEGA VGA
= G 100x37 8x16 800x600 16 . A000 Orchid
= G . . 800x600 16 . A000 STB,Genoa,Sigma
= G . . 800x600 16 . . Allstar Peacock (VGA)
= G 100x37 8x16 800x600 16/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 800x600 ??? . . EIZO MDB10
= G . . 800x600 16 . . Cirrus 5320 chipset
= G NA . 800x600 16 . . Compaq QVision 1024/1280
= G . . 1024x1024 256 . . Realtek RTVGA BIOS v3.C10
2Ah = T 100x40 . . . . . Allstar Peacock (VGA)
= T 100x40 8x16 800x640 16 . . Orchid Prodesigner VGA
= T 100x40 8x15 800x600 16/256K 4 B800 Tseng ET3000/4000 chipset
= T 100x40 8x15 800x600 16 . . STB Lightspeed ET4000/W32P
= G . . 640x480 256 . . Avance Logic AL2101
= G . . 1280x1024 16 . . Realtek RTVGA
2Bh = G . . 800x600 16 . . Avance Logic AL2101
2Ch = G . . 800x600 256 . . Avance Logic AL2101
2Dh = G . . 640x350 256 . . VEGA VGA
= G . . 640x350 256/256K . A000 Orchid, Genoa, STB
= G 80x25 8x14 640x350 256/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 640x350 256 . . Cirrus 5320 chipset
= G 80x25 8x14 640x350 256 . . STB Lightspeed ET4000/W32P
= G . . 768x1024 16 . . Avance Logic AL2101
2Eh = G . . 640x480 256 . . VEGA VGA
= G 80x30 8x16 640x480 256/256K . A000 Orchid
= G . . 640x480 256/256K . A000 STB,Genoa,Sigma
= G 80x30 8x16 640x480 256/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 640x480 256/256K . . Compaq QVision 1024/1280
= G . . 768x1024 256 . . Avance Logic AL2101
2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
= G . . 720x512 256 . . VEGA VGA
= G . . 720x512 256 . . Genoa
= G 80x25 8x16 640x400 256/256K 1 A000 Tseng ET4000 chipset
= G . . 1024x768 4 . . Avance Logic AL2101
30h = G 80x30 8x16 640x480 256 . . C&T 64310/65530 BIOS
= G . . . . . B800 AT&T 6300
= G . . 720x350 2 . . 3270 PC
= G . . 800x600 256 . . VEGA VGA
= G 100x37 8x16 800x600 256/256K . A000 Orchid
= G . . 800x600 256/256K . A000 STB,Genoa,Sigma
= G . . 800x600 256 . . Cardinal
= G 100x37 8x16 800x600 256/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 1024x768 16 . . Avance Logic AL2101
31h = G . . 1024x768 256 . . Avance Logic AL2101
32h = T 80x34 8x10 . 16 4 B800 Ahead B (Wizard/3270)
= G . . 640x480 256 . . Compaq QVision 1024/1280
= G 100x37 8x16 800x600 256 . . C&T 64310/65530 BIOS
33h = T 132x44 8x8 . 16 . B800 ATI EGA Wonder,ATI VIP
= T 80x34 8x8 . 16 4 B800 Ahead B (Wizard/3270)
34h = T 80x66 8x8 . 16 4 B800 Ahead B (Wizard/3270)
= G . . 800x600 256 . . Compaq QVision 1024/1280
= G 128x48 8x16 1024x768 256 . . Chips&Technologies 64310
36h = G . . 960x720 16 . . VEGA VGA, STB
= G . . 960x720 16 . A000 Tseng ET3000 only
= G . . 1280x1024 16 . . Avance Logic AL2101
37h = T 132x44 8x8 . mono . B800 ATI EGA Wonder,ATI VIP
= G . . 1024x768 16 . . VEGA VGA
= G 128x48 8x16 1024x768 16 . A000 Orchid
= G . . 1024x768 16 . A000 STB,Genoa,Sigma
= G . . 1024x768 16 . . Definicon
= G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000 chipset
= G . . 1024x768 16 . . Compaq QVision 1024/1280
= G . . 1280x1024 256 . . Avance Logic AL2101
38h = G . . 1024x768 256 . . STB VGA/EM-16 Plus (1MB)
= G 128x48 8x16 1024x768 256/256K 1 A000 Tseng ET4000 chipset
= G . . 1024x768 256 . . Orchid ProDesigner II
= G . . 1024x768 256 . . Compaq QVision 1024/1280
= G 160x64 8x16 1280x1024 256 . . Chips&Technologies 64310 [1]
39h = G . . 1280x1024 16 . . Compaq QVision 1280
3Ah = G . . 1280x1024 256 . . Compaq QVision 1280
3Bh = G . . 512x480 256 . . Compaq QVision 1024/1280
3Ch = G . . 640x400 64K . . Compaq QVision 1024/1280
3Dh = G . . 1280x1024 16 . . Definicon
= G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [1,7]
3Eh = G . . 1280x961 16 . . Definicon
= G . . 640x480 64K . . Compaq QVision 1024/1280
3Fh = G . . 1280x1024 256 . . Hercules ??? (ET4000W32)
= G . . 800x600 64K . . Compaq QVision 1024/1280
40h = T 80x43 . . . . . VEGA VGA, Tecmar VGA/AD
= T 80x43 . . . . . Video7 V-RAM VGA
= T 80x43 . . . . . Tatung VGA
= T 100x30 . . 16 . . MORSE VGA
= T 100x30 . . . . . Cirrus 510/520 chipset
= T 80x25 . 720x350 mono . . Genoa SuperEGA BIOS 3.0+
= G . . 320x200 64K . . Avance Logic AL2101
= G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
= G 80x25 8x16 640x400 2 1 B800 Olivetti Quaderno
= G 80x25 8x16 640x400 2 1 B800 Compaq Portable
= G 80x30 8x16 640x480 32K . . Chips&Technologies 64310
= G . . 1024x768 64K . . Compaq QVision 1280
41h = T 132x25 . . . . . VEGA VGA
= T 132x25 . . . . . Tatung VGA
= T 132x25 . . . . . Video7 V-RAM VGA
= T 100x50 . . 16 . . MORSE VGA
= T 100x50 . . . . . Cirrus 510/520 chipset
= T 80x34 9x14 720x476 16/256K . B800 WD90C
= T 80x34 9x14 . 16 . B800 Diamond Speedstar 24X
= G . . 512x512 64K . . Avance Logic AL2101
= G . . 640x200 16 1 . AT&T 6300
= G 80x30 8x16 640x480 64K . . Chips&Technologies 64310
= G 80x25 . 720x348 mono . B000 Genoa SuperEGA BIOS 3.0+
42h = T 132x43 . . . . . VEGA VGA
= T 132x43 . . . . . Tatung VGA
= T 132x43 . . . . . Video7 V-RAM VGA
= T 80x34 9x10 . 4 4 B800 Ahead B (Wizard/3270)
= T 100x60 . . 16 . . MORSE VGA
= T 100x60 . . . . . Cirrus 510/520 chipset
= G 80x25 8x16 640x400 16 . . AT&T 6300, AT&T VDC600
= G . . 640x400 64K . . Avance Logic AL2101
= G 80x25 . 720x348 mono . B800 Genoa SuperEGA BIOS 3.0+
= G 100x37 8x16 800x600 32K . . Chips&Technologies 64310
43h = T 80x60 . . . . . VEGA VGA
= T 80x60 . . . . . Tatung VGA
= T 80x60 . . . . . Video7 V-RAM VGA
= T 80x45 9x8 . 4 4 B800 Ahead B (Wizard/3270)
= T 100x75 . . 16 . . MORSE VGA
= T 80x29 . 720x348 mono . . Genoa SuperEGA BIOS 3.0+
= G . . 640x200 of 640x400 viewport AT&T 6300 (unsupported)
= G . . 640x480 64K . . Avance Logic AL2101
= G 100x37 8x16 800x600 64K . . Chips&Technologies 64310
44h = disable VDC and DEB output . AT&T 6300
= T 100x60 . . . . . VEGA VGA
= T 100x60 . . . . . Tatung VGA
= T 100x60 . . . . . Video7 V-RAM VGA
= T 80x32 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
= G . . 800x600 64K . . Avance Logic AL2101
45h = T 132x28 . . . . . Tatung VGA
= T 132x28 . . . . . Video7 V-RAM VGA
= T 80x44 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
46h = T 132x25 8x14 . mono . . Genoa 6400
= T 132x25 9x14 . mono . . Genoa SuperEGA BIOS 3.0+
= G 100x40 8x15 800x600 2 . . AT&T VDC600
47h = T 132x29 8x12 . mono . . Genoa 6400
= T 132x29 9x12 . mono . . Genoa SuperEGA BIOS 3.0+
= T 132x28 9x16 1188x448 16/256K . B800 WD90C
= T 132x28 9x16 . 16 . B800 Diamond Speedstar 24X
= G 100x37 8x16 800x600 16 . . AT&T VDC600
48h = T 132x32 8x12 . mono . . Genoa 6400
= T 132x32 9x11 . mono . . Genoa SuperEGA BIOS 3.0+
= G 80x50 8x8 640x400 2 . B800 AT&T 6300, AT&T VDC600
= G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno
49h = T 132x44 8x8 . mono . . Genoa 6400
= T 132x44 9x8 . mono . . Genoa SuperEGA BIOS 3.0+
= G 80x30 8x16 640x480 . . . Lava Chrome II EGA
= G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
4Bh = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
4Dh = T 120x25 . . . . . VEGA VGA
= G . . 512x480 16M . . Compaq QVision 1024/1280
= G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
4Eh = T 120x43 . . . . . VEGA VGA
= T 80x60 8x8 . 16/256K . B800 Oak OTI-067/OTI-077 [8]
= G . . 640x400 16M . . Compaq QVision 1024/1280
= G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
4Fh = T 132x25 . . . . . VEGA VGA
= T 132x60 . . . . . some Oak Tech VGA [8]
= G . . 640x480 16M . . Compaq QVision 1280
50h = T 80x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
= T 80x34 . . . . . Lava Chrome II EGA
= T 80x43 . . mono . . VEGA VGA
= T 132x25 9x14 . mono . . Ahead Systems EGA2001
= T 132x25 9x14 . 4 4 B800 Ahead B
= T 132x25 8x14 . 16 8 B800 OAK Technologies VGA-16
= T 132x25 8x14 . 16/256K . B800 Oak OTI-037/067/077 [8]
= T 132x25 8x14 1056x350 16 8 B800 UM587 chipset
= T 132x30 . . 16 . . MORSE VGA
= T 132x30 . . . . . Cirrus 510/520 chipset
= G 80x30 8x16 640x480 16 . . Paradise EGA-480
= G 80x30 8x16 640x480 16 . . NEL Electronics BIOS
= G 80x30 8x16 640x480 16M . . Chips&Technologies 64310
= G . . 640x480 mono??? . . Taxan 565 EGA
= G 40x25 8x8 320x200 . . . Genoa SuperEGA BIOS 3.0+
51h = T 80x30 8x16 . . . . Paradise EGA-480
= T 80x30 9x16 . . . . NEL Electronics BIOS
= T 80x30 . . . . . Lava Chrome II EGA
= T 80x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x25 . . mono . . VEGA VGA
= T 132x28 9x12 . 4 4 B800 Ahead B
= T 132x43 8x8 . 16 5 B800 OAK Technologies VGA-16
= T 132x43 8x8 . 16/256K . B800 Oak OTI-037/067/077
= T 132x43 8x8 1056x344 16 5 B800 UM587 chipset
= T 132x50 . . 16 . . MORSE VGA
= T 132x50 . . . . . Cirrus 510/520 chipset
= G 80x34 8x14 640x480 16 . . ATI EGA Wonder
= G 80x25 8x8 640x200 . . . Genoa SuperEGA BIOS 3.0+
52h = T 80x60 . . . . . Lava Chrome II EGA
= T 80x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x43 . . mono . . VEGA VGA
= T 132x44 9x8 . mono . . Ahead Systems EGA2001
= T 132x44 9x8 . 4 2 B800 Ahead B
= T 132x60 . . 16 . . MORSE VGA
= T 132x60 . . . . . Cirrus 510/520 chipset
= G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji&superimpose)
= G 94x29 8x14 752x410 16 . . ATI EGA Wonder
= G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
= G 100x75 8x8 800x600 16 . A000 Oak OTI-037 chipset [8]
= G 100x37 8x16 800x600 16 . A000 Oak OTI-067/077 chips [8]
= G 100x75 8x8 800x600 16 . A000 UM587 chipset
= G 128x30 8x16 1024x480 16 . . NEL Electronics BIOS
53h = T 80x25 8x16 . . . . NEL Electronics BIOS
= T 80x60 . . 16 . . MORSE VGA
= T 80x60 . . . . . Cirrus 510/520 chipset
= T 132x25 8x14 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x43 . . . . . Lava Chrome II EGA
= G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji, no superimp.)
= G . . 640x480 256 . . Oak VGA
= G 80x30 8x16 640x480 256 . A000 Oak OTI-067/OTI-077 [8]
= G 100x40 8x14 800x560 16 . . ATI EGA Wonder,ATI VIP
= G . . . . . . AX PC
54h = T 132x25 . . . . . Lava Chrome II EGA
= T 132x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x43 8x8 . . . . Paradise EGA-480
= T 132x43 8x8 . . . . NEL Electronics BIOS
= T 132x43 7x9 . 16/256K . B800 Paradise VGA
= T 132x43 8x9 . 16/256K . B800 Paradise VGA on multisync
= T 132x43 . . . . . Taxan 565 EGA
= T 132x43 . . . . . AST VGA Plus
= T 132x43 . . . . . Hewlett-Packard D1180A
= T 132x43 7x9 . 16 . . AT&T VDC600
= T 132x43 9x9 1188x387 16/256K . B800 WD90C
= T 132x43 9x9 1188x387 16/256K . B800 Diamond Speedstar 24X
= T 132x43 9x9 1188x387 16/256K . B800 Diamond Stealth 24
= T 132x43 8x8 . . . B800 Diamond Stealth64 Video 2xx1
= T 132x43 8x8 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
= T 132x50 8x8 . 16 . A000 NCR 77C22 [9]
= G 100x42 8x14 800x600 16 . A000 ATI EGA Wonder, VGA Wonder
= G 100x42 8x14 800x600 16 . A000 ATI Ultra 8514A, ATI XL
= G . . 800x600 256 . A000 Oak VGA
= G 100x37 8x16 800x600 256 . A000 Oak OTI-067/077 chips [8]
55h = T 80x66 8x8 . 16/256K . A000 ATI VIP
= T 132x25 8x14 . . . . Paradise EGA-480
= T 132x25 8x14 . . . . NEL Electronics BIOS
= T 132x25 7x16 . 16/256K . B800 Paradise VGA
= T 132x25 8x16 . 16/256K . B800 Paradise VGA on multisync
= T 132x25 . . . . . Taxan 565 EGA
= T 132x25 . . . . . AST VGA Plus
= T 132x25 . . . . . Hewlett-Packard D1180A
= T 132x25 7x16 . 16 . . AT&T VDC600
= T 132x25 8x16 . 16 . A000 NCR 77C22 [9]
= T 132x25 9x16 1188x400 16/256K . B800 WD90C
= T 132x25 9x16 1188x400 16/256K . B800 Diamond Speedstar 24X
= T 132x25 9x16 1188x400 16/256K . B800 Diamond Stealth 24
= T 132x25 8x16 . . . B800 Diamond Stealth64 Video 2xx1
= T 132x25 8x14 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
= T 132x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
= G 94x29 8x14 752x410 . . . Lava Chrome II EGA
= G 128x48 8x16 1024x768 16/256K . A000 ATI VGA Wonder v4+ [5]
= G . . 1024x768 16/256K . . ATI VGA Wonder Plus
= G . . 1024x768 16/256K . . ATI Ultra 8514A,ATI XL
= G 128x48 8x16 1024x768 4 . A000 Oak OTI-067/077 chips [8]
56h = T 132x43 8x8 . 3??? 2 B000 NSI Smart EGA+
= T 132x43 7x9 . 4 . B000 Paradise VGA
= T 132x43 8x9 . 4 . B000 Paradise VGA on multisync
= T 132x43 . . mono . . Taxan 565 EGA
= T 132x43 7x9 . 2 . . AT&T VDC600
= T 132x43 9x8 . . . . NEL Electronics BIOS
= T 132x50 8x8 . 4 . A000 NCR 77C22 [9]
= T 132x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
= G . . 1024x768 16 . A000 Oak VGA
= G 128x48 8x16 1024x768 16 . A000 Oak OTI-067/077 chips [8]
57h = T 132x25 8x14 . 3??? 4 B000 NSI Smart EGA+
= T 132x25 7x16 . 4 . B000 Paradise VGA
= T 132x25 8x16 . 4 . B000 Paradise VGA on multisync
= T 132x25 9x14 . . . . NEL Electronics BIOS
= T 132x25 . . mono . . Taxan 565 EGA
= T 132x25 7x16 . 2 . . AT&T VDC600
= T 132x25 9x14 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x25 8x16 . 4 . A000 NCR 77C22 [9]
= G 96x48 8x16 768x1024 16 . A000 Oak OTI-067/077 chips [8]
58h = T 80x33 8x14 . 16 . B800 ATI EGA Wonder,ATI VIP
= T 80x32 9x16 . 16 . . Genoa 6400
= T 80x43 8x8 . . . . NEL Electronics BIOS
= T 132x30 9x16 . 16/256K . B800 Trident TVGA 8800/8900
= G 100x75 8x8 800x600 16/256K . A000 Paradise VGA
= G 100x75 8x8 800x600 16 . . AT&T VDC600
= G 100x75 8x8 800x600 16 . A000 NCR 77C22 [9]
= G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
= G 100x75 8x8 800x600 16/256K . A000 Paradise VGA, WD90C
= G . . 800x600 16 . . AST VGA Plus, Compaq VGA
= G . . 800x600 16 . . Dell VGA
= G . . 800x600 16 . . Hewlett-Packard D1180A
= G . . 800x600 ??? . . ELT VGA PLUS 16
= G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
= G 160x64 8x16 1280x1024 16 . A000 Oak OTI-077 chipset [8]
59h = T 80x43 9x8 . . . . NEL Electronics BIOS
= T 80x66 8x8 . 16/256K . A000 ATI VIP
= T 132x43 9x11 . 16/256K . B800 Trident TVGA 8800/8900
= G 100x75 8x8 800x600 2 . A000 Paradise VGA
= G 100x75 8x8 800x600 2 . . AT&T VDC600
= G . . 800x600 2 . . AST VGA Plus, Compaq VGA
= G . . 800x600 2 . . Dell VGA
= G . . 800x600 2 . . Hewlett-Packard D1180A
= G 100x75 8x8 800x600 2 . A000 NCR 77C22 [9]
= G 128x48 8x16 1024x768 256 . A000 Oak OTI-077 chipset [8]
5Ah = T 80x60 8x8 . . . . NEL Electronics BIOS
= T 132x60 9x8 . 16/256K . B800 Trident TVGA 8800/8900
= G 128x48 8x16 1024x768 2 . A000 NCR 77C22 [9]
5Bh = T 80x30 8x16 . . . B800 ATI VGA Wonder (undoc)
= G . . 640x350 256 . . Genoa 6400
= G 80x25 8x16 640x400 32K . A000 Oak OTI-067/077 chips [8]
= G . . 800x600 16 . . Maxxon, SEFCO TVGA, Imtec
= G 100x75 8x8 800x600 16/256K . A000 Trident TVGA 8800, 8900
= G . . 800x600 ??? . . Vobis MVGA
= G 100x37 8x16 800x600 . . . NEL Electronics BIOS
= G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [1,9]
5Ch = T 100x37 8x16 . . . . NEL Electronics BIOS
= G . . 640x400 256 . . Logix, ATI Prism Elite
= G . . 640x400 256 . . Maxxon, SEFCO TVGA, Imtec
= G 80x25 8x16 640x400 256/256K . A000 Zymos Poach, Hi Res 512
= G 80x25 8x16 640x400 256/256K . A000 Trident TVGA 8800/8900
= G 80x30 8x16 640x480 256 . . Genoa 6400
= G 80x30 8x16 640x480 32K . A000 Oak OTI-077 chipset [8]
= G 100x75 8x8 800x600 256 . A000 NCR 77C22 [9]
= G 100x75 8x8 800x600 256/256K . A000 WD90C
= G 100x75 8x8 800x600 256/256K . A000 Diamond Speedstar 24X
= G 100x37 8x16 800x600 256/256K . A000 Cirrus CL-GD5420/5422/5426
5Dh = T 100x75 8x8 . . . . NEL Electronics BIOS
= G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
= G . . 640x480 256 . . Logix, ATI Prism Elite
= G . . 640x480 256 . . Maxxon, SEFCO TVGA, Imtec
= G 80x30 8x16 640x480 256/256K . A000 Zymos Poach, Hi Res 512
= G 80x30 8x16 640x480 256/256K . A000 Trident TVGA 8800 (512K)
= G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [9]
= G 128x48 8x16 1024x768 16/256K . A000 WD90C
= G 128x48 8x16 1024x768 16 . A000 Diamond Speedstar 24X
= G 128x48 8x16 1024x768 16/256K . A000 Cirrus CL-GD5420/5422/5426
5Eh = G . . 640x400 256 . . Paradise VGA,VEGA VGA
= G . . 640x400 256 . . AST VGA Plus, NCR 77C22
= G . . 640x400 256 . . Compaq VGA, Dell VGA
= G 80x25 8x16 640x400 256 . . AT&T VDC600
= G 80x25 8x16 640x400 256 . A000 NCR 77C22 [9]
= G 80x25 8x16 640x400 256/256K . A000 WD90C
= G 80x25 8x16 640x400 256/256K . A000 Diamond Speedstar 24X
= G . . 800x600 16 . . Logix, ATI Prism Elite
= G 100x37 8x16 800x600 16 . . NEL Electronics BIOS
= G 100x75 8x8 800x600 256 . . Genoa 6400
= G 100x75 8x8 800x600 256/256K . A000 Zymos Poach, Trident 8900
= G 100x75 8x8 800x600 256/256K . A000 Hi Res 512
5Fh = G 80x25 8x16 640x400 64K . . STB Lightspeed ET4000/W32P
= G . . 640x480 256 . . Paradise VGA
= G . . 640x480 256 . . AST VGA Plus, NCR 77C22
= G . . 640x480 256 . . Compaq VGA, Dell VGA
= G . . 640x480 256 . . Hewlett-Packard D1180A
= G 80x30 8x16 640x480 256 . . AT&T VDC600 (512K)
= G 80x30 8x16 640x480 256 . A000 NCR 77C22 [9]
= G 80x30 8x16 640x480 256/256K . A000 WD90C
= G 80x30 8x16 640x480 256/256K . A000 Diamond Speedstar 24X
= G 80x30 8x16 640x480 256/256K . A000 Cirrus CL-GD5420/5422/5426
= G . . 1024x768 16 . . Logix, ATI Prism Elite
= G . . 1024x768 16 . . Maxxon, Imtec
= G 128x48 8x16 1024x768 16 . . Genoa 6400
= G 128x48 8x16 1024x768 16/256K . A000 Zymos Poach, Hi Res 512
= G 128x48 8x16 1024x768 16/256K . A000 Trident TVGA 88/8900 512K
60h = T 132x25 8x14 . 16/64 8 B800 Quadram Ultra VGA
= T 132x25 8x14 . 16 . . Genoa 6400
= T 132x25 8x14 . 16 . . Genoa SuperEGA BIOS 3.0+
= T 132x25 . . . . . Cirrus 5320 chipset
= T 132x25 8x16 1056x400 16 . B800 Chips&Technologies chipset
= G 80x??? . ???x400 . . . Corona/Cordata BIOS 4.10+
= G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
= G . . 752x410 . . . VEGA VGA
= G . . 752x410 16 . . Tatung VGA
= G . . 752x410 16 . . Video7 V-RAM VGA
= G 128x48 8x16 1024x768 4/256K . A000 Trident TVGA 8900
= G 128x48 8x16 1024x768 256/256K . A000 WD90C
= G 128x48 8x16 1024x768 256/256K . A000 Diamond Speedstar 24X
= G 128x48 8x16 1024x768 256/256K . A000 Cirrus CL-GD5420/5422/5426
= G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
61h = T 132x29 8x12 . 16/64 8 B800 Quadram Ultra VGA
= T 132x29 8x8 . 16 . . Genoa 6400
= T 132x29 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
= T 132x50 . . . . . Cirrus 5320 chipset
= T 132x50 8x8 1056x400 16 . B800 Chips&Technologies chipset
= T 132x50 8x16 1056x800 16 . B800 Chips&Technologies 64310
= G . . ???x400 . . . Corona/Cordata BIOS 4.10+
= G 80x25 8x16 640x400 256 . A000 ATI VGA Wonder,VGA Wonder+
= G 80x25 8x16 640x400 256 . A000 ATI Ultra 8514A,ATI XL
= G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
= G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
= G . . 720x540 . . . VEGA VGA
= G . . 720x540 16 . . Tatung VGA
= G . . 720x540 16 . . Video7 V-RAM VGA
= G 96x64 8x16 768x1024 16/256K . A000 Trident TVGA 88/8900 512K
= G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [1,9]
= G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
62h = T 132x32 8x11 . 16/64 6 B800 Quadram Ultra VGA
= T 132x32 8x12 . 16 . . Genoa 6400
= T 132x32 8x11 . 16 . . Genoa SuperEGA BIOS 3.0+
= T 132x43 8x8 1056x344 16 . B800 C&T 82C450 BIOS
= G . . 640x450 16 . . Cirrus 510/520 chipset
= G 80x30 8x16 640x480 256 . A000 ATI VGA Wonder,VGA Wonder+
= G 80x30 8x16 640x480 256 . A000 ATI Ultra 8514A,ATI XL
= G 80x30 8x16 640x480 32K . A000 WD90C
= G 80x30 8x16 640x480 32K . A000 Diamond Speedstar 24X
= G . . 800x600 . . . VEGA VGA
= G . . 800x600 16 . . Tatung VGA
= G . . 800x600 16 . . Video7 V-RAM VGA
= G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
= G 128x48 8x16 1024x768 256/256K . A000 Trident TVGA 8900, Zymos
= G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [9]
63h = T 132x44 8x8 . 16/64 5 B800 Quadram Ultra VGA
= T 132x44 8x8 . 16 . . Genoa 6400
= T 132x44 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
= G . . 720x540 16 . . MORSE VGA
= G . . 720x540 16 . . Cirrus 510/520 chipset
= G 100x42 8x14 800x600 256 . A000 ATI VGA Wonder,VGA Wonder+
= G 100x42 8x14 800x600 256 . A000 ATI Ultra 8514A,ATI XL
= G . . 800x600 32K . A000 WD90C
= G . . 800x600 32K . A000 Diamond Speedstar 24X
= G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
= G . . 1024x768 2 . . Video7 V-RAM VGA
64h = T 132x60 8x8 . 16 . . Genoa 6400
= T 80x43 8x8 528x344 16 . B800 C&T 82C450 BIOS
= G . . 640x480 64K . A000 Cirrus CL-GD 5422/5426
= G . . 800x600 16 . . MORSE VGA
= G . . 800x600 16 . . Cirrus 510/520 chipset
= G . . 800x600 ??? . . SAMPO-Mira VGA
= G . . 1024x768 4 . . Video7 V-RAM VGA
= G 128x48 8x16 1024x768 256 . A000 ATI VGA Wonder Plus,ATI XL
= G 160x64 8x16 1280x1024 16/256K . A000 WD90C [1]
= G 160x64 8x16 1280x1024 16/256K . A000 Diamond Speedstar 24X [1]
65h = T 80x50 8x8 528x400 16 . B800 C&T 82C450 BIOS
= G . . 800x600 64K . A000 Cirrus CL-GD 5422/5426
= G . . 1024x768 16 . . Video7 V-RAM VGA
= G 128x48 8x16 1024x768 16 . A000 ATI VGA Wonder
66h = T 80x50 8x8 640x400 16/256K . B800 WD90C
= T 80x50 8x8 . 16 . B800 Diamond Speedstar 24X
= G . . 640x400 256 . . Tatung VGA
= G . . 640x400 256 . . Video7 V-RAM VGA
= G . . 640x480 32K . A000 Cirrus CL-GD 5422/5426
67h = T 80x43 8x8 640x344 16/256K . B800 WD90C
= T 80x43 8x8 . 16 . B800 Diamond Speedstar 24X
= G . . 640x480 256 . . Video7 V-RAM VGA
= G . . 800x600 32K . A000 Cirrus CL-GD 5422/5426
= G 128x48 8x16 1024x768 4 . A000 ATI VGA Wonder
= G 160x64 8x16 1280x1024 16 . A000 NCR 77C22 [1,9]
68h = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
69h = T 132x50 8x8 1056x400 16/256K . B800 WD90C
= T 132x50 8x8 . 16 . B800 Diamond Speedstar 24X
= G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
= G . . 720x540 256 . A000 Video7 V-RAM VGA
6Ah = G . . 800x600 16 . A000 VESA standard interface
= G 100x75 8x8 800x600 16 . A000 Genoa 6400
= G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
= G . . 800x600 16 . A000 Ahead A
= G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) [see 71h]
= G . . 800x600 16 . . Zymos Poach, Hi Res 512
= G . . 800x600 16 . . Epson LT-386SX in CRT Mode
= G . . 800x600 16 . . Compuadd 316SL in CRT Mode
= G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
= G 100x37 8x16 800x600 16 . A000 Diamond Stealth64 Video 2xx1
= G 100x42 8x14 800x600 . . A000 ATI VGA Wonder (undoc)
= G . . 800x600 16 . A000 Chips&Technologies chipset
= G 160x64 8x16 1280x1024 256 . A000 NCR 77C22 [1,9]
6Bh = T 100x37 8x16 . 16 . . Genoa 6400
= T 100x37 8x16 . . . . NEL Electronics BIOS
= G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
6Ch = G 80x30 8x16 640x480 16M . A000 Trident 8900CL/BIOS C04
= G 100x75 8x8 800x600 256 . . Genoa 6400
= G 128x48 8x16 1024x768 2 . A000 Diamond Stealth64 Video 2xx1
= G 160x60 8x16 1280x960 16/256K . A000 WD90C [1]
= G 160x60 8x16 1280x960 16/256K . A000 Diamond Speedstar 24X [1]
= G 160x64 8x16 1280x1024 16/256K . A000 Cirrus CL-GD 5422/5426 [1]
6Dh = G 80x25 8x14 640x350 64K . A000 STB Lightspeed ET4000/W32P
= G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
= G 160x64 8x16 1280x1024 256/256K . A000 Cirrus CL-GD 5422/5426 [1]
6Eh = G 40x25 8x8 320x200 64K . A000 Cirrus CL-GD 5422/5426
= G 160x64 8x16 1280x1024 2 . A000 Diamond Stealth64 Video 2xx1
6Fh = G 40x25 8x8 320x200 16M . A000 Cirrus CL-GD 5422/5426
= G 160x64 8x16 1280x1024 . . A000 Diamond Stealth64 Video 2xx1
70h = extended mode set (see AX=0070h) . Everex Micro Enhancer EGA
= T 40x25 8x8 . 16 8 B800 Quadram (CGA double scan)
= T 40x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
= G . . 360x480 256 . . Cirrus 510/520/5320 chips
= G 90x28 8x14 720x392 16 1 A000 Ahead B
= G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
= G 100x38 8x16 800x600 16 . A000 C&T chipset, Cardinal
= G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
71h = T 80x25 8x8 . 16 8 B800 Quadram (CGA double scan)
= T 80x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
= G . . 528x400 256 . . Cirrus 510/520 chipset
= G 80x30 8x16 640x480 16M . A000 Cirrus CL-GD 5422/5426
= G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
= G 100x35 8x16 800x600 16/64 . A000 NSI Smart EGA+
= G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
= G . . 960x720 16 . . C&T chipset, Cardinal
= G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
72h = T 80x60 8x8 . 16 . B800 Quadram Ultra VGA
= T 80x60 8x8 . 16 . B800 Genoa 6400
= T 80x60 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
= G . . 528x480 256 . . Cirrus 510/520 chipset
= G 80x25 8x19 640x480 16 1 A000 DOS/V w/ any VGA
= G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
= G . . 640x480 32K . A000 ATI
= G . . 640x480 16M . A000 WD90C
= G . . 640x480 16M . A000 Diamond Speedstar 24X
= G . . 1024x768 16 . . C&T chipset, Cardinal
= G 128x48 8x16 1024x768i 16 . A000 C&T 82C450 BIOS
= G 128x48 8x16 1024x768 16 . A000 C&T 65530 BIOS (multisync)
73h = G 80x60 8x8 640x480 16 . A000 Quadram Ultra VGA
= G 80x60 8x8 640x480 16 . . Genoa 6400
= G 80x60 8x8 640x480 16 . . Genoa SuperEGA BIOS 3.0+
= G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
= T 80x25 8x19 640x475 16 1 none DOS/V, emulated in VGA graph
74h = T 80x66 8x8 . 16 . B800 Quadram Ultra VGA
= T 80x66 8x8 . 16 . B800 Genoa 6400
= T 80x66 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
= G . . 640x400 2 . B800 Toshiba 3100 AT&T mode
= G 80x30 8x16 640x480 32K . A000 Trident 8900C/BIOS C03
= G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
= G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
= G . . 1024x768 64K . A000 Cirrus CL-GD 5422/5426 [1]
75h = G 80x30 8x16 640x480 64K . A000 Trident 8900C/BIOS C03
= G 80x66 . 640x528 16??? . A000 Quadram Ultra VGA
= G 80x66 . 640x528 16 . . Genoa SuperEGA BIOS 3.0+
= G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
= G 128x48 8x16 1024x768 4 1 A000 Ahead B
= G 128x48 8x16 1024x768 16 . A000 Chips&Technologies 64310
76h = T 94x29 8x14 . 16 . B800 Quadram Ultra VGA
= T 94x29 8x14 . . . . Genoa SuperEGA BIOS 3.0+
= G 100x75 8x8 800x600 32K . A000 Trident 8900C/BIOS C03
= G 128x48 8x16 1024x768 2 1 A000 Ahead B
= G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
= G 160x64 8x16 1280x1024 16 . A000 Chips&Technologies 64310 [1]
77h = G 94x29 . 752x410 16??? . A000 Quadram Ultra VGA
= G 94x29 . 752x410 16 . . Genoa SuperEGA BIOS 3.0+
= G 100x75 8x8 800x600 64K . A000 Trident 8900C/BIOS C03
= G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
78h = T 100x37 8x16 . 16 . . Genoa 6400
= T 100x75 8x8 . 16 . B800 Quadram Ultra VGA
= T 100x75 8x8 . . . . Genoa SuperEGA BIOS 3.0+
= G . . 640x400 256 . . STB VGA/EM-16 Plus
= G 80x25 8x16 640x400 256 . . Cardinal, C&T chipset
= G . . 640x400 256 . . Cirrus 5320 chipset
= G 80x25 8x16 640x400 256 . A000 Chips&Technologies 64310
79h = G 80x30 8x16 640x480 256 . . Cardinal, C&T chipset
= G 80x30 8x16 640x480 256 . A000 Chips&Technologies 64310
= G 100x75 . 800x600 16??? . A000 Quadram Ultra VGA
= G 100x75 8x8 800x600 16 . . Genoa SuperEGA BIOS 3.0+
= G 100x75 8x8 800x600 16 . . Genoa 6400
7Ah = T 114x60 8x8 . 16 . B800 Quadram Ultra VGA
= T 114x60 8x8 . . . . Genoa SuperEGA BIOS 3.0+
= G . . 720x540 256 . . C&T chipset, Cardinal
7Bh = G . . 800x600 256 . . C&T chipset, Cardinal
= G 114x60 . 912x480 16??? . A000 Quadram Ultra VGA
= G . . 912x480 16 . . Genoa SuperEGA BIOS 3.0+
7Ch = G . . 512x512 16 . . Genoa
= G 100x37 8x16 800x600 256 . . C&T 82C453/F65530 chipsets
= G 100x37 8x16 800x600 256 . A000 Chips&Technologies 64310
= G 200x75 8x16 1600x1200 . [16] . A000 Diamond Stealth64 Video 2xx1
7Dh = G 64x32 8x16 512x512 256 . . Genoa
7Eh = special mode set (see AX=007Eh) . Paradise VGA, AT&T VDC600
= G 80x25 8x16 640x400 256 . . Genoa 6400
= G . . 1024x768 256 . . C&T 82C453 chipset
= G 128x48 8x16 1024x768 256 . A000 Chips&Technologies 64310
= G 90x43 . . mono . B000 HERCULES.COM on HGC [14]
7Fh = special function set (see AX=007Fh/BH=00h) Paradise VGA, AT&T VDC600
= G 128x48 8x16 1024x768 4 . . Genoa 6400
= G 90x29 . . mono . B000 HERCULES.COM on HGC [14]
82h = T 80x25 . . B&W . . AT&T VDC overlay mode [6]
83h = T 80x25 . . . . . AT&T VDC overlay mode [6]
86h = G . . 640x200 B&W . . AT&T VDC overlay mode [6]
88h = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
C0h = G . . 640x400 2/prog palette . AT&T VDC overlay mode [6]
= G . . 640x400 2/prog palette . Olivetti Quaderno overlay
C4h = disable output . . . . AT&T VDC overlay mode [6]
C8h = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno overlay
D0h = G . . 640x400 2 . B800 DEC VAXmate AT&T mode
Notes:
[1] interlaced only
[2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
otherwise to mode 23h, thus selecting the appropriate (monochrome or
color) 132x25 character mode.
for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
resident
[3] early XGA boards support 132-column text but do not have this BIOS mode
[4] DESQview intercepts calls to change into these two modes (21h is page 0,
22h is page 1) even if there is no Hercules graphics board installed
[5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
[6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
40h, or 44h
[7] BIOS text support is broken in this undocumented mode; scrolling moves
only about 1/3 of the screen (and does even that portion incorrectly),
while screen clears only clear about 3/4.
[8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
may choose to use only partially or not at all; thus, not all Oak boards
support all "Oak" modes listed here
[9] this card uses the full 128K A000h-BFFFh range for the video buffer,
precluding the use of a monochrome adapter in the same system
[10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 1990/09/14, but not
v8.01X dated 1992/02/28; mode 21h supported by 1992/02/28 version but not
1990/09/14 version
[11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
installation check for HERKULES.COM is the signature "Herkules" two
bytes beyond the INT 10 handler
[12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into
modes 21h or 27h; this version of the BIOS also sets the BIOS data area
incorrectly for extended text modes, resulting in scrolling after only
24 lines (the VMODE.EXE utility does set the data area correctly)
[13] The Tandy 1000SL/TL BIOS does not actually support this mode
[14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
graphics cards by Soft Warehouse, Inc. Its installation check is to
test whether the word preceding the INT 10 handler is 4137h.
[15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
Tutelman) may be changed by a command-line switch; the 90x43
character-cell mode's number is always one higher than the 90x29 mode
(whose default is mode 08h)
[16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch,
resulting in incorrect scrolling for TTY output (scrolling occurs only
after the end of the 76th line, which is not displayed)
[17] For 43-line text on EGA or 43/50-line text on VGA, you must load an 8x8
font using AX=1102h after switching to mode 3; VGA may also require
using INT 10/AH=12h/BL=30h
SeeAlso: #00011,#00083,#00191
Index: video modes
Index: installation check;HERKULES|installation check;HERCULES.COM
Top
INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
AX = 0070h
BL = mode (see #00011)
Desc: specify a proprietary display mode on the Everex Micro Enhancer or
Viewpoint video adapters
SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
(Table 00011)
Values for Everex video mode:
text/ text pixel pixel colors disply scrn monitor adapter
grph resol box resolution pages addr
00h = G . . 640x480 16 . . multisync EGA,VGA
01h = G . . 752x410 16 . . multisync EGA,VGA
02h = G . . 800x600 16 . . multisync EGA,VGA
03h = T 80x34 . . . . . multisync EGA,VGA
04h = T 80x60 . . . . . multisync EGA,VGA
05h = T 94x29 . . . . . multisync EGA only
06h = T 94x51 . . . . . multisync EGA only
07h = T 100x43 8x14 . 16 . . . VGA only
08h = T 100x75 8x8 . 16 . . . VGA only
09h = T 80x44 . . . . . EGA EGA only
0Ah = T 132x25 . . . . . EGA EGA,VGA
0Bh = T 132x44 . . . . . EGA EGA,VGA
0Ch = T 132x25 . . . . . CGA EGA only
0Dh = T 80x44 . . . . . mono EGA only
0Eh = T 132x25 . . . . . mono
0Fh = T 132x44 . . . . . mono
10h = reserved
11h = G . . 1280x350 4 . . . EGA only
12h = G . . 1280x600 4 . . . EGA only
13h = G . . 640x350 256 . . . EGA,EV673
14h = G . . 640x400 256 . . .
15h = G . . 512x480 256 . . .
16h = T 80x30 8x16 . 256 . . . VGA only
18h = T 100x27 8x16 . 16 . . . VGA only
20h = G . . 1024x768 16 . . . Everex 629,678
. . . . . . . Everex EV-673
21h = T 160x64 8x16 1280x1024 16 . . . 1MB VGA only
30h = G . . 640x480 256 . . . Everex 629,678
. . . . . . . Everex EV-673
31h = G . . 800x600 256 . . . Everex 629,678
. . . . . . . Everex EV-673
32h = G 128x48 8x16 1024x768 256 . . . 1MB VGA only
40h = T 132x30 8x16 . 16 . . . VGA only
50h = T 132x32 8x16 . mono . . . VGA only
62h = G 40x25 8x8 320x200 32K . . . Vwpt TC (EV629)
70h = G 64x30 8x16 512x480 32K . . . Viewpoint TC
71h = G 80x30 8x16 640x480 32K . . . Viewpoint TC
76h = G 64x30 8x16 512x480 16M . . . Viewpoint TC
77h = G 80x30 8x16 640x480 16M . . . Viewpoint TC
SeeAlso: #00010,#00191
Index: video modes;Everex
Top
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE AX = 007Eh BX = horizontal dimension of the mode desired CX = vertical dimension of the mode desired (both BX/CX in pixels for graphics modes, rows for alpha modes) DX = number of colors of the mode desired (0000h for monochrome modes) Return: BH = 7Eh if successful (Paradise VGA) AL = 7Eh if successful (AT&T VDC600) Desc: specify a display mode by resolution rather than mode number SeeAlso: AH=00h,AX=0070h,AX=007Fh/BH=00h,AX=6F05h,AH=FFh"GO32" Index: video modes;Paradise|video modes;AT&TTop
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION AX = 007Fh BH = 00h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02hTop
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION AX = 007Fh BH = 01h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful Note: color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome mode 7 will set non-VGA MDA/Hercules operation SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02hTop
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS AX = 007Fh BH = 02h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful ---if successful--- BL = 00h if operating in VGA mode, 01h if non-VGA mode CH = total video RAM size in 64k byte units CL = video RAM used by the current mode Note: under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K video memory in CX SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01hTop
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE AX = 007Fh BH = 03h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful Desc: allows current mode (VGA or non-VGA) to survive re-boot SeeAlso: AX=007Eh,AX=007Fh/BH=04h,AX=007Fh/BH=06h,AH=FFh"Oak"Top
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE AX = 007Fh BH = 04h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"Top
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE AX = 007Fh BH = 05h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=04h,AH=FFh"Oak"Top
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE AX = 007Fh BH = 06h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful Note: this function also switches to video mode 7 SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=07h,AH=FFh"Oak"Top
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE AX = 007Fh BH = 07h Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful Note: this function also switches to video mode 3 SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=06h,AH=FFh"Oak"Top
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS AX = 007Fh BH = function 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh WRITE PARADISE REGISTERS 0,1,2,3,4,5 (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh) BL = value to set in the paradise register 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5 (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh) Return: BL = value of the paradise register BH = 7Fh if successful 29h-2Fh ??? (Paradise VGA for Dell, 1991/07/24) Return: AL = 7Fh if successful (AT&T VDC600) BH = status (Paradise/Dell) 00h invalid function 7Fh successful SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"Top
INT 10 - Paradise VGA - ??? AX = 007Fh BH = 60h BL = ??? (00h-13h) ??? Return: BH = status (00h failed or not supported, 7Fh successful) ??? Note: this function is supported by the 1993/5/14 ROM for the Dell 486D SeeAlso: AX=007Fh/BH=61hTop
INT 10 - Paradise VGA - ??? AX = 007Fh BH = 61h ES:DI -> buffer for list of ??? (see #00012) Return: BH = status (00h failed or not supported, 7Fh successful) ??? Note: this function is supported by the 1993/5/14 ROM for the Dell 486D SeeAlso: AX=007Fh/BH=60h Format of Paradise VGA list entry: Offset Size Description (Table 00012) 00h BYTE ??? or 00h if end of list 01h BYTE ??? 02h WORD ??? 04h WORD ??? 06h WORD ???Top
INT 10 - Paradise VGA - ??? AX = 007Fh BX = A500h ??? Return: BH = status (00h failed or not supported, 7Fh successful) ??? Note: this function is supported by the 1993/5/14 ROM for the Dell 486D SeeAlso: AX=007Fh/BH=A6hTop
INT 10 - Paradise VGA - ??? AX = 007Fh BH = A5h BL = ??? bits 3-0: ??? (0-4) bits 5,4: ??? ??? Return: BH = status (00h failed or not supported, 7Fh successful) ??? Note: this function is supported by the 1993/5/14 ROM for the Dell 486DTop
INT 10 - Paradise VGA - ??? AX = 007Fh BH = A6h ??? Return: BH = status (00h failed or not supported, 7Fh successful) ??? Note: this function is supported by the 1993/5/14 ROM for the Dell 486D SeeAlso: AX=007Fh/BH=A5hTop
INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE AH = 01h CH = cursor start and options (see #00013) CL = bottom scan line containing cursor (bits 0-4) Return: nothing Desc: specify the starting and ending scan lines to be occupied by the hardware cursor in text modes Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but returns unmapped cursor shape UltraVision scales size to the current font height by assuming 14-line monochrome and 8-line color fonts; this call is not valid if cursor emulation has been disabled applications which wish to change the cursor by programming the hardware directly on EGA or above should call INT 10/AX=1130h or read 0040h:0085h first to determine the current font height on some adapters, setting the end line greater than the number of lines in the font will result in the cursor extending to the top of the next character cell on the right BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL is not equal to the current video mode SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#03885 Bitfields for cursor start and options: Bit(s) Description (Table 00013) 7 should be zero 6,5 cursor blink (00=normal, 01=invisible, 10=erratic, 11=slow) (00=normal, other=invisible on EGA/VGA) 4-0 topmost scan line containing cursorTop
INT 10 - VIDEO - SET CURSOR POSITION AH = 02h BH = page number 0-3 in modes 2&3 0-7 in modes 0&1 0 in graphics modes DH = row (00h is top) DL = column (00h is left) Return: nothing SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050hTop
INT 10 - VIDEO - GET CURSOR POSITION AND SIZE AH = 03h BH = page number 0-3 in modes 2&3 0-7 in modes 0&1 0 in graphics modes Return: AX = 0000h (Phoenix BIOS) CH = start scan line CL = end scan line DH = row (00h is top) DL = column (00h is left) Notes: a separate cursor is maintained for each of up to 8 display pages many ROM BIOSes incorrectly return the default size for a color display (start 06h, end 07h) when a monochrome display is attached With PhysTechSoft's PTS ROM-DOS the BH value is ignored on entry. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h,MEM 0040h:0050h,MEM 0040h:0060hTop
INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA) AH = 04h Return: AH = light pen trigger flag 00h not down/triggered 01h down/triggered DH,DL = row,column of character light pen is on CH = pixel row (graphics modes 04h-06h) CX = pixel row (graphics modes with >200 rows) BX = pixel column Desc: determine the current position and status of the light pen (if present) Notes: on a CGA, returned column numbers are always multiples of 2 (320- column modes) or 4 (640-column modes) returned row numbers are only accurate to two linesTop
INT 10 - HUNTER 16 - GET CURSOR ADDRESS AH = 04h BH = page Return: DH = row (0..24) DL = column (0..79) CH = cursor pixel Y-address (0..199) CL = cursor pixel X-address (0..639) Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. pixel coordinates are for the lower left corner of the character cell containing the cursor SeeAlso: AH=60h"HUNTER"Top
INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE AH = 05h AL = new page number (00h to number of pages - 1) (see #00010) Return: nothing Desc: specify which of possibly multiple display pages will be visible Note: to determine whether the requested page actually exists, use AH=0Fh to query the current page after making this call SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h,MEM 0040h:004EhTop
INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER AX = 0500h BX = segment of buffer Return: nothing Desc: set the address of graphics bitmap buffer for video modes 60h and 61h SeeAlso: AX=050Fh"Corona"Top
INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER AX = 050Fh Return: DX = segment of graphics bitmap buffer Desc: get the address of graphics bitmap buffer for video modes 60h and 61h SeeAlso: AX=0500h"Corona"Top
INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS AX = 0580h Return: BH = CRT page register BL = CPU page register Notes: the CPU page determines which 16K block of the first 128K of physical memory will be mapped at B800h by the hardware the CRT page determines the start address of the memory used by the video controller SeeAlso: AH=05h"SET CRT/CPU"Top
INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS AH = 05h AL = subfunction 81h set CPU page register BL = CPU page 82h set CRT page register BH = CRT page 83h set both CPU and CRT page registers BL = CPU page BH = CRT page Return: nothing Notes: the CPU page determines which 16K block of the first 128K of physical memory will be mapped at B800h by the hardware the CRT page determines the start address of the memory used by the video controller SeeAlso: AX=0580hTop
INT 10 - VIDEO - SCROLL UP WINDOW AH = 06h AL = number of lines by which to scroll up (00h = clear entire window) BH = attribute used to write blank lines at bottom of window CH,CL = row,column of window's upper left corner DH,DL = row,column of window's lower right corner Return: nothing Note: affects only the currently active page (see AH=05h) BUGS: some implementations (including the original IBM PC) have a bug which destroys BP the Trident TVGA8900CL (BIOS dated 1992/9/8) clears DS to 0000h when scrolling in an SVGA mode (800x600 or higher) SeeAlso: AH=07h,AH=12h"Tandy 2000",AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014hTop
INT 10 - VIDEO - SCROLL DOWN WINDOW AH = 07h AL = number of lines by which to scroll down (00h=clear entire window) BH = attribute used to write blank lines at top of window CH,CL = row,column of window's upper left corner DH,DL = row,column of window's lower right corner Return: nothing Note: affects only the currently active page (see AH=05h) BUGS: some implementations (including the original IBM PC) have a bug which destroys BP the Trident TVGA8900CL (BIOS dated 1992/9/8) clears DS to 0000h when scrolling in an SVGA mode (800x600 or higher) SeeAlso: AH=06h,AH=12h"Tandy 2000",AH=72h,AH=73h,INT 50/AX=0014hTop
INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION AH = 08h BH = page number (00h to number of pages - 1) (see #00010) Return: AH = character's attribute (text mode only) (see #00014) AH = character's color (Tandy 2000 graphics mode only) AL = character Notes: for monochrome displays, a foreground of 1 with background 0 is underlined the blink bit may be reprogrammed to enable intense background colors using AX=1003h or by programming the CRT controller the foreground intensity bit (3) can be programmed to switch between character sets A and B on EGA and VGA cards, thus enabling 512 simultaneous characters on screen. In this case the bit's usual function (intensity) is regularly turned off. in graphics modes, only characters drawn with white foreground pixels are matched by the pattern-comparison routine on the Tandy 2000, BH=FFh specifies that the current page should be used because of the IBM BIOS specifications, there may exist some clone BIOSes which do not preserve SI or DI; the Novell DOS kernel preserves SI, DI, and BP before many INT 10h calls to avoid problems due to those registers not being preserved by the BIOS. BUG: some IBM PC ROM BIOSes destroy BP when in graphics modes SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h Bitfields for character's display attribute: Bit(s) Description (Table 00014) 7 foreground blink or (alternate) background bright (see also AX=1003h) 6-4 background color (see #00015) 3 foreground bright or (alternate) alternate character set (see AX=1103h) 2-0 foreground color (see #00015) SeeAlso: #00026 (Table 00015) Values for character color: Normal Bright 000b black dark gray 001b blue light blue 010b green light green 011b cyan light cyan 100b red light red 101b magenta light magenta 110b brown yellow 111b light gray whiteTop
INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION AH = 09h AL = character to display BH = page number (00h to number of pages - 1) (see #00010) background color in 256-color graphics modes (ET4000) BL = attribute (text mode) or color (graphics mode) if bit 7 set in <256-color graphics mode, character is XOR'ed onto screen CX = number of times to write character Return: nothing Notes: all characters are displayed, including CR, LF, and BS replication count in CX may produce an unpredictable result in graphics modes if it is greater than the number of positions remaining in the current row With PhysTechSoft's PTS ROM-DOS the BH, BL, and CX values are ignored on entry. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F"SYSTEM DATA" SeeAlso: INT 43"VIDEO DATA",INT 44"VIDEO DATA"Top
INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION AH = 0Ah AL = character to display BH = page number (00h to number of pages - 1) (see #00010) background color in 256-color graphics modes (ET4000) BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode) if bit 7 set in <256-color graphics mode, character is XOR'ed onto screen CX = number of times to write character Return: nothing Notes: all characters are displayed, including CR, LF, and BS replication count in CX may produce an unpredictable result in graphics modes if it is greater than the number of positions remaining in the current row With PhysTechSoft's PTS ROM-DOS the BH and CX values are ignored on entry. SeeAlso: AH=08h,AH=09h,AH=11h"Tandy 2000",AH=4Bh,INT 17/AH=60h SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA",INT 44"VIDEO DATA"Top
INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR AH = 0Bh BH = 00h BL = background/border color (border only in text modes) Return: nothing SeeAlso: AH=0Bh/BH=01hTop
INT 10 - VIDEO - SET PALETTE AH = 0Bh BH = 01h BL = palette ID 00h background, green, red, and brown/yellow 01h background, cyan, magenta, and white Return: nothing Note: this call was only valid in 320x200 graphics on the CGA, but newer cards support it in many or all graphics modes SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066hTop
INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY AH = 0Bh BH = 02h BL = palette entry number AL = new color value for palette entry Return: nothing Note: this interrupt is identical to INT 52 for Tandy 2000 SeeAlso: INT 10/AH=00h,INT 10/AH=0Bh/BH=01h,INT 52"Tandy 2000"Top
INT 10 - VIDEO - WRITE GRAPHICS PIXEL AH = 0Ch BH = page number AL = pixel color if bit 7 set, value is XOR'ed onto screen except in 256-color modes CX = column DX = row Return: nothing Desc: set a single pixel on the display in graphics modes Notes: valid only in graphics modes BH is ignored if the current video mode supports only one page SeeAlso: AH=0Dh,AH=46hTop
INT 10 - VIDEO - READ GRAPHICS PIXEL AH = 0Dh BH = page number CX = column DX = row Return: AL = pixel color Desc: determine the current color of the specified pixel in grahics modes Notes: valid only in graphics modes BH is ignored if the current video mode supports only one page SeeAlso: AH=0Ch,AH=47hTop
INT 10 - VIDEO - TELETYPE OUTPUT AH = 0Eh AL = character to write BH = page number BL = foreground color (graphics modes only) Return: nothing Desc: display a character on the screen, advancing the cursor and scrolling the screen as necessary Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted and do the expected things IBM PC ROMs dated 1981/4/24 and 1981/10/19 require that BH be the same as the current active page BUG: if the write causes the screen to scroll, BP is destroyed by BIOSes for which AH=06h destroys BP SeeAlso: AH=02h,AH=06h,AH=0AhTop
INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE AH = 0Eh CX = ABCDh BP = ABCDh AL = character to write BH = page number BL = foreground color (text modes as well as graphics modes) Return: nothing Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter Koehlmann / c't magazine Desc: display a character on the screen, advancing the cursor and scrolling the screen as necessary Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted and do the expected things SeeAlso: INT 15/AH=84h"V20-XT-BIOS"Top
INT 10 - VIDEO - GET CURRENT VIDEO MODE
AH = 0Fh
Return: AH = number of character columns
AL = display mode (see #00010 at AH=00h)
BH = active page (see AH=05h)
Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
also have bit 7 set
EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
(monochrome) in all extended-row text modes
HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
and always 80 resp. 40 columns in all text modes regardless of
current zoom setting (see AH=D0h)
when using a Hercules Graphics Card, additional checks are necessary:
mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
(as set by DOSSHELL and other Microsoft software)
mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
(as set by DOSSHELL and other Microsoft software)
mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
graphics mode, with bit 7 indicating the page (mode set by
Hercules driver for Borland Turbo C)
the Tandy 2000 BIOS is only documented as returning AL, not AH or BH
SeeAlso: AH=00h,AH=05h,AX=10F2h,AX=1130h,AX=CD04h,MEM 0040h:004Ah
Top
INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below) AX = 0F56h BX = 4756h CX = 4944h DL = function 01h installation check Return: AX = 5649h BX = 4443h CX = 5647h DH = 01h 02h get first video mode's parameters Return: AX = BIOS mode number BX = width in pixels CX = height in pixels DX = number of colors 03h get next video mode's parameters Return: as for DL=02h 04h display line??? ES:DI -> record (see #00016) ??? Return: ??? Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises Note: the use of TSR display drivers was discontinued after v2.20 Index: installation check;VUIMAGE display driver Format of record for VUIMAGE Function 04h: Offset Size Description (Table 00016) 00h WORD row number 02h WORD starting column??? 04h WORD ending column??? ???Top
INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
AH = 0Fh
SI = F123h
DI = 321Fh
Return: AH = number of character columns
AL = display mode (see #00010 at AH=00h)
BH = active page (see AH=05h)
SI = DI = F345h if installed
Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
also have bit 7 set
EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
(monochrome) in all extended-row text modes
SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
Top
INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES AH = 10h CH,CL = row,column of upper left corner of window DH,DL = row,column of lower right corner of window Return: AL = status 00h successful 01h failed AH destroyed Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal Note: when a window has been set, all output via AH=0Eh is restricted to the specified window SeeAlso: AH=11h"Window",AH=12h"Window"Top
INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED AH = 10h AL = speed 00h fast 01h slow (scrolling only moves characters during vertical retrace) Return: AH = previous speedTop
INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS AH = 10h AL = control value bit 0: set character set instead of reading it bit 1: high 128 characters instead of low 128 characters ES:BX -> new character set if AL bit 0 set Return: ES:BX -> current character set if AL bit 0 clear on entry Notes: this interrupt is identical to INT 52 on Tandy 2000 the character set consists of 16 bytes for each of the 128 characters, where each of the 16 bytes describes the pixels in one scan line, most significant bit leftmost SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000" SeeAlso: INT 52"Tandy 2000"Top
INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA) AX = 1000h BL = palette register number (00h-0Fh) = attribute register number (undocumented) (see #00017) BH = color or attribute register value Return: nothing Notes: on MCGA, only BX = 0712h is supported under UltraVision, the palette locking status (see AX=CD01h) determines the outcome SeeAlso: AX=1002h,AX=1007h,AX=CD01h (Table 00017) Values for attribute register number: 10h attribute mode control register (should let BIOS control this) 11h overscan color register (see also AX=1001h) 12h color plane enable register (bits 3-0 enable corresponding text attribute bit) 13h horizontal PEL panning register 14h color select registerTop
INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA) AX = 1001h BH = border color (00h-3Fh) Return: nothing BUG: the original IBM VGA BIOS incorrectly updates the parameter save area and places the border color at offset 11h of the palette table rather than offset 10h Note: under UltraVision, the palette locking status (see AX=CD01h) determines the outcome SeeAlso: AX=1002h,AX=1008h,AX=CD01hTop
INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA) AX = 1002h ES:DX -> palette register list (see #00018) BH = 00h to avoid problems on some adapters Return: nothing Note: under UltraVision, the palette locking status (see AX=CD01h) determines the outcome SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h Format of palette register list: Offset Size Description (Table 00018) 00h 16 BYTEs colors for palette registers 00h through 0Fh 10h BYTE border color SeeAlso: #00461Top
INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA) AX = 1003h BL = new state 00h background intensity enabled 01h blink enabled BH = 00h to avoid problems on some adapters Return: nothing Notes: although there is no function to get the current status on adapters prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the VGA, use AH=1Bh and check offset 2Dh of the returned data (see #00040) when configured for a monochrome display, the Boca Research Multi-EGA with ROM v M1.1 Type D has its screen disrupted if BH is not clear this call is reported to be "Get Cursor Position" on the Tandy 1000SL/TL SeeAlso: AH=08h,AH=1BhTop
INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+) AX = 1007h BL = palette or attribute (undoc) register number (see #00017) Return: BH = palette or attribute register value Note: UltraVision v2+ supports this function even on color EGA systems in video modes 00h-03h, 10h, and 12h; direct programming of the palette registers will cause incorrect results because the EGA registers are write-only. To guard against older versions or unsupported video modes, programs which expect to use this function on EGA systems should set BH to FFh on entry. SeeAlso: AX=1000h,AX=1009hTop
INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+) AX = 1008h Return: BH = border color (00h-3Fh) Note: (see AX=1007h) SeeAlso: AX=1001hTop
INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA) AX = 1009h ES:DX -> 17-byte buffer for palette register list (see #00018) Return: nothing Note: UltraVision v2+ supports this function even on color EGA systems in video modes 00h-03h, 10h, and 12h; direct programming of the palette registers will cause incorrect results because the EGA registers are write-only. To guard against older versions or unsupported video modes, programs which expect to use this function on EGA systems should set the ES:DX buffer to FFh before calling. SeeAlso: AX=1002h,AX=1007h,AX=CD02hTop
INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA) AX = 1010h BX = register number CH = new value for green (0-63) CL = new value for blue (0-63) DH = new value for red (0-63) Return: nothing SeeAlso: AX=1012h,AX=1015hTop
INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA) AX = 1012h BX = starting color register CX = number of registers to set ES:DX -> table of 3*CX bytes where each 3 byte group represents one byte each of red, green and blue (0-63) Return: nothing SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5hTop
INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA) AX = 1013h BL = subfunction 00h select paging mode BH = 00h select 4 blocks of 64 BH = 01h select 16 blocks of 16 01h select page BH = page number (00h to 03h) or (00h to 0Fh) Return: nothing Note: this function is not valid in mode 13h SeeAlso: AX=101AhTop
INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA) AX = 1015h BL = palette register number Return: DH = red value CH = green value CL = blue value AX destroyed by some BIOSes (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h) SeeAlso: AX=1010h,AX=1017hTop
INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA) AX = 1017h BX = starting palette register CX = number of palette registers to read ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h) Return: buffer filled with CX red, green and blue triples SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4hTop
INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA) AX = 1018h BL = new PEL value Return: nothing SeeAlso: AX=1019hTop
INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA) AX = 1019h Return: BL = value read SeeAlso: AX=1018hTop
INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA) AX = 101Ah Return: BL = paging mode 00h four pages of 64 01h sixteen pages of 16 BH = current page SeeAlso: AX=1013hTop
INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA) AX = 101Bh BX = starting palette register CX = number of registers to convert Return: nothing Desc: convert the RGB values of one or more palette registers such that the resulting values are grays with the same intensities as the original colors SeeAlso: AH=12h/BL=33hTop
INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE AX = 10E0h BL = video mode (see also #00010 at AH=00h) 2Eh = 640x480 Return: ??? SeeAlso: AH=00h,AX=10F0hTop
INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE AX = 10F0h BL = video mode (see also #00010 at AH=00h) 13h = 320x200x32K 2Dh = 640x350x32K 2Eh = 640x480x32K 2Fh = 640x400x32K 30h = 800x600x32K 3Eh = 640x480x16M (Genoa 7900) FFh Tseng 24-bit color mode BH = mode 2Dh = 640x480 2Eh = 640x480x16M 2Fh = 640x400 30h = 800x600 38h = 1024x768??? (Tseng ET4000/W32i) Return: AL = 10h if supported AH = status 00h if successful other on error Desc: switch the display into a graphics mode with 15 or more bits per pixel Note: the Tseng HiColor BIOS extensions are supported by: Diamond Computer Systems SpeedStar HiColor VGA Everex Systems HC VGA Focus Information Systems 2theMax 4000 Cardinal Technologies VGA732 Orchid ProDesigner IIs Genoa 7900 SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h Index: video modes;Tseng Hi-ColorTop
INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE AX = 10F1h Return: AL = 10h if supported BL = type of digital/analog converter (see #00019) Desc: determine which type of digital-to-analog converter is installed on the display board SeeAlso: AX=10F0h,AX=10F2h (Table 00019) Values for type of DAC: 00h normal VGA DAC 01h Sierra SC1148x HiColor DAC ---Diamond SpeedStar 24--- 02h new Sierra SS24 DAC (24-bit) ---generic Tseng BIOS v8+ --- 02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC 03h ATT20c490/1/2 (15/16/24-bit) 04h AcuMos ADAC1 (15/16/24-bit) 05h unknown 15/16/24-bit DAC 06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters) 07h Diamond SS2410 (15/24-bit) 08h unknown 15/16/24-bit DAC 09h unknown 15/16/24-bit DAC else other HiColor DACTop
INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE AX = 10F2h BL = function 00h get current HiColor mode 01h set 15-bit HiColor mode 02h set 16-bit HiColor mode Return: AX = 0010h if supported BL = video mode type 00h not in HiColor mode 01h 15-bit RGB mode 02h 16-bit RGB mode 03h 24-bit RGB mode Desc: determine whether the display is in a graphics mode with 15 or more bits per pixel color resolution Note: set (BL=01h/02h) only works if already in a HiColor mode SeeAlso: AH=0Fh,AX=10F0h,AX=10F1hTop
INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES AH = 11h Return: CH,CL = row,column of upper left corner DH,DL = row,column of lower right corner Desc: determine the portion of the display to which output is restricted Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal SeeAlso: AH=10h"Window",AH=12h"Window"Top
INT 10 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY AH = 11h BL = new character attribute (text modes) or color (graphics) CX = number of times to write attribute Return: nothing Note: this interrupt is identical to INT 52 on Tandy 2000 SeeAlso: AH=0Ah,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000" SeeAlso: INT 52"Tandy 2000"Top
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA) AX = 1100h ES:BP -> user table CX = count of patterns to store DX = character offset into map 2 block BL = block to load in map 2 BH = number of bytes per character pattern Return: nothing Notes: This function will cause a mode set, completely resetting the video environment, but without clearing the video buffer the current block specifiers may be determined with INT 10/AH=1Bh, looking at offsets 2Bh and 2Ch of the returned data (VGA only) (see AH=1Bh,#00040) SeeAlso: AX=1101h,AX=1102h,AX=1103h,AX=1104h,AX=1110h,AH=1Bh,AX=CD10h SeeAlso: MEM 0040h:0084h Index: text mode;font|text mode;screen rowsTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA) AX = 1101h BL = block to load Return: nothing Notes: (see also AX=1100h) This function will cause a mode set, completely resetting the video environment, but without clearing the video buffer the "monochrome" patters are 8x14 pixels in size SeeAlso: AX=1100h,AX=1102h,AX=1103h,AX=1104h,AX=1111h,AH=1Bh,AX=CD10h SeeAlso: MEM 0040h:0084h Index: text mode;font|text mode;screen rowsTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA) AX = 1102h BL = block to load Return: nothing Notes: (see AX=1100h) SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h SeeAlso: MEM 0040h:0084hTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA) AX = 1103h BL = block specifier (see #00020) Return: nothing Notes: (see also AX=1110h) This function allows dual character sets to appear on screen simultaneously SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1104h,AH=1Bh,AX=CD10h SeeAlso: MEM 0040h:0084h Index: text mode;font|text mode;screen rows Bitfields for block specifier: Bit(s) Description (Table 00020) ---EGA/MCGA--- 0,1 block selected by characters with attribute bit 3 clear 2,3 block selected by characters with attribute bit 3 set ---VGA--- 0,1,4 block selected by characters with attribute bit 3 clear 2,3,5 block selected by characters with attribute bit 3 setTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA) AX = 1104h BL = block to load Return: nothing Notes: (see AX=1100h) SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h SeeAlso: MEM 0040h:0084h Index: text mode;font|text mode;screen rowsTop
INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS AH = 11h AL = 07h load user-specified patterns and recalculate mode parms parameters are the same as for AX=1110h AL = 08h load monochrome patterns (8x14) and recalculate mode parms parameters are the same as for AX=1111h AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms parameters are the same as for AX=1112h AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms parameters are the same as for AX=1114h Note: these functions should only be called under the same conditions as AL=1xh (see AX=1110h"EGA") SeeAlso: AX=1100h,AX=1110h"CHARGEN",AX=1110h"Realtek",MEM 0040h:0084h Index: text mode;font|text mode;screen rowsTop
INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS AX = 110Fh ES:BP -> user table for INT 1F Return: nothing Note: this function is meant to be called immediately after a mode set; results are unpredictable at other times SeeAlso: AX=1110h"Realtek",AX=1111h"Realtek",AX=1112h"Realtek",AX=1120hTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA) AX = 1110h ES:BP -> user table CX = count of patterns to store DX = character offset into map 2 block BL = block to load in map 2 BH = number of bytes per character pattern Return: nothing Notes: This function will cause a mode set, completely resetting the video environment, but without clearing the video buffer This function is designed to be called immediately after a mode set, it is equivalent to AX=110xh except that: Page 0 must be active. Bytes/character is recalculated. Max character rows is recalculated. CRT buffer length is recalculated. CRTC registers are reprogrammed as follows: R09 = bytes/char-1 ; max scan line (mode 7 only) R0A = bytes/char-2 ; cursor start R0B = 0 ; cursor end R12 = ((rows+1)*(bytes/char))-1 ; vertical display end R14 = bytes/char ; underline loc (*** BUG: should be 1 less ***) the current block specifiers may be determined with INT 10/AH=1Bh, looking at offsets 2Bh and 2Ch of the returned data (VGA only) (see AH=1Bh,#00040) SeeAlso: AX=1100h,AX=1111h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h,MEM 0040h:0084h Index: text mode;font|text mode;screen rowsTop
INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS AX = 1110h ES:BP -> user table CX = bytes per character BL = row specifier 00h user set DL = number of rows 01h 14 rows 02h 25 rows 03h 43 rows Return: nothing Note: this function is meant to be called immediately after a mode set; results are unpredictable at other times SeeAlso: AX=110Fh"Realtek",AX=1112h"Realtek",AX=1121hTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA) AX = 1111h BL = block to load Return: nothing Notes: (see AX=1110h) the "monochrome" patters are 8x14 pixels in size SeeAlso: AX=1101h,AX=1110h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10hTop
INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS AX = 1111h BL = row specifier (see AX=1121h) Return: nothing Note: this function is meant to be called immediately after a mode set; results are unpredictable at other times SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1122hTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA) AX = 1112h BL = block to load Return: nothing Notes: (see AX=1110h) SeeAlso: AX=1103h,AX=1110h,AX=1111h,AX=1114h,AH=1Bh,AX=CD10hTop
INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS AX = 1112h BL = row specifier (see AX=1121h) Return: nothing Note: this function is meant to be called immediately after a mode set; results are unpredictable at other times SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1111h"Realtek",AX=1123hTop
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA) AX = 1114h BL = block to load Return: nothing Notes: (see AX=1110h) SeeAlso: AX=1104h,AX=1110h,AX=1111h,AX=1112h,AH=1Bh,AX=CD10hTop
INT 10 - IBM SurePath BIOS - Officially "Private" Function AX = 1118hTop
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA) AX = 1120h ES:BP -> user table for INT 1F Return: nothing Note: this function is meant to be called immediately after a mode set; results are unpredictable at other times SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F"SYSTEM DATA" SeeAlso: INT 43"VIDEO DATA"Top
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA) AX = 1121h ES:BP -> user table CX = bytes per character BL = row specifier 00h user set DL = number of rows 01h 14 rows 02h 25 rows 03h 43 rows Return: AL = new number of rows (Diamond Stealth64 Video) Note: this function is meant to be called immediately after a mode set; results are unpredictable at other times SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h"Compaq" SeeAlso: AX=1129h"Diamond",INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"Top
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA) AX = 1122h BL = row specifier (see AX=1121h) Return: nothing Notes: this function is meant to be called immediately after a mode set; results are unpredictable at other times UltraVision v2+ sets INT 43 to the appropriate font on this call SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"Top
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA) AX = 1123h BL = row specifier (see AX=1121h) Return: nothing Notes: this function is meant to be called immediately after a mode set; results are unpredictable at other times UltraVision v2+ sets INT 43 to the appropriate font on this call SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"Top
INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA) AX = 1124h BL = row specifier (see AX=1121h) Return: nothing Notes: this function is meant to be called immediately after a mode set; results are unpredictable at other times UltraVision v2+ sets INT 43 to the appropriate font on this call SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"Top
INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro) AX = 1129h BL = row specifier (see AX=1121h) Return: nothing Notes: this function is meant to be called immediately after a mode set; results are unpredictable at other times UltraVision v2+ sets INT 43 to the appropriate font on this call SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM DATA" SeeAlso: INT 43"VIDEO DATA"Top
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond) AX = 1129h DI:BP -> user table CX = bytes per character BL = row specifier 00h user set DL = number of rows 01h 14 rows 02h 25 rows 03h 43 rows Return: AL = new number of rows Notes: this function is meant to be called immediately after a mode set; results are unpredictable at other times supported by Diamond Stealth64 Video SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM",INT 43"VIDEO"Top
INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA) AX = 1130h BH = pointer specifier 00h INT 1Fh pointer 01h INT 43h pointer 02h ROM 8x14 character font pointer 03h ROM 8x8 double dot font pointer 04h ROM 8x8 double dot font (high 128 characters) 05h ROM alpha alternate (9 by 14) pointer (EGA,VGA) 06h ROM 8x16 font (MCGA, VGA) 07h ROM alternate 9x16 font (VGA only) (see #00021) 11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA) 12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA) Return: ES:BP = specified pointer CX = bytes/character of on-screen font (not the requested font!) DL = highest character row on screen Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding 8xN font at ES:BP+256N BUG: the IBM EGA and some other EGA cards return in DL the number of rows on screen rather than the highest row number (which is one less). SeeAlso: AX=1100h,AX=1103h,AX=1120h,INT 1F"SYSTEM DATA",INT 43"VIDEO DATA" Format of alternate font table [array]: Offset Size Description (Table 00021) 00h BYTE character to be replaced (00h = end of table) 01h N BYTEs graphics data for character, one byte per scan lineTop
INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK AX = 1130h BX = 4D4Fh Return: CX = 4F4Dh if installed ES:BP -> M10_SCR INT 10 handler Program: M10_SCR is a shareware extended text mode and font driver by I.V. Morozov SeeAlso: INT 16/AX=4D4FhTop
INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE AH = 12h Return: BH = attribute to use on blanked lines when scrolling Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal SeeAlso: AH=11h"Window",AH=12h"Window"Top
INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW AH = 12h AL = number of rows or columns to scroll BH = buffer flag 00h data in user buffer ES:SI -> buffer containing character/attribute pairs 01h no buffer, fill emptied rows/columns with blanks BL = direction in which to scroll 00h up 01h down 02h left 03h right CH,CL = row,column of upper left corner of scroll area DH,DL = row,column of lower right corner Return: nothing Notes: this interrupt is identical to INT 52 on Tandy 2000 the user buffer, if supplied, must be organized by row; regardless of the scroll direction, all character/attribute pairs for the first row are first, then the pairs for the second row, etc. SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000" SeeAlso: INT 52"Tandy"Top
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO AH = 12h BL = 10h Return: BH = video state 00h color mode in effect (I/O port 3Dxh) 01h mono mode in effect (I/O port 3Bxh) BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K) CH = feature connector bits (see #00022) CL = switch settings (see #00023,#00024) AH destroyed (at least by Tseng ET4000 BIOS v8.00n) Note: one possible check for the presence of an EGA or later display card is to call this function with BH=FFh; if not present, BH will be unchanged on return another installation check is used by Athena Digital's HGCIBM, which sets CX to FFFFh on calling and checks whether it has been changed on return Index: installation check;EGA Bitfields for feature connector bits: Bit(s) Description (Table 00022) 0 FEAT 1 line, state 2 1 FEAT 0 line, state 2 2 FEAT 1 line, state 1 3 FEAT 0 line, state 1 4-7 unused (0) Bitfields for switch settings: Bit(s) Description (Table 00023) 0 switch 1 OFF 1 switch 2 OFF 2 switch 3 OFF 3 switch 4 OFF 4-7 unused (Table 00024) Values for switch settings on original EGA/VGA: 00h primary MDA/HGC, secondary EGA+ 40x25 01h-03h primary MDA/HGC, secondary EGA+ 80x25 04h primary CGA 40x25, secondary EGA+ 80x25 mono 05h primary CGA 80x25, secondary EGA+ 80x25 mono 06h primary EGA+ 40x25, secondary MDA/HGC (optional) 07h-09h primary EGA+ 80x25, secondary MDA/HGC (optional) 0Ah primary EGA+ 80x25 mono,secondary CGA 40x25 (optional) 0Bh primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)Top
INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
AH = 12h
BL = 11h
Return: AL = 12h if function supported
BL = ??? (10h)
ES:BP -> BIOS info structure (see #00025)
SeeAlso: AH=12h/BL=12h"TRIDENT"
Format of Trident BIOS Info structure:
Offset Size Description (Table 00025)
00h BYTE ??? (0000h)
01h BYTE OEM Code (00h for original Trident)
02h WORD ID??? (1073h for 8800BR, 1074 for 8800CS)
04h 8 BYTEs BIOS date ('mm/dd/yy')
0Ch WORD ???
0Eh 8 BYTEs BIOS Version (' C3-128 ', ' C3-129 ')
Top
INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE AH = 12h BL = 12h Return: AL = 12h if function supported AH = number of 256K banks of RAM installed (read from CRTC register 1Fh) SeeAlso: AH=12h/BL=11h"TRIDENT"Top
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC AH = 12h BL = 20h select alternate print screen routine Return: nothing Desc: installs a PrtSc routine from the video card's BIOS to replace the default PrtSc handler from the ROM BIOS, which usually does not understand screen heights other than 25 lines Note: some adapters disable print-screen instead of enhancing it SeeAlso: INT 05"PRINT SCREEN"Top
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG AH = 12h BL = 2Eh Return: nothing Note: due to an omitted end-of-list marker, these versions of the BIOS will crash the system on this functionTop
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION AH = 12h BL = 30h AL = vertical resolution 00h 200 scan lines 01h 350 scan lines 02h 400 scan lines Return: AL = 12h if function supported Desc: specify the number of scan lines used to display text modes Note: the specified resolution will take effect on the next mode set SeeAlso: AH=00hTop
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING AH = 12h BL = 31h AL = new state 00h enable default palette loading 01h disable default palette loading Return: AL = 12h if function supported Desc: specify whether a default palette should be loaded when the display mode is set SeeAlso: AH=00hTop
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING AH = 12h BL = 32h AL = new state 00h enable video addressing 01h disable video addressing Return: AL = 12h if function supported Desc: specify whether the CPU should have access to video memory and the display adapters I/O registersTop
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING AH = 12h BL = 33h AL = new state 00h enable gray scale summing 01h disable gray scale summing Return: AL = 12h if function supported Desc: specify whether or not colors should be converted to gray scale when palette or color registers are loaded SeeAlso: AX=101Bh,AX=BF06h,AX=BF08hTop
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION AH = 12h BL = 34h AL = new state 00h enable alphanumeric cursor emulation 01h disable alphanumeric cursor emulation Return: AL = 12h if function supported Desc: specify whether the BIOS should automatically remap cursor start/end according to the current character height in text modes SeeAlso: AH=01h,AH=03hTop
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE AH = 12h BL = 35h AL = subfunction 00h initial adapter video off 01h initial planar video on 02h switch active video off 03h switch inactive video on 80h *UNDOCUMENTED* set system board video active flag ES:DX -> buffer for 128 byte save area (if AL = 00h-03h) Return: AL = 12h if function supported Desc: switch between two video adapters which may otherwise have address conflicts SeeAlso: AX=BF00h,AX=BF01h,INT 6D"VGA"Top
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL AH = 12h BL = 36h AL = new state 00h enable refresh 01h disable refresh Return: AL = 12h if function supported Desc: specify whether the contents of video memory should be displayed on the screen; disabling refresh effectively blanks the screen Note: when display refresh is disabled, the entire screen displays the color specified by the DAC color register 00h; thus to actually blank the screen, the application must first ensure that that register has been set to black BUG: GEM/VIEWMAX ET3000 and ET4000 drivers dated 1988/6/23 do not correctly reenable refresh after the screen has been blanked due to inactivity, resulting in a total loss of video synchronization SeeAlso: AX=BF05hTop
INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT AH = 12h BL = 37h AL = text attribute type (00h normal VGA, 01h mainframe type) Return: AL = 12h if supported SeeAlso: #00026,AH=08h,#00042 Bitfields for XGA mainframe type character attributes: Bit(s) Description (Table 00026) 7 blink double rate (75% ON time) or use color 8 as background (see AX=1003h) 6 reverse video 5 underlined 4 left-most and right-most dots of underline area inverted 3 foreground intensity/character font select 2-0 foreground color SeeAlso: #00014,#00036Top
INT 10 - IBM SurePath BIOS - Officially "Private" Function AH = 12h BL = 38h SeeAlso: AX=1118h,AH=12h/BL=39hTop
INT 10 - IBM SurePath BIOS - Officially "Private" Function AH = 12h BL = 39h SeeAlso: AX=1118h,AH=12h/BL=38h,AH=12h/BL=3AhTop
INT 10 - IBM SurePath BIOS - Officially "Private" Function AH = 12h BL = 3Ah SeeAlso: AX=1118h,AH=12h/BL=39hTop
INT 10 - Tseng ET-4000 BIOS v8.00 (1991/06/07) - BUG AH = 12h BL = 53h Note: due to an omitted end-of-list marker, this version of the BIOS will crash the system on this functionTop
INT 10 - Tseng ET-4000 BIOS v8.00 (1991/06/07) - BUG AH = 12h BL = 57h Note: due to an omitted end-of-list marker, this version of the BIOS will crash the system on this functionTop
INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES AH = 12h BH = 55h BL = subfunction 00h disable enhanced features 01h enable enhanced features 02h get status Return: AL = status flags (see #00027) 03h disable register trapping (CGA emulation) 04h enable register trapping 05h program video mode ES:BP -> video mode table (see #00028) 06h get mode table AL = video mode Return: ES:BP -> table suitable for mode AL (and subfunc BL=05h) (see #00028) BP = FFFFh on error SI = 0000h (ATI Mach32) Note: the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get the mode table for mode 03h, and then looks for a signature string beginning within 32 bytes of the offset specified by the word at ES:000Ch SeeAlso: AH=FFh"Oak" Index: installation check;ATI video adapters Bitfields for status flags: Bit(s) Description (Table 00027) 3 set if enhanced features enabled 7-5 monitor type 000 PS/2 mono 001 PS/2 color 010 multi-sync 011 Taxan 650 25kHz 100 RGB 101 mono 110 EGA 111 Compaq internal Format of ATI VGA Wonder video mode table: Offset Size Description (Table 00028) 00h BYTE number of columns 01h BYTE maximum row (number of rows - 1) 02h BYTE scan lines per row 03h WORD video buffer size in bytes 05h 4 BYTEs values for Sequencer registers 1-4 09h BYTE value for Miscellaneous Output register 0Ah 25 BYTEs values for CRTC registers 00h-18h 00h horizontal total size (chars) 01h horizontal displayed (chars) 02h horizontal sync position (chars) 03h horizontal sync width (chars) 04h vertical total size (char rows) 05h vertical total adjust (scan lines) 06h vertical displayed (char rows) 07h vertical sync position (char rows) 08h interlace mode 09h max scan line in row 0Ah cursor start scan line 0Bh cursor end scan line 0Ch screen memory start (high) 0Dh screen memory start (low) 0Eh cursor address (high) 0Fh cursor address (low) 10h light pen (high) 11h light pen (low) 23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h) 37h 9 BYTEs values for Graphics Controller registers 00h-08hTop
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG AH = 12h BL = 74h Note: due to an omitted end-of-list marker, these versions of the BIOS will crash the system on this functionTop
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG AH = 12h BL = 80h Note: due to an omitted end-of-list marker, these versions of the BIOS will crash the system on this functionTop
INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE AH = 12h BL = 80h Return: AX = controller type in bits 13-0 (see #00029) bit 14: ??? bit 15: ??? BL = silicon revision number (bit 7 set if not available) BH = ??? bit 2 set if using CL-GD 6340 LCD interface SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h (Table 00029) Values for Cirrus Logic video controller type: 0000h no extended alternate select support 0001h reserved 0002h CL-GD510/520 0003h CL-GD610/620 0004h CL-GD5320 0005h CL-GD6410 0006h CL-GD5410 0007h CL-GD6420 0008h CL-GD6412 0010h CL-GD5401 0011h CL-GD5402 0012h CL-GD5420 0013h CL-GD5422 0014h CL-GD5424 0015h CL-GD5426 0016h CL-GD5420r1 0017h CL-GD5402r1 0018h CL-GD5428 0019h CL-GD5429 0020h CL-GD6205/15/25 0021h CL-GD6215 0022h CL-GD6225 0023h CL-GD6235 0024h CL-GD6245 0030h CL-GD5432 0031h CL-GD5434 0032h CL-GD5430 0033h CL-GD5434 rev. E and F 0035h CL-GD5440 0036h CL-GD5436 0039h CL-GD5446 0040h CL-GD6440 0041h CL-GD7542 (Nordic) 0042h CL-GD7543 (Viking) 0043h CL-GD7541 (Nordic Lite) 0050h CL-GD5452 (Northstar) 0052h CL-GD5452 (Northstar) ??? SeeAlso: #00732,#00743Top
INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER AH = 12h BL = 81h Return: AH = BIOS major version AL = BIOS minor version SeeAlso: AH=12h/BL=80h,AH=12h/BL=82hTop
INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE AH = 12h BL = 82h Return: AL = chip revision AH = ??? (AFh for v1.01) SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h,#00732 at INT 1A/AX=B102hTop
INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS AH = 12h BL = 84h Return: AX = user options word (see #00030) SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah Bitfields for Cirrus Logic user options word: Bit(s) Description (Table 00030) 1,0 centering 00 vertical centered, 01 from bottom, 10 from top, 11 reserved 3,2 720-dot fix-up options 00 OR every 8th and 9th pixel 01 display MGA mode from left 10 display MGA mode from right 11 skip every 9th pixel 4 ??? 7-5 video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA) 8 external monitor enabled instead of LCD panel 9 vertical expand mode enabled 10 8-bit mode instead of 16-bit mode 11 normal video rather than reverse video (for LCD) 12 attribute automap rather than attribute emulation 13 bold mode disabled (default) 14 fast bandwidth 15 ???Top
INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY AH = 12h BL = 85h Return: AL = number of 64K banks of video memory SeeAlso: AH=12h/BL=80h,AH=12h/BL=93hTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE AH = 12h BL = 89h AL = new state (00h enabled, 01h disabled) Return: nothing SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8BhTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR AH = 12h BL = 8Ah AL = new gray-scale color (00h = black to 0Fh = white) Return: nothing SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8FhTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE AH = 12h BL = 8Bh AL = new state (00h enabled, 01h disabled) Return: nothing SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8FhTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES AH = 12h BL = 8Ch AL = new state 00h enable automap 01h disable automap and emulate attributes Return: nothing SeeAlso: AH=12h/BL=84h,AH=12h/BL=8BhTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE AH = 12h BL = 8Fh AL = new state (00h enabled, 01h disabled) Return: nothing Note: when expand mode is enabled, the vertical dimension is enlarged to full screen SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90hTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE AH = 12h BL = 90h AL = new position 00h centered 01h from top 02h from bottom 03h from top Return: nothing SeeAlso: AH=12h/BL=84h,AH=12h/BL=8FhTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE AH = 12h BL = 91h AL = new mode 00h display MGA mode from left of screen (default) 01h display MGA from right 02h skip every ninth pixel 03h OR every 8th and 9th pixel Return: nothing SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90hTop
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY AH = 12h BL = 92h AL = new display (00h LCD, 01h external monitor) Return: nothing Note: the deselected display is disabled SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94hTop
INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION AH = 12h BL = 93h AL = new I/O width (00h = 16 bits, 01h = 8 bits) Return: nothing SeeAlso: AH=12h/BL=9AhTop
INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION AH = 12h BL = 94h AL = new state (00h wake up monitor, 01h shut down display) Return: nothing Note: AL=01h is reported not to work properly on the LCD panel SeeAlso: AH=12h/BL=84h,AH=12h/BL=92hTop
INT 10 - Cirrus Logic BIOS - GET USER OPTIONS AH = 12h BL = 9Ah Return: AX = options word 1 (see #00031) CX = options word 2 (see #00032) BX,DX reserved SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h,#00732 at INT 1A/AX=B102h Bitfields for Cirrus Logic options word 1: Bit(s) Description (Table 00031) 0,1 reserved 2-4 monitor type 5-6 maximum vertical resolution 7-9 reserved 10 force 8-bit operation 11-13 reserved 14 vertical refresh frequency at 640x480 =0 60 Hz =1 high refresh 15 reserved SeeAlso: AH=12h/BL=AEh Bitfields for Cirrus Logic options word 2: Bit(s) Description (Table 00032) 15-13 vertical refresh frequency at 1024x768 12-11 vertical refresh frequency at 800x600 10-6 reserved 5-4 vertical refresh frequency at 1280x1024 3-0 reserved SeeAlso: #00033 Bitfields for Cirrus Logic Options word 2 (alternate???): Bit(s) Description (Table 00033) 15-12 vertical refresh frequency at 1024x768 0000 43i Hz 0001 60 Hz 0010 70 Hz 0011 72 Hz 0100 76 Hz other reserved 11-8 vertical refresh frequency at 800x600 0000 56 Hz 0001 60 Hz 0010 72 Hz 0011 75 Hz other reserved 7-4 maximum vertical resolution 0000 480 scanlines 0001 600 scanlines 0010 768 scanlines 0011 1024 scanlines other reserved 3-1 vertical refresh frequency at 1280x1024 000 43i Hz 001 60 Hz 010 71.2 Hz (CL-GD5434 rev. E and F) 011 74 Hz (CL-GD5434 rev. E and F) other reserved 0 reserved SeeAlso: #00032Top
INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY AH = 12h BL = A0h AL = video mode number (00h-7Fh) Return: AH bit 0: video mode supported BX = offset of BIOS subroutine to fixup standard video parameters (call subroutine with DS:SI and ES:DI as returned by this call) DS:SI -> standard video parameters or FFFFh:FFFFh ES:DI -> supplemental video parameters or FFFFh:FFFFh SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1hTop
INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR AH = 12h BL = A1h Return: BH = monitor ID (see #00034) BL = monitor type (00h color, 01h grayscale, 02h no display) SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h (Table 00034) Values for Cirrus Logic monitor ID: 00h-08h reserved 09h IBM 8604/8507 or equivalent 0Ah IBM 8514 or equivalent 0Bh IBM 8515 or equivalent 0Dh IBM 8503 or equivalent 0Eh IBM 8512/8513 or equivalent 0Fh no monitorTop
INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY AH = 12h BL = A2h AL = retrace rate 00h standard VGA (31.5 kHz) 01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced) 02h SuperVGA (31.5-35.1 kHz) 03h extended SuperVGA (31.5-35.5 kHz) 04h multi-frequency (31.5-37.8 kHz) 05h extended multi-frequency (31.5-48.0 kHz) 06h super multi-frequency (31.5-56.0 kHz) 07h extended super multi-frequency (31.5-64.0 kHz) Return: nothing SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4hTop
INT 10 - Cirrus Logic BIOS - SET VGA REFRESH AH = 12h BL = A3h AL = refresh rate for 640x480 (00h normal, 01h high) Return: nothing SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4hTop
INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE AH = 12h BL = A4h AL = options 1 bits 7-4 = vertical refresh at 640x480 (0 = 60Hz, 1 = 72Hz, other reserved) bits 3-0 = maximum vertical resolution (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved) BH = options 2 bits 7-4 = vertical refresh at 1024x768 (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved) bits 3-0 = vertical refresh at 800x600 (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved) CH = options 3 bits 7-4 = vertical refresh at 1280x1024 (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved) bits 3-0: reserved CL,DX reserved Return: nothing SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3hTop
INT 10 - Cirrus Logic BIOS - GET HIGH REFRESH AH = 12h BL = AEh Return: AL = result bits 7-1: reserved bit 0: 640x480 high refresh rate =0 72 Hz =1 75 Hz SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AFhTop
INT 10 - Cirrus Logic BIOS - SET HIGH REFRESH AH = 12h BL = AFh AL = option bits 7-1: reserved bit 0: 640x480 high refresh rate =0 72 Hz =1 75 Hz Return: nothing SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AEhTop
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG AH = 12h BL = BEh Note: due to an omitted end-of-list marker, these versions of the BIOS will crash the system on this functionTop
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG AH = 12h BL = C6h Note: due to an omitted end-of-list marker, these versions of the BIOS will crash the system on this functionTop
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG AH = 12h BL = F0h Note: due to an omitted end-of-list marker, these versions of the BIOS will crash the system on this functionTop
INT 10 - Tseng ET-4000 BIOS - GET/SET SCREEN REFRESH RATE AH = 12h BL = F1h AL = subfunction 00h set refresh rate 01h get refresh rate BH = video mode 00h 640x480 01h 800x600 02h 1024x768 03h 1280x1024 CX = new refresh rate (see #00035) if AL = 00h Return: AL = 12h if supported CX = current rate (for AL=00h, a changed CX indicates failure) (Table 00035) Values for Tseng ET4000 refresh rate: CX 640x480 800x600 1024x768/1280x1024 00h 60 Hz 56 Hz interlaced 01h 72 Hz 60 Hz 60 Hz 02h 75 Hz 72 Hz 70 Hz 03h 90 Hz 75 Hz 75 Hz 04h -- 90 Hz --Top
INT 10 - VIDEO - WRITE STRING (AT and later,EGA) AH = 13h AL = write mode bit 0: update cursor after writing bit 1: string contains alternating characters and attributes bits 2-7: reserved (0) BH = page number BL = attribute if string contains only characters CX = number of characters in string DH,DL = row,column at which to start writing ES:BP -> string to write Return: nothing Notes: recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling, backspace, and CR only take place in the active page also available PC or XT with EGA or higher HP 95LX only supports write mode 00h IBM documents AL=10h,11h,20h,21h as "private" rather than "reserved" with PhysTechSoft's PTS ROM-DOS the AL,BH,BL,DH, and DL values are ignored on entry. BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on the active page rather than the requested page SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"Top
INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES AH = 13h AL = function 10h read characters and standard attributes 11h read characters and extended attributes 12h write characters and standard attributes 13h write characters and extended attributes BH = 00h CX = number of characters to transfer DH,DL = row,column at which to start transfer ES:BP -> buffer for/containing characters and attributes (see #00036) Return: ES:BP buffer filled if reading Program: DOS/V is a Japanese-language version of MS-DOS which can run on standard (non-Japanese) ATs and compatible equipped with a VGA or newer video adapter Notes: subfunctions 11h and 13h are only valid when DOS/V is using video mode 73h the cursor position is not changed by these functions extended attributes consist of three bytes; the first is the standard character attribute byte, the second is as described below, and the third is always zero in current versions SeeAlso: AH=00h,AH=13h"VIDEO" Bitfields for DOS/V second extended attribute byte: Bit(s) Description (Table 00036) 7 underline using foreground color 6 reverse foreground/background specified in standard attribute byte 5-4 unused 3 vertical white grid line in cell 2 horizontal white grid line in cell 1-0 unused SeeAlso: #00014,#00026Top
INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386) AX = 1400h ES:DI -> character font BH = number of bytes per character 08h or 10h (Compaq) BL = 00h load main font (block 0) 01h load alternate font (block 1) CX = number of characters to store DX = character offset into RAM font area Return: nothing SeeAlso: AX=1100h,AX=1110h,AX=1401hTop
INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386) AX = 1401h BL = font to load 00h main font (block 0) 01h alternate font (block 1) Return: nothing SeeAlso: AX=1100h,AX=1102h,AX=1400hTop
INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386) AX = 1402h BL = subfunction 00h ignore high intensity attribute 01h map high intensity to reverse video 02h map high intensity to underscore 03h map high intensity to selected alternate font B0h half intensity (Compaq) B1h toggle active intensity bit interpretation (CP386) Return: nothingTop
INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE) AH = 15h Return: AX = alternate display adapter type (see #00037) ES:DI -> parameter table (see #00038) SeeAlso: AH=1Bh (Table 00037) Values for PC Convertible alternate display adapter type: 0000h none 5140h LCD 5153h CGA 5151h mono Format of PC Convertible display parameter table: Offset Size Description (Table 00038) 00h WORD monitor model number 02h WORD vertical pixels per meter 04h WORD horizontal pixels per meter 06h WORD total vertical pixels 08h WORD total horizontal pixels 0Ah WORD horizontal pixel separation in micrometers (width, center-to-center) 0Ch WORD vertical pixel separation in micrometers (height, center-to-center)Top
INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC) AH = 15h AL = superimpose mode 00h show graphics screen 01h show text screen 02h show text screen superimposed on graphics screen Return: nothingTop
INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN AH = 18h AL = subfunction 00h get font pattern 01h set font pattern BX = 0000h CL = character size in bytes (01h,02h) CH = 00h DH = character width in pixels DL = character height in pixels ES:DI -> buffer for/containing font image Return: AL = status (00h successful, else error) ES:DI buffer filled for function 00h if successful Note: the supported font sizes are 8x16 single-byte, 8x19 single-byte, 16x16 double-byte, and 24x24 double-byte SeeAlso: AH=19h,INT 16/AH=14hTop
INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION AH = 19h ??? Return: ??? SeeAlso: AH=18h,INT 16/AH=14hTop
INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA) AX = 1A00h Return: AL = 1Ah if function was supported BL = active display code (see #00039) BH = alternate display code (see #00039) Notes: this function is commonly used to check for the presence of a VGA this function is supported on the ATI EGA Wonder with certain undocumented configuration switch settings, even though the EGA Wonder does not support VGA graphics; to distinguish this case, call AX=1C00h with CX nonzero, which the EGA Wonder does not support SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh,AH=1Ch,MEM 0040h:008Ah Index: installation check;VGA (Table 00039) Values for display combination code: 00h no display 01h monochrome adapter w/ monochrome display 02h CGA w/ color display 03h reserved 04h EGA w/ color display 05h EGA w/ monochrome display 06h PGA w/ color display 07h VGA w/ monochrome analog display 08h VGA w/ color analog display 09h reserved 0Ah MCGA w/ digital color display 0Bh MCGA w/ monochrome analog display 0Ch MCGA w/ color analog display FFh unknown display typeTop
INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA) AX = 1A01h BL = active display code (see #00039) BH = alternate display code Return: AL = 1Ah if function was supported SeeAlso: AH=12h/BL=35h,AX=1A00hTop
INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA) AH = 1Bh BX = implementation type 0000h return funtionality/state information ES:DI -> 64-byte buffer for state information (see #00040) Return: AL = 1Bh if function supported ES:DI buffer filled with state information BUG: Trident 8900 (BIOS D3.0 1991/11/12) and Trident 9000 (C3.0 1991/10/25) do not correctly set the fields at offsets 27h and 29h of the state information SeeAlso: AH=15h,AX=1A00h,AX=1F01h Format of MCGA+ state information: Offset Size Description (Table 00040) 00h DWORD address of static funtionality table (see #00045) 04h BYTE video mode in effect 05h WORD number of columns 07h WORD length of regen buffer in bytes 09h WORD starting address of regen buffer 0Bh WORD cursor position for page 0 0Dh WORD cursor position for page 1 0Fh WORD cursor position for page 2 11h WORD cursor position for page 3 13h WORD cursor position for page 4 15h WORD cursor position for page 5 17h WORD cursor position for page 6 19h WORD cursor position for page 7 1Bh WORD cursor "type" (start/stop scan lines) 1Dh BYTE active display page 1Eh WORD CRTC port address 20h BYTE current setting of PORT 03x8h 21h BYTE current setting of PORT 03x9h 22h BYTE number of rows - 1 23h WORD bytes/character 25h BYTE display combination code of active display 26h BYTE DCC of alternate display 27h WORD number of colors supported in current mode (0000h = mono) 29h BYTE number of pages supported in current mode 2Ah BYTE number of scan lines active (0,1,2,3) = (200,350,400,480) Tseng ET3000: (4,5,6 = 512,600,768) 2Bh BYTE primary character block 2Ch BYTE secondary character block 2Dh BYTE miscellaneous flags (see #00041) 2Eh BYTE non-VGA mode support (see #00042) 2Fh 2 BYTEs reserved (00h) 31h BYTE video memory available 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K 32h BYTE save pointer state flags (see #00043) 33h BYTE display information and status (see #00044) 34h 12 BYTEs reserved (00h) Bitfields for miscellaneous flags: Bit(s) Description (Table 00041) 0 all modes on all displays on 1 gray summing on 2 monochrome display attached 3 default palette loading disabled 4 cursor emulation enabled 5 0 = intensity; 1 = blinking 6 flat-panel display is active 7 unused (0) SeeAlso: #00040 Bitfields for non-VGA mode support: Bit(s) Description (Table 00042) 7-5 reserved 4 132-column mode supported 3 =1 MFI attributes enabled (see AH=12h/BL=37h) =0 VGA attributes 2 16-bit VGA graphics present 1 adapter interface driver required 0 BIOS supports information return for adapter interface SeeAlso: #00040 Bitfields for save pointer state flags: Bit(s) Description (Table 00043) 0 512 character set active 1 dynamic save area present 2 alpha font override active 3 graphics font override active 4 palette override active 5 DCC override active 6-7 unused (0) SeeAlso: #00040 Bitfields for display information and status: Bit(s) Description (Table 00044) 7 640x480 flat-panel can be used simultaneously with CRT controller 6-3 reserved 2 color display 1 flat-panel display active 0 flat-panel display attached SeeAlso: #00040 Format of Static Functionality Table: Offset Size Description (Table 00045) 00h BYTE modes supported 1 bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported 01h BYTE modes supported 2 bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported 02h BYTE modes supported 3 bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported bit 4 to bit 7 unused (0) 03h BYTE (IBM) reserved (Tseng ET3000/4000) modes supported 4 bit 0 to bit 7 = modes 18h-1Fh supported 04h BYTE (IBM) reserved (Tseng ET3000/4000) modes supported 5 bit 0 to bit 7 = modes 20h-27h supported 05h BYTE (IBM) reserved (Tseng ET3000/4000) modes supported 6 bit 0 to bit 7 = modes 28h-2Fh supported 06h BYTE (IBM) reserved (Tseng ET3000/4000) modes supported 7 bit 0 to bit 7 = modes 30h-37h supported 07h BYTE scan lines supported bit 0 to bit 2 = 1 if scan lines 200,350,400 supported bits 3-7 = unused (0) 08h BYTE total number of character blocks available in text modes 09h BYTE maximum number of active character blocks in text modes 0Ah WORD miscellaneous function support flags (see #00046) 0Ch WORD reserved 0Eh BYTE save pointer function flags (see #00047) 0Fh BYTE reserved SeeAlso: #00040 Bitfields for miscellaneous function support flags: Bit(s) Description (Table 00046) 0 all modes on all displays function supported 1 gray summing function supported 2 character font loading function supported 3 default palette loading enable/disable supported 4 cursor emulation function supported 5 EGA palette present 6 color palette present 7 color-register paging function supported 8 light pen supported (see AH=04h) 9 save/restore state function 1Ch supported 10 intensity/blinking function supported (see AX=1003h) 11 Display Combination Code supported (see #00039) 12-15 unused (0) SeeAlso: #00040 Bitfields for save pointer function flags: Bit(s) Description (Table 00047) 0 512 character set supported 1 dynamic save area supported 2 alpha font override supported 3 graphics font override supported 4 palette override supported 5 DCC extension supported 6-7 unused (0) SeeAlso: #00040Top
INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA) AH = 1Ch AL = function 00h return state buffer size Return: BX = number of 64-byte blocks needed 01h save video state ES:BX -> buffer 02h restore video state ES:BX -> buffer containing previously saved state CX = requested states (see #00048) Return: AL = 1Ch if function supported Notes: many BIOSes corrupt the video registers when saving the state, so a program should restore the state immediately after saving it (the saved data is uncorrupted) the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h this function is not supported when DOS/V is running this function may be a better VGA installation check than the usual INT 10/AX=1A00h, since some late-model EGA cards (such as the ATI EGA Wonder) supported that call SeeAlso: AX=1A00h,AX=5F90h,AX=5FA0h,MEM 0040h:00A8h Bitfields for requested states: Bit(s) Description (Table 00048) 0 video hardware (see #00049) 1 BIOS data areas 2 color registers and DAC state (see #00050) 3-15 unused (0) SeeAlso: #00186 Format of VGA video hardware state: Offset Size Description (Table 00049) 00h BYTE sequencer index register 01h BYTE CRTC index register 02h BYTE graphics controller index register 03h BYTE attribute controller index register 04h BYTE feature controller register 05h 4 BYTEs sequencer registers 09h BYTE sequencer register 0 0Ah 25 BYTEs CRTC registers 0-8 23h 16 BYTEs palette registers 00h-0Fh 33h 4 BYTEs attribute registers 10h-13h 37h 9 BYTEs graphics controller registers 0-8 40h BYTE CRTC base address (low) 41h BYTE CRTC base address (high) 42h BYTE plane 0 latch 43h BYTE plane 1 latch 44h BYTE plane 2 latch 45h BYTE plane 3 latch Format of VGA DAC state: Offset Size Description (Table 00050) 00h BYTE read/write mode DAC 01h BYTE pixel address 02h BYTE pixel mask 03h 768 BYTEs color data (256 triples) 303h BYTE color select registerTop
INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL AH = 1Dh AL = function 00h enable shift status line(s) BX = number of lines to reserve at bottom of screen (usu. 1) 01h disable shift status line BX = number of lines reserved at bottom of screen (usually 1) 02h get number of status lines Return: BX = number of lines reserved for shift status SeeAlso: AH=19hTop
INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS AH = 1Dh AL = video mode ES = caller's segment Return: nothing Note: the caller's segment contains at offset 5Ch (FCB field in PSP) or 100h a table with sync parameters (see #00051) (BIOS looks at both offsets) Format of SpeedSTAR Plus sync table: Offset Size Description (Table 00051) 00h 9 BYTEs ID contains string 'ey5CENTER' 09h 5 BYTEs sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh 0Bh 5 BYTEs sync parameters for 800x600 modes 29h,30h,2Ah 13h 5 BYTEs sync parameters for 1024x768 modes 37h,38hTop
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG AH = 1Dh Note: these versions of the BIOS jump to a random location on this function due to a fencepost errorTop
INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK AX = 1DAAh BX = FDECh Return: BX = CDEFh if Diamond Stealth64 Video 2001-series video card installed AL = number of megabytes of video memory AH = card type??? (4Bh for VL-Bus/5Bh for PCI) CX = ??? (0000h) SI:DI -> signature/copyright stringTop
INT 10 - VIDEO - FLAT-PANEL - READ INFORMATION AX = 1E00h Return: AL = 1Eh if function supported BL = flat-panel status (see #00052) ES:DI -> information table (see #00053) Note: IBM classifies this function as optional SeeAlso: AX=1E01h,AX=1E02h,AX=1E03h,AX=1E04h,AX=1E05h,AX=1EFEh Bitfields for flat-panel status: Bit(s) Description (Table 00052) 7-3 reserved 2 color display 1 flat panel is active 0 flat panel is attached SeeAlso: #00053 Format of flat-panel information table: Offset Size Description (Table 00053) 00h BYTE number of WORDs in the remainder of the table 01h WORD number of vertical pixels per meter 03h WORD number of horizontal pixels per meter 05h WORD total number of vertical pixels 07h WORD total number of horizontal pixels 09h WORD vertical pixel separation in micrometers (center-to-center) 0Bh WORD horizontal pixel separation in micrometers 0Dh WORD range of gray levels available, less 1 0Fh WORD number of red levels available, less 1 (0000h if nonochrome) 11h WORD number of green levels available, less 1 (0000h if nonochrome) 13h WORD number of blue levels available, less 1 (0000h if nonochrome) SeeAlso: #00052Top
INT 10 - VIDEO - FLAT-PANEL - LCD/CRT DISPLAY CONTROL AX = 1E01h BH = function bit 7: =1 set display control, =0 query control bits 6-0: reserved (0) ---if BH bit 7 set--- BL = new display combination (see #00054) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bits 6-3: reserved (0) bit 2: simultaneous display is supported by hardware bit 1: LCD/CRT display control supported by hardware bit 0: set operation was successful (always clear on get) BL = active display combination (see #00054) SeeAlso: AX=1E00h,AX=1E02h Bitfields for Flat-Panel display combination: Bit(s) Description (Table 00054) 7-2 reserved (0) 1-0 combination 00 reserved 01 LCD active 10 CRT active 11 both LCD and CRT active (simultaneous display) SeeAlso: #00055Top
INT 10 - VIDEO - FLAT-PANEL - DISPLAY POSITION AX = 1E02h BH = function bit 7: =1 set display position, =0 query position bits 6-0: reserved (0) ---if BH bit 7 set--- BL = new position setting (see #00055) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bits 6-4: reserved (0) bit 3: positioning to top is supported by hardware bit 2: positioning to center is supported by hardware bit 1: positioning to bottom is supported by hardware bit 0: set operation was successful (always clear on get) BL = active position setting (see #00055) SeeAlso: AX=1E00h,AX=1E01h Bitfields for Flat-Panel position setting: Bit(s) Description (Table 00055) 7-2 reserved (0) 1-0 position 00 center 01 top 10 bottom 11 reserved SeeAlso: #00054,#00056Top
INT 10 - VIDEO - FLAT-PANEL - VERTICAL EXPANSION FOR TEXT/GRAPHICS MODES AX = 1E03h BH = function bit 7: =1 set vertical expansion, =0 query expansion bits 6-0: reserved (0) ---if BH bit 7 set--- BL = new vertical expansion setting (see #00056) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bits 6-4: reserved (0) bit 3: vertical expansion of text is supported by hardware bit 2: vertical expansion of graphics is supported by hardware bit 1: hardware supports independent control of expansion in text and graphics modes bit 0: set operation was successful (always clear on get) BL = active vertical expansion setting (see #00056) SeeAlso: AX=1E00h,AX=1E02h.AX=1E04h Bitfields for Flat-Panel vertical expansion setting: Bit(s) Description (Table 00056) 7-2 reserved (0) 1 vertical expansion turned on for text modes 0 vertical expansion turned on for graphics modes SeeAlso: #00054,#00055,#00057Top
INT 10 - VIDEO - FLAT-PANEL - NORMAL/REVERSE VIDEO FOR TEXT/GRAPHICS MODES AX = 1E04h BH = function bit 7: =1 set normal/reverse video, =0 query normal/reverse bits 6-0: reserved (0) ---if BH bit 7 set--- BL = new normal/reverse video setting (see #00057) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bits 6-4: reserved (0) bit 3: hardware supports reverse video for text modes bit 2: hardware supports reverse video for graphics modes bit 1: hardware supports independent control of reverse video in text and graphics modes bit 0: set operation was successful (always clear on get) BL = active normal/reverse video setting (see #00057) SeeAlso: AX=1E00h,AX=1E03h,AX=1E05h Bitfields for Flat-Panel normal/reverse video setting: Bit(s) Description (Table 00057) 7-2 reserved (0) 1 reverse video for text 0 reverse video for graphics SeeAlso: #00054,#00056,#00058,#00059Top
INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS CONTROL AX = 1E05h BH = function bit 7: =1 set brightness, =0 query brightness bits 6-0: reserved (0) ---if BH bit 7 set--- BL = new brightness setting (see #00058) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bits 6-2: reserved (0) bit 1: software brightness control is supported bit 0: set operation was successful (always clear on get) BL = active brightness setting (see #00058) Note: this function operates independently of AX=1E07h SeeAlso: AX=1E00h,AX=1E04h,AX=1E06h,AX=1E07h Bitfields for Flat-Panel brightness control: Bit(s) Description (Table 00058) 7-1 reserved (0) 0 high brightness SeeAlso: #00057,#00059Top
INT 10 - VIDEO - FLAT-PANEL - CONTRAST CONTROL FOR TEXT/GRAPHICS AX = 1E06h BH = function bit 7: =1 set contrast control, =0 query contrast bits 6-0: reserved (0) ---if BH bit 7 set--- BL = new normal/reverse video setting (see #00059) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bits 6-4: reserved (0) bit 3: software contrast control supported for text bit 2: software contrast control supported for graphics bit 1: hardware supports independent control of contrast in text and graphics modes bit 0: set operation was successful (always clear on get) BL = active contrast setting (see #00059) Note: this function operates independently of AX=1E08h SeeAlso: AX=1E00h,AX=1E04h,AX=1E05h,AX=1E07h,AX=1E08h Bitfields for Flat-Panel contrast control: Bit(s) Description (Table 00059) 7-2 reserved (0) 1 high contrast for text 0 high contrast for graphics SeeAlso: #00057,#00058Top
INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS SETTING AX = 1E07h BH = function bit 7: =1 set brightness control, =0 query brightness bit 6: use standard brightness bits 5-0: reserved (0) ---if BH bits 7,6=10--- BL = brightness (00h = minimum, FFh = maximum) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bit 6: standard/custom (copied from input) bits 5-2: reserved (0) bit 1: software brightness control is supported bit 0: set operation was succesful (always clear on get) BL = brightness (00h = minimum, FFh = maximum) Note: this function operates independently of AX=1E05h SeeAlso: AX=1E00h,AX=1E05h,AX=1E08hTop
INT 10 - VIDEO - FLAT-PANEL - CONTRAST SETTING AX = 1E08h BH = function bit 7: =1 set contrast control, =0 query contrast bit 6: use standard contrast bits 5-0: reserved (0) ---if BH bits 7,6=10--- BL = contrast (00h = minimum, FFh = maximum) Return: AL = 1Eh if function supported BH = results bit 7: query/set (copied from input) bit 6: standard/custom (copied from input) bits 5-2: reserved (0) bit 1: software contrast control is supported bit 0: set operation was succesful (always clear on get) BL = contrast (00h = minimum, FFh = maximum) Note: this function operates independently of AX=1E06h SeeAlso: AX=1E00h,AX=1E06h,AX=1E07hTop
INT 10 - VIDEO - FLAT-PANEL - FUNCTION SUPPORT FLAG AX = 1EFEh ES:DI -> DWORD buffer for bitmap of supported functions (set to all zeros before calling) Return: ES:DI buffer updated with mask of supported functions Index: installation check;flat-panel display support SeeAlso: AX=1E00h,AX=1E06hTop
INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH AX = 1F00h Return: AL = 1Fh if supported BX = number of bytes of DMQS data Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced) and later models. SeeAlso: AX=1F01hTop
INT 10 - VIDEO - XGA - READ DMQS DATA AX = 1F01h ES:DI -> user buffer for return data (call AX=1F00h for size) Return: AL = 1Fh if function supported user buffer filled with DMQS data (see #00060) Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced) and later models. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h Format of XGA DMQS buffer: Offset Size Description (Table 00060) 00h WORD offset (in bytes) to DMQS data for next XGA instance 02h BYTE slot number 03h BYTE XGA implementation function level identifier 04h BYTE XGA implementation resolution level identifier 05h WORD vendor identifier - identifies card vendor 07h WORD vendor defined field 09h WORD XGA adapter I/O register base address 0Bh WORD XGA coprocessor register base address (paragraph--multiply by 10h to get physical address) 0Dh WORD 1 Megabyte system video memory aperture 0000h if not allocated (Multiply by 100000h to get physical address) 0Fh WORD 4 Megabyte system video memory aperture 0000h if not allocated (multiply by 100000h to get physical address) 11h WORD video memory base address (multiply by 100000h to get physical address) 13h WORD composite ID of the attached display 15h BYTE amount of video memory available, in multiples of 256K bytes 16h DWORD alternate XGA coprocessor register base address. 0 = none. 1Ah var DMQS Data for further XGA Instances (as above) Note: "Instances" refers to the capability of having up to 8 XGA adapters in one computer. SeeAlso: #00061Top
INT 10 - VIDEO - XGA - GET SVGA DMQS DATA LENGTH AX = 1F02h Return: AL = 1Fh if function supported BX = length of SVGA DMQS data in bytes SeeAlso: AX=1F00h,AX=1F03hTop
INT 10 - VIDEO - XGA - GET SVGA DMQS DATA AX = 1F03h ES:DI -> buffer for SVGA DMQS data (see #00061) Return: AL = 1Fh if function supported ES:DI buffer filled SeeAlso: AX=1F00h,AX=1F02h Format of SVGA DMQS data: Offset Size Description (Table 00061) 00h WORD offset to DMQS data for next SVGA instance or 0000h 02h BYTE reserved 03h BYTE SVGA implementation functional level 04h BYTE SVGA implementation resolution level 05h WORD vendor ID 07h WORD vendor-specific 09h 7 BYTEs reserved 10h BYTE SVGA linear address window size 00h 64K 01h 1M 02h 2M 03h 4M 11h WORD SVGA linear address window location or 0000h if not allocated (multiply by 10000h [shift left 16 bits] to get physical addr) 13h WORD attached monitor's composite monitor ID 15h BYTE available video RAM in multiples of 256K 16h 11 BYTEs reserved SeeAlso: #00060Top
INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
AX = 3000h
CX = 0000h
DX = 0000h
Return: CX:DX -> 3270PC configuration table (see #00062)
CX:DX = 0000h:0000h if 3270PC Control Program not active
SeeAlso: AX=1F01h
Format of 3270 PC configuration table:
Offset Size Description (Table 00062)
00h BYTE aspect ratio X
01h BYTE aspect ratio Y
02h BYTE monitor type (see #00063)
03h BYTE reserved
04h BYTE adapter ID
00h = 5151/5272 adapter
04h = 5151/5272 with XGA adapter
30h = 3295 or 3270PC G/GX adapter
05h BYTE reserved
06h BYTE function flags 1 (see #00064)
07h BYTE function flags 2
bit 6: GPI graphics supported
08h WORD segment address of Control Program Level table (see #00065)
0Ah 10 BYTEs reserved
(Table 00063)
Values for 3270 PC monitor type:
00h 5151 (mono) or 5272 (color)
01h 3295
02h 5151 or 5272 with XGA (???) graphics adapter
03h 5279 with 3270PC G adapter
04h 5379 model C01 with 3270PC GX adapter
05h 5379 model M01 with 3270PC GX adapter
07h non-3270PC with 3270 Workstation Program
FFh 3270PC Control Program not loaded
Bitfields for 3270 PC function flags 1:
Bit(s) Description (Table 00064)
7 mono text, 1 page
6 color text, 1 page
5 color text, 4 pages
4 CGA color graphics
3 720x350 two-color graphics
2 360x350 four-color graphics
1 720x350 eight-color graphics
Format of Control Program Level table:
Offset Size Description (Table 00065)
00h WORD program version
02xxh = 3270PC Control Program v2.xx
03xxh = 3270PC Control Program v3.xx
04xxh = 3270 Workstation Program v1.xx
02h BYTE Control Program ID (00h)
03h 27 BYTEs Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
Top
INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO AX = 3800h Return: ES:DI -> configuration info (see #00066) Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman Notes: this call is also used as the installation check by verifying that the returned ES:DI points at valid configuration info Tinytalk v1.09f ignores AL and always returns the configuration info; v1.10 adds several subfunctions selected with AL SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h SeeAlso: INT 2F/AX=FB00h"AutoBraille" Index: installation check;Tinytalk Personal Format of Tinytalk Personal configuration info: Offset Size Description (Table 00066) 00h 8 BYTEs signature "TTCONFIG" 08h WORD size of configuration data, not counting signature, this WORD, or the following byte 0Ah BYTE ??? 0Bh ??? configuration dataTop
INT 10 - Tinytalk Personal v1.10 - ??? AX = 3801h DL = ??? Return: ??? SeeAlso: AX=3800h,AX=3802hTop
INT 10 - Tinytalk Personal v1.10 - ??? AX = 3802h DL = ??? Return: ??? SeeAlso: AX=3800h,AX=3801hTop
INT 10 - Tinytalk Personal v1.10 - GET ??? AX = 3803h Return: AL = ??? SeeAlso: AX=3800h,AX=3804h,AX=3805hTop
INT 10 - Tinytalk Personal v1.10 - GET ??? AX = 3804h Return: AX = ??? SeeAlso: AX=3800h,AX=3803h,AX=3805hTop
INT 10 - Tinytalk Personal v1.10 - GET ??? AX = 3805h Return: AL = ??? SeeAlso: AX=3800h,AX=3803h,AX=3804hTop
INT 10 - Tinytalk Personal v1.10 - ??? AX = 3806h ES:DX -> ASCIZ ??? Return: ??? SeeAlso: AX=3800hTop
INT 10 - Tinytalk Personal v1.10 - ??? AH = 39h Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman Note: this function was a NOP in TTDEMO.EXE, but may be implemented in other variants of TinytalkTop
INT 10 - VIDEO - Hercules GRAFIX - "GMODE" - SET GRAPHICS MODE AH = 40h Return: nothing Program: Hercules GRAFIX (or GRAPH X, as it is called in some documentation) provides text output in graphics mode and some graphics primitives on the Hercules Graphics Card Desc: switch the Hercules Graphics Card into graphics mode (720x348) without clearing the screen; make Page 0 the default for both writing and display, and set LEVEL (see AH=44h) to 01h SeeAlso: AH=00h,AH=41h,AH=42h Index: video modes;HerculesTop
INT 10 - VIDEO - Hercules GRAFIX - "TMODE" - SET TEXT MODE AH = 41h Return: nothing Desc: switch the Hercules Graphics Card into text mode SeeAlso: AH=00h,AH=40h Index: video modes;HerculesTop
INT 10 - VIDEO - Hercules GRAFIX - "CLRSCR" - CLEAR CURRENT PAGE AH = 42h Return: nothing SeeAlso: AH=45hTop
INT 10 - VIDEO - Hercules GRAFIX - "GPAGE" - SELECT DRAWING PAGE AH = 43h AL = page number (0,1) Return: nothing Desc: specify which of the two pages of video memory is to be used for output SeeAlso: AH=05h,AH=44h,AH=45hTop
INT 10 - VIDEO - Hercules GRAFIX - "LEVEL" - SELECT DRAWING FUNCTION AH = 44h AL = drawing function 00h clear pixels 01h set pixels 02h invert pixels Return: nothing Desc: specify how graphics output will change the display SeeAlso: AH=40h,AH=45h,AH=46h,AH=4Bh,AH=4Ch,AH=4DhTop
INT 10 - VIDEO - Hercules GRAFIX - "DISP" - SELECT PAGE TO DISPLAY AH = 45h AL = page number (0,1) Return: nothing Desc: specify which of the two pages of video memory is visible on screen SeeAlso: AH=05h,AH=42h,AH=43hTop
INT 10 - VIDEO - Hercules GRAFIX - "PLOT" - DRAW ONE PIXEL AH = 46h DI = x (0-719) BP = y (0-347) Return: nothing Notes: function 44h determines operation and function 43h which page to use if the indicated coordinate is invalid, this function does nothing SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4DhTop
INT 10 - VIDEO - Hercules GRAFIX - "GETPT" - FIND PIXEL VALUE AH = 47h DI = x (0-719) BP = y (0-347) Return: AL = 00h pixel clear AL = 01h pixel set Note: function 43h specifies which page is used SeeAlso: AH=0Dh,AH=46hTop
INT 10 - VIDEO - Hercules GRAFIX - "MOVE" - MOVE TO POINT AH = 48h DI = x (0-719) BP = y (0-347) Return: nothing Desc: specify the location from which to start the next graphics output SeeAlso: AH=49hTop
INT 10 - VIDEO - Hercules GRAFIX - "DLINE" - DRAW TO POINT AH = 49h DI = x (0-719) BP = y (0-347) Return: nothing Note: function 48h or 49h specify first point, 44h operation and 43h page to use SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4DhTop
INT 10 - VIDEO - Hercules GRAFIX - "BLKFIL" - BLOCK FILL AH = 4Ah DI = x coordinate of lower left corner BP = y coordinate of lower left corner BX = height in pixels CX = width in pixels Return: nothing Desc: draw a solid rectangle of the specified size at the given location SeeAlso: AH=4EhTop
INT 10 - VIDEO - Hercules GRAFIX - "TEXT" - DISPLAY CHARACTER AH = 4Bh AL = character to display DI = x (0-719) BP = y (0-347) Return: nothing Notes: unlike the other BIOS character functions character position is specified in pixels rather than rows and columns the character is writting using the drawing function last specified by AH=44h SeeAlso: AH=09h,AH=0Ah,AH=44hTop
INT 10 - FRIEZE - API AH = 4Bh CL = function 00h (v6.x-) print window AL = mode 00h character 01h normal 02h sideways 01h load window ES:BX -> ASCIZ filename from which to read 02h save window ES:BX -> ASCIZ filename to which to write 03h set print width AL = width in 1/4 inches 04h set print height AL = height in 1/4 inches 05h reserved 06h set left margin AL = printout margin in 1/4 inches 07h set window size ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax 08h reserved 09h set patterns ES:BX -> 16-BYTE vector of screen->printer color correspondnces 0Ah get patterns ES:BX -> 16-BYTE buffer for color correspondences 0Bh set mode AL = mode 0Ch (v7.41) ??? AL = ??? 00h ??? (calls original INT 05) else ??? 0Dh (v7.41) ??? AL = ??? 00h ??? (calls original INT 05) else ??? 0Eh (v7.41) ??? ??? 0Fh get window ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax 10h set print options ES:BX -> printer options in same format as FRIEZE cmdline 11h initialize ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code 12h (v7.41) ??? ??? 13h (v7.41) ??? ??? 14h get version Return: AH = major version (00h if FRIEZE version before 7) AL = minor version 15h set parameters ES:BX -> parameter table (see #00068) 16h get parameters ES:BX -> buffer for parameter table (see #00068) 17h get printer resolution ES:BX -> 12-WORD table for six horizontal/vertical resol pairs 18h (v8.0 only) reserved 50h (v7.41) get ??? Return: AX = ??? 51h (v7.41) get ??? Return: ES = ??? (seen 2348h) AX = ??? (seen 8432h) Return: AX = status (see #00067) SeeAlso: AH=0Fh/SI=F123h (Table 00067) Values for FRIEZE function status: 00h successful 01h user aborted printout with ESC 02h reserved 03h file read error 04h file write error or printer error 05h file not found 06h invalid header (not an image or wrong screen mode) or can't create file 07h file close error 08h disk error 09h (v7.0+) printer error 0Ah invalid function 0Bh (v7.0+) can't create file 0Ch (v7.0+) wrong video mode Format of FRIEZE parameter table: Offset Size Description (Table 00068) 00h WORD top margin (1/100 inch) 02h WORD left margin (1/100 inch) 04h WORD horizontal size (1/100 inch) 06h WORD vertical size (1/100 inch) 08h WORD quality/draft mode 00h draft mode 01h quality mode 02h use horizontal/vertical resolution for output resolution 0Ah WORD printer horizontal resolution (dots per inch) 0Ch WORD printer vertical resolution (dots per inch) 0Eh WORD reserved (FFFFh) Note: any field which should remain unchanged may be filled with FFFFhTop
INT 10 - VIDEO - Hercules GRAFIX - "ARC" - DRAW ARC AH = 4Ch AL = quadrant (1 = upper right, 2 = upper left, etc) DI = x coordinate of center BP = y coordinate of center BX = radius Return: nothing SeeAlso: AH=49h,AH=4DhTop
INT 10 - VIDEO - Hercules GRAFIX - "CIRC" - DRAW CIRCLE AH = 4Dh DI = x of center BP = y of center BX = radius Return: nothing SeeAlso: AH=49h,AH=4ChTop
INT 10 - VIDEO - Hercules GRAFIX - "FILL" - FILL AREA AH = 4Eh DI = x coordinate of an interior point BP = y coordinate of an interior point Return: nothing Desc: fill a convex polygonal area bounded by a contiguous line of the opposite color with the border color Note: the first fill makes the figure solid, the second erases it SeeAlso: AH=4AhTop
INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
AX = 4E00h
ES:DI -> 256-byte buffer for XGA information (see #00069)
Return: AL = 4Eh if function supported
AH = status
00h successful
else error code
Desc: determine whether VESA XGA extensions are present and the capabilities
supported by the display adapter
SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
Index: installation check;VESA XGA
Format of XGA information buffer:
Offset Size Description (Table 00069)
00h 4 BYTEs signature ("VESA")
04h WORD VESA version number
06h DWORD pointer to ASCIZ OEM string
0Ah DWORD environment flags (see #00070)
0Eh WORD number of XGA adapters installed (other VESA XGA functions
require a handle indicating which adapter to use)
10h 240 BYTEs reserved
Bitfields for XGA environment flags:
Bit(s) Description (Table 00070)
0-1 system bus (00 = MCA, 01 = ISA, 10 = EISA)
2 bus mastering available
3-31 reserved
Top
INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION AX = 4E01h DX = XGA handle (0 to number of XGAs-1) ES:DI -> 256-byte buffer for subsystem information (see #00071) Return: AL = 4Eh if function supported AH = status 00h function successful else error code SeeAlso: AX=4E00h,AX=4E02h Format of XGA subsystem information: Offset Size Description (Table 00071) 00h DWORD pointer to null-terminated board OEM string 04h DWORD capabilities (see #00072) 08h DWORD pointer to 8KB XGA ROM (or NULL) 0Ch DWORD pointer to the XGA memory mapped registers 10h WORD base address of XGA I/O registers (21x0h) 12h DWORD pointer to start of physical video memory (A000h:0000h or B000h:0000h) 16h DWORD physical address of 4MB aperture (or NULL if none) 1Ah DWORD physical address of 1MB aperture (or NULL if none) 1Eh DWORD physical address of 64KB aperture (or NULL if not enabled) 22h DWORD physical address of OEM aperture (or NULL if none) 26h WORD size of OEM aperture in 64KByte units 28h DWORD pointer to list of video modes The list is a series of WORDs terminated by FFFFh 2Ch WORD number of 64KB blocks on the board 2Eh DWORD XGA manufacturer ID byte 0 POS data index 1 byte 1 is index 2 byte 2 is 21xAh index 75h 32h 206 BYTEs reserved Bitfields for XGA capabilities: Bit(s) Description (Table 00072) 0-1 board bus architecture: 0=MCA, 1=ISA, 3=EISA 2-3 reserved 4-6 DMA Channel assigned for acquiring bus mastership (only for ISA bus) 7 DMA Channel Status (ISA only). enabled if set 8-31 reservedTop
INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION AX = 4E02h CX = Video mode DX = XGA handle ES:DI -> 256 byte buffer for mode information (see #00073) Return: AL = 4Eh if function supported AH = status 00h function successful else error code SeeAlso: AX=4E00h,AX=4E01h Format of XGA mode information: Offset Size Description (Table 00073) 00h WORD attributes of the mode (see #00074) 02h WORD bytes per logical scanline 04h WORD horizontal resolution in pixels 06h WORD vertical resolution in scanlines 08h BYTE character Width in pixels 09h BYTE character Height in pixels 0Ah BYTE number of planes 0Bh BYTE bits per pixels 0Ch BYTE memory model (see #00075) 0Dh BYTE number of Image Pages 0Eh BYTE number of Red bits 0Fh BYTE bit position of Red bit field 10h BYTE number of Green bits 11h BYTE bit position of Green bit field 12h BYTE number of Blue bits 13h BYTE bit position of Blue bit field 14h BYTE number of Reserved bits 15h BYTE bit position of Reserved bit field 16h 235 BYTEs reserved Bitfields for XGA mode attributes: Bit(s) Description (Table 00074) 0 set if mode is supported 1 reserved 2 output is supported by the BIOS 3 reserved 4 if set this is a graphics mode (VGA registers inactive, XGA active), if clear this is a text mode (VGA registers active, XGA inactive) (Table 00075) Values for XGA video memory model: 00h Text Mode 01h CGA graphics 02h Hercules graphics 03h 4-planar graphics 04h Packed Pixel 05h Non-chain 4, 256 color 06h Direct Color 07h YUV-24Top
INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE AX = 4E03h BX = video mode CX = other command flags bit 0 If clear the feature connector is set to the default state DX = XGA handle ES:DI -> 256 byte buffer Return: AL = 4Eh if function supported AH = status 00h function successful else error code SeeAlso: AH=00h,AX=4E04h,AX=4F02hTop
INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE AX = 4E04h DX = XGA handle Return: AL = 4Eh if function supported AH = status 00h function successful BX??? = current mode else error code SeeAlso: AH=0Fh,AX=4E03h,AX=4F03hTop
INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE AX = 4E05h BX = Feature Connector State (see #00076) DX = XGA handle Return: AL = 4Eh if function supported AH = status 00h function successful else error code SeeAlso: AX=4E00h,AX=4E06h Bitfields for XGA Feature Connector State: Bit(s) Description (Table 00076) 0 Feature Connector is enabled 1 Feature Connector is in Output Mode rather than Input Mode 2-15 reserved (0)Top
INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE AX = 4E06h DX = XGA handle Return: AL = 4Eh if function supported AH = status 00h function successful else error code BX = Feature Connector State (see #00076) SeeAlso: AX=4E00h,AX=4E05hTop
INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
AX = 4F00h
ES:DI -> buffer for SuperVGA information (see #00077)
Return: AL = 4Fh if function supported
AH = status
00h successful
ES:DI buffer filled
01h failed
---VBE v2.0---
02h function not supported by current hardware configuration
03h function invalid in current video mode
Desc: determine whether VESA BIOS extensions are present and the capabilities
supported by the display adapter
SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h"SOLLEX",AX=A00Ch
Index: installation check;VESA SuperVGA
Format of SuperVGA information:
Offset Size Description (Table 00077)
00h 4 BYTEs (ret) signature ("VESA")
(call) VESA 2.0 request signature ("VBE2"), required to receive
version 2.0 info
04h WORD VESA version number (one-digit minor version -- 0102h = v1.2)
06h DWORD pointer to OEM name
"761295520" for ATI
0Ah DWORD capabilities flags (see #00078)
0Eh DWORD pointer to list of supported VESA and OEM video modes
(list of words terminated with FFFFh)
12h WORD total amount of video memory in 64K blocks
---VBE v1.x ---
14h 236 BYTEs reserved
---VBE v2.0 ---
14h WORD OEM software version (BCD, high byte = major, low byte = minor)
16h DWORD pointer to vendor name
1Ah DWORD pointer to product name
1Eh DWORD pointer to product revision string
22h WORD (if capabilities bit 3 set) VBE/AF version (BCD)
0100h for v1.0P
24h DWORD (if capabilities bit 3 set) pointer to list of supported
accelerated video modes (list of words terminated with FFFFh)
28h 216 BYTEs reserved for VBE implementation
100h 256 BYTEs OEM scratchpad (for OEM strings, etc.)
Notes: the list of supported video modes is stored in the reserved portion of
the SuperVGA information record by some implementations, and it may
thus be necessary to either copy the mode list or use a different
buffer for all subsequent VESA calls
not all of the video modes in the list of mode numbers may be
supported, e.g. if they require more memory than currently installed
or are not supported by the attached monitor. Check any mode you
intend to use through AX=4F01h first.
the 1.1 VESA document specifies 242 reserved bytes at the end, so the
buffer should be 262 bytes to ensure that it is not overrun; for
v2.0, the buffer should be 512 bytes
the S3 specific video modes will most likely follow the FFFFh
terminator at the end of the standard modes. A search must then
be made to find them, FFFFh will also terminate this second list
in some cases, only a "stub" VBE may be present, supporting only
AX=4F00h; this case may be assumed if the list of supported video
modes is empty (consisting of a single word of FFFFh)
Bitfields for VESA capabilities:
Bit(s) Description (Table 00078)
0 DAC can be switched into 8-bit mode
1 non-VGA controller
2 programmed DAC with blank bit (i.e. only during blanking interval)
3 (VBE v3.0) controller supports hardware stereoscopic signalling
3 controller supports VBE/AF v1.0P extensions
4 (VBE v3.0) if bit 3 set:
=0 stereo signalling via external VESA stereo connector
=1 stereo signalling via VESA EVC connector
4 (VBE/AF v1.0P) must call EnableDirectAccess to access framebuffer
5 (VBE/AF v1.0P) controller supports hardware mouse cursor
6 (VBE/AF v1.0P) controller supports hardware clipping
7 (VBE/AF v1.0P) controller supports transparent BitBLT
8-31 reserved (0)
SeeAlso: #00077,AX=4F09h
Top
INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION AX = 4F01h CX = SuperVGA video mode (see #04082 for bitfields) ES:DI -> 256-byte buffer for mode information (see #00079) Return: AL = 4Fh if function supported AH = status 00h successful ES:DI buffer filled 01h failed Desc: determine the attributes of the specified video mode SeeAlso: AX=4F00h,AX=4F02h Bitfields for VESA/VBE video mode number: Bit(s) Description (Table 04082) 15 preserve display memory on mode change 14 (VBE v2.0+) use linear (flat) frame buffer 13 (VBE/AF 1.0P) VBE/AF initializes accelerator hardware 12 reserved for VBE/AF 11 (VBE v3.0) user user-specified CRTC refresh rate values 10-9 reserved for future expansion 8-0 video mode number (0xxh are non-VESA modes, 1xxh are VESA-defined) Format of VESA SuperVGA mode information: Offset Size Description (Table 00079) 00h WORD mode attributes (see #00080) 02h BYTE window attributes, window A (see #00081) 03h BYTE window attributes, window B (see #00081) 04h WORD window granularity in KB 06h WORD window size in KB 08h WORD start segment of window A (0000h if not supported) 0Ah WORD start segment of window B (0000h if not supported) 0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h) 10h WORD bytes per scan line ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes--- 12h WORD width in pixels (graphics) or characters (text) 14h WORD height in pixels (graphics) or characters (text) 16h BYTE width of character cell in pixels 17h BYTE height of character cell in pixels 18h BYTE number of memory planes 19h BYTE number of bits per pixel 1Ah BYTE number of banks 1Bh BYTE memory model type (see #00082) 1Ch BYTE size of bank in KB 1Dh BYTE number of image pages (less one) that will fit in video RAM 1Eh BYTE reserved (00h for VBE 1.0-2.0, 01h for VBE 3.0) ---VBE v1.2+ --- 1Fh BYTE red mask size 20h BYTE red field position 21h BYTE green mask size 22h BYTE green field size 23h BYTE blue mask size 24h BYTE blue field size 25h BYTE reserved mask size 26h BYTE reserved mask position 27h BYTE direct color mode info bit 0: color ramp is programmable bit 1: bytes in reserved field may be used by application ---VBE v2.0+ --- 28h DWORD physical address of linear video buffer 2Ch DWORD pointer to start of offscreen memory 30h WORD KB of offscreen memory ---VBE v3.0 --- 32h WORD bytes per scan line in linear modes 34h BYTE number of images (less one) for banked video modes 35h BYTE number of images (less one) for linear video modes 36h BYTE linear modes: size of direct color red mask (in bits) 37h BYTE linear modes: bit position of red mask LSB (e.g. shift count) 38h BYTE linear modes: size of direct color green mask (in bits) 39h BYTE linear modes: bit position of green mask LSB (e.g. shift count) 3Ah BYTE linear modes: size of direct color blue mask (in bits) 3Bh BYTE linear modes: bit position of blue mask LSB (e.g. shift count) 3Ch BYTE linear modes: size of direct color reserved mask (in bits) 3Dh BYTE linear modes: bit position of reserved mask LSB 3Eh DWORD maximum pixel clock for graphics video mode, in Hz 42h 190 BYTEs reserved (0) Note: while VBE 1.1 and higher will zero out all unused bytes of the buffer, v1.0 did not, so applications that want to be backward compatible should clear the buffer before calling Bitfields for VESA SuperVGA mode attributes: Bit(s) Description (Table 00080) 0 mode supported by present hardware configuration 1 optional information available (must be =1 for VBE v1.2+) 2 BIOS output supported 3 set if color, clear if monochrome 4 set if graphics mode, clear if text mode ---VBE v2.0+ --- 5 mode is not VGA-compatible 6 bank-switched mode not supported 7 linear framebuffer mode supported 8 double-scan mode available (e.g. 320x200 and 320x240) ---VBE v3.0 --- 9 interlaced mode available 10 hardware supports triple buffering 11 hardware supports stereoscopic display 12 dual display start address support 13-15 reserved ---VBE/AF v1.0P--- 9 application must call EnableDirectAccess before calling bank-switching functions SeeAlso: #00079 Bitfields for VESA SuperVGA window attributes: Bit(s) Description (Table 00081) 0 exists 1 readable 2 writable 3-7 reserved SeeAlso: #00079 (Table 00082) Values for VESA SuperVGA memory model type: 00h text 01h CGA graphics 02h HGC graphics 03h 16-color (EGA) graphics 04h packed pixel graphics 05h "sequ 256" (non-chain 4) graphics 06h direct color (HiColor, 24-bit color) 07h YUV (luminance-chrominance, also called YIQ) 08h-0Fh reserved for VESA 10h-FFh OEM memory models SeeAlso: #00079Top
INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE AX = 4F02h BX = new video mode (see #04082,#00083,#00084) ES:DI -> (VBE 3.0+) CRTC information block, bit mode bit 11 set (see #04083) Return: AL = 4Fh if function supported AH = status 00h successful 01h failed Notes: bit 13 may only be set if the video mode is present in the list of accelerated video modes returned by AX=4F00h if the DAC supports both 8 bits per primary color and 6 bits, it will be reset to 6 bits after a mode set; use AX=4F08h to restore 8 bits SeeAlso: AX=4E03h,AX=4F00h,AX=4F01h,AX=4F03h,AX=4F08h (Table 00083) Values for VESA video mode: 00h-FFh OEM video modes (see #00010 at AH=00h) 100h 640x400x256 101h 640x480x256 102h 800x600x16 103h 800x600x256 104h 1024x768x16 105h 1024x768x256 106h 1280x1024x16 107h 1280x1024x256 108h 80x60 text 109h 132x25 text 10Ah 132x43 text 10Bh 132x50 text 10Ch 132x60 text ---VBE v1.2+ --- 10Dh 320x200x32K 10Eh 320x200x64K 10Fh 320x200x16M 110h 640x480x32K 111h 640x480x64K 112h 640x480x16M 113h 800x600x32K 114h 800x600x64K 115h 800x600x16M 116h 1024x768x32K 117h 1024x768x64K 118h 1024x768x16M 119h 1280x1024x32K (1:5:5:5) 11Ah 1280x1024x64K (5:6:5) 11Bh 1280x1024x16M ---VBE 2.0+ --- 120h 1600x1200x256 121h 1600x1200x32K 122h 1600x1200x64K 81FFh special full-memory access mode Notes: the special mode 81FFh preserves the contents of the video memory and gives access to all of the memory; VESA recommends that the special mode be a packed-pixel mode. For VBE 2.0+, it is required that the VBE implement the mode, but not place it in the list of available modes (mode information for this mode can be queried directly, however). as of VBE 2.0, VESA will no longer define video mode numbers SeeAlso: #00010,#00011,#00084,#00191 Index: video modes;VESA (Table 00084) Values for S3 OEM video mode: 201h 640x480x256 202h 800x600x16 203h 800x600x256 204h 1024x768x16 205h 1024x768x256 206h 1280x960x16 207h 1152x864x256 (Diamond Stealth 64) 208h 1280x1024x16 209h 1152x864x32K 20Ah 1152x864x64K (Diamond Stealth 64) 20Bh 1152x864x4G 211h 640x480x64K (Diamond Stealth 24) 211h 640x400x4G (Diamond Stealth64 Video / Stealth64 Graphics) 212h 640x480x16M (Diamond Stealth 24) 301h 640x480x32K Note: these modes are only available on video cards using S3's VESA driver SeeAlso: #00083,#00191,#00732 at INT 1A/AX=B102h Index: video modes;S3 Format of VESA VBE CRTC Information Block: Offset Size Description (Table 04083) 00h WORD total number of pixels horizontally 02h WORD horizontal sync start (in pixels) 04h WORD horizontal sync end (in pixels) 06h WORD total number of scan lines 08h WORD vertical sync start (in scan lines) 0Ah WORD vertical sync end (in scan lines) 0Ch BYTE flags (see #04084) 0Dh DWORD pixel clock, in Hz 11h WORD refresh rate, in 0.01 Hz units this field MUST be set to pixel_clock / (HTotal * VTotal), even though it may not actually be used by the VBE implementation 13h 40 BYTEs reserved Bitfields for VESA VBE CRTC Information Block flags: Bit(s) Description (Table 04084) 0 enable double scanning 1 enable interlacing 2 horizontal sync polarity (0 positive, 1 negative) 3 vertical sync polarity (0 positive, 1 negative) SeeAlso: #04083Top
INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE AX = 4F03h Return: AL = 4Fh if function supported AH = status 00h successful BX = video mode (see #00083,#00084) bit 13: VBE/AF v1.0P accelerated video mode bit 14: linear frame buffer enabled (VBE v2.0+) bit 15: don't clear video memory 01h failed SeeAlso: AH=0Fh,AX=4E04h,AX=4F02hTop
INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE AX = 4F04h DL = subfunction 00h get state buffer size Return: BX = number of 64-byte blocks needed 01h save video states ES:BX -> buffer 02h restore video states ES:BX -> buffer CX = states to save/restore (see #00085) Return: AL = 4Fh if function supported AH = status 00h successful 01h failed SeeAlso: AH=1Ch,AX=5F90h,AX=5FA0h Bitfields for VESA SuperVGA states to save/restore: Bit(s) Description (Table 00085) 0 video hardware state 1 video BIOS data state 2 video DAC state 3 SuperVGA register state SeeAlso: #00048,#00186Top
INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL AX = 4F05h BH = subfunction 00h select video memory window DX = window address in video memory (in granularity units) 01h get video memory window Return: DX = window address in video memory (in gran. units) BL = window number 00h window A 01h window B ES = selector for memory-mapped registers (VBE 2.0+, when called from 32-bit protected mode) Return: AL = 4Fh if function supported AH = status 00h successful 01h failed Note: when using an accelerated video mode under VBE/AF v1.0P, the application must call EnableDirectAccess before switching banks if bit 9 of the video mode attributes flag is set (see #00080) BUG: Phoenix S3 Trio64V+ v1.02-02 reportedly returns garbage in DX for subfunction 01h SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004hTop
INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS) AX = 4F06h BL = subfunction 00h set scan line length CX = desired width in pixels 01h get scan line length Return: AL = 4Fh if function supported AH = status 00h successful 01h failed BX = bytes per scan line CX = number of pixels per scan line DX = maximum number of scan lines Notes: if the desired width is not achievable, the next larger width will be set the scan line may be wider than the visible area of the screen this function is valid in text modes, provided that pixel values are multiplied by the character cell width/height SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07hTop
INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES) AX = 4F06h BL = 02h CX = desired scanline width in bytes Return: AL = 4Fh if function supported AH = status 00h successful 01h failed BX = bytes per scan line CX = number of pixels per scan line DX = maximum number of scan lines Notes: if the desired width is not achievable, the next larger width will be set the scan line may be wider than the visible area of the screen this function is valid in text modes, provided that pixel values are multiplied by the character cell width/height SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07hTop
INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH AX = 4F06h BL = 03h Return: AL = 4Fh if function supported AH = status 00h successful 01h failed BX = maximum bytes per scan line CX = maximum number of pixels per scan line Notes: this function is valid in text modes, provided that pixel values are multiplied by the character cell width/height SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07hTop
INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START AX = 4F07h BL = subfunction 00h,80h set display start CX = leftmost displayed pixel in scan line DX = first displayed scan line 01h get display start Return: BH = 00h CX = leftmost displayed pixel in scan line DX = first displayed scan line BH = 00h (reserved) Return: AL = 4Fh if function supported AH = status 00h successful 01h failed Notes: this function is valid in text modes, provided that values are multiplied by the character cell width/height subfunction 80h waits until vertical retrace before changing the display start address (VBE v2.0+) SeeAlso: AX=4F01h,AX=4F05h,AX=4F06hTop
INT 10 - VESA SuperVGA BIOS v3.0+ - SCHEDULED DISPLAY START AX = 4F07h BL = subfunction 02h,82h (VBE v3.0) schedule display start at next vertical retrace ECX = display start address in bytes 03h,83h schedule stereoscopic display start ECX = left image start address (in bytes) EDX = right image start address (in bytes) 04h get scheduled display start status Return: CX = start status (00h no display flip, else display has flipped) Return: AL = 4Fh if function supported AH = status 00h successful 01h failed SeeAlso: AX=4F07h"DISPLAY START",AX=4F07h"STEREOSCOPIC"Top
INT 10 - VESA SuperVGA BIOS v3.0+ - ENABLE/DISABLE STEREOSCOPIC MODE AX = 4F07h BL = subfunction 05h enable stereoscopic mode 06h disable stereoscopic mode Return: AL = 4Fh if function supported AH = status 00h successful 01h failed Note: when stereoscopic mode is enabled, the display start address will automatically alternate between the left and right images on every vertical retrace SeeAlso: AX=4F07h"DISPLAY START",AX=4F07h"SCHEDULED"Top
INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL AX = 4F08h BL = subfunction 00h set DAC palette width BH = desired number of bits per primary color 01h get DAC palette width Return: AL = 4Fh if function supported AH = status 00h successful BH = current number of bits per primary (06h = standard VGA) 01h failedTop
INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES AX = 4F09h BL = subfunction 00h set (primary) palette 01h get (primary) palette 02h set secondary palette data 03h get secondary palette data 80h set palette during vertical retrace CX = number of entries to change DX = starting palette index ES:DI -> palette buffer, array of DAC entries (see #00086) Return: AL = 4Fh if function supported AH = status 00h successful 01h failed SeeAlso: AX=4F0Ah,AX=D000h"S3VBE" Format of VESA VBE palette entry: Offset Size Description (Table 00086) 00h BYTE red 01h BYTE green 02h BYTE blue 03h BYTE alpha or alignment byteTop
INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE INTERFACE AX = 4F0Ah BL = 00h Return: AL = 4Fh if function supported AH = status 00h successful ES:DI -> protected-mode table (see #00087) CX = length of table in bytes, included protected-mode code 01h failed SeeAlso: AX=4F00h,AX=4F05h,AX=4F07h,AX=4F09h Format of VESA VBE 2.0 protected-mode table: Offset Size Description (Table 00087) 00h WORD offset (within table) of protected-mode code for Function 5 (Set Window) 02h WORD offset of protected-mode code for Function 7 (Set Disp Start) 04h WORD offset of protected-mode code for Function 9 (Set Primary Palette) 06h WORD offset (within table) of list of I/O ports and memory locations for which I/O privilege may be required in protected mode (0000h if no list) (see #04085) 08h var code and optional port/memory list Format of VESA VBE 2.0+ protected-mode port/memory list: Offset Size Description (Table 04085) 00h WORD I/O port number ... WORD FFFFh marking end of I/O port list DWORD memory region base address WORD memory region limit (one less than length) WORD FFFFh marking end of memory region list Note: the memory region is optional; if not present, there will be a word of FFFFh immediately following the FFFFh marking the end of the I/O port list SeeAlso: #00087Top
INT 10 O - VESA SuperVGA BIOS v2.0 beta - GET PROTECTED-MODE CODE AX = 4F0Ah BX = function to be copied (see #00088) Return: AL = 4Fh if function supported AH = status 00h successful CX = number of bytes to copy ES:DI -> code for requested function 01h failed SeeAlso: AX=4F09h,AX=D000h"S3VBE" (Table 00088) Values for VESA VBE protected-mode function identifiers: 0001h set bank (see AX=4F05h) 0002h set display start (see AX=4F07h) 0003h set palette (see AX=4F09h)Top
INT 10 - VESA SuperVGA BIOS v3.0 - GET NEAREST PIXEL CLOCK AX = 4F0Bh BL = 00h get closest pixel clock ECX = requested clock frequency in Hz DX = video mode number Return: AL = 4Fh if function supported AH = status 00h successful ECX = nearest clock rate 01h failedTop
INT 10 - VESA SuperVGA BIOS - GET VBE/AF v1.0P DEVICE CONTEXT BUFFER
AX = 4F0Bh
BL = subfunction
00h get length of device context buffer
01h initialize device context buffer
ES:DI -> real-mode address of buffer (see #00089)
Return: AL = 4Fh if function supported
AH = status
00h successful
CX = number of bytes required for buffer (if BL=00h on entry)
ES:DI buffer initialized (if BL=01h on entry)
01h failed
Note: this interface description is derived from the draft VBE/AF proposal
(version 1.0P, document revsion 0.12P, dated 13jan95)
SeeAlso: AX=4F00h,AX=4F01h,AX=4F17h
Format of VBE/AF v1.0P Device Context buffer:
Offset Size Description (Table 00089)
00h WORD maximum X coordinate in frame buffer (0 = left edge)
Note: application must never pass X coordinate greater than
this value to the SetClipRect function (values are
NOT range-checked!)
02h WORD maximum Y coordinate in frame buffer (0 = top edge)
Note: application must never pass Y coordinate greater than
this value to the SetClipRect function
04h DWORD -> "SetForeColor" to set foreground color/mix (see #00091)
08h DWORD -> "SetBackColor" to set background color/mix (see #00092)
0Ch DWORD -> "SetClipRect" set hardware clipping rectangle (see #00093)
10h DWORD -> function "DrawScan" to draw a single scan line
14h DWORD -> function "DrawScanList" to draw a list of scan lines
18h DWORD -> function "DrawRect" to draw a solid rectangle
1Ch DWORD -> function "DrawLine" to draw a solid line
20h DWORD -> function "DrawPattScan" to draw a patterned scan line
24h DWORD -> function "BitBlt" to perform screen-to-screen BitBLT
28h DWORD -> "TransBitBlt" to perform transparent screen-to-screen BitBLT
2Ch DWORD -> "MonoBitBlt" to monochrome expansion screen-to-screen BitBLT
30h DWORD -> function "SetCursor" to download hardware cursor image
34h DWORD -> function "SetCursorPos" to set hardware cursor position
38h DWORD -> function "SetCursorColor" to set hardware cursor color
3Ch DWORD -> function "ShowCursor" to show/hide hardware cursor
40h DWORD -> function "WaitTillIdle" to wait until graphics engine idle
44h DWORD -> "EnableDirectAccess" to enable direct framebuffer access
48h DWORD -> "DisableDirectAccess" to disable direct framebuffer access
4Ch DWORD -> "BankSwitchCB" bank-switching callback function
(set by application, may simply point at 32-bit VBE 2.0 bank
switching entry point)
50h WORD "VidMemSel" selector for video memory (must be set by app)
52h WORD "IOPortsOff" offset of I/O ports table in context buffer
54h WORD "IOMemoryOff" offset of I/O memory table in context buffer
56h WORD "IOMemSel1" selector for first I/O memory area specified by
I/O memory table (must be set by application)
58h WORD "IOMemSel2" selector for second I/O memory area
5Ah WORD "IOMemSel3" selector for third I/O memory area
5Ch WORD "IOMemSel4" selector for fourth I/O memory area
5Eh N BYTEs device-specific state buffer
N WORDs I/O port access table (list of ports, last entry is FFFFh)
N DWORDs I/O memory access table (list of physical-address/length pairs,
last entry is FFFFFFFFh)
N BYTEs 32-bit code for VBE/AF v1.0P function
Notes: all function pointers are offsets into the 32-bit code within the
context buffer, and should be updated to point at the actual
functions after the application has copied the buffer from the
real-mode memory used for the interrupt call into its own flat-model
memory space
any functions which are not supported by the hardware have function
pointers which are set to 00000000h initially
(Table 00090)
Values for VBE/AF v1.0P color mixing mode:
00h replace
01h XOR with existing pixel
02h OR with existing pixel
03h AND with existing pixel
SeeAlso: #00091,#00090
(Table 00091)
Call VBE/AF v1.0P function "SetForeColor" with:
ES:EDI -> device context buffer (see #00089)
EAX = new foreground color (format varies by video mode)
BL = new foreground mixing mode (see #00090)
SeeAlso: #00089,#00092,#00107
(Table 00092)
Call VBE/AF v1.0P function "SetbackColor" with:
ES:EDI -> device context buffer (see #00089)
EAX = new background color (format varies by video mode)
BL = new background mixing mode (see #00090)
SeeAlso: #00089,#00091,#00093
(Table 00093)
Call VBE/AF v1.0P function "SetClipRect" with:
ES:EDI -> device context buffer (see #00089)
EAX = left clipping coordinate
EBX = top clipping coordinate
ECX = right clipping coordinate
EDX = bottom clipping coordinate
SeeAlso: #00089,#00092,#00094,#00107
(Table 00094)
Call VBE/AF v1.0P function "DrawScan" with:
ES:EDI -> device context buffer (see #00089)
EAX = X1 coordinate
EBX = Y coordinate
ECX = X2 coordinate
Desc: draw a solid horizontal line from (X1,Y) to (X2,Y) in the currently-
active foreground color and mix, omitting the pixel at the largest
X coordinate
SeeAlso: #00089,#00093,#00095,#00098,#00107
(Table 00095)
Call VBE/AF v1.0P function "DrawScanList" with:
ES:EDI -> device context buffer (see #00089)
EAX = Y coordinate of first line
EBX = length of scan list
DS:ESI -> scanline list X coordinates (2N WORDs)
Desc: draw multiple solid horizontal lines at successive Y coordinates,
using the currently-active foreground color and mix, omitting the
pixel at the largest X coordinate for each line
Note: the scanline list consists of pairs of X coordinates; because the
last pixel is omitted, a scanline will be skipped if X1==X2
SeeAlso: #00089,#00094,#00096,#00107
(Table 00096)
Call VBE/AF v1.0P function "DrawRect" with:
ES:EDI -> device context buffer (see #00089)
EAX = left coordinate
EBX = top coordinate
ECX = right coordinate
EDX = bottom coordinate
Desc: draw a solid rectangle in the currently-active foreground color and
mix, omitting the rightmost X coordinate and bottom-most scan line
Note: results are undefined if EAX>ECX or EBX>EDX; nothing will be drawn if
EAX=ECX or EBX=EDX
SeeAlso: #00089,#00094,#00095,#00097
(Table 00097)
Call VBE/AF v1.0P function "DrawLine" with:
ES:EDI -> device context buffer (see #00089)
EAX = ??? (specified this way in the draft documentation!)
EBX = ???
ECX = ???
EDX = ???
ESI = ???
Desc: draw a solid line in the currently-active foreground color and mix,
given the Bresenham parameters
SeeAlso: #00089,#00094,#00096,#00098
(Table 00098)
Call VBE/AF v1.0P function "DrawPattScan" with:
ES:EDI -> device context buffer (see #00089)
EAX = X1 coordinate
EBX = Y coordinate
ECX = X2 coordinate
DL = 8-bit stipple pattern
Desc: draw a patterned horizontal line from (X1,Y) to (X2,Y) in the
currently-active foreground color and mix, omitting the pixel at
the largest X coordinate
Note: for each pixel in the line, if DL bit (X mod 8) is set, the pixel is
drawn, and left untouched if the bit is clear
SeeAlso: #00089,#00096,#00097,#00094,#00099,#00107
(Table 00099)
Call VBE/AF v1.0P function "BitBlt" with:
ES:EDI -> device context buffer (see #00089)
DS:ESI -> BitBlt parameter block (see #00100)
BL = mix operation
00h replace
01h XOR
02h OR
03h AND
SeeAlso: #00089,#00094,#00098,#00101,#00107
Format of VBE/AF BitBlt parameter block:
Offset Size Description (Table 00100)
00h WORD left coordinate of source rectangle
02h WORD top coordinate of source rectangle
04h WORD right coordinate of source rectangle
06h WORD bottom coordinate of source rectangle
08h WORD left coordinate of destination rectangle
0Ah WORD top coordinate of destination rectangle
0Ch BYTE horizontal direction: 00h = decrement X, 01h = increment X
0Dh BYTE vertical direction: 00h = decrement Y, 01h = increment Y
Notes: the rightmost pixel(s) and bottom-most scan line are not copied
the horizontal/vertical direction flags are used to ensure correct
copies when the source and destination rectangles overlap
SeeAlso: #00099
(Table 00101)
Call VBE/AF v1.0P function "TransBitBlt" with:
ES:EDI -> device context buffer (see #00089)
DS:ESI -> BitBlt parameter block (see #00100)
BL = mix operation
00h replace
01h XOR
02h OR
03h AND
ECX = transparent color
Desc: copy a rectangular area from one location to another, treating pixels
with the specified color as transparent (leaving the destination
unchanged)
SeeAlso: #00089,#00099,#00102,#00107
(Table 00102)
Call VBE/AF v1.0P function "MonoBitBlt" with:
ES:EDI -> device context buffer (see #00089)
DS:ESI -> BitBlt parameter block (see #00100)
BL = mix operation
00h replace
01h XOR
02h OR
03h AND
BH = bit-plane from which to read
Desc: copy a rectangular area from one location to another, expanding a
single bit of each source pixel
SeeAlso: #00089,#00099,#00101
(Table 00103)
Call VBE/AF v1.0P function "SetCursor" with:
ES:EDI -> device context buffer (see #00089)
DS -> application's data segment
ESI -> 32x32 cursor data, in Windows 3.1 cursor-file format
(32 DWORDs of XOR mask followed by 32 DWORDs of AND mask)
SeeAlso: #00089,#00094,#00104,#00105
(Table 00104)
Call VBE/AF v1.0P function "SetCursorPos" with:
ES:EDI -> device context buffer (see #00089)
EAX = cursor X coordinate
EBX = cursor Y coordinate
CL = cursor's X hotspot
CH = cursor's Y hotspot
SeeAlso: #00089,#00103,#00105
(Table 00105)
Call VBE/AF v1.0P function "SetCursorColor" with:
ES:EDI -> device context buffer (see #00089)
AL = 8-bit color index, or color's Red value
AH = color's Green value (16-bpp, 24-bpp, 32-bpp modes)
BL = color's Blue value (16-bpp, 24-bpp, 32-bpp modes)
SeeAlso: #00089,#00103,#00104,#00106
(Table 00106)
Call VBE/AF v1.0P function "ShowCursor" with:
ES:EDI -> device context buffer (see #00089)
AL = new visibility (00h hide cursor, 01h show cursor)
SeeAlso: #00089,#00103,#00104,#00105
(Table 00107)
Call VBE/AF v1.0P function "WaitTillIdle" with:
ES:EDI -> device context buffer (see #00089)
Desc: pause until the hardware accelerator has completed all pending
operations
SeeAlso: #00089,#00108,#00109
(Table 00108)
Call VBE/AF v1.0P function "EnableDirectAccess" with:
ES:EDI -> device context buffer (see #00089)
SeeAlso: #00089,#00109,#00107,AX=4F05h,#00078,#00080
(Table 00109)
Call VBE/AF v1.0P function "DisableDirectAccess" with:
ES:EDI -> device context buffer (see #00089)
SeeAlso: #00089,#00108
Top
INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS AX = 4F0Ch-4F0Fh SeeAlso: AX=4F00hTop
INT 10 - Diamond Viper V330 - ??? AX = 4F0Bh ECX = ??? ??? Return: AL = 4Fh if function supported AH = status 00h successful ECX = ??? ??? 01h failed Note: in BIOS v1.62, ECX is in multiples of 10000 (decimal) for both input and output, and this function never failsTop
INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES AX = 4F10h BL = 00h ES:DI = 0000h:0000h (reserved for future use as pointer to info block) Return: AL = 4Fh if function supported (installed) AH = call status 00h successful else failed ---if successful--- BL = VBE/PM version (bits 7-4: major, bits 3-0: minor) BH = supported states (see #00110) ES:DI unchanged Index: installation check;VESA VBE/Power Management|VESA DPMS SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h Bitfields for VESA VBE/PM supported power states: Bit(s) Description (Table 00110) 0 standby 1 suspend 2 off 3 reduced onTop
INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE AX = 4F10h BL = 01h BH = new state (see #00111) Return: AL = 4Fh if function supported AH = call status 00h successful else failed SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch (Table 00111) Values for VESA VBE/PM power state: 00h On 01h standby 02h suspend 04h Off 08h reduced On (for flat screens)Top
INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE AX = 4F10h BL = 02h Return: AL = 4Fh if function supported AH = call status 00h successful BH = current power state (see #00111) else failed SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h,AX=A00DhTop
INT 10 - VESA VBE/FP (Flat Panel Interface) - API AX = 4F11h BL = function 00h installation check / get capabilities other registers vary by function Return: varies by functionTop
INT 10 - VESA VBE/CI (Cursor Interface) - API AX = 4F12h BL = function other registers vary by function Return: varies by function SeeAlso: AX=4F4DhTop
INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK AX = 4F13h BX = 0000h Return: AL = 4Fh if function supported AH = status 00h successful BX = version (0010h for 1.00 -- note nonstandard value!) 01h failed SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005hTop
INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE AX = 4F13h BX = 0001h CX = 0000h ??? DX = type of device 0001h Wave device 0002h MIDI device 0003h Volume device Return: AL = 4Fh if function supported AH = status 00h successful CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2] 01h failed SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002hTop
INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
AX = 4F13h
BX = 0002h
CX = handle
DX = query
0001h return length of GeneralDeviceClass
0002h return copy of GeneralDeviceClass (see #00112)
0003h return length of Volume Info Structure
0004h return copy of Volume Info Structure (see #00122)
0005h return length of Volume Services Structure
0006h return copy of Volume Services Structure (see #00124)
0007h-000Fh reserved
0010h-FFFFh device-specific
SI:DI -> buffer (functions 0002h,0004h,0006h)
Return: AL = 4Fh if function supported
AH = status
00h successful
SI:DI = length (functions 1,3,5)
SI:DI buffer filled (functions 2,4,6)
01h failed
Note: functions 0003h to 0006h are only supported for the Volume device
Format of GeneralDeviceClass structure:
Offset Size Description (Table 00112)
00h 4 BYTEs name of the structure ("GENI")
04h DWORD structure length
08h WORD type of device (1=Wave, 2=MIDI)
0Ah WORD version of VESA driver support (0100h for 1.00)
10h var for CX=handle for Wave device:
Wave Info structure (see #00113)
some bytes ???
for CX=handle for MIDI device:
MIDI Info Structure (see #00118)
first 8 bytes of MIDI Service Structure ???
SeeAlso: #00122,#00124
Format of WAVE Info Structure:
Offset Size Description (Table 00113)
00h 4 BYTEs name of the structure ("WAVI")
04h DWORD structure length [0000007Eh]
08h DWORD driver software version [00000003h]
0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
2Ch 32 BYTEs vendor product name
4Ch 32 BYTEs vendor chip/hardware description
6Ch BYTE installed board number
6Dh 3 BYTEs unused data
70h DWORD feature bits (see #00114)
74h WORD user determined preference field
76h WORD memory required for driver use [0200h]
78h WORD number of timer tick callbacks per second [0000h]
7Ah WORD channels: 1 = mono, 2 = stereo
stereo is assumed to be interleaved data
7Ch WORD bitfield of max sample sizes (see #00115)
SeeAlso: #00118
Bitfields for Wave feature bits:
Bit(s) Description (Table 00114)
0 8000hz Mono Playback
1 8000hz Mono Record
2 8000hz Stereo Record
3 8000hz Stereo Playback
4 8000hz Full Duplex Play/Record
5 11025hz Mono Playback
6 11025hz Mono Record
7 11025hz Stereo Record
8 11025hz Stereo Playback
9 11025hz Full Duplex Play/Record
10 22050hz Mono Playback
11 22050hz Mono Record
12 22050hz Stereo Record
13 22050hz Stereo Playback
14 22050hz Full Duplex Play/Record
15 44100hz Mono Playback
16 44100hz Mono Record
17 44100hz Stereo Record
18 44100hz Stereo Playback
19 44100hz Full Duplex Play/Record
20-26 reserved (0)
27 driver must pre-handle the data
28 Variable Sample mono playback
29 Variable Sample stereo playback
30 Variable Sample mono record
31 Variable Sample stereo record
(Table 00115)
Values for Sample data size:
01h 8bit play
02h 16bit play
10h 8bit record
20h 16bit record
Format of WAVE Audio Services structure:
Offset Size Description (Table 00116)
00h 4 BYTEs name of the structure
04h DWORD structure length
08h 16 BYTEs for future expansion
---entry points (details???)---
18h DWORD DeviceCheck
11h compression (see also #00117)
12h driver state
13h get current pos
14h sample rate
15h set preference
16h get DMA,IRQ
17h get IO address
18h get mem address
19h get mem free
1Ah full duplex
1Bh get block size
1Ch get PCM format
1Dh enable PCM format
80h-.. vendors can add DevChks above 0x80
1Ch DWORD PCMInfo
20h DWORD PlayBlock
24h DWORD PlayCont
28h DWORD RecordBlock
2Ch DWORD RecordCont
30h DWORD PauseIO
34h DWORD ResumeIO
38h DWORD StopIO
3Ch DWORD WavePrepare
40h DWORD WaveRegister
44h DWORD GetLastError
01h unsupported feature/function
02h bad sample rate
03h bad block length
04h bad block address
05h app. missed an IRQ
06h don't understand the PCM size/format
80h-.. vendors specific errors
48h DWORD TimerTick
4Ch DWORD ApplPSyncCB: CallBack: play filled in by the app
50h DWORD ApplRSyncCB: CallBack: rec filled in by the app
SeeAlso: #00120,#00124
(Table 00117)
Values for type of compression:
01h IMA play
02h ALAW play
03h ULAW play
11h IMA record
12h ALAW record
13h ULAW record
Format of MIDI Info Structure:
Offset Size Description (Table 00118)
00h 4 BYTEs name of the structure ("MIDI")
04h DWORD structure length
08h DWORD driver software version [00000003h]
0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
2Ch 32 BYTEs vendor product name
4Ch 32 BYTEs vendor chip/hardware description
6Ch BYTE installed board number
6Dh 3 BYTEs unused data
70h 14 BYTEs the patch library file name [OPL2.BNK 00..]
7Eh DWORD feature bits (see #00119)
80h WORD user determined preference field
82h WORD memory required for driver use
84h WORD # of timer tick callbacks per second
86h WORD max # of tones (voices, partials)
SeeAlso: #00112,#00120,#00122
Bitfields for MIDI feature bits:
Bit(s) Description (Table 00119)
0-3 reserved for GM extensions
4 Transmitter/Receiver only
5 Patches preloaded
6 MIDI receive has time stamp
8 MIDI interrupt driven input supported
9 MIDI polled input supported
10 MIDI remote patches supported
Format of MIDI Service structure:
Offset Size Description (Table 00120)
00h 4 BYTEs name of the structure ("MIDS")
04h DWORD structure length
08h 16 WORDs patches loaded table bit field
28h 16 BYTEs for future expansion
---entry points (details???)---
38h DWORD device check
11h return available tones
12h return TRUE/FALSE if patch is understood
13h set preference
14h allow/disallow voice stealing
15h get FIFO sizes
16h get DMA,IRQ
17h get IO address
18h get mem address
19h get mem free
80h-.. vendors can add DevChks above 0x80
3Ch DWORD global reset
40h DWORD MIDI msg
44h DWORD poll MIDI
48h DWORD preload patch
4Ch DWORD unload patch
50h DWORD timer tick
54h DWORD get last error
01h unsupported feature/function
02h unknown patch type (see #00121)
03h all tones are used
04h messages are out of sync
05h an incoming patch was incomplete
06h an incoming patch couldn't be stored
07h had to drop an incoming byte
08h driver is failing a patch download
80h-.. vendors specific errors
58h DWORD Patch Block free callback
5Ch DWORD MIDI byte avail. callback
SeeAlso: #00116,#00124
(Table 00121)
Values for MIDI Registered Patch Types:
10h OPL2
11h OPL3
Format of Volume Info Structure:
Offset Size Description (Table 00122)
00h 4 BYTEs name of the structure ("VOLI")
04h DWORD structure length (00000092h)
08h DWORD driver software version [00000001h]
0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
2Ch 32 BYTEs vendor product name
4Ch 32 BYTEs vendor chip/hardware description
6Ch BYTE installed board number (0 for 1st/only board)
6Dh 3 BYTEs unused data (0)
70h 24 BYTEs text name of the mixer channel
88h DWORD features bits (see #00123)
8Ch WORD minimum volume setting
8Eh WORD maximum volume setting
90h WORD attenuation/gain crossover
SeeAlso: #00112,#00124
Bitfields for Volume feature bits:
Bit(s) Description (Table 00123)
0 Stereo Volume control available
2 Low Pass Filter is available
3 High Pass Filter is available
4 Parametric Tone Control is available
5 selectable output paths
8 Azimuth Field positioning supported
9 Phi Field positioning supported
10-30 unused???
31 Master Volume device
Format of Volume Services Structure:
Offset Size Description (Table 00124)
00h 4 BYTEs name of the structure ("VOLS")
04h DWORD structure length (00000038h)
08h 16 BYTEs 16 bytes for future expansion (0)
---entry points (details???)---
18h DWORD device check
0011h filter range
0012h filter setting
0013h filter current
0014h tone range
0015h tone setting
0016h tone current
0017h path
0018h get IO address
0080h-.. vendors can add DevChks above 0x80
1Ch DWORD set vol to an absolute setting
01h User master volume setting
02h application master volume setting
20h DWORD set 3D volume
24h DWORD tone control
28h DWORD filter control
2Ch DWORD output path
30h DWORD reset channel
34h DWORD get last error
01h unsupported feature/function
02h out of range parameter value
80h+ vendor-specific errors
SeeAlso: #00116,#00120
Top
INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE AX = 4F13h BX = 0003h CX = handle DX = API set (16/32-bit) SI = segment ??? Return: AL = 4Fh if function supported AH = status 00h successful SI:CX -> memory ??? 01h failed SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004hTop
INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE AX = 4F13h BX = 0004h CX = handle Return: AL = 4Fh if function supported AH = status 00h successful 01h failed SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005hTop
INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER AX = 4F13h BX = 0005h Return: AL = 4Fh if function supported AH = status 00h successful 01h failed SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006hTop
INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN AX = 4F13h BX = 0006h Return: AL = 4Fh if function supported AH = status 00h successful 01h failed SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005hTop
INT 10 - VESA OEM Extensions - API AX = 4F14h BL = function 00h installation check / get capabilities other registers vary by function Return: varies by function Note: this function is provided for OEMs to implement system-specific functionality in a VESA-compatible mannerTop
INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1) AX = 4F14h BL = function 00h installation check / get capabilities ES:DI -> 256-byte buffer for Matrox-specific information (see #00125) Return: ES:DI buffer filled 01h read/write MGA indexed data register BH = direction (00h = write, else read) CL = register number (80h for most-recently used register) CH = new value, if writing Return: CH = current value, if reading 02h read/write register in MGA control space BH = direction and size bit 4: read register instead of writing bits 1-0: data size (00 = BYTE, 01 = WORD, 10 = DWORD) SI = register address CL/CX/ECX = new value if writing Return: CL/CX/ECX = current value if reading 03h read PINS byte SI = offset of byte within PINS data (see #00126) Return: CL = value of specified PINS byte 04h ??? (related to PLL programming) DX = ??? Return: CL,EDX destroyed 05h read BIOS byte SI = offset of byte relative to start of BIOS image Return: CL = specified byte else Return: AX = FFFFh Return: AL = 4Fh if function supported AH = status 00h successful 01h failed Note: most of this info is from http:\\grafi.ii.pw.edu.pl\gbm\matrox SeeAlso: MEM C000h:7FFCh"Matrox" Format of Matrox-specific VESA extensions information: Offset Size Description (Table 00125) 00h 7 BYTEs signature "VBE/MGA" 07h 10 BYTEs ??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h) 11h WORD BIOS version (high byte = major, low byte = one-digit minor) 13h DWORD -> manufacturer name (ASCIZ "Matrox") 17h DWORD -> ASCIZ card name 1Bh DWORD -> ??? ASCIZ string (empty string on card examined) 1Fh DWORD -> ASCIZ vendor name 23h DWORD -> ASCIZ BIOS file base name 27h DWORD -> PINS 2Bh WORD video memory size in 64K units 2Dh DWORD linear address of linear frame buffer 31h DWORD linear address of MGA control aperture 35h WORD PCI bus/device for card??? 37h 201 BYTEs unused??? (cleared to 00h) Format of Matrox PINS data (version 3.0): Offset Size Description (Table 00126) 00h 2 BYTEs signature ".A" (2Eh 41h) 02h BYTE structure length (40h for v3.0) 03h BYTE ??? 04h WORD PINS version (high byte = major, low byte = minor) 06h WORD date last programmed 08h WORD number of times programmed 0Ah WORD flags 0Ch 8 BYTEs ASCII serial number, three letters + five digits 14h 8 BYTEs ??? 1Ch 4 BYTEs ASCII card version 20h DWORD PCB revision 24h BYTE maximum RAMDAC frequency in MHz (less 100) 25h BYTE maximum RAMDAC frequency??? 26h BYTE maximum RAMDAc frequency??? 27h BYTE ??? 28h BYTE ??? timing data? 29h BYTE ??? 2Ah BYTE ??? 2Bh BYTE ??? 2Ch BYTE ??? 2Dh BYTE ??? 2Eh BYTE ??? 2Fh BYTE ??? 30h 4 BYTEs ??? 34h BYTE ??? 35h BYTE ??? 36h BYTE ??? 37h BYTE memory size in 64K units 38h BYTE ??? 39h BYTE ??? 3Ah BYTE ??? 3Bh BYTE ??? 3Ch BYTE ??? 3Dh BYTE ??? 3Eh BYTE ??? 3Fh BYTE checksum (to make sum of all bytes MOD 256 == 00h)Top
INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES AX = 4F15h BL = 00h Return: AL = 4Fh if function supported AH = status 00h successful BX = ??? 01h failed ??? SeeAlso: AX=4F15h/BL=01h,AX=4F15h/BL=02hTop
INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID AX = 4F15h BL = 01h CX = 0000h DX = 0000h ES:DI -> 128-byte buffer for EDID record (see #00127) Return: AL = 4Fh if function supported AH = status 00h successful ES:DI buffer filled 01h failed (e.g. non-DDC monitor) SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=02h,I2C A0h"DDC" Format of VESA EDID record: Offset Size Description (Table 00127) 00h 8 BYTEs padding (all FFh, or 00h FFh..FFh 00h) 08h WORD big-endian manufacturer ID (see #00136) bits 14-10: first letter (01h='A', 02h='B', etc.) bits 9-5: second letter bits 4-0: third letter 0Ah WORD EDID ID code -- identifies monitor model 0Ch DWORD serial number or FFFFFFFFh for "MAG", subtract 7000000 to get actual serial number for "OQI", subtract 456150000 for "PHL", subtract ??? for "VSC", subtract 640000000 10h BYTE week number of manufacture 11h BYTE manufacture year - 1990 12h BYTE EDID version 13h BYTE EDID revision 14h BYTE video input type (see #00129) 15h BYTE maximum horizontal size in cm 16h BYTE maximum vertical size in cm 17h BYTE gamma factor (gamma = 1.0 + factor/100, so max = 3.55) 18h BYTE DPMS flags (see #00128) 19h BYTE chroma information: green X'/Y' and red X'/Y' 1Ah BYTE chroma information: white X'/Y' and blue X'/Y' 1Bh BYTE chroma information: red Y 1Ch BYTE chroma information: red X 1Dh BYTE chroma information: green Y 1Eh BYTE chroma information: green X 1Fh BYTE chroma information: blue Y 20h BYTE chroma information: blue X 21h BYTE chroma information: white Y 22h BYTE chroma information: white X 23h BYTE established timings 1 (see #00130) 24h BYTE established timings 2 (see #00131) 25h BYTE manufacturer's reserved timing or 00h for none bit 7: 1152x870 @ 75 Hz (Mac II, Apple) 26h 8 WORDs standard timing identification resolution (low byte) and vertical frequency (high byte) for each of eight modes (see #00132) X resolution = (lowbyte + 31) * 8 36h 18 BYTEs detailed timing description #1 (see #00133) (v1.1) alternately, text identification (see #00135) 48h 18 BYTEs detailed timing description #2 (v1.1) alternately, text identification (see #00135) 5Ah 18 BYTEs detailed timing description #3 (v1.1) alternately, text identification (see #00135) 6Ch 18 BYTEs detailed timing description #4 (v1.1) alternately, text identification (see #00135) 7Eh BYTE unused??? 7Fh BYTE checksum (radix-complement: 256-low byte of 16-bit sum of 00h-7Eh) Bitfields for DPMS EDID flags: Bit(s) Description (Table 00128) 2-0 unused??? 3 display type =0 non-RGB multicolor =1 RGB color 4 unused??? 5 Active Off supported 6 Suspend supported 7 Standby supported SeeAlso: #00127 Bitfields for DPMS input signal type: Bit(s) Description (Table 00129) 0 separate sync 1 composite sync 2 sync on green 4-3 unused??? 6-5 voltage level 00 0.700V/0.300V (1.00 Vp-p) 01 0.714V/0.286V 10 0.100V/0.400V 11 reserved 7 =1 digital signal, =0 analog SeeAlso: #00127 Bitfields for DPMS established timings 1: Bit(s) Description (Table 00130) 0 720x400 @ 70 Hz (VGA 640x400, IBM) 1 720x400 @ 88 Hz (XGA2) 2 640x480 @ 60 Hz (VGA) 3 640x480 @ 67 Hz (Mac II, Apple) 4 640x480 @ 72 Hz (VESA) 5 640x480 @ 75 Hz (VESA) 6 800x600 @ 56 Hz (VESA) 7 800x600 @ 60 Hz (VESA) SeeAlso: #00127,#00131 Bitfields for DPMS established timings 2: Bit(s) Description (Table 00131) 0 800x600 @ 72 Hz (VESA) 1 800x600 @ 75 Hz (VESA) 2 832x624 @ 75 Hz (Mac II) 3 1024x768 @ 87 Hz interlaced (8514A) 4 1024x768 @ 60 Hz (VESA) 5 1024x768 @ 70 Hz (VESA) 6 1024x768 @ 75 Hz (VESA) 7 1280x1024 @ 75 Hz (VESA) SeeAlso: #00127,#00130 Bitfields for DPMS standard timing information: Bit(s) Description (Table 00132) 5-0 vertical refresh frequency - 60 (Hz) 7-6 aspect ratio (Y resolution = X resolution * aspect ratio) 00 ??? 01 0.75 10 0.8 11 0.5625 Note: if both bytes of the timing are 00h or 01h, then the Standard Timing is "None" SeeAlso: #00127 Format of Detailed Timing Description: Offset Size Description (Table 00133) 00h BYTE horizontal frequency in kHz (if 00h, may be text)(see #00135) 01h BYTE vertical frequency in Hz 02h BYTE horizontal active time (pixels) and X resolution 03h BYTE horizontal blanking time (pixels) 04h BYTE horizontal active time 2 / horizontal blanking time 2 05h BYTE vertical active time (lines) and Y resolution 06h BYTE vertical blanking time (lines) 07h BYTE vertical active time 2 / vertical blanking time 2 08h BYTE horizontal sync offset (pixels) 09h BYTE horizontal sync pulsewidth (pixels) 0Ah BYTE vertical sync offset / vertical sync pulsewidth 0Bh BYTE vertical/horizontal sync offset 2 / vert/hor. sync pulsewidth 2 0Ch BYTE horizontal image size (mm) 0Dh BYTE vertical image size (mm) 0Eh BYTE horizontal image size 2 / vertical image size 2 0Fh BYTE horizontal border (pixels) 10h BYTE vertical border (lines) 11h BYTE type of display (see #00134) SeeAlso: #00127,#00135 Bitfields for EDID detailed display type: Bit(s) Description (Table 00134) 7 interlaced 6-5 stereo mode 00 normal display (no stereo) 01 stereo, right stereo sync high 10 stereo, left stereo sync high 11 undefined 4-3 sync type 00 sync analog composite 01 sync bipolar analog composite 10 sync digital composite 11 sync digital separate ---sync digital separate--- 2 vertical sync polarity (0 = negative, 1 = positive) 1 horizontal sync polarity (0 = negative, 1 = positive) ---other sync types--- 2 serrate 1 sync location (0 = on green, 1 = on RGB) ------ 0 not used??? SeeAlso: #00133 Format of EDID Text Identification Strings: Offset Size Description (Table 00135) 00h 3 BYTEs 00h 00h 00h (to distinguish from detailed timing description) 03h BYTE text identifier FFh serial number FEh vendor name FDh vertical/horizontal frequency range FCh model name ---frequency range--- 04h BYTE 00h ??? 05h BYTE minimum vertical refresh frequency in Hz 06h BYTE maximum vertical refresh 07h BYTE minimum horizontal frequency in kHz 08h BYTE maximum horizontal frequency 09h BYTE FFh ??? ---other--- 04h 14 BYTEs text, may be terminated with either a NUL (00h) or LF (0Ah) SeeAlso: #00132 (Table 00136) Values for manufacturer ID: "ACT" Targa "ADI" ADI Corporation http://www.adi.com.tw "AOC" AOC International (USA) Ltd. (see #00137) "API" Acer America Corp. (see #00138) "APP" Apple Computer, Inc. (see #00139) "ART" ArtMedia "AST" AST Research (see #00140) "CPL" Compal Electronics, Inc. / ALFA (see #00141) "CPQ" COMPAQ Computer Corp. (see #00142) "CTX" CTX - Chuntex Electronic Co. (see #00143) "DEC" Digital Equipment Corporation (see #00144) "DEL" Dell Computer Corp. (see #00145) "DPC" Delta Electronics, Inc. (see #00146) "DWE" Daewoo Telecom Ltd (see #00147) "ECS" ELITEGROUP Computer Systems (see #00148) "EIZ" EIZO (see #00149) "FCM" Funai Electric Company of Taiwan "GSM" LG Electronics Inc. (GoldStar Technology, Inc.) (see #00158) "GWY" Gateway 2000 "HEI" Hyundai Electronics Industries Co., Ltd. (see #00150) "HIT" Hitachi (see #00151) "HSL" Hansol Electronics (see #00152) "HTC" Hitachi Ltd. / Nissei Sangyo America Ltd. (see #00153) "HWP" Hewlett Packard (see #00154) "IBM" IBM PC Company (see #00155) "ICL" Fujitsu ICL (see #00156) "IVM" Idek Iiyama North America, Inc. (see #00157) "KFC" KFC Computek "LKM" ADLAS / AZALEA "LNK" LINK Technologies, Inc. "LTN" Lite-On "MAG" MAG InnoVision (see #00159) "MAX" Maxdata Computer GmbH "MEI" Panasonic Comm. & Systems Co. (see #00168) "MEL" Mitsubishi Electronics (see #00160) "MIR" miro Computer Products AG (see #00161) "MTC" MITAC "NAN" NANAO (see #00162) "NEC" NEC Technologies, Inc. (see #00163) "NOK" Nokia (see #00164) "OQI" OPTIQUEST (see #00165) "PBN" Packard Bell "PGS" Princeton Graphic Systems (see #00166) "PHL" Philips Consumer Electronics Co. (see #00167) "REL" Relisys "SAM" Samsung (see #00169) "SDI" Samtron (see #00170) "SMI" Smile "SNI" Siemens Nixdorf "SNY" Sony Corporation "SPT" Sceptre "SRC" Shamrock Technology "STP" Sceptre "TAT" Tatung Co. of America, Inc. (see #00171) "TRL" Royal Information Company (see #00172) "TSB" Toshiba, Inc. "UNM" Unisys Corporation "VSC" ViewSonic Corporation (see #00173) "WTC" Wen Technology "ZCM" Zenith Data Systems "___" Targa SeeAlso: #00127 (Table 00137) Values for AOC monitor EDID: A566h AOC SPECTRUM 5Nlr A782h AOC SPECTRUM 7Nlr D350h AOC SPECTRUM 4V, 4VA, 4Vlr, 4VlrA D566h AOC SPECTRUM 5Vlr, 5VlrA E570h AOC SPECTRUM 5Glr E750h AOC SPECTRUM 7DlrA SeeAlso: #00136,#00138 (Table 00138) Values for Acer monitor EDID: 0037h AcerView 55 424Ch AcerView 76ie 440Bh AcerView 11D 4421h AcerView 33D 4522h AcerView 7134e 4536h AcerView 7154e 4538h AcerView 7156e 454Ch AcerView 7176ie 454Eh AcerView 7178ie 4938h AcerView 7156i 494Ch AcerView 76i 494Eh AcerView 78i 4962h AcerView 98i 4C21h AcerView 33DL 4C22h AcerView 34TL 4C37h AcerView 55L 4C38h AcerView 56L 4E4Ch AcerView 76N 5321h AcerView 7133s 5322h AcerView 7134s 5336h AcerView 7154s 5338h AcerView 7156s, 7156is 534Ch AcerView 7176is 5422h AcerView 34T SeeAlso: #00136,#00137,#00140 (Table 00139) Values for Apple Computer monitor EDID: 0352h AppleVision 850 SeeAlso: #00136 (Table 00140) Values for AST monitor EDID: 8001h ASTVision 4V 8002h ASTVision 4I 8003h ASTVision 4N 8004h ASTVision 4L 8005h ASTVision 5L 8006h ASTVision 7L 8007h ASTVision 7H 8008h ASTVision 20H 8009h AST Sabre 800Ah ASTVision 5V SeeAlso: #00136,#00127,#00138,#00141 (Table 00141) Values for ALFA monitor EDID: 096Bh ALFA TH-450 SeeAlso: #00136,#00140,#00142 (Table 00142) Values for Compaq monitor EDID: 0011h COMPAQ 1024 0012h COMPAQ 1024 0013h COMPAQ 1024 0014h COMPAQ 1024 0015h COMPAQ 1024 0016h COMPAQ 1024 0017h COMPAQ PRB 0018h COMPAQ PRB 0019h COMPAQ PRB 001Ah COMPAQ PRB 0020h COMPAQ PRB 0021h COMPAQ PRB 0022h COMPAQ 151FS 0023h COMPAQ 151FS 0024h COMPAQ 151FS 0025h COMPAQ 151FS 0026h COMPAQ 151FS 0027h COMPAQ 151FS 0028h COMPAQ 151FS 0029h COMPAQ PRB 002Ah COMPAQ PRB 002Bh COMPAQ PRB 002Ch COMPAQ PRB 002Dh COMPAQ 171FS 002Eh COMPAQ 171FS 002Fh COMPAQ 171FS 0030h COMPAQ 171FS 0031h COMPAQ 171FS 0032h COMPAQ 171FS 0033h COMPAQ 171FS 0040h COMPAQ QVision 200 0041h COMPAQ QVision 200 0042h COMPAQ QVision 200 0043h COMPAQ QVision 200 0044h COMPAQ QVision 200 0045h COMPAQ QVision 200 0046h COMPAQ QVision 200 0047h COMPAQ QVision 200 0048h COMPAQ QVision 200 0049h COMPAQ QVision 200 0100h COMPAQ 1024 0146h COMPAQ 1024 0147h COMPAQ 1024 0346h COMPAQ 151FS 0347h COMPAQ 151FS 0348h COMPAQ 151FS 0349h COMPAQ 151FS 034Ah COMPAQ 151FS 034Bh COMPAQ 151FS 0546h COMPAQ 171FS 0547h COMPAQ 171FS 0548h COMPAQ 171FS 0549h COMPAQ 171FS 0746h COMPAQ PRB 0747h COMPAQ PRB 0846h COMPAQ PRA 0847h COMPAQ PRA 0848h COMPAQ PRA 0849h COMPAQ PRA 084Ah COMPAQ PRA 084Bh COMPAQ PRA 084Ch COMPAQ PRA 084Dh COMPAQ PRA 0946h COMPAQ PRB 0947h COMPAQ PRB 0948h COMPAQ PRB 0949h COMPAQ PRB 0A46h COMPAQ PRA 0A47h COMPAQ PRA 0A48h COMPAQ PRA 0A49h COMPAQ PRA 0A4Ah COMPAQ PRA 0A4Bh COMPAQ PRA 0A4Ch COMPAQ PRA 0A4Dh COMPAQ PRA 0D46h COMPAQ 140 0D47h COMPAQ 140 0D48h COMPAQ 140 0D49h COMPAQ 140 0D4Ah COMPAQ 140 0D4Bh COMPAQ 140 0D4Ch COMPAQ 140 0D4Dh COMPAQ 140 0F46h COMPAQ 150 0F47h COMPAQ 150 0F48h COMPAQ 150 0F49h COMPAQ 150 0F4Ah COMPAQ 150 0F4Bh COMPAQ 150 0F4Ch COMPAQ 150 0F4Dh COMPAQ 150 SeeAlso: #00136,#00141,#00143 (Table 00143) Values for "CTX" monitor EDID: 1451h CTX 1451 1551h CTX 1551 1562h CTX 1562 1565h CTX 1565 1569h CTX 1569S 15-inch 1765h CTX 1765 1785h CTX 1785 XE 2085h CTX 2085 2185h CTX 2185 SeeAlso: #00136,#00142,#00144 (Table 00144) Values for Digital Equipment Corporation monitor EDID: 06FAh Digital 21" Color (FR-PCXAV-WZ) 073Ah Digital 17" Color (FR-PCXAV-YZ) BA08h Digital 15" Color Monitor (FR-PCXBV-E*) DA08h Digital 17" Color Monitor (FR-PCXBV-F*) SeeAlso: #00136,#00143,#00145 (Table 00145) Values for Dell monitor EDID: 139Ah Dell Ultrascan 14XE 139Bh Dell Ultrascan 14XE 139Ch Dell Ultrascan 14XE 139Dh Dell Ultrascan 14XE 2210h Dell Ultrascan V17X 2211h Dell Ultrascan V17X 2212h Dell Ultrascan V17X 2213h Dell Ultrascan V17X 2214h Dell Ultrascan 21TE 2215h Dell Ultrascan 21TE 2216h Dell Ultrascan 21TE 2217h Dell Ultrascan 21TE 3024h Dell VS17X 3025h Dell VS17X 3026h Dell VS17X 3027h Dell VS17X 4273h Dell VS15X SeeAlso: #00136,#00144,#00146 (Table 00146) Values for Delta Electronics monitor EDID: 0456h Delta DA-456 1565h Delta DA-1565 1765h Delta DA-1765 SeeAlso: #00136,#00145,#00147 (Table 00147) Values for Daewoo monitor EDID: 1423h Daewoo CMC-1423B1 1427h Daewoo CMC-1427X1 1502h Daewoo CMC-1502B1 1505h Daewoo CMC-1505X 1507h Daewoo CMC-1507X1 1703h Daewoo CMC-1703B 5133h Daewoo CMC-1511B 7044h Daewoo CMC-1704C SeeAlso: #00136,#00146,#00148 (Table 00148) Values for ELITEGROUP Computer Systems monitor EDID: 0001h ECS VERTOS 1401 0002h ECS VERTOS 1501 0003h ECS VERTOS 1502 0004h ECS VERTOS 1503 0005h ECS VERTOS 1700 0006h ECS VERTOS 1701 0007h ECS VERTOS 1700 0008h ECS VERTOS 2101 0009h ECS VERTOS 2102 SeeAlso: #00136,#00147,#00149 (Table 00149) Values for EIZO monitor EDID: 0200h EIZO FlexScan F351 0201h EIZO FlexScan F553 0202h EIZO FlexScan F563 0203h EIZO FlexScan F764 0204h EIZO FlexScan F784 0206h EIZO FlexScan 6600 0300h EIZO FlexScan 6500 0302h EIZO 9060S 0303h EIZO 9065S 0305h EIZO FlexScan T563 0306h EIZO 9070S 0307h EIZO 9080i 0308h EIZO 9400i 0309h EIZO 9500 030Ah EIZO FlexScan F340iW 030Ch EIZO FlexScan F552 030Dh EIZO FlexScan F560iW 030Fh EIZO FlexScan F760iW 0310h EIZO FlexScan F780iW 0311h EIZO FlexScan T560i 0312h EIZO FlexScan T660i 0313h EIZO FlexScan T562 0314h EIZO FlexScan T662 038Ch EIZO FlexScan F550iW SeeAlso: #00136,#00148,#00150 (Table 00150) Values for Hyundai monitor EDID: 0B42h Hyundai Deluxscan 21 12F0h Hyundai Deluxscan 14S 16D8h Hyundai Deluxscan 15B 16E8h Hyundai Deluxscan 15G 16EEh Hyundai Delucscan 15G+ 1E02h Hyundai Deluxscan 17 Pro 1EB8h Hyundai Deluxscan 17B 1EBEh Hyundai Deluxscan 17B+ 5864h Hyundai DeluxScan 15 Pro B81Eh Hyundai DeluxScan 17 SeeAlso: #00136,#00149,#00151 (Table 00151) Values for Hitachi monitor EDID: 1717h Hitachi Accuvue GX17L 1727h Hitachi HM1764 1827h Hitachi HM1782 2147h Hitachi HM4721 2149h Hitachi HM4921 4020h Hitachi HM4020 4021h Hitachi HM4021 4711h Hitachi Accuvue UX4721 4810h Hitachi Accuvue GX20 4811h Hitachi Accuvue GX21 4820h Hitachi HM4820 4821h Hitachi HM4821 4830h Hitachi Accuvue GX20H 4911h Hitachi Accuvue UX4921 6421h Hitachi HM6421 6811h Hitachi Accuvue UX6821 6821h Hitachi HM6821 SeeAlso: #00136,#00150,#00152 (Table 00152) Values for Hansol Electronics monitor EDID: 0579 Hansol Electronics Mazellan14px 057A Hansol Electronics Mazellan400A 05DD Hansol Electronics Mazellan15ax A605 Hansol Electronics Mazellan17px SeeAlso: #00136,#00151,#00153 (Table 00153) Values for Hitachi, Ltd. monitor EDID: AB6Fh CM-1711M ABC2h CM-2112M ABC7h CM-2111M ABCCh CM-2110M ABE0h Hitachi, Ltd CM802 ABE2h Hitachi, Ltd CM801 ABE3h Hitachi, Ltd CM800 ABEAh Hitachi, Ltd CM803 ABF4h Hitachi, Ltd CM701 AFC8h Hitachi, Ltd CM500 AFD2h Hitachi, Ltd CM600 AFD7h Hitachi, Ltd CM611 SeeAlso: #00136,#00152,#00154 (Table 00154) Values for Hewlett-Packard monitor EDID: 0AF0h HP D2800A Ultra VGA 1600 21" 0AF6h HP D2806A Ergo Ultra VGA 15" 0AF8h HP D2808 1024 Low Emission 0AFFh HP D2815A 1024 Low Emission 14" 0F11h HP D3857A Multi Media 15" 0F12h HP D3858A Multi Media 14" SeeAlso: #00136,#00151,#00155 (Table 00155) Values for IBM monitor EDID: 198Eh IBM G41 198Fh IBM G50 1990h IBM G70 1991h IBM G200 1999h IBM P50 199Ah IBM P70 199Bh IBM P200 1BB7h IBM 7095 1BB9h IBM 7097 2112h IBM 2112 2113h IBM 2113 2114h IBM 2114 2115h IBM 2115 2117h IBM 2117 2215h IBM 2215 2238h IBM 2238 2248h IBM 2248 2264h IBM 2264 2535h IBM 9525-0X1 26ACh IBM Aptiva 9900 27ADh IBM Aptiva 9901 6312h IBM 6312 6314h IBM 6314 6315h IBM 6315 6317h IBM 6317 6319h IBM 6319 6321h IBM 6321 6322h IBM 6322 6324h IBM 6324 6325h IBM 6325 6327h IBM 6327 8504h IBM 8504 8511h IBM 8511 8512h IBM 8512 8513h IBM 8513 8514h IBM 8514 8515h IBM 8515 8517h IBM 8517 8518h IBM 8518 9504h IBM 9504 9515h IBM 9515 9517h IBM 9517 9518h IBM 9518 9521h IBM 9521 9524h IBM 9524 9525h IBM 9525 9527h IBM 9527 SeeAlso: #00136,#00154,#00156 (Table 00156) Values for Fujitsu ICL monitor EDID: 0100h Fujitsu ICL ErgoPro 211v 0200h Fujitsu ICL ErgoPro 171p 0400h Fujitsu ICL ErgoPro 171v 0700h Fujitsu ICL ErgoPro 151p 0800h Fujitsu ICL ErgoPro 151p AutoBrite 0A00h Fujitsu ICL ErgoPro 151v 0B00h Fujitsu ICL ErgoPro 141v 0D00h Fujitsu ICL ErgoPro 141p 0F00h Fujitsu ICL ErgoPro 152v 1400h Fujitsu ICL ErgoPro 142v 1600h Fujitsu ICL ErgoPro e153 1900h Fujitsu ICL ErgoPro x173 1A00h Fujitsu ICL ErgoPro x173a 1C00h Fujitsu ICL ErgoPro x152 1D00h Fujitsu ICL ErgoPro e173 2200h FUJITSU ErgoPro e154 2400h FUJITSU ErgoPro x174 SeeAlso: #00136,#00155,#00157 (Table 00157) Values for Idek Iiyama North America monitor EDID: 1700h Iiyama Vision Master MF-8617 SeeAlso: #00136,#00156,#00158 (Table 00158) Values for LG Electronics monitor EDID: 36B4h LG StudioWorks 44m 36B9h LG StudioWorks 44i 3AA0h LG 1505s 3AA2h LG StudioWorks 56m 3AAFh LG StudioWorks 56T 15-inch 3AB0h LG StudioWorks 5D 3AB6h LG StudioWorks 5D 426Ch LG StudioWorks 78i 426Dh LG StudioWorks 78T 426Eh LG StudioWorks 76i 4273h LG StudioWorks 76m 4274h LG StudioWorks 78m 4277h LG StudioWorks 74m 4278h LG StudioWorks 74i 427Eh LG StudioWorks 7D 427Fh LG StudioWorks 78D 4280h LG StudioWorks 78DT 4281h LG StudioWorks 7DT 4284h LG StudioWorks 76T 42CFh LG 1725s 4E21h LG StudioWorks 20i SeeAlso: #00136,#00157,#00159 (Table 00159) Values for MAG monitor EDID: 5620h DX1595 5624h DX15T 5626h DX1795 SeeAlso: #00136,#00158,#00160 (Table 00160) Values for Mitsubishi monitor EDID: 0040h Mitsubishi Diamond Pro 21TX (THN-9105) 2040h Mitsubishi Diamond Scan 20H (FR-8905) 2040h Mitsubishi Diamond Pro 20X (FR-8905B) 6140h Mitsubishi Diamond Scan 17HX (FFF8705) 8040h Mitsubishi Diamond Pro 15H (SD-57xxC) 4040h Mitsubishi Diamond Pro 17TX (TFG-8705) 408Fh Mitsubishi Diamond Scan 15VX (SD58xx) 40C0h Mitsubishi Diamond Pro 87TXM (TFM8705) SeeAlso: #00136,#00159,#00161 (Table 00161) Values for Miro monitor EDID: 0721h PROOFSCREEN miroC21107 6815h miroD1568 6817h PROOFSCREEN miroC1768 6917h miroD1769 8217h PROOFSCREEN miroC1782 8520h PROOFSCREEN miroC2085 E 8521h PROOFSCREEN miroC2185 9321h PROOFSCREEN miroC2193 SeeAlso: #00136,#00160,#00162 (Table 00162) Values for Nanao monitor EDID: 0000h NANAO USA FlexScan T2-20 0400h NANAO USA F2-15 0401h NANAO USA F2-17 0402h NANAO USA F2-17EX 0403h NANAO USA F2-21 0404h NANAO USA FX2-21 0405h NANAO USA FlexScan T2-17TS 0406h NANAO FlexScan 6600 0502h NANAO 9060S 0503h NANAO 9065S 0506h NANAO 9070U 0507h NANAO 9080i 0508h NANAO 9400i 0509h NANAO 9500 050Ah NANAO FlexScan F340iW 050Bh NANAO FlexScan F550i 050Ch NANAO FlexScan F550iW 050Dh NANAO FlexScan F560iW 050Eh NANAO FlexScan F750i 050Fh NANAO FlexScan F760iW 0510h NANAO FlexScan F780iW 0511h NANAO FlexScan T560i 0512h NANAO FlexScan T660i 0513h NANAO USA FlexScan T2-17 0514h NANAO USA FlexScan T2-20 0580h NANAO USA FlexScan 6300 0800h NANAO FlexScan 33F 0802h NANAO FlexScan 88F 0805h NANAO FlexScan 54T 0882h NANAO FlexScan 52F 0900h NANAO FlexScan 6500 0902h NANAO 9060S 0906h NANAO 9070U 0907h NANAO 9080i 090Ah NANAO FlexScan F347 090Bh NANAO FlexScan F550i 090Ch NANAO FlexScan F557 090Fh NANAO FlexScan 77F 0910h NANAO FlexScan F780iJ 0911h NANAO FlexScan T560iJ 0912h NANAO FlexScan T660iJ 0913h NANAO FlexScan 56T 0914h NANAO FlexScan 68T 098Ah NANAO FlexScan F347II 098Ch NANAO FlexScan 55F 098Fh NANAO FlexScan 76F 0991h NANAO FlexScan T567 0993h NANAO FlexScan 53T SeeAlso: #00136,#00161,#00163 (Table 00163) Values for NEC monitor EDID: 37FAh NEC MultiSync XV14 37FBh NEC MultiSync XV14 3A66h NEC MultiSync C400 3C00h NEC MultiSync XE15 3C0Ah NEC MultiSync XP15 3C14h NEC MultiSync XV15 3C1Eh NEC MultiSync XE15 3D5Eh NEC MultiSync XV15+ 3D68h NEC MultiSync M500 3E4Eh NEC MultiSync C500 43A8h NEC MultiSync XE17 43B2h NEC MultiSync XE17 43BCh NEC MultiSync XV17 4416h NEC MultiSync XP17 533Eh NEC MultiSync XE21 53B6h NEC MultiSync XP21 SeeAlso: #00136,#00162,#00164 (Table 00164) Values for Nokia monitor EDID: 008Dh NOKIA 449M 0098h NOKIA 449X 00A3h NOKIA 447KC 00A9h NOKIA 447XI 00ABh NOKIA 447KA 00ADh NOKIA 447M 00B7h NOKIA 447W 00B8h NOKIA 447X 00BBh NOKIA 447XAV 00BCh NOKIA 447K 00D2h NOKIA 445R SeeAlso: #00136,#00163,#00165 (Table 00165) Values for OptiQuest monitor EDID: 3138h OPTIQUEST VA656 3141h OPTIQUEST 14ES 3232h OPTIQUEST 1562A-2 3233h OPTIQUEST 1769DC 3234h OPTIQUEST 1000S-2 3332h OPTIQUEST V655 3333h OPTIQUEST V775 3432h OPTIQUEST V650 3832h OPTIQUEST V665 4637h OPTIQUEST 1769DC SeeAlso: #00136,#00164,#00166 (Table 00166) Values for Princeton Graphics monitor EDID: 003Bh Princeton EO15 003Dh Princeton EO17 SeeAlso: #00136,#00165,#00167 (Table 00167) Values for Philips monitor EDID: 0200h Philips CM0200 (15C) 0500h Philips CM0500 (20C) 0700h Philips CM0700 (20T) 0800h Philips CM0800 (15B) 1200h Philips CM1200 (15A) 1800h Philips CM1800 (15A) 2000h Philips CM0200 (14B) 2600h Philips 17TCM26 2800h Philips 17BCM28 3800h Philips 17ACM38 5600h Philips CM5600 (20B) 700Bh Philips CM0700 (21B) 8000h Philips CM0800 (14A) SeeAlso: #00136,#00166,#00168 (Table 00168) Values for Panasonic monitor EDID: 1604h Panasonic TX-D2151W-ES 1610h Panasonic TX-D2151NM SeeAlso: #00136,#00167,#00169 (Table 00169) Values for Samsung monitor EDID: 0000h Samsung SyncMaster 3Ne 0100h Samsung SyncMaster 4S 1530h Samsung 15GLsi 4610h Samsung SyncMaster 21GLs 4690h Samsung SyncMaster 20GLsi 4D50h Samsung SyncMaster 15GLe 4D51h Samsung SyncMaster 15GLi 4D52h Samsung SyncMaster 15M 4D70h Samsung SyncMaster 17GLi 4D71h Samsung SyncMaster 17GLsi 4D72h Samsung SyncMaster 6Ne 4D73h Samsung 17GLi 4D74h Samsung 17GLsi 5450h Samsung SyncMaster 15Me 6D20h Samsung SyncMaster 15GLe SeeAlso: #00136,#00168,#00170 (Table 00170) Values for Samtron monitor EDID: 1428h Samtron 428PT/PTL 1528h Samtron SC-528TXL 1529h Samtron SC-528UXL 1530h Samtron SC-528MXLJ 4690h Samtron SC-208DXL+ 4D70h Samtron SC-728FXL 4D71h Samtron SC-726GXL 5451h Samtron SC-528MDL SeeAlso: #00136,#00169,#00171 (Table 00171) Values for Tatung monitor EDID: 1F65h Intelliscan TM651x series 15" 1F67h Intelliscan TM671x series 17" 2F44h Intelliscan TM442x series 14" 2F45h Intelliscan TM452x series 15" 434Dh Tatung CM-17MC 4855h Tatung CM-14UH SeeAlso: #00136,#00170,#00172 (Table 00172) Values for Royal Information Company monitor EDID: 061Ch TRL/RIC DL-1564 0622h TRL/RIC DH-1570 SeeAlso: #00136,#00171,#00173 (Table 00173) Values for ViewSonic monitor EDID: 0C00h ViewSonic 17GS 0C0Fh ViewSonic 17PS 0C1Fh ViewSonic 17GA 1600h ViewSonic 21PS-2 2601h ViewSonic 15GS 2600h ViewSonic 15GS-2 3141h ViewSonic 14ES 3142h ViewSonic 14ES 3143h ViewSonic 14ES 3145h ViewSonic 15GS-3 3252h ViewSonic 21PS-2 3253h ViewSonic 21PS-2 334Bh ViewSonic 17GS-2 334Ch ViewSonic 17GS-2 3351h ViewSonic PT810 344Bh ViewSonic 17PS-2 344Ch ViewSonic 17PS-2 3451h ViewSonic PT810-2 354Dh ViewSonic GT800 354Eh ViewSonic GT800 3550h ViewSonic GT800 3644h ViewSonic 15GA 3646h ViewSonic 15GA 3648h ViewSonic 15GA 364Ah ViewSonic PT770 364Bh ViewSonic PT770 364Ch ViewSonic PT770 3744h ViewSonic 15G-2 3746h ViewSonic 15G-2 3748h ViewSonic 15G-2 374Bh ViewSonic 17GA 374Ch ViewSonic 17GA 3844h ViewSonic 15ES-2 3846h ViewSonic 15ES-2 3848h ViewSonic 15ES-2 384Ah ViewSonic 17EA 384Bh ViewSonic 17EA 384Ch ViewSonic 17EA 3944h ViewSonic 15GS-2 3946h ViewSonic 15GS-2 3948h ViewSonic 15GS-2 394Ah ViewSonic 17GS-2 394Bh ViewSonic 17GS-2 394Ch ViewSonic 17GS-2 424Ah ViewSonic GT770 424Bh ViewSonic GT770 424Ch ViewSonic GT770 434Ah ViewSonic 17PS-2 434Bh ViewSonic 17PS-2 434Ch ViewSonic 17PS-2 4439h ViewSonic 15GS-2 444Ah ViewSonic 17GA-2 4637h ViewSonic 1769DC 4745h ViewSonic G653 (VCDTS21444-2E) SeeAlso: #00136,#00172Top
INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF AX = 4F15h BL = 02h ??? Return: AL = 4Fh if function supported AH = status 00h successful ??? 01h failed SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=01hTop
INT 10 - VESA VBE/GC (Graphics System Configuration) - API AX = 4F16h BL = function 00h installation check / get capabilities other registers vary by function Return: varies by functionTop
INT 10 - VESA VBE/AF (Accelerator Functions) - API AX = 4F17h BL = function 00h installation check / get capabilities other registers vary by function Return: AL = 4Fh if function supported AH = status 00h successful 01h failed 02h hardware does not support function 03h function not available in current video mode else reserved for future error codes other vary by function Notes: the accelerator function code should be given a 32-bit protected mode stack which has at least 1024 bytes available for use by the VBE/AF code when called, the I/O permission bitmap must allow access to any ports which VBE/AF may require for operation SeeAlso: AX=4F0BhTop
INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST AX = 4F4Dh BX = number of bytes available for VCI use DS:0000h -> buffer for VCI ES:DI -> VCI driver callback function Return: AL = 4Fh if supported AH = status 00h successful BX = number of bytes used by VCI ES:DI -> VCI request handler 01h failed Desc: allow the VESA BIOS Extensions to cooperate with a pointing-device (typically mouse) driver SeeAlso: AX=4F12hTop
INT 10 - Avance Logic - GET ADAPTER INFORMATION AX = 4F70h Return: AX = 004Fh if successful BL = board information (see #00174) BH = board type??? 00h on ALG2101 FFh otherwise SeeAlso: AX=4F00h Bitfields for Avance Logic board information: Bit(s) Description (Table 00174) 0-1 video RAM size 00 256K 01 512K 10 1M 11 2M 2 ??? 3 slot size??? =0 8-bit slot =1 16-bit slot 4 unused 5 set on ALG2228/AL2301 6-7 unusedTop
INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT AX = 4FDDh Return: AX = CS of resident code Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip SeeAlso: AX=4FFFh/BX=364Dh"M64VBE",INT 60"M64VBE"Top
INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF AX = 4FFFh DL = new state (00h off, 01h on) Return: AX = 0000h if successfulTop
INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE AX = 4FFFh BX = dual display mode 00h reset 01h set dual display, 32KB VGA test 02h set dual display, 64KB VGA test Return: AX = 4F00h if successful BX = number of scanlines off screen for test modeTop
INT 10 - ATI M64VBE.COM - UNINSTALL
AX = 4FFFh
BX = 364Dh ('6M')
CX = 5634h ('V4')
Return: AX,DX,DS,ES destroyed
Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
SeeAlso: AX=4FDDh"M64VBE",INT 60"M64VBE"
Top
INT 10 - SCROLOCK.COM - INSTALLATION CHECK AH = 50h Return: BX = 1954h if installed AL = 00h if inactive, nonzero if active Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC archiver SeeAlso: AH=51hTop
INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE AX = 5000h BX = country code 0001h USA (English), 0051h Japan Return: AL = status 00h successful 01h bad country code 02h other error Note: This function is called with BX=0051h by Japanese versions of MS-DOS/PC DOS/DR DOS IO.SYS/IBMBIO.COM at initialization time. SeeAlso: AX=5001h,INT 16/AX=5000hTop
INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE AX = 5001h Return: AL = status 00h successful BX = country code 02h error SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38hTop
INT 10 - VIDEO - SCREENR v1.55+ - API
AX = 5049h ('PI')
BX = function
0000h installation check
0001h lock mode
0002h unlock mode
0003h lock palette
0004h unlock palette
Return: AX = 0000h if installed
BX = TSR version (BH=major,BL=minor)
CL = mode locking status
00h mode not locked
01h mode locked: INT 10/AH=00h disabled
CH = palette locking status
00h palette not locked
01h palette locked, the following functions are disabled:
AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
utility.
Index: installation check;SCREENR
Top
INT 10 - SCROLOCK.COM - ENABLE/DISABLE AH = 51h AL = state 00h disable nonzero enable Return: nothing Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC file archiver SeeAlso: AH=50h"SCROLOCK"Top
INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER AX = 5100h BH = character width in bits (10h) BL = character height (10h) DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh) ES:BP -> character bitmap Return: AL = status (00h successful, 01h failed) SeeAlso: AX=5101h,INT 1F"SYSTEM DATA"Top
INT 10 - VIDEO - AX PC - READ CHARACTER AX = 5101h BH = character width in bits BL = character height DX = character code (DH = 00h if 8-bit character) ES:BP -> buffer for character bitmap Return: AL = status (00h successful, 01h failed) SeeAlso: AH=09h,AX=5100hTop
INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER AX = 5200h BX = segment of buffer Return: nothing SeeAlso: AX=5201hTop
INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER AX = 5201h Return: BX = segment of buffer or 0000h if failed SeeAlso: AX=8300h,AH=FEhTop
INT 10 - Show Partner F/X v3.6 - START PRESENTATION AH = 53h DS:DX -> ASCIZ name of presentation file (no path, extension forced to .PR2) Return: ??? SeeAlso: AH=55hTop
INT 10 - Show Partner F/X v3.6 - UNINSTALL AH = 55h Return: FXSHOW.EXE removed from memory SeeAlso: AH=53hTop
INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK AX = 5555h Return: AX = AAAAh if installed BX:CX -> ??? routine in SMS.COM resident portion -> data area (see #00175) in VCONFIG Program: Super Switch (SMS.COM) is a video mode switch program supplied with ATI EGA Wonder. It also maps video mode 08h to 27h or 23h. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h Index: screen saver;ATI Wonder SMS.COM Format of ATI Super Switch data area: Offset Size Description (Table 00175) 00h DWORD original INT 09 vector 04h DWORD original INT 10 vector 08h DWORD original INT 1C vector 0Ch WORD screen saver state, 0=off, 1=on 0Eh WORD blanking interval in clock ticksTop
INT 10 - LIR - SET CONFIGURATION AX = 5555h BX = AAAAh CL = new configuration flags (see #04118) CH > 0 new video adapter configuration (see #04121) = 0 do not update video adapter configuration DL = new keyboard layout flags (see #04119) DH = new alphabet flags (see #04120) Return: AX = A55Ah if installed Program: LIR is a DOS/Windows 3.xx codepage support package develoved by LABAS u.a.b. It supports several screen and printer codepages as well as various keyboard layouts used in Lithuania. Download at: ftp://ftp.labas.com/pub/drivers/language/lir422.zip SeeAlso: AX=5555h/BX=BBBBh,INT 17/AX=5555h/BX=AAAAh Bitfields for LIR configuration flags: Bit(s) Description (Table 04118) 7 program is active 6 ??? 5-3 code page 2 Lithuanian??? 1 Russian??? 0 enable beeps SeeAlso: #04119 Bitfields for LIR keyboard layout flags: Bit(s) Description (Table 04119) 7-5 keyboard layout 100 QWERTY 010 Lithuanian AZERTY 001 Lithuanian ergonomic FZVPUJ 4-3 reserved (0) 2 Lithuanian keyboard??? 1 Russian keyboard??? 0 ??? SeeAlso: #04118,#04120 Bitfields for LIR Alphabet flags: Bit(s) Description (Table 04120) 7-3 reserved (0) 2 Lithuanian alphabetic symbol table??? 1 Russian alphabetic symbol table??? 0 reserved (0) SeeAlso: #04118,#04119,#04121 Bitfields for LIR video adapter configuration: Bit(s) Description (Table 04121) 7 Hercules Graphics Card (HGC) 6-5 reserved (0) 4 VGA 3 MCGA 2 EGA 1 CGA 0 reserved (0) Note: multiple bits may be set if more than one video adapter is installed SeeAlso: #04118Top
INT 10 - LIR - GET CONFIGURATION AX = 5555h BX = BBBBh Return: AX = magic signature A55Ah BX = version number (BH = major version, BL = minor version), e.g. BX = 0410h for LIR v4.10, or BX = 0422h for LIR v4.22) CL = configuration flags (see #04118) CH = video adapter configuration (see #04121) DL = keyboard layout flags(see #04119) DH = alphabet flags (see #04120) SeeAlso: AX=5555h/BX=AAAAh,INT 17/AX=5555h/BX=BBBBhTop
INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION AX = 5F00h Return: AL = 5Fh function supported BL = chip type (see #00176) BH = video memory size (see #00177) CX = miscellaneous information (see #00178) SeeAlso: AX=5F01h Bitfields for Chips&Technologies chip type: Bit(s) Description (Table 00176) 7-4 chip type 0000: 82c451 0001: 82c452 / 82c452A 0010: 82c455 0011: 82c453 0100: 82c450 0101: 82c456 0110: 82c457 0111: F65520 1000: F65530 / F65525 1001: F66510 1010: ??? 1011: F64300 "Wingine DGX" 1100: F65535/F65545 ??? 1101: F65540 1110: ??? 1111: ??? 3-0 revision number SeeAlso: #00177 (Table 00177) Values for Chips&Technologies video memory size: 00h 256KB 01h 512KB 02h 1MB 03h 2MB SeeAlso: #00176 Bitfields for Chips&Technologies miscellaneous information: Bit(s) Description (Table 00178) 0 DAC size (0=6-bit, 1=8-bit) 1 system type (0=PC/AT, 1=PS/2) 2 extended text modes supported by BIOS 3 reserved 4 extended graphics modes supported by BIOS 5 reserved 6 BIOS supports graphics cursor 7 BIOS supports anti-aliased font 8 BIOS supports pre-programmed emulation 9 BIOS supports auto emulation 10 BIOS supports variable mode set at cold boot 11 BIOS supports variable mode set on warm boot 12 BIOS supports emulation mode set at cold boot 13 BIOS supports emulation mode set on warm boot 14-15 reservedTop
INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION AX = 5F00h Return: AH = 00h, if successful AL = chip version (the same value that VTEST.EXE reads) 00h RTG3103??? 01h RTG31030/RTG3105 02h RTG3106??? 3Fh non-Realtek chip BUG: in v3.C10, AX=5F00h on return due to improper stack restoration code SeeAlso: AX=5F01h"RTVGA"Top
INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION AX = 5F01h BL = emulation type (see #00179) Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak" (Table 00179) Values for Chips&Technologies emulation type: 00h,01h reserved 02h CGA 03h MDA 04h Hercules 05h EGA 06h VGA (disable emulation)Top
INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION AX = 5F01h ES:DI -> zero-filled buffer for BIOS ID string Return: AH = 00h if successful ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10" BUG: in v3.C10, AX=5F01h on return due to improper stack restoration code SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"Top
INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL AX = 5F02h BL = new state of autmatic emulation (00h enabled, 01h disabled) Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F01h,AX=5F03hTop
INT 10 - Chips & Technologies '64300' BIOS - SET CLOCK AX = 5F02h BH = what to set 02h dot clock BL = speed in MHz (12-99) 03h memory clock BL = speed in MHz (12-99) FFh default dot and memory clocks Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F00h"Chips",AX=5F03h"64300",AX=5F02h"65530"Top
INT 10 - Chips & Technologies '65530' BIOS - SET CLOCK AX = 5F02h BH = what to set 02h dot clock BL = new clock speed (see #00180) 03h memory clock BL = new clock speed (see #00180) 04h set power-down register BL = new value for power-down register (bits 3-0 only) 06h (404 clock chip) set control register BL = new vlaue for control register (bits 5-0 only) 06h (404A/B/B-ES clock chips) set control register PWRDN1 BL = new value for control register 07h (404A/B/B-ES clock chips) set control register PWRDN1 BL = new value for control register FFh default dot and memory clocks Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F01h,AX=5F02h"64300",AX=5FA0h,#00184 (Table 00180) Values for C&T '65530' BIOS clock speed: 00h 12 MHz 01h 14 MHz 02h 16 MHz 03h 18 MHz 04h 20 MHz 05h 25 MHz 06h 28 MHz 07h 32 MHz 08h 36 MHz 09h 40 MHz 0Ah 45 MHz 0Bh 50 MHz 0Ch 56 MHz 0Dh 60 MHz 0Eh 65 MHz 0Fh 66 MHz 15h 34 MHzTop
INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE AX = 5F02h Return: AH = 00h, if successful AL = on-board memory size (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K) BUG: in v3.C10, AX=5F02h on return due to improper stack restoration code SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"Top
INT 10 - VIDEO - Realtek RTVGA - SET ??? AX = 5F03h BL = 0-3 (???) Return: AH = 00h if successful BUG: in v3.C10, AX=5F03h on return due to improper stack restoration code SeeAlso: AX=5F02h"RTVGA"Top
INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE AX = 5F03h BL = 00h CL = display mode CH = mode (see #00181) Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F02h,AX=5F03h/BL=01h"Chips",AX=5F90h Bitfields for Chips&Technologies display mode: Bit(s) Description (Table 00181) 1-0 scanlines (00 = 200, 01 = 350, 10 = 400) 7 persistence (0 reset on next boot, 1 until changed)Top
INT 10 - Chips & Technologies '64300' BIOS - GET CLOCK SPEED AX = 5F03h BH = 00h (get default memory clock) Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful BL = clock speed in MHz SeeAlso: AX=5F02h"64300",AX=5F04h"64300"Top
INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE AX = 5F03h BL = 01h CL = emulation mode (see #00181) CH = permanence bit 7 persistence (0 reset on next boot, 1 until changed) Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F02h,AX=5F03h/BL=00h"Chips",AX=5F90hTop
INT 10 - Chips & Technologies '64300' BIOS - GET REFRESH RATE AX = 5F04h BL = video mode number Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful BH = available refresh rates (see #00182) BL = currently-set refresh rate (see #00182) SeeAlso: AX=5F03h"64300",AX=5F05h"64300" Bitfields for C&T 64300 refresh rates: Bit(s) Description (Table 00182) 5 75 Hz 4 72 Hz 3 70 Hz 2 60 Hz 1 56 Hz 0 interlacedTop
INT 10 - Chips & Technologies '64300' BIOS - SET REFRESH RATE AX = 5F05h BL = video mode number BH = refresh rate to set (see #00182) bit 7: =0 program new clock and CRT parametes =1 keep current parameters Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F04h"64300"Top
INT 10 - Chips & Technologies '64300' BIOS - GET XRAM INFORMATION AX = 5F06h Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful BL = XRAM presence (00h no XRAM, 01h present) SeeAlso: AX=5F05h,AX=5F08hTop
INT 10 - Chips & Technologies '64300' BIOS - SET LINEAR MEMORY START ADDRESS AX = 5F08h BX = desired start address in megabytes Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F06hTop
INT 10 - Chips & Technologies '64300'/'65530' BIOS - GET LINEAR MEMORY INFO AX = 5F10h Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful BX:CX = linear memory base address DX = virtual screen width offset (bytes) SI;DI = linear memory size SeeAlso: AX=5F08h,AX=5FA0hTop
INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS AX = 5F50h Return: DL = display status (see #00183) Note: this call can be used on Toshiba laptops since ~1995 instead of INT 42/AX=7503h which is no longer supported with the F655xx chips SeeAlso: INT 42/AX=7503h Bitfields for display status: Bit(s) Description (Table 00183) 7-4 always 0 ??? 3 1: both displays active (bit 1 also set) 2 1: normal (monochrome display only), 0: inverse or color 1 1: internal display active, 0: external only 0 always set ???Top
INT 10 - Chips & Technologies '65530' BIOS - GET 655xx INFORMATION AX = 5F50h Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful BX = width of flat panel in pixels CX = height of flat panel in pixels DX = F65520/525/530 status (see #00184) SeeAlso: AX=5F51h,INT 15/AX=5F31h Bitfields for C&T F65520/525/530 status: Bit(s) Description (Table 00184) 15-0 reserved 6-5 type of clock chip 00 = 404 01 = 404A 10 = 404B ES 11 = 404B 4 accelerator enabled 3 both displays active 2 video polarity (1 = inverted) 1 output device 0 CRT 1 flat panel (LCD) 0 reservedTop
INT 10 - Chips & Technologies Extended BIOS - SWITCH DISPLAY DEVICE AX = 5F51h BL = new active display 00h CRT 01h flat panel (LCD) 02h both simultaneously BH = 01h to allow reprogramming the DAC Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F50h,AX=5F53hTop
INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE ACCELERATOR SUPPORT AX = 5F53h BL = new support state 00h disable buffer/accelerator 01h enable buffer/acelerator Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F50h,AX=5F51h,AX=5F54hTop
INT 10 - Chips & Technologies Extended BIOS - TURN FLAT PANEL ON/OFF AX = 5F54h BL = new state 00h on 01h off Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F50h,AX=5F51h,AX=5F53h,AX=5F5AhTop
INT 10 - Chips & Technologies Extended BIOS - SET FLAT-PANEL VIDEO POLARITY AX = 5F5Ah BL = new video polarity 00h normal 01h inverted Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F50h,AX=5F54hTop
INT 10 - Chips & Technologies Extended BIOS - SET VERTICAL COMPENSATION AX = 5F5Ch BL = type of vertical compensation to use 00h no compensation 01h automatic centering 02h set centering register DX = centering value (bits 9-0 only) 03h non-automatic centering 04h set vertical line insertion register DL = vertical line insertion (bits 3-0 only) 05h set alternate maximum scanline register DL = alternate maximum scanline (bits 4-0 only) 06h enable text stretching, type 0 07h enable text stretching, type 1 08h enable text stretching, type 2 09h enable text stretching, type 3 0Ah disable text stretching 0Bh set vertical line replication register DL = vertical line replication (bits 3-0 only) 0Ch enable graphics stretching, type 0 0Dh enable graphics stretching, type 1 0Eh disable vertical graphics stretching 0Fh disable all horizontal and vertical compensation 10h enable optimal compensation 11h disable optimal compensation Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F50h,AX=5F5Eh,AX=5F5FhTop
INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE TALL FONT LOADING AX = 5F5Eh BL = new state of tall-font loading 00h enable loading of 8x19/30/32 fonts 01h disable loading of 8x19/30/32 fonts Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful Note: when tall fonts are enabled, the fonts are stretched by duplicating scan lines as appropriate to convert an 8x16 font to the proper height (scan lines 1/9/12 [8x19] or 2-15 [8x30] or all [8x32]) SeeAlso: AX=5F5Ch,AX=5F5FhTop
INT 10 - Chips & Technologies Extended BIOS - HORIZONTAL COMPENSATION AX = 5F5Fh BL = horizontal compensation type 00h none 01h automatic centering 02h set centering register DL = centering value 03h non-automatic centering 04h enable text compression (force 8xN fonts) 05h disable text compression (allow 9xN fonts) 06h enable auto doubling 07h disable auto doubling 0Fh disable all horizontal and vertical compensation Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AX=5F50h,AX=5FA0hTop
INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE AX = 5F90h CX = state mask (see #00185) Return: AL = 5Fh if function supported BX = number of 64-byte blocks required SeeAlso: AH=1Ch,AX=5F03h,AX=5F91h,AX=5F92h,AX=5FA0h Bitfields for Chips&Technologies state mask: Bit(s) Description (Table 00185) 0 video hardware 1 BIOS data state 2 DAC state 15 type (0 all state info, 1 SuperVGA state only)Top
INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE AX = 5F91h CX = state mask (see #00185) ES:BX -> save buffer Return: AL = 5Fh if function supported buffer at ES:BX filled SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA1hTop
INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE AX = 5F92h CX = state mask (see #00185) ES:BX -> previously-filled save buffer Return: AL = 5Fh if function supported SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA2hTop
INT 10 - Chips & Technologies Wingine DGX - GET EXTENDED BIOS SAVE BUFFER SIZE AX = 5FA0h CX = state(s) to be saved (see #00186) Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful BX = number of 64-byte blocks required for state SeeAlso: AH=1Ch,AX=5FA1h,AX=5FA2h,AX=5F90h,AX=4F04h Bitfields for C&T BIOS save/restore state type: Bit(s) Description (Table 00186) 0 video hardware 1 BIOS data 2 DAC and color registers 14 (65530 BIOS with AL=A1h only) clear emulation state 15 extended registers SeeAlso: #00048,#00085Top
INT 10 - Chips & Technologies Wingine DGX - SAVE VIDEO STATE AX = 5FA1h CX = state(s) to be saved (see #00186) ES:BX -> buffer for state information Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful ES:BX buffer filled SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA2h,AX=5F91hTop
INT 10 - Chips & Technologies Wingine DGX - RESTORE VIDEO STATE AX = 5FA2h CX = state(s) to be restored (see #00186) ES:BX -> buffer containing previously-saved state information Return: AL = 5Fh if function supported AH = status 00h unsuccessful 01h successful SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA1h,AX=5F92hTop
INT 10 - HUNTER 16 - SET GRAPHICS FONT AH = 60h AL = new font bit 7 output characters in reverse video bits 0-6 font number (see #00200 at AH=77h) Return: BH = cell width BL = cell height Desc: select the font to use for output in mode 6; this can be used to mix fonts on the screen Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"Top
INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES AH = 61h CX = column DX = row Return: nothing Note: this function is only valid in graphics modes SeeAlso: AH=62hTop
INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES AH = 62h Return: CX = column DX = row Note: this function is only valid in graphics modes SeeAlso: AH=61hTop
INT 10 - HUNTER 16 - SET CONTRAST AH = 63h AL = contrast (0..127) Return: nothing Desc: set the LCD screen contrast to improve visibility SeeAlso: AH=64h,AH=75hTop
INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL AH = 64h AL = level (0..15) Return: nothing Desc: set the LCD backlight level to improve visibility in bad lighting SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74hTop
INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT AX = 6500h Return: BX = timeout in seconds (0-300) Desc: returns the time after which the backlight will turn off SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74hTop
INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT AX = 6501h BX = timeout in seconds (0-300) Return: nothing Desc: set the idle time after which the backlight will turn off SeeAlso: AH=64h,AX=6500hTop
INT 10 - HUNTER 16 - SPLIT DISPLAY AH = 66h AL = control bits (see #00187) BH = top row of lower section of LCD (0..7) BL = top row of lower section of the virtual screen (0..24) Return: nothing Desc: split the LCD screen horizontally into two parts; each part may be individually scrollable or fixed. Note: the Hunter 16 has a 240x64 LCD display which serves as a window into a 640x200 virtual screen Bitfields for HUNTER 16 control bits: Bit(s) Description (Table 00187) 0-1 01: no split, 10: allow split 2 allow scrolling the upper part 3 allow scrolling the lower partTop
INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES AX = 6A00h BX = 0000h CX = 0000h DX = buffer length (may be 0) ES:DI -> buffer Return: BX = number of bytes stored in buffer CX = bytes required for all descriptions (0 if no DGIS) Note: buffer contains descriptions and addresses of DGIS-compatible display(s) and printer(s) SeeAlso: AX=6A02hTop
INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT AX = 6A01h CX = 0000h ES:DI = address of device to send INT 10 output to Return: CX = 0000h output could not be redirected else INT 10h output now routed to requested display SeeAlso: AX=6A02hTop
INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE AX = 6A02h ES:DI = 0000h:0000h Return: ES:DI = 0000h:0000h if current display is non-DGIS else address of the current DGIS INT 10 display SeeAlso: AX=6A00h,AX=6A01hTop
INT 10 - MTRFONTS - INSTALLATION CHECK
AX = 6D74h ('mt')
DS:0104h = signature "MtRfOnTs"
Return: AX = 4D54h ('MT') if installed
ES = PSP segment of resident code
Program: MTRFONTS is a shareware TSR (part of the MTR package) by Mechon Mamre
which provides Hebrew screen fonts
SeeAlso: INT 16/AX=6D74h"MTRTSR"
Top
INT 10 - Paradise VGA internal - GET ???
AX = 6E00h
Return: BX = 5744h ('WD') if supported
DH:AH:AL = last three ASCII digits of ROM serial number
CL = ???
CH = ???
SeeAlso: AX=6E04h,AX=6E05h
Top
INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ??? AX = 6E04h Return: BX = screen width (columns) CX = screen height (lines) AH = ??? (05h or FFh) AL = ??? (04h or video mode) SeeAlso: AX=6E00h,AX=6E05hTop
INT 10 - Paradise VGA internal - SET MODE AX = 6E05h BL = mode Return: nothing Note: like AH=00h, AL=BL. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05hTop
INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
AX = 6F00h
BX <> 4850h (usually set to 0000h for simplicity)
Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
AX destroyed
SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
Top
INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
AX = 6F00h
BX = 0000h
Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
Top
INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO AX = 6F01h Return: AL = monitor type code (HP,VEGA VGA only) (see #00188) AH = status register information (see #00189) CL = current value of Extended Control register (HP Ext BIOS, and only if AL=41h) (see #00190) Notes: bits 0-3 are the same as the EGA/VGA status register bits 0-3 supported by original HP Vectra AT and by ES/QS/RS series Vectras (Table 00188) Values for monitor type code (HP Extended BIOS): 00h non-HP card with ROM and possibly its own INT 10h driver 41h MultiMode video display adapter 42h-44h reserved 45h industry standard monochrome display adapter 46h industry standard color display adapter 51h reserved Bitfields for status register information: Bit(s) Description (Table 00189) 0 display enable 0 = display enabled 1 = vertical or horizontal retrace in progress 1 light pen flip flop set 2 light pen switch activated 3 vertical sync 4 monitor resolution 0 = high resolution (>200 lines) 1 = low resolution (<=200 lines) 5 display type (0 = color, 1 = monochrome) 6,7 diagnostic bits Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3Top
INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO AX = 6F02h BL = new value for extended control register (see #00190) Return: AX,BL destroyed Notes: this function is only valid when an HP MultiMode Video Display Adapter is installed the Extended Control register is at I/O address 3DDh SeeAlso: AX=6F01h,AX=6F03h Bitfields for HP Vectra extended control register: Bit(s) Description (Table 00190) 0 screen resolution (0 = 200 lines, 1 = 400 lines) 1 underline enable (if set, 'blue' of fg color = underline) 2 font (0 = Standard-8, 1 = HP-Roman-8) 3 memory disabled for CPU access 4 allow access to full 32K memory instead of wrapping at 16K 5 select second 16K page instead of first 6,7 unusedTop
INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO AX = 6F03h BH = exclude mask (set bits are not modified) BL = new values for bits indicated by BH (see #00190) Return: AX destroyed Notes: this function is only valid when an HP MultiMode Video Display Adapter is installed supported by original HP Vectra AT and by ES/QS/RS series Vectras SeeAlso: AX=6F01h,AX=6F02hTop
INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION AX = 6F04h Return: AL = current video mode (see #00191) BX = horizontal columns (text) or pixels (graphics) CX = vertical columns (text) or pixels (graphics) SeeAlso: AX=6F05hTop
INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
AX = 6F05h
BL = mode (see #00191)
Return: AX,BL destroyed
Notes: also supported by the HP Vectra Extended BIOS on the original
HP Vectra AT and by ES/QS/RS series Vectras
on the HP Vectra, this function rather than AH=00h must be used to
return to an IBM-standard mode after setting an HP-specified mode
from 08h to 0Fh.
SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
(Table 00191)
Values for Video7/VEGA video mode:
text/ text pixel pixel colors disply scrn system
grph resol box resolution pages addr
00h-13h = standard IBM modes (see #00010 at AH=00h)
08h = T 80x27 . . mono . . HP MultiMode Video
09h = T 80x27 . . . . . HP MultiMode Video
0Ah = T 40x27 . . mono . . HP MultiMode Video
0Bh = T 40x27 . . . . . HP MultiMode Video
0Ch = reserved HP MultiMode Video
0Dh = G . . 640x400 . . . HP MultiMode Video
0Eh = G . . 320x400 . . . HP MultiMode Video
0Fh = G . . 320x400 . . . HP MultiMode Video
40h = T 80x43 8x8 . . . . Video7/VEGA VGA
41h = T 132x25 8x14 . . . . Video7/VEGA VGA
42h = T 132x43 8x8 . . . . Video7/VEGA VGA
43h = T 80x60 8x8 . . . . Video7/VEGA VGA
44h = T 100x60 8x8 . . . . Video7/VEGA VGA
45h = T 132x28 8x8 . . . . Video7/VEGA VGA
60h = G . . 752x410 16 . . Video7 VGA, VEGA VGA
61h = G . . 720x540 16 . . Video7 VGA, VEGA VGA
= G . . 720x540 16 . . Northgate, Headland 1024i
62h = G . . 800x600 16 . . Video7 VGA, VEGA Ext EGA
= G . . 800x600 16 . . Headland 1024i
63h = G . . 1024x768 2 . . Video7 VGA
64h = G . . 1024x768 4 . . Video7 VGA
65h = G . . 1024x768 16 . . Video7 VGA, VEGA Ext EGA
= G . . 1024x768 16 . . Headland 1024i
66h = G . . 640x400 256 . . Video7 VGA, VEGA Ext VGA
= G . . 640x400 256 . . Northgate, Headland 1024i
67h = G . . 640x480 256 . . Video7 VGA, VEGA Ext VGA
= G . . 640x480 256 . . Headland 1024i
68h = G . . 720x540 256 . . Video7 VGA, VEGA Ext VGA
= G . . 720x540 256 . . Headland 1024i
69h = G . . 800x600 256 . . Video7 VGA, VEGA Ext VGA
= G . . 800x600 256 . . Headland 1024i
70h = G . . 752x410 16gray . . Video7 VGA, VEGA VGA
71h = G . . 720x540 16gray . . Video7 VGA, VEGA VGA
72h = G . . 800x600 16gray . . Video7 VGA
73h = G . . 1024x768 2gray . . Video7 VGA
74h = G . . 1024x768 4gray . . Video7 VGA
75h = G . . 1024x768 16gray . . Video7 VGA
76h = G . . 640x400 256gray . . Video7 VGA
77h = G . . 640x480 256gray . . Video7 VGA
78h = G . . 720x540 256gray . . Video7 VGA
79h = G . . 800x600 256gray . . (future)
SeeAlso: AH=00h,#00010,AX=0070h,#00011,AX=007Eh,AX=6F04h,#00083
Index: video modes;Video 7|video modes;VEGA|video modes;Headland
Top
INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE AX = 6F06h BL = Autoswitch mode select 00h select EGA/VGA-only modes 01h select Autoswitched VGA/EGA/CGA/MGA modes 02h select 'bootup' CGA/MGA modes BH = enable/disable (00h enable, 01h = disable selection) Return: nothingTop
INT 10 - VIDEO - Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION AX = 6F07h Return: AL = 6Fh AH = memory configuration bits 0-6 = number of 256K blocks of video memory bit 7 = DRAM/VRAM (0: DRAM, 1: VRAM) BH = chip revision (SR8F) (S/C Chip in VEGA VGA) BL = chip revision (SR8E) (G/A Chip in VEGA VGA) CX = 0000h SeeAlso: AH=12h/BL=10hTop
INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM AH = 70h Return: AX:BX -> WORD containing green plane's offset AX:CX -> WORD containing green plane's segment AX:DX -> WORD containing segment of red (offset 0) and blue (offset 4000) planes SeeAlso: AH=71hTop
INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE AH = 70h DS:BX -> control block (see #00192) Return: nothing Desc: Draws a circle or ellipse. Only valid in graphics modes. Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. SeeAlso: AH=71h"HUNTER" Format of HUNTER 16 control block: Offset Size Description (Table 00192) 00h WORD center X co-ordinate 02h BYTE center Y co-ordinate 03h WORD radius in pixels 05h BYTE color (00h white, 01h black, FFh invert) 06h BYTE aspect ratio x:x (1-127) 07h BYTE aspect ratio y:y (1-127)Top
INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS AX = 7000h BX = 0000h Return: AL = 70h if Trident-based Everex card CL = monitor type (see #00193) CH = feature bits (see #00194) DX = video board info bits 4-15: board ID model (see #00195) bits 0-3: board ID revision DI = BCD BIOS version number SeeAlso: AX=5F01h,AH=FFh"Oak" (Table 00193) Values for Everex monitor type: 00h mono 01h CGA 02h EGA 03h digital multifrequency 04h IBM PS/2 05h IBM 8514 06h SuperVGA 07h analog multifrequency 08h super multifrequency Bitfields for Everex feature bits: Bit(s) Description (Table 00194) 7-6 memory size 00 = 256K 01 = 512K 10 = 1024K 11 = 2048K 5 special oscillator present 4 VGA protect enabled 0 6845 emulation (Table 00195) Values for board model for Trident-based Everex cards: 0236h Ultragraphics II 0620h Vision VGA 0673h EVGA 0678h ViewpointTop
INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE AX = 7000h BX = 0004h Return: ES:DI -> FAR paging function (call with DL = page to set) Note: the word preceding ES:DI is the length of the function in bytes, and the last byte of the function is a FAR return instruction. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005hTop
INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO AX = 7000h BX = 0005h CL = maximum number of modes to get info for CH = mode type to get info for (see #00196) DL = monitor type to get info for ES:DI -> buffer for mode info (see #00197) Return: CL = total number of modes fitting criteria CH = size of each info record SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h (Table 00196) Values for Everex mode type: 00h all modes 01h monochrome text modes 02h color text modes 03h four-color CGA graphics modes 04h two-color CGA graphics modes 05h 16-color graphics modes 06h 256-color graphics modes Format of Everex mode information record: Offset Size Description (Table 00197) 00h BYTE mode number (bit 7 set if extended mode) 01h BYTE mode type (see #00196) 02h BYTE info bits (see #00198) 03h BYTE font height 04h BYTE text columns on screen 05h BYTE text rows on screen 06h WORD number of scan lines 08h BYTE color information bits 7-4 reserved 3-0 bits per pixel Bitfields for Everex info bits: Bit(s) Description (Table 00198) 7,6 reserved 5 monochrome mode 4 interlaced display 3 requires special oscillator 2,1 memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K) 0 reservedTop
INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM AH = 71h Return: AX:BX -> WORD containing segment address of INCRAM AX:CX -> WORD containing offset of INCRAM SeeAlso: AH=70h"TANDY"Top
INT 10 - HUNTER 16 - DRAW LINE/BOX AH = 71h DS:BX -> control block (see #00199) Return: nothing Desc: Draws a line or box. Only valid in graphics modes. SeeAlso: AH=70h"HUNTER" Format of HUNTER 16 control block: Offset Size Description (Table 00199) 00h WORD left edge X co-ordinate 02h BYTE lower edge Y co-ordinate 03h WORD right edge X co-ordinate 05h BYTE upper edge Y co-ordinate 06h BYTE color (00h white, 01h black, FFh invert) 07h BYTE type (00h line, 01h box) 08h BYTE if non-zero (and type is BOX) fill with colorTop
INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN AH = 72h AL = number of columns to shift scroll area, 00h to clear entire area BH = new attributes for blanked columns at left CH,CL = row, column of upper left corner of scroll area DH,DL = row, column of lower right corner of scroll area Return: nothing SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05hTop
INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM AH = 72h AL = mechanism to use 00h do not use inverse video 01h emulate MDA. Display attribute 07h is normal video and 70h is inverse video. 02h use inverse video if background is non-black. 03h use inverse video for high intensity text. 04h use inverse video for text with background intensity greater than foreground intensity. 05h use inverse video for text with background color other than black or high intensity foreground. Return: nothing SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"Top
INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN AH = 73h AL = number of columns to shift scroll area, 00h to clear entire area BH = new attributes for blanked columns at right CH,CL = row, column of upper left corner of scroll area DH,DL = row, column of lower right corner of scroll area Return: nothing SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05hTop
INT 10 - HUNTER 16 - SELECT TEXT FONT AH = 73h AL = new font 00h 7x7 in a 8x8 cell 01h 5x7 in a 6x8 cell 06h 3x5 in a 4x6 cell Return: BH = cell width BL = cell height SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"Top
INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION AH = 74h DH = row (0..24) DL = column (0..79) Return: nothing Desc: set the position in the virtual screen being displayed in the LCD screen. If Split Screen (INT 10/AH=66h) is used, this call sets the position for the window which has the cursor. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76hTop
INT 10 - HUNTER 16 - SET ZOOM AH = 75h AL = new Zoom state (00h off, nonzero on) Return: nothing SeeAlso: AH=74h,AH=76hTop
INT 10 - HUNTER 16 - LOOKING KEYS AH = 76h AL = action 00h home the window 01h move up one line 02h move down one line 03h move left one character 04h move right one character 05h flip window to other side of virtual screen Return: nothing Desc: moves the displayed screen around the virtual screen SeeAlso: AH=74h,AH=75hTop
INT 10 - HUNTER 16 - GET GRAPHICS FONT AH = 77h Return: AL = font number (see #00200) SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER" (Table 00200) Values for HUNTER 16 graphics font number: 00h 7x7 in a 8x8 cell 01h 5x7 in a 6x8 cell 02h 7x9 in a 8x10 cell 03h 14x9 in a 16x10 cell 04h 7x18 in a 8x20 cell 05h 14x18 in a 16x20 cell 06h 3x5 in a 4x6 cell Note: size is X * YTop
INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF AH = 78h AL = new state of backlight (00h on, 01h off) Return: nothing SeeAlso: AH=64h,INT 15/AH=74hTop
INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK AH = 7Fh Return: AX = 1234h if WD90C24 chip installedTop
INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO AX = 7F00h Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful ES:DI -> info structure (see #00201) 01h failed Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by Seiko Epson Corporation intended to provided a standardized interface to SuperVGA functionality not addressed by the VESA standard SeeAlso: AX=4F00h Format of SOLLEX SuperVGA info structure: Offset Size Description (Table 00201) 00h DWORD pointer to VESA function dispatch table 04h DWORD pointer to SOLLEX function dispatch table 08h DWORD pointer to VESA SuperVGA info (see #00077 at AX=4F00h) 0Ch DWORD pointer to mode info structure table, consisting of alternating ResInfo (see #00202) and VESA mode information (see #00079 at AX=4F01h) blocks, terminated with an FFFFh word 10h DWORD pointer to font info structure table (see #00203) 14h WORD high resolution crystal frequency in Hz (0000h = not present) 16h DWORD pointer to ASCIZ ID string 1Ah DWORD pointer to timeout reset table array of bytes, each a multiple of the minimum time increment 1Eh WORD minimum time increment in timer ticks 20h BYTE inverse options supported bit 0: inverse supported bits 1-7: reserved 21h BYTE normal color value 22h BYTE inverse color value 23h WORD port to be accessed for normal/inverse settings 25h WORD type of interface chip (currently undefined) 27h WORD program operational mode bits 1-0: 00 no preference 01 terse (minimum detail in program messages) 10 verbose 11 use menus if supported, verbose mode otherwise bits 7-2: reserved 29h WORD SOLLEX specification version 2Bh WORD version of VESA/SOLLEX implementation 2Dh DWORD offset to relocatable portion of SOLLEX extensions (for CONFIG) 2Eh DWORD offset to unused section of the extensions ROM 31h 16 BYTEs reserved Note: all DWORD pointers initially require segment fixups; if the segment is 0000h, it should be changed to the returned ES, otherwise it may be assumed to be correct Format of SOLLEX SuperVGA ResInfo: Offset Size Description (Table 00202) 00h WORD 16-bit mode number 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA) 04h WORD display info (see #00206) 06h DWORD pointer to video parameter table 0Ah BYTE replacement entry in master Video Parameter 0Bh BYTE mode requested for mode set by BIOS 0Ch DWORD pointer to LoadReg table 10h BYTE index into table of clock values (see #00204) SeeAlso: #00201 Format of SOLLEX SuperVGA font info table [array] entry: Offset Size Description (Table 00203) 00h BYTE required font height 01h BYTE parameter to load text mode font 02h BYTE parameter to load graphics mode font SeeAlso: #00201 (Table 00204) Values for SOLLEX SuperVGA clock value index: 00h 25 MHz 01h 28 MHz 02h PCLK 03h 31.5 MHz (VESA 640x480) 04h reserved 05h 16 MHz (EGA) 06h PCLK 07h 24 MHz (EGA) 08h 25 MHz 09h 28 MHz 0Ah 36 MHz 0Bh 45 MHz (for 1024x768) 0Ch 80 MHz 0Dh 40 MHz 0Eh 65 MHz 0Fh 1 MHz (for powerdown) SeeAlso: #00201Top
INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK AX = 7F00h BX = 4000h Return: AX = 007Fh if supported DX:BX -> DAC set mode routine SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h,#00732 at INT 1A/AX=B102hTop
INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS AX = 7F00h BX = 4001h Return: AX = 007Fh if supported CX = current linear address base (high word) SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002hTop
INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS AX = 7F00h BX = 4002h CX = new linear address base (high word) Return: AX = 007Fh if supported SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001hTop
INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER AX = 7F01h BL = 00h CX = adapter request (see #00205) Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed Note: initializes video hardware to a particular standard SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=01h,AX=7F01h/BL=02h Bitfields for SOLLEX SuperVGA adapter request: Bit(s) Description (Table 00205) 1-0 adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA) 2 reserved 4-3 change displays (00 none, 01 analog 10 digital 11 panel) 6-5 desired monitor sense (01 color, 10 mono, 11=8514) 7 lock override 8 alternate adapter mode 15-9 reservedTop
INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER AX = 7F01h BL = 01h Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed BX = adapter type (see #00205) DX = display type (see #00206) SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h,AX=7F01h/BL=02h Bitfields for SOLLEX SuperVGA display type: Bit(s) Description (Table 00206) 15-9 reserved 8 alternate display active 7 Enhanced Color Display monitor active 6 multi-frequency digital monitor active 5 PS/2-type monitor active 4 plasma/electroluminescent panel active 3 LCD panel active 2 multi-frequency analog monitor active 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)Top
INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT AX = 7F01h BL = 02h CX = adapter request (see #00205) Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h requested setting can successfully be made 01h requested setting not available in this configuration SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00hTop
INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT AX = 7F02h BL = 00h CX = display output setting (see #00207) Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h Bitfields for SOLLEX SuperVGA display output setting: Bit(s) Description (Table 00207) 0 CRTC control in 2,1 valid 1 enable digital output 2 enable analog output 3 panel control in 5,4 valid 4 enable LCD output 5 enable plasma/EL output 6 inverse control in 7 valid 7 0=normal, 1=inverse 15-8 reservedTop
INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT AX = 7F02h BL = 01h Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful BX = display output setting (see #00207) CX = displays attached (see #00208) 01h failed SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h Bitfields for SOLLEX SuperVGA displays attached: Bit(s) Description (Table 00208) 0 PS/2 display on analog output 1 multi-frequency monitor on analog output 2 LCD panel attached 3 plasma/electroluminescent panel attached 4 multi-frequency monitor on digital output 5 Enhanced Color Display attached to digital outpt 6 alternate display 15-7 reservedTop
INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO AX = 7F03h BL = 00h CX = support type 0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions, 0005h-0012h reserved for SOLLEX, 0013h Hercules, 0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful CX = size of video support code DX = segment of physical video support (0000h if no ROM) ES = segment of active video support ES:DI -> information block (DI = 0000h if none available) 01h failed SeeAlso: AX=7F03h/BL=01hTop
INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT AX = 7F03h BL = 01h CX = support request ES = segment of support code Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed Note: initializes the indicated video support by calling ES:0003h; this function may be used to switch the active video support back to ROM after AX=7F03h/BL=02h SeeAlso: AX=7F03h/BL=00hTop
INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT AX = 7F03h BL = 02h CX = support request ES = destination segment Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed SeeAlso: AX=7F00h"SOLLEX",AX=7F03h/BL=01hTop
INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE AX = 7F04h BL = 00h CX = new power state Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed Note: higher values progressively reduce the operations available on the video adapter while yielding increasing power savings SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=01hTop
INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE AX = 7F04h BL = 01h Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful CX = current power state DX = maximum state 01h failed SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=00hTop
INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET AX = 7F04h BL = 02h CX = timeout reset Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=03hTop
INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET AX = 7F04h BL = 03h Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful BX = time increment CX = current timeout reset DX = maximum timeout reset ES:DI -> timeout reset table (array of bytes) 01h failed Note: the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=02hTop
INT 10 - SOLLEX SuperVGA - LOAD REGISTER AX = 7F05h ES:DI -> register value table (see #00209) Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed SeeAlso: AH=F1h,AH=F3h,AH=F5h Format of SOLLEX SuperVGA register value table: Offset Size Description (Table 00209) 00h WORD base I/O register (FFFFh = end of list) 02h 2N BYTEs pairs of values to be written to the base I/O register as an index value and the following register as a data byte 2N+2 WORD FFFFh (end of data list) ... (repeats until FFFFh base address)Top
INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL AX = 7F06h BL = subfunction 00h set multiple font state CX = new state (00h off, 01h on) 01h get multiple font state Return: BL = current state (00h off, 01h on) Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed SeeAlso: AX=1100h,AX=1103hTop
INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM AX = 7F07h BL = how much to fill 00h regen size 01h all video memory CX = pattern to write (normally 0720h for text modes and 0000h for gr) Return: AL <> 7Fh if not supported AL = 7Fh if supported AH = status 00h successful 01h failed SeeAlso: AH=06hTop
INT 10 - CU Writer v1.4 - GET OPTION AH = 80h AL = desired option Return: ??? Program: CU Writer is a public-domain Thai-English word processor from Chulalongkorn University, Bangkok SeeAlso: AH=81h"CU Writer"Top
INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
AH = 80h
DX = 4456h ('DV')
ES:DI -> FAR subroutine to be called on ???
Return: DS = segment of DESQview data structure for video buffer
Note: this function is probably meant for internal use only, due to the magic
value required in DX
the subroutine seems to be called when the DESQview menu is accessed;
on entry, AL = 03h or 04h
Top
INT 10 - CU Writer v1.4 - SET OPTION AH = 81h ??? Return: ??? SeeAlso: AH=80h"CU Writer"Top
INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
AH = 81h
DX = 4456h ('DV')
Return: ES = segment of DESQview data structure for video buffer
BYTE ES:[0] = current window number in DV 2.0x
Note: this function is probably meant for internal use only, due to the magic
value required in DX
SeeAlso: AH=82h"DESQview"
Top
INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
AH = 82h
DX = 4456h ('DV')
Return: DS = segment in DESQview for data structure
in DV 2.00,
BYTE DS:[0] = window number
WORD DS:[1] = segment of other data structure
WORD DS:[3] = segment of window's object handle
ES = segment of DESQview data structure for video buffer
AL = current window number
AH = ???
BL = direct screen writes
00h program does not do direct writes
01h program does direct writes, so shadow buffer not usable
BH = ???
CL = current video mode
CH = ???
Note: this function is probably meant for internal use only, due to the magic
value required in DX
SeeAlso: AH=81h"DESQview"
Top
INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE AX = 8200h BL = new scroll mode or FFh to get current mode 00h dynamic, 01h software Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise) SeeAlso: AH=06h,AH=07hTop
INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS AX = 8300h Return: AX = offset of video RAM ES:BX -> virtual text RAM buffer SeeAlso: AX=5201hTop
INT 10 - ??? AH = 86h Note: called by Diamond Stealth64 Video STLTH64.VXD SeeAlso: INT 2F/AX=4021hTop
INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE AH = 8Bh Return: nothing SeeAlso: AH=92h,AH=93hTop
INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE AH = 90h Return: AL = current video mode (see #00010 at AH=00h) SeeAlso: AH=91hTop
INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE AH = 91h Return: AL = video adapter type (see #00210) Note: types less than 80h do not imply that the current user is on the host SeeAlso: AH=90h (Table 00210) Values for Alloy MW386 video adapter type: 00h monochrome 01h Hercules monochrome graphics 02h CGA 03h EGA 04h VGA 80h monochrome text terminal 81h Hercules graphics terminal 82h color graphics terminalTop
INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES AH = 92h Return: nothing Note: the terminal will be updated even when screen updates are inhibited if TTY output is used SeeAlso: AH=8BhTop
INT 10 - Alloy MW386 - REDRAW SCREEN AH = 93h Return: nothing SeeAlso: AH=8Bh,AH=FFhTop
INT 10 - VHRBIOS.SYS - ??? AX = 9508h Return: ??? Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor SeeAlso: AH=96h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS"Top
INT 10 - VHRBIOS.SYS - GET OTHER DISPLAY INFO AH = 96h Return: AL = display type (see AH=1Ah) AH = ??? (possibly related to Micro Channel support) Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor Desc: returns info on any non-Genius video adapter in the system SeeAlso: AX=9508h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS"Top
INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE AH = A0h ??? Return: ??? Program: CU Writer is a public-domain Thai-English word processor from Chulalongkorn University, Bangkok SeeAlso: AH=80h"CU Writer",AH=B0hTop
INT 10 - ATI BIOS Extensions - ??? AX = A000h CL = ??? (bits 2-0 may not be 000) CH = ??? (81h or ???) DX = segment of ??? (if CH=81h) ??? Return: AX = ??? Program: the ATI BIOS extensions are supported by ATI graphics cards containing the Mach64 or newer graphics chips (Rage Pro, Rage 128, etc.) SeeAlso: AX=4F10h/BL=00h,AX=A001hTop
INT 10 - ATI Mach64 BIOS - ??? AX = A001h CL = ??? flags ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - ??? AX = A002h CL = ??? (bits 2-0 may not be 000) CH = ??? (81h or ???) DX = segment of ??? (if CH=81h) ??? Return: AH = status 00h successful 01h failed ??? Note: executes AX=A000h, then AX=A001h if A000h was successful SeeAlso: AX=A000h,AX=A001hTop
INT 10 - ATI Mach64 BIOS - ??? AX = A003h BX = ??? ??? Return: AH = status (00h successful) ??? SeeAlso: AX=A000h,AX=A002hTop
INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE AX = A004h ??? Return: ??? Desc: configure display parameters SeeAlso: AX=A01Bh"PhoenixVIEW/LC"Top
INT 10 - ATI Mach64 BIOS - ??? AX = A004h BX = video mode??? (0000-00FFh) DX = ??? (sent to some port [66ECh???] one bit at a time, high to low) ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - ??? AX = A005h CL = ??? flags (bits 0,2, others?) ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - ??? AX = A006h ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - GET ??? AX = A007h Return: AH = 00h (successful) AL = ??? (00h) BX = ??? (15A0h in examined BIOS) DX = segment of BIOS SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - GET ??? SIZE AX = A008h CL = ??? flags ??? Return: AH = 00h (successful) BX = size of ??? (0046h if CL bit 0 clear on entry) SeeAlso: AX=A000h,AX=A009hTop
INT 10 - ATI Mach64 BIOS - GET ??? AX = A009h DX:BX -> buffer for ??? CL = ??? flags ??? Return: AH = status 00h successful DX:BX buffer filled 01h failed ??? SeeAlso: AX=A000h,AX=A008hTop
INT 10 - ATI Mach64 BIOS - GET ??? AX = A00Ah Return: AH = 00h (successful) AL = ??? (01h) BX = ??? (5938h) CX = ??? (595Eh) DX = segment of BIOS SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - ??? AX = A00Bh BX = ??? CL = ??? flags ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - SET SLEEP MODE AX = A00Ch CL = new state 00h normal operation 01h standby 02h suspend 03h off Return: AH = status 00h successful 01h failed Note: CL bit 2 affects values written to video card's ports SeeAlso: AX=A000h,AX=A00Dh,AX=4F00h,AX=4F10h/BL=01hTop
INT 10 - ATI Mach64 BIOS - GET SLEEP MODE AX = A00Dh Return: AH = 00h (successful) CL = current power mode 00h normal operation 01h standby 02h suspend 03h off SeeAlso: AX=A00Ch,AX=4F10h/BL=02h SeeAlso: AX=A00Ch,AX=A00Dh"Rage128"AX=4F10h/BL=02hTop
INT 10 - ATI Rage128 BIOS - GET ??? AX = A00Dh BL = subfunction 00h ??? 01h ??? 02h ??? 03h ??? DX:DI -> buffer for results ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A000h,AX=A00Dh"Mach64",AX=A015hTop
INT 10 - ATI Mach64 BIOS - SET ??? AX = A00Eh CL = ??? (00h-03h) Return: AH = status 00h successful 01h failed Notes: CL zero/nonzero are treated differently NOP in All-in-Wonder 128 BIOS SeeAlso: AX=A000h,AX=A00FhTop
INT 10 - ATI Mach64 BIOS - GET ??? AX = A00Fh Return: AH = 00h (successful) CL = ??? (00h-03h, read from PORT 42ECh) Note: NOP in All-in-Wonder 128 BIOS SeeAlso: AX=A000h,AX=A00EhTop
INT 10 - ATI Mach64 BIOS - ??? AX = A010h CL = ??? (80h/other) ??? Return: AH = status 00h successful 01h failed ??? Note: NOP in All-in-Wonder 128 BIOS SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - GET ??? AX = A011h Return: AH = 00h (successful) BL = ??? (1Fh) BH = ??? (0Fh) CL = ??? (00h) CH = ??? (0Fh) DX = ??? (00FFh) Note: NOP in All-in-Wonder 128 BIOS SeeAlso: AX=A000h,AX=A010hTop
INT 10 - ATI Mach64 BIOS - GET ??? AX = A012h Return: AH = 00h (successful) AL = ??? (00h) BX = ??? (0000h) CX = ??? (0000h) DX = ??? (02ECh) Note: NOP in All-in-Wonder 128 BIOS SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Mach64 BIOS - ??? AX = A013h ??? Return: AH = status 00h successful 01h failed ??? Note: not implemented in examined Mach64 BIOS, always returns AH=01h; NOP in examined All-in-Wonder 128 BIOS SeeAlso: AX=A000h,AX=A002hTop
INT 10 - ATI Rage128 BIOS - ??? AX = A014h CH = ??? (bits 0,1,4) ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A000h,AX=A015hTop
INT 10 - ATI Rage128 BIOS - GET/SET ??? AX = A015h CH = subfunction 00h get ??? 01h set ??? CL = ??? (only bits 0,1 used on All-in-Wonder 128) other NOP Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A014h,AX=A017hTop
INT 10 - ATI Rage128 BIOS - NOP AX = A016h Return: nothing SeeAlso: AX=A000h,AX=A017hTop
INT 10 - ATI Rage128 BIOS - ??? AX = A017h ??? Return: AH = status 00h successful 01h failed ??? SeeAlso: AX=A014h,AX=A015hTop
INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION AX = A01Bh ??? Return: ??? Desc: determine whether an external display is currently attached SeeAlso: AX=A004h"PhoenixVIEW/LC"Top
INT 10 OU - Player's Tool 3.0 - UNINSTALL AH = AAh Return: ??? Note: this call has been removed in PT 3.996b Program: Player's Tool is a game cheater by Dmitry Yakunin & Andy Robinson SeeAlso: AH=ABh,INT 2F/AH=AAhTop
INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK AH = ABh Return: BH = FFh ??? Note: this call has been removed in PT 3.996b SeeAlso: AH=AAh,INT 2F/AH=ABhTop
INT 10 - CU Writer v1.4 - PUT PIXEL AH = B0h ??? Return: ??? SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0hTop
INT 10 - CU Writer v1.4 - MOVE TO AH = B1h ??? Return: ??? SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"Top
INT 10 - CU Writer v1.4 - DRAW LINE TO AH = B2h ??? Return: ??? SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5hTop
INT 10 - CU Writer v1.4 - FLOOD FILL AH = B3h ??? Return: ??? SeeAlso: AH=B2h,AH=B5hTop
INT 10 - CU Writer v1.4 - DRAW RECTANGLE AH = B4h ??? Return: ??? SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5hTop
INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE AH = B5h ??? Return: ??? SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4hTop
INT 10 U - Doorway - SET BIOS/DIRECT REDIRECTION AH = BBh AL = new redirection mode 00h BIOS (hook and redirect INT 10h,etc.) 01h DIRECT (scan video memory for changes) Return: ??? SeeAlso: INT 16/AH=67h"Doorway"Top
INT 10 U - Compaq QVision - ??? AX = BD44h ??? Return: ??? Note: called by Compaq's MTX132.COM, which places the QVision in 132-column modeTop
Top
INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK AH = BFh CX = 0000h (???) Return: CX = 0202h DL = ??? (internal data, possibly version number)Top
INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR AX = BF00h Return: nothing Desc: specify that the external monitor become the active monitor Note: all registers preserved and the internal monitor is blanked SeeAlso: AX=BF01h,AX=BF12h,AH=12h/BL=35hTop
INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR AX = BF01h Return: nothing Desc: specify that the internal monitor become the active monitor Note: all registers preserved and the external monitor is blanked SeeAlso: AX=BF00h,AX=BF12h,AH=12h/BL=35hTop
INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER AX = BF02h BH = master mode 04h CGA 05h EGA 07h MDA Return: nothing SeeAlso: AX=BF03hTop
INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT AX = BF03h BX = 0000h Return: BH = active monitor (00h = external, 01h = internal, 03h both, 04h neither) BL = master mode (see #00211) CH = ASIC type and version 00h (reserved, very early Compaq VGCs) 31h if QVision VGA CL = switchable VDU modes supported (see #00212) DH = internal monitor type (see #00213) DL = external monitor type (see #00213) SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h (Table 00211) Values for Compaq video master mode: 00h switchable VDU not present 04h CGA 05h EGA 07h MDA 08h switchable LCD controller present 09h plasma VGA 0Ah TFT (active-matrix) VGA Bitfields for Compaq switchable VDU modes support: Bit(s) Description (Table 00212) 0 CGA supported 1,2 reserved (1) 3 MDA supported 4 BitBLT engine available 5 132-column support availble 6 640x480x256 mode available 7 8-bit DAC mode available (Table 00213) Values for Compaq monitor type: 00h none 01h dual-mode monitor 02h 5153 RGB monitor (RGBI 16-color) 03h Compaq Color monitor 04h 640x400 flat panel (Plasma CGA) 05h VGC monochrome 06h VGC color 07h 8-level mono LCD VGA (internal) 1024x768 mono VGA (external) 08h 16-level mono plasma VGA (internal) 1024x768 color VGA (external) 09h 4-level mono LCD CGA 0Ah 16-level mono LCD VGA 0Bh active-matrix color VGA 0Ch active-matrix mono VGA 0Dh STN color VGATop
INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY AX = BF04h BH = new state of delay (00h enabled, 01h disabled) Return: nothing Note: the 1993/04/08 sytem ROM appears to use BL instead of BH; a future version of the list will provide more definite information SeeAlso: AX=BF05hTop
INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY AX = BF05h BH = new state of video 00h off 01h on Return: nothing Note: the 1993/04/08 sytem ROM appears to use BL instead of BH; a future version of the list will provide more definite information SeeAlso: AH=12h/BL=36h,AX=BF04hTop
INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE AX = BF06h CL = address to be read from gray scale table Return: AL = bit 3-0 - Value read from gray scale table CL = address to be read from gray scale table SeeAlso: AH=12h/BL=33h,AX=BF07hTop
INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE AX = BF07h CH = value to write to gray scale table CL = address to be written to gray scale table Return: nothing SeeAlso: AX=BF06h,AX=BF08hTop
INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS AX = BF08h CH = bits 7-4 green weight bits 3-0 blue weight CL = bits 7-4 unused bits 3-0 red weight Return: nothing SeeAlso: AH=12h/BL=33h,AX=BF07hTop
INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO AX = BF09h Return: CF clear Notes: sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h to 6Fh and index 83h to 04h supported by at least the QVision board and the LTE Lite ROM BIOS SeeAlso: AX=BF0Ah,AX=BF0BhTop
INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO AX = BF0Ah Return: CF clear Notes: clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h to 80h and index 83h to FBh supported by at least the QVision board and the LTE Lite ROM BIOS SeeAlso: AX=BF09h,AX=BF0BhTop
INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED AX = BF0Bh Return: CF clear AX = state (0000h normal video, 0001h reverse video) Note: supported by at least the QVision board and the LTE Lite ROM BIOS SeeAlso: AX=BF09h,AX=BF0AhTop
INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE AX = BF0Ch Return: CF clear Desc: specify that video DAC registers use only six bits of color info Note: supported by at least the QVision board and the SystemPro XL ROM BIOS SeeAlso: AX=BF0Dh,AX=BF0EhTop
INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE AX = BF0Dh Return: CF clear Desc: specify that video DAC registers use all eight bits of color info Note: supported by at least the QVision board and the SystemPro XL ROM BIOS SeeAlso: AX=BF0Ch,AX=BF0EhTop
INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode AX = BF0Eh Return: CF clear AL = DAC mode 00h in 6-bit mode 01h in 8-bit mode Note: supported by at least the QVision board and the SystemPro XL ROM BIOS SeeAlso: AX=BF0Ch,AX=BF0DhTop
INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER AX = BF0Fh BX = high address map location in megabytes, or 0000h to disable high address map, or FFFFh to let ROM configure high address map Return: CF clear AX = previous value of high address map register Notes: supported by at least the QVision board and the SystemPro XL and LTE Lite ROM BIOSes SeeAlso: AX=BF10hTop
INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER AX = BF10h Return: CF clear AX = current value of high address map register Notes: supported by at least the QVision board and the SystemPro XL and LTE Lite ROM BIOSes the Compaq QVision documentation (October 1993) says the value is returned in BX, but this appears to be one of many typos SeeAlso: AX=BF0FhTop
INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT AX = BF11h Return: AL = BFh if supported CF clear ES:DI -> ASCII signature "COMPAQ" ES:SI -> advanced functionality table (see #00214) Note: supported by at least the QVision board and the LTE Lite and ProSignia ROM BIOSes SeeAlso: AX=1A00h,AX=BF03h Bitfields for Compaq advanced video functionality: Bit(s) Description (Table 00214) 31 future graphics extensions (reserved, set to 0) 30-16 reserved 15-12 available video memory in 256K blocks, less one (0000 = 256K, etc.) 11-8 reserved 7 QVision modes supported 6 Advanced VGA modes supported 5 Accelerated VGA modes supported 4 standard VGA modes supported 3-2 reserved 1 132-column modes supported 0 reservedTop
INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR AX = BF12h BH reserved BL = function mask (see #00215) Return: CF clear Notes: this function is a NOP if the VGA subsystem is inactive or the current Display Combination Code is 10h or higher supported by at least the QVision board and the LTE Lite and ProSignia ROM BIOSes SeeAlso: AX=BF01h,AX=BF02h,#00733 Bitfields for function mask: Bit(s) Description (Table 00215) 7 command mode if set, bits 1 and 0 make the monitor active when set if clear, bits 1 and 0 toggle the monitor's state when set 6-2 reserved 1 internal monitor 0 external monitorTop
INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION AX = BF13h BL = subfunction 00h load gamma correction table for true-color mode DS = BIOS data segment 01h set palette RAM bypass BH = 00h Return: nothing Note: these functions must be called after a video mode set, and are in effect only for the current video mode SeeAlso: #00733Top
INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK AX = BFA0h BX = ADADh Return: AX = BDBDh if newer ADAPT.COM installed BX = BCD version (BH = major, BL = minor) CL = ??? CH = ??? DL = ??? AX = ADADh if older version of ADAPT.COM installed Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an optionally-resident utility for setting display colors and cursor size; when resident, it also includes a screen blanker SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h Index: screen saver;ADAPTTop
INT 10 - VIDEO - Compaq ADAPT.COM - GET ??? AX = BFA1h Return: AX = BDBEh if supported CH = current value of ??? DL = current value of ??? SeeAlso: AX=BFA0h,AX=BFA2hTop
INT 10 - VIDEO - Compaq ADAPT.COM - SET ??? AX = BFA2h CH = new value for ??? DL = new value for ??? Return: AX = BDBEh if supported SeeAlso: AX=BFA0h,AX=BFA1hTop
INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN AH = C0h ??? Return: ??? SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4hTop
INT 10 - S3 SpeedUp v3.00+ - INSTALLATION CHECK AX = C000h Return: AX = FFFFh if installed DX = version number (binary, DH=major, DL=minor) BX = resident code segment Program: S3SPDUP is a freeware TSR by Dietmar Meschede to improve the speed of chained video modes (both VESA and VGA Mode 13) on S3-chipset video cards SeeAlso: AX=C001h,AX=C002h,AX=C003h,AX=D000h"S3VBE"Top
INT 10 - S3 SpeedUp v3.00+ - GET ACTIVE OPTIONS AX = C001h Return: AX = FFFFh if function supported BX = currently active options (see #00216) SeeAlso: AX=C000h,AX=C002h,AX=C003h Bitfields for S3SpeedUp options: Bit(s) Description (Table 00216) 0 speed up banked VESA modes 1 speed up 320x200 VGA mode 13 SeeAlso: #00222Top
INT 10 - S3 SpeedUp v3.00+ - SET ACTIVE OPTIONS AX = C002h BX = new value for active options (see #00216) Return: AX = FFFFh if function supported SeeAlso: AX=C000h,AX=C001h,AX=C003h,AX=D003h"S3VBE"Top
INT 10 - S3 SpeedUp v3.10+ - GET FLAGS AX = C003h Return: AX = FFFFh if function supported BX = flags bit 0: SpeedUp is active bit 1: Windows run after SpeedUp SeeAlso: AX=C000h,AX=C001h,AX=C002h,AX=D005h"S3VBE"Top
INT 10 - S3 SpeedUp v3.10+ - RESERVED FUNCTIONS AX = C004h-C0FFh Return: AX = 5555h SeeAlso: AX=C000hTop
INT 10 - CU Writer v1.4 - OUTPUT TEXT AH = C1h ??? Return: ??? SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4hTop
INT 10 - CU Writer v1.4 - REVERSE TEXT AH = C2h ??? Return: ??? SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4hTop
INT 10 - CU Writer v1.4 - TEXT BAR AH = C3h ??? Return: ??? SeeAlso: AH=C0h,AH=C1h,AH=C4hTop
INT 10 - CU Writer v1.4 - TEXT MENU AH = C4h ??? Return: ??? SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0hTop
INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS AX = CB00h Note: combined with AX=CB06h, this function permits the use of video mode 13h together with the VGA's unchained mode SeeAlso: AX=CB06h,AX=CBFFhTop
INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET AX = CB01h BX = offset of page 1 Return: nothing Desc: inform UNCHAIN of the location of video page 1 in video memory; the default is 0000h SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFhTop
INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET AX = CB02h BX = offset of page 2 Return: nothing Desc: inform UNCHAIN of the location of video page 2 in video memory; the default is 3E80h (16000, for 320x200) SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04hTop
INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET AX = CB03h BX = offset of page 3 Return: nothing Desc: inform UNCHAIN of the location of video page 3 in video memory; the default is 7D00h (32000, for 320x200) SeeAlso: AX=CB01h,AX=CB02h,AX=CB04hTop
INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET AX = CB04h BX = offset of page 4 Return: nothing Desc: inform UNCHAIN of the location of video page 4 in video memory; the default is BB80h (48000, for 320x200) SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05hTop
INT 10 - UNCHAIN - SAVE PALETTE AX = CB05h Return: nothing SeeAlso: AX=CB00h,AX=CB06hTop
INT 10 - UNCHAIN - RESTORE VGA REGISTERS AX = CB06h Return: nothing SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFhTop
INT 10 - UNCHAIN - INSTALLATION CHECK AX = CBFFh Return: AX = CCBBh if installed Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland development tools with Mode X video in the absence of a second monitor SeeAlso: AX=CB00h,AX=CB01h,AX=CB06hTop
INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
AX = CC00h
SI = magic value 0000h (if checking version)
Return: CX = product signature
ABCDh UltraVision
5546h ('UF') UltraFont
AL = Ultravision extensions
00h enabled
FFh disabled
AH = card designator
BX:00F0h -> palette values (for compatibility with NEWFONT)
DX = support for high resolution modes
00h not active
01h active
SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
unchanged for versions <1.2
Note: UltraFont is a simplified version of UltraVision for Toshiba;
only the signature in CX and the status in AL will be returned
SeeAlso: AX=CC01h,AX=CC02h
Top
INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS AX = CC01h Return: nothing Notes: subsequent BIOS calls will be passed through to previous handler should be followed immediately by mode set to restore normal EGA/VGA state SeeAlso: AX=CC02hTop
INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS AX = CC02h Return: nothing Note: should be followed immediately by mode set to restore previous UltraVision state SeeAlso: AX=CC01hTop
INT 10 - HiFont - INSTALLATION CHECK AX = CCABh Return: AX = ABCCh Program: HiFont is a 8x19 font driver for standard VGA by Solar DesignerTop
INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA) AX = CD00h CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+) DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh) Return: nothing Notes: if palette locking is in effect for the current mode, the new colors will be displayed immediately; otherwise, the system reverts to the default palette palette table 0 is reserved for the default palette and cannot be set UltraVision always sets the border color to black SeeAlso: AX=CD01h,AX=CD02hTop
INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA) AX = CD01h CL = palette locking value 00h none 01h text modes only (02h,03h) FFh all modes (all standard color text and graphics modes) Return: nothing Notes: intended for video modes with 16 or fewer colors SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03hTop
INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA) AX = CD02h Return: CL = palette table number DS:DX -> 17-byte palette register list (see #00217) DS:SI -> current font names table (see #00218,#00219) Note: only the font names are valid on monochrome EGA systems SeeAlso: AX=1009h,AX=CD00h Format of UltraVision palette register list: Offset Size Description (Table 00217) 00h 16 BYTEs colors for palette registers 00h through 0Fh 10h BYTE border color Format of UltraVision v2+ current font names table: Offset Size standard EGA HiRes EGA VGA (Table 00218) 00h 8 BYTEs N/A F19 font F20 font 08h 8 BYTEs F14 font F14 font F14 font 10h 8 BYTEs N/A F11 font F10 font 18h 8 BYTEs F8 font F8 font F8 font Format of UltraVision v1.x current font names table: Offset Size HiRes EGA (Table 00219) 00h 8 BYTEs F19/F14 font 08h 8 BYTEs F11/F8 fontTop
INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA) AX = CD03h Return: CL = palette locking value 00h none 01h text modes only FFh all modes SeeAlso: AX=CD01hTop
INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA) AX = CD04h Return: AL = mode number (see #00220) SeeAlso: AH=0Fh,AX=CC00h,AH=CDh (Table 00220) Values for UltraVision video mode number: 11h 80x25 12h 80x43, 80x50 13h 80x34, 80x36 14h 80x60, 80x63 19h 94x25 1Ah 94x43, 94x50 1Bh 94x36 1Ch 94x63 21h 108x25 22h 108x43, 108x50 23h 107x34, 108x36 24h 108x60, 108x63 31h 120x25 32h 120x43, 120x50 33h 132x25 34h 132x44, 132x50 39h 120x36 3Ah 120x63 3Bh 132x36 3Ch 132x60 Index: video modes;UltraVisionTop
INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA) AX = CD05h CL = type 00h line cursor FFh box cursor Return: nothing Note: sets default cursor type for text-based programs SeeAlso: AH=01h,AX=CD06hTop
INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA) AX = CD06h Return: CL = type 00h line cursor FFh box cursor SeeAlso: AH=03h,AX=CD05hTop
INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA) AX = CD07h CL = hardware underline status (see #00221) BL = foreground color for normal text (FFh = current) BH = foreground color for bright text (FFh = current) Return: CL = hardware underline status BL = current foreground color for normal text BH = current foreground color for bright text Notes: when underline or strikeout is enabled in color text modes, the specified colors will be assigned temporarily to colors 01h and 09h, allowing affected text to match non-underlined text. The color remapping uses values from the current onscreen palette regardless of the palette locking status (see AX=CD01h) specify the standard colors (BL=01h,BH=09h) to enable underline or strikeout without color remapping SeeAlso: AX=CD08h (Table 00221) Values for hardware underline status: 00h off (color systems only) 01h underline below characters 02h strike through charactersTop
INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA) AX = CD08h Return: CL = hardware underline status (see #00221) BL = foreground color for normal text BH = foreground color for bright text Note: only CL is valid on monochrome EGA systems SeeAlso: AX=CD07hTop
INT 10 - VIDEO - UltraVision - GET POINTER TO ??? (EGA,VGA) AX = CD0Fh Return: DS:DI -> pointer to ??? Note: This gets called by DR DOS "Panther" SECURITY. SECURITY also issues a number of calls to the other UltraVision functions in the AH=CCh and AH=CDh range, and carefully checks signatures. SeeAlso: AX=1100h,AX=1103hTop
INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA) AX = CD10h BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h) CX = ABCDh load 9xN alternate font (v2+) else number of characters to load DX = character offset into font table DS:SI -> 8-byte ASCII font name ES:BP -> font definitions Return: AX = FFFFh if invalid font parameters Notes: loads the designated characters into UltraVision's resident font area should be followed by a video mode set to reload character generator SeeAlso: AX=1100h,AX=1103hTop
INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA) AH = CDh AL = text mode number (see #00220) Return: AX = CDCDh if invalid mode SeeAlso: AX=CD04hTop
INT 10 - CU Writer v1.4 - LOAD PICTURE AH = D0h ??? Return: ??? SeeAlso: AH=B0h"CU Writer",AH=C4hTop
INT 10 U - VIDEO - HP 100LX/200LX - SET ZOOM MODE AH = D0h AL = zoom mode 02h 80x25 mono 03h 80x25 color 80h 64x18 mono 81h 64x18 color 82h 40x25 mono 83h 40x25 color 84h 40x16 mono 85h 40x16 color Return: nothing Note: zoom mode can only be changed within zoom modes of the same color scheme; if needed, set to mono/color with AH=00h,AL=02h/03h; with mono video modes AL=07h or AL=21h only 80x25 and 40x16 will work the current zoom mode is stored in the BIOS data area at 0040h:009Fh SeeAlso: AH=D1h,AH=D4hTop
INT 10 - S3VBE/Core2.0 v3.00+ - INSTALLATION CHECK AX = D000h Return: AX = FFFFh if installed BX = resident code segment DX = version (binary, DH = major, DL = minor) Program: S3VBE/Core2.0 is a freeware TSR by Dietmar Meschede to provide VESA 2.0 services on S3-based video cards with VESA 1.2 BIOS SeeAlso: AX=D001h"S3VBE",AX=D002h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"Top
INT 10 - S3VBE/Core2.0 v3.00+ - GET ACTIVE OPTIONS AX = D001h Return: AX = FFFFh if supported BX = currently active options (see #00222) SeeAlso: AX=D000h"S3VBE",AX=D002h"S3VBE" Bitfields for S3VBE options: Bit(s) Description (Table 00222) 0 VESA VBE v2.0 extensions enabled 1 linear frame buffer enabled 2 low-resolution video mode support enabled 8 never clear video memory during VBE mode set (v3.10+) ---debug options--- 12 report VBE version 1.2 (v3.10+) 13 always fail AX=4F0Ah (v3.10+) 14 don't copy video mode list (v3.12+) SeeAlso: #00216Top
INT 10 - S3VBE/Core2.0 v3.00+ - SET ACTIVE OPTIONS AX = D002h BX = new active options (see #00222) Return: AX = FFFFh if supported SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE"Top
INT 10 U - S3VBE/Core2.0 v3.10+ - GET VBE/Core CAPABILITIES AX = D003h Return: AX = FFFFh if supported BX = capabilities bit 0: SpeedUp = activate/deactivate linear addressing at A0000h for VBE functions 04h/05h SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE",AX=D004h"S3VBE",AX=D005h"S3VBE"Top
INT 10 U - S3VBE/Core2.0 v3.10+ - ACTIVATE SPEED-UP AX = D004h Return: AX = FFFFh if supported BX = status 0000h SpeedUp activated 0001h SpeedUp not possible (wrong memory organization for mode) 0002h SpeedUp not possible (linear frame buffer active) Note: called by S3 SpeedUp (see AX=C000h) SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"Top
INT 10 U - S3VBE/Core2.0 v3.10+ - DEACTIVATE SPEED-UP AX = D005h Return: AX = FFFFh if supported BX = status 0000h SpeedUp deactivated 0001h SpeedUp not possible (wrong memory organization for mode) 0002h SpeedUp not possible (linear frame buffer active) Notes: called by S3 SpeedUp (see AX=C000h) functions 06h-FFh (e.g. AX=D006h-D0FFh) are considered reserved by v3.10+ and return AX=5555h SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D004h"S3VBE"Top
INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ??? AH = D1h AL = 01h Return: ??? Note: called by AH=D0h SeeAlso: AH=D0h,AH=D4hTop
INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ??? AH = D4h AL = 29h Return: ??? Note: called by AH=D0h SeeAlso: AH=D0h,AH=D1hTop
INT 10 - Netroom SCRNCLK - ??? AH = D5h ??? Return: ??? Program: SCRNCLK is a "cloaked" screen accelerator included with NetroomTop
INT 10 - TSRUNIT v1.10 - INSTALLATION CHECK AX = DAADh BX = check signature (different for each TSR) CX = 0000h Return: CX = return signature (nonzero) if installed ES = program segment prefix Program: TSRUNIT is a Turbo Pascal unit for creating TSRs by Nir SoferTop
INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA AX = DFA5h Return: AX = BDBFh if supported ES:DI -> ??? data area BX = ES SeeAlso: AX=BFA0hTop
INT 10 - VIDEO - IBM "Private" Function AH = EEh SeeAlso: INT 13/AH=FFh"IBM"Top
INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE AH = EFh Return: DL = video adapter type 00h original Hercules 01h Hercules Plus (port 03BAh reads x001xxxxx) 02h Hercules InColor (port 03BAh reads x101xxxxx) FFh not a Hercules-compatible card (port 03BAh bit 7 not pulsing) DH = memory mode byte 00h "half" mode 01h "full" mode FFh not a Hercules-compatible card Program: MSHERC.COM/QBHERC.COM is a support program for the Microsoft Quick languages which makes their graphics libraries compatible with a Hercules card by adding video modes 08h and 88h, and supporting text in the new graphics modes. Notes: while in mode 08h or 88h, INT 10 supports the Hercules card much like a CGA. MSHERC performs an installation check by setting DL=FFh and testing whether it has been changed on return, which causes it to reinstall itself when no HGC is present (or HGC emulation has temporarily been disabled); a better installation check would be to use DX=80FFh and check whether DX has been changed reportedly returns DH=00h on some not-entirely-Hercules-compatible cards Index: installation check;MSHERCTop
INT 10 - EGA Register Interface Library - READ ONE REGISTER AH = F0h BL = register number BH = 00h DX = group index (see #00223) Return: BL = data Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others; it is used for software virtualization of write-only registers on an EGA video adapter, so that multiple programs may peacefully coexist without clobbering each other's display settings SeeAlso: AH=F1h"EGA",AH=F2h"EGA",AH=FAh"EGA",INT 2F/AX=BC00h (Table 00223) Values for group index: Pointer/data chips 00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes 08h Sequencer (5 registers) 3C4h 10h Graphics Controller (9 registers) 3CEh 18h Attribute Controller (20 registers) 3C0h Single registers 20h Miscellaneous Output register 3C2h 28h Feature Control register (3BAh mono modes, 3DAh color modes) 30h Graphics 1 Position register 3CCh 38h Graphics 2 Position register 3CAhTop
INT 10 - VHRBIOS.SYS - INSTALLATION CHECK
AH = F0h
Return: BX = 4F4Bh ('OK')
Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
black&white A4/portrait monitor
SeeAlso: AH=F1h"VHRBIOS.SYS",AH=F2h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS"
SeeAlso: AH=96h"VHRBIOS.SYS"
Top
INT 10 - EGA Register Interface Library - WRITE ONE REGISTER AH = F1h DX = group index (see #00223) if single register: BL = value to write otherwise BL = register number BH = value to write Return: BL = data Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others SeeAlso: AX=7F05h,AH=F0h"EGA",AH=F3h"EGA",AH=FAh"EGA"Top
INT 10 - VHRBIOS.SYS - SET REVERSE VIDEO AH = F1h AL = new video state (bit 5 set for black text on white, clear for white on black) Return: ??? Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F3h"VHRBIOS.SYS"Top
INT 10 - EGA Register Interface Library - READ REGISTER RANGE AH = F2h CH = starting register number CL = number of registers (>1) DX = group index (00h,08h,10h,18h) (see #00223) ES:BX -> buffer, CL bytes Return: nothing Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others SeeAlso: AH=F0h"EGA",AH=F3h"EGA",AH=FAh"EGA"Top
INT 10 - VHRBIOS.SYS - ??? AH = F2h Return: ??? Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS"Top
INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE AH = F3h CH = starting register CL = number of registers (>1) DX = group index (00h,08h,10h,18h) (see #00223) ES:BX -> buffer, CL bytes Return: nothing Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others SeeAlso: AX=7F05h,AH=F1h"EGA",AH=F2h"EGA",AH=F4h"EGA"Top
INT 10 - VHRBIOS.SYS - SWITCH BETWEEN DUAL MONITORS??? AH = F3h Return: ??? Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS",AH=F6h"VHRBIOS.SYS"Top
INT 10 - EGA Register Interface Library - READ REGISTER SET AH = F4h CX = number of registers to read (>1) ES:BX -> table of register records (see #00224) Return: register values in table filled in Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others SeeAlso: AH=F0h"EGA",AH=F2h"EGA",AH=F5h"EGA" Format of EGA RIL entries in table of register records: Offset Size Description (Table 00224) 00h WORD group index Pointer/data chips 00h CRTC (3B4h mono modes, 3D4h color modes) 08h Sequencer 3C4h 10h Graphics Controller 3CEh 18h Attribute Controller 3C0h Single registers 20h Miscellaneous Output register 3C2h 28h Feature Control register (3BAh mono modes, 3DAh color) 30h Graphics 1 Position register 3CCh 38h Graphics 2 Position register 3CAh 02h BYTE register number (0 for single registers) 03h BYTE register valueTop
INT 10 - VHRBIOS.SYS - GET VERSION AH = F4h Return: AX = driver version (AH = major, AL = minor) Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F5h"VHRBIOS.SYS"Top
INT 10 - EGA Register Interface Library - WRITE REGISTER SET AH = F5h CX = number of registers to write (>1) ES:BX -> table of records (see #00224) Return: nothing Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others SeeAlso: AX=7F05h,AH=F1h"EGA",AH=F3h"EGA",AH=F4h"EGA"Top
INT 10 - VHRBIOS.SYS - GET VENDOR ID AH = F5h Return: AXBX = vendor ID (4D44h:5349h = 'MDSI' for Micro Display Systems Inc.) Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS",AH=F6h"VHRBIOS.SYS"Top
INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS AH = F6h Return: nothing Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and others SeeAlso: AH=F5h"EGA",AH=F7h"EGA"Top
INT 10 - VHRBIOS.SYS - GET INFO AH = F6h AL = what to get 00h device driver state Return: AX = device driver state 01h video mode info Return: AL = video mode DH = screen height in rows DL = screen width in columns Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" black&white A4/portrait monitor SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS",AH=96h"VHRBIOS.SYSTop
INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE AH = F7h DX = port number Pointer/data chips 00h CRTC (3B4h mono modes, 3D4h color modes) 08h Sequencer 3C4h 10h Graphics Controller 3CEh 18h Attribute Controller 3C0h Single registers 20h Miscellaneous Output register 3C2h 28h Feature Control register (3BAh mono modes, 3DAh color modes) 30h Graphics 1 Position register 3CCh 38h Graphics 2 Position register 3CAh ES:BX -> table of one-byte entries, one byte to be written to each register Return: nothing Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others SeeAlso: AH=F0h"EGA",AH=F6h"EGA"Top
INT 10 - EGA Register Interface Library - INTERROGATE DRIVER AH = FAh BX = 0000h Return: BX = 0000h if RIL driver not present ES:BX -> EGA Register Interface version number, if present: byte 0 = major release number byte 1 = minor release number Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2 compatibility box, and others SeeAlso: AH=F0h"EGA",AH=F6h"EGA",INT 2F/AX=BC00hTop
INT 10 - FASTBUFF.COM - INSTALLATION CHECK AH = FAh Return: AX = 00FAh if installed ES = segment of resident code Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David Steiner Index: screen saver;FASTBUFFTop
INT 10 - TopView - GET SHADOW BUFFER AH = FEh ES:DI -> assumed video buffer B800h:0000h color text/CGA graphics, B000h:0000h mono text, or A000h:0000h EGA/VGA graphics (RSIS environments only) Return: ES:DI -> actual video buffer for calling process Desc: Determine the address of the virtual screen to which the program should write instead of the actual video memory; this permits programs to be multitasked without interfering with each other's output, and allows memory managers to move the video memory to permit larger programs to be loaded. Notes: if no multitasker or RSIS-compliant environment is installed, ES:DI is returned unchanged; RSIS is the Relocated Screen Interface Specification for display pages other than 0, use AH=05h and AH=0Fh to determine whether a particular page exists TopView requires a call to AH=FFh to notify it that the screen has changed; DESQview will check for changes itself until the first call to AH=FFh SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview" SeeAlso: INT 21/AH=ECh"DoubleDOS"Top
INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER AH = FFh CX = number of consecutive changed characters ES:DI -> first changed character in shadow buffer Return: nothing Notes: avoid CX=0000h DESQview will discontinue the automatic screen updating initiated by AH=FEh after this call not supported (ignored) by DESQview/X 1.0x SeeAlso: AH=93h,AH=FEhTop
INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS AH = FFh AL = video mode (see #00225) 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: AH=00h,INT 21/AH=FFh"GO32" (Table 00225) Values for GO32 video mode number: 00h 80x25 text 01h default text 02h CXxDX text 03h biggest text 04h 320x200 graphics 05h default graphics 06h CXxDX graphics 07h biggest non-interlaced graphics 08h biggest graphics Index: video modes;GO32Top
INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
AH = FFh
AL = emulation
43h ('C') CGA emulation
45h ('E') EGA emulation
4Dh ('M') Hercules emulation
56h ('V') VGA emulation
ES:DI -> signature string "Calamity"
Return: VGA switched to suggested mode
SeeAlso: AH=00h,AX=007Fh/BH=00h,AX=007Fh/BH=02h,AX=5F01h
Top
INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP AX = FF00h Return: BL = state 00h not connected 01h connected SeeAlso: AX=FF01h,AX=FF02hTop
INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE AX = FF01h Return: nothing SeeAlso: AX=FF00h,AX=FF02hTop
INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED AX = FF02h Return: ES:DI -> ASCIZ phone number SeeAlso: AX=FF00h,AX=FF01hTop
INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK Desc: automatically generated by the CPU when the AC flag is set, the current privilege level is 3, and a misaligned memory access (WORD not on an even address or DWORD not on a multiple of 4) is made Note: not all V86 monitors allow the AC flag to be set, such as Turbo Debugger 386 SeeAlso: INT 12"CPU"Top
INT 11 - BIOS - GET EQUIPMENT LIST Return: (E)AX = BIOS equipment list word (see #00226,#03215 at INT 4B"Tandy") Note: since older BIOSes do not know of the existence of EAX, the high word of EAX should be cleared before this call if any of the high bits will be tested SeeAlso: INT 4B"Tandy 2000",MEM 0040h:0010h Bitfields for BIOS equipment list: Bit(s) Description (Table 00226) 0 floppy disk(s) installed (number specified by bits 7-6) 1 80x87 coprocessor installed 3-2 number of 16K banks of RAM on motherboard (PC only) number of 64K banks of RAM on motherboard (XT only) 2 pointing device installed (PS) 3 unused (PS) 5-4 initial video mode 00 EGA, VGA, or PGA 01 40x25 color 10 80x25 color 11 80x25 monochrome 7-6 number of floppies installed less 1 (if bit 0 set) 8 DMA support installed (PCjr, Tandy 1400LT) DMA support *not* installed (Tandy 1000's) 11-9 number of serial ports installed 12 game port installed 13 serial printer attached (PCjr) internal modem installed (PC/Convertible) 15-14 number of parallel ports installed ---Compaq, Dell, and many other 386/486 machines-- 23 page tables set so that Weitek coprocessor addressable in real mode 24 Weitek math coprocessor present ---Compaq Systempro--- 25 internal DMA parallel port available 26 IRQ for internal DMA parallel port (if bit 25 set) 0 = IRQ5 1 = IRQ7 28-27 parallel port DMA channel 00 DMA channel 0 01 DMA channel 0 ??? 10 reserved 11 DMA channel 3 Notes: Some implementations of Remote (Initial) Program Loader (RPL/RIPL) don't set bit 0 to indicate a "virtual" floppy drive, although the RPL requires access to its memory image through a faked drive A:. This may have caused problems with releases of DOS 3.3x and earlier, which assumed A: and B: to be invalid drives then and would discard any attempts to access these drives. Implementations of RPL should set bit 0 to indicate a "virtual" floppy. The IBM PC DOS 3.3x-2000 IBMBIO.COM contains two occurences of code sequences like: INT 11h JMP SHORT skip DB 52h,50h,53h; "RPS" skip: OR AX,1 TEST AX,1 While at the first glance this seems to be a bug since it just wastes memory and the condition is always true, this could well be a signature for an applyable patch to stop it from forcing AX bit 0 to be always on. MS-DOS IO.SYS does not contain these signatures, however. BUGs: Some old BIOSes didn't properly report the count of floppy drives installed to the system. In newer systems INT 13h/AH=15h can be used to retrieve the number of floppy drives installed. Award BIOS v4.50G and v4.51PG erroneously set bit 0 even if there are no floppy drives installed; use two calls to INT 13/AH=15h to determine whether any floppies are actually installed SeeAlso: INT 12"BIOS",#03215 at INT 4B"Tandy 2000"Top
INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6 SI = 6A6Ah AH = command (see #00227) AL = SCSI Addressing (see #00228) Return: CF clear if successful DI = 6A6Ah if AH=01h on entry (maybe for all functions???) AH = ??? for command 01h CF set on error AL = error code SeeAlso: INT 21/AX=4402h"ASPI" (Table 00227) Values for SDLP command: 00h SDLP initialization 01h SDLP System Identify 02h simple read sectors 03h simple write sectors 04h simple verify sectors/seek to sector 05h get device size/type 06h ready unit 07h format unit 08h diagnostics 09h rewind 0Ah erase 0Bh write filemarks 0Ch space 0Dh prevent/allow media removal 0Eh load/unload media 0Fh reserved - returns good status 10h set block size 11h write setmark 12h set error level 13h get address of Request Sense Buffer 14h get SDLP error via Request Sense F0h Vendor Unique Function (WD7000-FASST2 only) FDh reset current SCSI HAC FEh get/set current SCSI HAC FFh execute SCSI command Bitfields for SDLP SCSI addressing: Bit(s) Description (Table 00228) 7-6 Host Adapter 5-3 SCSI Target ID 2-0 SCSI Target LUN (logical unit number)Top
INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK AX = 0225h BX = 6900h Return: BL = 23h ES:DI -> ASCIZ "BLNKIT" Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems, Inc. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING AX = 0225h BX = 6901h CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout largest value is 59 minutes (FBACh or 64428) Return: CF clear if successful DI = 6A6Ah (possibly also 6A6Ah for all following functions) AH = ??? CF set on error AL = error code SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE AX = 0225h BX = 6902h Return: CF clear if successful CF set on error AL = error code SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE AX = 0225h BX = 6903h Return: CF clear if successful CF set on error AL = error code SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT AX = 0225h BX = 6904h Return: CF clear if successful BX = timeout (see AX=0225h/BX=6901h) CF set on error AL = error code SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE AX = 0225h BX = 6905h Return: CF clear if successful CF set on error AL = error code SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE AX = 0225h BX = 6906h Return: CF clear if successful CF set on error AL = error code Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems, Inc. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN AX = 0225h BX = 6907h Return: CF clear if successful CF set on error AL = error code SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN AX = 0225h BX = 6908h Return: CF clear if successful CF set on error AL = error code SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h Index: screen saver;Blank-ItTop
INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING AX = 0225h BX = 6909h CL = key scan code (see #00229) Return: CF clear if successful CF set on error AL = error code Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems, Inc. SeeAlso: AX=0225h/BX=6900h Index: screen saver;Blank-It|hotkeys;Blank-It (Table 00229) Values for Blank-It hotkey scan code: 00h No hot key 1Dh Left CTRL 2Ah Left Shift 36h Right Shift 57h F11 58h F12 SeeAlso: #00006Top
INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT AX = 05D7h BX = product ID (0088h) Note: called by the BC++ IDE when an application calls INT 12/AX=05D7h/BX=05D7h SeeAlso: INT 12/AX=05D7h/BX=05D7h Index: installation check;Borland C++ IDETop
INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL AH = 77h AL = subfunction 01h request SFENGINE start Return: AX = 0001h 02h check if SFENGINE started Return: AX = 0000h or 0001h 03h request SFENGINE stop Return: AX = 0001h 04h check if SFENGINE stopped Return: AX = 0000h or 0001h 05h installation check Return: AX = 0001h 06h uninstall??? BX:DX -> return address for successful uninstall??? Return: (at caller's address) AX = 0000h else Return: AX = FFFFh (invalid subfunction) Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0" followed by internal data area??? SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch Index: installation check;RainbowFAX|installation check;SFENGINE Index: uninstall;RainbowFAX|uninstall;SFENGINETop
INT 11 - RainbowFAX v1.3 - SFENGINE API - ??? AH = 78h AL = subfunction 01h set ??? BX = new state for ??? 0000h ??? else ??? Return: AX = 0001h 02h set ??? BX = ??? CX = ??? Return: AX = 0001h 03h set ??? BX = new state for ??? 0000h ??? else ??? Return: AX = 0001h else Return: AX = FFFFh (invalid subfunction) SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7ChTop
INT 11 - RainbowFAX v1.3 - SFENGINE API - ??? AH = 79h AL = subfunction 01h set ??? flag Return: AX = previous state (0000h already set, 0001h clear) 02h clear ??? flag (refer to subfunc 01h) Return: AX = 0001h 03h set ??? flag (different from subfn 02h or 04h) Return: AX = 0001h 04h clear ??? flag (different from subfn 02h or 03h) Return: AX = 0001h else Return: AX = FFFFh (invalid subfunction) SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7ChTop
INT 11 - RainbowFAX v1.3 - SFENGINE API - ??? AH = 7Ah AL = subfunction 01h set ??? flag Return: AX = previous state (0000h already set, 0001h clear) 02h clear ??? flag Return: AX = 0001h 03h set ??? flag (different from subfn 02h) Return: AX = 0001h else Return: AX = FFFFh (invalid subfunction) SeeAlso: AH=77h,AH=78h,AH=79h,AH=7ChTop
INT 11 - RainbowFAX v1.3 - SFENGINE API - SET ??? FLAG AX = 7C01h Return: AX = 0001h SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C02h,AX=7C03hTop
INT 11 - RainbowFAX v1.3 - SFENGINE API - CLEAR ??? FLAG AX = 7C02h Return: AX = 0001h SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C01h,AX=7C03hTop
INT 11 - RainbowFAX v1.3 - SFENGINE API - UNSUPPORTED FUNCTIONS AX = 7C03h-7CFFh Return: AX = FFFFh SeeAlso: AH=77h,AX=7C01h,AX=7C02hTop
INT 11 - BNU FOSSIL - INSTALLATION CHECK AH = BCh DX = 1954h Return: AX = 1954h ES:DX -> entry point of driver (instead of INT 14) SeeAlso: INT 14/AH=04h"FOSSIL"Top
INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND AH = FFh SI = 6A6Ah AL = SCSI Addressing (see #00230) CX = bytes of data to be transmitted (max FFF0h) DH = 00h DL = length of SCSI Command Descriptor Block DS:DI -> SCSI Command Descriptor Block ES:BX -> data buffer Return: CF set on error AL = error code CF clear if successful Note: because of busmaster operations with WD7000FASST avoid accessing video memory directly; check 386 memory manager for VDS support. The WD7000XTAT works with programmed IO and does not have this limitation. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h Bitfields for SDLP SCSI addressing: Bit(s) Description (Table 00230) 2-0 SCSI Target LUN (logical unit number) 5-3 SCSI Target ID 7 write flag, set for write operations, clear otherwiseTop
INT 11 - BACK&FORTH (before v1.62) API AX = FFFEh CX = FFFEh BX = function 00h installation check Return: AX = installation state 0001h BNFHIGH and BNFLOW both loaded 0003h only BNFHIGH loaded else neither loaded 01h ??? Return: DX:AX -> ??? 02h ??? 03h ??? 04h ??? 05h ??? switches current PSP segment and stack if BNFLOW has not yet announced itself installed 06h ??? Return: AX = ??? SeeAlso: INT 12/AX=FFFEh Index: installation check;BACK&FORTHTop
INT 12 - BIOS - GET MEMORY SIZE Return: AX = kilobytes of contiguous memory starting at absolute address 00000h Note: this call returns the contents of the word at 0040h:0013h; in PC and XT, this value is set from the switches on the motherboard SeeAlso: INT 11"BIOS",INT 2F/AX=4A06h,INT 4C"Tandy 2000",MEM 0040h:0013hTop
INT 12 - CPU-generated (Pentium +) - MACHINE CHECK EXCEPTION Notes: Intel documents this interrupt as CPU model-dependent for current Pentium processors, the reason for the machine check exception may be read from model-specific registers 00h and 01h (described, for example, in Christian Ludloff's 4P package) for Pentium Pro/II processors, the reason may be read from the MCG_STATUS MSR (see MSR 0000017Ah) this exception is enabled by bit 6 of CR4 SeeAlso: INT 11"CPU",MSR 00000000h,MSR 00000001h,MSR 0000017AhTop
INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK CX = 1806h Return: AX = kilobytes of contiguous memory starting at absolute address 00000h CX = 1960h if installed Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows accented characters and box drawing on standard QWERTY keyboards; it also provides break-to-DOS and screen blanking capabilities SeeAlso: INT 14/AX=AA01h Index: screen saver;KEYBUITop
INT 12 - PARKER v2.0+ - INSTALLATION CHECK CX = 1807h Return: AX = kilobytes of contiguous memory starting at absolute address 00000h CX = 1961h if installed Program: PARKER is an optionally-resident hard disk parking program by Johan ZwiekhorstTop
INT 12 U - Borland C++ IDE - INSTALLATION CHECK AX = 05D7h (1495d) BX = 05D7h Note: the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded SeeAlso: INT 11/AX=05D7hTop
INT 12 C - CPI-standard virus - "FRIEND" CHECK AX = 4350h BX = 4920h CX = AB46h DX = 554Eh Return: if friendly (not to be infected) CX:DX -> ASCIZ identity code (changes yearly) SeeAlso: INT 13/AX=EC00h"VIRUS",INT 13/AX=5001h,INT 21/AX=0B56hTop
INT 12 - Back&Forth v1.62+ - API AX = FFFEh CX = FFFEh BX = function 00h installation check Return: AX = 0001h installed else not loaded 01h (reserved) 02h build program ID list (shareware Back&Forth) ES:DI -> buffer of at least 100 bytes, to be filled with words Return: AX = number of programs defined ES:DI buffer filled with AX words 02h get memory statistics (Back&Forth Professional) Return: AX = available swap memory, KBytes BX = maximum task size, KBytes DX = fixed overhead per task, excluding video/macro storage 03h switch to specified task (task need not be open yet) DX = two-letter program ID Return: AX = status 0000h if task undefined 0001h task switch will occur when safe 04h (reserved) 05h (reserved) 06h get version (documented only for Back&Forth Professional) Return: AX = version * 100 (v1.71 = 00ABh) 07h spawn program (Back&Forth Professional only???) ES:DI -> BF_SPAWN record (see #00232) Return: AX = status 0000h if no task handles free 0001h spawn will occur when safe 08h get open tasks (documented only for Back&Forth Professional) ES:DI -> task info buffer (see #00231,#00233) Return: AX = number of open tasks (max 20) Note: the supplied buffer must be large enough to hold 21 task entries 09h (reserved) ---Back&Forth Professional--- 0Ah get active clipboard filename Return: DX:AX -> ASCIZ clipboard filename 0Bh get active task number AX = active task number (00h-13h) BX = number of tasks allocated DX = maximum number of tasks 0Ch (reserved) 0Dh (reserved) 0Eh (reserved) 0Fh stuff string into keyboard buffer ES:DI -> ASCIZ string to be stuffed Return: nothing 10h check if in graphics mode Return: AX = state 0000h color text mode 0004h mono text mode FFFFh graphics mode 11h get Back&Forth Professional user number Return: AX = user number (0000h-00FFh) 12h switch task by task number DX = task number Return: AX = status 0000h attempted to switch to active task 0001h task switch will occur when safe FFFFh invalid task number 13h delete (kill) task DX = task number Return: AX = status 0000h attempted to delete the active task 0001h successfully deleted FFFFh invalid task number Note: the active task number will change if the deleted task was lower in the task list than the active task 14h get next available task handle Return: AX = next available task handle FFFFh if task table is full Program: Back & Forth is a task switcher by Progressive Solutions, Inc. SeeAlso: INT 11/AX=FFFEh Index: installation check;BACK&FORTH Format of Back&Forth task info buffer: Offset Size Description (Table 00231) 00h 21 BYTEs ASCIZ task name 15h BYTE hotkey shift state (as for INT 16/AH=02h) 16h WORD hotkey scan code (see also #00006) 18h WORD program ID Index: hotkeys;Back&Forth SeeAlso: #00232,#00233 Format of Back&Forth Professional BF_SPAWN record: Offset Size Description (Table 00232) 00h 21 BYTEs task description 15h BYTE flag: disable hotkeys 16h WORD environment size in bytes 18h BYTE hotkey shift flags 19h WORD hotkey scancode 1Bh WORD maximum number of EMS pages 1Dh WORD required memory in KBytes 1Fh 3 BYTEs DESQview-style two-letter program ID 22h 13 BYTEs base name of program to be run (no path or extension) 2Fh 66 BYTEs directory from which to start program 71h 66 BYTEs initial current directory for program SeeAlso: #00231,#00233 Format of Back&Forth Professional BF_TASK record: Offset Size Description (Table 00233) 00h DWORD Unix-style task start time (seconds since 1970/1/1) 04h 21 BYTEs task description 19h DWORD elapsed time in task (seconds) 1Dh WORD task ID 1Fh BYTE task hotkey keyboard flags 20h WORD task hotkey scan code (see also #00006) 22h DWORD time task was suspended/exited 26h WORD task handle SeeAlso: #00231,#00232Top
INT 13 - DISK - RESET DISK SYSTEM AH = 00h DL = drive (if bit 7 is set both hard disks and floppy disks reset) Return: AH = status (see #00234) CF clear if successful (returned AH=00h) CF set on error Note: forces controller to recalibrate drive heads (seek to track 0) for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems, both the master drive and the slave drive respond to the Reset function that is issued to either drive SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4D/AH=00h"TI Professional" SeeAlso: INT 56"Tandy 2000",MEM 0040h:003EhTop
INT 13 - DISK - GET STATUS OF LAST OPERATION AH = 01h DL = drive (bit 7 set for hard disk) Return: CF clear if successful (returned status 00h) CF set on error AH = status of previous operation (see #00234) Note: some BIOSes return the status in AL; the PS/2 Model 30/286 returns the status in both AH and AL SeeAlso: AH=00h,INT 4D/AH=01h,MEM 0040h:0041h,MEM 0040h:0074h (Table 00234) Values for disk operation status: 00h successful completion 01h invalid function in AH or invalid parameter 02h address mark not found 03h disk write-protected 04h sector not found/read error 05h reset failed (hard disk) 05h data did not verify correctly (TI Professional PC) 06h disk changed (floppy) 07h drive parameter activity failed (hard disk) 08h DMA overrun 09h data boundary error (attempted DMA across 64K boundary or >80h sectors) 0Ah bad sector detected (hard disk) 0Bh bad track detected (hard disk) 0Ch unsupported track or invalid media 0Dh invalid number of sectors on format (PS/2 hard disk) 0Eh control data address mark detected (hard disk) 0Fh DMA arbitration level out of range (hard disk) 10h uncorrectable CRC or ECC error on read 11h data ECC corrected (hard disk) 20h controller failure 31h no media in drive (IBM/MS INT 13 extensions) 32h incorrect drive type stored in CMOS (Compaq) 40h seek failed 80h timeout (not ready) AAh drive not ready (hard disk) B0h volume not locked in drive (INT 13 extensions) B1h volume locked in drive (INT 13 extensions) B2h volume not removable (INT 13 extensions) B3h volume in use (INT 13 extensions) B4h lock count exceeded (INT 13 extensions) B5h valid eject request failed (INT 13 extensions) B6h volume present but read protected (INT 13 extensions) BBh undefined error (hard disk) CCh write fault (hard disk) E0h status register error (hard disk) FFh sense operation failed (hard disk) SeeAlso: #M0022Top
INT 13 - DISK - READ SECTOR(S) INTO MEMORY AH = 02h AL = number of sectors to read (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> data buffer Return: CF set on error if AH = 11h (corrected ECC error), AL = burst length CF clear if successful AH = status (see #00234) AL = number of sectors transferred (only valid if CF set for some BIOSes) Notes: errors on a floppy may be due to the motor failing to spin up quickly enough; the read should be retried at least three times, resetting the disk with AH=00h between attempts most BIOSes support "multitrack" reads, where the value in AL exceeds the number of sectors remaining on the track, in which case any additional sectors are read beginning at sector 1 on the following head in the same cylinder; the MSDOS CONFIG.SYS command MULTITRACK (or the Novell DOS DEBLOCK=) can be used to force DOS to split disk accesses which would wrap across a track boundary into two separate calls the IBM AT BIOS and many other BIOSes use only the low four bits of DH (head number) since the WD-1003 controller which is the standard AT controller (and the controller that IDE emulates) only supports 16 heads AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more than 1024 cylinders by placing bits 10 and 11 of the cylinder number into bits 6 and 7 of DH under Windows95, a volume must be locked (see INT 21/AX=440Dh/CX=084Bh) in order to perform direct accesses such as INT 13h reads and writes all versions of MS-DOS (including MS-DOS 7 [Windows 95]) have a bug which prevents booting on hard disks with 256 heads (FFh), so many modern BIOSes provide mappings with at most 255 (FEh) heads some cache drivers flush their buffers when detecting that DOS is bypassed by directly issuing INT 13h from applications. A dummy read can be used as one of several methods to force cache flushing for unknown caches (e.g. before rebooting). BUGS: When reading from floppies, some AMI BIOSes (around 1990-1991) trash the byte following the data buffer, if it is not arranged to an even memory boundary. A workaround is to either make the buffer word aligned (which may also help to speed up things), or to add a dummy byte after the buffer. MS-DOS may leave interrupts disabled on return from this function. Apparently some BIOSes or intercepting resident software have bugs that may destroy DX on return or not properly set the Carry flag. At least some Microsoft software frames calls to this function with PUSH DX, STC, INT 13h, STI, POP DX. on the original IBM AT BIOS (1984/01/10) this function does not disable interrupts for harddisks (DL >= 80h). On these machines the MS-DOS/ PC DOS IO.SYS/IBMBIO.COM installs a special filter to bypass the buggy code in the ROM (see CALL F000h:211Eh) SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",AH=42h"IBM" SeeAlso: INT 21/AX=440Dh/CX=084Bh,INT 4D/AH=02hTop
INT 13 - DISK - WRITE DISK SECTOR(S) AH = 03h AL = number of sectors to write (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> data buffer Return: CF set on error CF clear if successful AH = status (see #00234) AL = number of sectors transferred (only valid if CF set for some BIOSes) Notes: errors on a floppy may be due to the motor failing to spin up quickly enough; the write should be retried at least three times, resetting the disk with AH=00h between attempts most BIOSes support "multitrack" writes, where the value in AL exceeds the number of sectors remaining on the track, in which case any additional sectors are written beginning at sector 1 on the following head in the same cylinder; the CONFIG.SYS command MULTITRACK can be used to force DOS to split disk accesses which would wrap across a track boundary into two separate calls the IBM AT BIOS and many other BIOSes use only the low four bits of DH (head number) since the WD-1003 controller which is the standard AT controller (and the controller that IDE emulates) only supports 16 heads AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more than 1024 cylinders by placing bits 10 and 11 of the cylinder number into bits 6 and 7 of DH under Windows95, an application must issue a physical volume lock on the drive via INT 21/AX=440Dh before it can successfully write to the disk with this function SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",AH=43h"IBM" SeeAlso: INT 21/AX=440Dh"DOS 3.2+",INT 4D/AH=03hTop
INT 13 - DISK - VERIFY DISK SECTOR(S) AH = 04h AL = number of sectors to verify (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> data buffer (PC,XT,AT with BIOS prior to 1985/11/15) Return: CF set on error CF clear if successful AH = status (see #00234) AL = number of sectors verified Notes: errors on a floppy may be due to the motor failing to spin up quickly enough (timeout error 80h); the write should be retried at least three times, resetting the disk with AH=00h between attempts on floppys, the operation should also be retried on media change (06h) detection. this function does not compare the disk with memory, it merely checks whether the sector's stored CRC matches the data's actual CRC the IBM AT BIOS and many other BIOSes use only the low four bits of DH (head number) since the WD-1003 controller which is the standard AT controller (and the controller that IDE emulates) only supports 16 heads AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more than 1024 cylinders by placing bits 10 and 11 of the cylinder number into bits 6 and 7 of DH BUG: some Epson ROM BIOSes sometimes have problems properly handling this function. The workaround is to reset the disk (INT 13/AH=00h) before the call. SeeAlso: AH=02h,AH=44h,INT 4D/AH=04h,INT 4D/AH=06hTop
INT 13 - FLOPPY - FORMAT TRACK AH = 05h AL = number of sectors to format CH = track number DH = head number DL = drive number ES:BX -> address field buffer (see #00235) Return: CF set on error CF clear if successful AH = status (see #00234) Notes: on AT or higher, call AH=17h first the number of sectors per track is read from the diskette parameter table pointed at by INT 1E BUG: some old Compaq BIOSes have a bug when attempting to call this function from Windows Standard Mode with EMM386 loaded. A possible workaround is to call this function from Real Mode e.g. through DPMI function "Call Real Mode function with FAR return" (see INT 31/AX=0301h). SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E Format of floppy format address field buffer entry (one per sector in track): Offset Size Description (Table 00235) 00h BYTE track number 01h BYTE head number (0-based) 02h BYTE sector number 03h BYTE sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)Top
INT 13 - FIXED DISK - FORMAT TRACK AH = 05h AL = interleave value (XT-type controllers only) ES:BX -> 512-byte format buffer the first 2*(sectors/track) bytes contain F,N for each sector F = sector type 00h for good sector 20h to unassign from alternate location 40h to assign to alternate location 80h for bad sector N = sector number CH = cylinder number (bits 8,9 in high bits of CL) CL = high bits of cylinder number (bits 7,6) DH = head DL = drive Return: CF set on error CF clear if successful AH = status code (see #00234) Notes: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more than 1024 cylinders by placing bits 10 and 11 of the cylinder number into bits 6 and 7 of DH for XT-type controllers on an AT or higher, AH=0Fh should be called first the IBM AT BIOS and many other BIOSes use only the low four bits of DH (head number) since the WD-1003 controller which is the standard AT controller (and the controller that IDE emulates) only supports 16 heads not all controller support sector types 20h and 40h under Windows95, an application must issue a physical volume lock on the drive via INT 21/AX=440Dh before it can successfully write to the disk with this function SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1AhTop
INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND AH = 05h DL = hard drive ID ES:BX -> mode select data (see #00236) Return: CF set on error CF clear if successful AH = status code (see #00234) Notes: this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to format a SCSI disk with the desired parameters the mode select data below is from the SCSI-1 specification the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h Format of Future Domain SCSI mode select data: Offset Size Description (Table 00236) 00h BYTE number of bytes of remaining data (12 + vendor unique length) 01h BYTE reserved (0) 02h BYTE medium type (0 for hard disk) 03h BYTE reserved (0) 04h BYTE block descriptor length (8) 05h BYTE density code (0 for hard disk) 06h 3 BYTEs (big-endian) number of blocks (000000h for entire disk) 09h BYTE reserved (0) 0Ah 3 BYTEs (big-endian) block length (512 standard, or 256) 0Dh ??? vendor-specific parameter bytes (optional)Top
INT 13 - 2M - FORMAT TRACK
AX = 057Fh
SI = 324Dh ("2M")
CH = track number
DH = head number
DL = drive number
ES:BX -> boot sector of future 2M diskette
Return: CF set on error
CF clear if successful
AH = status (see #00234)
Program: 2M is a TSR developed by Ciriaco Garc¡a de Celis to support
non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
InstallCheck: must search for a "CiriSOFT:2M:1.3" or "CiriSOFT:2MX:3.0" or
similar (recomended ":2M:", ":2MX:", or ":2MB:" substrings) in the
CiriSOFT TSR interface
Notes: it is not necessary to call AH=17h or AH=18h first (will be ignored)
the diskette format must always begin on cylinder 0 head 0
the boot sector can be obtained from an already-formatted 2M diskette
(by calling AH=02h with head number 00h in 2M v1.x and with head
number 80h for 2M v2+)
since 2M v2.0, the BOOT sector is emulated using the first physical
sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
FAT1) of 2M, in order to read the SuperBOOT code, head number must be
80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
This lets diskcopy programs format 2M target diskettes copying
SuperBOOT code. If the target diskette is already 2MF formatted
(containing boot code) this trick it is not necessary.
when using STV technology (offset 65 of boot sector equal to 1) it is
necessary to write the full track before formatting (except track 0
side 0) to complete the format and skip future CRC errors on read; in
track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
may do a format-write-verify sequential phases to improve performance
SeeAlso: AH=05h"FLOPPY",AH=18h/CX=5055h,INT 2F"CiriSOFT"
Top
INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT) AH = 06h AL = interleave value CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive Return: AH = status code (see #00234) Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more than 1024 cylinders by placing bits 10 and 11 of the cylinder number into bits 6 and 7 of DH SeeAlso: AH=05h"FIXED",AH=07h"FIXED"Top
INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING AH = 06h AL = interleave (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique) DL = hard drive ID DH = defect list info (see #00237) ES:BX -> defect table A, B or C (see #00238,#00239,#00240) Return: CF set on error CF clear if successful AH = status code (see #00234) Notes: block addresses must be in ascending order (for table B, cylinder is most significant, byte from index least significant; for table C, cylinder is most significant, sector number least significant) table B defect bytes from index of FFFFFFFFh indicates that the entire track shall be reassigned table C defect sector number of FFFFFFFFh indicates that the entire track shall be reassigned the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI" Bitfields for Future Domain SCSI defect list info: Bit(s) Description (Table 00237) 7-5 drive LUN 4 defect list is available 3 defect list is complete (erase drive's defect list) 2-0 defect table format (000=use defect table A, 100=use defect table B, 101=use defect table C) Format of Future Domain SCSI defect table A: Offset Size Description (Table 00238) 00h WORD number of bytes remaining in table 02h BYTE reserved (0) 03h BYTE reserved (0) 04h WORD (big-endian) defect list length (4*number of defects) 06h 4 DWORDs (big-endian) defect block addresses Format of Future Domain SCSI defect table B: Offset Size Description (Table 00239) 00h WORD number of bytes remaining in table 02h BYTE reserved (0) 03h BYTE reserved (0) 04h WORD (big-endian) defect list length (8*number of defects) 06h 8N BYTEs defect list [array] (see #00241) Format of Future Domain SCSI defect table C: Offset Size Description (Table 00240) 00h WORD number of bytes remaining in table 02h BYTE reserved (0) 03h BYTE reserved (0) 04h WORD (big-endian) defect list length (8*number of defects) 06h 8N BYTEs defect list [array] (see #00241) Format of Future Domain SCSI defect list entry: Offset Size Description (Table 00241) 00h 3 BYTEs (big-endian) cylinder number of defect 03h BYTE head number of defect 04h DWORD (big-endian) defect bytes from indexTop
INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES AH = 06h Return: AH = status code (see #00234) CF clear if successful AL = first drive supported (80h nonconcurrent operation, 81h concurrent operation) CF set on error Desc: determine the number of the first supported SCSI drive Note: the return value is 80h when two SCSI drives are supported, 81h if only one SCSI drive is installed SeeAlso: AH=08h"PC",#00732 at INT 1A/AX=B102hTop
INT 13 - V10DISK.SYS - READ DELETED SECTORS AH = 06h AL = number of sectors CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive ES:BX -> buffer Return: AH = status code (see #00234) Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies SeeAlso: AH=02h,AH=07h"V10DISK.SYS"Top
INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT) AH = 07h AL = interleave value (XT only) ES:BX = 512-byte format buffer (see AH=05h) CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive Return: AH = status code (see #00234) Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more than 1024 cylinders by placing bits 10 and 11 of the cylinder number into bits 6 and 7 of DH SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1AhTop
INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE AH = 07h AL = interleave (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique) DL = hard drive ID Return: CF set on error CF clear if successful AH = status code (see #00234) SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"Top
INT 13 - V10DISK.SYS - WRITE DELETED SECTORS AH = 07h AL = number of sectors CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive ES:BX -> buffer Return: AH = status code (see #00234) Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies SeeAlso: AH=03h,AH=06h"V10DISK.SYS"Top
INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI) AH = 08h DL = drive (bit 7 set for hard disk) ES:DI = 0000h:0000h to guard against BIOS bugs Return: CF set on error AH = status (07h) (see #00234) CF clear if successful AH = 00h AL = 00h on at least some BIOSes BL = drive type (AT/PS2 floppies only) (see #00242) CH = low eight bits of maximum cylinder number CL = maximum sector number (bits 5-0) high two bits of maximum cylinder number (bits 7-6) DH = maximum head number DL = number of drives ES:DI -> drive parameter table (floppies only) Notes: may return successful even though specified drive is greater than the number of attached drives of that type (floppy/hard); check DL to ensure validity for systems predating the IBM AT, this call is only valid for hard disks, as it is implemented by the hard disk BIOS rather than the ROM BIOS the IBM ROM-BIOS returns the total number of hard disks attached to the system regardless of whether DL >= 80h on entry. Toshiba laptops with HardRAM return DL=02h when called with DL=80h, but fail on DL=81h. The BIOS data at 40h:75h correctly reports 01h. may indicate only two drives present even if more are attached; to ensure a correct count, one can use AH=15h to scan through possible drives Reportedly some Compaq BIOSes with more than one hard disk controller return only the number of drives DL attached to the corresponding controller as specified by the DL value on entry. However, on Compaq machines with "COMPAQ" signature at F000h:FFEAh, MS-DOS/PC DOS IO.SYS/IBMBIO.COM call INT 15/AX=E400h and INT 15/AX=E480h to enable Compaq "mode 2" before retrieving the count of hard disks installed in the system (DL) from this function. the maximum cylinder number reported in CX is usually two less than the total cylinder count reported in the fixed disk parameter table (see INT 41h,INT 46h) because early hard disks used the last cylinder for testing purposes; however, on some Zenith machines, the maximum cylinder number reportedly is three less than the count in the fixed disk parameter table. for BIOSes which reserve the last cylinder for testing purposes, the cylinder count is automatically decremented on PS/1s with IBM ROM DOS 4, nonexistent drives return CF clear, BX=CX=0000h, and ES:DI = 0000h:0000h machines with lost CMOS memory may return invalid data for floppy drives. In this situation CF is cleared, but AX,BX,CX,DX,DH,DI, and ES contain only 0. At least under some circumstances, MS-DOS/ PC DOS IO.SYS/IBMBIO.COM just assumes a 360 KB floppy if it sees CH to be zero for a floppy. the PC-Tools PCFORMAT program requires that AL=00h before it will proceed with the formatting if this function fails, an alternative way to retrieve the number of floppy drives installed in the system is to call INT 11h. In fact, the MS-DOS/PC-DOS IO.SYS/IBMBIO.COM attempts to get the number of floppy drives installed from INT 13/AH=08h, when INT 11h AX bit 0 indicates there are no floppy drives installed. In addition to testing the CF flag, it only trusts the result when the number of sectors (CL preset to zero) is non-zero after the call. BUGS: several different Compaq BIOSes incorrectly report high-numbered drives (such as 90h, B0h, D0h, and F0h) as present, giving them the same geometry as drive 80h; as a workaround, scan through disk numbers, stopping as soon as the number of valid drives encountered equals the value in 0040h:0075h a bug in Leading Edge 8088 BIOS 3.10 causes the DI,SI,BP,DS, and ES registers to be destroyed some Toshiba BIOSes (at least before 1995, maybe some laptops??? with 1.44 MB floppies) have a bug where they do not set the ES:DI vector even for floppy drives. Hence these registers should be preset with zero before the call and checked to be non-zero on return before using them. Also it seems these BIOSes can return wrong info in BL and CX, as S/DOS 1.0 can be configured to preset these registers as for an 1.44 MB floppy. the PS/2 Model 30 fails to reset the bus after INT 13/AH=08h and INT 13/AH=15h. A workaround is to monitor for these functions and perform a transparent INT 13/AH=01h status read afterwards. This will reset the bus. The MS-DOS 6.0 IO.SYS takes care of this by installing a special INT 13h interceptor for this purpose. AD-DOS may leave interrupts disabled on return from this function. Some Microsoft software explicitly sets STI after return. SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E SeeAlso: INT 41"HARD DISK 0" (Table 00242) Values for diskette drive type: 01h 360K 02h 1.2M 03h 720K 04h 1.44M 05h ??? (reportedly an obscure drive type shipped on some IBM machines) 2.88M on some machines (at least AMI 486 BIOS) 06h 2.88M 10h ATAPI Removable Media DeviceTop
INT 13 - V10DISK.SYS - SET FORMAT AH = 08h AL = number of sectors CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive Return: AH = status code (see #00234) Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies Note: details not available SeeAlso: AH=03h,AH=06h"V10DISK.SYS"Top
INT 13 - SecureDrive - INSTALLATION CHECK AX = 08000h DL = F0h Return: AX = EDCBh for version 1.0-1.2 AX = EDCCh for version 1.3 CX = code segment DX = data address within code segment Program: SecureDrive by Mike Ingle <mikeingle@delphi.com> allows you to create an encrypted partition on your harddisk.Top
INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS) AH = 09h DL = drive (80h for first, 81h for second) Return: CF clear if successful CF set on error AH = status (see #00234) Notes: on the PC and XT, this function uses the parameter table pointed at by INT 41 on the AT and later, this function uses the parameter table pointed at by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if DL=81h SeeAlso: INT 41"HARD DISK 0",INT 46"HARD DISK 1"Top
INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later) AH = 0Ah AL = number of sectors (01h may be only value supported) CH = low eight bits of cylinder number CL = sector number (bits 5-0) high two bits of cylinder number (bits 7-6) DH = head number DL = drive number (80h = first, 81h = second) ES:BX -> data buffer Return: CF clear if successful CF set on error AH = status (see #00234) AL = number of sectors transferred Notes: this function reads in four to seven bytes of error-correcting code along with each sector's worth of information data errors are not automatically corrected, and the read is aborted after the first sector with an ECC error used for diagnostics only on PS/2 systems; IBM officially classifies this function as optional BUG: on the original IBM AT BIOS (1984/01/10) this function does not disable interrupts for harddisks (DL >= 80h). On these machines the MS-DOS/ PC DOS IO.SYS/IBMBIO.COM installs a special filter to bypass the buggy code in the ROM (see CALL F000h:211Eh) SeeAlso: AH=02h,AH=0Bh,MEM 0040h:0074hTop
INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later) AH = 0Bh AL = number of sectors (01h may be only value supported) CH = low eight bits of cylinder number CL = sector number (bits 5-0) high two bits of cylinder number (bits 7-6) DH = head number DL = drive number (80h = first, 81h = second) ES:BX -> data buffer Return: CF clear if successful CF set on error AH = status (see #00234) AL = number of sectors transferred Notes: each sector's worth of data must be followed by four to seven bytes of error-correction information used for diagnostics only on PS/2 systems; IBM officially classifies this function as optional SeeAlso: AH=03h,AH=0Ah,MEM 0040h:0074hTop
INT 13 - HARD DISK - SEEK TO CYLINDER AH = 0Ch CH = low eight bits of cylinder number CL = sector number (bits 5-0) high two bits of cylinder number (bits 7-6) DH = head number DL = drive number (80h = first, 81h = second hard disk) Return: CF set on error CF clear if successful AH = status (see #00234) SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47hTop
INT 13 - HARD DISK - RESET HARD DISKS AH = 0Dh DL = drive number (80h = first, 81h = second hard disk) Return: CF set on error CF clear if successful AH = status (see #00234) Notes: reinitializes the hard disk controller, resets the specified drive's parameters, and recalibrates the drive's heads (seek to track 0) for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems, both the master drive and the slave drive respond to the Reset function that is issued to either drive not for PS/2 ESDI drives SeeAlso: AH=00h,INT 21/AH=0DhTop
INT 13 - HARD DISK - READ SECTOR BUFFER (XT only) AH = 0Eh DL = drive number (80h = first, 81h = second hard disk) ES:BX -> buffer Return: CF set on error CF clear if successful AH = status code (see #00234) Notes: transfers controller's sector buffer. No data is read from the drive used for diagnostics only on PS/2 systems SeeAlso: AH=0AhTop
INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only) AH = 0Fh DL = drive number (80h = first, 81h = second hard disk) ES:BX -> buffer Return: CF set on error CF clear if successful AH = status code (see #00234) Notes: does not write data to the drive should be called before formatting to initialize an XT-type controller's sector buffer used for diagnostics only on PS/2 systems SeeAlso: AH=0BhTop
INT 13 - HARD DISK - CHECK IF DRIVE READY AH = 10h DL = drive number (80h = first, 81h = second hard disk) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AH=11hTop
INT 13 - HARD DISK - RECALIBRATE DRIVE AH = 11h DL = drive number (80h = first, 81h = second hard disk) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) Note: causes hard disk controller to seek the specified drive to cylinder 0 SeeAlso: AH=00h,AH=0Ch,AH=10h,AH=19h"FIXED DISK",MEM 0040h:003EhTop
INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS) AH = 12h DL = drive number (80h = first, 81h = second hard disk) Return: CF set on error CF clear if successful AH = status code (see #00234 at AH=01h) AL = 00h SeeAlso: AH=13h,AH=14hTop
INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK AH = 12h DL = hard drive ID Return: CF set on error CF clear if successful AH = status code (see #00234 at AH=01h) Notes: available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A if the given drive is a SCSI device, the SCSI Stop Unit command is sent and either "Disk prepared for shipping" or "Disk Stop command failed" is displayed the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h)Top
INT 13 - SyQuest - START/STOP SCSI DISK AH = 12h AL = subfunction 00h start disk 01h stop disk CX = wait flag 00h wait for ready 01h don't wait for ready DL = hard drive ID (bit 7 for hard disks must be set) Return: CF set on error CF clear if successful AH = status 00h successful 01h invalid function request 80h timeout SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"Top
INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS) AH = 13h DL = drive number (80h = first, 81h = second hard disk) Return: CF set on error CF clear if successful AH = status code (see #00234 at AH=01h) AL = 00h SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"Top
INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+) AH = 13h DL = drive ID (bit 7 set for hard disks) Return: CF set on error AH = status (07h) (see #00234 at AH=01h) CF clear if successful AH = 00h BL = drive type (AT/PS2 floppies only) (see #00242) CH = low eight bits of maximum cylinder number CL = maximum sector number (bits 5-0) high two bits of maximum cylinder number (bits 7-6) DH = maximum head number DL = number of drives ES:DI -> drive parameter table (floppies only) Notes: the return values are identical to the standard INT 13/AH=08h, but the number of drives is not limited to 2, so scanning all possible drive numbers with the Read DASD Type call (AH=15h) should generally be preferred to determine the number of drives attached to the system. SeeAlso: AH=08h"PC",AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"Top
INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC AH = 14h Return: CF set on error CF clear if successful AH = status code (see #00234 at AH=01h) AL = 00h SeeAlso: AH=12h,AH=13hTop
INT 13 - DISK - GET DISK TYPE (XT 1986/1/10 or later,XT286,AT,PS) AH = 15h DL = drive number (bit 7 set for hard disk) (AL = FFh, CX = FFFFh, see Note) Return: CF clear if successful AH = type code 00h no such drive (SpeedStor) AL = 03h hard disk CX:DX = number of 512-byte sectors 01h floppy without change-line support 02h floppy (or other removable drive) with change-line support 03h hard disk CX:DX = number of 512-byte sectors CF set on error AH = status (see #00234 at AH=01h) Note: SyQuest can report type 01h or 02h for 'hard disks', since its media is removable BUGS: many versions of the Award 486 BIOS do not return the sector count because the BIOS exit code restores CX and DX to their original values after the function had already set them to correct values Some releases of PC Tools REBUILD preset CX=FFFFh and only trust the results if CH <= 2 on return (which would cut off drives > 16 Gb). several different Compaq BIOSes incorrectly report high-numbered drives (such as 90h, B0h, D0h, and F0h) as present, giving them the same geometry as drive 80h; as a workaround, scan through disk numbers, stopping as soon as the number of valid drives encountered equals the value in 0040h:0075h the PS/2 Model 30 fails to reset the bus after INT 13/AH=08h and INT 13/AH=15h. A workaround is to monitor for these functions and perform a transparent INT 13/AH=01h status read afterwards. This will reset the bus. The MS-DOS 6.0 IO.SYS takes care of this by installing a special INT 13h interceptor for this purpose. Some releases of SpeedStor have a bug where it reports AX=0003h instead of correctly reporting AH=03h for hard disks. A possible workaround when testing for hard disks is to check for AH=03h and AX=0003h. In this case this function should be invoked with a bogus fixed value in AL, e.g. AL=FFh. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI",MEM 0040h:0075hTop
INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1986/1/10 or later,XT286,AT,PS) AH = 16h DL = drive number (00h-7Fh) SI = 0000h (to avoid crash on AT&T 6300) Return: CF clear if change line inactive AH = 00h (disk not changed) CF set if change line active AH = status 01h invalid command (SyQuest) 06h change line active or not supported 80h drive not ready or not present Notes: call AH=15h first to determine whether the drive supports a change line this call also clears the media-change status, so that a disk change is only reported once BUGS: some versions of Award 386 Modular BIOS and AMI BIOS fail to clear the media-change status AT&T 6300 WGS systems crash if SI <> 0 on entry. some pre 1986/08/04 Compaq ROM BIOS have a serious bug where this function may re-configure a hard disk depending on what is located at ES:[BX] and data indexed to by it. MS-DOS/PC DOS IO.SYS/IBMBIO.COM install a special filter when they detect Compaq ROM BIOSes with earlier dates. some Compaq 286 systems have a bug in all INT 13h functions >= 16h, which causes the byte at DS:0074h to be destroyed when called for hard disks (DL >= 80h). MS-DOS/PC DOS IO.SYS/IBMBIO.COM performs a test on this bug using this sub-function, and if found installs a special filter which points DS into ROM, so that it cannot cause any harm. some drives (or controllers???) forget the change line status if another drive is accessed afterwards. The DOS BIOS takes care of this by not relying on the reported change line status when the change line is not active and a different drive is accessed, instead it reports "don't know" to the DOS kernel. SeeAlso: AH=15h,AH=49hTop
INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS) AH = 17h AL = format type 01h = 320/360K disk in 360K drive 02h = 320/360K disk in 1.2M drive 03h = 1.2M disk in 1.2M drive 04h = 720K disk in 720K or 1.44M drive DL = drive number Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) Note: this function does not handle 1.44M drives; use AH=18h instead SeeAlso: AH=15h,AH=18hTop
INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE AX = 1700h CL = length of buffer DL = hard drive ID ES:BX -> buffer for info (see #00243) Return: CF clear if successful CH = number of bytes returned in buffer??? CF set on error AH = status code (see #00234 at AH=01h) Notes: this function is not available with 8-bit controller ROM versions < 7.0 information block bytes 5-n are vendor-specific in older SCSI devices the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI" Format of Future Domain SCSI inquiry information block: Offset Size Description (Table 00243) 00h BYTE device type bits 0-4: peripheral device type (see #00244) bits 5-7: peripheral qualifier (see #00245) 01h BYTE device type modifier bits 0-6: device type modifier bit 7: removable medium 02h BYTE SCSI version (see #00246) 03h BYTE data format/capabilities (see #00247) 04h BYTE additional data length (total remaining bytes) 05h 2 BYTEs reserved 07h BYTE device capabilities (see #00248) 08h 8 BYTEs vendor identification (space-padded ASCII) 10h 8 BYTEs product identification (space-padded ASCII) 20h 4 BYTEs product revision level (space-padded ASCII) 24h 20 BYTEs vendor specific 38h 40 BYTEs reserved 60h var vendor specific parameters (Table 00244) Values for Future Domain SCSI peripheral device type: 00h direct-access device (e.g., magnetic disk) 01h sequential-access device (e.g., magnetic tape) 02h printer device 03h processor device 04h write-once device (e.g., some optical disks) 05h CD-ROM device 06h scanner device 07h optical memory device (e.g., some optical disks) 08h medium changer device (e.g., jukeboxes) 09h communications device 0Ah (defined by ASC IT8) 0Bh (defined by ASC IT8) 0Ch-1Eh reserved 1Fh unknown or no device type (Table 00245) Values for Future Domain SCSI peripheral qualifier: 000b device is currently connected to this logical unit and available 001b target is capable of supporting the specified peripheral, but the physical device is not currently connected to this logical unit 010b reserved 011b target can't support a physical device on this logical unit 1xxb vendor specific Bitfields for Future Domain SCSI version: Bit(s) Description (Table 00246) 0-2 ANSI-approved version 000 device might or might not comply to ANSI standard 001 device complies to ANSI SCSI-1 010 device complies to ANSI SCSI-2 other reserved 3-5 ECMA version 6-7 ISO version Bitfields for Future Domain SCSI data format/capabilities: Bit(s) Description (Table 00247) 0-2 response data format 000 information block is as specified in SCSI-1 001 information block is as specified in CCS 010 information block is as specified in SCSI-2 other reserved 4-5 reserved 6 terminate I/O process supported 7 asynchronous event notification supported Bitfields for Future Domain SCSI device capabilities: Bit(s) Description (Table 00248) 0 device responds to RESET with a hard RESET 1 tagged command queuing supported 2 reserved 3 linked commands supported 4 synchronous data transfer supported 5 16-transfers supported 6 32-transfers supported 7 relative addressing supportedTop
INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS) AH = 18h DL = drive number CH = lower 8 bits of highest cylinder number (number of cylinders - 1) CL = sectors per track (bits 0-5) top 2 bits of highest cylinder number (bits 6,7) Return: AH = status 00h requested combination supported 01h function not available 0Ch not supported or drive type unknown 80h there is no disk in the drive ES:DI -> 11-byte parameter table (see #01264 at INT 1E) Note: this function does not set the INT 1E vector to point at the returned parameter table; it is the caller's responsibility to do so SeeAlso: AH=05h,AH=07h,AH=17h,INT 1ETop
INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION AH = 18h DL = hard drive ID Return: CF set on error AH = status code (see #00234 at AH=01h) CF clear if successful AX = 4321h (magic number) CX = controller family code (see #00249) ---if family code=0200h DH = number of exclusively ROM-controlled SCSI devices DL = canonical SCSI device number for specified drive ---if family code <> 0200h BH = number of exclusively ROM-controlled SCSI devices BL = canonical SCSI device number for specified drive Notes: also sets an internal flag (non-resettable) which prevents some controller messages from being displayed, allows writes to removable devices (use caution!), and enables the INT 13 interface for more than one drive (i.e. DL >= 81h) in at least some ROM versions the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h (Table 00249) Values for Future Domain SCSI controller family code: 0200h TMC-1680/? (ROM 3.0) 0203h TMC-1650/1660/1670/1680 (ROM 2.0) 040Ah TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A) 050Dh TMC-840/841/880/881 (ROM 5.2D) 0700h TMC-830/850/860/875/885 (ROM 7.0)Top
INT 13 - PU_1700.COM - INSTALLATION CHECK
AH = 18h
CX = 5055h ('PU')
DL = 00h
Return: AX = 7570h ('up') if PU_1700 is installed
Program: PU_1700 is a BIOS enhancer from PU Service Systems which permits
formatting diskettes at higher capacity (1.78M instead of 1.44M)
SeeAlso: AX=057Fh/SI=324Dh"2M"
Top
INT 13 - XDF.COM - API
AH = 18h
CX = D2C9h ("R"+80h, "I"+80h = Roger Ivey)
DX = 0000h
BX = function
0000h installation check
Return: AH = 0Ch
CX = 7269h ("ri" = Roger Ivey)
ES = segment of driver
CF set
2F64h ("/d") disable the driver
Return: AH = 0Ch
ES:BX = pointer to activation flag (it is set to 0:
set it to 1 to enable the driver again)
CX = 7269h
CF set
2F75h ("/u") unload the driver (restore interrupts & free memory)
Return: AH = 0Ch
DL = 55h ("U") if successful
= 00h if fails
CX = 7269h
ES = segment of driver
CF set
AL, BX, DH, and DI destroyed
Program: XDF is a TSR provided with PC-DOS 7.0 to support XDF 1.84M disks,
developed by Roger D. Ivey
Note: After disabling or enabling the driver, a disk change must be performed
or simulated to reset the driver.
Top
INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS) AH = 19h DL = drive Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AH=11hTop
INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE AH = 19h DL = hard drive ID Return: CF set on error AH = status code (see #00234 at AH=01h) CF clear if successful AH = disk type (03h = fixed disk) CX:DX = number of 512-byte sectors Notes: sends SCSI Read Capacity command to get number of logical blocks and adjusts the result for 512-byte sectors displays either "Error in Read Capacity Command" or "nnn Bytes per sector" (nnn=256 or 512, the only sizes supported in the translation code) should probably be called when a removable device has its media changed returns the same values as AH=15h the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100hTop
INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS) AH = 1Ah AL = defect table entry count CL = format modifiers (see #00250) DL = drive (80h,81h) ES:BX -> defect table (see #00251), ignored if AL=00h Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) Note: if periodic interrupt selected, INT 15/AH=0Fh is called after each cylinder is formatted SeeAlso: AH=07h,INT 15/AH=0Fh Bitfields for ESDI format modifiers: Bit(s) Description (Table 00250) 4 generate periodic interrupt 3 perform surface analysis 2 update secondary defect map 1 ignore secondary defect map 0 ignore primary defect map Format of defect table entry [array]: Offset Size Description (Table 00251) 00h 3 BYTEs relative sector address (little-endian) 03h BYTE flags and defect count bit 7: last logical sector on track bit 6: first logical sector on track bit 5: last logical sector on cylinder bit 4: logical sectors are pushed onto next track bits 3-0: number of defects pushed from previous cylinderTop
INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY AH = 1Ah CH = track (bits 8,9 in high bits of CL) CL = sector (01h to number of sectors/track for drive) DH = head DL = hard drive ID Return: CF set on error AH = status code (see #00234 at AH=01h) CX:DX = logical block number of last quickly-accessible block after given block Notes: sends SCSI Read Capacity command with the PMI bit set to obtain the logical block address of the last block after which a substantial delay in data transfer will be encountered (usually the last block on the current cylinder). No translation to 512 byte sectors is performed on the result if data is stored on the disk in other than 512 byte sectors. the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=15h,AH=19h"SCSI"Top
INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER AH = 1Bh AL = number of sectors to read DL = drive ES:BX -> buffer for manufacturing header (defect list) Return: CF set on error CF clear if successful AH = status Note: manufacturing header format (Defect Map Record format) can be found in IBM 70MB, 115MB Fixed Disk Drives Technical Reference the first sector read contains the manufacturing header with the number of defect entries and the beginning of the defect map; the remaining sectors contain the remainder of the defect mapTop
INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK AH = 1Bh DL = hard drive ID Return: CF set on error AH = status code (see #00234 at AH=01h) CF clear if successful ES:BX -> SCSI disk information block (see #00252) Notes: also sets a non-resettable flag which prevents some controller messages from being displayed the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI" Format of Future Domain SCSI disk information block: Offset Size Description (Table 00252) 00h BYTE drive physical information (see #00253) 01h WORD translated number of cylinders 03h BYTE translated number of heads 04h BYTE translated number of sectors per track (17, 34, or 63) 05h BYTE drive address bits 0-2: logical unit number bits 3-5: device number 06h BYTE 01h at initialization 07h BYTE sense code byte 00h, or extended sense code byte 0Ch 08h BYTE 00h 09h BYTE 00h or extended sense code byte 02h (sense key) 0Ah BYTE 00h 0Bh 10 BYTEs copy of Command Descriptor Block (CDB) (see #03236,#03237) 15h DWORD translated number of sectors on device Bitfields for Future Domain SCSI device physical information: Bit(s) Description (Table 00253) 0 ??? 1 device uses parity 2 256 bytes per sector instead of 512 3 don't have capacity yet??? 4 disk is removable 5 logical unit number is not presentTop
INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM AH = 1Ch DL = hard drive ID (any valid SCSI hard disk) Return: CF set on error AH = status code (see #00234 at AH=01h) CF clear if successful ES:BX -> first byte of free RAM on controller Notes: the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h to 1BFFh on-board the controller for storing drive information and controller status; ES:BX points to the first byte available for other uses ES contains the segment at which the controller resides; the controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h SeeAlso: AH=1Bh"SCSI"Top
INT 13 U - ESDI FIXED DISK - ??? AH = 1Ch AL = subfunction (01h-06h) DL = drive (80h,81h) ??? Return: ??? Note: these functions perform a controller command 0612h without DMA SeeAlso: AX=1C08h,PORT 3510h"ESDI"Top
INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS AX = 1C08h DL = drive (80h,81h) ES:BX -> buffer for Command Complete Status Block (see #00254) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AX=1C09h,AX=1C0Ah,PORT 3510h"ESDI" Format of ESDI Command Complete Status Block: Offset Size Description (Table 00254) 00h BYTE 07h 01h BYTE size of block in words (07h) 02h BYTE command error code (see #00255) 03h BYTE command status code (see #00256) 04h BYTE device error code, group 1 (see #00257) 05h BYTE device error flags, group 2 (see #00258) 06h WORD number of unprocessed sectors due to abnormal termination 08h DWORD last Relative Sector Address processed by command 0Ch WORD number of sectors corrected by ECC codes (Table 00255) Values for ESDI command error code: 00h successful 01h parameter invalid 02h unknown function 03h unsupported command 04h command cancelled 05h unknown function 06h controller diagnostics failed 07h formatting failed 08h format error in primary map 09h format error in secondary map 0Ah diagnostic failure during formatting 0Bh warning: secondary map too large during formatting 0Ch warning: non-zero defect 0Dh system checksum error during formatting 0Eh warning: incompatible device 0Fh warning: push table overflowed 10h warning: more than 15 sectors pushed to next cylinder 11h internal hardware error 12h warning: errors found while verifying sectors 13h invalid device FFh device error (Table 00256) Values for ESDI command status code: 01h successful 03h successful after ECC 05h successful after retries 06h format partially completed 07h successful after ECC and retries 08h command completed with warning (see #00255) 09h abort complete 0Ah reset complete 0Bh data transfer ready (no status block) 0Ch command completed with failure (see #00257,#00258) 0Dh DMA error 0Eh command block error (see #00255) 0Fh bad attention code SeeAlso: #00257 (Table 00257) Values for ESDI device error code, group 1: 00h successful 01h seek fault detected by device 02h interface fault 03h sector ID not found 04h disk not formatted 05h unrecoverable ECC error 06h ECC error in sector ID 07h invalid relative sector address 08h timeout 09h sector defective 0Ah disk changed (removable media) 0Bh selection error 0Ch write protected (removable media) 0Dh write fault 0Eh read fault 0Fh no index or sector pulse 10h device not ready 11h seek error detected by adapter 12h bad format 13h volume overflow 14h data address mark not found 15h sector ID not found 16h missing device configuration data 17h first/last relative sector flags missing 18h track empty 81h timeout while waiting for stop 82h timeout while waiting for end of data transfer 84h stopped awaiting data transfer during formatting 85h timeout while waiting for head switch 86h timeout while awaiting DMA completion SeeAlso: #00256,#00258 Bitfields for ESDI device error flags, group 2: Bit(s) Description (Table 00258) 7-5 unused 4 ready 3 selected 2 write fault 1 on track 0 0 seek/command complete SeeAlso: #00257Top
INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS AX = 1C09h DL = drive (80h,81h) ES:BX -> buffer for Device Status Block (see #00259) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AX=1C08h,AX=1C0Ah,PORT 3510h"ESDI" Format of ESDI Device Status Block: Offset Size Description (Table 00259) 00h BYTE 08h 01h BYTE number of words in block (09h) 02h BYTE error flags 03h BYTE unused 04h BYTE command error code (see #00255) 05h BYTE command status code (see #00256) 06h WORD ESDI standard status 08h 5 WORDs ESDI vendor-specific status codesTop
INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION AX = 1C0Ah DL = drive (80h,81h) ES:BX -> buffer for Drive Configuration Status Block (see #00260) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) Note: device configuration format can be found in IBM ESDI Fixed Disk Drive Adapter/A Technical Reference SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch Format of ESDI Drive Configuration Status Block: Offset Size Description (Table 00260) 00h BYTE 09h 01h BYTE number of words in block (06h) 02h BYTE flags 03h BYTE number of spare sectors per cylinder 04h DWORD total number of usable sectors 08h WORD total number of cylinders 0Ah BYTE tracks per cylinder 0Bh BYTE sectors per trackTop
INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION AX = 1C0Bh ES:BX -> buffer for Controller Configuration Status Block (see #00261) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AX=1C0Ch Format of ESDI Controller Configuration Status Block: Offset Size Description (Table 00261) 00h BYTE E9h 01h BYTE number of words in block (06h) 02h WORD unused (0000h) 04h DWORD controller microcode revision level 08h 2 WORDs unused (0000h)Top
INT 13 U - ESDI FIXED DISK - GET POS INFORMATION AX = 1C0Ch ES:BX -> buffer for POS Information Status Block (see #00262) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AX=1C0Bh Format of ESDI POS Information Status Block: Offset Size Description (Table 00262) 00h BYTE EAh 01h BYTE number of words in block (05h) 02h WORD magic value FFDDh 04h BYTE POS register 3 05h BYTE POS register 2 06h BYTE POS register 5 (unused, FFh) 07h BYTE POS register 4 (unused, FFh) 08h BYTE POS register 7 (unused, FFh) 09h BYTE POS register 6 (unused, FFh)Top
INT 13 U - ESDI FIXED DISK - ??? AX = 1C0Dh DL = drive (80h,81h) ??? Return: ??? Note: invokes controller command 0614h without DMA SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"Top
INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA AX = 1C0Eh CH = low 8 bits of cylinder number CL = sector number, high two bits of cylinder number in bits 6 and 7 DH = head number DL = drive number (80h,81h) ES:BX -> ABA number Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) Note: ABA (absolute block address) format can be found in IBM ESDI Adapter Technical Reference by using its Device Configuration Status Block SeeAlso: AX=1C08h,AX=1C0Fh,PORT 3510h"ESDI"Top
INT 13 U - ESDI FIXED DISK - ??? AX = 1C0Fh DL = drive (80h,81h) ??? Return: ??? Note: invokes controller command 0614h without DMA SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h,PORT 3510h"ESDI"Top
INT 13 U - ESDI FIXED DISK - ??? AX = 1C12h DL = drive (80h,81h) ??? Return: ??? Note: invokes controller command 0612h without DMA SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"Top
INT 13 - IBMCACHE.SYS - CACHE STATUS AH = 1Dh AL = subfunction 01h get status record DL = drive??? Return: ES:BX -> status record (see #00263) CF set on error AH = error code 02h set cache status ES:BX -> status record (see #00263) DL = drive??? Return: CF set on error Format of IBMCACHE.SYS status record: Offset Size Description (Table 00263) 00h DWORD total number of read requests 04h DWORD total number of hits 08h DWORD number of physical disk reads 0Ch DWORD total number of sectors requested by physical disk reads 10h 6 BYTEs ??? 16h DWORD pointer to start of error list (see #00264) 1Ah DWORD pointer to end of error list 1Eh WORD ??? 20h BYTE using extended memory if nonzero 21h BYTE ??? 22h 4 BYTEs ASCII version number 26h WORD cache size in KB 28h WORD sectors per page Format of IBMCACHE.SYS error list: Offset Size Description (Table 00264) 00h DWORD relative block address of bad page 04h BYTE drive 05h BYTE sector bit-map 06h WORD next errorTop
INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT AH = 1Fh AL = subfunction 00h allow media removal 01h prevent media removal (lock door) DL = drive ID (bit 7 set for hard disks) Return: CF clear if successful AH = 00h CF set on error AH = error code 00h successful 01h invalid function request 80h timeout DDh media change requested SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"Top
INT 13 - DISK - ??? (Western Digital "Super BIOS") AH = 20h ??? Return: ??? Notes: returns some kind of status related to whether the drive contains its default media type QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some casesTop
INT 13 U - Compaq, ATAPI Removable Media Device - GET CURRENT MEDIA FORMAT AH = 20h DL = drive number (00h,01h) Return: CF clear if successful AL = media type (see #00265) AH = 00h CF set on error AH = error code 01h invalid request 30h drive does not support media sense 31h no such drive / media not present 32h non-default media / drive does not support media type Notes: this function is supported by the 1993/3/8 Compaq ROM BIOS, but only partially (AL is always 00h when successful) by the 1993/8/3 version this function is also supported by some recent versions of the Phoenix 486 BIOS this function does not seem to be supported by some Toshiba BIOSes (at least before 1995, maybe some laptops??? with 1.44 MB floppies), because S/DOS 1.0 contains code to bypass a call to this function, always assuming the drive would not support media sense. SeeAlso: AH=15h (Table 00265) Values for Compaq/ATAPI diskette media type: 03h 720K (1M unformatted) 04h 1.44M (2M unformatted) 06h 2.88M (4M unformatted) 0Ch 360K 0Dh 1.2M 0Eh Toshiba 3mode 0Fh NEC 3mode (1024-byte sectors) 10h ATAPI Removable Media DeviceTop
INT 13 u - QUICKCACHE II v4.20 - DISMOUNT AH = 20h AL = drive (00h = A:, etc. or 7Fh for all removable drives??? or FFh for all drives) Return: AX = status (0000h successful) Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and Associates, Inc. Desc: flush any dirty buffers for the specified drive(s) and then discard those sector buffers SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28hTop
INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS AH = 21h AL = number of sectors to write CH = low byte of 12-bit cylinder number CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7) DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7) DL = drive number (80h,81h) ES:BX -> buffer for data to be read Return: CF clear if successful ES:BX buffer filled CF set on error AH = status (see #00234 at AH=01h) Desc: read from the disk using the Multiple Block mode available on newer IDE drives and some hard disk controllers, which generates an interrupt only after the end of transferring a group of sectors rather than after each sector Notes: must call AH=24h"PS/1" before using this function input values in CL and DH are not range-checked the byte at address 0040h:0074h is set to the status of the operation SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"Top
INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE AH = 21h Return: AX = status (0000h successful) Desc: immediately write all dirty sectors back to disk Note: this is one out of several cache flush calls issued by the PTS-DOS 6.51 and S/DOS 1.0 kernel before rebooting. It is called with DL=80h and conflicts with the PS/2 function of the same function number, because the kernel does not perform Quickcache's installation check first. SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2FhTop
INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS AH = 22h AL = number of sectors to write CH = low byte of 12-bit cylinder number CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7) DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7) DL = drive number (80h,81h) ES:BX -> buffer containing data to be written Return: CF clear if successful CF set on error AH = status (see #00234 at AH=01h) Desc: write to the disk using the Multiple Block mode available on newer IDE drives and some hard disk controllers, which generates an interrupt only after the end of transferring a group of sectors rather than after each sector Notes: must call AH=24h"PS/1" before using this function input values in CL and DH are not range-checked the byte at address 0040h:0074h is set to the status of the operation SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"Top
INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE AH = 22h AL = new state (00h disabled, 01h enabled) Return: AX = status (0000h successful) Note: enables/disables caching of all drives SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4hTop
INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER AH = 23h AL = feature number (see #00266) DL = drive number (80h,81h) ??? Return: CF clear if successful CF set on error AH = status (see #00234 at AH=01h) SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1" (Table 00266) Values for PS/1 hard disk feature number: 01h select 8-bit data transfers instead of 16-bit 02h enable write cache 22h Write Same, user-specified area 33h disable retries 44h set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh) 54h set cache segments 55h disable lookahead 66h disable reverting to power-on defaults 77h disable error correctioni 81h select 16-bit data transfers (default) 82h disable write cache 88h enable error correction (default) 99h enable retries (default) AAh enable lookahead BBh set ECC length for read long/write long to four bytes CCh enable reverting to power-on defaults DDh Write Same, entire disk SeeAlso: #P0535Top
INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS AH = 23h Return: AX = status (0000h successful) ES = segment of ??? dataTop
INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE AH = 24h AL = number of sectors per block (2,4,8,16) DL = drive number (80h,81h) Return: CF clear if successful CF set onerror AH = status (see #00234 at AH=01h) Desc: specify how many sectors the controller should transfer as a group between operation-complete interrupts when using the Read Multiple and Write Multiple functions (AH=21h,AH=22h) Notes: set the number of sectors to 0 to disable multiple-transfer mode the maximum value for the block size depends on the fixed disk drive type. The value is stored in byte 15h of the fixed disk drive parameter table that is created by POST. the byte at address 0040h:0074h is set to status of operation. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"Top
INT 13 u - QUICKCACHE II v4.20 - SET SECTORS AH = 24h BX = new number of sector buffers in cache Return: AX = status 0000h successful 0001h failed--size adjusted 8000h cache cannot be resized while enabled SeeAlso: AH=36hTop
INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE AH = 25h DL = drive number (80h,81h) ES:BX-> 512 byte buffer for reply packet Return: CF clear if successful CF set on error AH = status (see #00234 at AH=01h) buffer filled with ATA/IDE-style drive information block (see #00267) Desc: retrieves the 256 words of drive data stored on an IDE hard disk Notes: the byte at address 0040h:0074h is set to the status of the operation IBM officially classifies this function as optional SeeAlso: AH=23h"PS/1" Format of drive information block: Offset Size Description (Table 00267) 00h WORD general drive configuration (see #00268) 02h WORD number of cylinders 04h WORD reserved 06h WORD number of heads 08h WORD number of unformatted bytes per track 0Ah WORD number of unformatted bytes per sector 0Ch WORD number of sectors per track 0Eh 6 BYTEs vendor unique 14h 20 BYTEs serial number in ASCII, 0000h=not specified) 28h WORD buffer type 2Ah WORD buffer size in 512 byte increments (0000h=not specified) 2Ch WORD number of ECC bytes passed on Read/Write Long cmds 0000h = not specified 2Eh 8 BYTEs firmware revision in ASCII, 0000h=not specified 36h 40 BYTEs model number in ASCII, 0000h=not specified 5Eh WORD bits 15-8 Vendor Unique bits 7-0 00h = Read/Write Multiple commands not implemented xxh = Maximum number of sectors that can be transferred per interrupt on Read and Write Multiple commands 60h WORD 0000h = cannot perform doubleword I/O 0001h = can perform doubleword I/O 62h WORD capabilities bit 15-9 0=reserved bit 8 1=DMA Supported bit 7-0 Vendor Unique 64h WORD reserved 66h WORD bits 15-8 PIO data transfer cycle timing mode bits 7-0 Vendor Unique 68h WORD bits 15-8 DMA data transfer cycle timing mode bits 7-0 Vendor Unique 6Ah WORD bits 15-1 reserved bit 0 1=the fields reported in tranlation mode are valid 0=the fields reported in translation mode may be valid 6Ch WORD number of current cylinders 6Eh WORD number of current heads 70h WORD number of current sectors per track 72h DWORD current capacity in sectors 76h WORD reserved 78h 136 BYTEs not defined by ATA spec 2.6 100h 64 BYTEs vendor unique 140h 96 BYTEs reserved Note: the above description is as in the ATA (AT Attachment) Specification. SeeAlso: #P0516 Bitfields for general drive configuration: Bit(s) Description (Table 00268) 15 0 reserved for non-magnetic drives 14 format speed tolerance gap required 13 track offset option available 12 data strobe offset option available 11 rotational speed tolerance is > 0.5% 10 disk transfer rate > 10 Mbs 9 disk transfer rate > 5Mbs but <= 10Mbs 8 disk transfer rate <= 5Mbs 7 removable cartridge drive 6 fixed drive 5 spindle motor control option implemented 4 head switch time > 15 usec 3 not MFM encoded 2 soft sectored 1 hard sectored 0 reserved (0)Top
INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL AH = 25h BX = interval Return: AX = status (0000h successful) Desc: specify how often the cache should write dirty buffers to disk when buffered writes are enabled SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2EhTop
INT 13 U - QUICKCACHE II v4.20 - UNINSTALL AH = 26h Return: AX = status 0000h successful 0001h-00FFh interrupt vector which was hooked by another TSR SeeAlso: AH=27hTop
INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK AH = 27h BX = 0000h Return: AX = 0000h if installed BX nonzero if installed BH = major version BL = binary minor version Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and Associates, Inc. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111hTop
INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT AH = 28h AL = new state (00h disabled, 01h enabled) Return: AX = status (0000h successful) SeeAlso: AH=20h"QUICKCACHE"Top
INT 13 U - QUICKCACHE II v4.20 - NOP AH = 29h Return: AX = 0000hTop
INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE AH = 2Ah AL = buffer size (1-30) Return: AX = status (0000h successful) Desc: specify the number of cache sector buffers to dedicate to buffered read and write operations SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3AhTop
INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS AH = 2Bh AL = new state (00h disabled, 01h enabled) Return: AX = status (0000h successful)Top
INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES AH = 2Ch AL = new state (00h disabled, 01h enabled) Return: AX = status (0000h successful) Desc: specify whether the cache should delay disk writes Note: this function enables or disables delayed writes for all drives; use AH=38h to change a single drive SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38hTop
INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ AH = 2Dh AL = new state (00h disabled, 01h enabled) Return: AX = status (0000h successful) Desc: specify whether the cache should attempt to read ahead of actual requests Note: this function enables or disables read-ahead for all drives; use AH=37h to change a single drive SeeAlso: AH=2Ch,AH=37hTop
INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT AH = 2Eh BX = flush count Return: AX = status (0000h successful) Desc: specify how many dirty sectors the cache should write after each flush interval (see AH=25h"QUICKCACHE") when buffered writes are enabled SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2ChTop
INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH AH = 2Fh Return: AX = status (0000h successful) Desc: immediately flush up to "flushcount" dirty sectors to disk as if the flush interval had expired SeeAlso: AH=21h"QUICKCACHE"Top
INT 13 u - QUICKCACHE II v4.20 - GET INFO AH = 30h AL = what to get 00h system info (see #00269) 01h drive info (see #00270) 02h access frequency (array of 30 words) 03h drive index (array of 32 bytes indicating BIOS drive for DOS drive) DS:DX -> buffer for info Return: AX = status (0000h successful, 8000h invalid info specifier) Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and Associates, Inc. Format of QUICKCACHE II system info: Offset Size Description (Table 00269) 00h BYTE flag: cache enabled 01h BYTE flag: buffered writes enabled 02h BYTE flag: buffered reads enabled 03h BYTE flag: sounds enabled 04h BYTE flag: autodismount enabled 05h BYTE ??? 06h BYTE flag: ??? 07h BYTE flag: ??? 08h BYTE flag: "em_assigned" 09h BYTE flag: emulated EMS 0Ah BYTE single sector bonus 0Bh BYTE "sticky_max" 0Ch BYTE write sector bonus 0Dh BYTE bonus threshold 0Eh WORD flush interval 10h WORD flush count 12h WORD reserve pool size 14h WORD remaining space in reserve pool 16h WORD required free memory 18h WORD total cache sectors 1Ah WORD dirty cache sectors 1Ch BYTE trace buffer size 1Dh BYTE reserved (padding) SeeAlso: #00270 Format of QUICKCACHE II drive info [16-element array, one element]: Offset Size Description (Table 00270) 00h BYTE DOS drive number 01h BYTE BIOS drive number 02h BYTE maximum sector number 03h BYTE maximum head number 04h BYTE read buffer size 05h BYTE write buffer size 06h BYTE last status 07h BYTE flag: enabled 08h BYTE flag: buffered write enabled 09h BYTE flag: buffered read enabled 0Ah BYTE flag: in use (drive info is valid) 0Bh BYTE flag: cylinder flush 0Ch BYTE reserved (padding) 0Dh BYTE sectors per track 0Eh WORD sector size 10h WORD sectors assigned 12h WORD dirty sectors 14h WORD reserved sectors 16h WORD number of read errors 18h WORD number of write errors 1Ah DWORD "rio_count" 1Eh DWORD number of cache misses 22h DWORD "wio_count" 26h DWORD "dio_count" SeeAlso: #00269Top
INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY AH = 31h BX = number of paragraphs of conventional memory to reserve for apps Return: AX = status (0000h successful)Top
INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE AH = 32h AL = drive number (00h=A:) Return: AX = status (0000h successful) SeeAlso: AH=22h"QUICKCACHE",AH=33hTop
INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE AH = 33h AL = drive number (00h=A:) Return: AX = status (0000h successful) SeeAlso: AH=22h"QUICKCACHE",AH=32hTop
INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING AH = 34h AL = function 00h end sector locking/unlocking 01h lock all accessed sectors into cache 02h unlock all accessed sectors and discard from cache Return: AX = status (0000h successful) SeeAlso: AH=20h"QUICKCACHE",AH=35hTop
INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE AH = 35h BX = number of sectors in lock pool Return: AX = status (0000h successful) Desc: specify the number of cache sector buffers which may be dedicated to data locked into the cache SeeAlso: AH=34hTop
INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE AH = 36h AL = new size of trace buffer Return: AX = status (0000h successful) Note: called with AL=05h during an INT 13/AH=24h"QUICKCACHE" call SeeAlso: AH=24h"QUICKCACHE"Top
INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE AH = 37h AL = new state (00h disabled, else enabled) DL = drive number (00h = A:) Return: AX = status (0000h successful) SeeAlso: AH=2Dh,AH=38hTop
INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE AH = 38h AL = new state (00h disabled, else enabled) DL = drive number (00h = A:) Return: AX = status (0000h successful) SeeAlso: AH=2Ch,AH=37hTop
INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE AH = 39h AL = new size of read buffer DL = drive number (00h = A:) Return: AX = status (0000h successful) Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and Associates, Inc. SeeAlso: AH=2Ah,AH=3AhTop
INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE AH = 3Ah AL = new size of write buffer DL = drive number (00h = A:) Return: AX = status (0000h successful) SeeAlso: AH=2Ah,AH=39hTop
INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ??? AH = 3Bh AL = new state of ??? (01h enabled, else disabled) Return: AX = status (0000h successful) Note: is affected by the flag reported at offset 05h of the system info returned by AH=30h, and sets the flag at offset 06h SeeAlso: AH=3ChTop
INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ??? AH = 3Ch AL = new state of ??? (01h enabled, else disabled) Return: AX = status (0000h successful) Note: is affected by the flag reported at offset 05h of the system info returned by AH=30h, and sets the flag at offset 07h SeeAlso: AH=3BhTop
INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE AH = 3Dh AL = new state (01h enabled, else disabled) DL = drive number (00h = A:) Return: AX = status (0000h successful)Top
INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS AH = 3Eh AL = new value for bonus Return: AX = status (0000h successful) Desc: specify the bonus score to give to single-sector transfers in order to keep those sectors in the cache longerTop
INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD AH = 3Fh AL = new value for bonus threshold Return: AX = status (0000h successful)Top
INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max" AH = 40h AL = new value for "sticky_max" Return: AX = status (0000h successful) SeeAlso: AH=41h"QUICKCACHE"Top
INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK AH = 41h BX = 55AAh DL = drive (80h-FFh) Return: CF set on error (extensions not supported) AH = 01h (invalid function) CF clear if successful BX = AA55h if installed AH = major version of extensions 01h = 1.x 20h = 2.0 / EDD-1.0 21h = 2.1 / EDD-1.1 30h = EDD-3.0 AL = internal use CX = API subset support bitmap (see #00271) DH = extension version (v2.0+ ??? -- not present in 1.x) Note: the Phoenix Enhanced Disk Drive Specification v1.0 uses version 2.0 of the INT 13 Extensions API SeeAlso: AH=42h"INT 13 Ext",AH=48h"INT 13 Ext" Bitfields for IBM/MS INT 13 Extensions API support bitmap: Bit(s) Description (Table 00271) 0 extended disk access functions (AH=42h-44h,47h,48h) supported 1 removable drive controller functions (AH=45h,46h,48h,49h,INT 15/AH=52h) supported 2 enhanced disk drive (EDD) functions (AH=48h,AH=4Eh) supported extended drive parameter table is valid (see #00273,#00278) 3-15 reserved (0)Top
INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ??? AH = 41h AL = direction 01h save to file else restore from file ES:DI -> 1024-byte buffer for ??? Return: AX = status (0000h successful, 8000h failed) Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and Associates, Inc. SeeAlso: AH=40h"QUICKCACHE"Top
INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ AH = 42h DL = drive number DS:SI -> disk address packet (see #00272) Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) disk address packet's block count field set to number of blocks successfully transferred SeeAlso: AH=02h,AH=41h"INT 13 Ext",AH=43h"INT 13 Ext" Format of disk address packet: Offset Size Description (Table 00272) 00h BYTE size of packet (10h or 18h) 01h BYTE reserved (0) 02h WORD number of blocks to transfer (max 007Fh for Phoenix EDD) 04h DWORD -> transfer buffer 08h QWORD starting absolute block number (for non-LBA devices, compute as (Cylinder*NumHeads + SelectedHead) * SectorPerTrack + SelectedSector - 1 10h QWORD (EDD-3.0, optional) 64-bit flat address of transfer buffer; used if DWORD at 04h is FFFFh:FFFFhTop
INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
AX = 4257h ("BW")
DX = 1234h
Return: BX = 414Ch if installed
Program: BWLPD is the printer daemon from the BW-NFS package
SeeAlso: INT 62/AH=00h"ETHDEV"
Top
INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE AH = 43h AL = write flags ---v1.0,2.0--- bit 0: verify write bits 7-1 reserved (0) ---v2.1+ --- 00h,01h write without verify 02h write with verify DL = drive number DS:SI -> disk address packet (see #00272) Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) disk address packet's block count field set to number of blocks successfully transferred Note: the BIOS returns CF set/AH=01h (invalid function) if verify is requested but not supported SeeAlso: AH=03h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=44hTop
INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS AH = 44h DL = drive number DS:SI -> disk address packet (see #00272) Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) disk address packet's block count field set to number of blocks successfully verified SeeAlso: AH=04h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=47hTop
INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE AH = 45h AL = operation 00h lock media in drive 01h unlock media 02h check lock status DL = drive number Return: CF clear if successful AH = 00h AL = lock state (00h = unlocked) CF set on error AH = error code (see #00234) Notes: this function is required to be supported for any removable drives numbered 80h or higher a device may be locked even if no media is present in the drive up to 255 locks may be placed on a drive, and the media will not be physically unlocked until all locks have been removed SeeAlso: AH=41h"INT 13 Ext",AH=46h,AH=49h,INT 15/AH=52h"INT 13 Extensions"Top
INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA AH = 46h AL = 00h (reserved) DL = drive number Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) SeeAlso: AH=49h,INT 15/AH=52h"INT 13 Extensions"Top
INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK AH = 47h DL = drive number DS:SI -> disk address packet (see #00272) Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) Note: this function initiates the seek, and may return before the seek actually completes SeeAlso: AH=0Ch,AH=42h"INT 13 Ext"Top
INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
AH = 48h
DL = drive (80h-FFh)
DS:SI -> buffer for drive parameters (see #00273)
Return: CF clear if successful
AH = 00h
DS:SI buffer filled
CF set on error
AH = error code (see #00234)
BUGS: several different Compaq BIOSes incorrectly report high-numbered
drives (such as 90h, B0h, D0h, and F0h) as present, giving them the
same geometry as drive 80h; as a workaround, scan through disk
numbers, stopping as soon as the number of valid drives encountered
equals the value in 0040h:0075h
Dell machines using PhoenixBIOS 4.0 Release 6.0 fail to correctly
handle this function if the flag word at DS:[SI+2] is not 0000h
on entry
SeeAlso: AH=08h,AH=41h,AH=49h,MEM 0040h:0075h
Format of IBM/MS INT 13 Extensions drive parameters:
Offset Size Description (Table 00273)
00h WORD (call) size of buffer
(001Ah for v1.x, 001Eh for v2.x, 42h for v3.0)
(ret) size of returned data
02h WORD information flags (see #00274)
04h DWORD number of physical cylinders on drive
08h DWORD number of physical heads on drive
0Ch DWORD number of physical sectors per track
10h QWORD total number of sectors on drive
18h WORD bytes per sector
---v2.0+ ---
1Ah DWORD -> EDD configuration parameters (see #00278)
FFFFh:FFFFh if not available
---v3.0 ---
1Eh WORD signature BEDDh to indicate presence of Device Path info
20h BYTE length of Device Path information, including signature and this
byte (24h for v3.0)
21h 3 BYTEs reserved (0)
24h 4 BYTEs ASCIZ name of host bus ("ISA" or "PCI")
28h 8 BYTEs ASCIZ name of interface type
"ATA"
"ATAPI"
"SCSI"
"USB"
"1394" IEEE 1394 (FireWire)
"FIBRE" Fibre Channel
30h 8 BYTEs Interface Path (see #00275)
38h 8 BYTEs Device Path (see #00276)
40h BYTE reserved (0)
41h BYTE checksum of bytes 1Eh-40h (two's complement of sum, which makes
the 8-bit sum of bytes 1Eh-41h equal 00h)
Note: if the size is less than 30 on call, the final DWORD will not be
returned by a v2.x implementation; similarly for the Device Path info
SeeAlso: #00277,#03196
Bitfields for IBM/MS INT 13 Extensions information flags:
Bit(s) Description (Table 00274)
0 DMA boundary errors handled transparently
1 cylinder/head/sectors-per-track information is valid
2 removable drive
3 write with verify supported
4 drive has change-line support (required if drive >= 80h is removable)
5 drive can be locked (required if drive >= 80h is removable)
6 CHS information set to maximum supported values, not current media
15-7 reserved (0)
Note: bits 4-6 are only valid if bit 2 is set
SeeAlso: #00273
Format of EDD v3.0 Interface Path:
Offset Size Description (Table 00275)
---ISA---
00h WORD 16-bit base address
02h 6 BYTEs reserved (0)
---PCI---
00h BYTE PCI bus number
01h BYTE PCI device number
02h BYTE PCI function number
03h 5 BYTEs reserved (0)
SeeAlso: #00273,#00276
Format of EDD v3.0 Device Path:
Offset Size Description (Table 00276)
---ATA---
00h BYTE flag: 00h = master, 01h = slave
01h 7 BYTEs reserved (0)
---ATAPI---
00h BYTE flag: 00h = master, 01h = slave
01h BYTE logical unit number
02h 6 BYTEs reserved (0)
---SCSI---
00h BYTE logical unit number
01h 7 BYTEs reserved (0)
---USB---
00h BYTE to be determined
01h 7 BYTEs reserved (0)
---IEEE1394---
00h QWORD 64-bit FireWire General Unique Identifier (GUID)
---FibreChannel---
00h QWORD Word Wide Number (WWN)
SeeAlso: #00273,#00275
Format of Phoenix Enhanced Disk Drive Spec translated drive parameter table:
Offset Size Description (Table 00277)
00h WORD number of cylinders
02h BYTE number of heads
03h BYTE A0h (signature indicating translated table)
04h BYTE number of physical sectors per track
05h WORD starting write precompensation cylinder number
07h BYTE reserved
08h BYTE control byte (see #03198 at INT 41"DISK 0")
09h WORD number of physical cylinders
0Bh BYTE number of physical heads
0Ch WORD cylinder number of landing zone
0Eh BYTE number of logical sectors per track
0Fh BYTE checksum
Program: the Phoenix Enhanced Disk Drive Specification is an addition to the
IBM/MS INT 13 extensions
SeeAlso: #00278,#03196
Format of Phoenix Enhanced Disk Drive Spec Fixed Disk Parameter Table:
Offset Size Description (Table 00278)
00h WORD physical I/O port base address
02h WORD disk-drive control port address
04h BYTE drive flags (see #00279)
05h BYTE proprietary information
bits 7-4 reserved (0)
bits 3-0: Phoenix proprietary (used by BIOS)
06h BYTE IRQ for drive (bits 3-0; bits 7-4 reserved and must be 0)
07h BYTE sector count for multi-sector transfers
08h BYTE DMA control
bits 7-4: DMA type (0-2) as per ATA-2 specification
bits 3-0: DMA channel
09h BYTE programmed I/O control
bits 7-4: reserved (0)
bits 3-0: PIO type (1-4) as per ATA-2 specification
0Ah WORD drive options (see #00280)
0Ch 2 BYTEs reserved (0)
0Eh BYTE extension revision level (high nybble=major, low nybble=minor)
(currently 10h for v1.0 and 11h for v1.1-3.0)
0Fh BYTE 2's complement checksum of bytes 00h-0Eh
8-bit sum of all bytes 00h-0Fh should equal 00h
Note: this structure is also called the Device Paramter Table Extension
(DPTE)
SeeAlso: #00277
Bitfields for Phoenix Enhanced Disk Drive Spec drive flags:
Bit(s) Description (Table 00279)
7 reserved (1)
6 LBA enabled
5 reserved (1)
4 drive is slave
3-0 reserved (0)
SeeAlso: #00278,#00280
Bitfields for Phoenix Enhanced Disk Drive Spec drive options:
Bit(s) Description (Table 00280)
0 fast PIO enabled
1 fast DMA access enabled
2 block PIO (multi-sector transfers) enabled
3 CHS translation enabled
4 LBA translation enabled
5 removable media
6 ATAPI device (CD-ROM)
7 32-bit transfer mode
---v1.1+ ---
8 ATAPI device uses DRQ to signal readiness for packet command
(must be 0 if bit 6 is 0)
10-9 translation type (must be 00 if bit 3 is 0)
00 Phoenix bit-shifting translation
01 LBA-assisted translation
10 reserved
11 proprietary translation
---v3.0---
11 Ultra DMA access enabled
15-12 reserved (0)
SeeAlso: #00278,#00279
Top
INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE AH = 49h DL = drive number Return: CF clear if media has not changed AH = 00h CF set if media may have changed AH = 06h (see #00234) Note: unlike AH=16h, any drive number may be specified SeeAlso: AH=16h,AH=41h"INT 13 Ext",AH=46hTop
INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AH = 4Ah AL = 00h DS:SI -> specification packet (see #00281) Return: CF clear if successful CF set on error (drive will not be in emulation mode) AX = return codes SeeAlso: AH=48h,AX=4B00h,AH=4Ch,AH=4Dh Format of Bootable CD-ROM Specification Packet: Offset Size Description (Table 00281) 00h BYTE size of packet in bytes (13h) 01h BYTE boot media type (see #00282) 02h BYTE drive number 00h floppy image 80h bootable hard disk 81h-FFh nonbootable or no emulation 03h BYTE CD-ROM controller number 04h DWORD Logical Block Address of disk image to emulate 08h WORD device specification (see also #00282) (IDE) bit 0: drive is slave instead of master (SCSI) bits 7-0: LUN and PUN bits 15-8: bus number 0Ah WORD segment of 3K buffer for caching CD-ROM reads 0Ch WORD load segment for initial boot image if 0000h, load at segment 07C0h 0Eh WORD number of 512-byte virtual sectors to load (only valid for AH=4Ch) 10h BYTE low byte of cylinder count (for INT 13/AH=08h) 11h BYTE sector count, high bits of cylinder count (for INT 13/AH=08h) 12h BYTE head count (for INT 13/AH=08h) SeeAlso: #00283,AH=08h Bitfields for Bootable CD-ROM boot media type: Bit(s) Description (Table 00282) 3-0 media type 0000 no emulation 0001 1.2M diskette 0010 1.44M diskette 0011 2.88M diskette 0100 hard disk (drive C:) other reserved 5-4 reserved (0) 6 image contains ATAPI driver 7 image contains SCSI driver(s) SeeAlso: #00281Top
INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION AX = 4B00h DL = drive number or 7Fh to terminate all emulations DS:SI -> empty specification packet (see #00281) Return: CF clear if successful CF set on error (drive will still be in emulation mode) AX = return codes DS:SI specification packet filled SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4DhTop
INT 13 - Bootable CD-ROM - GET STATUS AX = 4B01h DL = drive number DS:SI -> empty specification packet (see #00281) Return: CF clear if successful CF set on error AX = return codes DS:SI specification packet filled Note: same as AX=4B00h, but does not terminate emulation SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4DhTop
INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT AH = 4Ch AL = 00h DS:SI -> specification packet (see #00281) Return: never, if successful CF set (error while attempting to boot) AX = error codes SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4DhTop
INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG AX = 4D00h DS:SI -> command packet (see #00283) Return: CF clear if successful CF set on error AX = return codes SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch Format of Bootable CD-ROM "get boot catalog" command packet: Offset Size Description (Table 00283) 00h BYTE size of packet in bytes (08h) 01h BYTE number of sectors of boot catalog to read 02h DWORD -> buffer for boot catalog 06h WORD first sector in boot catalog to transfer SeeAlso: #00281Top
INT 13 - IBM/MS INT 13 Extensions v2.1+ - SET HARDWARE CONFIGURATION AH = 4Eh AL = function 00h enable prefetch 01h disable prefetch 02h set maximum PIO transfer mode 03h set PIO mode 0 04h set default PIO transfer mode 05h enable INT 13h DMA maximum mode 06h disable INT 13h DMA DL = drive number Return: CF clear if successful AH = 00h AL = status 00h command was safe (only affected specified drive) 01h other devices are affected CF set on error AH = error code (see #00234) Note: DMA and PIO modes are mutually exclusive, so selecting DMA disables PIO (for either the specified device or all devices on that controller), and selecting PIO disables DMA SeeAlso: AH=41h"INT 13 Extensions",AX=5001h"Enhanced Disk Drive"Top
INT 13 - Enhanced Disk Drive Spec v3.0 - SEND PACKET COMMAND AX = 5001h DL = drive number ES:BX -> command packet (see #00284) Return: CF clear if successful AH = 00h CF set on error AH = error code Desc: send data to and from a serial packet-oriented device, such as IEEE1394 and USB SeeAlso: AH=41h"INT 13 Extensions",AH=4Eh Format of Enhanced Disk Drive Spec v3.0 command packet: Offset Size Description (Table 00284) 00h WORD signature B055h 02h BYTE length of packet in bytes 03h BYTE reserved (0) 04h N BYTEs formatted packet dataTop
INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK AX = 5001h Return: AX = 0150h if resident SeeAlso: AX=FD50h"VIRUS",INT 21/AX=0B56hTop
INT 13 - ScanBoot - INSTALLATION CHECK
AX = 5342h ("SB")
CX = 0001h
DX = 0000h
Return: CF clear if ScanBoot installed
AX = 0000h
CX = serial number ("SW" if shareware release)
DX = version
BX,SI,ES destroyed
Program: ScanBoot is a virus-detection TSR by PanSoft
Top
INT 13 - Seagate ST01/ST02 - Inquiry AX = 5501h DH = number of bytes to transfer DL = drive ID (80h, 81h, ...) ES:BX -> buffer for results Return: ES:BX buffer filled with the Inquiry results Notes: the ST01/ST02 BIOS does not return any success/failure indication, so all commands must be assumed to have been successful the ST01/ST02 BIOS always maps its drives after the previous BIOS drives without changing the BIOS drive count at 0040h:0075h this command is identical to the SCSI Inquiry commandTop
INT 13 - Seagate ST01/ST02 - RESERVED AX = 5502hTop
INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ) AX = 5503h DH = DTQ byte (see #00285) DL = drive ID (80h, 81h, ...) Return: nothing Bitfields for DTQ byte: Bit(s) Description (Table 00285) 7 reserved 6 SCSI drive attached 5 reserved 4 selected drive is ST225N/NP (Paired) 3 selected drive is ST225N 2 Host Adapter checks parity on the selected drive 1 selected drive has been installed 0 Seagate installation software presentTop
INT 13 U - Seagate - ??? - RETURN IDENTIFICATION AX = 5504h DX = drive (bit 7 set for hard disk) Return: CF clear if successful AX = 4321h if ST01/ST02h AX = 4322h if ??? Seagate controller CF set on error SeeAlso: AX=5505h,AX=5514hTop
INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION AX = 5504h DL = drive ID (80h, 81h, ...) Return: AX = 4321h BL = selected drive number (00h, 01h) BH = number of drives attached to Host Adapter (max. 2)Top
INT 13 - Seagate - ??? - PARK HEADS AX = 5505h DX = drive (bit 7 set for hard disk) Return: CF clear if successful CF set on error SeeAlso: AX=5504h,AX=5515hTop
INT 13 - Seagate ST01/ST02 - PARK HEADS AX = 5505h DL = drive ID (80h, 81h, ...) DH = subfunction 00h park heads (SCSI Stop command) 01h un-park heads (SCSI Start command) Return: nothingTop
INT 13 - Seagate ST01/ST02 - SCSI Bus Parity AX = 5506h DL = drive ID (80h, 81h, ...) DH = subfunction 00h disable parity check 01h enable parity check 02h return current parity setting Return: AL = status 00h parity checking disabled 01h parity checking enabledTop
INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS AX = 5507h to 550Dh Note: officially listed as "reserved"Top
INT 13 U - Seagate - ??? AX = 5514h DX = drive (bit 7 set for hard disk) Return: CF clear if successful CF set on error AX = return value (FEBEh,FEBFh,FEDAh,FEDBh) SeeAlso: AX=5504h,AX=5515hTop
INT 13 U - Seagate - PARK HEADS??? AX = 5515h DX = drive (bit 7 set for hard disk) Return: CF clear if successful CF set on error Note: appears to be identical to AX=5505h SeeAlso: AX=5504h,AX=5505hTop
INT 13 - SyQuest - Generic SCSI pass through AH = 59h CX = HOST_ID, 0-based DX = 80h ES:BX pointer to SCSI structure (see #00286) Return: CF clear AH = 95h SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=1Fh"SyQuest" Format of SyQuest SCSI structure: Offset Size Description (Table 00286) 00h WORD opcode (see #00287) 02h BYTE target's SCSI ID 03h BYTE target's logical unit number 04h BYTE data direction (00h no data xfer, 01h data in, FFh data out) 05h BYTE host status 00h successful 01h selection time out 02h data over-run or under-run 06h BYTE target status at command completion 00h successful 02h check status 08h busy 07h BYTE command data block length 08h DWORD request data length 0Ch DWORD result data length (actual length of data transferred) 10h DWORD -> CDB (see #03236,#03237,#03238) 14h DWORD -> data buffer Note: The handler does not perform a 'Request Sense' command if there was an error (Table 00287) Values for SCSI opcode: 00h verify interface clears carry flag and returns if function is available 01h returns the ID of the INT 13h Handler in a NULL terminated string of length less than 40 byte including the terminator. The string is stored in the buffer pointed by p_buf. 02h device mapping info. The caller provides a one byte buffer. The handler stores the Int 13h Device ID (80h or above) in the buffer. It stores 0 if that target does not exists. 03h execute SCSI command 04h device reset 05h SCSI bus reset SeeAlso: #00286Top
INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE??? AH = 70h ??? Return: ??? Note: Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level formatting program) make this call, presumably to EDVR.SYS (the partitioning driver) SeeAlso: AH=ADhTop
INT 13 - ??? AH = 75h ??? Return: AH = ??? ??? Note: intercepted by PC-Cache (v5.1 only)Top
INT 13 - ??? AH = 76h ??? Return: AH = ??? ??? Note: intercepted by PC-Cache (v5.1 only)Top
INT 13 - NOW! v3.05 - GET INFORMATION AX = 7B00h CX:DX -> 1F8h-byte buffer for information record (see #00288) Return: AX = 0000h BX = segment of main resident code ES = ??? Program: NOW! is a disk cache by Vertisoft Systems, Inc. SeeAlso: AX=7B02h,AH=EFh Format of NOW! information record: Offset Size Description (Table 00288) 00h 80 BYTEs name of directory from which NOW! was started 50h 424 BYTEs ??? 81h ? BYTEs array of bytes for ??? F7h 250 BYTEs array of 25 entries, one per drive??? Offset Size Description 00h 2 BYTEs ??? 02h WORD ??? 04h WORD ??? 06h 4 BYTEs ??? 1F1h 7 BYTEs ???Top
INT 13 - NOW! v3.05 - ??? AX = 7B01h Return: DX = segment of ??? SeeAlso: AX=7B00hTop
INT 13 - NOW! v3.05 - SET INFORMATION AX = 7B02h BX = segment of ??? (10h above a PSP) CX:DX -> 1F8h-byte information record (see #00288) Return: ??? Program: NOW! is a disk cache by Vertisoft Systems, Inc. Note: NOW! grabs the INT 24h value from the PSP reached via the segment in BX SeeAlso: AX=7B00hTop
INT 13 - NOW! v3.05 - ??? AX = 7B03h ??? Return: ??? SeeAlso: AX=7B00h,AX=7B04hTop
INT 13 - NOW! v3.05 - ??? AX = 7B04h ??? Return: ??? SeeAlso: AX=7B03hTop
INT 13 - NOW! v3.05 - GET DISK ACCESSES??? AX = 7B05h Return: BX:AX = number of physical accesses??? DX:CX = total disk accesses??? SeeAlso: AX=7B00h,AX=7B06hTop
INT 13 - NOW! v3.05 - GET ??? AX = 7B06h BX = ??? Return: AX = 0000h BX = ??? SeeAlso: AX=7B05h,AX=7B07hTop
INT 13 - NOW! v3.05 - GET ??? AX = 7B07h Return: AX = ??? BX = ??? CX = ??? DX = ??? SeeAlso: AX=7B06hTop
INT 13 - NOW! v3.05 - ??? AX = 7B08h CX = ??? (default 00h) Return: ??? SeeAlso: AX=7B00hTop
INT 13 - FAST! v4.02+ - API AH = 80h CX = 6572h DX = 1970h ES:BX -> request packet (see #00290) AL = function number (see #00289) Return: AH = status (except function 06h) 00h if successful 01h invalid function 05h not supported by the installed variant CF clear if successful CF set on error AL may be destroyed Program: FAST! is a disk cache by Future Computing Systems and marketed by BLOC Publishing Corp. SeeAlso: AX=8001h,AX=8006h,AX=8007h Index: hotkeys;FAST! (Table 00289) Values for FAST! function: 01h get cache information (see AX=8001h) 04h disable cache 05h enable cache and reset statistics 06h installation check (see AX=8006h) 07h unhook interrupts (see AX=8007h) 09h flush cache 0Ah (v4.02+) enable staged writes 0Bh (v4.02+) disable staged writes 0Ch (v4.02+) enable beep on flush 0Dh (v4.02+) disable beep on flush 0Eh ??? 0Fh ??? 10h (v4.12+) enable hotkeys 11h (v4.12+) disable hotkeys 12h (v4.13+) set idle delay 13h (v4.13+) set flush dirty percentage 14h (v5.00+) enable mouse checks 15h (v5.00+) disable mouse checks 16h (v5.00d+) reduce cache size to minimum 17h (v5.00d+) increase cache size to maximum Format of FAST! request packet: Offset Size Description (Table 00290) 00h DWORD pointer to 19-byte signature string (see #00291) 04h DWORD pointer to buffer for data (if needed by function) (Table 00291) Values for FAST! v4.04-v5.03 signature string: 13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15hTop
INT 13 - FAST! v4.02+ - GET CACHE INFORMATION AX = 8001h CX = 6572h DX = 1970h ES:BX -> request packet (see #00292) Return: AH = 00h if successful SeeAlso: AH=80h,AX=8006h Format of FAST! request packet: Offset Size Description (Table 00292) 00h DWORD -> 19-byte signature string (see #00291) 04h DWORD -> buffer for cache information (see #00293) Format of FAST! cache information (v5.00-5.03): Offset Size Description (Table 00293) 00h WORD binary version number of FAST! (v5.00 = 01F4h) 02h BYTE revision letter (61h = X.XXa, 62h = X.XXb, etc.) 03h BYTE FAST! variant (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS) 04h DWORD total number of read requests 08h DWORD number of physical disk reads 0Ch DWORD grabbed hash buckets 10h DWORD "st_386mem" 14h DWORD total number of writes (only counted when staging enabled) 18h DWORD number of physical disk writes (only when staging enabled) 1Ch DWORD number of write errors while flushing cache 20h WORD flags1 (see #00294) 22h WORD flags bit 0: ??? bit 1: staged writes enabled 24h WORD ??? 26h WORD maximum cache size in KB 28h WORD minimum cache size in KB 2Ah WORD segment of first cache buffer (FASTC) segment of EMS page frame (FASTE) XMS handle (FASTX XMS) 2Ch WORD number of hash buckets containing no entries 2Eh WORD number of hash buckets containing one entry 30h WORD number of hash buckets containing two entries 32h WORD number of hash buckets containing three entries 34h WORD number of hash buckets containing four entries 36h WORD number of hash buckets containing five entries 38h WORD maximum contiguous sectors 3Ah WORD hash factor 3Ch WORD number of paragraphs of memory used below 1M 3Eh WORD entries per hash bucket 40h WORD idle delay in seconds 42h 2 BYTEs ??? 44h WORD staged write threshold percentage 46h 2 BYTEs ??? 48h WORD number of dirty sectors 4Ah WORD number of staged write buffers 4Ch WORD current cache size in KB 4Eh WORD beep frequency in Hz 50h WORD ??? 52h WORD ??? Bitfields for FAST! flags1: Bit(s) Description (Table 00294) 0 beep on flush 3 hotkeys enabled 4 mouse idle check enabled 8 caching enabled 13 ???Top
INT 13 - FAST! v4.02+ - INSTALLATION CHECK AX = 8006h CX = 6572h DX = 1970h ES:BX -> request packet (see #00295) Return: AX = 1965h if installed SeeAlso: AH=80h,AX=8001h,AX=8007h Format of FAST! request packet: Offset Size Description (Table 00295) 00h DWORD -> 19-byte signature string (see #00291)Top
INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS AX = 8007h CX = 6572h DX = 1970h ES:BX -> request packet (see #00296) Return: AX = 1965h if installed SeeAlso: AH=80h,AX=8006h Index: uninstall;FAST! Format of FAST! request packet: Offset Size Description (Table 00296) 00h DWORD -> 19-byte signature string (see #00291)Top
INT 13 - Super PC-Kwik v3.20+ - ??? AH = 81h SI = 4358h ??? Return: ??? Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27) returns immediately in PC-Cache v5.x Index: PC-Cache|Qualitas QcacheTop
INT 13 - Super PC-Kwik v3.20+ - ??? AH = 82h SI = 4358h ??? Return: AL = ??? Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call SeeAlso: AH=84h Index: PC-Cache|Qualitas QcacheTop
INT 13 - Super PC-Kwik v3.20+ - ??? AH = 83h SI = 4358h AL = ??? ES:BX -> ??? ??? Return: ??? Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call SeeAlso: AH=85h Index: PC-Cache|Qualitas QcacheTop
INT 13 - Super PC-Kwik v3.20+ - ??? AH = 84h SI = 4358h AL = ??? ??? Return: AL = ??? Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call SeeAlso: AH=82h Index: PC-Cache|Qualitas QcacheTop
INT 13 - Super PC-Kwik v3.20+ - ??? AH = 85h SI = 4358h AL = ??? DL = ??? ??? Return: ??? Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds to PC-Kwik v3.20) SeeAlso: AH=83h Index: PC-Cache|Qualitas QcacheTop
INT 13 - Super PC-Kwik v4.00+ - ??? AH = 86h SI = 4358h ??? Return: ??? Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and thus supports this call Index: Qualitas QcacheTop
INT 13 - Super PC-Kwik v4.00+ - ??? AH = 87h SI = 4358h ??? Return: AH = status??? (00h) CX = ??? DX = ??? (0000h) Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and thus supports this call Index: Qualitas QcacheTop
INT 13 - Super PC-Kwik v4.00+ - ??? AH = 88h SI = 4358h ??? Return: AH = status??? (00h) CX = ??? DX = ??? (0000h) Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and thus supports this call Index: Qualitas QcacheTop
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 89h SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 8Ah SI = 4358h ??? Return: ???Top
INT 13 - HyperDisk v4.01+ - ??? AX = 8EEDh ??? Return: ??? Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross) SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AX=DF00hTop
INT 13 - HyperDisk v4.01+ - ??? AX = 8EEEh Return: CF set AX = CS of HyperDisk resident code ??? Note: identical to AX=8EEFh in HYPERDKX v4.21-4.30 SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEhTop
INT 13 - HyperDisk v4.01+ - ??? AX = 8EEFh Return: CF set AX = CS of HyperDisk resident code ??? Note: identical to AX=8EEEh in HYPERDKX v4.21-4.30 SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEhTop
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 92h SI = 4358h ??? Return: AH = status??? (00h) DL = ??? SeeAlso: AH=93hTop
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 93h SI = 4358h ??? Return: AH = status??? (00h) AL = ??? SeeAlso: AH=92hTop
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 94h SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 95h SI = 4358h ??? Return: AH = status??? (00h) DX = ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 96h SI = 4358h AL = ??? (01h) BX = ??? (0790h) DL = ??? Return: AH = status??? (00h) DX = ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 97h SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 98h SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 99h SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 9Ah SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 9Bh SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 9Ch SI = 4358h ??? Return: ??? Note: functions 9Ch and 9Dh are the only ones which are fully reentrant; all other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear if a previous call is still in progressTop
INT 13 - Super PC-Kwik v5.10+ - ??? AH = 9Dh SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT AH = A0h SI = 4358h Return: AX = segment of resident code Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call (note that PC-Cache v5.5 corresponds to PC-Kwik v3.27) SeeAlso: INT 16/AX=FFA5h/CX=1111h Index: PC-Cache|Qualitas QcacheTop
INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE AH = A1h SI = 4358h Return: CF clear AH = 00h (v5.10) Notes: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call (note that PC-Cache v5.1 corresponds to PC-Kwik v3.20) this function is one out of several cache flush calls issued by the PTS-DOS 6.51 and S/DOS 1.0 kernel before rebooting. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh Index: PC-Cache|Qualitas QcacheTop
INT 13 - Super PC-Kwik v3.20+ - ??? AH = A2h SI = 4358h ??? Return: ??? Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of Super PC-Kwik, and thus support this call (note that PC-Cache v5.1 corresponds to PC-Kwik v3.20) Index: PC-Cache|Qualitas QcacheTop
INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE AH = A3h SI = 4358h Return: CF clear SeeAlso: AH=A4hTop
INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE AH = A4h SI = 4358h Return: CF clear SeeAlso: AH=A3hTop
INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION AH = A5h SI = 4358h Return: AX = ??? SI = ??? Notes: called and used internally by Super PC-Kwik when a program terminates via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch this call is not supported by Qualitas Qcache 4.00 Index: PC-Cache SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4ChTop
INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION AH = A6h SI = 4358h DS:DX -> ASCIZ program name ES:BX -> EXEC data block (see #01590 at INT 21/AH=4Bh) Return: ??? Note: called and used internally by Super PC-Kwik when a program is loaded with INT 21/AX=4B00h SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4BhTop
INT 13 CU - Super PC-Kwik 5.1 - ??? AH = A7h SI = 4358h Return: ??? Note: called and used internally by Super PC-Kwik on some INT 21 calls SeeAlso: AH=A5h,AH=A6h,AH=A8hTop
INT 13 U - Novell DOS 7 - SDRes v27.03 - ??? AX = A759h Return: AX = 59A7h if installed DX:BX -> ??? data Program: SDRes is the resident portion of the Search&Destroy antiviral by Fifth Generation Systems, as bundled with Novell DOS 7 SeeAlso: INT 21/AH=0Eh/DL=ADhTop
INT 13 CU - Super PC-Kwik 5.1 - ??? AH = A8h SI = 4358h Return: ??? Note: called and used internally by Super PC-Kwik on some INT 21 calls SeeAlso: AH=A5h,AH=A6h,AH=A7hTop
INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION AH = A9h SI = 4358h Return: ??? Note: called and used internally by Super PC-Kwik when an application issues INT 21/AH=4Dh SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4DhTop
INT 13 - Super PC-Kwik v4+ - ??? AH = AAh SI = 4358h ??? Return: ??? Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports this callTop
INT 13 - Super PC-Kwik v4+ - ??? AH = ABh SI = 4358h ??? Return: ??? Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports this callTop
INT 13 - Super PC-Kwik v4+ - ??? AH = ACh SI = 4358h ??? Return: ??? Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports this callTop
INT 13 - Priam HARD DISK CONTROLLER??? AH = ADh ??? Return: ??? Note: this call is made from Priam's EFMT.EXE (low-level formatter), probably to check the ROM type on the controller for their hard disk kits SeeAlso: AH=70hTop
INT 13 - Super PC-Kwik v4+ - ??? AH = ADh SI = 4358h ??? Return: ??? Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports this callTop
INT 13 - Super PC-Kwik v5.10+ - ??? AH = AEh SI = 4358h ??? Return: ???Top
INT 13 - Super PC-Kwik v3.20+ - ??? AH = B0h SI = 4358h ??? Return: ??? Note: PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus supports this call; Qualitas Qcache does not support it Index: PC-CacheTop
INT 13 - Mylex/Adaptec??? - ??? AX = BF00h BX = PCI address??? DI = 0000h ??? DL = drive number (80h = C:) Return: ??? Note: some poorly-commented code using this function notes that there had been a workaround for some Mylex BIOS bug by setting DL to 8FhTop
INT 13 - XBIOS - COMMAND AX = E000h CX = 0 DL = drive number (80h,81h,82h,83h) ES:BX = pointer to XBIOS Command Block (see #00297) Return: CF clear if successful CX = 1234h XBIOS Signature CF set on error Program: XBIOS is a driver in some versions of Disk Manager that is loaded from the disk MBR, replacing the ROM BIOS disk support e.g. adding LBA mode support, and read/write multiple. SeeAlso: AH=F9h"SWBIOS" Format of XBIOS Command Block: Offset Size Description (Table 00297) 00h BYTE function 0Eh Get XBIOS Configuration Information Return: buffer points to Ontrackr_Ref_Data structure (see #00298) 01h BYTE reserved (must be zero before function call) 02h DWORD buffer pointer - Input or output depending on opcode SeeAlso: #00298,#00299 Format of Ontrackr_Ref_Data structure: Offset Size Description (Table 00298) 00h WORD Size of structure (33h) 02h BYTE VxD Chain mode 03h 12 BYTEs Drive 1: Ontrackr_VxD_Data structure (see #00299) 0Fh 12 BYTEs Drive 2: Ontrackr_VxD_Data structure 1Bh 12 BYTEs Drive 3: Ontrackr_VxD_Data structure 27h 12 BYTEs Drive 4: Ontrackr_VxD_Data structure (see #00299) SeeAlso: #00297,#00299 Format of Ontrackr_VxD_Data structure: Offset Size Description (Table 00299) 00h BYTE INT 13h drive number 01h DWORD Delta skew value 05h BYTE Physical heads (Word 3 of Identify Data) 06h BYTE Physical sectors per track (Word 6 of Identify Data) 07h BYTE Multiple Block Size (Blocking factor) 08h BYTE Read/Write Multiple disable flags 00001000b drive supports r/w multiple 00000100b do not use read multiple 00000010b do not use write multiple 09h WORD Base port address (1F0/170) 0Bh BYTE Hardware interrupt channel (14/15) SeeAlso: #00298Top
INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK AX = EC00h Return: CF clear if installed SeeAlso: AH=F2h,INT 12/AX=4350h/BX=4920hTop
INT 13 - SWBIOS - SET 1024-CYLINDER FLAG AH = EEh DL = drive number (80h, 81h) Return: CF clear AH = 00h Program: SWBIOS is a TSR by Ontrack Computer Systems Desc: the following INT 13 call will add 1024 to the specified cylinder number to get the actual cylinder number desired Notes: the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh Disk Manager also supports these calls this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+, in order to allow caching of drives using SWBIOS to access more than 1024 cylinders for software which supports that call, this function is equivalent to calling AH=EFh with CX=0400h SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AX=DF00h Index: PC-Cache;huge disks|Disk ManagerTop
INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET AH = EFh CX = cylinder offset for next INT 13 call DL = drive number (80h, 81h) Return: CF clear AH = 00h Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for IDE drives supporting the read multiple and write multiple commands Desc: the following INT 13 call will add the number given by this call to the specified cylinder to get the actual cylinder number, then reset the offset to zero Note: this function is also supported by the NOW! disk cache, and presumably newer versions of SWBIOS and Disk Manager for software which supports this call, AH=EEh is equivalent to calling this function with CX=0400h the cylinder offset is reset to 0 by all INT 13 called except AH=EEh and AH=EFh SeeAlso: AX=7B00hTop
INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK AH = F2h Return: CF ??? if installed SeeAlso: AX=EC00h,INT 12/AX=4350h/BX=4920h,INT 21/AX=0B56hTop
INT 13 - SWBIOS - INSTALLATION CHECK AH = F9h DL = drive number (80h,81h) Return: CF clear DX = configuration word bit 15 set if other SWBIOS extensions available CF set on error Program: SWBIOS is a TSR by Ontrack Computer Systems XBIOS is a driver in some versions of Disk Manager that is loaded from the disk MBR, replacing the ROM BIOS disk support eg adding LBA mode support, and read/write multiple. Note: Disk Manager also supports these calls SeeAlso: AH=EEh,AX=E000h"XBIOS",AH=FFh"EZ-Drive" Index: Disk ManagerTop
INT 13 - PC Tools v8+ VSAFE, VWATCH - API AH = FAh DX = 5945h AL = function (00h-07h) Return: varies by function if not installed: CF set AH = 01h Note: this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh, so it is listed in its entirety under INT 16/AX=FA00h and following SeeAlso: INT 16/AX=FA00hTop
INT 13 - VIRUS - "Predator" - INSTALLATION CHECK AX = FD50h Return: AX = 50FDh if resident SeeAlso: AX=5001h"VIRUS",INT 16/AH=DDh"VIRUS"Top
INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT AH = FEh DL = drive number (80h, 81h) Return: CF clear DX = number of cylinders beyond 1024 on drive Program: SWBIOS is a TSR by Ontrack Computer Systems Notes: standard INT 13/AH=08h will return a cylinder count truncated to 1024 BIOS without this extension would return count modulo 1024 Disk Manager also supports these calls SeeAlso: AH=EEhTop
INT 13 - EZ-Drive - INSTALLATION CHECK AH = FFh DL = drive number (80h) Return: CF clear AX = AA55h ES:BX -> string "AERMH13Vxx", where xx is the version number of the EZ-Drive driver CF set on error Program: EZ-Drive is a driver by Micro House that is loaded from the hard disk MBR, replacing the ROM BIOS disk support, eg adding LBA mode support, and read/write multiple. Note: this function is called by the Windows95 Master Boot Record SeeAlso: AX=E000h"XBIOS",AH=F9h"SWBIOS"Top
INT 13 - IBM SurePath BIOS - Officially "Private" Function AH = FFhTop
INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE AX = FFFFh BH = AAh BL = subfunction 00h installation check Return: AX = 1234h if installed 01h turn on Turbo mode 02h turn off Turbo mode 03h set Turbo mode according to hardware switch 04h set disk access to Turbo mode 05h set disk access to Normal mode Return: nothing SeeAlso: INT 15/AH=DFh Index: installation check;UNIQUE UX Turbo UtilityTop
INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS) InstallCheck: determine whether the "~DOSXAM~" character device exists Index: installation check;Digiboard DigiCHANNELTop
INT 14 - SERIAL - INITIALIZE PORT AH = 00h AL = port parameters (see #00300) DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS) Return: AH = line status (see #00304) FFh if error on Digiboard XAPCM232.SYS AL = modem status (see #00305) Notes: default handler is at F000h:E739h in IBM PC and 100% compatible BIOSes since the PCjr supports a maximum of 4800 bps, attempting to set 9600 bps will result in 4800 bps various network and serial-port drivers support the standard BIOS functions with interrupt-driven I/O instead of the BIOS's polled I/O the 1993/04/08 Compaq system ROM uses only the low two bits of DX the default setting used by DOS (MS-DOS 6, DR-DOS 7.03, PTS-DOS) when (re-)initializing the serial devices is AL=A3h (2400 bps, no parity, 1 stop bit, 8 data bits). SeeAlso: AH=04h"SERIAL",AH=04h"MultiDOS",AH=05h"SERIAL",AH=57h SeeAlso: AX=8000h"ARTICOM",AH=81h"COMM-DRV",AH=82h"COURIERS",AH=8Ch SeeAlso: MEM 0040h:0000h,PORT 03F8h"Serial" Bitfields for serial port parameters: Bit(s) Description (Table 00300) 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps) 4-3 parity (00 or 10 = none, 01 = odd, 11 = even) 2 stop bits (set = 2, clear = 1) 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8) SeeAlso: #00302,#00307,#00308,#00309Top
INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE AH = 00h AL = initializing parameters 7 - 6 - 5 4 - 3 2 1 - 0 -BAUD RATE- PARITY STOP WORD BITS LENGTH 000 19200 bd 00 none 0: 1 00: 5 001 38400 bd 01 odd 1: 2 01: 6 010 300 bd 11 even 10: 7 011 600 bd 11: 8 100 1200 bd 101 2400 bd 110 4800 bd 111 9600 bd (4800 on PCjr) DX = port number (0-3 or FFh if only performing non-I/O setup) Return: AH = RS-232 status code bits (see #00301) AL = modem status bits bit 3: always 1 bit 7: DCD - carrier detect SeeAlso: #00300,AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS" Bitfields for FOSSIL RS-232 status: Bit(s) Description (Table 00301) 0 RDA - input data is available in buffer 1 OVRN - data has been lost 5 THRE - room is available in output buffer 6 TSRE - output buffer emptyTop
INT 14 - Tandy 2000 - SERIAL - RESET COMM PORT AH = 00h AL = RS-232C parameters (see #00302) DL = port number DH = protocol bit 0: use XON/XOFF on received data bit 1: use XON/XOFF when transmitting Return: AH = line status (see #00304) AL = modem status (see #00305) Note: this interrupt is identical to INT 53 on the Tandy 2000 SeeAlso: AH=04h"Tandy 2000",INT 53"Tandy 2000"Top
INT 14 - MBBIOS - INITIALIZE PORT AH = 00h AL = port parameters (see #00302) DX = port number Return: AH = line status (see #00304) AL = modem status (see #00305) Note: MBBIOS was written by H. Roy Engehausen SeeAlso: AH=04h"MBBIOS",AH=05h"MBBIOS",AH=09h"MBBIOS" Bitfields for MBBIOS port parameters: Bit(s) Description (Table 00302) 7-5 data rate (normally 110,150,300,600,1200,2400,4800,9600 bps; 9600,14400,19200,28800,38400,57600,115200,330400 bps if the high-speed option is set) 4-3 parity (00 or 10 = none, 01 = odd, 11 = even) 2 stop bits (set = 2, clear = 1) 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8) SeeAlso: #00300Top
INT 14 - Connection Manager - MODIFY DEFAULT CONNECTION PARAMETERS AH = 00h DX = FFFFh ES:DI -> vector string specifying new parameters Return: AH = return code (00h,03h) (see #00303) Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network Note: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS function, but redirects the port over the network; if DX is any other value, the call is chained SeeAlso: AH=04h/DX=FFFFh,AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh (Table 00303) Values for Connection Manager return code: 00h successful 01h no such connection 02h invalid connection ID 03h invalid subvector found 04h communication error (check BH) 06h insufficient resources, retry later FFh no data availableTop
INT 14 - SERIAL - WRITE CHARACTER TO PORT AH = 01h AL = character to write DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS) Return: AH bit 7 clear if successful AH bit 7 set on error AH bits 6-0 = port status (see #00304) Notes: various network and serial-port drivers support the standard BIOS functions with interrupt-driven I/O instead of the BIOS's polled I/O the 1993/04/08 Compaq system ROM uses only the low two bits of DX SeeAlso: AH=02h,AH=0Bh"FOSSIL",AX=8000h"ARTICOM",AH=89h,MEM 0040h:007ChTop
INT 14 - Connection Manager - SEND CHARACTER AH = 01h DX = FFFFh BH = character to send Return: AH = return code (00h-02h,06h) (see #00303) Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS function, but redirects the port over the network; if DX is any other value, the call is chained this function is provided primarily for compatibility; AH=06h/DX=FFFFh is the preferred function because it provides better performance SeeAlso: AH=02h/DX=FFFFh,AH=06h/DX=FFFFh,AH=09h/DX=FFFFhTop
INT 14 - SERIAL - READ CHARACTER FROM PORT AH = 02h AL = 00h (ArtiCom) DX = port number (00h-03h (04h-43h for Digiboard XAPCM232.SYS)) Return: AH = line status (see #00304) AL = received character if AH bit 7 clear Notes: will timeout if DSR is not asserted, even if function 03h returns data ready various network and serial-port drivers support the standard BIOS functions with interrupt-driven I/O instead of the BIOS's polled I/O the 1993/04/08 Compaq system ROM uses only the low two bits of DX SeeAlso: AH=01h,AH=02h"FOSSIL",AH=84h,AH=FChTop
INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT AH = 02h DX = port number (0-3) Return: AL = character received AH = 00h SeeAlso: AH=01h,AH=02h"SERIAL"Top
INT 14 - Connection Manager - RECEIVE CHARACTER AH = 02h DX = FFFFh BH = character to send Return: AH = return code (00h-02h,04h,FFh) (see #00303) BH = line status (see #00304) AL = received character (if any) Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS function, but redirects the port over the network; if DX is any other value, the call is chained this function is provided primarily for compatibility; AH=07h/DX=FFFFh is the preferred function because it provides better performance SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh,AH=06h/DX=FFFFhTop
INT 14 - SERIAL - GET PORT STATUS AH = 03h AL = 00h (ArtiCom) DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS) Return: AH = line status (see #00304) AL = modem status (see #00305) AX = 9E00h if disconnected (ArtiCom) Note: the 1993/04/08 Compaq system ROM uses only the low two bits of DX SeeAlso: AH=00h,AH=07h"MultiDOS",AX=8000h"ARTICOM",AH=81h"COURIERS",AX=FD02h Bitfields for serial line status: Bit(s) Description (Table 00304) 7 timeout 6 transmit shift register empty 5 transmit holding register empty 4 break detected 3 framing error 2 parity error 1 overrun error 0 receive data ready Note: for COMM-DRV, if bit 7 is set, an error occurred, and may be retrieved through a separate call (see AX=8000h"COMM-DRV") Bitfields for modem status: Bit(s) Description (Table 00305) 7 carrier detect 6 ring indicator 5 data set ready 4 clear to send 3 delta carrier detect 2 trailing edge of ring indicator 1 delta data set ready 0 delta clear to sendTop
INT 14 - Connection Manager - RETURN COMMUNICATION PORT STATUS AH = 03h DX = FFFFh AL = connection ID Return: AH = return code (00h-02h) (see #00303) BH = line status (see #00306) BL = modem status (see #00305) (only bits 4,5,7; all others zero) Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS function, but redirects the port over the network; if DX is any other value, the call is chained SeeAlso: AH=00h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Ah/DX=FFFFh Bitfields for Connection Manager line status: Bit(s) Description (Table 00306) 7 CTS changed 6 current CTS state 5 timeout 4 break 3 framing error 2 parity error 1 overrun 0 current carrier state (0 active, 1 no carrier)Top
INT 14 - SERIAL - EXTENDED INITIALIZE (CONVERTIBLE,PS) AH = 04h AL = break status 00h if break 01h if no break BH = parity (see #00307) BL = number of stop bits 00h one stop bit 01h two stop bits (1.5 if 5 bit word length) CH = word length (see #00308) CL = bps rate (see #00309) DX = port number Return: AX = port status code (see #00304,#00305) SeeAlso: AH=00h,AH=1Eh,AX=8000h"ARTICOM" (Table 00307) Values for serial port parity: 00h no parity 01h odd parity 02h even parity 03h stick parity odd 04h stick parity even SeeAlso: #00300,#00308,#00309,#00310 (Table 00308) Values for serial port word length: 00h 5 bits 01h 6 bits 02h 7 bits 03h 8 bits SeeAlso: #00300,#00307,#00309,#00345 (Table 00309) Values for serial port bps rate: 00h 110 (19200 if ComShare installed) 01h 150 (38400 if ComShare installed) 02h 300 03h 600 (14400 if ComShare installed) 04h 1200 05h 2400 06h 4800 (28800 if ComShare installed) 07h 9600 08h 19200 ---ComShare--- 09h 38400 0Ah 57600 0Bh 115200 SeeAlso: #00300,#00307,#00309,#00346,#00353,AH=36h,#00364,#00606,#02923Top
INT 14 - Tandy 2000 - SERIAL - FLUSH COMM BUFFER AH = 04h DL = port number DH = protocol bit 0: use XON/XOFF on received data bit 1: use XON/XOFF when transmitting Return: nothing Desc: clears the serial interface buffer Note: this interrupt is identical to INT 53 on the Tandy 2000 SeeAlso: AH=00h"Tandy 2000",INT 53"Tandy 2000"Top
INT 14 - FOSSIL - INITIALIZE DRIVER AH = 04h DX = port number optionally BX=4F50h ES:CX -> byte to be set upon ^C Return: AX = 1954h (if successful) BL = maximum function number supported (excluding 7Eh and above) BH = revision of FOSSIL specification supported DTR is raised Note: the word at offset 6 in the interrupt handler contains 1954h, and the following byte contains the maximum function number supported; this can serve as an installation check SeeAlso: AH=05h"FOSSIL",AH=1Ch,INT 11/AH=BCh Index: installation check;FOSSILTop
INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT AH = 04h Return: port initialized; if Hayes-compatible modem, a connection has been established Note: the port number is stored at offset BEh in the Task Control Block (see #00456 at INT 15/AH=13h"MultiDOS") SeeAlso: AH=00h,AH=05h"MultiDOS",AH=20h"MultiDOS",INT 15/AH=13h"MultiDOS"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE AH = 04h AL = initializing parameters (see #00310) BX = baud rate DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful FFh error SeeAlso: AH=05h"Digiboard" Bitfields for Digiboard initializing parameters: Bit(s) Description (Table 00310) 7-5 unused 4-3 parity (00 none, 01 odd, 11 even) 2 stop bits (0 = one, 1 = two) 1-0 data bits (00 = five, 01 = six, 10 = seven, 11 = eight) SeeAlso: #00307,#00308Top
INT 14 - MBBIOS - INSTALLATION CHECK AH = 04h DX = port number Return: AX = AA55h if installed on specified port SeeAlso: AH=00h"MBBIOS",AH=09h"MBBIOS"Top
INT 14 - Connection Manager - OPEN COMMUNICATION AH = 04h DX = FFFFh ES:DI -> Connection Request protocol vector (see #00311) Return: AH = return code 00h successful AL = connection ID BH = connection type 00h direct connection or no dialing 01h Connection Server dialed phone 01h no response from Connection Server 03h invalid request Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network Desc: initiate a connection to the Connection Server listed in the current Client parameter set Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS function, but redirects the port over the network; if DX is any other value, the call is chained all subvectors of the Connection Request vector are optional; if missing, default values are provided by the default connection parameter set SeeAlso: AH=00h/DX=FFFFh,AH=05h/DX=FFFFh,AH=06h/DX=FFFFh,AH=07h/DX=FFFFh SeeAlso: AH=0Ah/DX=FFFFh,AH=0Ch/DX=FFFFh Format of Connection Manager protocol command vector: Offset Size Description (Table 00311) 00h WORD (big-endian) total length of command (including this word) 02h WORD (big-endian) command code EF01h Connection Request EF06h Modify Connection Parameters 04h N BYTEs list of subvectors (see #00313) allowable subvector types are 01h-04h,17h,18h for command code EF01h; 03h,04h for command code EF06h (see #00312) (Table 00312) Values for Connection Manager subvector type code: 01h Connection ID 02h Destination ID 03h Asynchronous line parameters 04h Data transfer parameters 09h Line speed 0Ah Serial coding 0Bh Packet size 0Ch Timers 0Dh Special characters 0Eh Target ID 0Fh Telephone number 10h ASCII destination ID 11h Parity 12h Bits per character 13h Number of stop bits 14h Packet timer 15h Intercharacter timer 17h Flags 18h Parameter ranges 19h Flow control Format of Connection Manager subvector: Offset Size Description (Table 00313) 00h BYTE length of subvector 01h BYTE type code (see #00312) 02h N-2 BYTEs data, which may include subvectors SeeAlso: #00314,#00315,#00316,#00317,#00318,#00319,#00320,#00321,#00322,#00323,#00324 SeeAlso: #00325,#00326,#00328,#00329,#00330,#00331,#00332,#00333,#00311 Format of Connection ID subvector: Offset Size Description (Table 00314) 00h BYTE 03h (length) 01h BYTE 01h (subvector "Connection ID") 02h BYTE connection ID SeeAlso: #00313 Format of Destination ID subvector: Offset Size Description (Table 00315) 00h BYTE length 01h BYTE 02h (subvector "Destination ID") 02h N BYTEs subvector(s) of type 0Eh, 0Fh, or 10h SeeAlso: #00313 Format of Asynchronous line parameters subvector: Offset Size Description (Table 00316) 00h BYTE length 01h BYTE 03h (subvector "Asynchronous line parameters") 02h N BYTEs subvector(s) of type 09h, 0Ah, or 19h SeeAlso: #00313 Format of Data transfer parameters subvector: Offset Size Description (Table 00317) 00h BYTE length 01h BYTE 04h (subvector "Data transfer parameters") 02h N BYTEs subvector(s) of type 0Bh, 0Ch, or 0Dh SeeAlso: #00313 Format of Line speed subvector: Offset Size Description (Table 00318) 00h BYTE 04h (length) 01h BYTE 09h (subvector "Line speed") 02h WORD bit map, highest set bit selects speed bit 0: 2400 bits 1-7: 1800, 1200, 600, 300, 115200, 150, 110 bps bits 8-15: 57600, 38400, 19200, 14400, 9600, 7200, 4800, 3600 SeeAlso: #00313 Format of Serial coding subvector: Offset Size Description (Table 00319) 00h BYTE length 01h BYTE 0Ah (subvector "Serial coding") 02h N BYTEs subvector(s) of type 11h, 12h, or 13h SeeAlso: #00313 Format of Packet size subvector: Offset Size Description (Table 00320) 00h BYTE 04h (length) 01h BYTE 0Bh (subvector "Packet size") 02h WORD (big-endian) packet size, 1 to 1024 SeeAlso: #00313 Format of Timers subvector: Offset Size Description (Table 00321) 00h BYTE length 01h BYTE 0Ch (subvector "Timers") 02h 8 BYTEs subvector of type 14h or 15h SeeAlso: #00313 Format of Special characters subvector: Offset Size Description (Table 00322) 00h BYTE length 01h BYTE 0Dh (subvector "Special characters") 02h N BYTEs list of ASCII characters to be used as EOM or EOB SeeAlso: #00313 Format of Target ID: Offset Size Description (Table 00323) 00h BYTE length 01h BYTE 0Eh (subvector "Target ID") 02h N BYTEs target ID, 1-16 bytes SeeAlso: #00313 Format of Telephone number subvector: Offset Size Description (Table 00324) 00h BYTE length 01h BYTE 0Fh (subvector "Telephone number") 02h N BYTEs telephone number SeeAlso: #00313 Format of ASCII destination ID subvector: Offset Size Description (Table 00325) 00h BYTE length 01h BYTE 10h (subvector "ASCII destination ID") 02h N BYTEs destination ID SeeAlso: #00313 Format of Parity subvector: Offset Size Description (Table 00326) 00h BYTE 03h (length) 01h BYTE 11h (subvector "Parity") 02h BYTE parity type (see #00327) SeeAlso: #00313 Bitfields for Connection Manager parity type: Bit(s) Description (Table 00327) 7 odd 6 even 5 mark 4 space 3 none SeeAlso: #00326 Format of Bits per character subvector: Offset Size Description (Table 00328) 00h BYTE 03h (length) 01h BYTE 12h (subvector "Bits per character") 02h BYTE bits per character bit 7: seven bit 6: eight SeeAlso: #00313 Format of Number of stop bits subvector: Offset Size Description (Table 00329) 00h BYTE 03h (length) 01h BYTE 13h (subvector "Number of stop bits") 02h BYTE stop bits bit 7: one bit 6: 1.5 bit 5: two SeeAlso: #00313 Format of Packet timer and Intercharacter timer subvectors: Offset Size Description (Table 00330) 00h BYTE 04h (length) 01h BYTE subvector type 14h Packet timer 15h Intercharacter timer 02h WORD (big-endian) unit of value representing 20ms SeeAlso: #00313 Format of Flags subvector: Offset Size Description (Table 00331) 00h BYTE 03h (length) 01h BYTE 17h (subvector "Flags") 02h BYTE flags bit 7: queueing requested SeeAlso: #00313 Format of Parameter ranges subvector: Offset Size Description (Table 00332) 00h BYTE length 01h BYTE 18h (subvector "Parameter ranges") 02h N BYTEs subvector(s) of type 09h, 11h, 12h, or 13h SeeAlso: #00313 Format of Flow control subvector: Offset Size Description (Table 00333) 00h BYTE length (02h-04h) 01h BYTE 19h (subvector "Flow control") 02h BYTE XOFF character 03h BYTE XON character Note: if length is 02h, flow control is disabled; if length is 03h, any character will be accepted as XON after an XOFF SeeAlso: #00313Top
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INSTALLATION CHECK AX = 0400h Return: AX = 0FF0h SeeAlso: AX=0401h,AX=0408hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INITIALIZE MODE AX = 0401h CX = mode Return: nothing SeeAlso: AX=0400h,AX=0402hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE AX = 0402h CL = parameters Return: nothing SeeAlso: AX=0400h,AX=0401hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT AX = 0403h CX = timeout Return: nothing SeeAlso: AX=0400hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER AX = 0404h Return: nothing SeeAlso: AX=0400h,AX=0405h,AX=0406hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET RECEIVE BUFFER COUNT AX = 0405h Return: AX = number of characters in buffer SeeAlso: AX=0400h,AX=0404h,AX=0407hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE TRANSMIT BUFFER AX = 0406h Return: nothing SeeAlso: AX=0400h,AX=0404h,AX=0407hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET TRANSMIT BUFFER COUNT AX = 0407h Return: AX = number of characters in the buffer SeeAlso: AX=0400h,AX=0405h,AX=0406hTop
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - UNINSTALL AX = 0408h Return: nothing SeeAlso: AX=0400hTop
INT 14 - SERIAL - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS) AH = 05h AL = function 00h read modem control register Return: BL = modem control register (see #00334) AH = status 01h write modem control register BL = modem control register (see #00334) Return: AX = status DX = port number Note: also supported by ArtiCom SeeAlso: AH=00h,AH=1Fh,AX=8000h"ARTICOM",AH=FBh Bitfields for modem control register: Bit(s) Description (Table 00334) 0 data terminal ready 1 request to send 2 OUT1 3 OUT2 4 LOOP 5-7 reservedTop
INT 14 - FOSSIL - DEINITIALIZE DRIVER AH = 05h DX = port number Return: none DTR is not affected SeeAlso: AH=00h,AH=04h"FOSSIL",AH=1Dh,AH=8DhTop
INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT AH = 05h AL = timeout in seconds (00h = never) Return: AL = status 00h successful AH = character read 01h read error 02h timed out other modem status (CTS, DSR) changed Note: the port number is stored at offset BEh in the Task Control Block SeeAlso: AH=02h,AH=04h"MultiDOS",AH=06h"MultiDOS",AH=22h"MultiDOS" SeeAlso: INT 15/AH=13h"MultiDOS"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL AH = 05h AL = protocol (see #00335) BH = new XOFF character (00h = current) BL = new XON character (00h = current) DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful FFh error SeeAlso: AH=04h"Digiboard" Bitfields for Digiboard protocol: Bit(s) Description (Table 00335) 7-4 unused 3 RTS/CTS 2 DSR 1,0 XON/XOFFTop
INT 14 - MBBIOS - DROP DTR AND RTS AH = 05h DX = port number Return: none SeeAlso: AH=00h"MBBIOS",AH=06h"MBBIOS",AH=06h"FOSSIL"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHANGE PORT PROTOCOL AH = 05h AL = new port protocol (see #00336) BH = new XOFF character BL = new XON character DX = port number Return: AH = FFh if invalid protocol SeeAlso: AH=00h,AH=04h"SERIAL",AH=06h"PC-MOS" Bitfields for PC-MOS/386 serial port protocol: Bit(s) Description (Table 00336) 7 set to enable/disable CD monitoring, clear to set protocol ---bit 7 set--- 4 CD monitoring enabled 5 automatic restart enabled ---bit 7 clear--- 0 receive XON/XOFF 1 transmit XON/XOFF 2 DTR/DSR 3 RTS/CTSTop
INT 14 - PhysTechSoft PTS ROM-DOS - SET PACKET
AH = 05h
CX = packet length
DX = port number
DS:SI -> packet
Return: AH = error code (0 = no error, -1 = error)
Notes: The embedded PC can send messages at any time. The managing PC may
force the embedded PC to receive messages only after causing a reset
on the remote embedded PC.
!!!from Matthias Paul:
Description of the high-level control packets:
After the reset the embedded PC will send a 4-byte packet "LOAD"
to the managing PC to indicate it is now able to receive commands.
The managing PC can send commands using 6-byte sized packets starting
with "COMM" followed by a 2-byte command code:
"01" demand setup information
"02" demand sending of diagnostic information
If diagnostic information is requested, the embedded PC will send back
a header packet starting with 4-byte "DIAG" followed by 2 bytes
indicating the count of diagnostic data packets following. Each
diagnostic data packet is sized 134 bytes, starting with the 4-byte
"DIAG", a 2-byte number packet, followed by 128 bytes of data.
If setup information is requested, the embedded PC will send back
8 bytes length packets starting with "SETP" and 2 byte of setup
information of the LOADER and BIOS. The contents varies.
If the embedded PC requests the managing PC to send a BIOS it will
send a 4 byte packet "BIOS".
The managing PC will then send back a 6-byte sized BIOS header packet
starting with "BIOS" and a 2-byte indicator of the BIOS image size
in packets.
The embedded PC will answer by sending a 6 byte packet starting with
"BIOS" followed by the running number of the demanded packet.
The managing PC will then send the requested part of the BIOS image
in a 134 byte sized packet, starting with "BIOS", the 2 byte running
number of the packet and 128 bytes of the actual BIOS info.
The embedded PC acknowledges that it received the BIOS with a 6-byte
packet "BIOS", followed by 2-bytes of 0.
If the embedded PCs requests the managing PC to send the operating
system, it will follow the same proceduce as for requesting the
BIOS. The only difference is that instead of "BIOS", the string
"PTOS" will be used in the communication.
Debug information packets have a length of 32 bytes starting with
the 4-byte "DEBU" signature, and followed by the contents of the
PCU registers in the following order: SP, SS, ES, DS, BP, DI, SI,
DX, CX, BX, AX, IP, CS, Flags. Debug information is send after
reaching the corresponding breakpoint.
Description of the low-level packet protocol:
Before sending a packet the sending side sends a byte 52h and for a
certain time (ca. 1 second for the embedded PC) waits for
confirmation (41h) from the receiving side. If no acknowledge is
received this procedure is repeated 4 more times before an error is
returned.
If acknowledge was received the following information is sent:
2 BYTEs synchronization (50h, 50h)
BYTE data packet size - 1
2 BYTEs CRC of the data
var. data
2 BYTEs synchronization (F0h, F0h)
The receiving side must acknowledge this by sending back two bytes
59h, 59h. If the sender does not receive the confirmation, it
tries 4 more times before returning an error.
SeeAlso: INT 14h/AH=06h, INT 15h/AX=E908h, INT 15h/E909h
Top
INT 14 - Connection Manager - CLOSE COMMUNICATION AH = 05h DX = FFFFh AL = connection ID Return: AH = return code 00h successful 01h no such connection 02h invalid connection ID AL = correct connection ID Desc: terminate existing connection to allow another one to be established Note: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS function, but redirects the port over the network; if DX is any other value, the call is chained SeeAlso: AH=04h/DX=FFFFh,AH=0Dh/DX=FFFFhTop
INT 14 - FOSSIL - RAISE/LOWER DTR AH = 06h DX = port AL = DTR state to be set 00h = lower 01h = raise Return: nothing SeeAlso: AH=05h"MBBIOS",AH=1AhTop
INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT AH = 06h AL = character Return: AL = status 00h successful Notes: the port number is stored at offset BEh in the Task Control Block if output queue is full, the calling task is blocked until the character can be stored SeeAlso: AH=01h,AH=04h"MultiDOS",AH=05h"MultiDOS",AH=21h"MultiDOS" SeeAlso: INT 15/AH=13h"MultiDOS"Top
INT 14 - MBBIOS - RAISE DTR AND RTS AH = 06h DX = port number Return: none SeeAlso: AH=05h"MBBIOS",AH=07h"MBBIOS"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DRIVER 'ID' FUNCTION AH = 06h DX = port number Return: AH bit 7 set AL = number of highest function supported by driver Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc. SeeAlso: AH=18h"PC-MOS"Top
INT 14 - TelAPI - WRITE BLOCK AH = 06h CX = number of characters to write DX = port number ES:DI -> buffer containing data Return: AX = number of characters actually sent (negative on error) CX = ??? SeeAlso: AH=07h"TelAPI",AH=E0h"TelAPI",AH=E3h"TelAPI"Top
INT 14 - PhysTechSoft PTS ROM-DOS - GET PACKET AH = 06h CX = buffer size for packet DX = port number DS:SI -> buffer for packet Return: AH = error code (00h = no error, FFh = error) CX = packet size SeeAlso: AH=05h"PTS ROM-DOS",INT 15/AX=E908h,INT 15/AX=E909hTop
INT 14 - Connection Manager - SEND CHARACTER BLOCK AH = 06h DX = FFFFh AL = connection ID CX = number of characters to send ES:DI -> buffer containing data to be sent Return: AH = return code (see #00303) Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=04h/DX=FFFFh,AH=07h/DX=FFFFh,AH=09h/DX=FFFFhTop
INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS AH = 07h Return: AL = timer tick interrupt number AH = ticks per second on interrupt number in AL DX = approximate number of milliseconds per tick SeeAlso: AH=16hTop
INT 14 - MultiDOS Plus IODRV - GET PORT STATUS AH = 07h Return: CL = modem status (see #00305) CH = character at head of input queue (if any) DX = number of characters in input queue Note: the port number is stored at offset BEh in the Task Control Block SeeAlso: AH=03h,AH=05h"MultiDOS",AH=08h"MultiDOS",AH=09h"MultiDOS" SeeAlso: AH=23h"MultiDOS",INT 15/AH=13h"MultiDOS"Top
INT 14 - MBBIOS - SEND BREAK AH = 07h DX = port number Return: none SeeAlso: AH=06h"MBBIOS",AH=FAh"EBIOS"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SEND RS-232 BREAK AH = 07h BX = duration of break in clock ticks DX = port number Return: nothingTop
INT 14 - TelAPI - READ BLOCK AH = 07h CX = length of buffer in bytes DX = port number ES:DI -> buffer for data Return: AX > 0000h number of characters actually read AX = 0000h host has closed connection AX < 0000h error code (see #00397) CX = ??? Note: translates CRLF into local EOL if the connection is in ASCII mode, negotiates various Telnet options, and immediately executes several different Telnet action commands SeeAlso: AH=06h"TelAPI",AH=E0h"TelAPI",AH=E2h"TelAPI"Top
INT 14 - Connection Manager - RECEIVE CHARACTER BLOCK AH = 07h DX = FFFFh AL = connection ID BL = flag 00h wait for data nonzero do not wait if no data avaiable CX = size of receive buffer ES:DI -> buffer for received characters Return: AH = return code (00h-02h,04h,FFh) (see #00303) BH = line status (see #00306) CX = number of characters received Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=01h/DX=FFFFh,AH=04h/DX=FFFFh,AH=06h/DX=FFFFhTop
INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE AH = 08h DX = port number Return: nothing SeeAlso: AH=09h"FOSSIL"Top
INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS AH = 08h Return: AL = line status (see #00304) AH destroyed Notes: the port number is stored at offset BEh in the Task Control Block on every line status change, the line status is ORed with the line status accumulator; this function returns the accumulator and clears it SeeAlso: AH=03h,AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK AH = 08h DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = RS232 status bits (see #00304 at AH=03h) ZF set if no characters queued ZF clear if character available AL = next character SeeAlso: AH=03h,AH=08h"PC-MOS",AH=09h"Digiboard",AH=14h"Digiboard"Top
INT 14 - MBBIOS - NON-DESTRUCTIVE READ AH = 08h DX = port number Return: AL = character (if AH bit 0 set) AH = status (see #00304) SeeAlso: AH=0Bh"MBBIOS",AH=0Ch"FOSSIL"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STATUS CHECK AH = 08h DX = port number Return: CF set if carrier loss detected ZF set if input buffer empty ZF clear if characters available AL = next character dequeuedTop
INT 14 - Connection Manager - RETURN DEFAULT CONNECTION PARAMETERS AH = 08h DX = FFFFh CX = size of buffer for parameters or 0000h to get length ES:DI -> buffer for parameter vector (see #00311) Return: AH = return code 00h successful CX = number of bytes required (if CX=0000h on entry) CX = number of bytes omitted for lack of space (if CX nonzero) nonzero invalid request Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFhTop
INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT AH = 09h DX = port number Return: nothing SeeAlso: AH=08h"FOSSIL",AH=0Ah"FOSSIL",AH=88hTop
INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS AH = 09h Return: modem status byte cleared Note: the port number is stored at offset BEh in the Task Control Block SeeAlso: AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS AH = 09h DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful FFh error SeeAlso: AH=08h"Digiboard",AH=0Ah"Digiboard",AH=10h"Digiboard"Top
INT 14 - MBBIOS - GET/SET OPTIONS AH = 09h AL = option byte (see #00337) DX = port number??? Return: AL = old option byte SeeAlso: AH=00h"MBBIOS",AH=04h"MBBIOS",AH=10h"FOSSIL" Bitfields for MBBIOS option byte: Bit(s) Description (Table 00337) 0 transmit buffering enabled 2 hardware handshaking enabled 5 high-speed option enabled (see AH=00h"MBBIOS",#00302) other reservedTop
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RESET I/O BUFFER POINTERS AH = 09h DX = port number Return: nothing SeeAlso: AH=13h"PC-MOS"Top
INT 14 - Connection Manager - SEND BREAK AH = 09h DX = FFFFh AL = connection ID Return: AH = return code (00h-02h) (see #00303 at AH=00h/DX=FFFFh) Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFhTop
INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT AH = 0Ah DX = port number Return: nothing SeeAlso: AH=09h"FOSSIL",AH=85hTop
INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK AH = 0Ah DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AX = number of characters available in buffer Note: this function is also supported by the PC-MOS/386 v5.01 $serial.sys SeeAlso: AH=09h"Digiboard",AH=0Dh"Digiboard"Top
INT 14 - MBBIOS - WRITE BUFFER AH = 0Ah CX = count ES:DI -> buffer (see #00338) Return: AX = status (see #00304,#00305) CX = unsent character count DI updated Note: the PACCOM version of MBBIOS does not use CX or ES:DI; instead, ES contains the segment of a buffer containing the packet to be sent, which by default will be freed once the packet has been sent. Use AH=0Ch"MBBIOS" to allocate the buffer. SeeAlso: AH=01h,AH=0Bh"MBBIOS",AH=0Ch"MBBIOS",AH=19h"FOSSIL" Format of MBBIOS PACCOM buffer: Offset Size Description (Table 00338) 00h 504 BYTEs data area 1F8h WORD length of data in data area 1FAh BYTE flags/status bit 7: don't discard buffer after transmitting data bit 6: buffer has been transmitted 1FBh BYTE reserved (0) for additional flags/status 1FCh WORD user data 1FEh WORD MBBIOS-internal pointer to next bufferTop
INT 14 - Connection Manager - MODIFY ACTIVE CONNECTION PARAMETERS AH = 0Ah DX = FFFFh ES:DI -> vector string containing new parameters (see #00311) Return: AH = return code (00h-03h,06h) (see #00303) Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network Note: any subvectors valid for the Change Parameters command replace the existing values in the current set SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFhTop
INT 14 - FOSSIL - TRANSMIT NO WAIT AH = 0Bh AL = character DX = port number Return: AX = result 0000h character not accepted 0001h character accepted SeeAlso: AH=01hTop
INT 14 - MBBIOS - READ BUFFER AH = 0Bh CX = size of buffer ES:DI -> buffer Return: AH = composite line status (see #00304) formed by ORing all statuses on receive interrupts; bit 0 set if additional characters available AL = composite modem status (see #00305) formed by ORing all statuses CX = number of characters actually read DI updated Note: the PACCOM version of MBBIOS does not use CX or ES:DI on call, instead returning ES set to the segment of the buffer containing a received packet, or 0000h if no packets available; the buffer may be freed with AH=0Ch"MBBIOS" SeeAlso: AH=02h,AH=08h"MBBIOS",AH=0Ah"MBBIOS",AH=0Ch"MBBIOS",AH=18h"FOSSIL"Top
INT 14 - Connection Manager - PREPARE FOR INBOUND CONNECTION AH = 0Bh DX = FFFFh AL = service name 00h use parameter file or default 01h use specified name ES:DI -> 16-byte blank-padded name BH = connection notification 00h program awaiting connection, don't notify user 01h notify user on connecting BL = connection type 00h connection will use Connection Manager API Return: AH = return code (00h-02h) (see #00303 at AH=00h/DX=FFFFh) AL = connection ID if AH=00h Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=04h/DX=FFFFh,AH=0Ch/DX=FFFFh,AH=10h/DX=FFFFhTop
INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD AH = 0Ch DX = port number Return: AX = FFFFh character not available AX = 00xxh character xx available SeeAlso: AH=08h"MBBIOS",AH=20h"FOSSIL"Top
INT 14 - MBBIOS PACCOM support - BUFFER MANAGEMENT AH = 0Ch ES = segment of buffer to free, or 0000h to allocate new buffer Return: ES = segment of allocated buffer (if ES=0000h on entry) Note: the PACCOM version of MBBIOS uses only ES as buffer address for AH=0Ah and AH=0Bh SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"Top
INT 14 - Connection Manager - TEST FOR INBOUND CONNECTION REQUEST AH = 0Ch DX = FFFFh AL = connection ID from AH=0Bh/DX=FFFFh Return: AH = return code (00h-03h) (see also #00303 at AH=00h/DX=FFFFh) 03h not prepared for inbound connection AL = connection ID (if AH=00h) or correct connection ID (if AH=02h) Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=03h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFhTop
INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT AH = 0Dh Return: AX = result FFFFh character not available xxyyh standard IBM-style scan code SeeAlso: AH=0EhTop
INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG AH = 0Dh DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: ES:BX -> CH_KEY_RDY flag (see #00339) SeeAlso: AH=0Ah"Digiboard" (Table 00339) Values for Digiboard CH_KEY_RDY flag: 00h receive buffer empty FFh characters availableTop
INT 14 - MBBIOS PACCOM support - SET TXD AH = 0Dh AL = new setting (FFh = 1.0) Return: nothing Desc: specify the time from RTS to start or packet SeeAlso: AX=0D00h,AH=0Eh"MBBIOS",AH=0Fh"MBBIOS"Top
INT 14 - Connection Manager - TERMINATE CONNECTION CLIENT ACTIVITY AH = 0Dh DX = FFFFh Return: AH = return code 00h successful nonzero operation not terminated Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network Desc: end all Connection Client TSR activity to allow it to be removed from memory SeeAlso: AH=05h/DX=FFFFh,AH=6Fh/BX=FFFFhTop
INT 14 - MBBIOS - GET AVAILABLE BYTES AX = 0D00h Return: AX = bytes in transmit buffer CX = bytes in receive buffer SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"Top
INT 14 - MBBIOS - LOWER ALL MODEM CONTROL SIGNALS AX = 0D01h Return: nothing Note: this function lowers DTR, RTS, etc. SeeAlso: AX=0D02hTop
INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS AX = 0D02h Return: nothing Note: this function raises DTR, RTS, etc. SeeAlso: AX=0D01hTop
INT 14 - MBBIOS - SET HANDSHAKE BYTE AX = 0D03h CL = new handshake byte Return: CL = previous handshake byte Note: this function lowers DTR, RTS, etc.Top
INT 14 - FOSSIL - KEYBOARD READ WITH WAIT AH = 0Eh Return: AX = xxyyh standard IBM-style scan code SeeAlso: AH=0Dh"FOSSIL"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING AH = 0Eh CX = number of characters to write ES:BX -> string DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AX = number of characters actually written ZF clear if successful ZF set on error SeeAlso: AH=0Fh"Digiboard"Top
INT 14 - MBBIOS PACCOM support - SET PERSISTENCE AH = 0Eh AL = new setting (FFh = 1.0) Return: nothing Desc: specify the time from end of DCD to RTS SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"Top
INT 14 - Connection Manager - SET HARDWARE FLOW STATE AH = 0Eh DX = FFFFh AL = connection ID from AH=04h/DX=FFFFh BL = RTS state (00h off, 01h on) Return: AH = return code (00h-03h) (see also #00303 at AH=00h/DX=FFFFh) 03h invalid request (BL not 00h or 01h) Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=03h/DX=FFFFh,AH=0Ah/DX=FFFFhTop
INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL AH = 0Fh AL = bit mask describing requested flow control (see #00340) DX = port number Return: nothing SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL" Bitfields for FOSSIL requested flow control: Bit(s) Description (Table 00340) 0 XON/XOFF on transmit (watch for XOFF while sending) 1 CTS/RTS (CTS on transmit/RTS on receive) 2 reserved 3 XON/XOFF on receive (send XOFF when buffer near full) 4-7 all 1Top
INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING AH = 0Fh CX = number of characters to read ES:BX -> buffer DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AX = number of characters read ZF clear if successful ZF set on error (line status or wrong number of characters) SeeAlso: AH=0Eh"Digiboard"Top
INT 14 - MBBIOS PACCOM support - SET SLOT TIME AH = 0Fh AL = new setting in clock ticks Return: nothing Desc: specify the time from end of DCD to RTS SeeAlso: AH=0Dh"MBBIOS",AH=0Eh"MBBIOS",AH=10h"MBBIOS"Top
INT 14 - Connection Manager - RETURN ACTIVE CONNECTION PARAMETERS AH = 0Fh DX = FFFFh AL = connection ID CX = size of buffer or 0000h to get length of returned vector ES:DI -> buffer for connection parameter vector (see #00311) Return: AH = return code (00h-02h,06h) (see #00303 at AH=00h/DX=FFFFh) CX = number of bytes which could not be returned because the given buffer was too small Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network SeeAlso: AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFhTop
INT 14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF AH = 10h AL = bit mask bit 0: enable/disable ^C/^K checking bit 1: enable/disable the transmitter DX = port number Return: nothing SeeAlso: AH=0Fh"FOSSIL"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER AH = 10h DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful FFh error SeeAlso: AH=09h"Digiboard",AH=11h"Digiboard"Top
INT 14 - MBBIOS PACCOM support - SET CRC WAIT AH = 10h AL = new setting in clock ticks (should be at least 5 character times) Return: nothing Desc: specify the time from start of last character to dropping RTS SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"Top
INT 14 - Connection Manager - QUERY SERVICE NAMES AH = 10h DX = FFFFh CL = subfunction 00h search first 01h search next ES:DI -> pattern buffer (see #00341) Return: AH = return code (00h,01h,03h,06h) (see also #00303 at AH=00h/DX=FFFFh) 01h no (more) matching names 03h invalid request ES:DI buffer filled with reply buffer (see #00341) containing matched name if AH=00h Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network Desc: obtain the names of groups and lines available for connection requests, and the names of active Connection Servers SeeAlso: AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh Format of Connection Manager pattern/reply buffer: Offset Size Description (Table 00341) 00h WORD length of pattern (30h or 32h) 02h 16 BYTEs server pattern or name 12h 16 BYTEs group pattern or name 22h 16 BYTEs line pattern or name 23h BYTE (optional) ??? 24h BYTE (optional, returned) current line status 00h available 01h out of service 02h currently allocated to a connection Note: pattern may include '?' wildcard to match any characterTop
INT 14 - FOSSIL - SET CURRENT CURSOR LOCATION AH = 11h DH = row DL = column Return: nothing Note: this is the same as INT 10/AH=02h SeeAlso: AH=12h"FOSSIL"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER AH = 11h DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful FFh error SeeAlso: AH=09h"Digiboard",AH=10h"Digiboard"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DISABLE PORT AH = 11h DX = port number Return: AL = status 00h successful 01h IRQ for port is shared 02h IRQ was reserved SeeAlso: AH=04h"SERIAL",AH=05h"SERIAL",AH=12h"PC-MOS"Top
INT 14 - FOSSIL - READ CURRENT CURSOR LOCATION AH = 12h Return: DH = row DL = column Note: this is the same as INT 10/AH=03h SeeAlso: AH=11h"FOSSIL"Top
INT 14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE AH = 12h DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AX = number of bytes free SeeAlso: AH=0Ah"Digiboard",AH=14h"Digiboard"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET CURRENT PORT PARAMETERS AH = 12h DX = port number Return: AH = status FFh port number invalid AL = line parameters (see #00304) AH = flow control configuration (see #00336 at AH=05h"PC-MOS") CX:BX = bps rate DL = XOFF character or 00h for none DH = XON character or 00h for noneTop
INT 14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN AH = 13h AL = character Return: nothing Note: should not be called if it is unsafe to call DOS SeeAlso: AH=15hTop
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - REGISTER A PORT WITH A TERMINAL AH = 13h DX = port number Return: AH = status FFh port number invalid else ES:BX -> BYTE flag (00h buffer empty, FFh buffer contains data) SeeAlso: AH=17h"PC-MOS"Top
INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING AH = 14h AL = 01h enable watchdog 00h disable watchdog DX = port number Return: nothing SeeAlso: INT 21/AH=2Bh/CX=6269h"WDTSR"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT STRING AH = 14h CX = number of characters in string DX = port number ES:BX -> string to be sent SI = timeout in timer ticks or 0000h for default Return: AX = number of bytes actually sent ZF clear if successful ZF set on timeout SeeAlso: AH=01h,AH=15h"PC-MOS"Top
INT 14 - Digiboard - GET NUMBER OF BOARDS INSTALLED AH = 14h Return: AX = number of boards installed SeeAlso: AH=08h"Digiboard",AH=15h"Digiboard"Top
INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES AH = 15h AL = character Return: nothing SeeAlso: AH=13h"FOSSIL"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STRING AH = 15h CX = size of buffer DX = port number ES:BX -> buffer for received characters SI = timeout in clock ticks or 0000h for default Return: AX = number of characters actually read ZF set on timeout (no data available) SeeAlso: AH=02h,AH=14h"PC-MOS",AH=16h"PC-MOS"Top
INT 14 - Digiboard - ENABLE/DISABLE MEMORY AH = 15h AL = new state (00h disabled, 01h enabled) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=14h"Digiboard",AH=16h"Digiboard"Top
INT 14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN AH = 16h AL = function 00h = delete 01h = add ES:DX -> routine to call Return: AX = status 0000h successful 0001h unsuccessful SeeAlso: AH=07h"FOSSIL"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - LINK TO ANOTHER SERIAL DRIVER AH = 16h ES:BX -> calling driver's INT 14 entry point Return: nothing Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc.Top
INT 14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND AH = 16h AL = CCB command number (see #00342) (see also following entries) BL = byte 2 BH = byte 3 CL = byte 1 (for all channel functions except 4Eh and 4Fh) DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AX=1646h,AH=18h"Digiboard" (Table 00342) Values for Digiboard CCB command number: 40h Set Receive Mid Water Mark 41h Set Receive High Water Mark 42h Flush Receive Buffer 43h Flush Transmit Buffer 44h Transmit Pause 45h Transmit Resume 46h Set Interrupt to Host Mask 47h Set Baud, Data, Stop and Parity 48h Send Break 49h Set Modem Lines 4Ah Set Break Count 4Bh Set Handshake 4Ch Set Xon/Xoff Characters 4Dh Set Transmit Mid Water Mark 4Eh IRQ Polling Timer to Host 4Fh Buffer Set All 50h Port On 51h Port Off 52h Receive Pause 53h Special Character Interrupt 54h RS-422 EnableTop
INT 14 - Digiboard - CCB COMMAND - SET INTERRUPT TO HOST MASK AX = 1646h BL = bits to set BH = bits to clear CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=1647hTop
INT 14 - Digiboard - CCB COMMAND - SET BAUD/DATABITS/STOPBITS/PARITY AX = 1647h BL = baud BH = datatype CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=1646h,AX=1649hTop
INT 14 - Digiboard - CCB COMMAND - SET MODEM LINES AX = 1649h BL = bits to set BH = bits to clear CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=1647hTop
INT 14 - Digiboard - CCB COMMAND - SET BREAK COUNT AX = 164Ah BL = break count CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=1649h,AX=164BhTop
INT 14 - Digiboard - CCB COMMAND - SET HANDSHAKE AX = 164Bh BL = bits to set BH = bits to clear CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=1649h,AX=164ChTop
INT 14 - Digiboard - CCB COMMAND - SET XON/XOFF CHARACTERS AX = 164Ch BL = XON character BH = XOFF character CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=164Bh,AX=164DhTop
INT 14 - Digiboard - CCB COMMAND - SET TRANSMIT MID-WATER MARK AX = 164Dh BX = new mid-water mark CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=164Ch,AX=164Eh,AX=164FhTop
INT 14 - Digiboard - CCB COMMAND - IRQ POLLING TIMER TO HOST AX = 164Eh BL = ticks BH = ??? CL = mode DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=164DhTop
INT 14 - Digiboard - CCB COMMAND - BUFFER SET ALL AX = 164Fh BL = size DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=164DhTop
INT 14 - Digiboard - CCB COMMAND - SPECIAL CHARACTER INTERRUPT AX = 1653h BL = enable/disable BH = special character CL = byte 1 DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h error FFh error SeeAlso: AH=16h"Digiboard",AX=1646hTop
INT 14 - FOSSIL - REBOOT SYSTEM AH = 17h AL = method 00h = cold boot 01h = warm boot SeeAlso: INT 16/AX=E0FFh,INT 19,INT 60/DI=0606hTop
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - WRITE MODEM CONTROL REGISTER AH = 17h AL = new value for UART's modem control register DX = port number Return: nothingTop
INT 14 - FOSSIL - READ BLOCK AH = 18h CX = maximum number of characters to transfer DX = port number ES:DI -> user buffer Return: AX = number of characters transferred SeeAlso: AH=19h"FOSSIL",AH=83h"COURIERS",AX=FF02h,INT 6B/AX=0100hTop
INT 14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND AH = 18h ES:BX -> 16-byte command string DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful 80h timeout AL = mailbox status 00h no errors 8Xh BIOS error ES:BX buffer filled in with mailbox string ZF clear if no errors ZF set if either status byte contains an error code SeeAlso: AH=16h"Digiboard"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET DRIVER DESCRIPTION AH = 18h DX = port number Return: DS:BX -> 40-byte buffer containing a string identifying the serial driver SeeAlso: AH=06h"PC-MOS"Top
INT 14 - FOSSIL - WRITE BLOCK AH = 19h CX = maximum number of characters to transfer DX = port number ES:DI -> user buffer Return: AX = number of characters transferred SeeAlso: AH=18h"FOSSIL",AH=86h,INT 6B/AX=0000hTop
INT 14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT AH = 19h BL = flag 00h disable special character interrupt FFh enable interrupt DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: AH = status 00h successful FFh failed SeeAlso: AH=1Ah"Digiboard"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SELECTIVE BUFFER FLUSH AH = 19h AL = what to flush bit 0: input buffer bit 1: output buffer DX = port number Return: nothing SeeAlso: AH=09h"PC-MOS"Top
INT 14 - FOSSIL - BREAK BEGIN OR END AH = 1Ah AL = 00h stop sending 'break' 01h start sending 'break' DX = port number Return: nothing SeeAlso: AH=06h"FOSSIL",AH=8Ah,AH=FAhTop
INT 14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER AH = 1Ah BX = subfunction 00h return pointer to special character flag byte 01h return pointer to special character counter word DX = port number (00h-03h) (04h-43h for XAPCM232.SYS) Return: ES:BX -> special character flag or counter Notes: flag is FFh if one or more special characters are in the receive buffer; it is 00h and the counter is invalid if no special characters are in the receive buffer counter (if valid) contains the number of characters in the receive buffer up to and including the last-received special characterTop
INT 14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER
AH = 1Bh
DX = port number
CX = size of user buffer
ES:DI -> user buffer for driver info (see #00343)
Return: AX = number of characters transferred
CX = 3058h ("0X") (X00 FOSSIL only)
DX = 2030h (" 0") (X00 FOSSIL only)
Format of FOSSIL driver info:
Offset Size Description (Table 00343)
00h WORD size of structure in bytes
02h BYTE FOSSIL spec driver conforms to
03h BYTE revision level of this specific driver
04h DWORD pointer to ASCIZ identification string
08h WORD size of the input buffer
0Ah WORD number of bytes left in buffer
0Ch WORD size of the output buffer
0Eh WORD number of bytes left in buffer
10h BYTE width of screen
11h BYTE length of screen
12h BYTE actual baud rate, computer to modem
Top
INT 14 - X00 FOSSIL - ACTIVATE PORT AH = 1Ch DX = port number Return: AX = 1954h if successful BL = maximum function number supported (not including 7Eh and above) BH = revision of FOSSIL specification supported Note: this is a duplicate of AH=04h, so that AH=04h may be made compatible with the PS/2 BIOS in a future release SeeAlso: AH=04h"FOSSIL",AH=1DhTop
INT 14 - X00 FOSSIL - DEACTIVATE PORT AH = 1Dh DX = port number Return: none Notes: this is a duplicate of AH=05h, so that AH=05h may be made compatible with the PS/2 BIOS in a future release ignored if the port was never activated with AH=04h or AH=1Ch SeeAlso: AH=05h"FOSSIL",AH=1ChTop
INT 14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION AH = 1Eh AL = break status 00h if break 01h if no break BH = parity (see #00344) BL = number of stop bits 00h one stop bit 01h two stop bits (1.5 if 5 bit word length) CH = word length (see #00345) CL = bps rate (see #00346) DX = port number Return: AX = port status code (see #00304,#00305) Notes: this function is intended to exactly emulate the PS/2 BIOS AH=04h call if the port was locked at X00 load time, the appropriate parameters are ignored SeeAlso: AH=00h,AH=04h"SERIAL" (Table 00344) Values for X00 FOSSIL parity: 00h no parity 01h odd parity 02h even parity 03h stick parity odd 04h stick parity even SeeAlso: #00307,#00345,#00346 (Table 00345) Values for X00 FOSSIL word length: 00h 5 bits 01h 6 bits 02h 7 bits 03h 8 bits SeeAlso: #00308,#00344,#00346 (Table 00346) Values for X00 FOSSIL bps rate: 00h 110 01h 150 02h 300 03h 600 04h 1200 05h 2400 06h 4800 07h 9600 08h 19200 SeeAlso: #00309,#00344,#00345Top
INT 14 - HUNTER 16 - READ COMMS PARAMETERS AH = 1Eh CX = channel number (00h COM1, 01h COM2, ...) DS:BX -> buffer for communications parameters (see #00347) Return: DS:BX buffer filled Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. SeeAlso: AH=20h"HUNTER" Format of HUNTER 16 communications parameters: Offset Size Description (Table 00347) 00h BYTE communications type (00h IBM, nonzero Husky) 01h BYTE port number (00h COM1, 01h COM2) 02h BYTE baud rate (00h 110 bps, 01h 150, 02h 300, 03h 600, 04h 1200, 05h 2400, 06h 4800, 07h 9600, 08h 19200, 09h 38400) 03h BYTE data bits (01h seven, 02h eight) 04h BYTE parity (00h none, 01h odd, 02h even) 05h BYTE stop bits (00h one, 01h two) 06h BYTE handshake (see #00348) 07h BYTE handshake protocol (00h none, 01h Xon/Xoff, 02h HWK3780) 08h BYTE Nulls after CR (0-20) 09h BYTE LF (00h off, 01h on) 0Ah BYTE Serig. 0..7Fh: Ignore this character 80h: Serig off 0Bh BYTE echo (00h off, 01h on) 0Ch BYTE transmit timeout in seconds (1-60) or 00h to disable 0Dh BYTE receive timeout in seconds (1-60) or 00h to disable 0Eh 5 BYTEs reserved Bitfields for HUNTER 16 handshake: Bit(s) Description (Table 00348) 0-1 0: RTS off, 1: RTS hold, 2: RTS true 2 DTR enabled 4 CTS enabled 5 DSR enabled 6 DCD enabledTop
INT 14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL AH = 1Fh DX = port number AL = direction 00h read modem control register Return: BL = modem control register (see #00349) AH = status 01h write modem control register BL = modem control register (see #00349) Return: AX = status Notes: this function is intended to exactly emulate the PS/2 BIOS AH=05h call X00 forces BL bit 3 set (interrupts cannot be disabled) SeeAlso: AH=00h,AH=05h"SERIAL" Bitfields for X00 FOSSIL modem control register: Bit(s) Description (Table 00349) 0 data terminal ready 1 request to send 2 OUT1 3 OUT2 (interrupts) enabled 4 LOOP 5-7 reservedTop
INT 14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT AH = 20h DX = port number Return: AH = 00h if character was available AL = next character (removed from receive buffer) AX = FFFFh if no character available SeeAlso: AH=0Ch,AH=21h"X00"Top
INT 14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT AH = 20h AL = logical port (01h COM1, 02h COM2) DX = physical port number Return: AX = status 0000h successful FFFFh failed SeeAlso: AH=21h"Alloy",AH=22h"Alloy",AH=23h"Alloy",INT 17/AH=8Bh"Alloy"Top
INT 14 - MultiDOS Plus - INITIALIZE PORT AH = 20h AL = port parameters (see #00300 at AH=00h"SERIAL") DX = port number (0-3) Return: AH = status 00h successful 41h no such port 64h monitor mode already active SeeAlso: AH=00h"SERIAL",AH=04h"MultiDOS",AH=21h"MultiDOS",AH=23h"MultiDOS"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHECK OUTPUT QUEUE AH = 20h DX = port number Return: AX = number of bytes in output buffer SeeAlso: AH=0Ah"Digiboard"Top
INT 14 - HUNTER 16 - SELECT COMMS PARAMETERS AH = 20h CX = channel number (00h COM1, 01h COM2, ...) DS:BX -> buffer with communications parameter (see #00347) Return: AX = status 0000h successful 0001h invalid parameter SeeAlso: AH=1Eh"HUNTER",AH=21h"HUNTER"Top
INT 14 - X00 FOSSIL - STUFF RECEIVE BUFFER AH = 21h AL = character DX = port number Return: nothing Notes: the given character is inserted at the end of the receive buffer as if it had just arrived from the serial port; all normal receive processing (XON/XOFF, ^C/^K) is performed on the character fully re-entrant SeeAlso: AH=20h"X00"Top
INT 14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT AH = 21h DX = physical port number Return: AX = status 0000h successful FFFFh failed SeeAlso: AH=20h"Alloy",AH=22h"Alloy"Top
INT 14 - MultiDOS Plus - TRANSMIT CHARACTER AH = 21h AL = character to send DX = port number Return: AH = status (see #00350) Note: monitor mode must have been turned on with AH=24h before calling SeeAlso: AH=20h"MultiDOS",AH=22h"MultiDOS",AH=24h"MultiDOS" (Table 00350) Values for MultiDOS Plus status: 00h successful 39h no DSR or CTS 3Ch no DSR 3Bh no CTS 41h no such port 42h monitor mode not active 97h timed outTop
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT CHARACTER, WITH TIMEOUT AH = 21h AL = char to send DX = port number SI = timeout in timer ticks (0000h = default) Return: after character is sent or timeout expires Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc. SeeAlso: AH=01h,AH=0Eh"Digiboard",AH=22h"PC-MOS"Top
INT 14 - HUNTER 16 - EXTENDED CONTROL AH = 21h AL = command 01h force transmission of buffer 02h clear transmit buffer 03h clear receive buffer DX = port (00h COM1, 01h COM2) Return: AH = extended status Desc: executes the command on the selected port SeeAlso: AH=1Eh"HUNTER",AH=20h"HUNTER",AH=22h"HUNTER",AH=24h"HUNTER"Top
INT 14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT AH = 22h AL = logical port (01h COM1, 02h COM2) Return: AX = status (0000h successful) SeeAlso: AH=20h"Alloy",AH=21h"Alloy"Top
INT 14 - MultiDOS Plus - RECEIVE CHARACTER AH = 22h DX = port number Return: AH = status (see also AH=21h"MultiDOS") 00h successful AL = character 3Dh framing and parity error 3Eh overrun error 3Fh framing error 40h parity error 96h ring buffer overflow Note: if no character is available, this function waits until a character arrives or an implementation-dependent timeout elapses SeeAlso: AH=20h"MultiDOS",AH=21h"MultiDOS",AH=27hTop
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RECEIVE CHARACTER, WITH TIMEOUT AH = 22h DX = port number SI = timeout in timer ticks (0000h = default) Return: AH = port status (see also #00304 at AH=03h) bit 7 = 1 indicates time-out AL = character received Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc. SeeAlso: AH=02h,AH=0Fh"Digiboard",AH=21h"PC-MOS"Top
INT 14 - HUNTER 16 - EXTENDED STATUS AH = 22h DX = port (00h COM1, 01h COM2) Return: AH = extended status BX = number of characters in input buffer CX = number of characters in output buffer Desc: returns the most recent Extended Status code for the port SeeAlso: AH=21h"HUNTER"Top
INT 14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID AH = 23h AL = logical port (01h COM1, 02h COM2) DH = user ID DL = process ID (DH,DL both FFh for current task) Return: AL = MW386 port mode (see #00351) CX = MW386 port number DH = owner's user ID DL = owner's task ID SeeAlso: AH=20h"Alloy",INT 17/AH=8Bh"Alloy" Bitfields for MW386 port mode: Bit(s) Description (Table 00351) 0 port is shared (spooler only) 1 port is spooled instead of direct (spooler only) 2 port is assigned as logical COM device, not in spooler 3 port is freeTop
INT 14 - MultiDOS Plus - GET PORT STATUS AH = 23h DX = port number Return: AH = line status (see #00304 at AH=03h) AL = modem status (see #00305 at AH=03h) SeeAlso: AH=03h,AH=07h"MultiDOS",AH=20h"MultiDOS"Top
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DECLARE PORT OWNERSHIP AH = 23h DX = port number BX = TCB segment/selector address of owner task Return: nothing SeeAlso: AH=0Dh"Digiboard",AH=21h"PC-MOS",AH=22h"PC-MOS"Top
INT 14 - HUNTER 16 - CONTROL HANDSHAKE LINES AH = 23h BH = handshake line to set (00h RTS, 01h DTR) BL = new level (00h low, 01h high) Return: nothing Desc: sets the handshake lines of COM1 to the desired level SeeAlso: AH=21h"HUNTER",AH=24h"HUNTER"Top
INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS AH = 24h CX = physical I/O port number DS:DX -> configuration table (see #00352) Return: AH = 00h Note: invalid port numbers are merely ignored SeeAlso: INT 17/AH=96h Format of Alloy MW386 configuration table: Offset Size Description (Table 00352) 00h BYTE baud rate (see #00353) 01h BYTE data bits (00h=5, 01h=6, 02h=7, 03h=8) 02h BYTE parity (00h none, 01h odd, 02h even) 03h BYTE stop bits (00h=1, 01h=2) 04h BYTE receive flow control 00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC, 04h RTS/CTS 05h BYTE transmit flow control (as for receive) (Table 00353) Values for Alloy MW386 baud rate: 00h 38400 01h 19200 02h 9600 03h 7200 04h 4800 05h 3600 06h 2400 07h 2000 08h 1200 09h 600 0Ah 300 0Bh 150 0Ch 134.5 SeeAlso: #00309Top
INT 14 - MultiDOS Plus - SET MONITOR MODE AH = 24h AL = port status storage 00h single status for entire receive buffer 01h separate status kept for each byte in receive buffer DX = port number Return: AH = status 00h successful 3Ah invalid status storage specified 41h no such port 64h monitor mode already active Note: in monitor mode, MultiDOS redirects all BIOS video output to a serial port SeeAlso: AH=20h"MultiDOS",AH=25hTop
INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - ??? AH = 24h Return: ??? Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc.Top
INT 14 - HUNTER 16 - CONTROL CTS HANDSHAKING AH = 24h AL = new CTS handshake state for COM1 (00h disabled, 01h enabled) Return: nothing SeeAlso: AH=23h"HUNTER",AH=25h"HUNTER",AH=26h"HUNTER"Top
INT 14 - MultiDOS Plus - CLEAR BUFFERS AH = 25h AL = function 00h only clear buffers 01h clear buffers and deactivate DX = port number Return: AH = status 00h successful 3Ah invalid function 41h no such port 42h monitor mode not active SeeAlso: AH=20h"MultiDOS",AH=24h"MultiDOS"Top
INT 14 - HUNTER 16 - CONTROL RS232 DRIVERS AH = 25h AL = new state of RS232 drivers (00h off, 01h on) Return: nothing Note: this function can be used to save power by turning off the RS232 drivers. It can also be used to turn on the RS232 drivers before connecting to a remote system to avoid "garbage" while the drivers turn on. SeeAlso: AH=23h"HUNTER",AH=24h"HUNTER",AH=26h"HUNTER"Top
INT 14 - HUNTER 16 - CONTROL RI POWER UP AH = 26h AL = 00h enable RI power up else disable RI power up Return: nothing Desc: control whether the Ring Indicator handshake can power up the HunterTop
INT 14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT AH = 27h DX = port number Return: AH = status 00h successful 41h no such port 42h monitor mode not active AL = number of characters in receive bufferTop
INT 14 - HUNTER 16 - GET INSTALLED PROTOCOLS COUNT AH = 27h AL = number of extended protocols installed (since last call) Return: AL = total number installed, including new ones Desc: Returns the number of extended communication protocols installed SeeAlso: AH=25h"HUNTER",AH=28h"HUNTER"Top
INT 14 - HUNTER 16 - GET PROTOCOL NAME AH = 28h AL = protocol handle DS:BX -> 8 character buffer for protocol name Return: AH = status 00h successful DS:BX buffer filled with the protocol name FFh failed SeeAlso: AH=27h"HUNTER",AH=29h"HUNTER"Top
INT 14 - HUNTER 16 - GET PROTOCOL HANDLE AH = 29h DS:BX -> buffer containing the protocol name Return: AH = status 00h successful AL = handle FFh failed SeeAlso: AH=28h"HUNTER",AH=2Ah"HUNTER"Top
INT 14 - HUNTER 16 - EXTENDED PROTOCOL MENU AH = 2Ah AL = protocol handle Return: AH = status 00h successful FFh failed AL = menu handle SeeAlso: AH=29h"HUNTER",AH=2Bh"HUNTER"Top
INT 14 - HUNTER 16 - GET EXTENDED PROTOCOL PARAMETERS AH = 2Bh AL = protocol handle DS:BX -> buffer for extended protocol parameters Return: AH = status 00h successful DS:BX buffer filled with extended parameters FFh failed SeeAlso: AH=2Ah"HUNTER"Top
INT 14 - HUNTER 16 - GET DTR AX = 2C00h Return: AH = 00h BL = current state 00h normal DTR operation else DTR is forced high Desc: Indicates whether the DTR signal on COM1 is forced high Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. SeeAlso: AH=2Ch"SET DTR"Top
INT 14 - HUNTER 16 - SET DTR AH = 2Ch AL nonzero BL = new state 00h normal operation else force DTR high Return: AH = 00h Desc: determine whether the DTR signal on COM1 should be forced high SeeAlso: AX=2C00hTop
INT 14 - ComShare - INSTALLATION CHECK
AH = 36h
Return: AX = 4353h ('CS') if installed
BX = bitmap of installed ports (bit 0: COM1 is gateway, etc.)
CX reserved for future use
WORD DX:[0100h] = ComShare version number
Program: The ComShare System is a modem-sharing program for NetBIOS and
NetWare-based networks by NashaKala Corporation
Note: ComShare supports the standard BIOS INT 14h calls with a slight
change in the interpretation of speed values
(see #00309 at AH=04h"SERIAL")
SeeAlso: AH=00h"SERIAL",AH=04h"SERIAL",AX=F4FFh
Top
INT 14 - I1541 - INSTALLATION CHECK AX = 4000h Return: AX = 1541h if installed BH = I1541 major version (BCD) BL = I1541 minor version (BCD) CX = 0000hTop
INT 14 - I1541 - TEST IF 1541 CABLE CONNECTED AX = 4001h Return: CF clear if connected BL = LPT number where 1541 cable is connected (1..3) CF set if cable not connected Desc: scan all the LPT ports searching for the adapter cable SeeAlso: AX=4000hTop
INT 14 - I1541 - SELECT LPT PORT FOR OUTPUT AX = 4002h BL = LPT number (1..3) Return: CF clear if successful CF set otherwise Desc: force the input output routines to work on the cable placed on LPT BL SeeAlso: AX=4001hTop
INT 14 - I1541 - RESET ALL DEVICES AX = 4003h Return: nothing Desc: send a reset pulse of 100ms to all CBM devices Note: it is necessary to wait about 2 seconds after reset before executing other instructions SeeAlso: AX=4000h,AX=4004hTop
INT 14 - I1541 - SEND LISTEN SIGNAL AX = 4004h BH = device number (0..15) Return: CF clear if successful CF set on error AL = error number (see #00354) SeeAlso: AX=4005h,AX=4006h (Table 00354) Values for I1541 error number: 00h device not present 01h listener not ready 02h missing EOI time-out 03h EOI not completed 04h data not released 05h frame errorTop
INT 14 - I1541 - SEND SECONDARY ADDRESS FOR LISTEN AX = 4005h BL = channel number and mode (see #00355) Return: CF clear if successful CF set on error AL = error number (see #00354) SeeAlso: AX=4004h,AX=4006h Bitfields for I1541 channel number and mode: Bit(s) Description (Table 00355) 7-4 mode 0110 read/write 1110 close channel 1111 open channel 3-0 channel numberTop
INT 14 - I1541 - SEND UNLISTEN SIGNAL AX = 4006h Return: CF clear if successful CF set on error AL = error number (see #00354) SeeAlso: AX=4004h,AX=4005hTop
INT 14 - I1541 - SEND TALK SIGNAL AX = 4007h BH = device number (0-15) Return: CF clear if successful CF set on error AL = error number (see #00354) SeeAlso: AX=4008h,AX=4009hTop
INT 14 - I1541 - SEND SECONDARY ADDRESS FOR TALK AX = 4008h BL = channel number and mode (see #00355) Return: CF clear if successful CF set on error AL = error number (see also #00354) 40h turn around time-out SeeAlso: AX=4007h,AX=4009hTop
INT 14 - I1541 - SEND UNTALK SIGNAL AX = 4009h Return: CF clear if successful CF set on error AL = error number (see #00354) SeeAlso: AX=4007h,AX=4008hTop
INT 14 - I1541 - SEND A BYTE TO A DEVICE AX = 400Ah BL = byte to send CL = last-byte flag 00h more bytes follow 01h this is the last byte to be sent Return: CF clear if successful CF set on error AL = error number (see #00354) SeeAlso: AX=4000h,AX=400BhTop
INT 14 - I1541 - RECEIVE A BYTE FROM A DEVICE AX = 400Bh Return: CF clear if successful AL = byte received CL = last-byte flag 00h more bytes to follow 01h received byte is the last CF set on error AL = error number 80h EOI response required 81h talker not ready 82h clock not set 83h clock not released CL = 00h SeeAlso: AX=4000h,AX=400AhTop
INT 14 - I1541 - WAIT AX = 400Ch CX = number of 838ns microticks to wait (0000h means 65536, ~55ms) Return: after wait period elapses SeeAlso: AX=4000h,AX=400DhTop
INT 14 - I1541 - LONGWAIT AX = 400Dh DX:CX = number of 838ns microticks to wait (0000h:0000h means 4294967296, about one hour) Example: To wait 1s you must set DX:CX=(1s/838ns)=1193180 SeeAlso: AX=4000h,AX=400ChTop
INT 14 - I1541 - GET INFO AX = 400Eh Return: AX = LPT port I/O address in use (0000h if no cable in use) BL = LPT number (1..3) in use (00h if no cable in use) CF set if the cable is auto-detectable CF clear if cable could not be auto-detected or is not present SeeAlso: AX=4000hTop
INT 14 U - BWCOM14 - INSTALLATION CHECK AH = 56h Return: CX = 0001h if installed Program: BWCOM14 is a network serial port emulator (simulating a Hayes modem connected to the serial port) distributed as part of the Beame&Whiteside BW-NFS package SeeAlso: AH=57h,AH=58h,INT 2F/AX=DF00h/BX=5445hTop
INT 14 U - BWCOM14 - INITIALIZE AH = 57h DL = port number Return: AL = initialization status (00h successful, 01h already initialized) CX = port status (0001h port redirected, 0002h and FFFFh failed) Note: after this call, all invocations of INT 14/AH=00h-03h for the specified port will be handled by BWCOM14 until AH=58h is called SeeAlso: AH=00h"SERIAL",AH=56h,AH=58hTop
INT 14 U - BWCOM14 - SHUTDOWN AH = 58h Return: CX = status (0001h successful, 0002h not initialized) Note: after this call, BWCOM14 will no longer redirect the COM port SeeAlso: AH=56h,AH=57hTop
INT 14 U - Connection Manager - ??? AH = 6Fh BX = FFFEh ??? Return: ??? Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based networkTop
INT 14 - Connection Manager - INSTALLATION CHECK AH = 6Fh BX = FFFFh Return: DX:BX -> Connection Manager Communication Table if installed BX = FFFFh if not installed SeeAlso: AH=0Dh/DX=FFFFhTop
INT 14 - HP Vectra EX-BIOS - "F14_INQUIRE" - INSTALLATION CHECK
AX = 6F00h
BX <> 4850h (usually set to 0000h for simplicity)
Return: BX = 4850h ("HP") if HP Extended BIOS serial port extensions available
AX destroyed
Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras
SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,INT 10/AX=6F00h,INT 14/AX=6F00h
SeeAlso: INT 17/AX=6F00h,INT 33/AX=6F00h
Top
INT 14 - HP Vectra EX-BIOS - "F14_EXINIT" - INITIALIZE SERIAL PORT AX = 6F01h BX = port attributes (see #00356) DX = port number (0-3) Return: AH = line status (see #00304) AL = modem status (see #00305) Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras SeeAlso: AX=6F00h Bitfields for HP Vectra Extended BIOS serial port attributes: Bit(s) Description (Table 00356) 8-5 data rate (110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200) 4-3 parity 00 none 01 odd 10 none 11 even 2 stop bits (0 = one, 1 = two) 1-0 bits per character 10 seven-bit characters 11 eight-bit characters 0x undefinedTop
INT 14 - HP Vectra EX-BIOS - "F14_PUT_BUFFER" - TRANSMIT BUFFER AX = 6F02h CX = number of characters in buffer DX = port number (0-3) ES:DI -> buffer containing characters Return: AH = line status (see #00304) AL = modem status (see #00305) CX = number of bytes actually sent ES:DI -> next byte to be transferred (unchanged if all bytes sent) Desc: send characters from the specified buffer until all characters have been sent or an error/timeout is encountered Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras SeeAlso: AX=6F00h,AX=6F03h,AX=6F04h,INT 17/AX=6F02hTop
INT 14 - HP Vectra EX-BIOS - "F14_GET_BUFFER" - READ DATA INTO BUFFER AX = 6F03h CX = size of buffer DX = port number (0-3) ES:DI -> buffer for received characters Return: AH = line status (see #00304) ---on error (AH bit 7 set)--- AL = 00h ES:DI -> next byte to be transferred ---if successful--- AL = last byte read ES:DI unchanged CX = number of bytes read Desc: read characters into the specified buffer until the buffer is filled or a timeout occurs Notes: supported by original HP Vectra AT and by ES/QS/RS series Vectras polls the Data Set Ready modem status and Data Ready line status bits to determine when characters are available SeeAlso: AX=6F00h,AX=6F02h,AX=6F04hTop
INT 14 - HP Vectra EX-BIOS - "F14_TRM_BUFFER" - READ UNTIL TERMINATOR AX = 6F04h BL = lowest termination character BH = highest termination character CX = size of buffer DX = port number (0-3) ES:DI -> buffer for received characters Return: AH = line status (see #00304) ---on error (AH bit 7 set)--- AL = 00h ES:DI -> next byte to be transferred ---if successful--- AL = last byte read ES:DI unchanged CX = number of bytes read Desc: read characters into the specified buffer until the buffer is filled, a character in the specified range is received, or a timeout occurs Notes: supported by original HP Vectra AT and by ES/QS/RS series Vectras polls the Data Set Ready modem status and Data Ready line status bits to determine when characters are available SeeAlso: AX=6F00h,AX=6F02h,AX=6F03hTop
INT 14 - NEWCOM - INSTALLATION CHECK
AX = 7000h
Return: AX = 4E43h ('NC') if installed
BX = 4F4Dh ('OM') if installed
CH = major version number
CL = minor version number
DH = patch level
DL = language (currently: 00h English, 01h French)
Program: Newcom is a DOS commandline-enhancer by kilobug@kali.isicom.fr
SeeAlso: INT 2F/AX=D44Dh
Top
INT 14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION AH = 7Eh AL = code assigned to external application (80h-BFh) 80h reserved for communications FOSSIL 81h video FOSSIL 82h reserved for keyboard FOSSIL 83h reserved for system FOSSIL ES:DX -> entry point Return: AX = 1954h BL = code assigned to application (same as input AL) DH = status 00h failed 01h successful SeeAlso: AH=7Fh,AH=80h"FOSSIL",AX=8100h,AH=82h"FOSSIL",AH=83h"FOSSIL"Top
INT 14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION AH = 7Fh AL = code assigned to external application ES:DX -> entry point Return: AX = 1954h BL = code assigned to application (same as input AL) DH = status 00h failed 01h successful SeeAlso: AH=7EhTop
INT 14 - COMMUNICATIONS FOSSIL AH = 80h SeeAlso: AH=7EhTop
INT 14 - COURIERS.COM - INSTALLATION CHECK AH = 80h Return: AH = E8h if loaded Program: COURIERS is a TSR utility by PC MagazineTop
INT 14 - ARTICOM - INSTALLATION CHECK AX = 8000h Return: AL = FFh if installed BH = major version BL = minor version Program: ArtiCom is an asynchronous communications driver by Artisoft which works on top of NetBIOS and allows modem/serial-port sharing by programs using INT 14 for serial I/O. Note: ArtiCom supports 32 simultaneous COM ports using multiport cards and drivers SeeAlso: AH=00h"SERIAL",AH=01h,AH=02h,AH=03h,AH=04h"SERIAL",AH=05h"SERIAL" SeeAlso: AX=8001h,AX=8002hTop
INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET ERROR CODE AND BUFFER STATUS AX = 8000h DX = port number Return: AX = code for last error (see #00357) BX = number of characters in output buffer CX = nubmer of characters in input buffer DX = state flag (see #00358) Program: COMM-DRV is a universal serial communications driver by Willies' Computer Software Company, which supports standard INT 14 and FOSSIL calls as well as its own interfaces SeeAlso: AX=8001h"COMM-DRV",AX=8002h"COMM-DRV",AX=8003h"COMM-DRV" (Table 00357) Values for COMM-DRV error code: 00h no error 01h buffer not set or attempted to change buffer for active port 02h port not active 03h transmit buffer full 04h receive buffer full 05h syntax error 06h invalid buffer size 07h invalid port 08h handler changed 09h invalid baud rate 0Ah invalid parity setting 0Bh invalid data length 0Ch invalid number of stop bits 0Dh invalid protocol number 0Eh IRQ changed 0Fh port changged 10h invalid threshold setting 11h invalid IRQ number 12h interrupts not enabled 13h invalid break syntax 14h fatal error 15h CTS error 16h invalid RS232 I/O port address 17h environment variable not set 18h error on IOCTL call 19h error during atexit cleanup 1Ah error mapping for direct calls 1Bh error opening device 1Ch unable to allocate memory 1Dh error on external micro card 1Eh card changed error 1Fh card type error 20h not supported 21h parent port error 22h card command buffer full 23h no subdevice for this port 24h unknown error 25h external card busy 26h no more timers available 27h INT 14 vector changed 28h INT 08 vector changed 29h DPMI error 2Ah TSR buffer too small (or nonexistent) 2Bh out of asynchronous resources 2Ch out of timer resources 2Dh out of "other" timer resources 2Eh file I/O error 2Fh hardware memory > 64K Bitfields for state flag : Bit(s) Description (Table 00358) 0 port is active 1 output throttled (XOFF received, or DSR or CTS reset) 2 input throttled (XOFF sent, or DTR or RTS reset)Top
INT 14 - ARTICOM - UNLOAD ASYNCHRONOUS REDIRECTOR FROM MEMORY AX = 8001h Return: AX = error code, if error (see #00360) SeeAlso: AX=8000h"ARTICOM",AX=8002h"ARTICOM",AX=8003h"ARTICOM" Index: uninstall;ARTICOMTop
INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS AX = 8001h DX = port number Return: BX:DI -> Port Control Block (see #00367) SeeAlso: AX=8000h"COMM-DRV",AX=8002h"COMM-DRV",AX=8003h"COMM-DRV"Top
INT 14 - ARTICOM - GET ASYNCHRONOUS REDIRECTOR STATUS AX = 8002h ES:DI -> buffer for redirector status structure (see #00359) Return: AX = error code, if error (see #00360) SeeAlso: AX=8000h"ARTICOM",AX=8003h"ARTICOM" Format of ARTICOM redirector status: Offset Size Description (Table 00359) 00h WORD redirector major and minor version numbers 02h WORD redirectable ports found 04h WORD redirectable ports + local ports found 06h WORD redirector internal buffer size 08h WORD maximum servers maintained 0Ah WORD number of adapters foundTop
INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS AX = 8002h DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful BX:DI -> Port Control Block (see #00367) (modifyable portion only) SeeAlso: AX=8000h"COMM-DRV",AX=8001h"COMM-DRV",AX=8003h"COMM-DRV"Top
INT 14 - ARTICOM - TRANSLATE ERROR CODE TO ERROR STRING AX = 8003h CX = error number to translate (see #00360) Return: ES:DI -> ASCIZ error text or 0000h:0000h if unable to translate SeeAlso: AX=8000h (Table 00360) Values for ARTICOM error codes: 00h "No error" 01h "An invalid port number was specified" 02h "Port is already redirected" 03h "Too many ports redirected" 04h "Cannot locate the server" 05h "Server is busy" 06h "Access denied" 07h "Resource in use" 08h "Resource in use - request queued" 09h "No such resource" 0Ah "Invalid username/password pair" 0Bh "Noncompatible version number" 0Ch "Can't remove from memory" 0Dh "Bad NETBIOS adapter number" 0Eh "No more entries in list" 0Fh "Resource is not available at this time" 10h "Invalid value to INT 14 call"Top
INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET I/O BUFFER SIZES AX = 8003h DX = port number Return: AX = number of characters in input buffer BX = input buffer size CX = number of characters in output buffer DX = output buffer size SeeAlso: AX=8000h"COMM-DRV",AX=8001h"COMM-DRV",AX=8002h"COMM-DRV"Top
INT 14 - ARTICOM - ATTACH ASYNCHRONOUS RESOURCE AX = 8004h DX = port to redirect (COM1=0, COM2=1, ...) CH = attach type CL = adapter to use for attach, 0FFh to search all ES:DI -> attachment structure (see #00361) Return: AX = error code, if error (see #00360) Note: The wildcard '*' is supported in the server and resource fields. If wild cards are used then the first matching available server is attached. SeeAlso: AX=8000h,AX=8003h,AX=8005h Format of ARTICOM attachment structure: Offset Size Description (Table 00361) 00h 16 BYTEs server to look for attach 10h 16 BYTEs attach to resource name 20h 16 BYTEs username for attach 30h 16 BYTEs password for username or resource 40h BYTE attach type 00h normal 01h queue if resource is in use (not yet supported in v1.00)Top
INT 14 - ARTICOM - DETACH ASYNCHRONOUS RESOURCE AX = 8005h DX = port to detach (COM1=0, COM2=1, ...) Return: AX = error code, if error (see #00360) Note: only a previously attached resource can be detached SeeAlso: AX=8000h,AX=8003h,AX=8004hTop
INT 14 - ARTICOM - GET RESOURCE INFORMATION AX = 8006h BX = remote port (COM1=0, COM2=1, ...) CL = adapter number, FFh to try all adapters ES:DI -> resource information structure (see #00362) DS:SI -> 16 byte server name. See note. Return: AX = error code, if error (see #00360) BX = next remote port, recall to get next resource info Note: Wild cards supported in both the resource field and server name string DS:SI. If wild cards used then first matching available resource information is searched. Set the resource field to FFh to return all resources. SeeAlso: AX=8000h,AX=8002h,AX=8003h,AX=8007h Format of ARTICOM resource information structure: Offset Size Description (Table 00362) 00h BYTE 00h = free, else used 01h 16 BYTEs resource name 11h 16 BYTEs username of resource user 21h WORD amount of time used 23h WORD amount of time remaining 53h 48 BYTEs description of resource 93h 64 BYTEs initialization string for modem B3h 32 BYTEs dial string for modem D3h 32 BYTEs hang-up string for modemTop
INT 14 - ARTICOM - GET REDIRECTED PORT INFORMATION AX = 8007h DX = port index (COM1=0, COM2=1, ...) ES:DI -> buffer for port information structure (see #00363) Return: CF clear if redirection info returned and port is redirected CF set if not a redirected port AX = error code, if error (see #00360) SeeAlso: AX=8000h,AX=8003h,AX=8006h,AX=8008h Format of ARTICOM port information structure: Offset Size Description (Table 00363) 00h 16 BYTEs server name resource is on 10h BYTE adapter number server is on 11h 16 BYTEs resource name 21h WORD remote port index, use to get additional information 23h WORD buffer size 25h WORD baud rate (see #00364) 26h BYTE modem status register 27h BYTE modem control register 28h BYTE line status register 29h BYTE line control register 2Ah BYTE flow control in use: 0 - NONE, 1 - XON/XOFF, 2 - RTS/CTS 2Bh WORD send timeout in ticks 2Dh WORD receive timeout in ticks 2Fh WORD time used on remote port 31h WORD time left before timeout 33h BYTE if server changes allowed? 34h WORD FFFFh (-1) if connection ok, else old port index (Table 00364) Values for ARTICOM baud rate: 00h 110 01h 150 02h 300 03h 600 04h 1200 05h 2400 06h 4800 07h 9600 08h 19200 09h 38400 0Ah 57600 0Bh 115200 0Ch 134.5 0Dh 1800 0Eh 2000 0Fh 3600 10h 7200 SeeAlso: #00309Top
INT 14 - ARTICOM - GET AVAILABLE SERVER NAME AX = 8008h BX = server index (0,1,...) ES:DI -> server name structure (see #00365) Return: AX = error code, if error (see #00360) BX = next remote port, repeat call to get next available server Note: the wildcard '*' is supported in the server name field. Set the server name to FFh to search for all servers. SeeAlso: AX=8000h,AX=8003h,AX=8007h Format of ARTICOM server name structure: Offset Size Description (Table 00365) 00h 16 BYTEs (call) ASCIZ server name 10h BYTE (ret) the adapter server is foundTop
INT 14 - ARTICOM - SET SEND AND RECEIVE TIMEOUTS AX = 8009h BX = send timeout in ticks CX = receive timeout in ticks DX = port index (COM1=0, COM2=1, ...) Return: nothing SeeAlso: AX=8000h,AX=800AhTop
INT 14 - ARTICOM - MODIFY FLOW CONTROL AX = 800Ah BL = flow control type (00h none, 01h XON/XOFF, 02h RTS/CTS) DX = port index (COM1=0, COM2=1, ...) Return: AX = error code, if error (see #00360) Note: for attached ports only! SeeAlso: AX=8000h,AX=8003h,AX=8009hTop
INT 14 - ARTICOM - SET INTERNAL SEND/RECEIVE VECTOR AX = 8025h DS:DX -> address of trap function (see #00366) to call on read/write Return: nothing Note: setting the vector to a user function allows the redirector's activity to be monitored. SeeAlso: AX=8000h,AX=8035h,INT 21/AH=25h (Table 00366) Values ARTICOM trap function is called with: AH = operation 80h reading character 81h writing character AL = character Return: AX must be preserved far JUMP to old trap function (see AX=8035h)Top
INT 14 - ARTICOM - GET INTERNAL SEND/RECEIVE VECTOR AX = 8035h Return: ES:BX -> address of current send/receive routine Note: this function returns the address of the routine which is called inside A-REDIR.EXE each time a character is received or sent on the active COM port. SeeAlso: AX=8000h,AX=8025h,INT 21/AH=35hTop
INT 14 - COURIERS.COM - CHECK IF PORT BUSY AH = 81h AL = port number (1-4) Return: AH = status 00h port available 01h port exists but already in use 02h port nonexistent Program: COURIERS is a TSR utility by PC Magazine SeeAlso: AH=83h,AH=8DhTop
INT 14 - COMM-DRV - EXTENDED INITIALIZATION AH = 81h BX:DI -> port control block (see #00367) DX = port number Return: AH = line status register (see #00304) error if bit 7 set AL = modem status register (see #00305) Program: COMM-DRV is a universal serial communications driver by Willies' Computer Software Company, which supports standard INT 14 and FOSSIL calls as well as its own interfaces Note: AX=8001h should be called first to fill in the port control block SeeAlso: AH=00h,AX=8001h,AH=82h"COMM-DRV",AH=86h"COMM-DRV" Format of COMM-DRV port control block: Offset Type Description (Table 00367) 00h WORD port IO address 02h WORD port IRQ 04h WORD baud rate 06h WORD parity 08h WORD data bits 0Ah WORD stop bits 0Ch WORD break status (0000h off) 0Eh WORD flow control protocol 10h BYTE input block 11h BYTE output block 12h WORD low threshold 14h WORD high threshold 16h WORD segment of buffer 18h WORD offset of buffer 1Ah WORD input buffer length 1Ch WORD output buffer length 1Eh BYTE auxiliary address 1Fh BYTE spare 20h 4 WORDs sparesTop
INT 14 - VIDEO FOSSIL - RETURN VFOSSIL INFORMATION AX = 8100h ES:DI -> buffer for VFOSSIL information (see #00368) Return: AX = 1954h if installed SeeAlso: AH=7Eh,AX=8101h Format of VFOSSIL information: Offset Size Description (Table 00368) 00h WORD size of information in bytes, including this field 02h WORD VFOSSIL major version 04h WORD VFOSSIL revision level 06h WORD highest VFOSSIL application function supportedTop
INT 14 - VIDEO FOSSIL - OPEN VFOSSIL AX = 8101h ES:DI -> buffer for application function table (see #00369) CX = length of buffer in bytes Return: AX = 1954h if installed BH = highest VFOSSIL application function supported Note: the number of initialized pointers in the application function table will never exceed CX/4; if the buffer is large enough, BH+1 pointers will be initialized SeeAlso: AX=8102h Format of VFOSSIL application function table: Offset Size Description (Table 00369) 00h DWORD -> function to query current video mode (VioGetMode)(see #00374) 04h DWORD -> function to set video mode (VioSetMode) (see #00375) 08h DWORD -> function to query hardware config (VioGetConfig) (see #00376) 0Ch DWORD -> function to write data in TTY mode (VioWrtTTY) (see #00377) 10h DWORD -> function to get current ANSI state (VioGetANSI) (see #00378) 14h DWORD -> function to set new ANSI state (VioSetANSI) (see #00379) 18h DWORD -> function to get curr cursor position (VioGetCurPos) (see #00380) 1Ch DWORD -> function to set cursor position (VioSetCurPos) (see #00381) 20h DWORD -> function to get cursor shape (VioGetCurType) (see #00382) 24h DWORD -> function to set cursor shape (VioSetCurType) (see #00383) 28h DWORD -> function to scroll screen up (VioScrollUp) (see #00384) 2Ch DWORD -> function to scroll screen down (VioScrollDn) (see #00385) 30h DWORD -> function to read cell string from screen (VioReadCellStr) (see #00386) 34h DWORD -> function to read char string from screen (VioReadCharStr) (see #00387) 38h DWORD -> function to write a cell string (VioWrtCellStr) (see #00388) 3Ch DWORD -> function to write char string, leaving attr (VioWrtCharStr) (see #00389) 40h DWORD -> function to write char string,const attr (VioWrtCharStrAttr) (see #00390) 44h DWORD -> function to replicate an attribute (VioWrtNAttr) (see #00391) 48h DWORD -> function to replicate a cell (VioWrtNCell) (see #00392) 4Ch DWORD -> function to replicate a character (VioWrtNChar) (see #00393) Format of VFOSSIL video mode data structure: Offset Size Description (Table 00370) 00h WORD length of structure including this field 02h BYTE mode characteristics bit 0: clear if MDA, set otherwise bit 1: graphics mode bit 2: color disabled (black-and-white) 03h BYTE number of colors supported (1=2 colors, 4=16 colors, etc) 04h WORD number of text columns 06h WORD number of text rows 08h WORD reserved 0Ah WORD reserved 0Ch DWORD reserved SeeAlso: #00374,#00375 Format of VFOSSIL video configuration data: Offset Size Description (Table 00371) 00h WORD structure length including this field 02h WORD adapter type 00h monochrome/printer 01h CGA 02h EGA 03h VGA 07h 8514/A 04h WORD display type 00h monochrome 01h color 02h enhanced color 09h 8514 06h DWORD adapter memory size SeeAlso: #00376 Format of VFOSSIL cursor type record: Offset Size Description (Table 00372) 00h WORD cursor start line 02h WORD cursor end line 04h WORD cursor width (always 01h) 06h WORD cursor attribute (FFFFh = hidden) (Table 00373) Values for VFOSSIL error code: 0000h successful 0074h internal VIO failure 0163h unsupported mode 0166h invalid row value 0167h invalid column value 017Eh buffer too small 01A5h invalid VIO parameter 01B4h invalid VIO handle (Table 00374) Call VioGetMode with: STACK: WORD VIO handle (must be 00h) DWORD pointer to video mode data structure (see #00370) Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #00373) SeeAlso: #00375 (Table 00375) Call VioSetMode with: STACK: WORD VIO handle (must be 00h) DWORD pointer to video mode data structure (see #00370) Return: AX = error code (00h, 74h, 163h, 17Eh, 1A5h, 1B4h) (see #00373) SeeAlso: #00374 (Table 00376) Call VioGetConfig with: STACK: WORD VIO handle (must be 00h) DWORD pointer to video configuration data buffer (see #00371) Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #00373) (Table 00377) Call VioWrtTTY with: STACK: WORD VIO handle (must be 00h) WORD length of string DWORD pointer to character string to be written to screen Return: AX = error code (00h, 74h, 1B4h) (see #00373) Notes: write wraps at end of line and terminates if it reaches end of screen in ANSI mode, ANSI control sequences are interpreted, and this func is not required to be reentrant; in non-ANSI mode, the function is reentrant and may be called from within an MS-DOS function call (Table 00378) Call VioGetANSI with: STACK: WORD VIO handle (must be 00h) DWORD pointer to WORD which will be set to 00h if ANSI is off or 01h if ANSI is on Return: AX = error code (00h, 74h, 1B4h) (see #00373) SeeAlso: #00379 (Table 00379) Call VioSetANSI with: STACK: WORD VIO handle (must be 00h) DWORD pointer to WORD indicating new state of ANSI 00h off, 01h on Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see #00373) SeeAlso: #00378 (Table 00380) Call VioGetCurPos with: STACK: WORD VIO handle (must be 00h) DWORD pointer to WORD to hold current cursor column (0-based) DWORD pointer to WORD to hold current cursor row (0-based) Return: AX = error code (00h, 74h, 1B4h) (see #00373) SeeAlso: #00381 (Table 00381) Call VioSetCurPos with: STACK: WORD VIO handle (must be 00h) WORD cursor column WORD cursor row Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) Note: if either coordinate is invalid, the cursor is not moved SeeAlso: #00380 (Table 00382) Call VioGetCurType with: STACK: WORD VIO handle (must be 00h) DWORD pointer to cursor type record (see #00372) Return: AX = error code (00h, 74h, 1B4h) (see #00373) SeeAlso: #00383 (Table 00383) Call VioSetCurType with: STACK: WORD VIO handle (must be 00h) DWORD pointer to cursor type record (see #00372) Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see #00373) SeeAlso: #00384 (Table 00384) Call VioScrollUp with: STACK: WORD VIO handle (must be 00h) DWORD pointer to char/attr cell for filling emptied rows WORD number or rows to scroll (FFFFh = clear area) WORD right column of scroll area WORD bottom row of scroll area WORD left column of scroll area WORD top row of scroll area Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) SeeAlso: #00385,INT 10/AH=06h (Table 00385) Call VioScrollDn with: STACK: WORD VIO handle (must be 00h) DWORD pointer to char/attr cell for filling emptied rows WORD number or rows to scroll (FFFFh = clear area) WORD right column of scroll area WORD bottom row of scroll area WORD left column of scroll area WORD top row of scroll area Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) SeeAlso: #00384,INT 10/AH=07h (Table 00386) Call VioReadCellStr with: STACK: WORD VIO handle (must be 00h) WORD column at which to start reading WORD row at which to start reading DWORD pointer to WORD containing length of buffer in bytes on return, WORD contains number of bytes actually read DWORD pointer to buffer for cell string Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see #00373) (Table 00387) Call VioReadCharStr with: STACK: WORD VIO handle (must be 00h) WORD column at which to start reading WORD row at which to start reading DWORD pointer to WORD containing length of buffer in bytes on return, WORD contains number of bytes actually read DWORD pointer to buffer for character string Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see #00373) (Table 00388) Call VioWrtCellStr with: STACK: WORD VIO handle (must be 00h) WORD column at which to start writing WORD row at which to start writing WORD length of cell string in bytes DWORD pointer to cell string to write Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) Note: write wraps at end of line and terminates if it reaches end of screen (Table 00389) Call VioWrtCharStr with: STACK: WORD VIO handle (must be 00h) WORD column at which to start writing WORD row at which to start writing WORD length of character string DWORD pointer to character string to write Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) Note: write wraps at end of line and terminates if it reaches end of screen (Table 00390) Call VioWrtCharStrAttr with: STACK: WORD VIO handle (must be 00h) DWORD pointer to attribute to be applied to each character WORD column at which to start writing WORD row at which to start writing WORD length of character string DWORD pointer to character string to write Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) Note: write wraps at end of line and terminates if it reaches end of screen (Table 00391) Call VioWrtNAttr with: STACK: WORD VIO handle (must be 00h) WORD column at which to start writing WORD row at which to start writing WORD number of times to write attribute DWORD pointer to display attribute to replicate Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) Note: write wraps at end of line and terminates if it reaches end of screen (Table 00392) Call VioWrtNCell with: STACK: WORD VIO handle (must be 00h) WORD column at which to start writing WORD row at which to start writing WORD number of times to write cell DWORD pointer to cell to replicate Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) Note: write wraps at end of line and terminates if it reaches end of screen (Table 00393) Call VioWrtNChar with: STACK: WORD VIO handle (must be 00h) WORD column at which to start writing WORD row at which to start writing WORD number of times to write character DWORD pointer to character to replicate Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373) Note: write wraps at end of line and terminates if it reaches end of screenTop
INT 14 - VIDEO FOSSIL - CLOSE VFOSSIL AX = 8102h Return: AX = 1954h Note: terminates all operations; after this call, the video FOSSIL may either be removed from memory or reinitialized SeeAlso: AX=8101h,AX=8103hTop
INT 14 - VIDEO FOSSIL - UNINSTALL AX = 8103h Return: AX = 1954h Note: this is an extension to the VFOSSIL spec by Bob Hartman's VFOS_IBMTop
INT 14 - KEYBOARD FOSSIL AH = 82h SeeAlso: AH=7EhTop
INT 14 - COURIERS.COM - CONFIGURE PORT AH = 82h AL = port number (1-4) BX = speed (bps) CX = bit flags bit 0: enable input flow control bit 1: enable output flow control bit 2: use X.PC protocol (not yet implemented) Return: nothing SeeAlso: AH=00h,AH=8Ch,INT 7A"X.PC"Top
INT 14 - COMM-DRV v14.0 - PORT CLEANUP AH = 82h DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful Desc: reset the port to its state before the AH=81h initialization and unhook any interrupts used by the port SeeAlso: AH=81h"COMM-DRV",AH=83h"COMM-DRV"Top
INT 14 - SYSTEM FOSSIL AH = 83h SeeAlso: AH=7EhTop
INT 14 - COURIERS.COM - START INPUT AH = 83h ES:BX -> circular input buffer CX = length of buffer (should be at least 128 bytes if input flow control enabled) Return: nothing SeeAlso: AH=18h,AH=87h,AH=8Dh,AH=A5h"BAPI"Top
INT 14 - COMM-DRV v14.0 - FLUSH COMMUNICATION BUFFERS AH = 83h DX = port number AL = subfunction 00h flush input buffer 01h flush output buffer 02h flush both buffers Return: AH bit 7 set on error AH bit 7 clear if successful SeeAlso: AH=81h"COMM-DRV",AH=84h"COMM-DRV"Top
INT 14 - COURIERS.COM - READ CHARACTER AH = 84h Return: ZF set if no characters available ZF clear AL = character AH = modem status bits bit 7: set on input buffer overflow SeeAlso: AH=02h,AH=86h,AH=89hTop
INT 14 - COMM-DRV v14.0 - SEND PACKET AH = 84h CX = packet length in bytes DX = port number ES:DI -> packet to be sent Return: AH = line status (see #00304) bit 7 set on error AL destroyed SeeAlso: AH=83h"COMM-DRV",AH=85h"COMM-DRV",AH=86h"COMM-DRV"Top
INT 14 - COURIERS.COM - FLUSH PENDING INPUT AH = 85h Return: nothing SeeAlso: AH=0Ah,AH=88h"COURIERS"Top
INT 14 - COMM-DRV v14.0 - RECEIVE PACKET AH = 85h CX = length of packet in bytes DX = port number ES:DI -> buffer for packet Return: AH = line status (see #00304) bit 7 set on error AL destroyed Note: this call requires that at least the requested number of bytes are already present in the input buffer, and will fail if there are fewer bytes available SeeAlso: AH=84h"COMM-DRV",AH=86h"COMM-DRV",AH=8Eh"COMM-DRV"Top
INT 14 - COURIERS.COM - START OUTPUT AH = 86h ES:BX -> output buffer CX = length of output buffer Return: nothing SeeAlso: AH=19h,AH=83h"COURIERS",AH=A4h"BAPI"Top
INT 14 - COMM-DRV v14.0 - SET INPUT/OUTPUT TIMEOUTS AH = 86h BL = maximum clock ticks to wait before signalling error on input func BH = maximum clock ticks to wait before signalling error on output DX = port number SI = input timeout in clock ticks if BL=FFh and BH=FFh DI = output timeout in clock ticks if BL=FFh and BH=FFh Return: AH bit 7 set on error AH bit 7 clear if successful Note: functions 02h, 85h, and 8Eh will wait for the input timeout before returning an error when no data is available; functions 01h and 84h will wait for the output timeout before returning an error if there is no space to output the data SeeAlso: AH=01h,AH=02h,AH=84h"COMM-DRV",AH=85h"COMM-DRV",AH=8Eh"COMM-DRV"Top
INT 14 - COURIERS.COM - OUTPUT STATUS AH = 87h Return: AX = number of unsent characters SeeAlso: AH=88h"COURIERS"Top
INT 14 - COMM-DRV v14.0 - TURN ON DTR AH = 87h DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful SeeAlso: AX=8000h"COMM-DRV",AH=88h"COMM-DRV",AH=89h"COMM-DRV"Top
INT 14 - COURIERS.COM - ABORT OUTPUT AH = 88h SeeAlso: AH=09h"FOSSIL",AH=85h"COURIERS"Top
INT 14 - COMM-DRV v14.0 - TURN OFF DTR AH = 88h DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful Program: COMM-DRV is a universal serial communications driver by Willies' Computer Software Company, which supports standard INT 14 and FOSSIL calls as well as its own interfaces SeeAlso: AX=8000h"COMM-DRV",AH=87h"COMM-DRV",AH=8Ah"COMM-DRV"Top
INT 14 - COURIERS.COM - SEND SINGLE CHARACTER AH = 89h CL = character to send Return: nothing SeeAlso: AH=01h,AH=84h"COURIERS"Top
INT 14 - COMM-DRV v14.0 - TURN ON RTS AH = 89h DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful SeeAlso: AX=8000h"COMM-DRV",AH=87h"COMM-DRV",AH=8Ah"COMM-DRV"Top
INT 14 - COURIERS.COM - SEND BREAK AH = 8Ah Return: nothing SeeAlso: AH=89h"COURIERS",AH=FAhTop
INT 14 - COMM-DRV v14.0 - TURN OFF RTS AH = 8Ah DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful SeeAlso: AX=8000h"COMM-DRV",AH=88h"COMM-DRV",AH=89h"COMM-DRV"Top
INT 14 - COMM-DRV v14.0 - SET USER INTERRUPT ROUTINE AH = 8Bh CX = bitmask of interrupt to process 00h = deinstall BX:DI -> DWORD containing address of function to be called Return: AH bit 7 clear if successful AH bit 7 set on errorTop
INT 14 - COURIERS.COM - SET SPEED AH = 8Ch BX = speed in bps Return: nothing SeeAlso: AH=00h,AH=82h"COURIERS"Top
INT 14 - COMM-DRV v14.0 - READ UART REGISTER AH = 8Ch AL = register offset DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful AL = contents of UART register SeeAlso: AH=8Dh"COMM-DRV"Top
INT 14 - COURIERS.COM - DECONFIGURE PORT AH = 8Dh Return: nothing SeeAlso: AH=82h"COURIERS"Top
INT 14 - COMM-DRV v14.0 - WRITE UART REGISTER AH = 8Dh AL = register offset BL = new value for UART register DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful SeeAlso: AH=8Ch"COMM-DRV"Top
INT 14 - COMM-DRV v14.0 - READ PACKET NONDESTRUCTIVELY AH = 8Eh CX = length of packet in bytes DX = port number ES:DI -> buffer for packet Return: AH = line status (see #00304) bit 7 set on error (see AX=8000h"COMM-DRV") AL destroyed Program: COMM-DRV is a universal serial communications driver by Willies' Computer Software Company, which supports standard INT 14 and FOSSIL calls as well as its own interfaces Desc: retrieve a packet from the input buffer without removing it from the buffer Note: this call requires that at least the requested number of bytes are already present in the input buffer, and will fail if there are fewer bytes available SeeAlso: AX=8000h"COMM-DRV",AH=84h"COMM-DRV",AH=85h"COMM-DRV",AH=86h"COMM-DRV"Top
INT 14 - 3com BAPI SERIAL I/O - CONNECT TO PORT AH = A0h ES:BX -> ASCIZ internet host name CX = length of name Return: AH = return code (00h,04h-06h,08h,0Ah-0Ch) (see #00394) CL = session ID Program: the Bridge Application Program Interface is a set of functions which makes many of the details of LAN communications transparent Note: Novell TELAPI.EXE returns AH=09h (not supported) and CL=00h SeeAlso: AH=A1h"BAPI",AH=A2h"BAPI",AH=A5h"BAPI",AX=AF00h (Table 00394) Values for 3com BAPI return code: 00h successful 01h no characters written 02h no characters read 03h no such session 04h clearinghouse name not found 05h no response from host 06h no more sessions available 07h session aborted 08h invalid clearinghouse name 09h not supported 0Ah internal (general) network error 0Bh out of memory 0Ch invalid IP addressTop
INT 14 - Interconnections Inc. TES - INSTALLATION CHECK/STATUS REPORT
AH = A0h
CX = FFFFh
Return: CF clear if successful
AX = 5445h ('TE')
CX <> FFFFh
DX = port number
CF set on error
Program: TES is a network serial port emulation program
SeeAlso: AH=A1h"TES"
Top
INT 14 - 3com BAPI SERIAL I/O - DISCONNECT FROM PORT AH = A1h DH = session ID (00h for external session managment) Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #00394) AL destroyed (Novell TELAPI.EXE) SeeAlso: AH=A0h"BAPI"Top
INT 14 - Interconnections Inc. TES - GET LIST OF SESSIONS WITH STATUS AH = A1h Return: CX = number of active sessions ES:SI -> status array (see #00395) SeeAlso: AH=A2h"TES",AH=A3h"TES" Format of Interconnections TES status array entry: Offset Size Description (Table 00395) 00h BYTE status 01h WORD offset of nameTop
INT 14 - 3com BAPI SERIAL I/O - WRITE CHARACTER AH = A2h AL = character DH = session ID (00h for external session managment) Return: AH = return code (00h,01h,03h,07h,0Ah,0Bh) (see #00394) SeeAlso: AH=A0h"BAPI",AH=A3h"BAPI",AH=A4h"BAPI"Top
INT 14 - Interconnections Inc. TES - GET LIST OF SERVER NAMES AH = A2h Return: CX = number of servers ES:SI -> array of offsets from ES for server names SeeAlso: AH=A1h"TES"Top
INT 14 - 3com BAPI SERIAL I/O - READ CHARACTER AH = A3h DH = session ID (00h for external session managment) Return: AH = return code (00h,02h,03h,07h,0Ah,0Bh) (see #00394) AL = character read or 00h if none available SeeAlso: AH=A0h"BAPI",AH=A2h"BAPI",AH=A5h"BAPI",AH=A7h"BAPI"Top
INT 14 - Interconnections Inc. TES - START A NEW SESSION
AH = A3h
ES:SI -> ???
Return: CF clear if successful
AX = 5445h ('TE')
CX <> FFFFh
DX = port number
CF set on error
SeeAlso: AH=A1h"TES",AH=A4h"TES",AH=A6h"TES"
Top
INT 14 - 3com BAPI SERIAL I/O - WRITE BLOCK AH = A4h CX = length of buffer in bytes DH = session ID (00h for external session managment) ES:BX -> buffer containing data Return: AH = return code (00h,01h,03h,07h,0Ah,0Bh) (see #00394) CX = number of bytes actually sent SeeAlso: AH=19h,AH=86h,AH=A0h"BAPI",AH=A5h"BAPI"Top
INT 14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION AH = A4h ??? Return: ??? SeeAlso: AH=A3h"TES",AH=A5h"TES"Top
INT 14 - 3com BAPI SERIAL I/O - READ BLOCK AH = A5h CX = length of buffer DH = session ID (00h for external session managment) ES:BX -> buffer for data Return: AH = return code (00h,02h,03h,07h,0Ah,0Bh) (see #00394) CX = number of bytes actually read SeeAlso: AH=18h,AH=83h"COURIERS",AH=A0h"BAPI",AH=A3h"BAPI",AH=A4h"BAPI" SeeAlso: AH=A7h"BAPI",AX=FF02hTop
INT 14 - Interconnections Inc. TES - RESUME A SESSION AH = A5h AL = session number Return: ??? SeeAlso: AH=A4h"TES",AH=A6h"TES"Top
INT 14 - 3com BAPI SERIAL I/O - SEND SHORT BREAK AH = A6h DH = session ID (00h for external session managment) Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #00394) Desc: generate a short break signal; if data delivery was turned off by the break, wait for the host to turn it on again SeeAlso: AH=1Ah,AH=8Ah,AH=FAh,AH=A0h"BAPI"Top
INT 14 - Interconnections Inc. TES - DROP A SESSION AH = A6h AL = session number Return: AH = status 00h successful else error SeeAlso: AH=A3h"TES",AH=A5h"TES"Top
INT 14 - 3com BAPI SERIAL I/O - READ STATUS AH = A7h DH = session ID (00h for external session managment) Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #00394) CX = number of bytes available for reading Note: Novell TELAPI.EXE v4.01 always returns either 0 or 1 bytes available SeeAlso: AH=A5h"BAPI"Top
INT 14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION AH = A7h ??? Return: ??? SeeAlso: AH=A3h"TES",AH=A5h"TES"Top
INT 14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER AH = A8h AL = 00h no visible response ES:SI -> ASCIZ command Return: ???Top
INT 14 - Novell TelAPI v4.01 - CONNECTION INFORMATION??? AH = A8h DH = session ID??? CH = subfunction 02h ??? 0Dh ??? 0Fh ??? 10h ??? 11h ??? 28h ??? else Return: AH = 09h (not supported) Return: AH = return code (see #00394) 00h successful CL = ??? (0/1/8) (subfunctions 02h,0Dh,0Fh,10h) CL = ??? (7Fh/FFh) (subfunction 28h) CX = ??? (subfunction 11h) SeeAlso: AH=A9h"TelAPI"Top
INT 14 - Novell TelAPI v4.01 - CONNECTION CONTROL??? AH = A9h DH = session ID??? CH = subfunction 02h ??? 0Dh ??? 0Fh ??? 10h ??? 11h ??? 28h ??? else Return: AH = 09h (not supported) ??? Return: AH = return code (see #00394) ??? SeeAlso: AH=A8h"TelAPI",AH=E4h,INT 6B/AX=0600hTop
INT 14 - DimVGA v2.0+ - INSTALLATION CHECK AX = AA01h Return: AX = FFFFh if installed, unchanged BX = version (v1.5+ only), BH = major, BL = minor (v1.5 = 0105h) CX = resident segment (v3.1+) Program: DimVGA is a public domain screen saver by Menno Pieters SeeAlso: AX=AA02h,AX=AA03h,AX=AA06h,INT 11/AX=0225h/BX=6900h,INT 12"KEYBUI" SeeAlso: INT 2D/AL=10h"Burnout Plus",INT 2F/AX=6400h,INT 2F/AH=93h SeeAlso: INT 2F/AX=C000h"VGAsave",INT 2F/AX=C000h"AD-DOS",INT 2F/AX=C050h SeeAlso: INT 2F/AX=E300h Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - SET TIME-OUT (DIMMING/BLANKING) PERIOD AX = AA02h BX = number of clock ticks Return: AX = FFFFh Note: on screen modes with 256 or less colors DimVGA will dim the screen, when more than 256 colors can be used DimVGA will blank the screen. SeeAlso: AX=AA01h,AX=AA03h,AX=AA04h,AX=AA06h Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - SET DIMMING FACTOR AX = AA03h BX = percentage remaining visible (1-99) Return: AX = FFFFh SeeAlso: AX=AA02h,AX=AA05h,AX=AA06h Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - GET TIME-OUT PERIOD AX = AA04h Return: AX = FFFFh BX = current time-out in clock ticks SeeAlso: AX=AA02h,AX=AA05h,AX=AA0Ah Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - GET DIMMING FACTOR AX = AA05h Return: AX = FFFFh BX = current dimming factor SeeAlso: AX=AA03h,AX=AA04h,AX=AA0Ah Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - DISABLE AX = AA06h Return: AX = FFFFh SeeAlso: AX=AA01h,AX=AA07h,AX=AA0Ah Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - ENABLE AX = AA07h Return: AX = FFFFh SeeAlso: AX=AA01h,AX=AA06h,AX=AA0Ah Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - DIM SCREEN 'MANUALLY' AX = AA08h Return: AX = FFFFh Note: this function will dim the screen immediately, even if DimVGA is currently disabled SeeAlso: AX=AA01h,AX=AA02h,AX=AA09h Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - UNDIM SCREEN 'MANUALLY' AX = AA09h Return: AX = FFFFh Note: this function will undim the screen immediately, even if DimVGA is currently disabled SeeAlso: AX=AA01h,AX=AA08h Index: screen saver;DimVGATop
INT 14 - DimVGA v2.0+ - CHECK WHETHER ENABLED AX = AA0Ah Return: AX = FFFFh BX = current state (0000h disabled, 0001h enabled) SeeAlso: AX=AA01h,AX=AA06h,AX=AA07h Index: screen saver;DimVGATop
INT 14 - DimVGA v2.1+ - SET HOTKEY AX = AA0Bh BH = shift state (see #00396) BL = keyboard scancode Return: AX = FFFFh SeeAlso: AX=AA01h,AX=AA0Ch Index: screen saver;DimVGA Bitfields for DimVGA hotkey shift state: Bit(s) Description (Table 00396) 7-4 unused 3 Alt key pressed 2 Ctrl key pressed 1 Left shift key pressed 0 Right shift key pressedTop
INT 14 - DimVGA v2.1+ - GET HOTKEY AX = AA0Ch Return: AX = FFFFh BH = shift state (see #00396) BL = keyboard scancode SeeAlso: AX=AA01h,AX=AA0Bh Index: screen saver;DimVGATop
INT 14 - DimVGA v3.0+ - SET MOUSE CHECK STATUS AX = AA0Dh BX = new mouse check status 0000h mouse checking off 0001h mouse checking on Return: AX = FFFFh Note: before switching mouse checking on, a mouse driver should be found in memory. If no mouse driver is found, mouse checking should be switched off (resident DimVGA does not check by itself). SeeAlso: AX=AA01h,AX=AA0Eh Index: screen saver;DimVGATop
INT 14 - DimVGA v3.0+ - GET MOUSE CHECK STATUS AX = AA0Eh Return: BX = mouse check status (0000h disabled, 0001h enabled) SeeAlso: AX=AA01h,AX=AA0Dh Index: screen saver;DimVGATop
INT 14 - DimVGA v3.4 - SET LOCKING STATUS AX = AA0Fh BX = locking status 0000h disabled 0001h enabled Return: AX = FFFFh SeeAlso: AX=AA01h,AX=AA0Dh,AX=AA10h Index: screen saver;DimVGATop
INT 14 - DimVGA v3.4 - GET MOUSE CHECK STATUS AX = AA10h Return: BX = locking status (0000h disabled, 0001h enabled) SeeAlso: AX=AA01h,AX=AA0Dh,AX=AA0Fh Index: screen saver;DimVGATop
INT 14 - IBM SurePath BIOS - Officially "Private" Function AH = ADh SeeAlso: AH=AEh"IBM",AH=AFh"IBM"Top
INT 14 - IBM SurePath BIOS - Officially "Private" Function AH = AEh SeeAlso: AH=ADh"IBM",AH=AFh"IBM"Top
INT 14 - IBM SurePath BIOS - Officially "Private" Function AH = AFh SeeAlso: AH=ADh"IBM",AH=AEh"IBM"Top
INT 14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK AX = AF00h BX = AAAAh Return: AX = AF01h if installed BH = protocol type (if BX=AAAAh on entry) 01h NetManage TCP/IP BL = version for protocol type (if BX=AAAAh on entry) Note: early versions of the BAPI and the ROM BIOS simply destroy AX; this behavior is used to determine whether the newer functions (AH=B0h, AH=B1h,etc) are available SeeAlso: AH=A0h"BAPI"Top
INT 14 - 3com BAPI SERIAL I/O - EN/DISABLE "ENTER COMMAND MODE" (ECM) CHARACTER AH = B0h AL = new state (00h disabled, 01h enabled) Return: AH = return code (00h,07h,0Ah) (see #00394) Note: disabling the ECM character allows applications to send data which includes the ECM character SeeAlso: AX=AF00h"BAPI",AH=B1h,AH=B2hTop
INT 14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE AH = B1h Return: AH = return code (00h,07h,0Ah) (see #00394) Desc: provide a means for the application or terminal emulator to perform the same action normally caused by the ECM character SeeAlso: AH=B0h,AH=B2hTop
INT 14 - 3com BAPI SERIAL I/O - GET ECM WATCH STATE AH = B2h Return: AH = return code (00h,07h,0Ah) (see #00394) AL = watch flag (00h disabled, 01h enabled) Desc: determine whether the ECM character is enabled SeeAlso: AH=B0h,AH=B1hTop
INT 14 - 3com BAPI SERIAL I/O - GET/SET CONFIGURATION INFO AH = B3h AL = direction (00h get, 01h set) DH = session ID (00h for external session managment) DL = configuration item (00h = end-of-line mapping) CX = new configuration item value (if AL=01h) ---if DL=00h--- CH = application EOL type (app to Telnet client) 01h application will send lone CR 02h application will send CR-? pair CL = driver EOL type (Telnet client to Telnet server) 01h driver should send CR-NUL pair 02h driver should send CR-LF pair Return: AH = return code (00h,03h,09h-0Bh) (see #00394) ---if AL=00h--- CX = configuration item value (above) SeeAlso: AH=B2hTop
INT 14 - TelAPI - "telopen" - CREATE TELNET CONNECTION (BLOCKING) AH = E0h BX = port number to connect with (default 0017h used if <= 0) CX:DX = Internet address of remote host DS:DI -> 2-byte remote host (session) identifier ES:SI -> 1700-byte buffer for Telnet state record 0000h:0000h to use TelAPI internally-allocated space Return: AX = status (0000h-0009h,FED3h,FF37h,FFBDh,FFC0h,FFCDh) (see #00397) ES:SI buffer filled with state record ES:SI -> internally-allocated state record in some versions Note: the remote host identifier may be used to refer to this connection SeeAlso: AH=E1h,AH=ECh,AX=FF00h (Table 00397) Values for TelAPI status: 0000h-7FFFh successful (session number) FED3h (-301) no session allocated, or out of TelAPI data space FF37h (-201) all sessions in use FFBDh (-67) unknown hostname FFC0h (-64) host not functioning FFC3h (-61) connection attempt refused FFC4h (-60) connection attempt timed out FFC8h (-56) socket already connected FFCDh (-51) network is unreachable FFDDh (-35) operation would blockTop
INT 14 - MX5 Extended FOSSIL - GET MNP STATUS BLOCK AX = E000h DX = port number (0-3) Return: ES:BX -> status block (see #00398) Program: MX5 is a FOSSIL driver by MagicSoft which emulates MNP Level 5, and ships with the METZ terminal program as MTEMNP.DRV (a TSR despite the .DRV extension) SeeAlso: AX=E006h Format of MX5 Extended FOSSIL status block: Offset Size Description (Table 00398) 00h BYTE flag: active (00h no, 01h yes) 01h BYTE MNP level (2,4,5) 02h BYTE series ID from remote MNP 03h DWORD total packets transmitted 07h DWORD duplicate packets transmitted 0Bh DWORD maximum speed 0Fh DWORD total packets received 13h DWORD duplicate packets received 17h DWORD maximum speedTop
INT 14 - MX5 Extended FOSSIL - GET/SET MNP LEVEL AX = E001h BH = function 00h get MNP level 01h set MNP level BL = new level (00h none, 02h/04h/05h MNP level N) DX = port number (0-3) Return: BL = MNP level SeeAlso: AX=E002h,AX=E003h,AX=E004h,AX=E006hTop
INT 14 - MX5 Extended FOSSIL - GET/SET MNP ANSWER/ORIGINATE MODE AX = E002h BH = function 00h get answer/originate mode 01h set mode BL = new mode (00h originate [default], 01h answer) DX = port number (0-3) Return: BL = answer/originate mode SeeAlso: AX=E001h,AX=E003h,AX=E006hTop
INT 14 - MX5 Extended FOSSIL - GET/SET MNP WAIT TICKS AX = E003h BH = function 00h get wait ticks 01h set wait ticks BL = MNP wait ticks (default 0Eh) DX = port number (0-3) Return: BL = wait ticks SeeAlso: AX=E001h,AX=E002h,AX=E006hTop
INT 14 - MX5 Extended FOSSIL - GET/SET MNP CONNECT SOUND LEVEL AX = E004h BH = function 00h get sound level 01h set sound level BL = new sound level (00h off, 01h on [default]) DX = port number Return: BL = sound state Desc: specify whether MX5 should generate beeps after an MNP connection (three high beeps if successful, high then low on connection failure) SeeAlso: AX=E002h,AX=E006hTop
INT 14 - MX5 Extended FOSSIL - UNINSTALL AX = E005h Return: BX = segment of MX5's memory block or 0000h on failure Note: caller must free the returned memory block to complete the uninstall SeeAlso: AX=E006hTop
INT 14 - MX5 Extended FOSSIL - INSTALLATION CHECK
AX = E006h
BX = 0000h
Return: BX = 4D58h ('MX') if installed
AH = major version
AL = minor version
SeeAlso: AX=E000h,AX=E001h,AX=E005h,AX=E007h
Top
INT 14 - MX5 Extended FOSSIL - WAIT SPECIFIED NUMBER OF TICKS AX = E007h CX = number of ticks to wait Return: nothing SeeAlso: AX=E006hTop
INT 14 - TelAPI - "telclose" - TERMINATE TELNET CONNECTION AH = E1h BX = connection ID Return: AX = status (0000h,FFF7h,maybe others) (see #00397) Note: flushes and releases all buffers and data space used by the connection SeeAlso: AH=E0h,AH=E6h,AX=FF00hTop
INT 14 - TelAPI - "telread" - BUFFERED READ AH = E2h BX = connection ID (see AH=E0h"TelAPI") CX = length of buffer in bytes ES:SI -> buffer for data Return: AX > 0000h number of characters actually read AX = 0000h host has closed connection AX < 0000h error code (see #00397) Note: translates CRLF into local EOL if the connection is in ASCII mode, negotiates various Telnet options, and immediately executes several different Telnet action commands SeeAlso: AH=07h"TelAPI",AH=E3h,AH=E6h,AX=FF00h,INT 6B/AH=01hTop
INT 14 - TelAPI - "telwrite" - BUFFERED WRITE AH = E3h BX = connection ID CX = length of buffer in bytes ES:SI -> buffer containing data Return: AX > 0000h number of characters actually written AX < 0000h error code (see #00397) Note: translates local EOL into CRLF if the connection is in ASCII mode, sends the appropriate Telnet commands for the characters selected for IP, AYT, AO, EC, EL, and Break SeeAlso: AH=06h"TelAPI",AH=E2h,AH=E6h,AX=FF00h,INT 6B/AH=00hTop
INT 14 - TelAPI - "telioctl" - CONNECTION CONTROL AH = E4h BX = connection ID (see AH=E0h"TelAPI") CX = Telnet command/option identifier (see #00400) ES:SI -> buffer containing command/option argument (see #00399) Return: AX = status (0000h, etc.) (see #00397) Desc: start filter control, initiate Telnet option negotiation, or get filter control status SeeAlso: AH=A9h,AH=E6h,AX=FF00h,INT 6B/AX=0600h Format of TelAPI Telnet command/option argument: Offset Size Description (Table 00399) 00h 5 WORD numeric arguments 0Ah DWORD -> ASCIZ string SeeAlso: #00400 (Table 00400) Values for TelAPI Telnet command/option identifier: 01h ASCII args: none 02h BINARY args: none 03h LOCALECHO args: none client echos data 04h REMOTEECHO args: none server echos data 05h SGA args: none Suppress Go-Ahead signal 07h CHARMODE args: none no line-buffering 08h LINEMODE args: -> erase-line ch perform line-buffering 09h RECVEOL args: EOL type 0Ah SENDEOL args: EOL type 0Bh EOR args: none enable end-of-record sequence 0Dh BREAK args: -> break char 0Eh VERBOSE args: verbosity display Telnet negotiations? 0Fh AYT args: -> AYT escape ch 10h AO args: -> AO escape char 11h IP args: -> IP escape char 12h EC args: -> escape char 13h EL args: -> escape char 14h STATUS args: type; returns data in structure 18h TERMTYPE args: -> terminal type 19h ATTACHPORT args: port number ; returns session number 1Bh TRANSMIT_EOR args: EOR enabled append EOR to every telwrite? SeeAlso: #00399Top
INT 14 - TelAPI - "telreset" - RESET ALL CONNECTIONS AH = E5h Return: AX = status (0000h,other) (see also #00397) FFFFh unable to reset Desc: close all sessions and reset TelAPI to defaults SeeAlso: AH=E1h,AH=E6h,AX=FF00hTop
INT 14 - TelAPI - "telunload" - UNINSTALL AH = E6h Return: AX = status 0000h successful FFFFh unable to uninstall Notes: TelAPI also supports the NASI/NACS and NCSI APIs on INT 6B this function invokes AH=E5h internally SeeAlso: AH=E5h,AX=FF00h,INT 6B/AH=00h,INT 6B/AH=10hTop
INT 14 - TelAPI - "tellist" - GET TELNET SESSION LIST AH = E7h ES:SI -> 10-word buffer for session list Return: AX = 0000h (successful) ES:SI buffer filled Desc: determine, for each of the ten allowable sessions, whether the session is currently available Note: each word in the buffer is filled with either 0000h to indicate that the corresponding sesion is unavailable, or 0001h if available SeeAlso: AH=E0h,AH=E5h,AX=FF00hTop
INT 14 - TelAPI - "telattach" - ATTACH COM PORT TO/FROM TELNET SESSION AH = E8h BX = connection ID (see AH=E0h"TelAPI") CX = serial port number (0000h-0003h = COM1-COM4) Return: AX = status 0000h successful FFFFh failed SeeAlso: AH=E0h,AH=E9h,AX=FF00hTop
INT 14 - TelAPI - "telportosn" - GET SESSION NUMBER FOR COM PORT AH = E9h DX = serial port number (0000h-0003h = COM1-COM4) Return: AX >= 0000h session number AX < 0000h error code (see #00397) SeeAlso: AH=E0h,AH=E8h,AH=EAh,AX=FF00hTop
INT 14 - TelAPI - "telstatus" - GET TELNET CONNECTION STATUS INFORMATION AH = EAh BX = connection ID (see AH=E0h"TelAPI") ES:SI -> buffer for status info (see #00401) Return: AX = status (0000h,FFFFh,etc.) SeeAlso: AH=E9h,AH=EBh,AX=FF00h Format of TelAPI Telnet connection status information: Offset Size Description (Table 00401) 00h 4 BYTEs remote host IP address 04h 20 BYTEs reserved 18h WORD local port number 1Ah BYTE connection mode (00h = ASCII, 01h = Binary) 1Bh BYTE echo flag (00h local, 01h remote) 1Ch BYTE SGA flag (00h will, 01h won't) 1Dh BYTE EOR negotation flag (00h do negotiate, 01h don't) 1Eh BYTE buffering (00h line mode, 01h character mode) 1Fh BYTE reserved 20h BYTE verbose flag (00h no, 01h verbose mode) 21h BYTE received EOL (00h no xlat, 01h CR, 02h LF, 03h CRLF) 22h BYTE sent EOL (00h no translation, 01h CR, 02h LF) 23h BYTE break character 24h BYTE IP escape character 25h BYTE AO escape character 26h BYTE AYT escape character 27h BYTE EC escape character 28h BYTE EL escape character 29h 41 BYTEs ASCIZ Telnet-negotiated terminal type 52h 9 BYTEs session ID SeeAlso: #00402Top
INT 14 - TelAPI - "telname" - GET AVAILABLE/INUSE STATUS FOR ALL SESSIONS AH = EBh ES:SI -> buffer for session statuses (see #00402) Return: ES:SI buffer filled SeeAlso: AH=E9h,AH=EAh,AX=FF00h Format of TelAPI session status information [array]: Offset Size Description (Table 00402) 00h BYTE session state (00h available, 01h connected) 01h 9 BYTEs session ID if connected 0Ah WORD attached COM port if connected, FFFFh if not SeeAlso: #00401Top
INT 14 - TelAPI - "telnblkopen" - CREATE TELNET CONNECTION (NON-BLOCKING) AH = ECh BX = port number to connect with (default 0017h used if <= 0) CX:DX = Internet address of remote host DS:DI -> 2-byte remote host (connection) identifier ES:SI -> 1700-byte buffer for Telnet state record 0000h:0000h to use TelAPI internally-allocated space Return: AX = status (0000h-0009h,FED3h,FF37h,FFBDh,FFC0h,FFCDh) (see #00397) ES:SI buffer filled with state record ES:SI -> internally-allocated state record in some versions Notes: the remote host identifier may be used to refer to this connection this function returns immediately; use AH=EDh to check whether the connection has been established yet this function is not supported by the Microdyne TelAPI v3.7 SeeAlso: AH=E0h"TelAPI",AH=EDh,AX=FF00hTop
INT 14 - TelAPI - "telpoll" - POLL TELNET SESSION FOR CONNECTION COMPLETION AH = EDh BX = connection ID (see AH=ECh) Return: AX = status (0000h,0001h,FFFFh,etc.) (see also #00397) 0000h session now connected 0001h connection still in progress Note: this function is not supported by the Microdyne TelAPI v3.7 SeeAlso: AH=EDh,AX=FF00hTop
INT 14 - ASAP v1.0 - ??? AX = F0F0h DX = ??? ??? Return: ??? Program: ASAP (Automatic Screen Access Program) is a shareware screen reader by MicroTalk SeeAlso: AX=F0F1hTop
INT 14 - ASAP v1.0 - INSTALLATION CHECK AX = F0F1h DX = 0000h Return: DX = segment of resident code 0000h if not installed Program: ASAP (Automatic Screen Access Program) is a shareware screen reader by MicroTalk SeeAlso: AX=F0F0h,INT 10/AX=3800hTop
INT 14 - IBM/Yale EBIOS SERIAL I/O - INSTALLATION CHECK AX = F4FFh DX = port (00h-03h) Return: CF clear if present AX = 0000h CF set if not present AX <> 0000h SeeAlso: AH=36h"ComShare",AH=F9h,AH=FChTop
INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL AH = F9h DX = port (00h-03h) Return: nothing SeeAlso: AX=F4FFhTop
INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK AH = FAh DX = port (00h-03h) Return: nothing SeeAlso: AH=07h"MBBIOS",AH=1Ah,AH=8AhTop
INT 14 - IBM/Yale EBIOS SERIAL I/O - SET OUTGOING MODEM SIGNALS AH = FBh AL = modem control register (see #00334 at AH=05h"SERIAL") DX = port (00h-03h) Return: nothing SeeAlso: AH=05h"SERIAL"Top
INT 14 - IBM/Yale EBIOS SERIAL I/O - READ CHARACTER, NO WAIT AH = FCh DX = port (00h-03h) Return: AH = RS232 status bits (see #00304 at AH=03h) AL = character SeeAlso: AH=02h,AH=0Ch,AX=FF02hTop
INT 14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS AX = FD02h Return: CX = number of characters availableTop
INT 14 - TelAPI - "telcheck" - INSTALLATION CHECK AX = FF00h Return: AX = 00FFh if installed BX = version number * 100 (decimal) SeeAlso: AH=E6h,AX=F4FFhTop
INT 14 - IBM/Yale EBIOS SERIAL I/O - SET SEND BUFFER AX = FF01h CX = length of buffer (0000h to cancel buffer assignment) DX = port (00h-03h) ES:BX -> send buffer Return: nothing SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh,AX=FF02hTop
INT 14 - IBM/Yale EBIOS SERIAL I/O - SET RECEIVE BUFFER AX = FF02h CX = length of buffer (0000h to cancel buffer assignment) DX = port (00h-03h) ES:BX -> receive buffer Return: nothing SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh,AX=FF01hTop
INT 14 - COMM-DRV v14.0 - SET BAUD RATE DIVISOR AX = FFF8h BX = card type (sub-device number) CX = new baudrate divisor DX = index to baud rate Return: AH bit 7 set on error AH bit 7 clear if successful Program: COMM-DRV is a universal serial communications driver by Willies' Computer Software Company, which supports standard INT 14 and FOSSIL calls as well as its own interfaces SeeAlso: AX=8000h"COMM-DRV"Top
INT 14 - COMM-DRV v14.0 - GET HIGHEST ALLOWED PORT NUMBER AX = FFFBh DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful BX = highest port numberTop
INT 14 - COMM-DRV v14.0 - GET INT 14 FLAGS AX = FFFCh DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful BX = flags (see #00403) SeeAlso: AX=FFFDh Bitfields for INT 14h flags: Bit(s) Description (Table 00403) 0 port active for INT 14h 1 interface behaving like a FOSSIL driverTop
INT 14 - COMM-DRV v14.0 - SET INT 14 FLAGS AX = FFFDh BX = flags (see #00403) DX = port number Return: AH bit 7 set on error AH bit 7 clear if successful SeeAlso: AX=FFFChTop
INT 14 - COMM-DRV v14.0 - RESTORE INT 14 VECTOR TO ORIGINAL AX = FFFEh Return: AH bit 7 set on error AH bit 7 clear if successfulTop
INT 14 - COMM-DRV v14.0 - GET INT 14 INFORMATION AREA AX = FFFFh BX:SI -> DWORD buffer for address of information area (see #00404) (initialized to zeros) Return: BX:SI buffer filled with nonzero value if installed Program: COMM-DRV is a universal serial communications driver by Willies' Computer Software Company, which supports standard INT 14 and FOSSIL calls as well as its own interfaces Index: installation check;COMM-DRV Format of COMM-DRV information area: Offset Size Description (Table 00404) 00h 8 BYTEs signature "COMM-DRV" 08h 2 BYTEs 00h,00h 0Ah DWORD -> direct address mapping table 0Eh DWORD previous INT 14 vectorTop
INT 15 - Microsoft TSR Specification No additional information available at this time.Top
INT 15 - CASSETTE - TURN ON TAPE DRIVE'S MOTOR (PC and PCjr only) AH = 00h Return: CF set on error AH = 86h no cassette present CF clear if successful SeeAlso: AH=01h"CASSETTE",MEM 0040h:0067h"PC"Top
INT 15 - Amstrad PC1512 - GET AND RESET MOUSE COUNTS AH = 00h Return: CX = signed X count DX = signed Y countTop
INT 15 - VMiX v2+ - INSTALLATION CHECK AH = 00h Return: DX = 0798h if installed AX = version (AH = major, AL = minor)Top
INT 15 - MultiDOS Plus - GIVE UP TIME SLICE AH = 00h Return: nothing Note: if issued by the highest-priority task while MultiDOS is using priority-based rather than round-robin scheduling, control will be returned to the caller immediately SeeAlso: AH=03h"MultiDOS",AX=1000hTop
INT 15 - CASSETTE - TURN OFF TAPE DRIVE'S MOTOR (PC and PCjr only) AH = 01h Return: CF set on error AH = 86h no cassette present CF clear if successful SeeAlso: AH=00h"CASSETTE"Top
INT 15 - Amstrad PC1512 - WRITE DATA TO NON-VOLATILE RAM AH = 01h AL = NVRAM location (00h to 3Fh) (see #00405) BL = NVRAM data value Return: AH = return code 00h OK 01h address bad 02h write error SeeAlso: AH=02h"Amstrad" Format of Amstrad NVRAM: Offset Size Description (Table 00405) 00h BYTE time of day: seconds 01h BYTE alarm time: seconds 02h BYTE time of day: minutes 03h BYTE alarm time: minutes 04h BYTE time of day: hours 05h BYTE alarm time: hours 06h BYTE day of week, 1 = Sunday 07h BYTE day of month 08h BYTE month 09h BYTE year mod 100 0Ah BYTE RTC status register A (see #00406) 0Bh BYTE RTC status register B (see #00407) 0Ch BYTE RTC status register C (read-only) (see #00408) 0Dh BYTE RTC status register D bit 7: battery good 0Eh 6 BYTEs time and date machine last used 14h BYTE user RAM checksum 15h WORD Enter key scancode/ASCII code 17h WORD Forward delete key scancode/ASCII code 19h WORD Joystick fire button 1 scancode/ASCII code 1Bh WORD Joystick fire button 2 scancode/ASCII code 1Dh WORD mouse button 1 scancode/ASCII code 1Fh WORD mouse button 2 scancode/ASCII code 21h BYTE mouse X scaling factor 22h BYTE mouse Y scaling factor 23h BYTE initial VDU mode and drive count 24h BYTE initial VDU character attribute 25h BYTE size of RAM disk in 2K blocks 26h BYTE initial system UART setup byte 27h BYTE initial external UART setup byte 28h 24 BYTEs available for user application Note: bytes 00h-0Dh are the same on the IBM AT as they are used/updated by the clock chip Bitfields for RTC status register A: Bit(s) Description (Table 00406) 7 set if date/time being updated 6-4 time base speed, default 010 = 32768 Hz 3-0 interrupt rate selection, default 0110 = 1024 Hz SeeAlso: #00405 Bitfields for RTC status register B: Bit(s) Description (Table 00407) 7 clear if normal update, set if abort update 6 periodic interrupt enable 5 alarm interrupt enable 4 update end interrupt enable 3 square wave enable 2 date mode (clear = BCD, set = binary) 1 24-hour format 0 daylight saving time enable SeeAlso: #00405 Bitfields for RTC status register C: Bit(s) Description (Table 00408) 7 IRQF flag 6 PF flag 5 AF flag 4 UF flag SeeAlso: #00405Top
INT 15 - VMiX - "sys_chanreq" - I/O CHANNEL OBJECT MANAGER AH = 01h STACK: WORD object ID of requestor DWORD pointer to ASCIZ name of requested method "assign" assign channel to object "deassign" deassign channel "cursor" set cursor on/off "init" initialize comm port "open" open I/O channel "position" set cursor position "receive" get buffered packet from comm port "send" send buffered packet to comm port "vio" set current virtual I/O to specified channel "window" make window at cursor position ---if "assign"--- WORD object UID WORD caller UID/PID DWORD CSL with port ---if "deassign"--- WORD channel ID ---if "cursor"--- WORD channel ID (must be a SRCSINK) WORD new state (0000h off, 0001h on) ---if "init"--- WORD channel ID (must be a SRCSINK) WORD comm port number (00h-03h) WORD UART init code ---if "open"--- WORD channel ID ---if "position"--- WORD channel ID (must be a SRCSINK) WORD position (high byte = row, low byte = column) ---if "receive"--- DWORD pointer to buffer ---if "send"--- WORD length of buffer DWORD pointer to buffer ---if "vio"--- WORD channel ID (must be a SRCSINK) ---if "window"--- WORD top left (high byte = row, low byte = column) WORD bottom right (high byte = row, low byte = column) Return: DX:AX -> IRP structure or 0000h:0000h SeeAlso: AH=00h"VMiX",AH=02h"VMiX"Top
INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE AH = 01h AL = semaphore number (00h-3Fh) Return: AH = status 00h successful 02h invalid semaphore number Notes: if the semaphore is not owned, ownership is assigned to the calling task and the call returns immediately if the semaphore is already owned by another task, the calling task is placed on a queue for the semaphore and suspended until it can become owner of the semaphore semaphore 0 is used internally by MultiDOS to synchronize DOS access SeeAlso: AH=02h"MultiDOS",AH=10h"MultiDOS",AH=1Bh"MultiDOS"Top
INT 15 - CASSETTE - READ DATA (PC and PCjr only) AH = 02h CX = number of bytes to read ES:BX -> buffer Return: CF clear if successful DX = number of bytes read ES:BX -> byte following last byte read CF set on error AH = status (see #00409) SeeAlso: AH=00h"CASSETTE",AH=03h"CASSETTE",MEM 0040h:0069h,MEM 0040h:006Bh"PC" (Table 00409) Values for Cassette status: 00h successful 01h CRC error 02h bad tape signals 04h no data 80h invalid command 86h no cassette presentTop
INT 15 - Amstrad PC1512 - READ DATA FROM NON-VOLATILE RAM AH = 02h AL = NVRAM location (00h to 3Fh) Return: AH = return code 00h OK 01h address bad 02h checksum error AL = NVRAM data value SeeAlso: AH=01h"Amstrad"Top
INT 15 - VMiX - "sys_memreq" - MEMORY OBJECT MANAGER AH = 02h STACK: WORD object ID of requestor DWORD pointer to ASCIZ name of requested method "assign" allocate low memory block "assign extended" allocate extended memory pages "assign gdt" allocate GDT selector "paged" allocate low paged memory "paged extended" alllocate extended memory pages "deassign" free memory block "deassign gdt" free GDT selector "getvpage" get physical address for virtual page "setvpage" set physical address for virtual page "info" get VMiX memory usage info block "move" move contents of 32-bit memory "newmcb" make new DOS memory control block "owner" get process ID of MCB or PSP owner "umb" allocate upper memory block "video" toggle system use of video memory and get stat ---if "assign"--- WORD number of objects WORD size in bytes (multiple of 512 bytes) ---if "assign extended"--- WORD number of objects WORD size in bytes (multiple of 4K) ---if "assign gdt"--- WORD access type (low byte) WORD segment size in paragraphs DWORD pointer to start of physical segment ---if "paged"--- WORD number of 512-byte pages ---if "paged extended" WORD number of 4K pages ---if "deassign"--- DWORD pointer returned by previous allocation call ---if "deassign gdt"--- WORD GDT selector ---if "getvpage"--- WORD owner's process ID DWORD pointer to buffer for page structure (struct VPGE) ---if "setvpage"--- WORD owner's process ID DWORD pointer to new page structure (struct VPGE) ---if "info"--- no additional arguments ---if "move" DWORD 32-bit source address DWORD 32-bit destination address WORD number of words to move ---if "newmcb"--- DWORD pointer to new MCB's location WORD size of memory block DWORD pointer to ASCIZ name string (max 8 chars) ---if "owner"--- WORD MCB or PSP segment ---if "umb"--- WORD size in paragraphs ---if "video"--- no additional arguments Return: DX:AX -> memory block or VPGE struct or 0000h:0000h SeeAlso: AH=00h"VMiX",AH=01h"VMiX"Top
INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE AH = 02h AL = semaphore number (00h-3Fh) Return: AH = status 00h successful 01h not semaphore owner 02h invalid semaphore number Notes: if any tasks are waiting for the semaphore, the first task on the wait queue will become the new owner and be reawakened do not use within an interrupt handler SeeAlso: AH=01h"MultiDOS",AH=10h"MultiDOS",AH=1Ch"MultiDOS"Top
INT 15 - CASSETTE - WRITE DATA (PC and PCjr only) AH = 03h CX = number of bytes to write ES:BX -> data buffer Return: CF clear if successful ES:BX -> byte following last byte written CF set on error AH = status (see #00409) CX = 0000h SeeAlso: AH=00h"CASSETTE",AH=02h"CASSETTE"Top
INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE WRITE REGISTER AH = 03h AL = value (I,R,G,B bits) Return: nothing SeeAlso: AH=04h"Amstrad"Top
INT 15 - VMiX - "sys_pinput" - PROMPTED CONSOLE INPUT AH = 03h STACK: DWORD pointer to ASCII prompt WORD field outline character WORD length of input field (max 7Fh) DWORD address of pointer to input buffer Return: AX = length of input (input buffer is padded with blanks) SeeAlso: AH=04h"VMiX"Top
INT 15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL AH = 03h DX = number of time slices to remain suspended Return: after specified interval has elapsed Note: when priority-based scheduling is in use, high-priority tasks should use this function to yield the processor SeeAlso: AH=00h"MultiDOS",AH=0Ah"MultiDOS"Top
INT 15 - SYSTEM - BUILD ABIOS SYSTEM PARAMETER TABLE (PS) AH = 04h ES:DI -> 32-byte results buffer for System Parameter Table (see #00410) DS = segment containing ABIOS RAM extensions (zero if none) Return: CF clear if successful AH = 00h success ES:DI buffer filled AL destroyed CF set on failure AX destroyed AH = 80h/86h if not supported SeeAlso: AH=05h"ABIOS",AH=C1h Format of ABIOS System Parameter Table: Offset Size Description (Table 00410) 00h DWORD FAR address of ABIOS Common Start Routine 04h DWORD FAR address of ABIOS Interrupt Routine 08h DWORD FAR address of ABIOS Time-out Routine 0Ch WORD number of bytes of stack required by this ABIOS implementation 0Eh 16 BYTEs reserved 1Eh WORD number of entries in initialization tableTop
INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE READ REGISTER AH = 04h AL = value (RDSEL1 and RDSEL0) Return: nothing SeeAlso: AH=03h"Amstrad",AH=05h"Amstrad"Top
INT 15 - VMiX - "sys_vprintf" - FORMATTED OUTPUT TO STREAM AH = 04h STACK: DWORD control string DWORD array of arguments Return: nothing SeeAlso: AH=03h"VMiX"Top
INT 15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK AH = 04h AL = mailbox number (00h-3Fh) CX = message length in bytes DS:SI -> message Return: AH = status 00h successful 01h out of message memory 02h invalid mailbox number Note: the message is copied into a system buffer; the caller may immediately reuse its buffer SeeAlso: AH=05h"MultiDOS"Top
INT 15 - SYSTEM - BUILD ABIOS INITIALIZATION TABLE (PS) AH = 05h ES:DI -> results buffer of length 18h * Number_of_Entries (see #00411) DS = segment containing ABIOS RAM extensions (zero if none) Return: CF clear if successful AH = 00h success ES:DI buffer filled AL destroyed CF set on failure AX destroyed AH = 80h/86h if not supported SeeAlso: AH=04h"ABIOS",AH=C1h Format of one entry of ABIOS Initialization Table: Offset Size Description (Table 00411) 00h WORD device ID (see #00412) 02h WORD number of Logical IDs 04h WORD Device Block length (zero for ABIOS patch or extension) 06h DWORD -> init routine for Device Block and Function Transfer Table 0Ah WORD request block length 0Ch WORD Function Transfer Table length (zero for a patch) 0Eh WORD Data Pointers length (in Common Data Area) 10h BYTE secondary device ID (hardware level this ABIOS ver supports) 11h BYTE revision (device driver revision level this ABIOS supports) 12h 6 BYTEs reserved (Table 00412) Values for ABIOS device ID: 00h ABIOS internal calls 01h floppy disk 02h hard disk 03h video 04h keyboard 05h parallel port 06h serial port 07h system timer 08h real-time clock 09h system services 0Ah NMI 0Bh mouse 0Eh CMOS RAM 0Fh DMA 10h Programmable Option Select (POS) 16h keyboard passwordTop
INT 15 - Amstrad PC1512 - WRITE VDU GRAPHICS BORDER REGISTER AH = 05h AL = value (I,R,G,B bits) Return: nothing SeeAlso: AH=04h"Amstrad"Top
INT 15 - VMiX - "sys_getpid" - GET PROCESS ID OF CURRENT PROCESS AH = 05h Return: AX = process ID SeeAlso: AH=06h"VMiX",AH=0Bh"VMiX"Top
INT 15 - MultiDOS Plus - CHECK MAILBOX AH = 05h AL = mailbox number (00h-3Fh) Return: AH = status 00h successful DX = length of first message in queue, 0000h if no message 02h invalid mailbox number SeeAlso: AH=04h"MultiDOS",AH=06h"MultiDOS"Top
INT 15 - Amstrad PC1512 - GET ROS VERSION NUMBER AH = 06h Return: BX = version numberTop
INT 15 - VMiX - "sys_getpcb" - GET POINTER TO PROCESS CONTROL BLOCK AH = 06h STACK: WORD process ID Return: DX:AX -> process control block SeeAlso: AH=05h"VMiX",AH=07h"VMiX",AH=08h"VMiX"Top
INT 15 - MultiDOS Plus - READ MAILBOX AH = 06h AL = mailbox number (00h-3Fh) CX = size of buffer in bytes ES:DI -> buffer for message Return: AH = status 00h successful CX = number of bytes copied DX = actual length of message 02h invalid mailbox number Note: if the caller's buffer is not large enough, the message is truncated and the remainder is lost SeeAlso: AH=04h"MultiDOS",AH=05h"MultiDOS"Top
INT 15 - VMiX - "sys_getocb" - GET POINTER TO OBJECT CONTROL BLOCK AH = 07h STACK: WORD object type Return: DX:AX -> object control block SeeAlso: AH=06h"VMiX",AH=08h"VMiX"Top
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = 07h SeeAlso: AH=08h"IBM"Top
INT 15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD) AH = 07h BX:CX = entry point of new task DX = stack size in paragraphs Return: AH = status 00h successful 01h no free task control blocks 02h no free memory for task's stack Note: execution returns immediately to calling task SeeAlso: AH=08h"MultiDOS",AH=09h"MultiDOS",AH=13h"MultiDOS"Top
INT 15 - VMiX - "sys_getccb" - GET CHANNEL CONTROL BLOCK AH = 08h STACK: WORD channel ID Return: DX:AX -> channel control block SeeAlso: AH=06h"VMiX",AH=07h"VMiX"Top
INT 15 - IBM SurePath BIOS - WAIT REQUESTED TIME PERIOD AH = 08h AL = function 00h wait in increments of 15.025 microseconds CX = number of time increments to wait (0000h = maximum) 80h wait in increments of 840 ns ECX = number of time increments to wait 81h I/O event wait BH = bitmask of bits to check BL = expected pattern DX = I/O port address ECX = number of 840 ns microticks to wait Return: ECX = 00000000h if expected pattern did not occur 82h memory event wait BH = bitmask of bits to check BL = expected pattern ES:SI -> BYTE to check ECX = number of 840 ns microticks to wait Return: ECX = 00000000h if expected pattern did not occur other reserved Return: CF clear if successful CF set on error AH = status 00h successful 01h used 15.025 microsecond interval, time rounded up 08h reserved subfunction 86h function not supported Notes: IBM classifies this function as optional if the POST determines that the timer is nonfunctional, this function uses the 15.025 microsecond refresh timer instead of the full-resolution timer SeeAlso: AH=07h"IBM",AH=09h"IBM",AH=86hTop
INT 15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD) AH = 08h Return: calling task terminated, so execution never returns to caller Notes: an internal task must be terminated with this function rather than a DOS termination function task's stack space is returned to parent task's memory pool SeeAlso: AH=07h"MultiDOS"Top
INT 15 - VMiX - "sys_getqueue" - GET ID OF QUEUED ELEMENT AH = 09h STACK: WORD queue ID (0 = process queue, 1 = object, 3 = type) WORD subqueue ID Return: AX = queue ID SeeAlso: AH=0Ah"VMiX"Top
INT 15 - IBM BIOS - RESERVED FOR PCMCIA SYSTEM RESOURCE TABLE ACCESS AH = 09h no further details available SeeAlso: AH=08h"IBM"Top
INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY AH = 09h AL = new priority Return: nothing Note: the priority has different meanings depending on whether priority- based or round-robin scheduling is used SeeAlso: AH=07h"MultiDOS"Top
INT 15 - VMiX - "sys_qetqnext" - GET ID OF NEXT QUEUED ELEMENT AH = 0Ah STACK: WORD queue ID (0 = process queue, 1 = object, 3 = type) WORD ID of current element in queue chain Return: AX = ID of next element SeeAlso: AH=09h"VMiX",AH=0Fh"VMiX"Top
INT 15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL AH = 0Ah AL = new interval 00h = 55.0 ms (default) 80h = 27.5 ms 40h = 13.75 ms 20h = 6.88 ms 10h = 3.44 ms 08h = 1.72 ms SeeAlso: AH=03h"MultiDOS"Top
INT 15 - VMiX - "sys_sysreq" - SYSTEM CONFIGURATION MANAGER AH = 0Bh STACK: WORD caller's UID DWORD pointer to ASCIZ name of requested method "abort" abort current send/receive on comm port "block" start/end critical section "close" terminate interrupt-drive comm I/O "open" prepare comm port for interrupt-driven I/O "delay" set delay timer and wait "hibernate" put process to sleep "ints" enable/disable interrupt-driven INT 14h "length" get current send/receive buffer offsets "kswitch" switch stacks "numproc" get number of active processes "protocol" set protocol function for comm interrupts "relocate" set/reset VMiX flag for relocating to himem "status" get current open comm port status "wake" awaken a process "xport" get comm port polled for logins ---if "abort"--- no additional arguments ---if "block"--- WORD 0000h end, 0001h start ---if "close"--- no additional arguments ---if "open"--- WORD comm port (00h-03h) WORD BIOS parameter byte (see #00300 at INT 14/AH=00h), except bits 7-5: 000 = 19200, 001 = 38400, 011 = 115200 ---if "delay"--- WORD time in seconds ---if "hibernate"--- WORD process ID ---if "ints"--- WORD 0000h if no, 0001h if yes ---if "length","numproc","relocate","status","xport"--- no additional arguments ---if "kswitch"--- DWORD pointer to new stack ---if "protocol"--- DWORD pointer to function (must be in low "assign"ed memory when in 386 mode) ---if "wake"--- WORD process ID Return: DX:AX -> result or 0000h:0000h ---if "length"--- BYTE receive offset BYTE send offset ---if "kswitch"--- DWORD old stack pointer ---if "numproc"--- WORD number of active processes ---if "status"--- current open comm port status ---if "xport"--- current comm port being polled for logins Note: the "delay" command reportedly disables the keyboard until the delay completes SeeAlso: AH=05h"VMiX",AH=0Eh"VMiX"Top
INT 15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY AH = 0Bh Return: nothing Notes: sets calling task's screen pointer to actual screen memory; the pointer may be restored with AH=0Ch caller's video mode must be same as foreground task's video mode any text written while in the background will be saved to the foreground task's virtual screen when it switches to the background useful if a background task wants to display a message on the foreground screen SeeAlso: AH=0Ch"MultiDOS"Top
INT 15 - VMiX - "sys_getstack" - GET POINTER TO PROCESS TSS STACK AH = 0Ch STACK: WORD process ID Return: DX:AX -> TSS stack store SeeAlso: AH=00h"VMiX"Top
INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY AH = 0Ch Return: nothing Note: restores task's screen pointer saved by AH=0Bh; must not be called unless AH=0Bh has been called first SeeAlso: AH=0Bh"MultiDOS"Top
INT 15 - VMiX - "sys_spawn" - START A CHILD PROCESS JOB SHELL AH = 0Dh STACK: DWORD ASCIZ string starting with requested I/O channel and followed by standard VMiX shell command string Return: AX = process ID or error code "SYS_ERROR" Note: the maximum string length is 7Fh characters SeeAlso: AH=0Eh"VMIX",AH=11h"VMiX",INT 21/AH=4BhTop
INT 15 - MultiDOS Plus - DISABLE MULTITASKING AH = 0Dh Return: nothing Note: calling task receives all time slices until AH=0Eh is called; this allows time-critical events or nonreentrant code to be processed SeeAlso: AH=0Eh"MultiDOS",AH=10h"MultiDOS",AX=101Bh,AH=20h"MultiDOS"Top
INT 15 - VMiX - "sys_kill" - HARD TERMINATE PROCESS AH = 0Eh STACK: WORD process ID Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=0Bh"VMiX",AH=0Dh"VMIX"Top
INT 15 - MultiDOS Plus - ENABLE MULTITASKING AH = 0Eh Return: nothing SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AH=20h"MultiDOS"Top
INT 15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only) AH = 0Fh AL = phase code 00h reserved 01h surface analysis 02h formatting Return: CF clear if formatting should continue CF set if formatting should terminate Note: called during ESDI drive formatting after each cylinder is completed SeeAlso: INT 13/AH=1AhTop
INT 15 - VMiX - "sys_getqkey" - GET KEY FIELD OF QUEUED ELEMENT AH = 0Fh STACK: WORD queue ID (0 = process queue, 1 = object q, 3 = type q) WORD ID of element in queue chain Return: AX = key SeeAlso: AH=0Ah"VMiX"Top
INT 15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND AH = 0Fh DS:BX -> ASCIZ command Return: after command has been processed Notes: specified string is executed as if it had been typed at the MultiDOS command prompt the task is placed on a queue which MultiDOS examines periodically and is suspended until MultiDOS has processed the command all lowercase characters up to the first blank are converted to upper case within the given bufferTop
Top
INT 15 - VMiX - "sys_virtual" - EXECUTE CONFORMING FUNCTION IN PROTECTED MODE AH = 10h STACK: DWORD pointer to function N WORDs function args Return: AX = function's return value??? (not specified in documentation) Note: while the function is executing, the following global descriptors are available: 20h stack segment 38h code segment of function 40h data alias for function's code segment additional GDT descriptors can be allocated using AH=02h with function "assign gdt" SeeAlso: AH=02h"VMiX",AH=51h"VMiX"Top
INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE AH = 10h AL = semaphore number (00h-3Fh) Return: AH = status 00h semaphore not in use 01h semaphore owned by another task 02h invalid semaphore number 03h semaphore owned by caller SeeAlso: AH=02h"MultiDOS",AH=0Dh"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - TopView - "PAUSE" - GIVE UP CPU TIME AX = 1000h Return: after other processes run Note: under DESQview, if the process issuing this call has hooked INT 08h, the current time-slice is set to expire at the next clock tick rather than immediately SeeAlso: AH=00h"MultiDOS",AX=5305h,INT 21/AH=89h,INT 21/AH=EEh"DoubleDOS" SeeAlso: INT 2F/AX=1680h,INT 60/DI=0106h,INT 62/AH=01h,INT 6F/AH=2Ah"F_YIELD" SeeAlso: INT 7A/BX=000Ah,INT 7F/AH=02h"MultiLink",INT 7F/AH=E8hTop
INT 15 - TopView - "GETMEM" - ALLOCATE "SYSTEM" MEMORY AX = 1001h BX = number of bytes to allocate Return: ES:DI -> block of memory or 0000h:0000h (DV v2.26+) AX = status (DV v2.42) 0000h successful 0001h failed Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient common memory. Under DV v2.42, this call never generates a user prompt regardless of the SETERROR value; instead, it always returns AX=0001h and ES:DI=0000h:0000h if out of memory SeeAlso: AX=1002h,AX=102Eh,AX=DE0Ch,AX=DE15hTop
INT 15 - TopView - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY AX = 1002h ES:DI -> previously allocated block Return: block freed SeeAlso: AX=1001h,AX=DE0DhTop
INT 15 - TopView - "PRINTC" - DISPLAY CHARACTER/ATTRIBUTE ON SCREEN AX = 1003h BH = attribute BL = character DX = segment of object handle for window Return: nothing Note: BX=0000h does not display anything, it only positions the hardware cursor to the logical cursor's current positionTop
INT 15 - TopView - UNIMPLEMENTED IN DV 2.x AH = 10h AL = 04h thru 12h Return: pops up "Programming error" window in DV 2.xTop
INT 15 - TopView - "GETBIT" - DEFINE A 2ND-LEVEL INTERRUPT HANDLER AX = 1013h ES:DI -> FAR service routine Return: BX = bit mask indicating which bit was allocated 0000h if no more bits available SeeAlso: AX=1014h,AX=1015h Note: only a few TopView/DESQview API calls are allowed during a hardware interrupt; if other calls need to be made, the interrupt handler must schedule a 2nd-level interrupt with "SETBIT" (AX=1015h)Top
INT 15 - TopView - "FREEBIT" - UNDEFINE A 2ND-LEVEL INTERRUPT HANDLER AX = 1014h BX = bit mask from INT 15/AX=1013h Return: nothing SeeAlso: AX=1013h,AX=1015hTop
INT 15 - TopView - "SETBIT" - SCHEDULE ONE OR MORE 2ND-LEVEL INTERRUPTS AX = 1015h BX = bit mask for interrupts to post Return: indicated routines will be called: (DV 2.0x) at next task switch (DV 2.2x) immediately on return from hardware interrupt Notes: this is one of the few TopView calls which are allowed from a hardware interrupt handler the handler will be called with ES containing the segment of the handle of the next task to be executed; on return, ES must be the segment of a task handle SeeAlso: AX=1013h,AX=1014hTop
INT 15 - TopView - "ISOBJ" - VERIFY OBJECT HANDLE
AX = 1016h
ES:DI = possible object handle
Return: BX = status
FFFFh if ES:DI is a valid object handle (see #00414)
0000h if ES:DI is not
Note: under DESQview versions prior to 2.50, an object handle is always a
pointer to the object; for versions 2.50 and up, only task handles
are always pointers--other handles may consist of a unique object
number and offset into DESQview's common memory (see #00423)
SeeAlso: AX=DE14h,AX=DE2Bh,AX=DE2Ch
(Table 00413)
Values for DESQview object type:
00h window/task
01h mailbox
02h keyboard
03h timer
04h pointer
05h panel
06h objectq
Format of DESQview object:
Offset Size Description (Table 00414)
00h WORD offset in common memory of previous object of same type
02h WORD offset in common memory of next object of same type
04h WORD signature FEDCh (DV 2.42-)
signature FEDCh or object number (DV 2.50+)
06h WORD object type (see #00413)
08h DWORD object handle to return to caller
0Ch DWORD canonicalized object address (segment = common memory)
10h WORD offset in common memory of owning task
(0000h for unowned OBJECTQs)
12h WORD mapping context
offset in common memory of mapping context record (see #00416)
remainder varies by object type and DESQview version
---v2.42 keyboard object---
14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: keyboard opened
16h 4 BYTEs ???
1Ah WORD priority in OBJECTQ???
1Ch ...
25h WORD offset in common memory of ??? task
27h 4 BYTEs ???
---v2.42 objectq object---
14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: OBJECTQ opened
16h 2 BYTEs ???
18h WORD offset in common memory of ??? task
1Ah 6 BYTEs ???
---v2.42 mailbox object---
14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: mailbox opened
1Ah WORD priority in OBJECTQ???
1Ch 6 BYTEs ???
22h WORD offset in common memory of mailbox name (counted string)
0000h if no name
<= 5 BYTEs ???
---v2.22-2.42,2.52,2.60 window/task object---
14h BYTE 00h window, 01h task
15h BYTE internal (not Switch menu) window number???
16h BYTE internal (not Switch menu) window number???
17h WORD segment of internal window record (see #00417)
19h 2 BYTEs ???
1Bh BYTE cursor row
1Ch BYTE cursor column
1Dh BYTE visible window origin, row
1Eh BYTE visible window origin, column
1Fh BYTE window height (logical)
20h BYTE window width (logical)
21h BYTE window position, row
22h BYTE window position, column
23h BYTE window height (visible)
24h BYTE window width (visible)
25h BYTE row of top of frame (or window if unframed)
26h BYTE column of left of frame (or window if unframed)
27h BYTE window height (physical, including frame)
28h BYTE window width (physical, including frame)
29h BYTE unzoomed visible origin, row (00h before first zoom)
2Ah BYTE unzoomed visible origin, column (00h before first zoom)
2Bh BYTE unzoomed window position, row (00h before first zoom)
2Ch BYTE unzoomed window position, column (00h before first zoom)
2Dh BYTE unzoomed window height (00h before first zoom)
2Eh BYTE unzoomed window width (00h before first zoom)
unzoomed parameters above are updated when window is zoomed
to full screen
2Fh BYTE ??? initially logical window height
30h BYTE ??? initially logical window width
31h 2 BYTEs ???
33h BYTE minimum height of window
34h BYTE minimum width of window
35h BYTE maximum height of window
36h BYTE maximum width of window
37h 3 BYTEs ???
3Ah 8 BYTEs window frame characters: ul,ur,ll,lr,t,b,l,r
42h 24 BYTEs attributes???
5Ah 8 BYTEs window frame characters: ul,ur,ll,lr,t,b,l,r
62h 3 BYTEs ???
65h BYTE ??? bitflags
66h BYTE bit 0: window is zoomed
67h BYTE ???
68h WORD offset in common memory of window name or 0000h if untitled
6Ah WORD length of window name
6Ch 2 BYTEs ???
6Eh WORD offset of logical cursor in window (in character cells)
70h DWORD pointer to field table for window
74h BYTE ???
75h 2 BYTEs ???
77h BYTE number of last-visited field
78h DWORD pointer to field table entry for last-visited field
7Ch 3 BYTEs ???
7Fh BYTE select field marker character
80h BYTE ??? bit flags
bit 0: allow ECh window stream opcode to change reverse logattr
bit 1: alternate field processing mode selected
81h BYTE ???
82h DWORD notification function (manager stream opcode 8Ah)
no notification if segment = 0000h
86h DWORD notification argument (manager stream opcode 8Bh)
8Ah WORD offset in common memory of ??? window object or 0000h
8Ch WORD offset in common memory of ??? window object or 0000h
8Eh WORD offset in common memory of ??? window object or 0000h
90h BYTE ??? bitflags
91h BYTE ???
---task object only
92h BYTE bit flags (bits 0-4)
93h BYTE character for ??? (default 20h)
94h BYTE ??? flag
95h WORD offset in common memory of ???
97h 2 BYTEs ???
99h WORD ???
9Bh BYTE ??? bit flags
bit 3: ???
bit 6: perform protected-attribute processing on select fields
9Ch BYTE ???
9Dh WORD offset in common memory of current register save record
(see #00415). No register save record in use if < 01C0h
9Fh WORD offset in common memory of task's keyboard object
A1h WORD offset in common memory of task's OBJECTQ object
A3h WORD offset in common memory of task's mailbox object
A5h WORD semaphore: FFFFh if on user stack, else on task's private stack
A7h DWORD user's SS:SP
ABh WORD task's private SP (SS read from offset 0Ah)
ADh 6 BYTEs ???
B3h BYTE ??? bit flags
bit 0: run in foreground only
B4h BYTE ???
B5h BYTE ??? bitflags
B6h BYTE task status (see #00555 at AX=DE2Ch)
B7h 9 BYTEs ???
C0h WORD head pointer for keyboard buffer (wraps back to 00h after 80h)
C2h WORD tail pointer for keyboard buffer (wraps back to 00h after 80h)
C4h 2 BYTEs ??? (0000h)
C6h WORD segment of keyboard buffer for task
C8h WORD offset in common memory of ??? keyboard object
CAh BYTE ???
---v2.22-2.42
CBh WORD offset in common memory of ??? object
CEh BYTE ??? flag
CFh WORD offset in common memory of default notify window for task
or 0000h if none
D1h 4 BYTEs ???
D5h BYTE window number on Switch Window menu
D6h 5 BYTEs ???
DBh WORD offset in common memory of ??? object
DDh 2 BYTEs ???
DFh WORD API level for task
E1h WORD offset in common memory of object task is waiting on if task
status is 'waiting', else 0000h
E7h WORD segment of ???
E9h 4 BYTEs ???
EDh WORD EMS handle of virtualization buffer, 0000h if no virtualization
F1h 12 BYTEs ???
FBh WORD ???
FDh BYTE ???
FFh 12 BYTEs ???
10Bh DWORD pointer to process record (see #00418,#00419)
10Dh 10 BYTEs ???
119h DWORD SS:SP for ???
11Dh 4 BYTEs ???
121h DWORD pointer to ???
125h 25 BYTEs ???
13Eh DWORD pointer to ??? in system memory
---v2.22
142h 3 BYTEs ???
145h task's default keyboard object
---v2.42
142h DWORD pointer to first task instance data record in system memory
148h DWORD pointer to last task instance data record in system memory
(see #00420)
14Ah BYTE ???
14Dh 42 BYTEs task's default keyboard object
177h 32 BYTEs task's ObjectQ object
197h 41 BYTEs task's default mailbox object
1C0h 24 BYTEs first register save record
450h -- default top of private stack
---v2.52 (probably all DV/X)
Same as v2.60 below except there is an extra 29 bytes inserted somewhere
before offset 9Fh, but not yet known exactly where. Also, for the WAIT_ON
field (v2.60 offset E3h), some X apps (probably waiting on a socket) have
0000h even when waiting.
---v2.60
CBh WORD ??? (added in 2.50 - rest is same as 2.42)
CDh WORD offset in common memory of ??? object
D0h BYTE ??? flag
D1h WORD offset in common memory of default notify window for task
or 0000h if none
D3h 4 BYTEs ???
D7h BYTE window number on Switch Window menu
D8h 5 BYTEs ???
DDh WORD offset in common memory of ??? object
DFh 2 BYTEs ???
E1h WORD API level for task
E3h WORD If status at B6h=waiting, offset in common memory of object
that task is waiting on, else 0000h. (Task with CPU also
has 0000h here)
E9h WORD segment of ???
EBh 4 BYTEs ???
EFh WORD EMS handle of virtualization buffer, 0 if no virtualization
F3h 12 BYTEs ???
FDh WORD ???
FFh BYTE ???
101h 8 BYTEs ???
109h DWORD pointer to process record in system memory
10Dh 14 BYTEs ???
11Bh DWORD SS:SP for ???
11Fh 4 BYTEs ???
123h DWORD pointer to ???
127h 25 BYTEs ???
140h DWORD pointer to ??? in system memory
144h DWORD pointer to first task instance data record in system memory
148h DWORD pointer to last task instance data record in system memory
(from INT 15/AX=DE27h) (see #00420)
14Ch BYTE ???
14Eh 42 BYTEs task's default keyboard object
179h 32 BYTEs task's ObjectQ object
199h 41 BYTEs task's default mailbox object
1C2h 24 BYTEs first register save record
452h -- default top of private stack
Format of DESQview Register Save Record:
Offset Size Description (Table 00415)
00h WORD AX
02h WORD BX
04h WORD CX
06h WORD DX
08h WORD DI
0Ah WORD SI
0Eh WORD DS
10h WORD ES
12h DWORD return address
16h WORD original flags
Format of DESQview mapping context record:
Offset Size Description (Table 00416)
00h WORD lowest segment in process's memory
(often start of system memory chain)
02h WORD size of process's memory in paragraphs
04h BYTE flag: 00h if process swapped out, 01h otherwise
05h BYTE flag: 00h if allocated in conventional memory, 01h if EMS
06h 2 BYTEs ???
08h WORD EMS handle if in EMS, else 0
0Ah 2 BYTEs ??? (nonzero if system memory resides in shared mem???)
0Ch WORD segment of system memory block that contains process record,
referenced from segment of start of system memory chain
0Eh BYTE ???
0Fh WORD size of system memory block that contains process record
and DOS memory in paragraphs
11h BYTE bit flags
Bit 0: Swapped out???
Bit 1: ???
Bit 2: Swapped out???
12h BYTE ???
13h BYTE reference count
---v2.31
14h 10 BYTEs ???
1Eh WORD segment of process record
20h 2 BYTEs ???
22h WORD segment of ??? (in first free system memory block???)
24h WORD segment of end of system memory chain
26h WORD segment of start of system memory chain
28h 8 BYTEs ???
2Ah DWORD pointer to ??? (process record???)
2Dh 10 BYTEs ???
37h BYTE lowest interrupt vector to save on context switch
38h BYTE highest interrupt vector to save on context switch
39h WORD offset in common memory of main task with this context
3Ah 12 BYTEs ???
46h BYTE internal mapping context number
47h 12 BYTEs ???
---v2.5x-2.60
14h 6 BYTEs ???
1Ah WORD segment of process record
1Ch 2 BYTEs ???
1Eh WORD segment of first free system memory block
20h WORD segment of start of system memory chain
22h WORD segment of end of system memory chain
24h 8 BYTEs ???
2Ch DWORD pointer to ??? (1 segment into process record???)
30h 3 BYTEs ???
33h WORD Offset in common memory of main task with this context
35h 7 BYTEs ???
3Ch BYTE internal mapping context number
3Dh 14 BYTEs ???
4Bh WORD first DOS memory segment (first MCB segment+1)
4Dh BYTE ??? (flag???)
---v2.53 (2.5x???)
4Eh 12 BYTEs ???
---v2.60
4Eh WORD segment of script buffer (see #00421)
50h 6 BYTEs ???
Format of DESQview Internal Window Record (v2.31-2.60):
Offset Size Description (Table 00417)
00h BYTE internal window number???
01h BYTE display page???
02h BYTE video mode
03h 3 BYTEs ???
06h BYTE logical window height
07h BYTE logical window width
08h DWORD pointer to text video buffer
0Ch 116 BYTEs ???
Format of DESQview process record (v2.31):
Offset Size Description (Table 00418)
-470h 13 BYTEs filename of ??? Script
-463h 1117 BYTEs ??? (script buffer???)
-6h 6 BYTEs ???
00h WORD segment of parent PSP in process
02h 5 BYTEs ???
07h WORD segment of current PSP in process
09h WORD segment of first MCB in process
0Bh 13 BYTEs ???
18h 1024 BYTEs process's interrupt vector table
418h 376 BYTEs ???
590h first MCB in process
SeeAlso: #00419
Format of DESQview process record (v2.52-v2.60) (probably also 2.5x):
Offset Size Description (Table 00419)
00h 28 BYTEs EXE header of last EXE, ??? if last program run was COM
1Ch ??? BYTEs overwritten with ASCIZ filename of last program run (EXE/COM)
11Ch WORD segment of parent PSP in process
11Eh 4 BYTEs ???
122h WORD segment of current PSP
124h WORD segment of current PSP
126h WORD segment of first MCB in process
128h 4 BYTEs ???
12Ch DWORD pointer to first process instance data record in system memory
130h DWORD pointer to last process instance data record in system memory
(from INT 15/AX=DE27h) (see #00420)
134h 8 BYTEs ???
13Ch WORD size of current environment
13Eh WORD segment of current environment
140h WORD segment of current PSP
142h DWORD entry point of current program
146h 10 BYTEs ???
---v2.52 (v2.5x???)
150h BYTE ???
151h WORD segment of parent PSP in process
153h WORD ???
155h WORD ???
157h WORD ???
159h 4 BYTEs ???
15Dh WORD segment of current environment
15Fh WORD segment of current PSP
161h WORD segment of ???
162h WORD ???
164h 3 BYTEs ???
168h 1024 BYTEs process's interrupt vector table
568h 120 BYTEs ???
5E0h first MCB in process
---v2.60
150h WORD segment of parent PSP in process
152h WORD ???
154h WORD ???
156h WORD ???
158h 4 BYTEs ???
15Ch WORD segment of current environment
15Eh WORD segment of current PSP
160h WORD segment of ???
162h WORD ???
164h 1024 BYTEs process's interrupt vector table
564h 108 BYTEs ???
5D0h first MCB in process
SeeAlso: #00418
Format of DESQview task or process instance data record (v2.5x???, v2.60):
Offset Size Description (Table 00420)
00h DWORD pointer to next record of same type or 00000000
04h DWORD pointer to previous record of same type or 00000000
08h DWORD pointer to source area of memory during restore state
0Ch WORD number of bytes to save/restore
0Eh DWORD pointer to destination area of memory during restore state
12h WORD ??? (0)
14h N BYTEs source memory buffer during restore state
Format of DESQview script buffer (v2.60):
Offset Size Description (Table 00421)
00h 13 BYTEs ASCIZ Script filename
0Dh 80 BYTEs ???
5Eh N BYTEs script records (see #00422)
Format of one DESQview script record (v2.60):
Offset Size Description (Table 00422)
00h BYTE signature 12h
01h 18 BYTEs blank-padded script name
13h BYTE ASCII code of key attached to script or 0 if non-ASCII key
14h BYTE scan code of key attached to script if non-ASCII, else 0
15h BYTE ???
16h WORD size of script in bytes
18h N BYTEs script (ASCII code of each keystroke; if 0, next byte is
scan code of non-ASCII key)
SeeAlso: #00421
Format of DESQview Common Memory Header (v2.31-2.60):
Offset Size Description (Table 00423)
00h WORD offset of lowest used block
02h WORD bytes of commom memory, including header
04h WORD offset of first free block
06h N BYTEs size depends of DV version, ??? (DVP buffer???)
Note: the above is located at the beginning of the commom memory segment
SeeAlso: #00424,#00425,#00433
Format of DESQview Free block header:
Offset Size Description (Table 00424)
00h WORD size of block in bytes including header
02h WORD offset of next free block
04h N BYTEs free block
SeeAlso: #00423,#00425
Format of DESQview Used block header:
Offset Size Description (Table 00425)
00h WORD size of block in bytes including header
02h N BYTEs used block
SeeAlso: #00423,#00424
Top
INT 15 - TopView - UNIMPLEMENTED IN DV 2.x AX = 1017h Return: pops up "Programming error" window in DV 2.xTop
INT 15 - TopView - "LOCATE" - FIND WINDOW AT A GIVEN SCREEN LOCATION AX = 1018h BH = column BL = row ES = segment of object handle for window below which to search 0000h = start search with topmost window Return: ES = segment of object handle for window which is visible at the indicated position, or covered by indicated window 0000h if no window SeeAlso: AX=1023h,AX=1024hTop
INT 15 - TopView - "SOUND" - MAKE TONE AX = 1019h BX = frequency in Hertz (0000h = silence) CX = duration in clock ticks (18.2 ticks/sec) Return: immediately, tone continues to completion Notes: if another tone is already playing, the new tone does not start until completion of the previous one. Up to 32 tones may be queued before the process is blocked until a note completes. in DV 2.00, the lowest tone allowed is 20 Hz if CX = 0, the current note is cancelled; if BX = 0 as well, all queued notes are also cancelled SeeAlso: AH=82h"HUNTER",INT 16/AH=73hTop
INT 15 - TopView - "OSTACK" - SWITCH TO TASK'S INTERNAL STACK AX = 101Ah Return: stack switched Notes: this call may not be nested; a second call must be preceded by a call to "USTACK" (AX=1025h) while TopView requires many API calls to be executed while on the task's internal stack, DESQview allows those calls to be executed regardless of the current stack SeeAlso: AX=1025hTop
INT 15 - TopView - "BEGINC" - BEGIN CRITICAL REGION AX = 101Bh Return: task-switching temporarily disabled Notes: will not task-switch until "ENDC" (AX = 101Ch) called unless task voluntarily releases the CPU (upon regaining the CPU, task-switching will again be disabled) suspends the caller until DOS is free SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AX=DE13h,AX=DE1Ch,INT 2F/AX=1681h SeeAlso: INT 60/DI=0602hTop
INT 15 - TopView - "ENDC" - END CRITICAL REGION AX = 101Ch Return: task-switching enabled Note: this API call may be made from within a hardware interrupt handler SeeAlso: AX=101Bh,AX=DE13h,AX=DE1Bh,INT 2F/AX=1682h,INT 60/DI=0603hTop
INT 15 - TopView - "STOP" - STOP TASK AX = 101Dh ES = segment of object handle for task to be stopped (== handle of main window for that task) Return: indicated task will not get any CPU time until restarted with AX=101Eh Note: once a task has been stopped, additional "STOP"s are ignored BUG: in DV 2.00, this function is ignored unless the indicated task is the current task SeeAlso: AX=101Eh,AX=102Bh,AH=12h"VMiX",INT 21/AH=81hTop
INT 15 - TopView - "START" - START TASK AX = 101Eh ES = segment of object handle for task to be started (== handle of main window for that task) Return: indicated task is started up again Note: once a task has been started, additional "START"s are ignored SeeAlso: AX=101Dh,AX=102Bh,INT 21/AH=82hTop
INT 15 - TopView - "DISPEROR" - POP-UP ERROR WINDOW AX = 101Fh BX = bit fields bits 0-12: number of characters to display bits 13,14: which mouse button may be pressed to remove window 00 = either 01 = left 10 = right 11 = either bit 15: beep if 1 ES:DI -> text of message CH = width of error window (0 = default) CL = height of error window (0 = default) DX = segment of object handle Return: BX = status: 1 = left button, 2 = right, 27 = ESC pressed Note: window remains on-screen until ESC or indicated mouse button is pressedTop
INT 15 - TopView - UNIMPLEMENTED IN DV v2.00+ AX = 1020h Return: pops up "Programming error" window in DV v2.00+Top
INT 15 - TopView - "PGMINT" - INTERRUPT ANOTHER TASK AX = 1021h BX = segment of object handle for task to interrupt (not self) DX:CX -> FAR routine to jump to next time task is run Return: nothing Notes: the FAR routine is entered with the current ES, DS, SI, DI, and BP values, using the task's internal stack (see AX=101Ah); only SS:SP needs to be preserved multiple PGMINTs to a single task are processed last-in first-out if the other task is in a DOS or DV API call, the interruption will occur on return from that callTop
INT 15 - TopView - "GETVER" - GET VERSION AX = 1022h BX = 0000h Return: BX nonzero, TopView or compatible loaded (BL = major version, BH = minor version) Notes: TaskView returns BX = 0001h, DESQview v2.00+ returns BX = 0A01hTop
INT 15 - TopView - "POSWIN" - POSITION WINDOW AX = 1023h BX = segment of object handle for parent window within which to position the window (0 = full screen) ES = segment of object handle for window to be positioned DL = general window position (see #00426) CH = number of columns to offset from position specified by DL CL = number of rows to offset from position specified by DL Return: nothing Bitfields for TopView general window position: Bit(s) Description (Table 00426) 0,1 horizontal position 00 = current, 01 = center, 10 = left, 11 = right 2,3 vertical position 00 = current, 01 = center, 10 = top, 11 = bottom 4 don't redraw screen if set 5-7 not usedTop
INT 15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO AX = 1024h BX = segment of object handle for window (0000h = use default) Return: ES:DI -> virtual screen CX = size of virtual screen in bytes DL = screen type 00h text screen 01h graphics screen SeeAlso: INT 10/AH=FEh,INT 21/AH=2Bh/CX=4445hTop
INT 15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK AX = 1025h Return: stack switched back Notes: call only after having switched to internal stack with AX=101Ah while TopView requires many API calls to be executed while on the task's private stack, DESQview allows those calls to be executed regardless of the current stack SeeAlso: AX=101AhTop
INT 15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x AH = 10h AL = 26h thru 2Ah Return: pops up "Programming error" window in DV 2.xTop
INT 15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK AX = 102Bh BX = segment of object handle for task Return: nothing Note: forces a task which is waiting on its objectq to continue by placing the handle for the task on the objectq SeeAlso: AX=101Dh,AX=101Eh,INT 21/AH=82hTop
INT 15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS
AX = 102Ch
ES:DI -> contents of .PIF/.DVP file (see #00427)
BX = size of .PIF/.DVP info
Return: BX = segment of object handle for new task
0000h on error
SeeAlso: AX=DE24h,INT 21/AH=4Bh
Format of .PIF/.DVP file:
Offset Size Description (Table 00427)
00h BYTE reserved (0)
01h BYTE checksum of bytes 02h through 170h
02h 30 BYTEs blank-padded program title
20h WORD maximum memory to allocate to partition in KB
22h WORD minimum memory required in KB
24h 64 BYTEs ASCIZ program pathname
64h BYTE default drive letter ('A',...)
65h 64 BYTEs ASCIZ default directory name
A5h 64 BYTEs ASCIZ program parameters
E5h BYTE initial screen mode (0-7) (also see offset 189h)
E6h BYTE number of text pages used
E7h BYTE number of first interrupt to save
E8h BYTE number of last interrupt to save
E9h BYTE rows in virtual screen buffer
EAh BYTE columns in virtual screen buffer
EBh BYTE initial window position, row
ECh BYTE initial window position, column
EDh WORD system memory in KB
EFh 64 BYTEs ASCIZ shared program name
12Fh 64 BYTEs ASCIZ shared program data file
16Fh BYTE program flags 1 (see #00428)
170h BYTE flags2
bit 6: uses command-line parameters in field at A5h
bit 5: swaps interrupt vectors
---information unique to .DVP files---
171h 2 BYTEs keys to use on open menu
173h WORD size of script buffer in bytes
175h WORD automatically give up CPU after this many tests for keyboard
input in one clock tick (default 0 = never)
177h BYTE nonzero = "uses own colors"
178h BYTE nonzero if application swappable
179h 3 BYTEs reserved (0) according to Quarterdeck documentation
in actual .DVP files, frequently 01h
17Ch BYTE nonzero to automatically close on exit (see also #00430)
17Dh BYTE nonzero if copy-protect floppy is required
---information unique to DESQview 2.0+---
17Eh BYTE .DVP version number
00h DESQview v1.2+
01h DESQview v2.0+
02h DESQview v2.2+
17Fh BYTE reserved (0)
180h BYTE initial number of rows in physical window
181h BYTE initial number of columns in physical window
182h WORD maximum expanded memory to allow, in KB
184h BYTE DVP program flags 3 (see #00429)
185h BYTE keyboard conflict level (0-4 for DV<2.26, 00h-0Fh for DV2.26+)
(see #00431)
186h BYTE number of graphics pages used
187h WORD extra system memory size
189h BYTE initial screen mode (FFh = default) (overrides offset E5h)
---information unique to DESQview 2.2+---
18Ah BYTE serial port usage
FFh uses all serial ports
00h no serial ports
01h only COM1
02h only COM2
18Bh BYTE DVP program flags 4 (see #00430)
18Ch BYTE protection level for 386 machines
18Dh 19 BYTEs reserved (0) for regular DESQview
---information unique to DESQview/X 1.0---
18Dh BYTE X flags
bits 3-7: unused (0)
bit 2: don't display wait message when opening window
bit 1: don't display DOS window
bit 0: (XNEWPROC) use DOS client layer (DOS-to-X)
(NEWPROC) inherit DOS client layer usage
18Eh BYTE X keyboard behavior (0-3)
18Fh BYTE font scaling
00h fixed fonts
01h scalable fonts
190h 10 BYTEs reserved (0)
19Ah WORD length of data follownig XDVP signature
19Ch 4 BYTEs signature "XDVP"
1A0h N BYTEs list of variable length records (see #00432)
Bitfields for .PIF/.DVP program flags 1:
Bit(s) Description (Table 00428)
7 writes text directly to screen
6 runs in foreground only (see also #00427 offset 184h)
5 uses math coprocessor
4 accesses system keyboard buffer directly
3-1 reserved (0)
0 swappable
SeeAlso: #00427,#00429,#00430
Bitfields for .DVP program flags 3:
Bit(s) Description (Table 00429)
7 automatically assign window position
5 maximum memory value has been specified
4 disallow "Close" command
3 foreground-only when doing graphics
set by DV 2.3+ when "Runs in Background" = "D" (undoc)
2 don't virtualize (see also #00430)
1 foreground-only during DOS calls
set by DV 2.3+ when "Runs in Background" = "D" (undoc)
SeeAlso: #00427,#00428,#00430
Bitfields for .DVP program flags 4:
Bit(s) Description (Table 00430)
7 automatically close application on exit if .COM or .EXE specified
(see also #00427 offset 17Ch)
6 swappable if not using serial ports
5 start program with window hidden (v2.26+)
4 start program in background (v2.26+)
3 virtualize text (see also #00429)
2 virtualize graphics (see also #00429)
1 share CPU when foreground
0 share EGA when foreground and zoomed
SeeAlso: #00427,#00428,#00429
Bitfields for DESQview keyboard conflict level:
Bit(s) Description (Table 00431)
3 save/restore entire INT 09 handler state every taskswtch
2 take special precautions for programs which read the BIOS keyboard
buffer directly from memory
1 never indicate keystroke available during scripts/xfers
0 only indicate keystroke available every sixth poll
SeeAlso: #00427
Format of DESQview/X variable length record:
Offset Size Description (Table 00432)
00h WORD length of following record, 0000h if end of record list
02h BYTE record type
01h script filename, up to 64 characters
02h command-line parameters (allows >64 characters on cmdline)
03h environment inheritance
04h environment string
05h starting window position
---types 01h,02h,04h---
03h N BYTEs ASCII data
---type 03h---
03h BYTE inheritance
00h do not inherit
01h inherit environment
---type 05h---
03h N BYTEs ASCII copy of fields as typed into DVPMAN, separated by commas:
starting row, starting column, starting height, starting width
Note: if there are multiple occurrences of record types 01h, 02h, or 03h,
only the last instance of each type is used; multiple occurrences of
type 04h are concatenated
SeeAlso: #00427
Top
INT 15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL AX = 102Dh BL = subfunction 00h determine whether using keyboard mouse Return: BL = 00h using real mouse 01h using keyboard mouse 01h turn keyboard mouse on 02h turn keyboard mouse off SeeAlso: INT 33/AX=0024hTop
INT 15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY AX = 102Eh BX = number of bytes Return: AX = status 0000h successful ES:DI -> allocated system memory (see #00433) 0001h failed ES:DI = 0000h:0000h Note: under DV 2.42, this call is identical to AX=1001h SeeAlso: AX=1001h,AX=1002h,AX=DE0Ch Format of DESQview system memory block header: Offset Size Description (Table 00433) 00h WORD segment of next header or 0000h 02h WORD segment of previous header or 0000h 04h WORD size of block in paragraphs, including header 06h BYTE availability flag (00h in use, 01h free) Note: this header is located one paragraph before the memory block proper SeeAlso: #00423Top
INT 15 - TopView commands AH = 11h AL = various (except 17h) Return: varies by function Note: in DESQview 2.x, these function calls are identical to AH=DEh, so see those below SeeAlso: AX=DE00h,AX=DE22h,AX=DE30hTop
INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS AH = 11h STACK: DWORD pointer to ASCIZ string containing a VMiX shell request (max len = 127) Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=0Ch"VMiX"Top
INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE AH = 11h Note: disables the Alt-Z MultiDOS command/program-selection hotkey SeeAlso: AH=12h"MultiDOS" Index: hotkeys;MultiDOS PlusTop
INT 15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT AX = 1117h BX = 0000h get current mapping context without setting nonzero set new mapping context Return: BX = mapping context in effect before call interrupts enabled Notes: this function differs from AX = DE17h for DESQview v2.20 through 2.25 mapping contexts determine conventional-memory addressability; setting a mapping context ensures that the associated program and data areas are in memory for access. Usable by drivers, TSRs and shared programs. caller need not be running under DESQview, but must ensure that the stack in use will not be mapped out by the call SeeAlso: AX=DE17h,INT 2F/AX=1685hTop
INT 15 - DESQview - QEXT.SYS - INSTALLATION CHECK AX = 11DEh Return: CF clear if installed AX = segment at which QEXT.SYS is located Desc: QEXT.SYS is Quarterdeck's HMA manager for DESQview; more recent versions also implement the XMS standard Note: a private entry point (see #00434) may be found by searching the beginning of the returned segment for the signature string "QUARTERDECK EXTENDED MEMORY MANAGER 286"; the word immediately prior to the signature contains the QEXT version number in BCD, and the word prior to that contains the offset within the QEXT code segment of the private entry point SeeAlso: INT 2F/AX=4310h"XMS",INT 67/AH=3Fh (Table 00434) Call QEXT.SYS private entry point with: AH = 00h ??? AH = nonzero ???Top
INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP AH = 12h STACK: WORD process ID Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=03h"MultiDOS",AX=101Dh,AH=13h"VMiX"Top
INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE AH = 12h Note: enables the Alt-Z MultiDOS command/program-selection hotkey SeeAlso: AH=11h"MultiDOS" Index: hotkeys;MultiDOS PlusTop
INT 15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE AH = 12h BH = 00h BL = which handle to return 00h handle in DWORD on top of stack 01h current task's window handle 02h given task's mailbox handle (task's handle on stack) 03h current task's mailbox handle 04h given task's keyboard handle (task's handle on stack) 05h current task's keyboard object handle 06h given task's OBJECTQ handle (task's handle on stack) 07h current task's OBJECTQ handle 08h \ thru > return 0000:0000 under DV < 2.26 10h / 0Ch (2.26+) task owning object with handle in DWORD on top of stack 0Dh (2.26+) task handle of owner (parent) of current task Return: DWORD on top of stack is object handle Note: BL=0Ch,0Dh returns 00000000h if the object is not open (keyboard, mailbox, panel, pointer, and timer objects) or is an orphan (task, window) SeeAlso: AH=12h/BH=02h,AH=12h/BH=80hTop
INT 15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT AH = 12h BH = 01h BL = object type to create (see #00435) STACK: (only if window object or WINDOW class) DWORD address to jump to (no new task if high word == 0) DWORD (reserved) 0 = non-task window, FFFFh = task window DWORD bytes for task's private stack (FFFFh == default of 0100h) DWORD bytes system memory for input buffer for READ/READN (0 == none, -1 == default--same as logical window size) DWORD window size, columns DWORD window size, rows DWORD length of window title DWORD address of window title Return: DWORD on top of stack is new object handle Notes: if a new task is created, it is started with AX = BX = SI = DI = BP = 0 DX:CX = handle of parent task DS = ES = SS = segment of private stack (and new task's handle) new windows are orphans, inherit the colors/hidden status of the creating task's window, and are placed in the upper left hand corner of the screen but not automatically redrawn new keyboards are closed, and have all object bits cleared except for the hardware cursor bit SeeAlso: AH=12h/BH=02h,AH=12h/BH=81h (Table 00435) Values for TopView/DESQview object type (for creation): 00h (DV 2.0x only) handle is DWORD on top of stack 01h (DV 2.0x only) use task's window handle 02h (DV 2.0x only) given task's mailbox (task's handle on stack) 03h (DV 2.0x only) current task's mailbox 04h (DV 2.0x only) given task's keyboard (task's handle on stack) 05h (DV 2.0x only) current task's keyboard object 08h WINDOW class 09h MAILBOX class 0Ah KEYBOARD class 0Bh TIMER object (counts down 32-bit time in 10ms increments) 0Fh POINTER object 10h PANEL objectTop
INT 15 - TopView - SEND MESSAGE - "FREE" - FREE AN OBJECT AH = 12h BH = 02h BL = object 00h handle in DWORD on top of stack window: close window and free timer: free timer panel: free panel object pointer: free pointer 01h task's window handle - kills task, never returns 02h given task's mailbox (task's handle on top of stack) 03h current task's mailbox 04h given task's keyboard (task's handle on top of stack) 05h current task's keyboard object Return: STACK popped if handle passed on stack Notes: when a window is freed, its keyboard and pointer objects are freed; task windows also free any mailbox, objectq, and panel objects held by the task and any child tasks if the keyboard being freed is the default keyboard for a task, this call is equivalent to CLOSE panel and pointer objects are automatically closed if open SeeAlso: AH=12h/BH=01h,AH=12h/BH=0Dh,AH=12h/BH=82hTop
INT 15 - TopView - SEND MESSAGE - "ADDR" - GET HANDLE OF MESSAGE SENDER AH = 12h BH = 03h BL = object 00h mailbox handle in DWORD on top of stack 02h sender of last msg read from mailbox (task's handle on stack) 03h sender of last msg read from current task's mailbox Return: DWORD on stack is task handle of message sender SeeAlso: AH=12h/BH=00h,AH=12h/BH=83hTop
INT 15 - DESQview v2.26+ - "CONNECT" - CONNECT TWO WINDOWS AH = 12h BH = 03h BL = window to be connected 00h handle of window to be attached in DWORD on top of stack 01h attach current task's main window STACK: DWORD handle of window to attach to or 00000000h to detach Return: STACK popped Notes: when two windows are connected, both will move if the user moves either multiple windows may be attached to a single window, but each window may only be attached to one window at a time SeeAlso: AH=12h/BH=83hTop
INT 15 - TopView - SEND MESSAGE - "DIR" - GET PANEL FILE DIRECTORY AH = 12h BX = 0300h STACK: DWORD handle of panel object (see #00436) Return: STACK: DWORD length of directory (always multiple of 14 bytes) DWORD address of directory Note: a null string is returned if the object is not open SeeAlso: AH=12h/BX=0400h"APPLY",AH=12h/BH=83h Format of TopView panel file: Offset Size Description (Table 00436) 00h 2 BYTEs C0h C3h 02h BYTE number of panels in file 03h for each panel in file: 8 BYTEs blank-padded panel name DWORD panel offset in file WORD panel length data for panels (each consists of one or more window/query/manager streams); first byte of each panel must be 1Bh, fifth byte must be E5hTop
INT 15 - TopView - SEND MESSAGE - "READ" - READ NEXT LOGICAL LINE OF WINDOW AH = 12h BH = 04h BL = window to read from 00h handle is DWORD on top of stack 01h use calling task's default window 0Ch (DV 2.26+) default window of task owning handle on top of stack 0Dh (DV 2.26+) default window of parent task of current task Return: STACK: DWORD number of bytes read DWORD address of buffer Notes: reading starts at the current logical cursor position; the cursor is updated to point at the character following the last one read any translucent blanks (FFh) which are visible on screen are changed to the character which is seen through them the string produced by the read is placed in an input buffer which may be reused by the next READ or READN of a window window stream opcodes D8h and D9h determine whether the read returns characters or attributes SeeAlso: AH=12h/BH=05h"WINDOW",AH=12h/BH=12h,AH=12h/BH=84hTop
INT 15 - TopView - SEND MESSAGE - "READ" - GET NEXT RECORD FROM OBJECT AH = 12h BH = 04h BL = object 00h handle is DWORD on top of stack mailbox: wait for and get next message keyboard: wait for and get pointer to next input buffer pointer: wait for and get next message 02h get next message from mailbox (task's handle on top of stack) 03h get next message from current task's mailbox 04h get the next input from keyboard (handle on top of stack) 05h get the next input from task's default keyboard 06h wait for input from any object in OBJECTQ (handle on stack) 07h wait for input from any object in task's default OBJECTQ Return: STACK: (if objectq) DWORD handle of object with input (otherwise) DWORD number of bytes DWORD address of pointer message (see #00437) Notes: for a keyboard in keystroke mode, the input buffer is a single byte containing the character code as returned by the BIOS; the BIOS scan code is available via the STATUS call if the character is zero for a keyboard in field mode, the input buffer format is determined by the field table header for the window the keyboard is attached to keyboard input buffers and mailbox message buffers may be invalidated by the next READ, ERASE, CLOSE, or FREE message to the same object SeeAlso: AH=12h/BH=05h"OBJECT",AH=12h/BH=84h Format of DESQview pointer message: Offset Size Description (Table 00437) 00h WORD row 02h WORD column 04h BYTE status (see #00438) 05h BYTE field number or zero (APILEVEL >= 2.00 only) Bitfields for DESQview pointer status: Bit(s) Description (Table 00438) 7-2 number of clicks-1 if multiple-click mode active 7 set when press/release mode active and button pressed 6 set when press/release mode active and button released 1-0 button pressed (00=none,01=button1,10=button2) SeeAlso: #00437Top
INT 15 - TopView - SEND MESSAGE - "READ" - WAIT FOR TIMER TO EXPIRE AH = 12h BX = 0400h STACK: DWORD timer's handle Return: after timer expires STACK: DWORD time in 1/100 sec after midnight when timer expired SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=84hTop
INT 15 - TopView - SEND MESSAGE - "APPLY" - WRITE PANEL TO WINDOW AH = 12h BX = 0400h STACK: DWORD handle of panel object DWORD window's handle (or 0 for current task's window) DWORD length of panel name DWORD pointer to panel name Return: STACK: DWORD handle of window which was used DWORD handle of keyboard or 0 Notes: status of APPLY may be checked with STATUS message panel MUST have the following format first byte must be 1Bh (i.e. must start with a stream) first opcode in stream must be E5h single byte arg of opcode is interpreted thus: bits 7,6 11 means create new window 10 means create new field table for existing window 01 means use existing window and field table bit 5 if set, panel contains a field table (creates a new keyboard and puts it in field mode) bit 4 if set, panel contains input fields bit 3 if set, panel contains select fields but no input fields if the panel contains input or select fields, a keyboard handle is returned; either the window's current open keyboard or a newly-created keyboard object. The caller should read that keyboard to obtain input from the panel. SeeAlso: AH=12h/BH=84hTop
INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE TO OBJECT AH = 12h BH = 05h BL = object 00h handle is DWORD on top of stack timer: start timer to end at a specified time keyboard: add input buffer to queue pointer: move pointer icon to specified position 02h send message by value/status=0 to mbox (task's handle on stack) 03h send message by value/status=0 to current task's mailbox 04h add input buffer to KEYBOARD queue (handle on top of stack) 05h add input buffer to task's default KEYBOARD queue 06h add an object to OBJECTQ (handle on top of stack) 07h add an object to task's default OBJECTQ STACK: (if mailbox) DWORD length DWORD address (if keyboard) DWORD status (scan code in keystroke mode) DWORD length (should be 1 in keystroke mode) DWORD address (if objectq) DWORD handle of object to add (if timer) DWORD 1/100ths seconds since midnight (actually only accurate to 1/18 sec) (if pointer) DWORD column relative to origin of window DWORD row relative to origin of window Return: STACK popped Notes: under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h) the data and status written to a keyboard object must match the format returned by the keyboard object in the current mode the pointer position is scaled according to the current scaling factors SeeAlso: AH=12h/BH=04h,AH=12h/BH=85hTop
INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE STRING TO WINDOW
AH = 12h
BH = 05h
BL = window to write to
00h DWORD on top of stack is window handle
01h write string to task's default window
0Ch (DV 2.26+) default window of task owning handle on top of stack
0Dh (DV 2.26+) default window of parent of current task
STACK: DWORD object handle if handle passed on stack
DWORD total length of string (high word == 0)
DWORD address of string to display (see #00439)
Return: indicated actions performed
a. non-control characters are displayed (opcodes DEh and DFh control
whether the attributes are left or changed to the current attrib)
b. CR/LF/BS/Tab cause the usual cursor movement
c. ESC starts a data structure with additional commands if following
byte is less than 20h; otherwise, it is written to the window
STACK: DWORD handle of new window if window stream opcode E6h
else nothing (arguments have been popped)
SeeAlso: AH=12h/BH=04h,AH=12h/BH=85h
Format of stream data structure:
Offset Size Description (Table 00439)
00h BYTE 1Bh magic value identifying start of stream
01h BYTE stream type (00h, 01h, 10h, 14h-1Fh legal)
(see #00440,#00446,#00447,#00448)
02h WORD length of remainder of stream in bytes
var-length fields follow, each an OPCODE followed by
zero or more args
(Table 00440)
Values for MODE 00h (set or display values) "WINDOW STREAM" opcodes:
Opcodes:args
00h display 20h blanks with the default attribute
01h-1Fh display OPCODE blanks with the default attribute
20h display char with default attribute 20h times
BYTE char to repeat
21h-3Fh display char with default attribute OPCODE-20h times
BYTE char to repeat
40h display 20h blanks with specified attribute
BYTE attribute of blanks
41h-5Fh display OPCODE-40h blanks with specified attribute
BYTE attribute of blanks
60h display next 20h characters
20h BYTEs characters to display
61h-7Fh display next OPCODE-60h characters
N BYTEs characters to display
80h-87h display N blanks with default attribute
BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
[000h means 800h]
88h-8Fh display N copies of the character
BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
[000h means 800h]
BYTE character to repeat
90h-97h display N blanks with specified attribute
BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
[000h means 800h]
BYTE attribute
98h-9Fh display string at logical cursor pos
BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
[000h means 800h]
N BYTEs string to display
A0h set logical cursor row
BYTE row number (0 is top)
A1h set logical cursor column
BYTE column number (0 is leftmost)
A2h set top edge of scrolling region
BYTE row
A3h set left edge of scrolling region
BYTE column
A4h set row of physical window position
BYTE line
A5h set column of physical window position
BYTE column
A6h set height of physical window
BYTE number of rows
A7h set width of physical window
BYTE number of columns
A8h set viewport row
BYTE row
A9h set viewport column
BYTE column
AAh set virtual screen height [contents of window unpredictable after]
BYTE rows
ABh set virtual screen width [contents of window unpredictable after]
BYTE columns
ACh-AEh unused
AFh set compatible/preferred video modes
BYTE compatibility/preference mask
bit 7 compatible with monochrome
bit 6 compatible with color text, EGA/VGA graphics
bit 5 compatible with medium-resolution CGA graphics
bit 4 compatible with high-resolution CGA graphics
bit 3 prefer monochrome
bit 2 prefer color text, EGA/VGA graphics
bit 1 prefer medium-resolution CGA graphics
bit 0 prefer high-resolution CGA graphics
B0h move logical cursor down
BYTE number of rows (signed, negative values move up)
[if rows=0 and hardware cursor owner, update hardware cursor]
B1h move logical cursor right
BYTE number of columns (signed, negative values move left)
[if cols=0 and hardware cursor owner, update hardware cursor]
B2h shift top edge of scrolling region
BYTE number of rows (signed)
B3h shift left edge of scrolling region
BYTE number of columns (signed)
B4h shift physical window down
BYTE number of lines (signed)
B5h shift physical window right
BYTE number of columns (signed)
B6h expand physical window vertically
BYTE number of lines (signed)
B7h expand physical window horizontally
BYTE number of columns (signed)
B8h adjust viewport row
BYTE number of rows (signed)
B9h adjust viewport column
BYTE number of columns (signed)
BAh adjust virtual screen height [contents of window unpredict after]
BYTE number of rows to increase (signed)
BBh adjust virtual screen width [contents of window unpredictbl after]
BYTE number of columns to increase (signed)
BCh-BFh reserved (currently unused)
C0h set logical cursor position
BYTE row number (0 is top border)
BYTE column number (0 is left border)
C1h set top left corner of scrolling region
BYTE row
BYTE column
C2h set physical window pos
BYTE upper left row (no top border if 0)
BYTE upper left column (no left border if 0)
C3h set current window size
BYTE number of rows
BYTE number of columns
C4h set upper left corner of viewport (portion of virtual screen displayed
in window)
BYTE row
BYTE column
C5h set size of virtual screen [contents unpredictable afterwards]
BYTE number of rows
BYTE number of columns
C6h unused
C7h unused
C8h set logical cursor relative to current position
BYTE number of rows to move down (signed)
BYTE number of columns to move right (signed)
[if rows=cols=0 and hardware cursor owner, update hardw cursor]
C9h shift top left corner of scrolling region
BYTE number of rows (signed)
BYTE number of columns (signed)
CAh set window pos relative to current position
BYTE number of rows to shift down (signed)
BYTE number of columns to shift right (signed)
CBh set window size relative to current size
BYTE number of rows to expand (signed)
BYTE number of cols to expand (signed)
CCh shift viewport relative to current position
BYTE rows to shift (signed)
BYTE cols to shift (signed)
CDh resize virtual screen
BYTE number of rows to expand (signed)
BYTE number of columns to expand (signed)
CEh scroll text when using E8h-EBh/F8h-FBh opcodes (default)
CFh scroll attributes when using E8h-EBh/F8h-FBh opcodes
D0h allow window frame to extend beyond screen
D1h always display a complete frame, even if window extends beyond edge of
screen
D2h allow DV to change logical colors on video mode switch (default)
D3h application changes logical attributes
D4h window is visible [must redraw to actually make visible]
D5h window is hidden [must redraw to actually remove]
D6h window has frame (default)
D7h window unframed [must redraw to actually remove frame]
D8h READ/READN will read characters from window (default)
D9h READ/READN will read attributes from window
DAh use logical attributes, which may be remapped (see #00441)
DBh use physical attributes for characters
DCh enable special actions for control characters (default)
DDh disable special control char handling, all chars displayable by BIOS TTY
call
DEh write both character and attribute (default)
DFh write character only, leave attribute untouched
E0h repeat following commands through E1h opcode
BYTE number of times to repeat (00h means 256 times)
E1h end of commands to repeat, start repeating them
E2h set current output color
BYTE color
E3h clear virtual screen from scroll origin to end using current color
E4h redraw window
E5h select menu style
BYTE style (normally 18h)
bits 5,4 = 01 use two-letter menu entries for remainder of
this stream
E5h (panel file only)
BYTE modifier
bits 7,6 = 11 panel stream creates new window
= 10 panel defines new field table for existing window
= 01 panel stream uses existing window & field table
bit 5 = 1 stream contains a field table (create kyboard object)
bit 4 = 1 stream defines input fields (create keyboard object)
bit 3 = 1 stream defines select fields but not input fields
bit 2 = 1 stream defines exclusive input window (DV 2.2)
bit 1 reserved
bit 0 reserved
E6h create new window and perform rest of manipulations in new window
BYTE number of rows
BYTE number of columns
Return: DWORD object handle of new window returned on stack at end
Note: the window is created with a physical size of 0x0 at the
same position as the window to which this stream was sent
E7h no operation
E8h scroll area up (top left corner defined by opcode C1h)
BYTE height
BYTE width
E9h scroll area down (top left corner defined by opcode C1h)
BYTE height
BYTE width
EAh scroll area left (top left corner defined by opcode C1h)
BYTE height
BYTE width
EBh scroll area right (top left corner defined by opcode C1h)
BYTE height
BYTE width
ECh set logical attributes for window contents
BYTE video modes command applies to
bit 7 monochrome
bit 6 color text, EGA/VGA graphics
bit 5 medium-resolution CGA graphics
bit 4 high-resolution CGA graphics
BYTE which attributes to set
bit 7 if set, copy single following byte to indicated attribs
bits 4-6 number of first attribute to change - 1
bits 0-3 number of consecutive attributes to change
N BYTEs new attributes
EDh set logical attributes for window frame
BYTE video modes command applies to (also see opcode ECh)
BYTE which attributes to set
bit 7 if set, copy single following byte to indicated attrs
bits 4-6 number of first attribute to change - 1
bits 0-3 number of consecutive attributes to change
N BYTEs new attributes
attributes
1 = top left corner
2 = top right corner
3 = bottom left corner
4 = bottom right corner
5 = top edge
6 = bottom edge
7 = left edge
8 = right edge
EEh set characters for window frame
BYTE video modes command applies to (also see opcode ECh)
BYTE which characters to set
bit 7 if set, copy single following byte to indicated chars
bits 4-6 number of first character to change - 1
bits 0-3 number of consecutive characters to change
N BYTEs new chars (same relative position as attributes above)
EFh set window name
BYTE length of name (should be in range 0 to logical screen width)
N BYTEs name
F0h clear input field to blanks
BYTE field number
F1h fill input field with character
BYTE field number
BYTE char
F2h set color of input field
BYTE field number (1-N)
BYTE attribute
F3h set initial contents of input field
BYTE field number (1-N)
N BYTEs enough chars to exactly fill field as defined by op FFh
F4h position cursor to start of specific input field
BYTE field number (1-N)
F5h change field table entry
BYTE field number
7-8 BYTEs field table entry (also see opcode FFh below)
F6h set field type
BYTE field number
BYTE type
00h inactive
40h output field
80h input field
C0h deselected field
C2h selected field
F7h "broadcast write" write data to fields with program output bit set in
the field table entry, in field number order
N BYTEs (total length of all program output fields)
F8h scroll field up a line
BYTE field number
F9h scroll field down a line
BYTE field number
FAh scroll field left
BYTE field number
FBh scroll field right
BYTE field number
FCh set field table header
6 BYTEs field table header (see #00442)
FDh reset modified bit for all fields
FEh reset selected and modified bits for all fields
FFh set up input fields
6 BYTEs table header (see #00442)
7/8N BYTEs the field table entries, one for each field (see #00444)
Note: DESQview uses and updates the actual copy of the information
which is contained in the stream. Thus this info must remain
intact until after the data entry is complete.
SeeAlso: #00439,#00446
(Table 00441)
Values for TopView logical attributes:
01h normal text
02h highlighted normal text
03h help text
04h highlighted help text
05h error message
06h highlighted error message
07h emphasized text
08h marked text
9-16 reverse video versions of 1-8
SeeAlso: #00440
Format of TopView field table header:
Offset Size Description (Table 00442)
00h BYTE number of fields (must be <= existing number of fields)
01h BYTE screen behavior bits (see #00443)
02h BYTE current input field (updated by DESQview)
03h BYTE current select field (updated by DESQview)
04h BYTE attribute for select fields when they are pointed at
05h BYTE attribute for select fields which have been selected
SeeAlso: #00440,#00444
Bitfields for TopView screen behavior bits:
Bit(s) Description (Table 00443)
7 reserved
6 menu items may be selected via keyboard
5 left mouse button in "status" mode (press anywhere in window
immediately returns control to application)
4 right mouse button in "status" mode
3 select fields return contents or blanks rather than 'Y' or 'N'
2 modified bits reset on return to application
1-0 type of data returned
00 no data returned on read of keyboard
01 data returned as array of characters containing all fields packed
together, with no field numbers
10 data returned as numbered variable-length records for all fields
11 data returned as numbered variable-length records for the fields
which were modified
SeeAlso: #00440
Format of TopView field table entry:
Offset Size Description (Table 00444)
00h BYTE start row \
01h BYTE start column \ if menu selection and start is to
02h BYTE end row / right or below end, select from kbd only
03h BYTE end column /
04h BYTE field type (see #00445)
05h BYTE modifier
if type is fill-in, then bit flags to determine behavior
bit 7 automatically enter CR when field full
bit 6 move to next field when current field is full
bit 5 enter text from right end (for numbers)
bit 4 force input to uppercase
bit 3 clear old contents on first keystroke
bit 2 input returned when cursor moves out of
modified field ("validate", API level 2.02+)
bit 1 reserved
bit 0 reserved
if select field, first key to press to activate
00h if have to point-&-click or is an extended-ASCII
keystroke (only if two-key menus enabled)
06h BYTE (select field only) normal color of field
07h BYTE second key for select field. This byte is present iff
two-letter menu entries selected with opcode E5h, and in that
case is present regardless of field type
SeeAlso: #00442
Bitfields for TopView field type:
Bit(s) Description (Table 00445)
7,6 field class
00 inactive (non-entry) field
01 echos keystrokes input to make menu selection
10 fill-in field
11 select field
5 field can be filled by broadcast write (F7h opcode)
4 reserved
3 reserved
2 reserved
1 set if field selected
0 set if field modified
SeeAlso: #00444
(Table 00446)
Values for MODE 01h "QUERY STREAM" opcodes:
(valid only for those opcodes listed here)
A0h return logical cursor row in next byte
A1h return logical cursor column in next byte
A2h return top row of scrolling region in next byte
A3h return left column of scrolling region in next byte
A4h return row of physical window origin in next byte
A5h return column of physical window origin in next byte
A6h return height of physcial window in next byte
A7h return width of physical window in next byte
A8h return row of viewport origin in next byte
A9h return column of viewport origin in next byte
AAh return height of virtual screen in next byte
ABh return width of virtual screen in next byte
AFh return current video mode in next byte
C0h return current logical cursor position in next two bytes
C1h return top left corner of scrolling region in next two bytes
C2h return current window position in next two bytes
C3h return current window size in next two bytes
C4h return current viewport origin in next two bytes
C5h return current virtual screen size in next two bytes
D0h \ overwritten with D0h if frames may fall off screen edge
D1h / D1h if frames always displayed entirely
D2h \ overwritten with D2h if DESQview controls color palette
D3h / D3h if application changes color palette
D4h \ overwritten with D4h if window visible
D5h / D5h if window hidden
D6h \ overwritten with D6h if window has frame
D7h / D7h if window unframed
D8h \ overwritten with D8h if reading characters from window
D9h / D9h if reading attributes from window
DAh \ overwritten with DAh if using logical attributes
DBh / DBh if using physical attributes
DCh \ overwritten with DCh if TTY control char interpretation on
DDh / DDh if TTY control char interpretation off
DEh \ overwritten with DEh if writing both characters and attributes
DFh / DFh if leaving attributes untouched
E2h return current color in next byte
ECh get logical attributes for window contents
BYTE execute call if currently in specified video mode
bit 7 monochrome
bit 6 color text, EGA/VGA graphics
bit 5 medium-resolution CGA graphics
bit 4 high-resolution CGA graphics
BYTE which attributes to get
bit 7 unused???
bits 4-6 first attribute to get - 1
bits 0-3 number of consecutive attributes
N BYTEs buffer to hold attributes
EDh get logical attributes for window frame
BYTE execute call if currently in video mode (also see opcode ECh)
BYTE which attributes to get
bit 7 unused???
bits 4-6 first attribute to get - 1
bits 0-3 number of consecutive attributes
N BYTEs buffer to hold attributes
EEh get characters for window frame
BYTE execute call if currently in video mode (also see opcode ECh)
BYTE which attributes to get
bit 7 unused???
bits 4-6 first char to get - 1
bits 0-3 number of consecutive chars
N BYTEs buffer to hold chars
EFh return first N characters of current window name
BYTE max length of returned name
N BYTEs buffer to hold window name
F3h return contents of specified field
BYTE field number
N BYTEs buffer to hold field contents (size equal to field size)
F5h get field table entry
BYTE field number
7-8 BYTEs buffer to hold field table entry (see #00444)
Notes: DV < 2.26 always returns 7 bytes
DV 2.26+ w/ APILEVEL < 2.26 returns 8 bytes iff field table
is using 8-byte entries and eighth byte after F5h is E7h
(NOP); otherwise, 7 bytes are returned
DV 2.26+ w/ APILEVEL > 2.26 returns 7 or 8 bytes depending
on the field table entry size
F6h get type of a field
BYTE field number
BYTE type
FCh get field table header
6 BYTEs buffer to store field table header (see #00442)
SeeAlso: #00439,#00447
(Table 00447)
Values for MODE 10h "MANAGER STREAM" opcodes (valid only for those listed):
00h allow window to be moved horizontally
01h allow window to be moved vertically
02h allow window to change width
03h allow window to change height
04h allow window to be scrolled horizontally
05h allow window to be scrolled vertically
06h allow "Close Window" menu selection for application
07h allow "Hide Window" menu selection for application
08h allow application to be suspended ("Rearrange/Freeze")
0Eh allow "Scissors" menu
10h allow DESQview main menu to be popped up
11h allow "Switch Windows" menu
12h allow "Open Window" menu
13h allow "Quit" menu selection
20h-33h opposite of 00h-13h, disallow specified action
40h notify if horizontal position of window changes
41h notify if vertical position of window changes
42h notify if width of window changes
43h notify if height of window changes
44h notify if window scrolled horizontally
45h notify if window scrolled vertically
46h notify if window is closed--program has to clean up and exit itself
47h notify if window is hidden
48h notify if "?" on main menu selected
49h notify if pointer message sent to window
4Ah notify if window is placed in foreground
4Bh notify if window is placed in background
4Ch notify if video mode changes
4Dh notify if "Scissors" menu "Cut" option selected
4Eh notify if "Scissors" menu "Copy" option selected
4Fh notify if "Scissors" menu "Paste" option selected
50h notify if DESQview main menu about to pop up
51h notify if DESQview main menu popped down
60h-71h opposite of 40h-51h: don't notify on specified event
84h attach window to parent task's window (both move together)
85h detach window from parent task's window (may move independently)
86h disable background operation for application
87h enable running in background
88h set minimum size of physical window
BYTE rows
BYTE columns
89h set maximum size of physical window
BYTE rows
BYTE cols
8Ah set primary asynchronous notification routine (see #00449)
DWORD address of routine, 0000h:0000h means none (see also below)
8Bh set async notification parameter
DWORD 32-bit value passed to 8Ah async routine in DS:SI
ACh (DV2.2+) perform regular select field attribute processing
ADh (DV2.2+) protect attributes in selected field from being lost
AEh make window default notify window for owning app (API level 2.00+)
AFh set selected field marker character
BYTE character to display at left edge of selected fields
BCh set standard field processing mode
BDh set alternate field processing mode (enables cursor pad for menus)
BEh disables changing reverse logical attributes with ECh opcode
BFh enables changing reverse logical attributes with ECh opcode
C0h make current window topmost in system
C1h force current process into foreground
C2h make current window topmost in process
C3h position mouse pointer relative to origin of current field
BYTE rows below upper left corner of field
BYTE columns to right of upper left corner of field
C4h position mouse pointer relative to origin of given field
BYTE field number
BYTE rows below upper left corner of field
BYTE columns to right of upper left corner of field
C5h orphan current window (also hides it)
Note: must be last in stream; all subsequent commands ignored
C6h show all windows for this process
C7h hide all windows for this process
C8h suspend process and hide all its windows
C9h force current process into background
CAh make current window bottom-most in process
CBh cancel current window manager operation, remove DV menu, give control
to topmost application
CCh orphan window and give it to the system for use as paste data
CEh reorder windows
DWORD pointer to null-terminated list of words; each word is segment
of object handle for a window
FFh no operation
SeeAlso: #00439,#00446,#00448
(Table 00448)
Values for MODES 14h to 1Fh "USER STREAMS":
normally NOPs, but may be defined by SETESC message to invoke FAR
routines, one for each mode number
on entry to handler,
DS:SI -> first byte of actual stream (not header)
CX = number of bytes in stream
ES:DI = window's handle
SeeAlso: #00446,#00447
(Table 00449)
Values asynchronous notification routine defined by man.stream 8Ah called with:
ES:DI = handle of window
DS:SI is 32-bit value set by 8Bh manager stream opcode
mailbox contains message indicating event
Opcode
40h horizontal movement
DWORD object handle of window
BYTE new row
BYTE new col
41h vertical movement
DWORD object handle of window
BYTE new row
BYTE new col
42h horizontal size change
DWORD object handle of window
BYTE new rows
BYTE new cols
43h vertical size change
DWORD object handle of window
BYTE new rows
BYTE new cols
44h scrolled horizontally
DWORD object handle of window
BYTE mouse row within window
BYTE mouse column within window
BYTE field mouse is on, 0 if none
BYTE amount moved: >0 right, <0 left, 0 done
45h scrolled vertically
DWORD object hande of window
BYTE mouse row within window
BYTE mouse column within window
BYTE field mouse is on, 0 if none
BYTE amount moved: >0 down, <0 up, 0 done
46h window close request
DWORD object handle of window
BYTE mouse pointer row
BYTE mouse pointer column
BYTE field mouse is on, 0 if none
47h application's windows hidden
48h Help for Program selected
DWORD object handle of window
BYTE mouse pointer row
BYTE mouse pointer column
BYTE field mouse is on, 0 if none
49h pointer message sent to window
DWORD pointer handle which received message
4Ah switched to window from another ("raise")
4Bh switched away from the window ("lower")
4Ch video mode changed
BYTE new BIOS video mode
4Dh Scissors/cUt selected
DWORD object handle of window
BYTE row of upper left corner
BYTE column of upper left corner
BYTE field number ul corner is in, 0=none
DWORD handle of orphaned window created with
copy of data from specified region
BYTE height of region
BYTE width of region
4Eh Scissors/Copy selected
DWORD object handle of window
BYTE row of upper left corner
BYTE column of upper left corner
BYTE field number ul corner is in, 0=none
DWORD handle of orphaned window created with
copy of data from specified region
BYTE height of region
BYTE width of region
4Fh Scissors/Paste selected
DWORD object handle of window
BYTE row of upper left corner
BYTE column of upper left corner
BYTE field number ul corner is in, 0=none
DWORD handle of orphaned window with data
BYTE height of region
BYTE width of region
Note: orphaned data window should be adopted or freed
when done
50h main menu about to pop up
51h main menu popped down
Return: all registers unchanged
Top
INT 15 - DESQview 2.20+ - SEND MESSAGE - "SETPRI" - SET PRIORITY WITHIN OBJECTQ AH = 12h BH = 06h BL = object 00h object handle in DWORD on top of stack mailbox, keyboard, pointer, or timer (DV 2.50+) window 01h (DV 2.50+) current task's window 04h given task's keyboard (task's handle on top of stack) 05h current task's default keyboard STACK: DWORD new priority of object in task's OBJECTQ (new priority of task if window handle) Return: STACK popped Notes: initially all objects have the same default value. Should only make relative adjustments to this default value. when changing priorities, all objects already on the objectq are reordered for window handles, only the non-blocked task(s) with the highest priority receive CPU time under DESQview 2.50-2.52; the default priority is 0Ah SeeAlso: AH=12h/BH=07h,AH=12h/BH=87hTop
INT 15 - DESQview 2.20+ - SEND MESSAGE - "GETPRI" - GET PRIORITY WITHIN OBJECTQ AH = 12h BH = 07h BL = object 00h object handle in DWORD on top of stack mailbox, keyboard, pointer, or timer (DV 2.50+) window 01h (DV 2.50+) current task's window 04h given task's keyboard (task's handle on top of stack) 05h current task's default keyboard Return: STACK: DWORD object priority Note: initially all objects have the same default value. Should only make relative adjustments to this default value. SeeAlso: AH=12h/BH=06hTop
INT 15 - TopView - SEND MESSAGE - "SIZEOF" - GET OBJECT SIZE AH = 12h BH = 08h BL = object 00h handle in DWORD on top of stack window: total character positions in window timer: elapsed time since timer started pointer: number of messages queued to pointer object panel: number of panels in panel file keyboard: number of input buffers queued 01h total chars in current task's default window 02h number of messages in task's mailbox (task's handle on stack) 03h number of messages in current task's mailbox 04h number of input buffers queued in task's kbd (handle on stack) 05h number of input buffers queued for current task's default kbd 06h number of objects queued in OBJECTQ (task's handle on stack) 07h number of objects queued in current task's OBJECTQ 0Ch (DV 2.26+) total chars in window owning handle on top of stack 0Dh (DV 2.26+) total chars in parent task's window Return: DWORD on top of stack is result (any handle on stack has been popped) Note: for panel objects, a count of zero is returned if no panel file is open for the object SeeAlso: AH=12h/BH=04h,AH=12h/BH=09hTop
INT 15 - TopView - SEND MESSAGE - "LEN" - GET OBJECT LENGTH AH = 12h BH = 09h BL = object 00h handle in DWORD on top of stack window: get chars/line timer: get 1/100 seconds remaining before timer expires mailbox: (DV/X) get number of bytes queued to mailbox 01h get number of chars/line in current task's default window 0Ch (DV 2.26+) get chars/line in window owning handle on top of stk 0Dh (DV 2.26+) get chars/line in parent task's window Return: DWORD on top of stack is length (any handle on stack has been popped) SeeAlso: AH=12h/BH=08hTop
INT 15 - TopView - SEND MESSAGE - "ADDTO" - WRITE CHARS AND ATTRIBS TO WINDOW AH = 12h BH = 0Ah BL = window to write to 00h window handle is DWORD on top of stack 01h current task's default window 0Ch (DV 2.26+) default window of task owning handle on top of stack 0Dh (DV 2.26+) default window of parent of current task STACK: DWORD count of attributes DWORD address of attribute string DWORD count of characters DWORD address of character string Return: STACK popped Notes: if one string is longer than the other, the shorter one will be reused until the longer one is exhausted the cursor is left just after the last character written SeeAlso: AH=12h/BH=0Bh"WINDOW"Top
INT 15 - TopView - SEND MESSAGE - "ADDTO" - SEND MAILBOX MESSAGE/STAT BY VALUE AH = 12h BH = 0Ah BL = mailbox to write to 00h handle is DWORD on top of stack 02h default mailbox of task whose handle is on top of stack 03h current task's default mailbox STACK: DWORD status (low byte) DWORD length of message DWORD address of message Return: STACK popped Notes: the message is copied into either system or common memory insufficient memory normally causes the process to be aborted; under DESQview 2.2+, failed writes may return CF set instead (see AX=DE15h) SeeAlso: AH=12h/BH=0Bh"MAILBOX"Top
INT 15 - TopView - SEND MESSAGE - "ADDTO" - SET OBJECT BITS AH = 12h BH = 0Ah BL = object 00h handle is DWORD on top of stack timer: start timer for specified interval pointer: set control flags (see #00451) keyboard: set control flags (see #00450) 04h set control flags on KEYBOARD object (handle on top of stack) 05h set control flags on task's default KEYBOARD object STACK: (if timer) DWORD duration in 1/100 seconds (otherwise) DWORD bits to set Return: STACK popped SeeAlso: AH=12h/BH=0Bh"OBJECT" Bitfields for DESQview keyboard object bits: Bit(s) Description (Table 00450) 15 reserved, can't be set 14 unused 13 reserved, can't be set 12-6 unused 5 (DV 2.2+) exclusive input 4 filter all keys (used with handler established by SETESC) if 0, only keys that would normally be displayed are filtered 3 program continues executing while input in progress 2 insert mode active for field mode 1 hardware cursor displayed when task is hardware cursor owner must be set if keyboard in field mode and field table includes input fields 0 keyboard is in field mode rather than keystroke mode Bitfields for DESQview pointer object bits: Bit(s) Description (Table 00451) 15 reserved, can't be set 14-8 unused 7 mouse pointer is hidden while in window 6 get messages even if window not topmost 5 get messages even if window not foreground 4 multiple clicks separated by less than 1/3 second are counted and returned in a single message 3 pointer position is relative to screen origin, not window origin 2 send message on button release as well as button press 1 (DV 2.23+) send message with row=FFFFh and col=FFFFh whenever the pointer leaves the window 0 send message only on button activity, not movement DV-specific, and INT 15/AX=DE0Fh must have been called firstTop
INT 15 - TopView - SEND MESSAGE - "SUBFROM" - WRITE ATTRIBUTES TO WINDOW AH = 12h BH = 0Bh BL = window to write attributes to 00h handle is DWORD on top of stack 01h current task's default window 0Ch (DV 2.26+) default window of task owning handle on top of stack 0Dh (DV 2.26+) default window of parent of current task STACK: DWORD number of attributes to write DWORD address of attributes Return: STACK popped Note: the attributes are written starting at the current cursor position; the cursor is left just after the last position written SeeAlso: AH=12h/BH=0Ah"WINDOW"Top
INT 15 - TopView - SEND MESSAGE - "SUBFROM" - SEND MAILBOX MESSAGE/STAT BY REF AH = 12h BH = 0Bh BL = mailbox to write to 00h handle is DWORD on top of stack 02h default mailbox of task whose handle is on top of stack 03h current task's default mailbox STACK: DWORD status (low byte) DWORD length of message DWORD address of message Return: STACK popped Notes: only a pointer to the message is stored, but the write may still fail due to insufficient memory under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h) SeeAlso: AH=12h/BH=0Ah"MAILBOX"Top
INT 15 - TopView - SEND MESSAGE - "SUBFROM" - REMOVE OBJECT FROM OBJECTQ AH = 12h BH = 0Bh BL = OBJECTQ from which to remove all copies of a particular object 06h OBJECTQ of task whose handle is on top of stack 07h task's default OBJECTQ STACK: DWORD handle of object to remove Return: STACK popped Note: should be sent whenever an object is erased or closedTop
INT 15 - TopView - SEND MESSAGE - "SUBFROM" - RESET OBJECT BITS AH = 12h BH = 0Bh BL = object 00h handle is DWORD on top of stack pointer: reset control flags keyboard: reset control flags 04h clear control flags on KEYBOARD object (handle on top of stack) 05h clear control flags on task's default KEYBOARD object STACK: DWORD which bits to clear (see #00450,#00451) Return: STACK popped SeeAlso: AH=12h/BH=0Ah"OBJECT"Top
INT 15 - TopView - SEND MESSAGE - "OPEN" - OPEN OBJECT AH = 12h BH = 0Ch BL = object 00h handle is DWORD on top of stack window: fill with given character from scroll origin to end keyboard: attach to a window timer: open pointer: start taking input for window panel: associate with a panel file 01h fill task's default window with given char from scrl org to end 02h open given task's mailbox for input (task's handle on stack) 03h open current task's mailbox 04h attach a KEYBOARD to a window (handle on top of stack) 05h attach task's default KEYBOARD to a window 06h open a task's OBJECTQ (task's handle on top of stack) 07h open current task's OBJECTQ 0Ch (DV 2.26+) fill def window of task owning handle on top of stck 0Dh (DV 2.26+) fill default window of parent of current task STACK: (if window) DWORD character to fill with (if keyboard) DWORD handle of window to attach to (if pointer) DWORD handle of window to attach to (if panel) DWORD length of filename or resident panel DWORD address of filename or resident panel (otherwise) nothing Return: STACK popped Notes: if first byte of panel file name is 1Bh, then the "name" IS a panel if first two bytes of panel file "name" are C0hC3h, then the "name" IS the panel file result code of open may be retrieved with STATUS message logical cursor is left at scroll origin after filling window the task opening a mailbox becomes its owner, and the only task allowed to read the mailbox messages are only sent to a pointer object when the mouse is positioned in the window to which the pointer has been attached there is no need to explicitly open a timer object, as ADDTO and WRITE messages automatically open the timer SeeAlso: AH=12h/BH=0Dh,AH=12h/BH=14h"LOCK"Top
INT 15 - TopView - SEND MESSAGE - "CLOSE" - CLOSE OBJECT AH = 12h BH = 0Dh BL = object 00h handle is DWORD on top of stack timer: close keyboard: detach from window and discard queued input pointer: stop taking input panel: close mailbox: close, unlock, and discard any pending messages 02h close given task's mailbox (task's handle on top of stack) 03h close task's default mailbox 04h close KEYBOARD object (handle on top of stack) 05h close task's default KEYBOARD 06h close given task's OBJECTQ (task's handle on top of stack) 07h close current task's OBJECTQ Return: STACK popped if handle passed on stack Notes: when an OBJECTQ is closed, each object in the OBJECTQ is sent an ERASE message (AH=12h/BH=0Eh) when a panel object is closed, the panel file and any panels currently in use are freed; window and keyboard objects created by APPLY are not affected, but field mode input ceases open but idle timer objects consume a small amount of CPU time SeeAlso: AH=12h/BH=0Ch,AH=12h/BH=0Eh,AH=12h/BH=14h"LOCK"Top
INT 15 - TopView - SEND MESSAGE - "ERASE" - ERASE OBJECT AH = 12h BH = 0Eh BL = object 00h handle is DWORD on top of stack window: clear from scroll origin to end of window keyboard: discard input timer: cancel current interval pointer: discard all pending messages mailbox: discard all pending messages 01h clear task's default window from scroll origin to end 02h discard all queued messages in mailbox (handle on top of stack) 03h discard all queued messages in current task's default mailbox 04h discard all input queued to KEYBOARD (handle on top of stack) 05h discard all input queued to task's default KEYBOARD 06h remove all objects from OBJECTQ (task's handle on top of stack) 07h remove all objects from current task's OBJECTQ 0Ch (DV 2.26+) clear window of task owning handle on top of stack 0Dh (DV 2.26+) clear default window of parent of current task Return: STACK popped if handle passed on stack Note: when an OBJECTQ is erased, each object in the OBJECTQ is also erased SeeAlso: AH=12h/BH=02hTop
INT 15 - TopView - SEND MESSAGE - "STATUS" - GET OBJECT STATUS AH = 12h BH = 0Fh BL = object 00h handle is DWORD on top of stack timer: is it running? pointer: return status of last message panel: verify success of last OPEN or APPLY 02h return status of last msg READ from mailbox (handle on stack) 03h return status of last msg READ from task's default mailbox 04h get stat of last msg from task's KEYBOARD (task handle on stk) 05h get status of last msg from task's default KEYBOARD 06h return whether OBJECTQ is open or not (handle on top of stack) 07h return whether task's default OBJECTQ is open or not Return: DWORD on top of stack is status (any handle passed on stack popped) Notes: if object is a panel object, the status indicates the error code: 00h successful 14h panel name not in panel directory 15h not enough memory to apply panel 16h invalid panel format 17h panel file already open 81h-92h DOS error codes+80h \ codes > 80h indicate 95h not enough memory to open panel file > that the panel was 98h null panel file name / not opened if object is a timer, the status is: 00000000h open but not running 40000000h open and running 80000000h closed if object is an OBJECTQ, the status is: 00000000h open 80000000h closed if object is a keyboard in keystroke mode, the status is the extended character code (scan code) of the last keystroke if object is a keyboard in field mode, the status indicates the reason for the last return from the field manager 00h Enter key pressed 01h Button 1 or keystroke selection 02h Button 2 03h validation 04h auto Enter on field 1Bh Escape pressed 46h ^Break pressed other: extended code for key terminating input the status of mailbox messages sent by the window manager is always 80h the status of a pointer message is the same as the status field in the message SeeAlso: AH=12h/BH=04h"READ"Top
INT 15 - TopView - SEND MESSAGE - "EOF" - GET OBJECT EOF STATUS AH = 12h BH = 10h BL = object 00h handle is DWORD on top of stack window: return TRUE if logical cursor past end of window mailbox: ??? 01h returns TRUE if logical cursor past end of task's def window 02h return ??? for task's mailbox (task's handle on top of stack) 03h return ??? for current task's mailbox 0Ch (DV 2.26+) check log crsr of window owning handle on top of stk 0Dh (DV 2.26+) check log cursor of window of parent task Return: DWORD on top of stack is status (any handle on stack has been popped)Top
INT 15 - TopView - SEND MESSAGE - "AT" - POSITION OBJECT CURSOR AH = 12h BH = 11h BL = window for which to move cursor 00h window's handle is DWORD on top of stack 01h task's default window 0Ch (DV 2.26+) default window of task owning handle on top of stack 0Dh (DV 2.26+) default window of parent of current task STACK: DWORD column DWORD row Return: STACK poppedTop
INT 15 - TopView - SEND MESSAGE - "SETNAME" - ASSIGN NAME TO MAILBOX AH = 12h BH = 11h BL = mailbox to name 00h DWORD on top of stack is mailbox handle 02h use given task's mailbox (task's handle on top of stack) 03h use current task's default mailbox STACK: DWORD length of name DWORD address of name Return: STACK popped SeeAlso: AH=12h/BH=12h"GETNAME",AX=DE0EhTop
INT 15 - TopView - SEND MESSAGE - "SETSCALE" - SET POINTER SCALE FACTOR AH = 12h BX = 1100h STACK: DWORD object handle for pointer object DWORD number of colums to scale pointer position to DWORD number of rows to scale pointer position to Return: STACK popped SeeAlso: AH=12h/BX=1200hTop
INT 15 - TopView - SEND MESSAGE - "READN" - GET NEXT N OBJECT BYTES AH = 12h BH = 12h BL = window to read from 00h handle is DWORD on top of stack 01h read next N chars or attributes on task's default window 0Ch (DV 2.26+) read window of task owning handle on top of stack 0Dh (DV 2.26+) read default window of parent of current task STACK: DWORD count Return: STACK: DWORD number of bytes actually read DWORD address of buffer containing data Notes: reading starts at the current logical cursor position; the cursor is updated to point at the character following the last one read any translucent blanks (FFh) which are visible on screen are changed to the character which is seen through them the string produced by the read is placed in an input buffer which may be reused by the next READ or READN of a window window stream opcodes D8h and D9h determine whether the read returns characters or attributes SeeAlso: AH=12h/BH=04h"WINDOW",AH=12h/BH=05h"WINDOW"Top
INT 15 - DESQview 2.50+ - SEND MESSAGE - "GETNAME" - GET NAME OF MAILBOX AH = 12h BH = 12h BL = mailbox for which to retrieve name 00h DWORD on top of stack is mailbox handle 02h use given task's mailbox (task's handle on top of stack) 03h use current task's default mailbox STACK: DWORD length of buffer for name DWORD pointer to buffer Return: STACK: DWORD length of returned name (or size of buffer, if less) Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x Note: the returned name is not NUL-terminated SeeAlso: AH=12h/BH=11h"SETNAME",AX=DE0EhTop
INT 15 - TopView - SEND MESSAGE - "GETSCALE" - GET POINTER SCALE FACTOR AH = 12h BX = 1200h STACK: DWORD object handle for pointer Return: STACK: DWORD pointer pos scaled as if window were this many colums wide DWORD pointer pos scaled as if window were this many rows high SeeAlso: AH=12h/BX=1100hTop
INT 15 - TopView - SEND MESSAGE - "REDRAW" - REDRAW WINDOW AH = 12h BH = 13h BL = window object 00h DWORD on top of stack is handle for window to redraw 01h redraw task's default window 0Ch (DV 2.26+) redraw window of task owning handle on top of stack 0Dh (DV 2.26+) redraw default window of parent of current task Return: STACK popped if handle was passed on stack SeeAlso: AH=12h/BH=05h"WINDOW",AH=12h/BH=0EhTop
INT 15 - DESQview 2.50+ - SEND MESSAGE - "READINTO" - GET NEXT MAIL MESSAGE AH = 12h BH = 13h BL = mailbox from which to read 00h DWORD on top of stack is mailbox handle 02h use given task's mailbox (task's handle on top of stack) 03h use current task's default mailbox STACK: DWORD size of buffer in bytes DWORD pointer to buffer Return: STACK: DWORD number of bytes read Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x Notes: this call blocks if no input is available, but will return less than the requested number of bytes if some (but insufficient) data is available use this call instead of AH=12h/BH=04h if the mailbox has flag bits 4 or 5 set, as common memory may be exhausted by that call when attempting to read the next message SeeAlso: AH=12h/BH=04h"READ",AH=12h/BH=05h,AH=12h/BH=16hTop
INT 15 - TopView - SEND MESSAGE - "SETICON" - SPECIFY POINTER ICON AH = 12h BX = 1300h STACK: DWORD object handle for pointer DWORD character to use for pointer Return: STACK poppedTop
INT 15 - TopView - SEND MESSAGE - "SETESC" - SET ESCAPE ROUTINE ADDRESS AH = 12h BH = 14h BL = message modifier 00h handle is DWORD on top of stack 01h define user stream 04h intercept keystrokes from KEYBOARD to window (handle on stack) 05h intercept keystrokes from task's default KEYBOARD to a window STACK: (if window) DWORD user stream number (14h-1Fh) DWORD address of FAR user stream handler (if keyboard) DWORD address of FAR filter function (see #00452) Return: STACK popped (Table 00452) Values keyboard filter function is called with when keyboard is in field mode: AL = character AH = 00h or extended ASCII code if AL = 00h BL = field number CH = cursor column CL = cursor row DL = field type modifier (sixth item in field table entry) DH = seventh item in field table entry ES:SI = window's handle DS:DI -> field table entry for field containing the cursor Return: AH = action to take 00h use keystroke 01h ignore keystroke FFh beep and ignore keystroke Note: the filter function is not allowed to make INT 15, DOS, or BIOS callsTop
INT 15 - TopView - SEND MESSAGE - "LOCK" - REQUEST EXCLUSIVE ACCESS TO RESOURCE AH = 12h BH = 14h BL = object 00h mailbox handle is DWORD on top of stack 02h use given task's mailbox (task's handle on top of stack) 03h use current task's default mailbox Return: STACK popped if BL=00h Note: release exclusive access by sending CLOSE message to mailbox access may be requested multiple times, and requires multiple CLOSEs SeeAlso: AH=12h/BH=0DhTop
INT 15 - DESQview v2.20+ - SEND MESSAGE - "SETFLAGS" - SET OBJECT FLAGS AH = 12h BH = 15h BL = object 00h DWORD on top of stack mailbox, keyboard, or pointer only 02h mailbox for task whose handle is on top of stack 03h mailbox for current task 04h keyboard for task whose handle is on top of stack 05h keyboard for current task STACK: DWORD flags (see #00453,#00454) Return: STACK popped Notes: only available if the API level has been set to at least 2.20 equivalent to performing SUBFROM and ADDTO calls on the object if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than "READ" (see AH=12h/BH=13h"READINTO") to retrieve messages SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=16h Bitfields for DESQview mailbox object flags: Bit(s) Description (Table 00453) 0 all mail messages in common memory 1 allow write even if closed 2 don't erase messages when mailbox closed 4 (DV/X) append messages with like status and sender (stream-oriented mail) 5 (DV/X) store mail in expanded memory (pool grows as needed) 6 (DV/X) make mailbox into non-owned mailbox Bitfields for DESQview keyboard object flags: Bit(s) Description (Table 00454) 5 exclusive input when keyboard in use for inputTop
INT 15 - DESQview v2.20+ - SEND MESSAGE - "GETFLAGS" - GET OBJECT FLAGS AH = 12h BH = 16h BL = object 00h DWORD on top of stack mailbox, keyboard, or pointer only 02h mailbox for task whose handle is on top of stack 03h mailbox for current task 04h keyboard for task whose handle is on top of stack 05h keyboard for current task Return: STACK: DWORD current control flags (see #00453,#00454) Notes: only available if the API level has been set to at least 2.20 if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than "READ" (see AH=12h/BH=13h"READINTO") to retrieve messages SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=13h"READINTO",AH=12h/BH=15hTop
INT 15 - DESQview v2.42-2.52 - BUG AH = 12h BH = 17h BL = object 00h DWORD on top of stack mailbox, keyboard, or pointer only 02h mailbox for task whose handle is on top of stack 03h mailbox for current task 04h keyboard for task whose handle is on top of stack 05h keyboard for current task Return: STACK popped if handle passed on stack Notes: due to a fencepost error, message 17h is accepted for mailboxes, keyboards, and pointers, but causes a random branch DESQview v2.50-2.52 are distributed as part of DESQview/X v1.02Top
INT 15 - DESQview v2.50+ - SEND MESSAGE 00h WITH ERROR RECOVERY AH = 12h BH = 80h Note: this function is identical to AH=12h/BH=00h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=00h (Table 00455) Values for DESQview error code: 00h no error 01h invalid values 02h alias invalid 03h handle valid but wrong type 04h invalid handleTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 01h WITH ERROR RECOVERY AH = 12h BH = 81h Note: this function is identical to AH=12h/BH=01h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=01hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 02h WITH ERROR RECOVERY AH = 12h BH = 82h Note: this function is identical to AH=12h/BH=02h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=02hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 03h WITH ERROR RECOVERY AH = 12h BH = 83h Note: this function is identical to AH=12h/BH=03h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=03h,AH=12h/BX=0300hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 04h WITH ERROR RECOVERY AH = 12h BH = 84h Note: this function is identical to AH=12h/BH=04h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=04h,AH=12h/BX=0400hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 05h WITH ERROR RECOVERY AH = 12h BH = 85h Note: this function is identical to AH=12h/BH=05h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=05hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 06h WITH ERROR RECOVERY AH = 12h BH = 86h Note: this function is identical to AH=12h/BH=06h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=06hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 07h WITH ERROR RECOVERY AH = 12h BH = 87h Note: this function is identical to AH=12h/BH=07h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=07hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 08h WITH ERROR RECOVERY AH = 12h BH = 88h Note: this function is identical to AH=12h/BH=08h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=08hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 09h WITH ERROR RECOVERY AH = 12h BH = 89h Note: this function is identical to AH=12h/BH=09h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=09hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ah WITH ERROR RECOVERY AH = 12h BH = 8Ah Note: this function is identical to AH=12h/BH=0Ah, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=0AhTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Bh WITH ERROR RECOVERY AH = 12h BH = 8Bh Note: this function is identical to AH=12h/BH=0Bh, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=0BhTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ch WITH ERROR RECOVERY AH = 12h BH = 8Ch Note: this function is identical to AH=12h/BH=0Ch, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=0ChTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Dh WITH ERROR RECOVERY AH = 12h BH = 8Dh Note: this function is identical to AH=12h/BH=0Dh, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=0DhTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Eh WITH ERROR RECOVERY AH = 12h BH = 8Eh Note: this function is identical to AH=12h/BH=0Eh, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=0EhTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Fh WITH ERROR RECOVERY AH = 12h BH = 8Fh Note: this function is identical to AH=12h/BH=0Fh, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=0FhTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 10h WITH ERROR RECOVERY AH = 12h BH = 90h Note: this function is identical to AH=12h/BH=10h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=10hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 11h WITH ERROR RECOVERY AH = 12h BH = 91h Note: this function is identical to AH=12h/BH=11h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=11h,AH=12h/BX=1100hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 12h WITH ERROR RECOVERY AH = 12h BH = 92h Note: this function is identical to AH=12h/BH=12h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=12h,AH=12h/BX=1200hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 13h WITH ERROR RECOVERY AH = 12h BH = 93h Note: this function is identical to AH=12h/BH=13h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=13hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 14h WITH ERROR RECOVERY AH = 12h BH = 94h Note: this function is identical to AH=12h/BH=14h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=14hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 15h WITH ERROR RECOVERY AH = 12h BH = 95h Note: this function is identical to AH=12h/BH=15h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=15hTop
INT 15 - DESQview v2.50+ - SEND MESSAGE 16h WITH ERROR RECOVERY AH = 12h BH = 96h Note: this function is identical to AH=12h/BH=16h, except that DESQview will not pop up a "Programming Error" window, instead returning an error code in AL (see #00455) SeeAlso: AH=12h/BH=16hTop
INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS AH = 13h STACK: WORD process ID Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=12h"VMiX"Top
INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK AH = 13h Return: BX:AX -> task control block (see #00456) SeeAlso: AH=15h"MultiDOS" Format of MultiDOS Plus v4.0 task control block: Offset Size Description (Table 00456) 00h DWORD pointer to next TCB 04h 8 BYTEs ASCIZ task name 0Ch 2 BYTEs ??? 0Eh WORD task PSP segment 10h WORD abort/suspend flags 12h WORD current screen segment (see AH=0Bh,AH=0Ch) 14h WORD priority level (0000h-FFFEh) 16h WORD time slice counter 18h 2 BYTEs ??? 1Ah WORD suspend timer value 1Ch WORD stack segment 1Eh WORD stack pointer 20h WORD display type 22h WORD display memory 24h 2 BYTEs ??? 26h WORD termination count 28h WORD equipment flag for BIO10 driver 2Ah BYTE background CRT mode 2Bh WORD screen width in columns 2Dh WORD screen size in bytes 2Fh WORD segment of physical screen memory 31h 16 BYTEs eight cursor positions 41h WORD current cursor shape 43h BYTE active display page 44h WORD CRT controller I/O port base 46h 2 BYTEs ??? 48h WORD foreground task flag 4Ah 6 BYTEs ??? 50h WORD saved video segment (see AH=0Bh,AH=0Ch) 52h DWORD old INT 22 56h DWORD old INT 23 5Ah DWORD old INT 24 5Eh WORD top of memory for task 60h 4 BYTEs ??? 64h WORD DTA segment (see INT 21/AH=1Ah) 66h WORD DTA offset 68h 4 BYTEs ??? 6Ch BYTE current ANSI.SYS attribute 6Dh BYTE current ANSI.SYS column 6Eh BYTE current ANSI.SYS row 6Fh BYTE current ANSI.SYS display state 70h BYTE maximum ANSI.SYS columns 71h BYTE current ANSI.SYS page 72h WORD saved ANSI.SYS cursor position 74h BYTE ANSI.SYS parameter buffer index 75h BYTE current ANSI.SYS screen mode 76h BYTE ANSI.SYS wrap flag 77h 6 BYTEs ANSI.SYS parameter buffer 7Dh BYTE ANSI.SYS keyboard DSR state 7Eh 7 BYTEs ANSI.SYS keyboard DSR buffer 85h 3 BYTEs ??? 88h 16 BYTEs request header for DOS driver calls 98h 14 BYTEs ??? A6h WORD segment of EMS map if EMS task A8h WORD flag: task makes EMS calls AAh WORD EMS handle for task ACh WORD keyboard shift state AEh 12 BYTEs ??? BAh WORD TCB of parent if child task BCh WORD termination code BEh WORD COM port number C0h 4 BYTEs ??? C4h WORD current IRQ number C6h 2 BYTEs ??? C8h WORD miscellaneous flag word CAh 2 BYTEs ??? CCh DWORD old INT 10 D0h WORD EMS alternate map set number D2h 414 BYTEs DOS current disk and directory context (optional)Top
INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW AH = 14h STACK: WORD top left corner of window (high byte = row, low = col) WORD bottom right corner of window (high = row, low = col) Return: AX = status (SYS_OK) Note: clears window to color set with "sys_setcolors" (AH=18h) SeeAlso: AH=15h"VMiX",AH=16h"VMiX",AH=18h"VMiX",AH=1Fh"VMiX"Top
INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND AH = 14h Return: AX = current state 0000h MultiDOS Plus command prompt is background task 0001h command prompt is foreground task SeeAlso: AH=0Bh"MultiDOS"Top
INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE AH = 15h STACK: DWORD pointer to ASCIZ banner message for top of screen Return: AX = status (SYS_OK) SeeAlso: AH=14h"VMiX",AH=16h"VMiX"Top
INT 15 - MultiDOS Plus - GET SYSTEM BLOCK AH = 15h Return: BX:AX -> system block (see #00457) SeeAlso: AH=13h"MultiDOS" Format of MultiDOS Plus 4.0 system block: Offset Size Description (Table 00457) 00h WORD segment of system control block 02h WORD redirection flag set by /NOREDIRECT 04h WORD no-INT 10 flag set by /NO10 06h DWORD old INT 10 0Ah DWORD new INT 10 0Eh DWORD pointer to WORD with current TCB offset (see #00456) 12h DWORD pointer to WORD with idle task TCB offset 16h DWORD pointer to WORD with foreground TCB offset (see #00456) 1Ah DWORD pointer to WORD with MultiDOS TCB offset (see #00456) 1Eh WORD Task Control Block size 20h WORD number of TCBs 22h WORD flag: EMS present 24h WORD EMS page frame base segment 26h WORD 16K pages in EMS page frame 28h WORD base segment for conventional memory tasks 2Ah WORD conventional memory size in paragraphs 2Ch DWORD pointer to list of queue pointersTop
INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR AH = 16h STACK: DWORD pointer to I/O Request Packet WORD top left corner of window (high byte = row, low = col) WORD bottom right corner of window (high = row, low = col) Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=14h"VMiX",AH=17h"VMiX"Top
INT 15 - MultiDOS Plus - INITIALIZATION AH = 16h Note: used internally during initialization; any other calls will cause unpredictable resultsTop
INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS AH = 17h Return: AH = foreground color AL = background color SeeAlso: AH=16h"VMiX",AH=18h"VMiX"Top
INT 15 - MultiDOS Plus - MAP IRQ AH = 17h AL = IRQ to map (01h-0Fh) BX = offset of task control block (see #00456) to associate with IRQ Return: AX = status 0000h successful other invalid IRQ Note: the EMS map of the specified TCB is associated with the given interrupt SeeAlso: AH=18h"MultiDOS",AH=19h"MultiDOS"Top
INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS AH = 18h STACK: WORD new background/foreground colors bits 3-0: foreground bits 7-4: background bits 15-8: unused Return: AX = color SeeAlso: AH=14h"VMiX",AH=17h"VMiX",AH=19h"VMiX"Top
INT 15 - MultiDOS Plus - UNMAP IRQ AH = 18h AL = IRQ to unmap (01h-0Fh) Return: AX = status 0000h successful 0001h invalid IRQ Note: results are unpredictable if the IRQ has not been mapped SeeAlso: AH=17h"MultiDOS",AH=19h"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS AH = 19h STACK: WORD new background/foreground colors bits 3-0: foreground bits 7-4: background bits 15-8: unused Return: AX = color SeeAlso: AH=18h"VMiX"Top
INT 15 - MultiDOS Plus - UNMAP ALL IRQs AH = 19h Return: AX destroyed Note: for MultiDOS internal use only SeeAlso: AH=17h"MultiDOS",AH=18h"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT AH = 1Ah STACK: WORD interrupt number DWORD pointer to register structure Return: AX = returned flagsTop
INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER AH = 1Ah DS:SI -> 8-byte name Return: AL = status 00h successful AH = semaphore number (20h-3Fh) 04h out of string space Notes: all eight bytes of the name are significant if the name does not already exist, it is added to the name table and associated with a free semaphore number names cannot be destroyed SeeAlso: AH=1Bh"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK AH = 1Bh STACK: DWORD source address DWORD destination address WORD number of words to move Return: nothingTop
INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME AH = 1Bh DS:SI -> 8-byte name Return: AH = status 00h successful 02h invalid semaphore number 03h caller already owns semaphore 04h out of string space Notes: (see AH=01h"MultiDOS") equivalent to AH=1Ah followed by AH=01h SeeAlso: AH=01h"MultiDOS",AH=1Ah"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION AH = 1Ch STACK: WORD AND/OR pixel with background (00h = OR, 01h = AND) DWORD pointer to object bitmap WORD object width in pixels WORD object height in pixels Return: nothing SeeAlso: AH=1Dh"VMiX"Top
INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME AH = 1Ch DS:SI -> 8-byte name Return: AH = status 00h successful 01h not semaphore owner 02h invalid semaphore number 04h out of string space Notes: (see AH=02h"MultiDOS") equivalent to AH=1Ah followed by AH=02h SeeAlso: AH=02h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT AH = 1Dh Return: AX = current font number (00h-03h) SeeAlso: AH=1Ch"VMiX",AH=1Eh"VMiX"Top
INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME AH = 1Dh DS:SI -> 8-byte name Return: AH = status 00h semaphore not in use 01h semaphore owned by another task 02h invalid semaphore number 03h caller owns semaphore 04h out of string space Notes: (see AH=10h"MultiDOS") equivalent to AH=1Ah followed by AH=10h SeeAlso: AH=10h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Ch"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT AH = 1Eh STACK: WORD new font number (00h-03h) Return: AX = current font number (00h-03h) SeeAlso: AH=1Dh"VMiX"Top
INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER AX = 1E00h DX = event/trigger number (00h-3Fh) Return: AH = status 00h successful SeeAlso: AX=1E01h,AX=1E02hTop
INT 15 - MultiDOS Plus - TRIGGER EVENT AX = 1E01h DX = event/trigger number (00h-3Fh) Return: AH = status 00h successful 01h invalid event/trigger number Notes: schedules any task waiting for event; if no task is waiting, the event counter is incremented (and will roll over if it was 65535) may be invoked by interrupt handler SeeAlso: AX=1E00h,AX=1E02hTop
INT 15 - MultiDOS Plus - WAIT FOR EVENT AX = 1E02h DX = event/trigger number (00h-3Fh) Return: AH = status 00h successful 01h invalid event/trigger number Note: if the event counter is zero, the task is suspended until the event is triggered with AX=1E01h; else, the counter is decremented and the call returns immediately SeeAlso: AX=1E00h,AX=1E01hTop
INT 15 - MultiDOS Plus 4.01 - SET CONTEXT-SWITCH FUNCTIONS AX = 1E08h DX:BX -> context save handler (see #00458) DX:CX -> context restore handler (see #00458) Return: nothing Note: handlers may be removed by setting addresses to 0000h:0000h (Table 00458) Values MultiDOS Plus context-switch handlers are called with: ES:BX -> task's TCB Return: all registers preservedTop
INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW AH = 1Fh STACK: WORD top left corner of window (high byte = row, low = col) WORD bottom right corner of window Return: AX = status (SYS_OK) SeeAlso: AH=14h"VMiX",AH=18h"VMiX"Top
INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS AH = 1Fh Return: BX = first segment of conventional memory DX = first segment of EMS swap frame into which MultiDOS will load programsTop
INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED AH = 20h Return: AX = current state 0000h multitasking enabled other TCB of task that disabled multitasking SeeAlso: AH=0Dh"MultiDOS",AH=13h"MultiDOS"Top
INT 15 U - DOS 3.0+ PRINT.COM - DISABLE CRITICAL REGION FLAG AX = 2000h Return: nothing Desc: stop setting user flag on entry to PRINT critical region Note: also supported by PC Network v1.00 RECEIVER.COM SeeAlso: AX=2001hTop
INT 15 U - DOS 3.0+ PRINT.COM - SET CRITICAL REGION FLAG AX = 2001h ES:BX -> byte which is to be incremented while in a DOS call Return: nothing Desc: specify a user flag which PRINT should set to let an interested application know it is in a critical region Note: also supported by PC Network v1.00 RECEIVER.COM SeeAlso: AX=2000hTop
INT 15 - OS HOOK - SETUP SYSREQ ROUTINE (AT,XT286,PS50+) AX = 2010h ??? Return: ??? SeeAlso: AX=2011hTop
INT 15 - OS HOOK - COMPLETION OF SYSREQ FUNCTION (AT,XT286,PS50+) AX = 2011h ??? Return: ??? SeeAlso: AX=2010hTop
INT 15 - SYSTEM - POWER-ON SELF-TEST ERROR LOG (PS50+) AH = 21h AL = subfunction 00h read POST log 01h write POST log BH = device ID BL = error code Return: CF clear if successful CF set on error AH = status 00h OK 01h list full 02h unsupported subfunction 80h invalid command 86h unsupported function if function 00h: BX = number of error codes stored ES:DI -> error log Notes: the log is a series of words, the first byte of which identifies the error code and the second the device. supported by AMI PCI BIOS IBM considers this a required BIOS function if the device ID is FFh, the "error code" is the actual device number minus 255 (thus these devices have no specific error codes) SeeAlso: AH=23h"SYSTEM",AH=24h"SYSTEM"Top
INT 15 - SYSTEM - later PS/2s - LOCATE ROM BASIC AH = 22h Return: CF set on error AH = status (86h if function not supported) CF clear on success AH = 00h ES:BX -> ROM BASIC Notes: if this function is not supported, ROM BASIC is at F600h:0000h IBM classifies this function as optional SeeAlso: INT 86"BASIC",INT F0"BASIC"Top
INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ??? CMOS DATA AX = 2300h Return: CF clear if successful CL = value of CMOS location 2Dh CH = value of CMOS location 2Eh CF set on error AH = error code (80h,86h) Note: IBM classifies this function as optional SeeAlso: AX=2301h,AX=2304h,AX=2305hTop
INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SET ??? CMOS DATA AX = 2301h CL = new value for CMOS location 2Dh CH = new value for CMOS location 2Eh Return: CF clear if successful CF set on error AH = error code (80h,86h) Notes: sets the contents of CMOS locations 2Dh and 2Eh IBM classifies this function as optional SeeAlso: AX=2300h,AX=2304h,AX=2305hTop
INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ROM STARTUP VIDEO REG TABLES AX = 2302h BL = data index (00h-0Dh) (see #00459) Return: ES:BX -> table for register (see #00460,#00461) CX = size of table in bytes (may be 0000h) Note: IBM classifies this function as optional SeeAlso: AX=2300h,AX=2301h,AX=2303h (Table 00459) Values for PS/1 ROM startup video register tables: 00h DAC registers 01h ??? 02h Palette registers 03h-0Dh ??? Format of PS/1 ROM startup DAC register table: Offset Size Description (Table 00460) 00h WORD number of DAC registers in table 02h var array of 3-byte DAC register values, starting at register 00h SeeAlso: #00459 Format of PS/1 ROM startup Palette register table: Offset Size Description (Table 00461) 00h 16 BYTEs colors for palette registers 00h through 0Fh 10h BYTE border color SeeAlso: #00459,#00018Top
INT 15 U - IBM BIOS - SMART ENERGY SYSTEM - ???
AX = 2303h
BX = ??? ('x')
DX = 'y' and 'z'
bits 15-7 = 'y'
bits 6-3 unused
bits 2-0 = 'z'
DI = ??? (0352h)
Return: ???
Notes: performs graphics functions, writes to segment A000h and VGA I/O ports
IBM classifies this function as optional
Top
INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SYSTEM SETUP AX = 2304h DX = segment of 32K buffer Return: CF clear if successful AX = 0003h (left over from setting video mode 3) BX,CX,DX,BP,DS,ES destroyed CF set on error AH = error code (80h,86h) Desc: run system setup utility, and optionally save any changed settings to CMOS RAM Note: IBM classifies this function as optional SeeAlso: AX=2301h,AX=2305hTop
INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET PROCESSOR SPEED AX = 2305h Return: CF clear if successful AL = processor speed in MHz CF set on error AL = FFh (speed unknown or >80 MHz) AL = error code (80h,86h = unsupported function) Note: IBM classifies this function as optional SeeAlso: AX=2301h,AX=2304h,AH=BChTop
INT 15 - SYSTEM - later PS/2s - DISABLE A20 GATE AX = 2400h Return: CF clear if successful AH = 00h CF set on error AH = status 01h keyboard controller is in secure mode 86h function not supported Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+ IBM classifies this function as optional BUG: AMI BIOS v1.00.03.AV0M never reports an error on failure to disable the A20 gate; it simply writes 0 to PORT 0092h SeeAlso: AX=2401h,AX=2402h,AX=2403h,PORT 0092hTop
INT 15 - SYSTEM - later PS/2s - ENABLE A20 GATE AX = 2401h Return: CF clear if successful AH = 00h CF set on error AH = status 01h keyboard controller is in secure mode 86h function not supported Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+ IBM classifies this function as optional SeeAlso: AX=2400h,AX=2402h,PORT 0092hTop
INT 15 - SYSTEM - later PS/2s - GET A20 GATE STATUS AX = 2402h Return: CF clear if successful AH = 00h AL = current state (00h disabled, 01h enabled) CX = ??? (set to 0000h-000Bh or FFFFh by AMI BIOS v1.00.03.AV0M) FFFFh if keyboard controller does not become ready within C000h read attempts CF set on error AH = status 01h keyboard controller is in secure mode 86h function not supported Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+ IBM classifies this function as optional SeeAlso: AX=2400h,AX=2401hTop
INT 15 - SYSTEM - later PS/2s - QUERY A20 GATE SUPPORT AX = 2403h Return: CF clear if successful AH = 00h BX = status of A20 gate support (see #00462) CF set on error AH = status 01h keyboard controller is in secure mode 86h function not supported Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+ IBM classifies this function as optional BUG: at one point early in processing INT 15/AH=24h, the AMI PCI BIOS version 1.00.05.AX1 compares whether AL==03h instead of AL>=03h, thus causing a random branch on any value of AL greater than 3. SeeAlso: AX=2402h Bitfields for A20 gate support status: Bit(s) Description (Table 00462) 0 supported on keyboard controller 1 supported with bit 1 of I/O port 92h 14-2 reserved 15 additional data is available (location not yet defined)Top
INT 15 - Object Kernel for DOS - INSTALLATION CHECK
AX = 3000h
Return: AX:BX = 4F42h:4A21h ('OBJ!') if installed
CX = resident segment
Program: the Object Kernel is a program by M.W. Pieters which is currently
under development
Note: Central Point's CPBACKUP v9 calls INT 15/AX=3000h at startup, but it
may be checking for a different program's presence
SeeAlso: AX=3001h,AX=3008h
Top
INT 15 - Object Kernel for DOS - GET STATUS BLOCK AX = 3001h Return: AX = FFFFh ES:DI -> status block SeeAlso: AX=3000h,AX=3008hTop
INT 15 - Object Kernel for DOS - KILL PROCESS AX = 3002h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - STOP PROCESS AX = 3003h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - START PROCESS AX = 3004h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - RESTART PROCESS AX = 3005h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - EXECUTE PROCESS AX = 3006h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - LIST PROCESSES AX = 3007h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - SWITCH ObjectKernel ON/OFF AX = 3008h BH = new state (00h disabled, 01h enabled) Return: AX = FFFFh SeeAlso: AX=3000h,AX=3009hTop
INT 15 - Object Kernel for DOS - RESERVED FOR FUTURE USE AX = 3009h to 30FFh SeeAlso: AX=3000h Program: the Object Kernel is a program by M.W. Pieters which is currently under developmentTop
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = 3Dh SeeAlso: AH=07h"IBM",AH=3Eh"IBM"Top
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = 3Eh SeeAlso: AH=3Dh"IBM",AH=3Fh"IBM"Top
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = 3Fh SeeAlso: AH=07h"IBM",AH=3Eh"IBM"Top
INT 15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE) AH = 40h AL = subfunction 00h get system profile in CX and BX 01h set system profile from CX and BX 02h get internal modem profile in BX 03h set internal modem profile from BX Return: CF clear if successful AH = 00h CF set on error AH = status (80h = profile execution failed)Top
INT 15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT AX = 4000h Return: AX = 4000h CL = timeout in minutes, 00h if disabled SeeAlso: AX=4001h,AX=4600hTop
INT 15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT AX = 4001h CL = timeout in minutes, 00h to disable Return: AL = status 00h timeout modified 01h timeout cannot be modified 40h timeout cannot be modified CL = timeout in minutes, 00h if disabled SeeAlso: AX=4000h,AX=4601hTop
INT 15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE and some others) AH = 41h AL = condition type (see #00463) BH = condition compare or mask value BL = timeout value times 55 milliseconds 00h means no timeout DX = I/O port address if AL bit 4 set ES:DI -> user byte if AL bit 4 clear Return: after event or timeout occurs Note: call AH=C0h and examine bit 3 of feature byte 1 to determine whether this function is supported SeeAlso: AH=83h,AH=86h,AH=C0h Bitfields for external event wait condition type: Bit(s) Description (Table 00463) 0-2 condition to wait for 0 any external event 1 compare and return if equal 2 compare and return if not equal 3 test and return if not zero 4 test and return if zero 3 reserved 4 1=port address, 0=user byte 5-7 reservedTop
INT 15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX) AH = 42h AL = suspend type 00h to use system profile 01h to force suspend regardless of system profile Return: nothing Note: the HP 95LX apparently suspends regardless of the value in AL; on power-up, execution will resume following the instruction calling this function SeeAlso: AH=44hTop
INT 15 - Compaq SLT/286 - ENTER STANDBY AX = 4280h Return: AH = 42h CF clear if successful CF set if unable to enter standby SeeAlso: AX=4600h,AX=5307h/CX=0001h"STAND-BY"Top
INT 15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE) AH = 43h Return: AL = status bits (see #00464) Bitfields for Convertible system status: Bit(s) Description (Table 00464) 7 power low 6 external power in use 5 standby power lost 4 power activated by alarm 3 internal modem powered on 2 RS232/parallel adapter powered on 1 reserved 0 LCD detachedTop
INT 15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE) AH = 44h AL = new modem power state (00h power off, 01h power on) Return: nothing SeeAlso: AH=42hTop
INT 15 - Olivetti Quaderno - INITIALIZE DIGITAL SIGNAL PROCESSING??? AX = 44C0h ES:DI -> new DSP procedure (exchanged with CMOS[28h]) ES:SI -> ??? buffer Return: ES:DI -> old DSP procedure ES:SI buffer filled with ten bytes from CMOS (addresses 14h-1Ch) followed by 00h (addresses 15h-1Ch copied only if less than 21h) Note: this function is also supported by XBIOS.COM SeeAlso: AX=44C9hTop
INT 15 - Olivetti Quaderno - ??? AX = 44C1h ??? Return: ??? Note: this function is also supported by XBIOS.COM SeeAlso: AX=44C9hTop
INT 15 - Olivetti Quaderno - ??? AX = 44C2h DL = byte to be written to I/O port 350h Note: this function is also supported by XBIOS.COM SeeAlso: AX=44C3h,AX=44C9hTop
INT 15 - Olivetti Quaderno - GET ??? AX = 44C3h Return: DH = bitfields (see #00465) DL = value read from I/O port 350h Note: this function is also supported by XBIOS.COM SeeAlso: AX=44C2h,AX=44C9h Bitfields for Olivetti Quaderno ???: Bit(s) Description (Table 00465) 5-7 5-7 read from I/O port 351h 2-4 zero 1-0 "tres complique"Top
INT 15 - Olivetti Quaderno - ??? AX = 44C4h and 44C5h ??? Return: ??? Note: this function is also supported by XBIOS.COM SeeAlso: AX=44C9hTop
INT 15 - Olivetti Quaderno - READ LCD AX = 44C6h Return: DX = FFFFh clock is displayed on LCD display DX = other: hex number displayed in first four positions of display BH = left alphanumeric character on display (see #00466) BL = right alphanumeric character on display (see #00466) CL = colon flags (see #00467) Notes: the LCD display has the format HH:HH:AA, where H is a hex digit and A is an alphanumeric character this function is also supported by XBIOS.COM SeeAlso: AX=44C7h,AX=44C9h (Table 00466) Values for Olivetti Quaderno LCD alphanumeric characters: 00h-0Fh hex digit 2Bh "+" 2Dh "-" 30h-39h "0" to "9" 41h-5Ah "A" to "Z" 61h-6Ah "a" to "z" else blank Bitfields for Olivetti Quaderno LCD colon flags: Bit(s) Description (Table 00467) 0 left colon on 1 right colon on 2-7 unusedTop
INT 15 - Olivetti Quaderno - WRITE LCD AX = 44C7h DX = hex display FFFFh display clock and "HI", "Md", or "Lo" BH,BL,CL unused other: display specified hex number in first four positions BH = left alphanumeric character on display (see #00466) BL = right alphanumeric character on display (see #00466) CL = colon flags (see #00467) Return: nothing Note: this function is also supported by XBIOS.COM SeeAlso: AX=44C6hTop
INT 15 - Olivetti Quaderno - ??? AX = 44C8h CL = ??? (00h,02h,21h) CH = ??? ??? Return: ??? Note: this function is also supported by XBIOS.COM SeeAlso: AX=44C9hTop
INT 15 - Olivetti Quaderno - GET XBIOS VERSION AX = 44C9h Return: AL = major version AH = minor version Note: this function is also supported by XBIOS.COMTop
INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK AX = 44F1h DS:DX -> byte with 00h ??? Return: ??? Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish between USER and SUPERVISOR security level SeeAlso: AX=44F2h,AX=44F3hTop
INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK AX = 44F2h BX = 0604h ??? Return: CF = ??? AH = ??? DX = ??? Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish between USER and SUPERVISOR security level SeeAlso: AX=44F1h,AX=44F3hTop
INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK AX = 44F3h DS:DX -> byte with 00h or 01h ??? Return: DS:DX -> changed ??? Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish between USER and SUPERVISOR security level SeeAlso: AX=44F1h,AX=44F2hTop
INT 15 U - HP 100LX/200LX - SET DISPLAY CONTROL STATUS AH = 45h AL = new display control status bit 0: DISPCTL flag +C instead of -C bit 1: DISPCTL flag +K instead of -K SeeAlso: AH=46h"HP",AH=47h"HP"Top
INT 15 U - HP 100LX/200LX - SET POWER OFF TIMEOUT AH = 46h BX = timeout value in ticks 0000h inhibit auto power off Note: the 200LX default timeout is 0CCDh = 3277 ticks = approx. 3 min. SeeAlso: AH=45h"HP",AH=47h"HP"Top
INT 15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION AX = 4600h Return: AH = modem configuration information (see #00468) AL = power conservation status information (see #00469) BH = default system inactivity timeout (1-21 minutes) BL = current system inactivity timeout (1-21 minutes) CH = default video display inactivity timeout (1-63 minutes) CL = current video display inactivity timeout (1-63 minutes) DH = default fixed disk drive inactivity timeout (1-21 minutes) DL = current fixed disk drive inactivity timeout (1-21 minutes) SeeAlso: AX=4280h,AX=4601h,INT 77 Bitfields for Compaq SLT/286 modem configuration information: Bit(s) Description (Table 00468) 0 powerup state (0 off, 1 on) 1 modem installed 2 IRQ line assignment (0 IRQ 4, 1 IRQ 3) 3 COM port assignment (0 = COM 2, 1 = COM 1) 4 modem state (0 not assigned, 1 assigned) 5 modem is on Bitfields for Compaq SLT/286 power conservation status: Bit(s) Description (Table 00469) 0 power source (0 internal, 1 external) 1-2 low battery state 00 no low battery condition 01 low battery 1 10 reserved 11 low battery 2 3-4 power conservation mode 00 automatic, 01 on, 10 off, 11 reservedTop
INT 15 - Compaq SLT/286 - MODIFY POWER CONSERVATION/MODEM CONFIGURATION AX = 4601h BL = system inactivity timeout (1-21 minutes) FFh do not change CL = video display inactivity timeout (1-63 minutes) FFh do not change DL = current fixed disk drive inactivity timeout (1-21 minutes) FFh do not change DH = new modem state (00h turn off, 01h turn on, FFh don't change) Return: CF clear if successful AH = 00h BL = current system inactivity timeout (1-21 minutes) CL = current video display inactivity timeout (1-63 minutes) DL = current fixed disk drive inactivity timeout (1-21 minutes) DH = modem state (FFh unchanged, 00h turned off, 01h turned on) CF set on error AH = error code 01h input is out of range 02h no modem present SeeAlso: AX=4600h,INT 77Top
INT 15 - Compaq Contura 486 and "Alladin" 1993/08/05 ROMs - GET ??? AX = 4604h Return: CF clear if successful AL = byte read from I/O port 03F8h CF set on error (not supported) AH = 86h (unsupported function) Note: also supported by 1993/7/26 LTE Lite 386 ROMTop
INT 15 - Compaq Contura 486 and "Alladin" 1993/08/05 ROMs - ??? AX = 4605h Return: CF clear if successful CF set on error (not supported) AH = 86h (unsupported function) Note: this function is a NOP (other than clearing CF) in the 1993/08/05 version of the Contura 486/486c/486cx and "Aladdin" ROM, and the 1993/7/26 LTE Lite 386 ROMTop
INT 15 U - HP 100LX/200LX - GET/SET DISPLAY CONTRAST AH = 47h AL = subfunction 00h set contrast BL = new contrast (00h-0Fh, 0Fh is darkest, 10h-FFh are same as 0Fh) other get current contrast Return: AL = contrast (00h-0Fh, 0Fh is darkest) Note: may be for backward compatibility with HP95LX, as INT 15/AH=62h does substantially the same thing as this function SeeAlso: AH=45h"HP",AH=48h"HP",AH=62h"HP"Top
INT 15 U - HP 100LX/200LX - SET BUZZER VOLUME AH = 48h AL = volume (00h-03h; 03h is loudest, 04h-FFh are same as 03h) SeeAlso: AH=47h"HP"Top
INT 15 U - HP 100LX/200LX - SERIAL INTERFACE SELECT AH = 49h AL = serial interface 00h wired (COM1) 01h infrared Note: interface should only be changed in deactivated state (see AH=4Ah) SeeAlso: AH=4Ah"HP"Top
INT 15 - Far East MS-DOS - GET BIOS TYPE AX = 4900h Return: CF clear if successful AH = 00h BL = BIOS mode 00h DOS/V 01h standard DBCS DOS (hardware DBCS support) CF set on error AH = 86h (function not supported) Note: in practice, DOS/J returns AH=86h; AX DOS does not support this call SeeAlso: AH=50h,INT 21/AH=30hTop
INT 15 U - HP 100LX/200LX - SERIAL INTERFACE CONTROL AH = 4Ah AL = control 00h deactivate 01h activate Note: interface selected with AH=49h will be (de)activated SeeAlso: AH=49h"HP",AH=4Bh"HP"Top
INT 15 U - HP 100LX/200LX - ADJUST SYSTEM TIME AH = 4Bh Desc: adjust system time based on real-time clock SeeAlso: AH=4Ah"HP",INT 1A/AH=02h,INT 21/AH=2ChTop
INT 15 - HP 95LX/100LX/200LX - INSTALLATION CHECK
AX = 4DD4h
Return: BX = 4850h ("HP") if HP 95LX/100LX/200LX
CX = model
0101h HP 95LX
0102h HP 100LX/200LX
DH = ???
02h HP 200LX 2MB BIOS 1.01 A D german
DL = ???
00h HP 95LX
01h HP 200LX 2MB BIOS 1.01 A D german
SeeAlso: INT 0B"HP 95LX",INT 0F"HP 95LX",INT 5F/AH=00h,INT 60/DI=0100h
SeeAlso: INT 61"HP 95LX"
Top
INT 15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP AH = 4Eh AL = light sleep 00h disabled 01h enabled Note: when light sleep is disabled, the system will continue running at full speed; when enabled, it may automatically slow to conserve batteries SeeAlso: INT 06"HP 95LX",INT 60/DI=0100hTop
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = 4Eh SeeAlso: AH=07h"IBM",AH=3Eh"IBM"Top
INT 15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS) AH = 4Fh AL = hardware scan code (see #00006) CF set Return: CF set to continue processing scan code AL = possibly-altered hardware scan code (see #00006) CF clear scan code should be ignored Notes: called by INT 09 handler to translate scan codes; the INT 09 code does not examine the scan code it reads from the keyboard until after this function returns. This permits software to rearrange the keyboard; for example, swapping the CapsLock and Control keys, or turning the right Shift key into Enter. DOS 6 KEYB.COM will not pass through this function if Ctrl-Alt-Del is pressed and a SmartDrive v4-compatible cache is installed which has dirty cache buffers; some other disk caches such as HyperDisk operate similarly in order to prevent loss of cached data which has not yet been written to disk IBM classifies this function as required SeeAlso: INT 09,INT 15/AH=C0hTop
INT 15 - DOS/V - FONT SUBSYSTEM ACCESS AH = 50h AL = which function address to retrieve 00h "read font" function 01h "write font" function BL = 00h BH = character size (00h single-byte, 01h double-byte) DH = width of character cell DL = height of character cell BP = code page (see #00470) Return: CF clear if successful AH = 00h ES:BX -> requested function's address CF set on error AH = error code (see #00471) SeeAlso: AH=49h (Table 00470) Values for DOS/V code page: 0 default 437 US English 932 Japanese 934 Korea 936 China 938 Taiwan SeeAlso: #01757 (Table 00471) Values for DOS/V error code: 01h invalid font type in BH 02h BL not zero 03h invalid font size 04h invalid code page 80h unsupported function (PC) 86h unsupported function (XT) SeeAlso: #01680Top
INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE AH = 50h BX = segment of page directory table CX = page number of page table SeeAlso: AH=10h"VMiX",AH=51h"VMiX",AH=52h"VMiX"Top
INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE AH = 51h STACK: DWORD selector:offset of function Return: registers as returned by function Note: executes function with privilege level 0 (highest privilege) SeeAlso: AH=10h"VMiX",AH=52h"VMiX"Top
INT 15 - SYSTEM - later PS/2s - EXPANSION UNIT, RETURN CONFIGURATION NUMBER AX = 5101h Return: CF set if successful AH = 00h AL = current configuration number 00h system unit only FFh configuration not recognized BX = status flag bits 0-14: reserved bit 15: additional data is available (location TBD) CF clear on error AH = status 01h expansion unit is not present 86h function not supported Note: CF convention is the reverse of the standard convention for this interrupt. (Perhaps a typo in the IBM BIOS Tech Ref?)Top
INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT AH = 52h SeeAlso: AH=50h"VMiX",AH=51h"VMiX"Top
INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT AH = 52h DL = drive number Return: CF clear if OK to eject media AH = 00h CF set if ejection disallowed AH = error code (B1h,B3h) (see #00234) Note: called by the IBM/MS INT 13 Extensions driver/BIOS when an ejection request is made SeeAlso: INT 13/AH=46h"INT 13 Extensions"Top
INT 15 - Advanced Power Management v1.0+ - INSTALLATION CHECK
AX = 5300h
BX = device ID of system BIOS (0000h)
Return: CF clear if successful
AH = major version (BCD)
AL = minor version (BCD)
BX = 504Dh ("PM")
CX = flags (see #00472)
CF set on error
AH = error code (06h,09h,86h) (see #00473)
BUG: early versions of the Award Modular BIOS with built-in APM support
reportedly do not set BX on return
Bitfields for APM flags:
Bit(s) Description (Table 00472)
0 16-bit protected mode interface supported
1 32-bit protected mode interface supported
2 CPU idle call reduces processor speed
3 BIOS power management disabled
4 BIOS power management disengaged (APM v1.1)
5-7 reserved
(Table 00473)
Values for APM error code:
01h power management functionality disabled
02h interface connection already in effect
03h interface not connected
04h real-mode interface not connected
05h 16-bit protected-mode interface already connected
06h 16-bit protected-mode interface not supported
07h 32-bit protected-mode interface already connected
08h 32-bit protected-mode interface not supported
09h unrecognized device ID
0Ah invalid parameter value in CX
0Bh (APM v1.1) interface not engaged
0Ch (APM v1.2) function not supported
0Dh (APM v1.2) Resume Timer disabled
0Eh-1Fh reserved for other interface and general errors
20h-3Fh reserved for CPU errors
40h-5Fh reserved for device errors
60h can't enter requested state
61h-7Fh reserved for other system errors
80h no power management events pending
81h-85h reserved for other power management event errors
86h APM not present
87h-9Fh reserved for other power management event errors
A0h-FEh reserved
FFh undefined
Top
INT 15 - Advanced Power Management v1.0+ - CONNECT REAL-MODE INTERFACE AX = 5301h BX = device ID of system BIOS (0000h) Return: CF clear if successful CF set on error AH = error code (02h,05h,07h,09h) (see #00473) Note: on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0 compatibility mode until it is informed that the user supports a newer version of APM (see AX=530Eh) SeeAlso: AX=5302h,AX=5303h,AX=5304hTop
INT 15 R - Advanced Power Management v1.0+ - CONNECT 16-BIT PROTMODE INTERFACE AX = 5302h BX = device ID of system BIOS (0000h) Return: CF clear if successful AX = real-mode segment base address of protected-mode 16-bit code segment BX = offset of entry point CX = real-mode segment base address of protected-mode 16-bit data segment ---APM v1.1--- SI = APM BIOS code segment length DI = APM BIOS data segment length CF set on error AH = error code (02h,05h,06h,07h,09h) (see #00473) Notes: the caller must initialize two consecutive descriptors with the returned segment base addresses; these descriptors must be valid whenever the protected-mode interface is called, and will have their limits arbitrarily set to 64K. the protected mode interface is invoked by making a far call with the same register values as for INT 15; it must be invoked while CPL=0, the code segment descriptor must have a DPL of 0, the stack must be in a 16-bit segment and have enough room for BIOS use and possible interrupts, and the current I/O permission bit map must allow access to the I/O ports used for power management. functions 00h-03h are not available from protected mode on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0 compatibility mode until it is informed that the user supports a newer version of APM (see AX=530Eh) SeeAlso: AX=5301h,AX=5303h,AX=5304hTop
INT 15 - Advanced Power Management v1.0+ - CONNECT 32-BIT PROTMODE INTERFACE AX = 5303h BX = device ID of system BIOS (0000h) Return: CF clear if successful AX = real-mode segment base address of protected-mode 32-bit code segment EBX = offset of entry point CX = real-mode segment base address of protected-mode 16-bit code segment DX = real-mode segment base address of protected-mode 16-bit data segment ---APM v1.1--- SI = APM BIOS code segment length DI = APM BIOS data segment length CF set on error AH = error code (02h,05h,07h,08h,09h) (see #00473) Notes: the caller must initialize three consecutive descriptors with the returned segment base addresses for 32-bit code, 16-bit code, and 16-bit data, respectively; these descriptors must be valid whenever the protected-mode interface is called, and will have their limits arbitrarily set to 64K. the protected mode interface is invoked by making a far call to the 32-bit code segment with the same register values as for INT 15; it must be invoked while CPL=0, the code segment descriptor must have a DPL of 0, the stack must be in a 32-bit segment and have enough room for BIOS use and possible interrupts, and the current I/O permission bit map must allow access to the I/O ports used for power management. functions 00h-03h are not available from protected mode on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0 compatibility mode until it is informed that the user supports a newer version of APM (see AX=530Eh) SeeAlso: AX=5301h,AX=5302h,AX=5304hTop
INT 15 - Advanced Power Management v1.0+ - DISCONNECT INTERFACE AX = 5304h BX = device ID of system BIOS (0000h) Return: CF clear if successful CF set on error AH = error code (03h,09h) (see #00473) SeeAlso: AX=5301h,AX=5302h,AX=5303hTop
INT 15 - Advanced Power Management v1.0+ - CPU IDLE AX = 5305h Return: CF clear if successful (after system leaves idle state) CF set on error AH = error code (03h,0Bh) (see #00473) Notes: call when the system is idle and should be suspended until the next system event or interrupt should not be called from within a hardware interrupt handler to avoid reentrance problems if an interrupt causes the system to resume normal processing, the interrupt may or may not have been handled when the BIOS returns from this call; thus, the caller should allow interrupts on return interrupt handlers may not retain control if the BIOS allows interrupts while in idle mode even if they are able to determine that they were called from idle mode the caller should issue this call continuously in a loop until it needs to perform some processing of its own SeeAlso: AX=1000h,AX=5306h,INT 2F/AX=1680hTop
INT 15 - Advanced Power Management v1.0+ - CPU BUSY AX = 5306h Return: CF clear if successful CF set on error AH = error code (03h,0Bh) (see #00473) Notes: called to ensure that the system runs at full speed even on systems where the BIOS is unable to recognize increased activity (especially if interrupts are hooked by other programs and not chained to the BIOS) this call may be made even when the system is already running at full speed, but it will create unnecessary overhead should not be called from within a hardware interrupt handler to avoid reentrance problems SeeAlso: AX=5305hTop
INT 15 - Advanced Power Management v1.0+ - SET POWER STATE AX = 5307h BX = device ID (see #00474) CX = system state ID (see #00475) Return: CF clear if successful CF set on error AH = error code (01h,03h,09h,0Ah,0Bh,60h) (see #00473) Note: should not be called from within a hardware interrupt handler to avoid reentrance problems SeeAlso: AX=530Ch (Table 00474) Values for APM device IDs: 0000h system BIOS 0001h all devices for which the system BIOS manages power 01xxh display (01FFh for all attached display devices) 02xxh secondary storage (02FFh for all attached secondary storage devices) 03xxh parallel ports (03FFh for all attached parallel ports) 04xxh serial ports (04FFh for all attached serial ports) ---APM v1.1+ --- 05xxh network adapters (05FFh for all attached network adapters) 06xxh PCMCIA sockets (06FFh for all) 0700h-7FFFh reserved 80xxh system battery devices (APM v1.2) 8100h-DFFFh reserved Exxxh OEM-defined power device IDs F000h-FFFFh reserved (Table 00475) Values for system state ID: 0000h ready (not supported for device ID 0001h) 0001h stand-by 0002h suspend 0003h off (not supported for device ID 0001h in APM v1.0) ---APM v1.1--- 0004h last request processing notification (only for device ID 0001h) 0005h last request rejected (only for device ID 0001h) 0006h-001Fh reserved system states 0020h-003Fh OEM-defined system states 0040h-007Fh OEM-defined device states 0080h-FFFFh reserved device statesTop
INT 15 - Advanced Power Management v1.0+ - SYSTEM STAND-BY AX = 5307h CX = 0001h BX = 0001h (device ID for all power-managed devices) Return: CF clear Notes: puts the entire system into stand-by mode; normally called in response to a System Stand-by Request notification after any necessary processing, but may also be invoked at the caller's discretion should not be called from within a hardware interrupt handler to avoid reentrance problems the stand-by state is typically exited on an interrupt SeeAlso: AX=4280h,AX=5307h/CX=0002h"SUSPEND",AX=5307h/CX=0003h,AX=530BhTop
INT 15 - Advanced Power Management v1.0+ - SUSPEND SYSTEM AX = 5307h CX = 0002h BX = 0001h (device ID for all power-managed devices) Return: after system is resumed CF clear Notes: puts the entire system into a low-power suspended state; normally called in response to a Suspend System Request notification after any necessary processing, but may also be invoked at the caller's discretion should not be called from within a hardware interrupt handler to avoid reentrance problems the caller may need to update its date and time values because the system could have been suspended for a long period of time SeeAlso: AX=5307h/CX=0001h"STAND-BY",AX=530BhTop
INT 15 - Advanced Power Management v1.2 - TURN OFF SYSTEM AX = 5307h CX = 0003h BX = 0001h (device ID for all power-managed devices) Return: after system is resumed CF clear Notes: if supported by the system's power supply, turns off the system power SeeAlso: AX=5307h/CX=0001h"STAND-BY",AX=530BhTop
INT 15 - Advanced Power Management v1.0+ - ENABLE/DISABLE POWER MANAGEMENT AX = 5308h BX = device ID for all devices power-managed by APM 0001h (APM v1.1+) FFFFh (APM v1.0) CX = new state 0000h disabled 0001h enabled Return: CF clear if successful CF set on error AH = error code (01h,03h,09h,0Ah,0Bh) (see #00473) Notes: when power management is disabled, the system BIOS will not automatically power down devices, enter stand-by or suspended mode, or perform any power-saving actions in response to AX=5305h calls should not be called from within a hardware interrupt handler to avoid reentrance problems the APM BIOS should never be both disabled and disengaged at the same time SeeAlso: AX=5309h,AX=530Dh,AX=530FhTop
INT 15 - Advanced Power Management v1.0+ - RESTORE POWER-ON DEFAULTS AX = 5309h BX = device ID for all devices power-managed by APM 0001h (APM v1.1) FFFFh (APM v1.0) Return: CF clear if successful CF set on error AH = error code (03h,09h,0Bh) (see #00473) Note: should not be called from within a hardware interrupt handler to avoid reentrance problems SeeAlso: AX=5308hTop
INT 15 - Advanced Power Management v1.0+ - GET POWER STATUS AX = 530Ah BX = device ID 0001h all devices power-managed by APM 80xxh specific battery unit number XXh (01h-FFh) (APM v1.2) Return: CF clear if successful BH = AC line status 00h off-line 01h on-line 02h on backup power (APM v1.1) FFh unknown other reserved BL = battery status (see #00476) CH = battery flag (APM v1.1+) (see #00477) CL = remaining battery life, percentage 00h-64h (0-100) percentage of full charge FFh unknown DX = remaining battery life, time (APM v1.1) (see #00478) ---if specific battery unit specified--- SI = number of battery units currently installed CF set on error AH = error code (09h,0Ah) (see #00473) Notes: should not be called from within a hardware interrupt handler to avoid reentrance problems supported in real mode (INT 15) and both 16-bit and 32-bit protected mode (Table 00476) Values for APM v1.0+ battery status: 00h high 01h low 02h critical 03h charging FFh unknown other reserved SeeAlso: #00477,#00478 Bitfields for APM v1.1+ battery flag: Bit(s) Description (Table 00477) 0 high 1 low 2 critical 3 charging 4 selected battery not present (APM v1.2) 5-6 reserved (0) 7 no system battery Note: all bits set (FFh) if unknown SeeAlso: #00476,#00478 Bitfields for APM v1.1+ remaining battery life: Bit(s) Description (Table 00478) 15 time units: 0=seconds, 1=minutes 14-0 battery life in minutes or seconds Note: all bits set (FFFFh) if unknown SeeAlso: #00476,#00477Top
INT 15 - Advanced Power Management v1.0+ - GET POWER MANAGEMENT EVENT AX = 530Bh Return: CF clear if successful BX = event code (see #00479) CX = event information (APM v1.2) if BX=0003h or BX=0004h bit 0: PCMCIA socket was powered down in suspend state CF set on error AH = error code (03h,0Bh,80h) (see #00473) Notes: although power management events are often asynchronous, notification will not be made until polled via this call to permit software to only receive event notification when it is prepared to process power management events; since these events are not very time- critical, it should be sufficient to poll once or twice per second the critical resume notification is made after the system resumes from an emergency suspension; normally, the system BIOS only notifies its partner that it wishes to suspend and relies on the partner to actually request the suspension, but no notification is made on an emergency suspension should not be called from within a hardware interrupt handler to avoid reentrance problems SeeAlso: AX=5307h,AX=5307h/CX=0001h"STAND-BY",AX=5307h/CX=0002h"SUSPEND" (Table 00479) Values for APM event code: 0001h system stand-by request 0002h system suspend request 0003h normal resume system notification 0004h critical resume system notification 0005h battery low notification ---APM v1.1--- 0006h power status change notification 0007h update time notification 0008h critical system suspend notification 0009h user system standby request notification 000Ah user system suspend request notification 000Bh system standby resume notification ---APM v1.2--- 000Ch capabilities change notification (see AX=5310h) ------ 000Dh-00FFh reserved system events 01xxh reserved device events 02xxh OEM-defined APM events 0300h-FFFFh reservedTop
INT 15 - Advanced Power Management v1.1+ - GET POWER STATE AX = 530Ch BX = device ID (see #00474) Return: CF clear if successful CX = system state ID (see #00475) CF set on error AH = error code (01h,09h) (see #00473) SeeAlso: AX=5307hTop
INT 15 - Advanced Power Management v1.1+ - EN/DISABLE DEVICE POWER MANAGEMENT AX = 530Dh BX = device ID (see #00474) CX = function 0000h disable power management 0001h enable power management Return: CF clear if successful CF set on error AH = error code (01h,03h,09h,0Ah,0Bh) (see #00473) Desc: specify whether automatic power management should be active for a given device SeeAlso: AX=5308h,AX=530FhTop
INT 15 - Advanced Power Management v1.1+ - DRIVER VERSION AX = 530Eh BX = device ID of system BIOS (0000h) CH = APM driver major version (BCD) CL = APM driver minor version (BCD) (02h for APM v1.2) Return: CF clear if successful AH = APM connection major version (BCD) AL = APM connection minor version (BCD) CF set on error AH = error code (03h,09h,0Bh) (see #00473) SeeAlso: AX=5300h,AX=5303hTop
INT 15 - Advanced Power Management v1.1+ - ENGAGE/DISENGAGE POWER MANAGEMENT AX = 530Fh BX = device ID (see #00474) CX = function 0000h disengage power management 0001h engage power management Return: CF clear if successful CF set on error AH = error code (01h,09h) (see #00473) Notes: unlike AX=5308h, this call does not affect the functioning of the APM BIOS when cooperative power management is disengaged, the APM BIOS performs automatic power management of the system or device SeeAlso: AX=5308h,AX=530DhTop
INT 15 - Advanced Power Management v1.2 - GET CAPABILITIES AX = 5310h BX = device ID (see #00474) 0000h (APM BIOS) other reserved Return: CF clear if successful BL = number of battery units supported (00h if no system batteries) CX = capabilities flags (see #00480) CF set on error AH = error code (01h,09h,86h) (see #00473) Notes: this function is supported via the INT 15, 16-bit protected mode, and 32-bit protected mode interfaces; it does not require that a connection be established prior to use this function will return the capabilities currently in effect, not any new settings which have been made but do not take effect until a system restart SeeAlso: AX=5300h,AX=530Fh,AX=5311h,AX=5312h,AX=5313h Bitfields for APM v1.2 capabilities flags: Bit(s) Description (Table 00480) 15-8 reserved 7 PCMCIA Ring Indicator will wake up system from suspend mode 6 PCMCIA Ring Indicator will wake up system from standby mode 5 Resume on Ring Indicator will wake up system from suspend mode 4 Resume on Ring Indicator will wake up system from standby mode 3 resume timer will wake up system from suspend mode 2 resume timer will wake up system from standby mode 1 can enter global suspend state 0 can enter global standby stateTop
INT 15 - Advanced Power Management v1.2 - GET/SET/DISABLE RESUME TIMER AX = 5311h BX = device ID (see #00474) 0000h (APM BIOS) other reserved CL = function 00h disable Resume Timer 01h get Resume Timer 02h set Resume Timer CH = resume time, seconds (BCD) DL = resume time, minutes (BCD) DH = resume time, hours (BCD) SI = resume date (BCD), high byte = month, low byte = day DI = resume date, year (BCD) Return: CF clear if successful ---if getting timer--- CH = resume time, seconds (BCD) DL = resume time, minutes (BCD) DH = resume time, hours (BCD) SI = resume date (BCD), high byte = month, low byte = day DI = resume date, year (BCD) CF set on error AH = error code (03h,09h,0Ah,0Bh,0Ch,0Dh,86h) (see #00473) Notes: this function is supported via the INT 15, 16-bit protected mode, and 32-bit protected mode interfaces SeeAlso: AX=5300h,AX=5310h,AX=5312h,AX=5313hTop
INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE RESUME ON RING AX = 5312h BX = device ID (see #00474) 0000h (APM BIOS) other reserved CL = function 00h disable Resume on Ring Indicator 01h enable Resume on Ring Indicator 02h get Resume on Ring Indicator status Return: CF clear if successful CX = resume status (0000h disabled, 0001h enabled) CF set on error AH = error code (03h,09h,0Ah,0Bh,0Ch,86h) (see #00473) Notes: this function is supported via the INT 15, 16-bit protected mode, and 32-bit protected mode interfaces SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5313hTop
INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE TIMER-BASED REQUESTS AX = 5313h BX = device ID (see #00474) 0000h (APM BIOS) other reserved CL = function 00h disable timer-based requests 01h enable timer-based requests 02h get timer-based requests status Return: CF clear if successful CX = timer-based requests status (0000h disabled, 0001h enabled) CF set on error AH = error code (03h,09h,0Ah,0Bh,86h) (see #00473) Notes: this function is supported via the INT 15, 16-bit protected mode, and 32-bit protected mode interfaces some BIOSes set AH on return even when successful SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5312hTop
INT 15 - APM SL Enhanced v1.0 - GET SUSPEND/GLOBAL STANDBY MODE AX = 5380h BH = 00h Return: CF clear if successful AL = 82360SL Auto Power Off Timer High Count (APWR_TMRH) BL = sustdbymode (see #00481) SeeAlso: AX=5380h/BH=01h,AX=5380h/BH=02h,AX=5380h/BH=7Fh Bitfields for APM SL sustdbymode: Bit(s) Description (Table 00481) 2 ??? 1 Auto Power Off Timer Enable (APWR_TMR_EN) 0 ???Top
INT 15 - APM SL Enhanced v1.0 - SET SUSPEND/GLOBAL STANDBY MODE AX = 5380h BH = 01h BL = sustdbymode (see #00481) Return: CF clear if successful SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - GET GLOBAL STANDBY TIMER AX = 5380h BH = 02h Return: CF clear if successful SI:DI = timer count in seconds (actually 1.024 seconds) Desc: reads the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=03h,AX=5380h/BH=04h,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - SET GLOBAL STANDBY TIMER AX = 5380h BH = 03h SI:DI = timer count in seconds (actually 1.024 seconds) Return: CF clear if successful Desc: sets the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers Note: the maximum timer count is 268431 seconds SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - GET AUTO POWER OFF TIMER AX = 5380h BH = 04h Return: CF clear if successful SI:DI = timer count in seconds (actually 1.024 seconds) Desc: reads the value of 82360SL APWR_TMRH & APWR_TMRL registers SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=05h,AX=5380h/BH=06h,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - SET AUTO POWER OFF TIMER AX = 5380h BH = 05h SI:DI = timer count in seconds (actually 1.024 seconds) Return: CF clear if successful Desc: sets the value of 82360SL APWR_TMRH & APWR_TMRL registers Note: the maximum timer count is 134213 seconds SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - GET RESUME CONDITION AX = 5380h BH = 06h Return: CF clear if successful BL = resume condition (see #00482) Desc: reads the value of 82360SL RESUME_MASK register SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=07h,AX=5380h/BH=08h,AX=5380h/BH=7Fh Bitfields for APM SL resume condition: Bit(s) Description (Table 00482) 7-2 reserved (0) 1 alarm enabled (resume on CMOS alarm) 0 ring enabledTop
INT 15 - APM SL Enhanced v1.0 - SET RESUME CONDITION AX = 5380h BH = 07h BL = resume condition (see #00482) Return: CF clear if successful Desc: sets the value of 82360SL RESUME_MASK register SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT TIME AX = 5380h BH = 08h Return: CF clear if successful CH = hours CL = minutes SI = seconds CF set on error AH = error code (see #00483) Desc: gets calendar event time from CMOS ram SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=09h,AX=5380h/BH=0Ah,AX=5380h/BH=7Fh (Table 00483) Values for APM SL error code: 02h no alarm set 03h no batteryTop
INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT TIME AX = 5380h BH = 09h CH = hours CL = minutes SI = seconds Return: CF clear if successful CF set on error AH = error code (see #00483) Desc: sets calendar event time in CMOS ram, enables Alarm resume SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT DATE AX = 5380h BH = 0Ah Return: CF clear if successful SI = century DI = year CH = month CL = day CF set on error AH = error code (see #00483) Desc: reads calendar event date from Extended CMOS ram SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=0Bh,AX=5380h/BH=0Ch,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT DATE AX = 5380h BH = 0Bh SI = century DI = year CH = month CL = day Return: CF clear if successful CF set on error AH = error code (see #00483) Desc: sets calendar event date in Extended CMOS ram SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - GET CPU SPEED MODE AX = 5380h BH = 0Ch Return: CF clear if successful CL = CPU clock divider (1,2,4 or 8) BL = autocpumode ??? Desc: reads bits 4-5 of CPUPWRMODE register SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=0Dh,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - SET CPU SPEED MODE AX = 5380h BH = 0Dh CL = CPU clock divider (1,2,4 or 8) BL = autocpumode ??? Return: CF clear if successful Desc: writes bits 4-5 of CPUPWRMODE register SeeAlso: AX=5380h/BH=0Ch,AX=5380h/BH=7Eh,AX=5380h/BH=7FhTop
INT 15 - APM SL Enhanced v1.0 - SL HW PARAMETER AX = 5380h BH = 7Eh Return: AL = ??? 03h on A-Step 386SL BIOSes 12h on later steps BX = Control port (00B0h) SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7FhTop
INT 15 - Advanced Power Management v1.1 - OEM APM INSTALLATION CHECK
AX = 5380h
BH = 7Fh
Return: CF clear if successful
BX = OEM identifier
all other registers OEM-defined
---Intel SL Enhanced Option BIOS---
BX = 534Ch ('SL')
CL = 4Fh ('O')
AL = version (10h = 1.0)
---HP APM BIOS---
BX = 4850h ('HP')
CX = version (0001h)
CF set on error
AH = error code (03h) (see #00473)
SeeAlso: AX=5380h/BH=00h
Top
INT 15 - Advanced Power Management v1.1 - OEM APM FUNCTIONS AX = 5380h BH <> 7Fh all other registers OEM-defined Return: OEM-defined SeeAlso: AX=5380h/BH=7FhTop
INT 15 U - Phoenix BIOS 4.0 Rel 6.0 - ??? AX = 5380h BX = 8000h CX = 0020h Return: ??? Note: although a check for the indicated value is present in the examined copy of the BIOS, no code was associated with it (possibly an OEM option not included in that copy) and this function always returns CF set/AH=03h if CX=0020h and CF set/AH=86h for CX<>0020h SeeAlso: AX=5380h/BX=8001hTop
INT 15 U - Phoenix BIOS 4.0 Rel 6.0 - ??? AX = 5380h BX = 8001h CX = 0020h Return: ??? Note: although a check for the indicated value is present in the examined copy of the BIOS, no code was associated with it (possibly an OEM option not included in that copy) SeeAlso: AX=5380h/BX=8000hTop
INT 15 - Intel System Management Bus - RESERVED AX = 53B0h BH = 00h Program: the SMBus is a variant of ACCESS.bus being used by Intel and Duracell for the Smart Battery proposal, but designed to be generic enough to handle other devices besides batteriesTop
INT 15 - Intel System Management Bus - INSTALLATION CHECK
AX = 53B0h
BH = 01h
BL = 72h ('r')
CX = 6164h ('ad')
Return: CF clear if installed
AH = SMBus BIOS Interface Specification major version (01h)
AL = SMBus BIOS Interface Specification minor version (00h)
BL = number of SMBus devices present
CX = 6941h ('iA')
DX = vendor-specified SMBus hardware code
0000h means undefined hardware type
CF set if error
AH = Error code 0Ah, 86h (see #00484)
Note: this function is only supported in INT 15h mode
SeeAlso: AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=06h
SeeAlso: #01105 at INT 1A/AX=B10Ah/SF=8086h
(Table 00484)
Values for Intel System Management Bus error codes:
00h SMBus OK
01h SMBus connect failed
02h SMBus already connected (see also #00485)
03h SMBus disconnect failed
04h SMBus not connected
05h SMBus INT 15 interface disabled
06h SMBus device address request out of range
07h SMBus unknown failure
08h SMBus message list empty
09h SMBus message list overflow
0Ah SMBus invalid signature
10h SMBus device address not acknowledged
11h SMBus device error detected
12h SMBus device command access denied
13h SMBus unknown error
14h SMBus transaction pending
15h SMBus no transaction pending
16h SMBus request does not match pending transaction
17h SMBus device access denied
18h SMBus timeout
19h SMBus protocol not supported
1Ah SMBus busy
1Bh SMBus SMI detected
80h SMBus OK (previously unreported SMI occurred)
86h SMBus not supported
(Table 00485)
Values for Intel System Management Bus Already Connected sub-error codes:
01h real mode connect already established
02h 16-bit PMode connect already established
03h 32-bit PMode connect already established
SeeAlso: #00484
Top
INT 15 - Intel System Management Bus - REAL MODE CONNECT
AX = 53B0h
BH = 02h
CX = 6941h ('iA')
Return: CF clear if successful
AX = SMBus Real mode code segment
BX = offset of entry point into SMBus BIOS Interface
CX = SMBus Real mode data segment
CF set if error
AH = error code (01h,02h,0Ah,86h) (see #00484)
AL = sub-error code if error code is 02h (see #00485)
Desc: connect to SMBus interface; once connected, all SMBus calls are made
to the supplied entry point instead of INT 15 (with registers
identical to those described here for INT 15)
Notes: Support for this function is optional
this function is only supported in INT 15 mode when implemented
SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
Top
INT 15 - Intel System Management Bus - 16-BIT PROTECTED-MODE CONNECT
AX = 53B0h
BH = 03h
CX = 6941h ('iA')
Return: CF clear if successful
AX = SMBus 16-bit code segment (real mode base address)
BX = offset of entry point into SMBus BIOS Interface
CX = SMBus 16-bit data segment (real mode base address)
SI = code segment length in bytes
DI = data segment length in bytes
CF set if error
AH = error code (01h,02h,0Ah,86h) (see #00484)
AL = sub-error code if error code is 02h (see #00485)
Desc: connect to SMBus interface; once connected, all SMBus calls are made
to the supplied entry point instead of INT 15 (with registers
identical to those described here for INT 15)
Notes: before calling the entry point, two descriptors must be initialized
in the GDT or LDT. They must be consecutive and be in the order of
code, then data. At the time of the call, the descriptors must be
valid and have CPL=0.
the code descriptor must be ring-0 privilege
this function is only supported in INT 15 mode
SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
Top
INT 15 - Intel System Management Bus - 32-BIT PROTECTED-MODE CONNECT
AX = 53B0h
BH = 04h
CX = 6941h ('iA')
Return: CF clear if successful
AX = SMBus 32-bit code segment (real mode base address)
EBX = offset of entry point into SMBus BIOS Interface
CX = SMBus 16-bit code segment (real mode base address)
DX = SMBus data segment (real mode base address)
SI = code segment length in bytes
DI = data segment length in bytes
CF set if error
AH = error code (01h,02h,0Ah,86h) (see #00484)
AL = sub-error code if error code is 02h (see #00485)
Desc: connect to SMBus interface; once connected, all SMBus calls are made
to the supplied entry point instead of INT 15 (with registers
identical to those described here for INT 15)
Notes: before calling the entry point, two descriptors must be initialized in
the GDT or LDT. They must be consecutive and be in the order of
32-bit code, 16-bit code, then data. At the time of the call, the
descriptors must be valid and have CPL=0.
the code descriptors must be ring-0 privilege
this function is supported only in INT 15 mode
SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=05h
Top
INT 15 - Intel System Management Bus - DISCONNECT
AX = 53B0h
BH = 05h
CX = 6941h ('iA')
Return: CF clear if successful
AH = 00h (SMBus OK)
CF set if error
AH = error code (03h,04h,05h,0Ah,86h) (see #00484)
Note: this function is supported in connected mode (far CALL entry point)
only
SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h
Top
INT 15 - Intel System Management Bus - GET DEVICE ADDRESSES
AX = 53B0h
BH = 06h
BL = position in list to report
CH = 6941h ('iA')
Return: CF clear if successful
AH = 00h (SMBus OK)
BH = number of SMBus devices
BL = SMBus Device Address of device at position BL in list
(see #00486)
CF set if error
AH = error code (06h,0Ah,86h) (see #00484)
Desc: retrieves already assigned SMBus device addresses
Notes: this function is supported in INT 15h mode only
bit 0 of the device address indicates read/write, so a device may
be listed at both xxxxxxx0b and xxxxxxx1b
SeeAlso: I2C A0h [and I2C.LST in general]
(Table 00486)
Values for System Management Bus predefined device addresses:
10h SMBus host
12h Smart Battery charger
14h Smart Battery selector
16h Smart Battery
18h SMBus Alert response
50h ACCESS.bus host
58h LCD contrast controller
5Ah CCFL backlight driver
6Eh ACCESS.bus default address
80h-86h PCMCIA socket controllers
88h VGA graphics controller
90h-96h unrestricted addresses
82h SMBus device default address
Top
INT 15 - Intel System Management Bus - RETRIEVE CRITICAL MESSAGES
AX = 53B0h
BH = 07h
CX = 6941h ('iA')
Return: CF clear if successful
AH = 00h (SMBus OK)
AL = device address
BX = device message
CF set if error
AH = error code (05h,07h,08h,09h,0Ah,86h) (see #00484)
Desc: retrieves oldest queued critical message from an SMBus device to the
host
Notes: up to five messages are queued; if the queue is full, messages will be
lost and error 09h returned
Top
INT 15 - Intel System Management Bus - RESERVED AX = 53B0h BH = 08h-0FhTop
INT 15 - Intel System Management Bus - REQUEST AX = 53B0h BH = 10h BL = protocol (see #00487) CH = device address CL = device command (see #00488) DH = MSB Data or block length (for BlockWrite) DL = LSB Data or first byte of block (for BlockWrite) Return: CF clear if successful AH = 00h or 80h (SMBus OK) (80h indicates a previously unreported SMI took place) CF set if error AH = error code (05h,10h,11h,12h,13h,14h,17h,19h,1Ah,86h) (see #00484) Desc: request access to a device on the SMBus SeeAlso: AX=53B0h/BH=11h, AX=53B0h/BH=13h (Table 00487) Values for Intel System Management Bus protocol codes: 00h Quick Command 01h Send Byte 02h Receive Byte 03h Write Byte 04h Read Byte 05h Write Word 06h Read Word 07h Block Write 08h Block Read 09h Process Call 0Ah-FFh reserved SeeAlso: #00488 (Table 00488) Values for Intel System Management Bus Smart Battery command codes: Cmd Protocol(s) Description 00h Rd/Wr Word "ManufacturerAccess" implementation-specific 01h Rd/Wr Word get/set Low Capacity Alarm threshold 02h Rd/Wr Word get/set Remaining Time Alarm value (in minutes) 03h Rd/Wr Word get/set battery characteristics (see #00489) 04h Rd/Wr Word "AtRate" indicate charge/discharge rate 05h Read Word "AtRateTimeToFull" time to completely charge (in min.) 06h Read Word "AtRateTimeToEmpty" time to entirely discharge (min.) 07h Read Word "AtRateOK" boolean: can battery supply another 10sec? 08h Read Word internal battery temperature (in 0.1 Kelvins) 09h Read Word current battery voltage in millivolts 0Ah Read Word current flowing through battery in milliamperes (positive if charging, negative if discharging) 0Bh Read Word average current over the past minute 0Ch Read Word expected error margin in capacity computations in % 0Dh Read Word predicted remaining charge as % of full charge 0Eh Read Word predicted remaining charge as % of design capacity 0Fh Read Word predicted remaining charge in mAh or 10mWh 10h Read Word predicted full charge capacity in mAh or 10mWh 11h Read Word predicted remaining battery life in minutes FFFFh = not discharging 12h Read Word rolling average of predicted life over past minute 13h Read Word rolling average of predicted charge time over past min. FFFFh = not charging 14h Read Word get battery's desired charging current in mA 14h Write Word set charging current in mA 15h Read Word get battery's desired charging current in mV 15h Write Word set desired charging voltage in mV 16h Read Word get current battery status (see #00490) 17h Read Word get number of charge/discharge cycles for battery 18h Read Word get design capacity in mAh or 10mWh 19h Read Word get design voltage 1Ah Read Word get specification information (see #00491) 1Bh Read Word get manufacture date (see #01665 at INT 21/AX=5700h) 1Ch Read Word get serial number 1Dh-1Fh reserved 20h Read Block get manufacturer's name 21h Read Block get device name 22h Read Block get device chemistry (see #00492) 23h Read Block get manufacturer data 24h-2Eh reserved 2Fh manufacturer-specific 30h-3Bh reserved 3Ch-3Fh manufacturer-specific Note: bits 7-6 are reserved for addressing multiple batteries in a future version of the specification SeeAlso: #00487 Bitfields for Smart Battery battery characteristics: Bit(s) Description (Table 00489) 0 battery has internal charge controller (read-only) 1 primary/secondary battery support (read-only) 6-2 reserved 7 conditioning cycle requested 8 internal charge controller enabled 9 battery operating in primary mode 13-10 reserved 14 disable broadcast to charger 15 report capacity in units of 10mW / 10mWh instead of mA / mAh SeeAlso: #00488,#00490 Bitfields for Smart Battery battery status: Bit(s) Description (Table 00490) 15 overcharged 14 terminate-charge alarm 13 reserved 12 over-temperature alarm 11 terminate-discharge alarm 10 reserved 9 remaining-capacity alarm 8 remaining-time alarm 7 initialized 6 charging 5 fully charged 4 fully discharged 3-0 error codes 0000 OK 0001 busy 0010 reserved command 0011 unsupported command 0100 access denied (tried to write to read-only value) 0101 overflow/underflow 0110 bad size 0111 unknown error SeeAlso: #00488,#00489,#00491 Bitfields for Smart Battery specification information: Bit(s) Description (Table 00491) 3-0 SmartBattery specification minor revision number 7-4 SmartBattery specification version number 11-8 voltage scaling (0-3, multiply voltages by 10^scale) 15-12 current scaling (0-3, multiply currents by 10^scale) SeeAlso: #00488,#00490 (Table 00492) Values for Smart Battery device chemistry (not case-sensitive): "LION" Lithium ion "NiMH" Nickel metal hydride "PbAc" lead-acid "NiCd" Nickel Cadmium "NiZn" Nickel Zinc "RAM" rechargeable Alkaline Manganese "ZnAr" Zinc-Air SeeAlso: #00488Top
INT 15 - Intel System Management Bus - REQUEST CONTINUATION AX = 53B0h BH = 11h BL = protocol (see #00487) CH = device address CL = number of valid bytes in DX (1 or 2) DH = MSB Data (CL = 1 or 2) DL = LSB Data (CL = 2) Return: CF clear if successful AH = 00h (SMBus OK) CL = SMBus status 00h SMBus hardware not ready for more data 01h SMBus hardware ready for 2 more data bytes CF set if error AH = error code (05h,11h,13h,15h,16h,18h,1Bh,86h) (see #00484) Desc: continue WriteBlock protocol started with function 10h SeeAlso: AX=53B0h/BH=10h, AX=53B0h/BH=13hTop
INT 15 - Intel System Management Bus - REQUEST ABORT AX = 53B0h BH = 12h BL = protocol (see #00487) CH = device address CL = device command Return: CF clear if successful AH = 00h (SMBus OK) CF set if error AH = error code (05h,13h,15h,16h,86h) (see #00484) Desc: stop the currently pending SMBus request; usually used to terminate a request after an SMI Detected errorTop
INT 15 - Intel System Management Bus - REQUEST DATA AND STATUS AX = 53B0h BH = 13h BL = protocol (see #00487) CH = device address CL = device command Return: CF clear if successful AH = 00h (SMBus OK) CH = status 00h no data pending, transaction complete 01h no data pending, transaction continues 02h data pending CL = number of valid bytes in DX (0-2) DH = MSB data DL = LSB data CF set if error AH = error code (05h,10h,11h,13h,15h,16h,18h,1Bh,86h) (see #00484) Desc: determine when a transaction is complete, gather data returned by read transactions Note: for Block Read protocol (08h), first call returns block length in DH and the first byte of the block in DLTop
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = 54h SeeAlso: AH=07h"IBM",AH=3Eh"IBM"Top
INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION AX = 5400h ES:BX -> device information tables DI:DX -> dispatcher entry point Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5407h,INT 2F/AX=DE00hTop
INT 15 C - Omniview Multitasker - PROCESS CREATION AX = 5401h ES:BX = process handle Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5402h,INT 2F/AX=DE04hTop
INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION AX = 5402h ES:DX = process handle Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5401h,INT 2F/AX=DE05hTop
INT 15 C - Omniview Multitasker - SAVE AX = 5403h ES:DX = process swapping out Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5404h,INT 2F/AX=DE08hTop
INT 15 C - Omniview Multitasker - RESTORE AX = 5404h ES:DX = process swapping in Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5403h,INT 2F/AX=DE09hTop
INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND AX = 5405h ES:DX = process swapping in Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5406hTop
INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND AX = 5406h ES:DX = process swapping in Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5405hTop
INT 15 C - Omniview Multitasker - EXIT NOTIFICATION AX = 5407h Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5400h,INT 2F/AX=DE03hTop
INT 15 C - Chips & Technologies '65530' BIOS - POST INITIALIZATION NOTIFICATION AX = 5F31h Return: nothing Desc: this function is called after the video BIOS completes power-up initialization and just prior to displaying the sign-on message SeeAlso: AX=5F33h,AX=5F35h,INT 10/AX=5F50hTop
INT 15 C - Chips & Technologies '65530' BIOS - MODE SET HOOK AX = 5F33h BL = current width in characters BH = curent video mode CH = active display page Return: nothing Desc: this function is called at the end of a video mode set Note: the OEM has the option of enabling or disabling this callout, as well as specifying whether the callout occurs on INT 15h or INT 42h SeeAlso: AX=5F31h,AX=5F35h,INT 10/AX=5F50h,INT 42/AX=5F33hTop
INT 15 C - Chips & Technologies '65530' BIOS - MONITOR SENSING HOOK AX = 5F35h Return: DL = boot display 00h CRT 01h flat panel (LCD) 02h both simultaneously leave unchanged to boot according to BIOS settings SeeAlso: AX=5F31h,AX=5F33h,INT 10/AX=5F50hTop
INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED AH = 60h AL = new speed 00h normal (8 MHz) 01h Slow Mode 1 (4 MHz) 02h Slow Mode 2 (2 MHz) Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. SeeAlso: AX=6301hTop
INT 15 U - HP 100LX/200LX - GET MAIN BATTERY LEVEL AX = 6000h Return: AX = battery level Note: multiply the returned value with 1Bh and add 622h to get millivolts SeeAlso: AX=6001h,AX=6002h,AX=6003h,AX=6004hTop
INT 15 U - HP 100LX/200LX - GET BACKUP BATTERY LEVEL AX = 6001h Return: AX = battery level Note: multiply the returned value with 1Bh and add 622h to get millivolts SeeAlso: AX=6000h,AX=6002hTop
INT 15 U - HP 100LX/200LX - GET POWER INFO AX = 6002h Return: AL = power settings (see #00493) SeeAlso: AX=6000h,AX=6003h,AX=6004h Bitfields for power settings: Bit(s) Description (Table 00493) 0-1 unused ??? 2 card battery status low (OK if bit clear) 3 battery charging off (disabled if bits 3-5 clear) 4 battery charging slow 5 battery charging fast 6 power adaptor active 7 battery type NiCad (alkaline if bit clear)Top
INT 15 U - HP 100LX/200LX - SET MAIN BATTERY TYPE AX = 6003h BL = battery type 00h alkaline 01h NiCad SeeAlso: AX=6000h,AX=6004hTop
INT 15 U - HP 100LX/200LX - SET BATTERY CHARGING MODE AX = 6004h BL = charging 00h disabled 01h enabled SeeAlso: AX=6000h,AX=6003hTop
INT 15 - HUNTER 16 - GET POWER LEVEL AH = 61h Return: AH = percentage of full power left (0..100) Desc: determine how much battery power is left SeeAlso: AH=62h,AH=66h,AH=73h"HUNTER"Top
INT 15 U - HP 100LX/200LX - SET ANNOUNCIATORS POSITION AH = 61h AL = position (20h = left, 60h = right) Note: The announciators are the indicator symbols for the Shift and Fn keys in the bottom line SeeAlso: AH=62h"HP",INT 16/AH=02hTop
INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD AH = 62h AL = level (00h 5%, 01h 10%, ... 12h 95%) BX = interval between power low warnings in seconds (1..600) Return: AH = Status Desc: set the level (relative to full power) when power-low warnings begin and the interval between the warnings SeeAlso: AH=61h,AH=65h,AH=66hTop
INT 15 U - HP 100LX/200LX - SET DISPLAY CONTRAST AH = 62h BL = contrast (00h-1Fh, 1Fh is the darkest) SeeAlso: AH=47h"HP",AH=61h"HP"Top
INT 15 - HUNTER 16 - GET IDLE TIMEOUT AX = 6300h Return: AH = status BX = timeout in seconds (0-3600) Desc: get the idle timeout value, the interval without keyboard or communications activity before the system shuts down SeeAlso: AX=6301hTop
INT 15 - HUNTER 16 - SET IDLE TIMEOUT AX = 6301h BX = timeout in seconds (0-3600) Desc: sets the idle timeout value, the interval without keyboard or communications activity before the system shuts down SeeAlso: AX=6300hTop
INT 15 - HUNTER 16 - CONTROL RESUME MODE AH = 64h AL = new state 00h disable Resume mode 01h enable Resume mode Return: AH = status Desc: turn Resume mode on or off. In Resume mode the system starts in the application that was running when it shut down as if nothing had happened. SeeAlso: AH=67h,AH=68h,AH=69hTop
INT 15 - HUNTER 16 - AUTHORISE CHARGING AH = 65h AL = charging level 01h charging not allowed 02h charging allowed until power down 03h charging allowed until batteries changed or fail. Ask user if charging is still allowed on next poweron 04h charging allowed indefinitely BX = 0203h CX = 0405h DX = 0607h Return: AH = status SeeAlso: AH=66h,AH=68hTop
INT 15 - HUNTER 16 - SET BATTERY LEVEL AH = 66h AL = level in percent of maximum (0..100) Return: AH = status SeeAlso: AH=61h,AH=65hTop
INT 15 - HUNTER 16 - CONTROL STOP MODE AH = 67h AL = mode when waiting for input 00h use STOP mode (allows communication) 01h use HALT mode (disallows communication) Return: AH = status Desc: select the power save mode to use when waiting for input SeeAlso: AH=69hTop
INT 15h - Arabic/Hebrew MS-DOS 5.0???+ - INSTALLATION CHECK AX = 6700h BX = FFFFh Return: BX = FFFFh (Arabic/Hebrew MS-DOS not installed) BX = version (e.g. 0101h for Arabic/Hebrew MS-DOS 5.0) Note: This call is made by the SK_HGC.COM TSR for HGC and HGC/RAMFont graphics adapters to ensure it runs on the correct version of Arabic or Hebrew MS-DOS. The function is probably implemented in the ARABIC.COM/HEBREW.COM driver. Arabic/Hebrew versions of MS-DOS 3.3 existed, but no details are available. SeeAlso: AX=67C3h,INT 2F/AX=AD41hTop
INT 15h - Arabic/Hebrew MS-DOS 5.0???+ - HGC & HGC/RAMFont support??? AX = 67C3h CX = 1Bh CS|DS???:SI -> buffer Return: ES:DI -> ??? AX = ??? Program: The SK_HGC.COM TSR is used to support operation of ARABIC.COM/ HEBREW.COM with the Hercules Graphic Card series of video adapters. It is provided for compatibility with ADOS 3.30/HDOS 3.30 only. This file must be loaded immediately after ARABIC.COM/HEBREW.COM to insure correct operation with these devices. Notes: This call is made by the SK_HGC.COM TSR for HGC and HGC/RAMFont graphics adapters when it has successfully detected an Arabic/Hebrew issue of MS-DOS via INT15h/6700h/BX=FFFFh to ensure it runs on the correct version of Arabic or Hebrew MS-DOS. At some unknown offset in the buffer it contains a flag indicating if a HGC or HGC/RAMFont adapter is present or not. ARABIC/HEBREW does not operate with Monochrome Display Adapters (MDA) and the Hercules Graphic Card Plus (HGC+). ARABIC/HEBREW does operate with Hercules Graphic Card (HGC) with a burnt-in ROM/EPROM font (many HGC cards, even the highly integrated ones, allow for this kind of user customization), though this is not officially supported. In some pre-1987 IBM XT/AT and compatibles, the Hercules Graphic Card Plus operates like a MDA card. This hardware limitation prevents ARABIC/HEBREW from running on this combination of hardware. SeeAlso: AX=6700hTop
INT 15 - HUNTER 16 - REQUEST POWER DOWN AH = 68h Desc: turns off the Hunter 16 if power down is allowed (see AH=69h) SeeAlso: AH=69hTop
INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY AH = 69h AL = mode 00h inhibit power down 01h allow power down Return: AH = status SeeAlso: AH=67h,AH=68h,AH=6AhTop
INT 15 - HUNTER 16 - CONTROL SLOW MODE AH = 6Ah AL = mode 00h inhibit Slow mode 01h allow Slow mode Return: AH = status SeeAlso: AH=69hTop
INT 15 - HUNTER 16 - GET ROM BIOS VERSION AH = 6Bh Return: BH = version number (ASCII) BL = release number (ASCII) CH = major??? release number (ASCII) CL = minor??? release number (ASCII) SeeAlso: AH=6ChTop
INT 15 - HUNTER 16 - GET SERIAL NUMBER AH = 6Ch Return: BL:CX = BCD serial number Note: when shipped, all Hunter 16s have the same Serial Number, but a different number can be stored (see AH=72h) SeeAlso: AH=6Bh,AH=72hTop
INT 15 - HUNTER 16 - GET EVENT DETAIL AH = 6Dh Return: AH = 00h if successful CX:BX = event flags bit 0..31 (see #00494) Note: this function allows testing for events SeeAlso: AH=6Eh,AH=6Fh Bitfields for HUNTER 16 events: Bit(s) Description (Table 00494) 6 RI received 5 RTC Alarm 4 data received on COM2 3 data received on COM1 2 error on COM2 1 error on COM1 0 PWR button pressedTop
INT 15 - HUNTER 16 - ENABLE/TRAP EVENT AH = 6Eh AL = Software Interrupt 00h do not trap event else trap as software interrupt number AL BH = event number (see AH=6Dh) BL = enable mask 00h disable event 01h enable event Return: AH = 00h if successful SeeAlso: AH=6Dh,AH=6FhTop
INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT AH = 6Fh AL = event number (see AH=6Dh) Return: AH = 00h if successful Desc: Acknowledges the event, so the next similar event can be detected SeeAlso: AH=6Dh"HUNTER",AH=6EhTop
INT 15 - HUNTER 16 - CONTROL SOUND AH = 70h AL = new state 00h disable sound else enable sound Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.Top
INT 15 - Tandy 1000SL/TL - READ FROM EEPROM AX = 7000h BL = number of word to read (00h-3Fh) Return: CF clear if function supported DX = contents of EEPROM word Note: newer Tandy 1000-series machines use EEPROM instead of CMOS RAM in the clock chip to store system configuration information SeeAlso: AX=7001hTop
INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM AX = 7001h BL = number of word to read (00h-3Fh) DX = new value for EEPROM word Return: CF clear if function supported Note: the EEPROMs are normally written only by the system setup program; changing the values can badly mess up a Tandy SeeAlso: AX=7000hTop
INT 15 U - Tandy 1000 Model ??? - GET ROM PAGE AX = 7002h Return: AL = ROM page mapped at 0E0000h (0-6 (13?)) Note: some Tandy machines have DOS and DeskMate in a 512k paged ROM. The BIOS uses this call to determine what ROM page is mapped in the 64k segment at 0E0000h. the 1000TL has 8 64k ROM pages; page 7 is permanently mapped at 0F0000h. There may be 16 32k ROM pages on other systems. SeeAlso: AX=7003h,INT E0"DeskMate"Top
INT 15 U - Tandy 1000 Model ??? - SET ROM PAGE AX = 7003h DL = ROM page to be mapped at 0E0000h (0-6 (13?)) Return: CF clear if valid ROM page specified Note: Some Tandy machines have DOS and DeskMate in a 512k paged ROM. The BIOS uses this call to map ROM pages in the 64k segment at 0E0000h. The 1000TL has 8 64k ROM pages; page 7 is permanently mapped at 0F0000h. There may be 16 32k ROM pages on other systems. SeeAlso: AX=7002h,INT E0"DeskMate"Top
INT 15 - HUNTER 16 - SELECT POWER UP KEYS AH = 71h BL = column BH = row AL = column switch (00h disable, 01h enable) CL = row switch (00h disable, 01h enable) Return: AH = status SeeAlso: AH=7Bh,AH=88hTop
INT 15 - HUNTER 16 - RESET SERIAL NUMBER AX = 7200h Return: AH = 00h if successful Desc: reset the serial number to the default serial number present when the Hunter 16 was shipped SeeAlso: AH=6Ch,AH=72hTop
INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER AH = 72h AL nonzero DS:BX -> new serial number (6 ASCII digits) Return: AH = 00h if successful Desc: install a new serial number SeeAlso: AH=6Ch,AX=7200hTop
INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL AH = 73h AL = drive (0: A:, 1: B:) Return: AH = status 00h successful FFh Oracle GT drive not connected AL = power level in percent of maximum (0..100) Desc: get the power remaining in the Oracle GT batteries SeeAlso: AH=61hTop
INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE AH = 74h AL = new level 01h off 02h unchanged 03h change level BL = desired level (00h-7Fh) Return: AH = status Desc: select the backlight level to use when the Hunter is next turned on SeeAlso: AH=64h,AH=75h,INT 10/AH=64h,INT 10/AH=78hTop
INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE AH = 75h AL = new level 01h off 02h unchanged 03h change level BL = desired level (00h-7Fh) Return: AH = status Desc: select the LCD contrast level to use when the Hunter is next turned on SeeAlso: AH=63h,AH=74hTop
INT 15 - HUNTER 16 - CONTROL POWER SAVE AH = 76h BX = power save control (see #00495) SeeAlso: AH=74h Bitfields for HUNTER 16 power save control: Bit(s) Description (Table 00495) 0 power save enabled 1 inhibit power save when waiting for COM1 data 2 inhibit power save when waiting for COM2 data 3 inhibit power save when waiting for data from barcode wand 4 inhibit power up on timer tickTop
INT 15 - HUNTER 16 - REDIRECT LPT1 AH = 79h AL = port to which to redirect (00h COM1, 01h COM2)Top
INT 15 - HUNTER 16 - INVOKE HOT KEY AH = 7Ah Desc: this function has the same effect as pressing the HOT key SeeAlso: AH=7BhTop
INT 15 - HUNTER 16 - CONTROL HOT KEY AH = 7Bh AL = 00h prevent HOT key else allow HOT key Desc: Allow or prevent the HOT key function which is used to examine and change the Hunter setup SeeAlso: AH=71h,AH=7Ah,AH=7ChTop
INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION AH = 7Ch AL = 00h prevent HOT key power option else allow HOT key power option Desc: allow or prevent changing the power options SeeAlso: AH=7Bh,AH=7DhTop
INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF AH = 7Dh AL = 00h turn off after 10 warnings else never turn off Desc: specify whether the Hunter 16 turns off after 10 low power warnings SeeAlso: AH=7ChTop
INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM) AH = 7Eh AL = 00h do not prompt else prompt Desc: select whether the user is prompted for the battery state if the battery cap has been off when the system is turned on SeeAlso: AH=7FhTop
INT 15 - HUNTER 16 - SET BATTERY TYPE (APM) AH = 7Fh AL = battery type 00h non-rechargeable else rechargeable SeeAlso: AH=7EhTop
INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS) AH = 80h BX = device ID CX = process ID CF clear Return: CF clear if successful AH = 00h CF set on error AH = status (see #00496) Note: this function should be hooked by a multitasker which wishes to keep track of device ownership; the default BIOS handler merely returns successfully SeeAlso: AH=81h,AH=82h (Table 00496) Values for status: 80h invalid command (PC,PCjr) 86h function not supported (XT)Top
INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM) AH = 80h AL = function 00h get Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA) else set BL = battery capacity (same as AL above) SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"Top
INT 15 C - OS HOOK - DEVICE CLOSE AH = 81h BX = device ID CX = process ID CF clear Return: CF clear if successful AH = 00h CF set on error AH = status (see #00496) Note: this function should be hooked by a multitasker which wishes to keep track of device ownership; the default BIOS handler merely returns successfully SeeAlso: AH=80h,AH=82hTop
INT 15 - HUNTER 16 - CONTROL POWER OUTPUT AH = 81h AL = new state of power output (00h off, nonzero on) Desc: turn the +5V low power output on or off SeeAlso: AH=80h"HUNTER"Top
INT 15 C - OS HOOK - PROGRAM TERMINATION AH = 82h BX = process ID CF clear Return: CF clear if successful AH = 00h CF set on error AH = status (see #00496) Notes: closes all devices opened by the given process ID with function 80h this function should be hooked by a multitasker which wishes to keep track of device ownership; the default BIOS handler merely returns successfully SeeAlso: AH=80h,AH=81hTop
INT 15 - HUNTER 16 - SOUND OUTPUT AH = 82h DX = length (duration in seconds = DX * 666670 / frequency) BX = pitch (see #00497) Desc: Sound the tone specified in BX for the duration in DX SeeAlso: AX=1019h (Table 00497) Values for HUNTER 16 sound pitch: BX(dec) Note Frequency BX(dec) Note Frequency 425 G 1568.000 1515 A 440.000 451 F# 1479.503 1605 G# 415.307 477 F 1396.900 1701 G 392.000 506 E 1318.500 1802 F# 369.998 536 D# 1244.523 1909 F 349.230 568 D 1174.700 2022 E 329.630 601 C# 1108.749 2143 D# 311.127 637 C 1046.500 2270 D 293.660 675 B 958.770 2405 C# 277.183 715 A# 932.329 2548 MID C 261.630 758 A 880.000 2700 B 246.940 803 G# 830.609 2860 A# 233.081 850 G 783.990 3030 A 220.000 901 F# 739.990 3210 G# 207.654 954 F 698.460 3401 G 196.000 1011 E 659.260 3604 F# 184.996 1071 D# 622.257 3818 F 174.610 1135 D 587.330 4045 E 164.810 1203 C# 554.365 4286 D# 155.560 1274 C 523.250 4540 D 146.830 1350 B 493.880 4668 C# 142.827 1430 A# 466.162 4803 C 138.810Top
INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+) AH = 83h AL = subfunction 00h set interval CX:DX = microseconds to delay ES:BX -> byte whose high bit is to be set at end of interval 01h cancel wait interval Return: CF set on error or function already busy AH = status 80h invalid command (PC,PCjr) 86h function not supported (XT and later) CF clear if successful Notes: the resolution of the wait period is 977 microseconds on many systems because many BIOSes use the 1/1024 second fast interrupt from the AT real-time clock chip which is available on INT 70 IBM AT 1984/1/10 BIOS ignores AL and always performs subfunction 00h SeeAlso: AH=41h,AH=86h,INT 70,MEM 0040h:0098h,MEM 0040h:009ChTop
INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION AH = 83h AL = state of LCD window (00h disabled, nonzero enabled) Desc: Enable/disable the facility where the displayed window tracks the cursor output to keep the focus visibleTop
INT 15 - BIOS - JOYSTICK SUPPORT (XT after 1982/11/8,AT,XT286,PS) AH = 84h DX = subfunction 0000h read joystick switches Return: AL bits 7-4 = switch settings 0001h read positions of joysticks Return: AX = X position of joystick A BX = Y position of joystick A CX = X position of joystick B DX = Y position of joystick B Return: CF set on error AH = status (see #00496) CF clear if successful Notes: if no game port is installed, subfunction 0000h returns AL=00h (all switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h a 250kOhm joystick typically returns 0000h-01A0h SeeAlso: AH=84h"V20-XT-BIOS"Top
INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT AH = 84h DX = subfunction 0000h read joystick switches Return: AL bits 7-4 = switch settings other: read positions of joysticks as indicated by bits 0-3 Return: AX = X position of joystick A (if DX bit 0 set) BX = Y position of joystick A (if DX bit 1 set) CX = X position of joystick B (if DX bit 2 set) DX = Y position of joystick B (if DX bit 3 set) Return: CF set on error AH = status (see #00496) CF clear if successful Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter Koehlmann / c't magazine SeeAlso: AH=84h"PS",INT 10/AH=0Eh/CX=ABCDhTop
INT 15 - AMIGATSR - INSTALLATION CHECK AH = 84h DX = 0002h Return: AX = 1234h if installed Program: AMIGATSR is a serial-port driver for using an Amiga gamepad on a PC SeeAlso: AH=84h/DX=0002h"MULTIJOY"Top
INT 15 - MULTIJOY - INSTALLATION CHECK AH = 84h DX = 0002h Return: AX = 4321h if installed SeeAlso: AH=84h/DX=0002h"AMIGATSR",AH=84h/DX=0003h"MULTIJOY"Top
INT 15 - MULTIJOY - GET ACTIVE JOYSTICK AH = 84h DX = 0003h Return: AX = number of the currently-active joystick device BX = device classification (see #04098) SeeAlso: AH=84h/DX=0002h"MULTIJOY" !!! more info to follow Bitfields for MULTIJOY device classification: Bit(s) Description (Table 04098) 15 device connected and ready 14 no buttons (overrides bits 12-9) 13 no axes (overrides bits 8-5) 12-9 number of buttons, less one 8-5 number of axes, less one 4 digital device rather than analog 3-0 device type 0000 keyboard emulating joystick 0001 gamepad 0010 joystick 0011 steering wheel 0100 flight yoke 0101 mouse emulating joystick 0110 trackball emulating joystick 0111 GlidePoint (touchpad) emulating joystick 1000 touchscreen emulating joystick 1001 steering wheel 1010 light pen emulating joystick 1011 speech recognition emulating joystick 1100 TV remote emulating joystick 1101 network/Internet remote control 1110 PC software-controlled (demo mode, etc.) 1111 other deviceTop
INT 15 - MULTIJOY - SELECT JOYSTICK AH = 84h DX = 0004h BX = number of the joystick device to make active Return: ??? SeeAlso: AH=84h/DX=0003h"MULTIJOY"Top
INT 15 - HUNTER 16 - GET DISKETTE PORT AX = 8400h BH = Drive (0: A:, 1: B:) Return: AL = Port (0: COM1, >0: COM2) Desc: return the COM port used for the floppy drive SeeAlso: AX=8401hTop
INT 15 - HUNTER 16 - SET DISKETTE PORT AX = 8401h BH = Drive (0: A:, 1: B:) BL = Port (0: COM1, >0: COM2) Desc: set the COM port used for the floppy drive SeeAlso: AX=8400hTop
INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS) AH = 85h AL = SysReq key action (00h pressed, 01h released) CF clear Return: CF clear if successful AH = 00h CF set on error AH = status (see #00496) Notes: called by keyboard decode routine the default handler simply returns successfully; programs which wish to monitor the SysReq key must hook this call the SysReq key is often labeled SysRq SeeAlso: INT 09Top
INT 15 - HUNTER 16 - RESTORE POWER MENU (APM) AX = 8500h Desc: restore the standard power menu SeeAlso: AX=8501h"HUNTER"Top
INT 15 - HUNTER 16 - SET POWER MENU (APM) AX = 8501h BL = user software interrupt number Desc: install an alternate power menu routine SeeAlso: AX=8500h"HUNTER"Top
INT 15 - BIOS - WAIT (AT,PS) AH = 86h CX:DX = interval in microseconds Return: CF clear if successful (wait interval elapsed) CF set on error or AH=83h wait already in progress AH = status (see #00496) Note: the resolution of the wait period is 977 microseconds on many systems because many BIOSes use the 1/1024 second fast interrupt from the AT real-time clock chip which is available on INT 70; because newer BIOSes may have much more precise timers available, it is not possible to use this function accurately for very short delays unless the precise behavior of the BIOS is known (or found through testing) SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70Top
INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE AH = 86h AL = function (00h get, nonzero set) BX = 1234h DS:SI -> 256-byte Attribute buffer Note: In text modes each character has its attribute byte XOR'd with the corresponding byte in the attribute table. If the attribute is 15, 15 is XOR'd with Table[15]Top
INT 15 - SYSTEM - COPY EXTENDED MEMORY AH = 87h CX = number of words to copy (max 8000h) ES:SI -> global descriptor table (see #00499) Return: CF set on error CF clear if successful AH = status (see #00498) Notes: copy is done in protected mode with interrupts disabled by the default BIOS handler; many 386 memory managers perform the copy with interrupts enabled on the PS/2 30-286 & "Tortuga" this function does not use the port 92h for A20 control, but instead uses the keyboard controller (8042). Reportedly this may cause the system to crash when access to the 8042 is disabled in password server mode (see also PORT 0064h,#P0398) this function is incompatible with the OS/2 compatibility box SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h (Table 00498) Values for extended-memory copy status: 00h source copied into destination 01h parity error 02h interrupt error 03h address line 20 gating failed 80h invalid command (PC,PCjr) 86h unsupported function (XT,PS30) Format of global descriptor table: Offset Size Description (Table 00499) 00h 16 BYTEs zeros (used by BIOS) 10h WORD source segment length in bytes (2*CX-1 or greater) 12h 3 BYTEs 24-bit linear source address, low byte first 15h BYTE source segment access rights (93h) 16h WORD (286) zero (386+) extended access rights and high byte of source address 18h WORD destination segment length in bytes (2*CX-1 or greater) 1Ah 3 BYTEs 24-bit linear destination address, low byte first 1Dh BYTE destination segment access rights (93h) 1Eh WORD (286) zero (386+) extended access rights and high byte of destin. address 20h 16 BYTEs zeros (used by BIOS to build CS and SS descriptors)Top
INT 15 - HUNTER 16 - SET INT 72h VECTOR AH = 87h DS:DX = new service routine Desc: set the INT 72h vector which is called in 2 cases: - when the machine is about to turn off or reboot, INT 72h is called with AH=0 - when the machine is powering up INT 72h is called with AH=01h Note: the actual INT 72h vector must also be changed with INT 21/AH=25hTop
INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+) AH = 88h Return: CF clear if successful AX = number of contiguous KB starting at absolute address 100000h CF set on error AH = status 80h invalid command (PC,PCjr) 86h unsupported function (XT,PS30) Notes: TSRs which wish to allocate extended memory to themselves often hook this call, and return a reduced memory size. They are then free to use the memory between the new and old sizes at will. the standard BIOS only returns memory between 1MB and 16MB; use AH=C7h for memory beyond 16MB not all BIOSes correctly return the carry flag, making this call unreliable unless one first checks whether it is supported through a mechanism other than calling the function and testing CF Due to applications not dealing with more than 24-bit descriptors (286), Windows 3.0 has problems when this function reports more than 15 MB. Some releases of HIMEM.SYS are therefore limited to use only 15 MB, even when this function reports more. SeeAlso: AH=87h,AH=8Ah"Phoenix",AH=C7h,AX=DA88h,AX=E801h,AX=E820hTop
INT 15 - HUNTER 16 - GET POWER UP KEYS AH = 88h Return: AH = 00h BX = column CL = row SeeAlso: AH=71hTop
INT 15 - SYSTEM - SWITCH TO PROTECTED MODE AH = 89h BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts) BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts) ES:SI -> GDT for protected mode (see #00500) Return: CF set on error AH = FFh error enabling address line 20 CF clear if successful AH = 00h in protected mode at specified address BP may be destroyed; all segment registers change Notes: BL and BH must be multiples of 8 the protected-mode CS must reference the same memory as the CS this function is called from because execution continues with the address following the interrupt call SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch Format of BIOS switch-to-protected-mode Global Descriptor Table: Offset Size Description (Table 00500) 00h 8 BYTEs null descriptor (initialize to zeros) 08h 8 BYTEs GDT descriptor (see #00501) 10h 8 BYTEs IDT descriptor 18h 8 BYTEs DS descriptor 20h 8 BYTEs ES 28h 8 BYTEs SS 30h 8 BYTEs CS 38h 8 BYTEs uninitialized, used to build descriptor for BIOS CS Format of segment descriptor table entry: Offset Size Description (Table 00501) 00h WORD segment limit, low word 02h 3 BYTEs segment base address, low 24 bits 05h BYTE access mode (see #00502) 06h BYTE 386+ extended access mode (see #00505) 07h BYTE 386+ segment base address, high 8 bits SeeAlso: #00500,INT 2C/AX=0002h,INT 31/AX=0009h Bitfields for segment descriptor table access mode field: Bit(s) Description (Table 00502) 3-0 segment type (see #00503,#00504) 4 descriptor type (1 = application, 0 = system) 6-5 descriptor privilege level 7 segment is present in RAM SeeAlso: #00501,#00505 (Table 00503) Values for system segment descriptor type: 0 reserved 1 available 16-bit TSS 2 LDT 3 busy 16-bit TSS 4 16-bit call gate 5 task gate 6 16-bit interrupt gate 7 16-bit trap gate 8 reserved 9 available 32-bit TSS 10 reserved 11 busy 32-bit TSS 12 32-bit call gate 13 reserved 14 32-bit interrupt gate 15 32-bit trap gate SeeAlso: #00502,#00504 Bitfields for application segment descriptor type: Bit(s) Description (Table 00504) 3 code/data 0 date 1 code ---data segments--- 2 expand down 1 writeable ---code segments--- 2 conforming 1 readable ------ 0 accessed SeeAlso: #00502,#00503 Bitfields for 386+ segment descriptor table extended access mode field: Bit(s) Description (Table 00505) 3-0 high 4 bits of segment limit 4 available 5 reserved (0) 6 default operation size (1 = 32 bits, 0 = 16 bits) 7 granularity (1 = 4K, 0 = byte) SeeAlso: #00501,#00502,#02557Top
INT 15 - HUNTER 16 - GET POWER MODE AX = 8900h Return: AH = 00h BL = current power mode 00h Standard Power Mode (SPM) 01h Advanced Power Mode (APM) SeeAlso: AX=8901hTop
INT 15 - HUNTER 16 - SET POWER MODE AX = 8901h BL = new mode 00h Standard Power Mode (SPM) 01h Advanced Power Mode (APM) Return: AH = 00h SeeAlso: AX=8900hTop
INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM) AH = 8Ah AL = new state of Power Input (00h disabled, nonzero enabled) SI = 1234h DI = 5678h Return: AH = status 00h success FFh failure Desc: Enable or disable Power Input. When Power Input is disabled the AC adapter will neither charge the batteries nor supply power to the Hunter 16. Disable Power Input if using Alkaline batteries.Top
INT 15 - Phoenix BIOS v4.0 - GET BIG MEMORY SIZE AH = 8Ah Return: DX:AX = extended memory size in K SeeAlso: AH=88h,AX=E801h,AX=E820hTop
INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE AH = 8Bh AL = function 00h get Return: BH = Maximum charging temperature Temp = -20 + (n * 0.63) degrees Centigrade BL = Minimum charging temperature else set BH = maximum charging temperature (as above) BL = minimum charging temperature (as above) Return: AH = status 00h success FFh failure Desc: get/set the temperature interval within which the charger should operateTop
INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG AH = 8Ch AL = function 00h get Return: BX = which operations disable power save (see #00506) else set BX = which operations should disable power save (see #00506) SeeAlso: AH=8Dh Bitfields for HUNTER 16 operations disabling power save: Bit(s) Description (Table 00506) 0 INT 10h prevents power save 1 INT 13h prevents power save 2 INT 14h prevents power save 3 INT 15h prevents power save 4 INT 1Ah prevents power save 5 INT 21h prevents power save 6 direct write to video RAM prevents power save 7 access to 8250 UART prevents power save 8 access to 8253 (Sound) prevents power saveTop
INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM) AH = 8Dh AL = function 00h get Return: AL = Fast Charge state (00h prevented, else allowed) nonzero set BH = Fast Charge state (00h prevent, nonzero allow) Return: AH = status 00h success FFh failure Desc: control whether Fast Charging (200ma rather than 70ma) is allowed SeeAlso: AH=8ChTop
INT 15 - OS HOOK - DEVICE BUSY (AT,PS) AH = 90h AL = device type (see #00507) ES:BX -> request block for type codes 80h through BFh CF clear Return: CF set if wait time satisfied CF clear if driver must perform wait AH = 00h Notes: type codes are allocated as follows: 00-7F non-reentrant devices; OS must arbitrate access 80-BF reentrant devices; ES:BX points to a unique control block C0-FF wait-only calls, no complementary INT 15/AH=91h call floppy and hard disk BIOS code uses this call to implement a timeout; for device types 00h and 01h, a return of CF set means that the timeout expired before the disk responded. this function should be hooked by a multitasker to allow other tasks to execute while the BIOS is waiting for I/O completion; the default handler merely returns with AH=00h and CF clear SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h (Table 00507) Values for device type: 00h disk 01h diskette 02h keyboard 03h PS/2 pointing device 21h waiting for keyboard input (Phoenix BIOS) 80h network FBh digital sound (Tandy) FCh disk reset (PS) FDh diskette motor start FEh printerTop
INT 15 - OS HOOK - DEVICE POST (AT,PS) AH = 91h AL = device type (see #00507) ES:BX -> request block for type codes 80h through BFh CF clear Return: AH = 00h Note: this function should be hooked by a multitasker to allow other tasks to execute while the BIOS is waiting for I/O completion; the default handler merely returns with AH=00h and CF clear SeeAlso: AH=90hTop
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = 92h SeeAlso: AH=07h"IBM",AH=3Eh"IBM"Top
INT 15 - IBM SurePath BIOS - ACCESS LOADABLE-ABIOS SIGNATURE AH = A0h AL = function 00h get loadable-ABIOS signature Return: BL = signature value 00h loadable-ABIOS prompting not required A1h loadable-ABIOS prompting is required 01h write loadable-ABIOS signature BL = new signature value 00h loadable-ABIOS prompting not required A1h loadable-ABIOS prompting is required Return: CF clear if successful CF set on error AH = status 00h successful 01h invalid subfunction 02h unable to read/write signature 86h function not supported Note: IBM classifies this function as optional SeeAlso: AH=08h"IBM"Top
INT 15 U - AMI PCI BIOS - SET ??? FLAG AX = A100h Return: AX = 0000h CF clear BX,CX,DI may be destroyed Desc: sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in locations 3Eh and 3Fh Notes: in the examined version of the BIOS, nonzero values in AL cause it to drop through to checking the next possible value of AH, i.e. only subfunction 00h is supported also supported by Dell XPS P90 and IBM PS/PV 6384, which also use AMI BIOSesTop
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = ABh SeeAlso: AH=07h"IBM",AH=3Eh"IBM"Top
INT 15 - Stac STACKER - INSTALLATION CHECK
AX = B001h
CX = 5354h ('ST')
DX = 4143h ('AC')
Return: AX = 4F4Bh ('OK') if installed
Note: this function is encapsulated in Stac's STACKER.LIB C library; it is
called by Novell DOS 7+ NWCACHE v1.01, which makes use of this
library
Top
INT 15 - HP OmniShare - Pen Driver - REPORT PEN CONTROL AREA EVENT AX = BA10h BL = event 00h the pen left control areas 01h the pen entered the Brightness- area 02h the pen entered the Brightness+ area 03h the pen entered the Contrast- area 04h the pen entered the Contrast+ area Return: CF clear if successfully processed CF set on error (function not supported, ie. not an OmniShare BIOS) Note: The pen driver is responsible for detecting when the pen enters and leaves control areas of the OmniShare tablet, and notifying the BIOS. The BIOS manages the events, including the autorepetition, and sets the status LEDs. SeeAlso: AX=BA20h,AX=BA13hTop
INT 15 - HP OmniShare - Pen Driver - SET THE COMMUNICATION LED STATE AX = BA11h BL = new LED state (00h steady, 01h flashing) Return: CF clear if successful CF set on error Note: this function is for use by communication software to give visual feedback of active communications even if the display is in standby mode. SeeAlso: AX=BA10h,AX=BA24hTop
INT 15 - HP OmniShare - Pen Driver - STORE PEN BATTERY CHARGE AX = BA12h BL = new battery state (00h good, 01h low charge) Return: CF set on error CF clear if successfully stored in CMOS Note: The last report will be displayed by the Power-On Self Test the next time the OmniShare boots. This allows something meaningful to be reported even if the pen is not detected during the POST. SeeAlso: AX=BA13hTop
INT 15 - HP OmniShare - Pen Driver - GET PEN BATTERY CHARGE AX = BA13h Return: CF clear if successful BL = pen battery state (00h good, 01h low charge) CF set on error Note: returns the last value set by AX=BA12h. SeeAlso: AX=BA12hTop
INT 15 - HP OmniShare - STANDBY.COM - INSTALLATION CHECK AX = BA20h Return: CF clear if successful (installed) CF set on error (not installed) Notes: The display controller can enter a standby mode after a given timeout, to conserve power or (for the OmniShare) to increase the life of the backlight. A side effect of standby mode is that the communications LED turns on automatically when the display is in standby mode. This is done in hardware, and is intended to show that the unit is still on. SeeAlso: AX=BA10h,AX=BA20h,AX=BA22h,AX=BA24h,AX=BA26hTop
INT 15 - HP OmniShare - STANDBY.COM - SET STANDBY DURATION AX = BA21h BL = new timeout before standby mode in minutes (01h-0Fh) 00h to disable automatic switch to standby mode Return: CF clear if successful CF set on error (function not supported) Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds, instead of (N*60) seconds as documented. SeeAlso: AX=BA20h,AX=BA22hTop
INT 15 - HP OmniShare - STANDBY.COM - GET STANDBY DURATION AX = BA22h Return: CF clear if successful BL = standy duration in minutes (01h-0Fh), or 00h if disabled CF set on error (function not supported) Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds, instead of (N*60) seconds as documented. SeeAlso: AX=BA20h,AX=BA21hTop
INT 15 - HP OmniShare - STANDBY.COM - TURN ON THE SCREEN IMMEDIATELY AX = BA23h Return: CF clear if successful CF set on error SeeAlso: AX=BA11h,AX=BA20h,AX=BA24hTop
INT 15 - HP OmniShare - STANDBY.COM - TURN OFF THE SCREEN IMMEDIATELY AX = BA24h Return: CF clear if successful CF set on error Note: This function is not implemented yet. Reserved for future versions of the OmniShare. SeeAlso: AX=BA11h,AX=BA20h,AX=BA23hTop
INT 15 - HP OmniShare - STANDBY.COM - PREPARE FOR UNINSTALL AX = BA25h Return: CF clear if successful AX = 25BAh BX = PSP of STANDBY.COM resident portion DX:CX -> previous INT 15 handler CF set on error Note: This function is used internally by the STANDBY.COM /u option, and should not be used by application programs. SeeAlso: AX=BA20hTop
INT 15 - HP OmniShare - STANDBY.COM - IS THE DISPLAY IN STANDBY MODE? AX = BA26h Return: CF clear if successful AL = display state (00h active, 01h in standby mode) CF set on error (function not supported) SeeAlso: AX=BA20h,AX=BA23hTop
INT 15 - HP OmniShare - STANDBY.COM - RESERVED FUNCTIONS AX = BA27h to BA2Fh Desc: reserved for future useTop
INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS AH = BCh Return: CF clear (Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count (Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count Note: this function reads system timer channel 0 twice, then does calculations on the returned values to determine the delay loop counter needed by the BIOS for beeps and floppy timeouts SeeAlso: AX=2305h,MEM 0040h:00B0hTop
INT 15 - Rational Systems DOS/16M - ??? AX = BF00h ??? Return: ??? Note: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h SeeAlso: AX=BF02hTop
INT 15 - Rational Systems DOS/16M - ??? AX = BF01h ??? Return: ??? Notes: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h called by DOS/4GW SeeAlso: AX=BF00h,AX=BF02hTop
INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK AX = BF02h DX = 0000h Return: DX = nonzero if installed DX:SI -> XBRK structure (see #00508) Note: this function is also supported by DOS/4G SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h Format of DOS/16M XBRK structure: Offset Size Description (Table 00508) 00h DWORD linear address of first available byte 04h DWORD linear address of last available byte + 1 ??? 08h DWORD real-mode address of XBRK structure??? 0Ch DWORD ??? 10h 2 BYTEs ??? 12h WORD segment of ??? 14h 8 BYTEs ??? 1Ch 512 BYTEs protected-mode IDT 21Ch N BYTEs protected-mode GDTTop
INT 15 - Rational Systems DOS/4GW - UNINSTALL??? AX = BF03h BX = PSP segment of extender ??? Return: ??? Note: if BX is not the PSP segment of the extender, it passes the call down the INT 15 chain; this allows nested instances of the extender SeeAlso: AX=BF06hTop
INT 15 - Rational Systems DOS/4GW - ??? AX = BF04h BX = PSP segment of extender Return: nothing??? Notes: if BX is not the PSP segment of the extender, it passes the call down the INT 15 chain; this allows nested instances of the extender grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h SeeAlso: INT 2F/AX=1607h/BX=22C0hTop
INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE AX = BF05h BX = PSP segment of extender Return: nothing??? Notes: if BX is not the PSP segment of the extender, it passes the call down the INT 15 chain; this allows nested instances of the extender calls INT 67/AX=DE01h if ???Top
INT 15 - Rational Systems DOS/4GW - ??? AX = BF06h BX = PSP segment of extender ??? Return: ??? Note: if BX is not the PSP segment of the extender, it passes the call down the INT 15 chain; this allows nested instances of the extender SeeAlso: AX=BF03hTop
INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK AX = BFDCh DX = 0000h SI = 0000h Return: DX = nonzero if installed DX:SI -> XBRK structure (see #00508) SeeAlso: AX=BF02hTop
INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK AX = BFDEh BX = 0000h Return: AX = ??? (0003h) BX = FFFFh SeeAlso: AX=BF02hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME AX = BFDEh BX = 0001h Return: BX = 0000h (success) CX:DX -> name of process manager executable SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ??? AX = BFDEh BX = 0002h CX:DX -> ??? Return: BX = 0000h (success) SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? AX = BFDEh BX = 0003h Return: BX = 0000h (success) CX:DX -> ??? SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ??? AX = BFDEh BX = 0004h CL = ??? Return: BX = 0000h (success) CX:DX -> XBRK structure (see #00508) SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ??? AX = BFDEh BX = 0005h CX = new value for ??? Return: BX = 0000h (success) AX = old value of ??? DS:SI -> ??? (if AX nonzero on return) ES:DI -> ??? (if AX zero on return) Note: called by DOS4GW.EXE SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? AX = BFDEh BX = 0006h Return: BX = 0000h (success) AH = interrupt number??? (BEh) CX:DX = ??? SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"Top
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ??? AX = BFDEh BX = 0007h CX:DX = ??? Return: BX = 0000h (success) SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ??? AX = BFDEh BX = 0008h CX = segment of ??? DS = ??? Return: BX = status 0000h successful AL = ??? (80h or C0h) DX = ??? (0603h) if AL=C0h 0001h failed AX = 0000h Note: called by DOS4GW.EXE SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER AX = BFDEh BX = 0009h Return: BX = 0000h (success) CX:DX -> full pathname to LOAD32.EXP SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ??? AX = BFDEh BX = 000Ah Return: BX = 0000h (success) AX = new value of ??? counter Notes: also resets a variety of values if the counter goes negative called by DOS4GW.EXE SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000BhTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ??? AX = BFDEh BX = 000Bh Return: AX = new value of ??? counter Note: called by DOS4GW.EXE SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000AhTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ??? AX = BFDEh BX = 000Ch CL = ??? 00h nonzero Return: ??? SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ??? AX = BFDEh BX = 000Dh ??? Return: ??? SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ??? AX = BFDEh BX = 000Eh DX:CX -> ??? Return: AX = segment of handle for calling task BX = ??? (probably destroyed) DX:CX -> ??? SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ??? AX = BFDEh BX = 000Fh Return: AX = segment of handle for calling task BX = ??? (probably destroyed) DX:CX -> ??? Note: identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE AX = BFDEh BX = 0010h Return: AX = segment of caller's task handle BX destroyed SeeAlso: AX=BFDEh/BX=000FhTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? AX = BFDEh BX = 0011h Return: CX = code segment of DVDOS4GX.DVR BX = ??? (0004h) SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? AX = BFDEh BX = 0012h Return: DX = code segment of DVDOS4GX.DVR BX = ??? (012Ch) CX = ??? (0006h) SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? AX = BFDEh BX = 0013h Return: DX:CX -> ??? SeeAlso: AX=BFDEh/BX=000EhTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX AX = BFDEh BX = 0014h CX = index of ??? mailbox (0000h-0004h valid, but no range checking done) Return: AX,BX destroyed SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX AX = BFDEh BX = 0015h CX = index of ??? mailbox (0000h-0004h valid, but no range checking done) Return: AX,BX destroyed SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED AX = BFDEh BX = 0016h CX = index of ??? mailbox (0000h-0004h valid, but no range checking done) Return: AX = status 0000h no one owns mailbox 0001h mailbox has an owner BX destroyed SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER AX = BFDEh BX = 0017h CX = index of ??? mailbox (0000h-0004h valid, but no range checking done) Return: AX = segment of mailbox owner's handle BX = segment of caller's task handle SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016hTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? AX = BFDEh BX = FFFDh Return: CX:DX = ??? SeeAlso: AX=BFDEh/BX=FFFEhTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ??? AX = BFDEh BX = FFFEh CX:DX = ??? SeeAlso: AX=BFDEh/BX=FFFDhTop
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP AX = BFDEh BX = FFFFh SeeAlso: AX=BFDEh/BX=0000hTop
INT 15 - SYSTEM - GET CONFIGURATION (XT >1986/1/10,AT mdl 3x9,CONV,XT286,PS)
AH = C0h
Return: CF set if BIOS doesn't support call
CF clear on success
ES:BX -> ROM table (see #00509)
AH = status
00h successful
The PC XT (since 1986/01/10), PC AT (since 1985/06/10), the
PC XT Model 286, the PC Convertible and most PS/2 machines
will clear the CF flag and return the table in ES:BX.
80h unsupported function
The PC and PCjr return AH=80h/CF set
86h unsupported function
The PC XT (1982/11/08), PC Portable, PC AT (1984/01/10),
or PS/2 prior to Model 30 return AH=86h/CF set
Notes: the 1986/1/10 XT BIOS returns an incorrect value for the feature byte
the configuration table is at F000h:E6F5h in 100% compatible BIOSes
Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
and a model byte at absolute address FE845h (see #00516)
Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
a product identifier at F000h:00FAh (see #00519)
Compaq machines can be identified by the signature string "COMPAQ" at
F000h:FFEAh, and is preceded by additional information (see #00517)
Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in
the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the
first three data bytes (model/submodel/revision) in the returned
table
the ID at F000h:C000h is used by some Microsoft software before
trusting the floppy flags bits 1 and 0 at 0040h:00B5h.
the Wang PC contains the signature "WANG" at FC00h:0000h. This is used
by Peter Reilley's portable binary editor and viewer BEAV to detect
a Wang PC.
Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of
a laptop information record at F000h:E000h (see #00520)
some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
past the end of the configuration table
the Phoenix 386 BIOS contains a second version and date string
(presumably the last modification for that OEM version) beginning at
F000h:FFD8h, with each byte doubled (so that both ROM chips contain
the complete information)
SeeAlso: AH=C7h,AH=C9h,AX=D100h,AX=D103h
Format of ROM configuration table:
Offset Size Description (Table 00509)
00h WORD number of bytes following
02h BYTE model (see #00515)
03h BYTE submodel (see #00515)
04h BYTE BIOS revision: 0 for first release, 1 for 2nd, etc.
05h BYTE feature byte 1 (see #00510)
06h BYTE feature byte 2 (see #00511)
07h BYTE feature byte 3 (see #00512)
08h BYTE feature byte 4 (see #00513)
09h BYTE feature byte 5 (see #00514)
??? (08h) (Phoenix 386 v1.10)
??? (0Fh) (Phoenix 486 v1.03 PCI)
---AWARD BIOS---
0Ah N BYTEs AWARD copyright notice
---Phoenix BIOS---
0Ah BYTE ??? (00h)
0Bh BYTE major version
0Ch BYTE minor version (BCD)
0Dh 4 BYTEs ASCIZ string "PTL" (Phoenix Technologies Ltd)
also on Phoenix Cascade BIOS
---Quadram Quad386---
0Ah 17 BYTEs ASCII signature string "Quadram Quad386XT"
---Toshiba (Satellite Pro 435CDS at least)---
0Ah 7 BYTEs signature "TOSHIBA"
11h BYTE ??? (8h)
12h BYTE ??? (E7h) product ID??? (guess)
13h 3 BYTEs "JPN"
Bitfields for feature byte 1:
Bit(s) Description (Table 00510)
7 DMA channel 3 used by hard disk BIOS
6 2nd interrupt controller (8259) installed
5 Real-Time Clock installed
4 INT 15/AH=4Fh called upon INT 09h
3 wait for external event (INT 15/AH=41h) supported
2 extended BIOS area allocated (usually at top of RAM)
1 bus is Micro Channel instead of ISA
0 system has dual bus (Micro Channel + ISA)
SeeAlso: #00509,#00511
Bitfields for feature byte 2:
Bit(s) Description (Table 00511)
7 32-bit DMA supported
6 INT 16/AH=09h (keyboard functionality) supported (see #00585)
5 INT 15/AH=C6h (get POS data) supported
4 INT 15/AH=C7h (return memory map info) supported
3 INT 15/AH=C8h (en/disable CPU functions) supported
2 non-8042 keyboard controller
1 data streaming supported
0 reserved
SeeAlso: #00509,#00512,AH=C6h,AH=C7h,AH=C8h,INT 16/AH=09h
Bitfields for feature byte 3:
Bit(s) Description (Table 00512)
7 not used
6-5 reserved
4 POST supports ROM-to-RAM enable/disable
3 SCSI subsystem supported on system board
2 information panel installed
1 IML (Initial Machine Load) system (BIOS loaded from disk)
0 SCSI supported in IML
SeeAlso: #00509,#00511,#00512
Bitfields for feature byte 4:
Bit(s) Description (Table 00513)
7 IBM "private" (set on N51SX, CL57SX)
6 system has EEPROM
5-3 ABIOS presence
001 not supported
010 supported in ROM
011 supported in RAM (must be loaded)
2 "private"
1 system supports memory split at/above 16M
0 POSTEXT directly supported by POST
SeeAlso: #00509,#00512,#00514
Bitfields for feature byte 5 (IBM):
Bit(s) Description (Table 00514)
7-5 IBM "private"
4-2 reserved
1 system has enhanced mouse mode
0 flash EPROM
SeeAlso: #00509,#00513
(Table 00515)
Values for model/submodel/revision:
Model Submdl Rev BIOS date System
FFh * * 04/24/81 PC (original)
FFh * * 10/19/81 PC (some bugfixes)
FFh * * 10/27/82 PC (HD, 640K, EGA support)
FFh 00h rev ??? Tandy 1000SL
FFh 01h rev ??? Tandy 1000TL
FFh 46h *** ??? Olivetti M15
FEh * * 08/16/82 PC XT
FEh * * 11/08/82 PC XT and Portable
FEh * * ../..x.. Toshiba laptops up to ~1987
("x"=product ID) (see #00521)
FEh 00h *** * ??? Olivetti M19
FEh 43h *** ??? Olivetti M240
FEh A6h ??? ??? Quadram Quad386
FDh * * 06/01/83 PCjr
FCh * * 01/10/84 AT models 068,099 6 MHz 20MB
FCh * * 02/25/93 Linux DOSEMU (all versions)
FCh 00h 00h ??? PC3270/AT
FCh 00h 01h 06/10/85 AT model 239 6 MHz 30MB
FCh 00h > 01h ??? 7531/2 Industrial AT
FCh 01h 00h 11/15/85 AT models 319,339 8 MHz, Enh Keyb, 3.5"
FCh 01h 00h 09/17/87 Tandy 3000
FCh 01h 00h ../..x.. Toshiba laptops since ~1988
("x"=product ID) (see #00521)
FCh 01h 00h 03/08/93 Compaq DESKPRO/i
FCh 01h 00h various Compaq DESKPRO, SystemPro, ProSignia
FCh 01h 00h 07/20/93 Zenith Z-Lite 425L
FCh 01h 00h 04/09/90 AMI BIOS
FCh 01h 20h 06/10/92 AST
FCh 01h 30h ??? Tandy 3000NL
FCh 01h ??? ??? Compaq 286/386
FCh 02h 00h 04/21/86 PC XT-286
FCh 02h 00h various Compaq LTE Lite
FCh 02h 00h 08/05/93 Compaq Contura 486/486c/486cx
FCh 02h 00h 08/11/88 SoftWindows 1.0.1 (Power Macintosh)
FCh 04h 00h 02/13/87 ** PS/2 Model 50 (10 MHz/1 ws 286)
FCh 04h 01h 05/09/87 PS/2 Model 50 (10 Mhz 286, LW-type 32)
FCh 04h 02h ??? PS/2 Model 50
FCh 04h 02h 01/28/88 PS/2 Model 50Z (10 Mhz 286, LW-type 33)
FCh 04h 03h 04/18/88 PS/2 Model 50Z (10 MHz/0 ws 286)
FCh 04h 04h ??? PS/2 Model 50Z
FCh 05h 00h 02/13/87 ** PS/2 Model 60 (10 MHz 286)
FCh 06h 00h ??? IBM 7552-140 "Gearbox"
FCh 06h 01h ??? IBM 7552-540 "Gearbox"
FCh 08h *** ??? Epson, unknown model
FCh 08h 00h ??? PS/2 Model 25/286
FCh 09h 00h ??? PS/2 Model 25 (10 MHz 286)
FCh 09h 00h 08/25/88 PS/2 Model 30 286 (10 Mhz, LW-type 37)
FCh 09h 02h 06/28/89 PS/2 Model 30-286
FCh 09h 02h 06/28/89 PS/2 Model 25 286 (10 Mhz, LW-type 37)
FCh 0Bh 00h 12/01/89 PS/1 (LW-Type 44)
FCh 0Bh 00h 02/16/90 PS/1 Model 2011 (10 MHz 286)
FCh 20h 00h 02/18/93 Compaq ProLinea
FCh 25h 09h 12/07/91 PS/2 Model 56 SLC (20 MHz 386SLC)
FCh 30h *** ??? Epson, unknown model
FCh 31h *** ??? Epson, unknown model
FCh 33h *** ??? Epson, unknown model
FCh 42h *** ??? Olivetti M280
FCh 45h *** ??? Olivetti M380 (XP 1, XP3, XP 5)
FCh 48h *** ??? Olivetti M290
FCh 4Fh *** ??? Olivetti M250
FCh 50h *** ??? Olivetti M380 (XP 7)
FCh 51h *** ??? Olivetti PCS286
FCh 52h *** ??? Olivetti M300
FCh 81h 00h 01/15/88 Phoenix 386 BIOS v1.10 10a
FCh 81h 01h ??? "OEM machine"
FCh 82h 01h ??? "OEM machine"
FCh 94h 00h ??? Zenith 386
FBh 00h 01h 01/10/86 PC XT-089, Enh Keyb, 3.5" support
FBh 00h 01h 05/13/94 HP 200LX 2MB BIOS 1.01 A D german
FBh 00h 02h 05/09/86 PC XT
FBh 00h 04h 08/19/93 HP 100LX 1MB BIOS 1.04 A
FBh 4Ch *** ??? Olivetti M200
FAh 00h 00h 09/02/86 PS/2 Model 30 (8 MHz 8086)
FAh 00h 01h 12/12/86 PS/2 Model 30
FAh 00h 02h 02/05/87 PS/2 Model 30
FAh 01h 00h 06/26/87 PS/2 Model 25/25L (8 MHz 8086)
FAh 30h 00h ??? IBM Restaurant Terminal
FAh 4Eh *** ??? Olivetti M111
FAh FEh 00h ??? IBM PCradio 9075
F9h 00h 00h 09/13/85 PC Convertible
F9h FFh 00h ??? PC Convertible
F8h 00h 00h 03/30/87 ** PS/2 Model 80 (16MHz 386)
F8h 00h 00h ??? PS/2 Model 75 486 (33Mhz 486)
F8h 01h 00h 10/07/87 PS/2 Model 80 (20MHz 386)
F8h 02h 00h ??? PS/2 Model 55-5571
F8h 04h 00h 01/29/88 PS/2 Model 70 (20 Mhz 386DX,LW-type 33)
F8h 04h 02h 04/11/88 PS/2 Model 70 20MHz, type 2 system brd
F8h 04h 03h 03/17/89 PS/2 Model 70 20MHz, type 2 system brd
F8h 05h 00h ??? IBM PC 7568
F8h 06h 00h ??? PS/2 Model 55-5571
F8h 07h 00h ??? IBM PC 7561/2
F8h 07h 01h ??? PS/2 Model 55-5551
F8h 07h 02h ??? IBM PC 7561/2
F8h 07h 03h ??? PS/2 Model 55-5551
F8h 09h 00h 01/29/88 PS/2 Model 70 16MHz 386DX, type 1 sysbd
F8h 09h 02h 04/11/88 PS/2 Model 70 some models
F8h 09h 03h 03/17/89 PS/2 Model 70 some models
F8h 09h 04h 12/15/89 PS/2 Model 70 (16 Mhz 386, LW-type 33)
F8h 0Bh 00h 01/18/89 PS/2 Model P70 (8573-121) typ 2 sys brd
F8h 0Bh 02h 12/16/89 PS/2 Model P70 ??
F8h 0Ch 00h 11/02/88 PS/2 Model 55SX (16 MHz 386SX)
F8h 0Dh 00h ??? PS/2 Model 70 25MHz, type 3 system brd
F8h 0Dh 00h 06/08/88 PS/2 Model 70 386 25MHz, type 3 sys brd
F8h 0Dh 01h 02/20/89 PS/2 Model 70 386 25MHz, type 3 sys brd
F8h 0Dh ??? 12/01/89 PS/2 Model 70 486 25Mhz, type 3 sys brd
F8h 0Eh 00h ??? PS/1 486SX
F8h 0Fh 00h ??? PS/1 486DX
F8h 10h 00h ??? PS/2 Model 55-5551
F8h 11h 00h 10/01/90 PS/2 Model 90 XP (25 MHz 486)
F8h 12h 00h ??? PS/2 Model 95 XP
F8h 13h 00h 10/01/90 PS/2 Model 90 XP (33 MHz 486)
F8h 14h 00h 10/01/90 PS/2 Model 90-AK9 (25 MHz 486), 95 XP
F8h 15h 00h ??? PS/2 Model 90 XP
F8h 16h 00h 10/01/90 PS/2 Model 90-AKD / 95XP486 (33MHz 486)
F8h 17h 00h ??? PS/2 Model 90 XP
F8h 19h 05h ??? PS/2 Model 35/35LS or 40 (20 MHz 386SX)
F8h 19h 05h 03/15/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
F8h 19h 06h 04/04/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
F8h 1Ah 00h ??? PS/2 Model 95 XP
F8h 1Bh 00h 09/29/89 PS/2 Model 70 486 (25 Mhz 386DX)
F8h 1Bh 00h 10/02/89 PS/2 Model 70-486 (25 MHz 486)
F8h 1Ch 00h 02/08/90 PS/2 Model 65-121 / 65 SX (16MHz 386SX)
F8h 1Eh 00h 02/08/90 PS/2 Model 55LS (16 MHz 386SX)
F8h 23h 00h ??? PS/2 Model L40 SX
F8h 23h 01h ??? PS/2 Model L40 SX (20 MHz 386SX)
F8h 23h 02h 02/27/91 PS/2 Model L40 SX (20Mhz386SX,LW-typ37)
F8h 25h 00h ??? PS/2 Model 57 SLC
F8h 25h 06h ??? PS/2 Model M57 (20 MHz 386SLC)
F8h 26h 00h ??? PS/2 Model 57 SX
F8h 26h 01h ??? PS/2 Model 57 (20 MHz 386SX)
F8h 26h 02h 07/03/91 PS/2 Model 57 SX (20Mhz 386SX, SCSI)
F8h 28h 00h ??? PS/2 Model 95 XP
F8h 29h 00h ??? PS/2 Model 90 XP
F8h 2Ah 00h ??? PS/2 Model 95 XP (50 MHz 486)
F8h 2Bh 00h ??? PS/2 Model 90 / 90XP486 (50 MHz 486)
F8h 2Ch 00h ??? PS/2 Model 95 XP
F8h 2Ch 01h ??? PS/2 Model 95 (20 MHz 486SX)
F8h 2Dh 00h ??? PS/2 Model 90 XP (20 MHz 486SX)
F8h 2Eh 00h ??? PS/2 Model 95 XP
F8h 2Eh 00h ??? PS/2 Model 95 XP486 (20 Mhz 486SX)
F8h 2Eh 01h ??? PS/2 Model 95 (20 MHz 486SX + 487SX)
F8h 2Fh 00h ??? PS/2 Model 90 XP (20 MHz 486SX + 487SX)
F8h 30h 00h ??? PS/1 Model 2121 (16 MHz 386SX)
F8h 33h 00h ??? PS/2 Model 30-386
F8h 34h 00h ??? PS/2 Model 25-386
F8h 36h 00h ??? PS/2 Model 95 XP
F8h 37h 00h ??? PS/2 Model 90 XP
F8h 38h 00h ??? PS/2 Model 57
F8h 39h 00h ??? PS/2 Model 95 XP
F8h 3Fh 00h ??? PS/2 Model 90 XP
F8h 40h 00h ??? PS/2 Model 95 XP
F8h 41h 00h ??? PS/2 Model 77
F8h 45h 00h ??? PS/2 Model 90 XP (Pentium)
F8h 46h 00h ??? PS/2 Model 95 XP (Pentium)
F8h 47h 00h ??? PS/2 Model 90/95 E (Pentium)
F8h 48h 00h ??? PS/2 Model 85
F8h 49h 00h ??? PS/ValuePoint 325T
F8h 4Ah 00h ??? PS/ValuePoint 425SX
F8h 4Bh 00h ??? PS/ValuePoint 433DX
F8h 4Eh 00h ??? PS/2 Model 295
F8h 50h 00h ??? PS/2 Model P70 (8573) (16 MHz 386)
F8h 50h 01h 12/16/89 PS/2 Model P70 (8570-031)
F8h 52h 00h ??? PS/2 Model P75 (33 MHz 486)
F8h 56h 00h ??? PS/2 Model CL57 SX
F8h 57h 00h ??? PS/2 Model 90 XP
F8h 58h 00h ??? PS/2 Model 95 XP
F8h 59h 00h ??? PS/2 Model 90 XP
F8h 5Ah 00h ??? PS/2 Model 95 XP
F8h 5Bh 00h ??? PS/2 Model 90 XP
F8h 5Ch 00h ??? PS/2 Model 95 XP
F8h 5Dh 00h ??? PS/2 Model N51 SLC
F8h 5Eh 00h ??? IBM ThinkPad 700
F8h 61h *** ??? Olivetti P500
F8h 62h *** ??? Olivetti P800
F8h 80h 00h ??? PS/2 Model 80 (25 MHz 386)
F8h 80h 01h 11/21/89 PS/2 Model 80-A21 (25 Mhz 386)
F8h 81h 00h ??? PS/2 Model 55-5502
F8h 87h 00h ??? PS/2 Model N33SX
F8h 88h 00h ??? PS/2 Model 55-5530T
F8h 97h 00h ??? PS/2 Model 55 Note N23SX
F8h 99h 00h ??? PS/2 Model N51 SX
F8h F2h 30h ??? Reply Model 32
F8h F6h 30h ??? Memorex Telex
F8h FDh 00h ??? IBM Processor Complex (with VPD)
F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX)
F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX)
F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX + 487SX)
F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX + 487SX)
E4h ??? ??? ??? Triumph Adler PC/XT
E1h ??? ??? ??? ??? (checked for by DOS4GW.EXE)
E1h 00h 00h ??? PS/2 Model 55-5530 Laptop
D9h ??? ??? ??? Peacock XT
9Ah * * ??? Compaq XT/Compaq Plus
30h ??? ??? ??? Sperry PC
2Dh * * ??? Compaq PC/Compaq Deskpro
??? 56h ??? ??? Olivetti, unknown model
??? 74h ??? ??? Olivetti, unknown model
Notes: BIOS dates may vary without changes to the revision code, especially
for non-IBM machines
* This BIOS call is not implemented in these early versions or under
Linux's DOSEMU. Read the Model byte at F000h:FFFEh and BIOS date at
F000h:FFF5h instead.
** These BIOS versions require the DASDDRVR.SYS patches.
*** These Olivetti and Epson machines store the submodel in the byte at
F000h:FFFDh.
SeeAlso: #00509,#00516
(Table 00516)
Values for Dell model byte:
02h Dell 200
03h Dell 300
05h Dell 220
06h Dell 310
07h Dell 325
09h Dell 310A
0Ah Dell 316
0Bh Dell 220E
0Ch Dell 210
0Dh Dell 316SX
0Eh Dell 316LT
0Fh Dell 320LX
11h Dell 425E
SeeAlso: #00509,#00515
Format of Compaq product information:
Address Size Description (Table 00517)
F000h:FFE4h BYTE product family code (first byte)
F000h:FFE5h BYTE Point release number
F000h:FFE6h BYTE ROM version code
F000h:FFE7h BYTE product family code (second byte)
F000h:FFE8h WORD BIOS type code
SeeAlso: #00518,#00520
Format of Hewlett-Packard ROM ID at F000h:00F8h:
Offset Size Description (Table 00518)
00h 2 BYTEs signature "HP" (48h 50h)
02h 2 BYTEs 00h 00h
04h BYTE secondary code revision
05h BYTE primary code revision
06h BYTE date code, year-1960 (BCD)
07h BYTE date code, week of year (BCD)
SeeAlso: #00517,#00519
Bitfields for Hewlett-Packard product identifier:
Bit(s) Description (Table 00519)
4-0 machine code
0 original Vectra
1 ES/12
2 RS/20
3 Portable/CS
4 ES
5 CS
6 RS/16
other reserved
7-5 CPU type
0 = 80286
1 = 8088
2 = 8086
3 = 80386
other reserved
SeeAlso: #00518
Format of Toshiba laptop information:
Offset Size Description (Table 00520)
00h 8 BYTEs ASCII product number (e.g. "T2200SX ")
08h 8 BYTEs ASCII version number (e.g. "V1.20 ")
10h 8 BYTEs ASCII signature string "TOSHIBA "
18h 8 BYTEs always zero???
20h DWORD -> built-in BIOS setup program entry point or 0000h:0000h
Note: this record is located at F000h:E000h
SeeAlso: #00517,#00518
(Table 00521)
Values for Toshiba product ID:
model prodID version date product number
FEh 29h ../..).. Toshiba T1000LE
FEh 2Ah ../..*.. Toshiba T1000XE
FEh 2Bh ../..+.. Toshiba T1000SE
FEh 2Ch ../..,.. Toshiba T1000
FEh 2Dh ../..-.. Toshiba T1200F
FEh 2Dh V4.00 12/26-87 Toshiba T1200H
FEh 2Eh ../..... Toshiba T1100+
FCh 22h ../..".. Toshiba T8500
FCh 26h 01/15&88 Toshiba T5200
FCh 27h ../..'.. Toshiba T5100
FCh 28h ../..(.. Toshiba T2000
FCh 2Ah 12/26*89 Toshiba T1200XE
FCh 2Bh ../..+.. Toshiba T1600
FCh 2Ch ../..,.. Toshiba T3100e
FCh 2Dh ../..-.. Toshiba T3200
FCh 2Fh ../../.. Toshiba T3100
FCh 34h V1.50 02/04494 Toshiba T100X
FCh 38h ../..8.. Toshiba T2000SXe
FCh 39h V1.20 09/16991 Toshiba T2200SX
FCh 39h V1.40 10/01992 Toshiba T2200SX
FCh 3Ch V1.50 01/28<91 Toshiba T2000SX
FCh 3Dh ../..=.. Toshiba T3200SXC
FCh 3Eh ../..>.. Toshiba T3100SX
FCh 3Fh ../..?.. Toshiba T3200SX
FCh 40h ../..@.. Toshiba T4500C
FCh 41h V1.20 04/05A92 Toshiba T4500 ("T4500SXC" ???)
FCh 45h V3.20 04/14E92 Toshiba T4400SX ("C" or "SXC" on cover)
FCh 45h 01/13E93 Toshiba T4400SXC
FCh 46h * ../..F.. Toshiba T6400
FCh 46h * ../..F.. Toshiba T6400C
FCh 5Fh V1.40 01/18_94 Toshiba T3300SL
FCh 69h ../..i.. Toshiba T1900C ("T1900CT" ???)
FCh 6Ah V1.30 05/19j93 Toshiba T1900 ("T1900S" ???)
FCh 6Dh V1.10 12/25m92 Toshiba T1850C
FCh 6Eh V1.00 08/19n92 Toshiba T1850
FCh 6Eh V1.10 12/25n92 Toshiba T1850
FCh 6Fh V1.00 07/17o92 Toshiba T1800
FCh 6Fh V1.10 12/25o92 Toshiba T1800
FCh 7Eh V1.30 06/17~93 Toshiba T4600C
FCh 7Fh V1.40 11/10x94 Toshiba T4600
FCh 8Ah V1.30 10/22x93 Toshiba T6600C
FCh 91h V1.20 07/15x94 Toshiba T2400CT
FCh 91h V5.00 07/28x95 Toshiba T2400CS/CT
FCh 92h V5.00 07/28x95 Toshiba T3600CT
FCh 96h * V1.40 12/08x94 Toshiba T200
FCh 96h * V1.50 12/08x94 Toshiba T200CS (T200)
FCh 97h ../..x.. Toshiba T4800CT
FCh 98h * V1.10 12/22x93 Toshiba T1910
FCh 98h * V2.40 07/12x94 Toshiba T1910/CS (T19XX)
FCh 99h ../..x.. Toshiba T4700CS
FCh 9Bh V2.30 01/31x94 Toshiba T4700CT
FCh 9Bh V2.50 03/22x94 Toshiba T4700CT
FCh 9Bh V5.00 07/28x95 Toshiba T4700CT
FCh 9Ch V1.30 01/11x94 Toshiba T1950CT
FCh 9Ch V2.50 07/22x94 Toshiba T1950CT (T19XX)
FCh 9Dh * V2.40 07/12x94 Toshiba T1950/CS (T19XX)
FCh 9Eh * V1.20 12/25x93 Toshiba T3400
FCh 9Eh * V1.30 03/22x94 Toshiba T3400/CT
FCh B5h ** V5.10 08/25x95 Toshiba T2110/CS (T21XX)
FCh B5h V5.10 08/25x95 Toshiba T2130CS/CT (T21XX)
FCh BAh V1.30 02/16x95 Toshiba T2150CDS/CDT
FCh BAh V5.00 07/27x95 Toshiba T2150CDS/CDT (T2150)
FCh BBh ** V1.30 01/25x95 Toshiba T2100/CS/CT
FCh BBh ** V5.00 07/27x95 Toshiba T2100/CS/CT
FCh BCh V1.20 12/05x94 Toshiba T2450CT
FCh BCh V5.00 07/28x95 Toshiba T2450CT
FCh BEh V5.00 07/28x95 Toshiba T4850CT
FCh C0h V5.20 05/30x96 Toshiba 420CDS/CDT
FCh C1h V5.20 03/27x96 Toshiba 100CS
FCh C3h V5.60 07/19x96 Toshiba 710CDT / 720CDT
FCh C6h V5.30 11/30x95 Toshiba 410CS/CDT
FCh CAh V5.10 08/18x95 Toshiba 400CS/CDT
FCh CAh V5.40 12/18x95 Toshiba 400CS/CDT
FCh CBh V5.10 09/01x95 Toshiba 610CT
FCh CCh V5.50 06/13x96 Toshiba 700CS/CT
FCh CFh V5.00 08/07x95 Toshiba T4900CT
FCh DCh V5.10 06/17x96 Toshiba 650CT
FCh DCh V5.10 05/10x96 Toshiba 110CS/CT
FCh DDh V5.10 05/10x96 Toshiba 110CS/CT
FCh DFh V5.20 05/27x96 Toshiba 500CS/CDT
FCh ??? V5.??? ../..x.. Toshiba 620CT
FCh ??? V5.??? ../..x.. Toshiba 660CDT
FCh ??? V5.30 11/22/96 Toshiba 730CDT
FCh ??? V6.00 09/20/96 Toshiba 200CDS/CDT
FCh ??? V6.20 11/14/96 Toshiba 430CDS/CDT
FCh ??? V6.40 12/05/96 Toshiba 510CS/CDT
Notes: the 8-bit ASCII graphics character in the "date" column above
has been substituted by "x" if larger than 80h
BIOS version numbers and dates may vary, esp. due to harddisk and
(flash) BIOS upgrades; all BIOS versions 5.xx are flash updates
for Windows95, the product number may indicate the series only
(T21XX) or does no longer contain the exact type suffix (CS/CT)
the most recent versions of the BIOS have stopped including the
product ID code in the BIOS date
[*] These models have monochrome and color versions which can be
distinguished with INT 42/AX=7503h (WD90C24 chipset)
[**] These models have monochrome and color versions which can be
distinguished with INT 10/AX=5F50h (CT655xx chipset)
models not found here like T21x5 are variants differing only in
bundled software
SeeAlso: #00515
Top
INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS) AH = C1h Return: CF set on error CF clear if successful ES = segment of data area (see #M0001,#M0004,#M0005) SeeAlso: AH=04h"ABIOS",MEM 0040h:000Eh"DATA"Top
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE AX = C200h BH = new state 00h disabled 01h enabled Return: CF set on error AH = status (see #00522) Note: IBM classifies this function as required SeeAlso: AX=C201h,AX=C207h,AX=C208h (Table 00522) Values for pointing device function status: 00h successful 01h invalid function 02h invalid input 03h interface error 04h need to resend 05h no device handler installedTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET AX = C201h Return: CF set on error AH = status (see #00522) CF clear if successful BH = device ID BL = value returned by attached device after reset AAh if device is a mouse Notes: after successful completion of this call, the pointing device is set as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm, scaling 1:1, unchanged data package size this function should be called before rebooting the system (see INT 15/AH=4Fh), since otherwise the mouse may behave erratically on some systems after the boot. Before calling this function, the caller should check that the INT 15h vector is in fact initialized (on some very old machines the IVT may contain 0000h:0000h). IBM classifies this function as required SeeAlso: INT 33/AX=0000h,AX=C200h,AX=C207hTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE AX = C202h BH = sampling rate 00h 10/second 01h 20/second 02h 40/second 03h 60/second 04h 80/second 05h 100/second 06h 200/second Return: CF set on error AH = status (see #00522) SeeAlso: INT 33/AX=001ChTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION AX = C203h BH = resolution (see #00523) Return: CF set on error AH = status (see #00522) (Table 00523) Values for pointing device resolution: 00h one count per mm 01h two counts per mm 02h four counts per mm 03h eight counts per mmTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE AX = C204h Return: CF set on error AH = status (see #00522) CF clear if successful BH = device IDTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE AX = C205h BH = data package size (1 - 8 bytes) Return: CF set on error AH = status (see #00522) Note: the pointing device is set as follows: disabled, 100 Hz sample rate, resolution 4 counts/mm, scaling 1:1 SeeAlso: AX=C201hTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS AX = C206h BH = subfunction 00h return device status Return: BL = pointing device status (see #00524) CL = resolution (see #00523) DL = sample rate, reports per second 01h set scaling at 1:1 02h set scaling at 2:1 Return: CF set on error AH = status (see #00522) Bitfields for pointing device status: Bit(s) Description (Table 00524) 0 right button pressed 1 reserved 2 left button pressed 3 reserved 4 0 if 1:1 scaling, 1 if 2:1 scaling 5 device enabled 6 0 if stream mode, 1 if remote mode 7 reservedTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR AX = C207h ES:BX -> FAR user device handler or 0000h:0000h to cancel Return: CF set on error AH = status (see #00522) Note: when the subroutine is called, it is passed the following values on the stack; the handler should return with a FAR return without popping the stack: WORD 1: status (see #00525) WORD 2: X data (high byte = 00h) WORD 3: Y data (high byte = 00h) WORD 4: 0000h SeeAlso: INT 33/AX=000Ch Bitfields for pointing device status: Bit(s) Description (Table 00525) 15-8 reserved (0) 7 Y data overflowed 6 X data overflowed 5 Y data is negative 4 X data is negative 3 reserved (1) 2 reserved (0) 1 right button pressed 0 left button pressedTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - WRITE TO POINTER PORT AX = C208h BL = byte to be sent to the pointing device Note: IBM classifies this function as optional SeeAlso: AX=C200h,AX=C209hTop
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - READ FROM POINTER PORT AX = C209h Return: BL = first byte read from pointing device CL = second byte read DL = third byte read Note: IBM classifies this function as optional SeeAlso: AX=C200h,AX=C208hTop
INT 15 - IBM SurePath BIOS - Officially "Private" Function AH = C2h AL = 10h-23h SeeAlso: AH=07h"IBM",AH=3Eh"IBM"Top
INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+) AH = C3h AL = function 00h disable PS/2 watchdog timer 01h enable PS/2 watchdog timer BX = timer counter (0001h-00FFh) 02h disable Gearbox system 03h enable Gearbox system Return: CF set on error CF clear if successful Note: the watchdog timer generates an NMI SeeAlso: INT 21/AH=2Bh/CX=6269h"WDTSR"Top
INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+) AH = C4h AL = subfunction 00h return base POS register address 01h enable selected slot for setup BL = slot number (1 to 8) 02h disable setup for all slots (enable adapter) Return: CF set on error DX = base POS register address (if subfunction 00h) SeeAlso: AH=C6hTop
INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95) AH = C5h AL = interrupt being invoked 01h INT 19 02h INT 14 03h INT 16 04h INT 40 (floppy INT 13) 05h INT 17 06h INT 10 07h INT 12 08h INT 11 09h INT 1A Return: all registers except AX must be preserved Notes: called as the very first action of the indicated ROM BIOS interrupt handlers on the PS/2 Models 30/286, 50Z, and 95 default handler does nothing and returns CF clear for the above subfunctions, CF set and AH=86h for all other subfunctions value of AX passed to the original interrupt handler is pushed on stack immediately prior to callTop
INT 15 U - later PS/2 models - GET POS DATA AH = C6h ??? Return: ??? Notes: this function is referenced by name and number in some IBM BIOS manuals IBM reports that "there are a number of problems with this call" and does not recommend its use. SeeAlso: AH=C4hTop
INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION AH = C7h DS:SI -> user supplied memory map table (see #00526) Return: CF set on error CF clear if successful Notes: call AH=C0h and examine bit 4 of feature byte 2 to check if this function is supported IBM classifies this function as optional Windows95 OSR2 reportedly does not support this function even though INT 15/AH=C0h indicates that it is available (observed on several different systems) SeeAlso: AH=C0h,AH=C9h,AH=D1h,AX=E820h Format of memory-map table structure: Offset Size Description (Table 00526) 00h WORD length of table (excluding this word) 02h DWORD local memory between 1M and 16M, in 1K blocks 06h DWORD local memory between 16M and 4G, in 1K blocks 0Ah DWORD system memory between 1M and 16M, in 1K blocks 0Eh DWORD system memory between 16M and 4G, in 1K blocks 12h DWORD cacheable memory between 1M and 16M, in 1K blocks 16h DWORD cacheable memory between 16M and 4G, in 1K blocks 1Ah DWORD 1K blocks before start of non-system memory between 1M and 16M 1Eh DWORD 1K blocks before start of non-system memory between 16M and 4G 22h WORD start segment of largest free block from C0000h-DFFFFh 24h WORD size of largest free block 26h DWORD reservedTop
INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS AH = C8h AL = function 00h disable L1 cache 01h enable L1 cache ---models 90 and 95 only--- 02h disable L2 cache 03h enable L2 cache 04h disable both caches 05h enable both caches 06h return status of both caches 07h-FFh Reserved Return: CF set on error CF clear if successful AH = status (see #00527) For subfunction 06h only: BL = status of L1 cache 00h enabled 01h disabled or not installed 02h disabled due to test error (can not be enabled) BH = status of L2 cache (same codes as BL) Notes: supported by at least PS/2 70, 70/486, 80-A21, 90, 95 call AH=C0h and examine bit 3 of feature byte 2 to check if this function is supported. on a 486 system, any external caches must be disabled when the on-chip cache (L1) is disabled. SeeAlso: AH=C0h (Table 00527) Values for status: 00h operation successful 01h function choice (in AL) is invalid 02h NVRAM data is invalid 03h cache test error 04h (90 and 95 only) cannot perform operation requested due to state of other cache (also see note above) 05h no L2 cache is present 07h invalid input values 09h CPU in protected modeTop
INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION AH = C9h AL = 10h (may be required on some non-PS BIOSes) Return: CF clear if successful AH = 00h CH = CPU type (see #00528) CL = mask revision (stepping level) (see #00529) CF set on error AH = status (80h,86h = function not supported) Notes: the BIOS must save DX at startup in order to be able to support this call; PS/2 Models 56, 57, 90, and 95 are known to support it the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev) IBM classifies this function as optional SeeAlso: AX=D100h,AX=DA92h,MEM 0040h:00BCh (Table 00528) Values for CPU type: 03h 80386DX or clone 04h 80486 05h Pentium 23h 80386SX or clone 33h Intel i376 43h 80386SL or clone A3h IBM 386SLC A4h IBM 486SLC (Table 00529) Values for stepping level: ---i376 (type code 33h)--- 05h A0 08h B ---80386/80386DX (type code 03h)--- 03h Intel B1 to B10, Am386DX/DXL step A 05h Intel D0 08h Intel D1/D2/E1, Am386DX/DXL step B ---80386SL (type code 43h)--- 05h A 1xh B ---80386SX (type code 23h)--- 04h Intel A0 05h Intel B, Am386SX/SXL step A1 08h Intel C/D1, Am386SX/SXL step B 09h Intel 386CX/386EX/386SXstatic step A ---80486DX (type code 04h)--- 00h Intel A0/A1 01h Intel B2 to B6 02h Intel C0 03h Intel C1 04h Intel D0 10h Intel cA2/cA3, Cx486SLC step A 11h Intel cB0/cB1 ---486DX2 (type code 04h)--- 02h Am486DX2 (unknown stepping) 32h Intel DX2/Overdrive steps A0 to A2 33h Intel DX2/Overdrive step B1 ---486SX (type code 04h)--- 20h Intel A0 22h Intel B0 27h Intel cA0 28h Intel cB0 ---486SL (type code 04h)--- 40h Intel A ---IntelSX2 (type code 04h)--- 5xh Intel A ---IntelDX4 (type code 04h)--- 8xh Intel A ---487SX (type code 04h)--- 20h Intel A0 21h Intel B0 ---Pentium (type code 05h)--- 0xh Intel P5 steps Ax (1993) 1xh Intel P5 steps Bx (1994) 2xh Intel P54C step A ---RapidCAD (type code 03h)--- 40h ATop
INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY AH = CAh AL = function 00h read CMOS Return: CL = value of CMOS location 01h write CMOS CL = new value for CMOS location BL = CMOS location (0Eh-3Fh) Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00530) Note: writes do not update the CMOS checksum (Table 00530) Values for CMOS read/write error code: 01h CMOS lost power or has invalid checksum 03h specified location out of range (too high) 04h specified location out of range (too low) 80h unsupported function (PC) 86h unsupported function (XT)Top
INT 15 U - PS/2 Model 95 - RESERVED AH = CBh ??? Return: ???Top
INT 15 U - PS/2 Model 95 - RESERVED AH = CCh ??? Return: ???Top
INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK AX = CCCCh Return: AX = ABCDh if installed Note: supported by Toshiba VGA change display utility VCHAD.EXE ver 2.90+ older versions have the string "VCHAD" 2 bytes after the address of the INT 15 handler which is hooked by all versions for the SysReq key SeeAlso: AH=85hTop
INT 15 U - PS/2 Model 95 - RESERVED AH = CDh ??? Return: ???Top
INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL AH = CEh BL = 00h-0Eh arbitration level to be allocated 0Fh-FFh reserved AL = option byte bit 7-1: reserved (0) bit 0: 0 = need DMA channel for arbitration level requested 1 = no channel required for arbitration level Return: CF set on error AH = status (80h,86h = function not supported) CF clear on success AL = channel number 00h-07h channel number allocated for the arbiration level 08h-FEh reserved FFh no channel requested for arbitration level AH = status (see #00531) Notes: arbitration level 00h has the highest priority, 0Eh the lowest to perform a DMA transfer operation, be sure to call this function first, and call AH=CFh afterward. Failure to use this function can cause unpredictable results. SeeAlso: AH=CFh (Table 00531) Values for DMA arbitration status: 00h success 01h arbitration level not available 02h channel not available 03h invalid arbitration level passedTop
INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL AH = CFh BL = arbitration level to be deallocated (see AH=CEh) Return: CF set on error AH = status (80h,86h = function not supported) CF clear on success AH = status 00h success 04h arbitration level not allocated SeeAlso: AH=CEhTop
INT 15 - later PS/2s - RESERVED AH = D0h ??? Return: ???Top
INT 15 R - Intel Pentium Pro BIOS UPDATE - INSTALLATION CHECK AX = D042h BL = 00h Return: CF clear if successful CF set on error AH = status 00h successful EBX:ECX = signature "INTELPEP" EDX = BIOS update loader version SI = number of 2K update blocks which can be recorded in NVRAM 86h not implemented AL = OEM error (if AH is not 00h or 86h, otherwise undefined) 00h successful Program: the Pentium Pro BIOS update allows the system BIOS or other software to install a microcode patch into the Pentium Pro processor Notes: this API must be called from actual real mode, not V86 mode at least 32K stack space must be available when this function is called SeeAlso: AX=D042h/BL=01h,AX=D042h/BL=02h,AX=D042h/BL=03h SeeAlso: @xxxxh:xxxxh"Intel BIOS Upgrade",MSR 00000079hTop
INT 15 R - Intel Pentium Pro BIOS UPDATE - WRITE BIOS UPDATE AREA AX = D042h BL = 01h ES:DI -> microcode update block (see #00533) CX,DX,SI = segments of three 64K scratchpad areas for BIOS use Return: CF clear if successful CF set on error AH = status (see #00532) AL = OEM error (if AH is not 00h or 86h, otherwise undefined) 00h successful Notes: a microcode update may also be initiated by a WRMSR instruction with ECX=0079h, EDX=00000000h, and EAX=linear address of update block (see #00533) at least 32K stack space must be available when this function is called SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=02h,AX=D042h/BL=03h,MSR 00000079h (Table 00532) Values for Pentium Pro BIOS update status: 00h successful 86h not implemented 90h unable to erase NVRAM device 91h unable to write to NVRAM device 92h unable to read storage 93h NVRAM is full 94h specified processor stepping is not present in system 95h invalid header or loader version 96h wrong checksum in header 97h processor rejected the update 98h the same or a more recent update is already stored 99h update block number was out of range Format of Pentium Pro microcode update block: Offset Size Description (Table 00533) 00h DWORD update header version number (currently 00000001h) FFFFFFFFh = unused block 04h DWORD revision number of this microcode update 08h DWORD update creation date, as BCD mmddyyyy (month,day,year) 0Ch DWORD family/model/stepping of processor to which update applied (same value as returned by CPUID instruction) 10h DWORD checksum (used to force sum of all 512 DWORDs of the update block to 00000000h) 14h DWORD revision number of loader needed to install update (currently 00000001h) 18h 24 BYTEs reserved for future expansion 30h 2000 BYTEs encrypted microcode data SeeAlso: MSR 00000079h,OPCODE "CPUID"Top
INT 15 R - Intel Pentium Pro BIOS UPDATE - BIOS UPDATE CONTROL AX = D042h BL = 02h BH = function 01h enable update loading at initialization time 02h check whether update loading is enabled CX,DX,SI = segments of three 64K scratchpad areas for BIOS use Return: CF clear if successful CF set on error AH = status (see #00532) 00h successful BL = enabled/disabled flag 86h not implemented AL = OEM error (if AH is not 00h or 86h, otherwise undefined) 00h successful Notes: this API must be called from actual real mode, not V86 mode at least 32K stack space must be available when this function is called there is no call to disable update loading due to security risks; the BIOS setup can disable loading SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=02h,AX=D042h/BL=03hTop
INT 15 R - Intel Pentium Pro BIOS UPDATE - READ BIOS UPDATE AREA AX = D042h BL = 03h ES:DI -> buffer for microcode update block (see #00533) ECX = two real-mode 64K scratchpad segments (upper and lower words) DX = segment of 64K scratchpad area for BIOS use SI = zero-based index number of update block to retrieve Return: CF clear if successful CF set on error AH = status 00h successful ES:DI buffer filled with 2048-byte update block 86h not implemented AL = OEM error (if AH is not 00h or 86h, otherwise undefined) 00h successful Program: the Pentium Pro BIOS update allows the system BIOS or other software to install a microcode patch into the Pentium Pro processor Notes: this API must be called from actual real mode, not V86 mode at least 32K stack space must be available when this function is called SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=01h,AX=D042h/BL=03hTop
INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES AX = D100h DX = 0000h (reserved, must set to 0) Return: BL = size of one DDT entry, in bytes CX = number of DDT entries AH = return code (see #00534) CF set on error CF clear on success SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D101h,AX=D102h,AX=D103h,AX=D104h (Table 00534) Values for return code: 00h success 01h requested DDT entry not found 02h DDT data not valid 86h function not supportedTop
INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER AX = D101h BX = number of requested entry (starting with 1) DX = 0000h (reserved, must be set to 0) ES:DI -> buffer to contain DDT entry (see #00535) Return: AH = return code (see #00534) CF set on error CF clear on success ES:DI buffer filled with DDT entry SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D102h,AX=D104h Format of Device Descriptor Table (DDT): Offset Size Description (Table 00535) 00h BYTE bits 7-4: reserved (set to 0) bits 3-0: slot of device (0 = system board) 01h BYTE bits 7-4: second interrupt for this device (0 = none) bits 3-0: first interrupt for this device (0 = none) 02h BYTE bits 7-4: second arbitration level for this device bits 3-0: first arbitration level for this device 03h WORD DDT indicators (see #00536) 05h BYTE reserved (0) 06h WORD device ID (0 = none) 08h WORD starting address of first I/O block (0 = none) 0Ah WORD starting address of second I/O block (0 = none) OCh WORD starting address of third I/O block (0 = none) OEh DWORD start of first non-system memory block (0 = none) 12h WORD size of first non-system memory block (in kilobytes) 14h DWORD start of second non-system memory block (0 = none) 18h WORD size of second non-system memory block (in kilobytes) 1Ah BYTE implementation identifier of the device 1Bh BYTE implementation revision level of the device Note: I/O block addresses and non-system memory addresses are listed in ascending order in each DDT entry. Bitfields for DDT indicators: Bit(s) Description (Table 00536) 15 reserved (0) 14 second arbitration level exists 13 first arbitration level exists 12 serial interface is RS-422 11 not address limited 10 DMA channel used 9 second arbitration level can be shared 8 first arbitration level can be shared 7-0 reserved (0)Top
INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS AX = D102h BX = entry number at which to start searching CX = requested I/O port address DX = 0000h (reserved, must be set to 0) ES:DI -> buffer to contain DDT entry (see #00535) Return: AH = return code (see #00534) BX = DDT entry number where I/O port was found, or total entries plus 1 if port was not found. CF set on error CF clear on success ES:DI buffer filled with DDT entry Desc: the DDT is searched from the specified entry for the I/O port in CX, and the first entry in which it is found is returned SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h,AX=D104hTop
INT 15 - later PS/2s - RETURN ENTIRE DDT AX = D103h DX = 0000h (reserved, must be set to 0) ES:DI -> buffer to contain DDT entry (see #00535) Return: AH = return code (see #00534) CF set on error CF clear on success ES:DI buffer filled with DDT entry SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D104hTop
INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID AX = D104h BX = entry number at which to start searching CX = requested device ID DX = 0000h (reserved, must be set to 0) ES:DI -> buffer to contain DDT entry (see #00535) Return: AH = return code (see #00534) BX = DDT entry number where device ID was found, or total entries plus 1 if port was not found. CF set on error CF clear on success ES:DI buffer filled with DDT entry Desc: the DDT is searched from the specified entry for the device ID in CX, and the first entry in which it is found is returned. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103hTop
INT 15 - later PS/2s - RESERVED AH = D2h ??? Return: ???Top
INT 15 - later PS/2s - RESERVED AH = D3h ??? Return: ???Top
INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT) AH = D4h DL = logical fixed disk drive number Return: AH = return code (see #00537) CF set on error CF clear on success AL = physical fixed disk drive number (Table 00537) Values for return code: 00h success 01h specified logical drive number is invalid 80h function not supported (on PCjr and PC) 86h function not supportedTop
INT 15 - later PS/2s - RESERVED AH = D5h ??? Return: ???Top
INT 15 - later PS/2s - READ BOOT DEVICE ID AX = D600h BL = 00h DX = device ID Return: CF clear if successful AH = 00h CF set on error AH = status (86h for function not supported) SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h,AX=D602hTop
INT 15 - later PS/2s - WRITE BOOT DEVICE ID AX = D600h BL = 01h DX = device ID Return: CF clear on success AH = 00h CF set on error AH = status (86h for function not supported) SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01hTop
INT 15 - later PS/2s - READ BOOT DEVICE KEY AX = D601h BL = 00h DX = device ID Return: CF clear on success AH = 00h CF set on error AH = status (86h for function not supported) SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h,AX=D602hTop
INT 15 - later PS/2s - WRITE BOOT DEVICE KEY AX = D601h BL = 01h DX = device ID Return: CF clear on success AH = 00h CF set on error AH = status (86h for function not supported) SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00hTop
INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION AX = D602h Return: CF clear on success AH = 00h AL = status of reference-partition boot request 00h boot not requested 01h boot requested CF set on error AH = status (86h for function not supported) SeeAlso: AX=D601h/BL=00hTop
INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION AX = D800h CL = slot number (including embedded and virtual) Return: CF clear if successful AH = 00h CF set on error AH = error code (80h,82h,83h,86h,87h)(see #00539) AL = bit flags (see #00538) BH = major revision level of configuration utility BL = minor revision level of configuration utility CX = checksum of configuration file DH = number of device functions DL = combined function information byte (see #00540) SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3) Note: call with AL=80h if using 32-bit CS addressing mode instead of 16-bit SeeAlso: AX=D801h,AX=D804h Bitfields for EISA AL bit flags: Bit(s) Description (Table 00538) 7 set if duplicate IDs 6 set if product ID readable 4,5 slot type (00=expansion, 01=embedded, 10=virtual device) 0-3 duplicate ID number if bit 7 set SeeAlso: #00540 (Table 00539) Values for EISA error code: 80h invalid slot number 81h invalid function number 82h EISA CMOS corrupt 83h empty slot 84h error clearing CMOS 85h EISA CMOS is full 86h invalid BIOS-FW function call 87h invalid system configuration 88h config utility version not supported Bitfields for EISA combined function information byte: Bit(s) Description (Table 00540) 7 reserved 6 slot has free-form data entries 5 slot has port initialization entries 4 slot has port-range entries 3 slot has DMA entries 2 slot has IRQ entries 1 slot has memory entries 0 slot has function type entries SeeAlso: #00538Top
INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION AX = D801h CH = function number to read CL = slot number (including embedded and virtual) DS:SI -> 320-byte buffer for standard configuration data block Return: CF clear if successful AH = 00h DS:SI buffer filled CF set on error AH = error code (80h-83h,86h,87h) (see #00539) BX destroyed Note: call with AL=81h if using 32-bit CS addressing mode instead of 16-bit this function is also supported by the Compaq SystemPro 486, but it uses more than 1297 bytes of stack. BUG: some implementations appear to destroy the DF direction flag; the Novell DOS 7+ memory managers explicitly clear it afterwards.Top
INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS) AX = D802h BH = EISA config utility major revision level BL = EISA config utility minor revision level Return: CF clear if successful AH = 00h CF set on error AH = error code (84h,86h,88h) (see #00539) Note: call with AL=82h if using 32-bit CS addressing mode instead of 16-bit SeeAlso: AX=D803hTop
INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY AX = D803h CX = length of data structure (0000h = empty slot) includes two bytes for config file checksum DS:SI -> configuration data Return: CF clear if successful AH = 00h CF set on error AH = error code (84h-86h) (see #00539) Note: call with AL=83h if using 32-bit CS addressing mode instead of 16-bit SeeAlso: AX=D802hTop
INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT AX = D804h CL = slot number (including embedded and virtual) Return: CF clear if successful AH = 00h CF set on error AH = error code (80h,83h,86h) (see #00539) SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3) Note: call with AL=84h if using 32-bit CS addressing mode instead of 16-bit SeeAlso: AX=D800hTop
INT 15 - Compaq LTE Lite - GET ??? AX = D820h DS:SI -> 17-byte buffer for ??? Return: DS:SI buffer filled (first byte is length of remaining data, unless it is greater than 10h, in which case the second byte is 00h and no other data is returned) Note: this function is also supported by Compaq's EISA System ROM, Contura 486/486c/486cx and recent DESKPRO/i ROMs SeeAlso: AX=D821hTop
INT 15 - Compaq LTE Lite - SET ??? AX = D821h DS:SI -> counted string (should not be more than 16 bytes) Return: AH = 00h Note: this function is also supported by Compaq's EISA System ROM, Contura 486/486c/486cx and recent DESKPRO/i ROMs SeeAlso: AX=D820hTop
INT 15 - Compaq EISA System ROM 04/08/93 - GET ??? AX = D822h BL = 00h CX = size of buffer or 0000h to retrieve required buffer size DS:SI -> buffer for ??? (if CX nonzero) Return: CF clear if successful AH = 00h DH = 08h CX = required buffer size to retrieve all data (if CX=0 on entry) DS:SI buffer filled (if CX nonzero on entry) CF set on error (BL nonzero) AH = 86hTop
INT 15 - Compaq EISA System ROM 04/08/93 - ??? AX = D823h BL = subfunction??? (00h or 80h) BH = ??? DS:SI -> buffer for ??? (see #00541) Return: CF clear if successful AH = 00h DH = 08h DL = ??? CF set on error AH = error code 86h BL neither 00h nor 80h 87h ??? Format of Compaq EISA buffer: Offset Size Description (Table 00541) 00h BYTE ??? 01h WORD ??? 03h BYTE ??? 04h WORD ??? 06h WORD ??? ???Top
INT 15 - Compaq EISA System ROM 04/08/93 - ??? AX = D824h CX = ??? DS:SI -> ASCIZ string containing ??? Return: CF clear if successful AH = 00h CX = ??? CF set on error AH = error code 87h ??? failed 88h ??? Note: these functions are only available if ??? from keyboard controller command C0hTop
INT 15 - Compaq EISA System ROM 04/08/93 - ??? AX = D825h CX = ??? SI = ??? DI = ??? ??? Return: CF clear if successful AH = 00h CX = ??? CF set on error AH = error code 87h ??? failed 88h ??? CX = ??? Note: these functions are only available if ??? from keyboard controller command C0hTop
INT 15 - Compaq EISA System ROM 04/08/93 - ??? AX = D826h BX = ??? CX = size of buffer in bytes DS:SI -> buffer for ??? ??? Return: CF clear if successful AH = 00h CX = ??? CF set on error AH = error code 87h ??? failed 88h ??? Note: these functions are only available if ??? from keyboard controller command C0hTop
INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS AH = D8h AL = 80h to 84h other registers as appropriate for AL=00h to 04h Return: as appropriate for AL=00h to 04h Note: these functions are identical to AX=D800h to D804h, except that they should be called when using 32-bit CS addressing mode (pointers use ESI rather than SI as offset) instead of 16-bit addressing mode SeeAlso: AX=D800h,AX=D801h,AX=D802h,AX=D803h,AX=D804hTop
INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS AH = D8h AL = A0h to A6h other registers as appropriate for AL=20h to 26h Return: as appropriate for AL=20h to 26h Note: these functions are identical to AX=D820h to D826h, except that they should be called when using 32-bit CS addressing modeTop
INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ??? AH = DAh AL = function (00h-08h,12h,14h,15h,19h,88h-8Eh,92h,99h) other registers vary by function Return: CF clear if successful varies by function CF set on error AH = error code (86h unsupported [sub]function) Note: functions not listed above always return CF set and AH=86h; in the examined BIOS, functions 02h-04h,06h-07h,89h-8Bh, and 8Dh also always return CF set and AH=86h SeeAlso: AX=DA00h,AX=DA01h,AX=DA88h,AX=DA99h,AX=DB00hTop
INT 15 U - AMI PCI BIOS - ??? AX = DA00h CL = subfunction 00h ??? 01h ??? 02h get ??? ??? Return: CF clear if successful ??? CF set on error AH = error code (86h unsupported subfunction) Note: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h always return failure SeeAlso: AX=DA01hTop
INT 15 U - AMI PCI BIOS - CPU SPEED CONTROL AX = DA01h CL = subfunction (00h-02h) 00h set low CPU speed 01h set high CPU speed 02h get current CPU speed Return: CF clear if successful AH = current/new CPU speed (00h low, 01h high) AL = ??? (00h) CF set on error AH = error code (86h unsupported subfunction) Notes: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h are NOPs in both protected and V86 modes due to a test of MSW bit 0 setting the CPU speed also generates the same audible signals generated when manually switching speeds with Ctrl-Alt-Gray- and Ctrl-Alt-Gray+ BUG: the BIOS apparently intends to return CF set if ???, but fails to use a different exit path in that case, resulting in CF clearTop
INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS AX = DA05h ES:SI -> 8-byte buffer for ??? and BIOS revision strings Return: CF clear ES:SI buffer filled AL = 00h CX = ??? (0000h) Notes: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision string is "AX1 " SeeAlso: AX=DA15h,AX=DB04hTop
INT 15 U - AMI PCI BIOS - ??? AX = DA08h ??? Return: CF clear if successful ??? CF set on error AH = error code (86h unsupported subfunction) Note: in the examined v1.00.05.AX1 BIOS, this call always returns failureTop
INT 15 U - AMI PCI BIOS - v1.00.05.AX1 - ??? AX = DA12h CL = subfunction 00h ??? 01h ??? 02h get ??? 03h ??? 04h ??? ??? Return: CF clear if successful ??? CF set on error AH = error code (86h unsupported subfunction) Desc: ??? performs various manipulations on system chipset registers Notes: subfunctions 00h and 01h are NOPs in protected and V86 modes due to a test of MSW bit 0 subfunctions 00h-02h always return successTop
INT 15 U - AMI PCI BIOS - GET/SET ??? AX = DA14h CL = subfunction 00h read 01h write DH = new value for ??? (00h-02h) DL = index of ??? (00h-03h, but not range-checked) ??? Return: CF clear if successful DH = current value of ??? if reading CF set on error AH = error code (86h unsupported subfunction) Note: the values for indexes 00h and 01h are stored in CMOS RAM location 19h, and the values for 02h and 03h are stored in location 36h BUG: the v1.00.05.AX1 BIOS range-checks DH on subfunction 00h instead of subfunction 01h, even though DH is never used by subfunction 00hTop
INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS AX = DA15h ES:DI -> 8-byte buffer for ??? and BIOS revision strings Return: CF clear ES:DI buffer filled AL = 00h Note: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision string is "AX1 " SeeAlso: AX=DA05h,AX=DB04hTop
INT 15 U - AMI PCI BIOS - GET/SET ??? AX = DA19h CL = subfunction 00h get first ??? 01h get second ??? 02h set first ??? BX = ??? DX = ??? 03h set second ??? BX = ??? DX = ??? Return: CF clear if successful AX = 0000h BX,DX = ??? (subfunctions 00h and 01h only) CF set on error AH = error code (86h unsupported subfunction) Note: the first ??? is stored in CMOS RAM locations 1Bh-1Eh, the second in locations 1Fh-22h in the v1.00.05.AX1 BIOSTop
INT 15 U - AMI PCI BIOS v1.00.12.AX1T - CMOS RAM BITFIELD MANIPULATION AX = DA20h BL = subfunction 00h set CMOS data field BH = CMOS data field number (00h-4Dh) CH = new value for bitfield (in lowest bits of register) 01h read CMOS data field BH = CMOS data field number (00h-4Dh) Return: CH = value of bitfield CL = mask of valid bits Note: both CL/CH shifted to move valid bits into lowest pos 02h set CMOS byte CL = CMOS RAM address (00h-7Fh) CH = new value for CMOS byte 03h get CMOS byte CL = CMOS RAM address (00h-7Fh) Return: CH = value of CMOS byte 04h update CMOS checksums Note: sets 2Eh/2Fh to checksum of 10h-2Dh and 7Eh/7Fh to checksum of 48h-7Dh 05h verify CMOS checksums Return: CF clear if checksums OK AH = 00h CF set if checksum mismatch AH = 01h Return: CF clear if successful AH = 00h CF set on error AH = error code (86h unsupported function/data field) Notes: this function was not supported by the v1.00.05.AX1 BIOS, but had been added by 1.00.12.AX1T after using subfunctions 00h or 02h, the application must call subfunction 04h to update the checksums to prevent an error the next time the system is booted (Table 00542) Values for AMI BIOS v1.00.12.AX1T CMOS bitfield identifier: ID address bit(s) contents 00h 1Ah 7-6 01h 1Dh 7-6 02h 6Eh 1 03h 77h 0 04h 77h 1 05h 77h 2 06h 77h 3 07h 77h 5 08h 77h 6 09h 77h 7 0Ah 78h 7 power management enabled??? 0Bh 78h 6 0Ch 10h 7-4 first floppy drive type 0Dh 10h 3-0 second floppy drive type 0Eh 11h 7 0Fh 20h 4-0 selected language for error messages/setup utility 10h 11h 2-1 11h 11h 4 12h 11h 0 13h 11h 3 14h 13h 7 15h 13h 6-5 16h 13h 4-2 17h 19h 7 18h 19h 6 19h 19h 5 1Ah 19h 4 1Bh 1Eh 2-0 1Ch 1Bh 7-6 1Dh 1Ch 7 1Eh 1Ch 3 1Fh 1Ah 5-4 20h 1Dh 5-4 21h 1Bh 5-4 22h 1Ch 6 23h 1Ch 2 24h 1Ah 3-2 25h 1Dh 3-2 26h 1Bh 3-2 27h 1Ch 5 28h 1Ch 1 29h 1Ah 1-0 2Ah 1Dh 1-0 2Bh 1Bh 1-0 2Ch 1Ch 4 2Dh 1Ch 0 2Eh 50h 7-0 2Fh 51h 7-0 30h 52h 7-0 31h 53h 7-0 32h 60h 0 33h 60h 0 34h 60h 0 35h 60h 0 36h 60h 0 37h 60h 0 38h 60h 1 39h 61h 7 3Ah 60h 2 3Bh 61h 6-4 3Ch 61h 2-0 3Dh 60h 7-6 3Eh 60h 5-4 3Fh 78h 5-4 40h 6Eh 5 41h 1Eh 3 42h 6Eh 0 43h 6Eh 2 44h 6Fh 1-0 45h 6Fh 1-0 46h 28h 4-2 47h 28h 7-5 48h 6Eh 4 49h 6Eh 3 4Ah 76h 7-0 4Bh 77h 4 4Ch 11h 6 4Dh 1Fh 7-0Top
INT 15 U - AMI PCI BIOS - GET EXTENDED MEMORY SIZE AX = DA88h Return: CF clear (successful) AX = 0000h CL:BX = extended memory size in KBytes SeeAlso: AH=88hTop
INT 15 U - AMI PCI BIOS - GET BIOS AND CHIPSET IDENTIFICATION AX = DA8Ch CL = subfunction 00h get BIOS version string ES:DI -> 12-byte buffer for version string 01h get chipset identification BL = what to retrieve (00h host/PCI bridge,01h motherboard chipset) ES:DI -> 12-byte buffer for chipset identification (see #00543) Return: CF clear if successful ES:DI buffer filled CF set on error AH = error code (86h unsupported subfunction) Notes: the v1.00.05.AX1 BIOS returns "1.00.05.AX1 " as its version string subfunction 01h returns the five bytes read from the PCI configuration registers 00h-05h (see #00878), padded to 12 bytes with NULs SeeAlso: AX=DB04h,PORT C000h"Neptune" Format of AMI PCI BIOS chipset identification: Offset Size Description (Table 00543) 00h WORD vendor ID (see #00732 at AX=B102h) 8086h = Intel 02h WORD device ID 0484h (BL=01h) 04A3h (BL=00h) 04h BYTE low byte of PCI Command Register 05h 7 BYTEs unused (00h)Top
INT 15 U - AMI PCI BIOS - ??? AX = DA8Eh ??? Return: CF clear if successful ??? CF set on error AH = error code (86h unsupported subfunction) Note: in the v1.00.05.AX1 BIOS, this call always returns failureTop
INT 15 U - AMI PCI BIOS - GET CPU TYPE AND SPEED AX = DA92h Return: CF clear (successful) AL = CPU stepping (see also #00529 at INT 15/AH=C9h) AH = CPU model BL = CPU family (05h = Pentium, etc.) CX = external clock speed in MHz (BCD) (0040h,0050h,0060h,0066h are possible return values on my Pentium with the Intel "Neptune" chipset) EAX high word destroyed Note: 90 MHz and faster Pentium CPUs can be configured to run at varying multiples of the external clock speed, i.e. a typical 90 MHz Pentium system will run the motherboard at 60 MHz (my 90 MHz Pentium returns 0060h in CX) SeeAlso: AH=C9hTop
INT 15 U - AMI PCI BIOS - GET/SET ??? FLAG AX = DA99h CL = subfunction 00h check if ??? 01h set ??? flag 02h clear ??? flag Return: CF clear if successful AH = ??? (00h,01h) AL = 00h CF set on error AH = error code (86h unsupported subfunction) Note: the flag is stored in bit 0 of CMOS RAM location 2Ch for BIOS v1.00.05.AX1Top
INT 15 U - AMI BIOS - Flash ROM - READ FLASH BIOS AX = DB00h DS:SI -> parameter block (see #00544) ES:DI -> buffer for copied information Return: CF clear if successful CF set on error AH = status (86h if not implemented) DS,ES destroyed, possibly other registers Note: used by FMUP.EXE, Intel's Flash Memory Update utility SeeAlso: AH=DAh,AX=DB01h,AX=DB04h Format of AMI BIOS Flash ROM parameter block: Offset Size Description (Table 00544) 00h 32 BYTEs ASCIZ description of the file's contents 20h BYTE Logical area type (see #00545) 21h DWORD logical area size (overall size of area) 25h BYTE flag: load from file (FF=yes, 00=no) 26h BYTE flag: reboot after update (FF=yes, 00=no) 27h BYTE flag: update entire image (FF=yes, 00=no) 28h 24 BYTEs ASCIZ logical area name (cooresponds to offset 20) "System BIOS" "Logo Data Area", etc. 40h 15 BYTEs ASCIZ time stamp string: MM/DD/YY-HH:MM 4Fh BYTE checksum for this header (sum of all bytes except this one) if checksum would be 00h,01h, or FFh, it is set to 2Ah 50h DWORD this file's starting address (offset in image) 54h DWORD size of image chunk in this file 58h BYTE logical area type - same as offset 20h 59h BYTE flag: last file in chain (FF=yes, 00=no) 5Ah 6 BYTEs ASCIZ signature "FLASH" 60h 16 BYTEs ASCIZ filename of next file in chain 70h 16 BYTEs ASCIZ BIOS reserved string (usually version #) Notes: this block is identical in format to the 128-byte header on an AMI BIOS Update file for AX=DB00h, the following fields must be specified: 50h,54h,58h; the fields at offset 20h and 5Ah should also be set if possible the fields at offsets 40h and 70h will be set on return, if available SeeAlso: #00546Top
INT 15 U - AMI BIOS - Flash ROM - GET BIOS SUBSYSTEM INFORMATION AX = DB01h CL = BIOS subsystem information identifier (see #00545) Return: CF clear if successful AX = 0000h ES:DI -> 56-byte record describing subsystem (see #00546) CF set on error AH = status 01h nonexistent subsystem 86h function not supported AL = 00h Note: used by FMUP.EXE, Intel's Flash Memory Update utility SeeAlso: AX=DB00h,AX=DB02h (Table 00545) Values for AMI BIOS subsystem identifier: 00h recovery code 01h system BIOS 02h PCI configuration data 03h OEM logo data area (see #00547) 04h system BIOS/Language Set (one system) configuration utility (another system) SeeAlso: #00546 Format of AMI BIOS subsystem information: Offset Size Description (Table 00546) 00h BYTE subsystem identifier/logical area type (see #00545) 01h DWORD subsystem (FlashROM page) size in bytes 05h BYTE flag: loadable from file (FFh=yes) 06h BYTE flag: reboot after update (FFh=yes) 07h BYTE flag: update entire image (FFh=yes) 08h 24 BYTEs subsystem/logical area name 20h BYTE subsystem identifier??? 21h BYTE flag: reprogrammable if FFh 22h BYTE ??? (01h,02h seen) 23h 5 BYTEs ??? (apparently always 00h) 28h 16 BYTEs BIOS reserved string (usually version number) SeeAlso: #00544 Format of AMI OEM Logo data area: Offset Size Description (Table 00547) 00h 8 BYTEs signature "TEXTLOGO" if text-mode OEM logo 8 DUP (FFh) if unused 08h WORD offset of logo font definition table 0Ah WORD offset of logo data 0Ch WORD size of logo font table in words 0Eh WORD offset of upper left corner of logo in video page 10h WORD width of logo 12h WORD height of logo 14h BYTE reserved??? var var logo font definition (16 bytes per character) var var logo data as character/attribute pairs Note: the attribute for the logo characters specifies which font will be used for that character. If bit 3 is cleared, the normal system font is used; if bit 3 is set, the logo font is used, with screen colors adjusted to match the corresponding non-bright attribute for the system font SeeAlso: #00545,#00546Top
INT 15 U - AMI BIOS - Flash ROM - GET SIZE OF FLASH ROM PROGRAMMING CODE AX = DB02h Return: CF clear AX = 0000h BX = size of ROM programming code in bytes Note: used by FMUP.EXE, Intel's Flash Memory Update utility SeeAlso: AX=DB00h,AX=DB03hTop
INT 15 U - AMI BIOS - Flash ROM - GET FLASH ROM PROGRAMMING CODE AX = DB03h DS:SI -> ??? ES:DI -> buffer for Flash ROM programming code BX = ??? DX = ??? Return: CF clear if successful AH = ??? BX = ??? DX = ??? CF set on error AH = error code Notes: the entry point for the copied code (which is fully relocatable) is the very first byte (see #00548) used by FMUP.EXE, Intel's Flash Memory Update utility SeeAlso: AX=DB00h,AX=DB02h (Table 00548) Call AMI BIOS ??? code with: AL = function 00h erase Flash ROM block CX = ??? bit 8: address line A16 inverted ??? 01h program new data into Flash ROM ??? 02h perform cold reboot DS:SI -> ??? (see #00549) ES:DI -> ??? Return: AH = status 00h successful 01h invalid function 02h ??? 03h ??? 04h ??? Note: DS:SI and ES:DI are ignored for function 02h Format of AMI BIOS Flash ROM programming parameters: Offset Size Description (Table 00549) 00h 32 BYTEs ??? 20h BYTE BIOS section number 21h DWORD length of BIOS code/data in bytes 25h 43 BYTEs ??? 50h DWORD ??? 54h 44 BYTEs ??? SeeAlso: #00548Top
INT 15 U - AMI BIOS - Flash ROM - GET BIOS REVISION AX = DB04h Return: CF clear if supported BL:BH:DL:DH = BIOS revision string (e.g. 'AX1 ' for v1.00.05.AX1, 'AV0M' for v1.00.03.AV0M) CL = flag: DH valid? 00h ignore DH; ignore DL as well if 20h (space) 01h ignore DH if 20h (space) CH = BIOS status 00h normal mode 01h ROM recovery mode AL = ??? (02h) Note: used by FMUP.EXE, Intel's Flash Memory Update utility SeeAlso: AX=DA05h,AX=DA15h,AX=DA8Ch,AX=DB00h,AX=DB03hTop
INT 15 - DESQview - GET PROGRAM NAME
AX = DE00h
Return: AX = offset into DESQVIEW.DVO of program most recently selected from
the "Switch Windows" menu (see #00550)
Note: always returns AX=0000h under DESQview/X
SeeAlso: AX=DE07h
Format of program entry in DESQVIEW.DVO:
Offset Size Description (Table 00550)
00h BYTE length of name (FFh if end of file)
01h N BYTEs name
2 BYTEs keys to invoke program (second = 00h if only one key used)
BYTE program type
00h normal program
04h divider
80h Delete a Program
81h Change a Program
WORD ??? apparently always 0000h
Top
INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU AX = DE01h Return: nothing Notes: reads DESQVIEW.DVO, disables Open menu if file not in current directory NOP for DESQview/XTop
INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW AX = DE02h Return: nothing Note: this call is a NOP in DV 2.x SeeAlso: AX=DE03hTop
INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW AX = DE03h Return: AX = ??? for current window BX = ??? for current window Note: this call is a NOP in DV 2.x SeeAlso: AX=DE02hTop
INT 15 - DESQview - GET AVAILABLE COMMON MEMORY AX = DE04h Return: BX = bytes of common memory available CX = largest block available DX = total common memory in bytes SeeAlso: AX=DE05h,AX=DE06hTop
INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY AX = DE05h Return: BX = KB of memory available CX = largest block available DX = total conventional memory in KB SeeAlso: AX=DE04h,AX=DE06hTop
INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY AX = DE06h Return: BX = KB of expanded memory available CX = largest block available DX = total expanded memory in KB SeeAlso: AX=DE04h,AX=DE05hTop
INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER AX = DE07h Return: AX = number of program as it appears on the "Switch Windows" menu Note: this API call may be made from a hardware interrupt handler SeeAlso: AX=DE00hTop
INT 15 - DESQview - GET ??? AX = DE08h Return: AX = 0000h if ??? is not set to the current task 0001h if ??? is set to the current taskTop
INT 15 - DESQview - UNIMPLEMENTED AX = DE09h Return: nothing (NOP in DV 1.x and 2.x)Top
INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE AX = DE0Ah BL = character Return: character displayed, next call will display in next position (which wraps back to the start of the line if off the right edge of screen) Notes: displays character on bottom line of *physical* screen, regardless of current size of window (even entirely hidden) does not know about graphics display modes, just pokes the characters into display memory this API call may be made from a hardware interrupt handler SeeAlso: AX=1003hTop
INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED AX = DE0Bh BL = API level minor version number BH = API level major version number Return: AX = maximum API level (AH = major, AL = minor) Notes: if the requested API level is greater than the version of DESQview, a "You need a newer version" error window is popped up the API level defaults to 1.00, and is inherited by child tasksTop
INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY AX = DE0Ch BX = number of bytes Return: ES:DI -> allocated block or 0000h:0000h (DV 2.26+) Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient system memory SeeAlso: AX=1001h,AX=102Eh,AX=DE0Dh,AX=DE15h,AX=DE19hTop
INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY AX = DE0Dh ES:DI -> previously allocated block Return: nothing SeeAlso: AX=1002h,AX=DE0ChTop
INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME AX = DE0Eh ES:DI -> name to find (see #00551) CX = length of name Return: BX = 0000h not found 0001h found DS:SI = object handle SeeAlso: AH=12h/BH=11h,AH=12h/BH=12h"GETNAME" (Table 00551) Values for special DESQview mailbox names: "COM1" ... "COM4" RBcomm using COM1 ... COM4 "DESQview/X Help Engine" "DESQview/X Network Server" Network Manager "DESQview X Server0" X-Windows server "DESQview X Server7" X-Windows printing service "INBOX" DESQview/X LPD requests "OUTBOX" DESQview/X LPD responses "WAITBOX" semaphore to synchronize DESQview/X LPD communications "_DVNM_" DV/X v1.10 network managerTop
INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS AX = DE0Fh Return: AX and BX destroyed (seems to be bug, weren't saved&restored) Notes: sends a manager stream with opcodes AEh, BDh, and BFh to task's window enables an additional mouse modeTop
INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM AX = DE10h BH = scan code BL = character Return: nothing Notes: a later read will get the keystroke as if it had been typed by the user multiple pushes are read last-in first-out if a script exists for the pushed key in the current application, the script will be executed early copies of DV 2.00 destroy AX, BX, ES, and DI SeeAlso: INT 16/AH=05hTop
INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION AX = DE11h BL = 00h viewport will not move automatically nonzero viewport will move to keep cursor visible (default) Return: nothingTop
INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET AX = DE12h BX = 0000h select normal style (linefeed only moves down) nonzero select C style (linefeed moves to start of next line) Return: nothing Note: set on a per-task basis, and inherited from the parent taskTop
INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT AX = DE13h Return: BX = number of calls to BEGINC or ENTERC (see INT 15/AX=101Bh,INT 15/AX=DE1Ch) without matching ENDC (see INT 15/AX=101Ch) Note: this API call may be made from within a hardware interrupt handler SeeAlso: AX=101Bh,AX=101Ch,AX=DE1Bh,AX=DE1ChTop
INT 15 - DESQview v2.20+ - GET OBJECT TYPE AX = DE14h ES:DI -> object Return: BL = 00h not an object 08h window or task 09h mailbox 0Ah keyboard 0Bh timer 0Ch objectq 0Fh pointer 10h panel SeeAlso: AX=1016hTop
INT 15 - DESQview v2.20+ - SET ERROR HANDLING AX = DE15h BL = error handling mode 00h post system error on all error conditions 01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE messages sent to mailboxes which fail due to lack of system or common memory 02h (v2.26+) same as 01h, but also return null pointer for GETMEM calls which fail due to lack of system memory Return: nothing SeeAlso: AX=DE0Ch,AX=DE16hTop
INT 15 - DESQview v2.20+ - GET ERROR HANDLING AX = DE16h Return: BL = current mode 00h always post system error 01h return carry flag set on failed mailbox writes 02h return CF set on failed mailbox writes and NULL on failed GETMEM calls SeeAlso: AX=DE15hTop
INT 15 - DESQview v2.20-2.25 - reserved AX = DE17h Return: pops up "Programming error" window Note: AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25 SeeAlso: AX=1117hTop
INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT AX = DE17h BX = function 0000h get current mapping context without setting nonzero set new mapping context to BX Return: BX = mapping context in effect before call Notes: mapping contexts determine conventional-memory addressability; setting a mapping context ensures that the associated program and data areas are in memory for access. Usable by drivers, TSRs and shared programs. caller need not be running under DESQview this API call may be made from a hardware interrupt handler SeeAlso: AX=1016h,AX=1117h,AX=DE21h,INT 2F/AX=1685hTop
INT 15 - DESQview v2.20+ - internal - ??? AX = DE18h BP = function number high byte must be 10h low byte is function 00h set ??? BL = ??? (00h-10h, video mode???) BH = value to store 03h set ??? BL = ??? (stored in driver) 0Ah get ??? ES:DI -> 18-byte buffer to hold ??? Note: calls video driver (NOP for Hercules driver,probably CGA and MCGA also)Top
INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY AX = DE19h BX = number of bytes to allocate Return: AX = 0000h successful ES:DI -> allocated block nonzero insufficient memory Note: this API call may be made from within a hardware interrupt handler SeeAlso: AX=DE0Ch,AX=DE15h,AX=DE1AhTop
INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY AX = DE1Ah ES:DI -> previously allocated block Return: AX = 0000h (successful) Note: this function may be called from within a hardware interrupt handler SeeAlso: AX=DE0Dh,AX=DE19hTop
INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT AX = DE1Bh Return: nothing SeeAlso: AX=101Ch,AX=DE13h,AX=DE1ChTop
INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT AX = DE1Ch Return: nothing Notes: similar to AX=101Bh, but begins the critical region without ensuring that DOS is free the official documentation states that this call should be paired with "ENDC" (AX=101Ch); no mention is made of AX=DE1Bh this API call may be made from within a hardware interrupt handler SeeAlso: AX=101Bh,AX=101Ch,AX=DE13h,AX=DE1BhTop
INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES AX = DE1Dh DX = segment of handle for task to receive keystroke BL = character BH = scan code Return: AX = 0000h if successful nonzero if receiver's keyboard buffer was full Notes: the key is treated as though the user had pressed it, ignoring any script which may be bound to the key, and using the current field table if the keyboard object is in field processing mode multiple PUTKEYs are seen in the order in which they are executed SeeAlso: AX=DE10hTop
INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS AX = DE1Eh Return: CL = actual number of rows on screen CH = actual number of columns on screen BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+) Note: this API call may be made from a hardware interrupt handler SeeAlso: INT 10/AH=0FhTop
INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS AX = DE1Fh Return: BX = segment of task handle or 0000h if no tasks are using DOS Note: this API call may be made from within a hardware interrupt handler SeeAlso: AX=DE13h,INT 21/AH=34hTop
INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK AX = DE20h BX = segment of handle of task to interupt DX:CX -> FAR interrupt routine BP,SI,DI,DS,ES as required by interrupt routine Return: nothing Notes: unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task making the DISPATCHINT call multiple "DISPATCHINT" calls are processed in the order in which they were executed the FAR routine is entered with the current ES, DS, SI, DI, and BP values, using the task's internal stack (see AX=101Ah); only SS:SP needs to be preserved this API call may be made from within a hardware interrupt handler SeeAlso: AX=1021h,AX=DE2AhTop
INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION AX = DE21h BX = new state 0000h turn off nonzero turn on Return: BX = old state of virtualization Notes: this API call may be made from within a hardware interrupt handler under DV 2.40 and 2.42, this call appears to have no effect and always returns a nonzero value in BX which appears to be the offset within the DV common memory segment of the caller's task object; it may only have an effect within a hardware interrupt handler SeeAlso: AX=1117h,AX=DE17hTop
INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS AX = DE22h DX = segment of task handle Return: DX = total amount of memory in paragraphs BX = amount of system memory in paragraphs CX = largest block of system memory available in paragraphs AX = memory flags (see #00552) Notes: if the task handle is a child task, the returned values will be for the process containing the task, rather than the task itself if the process's system memory is swapped out, BX,CX,DX remain unchanged, because the memory usage cannot be determined SeeAlso: AX=DE04h,AX=DE05h,AX=DE06h Bitfields for DESQview process memory flags: Bit(s) Description (Table 00552) 0 system memory resides in shared memory 1 process's memory is swapped out 2 process's system memory is swapped outTop
INT 15 U - DESQview v2.31+ - ??? AX = DE23h BX = ??? IRQ number on first PIC? CX = ??? IRQ number on second PIC? Return: ??? Note: called by QEMM 6.00+Top
INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION AX = DE24h BX = length of .DVP data CX = length of ??? string DS:SI -> ??? string ES:DI -> .DVP data (see #00427 at AX=102Ch) Return: BX = segment of task handle??? or 0000h on error Note: this call is similar to AX=102Ch except that it can interpret the extended DVP data SeeAlso: AX=102ChTop
INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY AX = DE25h ES:DI -> 67-byte buffer for ASCIZ directory name Return: ES:DI buffer filled with directory from which DESQview was started BUG: DV 2.42 does not place a terminating NUL at the end of the directory name, so if the buffer is not cleared to zeros before the call, there is no way to tell where the directory name ends. This bug has been fixed in DV 2.52 (DV/X 1.02) SeeAlso: AX=DE2Eh,INT 21/AH=47hTop
INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS AX = DE26h Return: BX = segment of handle for task with keyboard focus Note: under DESQview/X, the X server always has the keyboard focus unless a "direct" window is active SeeAlso: AX=DE2Fh,INT 2F/AX=DE0AhTop
INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA AX = DE27h BX = type 0000h process 0001h task ES:DI -> list of Instance Item Structures (see #00553) Return: CF clear if successful AX = ??? BX = ??? CF set on error AX = error code??? 0004h invalid BX value Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. SeeAlso: INT 2F/AX=DE08h,INT 2F/AX=DE09h Format of DESQview Instance Item Structure [one element of list]: Offset Size Description (Table 00553) 00h WORD length of data area DESQview should save and restore on context switches (0000h = end of list) 02h DWORD pointer to area to be saved/restoredTop
INT 15 U - DESQview v2.50+ - ??? AX = DE28h BX = segment of ??? or 0000h for default ??? Return: ??? Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. SeeAlso: AX=DE2AhTop
INT 15 U - DESQview/X - ??? AX = DE29h BX = 0000h ??? Return: CF clear if successful ??? CF set on error Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. under DESQview 2.60, this function and all other subfunctions of AX=DE29h always return CF set, as they are unique to DESQview/XTop
INT 15 U - DESQview/X - ??? AX = DE29h BX = 0001h DX = segment of window handle Return: CF clear if successful AX = ??? DX = ??? CF set on error Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.Top
INT 15 U - DESQview/X - ??? AX = DE29h BX = 0002h DX = segment of window handle Return: CF clear if successful AX = ??? DX = ??? CF set on error Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.Top
INT 15 U - DESQview/X - ??? AX = DE29h BX = 0003h DX = segment of window handle Return: CF clear if successful ??? CF set on error Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.Top
INT 15 U - DESQview/X - GET DISPLAY NAME AX = DE29h BX = 0004h CX = size of buffer in bytes DX = segment of window handle ES:DI -> buffer for display name Return: CF clear if successful buffer filled with ASCIZ display name (truncated if necessary) or null string if no display CF set on error Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. the name ":0" refers to the local displayTop
INT 15 U - DESQview/X - ??? AX = DE29h BX = 0005h ??? Return: CF clear if successful ??? CF set on error Note: under DESQview 2.60, this function and all other subfunctions of AX=DE29h always return CF set, as they are unique to DESQview/XTop
INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK AX = DE2Ah BX = segment of handle for task to interrupt or 0000h for caller DX:CX -> interrupt routine BP,SI,DI,DS,ES as required by interrupt routine Return: nothing Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. this call is the same as AX=DE20h except that it will delay interrupting the specified task until after it has exited DOS SeeAlso: AX=1021h,AX=DE20hTop
INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST AX = DE2Bh ES:DI -> starting object 0000h:0000h for first object in list??? Return: AX = status 0000h successful ES:DI -> next object of same type (window/non-window) 0001h failed (ES:DI was not a valid handle) Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. there are two separate lists, one for window/task objects and one for all other objects SeeAlso: AX=1016h,AX=DE2Ah,AX=DE2ChTop
INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION AX = DE2Ch DX = window information format version (0100h for DESQview 2.5x) BX = segment of window handle or 0000h for default ES:DI -> buffer for window information (see #00554) Return: AX = status 0000h successful Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. SeeAlso: AX=1000h,AX=1016h,AX=DE01h,AX=DE2Bh Format of DESQview window information: Offset Size Description (Table 00554) 00h BYTE task flag: 00h window, 01h task 01h BYTE process number if owner task 00h if non-owner task 02h WORD segment of owner's handle, 0000h if orphaned 04h WORD mapping context (see #00416 at AX=1016h) 06h BYTE task status (see #00555) 07h BYTE unused 08h WORD status bits (see #00556) 0Ah BYTE 01h if foreground-only window (Table 00555) Values for DESQview task status: 00h "Waiting" waiting for input 01h "Idle" keyboard poll limit reached 03h same as 01h 04h "Pausing" INT 15/AX=1000h pause called 04h DV/X direct: user did something to allow task switch 05h "ModeChg" video mode about to be changed 06h "ModeNtf" notify that video mode changed 07h "MoniCh" requested change to other monitor 08h "StartPgm" control relinquished to start new process 09h "MgrCan" made window manager CANCEL command 0Ah "Slicing" time slice expired 0Bh "Exit DOS" notify on DOS calls 0Ch "Enter DOS" process is re-entering DOS 0Dh "Terminate" INT 21/AH=4Ch or task freed 0Eh "BrkNxt" Control-Break pressed 0Fh "MgrCol" keyboard focus taken away 10h "PgmInt" interrupted by API call from another task 11h "BldOpen" call to INT 15/AX=DE01h Bitfields for DESQview task status bits: Bit(s) Description (Table 00556) 6 task is freeing another task 5 process is being created 4 user suspended process 3 process suspended itself 2 process is resized direct window (suspended) 1 process swapped out 0 DESQview processTop
INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER AX = DE2Dh CX = direction FFFFh set socket handler DX:BX -> FAR function for socket interface must be of the format described under INT 63"DESQview" at #03515 other get socket handler Return: DX:BX -> socket handler (see #03515) Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x. the "set" subfunction is normally called only by SOCKET.DVR SeeAlso: AX=DE2Eh,INT 63"DESQview",#03515Top
INT 15 U - DESQview v2.50+ - SOCKET API
AX = DE2Eh
DX:BX -> socket record (see #00558)
0000h:0000h to create a new socket record
Return: CX = size of socket record in bytes
DX:BX -> socket record which was used
Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
socket records are allocated from common memory
for Unix compatibility, each socket and connection on a socket is
allocated a DOS file handle (referencing an SFT for NUL) which is
used on various calls to specify which of possibly multiple
connections is to be operated upon
SeeAlso: AX=DE2Dh,INT 61/AX=0001h/SF=0001h"VINES",INT 63"DESQview"
(Table 00557)
Values for DESQview/X socket API function number:
0000h initialize socket???
0001h "gethostname"
0002h "ioctl" check for input
0003h "sleep" delay for specified period
0004h "htons" convert word to network (big-endian) byte order
0005h "select"
0006h "bsd_close"/"so_close" close socket
0007h NOP
0008h "connect" initiate connection on socket
0009h "recv"/"recvfrom" read from socket
000Ah "socket"
000Bh ???
000Ch "gethostbyname"
000Dh "send"/"sendto" write to socket
000Eh ??? (does something to all connections for process)
000Fh "getpid" get process identifier
0010h "gettimeofday"
0011h "bind" assign name to socket
0012h "listen" listen for connections on socket
0013h "accept" accept connection on socket
0014h connect to X server
0015h "gethostbyaddr" get host information for an address
0016h "getprotobyname"
0017h "getprotobynumber"
0018h "getservbyname"
0019h "getservbyport"
001Ah "getsockname" determine name bound to socket
001Bh "getpeername" get name of connected peer
001Ch "getsockopt"/"setsockopt"
001Dh "so_exit" close all sockets for calling process
001Eh "issock" determine whether file handle references socket
001Fh "so_attach" reattach previously detached socket
0020h "so_detach" temporarily detach socket
0021h "dvpath" get DESQview directory (see also AX=DE24h)
0022h "NewProc" start new application (see also AX=102Ch)
0023h "so_linkup"
0024h "CanonicalPath" canonicalize filename (see also INT 21/AH=60h)
0025h indirect INT 15h call
0026h Network Manager interface
0027h "so_unlink" close connection from "so_linkup"
0028h "raisepriority"
0029h "lowerpriority"
002Ah "so_private" ???
FFFFh "NetExit" (appears to be a NOP)
Format of DESQview/X socket record:
Offset Size Description (Table 00558)
00h WORD signature F0ADh
02h WORD function number (see #00557)
04h WORD returned error code (see #00578)
06h WORD maximum message size??? (usually 0400h)
08h WORD PSP segment to use or 0000h if socket not valid
0Ah WORD scratch space (JFT size)
0Ch DWORD scratch space (JFT address)
10h DWORD mailbox handle (initialized by function 0000h)
14h DWORD timer object handle (initialized by function 0000h)
---function 0000h---
18h WORD (ret) ???
---function 0001h---
18h WORD (ret) status???
1Ah 128 BYTEs (ret) ASCIZ hostname (empty string if not on network)
9Ah WORD maximum length of hostname to return
---function 0002h---
18h WORD (ret) status
1Ah WORD socket's file handle
1Ch WORD IOCTL function
05h "FIONREAD" determine available input
06h "FIONBIO" set blocking state of socket
1Eh WORD (return, subfn 05h) number of bytes available for reading
(call, subfn 06h) 0000h blocking, nonzero nonblocking
---function 0003h---
18h 2 BYTEs unused
1Ah WORD delay time in seconds
---function 0004h---
18h WORD (ret) result in network (big-endian) byte order
1Ah WORD value to convert to network byte order
---function 0005h---
18h WORD (ret) number of handles meeting the specified conditions???
1Ah WORD number of file handles in each bitset
1Ch DWORD bitset of socket handles to check for readability
20h DWORD bitset of socket handles to check for writability
24h DWORD bitset of socket handles to check for errors
28h WORD timeout in ??? or 0000h to block until some socket ready
2Ah DWORD ???
2Eh DWORD ???
---function 0006h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
---function 0008h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD 0001h if socket name specified, 0000h if not
1Eh WORD length of socket name
20h N BYTEs name of socket to which to connect
---function 0009h---
18h WORD (ret) number of bytes actually read, 0000h if connection
closed, or FFFFh on error
1Ah WORD socket's file handle
1Ch WORD number of bytes to read
1Eh WORD flags
20h WORD 0000h if no source address desired
0001h if source address is to be stored (datagram sockets)
22h WORD length of source address
24h 110 BYTEs source address
92h 1K BYTEs buffer for data to be read
---function 000Ah---
18h WORD (ret) socket's file handle or FFFFh on error
1Ah WORD address family (0001h,0002h)
1Ch WORD socket type
1Eh WORD protocol
---function 000Bh---
18h WORD (ret) 0001h if ??? or FFFFh on error
1Ah WORD socket's file handle
1Eh WORD (call) ???
---function 000Ch---
18h 128 BYTEs ASCIZ hostname (special case if empty string or "unix")
98h ??? (ret) packed 'hostent' structure
A2h ??? (ret) ???
---function 000Dh---
18h WORD (ret) number of bytes actually written or FFFFh on error
1Ah WORD socket's file handle
1Ch WORD number of bytes to write
1Eh WORD number of bytes to follow in subsequent writes???
20h WORD flags
22h WORD 0000h if no destination specified, 0001h if destination present
24h WORD 0001h if broadcast message???, 0000h if not
(ignored if no destination specified)
26h WORD length of destination address
28h 110 BYTEs destination address
96h 1K BYTEs buffer containing data to be written
---function 000Eh---
no additional fields
---function 000Fh---
18h DWORD (ret) DESQview task handle of calling process
---function 0010h---
18h DWORD (ret) current time
1Ch DWORD (ret) ???
---function 0011h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD length of name
1Eh N BYTEs buffer for socket name
---function 0012h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD maximum backlog of pending connections allowed on socket
---function 0013h---
18h WORD (ret) file handle for new connection or FFFFh on error
1Ah WORD listen()ing socket's file handle
1Ch WORD (call) length of buffer for connecting entity's address
(ret) actual length of address
1Eh N BYTEs buffer for connecting entity's address (110 bytes???)
---function 0014h---
18h WORD (ret) socket's file handle or FFFFh on error
1Ah 4 BYTEs (ret) ???
1Eh WORD (ret) ???
20h WORD (ret) ???
22h 256 BYTEs ASCIZ X display name
122h ???
---function 0015h---
18h WORD (call) type of address??? (test for 0001h seen)
1Ah WORD (call) length of buffer for host address
1Ch 110 BYTEs buffer containing ASCIZ host address
8Ah WORD (ret) offset of official host name
8Ch WORD (ret) offset of alias list???
8Eh WORD (ret) address type???
90h WORD (ret) length of an address in bytes???
92h WORD (ret) offset of address???
9Ah N BYTEs (ret) buffer for hostname, alias list, and host address
---function 0016h---
18h ??? buffer for ASCIZ protocol name
98h ???
---function 0017h---
18h WORD (call) protocol number
1Ah WORD (ret) ??? or 0001h
---function 0018h---
18h 128 BYTEs buffer containing ASCIZ ???
98h 128 BYTEs buffer containing ASCIZ ???
118h WORD (ret) ???
---function 0019h---
18h WORD port number
1Ah 128 BYTEs (call) ASCIZ host name
(ret) packed servent strctures???
9Ah WORD (ret) ???
---function 001Ah---
18h WORD (ret) 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD (call) length of buffer for socket name
(ret) actual length of socket name
1Eh N BYTEs buffer for socket name
---function 001Bh---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD (call) size of buffer for name
(ret) actual size of name
1Eh N BYTEs buffer for peer's name
---function 001Ch---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD direction: 0000h to get, 0001h to set
1Ch WORD socket's file handle
1Eh WORD option level
20h WORD option name
22h WORD (call) length of buffer for option value
(ret) actual length of option value
24h N BYTEs buffer for option value
---function 001Dh---
no additional fields
---function 001Eh---
18h WORD (ret) status: 0000h ??? or 0001h ???
1Ah WORD file handle which may or may not be a socket
---function 001Fh---
18h WORD (ret) file handle or FFFFh on error
1Ah DWORD (call) pointer to Socket Context Record (see #00579) of a
previously detached socket
---function 0020h---
18h WORD (ret) status: 0000h if successful or FFFFh on error
1Ah WORD socket's file handle
1Ch DWORD (ret) pointer to Socket Context Record (see #00579) for
the file handle
---function 0021h---
18h 64 BYTEs buffer for DESQview startup directory (see AX=DE25h)
---function 0022h---
18h DWORD (ret) task handle of new application
1Ch WORD size of .DVP data
1Eh 129 BYTEs ASCIZ ???
9Fh N BYTEs .DVP data (see #00427 at AX=102Ch)
---function 0023h---
18h WORD (ret) ??? or FFFFh on error
1Ah WORD socket's file handle???
---function 0024h---
18h WORD (ret) DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
0000h if successful
1Ah 129 BYTEs ASCIZ filename/pathname
11Bh 129 BYTEs ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
---function 0025h---
18h WORD value of AX
1Ah WORD value of BX
1Ch WORD (call) value of CX for call if AH value other than 12h
(call) number of stack parameters if AH value is 12h
(ret) returned CX for calls other than INT 15/AH=12h
1Eh WORD value of DX
20h WORD value of DI
22h WORD value of SI
24h WORD value of DS
26h WORD value of ES
28h WORD (ret) value of FLAGS after call
2Ah N DWORDs (call) stack parameters for INT 15/AH=12h call
(ret) stack results from INT 15/AH=12h call
---function 0026h---
18h WORD (call) Network Manager subfunction (see #00559)
(ret) status??? (0000h on error)
1Ah WORD (call) size of parameter data
(ret) size of returned data
1Ch N BYTEs (call) parameter data required by call (see #00560,#00561,#00577)
(ret) result data (see #00570,#00571,#00576)
---function 0027h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
---functions 0028h,0029h---
18h WORD (call) file handle for which to set priority low/high
FFFFh to change calling task's priority
---function 002Ah---
no additional fields
(Table 00559)
Values for DESQview/X Network Manager subfunction:
0004h "so_exit"???
0005h "gethostbyname"
0006h "gethostname"
0009h "socket"
000Dh "gethostbyaddr"
000Fh "getprotobyname"
0010h get protocol name for protocol number
0011h "getservbyname"
0012h "getservbyport" (see #00563)
0013h "getsockname"??? (see #00564)
0016h "shutdown" (see #00565)
0017h kill Network Manager
0018h "getpeername"??? (see #00566)
0019h ??? (called by socket function 0000h) (see #00567)
001Ah ??? (see #00568)
001Bh "so_linkup" (see #00569)
001Dh "getnetstatus" get network services (see #00570)
001Fh "getpwuid"
0020h "getpwnam"
0021h "getpwvar"
0022h "crypt"
0023h "so_unlink"
0024h "getlogin" (see #00571)
0028h "sethostent"
0029h "gethostent"
002Ah "soaddhost"
002Bh "soupdatehost"
002Ch "sodeletehost"
002Dh "setservent"
002Eh "getservent"
002Fh "setpwent"
0030h "getpwent" (see #00572)
0031h "sethostpath" (see #00573)
0032h "endservent"
0033h "endhostent"
0034h "getnettype" get IP network number (see #00574)
0035h ??? (pops up Network Manager window)
0037h "getnettimeout" (see #00575)
0038h get machine name and IP address (see #00576)
0039h "getuid" (see #00577)
---DV/X v2.0+ ---
0041h "deletepwnam"
0045h "renamepw"
Format of Function 0026h/Subfunction 000Fh data:
Offset Size Description (Table 00560)
00h 8 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0010h data:
Offset Size Description (Table 00561)
00h 2 BYTEs (ret) ???
02h WORD (ret) protocol number
04h WORD (call) protocol number for which to get name
06h WORD (ret) ???
08h var (ret) ASCIZ protocol name
N var (ret) ASCIZ protocol name
Format of Function 0026h/Subfunction 0011h data:
Offset Size Description (Table 00562)
00h 8 BYTEs ???
08h var (ret) ASCIZ protocol name
var (ret) ASCIZ ??? name
var (ret) ASCIZ ??? name
Format of Function 0026h/Subfunction 0012h data:
Offset Size Description (Table 00563)
00h 8 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0013h data:
Offset Size Description (Table 00564)
00h 116 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0016h ("shutdown") data:
Offset Size Description (Table 00565)
00h WORD (ret) shutdown status (0000h successful, FFFFh error)
02h 4 BYTEs (ret) ???
04h WORD (call) socket handle
06*h WORD (call) what (0 = receives, 1 = sends, 2 = both)
Format of Function 0026h/Subfunction 0018h data:
Offset Size Description (Table 00566)
00h 116 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0019h data:
Offset Size Description (Table 00567)
00h 4 BYTEs (ret) ???
04h DWORD (ret) task handle of ???
Format of Function 0026h/Subfunction 001Ah data:
Offset Size Description (Table 00568)
00h 38 BYTEs (ret) ???
Format of Function 0026h/Subfunction 001Bh data:
Offset Size Description (Table 00569)
00h 10 BYTEs (ret) ???
Format of Function 0026h/Subfunction 001Dh return data [array]:
Offset Size Description (Table 00570)
00h WORD ??? or FFFFh if end of array
02h 7 BYTEs ???
09h 27 BYTEs ASCIZ name of service
Format of Function 0026h/Subfunction 0024h return data:
Offset Size Description (Table 00571)
00h var ASCIZ username
Format of Function 0026h/Subfunction 0030h data:
Offset Size Description (Table 00572)
00h WORD (call) UID or 0000h for current user
(ret) ???
02h WORD (ret) UID
04h 6 BYTEs (ret) ???
0Ah var (ret) ASCIZ username
var (ret) ASCIZ encrypted password
var (ret) ASCIZ initial ("home") directory
Format of Function 0026h/Subfunction 0031h ("sethostpath") data:
Offset Size Description (Table 00573)
00h 4 BYTEs ???
04h 144 BYTEs ASCIZ ???
Format of Function 0026h/Subfunction 0034h data:
Offset Size Description (Table 00574)
00h 1-3 BYTEs IP network number of caller's machine (low byte first)
Format of Function 0026h/Subfunction 0037h ("getnettimeout") return data:
Offset Size Description (Table 00575)
00h WORD (ret) timeout
02h 2 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0038h return data:
Offset Size Description (Table 00576)
00h BYTE ???
01h 4 BYTEs IP address
05h var ASCIZ machine name
???
Format of Function 0026h/Subfunction 0039h ("getuid") return data:
Offset Size Description (Table 00577)
00h WORD user ID
02h 2 BYTEs ???
SeeAlso: #00573,#00576
(Table 00578)
Values for DESQview/X socket error code:
0000h successful
0009h "BADF" bad file handle
000Ch "ENOMEM" out of memory
000Eh "EFAULT" bad address
0016h "EINVAL" invalid argument
0018h "EMFILE" too many open files
0020h "EPIPE" ??? broken pipe
0023h "EWOULDBLOCK" operation cannot be completed at this time
0024h "EINPROGRESS" operation now in progress
0026h "ENOTSOCK" socket invalid
0028h "EMSGSIZE" message too long to send atomically
002Ch "ESOCKTNOSUPPORT" socket type not supported
002Fh "EAFNOSUPPORT" address family not supp. by protocol fam.
0031h "EDOM" argument too large
0038h "EISCONN" socket is already connected
0039h "ENOTCONN" socket is not connected
Format of DESQview/X Socket Context Record:
Offset Size Description (Table 00579)
00h DWORD pointer to next Socket Context Record, 0000h:0000h if last
04h WORD SFT index for socket, 00FFh if not connected, FFFFh if detached
06h WORD PSP segment of owner or 0000h
08h WORD mapping context of owning window (see #00416 at AX=1016h)
0Ah 2 BYTEs ???
0Ch WORD address family
0Eh WORD socket type
10h WORD protocol
12h WORD socket state
0001h created
0002h bound
0003h listening???
0005h connected
14h DWORD timer object handle
18h DWORD object handle (mailbox???)
1Ch DWORD object handle of parent of above object or 0000h:0000h
20h DWORD pointer to ??? or 0000h
24h 6 BYTEs ???
2Ah WORD file handle for socket or FFFFh
2Ch 2 BYTEs ???
2Eh WORD nonzero if socket nonblocking
---network connections only---
30h 2 BYTEs ???
32h WORD ???
34h 4 BYTEs (big-endian) IP address of remote
38h 6 BYTEs ???
Top
INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE? AX = DE2Fh Return: BX = status 0001h keyboard focus has been given to a direct window since the last call 0000h if not Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10. Quarterdeck stated that this call would not be available under future versions of DESQview Classic, but it is still present in v2.60Top
INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION AX = DE30h Return: BX = version (BH=major, BL=minor) or 0000h if not DESQview/X Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10. you must first check the DESQview version to verify that it is 2.50 or greater SeeAlso: INT 21/AH=2Bh/CX=4445hTop
INT 15 - DESQview/X v1.10 - ??? AX = DE31h CX = ??? 0000h ??? nonzero ??? ??? Return: ???Top
INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL AH = DFh AL = function 00h turn on Turbo mode 01h turn off Turbo mode 02h set Turbo mode according to hardware switch SeeAlso: INT 13/AX=FFFFhTop
INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH AX = E00Fh ES:BX -> start of 2nd processor's execution Return: AL = status 0Fh successful 00h failure SeeAlso: AX=E10Eh,AX=E200hTop
INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH AX = E10Eh ES:BX -> start of 2nd processor's execution Return: AL = status 0Fh successful (halted) 00h failure (not halted) SeeAlso: AX=E00Fh,AX=E200hTop
INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE AX = E200h Return: AX bit 15 set if 2nd processor available SeeAlso: AX=E00Fh,AX=E10EhTop
INT 15 - Tandy??? - ??? AH = E4h AL = subfunction 21h, 89h, 8Ah, 8Bh called by 386MAX v6.01 DL = ??? Return: DL = 00h if successful??? Note: the section of code in 386MAX which calls these functions also checks whether the ROM BIOS has both Tandy and Phoenix Technologies signatures if these calls fail; the Tandy 1000SL/TL BIOS does not support this function, however, returning the usual CF set/AH=86h for "unsupported function".Top
INT 15 - Compaq ROM BIOS 1993/08/03 and newer - ??? AH = E4h AL = subfunction 00h get advanced system info Return: CF clear AH = 00h CX = 0000h BX = advanced system info flags (read from [XBDA:0094h]) bit 4: "mode 2" (dual harddisk controller) enabled 01h,02h unsupported by this ROM version Return: CF set, AH = 86h 80h set advanced system info BX = advanced system info flags bit 4: enable "mode 2" (dual harddisk controller) ??? Return: ??? Note: On Compaq machines with "COMPAQ" signature at F000h:FFEAh (see also MEM F000h:FFE0h), MS-DOS/PC DOS IO.SYS/IBMBIO.COM use this function to set bit 4 before calling INT 13h/AH=08h to retrieve the number of hard disks installed (DL). 90h,A0h,B0h,C0h,D0h,E0h,F0h set ??? Return: CF clear AH = 00h CX = 0000h BX = ??? 81h,91h,A1h,B1h,C1h,D1h,E1h,F1h unsupported by 3/8/93&4/8/93 ROMs Return: CF set, AH = 86h Notes: functions 80h/90h/etc. are not supported by the 4/8/93 EISA System ROM these functions are not supported by the 7/26/93 LTE Lite 386 ROMTop
Top
INT 15 - Compaq Contura - GET ??? AX = E800h Return: AX = 0000h BH = 00h BL = ??? (read from port 0C7Ch) CH = ??? CL = ??? DX = 0000h Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOSTop
INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE??? AX = E800h BX = ??? (0000h) Return: CF clear if successful BH = 02h BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h) CF set on error others??? Notes: used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether the Enhanced Parallel Port expected by that driver is available used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether volume control hardware expected by that driver is availableTop
INT 15 - Compaq Prolinea - GET ??? AX = E800h BX = ??? (1369h) Return: BH = 01h BL = ??? others??? Note: used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether the fix that driver applies is required (will not install if BX on return is other than 010Eh or 010Fh) SeeAlso: AX=E802hTop
INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS AX = E801h Return: CF clear if successful AX = extended memory between 1M and 16M, in K (max 3C00h = 15MB) BX = extended memory above 16M, in 64K blocks CX = configured memory 1M to 16M, in K DX = configured memory above 16M, in 64K blocks CF set on error Notes: supported by the A03 level (6/14/94) and later XPS P90 BIOSes, as well as the Compaq Contura, 3/8/93 DESKPRO/i, and 7/26/93 LTE Lite 386 ROM BIOS supported by AMI BIOSes dated 8/23/94 or later on some systems, the BIOS returns AX=BX=0000h; in this case, use CX and DX instead of AX and BX this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is used as a fall-back by newer versions if AX=E820h is not supported this function is not used by MS-DOS 6.0 HIMEM.SYS when an EISA machine (for example with parameter /EISA) (see also MEM F000h:FFD9h), or no Compaq machine was detected, or parameter /NOABOVE16 was given. SeeAlso: AH=8Ah"Phoenix",AX=E802h,AX=E820h,AX=E881h"Phoenix"Top
INT 15 - Compaq Contura - GET ??? AX = E802h Return: CF clear AX = 0000h BX = ??? CX = 0000h Note: this function is also supported by the LTE Lite 25c, 25E, and 486; not supported by LTE Lite 20 and 25. SeeAlso: AX=E801h"Phoenix"Top
INT 15 - newer BIOSes - GET SYSTEM MEMORY MAP
AX = E820h
EAX = 0000E820h
EDX = 534D4150h ('SMAP')
EBX = continuation value or 00000000h to start at beginning of map
ECX = size of buffer for result, in bytes (should be >= 20 bytes)
ES:DI -> buffer for result (see #00581)
Return: CF clear if successful
EAX = 534D4150h ('SMAP')
ES:DI buffer filled
EBX = next offset from which to copy or 00000000h if all done
ECX = actual length returned in bytes
CF set on error
AH = error code (86h) (see #00496 at INT 15/AH=80h)
Notes: originally introduced with the Phoenix BIOS v4.0, this function is
now supported by most newer BIOSes, since various versions of Windows
call it to find out about the system memory
a maximum of 20 bytes will be transferred at one time, even if ECX is
higher; some BIOSes (e.g. Award Modular BIOS v4.50PG) ignore the
value of ECX on entry, and always copy 20 bytes
some BIOSes expect the high word of EAX to be clear on entry, i.e.
EAX=0000E820h
if this function is not supported, an application should fall back
to AX=E802h, AX=E801h, and then AH=88h
the BIOS is permitted to return a nonzero continuation value in EBX
and indicate that the end of the list has already been reached by
returning with CF set on the next iteration
this function will return base memory and ISA/PCI memory contiguous
with base memory as normal memory ranges; it will indicate
chipset-defined address holes which are not in use and motherboard
memory-mapped devices, and all occurrences of the system BIOS as
reserved; standard PC address ranges will not be reported
SeeAlso: AH=C7h,AX=E801h"Phoenix",AX=E881h,MEM xxxxh:xxx0h"ACPI"
Format of Phoenix BIOS system memory map address range descriptor:
Offset Size Description (Table 00580)
00h QWORD base address
08h QWORD length in bytes
10h DWORD type of address range (see #00581)
(Table 00581)
Values for System Memory Map address type:
01h memory, available to OS
02h reserved, not available (e.g. system ROM, memory-mapped device)
03h ACPI Reclaim Memory (usable by OS after reading ACPI tables)
04h ACPI NVS Memory (OS is required to save this memory between NVS
sessions)
other not defined yet -- treat as Reserved
SeeAlso: #00580
Top
INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS (32-bit) AX = E881h Return: CF clear if successful EAX = extended memory between 1M and 16M, in K (max 3C00h = 15MB) EBX = extended memory above 16M, in 64K blocks ECX = configured memory 1M to 16M, in K EDX = configured memory above 16M, in 64K blocks CF set on error Notes: supported by AMI BIOSes dated 8/23/94 or later this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is used as a fall-back by newer versions if AX=E820h is not supported SeeAlso: AX=E801h"Phoenix",AX=E820h"Phoenix"Top
INT 15 - PhysTechSoft PTS ROM-DOS - RESET WATCHDOG TIMER AX = E900h Return: nothingTop
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE DIAGNOSTIC CONTROL POINT CODE AX = E901h CX = control point code (codes 000h-1FFh system backup) Return: nothing Note: Provided by PhysTechSoft's PTS ROM-DOS and displayed by SETUP.COM. SeeAlso: AX=E902h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS" (Table 04093) Values for PhysTechSoft PTS ROM-DOS control point code: ??? LOADER: Stack loaded LOADER: IVT initialized LOADER: Channel initialized LOADER: Local loading LOADER: Flash tested LOADER: Load from ROM LOADER: Load ROM comp. LOADER: Load from Flash LOADER: Load Flash co. BIOS: Chipset initialized BIOS: CPU tested BIOS: Stack tested BIOS: CRC tested BIOS: IVT initialized BIOS: Vars initialized BIOS: Resident init BIOS: Channel initialized BIOS: Memory tested BIOS: SRAM tested BIOS: EMS tested BIOS: PIC initialized BIOS: PPI initialized BIOS: DMA initialized BIOS: Timer initialized BIOS: Disks initialized BIOS: Boot loaded BIOS: Failed boot DOS: Job point: (up to 25???) SeeAlso: #04091Top
INT 15 - PhysTechSoft PTS ROM-DOS - SET DIAGNOSTIC DOS ERROR FLAG AX = E902h CX = diagnostic flag mask (see #04091,#04092) Return: nothing Note: Provided by PhysTechSoft's PTS ROM-DOS and displayed by SETUP.COM. DOS error flags can be assigned by application software. SeeAlso: AX=E901h,INT 14/AH=05h"PTS ROM-DOS", INT 14/AH=06h"PTS ROM-DOS" Bitfields for PhysTechSoft PTS ROM-DOS BIOS error flags: Bit(s) Description (Table 04091) ??? Processor test failed. Stack test failed. BIOS code damaged. Conventional memory test failed. SRAM test failed. EMS test failed. Boot-sector damaged. Boot-sector read error. Loader setup damaged. BIOS setup damaged. SeeAlso: #04092,#04093 Bitfields for PhysTechSoft PTS ROM-DOS LOADER error flags:: Bit(s) Description (Table 04092) ??? Processor test failed. Loader code damaged. Loader code in RAM damaged. Loader setup in flash-memory damaged. BIOS setup in flash-memory damaged. BIOS offset in flash-memory field damaged. BIOS size in flash-memory field damaged. BIOS in flash-memory damaged. BIOS in ROM damaged. Last operation field damaged. Channel error. Setup in flash-memory damaged. Loading BIOS from control channel failed. Loading DOS from control channel failed. SeeAlso: #04091Top
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-ENABLE FLASH-DISK AX = E903h Return: nothing Note: Enabling writing on Flash disk can lead to corruption of EMS disk info. SeeAlso: AX=E904h,AX=E905hTop
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-PROTECT FLASH-DISK AX = E904h Return: nothing SeeAlso: AX=E903h,AX=E905hTop
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE IMAGE OF BIOS TO FLASH-MEMORY AX = E905h DS:SI -> buffer Return: nothing SeeAlso: AX=E903h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"Top
INT 15 - PhysTechSoft PTS ROM-DOS - READ SETUP INFORMATION FROM FLASH-DISK AX = E906h DS:SI -> buffer Return: AL = error code (00h = no error, 01h = setup information not found) SeeAlso: AX=E907h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"Top
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE SETUP INFORMATION ON FLASH-DISK AX = E907h DS:SI -> buffer Return: nothing SeeAlso: AX=E906hTop
INT 15 - PhysTechSoft PTS ROM-DOS - SET BREAKPOINT AX = E908h CL = flags bit 1: =0 operate in one-fold mode =1 operate in many-fold mode bit 0: =0 send debug information to control channel =1 activate handler ES:SI = breakpoint address DX:DI = handler address Return: AH = error code 00h no error 01h incorrect parameter 02h no room in breakpoint table SeeAlso: AX=E909h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"Top
INT 15 - PhysTechSoft PTS ROM-DOS - REMOVE BREAKPOINT AX = E909h ES:SI = breakpoint address Return: AH = error code 00h no error 01h incorrect parameter SeeAlso: AX=E908h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"Top
INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALIZATION CHECK ??? AX = F200h CX = 454Dh Return: CF clear if hardware already initialised BX = upper RAM areas in use bit 0: C000-C3FF bit 1: C400-C7FF ... bit 11: EC00-EFFF CF set if hardware not initialised yetTop
INT 16 - KEYBOARD - GET KEYSTROKE AH = 00h Return: AH = BIOS scan code AL = ASCII character Notes: on extended keyboards, this function discards any extended keystrokes, returning only when a non-extended keystroke is available the BIOS scan code is usually, but not always, the same as the hardware scan code processed by INT 09. It is the same for ASCII keystrokes and most unshifted special keys (F-keys, arrow keys, etc.), but differs for shifted special keys some (older) clone BIOSes do not discard extended keystrokes and manage function AH=00h and AH=10h the same the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended keystrokes (same as with functions 10h and 20h), but will always translate prefix E0h to 00h. This allows old programs to use extended keystrokes and should not cause compatibility problems SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,AX=AF4Dh"K3PLUS",INT 18/AH=00h SeeAlso: INT 09,INT 15/AH=4FhTop
INT 16 - KEYBOARD - CHECK FOR KEYSTROKE AH = 01h Return: ZF set if no keystroke available ZF clear if keystroke available AH = BIOS scan code AL = ASCII character Note: if a keystroke is present, it is not removed from the keyboard buffer; however, any extended keystrokes which are not compatible with 83/84- key keyboards are removed by IBM and most fully-compatible BIOSes in the process of checking whether a non-extended keystroke is available some (older) clone BIOSes do not discard extended keystrokes and manage function AH=00h and AH=10h the same the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended keystrokes (same as with functions 10h and 20h), but will always translate prefix E0h to 00h. This allows old programs to use extended keystrokes and should not cause compatibility problems SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h,INT 09,INT 15/AH=4FhTop
INT 16 - KEYBOARD - GET SHIFT FLAGS AH = 02h Return: AL = shift flags (see #00582) AH destroyed by many BIOSes SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h,MEM 0040h:0017h Bitfields for keyboard shift flags: Bit(s) Description (Table 00582) 7 Insert active 6 CapsLock active 5 NumLock active 4 ScrollLock active 3 Alt key pressed (either Alt on 101/102-key keyboards) 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards) 1 left shift key pressed 0 right shift key pressed SeeAlso: #00587,#03743,MEM 0040h:0017h,#M0010Top
INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY AH = 03h AL = subfunction 00h set default delay and rate (PCjr and some PS/2) 01h increase delay before repeat (PCjr) 02h decrease repeat rate by factor of 2 (PCjr) 03h increase delay and decrease repeat rate (PCjr) 04h turn off typematic repeat (PCjr and some PS/2) 05h set repeat rate and delay (AT,PS) BH = delay value (00h = 250ms to 03h = 1000ms) BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec) 06h get current typematic rate and delay (newer PS/2s) Return: BL = repeat rate (above) BH = delay (above) Return: AH destroyed by many BIOSes Note: use INT 16/AH=09h to determine whether some of the subfunctions are supported SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER"Top
INT 16 - KEYBOARD - SET KEYCLICK (PCjr only) AH = 04h AL = keyclick state 00h off 01h on Return: AH destroyed by many BIOSes SeeAlso: AH=03h,AH=04h"K3PLUS"Top
INT 16 - Tandy 2000 - KEYBOARD - FLUSH KEYBOARD BUFFER AH = 04h Note: this interrupt is identical to INT 51 on the Tandy 2000 SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=05h"Tandy 2000" SeeAlso: INT 51"Tandy 2000"Top
INT 16 - K3PLUS v6.22+ - SET KEYCLICK AH = 04h AL = keyclick state 00h keyclick off, leave loudness setting unchanged 01h keyclick on, leave loudness setting unchanged else bit 0: keyclick enabled if set bits 7-1: new keyclick loudness (non-zero) Return: AH destroyed by many BIOSes Note: Applications which try to set a new loudness, but are unsure of the results of other INT 16/AH=04h implementations, should set the new loudness first, and then call this function again with AL=01h or AL=00h SeeAlso: AH=03h,AH=04h"KEYBOARD",AX=AF4DhTop
INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only) AH = 05h CH = BIOS scan code CL = ASCII character Return: AL = status 00h if successful 01h if keyboard buffer full AH destroyed by many BIOSes Notes: under DESQview, a number of "keystrokes" invoke specific DESQview-related actions when they are read from the keyboard buffer (see #00583) similarly, some "keystrokes" invoke special functions on the HP 100LX and HP 200LX (see #00584) SeeAlso: AH=00h,AH=25h"K3",AH=71h,AX=AF4Dh,AH=FFh,INT 15/AX=DE10h SeeAlso: MEM 0040h:001Eh (Table 00583) Values for pseudo-keystrokes for DESQview: 38FBh or FB00h switch to next window (only if main menu already popped up) 38FCh or FC00h pop up DESQview main menu 38FEh or FE00h close the current window 38FFh or FF00h pop up DESQview learn menu (Table 00584) Values for pseudo-keystrokes for HP 100LX/200LX: EE00h pop up topcard display and set other system manager applications into sleep modeTop
INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only) AH = 05h AL = function 01h set keyboard layout to French 02h set keyboard layout to German 03h set keyboard layout to Italian 04h set keyboard layout to Spanish 05h set keyboard layout to UK 80h check if function supported Return: AL <> 80h if supported Return: ??? AH destroyed by many BIOSes Note: this function is called by the DOS 3.2 KEYBxx.COM SeeAlso: AH=92h,AH=A2h,AX=AF4DhTop
INT 16 - Tandy 2000 - KEYBOARD - RESET KEYBOARD AH = 05h Desc: reset the keyboard and flush the keyboard buffer Note: this interrupt is identical to INT 51 on the Tandy 2000 SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=03h,INT 51"Tandy 2000"Top
INT 16 - AAKEYS - GET NEXT KEYBOARD EVENT AX = 0600h Return: CF clear if successful AL = next keyboard event in event buffer, FFh if buffer overflowed CF set on error AL = 00h buffer empty BX destroyed Program: AAKEYS is a TSR by Anthony Appleyard which records keyboard scan codes in a 256-byte buffer in addition to any normal processing which takes place Note: the installation check consists of calling INT 16/AX=06xxh (where 'xx' is any subfunction other than those listed here) and testing whether AX=BEEFh on return SeeAlso: AX=0601h,AX=0602h,AX=0603h,AX=0604hTop
INT 16 - AAKEYS - EMPTY KEY-EVENT BUFFER AX = 0601h Return: nothing SeeAlso: AX=0600h,AX=0602h,AX=0603h,AX=0604hTop
INT 16 - AAKEYS - DISABLE AAKEYS AX = 0602h Return: AX,DX destroyed Desc: restores INT 09 and INT 16 and clears the TSRs signature byte SeeAlso: AX=0600h,AX=0601h,AX=0603h,AX=0604hTop
INT 16 - AAKEYS - GET KEY-EVENT BUFFER AX = 0603h Return: ES:BX -> 256-byte circular key-event buffer ES:[AX] = offset of head of buffer ES:[AX+1] = offset of tail of buffer SeeAlso: AX=0600h,AX=0601h,AX=0602h,AX=0604hTop
INT 16 - AAKEYS - EMPTY BIOS KEYBOARD BUFFER AX = 0604h Return: AX destroyed SeeAlso: AX=0600h,AX=0601h,AX=0602h,AX=0603hTop
INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY AH = 09h Return: AL = supported keyboard functions (see #00585) AH destroyed by many BIOSes Note: this function is only available if bit 6 of the second feature byte returned by INT 15/AH=C0h is set (see #00509) SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h Bitfields for supported keyboard functions: Bit(s) Description (Table 00585) 7 reserved 6 INT 16/AH=20h-22h supported (122-key keyboard support) 5 INT 16/AH=10h-12h supported (enhanced keyboard support) 4 INT 16/AH=0Ah supported 3 INT 16/AX=0306h supported 2 INT 16/AX=0305h supported 1 INT 16/AX=0304h supported 0 INT 16/AX=0300h supported SeeAlso: #00511Top
INT 16 - KEYBOARD - GET KEYBOARD ID AH = 0Ah Return: BX = keyboard ID (see #00586) AH destroyed by many BIOSes Notes: check return value from AH=09h to determine whether this function is supported this function is also supported by the K3PLUS v6.00+ INT 16 BIOS replacement SeeAlso: AH=09h,AX=AF4Dh,MEM 0040h:00C2h"AMI" (Table 00586) Values for keyboard ID: 0000h no keyboard attached 41ABh Japanese "G" keyboard (translate mode) MF2 Keyboard (usually in translate mode) 54ABh Japanese "P" keyboard (translate mode) 83ABh Japanese "G" keyboard (pass-through mode) MF2 Keyboard (pass-through mode) 84ABh Japanese "P" keyboard (pass-through mode) 86ABh 122-key keyboard 90ABh old Japanese "G" keyboard 91ABh old Japanese "P" keyboard 92ABh old Japanese "A" keyboardTop
INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only) AH = 10h Return: AH = BIOS scan code AL = ASCII character Notes: if no keystroke is available, this function waits until one is placed in the keyboard buffer the BIOS scan code is usually, but not always, the same as the hardware scan code processed by INT 09. It is the same for ASCII keystrokes and most unshifted special keys (F-keys, arrow keys, etc.), but differs for shifted special keys. unlike AH=00h, this function does not discard extended keystrokes INT 16/AH=09h can be used to determine whether this function is supported, but only on later model PS/2s SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h,MEM 0040h:0019h,MEM 0040h:001EhTop
INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only) AH = 11h Return: ZF set if no keystroke available ZF clear if keystroke available AH = BIOS scan code AL = ASCII character Notes: if a keystroke is available, it is not removed from the keyboard buffer unlike AH=01h, this function does not discard extended keystrokes some versions of the IBM BIOS Technical Reference erroneously report that CF is returned instead of ZF INT 16/AH=09h can be used to determine whether this function is supported, but only on later model PS/2s SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h,INT 09,INT 15/AH=4FhTop
INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only) AH = 12h Return: AL = shift flags 1 (same as returned by AH=02h) (see #00587) AH = shift flags 2 (see #00588) Notes: AL bit 3 set only for left Alt key on many machines AH bits 7 through 4 always clear on a Compaq SLT/286 INT 16/AH=09h can be used to determine whether this function is supported, but only on later model PS/2s many BIOSes (including at least some versions of Phoenix and AMI) will destroy AH on return from functions higher than AH=12h, returning 12h less than was in AH on entry (due to a chain of DEC/JZ instructions) SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh,MEM 0040h:0017h Bitfields for keyboard shift flags 1: Bit(s) Description (Table 00587) 7 Insert active 6 CapsLock active 5 NumLock active 4 ScrollLock active 3 Alt key pressed (either Alt on 101/102-key keyboards) 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards) 1 left shift key pressed 0 right shift key pressed SeeAlso: #00582,#00588,MEM 0040h:0017h,#M0010 Bitfields for keyboard shift flags 2: Bit(s) Description (Table 00588) 7 SysReq key pressed (SysReq is often labeled SysRq) 6 CapsLock pressed 5 NumLock pressed 4 ScrollLock pressed 3 right Alt key pressed 2 right Ctrl key pressed 1 left Alt key pressed 0 left Ctrl key pressed SeeAlso: #00587,MEM 0040h:0018h,#M0011Top
INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL AH = 13h AL = function 00h set shift status DX = shift status (see #00589), must preserve internal status bits 01h get shift status Return: DX = current shift status (see #00589) Note: these functions are supplied by the Japanese Front-End Processor SeeAlso: AH=14h,INT 21/AX=6301h Bitfields for DOS/V shift status: Bit(s) Description (Table 00589) 0 full-size rather than half-size 2-1 character input mode 00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused 5-3 internal status 6 Romaji enabled 7 Katakana to Kanji conversion enabled 15-8 internal statusTop
INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL AH = 14h AL = function 00h enable display 01h disable display 02h get display state Return: AL = current state (00h enabled, 01h disabled) Desc: control the screen-bottom shift status row(s) for the Japanese Front-End Processor SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1DhTop
INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only) AH = 20h Return: AH = BIOS scan code (see AH=10h) AL = ASCII character Note: use AH=09h to determine whether this function is supported SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22hTop
INT 16 - HUNTER 16 - SET TEMPORARY SHIFT AH = 20h AL = shift status (see #00590) Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. the user can override the specified settings by pressing the keys Bitfields for HUNTER 16 shift status: Bit(s) Description (Table 00590) 4 Scroll Lock on 5 Num Lock on 6 Caps Lock onTop
INT 16 O - K3 v1.5x, K3PLUS v5.xx - GET EXTENDED BUFFER STATE AH = 20h Return: AX = K3 version ES:BX -> extended keyboard buffer start ES:DX -> extended keyboard buffer end ES:SI -> next keystroke ES:DI -> last keystroke in buffer CX = number of keystrokes in buffer Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C. Frinke, originally based on the K3 extended German keyboard driver by Martin Gerdes published in c't magazine in 1988 Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and is no longer supported by v6.30+; use AX=AF20h instead SeeAlso: AH=25h"K3",AX=AF20h,INT 2F/AX=D44Fh/BX=0000h,INT 2F/AX=ED58hTop
INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only) AH = 21h Return: ZF set if no keystroke available ZF clear if keystroke available AH = BIOS scan code AL = ASCII character Notes: use AH=09h to determine whether this function is supported some versions of the IBM BIOS Technical Reference erroneously report that CF is returned instead of ZF K3PLUS v6.00+ supports this function as an alias of AH=11h SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21hTop
INT 16 - HUNTER 16 - CONTROL SHIFT KEYS AH = 21h AL = shift keys to control (see #00582) BL = shift state for disabled keys Note: If a bit in AL is set the key is disabled and set to the state of the corresponding bit in BL SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER"Top
INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only) AH = 22h Return: AL = shift flags 1 (see #00587) AH = shift flags 2 (see #00588) Notes: use AH=09h to determine whether this function is supported K3PLUS v6.00+ supports this function as an alias of AH=12h SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21hTop
INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL AH = 22h AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled) BX = 0708h CX = 0910h DX = 1112h Return: AL = 00h if successful SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2AhTop
INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT AH = 23h AL = new state of breakout (00h enabled, nonzero disabled) BX = 0708h CX = 0910h DX = 1112h Return: AL = 00h if successful Desc: Enables or disables the emergency breakout feature, where the Hunter 16 at power on checks whether the X and P keys are pressed. If so the machine will boot rather than continue the running program SeeAlso: AH=22h"HUNTER"Top
INT 16 - HUNTER 16 - REDEFINE KEY CODES AH = 24h AL = Matrix Code (see #00591) BL = new Key code Return: AL = status (00h successful, nonzero failed) SeeAlso: AH=2Bh,AH=2Ch (Table 00591) Values for HUNTER 16 Matrix Code: Code Key Code Key Code Key 00h Esc key 1Eh Space 3Bh L 01h 1 21h 0 3Ch , 02h Q 22h - 3Eh Right shift 03h Tab 23h ' 42h 8 04h Num Lock 24h Keypad 4 43h 7 05h \ 25h Enter 44h U 08h LShift 26h Keypad 7 45h I 09h Ctrl 27h . 46h J 0Ah "Paw" key 28h Keypad 1 47h K 0Bh 2 29h Keypad 0 48h M 0Ch W 2Ch = 49h N 0Dh A 2Dh Backspace 4Ah / 0Eh S 2Eh Keypad 8 4Dh 6 0Fh Z 2Fh Keypad 9 4Eh 5 11h Alt 30h Keypad 5 4Fh T 16h 4 31h Keypad 6 50h Y 17h 3 32h Keypad 2 51h G 18h E 33h Keypad 3 52h H 19h R 34h Keypad . 53h B 1Ah D 37h 9 54h V 1Bh F 38h O 55h # 1Ch X 39h P 58h Pwr 1Dh C 3Ah ; 59h Shift PwrTop
INT 16 - HUNTER 16 - RESET KEYBOARD AH = 25h Return: AL = 00h Desc: restores the standard keyboard layout after any remapping SeeAlso: AH=24h,AH=2Bh,AH=2ChTop
INT 16 O - K3 v1.5x, K3PLUS v5.xx - COPY INTO EXTENDED BUFFER AH = 25h CX = number of keystrokes to copy ES:SI -> buffer containing keystrokes Return: CF clear if successful CF set on error (i.e. buffer full) CX = number of keystrokes NOT transferred ES:SI -> first keystroke not transferred Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and is no longer supported by v6.30+; use AX=AF25h instead SeeAlso: AH=05h,AH=20h"K3",AX=AF25h,INT 2F/AX=D44Fh/BX=0001hTop
INT 16 - HUNTER 16 - CONTROL KEYCLICK AH = 26h AL = new state of keyclicks (00h disabled, 01h enabled) Return: AL = 00h SeeAlso: AH=2AhTop
INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA AH = 27h AL = what to dump 00h whole (virtual) window 01h LCD window only Return: AL = 00h Desc: control whether printscren dumps the whole 80x25 screen or only the part displayed in the LCD window Note: the Hunter 16 has a 240x64 LCD display which serves as a window into a 640x200 virtual screenTop
INT 16 - HUNTER 16 - GET KEY REPEAT AH = 29h Return: BL = Typematic rate (characters per second) (see #00592) BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s) SeeAlso: AH=03h,AH=2Ah (Table 00592) Values for HUNTER 16 Typematic rate: 00h 30.0 08h 15.0 10h 7.5 18h 3.7 01h 26.7 09h 13.3 11h 6.7 19h 3.3 02h 24.0 0Ah 12.0 12h 6.0 1Ah 3.0 03h 21.8 0Bh 10.9 13h 5.5 1Bh 2.7 04h 20.0 0Ch 10.0 14h 5.0 1Ch 2.5 05h 18.5 0Dh 9.2 15h 4.6 1Dh 2.3 06h 17.1 0Eh 8.6 16h 4.3 1Eh 2.1 07h 16.0 0Fh 8.0 17h 4.0 1Fh 2.0 SeeAlso: AH=2AhTop
INT 16 - HUNTER 16 - CONTROL KEY REPEAT AH = 2Ah AL = new state of keyboard autorepeat (00h disabled, 01h enabled) SeeAlso: AH=03h,AH=26h,AH=29h,AH=2BhTop
INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES AH = 2Bh AL = which key table to redefine 00h unshifted 01h shifted 02h Numlock BH = standard scan code of key (00h-80h) BL = new scan code Desc: redefine the generated scan code from BH to BL SeeAlso: AH=24h,AH=2Ah,AH=2ChTop
INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES AH = 2Ch AL = Matrix code of key (see AH=29h) BL = new key code Return: AL = status (00h success, nonzero failed) Desc: redefine the key code generated by holding the PAW key down and pressing the key in AL SeeAlso: AH=24h,AH=2BhTop
INT 16 - HUNTER 16 - CONTROL BREAK KEYS AH = 2Dh AL = enabled break keys bit 0 Ctrl-C bit 1 Ctrl-Break BX = 0708h CX = 0910h DX = 1112h Return: AL = status (00h success, FFh failed) SeeAlso: AH=21h"HUNTER"Top
INT 16 U - TextWare TWTSR - API
AX = 3577h
CX = function
00CBh ???
Return: AX = 0000h
BX = 0000h
DX:CX -> ???
00CCh uninstall
Return: AX = status
0000h successful
FFFDh unable to unload because vectors taken
00CDh ???
Return: AX = 0000h
BX = 0000h
DX:CX -> ???
other
Return: AX = 5345h ('SE')
Program: TWTSR is a TSR which allows the TextWare hypertext browser to be
popped up via hotkey
SeeAlso: AX=D724h
Top
INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK AX = 4252h Return: AX = 5242h if installed Program: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of the PC Magazine utility CAPTURE written by Tom Kihlken SeeAlso: AX=4253h,AX=4254hTop
INT 16 - TEXTCAP 2.0 - UNINSTALL AX = 4253h Return: AX = segment of resident code Notes: the uninstall code does not check whether interrupt vectors have been chained by other programs the caller must free the main memory block (using the returned segment) SeeAlso: AX=4252h,AX=4254hTop
INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE AX = 4254h Return: AX = status 4254h if screen dump will be written as soon as disk becomes idle 5442h if screen dump written SeeAlso: AX=4252h,AX=4253hTop
INT 16 - Shamrock Software EMAIL - GET STATUS AX = 4500h DL = port number (01h = COM1) ES:BX -> 13-byte buffer for ASCIZ name Return: AX = 4D00h if EMAIL installed on specified port ES:BX -> "" if no connection -> "*" if connection but caller has not identified name -> name otherwise CX = version (CH = major, CL = minor) DL = privilege level of user (00h = guest) DH = chosen language (00h German, 01h English) SeeAlso: AX=4501h,AX=4502hTop
INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME AX = 4501h DL = port number (01h = COM1) Return: AX = 4D00h if EMAIL installed on specified port BX = maximum connect time in clock ticks CX = maximum connect time for guests (without name) in clock ticks DX = elapsed connect time of current user in clock ticks SeeAlso: AX=4500hTop
INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS AX = 4502h DL = port number (01h = COM1) Return: AX = 4D00h if EMAIL installed on specified port BL = current value of serial port's Line Control Register BH = flags (see #00593) CX = selected country code (33 = France, 49 = Germany, etc) DX = baudrate divisor (115200/DX = baudrate) SeeAlso: AX=4500h Bitfields for Shamrock Software EMAIL flags: Bit(s) Description (Table 00593) 0 ISO code 1 pause 2 linefeed 3 ANSI sequencesTop
INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION AX = 4503h DL = port number (01h = COM1) DH = maximum execution time in clock ticks (00h = 5 seconds) ES:BX -> ASCIZ string with new user command-word Return: AX = 4D00h if EMAIL installed on specified port Notes: a single user command (consisting of only uppercase letters and digits) may be defined, and remains valid until it is overwritten or the EMAIL program terminates; the user command must be activated by calling AX=4504h at least once. an existing command word may be redefined with this function SeeAlso: AX=4504h,AX=4505hTop
INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD AX = 4504h DL = port number (01h = COM1) ES:BX -> 80-byte buffer for ASCIZ user input line Return: AX = 4D00h if EMAIL installed on specified port DL = flags bit 0: user function supported (always set) bit 1: user entered user-function command word if DL bit 1 set, ES:BX buffer contains line entered by user which begins with the defined command word and has been converted to all caps Note: caller must process the returned commandline and invoke AX=4505h within five seconds with the result of that processing SeeAlso: AX=4503h,AX=4505hTop
INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION AX = 4505h DL = port number (01h = COM1) DH = error flag bit 3: set on error ES:BX -> ASCIZ text to return to user, max 1024 bytes Return: AH = 4Dh if EMAIL installed on specified port AL = status 00h successful 02h unable to perform function (timeout, prev call not complete) other error Notes: if the error flag in DH is set, the string is not sent and an error message is generated instead; if this function is not called within five seconds of AX=4504h, EMAIL automatically generates an error message the string is copied into an internal buffer, allowing this function's caller to continue immediately SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400hTop
INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD AX = 4506h DL = port number (01h = COM1) ES:BX -> 13-byte buffer for ASCIZ filename Return: AX = 4D00h if EMAIL installed on specified port DH = Xmodem status 00h no XGET command given 01h XGET in progress 02h XGET completed successfully ES:BX buffer filled with last filename given to XGET command (without path) Note: DH=02h will only be returned once per XGET; subsequent calls will return DH=00h SeeAlso: AX=4500h,INT 17/AX=2408hTop
INT 16 - Frank Klemm Keyboard Driver v2.0 - API AH = 4Bh CX = code or action 0000h-FEFFh key code FF00h-FFFFh action (see #00594) BL = scan code (normal keys) or scan code + 60h (enhanced keys) BH = shift state (see #00595) Return: CX = previous code or action (Table 00594) Values for Frank Klemm Keyboard Driver action code: FF00h no action FF01h hardcopy FF02h left shift FF03h right shift FF04h left Ctrl FF05h right Ctrl FF06h left Alt FF07h right Alt / AltGr FF08h CapsLock FF09h NumLock FF0Ah ScrlLock FF0Bh Insert (returns code 5200h or 52E0h) FF0Ch Pause FF0Dh Ctrl-Break function FF0Eh warm boot via far jump to F000h:FFF0h FF0Fh terminate current program FF10h key for entering keys via Alt-numpad (read-only) FF11h clear keyboard buffer FF12h reset (warmboot on XT) FF13h mouse sensitivity (read-only) FF14h keyjobs (read-only) FF15h SysRq FF16h turn on CPU cache (486+) FF17h turn off CPU cache (486+) SeeAlso: #00595 (Table 00595) Values for Frank Klemm Keyboard Driver shift state: 00h no shift keys 01h either Shift 02h either Ctrl 03h left Alt 04h Ctrl + Alt ---standard keyboard--- 05h right Alt / AltGr ---Russian keyboard--- 05h Russian + no shift keys 06h Russian + either Shift SeeAlso: #00594Top
INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK AX = 4D4Fh Return: AX = 6F6Dh if installed ES = segment of resident code Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov SeeAlso: INT 10/AX=1130h/BX=4D4FhTop
INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE AX = 5000h BX = country code 0001h USA (English), 0051h Japan Return: AL = status 00h successful 01h bad country code 02h other error Notes: This function is called with BX=0051h by Japanese versions of MS-DOS/PC DOS/DR DOS IO.SYS/IBMBIO.COM at initialization time. the K3PLUS v6.00+ INT 16 BIOS replacement will switch between the supported country specific layout (e.g. BX=0031h Germany, BX=001Fh Netherlands, BX=0020h Belgium, BX=0022h Spain) (as with <Ctrl>+ <Alt>+<F2>) and K3PLUS' transparent mode (as with <Ctrl>+<Alt>+<F1>). In transparent mode (BX=0001h), K3PLUS chains to the underlying driver (normally the BIOS driver with US-layout). K3PLUS beeps on mode changes SeeAlso: AX=5001h,AX=AF4Dh,INT 10/AX=5000h,INT 17/AX=5000hTop
INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE AX = 5001h Return: AL = status 00h successful BX = country code 02h error Note: also supported by K3PLUS v6.00+ SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001hTop
INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS AH = 51h Return: AL = standard shift key states (see #00582,#00587) AH = Kana lock (00h off, 01h on) Note: also supported by K3PLUS v6.00+, but K3PLUS always returns AH=00h SeeAlso: AH=02h,AH=12h,AH=22hTop
INT 16 - TSRBONES - INSTALLATION CHECK
AX = 5453h ('TS')
BX = 5242h ('RB')
CX = 4F4Eh ('ON')
DX = 4553h ('ES')
Return: AX = 4553h if installed
BX = 4F4Eh if installed
CX = 5242h if installed
DX = 5453h if installed
Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis
Note: these values are the default as the TSRBONES package is distributed,
but will normally be changed when implementing an actual TSR with
the TSRBONES skeleton
SeeAlso: INT 2D/AL=00h"AMIS"
Top
INT 16 - TrLit - API
AX = 5472h ('Tr')
BX = 4C54h ('Lt')
CL = function
00h installation check
Return: DX = 1234h if installed
AX = 100*version (binary, 00E9h = v2.33)
CX = resident code segment
01h get original INT 09 vector
Return: ES:BX -> previous handler
02h get original INT 16 vector
Return: ES:BX -> previous handler
else chained
CH = 00h (for backward compatibility with versions before 2.30)
Program: TrLit is a Russian keyboard transliterator by Rostislav Krasny
Index: installation check;TrLit
Top
INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
AX = 5500h
Return: AX = 4D53h ('MS') if keyboard TSR present
Notes: during startup, Microsoft Word tries to communicate with any TSRs
that are present through this call.
if the return is not 4D53h, Word installs its own INT 09 and INT 16
handlers; otherwise it assumes that the TSR will handle the keyboard
SeeAlso: AX=55FFh,INT 1A/AX=3601h
Top
INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR AX = 55FEh DX = function 0000h initialize ES:BX -> ??? function ES:CX -> ??? structure FFFFh shutdown/reset Return: AX = result 4D4Bh only the INT 1B handler will be installed. other: handlers for INT 08, INT 09, INT 16, INT 1B, and INT 1C are installed Notes: The pointer in ES:CX seems to point at a structure defining a callback function when new keyboard keys are pressed. If a TSR returns AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled). these calls are also made by MS-DOS 6.0's DOSSHELL at startup, exit, and before/after shelling out since EDIT.COM and HELP.COM merely invoke QBASIC, those two programs will also cause this interface to be invoked K3PLUS v6.07+ supports this function, but will never invoke the callback function SeeAlso: AX=5500h,AX=AF4Dh,INT 1A/AX=3601hTop
INT 16 C - Microsoft Word - TSR COOPERATION??? AX = 55FFh BX >= 0004h (version of Microsoft Word [BL = major] ???) CX = function 0000h set ??? flag other clear ??? flag Notes: hooks intercepting this call are present in SWAPSH and SWAPDT v1.77j, distributed with PC Tools v7, as well as the Trusted Access SCRNBLNK.COM; this may be part of the standard TesSeRact library known to be called by the German edition of Microsoft Word 5.0 SeeAlso: AX=5500h,INT 2F/AX=5453hTop
INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
AX = 5758h
BX = 4858h ('HX')
DX = 4443h ('DC')
CX <> 5758h
Return: BX = 6878h if installed
CX = 6463h if installed
AX = code segment of TSR
CX = internal version??? (v3.00 returns 0100h)
Program: CACHECLK is a "cloaked" disk cache included with Netroom
Notes: if CX=5758h on entry, CACHECLK returns with all registers unchanged
the cache statistics are located early in the segment pointed at by
AX on return
SeeAlso: INT 2F/AX=5758h
Top
INT 16 U - Netroom ??? - ??? AX = 5758h BX = 5754h ??? Return: ???Top
INT 16 U - Netroom ??? - ??? AX = 5758h BX = 5755h DS:SI -> ??? Return: ???Top
INT 16 U - Netroom ??? - INSTALLATION CHECK AX = 5758h BX = 5756h Return: BX <> 5756h if installedTop
INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS AX = 5758h BX = 5858h Return: CF clear DX:BX -> saved copy of interrupt vector table InstallCheck: call this function and compare BX against 5858h on return; if it has changed, PRENET is installed SeeAlso: AX=5758h/BX=5859h Index: installation check;Netroom PRENETTop
INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS AX = 5758h BX = 5859h Return: CF clear DX:BX -> saved copy of interrupt vector table InstallCheck: call this function and compare BX against 5859h on return; if it has changed, POSTNET is installed SeeAlso: AX=5758h/BX=5858h Index: installation check;Netroom POSTNETTop
INT 16 - Doorway v2.x+ - INSTALLATION CHECK / REDIRECTION CONTROLa AH = 67h AL = Doorway mode 00h turn off DOS redirection 01h turn on DOS redirection Return: AH = 80h if Doorway is actively redirecting output AL = 80h if Doorway was already in requested mode Program: Doorway is a program by Marshall Dudley which allows most DOS programs to run as a BBS door without modification Note: to perform an installation check without changing the redirection state, if is necessary to restore the original mode if AL was not 80h on return SeeAlso: INT 10/AH=BBh"Doorway"Top
INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK AX = 6969h BX = 6968h Return: resident code unhooked, but not removed from memory Index: uninstall;BACKTALKTop
INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK AX = 6969h BX = 6969h DX = 0000h Return: DX nonzero if installed BX = CS of resident code DX = PSP segment of resident code DS:SI -> ASCIZ identification string "CPoint Talk"Top
INT 16 U - FastJuice - DISABLE/UNLOAD??? AX = 6A6Bh Return: ??? Program: FastJuice is a resident battery-power monitor by SeaSide Software SeeAlso: AX=7463h Index: uninstall;FastJuiceTop
INT 16 U - TMED v1.6a - INSTALLATION CHECK
AX = 6C63h ('lc')
Return: AX = 4C43h ('LC') if installed
Program: TMED is a freeware resident memory editor by Liang Chen
Top
INT 16 - MTRTSR - INSTALLATION CHECK
AX = 6D74h ('mt')
Return: AX = 4D54h ('MT') if installed
Program: MTRTSR is a part of the shareware MTR package by Mechon Mamre which
permits searching the large corpus of classical Hebrew texts in the
package
SeeAlso: INT 10/AX=6D74h"MTRFONTS"
Top
INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
AX = 6F00h
BX <> 4850h (usually set to 0000h for simplicity)
Return: BX = 4850h ("HP") if present
Notes: called by recent MS Mouse drivers looking for an HP-HIL mouse
supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
SeeAlso: INT 6F/AH=00h"HP Vectra"
Top
INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES AX = 6F01h Return: AH = 00h (successful) CX = 0004h (size of returned buffer) ES:SI -> buffer for typematic info (see #00596) Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h Format of HP Vectra EX-BIOS typematic info: Offset Size Description (Table 00596) 00h BYTE delay before repeat for all non-Cursor Control Pad keys (see #00597) 01h BYTE typematic rate for all non-Cursor Control Pad keys (see #00598) 02h BYTE delay before repeat for Cursor Control Pad keys (see #00599) 03h BYTE typematic rate for Cursor Control Pad keys (see #00598) (Table 00597) Values for HP Vectra EX-BIOS non-CCP delay time: 00h 17 ms 01h 150 ms 02h 283 ms 03h 417 ms 04h 550 ms 05h 683 ms 06h 817 ms 07h 950 ms 08h 1083 ms 09h 1217 ms 0Ah 1350 ms 0Bh 1483 ms 0Ch 1617 ms 0Dh 1750 ms 0Eh 1883 ms 0Fh 2017 ms Note: the above values assume that the key repeat rate has been set to 60 Hz; double the times if set to 30 Hz SeeAlso: #00596,#00598,#00599 (Table 00598) Values for HP Vectra EX-BIOS typematic rate: 00h 60 / sec 01h 30 / sec 02h 20 03h 15 04h 12 05h 10 06h 8.57 07h 7.5 08h 6.66 09h 6 / sec 0Ah 5.45 0Bh 5 0Ch 4.62 0Dh 4.28 0Eh 4 / sec 0Fh typematic disabled Note: the above values assume that the key repeat rate has been set to 60 Hz; halve the rates if set to 30 Hz SeeAlso: #00597,#00599 (Table 00599) Values for HP Vectra EX-BIOS CCP delay time: 00h 17 ms 01h 83 ms 02h 150 ms 03h 217 ms 04h 283 ms 05h 350 ms 06h 417 ms 07h 483 ms 08h 550 ms 09h 617 ms 0Ah 683 ms 0Bh 750 ms 0Ch 817 ms 0Dh 883 ms 0Eh 950 ms 0Fh 1017 ms Note: the above values assume that the key repeat rate has been set to 60 Hz; double the times if set to 30 Hz SeeAlso: #00597,#00598Top
INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES AX = 6F02h Return: AH = 00h (successful) CX = 0004h (size of returned buffer) ES:SI -> buffer for typematic info (see #00596) Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h SeeAlso: AX=6F00h,AX=6F01h,AX=6F03hTop
INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES AX = 6F03h ES:SI -> buffer containing typematic info (see #00596) Return: AH = 00h (successful) Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h SeeAlso: AX=6F00h,AX=6F01h,AX=6F02hTop
INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS AX = 6F04h ES:SI -> mapping buffer (see #00600) Return: AH = 00h (successful) CX = 001Eh (number of bytes in buffer) ES:SI buffer filled Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras the HIL input system translates the HIL keyboard events to simulate an IBM-compatible keyboard; the translation can be altered dynamically by applications SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h Format of HP Vectra EX-BIOS keyboard mapping info: Offset Size Description (Table 00600) 00h 3 WORDs entry for V_QWERTY driver (IP, CS, DS) 06h 3 WORDs entry for V_SOFTKEY driver (IP, CS, DS) 0Ch 3 WORDs entry for V_FUNCTION driver 12h 3 WORDs entry for V_NUMPAD driver 18h 3 WORDs entry for V_CCP driverTop
INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS AX = 6F05h ES:SI -> mapping buffer (see #00600) Return: AH = 00h (successful) CX = 001Eh (number of bytes in buffer) ES:SI buffer filled Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F04h,AX=6F06hTop
INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS AX = 6F06h CX = number of bytes in buffer (001Eh) ES:SI -> mapping buffer (see #00600) Return: AH = 00h (successful) Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras any application which modifies the key mappings should restore them before terminating drivers installed with this function are assured of 32 bytes of stack space when they are invoked SeeAlso: AX=6F04h,AX=6F05h,AX=6F07hTop
INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
AX = 6F07h
BL = translation to set (see #00601)
Return: AH = 00h (successful)
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
this function may no longer work properly if the application has
modified the key mappings with AX=6F06h
SeeAlso: AX=6F06h,AX=6F09h
(Table 00601)
Values for HP Vectra keyboard translation specifier:
00h map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
01h map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
02h map V_CCP to V_OFF, disabling the cursor pad
03h map V_CCP to V_CCPGID, converting cursor pad keys to GID data
04h map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
05h map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
06h map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
07h map V_SOFTKEY to V_OFF, disabling HP Softkeys
SeeAlso: #00602
(Table 00602)
Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
INT 09 INT 16 keycode
Key scan code Default Shifted Ctrl Alt
* (NumPd) 37h 2Ah (Prt Sc) 00/72h 00/37H
Sysreq 54h -- -- -- --
CCP-Up 60h 00/D9h 00/BFh 00/A5h 00/8BH
CCP-Left 61h 00/DAh 00/C0h 00/A6h 00/8CH
CCP-Down 62h 00/DBh 00/C1h 00/A7h 00/8DH
CCP-Right 63h 00/DCh 00/C2h 00/A8h 00/8EH
CCP-Home 64h 00/DDh 00/C3h 00/A9h 00/8FH
CCP-PgUp 65h 00/DEh 00/C4h 00/AAh 00/90H
CCP-End 66h 00/DFh 00/C5h 00/ABh 00/91H
CCP-PgDn 67h 00/E0h 00/C6h 00/ACh 00/92H
CCP-Ins 68h 00/E1h 00/C7h 00/ADh 00/93H
CCP-Del 69h 00/E2h 00/C8h 00/AEh 00/94H
CCP-CNTR 6Ah 00/E3h 00/C9h 00/AFh 00/95H
f1 70h 00/E9h 00/CFh 00/B5h 00/9BH
f2 71h 00/EAh 00/D0h 00/B6h 00/9CH
f3 72h 00/EBh 00/D1h 00/B7h 00/9DH
f4 73h 00/ECh 00/D2h 00/B8h 00/9EH
f5 74h 00/EDh 00/D3h 00/B9h 00/9FH
f6 75h 00/EEh 00/D4h 00/BAh 00/A0H
f7 76h 00/EFh 00/D5h 00/BBh 00/A1H
f8 77h 00/F0h 00/D6h 00/BCh 00/A2H
Note: only HP-specific codes are listed in this table; see INT 09 for a full
list of standard scan codes
SeeAlso: #00006,#00601
Top
INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION AX = 6F08h Return: AH = status 00h successful 02h unsupported (non-HIL, i.e. standard, keyboard) BH = HP-HIL address (HP Vectra AT only???) BL = HP-HIL ID (HP Vectra AT only???) BL = keyboard language (ES/QS/RS only???) (see #00603) Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may be computed as (BH-1)*6 + N, where N is the address of the first HP-HIL device driver (see INT 6F/AH=0Ah"F_INQUIRE_FIRST") SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"F_INQUIRE_FIRST" (Table 00603) Values for HP HIL keyboard language code: 00h reserved 01h Arabic-French 02h Kanji 03h Swiss-French 04h Portugese 05h Arabic 06h Hebrew 07h Canadian-English 08h Turkish 09h Greek 0Ah Thai 0Bh Italian 0Ch Hangul (Korean) 0Dh Dutch 0Eh Swedish 0Fh German 10h Chinese (PRC) 11h Chinese (Taiwan) 12h Swiss (French ii) 13h Spanish 14h Swiss (German ii) 15h Belgian (Flemish) 16h Finnish 17h United Kingdom 18h French-Canadian 19h French-German 1Ah Norwegian 1Bh French 1Ch Danish 1Dh Katakana 1Eh Latin American Spanish 1Fh United States-American 20h-FEh reserved FFh non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)Top
INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS AX = 6F09h Return: AH = 00h (successful) Desc: reset all keyboard mappings to their default translators, and reset typematic values to their defaults Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F04h,AX=6F07h,AX=6F08hTop
INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED AX = 6F0Ah Return: AH = 00h (successful) BX = speed code 0Bh for low speed (see #00604) 12h for medium speed (see #00604) 0Ch for high speed (see #00604) Note: supported by ES, QS, and RS series of HP Vectras SeeAlso: AX=6F00h (Table 00604) Values for HP Vetra CPU speed: Vectra Low Medium High ES 8 MHz - 8 MHz ES/12 8 MHz - 12 MHz QS/16, RS/16 8 MHz - 16 MHz QS/16S 8 MHz - 16 MHz QS/20, RS/20 8 MHz - 20 MHz RS/20C 5 MHz 10 MHz 20 MHz RS/25C 5 MHz 12.5 MHz 25 MHzTop
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW AX = 6F0Bh Return: AH = 00h (successful) Notes: see AX=6F0Ah for speed definitions supported by ES, QS, and RS series of HP Vectras SeeAlso: AX=6F00h,AX=6F0AhTop
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH AX = 6F0Ch Return: AH = 00h (successful) Notes: see AX=6F0Ah for speed definitions supported by ES, QS, and RS series of HP Vectras SeeAlso: AX=6F00h,AX=6F0AhTop
INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER AX = 6F0Dh Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well) Notes: supported by ES, QS, and RS series of HP Vectras called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL input system SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F/AH=00h"HP Vectra",INT 6F/AH=0Ah"HP"Top
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER AX = 6F0Eh BL = new interrupt number (60h-6Fh,78h-7Fh) Return: AH = status (00h = successful) Desc: allows the HIL Extended BIOS software to use a non-default interrupt number in case of an interrupt conflict with another application Notes: supported by ES, QS, and RS series of HP Vectras called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL input system SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F/AH=00h"HP",INT 6F/AH=0Ah"HP"Top
INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING AX = 6F0Fh Return: AH = status 00h successful FEh cache subsystem is bad SeeAlso: AX=6F00h,AX=6F10h,AX=6F11hTop
INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING AX = 6F10h Return: AH = 00h (successful) SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11hTop
INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE AX = 6F11h Return: AH = 00h (successful) AL bit 0 = cache state 0 cache disabled 1 cache enabled SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10hTop
INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM AX = 6F12h Return: AH = 00h (successful) Note: see AX=6F0Ah for speed definitions SeeAlso: AX=6F00h,AX=6F0AhTop
INT 16 - FAKEY.COM - INSTALLATION CHECK AH = 70h Return: AX = 1954h if installed Program: FAKEY is a keystroke faking utility by System Enhancement AssociatesTop
INT 16 - FAKEY.COM - PUSH KEYSTROKES AH = 71h CX = number of keystrokes DS:SI -> array of words containing keystrokes to be returned by AH=00h Program: FAKEY is a keystroke faking utility by System Enhancement Associates SeeAlso: AH=05h,AH=72hTop
INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES AH = 72h Program: FAKEY is a keystroke faking utility by System Enhancement Associates SeeAlso: AH=71hTop
INT 16 - FAKEY.COM - PLAY TONES AH = 73h CX = number of tones to play DS:SI -> array of tones (see #00605) Program: FAKEY is a keystroke faking utility by System Enhancement Associates SeeAlso: INT 15/AX=1019h Format of FAKEY.COM tone array entries: Offset Size Description (Table 00605) 00h WORD divisor for timer channel 2 02h WORD duration in clock ticksTop
INT 16 U - FastJuice - INSTALLATION CHECK
AX = 7463h ("tc")
Return: AX = 5443h ("TC") if installed
Program: FastJuice is a resident battery-power monitor by SeaSide Software
SeeAlso: AX=6A6Bh
Top
INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING AH = 75h AL = number of ticks between checks for new screen changesTop
INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE AH = 76h AL = error checking type 00h none 01h fast 02h slowTop
INT 16 - pcANYWHERE III - LOG OFF AH = 77h AL = mode 00h wait for another call 01h leave in Memory Resident Mode 02h leave in Automatic Mode FFh leave in current operating modeTop
INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
AX = 7761h ('wa')
Return: AX = 5741h ('WA') if installed
Note: WATCH.COM is part of the "TSR" package by Kim Kokkonen
SeeAlso: INT 21/AX=7761h
Top
INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK AX = 7788h BX = 7789h DS:SI -> signature "PUSHDIR VERSION 1.0" Return: AX = 7789h if installed and signature correct BX = 7788h SI destroyedTop
INT 16 - pcANYWHERE III - CHECK STATUS AH = 79h Return: AX = status FFFFh if resident and active FFFEh if resident but not active FFFDh if in Memory Resident mode FFFCh if in Automatic mode other value if not resident SeeAlso: AX=7B00h,INT 21/AX=2B44hTop
INT 16 - pcANYWHERE III - CANCEL SESSION AH = 7AhTop
INT 16 - pcANYWHERE III - SUSPEND AX = 7B00h SeeAlso: AH=79h,AX=7B01hTop
INT 16 - pcANYWHERE III - RESUME AX = 7B01h SeeAlso: AH=79h,AX=7B00hTop
INT 16 - pcANYWHERE III - GET PORT CONFIGURATION AH = 7Ch Return: AH = port number AL = baud rate (see #00606) SeeAlso: AX=7B00h,AH=7Eh (Table 00606) Values for pcANYWHERE III baud rate: 00h 50 baud 01h 75 baud 02h 110 baud 03h 134.5 baud 04h 150 baud 05h 300 baud 06h 600 baud 07h 1200 baud 08h 1800 baud 09h 2000 baud 0Ah 2400 baud 0Bh 4800 baud 0Ch 7200 baud 0Dh 9600 baud 0Eh 19200 baud SeeAlso: #00309Top
INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS AH = 7Dh AL = subfunction 00h set terminal parameters 01h get terminal parameters 02h get configuration header and terminal parameters DS:CX -> terminal parameter block SeeAlso: AH=7Ch,AH=7EhTop
INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT AH = 7Eh AL = subfunction 01h port input status Return AX = 0 if no characer ready, AX = 1 if character ready 02h port input character Return AL = received character 03h port output character in CX 11h hang up phone SeeAlso: AH=7ChTop
INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE AH = 7Fh AL = subfunction 00h enable remote keyboard only 01h enable host keyboard only 02h enable both keyboards 08h display top 24 lines 09h display bottom 24 lines 10h Hayes modem 11h other modem 12h direct connectTop
INT 16 - MAKEY.COM - INSTALLATION CHECK AH = 80h Return: AX = 1954h if installed Program: MAKEY is a utility by System Enhancement AssociatesTop
INT 16 - DK.COM v1.03 - INSTALLATION CHECK
AH = 87h
Return: AX = 4A57h ('JW') if installed
Program: DK.COM is the resident part of a small keyboard macro utility
by Digital Mechanics.
Top
INT 16 - AT.COM version 8/26/87 - API AX = 8765h BX = 4321h CX = ??? or FFFFh if CX = FFFFh DX = number of event to remove or FFFFh Return: ES:BX -> event record array (see #00607) Program: AT.COM is a resident scheduler by Bill Frolik Format of AT.COM event record: Offset Size Description (Table 00607) 00h BYTE in-use flag (00h free, 01h in use, FFh end of array) 01h BYTE day of date on which to trigger 02h BYTE month of date on which to trigger 03h BYTE trigger time, minute 04h BYTE trigger time, hour 05h WORD offset of command to be executedTop
INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!) AH = 92h Return: AH <= 80h if enhanced keyboard functions (AH=10h-12h) supported Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM to determine the highest supported keyboard function Note: many BIOSes (including at least some versions of Phoenix and AMI) will destroy AH on return from functions higher than AH=12h, returning 12h less than was in AH on entry (due to a chain of DEC/JZ instructions) SeeAlso: AH=05h"PCjr",AH=A2h,INT 2F/AX=AD80hTop
INT 16 - SCOUT v5.4 - GET ??? AH = 99h Return: AX = ABCDh BX:CX -> ??? (appears to be start of PSP for resident portion) Program: Scout is a memory-resident file manager by New-Ware SeeAlso: AH=9EhTop
INT 16 - SCOUT v5.4 - INSTALLATION CHECK AH = 9Eh Return: AX = ABCDh if installed Program: Scout is a memory-resident file manager by New-Ware SeeAlso: AH=99hTop
INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!) AH = A2h Return: AH <= 80h if 122-key keyboard functions (AH=20h-22h) supported Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM to determine the highest supported keyboard function Note: many BIOSes (including at least some versions of Phoenix and AMI) will destroy AH on return from functions higher than AH=12h, returning 12h less than was in AH on entry (due to a chain of DEC/JZ instructions) SeeAlso: AH=05h"PCjr",AH=92h,INT 2F/AX=AD80hTop
INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS AH = AAh Various registers set up by high level language. Return: Graphics performed Note: PT stands for Paint Tools which is a graphics library for Turbo Pascal, Modula 2 and others from DataBiten in Sweden. The library is installed as a memory resident driver.Top
INT 16 U - JORJ v4.3 - INSTALLATION CHECK AX = AABBh BX = EEFFh Return: AX = EEFFh if installed BX = AABBh if installed CL = hotkey name (default 6Ah 'j' for Alt-J) Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software Co. Index: hotkeys;JORJTop
INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
AX = AF20h
BX = 4B33h ('K3')
Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
ES:BX -> extended keyboard buffer start
ES:DX -> extended keyboard buffer end
ES:SI -> next keystroke
ES:DI -> last keystroke in buffer
CX = number of keystrokes in buffer
Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
Frinke, originally based on the K3 extended German keyboard driver
by Martin Gerdes published in c't magazine in 1988
Note: this function replaces the identical function AH=20h"K3"
SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
Top
INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
AX = AF25h
BX = 4B33h ('K3')
CX = number of keystrokes to copy
ES:SI -> buffer containing keystrokes
Return: CF clear if successful
CF set on error (i.e. buffer full)
CX = number of keystrokes NOT transferred
ES:SI -> first keystroke not transferred
Note: this function replaces the identical function AH=25h"K3"
SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
Top
INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
AX = AF4Dh
BX = 4B33h ('K3')
Return: AL = 50h if installed
BX = K3 version
DX = API version
ES:CX -> K3 structure (version-dependent) (see #00608)
Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
Frinke, originally based on the K3 extended German keyboard driver
by Martin Gerdes published in c't magazine in 1988
SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF82h/BX=4B33h,INT 2F/AX=D44Fh/BX=0000h
SeeAlso: INT 2F/AX=ED58h
Index: installation check;K3PLUS
Format of internal K3 structure:
Offset Size Description (Table 00608)
00h 3 BYTEs signature "K3$"
03h BYTE length of structure, including this byte and signature
04h WORD compiler switch option flags A (see #00609)
06h WORD compiler switch option flags B (see #00610)
08h BYTE internal flags A (see #00611)
09h BYTE internal flags B (see #00612)
0Ah WORD DOS version recorded at startup
0Ch WORD "ActTypeSpeed"
0Eh WORD last Keyboard-ID sent
41ABh translated, 83ABh native (pass-through)
10h WORD offset of K3TAB Special
12h WORD offset of K3TAB German
14h WORD offset of K3TAB Alt
16h WORD offset of K3TAB AltGr
18h WORD offset of K3TAB Ctrl
1Ah WORD offset of K3TAB NPad
1Ch WORD offset of K3TAB CtrlNPad
1Eh WORD offset of K3TAB AltNPad
20h WORD offset of K3TAB ApoTbl or 0000h
22h WORD offset of K3TAB UmlautTbl or 0000h
24h WORD offset of K3TAB UmlautTblExp or 0000h
26h WORD length of video mode table
28h WORD offset of VidMdTbl or 0000h
2Ah BYTE '$' end marker
Bitfields for K3PLUS compiler switch option flags A:
Bit(s) Description (Table 00609)
15 GuINT16Fct2 (general use of INT 16 function 2)
14 Int15df (INT 15 has to be predefined)
13 GuAltNP (general use of Alt Numpad)
12 SupAT (ATs+ supported)
11 GuINT16Fct3 (general use of INT 16 function 3)
10 GuINT16Ret (general use of INT16 bad function return)
9-8 Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
7 ForceMF (force MF decode without read-ID)
6 KXlate (translate keys for special keyboard)
5 UmlautX (umlaut translation capability included)
4 ApoX (translate apostrophe)
3 DoINT16 (INT 16 handler included)
2 UseCC (CopyCursor included)
1-0 UseEB
0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
Bitfields for K3 compiler switch option flags B:
Bit(s) Description (Table 00610)
15-11 reserved (0)
10 CtrlSeq (Ctrl macro capability included)
9-8 SupINT16fct55FE
6 DoInstallCheck (check for double installation)
5 SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
4 SendOut (sound and message output supported)
3 SupInt16fct5500 (INT 16/AX=5500h supported)
2 GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
1-0 UseBufferStart (0=use standard area, 1=set standard area,
2=use internal indexes, 3=reserved)
Bitfields for K3 internal flags A:
Bit(s) Description (Table 00611)
7 DoingUmlautExp
6 CallINT15fct4F
5 Beep1 (requires SendOut set in option flags B)
4 ATflag (set for AT, 386, PS/2 Models 50-80)
3 XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
2 KeyClick
1 UmlautExp
0 UmlautTrans
Bitfields for K3 internal flags B:
Bit(s) Description (Table 00612)
7-5 reserved
4 TranslateE0 enabled
3 Boot enabled
2 PrintScreen enabled
1 Break enabled
0 ApoPendingBeep
Top
INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
AX = AF50h
BX = 4B33h ('K3')
CH = function
00h get function flags
CL = 00h
Return: CX = supported function flags (see #00613)
nonzero reserved for extensions
SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
Bitfields for K3PLUS supported function list:
Bit(s) Description (Table 00613)
0 function 4Dh supported
1 function 50h supported
2-3 reserved (0)
4 function 20h supported
5 function 25h supported
6 function 51h supported
7 reserved (0)
8 function 80h supported
9 function 81h supported
10 function 82h supported
11-15 reserved (0)
Top
INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
AX = AF51h
BX = 4B33h ('K3')
CX = switches
Return: AL = status
00h done
CX = previous switch settings
01h switch not supported
FFh other error
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
Top
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
AX = AF80h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
81h if successful
ES:CX -> original INT 09 handler
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
Top
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
AX = AF81h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
82h if successful
ES:CX -> original INT 16 handler
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
Top
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
AX = AF82h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
83h if successful
ES:CX -> original INT 10 handler
Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
Frinke, originally based on the K3 extended German keyboard driver
by Martin Gerdes published in c't magazine in 1988
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
Top
INT 16 - VGARAM v1.00 - INSTALLATION CHECK AX = B0B1h ES:DI -> 6 byte signature "VGARAM" Return: AX = B1B0h if installed, DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is not used in text modes available for DOSTop
INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
AH = CAh
BX = 736Bh ("sk")
CX = 736Bh
AL = function
00h installation check
Return: DX = words available in keyboard buffer
01h place keystroke in buffer
DX = keystroke (DH = scan code, DL = ASCII character)
Return: DX = words available in keyboard buffer
FFFFh on error
02h flush STACKEY and BIOS keyboard buffers
Return: AX = CAFFh if installed
BX = segment of resident code
CX = STACKEY version (CH = major, CL = minor)
Program: STACKEY is a shareware keyboard-input faking TSR
Index: installation check;STACKEY
Top
INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
AX = CA00h
BX = 6570h ("ep")
CX = 6570h
Return: AX = CAFFh if installed
BX = segment of resident code
CX = ??? (0090h)
Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette
settings permanent across mode switches
SeeAlso: AX=CA00h/BX=7670h
Top
INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
AX = CA00h
BX = 7670h ("vp")
CX = 7670h
Return: AX = CAFFh if installed
BX = segment of resident code
CX = ??? (0090h)
Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette
settings permanent across mode switches
SeeAlso: AX=CA00h/BX=6570h
Top
INT 16 - PUPClip v1.12+ - INSTALLATION CHECK AX = CB00h Return: BX = 4342h if installed AX = version (AH = major version, AL = BCD minor version) Program: PUPClip is the freeware PopUP Clipboard for DOS and Windows DOS sessions by SkullC0DEr SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB04h,AX=CB05h,AX=CB06h,AX=CB08h SeeAlso: INT 2F/AX=1701hTop
INT 16 - PUPClip v1.12+ - GET CLIPBOARD CURSOR POSITION AX = CB01h Return: BL = column (0-79) BH = row (0-49) SeeAlso: AX=CB00h,AX=CB02h,AX=CB03hTop
INT 16 - PUPClip v1.12+ - SET CLIPBOARD CURSOR POSITION AX = CB02h BL = column (0-79) BH = row (0-49) Return: CF clear if successful CF set on error (invalid position) SeeAlso: AX=CB00h,AX=CB01h,AX=CB04hTop
INT 16 - PUPClip v1.12+ - GET CHARACTER FROM CURRENT CLIPBOARD CURSOR POSITION AX = CB03h Return: BL = ASCII character at current position SeeAlso: AX=CB00h,AX=CB02h,AX=CB04h,INT 2F/AX=1705hTop
INT 16 - PUPClip v1.12+ - WRITE CHARACTER TO CURRENT CLIPBOARD CURSOR POSITION AX = CB04h BL = ASCII character to store SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h,AX=CB05h,INT 2F/AX=1703hTop
INT 16 - PUPClip v1.12+ - CLEAR CLIPBOARD CONTENTS AX = CB05h Return: nothing SeeAlso: AX=CB00h,AX=CB04h,AX=CB06h,AX=CB07h,INT 2F/AX=1702hTop
INT 16 - PUPClip v1.12+ - SCROLL UP CLIPBOARD CONTENTS AX = CB06h Return: nothing SeeAlso: AX=CB00h,AX=CB05h,AX=CB07hTop
INT 16 - PUPClip v1.12+ - SCROLL DOWN CLIPBOARD CONTENTS AX = CB07h Return: nothing SeeAlso: AX=CB00h,AX=CB05h,AX=CB06hTop
INT 16 - PUPClip v1.12+ - POP UP AX = CB08h Return: CF clear if successful CF set on error (unsupported video mode) SeeAlso: AX=CB00hTop
INT 16 U - APCAL v3.20 - GET ??? AX = D724h CX = 00CBh Return: AX = 0000h BX = 0000h DX:CX -> ??? or 0000h:0000h Program: APCAL is an optionally-resident shareware appointment calendar by Gamma Software SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDhTop
INT 16 U - APCAL v3.20 - GET ??? AX = D724h CX = 00CCh Return: AX = 0000h BX = 0000h DX:CX -> ??? (apparently an internal data area) SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDhTop
INT 16 U - APCAL v3.20 - GET ??? AX = D724h CX = 00CDh Return: AX = ??? (5345h seen) SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CChTop
INT 16 - VIRUS - "Frumble" - INSTALLATION CHECK AH = DDh Return: AL = DDh if resident SeeAlso: INT 13/AX=FD50h,INT 21/AX=010Fh,INT 21/AX=0B56hTop
INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK AX = DFDFh Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e. "06/18/93" if installedTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - GET VERSION NUMBER AX = E000h Return: CF clear if successful AL = FAh BX = version number (BCD) (0200h = v2.00) CF set on error (not implemented) Notes: this interface is available on AMI BIOSes built from AMI core version 8/8/93 (HiFlex BIOS) or 11/15/93 (WinBIOS) or later the "Meningitis" virus uses this API when attacking a system equipped with an AMI BIOS; it is supposedly able to write itself into the Flash ROM and thus make itself part of the BIOS SeeAlso: AX=E001h,AX=E004h,AX=E006h,AX=E008h,AX=E00Ah,AX=E00Bh,AX=E0FFhTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - GET CHIPSET SAVE/RESTORE SIZE AX = E001h Return: CF clear if successful AL = FAh BX = number of bytes required to save chipset configuration CF set on error SeeAlso: AX=E000h,AX=E002h,AX=E003hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE CHIPSET STATUS & PREPARE CHPSET AX = E002h ES:DI -> buffer for storing chipset status Return: CF clear if successful AL = FAh CF set on error SeeAlso: AX=E000h,AX=E001h,AX=E003hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE CHIPSET STATUS AX = E003h ES:DI -> buffer in which chipset status was previously stored Return: CF clear if successful AL = FAh CF set on error SeeAlso: AX=E000h,AX=E001h,AX=E002hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - LOWER PROGRAMMING VOLTAGE Vpp AX = E004h Return: CF clear if successful AL = FAh CF set on error Note: this function does not return until the voltage level stabilizes SeeAlso: AX=E000h,AX=E005h,AX=E006hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - RAISE PROGRAMMING VOLTAGE Vpp AX = E005h Return: CF clear if successful AL = FAh CF set on error Note: this function does not return until the voltage level stabilizes SeeAlso: AX=E000h,AX=E004h,AX=E007hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE PROTECT AX = E006h Return: CF clear if successful AL = FAh CF set on error Note: this function performs any delay required to allow the Flash ROM to stabilize in the write-protected state SeeAlso: AX=E000h,AX=E004h,AX=E007hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE ENABLE AX = E007h Return: CF clear if successful AL = FAh CF set on error Note: this function performs any delay required to allow the Flash ROM to stabilize in the write-enabled state SeeAlso: AX=E000h,AX=E005h,AX=E006h,AX=E008hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH SELECT AX = E008h Return: CF clear if successful AL = FAh CF set on error Desc: select the Flash ROM if the system contains both EPROM and Flash ROM Note: this function performs any delay required to allow the Flash ROM to stabilize in the selected state; if no EPROM is present, this function always returns successfully SeeAlso: AX=E000h,AX=E007h,AX=E009hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH DE-SELECT AX = E009h Return: CF clear if successful AL = FAh CF set on error Desc: select the EPROM if the system contains both EPROM and Flash ROM Note: this function performs any delay required to allow the Flash ROM to stabilize in the de-selected state; if no EPROM is present, this function always returns successfully SeeAlso: AX=E000h,AX=E006h,AX=E008hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - VERIFY ALLOCATED MEMORY AX = E00Ah BX = number of paragraphs ES = starting segment of memory Return: CF clear if successful AL = FAh CF set on error Desc: determine whether the specified memory may be used for flash programming Note: always returns error if BX is zero on entry SeeAlso: AX=E000h,AX=E00BhTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE INTERNAL CACHE STATUS AX = E00Bh ES:DI -> buffer for internal cache status (minimum 4Kbytes) Return: CF clear if successful AL = FAh CF set on error Note: always returns error if the hardware does not contain internal cache or this call is made in protected mode SeeAlso: AX=E000h,AX=E00Ah,AX=E00ChTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE INTERNAL CACHE STATUS AX = E00Ch ES:DI -> buffer containing internal cache status (minimum 4Kbytes) Return: CF clear if successful AL = FAh CF set on error Note: always returns error if the hardware does not contain internal cache or this call is made in protected mode SeeAlso: AX=E000h,AX=E00BhTop
INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK AX = E0E0h Return: AX = 1F1Fh if installed DWORD 0040h:00F0h -> last data block in TSR list (see #00615) Note: the returned TSR list provides support for communication among TSRs built with TurboPower's Turbo Professional and Object Professional libraries for Turbo Pascal SeeAlso: AX=F0F0hTop
INT 16 - AMI BIOS - BIOS-FLASH Interface - GENERATE CPU RESET AX = E0FFh Return: never SeeAlso: AX=E000h,INT 14/AH=17h"FOSSIL"Top
INT 16 - BORLAND TURBO LIGHTNING - API AH = EDh BH = EDh BL = function 00h installation check Return: AX = 5205h CH = major version CL = minor version 01h identical to function 00h??? 02h get resident data segment Return: AX = data segment of resident portion 03h get resident ??? Return: AX = offset of some buffer in resident code seg 04h redefine auxiliary dictionary DS:SI -> counted filename string Return: AL = result code 05h select active environment AL = environment (00h to 0Ch) Return: AX = status 0000h if OK 0001h if out of range 06h toggle AutoProof??? AL = state (00h off, 01h on) 07h ??? 08h ??? AL = char??? CX = ??? DX = ??? Return: AX = 0, 1 or 2 09h ??? 0Ah ??? CX = ??? DX = ??? Return: AX = ??? 0Bh check dictionary integrity??? DS:SI -> counted dictionary filename string Return: AX = 0, 40h, 80h 0Ch spellcheck string (disk dictionary, possibly RAM dict as well) DS:SI -> counted string to check Return: AH = 0 AL = result code 00h string found in dictionary 20h string begins more than one word 40h string not found 0Dh set ??? (sets an internal flag) 0Eh spellcheck string (RAM dictionary only) DS:SI -> counted string to check Return: AH = 00h AL = result code 00h string found in dictionary 01h string not found 02h ??? 0Fh ??? 10h ??? Notes: AX in general returns an error code from most functions. Index: installation check;Turbo LightningTop
INT 16 - CALCULATOR - INSTALLATION CHECK AH = EFh Return: AX = 0088h if installed Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and Marek KosznikTop
INT 16 - Compaq 386 and newer - SET CPU SPEED AH = F0h AL = speed code (see #00614) if AL=09h, CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088 Note: also supported by some versions of AMI BIOS dated June 1992 or later; speed codes 0 or 1 are used for Low Speed, 2 for High Speed SeeAlso: AH=F1h,AH=F3h (Table 00614) Values for speed code: 00h equivalent to 6 MHz 80286 (COMMON) 01h equivalent to 8 MHz 80286 (FAST) 02h full 16 MHz (HIGH) 03h toggles between 8 MHz-equivalent and speed set by system board switch (AUTO or HIGH) 08h full 16 MHz except 8 MHz-equivalent during floppy disk access 09h specify speed directlyTop
INT 16 - TurboPower TSRs - INSTALLATION CHECK AX = F0F0h Return: AX = 0F0Fh if installed ES:DI -> last data block in TSR list (see #00615) Note: the returned TSR list provides support for communication among TSRs built with TurboPower's Turbo Professional and Object Professional libraries for Turbo Pascal SeeAlso: AX=E0E0h Format of TurboPower TSR data block: Offset Size Description (Table 00615) 00h DWORD pointer to program tag (counted ASCII string) 04h WORD interface version number (0400h) 06h DWORD pointer to command entry point 0Ah DWORD pointer to previous data block (0000h:0000h if none) 0Eh DWORD pointer to next data block (0000h:0000h if none) ---swappable TSRs only--- 12h DWORD pointer to swapping data 16h DWORD pointer to user data more???Top
INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED AH = F1h Return: AL = speed code (see #00614) if AL = 09h, CX = speed code Note: also supported by some versions of AMI BIOS dated June 1992 or later SeeAlso: AH=F0h,AH=F3hTop
INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE AH = F2h Return: AL = type 00h if 11-bit AT keyboard is in use 01h if 9-bit PC keyboard is in use AH = 00h (04/08/93 system ROM) SeeAlso: MEM 0040h:00C2hTop
INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER) AH = F3h AL = new limit 00h limit is 6 Mhz 01h limit is 8 Mhz/6 Mhz SeeAlso: AH=F0h,AH=F1hTop
INT 16 U - NORTON GUIDES - INSTALLATION CHECK
AX = F398h
Return: AX = 6A73h ("js")
BH = BIOS scan code of current hot key
BL = ASCII code of current hot key
Note: NG.EXE was written by John Socha
Top
INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS AX = F400h Return: AH = E2h (*) AL = status 00h not present 01h enabled 02h disabled CX = cache memory size bit 15: cache size information is NOT valid bits 14-0: cache memory size in kilobytes DH = cache write technology bit 7: cache write information is NOT valid bits 6-1: reserved (0) bit 0: 0 = Write-through caching 1 = Write-back caching DL = cache type bit 7: cache type information is NOT valid bits 6-1: reserved (0) bit 0: 0 = Direct mapped 1 = Two-way set-associative Notes: also supported by some versions of AMI BIOS dated June 1992 or later many (most) BIOSes return a modified AH when called for an unsupported or non-keyboard function (typically, the highest supported keyboard function [normally 12h] is subtracted from the original AH) SeeAlso: AX=F401h,AX=F402hTop
INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER AX = F401h Return: AX = E201h Notes: also supported by some versions of AMI BIOS dated June 1992 or later many (most) BIOSes return a modified AH when called for an unsupported or non-keyboard function (typically, the highest supported keyboard function [normally 12h] is subtracted from the original AH) SeeAlso: AX=F400h,AX=F402hTop
INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER AX = F402h Return: AX = E202h Notes: also supported by some versions of AMI BIOS dated June 1992 or later many (most) BIOSes return a modified AH when called for an unsupported or non-keyboard function (typically, the highest supported keyboard function [normally 12h] is subtracted from the original AH) SeeAlso: AX=F400h,AX=F401hTop
INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK AX = FA00h DX = 5945h Return: CF clear DI = 4559h BX = BIOS hotkey scancode (default 2F00h) (VSAFE only) FFFFh if disabled Note: MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282hTop
INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL AX = FA01h DX = 5945h Return: CF clear if successful DI = 4559h SeeAlso: AX=FA00hTop
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS AX = FA02h DX = 5945h BL = new parameter flags (see #00616) Return: CF clear DI = 4559h CL = old value of parameter flags Bitfields for VSAFE/VWATCH parameter flags: Bit(s) Description (Table 00616) 7 Protect executable files 6 Protect FD boot sector 5 Protect HD boot sector 4 Boot sector viruses 3 Check executable files 2 General write protect 1 Resident 0 HD Low level formatTop
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ??? AX = FA03h DX = 5945h Return: CF clear DI = 4559h AX = 0002hTop
INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG AX = FA04h DX = 5945h Return: CF clear DI = 4559h BL = hotkey disable flag (nonzero if hotkey disabled) Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h SeeAlso: AX=FA00h,AX=FA05hTop
INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG AX = FA05h DX = 5945h BL = new value of hotkey disable flag (nonzero to disable hotkey) Return: CF clear DI = 4559h Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h SeeAlso: AX=FA00h,AX=FA04hTop
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG AX = FA06h DX = 5945h Return: CF clear DI = 4559h BL = test status 00h don't monitor network drives (default for VWATCH v2.1) FFh monitor network drives (default for VSAFE v2.0) CL = ??? (only VSAFE 2.0) SeeAlso: AX=FA07hTop
INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG AX = FA07h DX = 5945h BL = new state 00h don't monitor 01h monitor network drives Return: CF clear DI = 4559h Note: VWATCH v2.1 (from PC Tools 9.0) returns CF set instead SeeAlso: AX=FA00h,AX=FA06hTop
INT 16 U - PC Tools v9+ VWATCH v2.1 - ??? AX = FA08h DX = 5945h Return: CF clear DI = 4559h AX = ??? (0002h) BX = version (BH=major, BL=two-digit minor) Note: this function is not supported by the PC Tools 9.0 VSAFE v2.0 SeeAlso: AX=FA00h,AX=FA06hTop
INT 16 U - PC Tools v8+ programs - GET ??? AX = FE55h CX = segment of resident program or 0000h for last loaded DX = 0000h Return: DX = resident code segment (unchanged if CX=0000h on entry) AX = ??? or 0000h Note: this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP, and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK seem to hook it merely to return the same AX as the CPTASK loaded prior to them returnedTop
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ??? AX = FEA4h Return: nothing Note: this function is identical to AX=FFA4h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFA4hTop
INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API AX = FEC6h BL = new state (00h enabled, nonzero disabled) Return: nothing Desc: specify whether CPSCHED API calls other than this one and AX=FE55h will be honoredTop
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ??? AX = FED3h DS:SI -> 92-byte data record for ??? Return: ??? Note: this function is identical to AX=FFD3h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFD3hTop
INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS AX = FEDCh Return: AX,DX destroyed Index: uninstall;CPSCHEDTop
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK AX = FEEFh CX = 0000h Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed BX = segment of resident portion DX = (CPSCHED v8.0) resident CS Note: this function is identical to AX=FFD3h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFEFhTop
INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK AX = FEF1h BX = ??? Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed DX = 5555h Note: this function is identical to AX=FFD3h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFF1hTop
INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER AH = FFh DX = scan code Return: AL = status 00h success 01h failure Program: KBUF is a keyboard buffer expander by Mark Adler SeeAlso: AH=05hTop
INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT AH = FFh Return: AL = interrupt number to which BIOS keyboard handler has been relocated AL+1 = Zoom interrupt number BX = hotkey Notes: the default interrupts are 60h for keyboard and 61h for Zoom interrupt; the default hot key is F10 not all vendors include the Tseng TSR which supports these functions SeeAlso: INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA" Index: hotkeys;OPTIMA 1024 VGATop
INT 16 - FREEZE.COM - INSTALLATION CHECK AH = FFh BH = 00h Return: BH = FFh if installed Program: FREEZE is a PC Magazine utilityTop
INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
AX = FF70h
BX = 0000h
CX = 4C69h ('Li')
DX = 6E6Bh ('nk')
Return: AX = 0000h
CX = 4350h ('CP')
DH = major version
DL = minor version
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
Top
INT 16 U - PC Tools v8+ DRIVEMAP - ??? AX = FF70h BX = 0001h DL = ??? Return: AX = ??? DH = ??? SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002hTop
INT 16 U - PC Tools v8+ DRIVEMAP - ??? AX = FF70h BX = 0002h CX = ??? DX = ??? Return: AX = ??? or FFFEh/FFFFh on error DL = ??? BUG: DRIVEMAP will branch to random locations for BX values other than those listed above for v8.0-9.0 because a) the incorrect register is range-tested, resulting in BX=0003h-5CD6h being accepted as valid function numbers, and b) the conditional which branches on invalid function numbers jumps to the following instruction, becoming a NOP SeeAlso: INT 2F/AX=9203h"DRIVEMAP" Index: installation check;DRIVEMAPTop
INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK AX = FF80h BX = 0000h CX = 0000h DX = 0000h Return: CX = 5555h if installed Program: CPTASK is a task switcher by Central Point SoftwareTop
INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0001h ??? Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0) BX = ??? (PSP segment of resident code???)Top
INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0002h Return: DX:SI -> ???Top
INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS AX = FF80h BX = 0003h Return: AX = flags (see #00617) SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h Bitfields for CPTASK flags: Bit(s) Description (Table 00617) 10 ??? 13 ??? 14 ??? 15 ???Top
INT 16 U - PC Tools v8+ CPTASK - SET ??? AX = FF80h BX = 0004h CX = new value of ??? Return: ??? Note: this function also sets bit 14 of the flags word returned by AX=FF80h/BX=0003hTop
INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS??? AX = FF80h BX = 0005h Return: AX = number of active tasks???Top
INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG AX = FF80h BX = 0006h Return: AX = old state (0000h clear, 0001h set) Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003hTop
INT 16 U - PC Tools v8+ CPTASK - ??? AX = FF80h BX = 0007h ES:DI -> ??? ??? Return: ???Top
INT 16 U - PC Tools v8+ CPTASK - ??? AX = FF80h BX = 0008h ??? Return: ???Top
INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0009h Return: CL = ??? CH = ??? (01h or 02h)Top
INT 16 U - PC Tools v9+ CPTASK - SET ??? AX = FF80h BX = 000Ah DS:SI -> 128-byte buffer containing ???Top
INT 16 U - PC Tools v9+ CPTASK - SET ??? AX = FF80h BX = 000Bh DX = index of ??? task (1-10)Top
INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY AX = FF80h BX = 000Ch CX = new delay time in minutesTop
INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
AX = FF80h
BX = 4350h ('CP')
CX = 5354h ('ST')
Return: never returns; terminates all tasks and exits to program originally
calling CPTASK
Top
INT 16 U - PC Tools v8+ DESKTOP - ??? AX = FF90h ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF91h ??? Return: AX = 0000h Note: calls AX=FFFDh after ??? SeeAlso: AX=FF92h,AX=FFFDhTop
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF92h ??? Return: AX = 0000h Note: like AX=FF91h, but temporarily sets ??? to 3 SeeAlso: AX=FF91h,AX=FFFDhTop
INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG AX = FF93hTop
INT 16 U - PC Tools v7+ DESKTOP - SET ??? AX = FF94h CX = ??? (default 0017h)Top
INT 16 U - PC Tools v7+ DESKTOP - SET ??? AX = FF95h BX = ???Top
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF96h CL = ??? Return: AX = ???Top
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF97h DS:DX -> buffer for ??? (see #00618) Return: ??? Format of PC Tools DESKTOP buffer: Offset Size Description (Table 00618) 00h 48 BYTEs ??? 30h 128 BYTEs ???Top
INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY AX = FF98h DX = byte offset in file of overlay header (see #00619) Return: BX = file handle for DESK.OVL file Desc: open the DESK.OVL file, seek to the specified offset, read in the overlay header, and seek to the offset specified by the header Format of PC Tools DESKTOP overlay header: Offset Size Description (Table 00619) 00h 12 BYTEs NUL-padded ASCII overlay filename 0Ch DWORD offset within DESK.OVL file of actual overlayTop
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF99h ??? Return: ???Top
INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME AX = FF9Ah Return: ES:BX -> name of current color scheme Note: available even if not popped upTop
INT 16 U - PC Tools v7+ DESKTOP - UNUSED AX = FF9Bh Return: ??? Note: sounds triple-length beepTop
INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER AX = FF9Ch BL = function 00h set ??? pointer DS:SI -> ??? 01h clear pointer to 0000h:0000hTop
INT 16 U - PC Tools v8+ CPTASK, VSAFE - ??? AX = FF9Dh ES:BX -> ??? word Return: ??? Note: if ES is non-zero, the word pointed at by ES:BX determines whether the ??? flag is cleared (word = 0000h) or set (word is nonzero). The flag is always cleared if ES=0000h.Top
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF9Eh DL = ??? bit 7: ??? bits 6-0: function number??? (00h,01h,other) ??? Return: ???Top
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FFA1h ??? Return: ??? Note: same as AX=FFA2h, except ??? set to FFh SeeAlso: AX=FFA2hTop
INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FFA2h ??? Return: ??? Note: calls AX=FFC7h (remove window) and AX=FFFDh SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDhTop
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK AX = FFA3h BX = 0000h CX = 0000h Return: AX = segment of resident code BX = 5555h CX = 5555h Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284hTop
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ??? AX = FFA3h BX = 0001h CX = 0001h Return: AX:BX -> ??? CX = BXTop
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ??? AX = FFA3h BX = 0002h CX = 0002h Return: AX = ??? (0 or 1) CX = BX = AXTop
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ??? AX = FFA3h BX = 0003h CX = 0003h Return: AX = ??? (0 or 1) CX = BX = AXTop
INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG AX = FFA3h BX = 0004h CX = 0004h SeeAlso: AX=FFA3h/BX=0005hTop
INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG AX = FFA3h BX = 0005h CX = 0005h SeeAlso: AX=FFA3h/BX=0004hTop
INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ??? AX = FFA3h BX = 0006h CX = 0006h DX = current PSP segment as known to DOS??? or 0000hTop
INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK AX = FFA3h BX = FFA3h CX = FFA3h Return: BX = CX = 5555h if installed AX = resident code segment Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk- access indicator on the screen; in v7 and v8, this function was provided by DATAMON Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3hTop
INT 16 U - PC Tools v7-8 DESKTOP - ??? AX = FFA4h Return: ??? Notes: available even when not popped up sets unknown flag if ??? conditions met SeeAlso: AX=FEA4hTop
INT 16 - PC-Cache v6+ - INSTALLATION CHECK AX = FFA5h CX = 1111h Return: CH = 00h if installed ES:DI -> internal data (see #00620) CL = cache state 01h enabled 02h disabled SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h Format of PC-Cache internal data: Offset Size Description (Table 00620) -1Ch 20 BYTEs cached drive list, one byte per drive A: to T: each byte is either blank (20h) or drive letter (41h-54h) -8 BYTE ??? -7 WORD number of physical transfers (scaled down to 0000h-7FFFh) -5 WORD number of saved transfers (scaled down to 0000h-7FFFh) -3 3 BYTEs ???Top
INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES AX = FFA5h CX = AAAAh Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5) SeeAlso: AX=FFA5h/CX=CCCChTop
INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES AX = FFA5h CX = CCCCh Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5) Note: delayed writes are automatically disabled on EXECing (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??; however, delayed writes are not automatically reenabled upon the program's termination in v6. SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFhTop
INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE AX = FFA5h CX = DDDDh SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFhTop
INT 16 - PC-Cache v6+ - ENABLE CACHE AX = FFA5h CX = EEEEh SeeAlso: AX=FFA5h/CX=DDDDhTop
INT 16 - PC-Cache v6+ - FLUSH CACHE AX = FFA5h CX = FFFFh SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1hTop
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? AX = FFA6h Return: DS:SI -> ??? Note: available only when popped upTop
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH AX = FFA7h Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)Top
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ??? AX = FFA8h DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total) ??? Return: ??? Notes: available only when popped up strings copied into internal buffer, among other actionsTop
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING AX = FFA9h Return: DS:SI -> version stringTop
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ??? AX = FFAAh ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS??? AX = FFABh Return: DS:SI -> editor setting strings???Top
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFACh DL = ??? Note: available only when popped upTop
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFADh DL = ???Top
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? AX = FFAEh Return: AL = ???Top
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFAFh DL = ???Top
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFB0h BL = ???Top
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ??? AX = FFB1h ??? Return: ???Top
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ??? AX = FFB2h Return: DS:SI -> ???Top
INT 16 U - PC Tools v5.5-8.0 DESKTOP - ??? AX = FFB3h ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG AX = FFB4h Note: available only when popped up SeeAlso: AX=FFBBhTop
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS AX = FFB5h BX = window specifier (000Fh to 0019h) (see #00621) DX = 0000h get, nonzero = set ES:DI -> window parameter buffer (see #00622) SeeAlso: AX=FFCBh (Table 00621) Values for PC Tools DESKTOP window specifier: 000Fh comm/FAX 0014h hotkey selection 0015h ASCII table 0016h system colors menu Format of PC Tools DESKTOP window parameters: Offset Size Description (Table 00622) 00h BYTE rows in window, not counting frame 01h BYTE columns in window, not counting frame 02h BYTE row number of top of window 03h BYTE 2*column number of left of window 04h BYTE character attribute for ??? 05h BYTE character attribute for background/border 06h BYTE character attribute for ??? 07h DWORD pointer to ??? on screen 0Bh 4 BYTEs ??? 0Fh BYTE nonzero if window may be resized Note: if running in monochrome mode, character attributes at offsets 04h to 06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h are changed to 07h on readingTop
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ??? AX = FFB6h Return: AH = ??? AL = ???Top
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ??? AX = FFB7h BX = direction 0000h copy to buffer else copy from buffer DS:SI -> 70-byte buffer with ??? Return: data copied Note: available only when popped up under v6.0+Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET??? AX = FFB8h BH = subfunction 00h get Return: BL = old value of ??? CL = old value of ??? (v6.0+) CH = old value of ??? (v6.0+) nonzero set BL = new value for ??? CL = new value for ??? (v6.0+) CH = new value for ??? (v6.0+) DH = ??? Return: AL = old value replaced by CL (v6.0+) AH = old value replaced by CH (v6.0+)Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFB9h ??? Return: AX = ??? CX = ??? DS:SI -> ??? ES:DI -> ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFBAh ??? Return: AX = ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG AX = FFBBh Note: available only when popped up SeeAlso: AX=FFB4hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN??? AX = FFBChTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES AX = FFBDh ??? Return: ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFBEh ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFBFh BX = DOS file handle to write on ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC0h ??? Return: AX = 0000h if successful AX = FFFFh on error Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC1h BL = ??? ES:DI -> data structure (see #00623) ??? Return: AX = ??? Note: available only when popped up SeeAlso: AX=FFC2h,AX=FFC3h Format of PC Tools DESKTOP data structure: Offset Size Description (Table 00623) 00h WORD ??? 02h WORD ??? 04h WORD ??? 06h WORD ??? 08h WORD ??? 0Ah BYTE ??? 0Bh BYTE ??? (zero/nonzero) ---v7.1--- 0Ch WORD ??? 0Eh BYTE ??? 0Fh WORD ??? 11h WORD ??? ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC2h BL = ??? ES:DI -> data structure (see #00623) ??? Return: AH = ??? CX = ??? DH = ??? DL = ??? Note: available only when popped up SeeAlso: AX=FFC1h,AX=FFC3hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC3h BL = ??? ES:DI -> data structure (see #00623) ??? Return: AH = ??? CX = ??? DH = ??? DL = ??? Note: available only when popped up SeeAlso: AX=FFC1h,AX=FFC2hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ??? AX = FFC4h Return: AL = ??? BX = segment of scratch space??? CX = segment of stored screen data (section covered by window???) DX = segment of window parameters for ??? ES:BP -> ??? Note: available only when popped up in versions prior to 6.0Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT AX = FFC5h Return: BL = Desktop state 00h if nonresident nonzero if loaded resident Note: available only when popped up; should call AX=FFEFh first to ensure that DESKTOP is active SeeAlso: AX=FFEFh,AX=FFF3hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFC6h BL = new value for ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW AX = FFC7h ??? Return: ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ??? AX = FFC8h Return: DS:SI -> ??? Note: valid only while popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD AX = FFC9h DS:SI -> characters to store in clipboard CX = size in bytes Return: CF set on error Notes: available only when popped up while copying, bytes of 00h and 0Ah are skippedTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFCAh DX = ??? Return: AX destroyed Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS??? AX = FFCBh DX = window specifier??? Return: AX destroyed Note: available only when popped up SeeAlso: AX=FFB5hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW AX = FFCCh DS:SI -> ASCIZ string Return: AX = ??? CX = ??? ES:DI -> address past last character displayed (v5.1/5.5) -> ??? on menu bar (v6.0)Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFCDh DS:DX -> ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS AX = FFCEh CX = ??? Return: nothing???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE AX = FFCFh Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT??? AX = FFD0h ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU AX = FFD1h Return: BX = number of copies DX = destination 00h cancel 01h LPT1 02h LPT2 03h LPT3 04h COM1 05h COM2 06h disk file Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD2h BX = ??? Return: BL = ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD3h DS:SI -> 92-byte data record for ??? Return: ??? SeeAlso: AX=FED3hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE AX = FFD4h BH = 3Ch create file (with no attributes) 3Dh open file 41h delete file BL = access mode 00h read only 01h write only 02h read/write DS:SI -> ASCIZ filename Return: BX = file handle 0000h on error Note: operation is attempted in (in order) the directory from which the desktop was started/run???, the directory specified with the filename, X:\PCTOOLS\, and X:\Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD5h ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD6h BX = ??? CX = ??? DX = offset in ??? ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD7h ??? Return: BL = ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE AX = FFD8h DS:BX -> ASCIZ filename Return: BX = file handle 0000h on error Note: pops up confirmation menu if file already exists only available when popped up???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ??? AX = FFD9h Return: AX = ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED AX = FFDAh DS:SI -> ??? (v5.1/5.5 only) Return: DS:SI -> filenameTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFDBh BL = ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK AX = FFDCh Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to original values Index: uninstall;PC Tools DESKTOPTop
INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK AX = FFDDh BX = 0000h Return: CX = 5555h DX = 5555h if PCShell installed in resident modeTop
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP AX = FFDDh BX = 0001h Return: CF clear if request successful (PCShell will pop up) CF set on error SeeAlso: AX=FFDDh/BX=0003hTop
INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ??? AX = FFDDh BX = 0002h Return: AL = 00h ??? 01h ??? Note: PCShell v6.0+ displays the error message "Incorrect PCRUN version", awaits a keystroke, and aborts the current processTop
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP AX = FFDDh BX = 0003h SeeAlso: AX=FFDDh/BX=0001hTop
INT 16 U - PC Tools v5.1+ PCShell API - GET ??? AX = FFDDh BX = 0004h Return: CF clear if successful DS:SI -> ???Top
INT 16 U - PC Tools v5.1+ PCShell API - ??? AX = FFDDh BX = 0005h ??? Return: ??? Note: resets various variables if certain conditions are metTop
INT 16 U - PC Tools v5.1+ PCShell API - ??? AX = FFDDh BX = 0006h ??? Return: ??? Note: resets various variables if certain conditions are metTop
INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG AX = FFDDh BX = 0007h Return: CF clear if successful SeeAlso: AX=FFDDh/BX=0008hTop
INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG AX = FFDDh BX = 0008h Return: CF undefined SeeAlso: AX=FFDDh/BX=0007hTop
INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS AX = FFDDh BX = 0009h Return: CF clear if successful DS:SI -> list of pointers (see #00624) Format of PC Tools PCShell returned pointer list: Offset Size Description (Table 00624) 00h WORD offset of WORD containing ??? 02h WORD offset of name of program to execute 04h WORD offset of 80-byte buffer for ??? 06h WORD offset of buffer for ??? (length in WORD preceding buffer) 08h WORD offset of buffer for ??? (length in WORD preceding buffer)Top
INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK AX = FFDDh BX = 000Ah Return: CX = 5555h if running DX = 5555h Note: also sets a flagTop
INT 16 U - PC Tools v6.0+ PCRUN API - ??? AX = FFDDh BX = 000Bh ??? Return: CX = 5555h if PCRUN active DX = 5555h Note: also clears flag set by AX=FFDDh/BX=000AhTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU AX = FFDEh DS:DX -> menu description (must be on a paragraph boundary) Return: AX = ??? AL seems to be the number of the selected button Note: available only when popped up SeeAlso: AX=FFEEhTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFDFh ??? Return: ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE0h CX = ??? DX = ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP AX = FFE1hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE2h DX = ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER AX = FFE3h BL = character to print to currently open printer or print file Return: CF set on error Note: available only when popped up SeeAlso: INT 17/AH=00hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE4h DX = segment of ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU AX = FFE5h DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title DX = segment of window parameters??? Return: AX = DOS file handle for file DS:DX -> filename??? FFFFh if function cancelled by user Note: available only when popped up SeeAlso: AX=FFDAhTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE AX = FFE6h Return: AX = 0000h if no key available else BIOS keycode Notes: available only when popped up invokes INT 28 idle interrupt before checking for keyTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE7h BX = segment of ??? Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER AX = FFE8h CX = number DH = attribute DS:SI -> destination for ASCII number Return: DS:SI buffer filled in with alternating characters and attributesTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST??? AX = FFE9h Return: BX = segment of file/directory list (14 bytes per file, NUL-padded) Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING AX = FFEAh DS:SI -> counted string (count byte followed by string) Return: ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFEBh ??? Return: ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY AX = FFECh DS:SI -> FAR routine to ??? BX = ??? ??? Return: AX = keystroke FFFFh if F10 pressed to go to menu Notes: available only when popped up invokes INT 28 while waiting for keystroke F10 is hotkey to Desktop menu Index: hotkeys;PC Tools DESKTOPTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ??? AX = FFEDh Return: AX = ??? Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS AX = FFEEh DS:SI -> pulldown menu system description (see #00625) Return: AX destroyed Notes: available only when popped up if the accessory does not need any menu items of its own, it should call AX=FFFAh instead SeeAlso: AX=FFF7h,AX=FFFAh Format of PC Tools DESKTOP pulldown menu system description: Offset Size Description (Table 00625) 00h WORD offset of menu bar contents (counted string) 02h WORD number of items on menu bar 04h 10 BYTEs scan codes for hotkeying to each of up to ten menu items 0Eh 10 BYTEs which character to highlight in each menu item (01h=first) 18h WORD offset of first menu definition (see #00626) 1Ah WORD offset of second menu definition ... Format of PC Tools DESKTOP menu definition: Offset Size Description (Table 00626) 00h WORD offset of menu contents (see #00627) 02h WORD number of entries in menu 04h for each entry: Offset Size Description 00h BYTE scancode of Alt-key to invoke entry 01h BYTE character to highlight (01h=first, etc) 02h WORD offset of FAR routine to handle selection Format of PC Tools DESKTOP menu contents: Offset Size Description (Table 00627) 00h BYTE number of lines in menu 01h BYTE width of menu 02h N BYTEs counted strings, one for each line in menuTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK AX = FFEFh CX = 0000h Return: CX = ABCDh if PC Tools DESKTOP.EXE installed BX = segment of resident portion AX = ??? (v5.1/5.5 only) SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFF0h DX = ??? Return: AX destroyed Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK AX = FFF1h BX = 0000h leave ??? flag as is nonzero set ??? flag Return: CX = 5555h if installed DX = 5555hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE AX = FFF2h DS:SI -> ASCIZ function key label string (each label preceded by '[') or help text Return: AX destroyed Notes: available only when popped up if the specified string does not start with '[', it is displayed centered on the bottom line, else the function key labels are shownTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP AX = FFF3h Note: releases any EMS being used; restores video mode, page, and cursor shape; and restores interrupt vectors SeeAlso: AX=FFC5h,AX=FFEFh Index: uninstall;PC Tools DESKTOPTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFF4h ??? Return: ??? Note: available only when popped up SeeAlso: AX=FFF6hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY AX = FFF5h Return: ES:BX -> screen attributes data structure (see #00628) AL = ??? (v6.0+) Format of PC Tools DESKTOP attribute data structure: Offset Size Description (Table 00628) -1 BYTE attribute for desktop background 00h BYTE attribute for normal characters on desktop menu 01h BYTE attribute for highlighted characters on desktop menu 02h 5 BYTEs ??? 07h BYTE attribute for dialog boxes 08h 15 BYTEs ??? 17h BYTE attribute for message boxesTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR AX = FFF6h DS = segment of editor buffer structure (see #00629) BX = ??? DX = segment of window parameters structure (see #00622) Return: ??? Note: available only when popped up SeeAlso: AX=FFF4h Format of PC Tools DESKTOP editor buffer structure: Offset Size Description (Table 00629) 00h WORD offset of current cursor position in buffer segment 02h 2 BYTEs ??? 04h WORD offset of beginning of file data in buffer segment 06h 10 BYTEs ??? 10h N BYTEs ASCIZ name of file being editedTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY??? AX = FFF7h DS:SI -> ??? ??? Return: ??? Notes: available only when popped up performs input processing on the menu bar set up with AX=FFEEh SeeAlso: AX=FFEEh,AX=FFFBhTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW AX = FFF8h DS:0000h -> window parameters structure (see #00622) DS:BX -> DWORD to store address of ??? on screen Return: ???Top
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE AX = FFF9h ES:BX -> FAR routine to redisplay the utility's window Note: available only when popped upTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS AX = FFFAh Notes: available only when popped up adds the "Window" option to the "Desktop" option which is the only one available when no accessories are active. Unlike AX=FFEEh, no additional menu items are added between "Desktop" and "Window" SeeAlso: AX=FFEEh,AX=FFFBhTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR AX = FFFBh Return: ??? Notes: available only when popped up performs input processing on the standard menu bar set up with AX=FFFAh SeeAlso: AX=FFF7hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR AX = FFFCh Return: ES:BX -> hotkey table (see #00630) DS:DX = original INT 09 vector Format of PC Tools DESKTOP hotkey table: Offset Size Description (Table 00630) 00h 2 BYTEs scancode/shift state for desktop hotkey 02h 2 BYTEs scancode/shift state for clipboard paste key 04h 2 BYTEs scancode/shift state for clipboard copy key 06h 2 BYTEs scancode/shift state for screen autodial keyTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ??? AX = FFFDh Return: AX destroyed Note: copies 4000 bytes from ??? to ??? under certain circumstances SeeAlso: AX=FF91h,AX=FF92hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR AX = FFFEh SeeAlso: AX=FFFFh,INT 33/AX=0001hTop
INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR AX = FFFFh SeeAlso: AX=FFFEh,INT 33/AX=0002hTop
INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK DX = 0ABCh Return: AX = AAAAh DX = BAAAh ES = code segment of resident portionTop
INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK DX = 0B90h Return: DX = ABBBh ES = code segment of resident portionTop
INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK DX = 0B91h Return: DX = ABCBh ES = code segment of resident portionTop
INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK DX = 0F5Fh Return: AX = AAAAh DX = F555h ES = code segment of resident portionTop
INT 17 - PRINTER - WRITE CHARACTER AH = 00h AL = character to write DX = printer number (00h-02h) Return: AH = printer status (see #00631) Note: Under PhysTechSoft's PTS ROM-DOS the parallel port can also be accessed as COM5. BUGS: Some print spoolers trash the BX register on return. Some original IBM BIOSes set more than one printer status bits at a time, while only one of them is correct. SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC" SeeAlso: INT 4B/AH=00h,PORT 0278h"PRINTER",MEM 0040h:0008h,MEM 0040h:0078h Bitfields for printer status: Bit(s) Description (Table 00631) 7 not busy 6 acknowledge 5 out of paper 4 selected 3 I/O error 2-1 unused 0 timeout Notes: If both, bit 5 "out of paper" and 4 "selected" are set, the MS-DOS/ PC DOS kernel assumes that no printer is attached. for Tandy 2000, bit 7 indicates printer-busy when set rather than clearTop
INT 17 - PRINTER - INITIALIZE PORT AH = 01h DX = printer number (00h-02h) Return: AH = printer status (see #00631) Note: some printers report that they are ready immediately after initialization when they actually are not; a more reliable result may be obtained by calling AH=02h after a brief delay SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC",INT 4B/AH=01hTop
INT 17 - PRINTER - GET STATUS AH = 02h DX = printer number (00h-02h) Return: AH = printer status (see #00631) Note: PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC",INT 4B/AH=02hTop
INT 17 - INSET - INSTALLATION CHECK AH = 02h DX = 0000h CX = 07C3h (1987d) Return: CX = 07C2h (1986d) if installed Program: INSET is a text/graphics integration programTop
INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
AX = 0200h
BX = 5050h ('PP')
CH = 45h ('E')
DX = printer port number (00h-02h)
Return: AH = status
00h if installed and port is an enhanced parallel port
CX:AL = installed BIOS type
5050h:45h ('PPE') if EPP v3.0+ BIOS installed
4550h:50h ('EPP') if EPP v1.0 BIOS installed
---EPP 1.0, 3.0---
DX:BX -> far entry point to Advanced BIOS (see #00632)
---EPP Revision 7---
DX = EPP I/O base address
ES:BX -> far entry point to EPP BIOS (see #00632,#00633)
03h if installed but specified port not supported
CF set
Program: The Enhanced Parallel Port BIOS provides support for parallel
port peripherals using the enhanced modes of the IEEE 1284.
SeeAlso: AH=E0h,MEM 0040h:0008h,MEM 0040h:00DCh
(Table 00632)
Call EPP BIOS entry point with:
DL = port number (v1.0,v3.0)
DX = (Revision 7) EPP port I/O base address
AH = function
00h Query Configuration
Return: AH = 00h if successful
AL = IRQ number used by port or FFh if no IRQ
BH = EPP BIOS revision (major in high nybble,
minor in low nybble)
BL = I/O capabilities (see #00635)
ES:DI -> ASCIZ driver information/version text
---v1.0,v3.0---
CX = I/O port base address for parallel port
---Revision 7---
CL = EPP chipset code (see #00636)
CH = hardware manufacturer's product code
01h Set Mode
AL = mode bits (see #00637)
Return: AX,BX destroyed
02h Get Mode
Return: AL = mode bits (see also #00637)
bit 7: EPP port interrupts enabled
AH = 00h
CF clear
BX destroyed
03h Interrupt Control
AL = subfunction
00h enable parallel port interrupts
01h disable parallel port interrupts
Return: AH = status (00h,05h,06h) (see also #00634)
04h EPP Reset
Return: AH = 00h if successful
AL destroyed
05h perform Address-Write/Device-Select I/O cycle
AL = device address
Return: AH = status
AL destroyed
06h perform Address-Read I/O cycle
Return: AL = returned address/device data
AH = status
07h write byte
AL = data byte to write
Return: AH = status
08h output block of data
DS:SI -> block of data to be sent to parallel port
CX = number of bytes to output
Return: AH = status (see #00634)
CX = number of unsent bytes
09h read byte of data
Return: AH = status (see #00634)
AL = byte read from parallel port
0Ah read block of data
ES:DI -> buffer for received data
CX = number of bytes to read from paralle port
Return: AH = status (see #00634)
ES:DI buffer filled if successful
CX = number of bytes not transferred
0Bh Address/Byte-Read
AL = device address
Return: AH = status (see #00634)
AL = byte read if successful
0Ch Address/Byte-Write
AL = device address
DH = data byte (v1.0,v3.0)
CL = data byte (Revision 7)
Return: AH = status (see #00634)
0Dh Address/Block-Read
AL = device address
ES:DI -> buffer for received data
CX = number of bytes to read
Return: AH = status (see #00634)
CX = number of bytes NOT transferred
0Eh Address/Block-Write
AL = device address
ES:DI -> data to be sent (v1.0,v3.0)
DS:SI -> data to be send (Revision 7)
CX = number of bytes to write
Return: AH = status (see #00634)
CX = number of bytes NOT transferred
0Fh Lock Port
AL = multiplexor port number
bits 7-4: daisy chain port number (1-8)
bits 3-0: mux device port number (1-8, 0 if no mux)
Return: AH = status (00h,03h,05h) (see #00634)
10h Unlock Port
AL = multiplexor port number
bits 7-4: daisy chain port number (1-8)
bits 3-0: mux device port number (1-8, 0 if no mux)
Return: AH = status (00h,03h,05h) (see #00634)
11h Device Interrupt
BL = multiplexor port number
00h if no multiplexor, else mux device port (01h-08h)
AL = subfunction
00h disable device interrupts
01h enable device interrupt
ES:DI -> interrupt event handler
Return: AH = status (00h,03h,05h,06h) (see #00634)
Note: AMI BIOS v1.00.12.AX1T ignores the multiplexor port
number; it also always sets INT 0F to the address
specified in ES:DI
12h Real-Time Mode
AL = subfunction
00h check whether any real-time devices present
01h add (advertise) real-time device
02h remove real-time device
Return: AH = status (00h,05h,06h,07h) (see #00634)
AL = real-time devices present? (00h no, 01h yes)
Note: unlike all other functions, this one does not use DL/DX
Return: AH = status (see #00634)
CF clear if successful
CF set on error
BX destroyed
SeeAlso: #00633
(Table 00633)
Call EPP BIOS (Revision 7) entry point multiplexor functions with:
DX = EPP port base I/O address
AH = function
40h Query Mux
Return: AH = status (see #00634)
AL = currently-selected port
CH = status flags
bit 0: channel locked
bit 1: interrupt pending
BH destroyed
Note: the PhoenixBIOS v4.0 documentation lists BL as the
currently-selected port and AL as the status flags
41h Query Device Port
AL = EPP multiplex device port (1-8)
Return: AH = status (see #00634)
CH = status flags (see #00638)
BX = EPP product/device ID (0000h if undefined)
Note: the PhoenixBIOS v4.0 documentation lists AL as the
status flags and CX as the device ID
42h Set Product ID
AL = EPP multiplex device port (1-8)
CX = EPP product ID
Return: AH = status (see #00634)
BX destroyed
50h Query Daisy Chain
AL = EPP multiplexor device port (1-8)
Return: AH = status (see #00634)
CH = status flags
bit 0: channel locked
bit 1: interrupt pending
BL = currently-selected device
BH = EPP daisy chain revision (high nybble = major)
CL = daisy-chain depth (00h if no daisy chain)
ES:DI -> ASCIZ driver vendor identification string
Note: the PhoenixBIOS v4.0 documentation lists AH=51h as
"Query Daisy Chain" and BL as the multiplexor port;
it also lists AL as status flags on return
51h Rescan Daisy Chain (dynamically reassign port numbers)
AL = EPP multiplexor device port (1-8)
Return: AH = status (see #00634)
BX destroyed
Note: the PhoenixBIOS v4.0 documentation lists AH=50h as
"Rescan Daisy Chain" and BL as the multiplexor port
Notes: these functions are only valid if a port multiplexor or daisy chain
is present
PhoenixBIOS 4.0 documents function 50h as "Rescan" and 51h as
"Query Daisy Chain"
SeeAlso: #00632,INT 2D/AL=DCh
(Table 00634)
Values for EPP BIOS function status:
00h successful
02h unsupported command/feature
03h unsupported parallel port
05h unsupported in current mode
06h invalid subfunction
07h already ???
20h multiplexor not present (AMI)
40h multiplexor not present
41h multiplexor currently locked
80h I/O timeout
FFh invalid/unsupported function
SeeAlso: #00632,#00633
Bitfields for EPP (v3.0, Revision 7) I/O capabilities:
Bit(s) Description (Table 00635)
0 multiplexor present
1 PS/2 bi-directional capable
2 daisy chain present
3 ECP capable
4 EPP software emulation supported
5 EPP capable
6 fast Centronics supported
7 standard EPP I/O map
SeeAlso: #00632
(Table 00636)
Values for EPP (Revision 7) chipset code:
00h Intel SL
01h FarPoint Communications
02h SMC
03h Chips&Technologies
04h Western Digital
05h National Semiconductor
SeeAlso: #00632
Bitfields for EPP BIOS mode bits:
Bit(s) Description (Table 00637)
0 set compatibility mode
1 set bi-directional mode
2 set EPP mode
---Revision 7,v3.0---
3 set ECP mode
4 set EPP software emulation
5 set fast Centronics mode
6-7 reserved (0)
SeeAlso: #00632,#M0053
Bitfields for EPP BIOS multiplex status flags:
Bit(s) Description (Table 00638)
0 port is selected
1 port is locked
2 interrupts are enabled
3 interrupt pending
SeeAlso: #00633
Top
INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS AH = 03h Return: BX = ??? CX = ??? Program: ELTSR is the resident portion of the Emulaser PostScript emulator by Vertisoft Systems, Inc. SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5hTop
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 03h SeeAlso: AH=04h"IBM",AH=05h"IBM"Top
INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING AH = 03h DX = printer port number CX = number of characters to print DS:SI -> string Return: AH = printer status (see #00631) CX = number of characters actually printed Desc: send an entire string of chars to the print spooler with a single call Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc. SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"Top
INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK AH = 03h BX = 5A00h Return: AX = 5ACBh DI = 0000h ES = DMP code segment (also data segment) Program: DMP is a Printer driver/spooler, by DMP (USA), available on the PCTODAY disk, volume 10, March 1991Top
INT 17 - DOSISODE to WATTCP TSR Interface - "socket" AX = 0300h CX = type of socket from socket( domain, type, protocol ) DX = local identifier of socket (0 - 31) Return: AX = 0000h success CX = segment of 4500 byte transfer buffer DX = offset of 4500 byte transfer buffer = FFFFH failure CX = error code ENFILE 23 Program: DOSISODE is the ISO developers environment which has been ported to DOS and will run with the Waterloo TCP turned into a resident TSR. Currently it allows a maximum of 6 open sockets. Note: this function will initialize the interface the first time it is called SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE" SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT AH = 04h Note: has no effect unless ELTSR is deactivated (see AX=0503h) SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5hTop
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 04h SeeAlso: AH=03h"IBM",AH=05h"IBM"Top
INT 17 - DOSISODE to WATTCP TSR Interface - "bind" AX = 0400h Note: this function just returns SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"Top
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 05h SeeAlso: AH=03h"IBM",AH=04h"IBM"Top
INT 17 U - Emulaser ELTSR - ??? AX = 0500h ??? Return: AX = unload status (0001h safe to unload, 0002h not safe) BX = ??? CX = PSP segment of ELTSR DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing) SI = ??? DI = ??? SeeAlso: AH=04h,INT 1A/AH=E5hTop
INT 17 - DOSISODE to WATTCP TSR Interface - "connect" AX = 0500h SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS AX = 0501h Return: (see AX=0500h) Note: restores interrupt vectors without checking whether they have been hooked by later programs; should only be called if ELTSR reports that it is safe to unload SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h Index: uninstall;Emulaser ELTSRTop
INT 17 U - Emulaser ELTSR - SET ??? AX = 0502h BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3) CL = ??? DL = ??? Return: (see AX=0500h) SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5hTop
INT 17 U - Emulaser ELTSR - DEACTIVATE??? AX = 0503h Return: (see AX=0500h) SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5hTop
INT 17 U - Emulaser ELTSR - ??? AH = 06h ??? Return: ??? SeeAlso: AX=0500h,AX=0503h,AH=07h"ELTSR",INT 1A/AH=E5hTop
INT 17 - DOSISODE to WATTCP TSR Interface - "listen" AX = 0600h Note: this function just returns SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE" SeeAlso: AX=0E00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE AH = 07h ES:DX -> ASCIZ filename to be opened Return: ??? Note: new output will be appended to the specified file SeeAlso: AH=08h,INT 1A/AH=E5hTop
INT 17 - DOSISODE to WATTCP TSR Interface - "accept" AX = 0700h Note: this function just returns SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE AH = 08h ??? Return: ??? Desc: close the file previously opened by function 07h SeeAlso: AH=07h,INT 1A/AH=E5hTop
INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom" AX = 0800h SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE??? AH = 09h BX = ??? CX = ??? DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) Return: AX = status 00h successful FFh failed Program: ELTSR is the resident portion of the Emulaser PostScript emulator by Vertisoft Systems, Inc. Note: this function calls through to INT 1A/AX=E401h, and thus requires that either ELSPL or Disk Spool II be installed SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5hTop
INT 17 - DOSISODE to WATTCP TSR Interface - "sendto" AX = 0900h SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - SET ??? FILENAME AH = 0Ah ES:BX -> ??? buffer CX = length of ??? buffer Return: ??? Note: copies the specified name into the buffer passed to ELSPL as the filename by AH=09h SeeAlso: AH=09h,INT 1A/AH=E5hTop
INT 17 - DOSISODE to WATTCP TSR Interface - "select" AX = 0A00h SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - GET ??? AH = 0Bh Return: AX:BX -> ??? SeeAlso: AH=0Ah,INT 1A/AH=E5hTop
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Bh SeeAlso: AH=03h"IBM",AH=0Ch"IBM"Top
INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl" AX = 0B00h DX = local identifier of socket (0 - 31) Note: this function sets the socket into non_block mode SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - SET ??? FLAG AH = 0Ch ??? Return: ??? SeeAlso: AH=0Bh,INT 1A/AH=E5hTop
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Ch SeeAlso: AH=0Bh"IBM",AH=0Dh"IBM"Top
INT 17 - DOSISODE to WATTCP TSR Interface - "close" AX = 0C00h SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE AH = 0Dh Return: AX = state (0000h off, 0010h on) Desc: determine the actual state of ScrlLk even when Emulaser is controlling the ScrlLk light as its activity indicator SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5hTop
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Dh SeeAlso: AH=0Ch"IBM",AH=0Eh"IBM"Top
INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE AX = 0D00h Note: this function is used to shutdown the interface SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"Top
INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING AH = 0Eh Program: ELTSR is the resident portion of the Emulaser PostScript emulator by Vertisoft Systems, Inc. Note: this function is called by ELTSR on every INT 08 to allow data to be processed in the background, but may also be called by applications to give Emulaser additional CPU time SeeAlso: AH=0Dh,INT 1A/AH=E5hTop
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Eh SeeAlso: AH=03h"IBM",AH=0Dh"IBM",AH=80h"IBM"Top
INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK AX = 0E00h Return: CX = 1234h if installed Program: DOSISODE is the ISO developers environment which has been ported to DOS and will run with the Waterloo TCP turned into a resident TSR. Currently it allows a maximum of 6 open sockets. Note: this function is used to check if the interface is loaded SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"Top
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK AX = 2000h BL = printer number??? Return: AX = status (see #00639) BX = driver version number (BH=major,BL=minor) CH = ??? (00h) CL = ??? DX = ??? (0100h) Note: also enables the remaining printer driver functions (2001h-2007h) SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h (Table 00639) Values for PC Paint function status: 0000h successful 0001h invalid printer??? 0002h ??? 0003h invalid subfunction 0005h driver disabled, must call function 00h first 0009h unknown printer error 000Bh printer not selected 000Ch printer out of paper 000Eh error while writing to serial printer 000Fh ??? 0010h invalid function number 0011h value out of rangeTop
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG AX = 2001h BL = printer number??? Return: AX = status (see #00639)Top
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION AX = 2002h BL = printer number??? CL = desired information 00h printer type Return: ES:DI -> ASCIZ printer name 01h paper size DX = size index Return: ES:DI -> ASCIZ paper size description 02h ??? Return: BX = ??? 03h printer information??? DX = ??? ES:BX -> buffer for ??? (min 134 bytes) Return: AX = status (see #00639) SeeAlso: AX=2000h,AX=2004hTop
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ??? AX = 2003h ES:BX -> ??? Return: AX = status (see #00639) SeeAlso: AX=2000h,AX=2004hTop
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ??? AX = 2004h BL = printer number??? Return: AX = status (see #00639) ES:DI -> ??? SeeAlso: AX=2000h,AX=2003hTop
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE AX = 2005h BL = printer number??? Return: AX = status (see #00639) Note: this function also clears the flag set by AX=2001h SeeAlso: AX=2000h,AX=2001h,AX=2006hTop
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN AX = 2006h BL = printer number??? Return: AX = status (see #00639) Note: this function also clears the flag set by AX=2001h and disables functions other than AX=2000h SeeAlso: AX=2000h,AX=2001h,AX=2005hTop
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED AX = 2007h Return: AX unchanged SeeAlso: AX=2000hTop
INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS AX = 2400h DL = new state 00h disabled 01h enabled Return: DL = 24h if installed DH = minor version number CX = network address of this machine AL = status (see #00640) SeeAlso: AX=2403h,INT 16/AX=4500h (Table 00640) Values for NET.24 function status: 00h successful 01h timeout 02h header error 03h data error 04h busy 05h invalid parametersTop
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE AX = 2401h BL = timeout in clock ticks Return: AL = status (see #00640) DX:BX -> receive buffer SeeAlso: AX=2402h,AX=2404h,AX=2408hTop
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE AX = 2402h transmit buffer filled (see AX=2403h) Return: AL = status (see #00640) SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409hTop
INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER AX = 2403h Return: AL = status (see #00640) CX = number of characters in receive ring buffer DX:BX -> transmit buffer SeeAlso: AX=2400h,AX=2402hTop
INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK AX = 2404h BX = target address Return: AL = status (see #00640) SeeAlso: AX=2402h,AX=2405hTop
INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK AX = 2405h BX = target address Return: AL = status (see #00640) SeeAlso: AX=2402h,AX=2404hTop
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE AX = 2406h Return: AL = status (see #00640) SeeAlso: AX=2407h,AX=240AhTop
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE AX = 2407h Return: AL = status (see also #00640) 06h end of data DL = received character SeeAlso: AX=2406hTop
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE AX = 2408h Return: AL = status (see also #00640) 06h end of data CX = number of bytes in receive buffer DX:SI -> receive buffer SeeAlso: AX=2401h,AX=2405h,AX=2409hTop
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE AX = 2409h BX = target address CX = number of data bytes DL = command code to send DS:SI -> data bytes for command Return: AL = status (see also #00640) 03h no response 06h remote currently unable to perform command SeeAlso: AX=2405h,AX=2408hTop
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT AX = 240Ah Return: AL = status (see #00640) SeeAlso: AX=2406h,AX=240Bh,AX=240ChTop
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE AX = 240Bh DL = character to send Return: AL = status (see also AX=2400h) 03h transmission error 06h write error SeeAlso: AX=2407h,AX=240Ah,AX=240ChTop
INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT AX = 240Ch Return: AL = status (see also AX=2400h) 03h transmission error 06h remote breaks connection SeeAlso: AX=240Ah,AX=240BhTop
INT 17 - Brother P-Touch - INSTALLATION CHECK
AX = 4B00h
Return: AX = 4249h ('BI' = Brother International) if installed
BX = program ID
4550h ('EP') for "Epson FX-80 Emulator"
5047h ('PG') for "Printer to Disk Utility"
CX = numbero of parallel port being emulated or intercepted
SeeAlso: AX=4B01h
Top
INT 17 - Brother P-Touch - UNINSTALL AX = 4B01h Return: AX = segment of resident program or 0000h if unable to uninstall Note: the calling program must manually free both the indicated segment and the environment segment for the TSR with INT 21/AH=49h (the environment is pointed at by the WORD at AX:002Ch) SeeAlso: AX=4B00h,INT 21/AH=49hTop
INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE AX = 5000h BX = country code 0001h USA (English), 0051h Japan Return: AL = status 00h successful 01h bad country code 02h other error SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000hTop
INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE AX = 5001h Return: AL = status 00h successful BX = country code 02h error SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001hTop
INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION AH = 51h DX = 2-byte JIS code Return: DX = shift-JIS value or 0000h on error Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard) characters to Shift-JIS characters, and the other performs the opposite conversion SeeAlso: AX=5000h,AH=52hTop
INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION AH = 52h DX = 2-byte shift-JIS code Return: DX = JIS code or 0000h on error Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard) characters to Shift-JIS characters, and the other performs the opposite conversion SeeAlso: AH=51hTop
INT 17 - LR - SET CONFIGURATION AX = 5555h BX = AAAAh CL = configuration flags (see #04117) DX = LPT number Return: AX = A55Ah BX = BBBBh Program: LR_xxxx.COM files are a set of printer-hardware dependent printer drivers found in the LIR DOS/Windows 3.xx codepage support package develoved by LABAS u.a.b. LIR supports several different screen and printer codepages and various keyboard layouts used in Lithuania. Download at: ftp://ftp.labas.com/pub/drivers/language/lir422.zip SeeAlso: AX=5555h/BX=BBBBh,INT 10/AX=5555h/BX=AAAAh Bitfields for LR_xxxx.COM configuration flags: Bit(s) Description (Table 04117) 7 ESC sequence??? 6 ESC sequence??? 5-3 printer code page 2 Lithuanian alphabet??? 1 Russian alphabet??? 0 ???Top
INT 17 - LR - GET CONFIGURATION AX = 5555h BX = BBBBh DX = LPT number Return: AX = A55Ah BX = CCCCh CL = configuration flags (see #04117) SeeAlso: AX=5555h/BX=AAAAh,INT 10/AX=5555h/BX=BBBBhTop
INT 17 - FLASHUP.COM - INSTALLATION CHECK AH = 60h Return: AL = 60h DX = CS of resident code Notes: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co. FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah consisting of an 80h followed by the actual command SeeAlso: INT 10/AH=09h,INT 10/AH=0AhTop
INT 17 - SPEEDSCR.COM - INSTALLATION CHECK AH = 61h Return: AL = 61h DX = CS of resident code Note: SPEEDSCR.COM is by The Software Bottling Co.Top
INT 17 U - T2PS v1.0 - UNINSTALL AH = 62h Return: nothing SeeAlso: AH=63h,AH=64h,INT 05/AX=554EhTop
INT 17 U - T2PS v1.0 - SET PARAMETERS AH = 63h ES:SI -> settings (see #00641) Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D. Technologies SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h Format of T2PS settings: Offset Size Description (Table 00641) 00h WORD LPT port number (0=LPT1, etc.) 02h WORD page heigh in points 04h WORD page width in points 06h WORD top margin in points 08h WORD bottom margin in points 0Ah WORD left margin in points 0Ch WORD right margin in points 0Eh WORD font size in points 10h WORD tab size 12h WORD timeout in clock ticksTop
INT 17 U - T2PS v1.0 - GET PARAMETERS AH = 64h ES:SI -> buffer for settings (see #00641) Return: ES:SI buffer filled SeeAlso: AH=62h,AH=63h,INT 05/AX=5053hTop
INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
AX = 6F00h
BX = 0000h
Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
Top
INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER AX = 6F02h CX = size of buffer in bytes DX = port number (0-3) ES:DI -> buffer containing characters to be printed Return: AH = printer status (see #00631) CX = number of bytes successfully printed ---on error (AH bit 0 set)--- ES:DI -> next byte to be sent ---if successful--- ES:DI unchanged SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02hTop
INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 80h SeeAlso: AH=03h"IBM",AH=0Bh"IBM"Top
INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER AH = 81h AL = 00h (NTNX compatibility mode) CL = number of jobs to cancel Return: AL = status (see #00642) Note: this function cancels the last CL printouts for the current task SeeAlso: AH=82h (Table 00642) Values for Alloy status: 00h success 01h-7Fh warning 80h general failure 81h host overloaded (NTNX only) 82h module busy (NTNX only) 83h host busy (NTNX only) 84h re-entry flag set 85h invalid request 86h invalid printer 87h invalid process ID 89h access denied 8Ah option not available for given port type 8Bh option not available for given task type 91h printer busy C2h file not found C3h path not found C4h file access failureTop
INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER AH = 82h AL = 00h (NTNX compatibility mode) Return: AL = status (see #00642) SeeAlso: AH=81hTop
INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES AH = 83h AL = mode 00h NTNX compatibility CL = number of copies (max 99, default 1) 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 CX = number of copies Return: AL = status (see #00642) Note: in NTNX compatibility mode, this function only affects LPT1Top
INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK AH = 84h AL = mode 00h NTNX compatibility 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 Note: closes spool file and tells spooler to queue the print job (LPT1 only under MW386 in NTNX compatibility mode)Top
INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION AH = 84h AL = character DX = printer number Return: AH = printer status (see #00631) SeeAlso: AH=00h,AH=85hTop
INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION AH = 85h AL = new state (00h enabled, 01h disabled) SeeAlso: AH=84h"AX"Top
INT 17 - Alloy NTNX - SET INDOS POINTER AH = 87h AL = 00h CX:BX -> buffer for user-written printer drivers Return: BX,CX destroyed Note: must be executed before the printer is enabled SeeAlso: AH=8AhTop
INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER AH = 88h AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) 01h MW386 DX = MW386 printer number Return: AH = status (see #00642) Note: removes specified printer from the spooler's list of printers SeeAlso: AH=89h,AH=8Bh (Table 00643) Values for Alloy NTNX printer number: 00h host LPT1 01h host LPT2 02h host LPT3 03h host LPT4 04h host COM1 05h host COM2 06h user's logical COM2 07h user's terminal AUX port 08h user's logical COM1 (MW386 only)Top
INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER AH = 89h AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) 01h MW386 DX = MW386 printer number Return: AL = status (see #00642) Note: the specified printer is added to the spooler's list of available printers SeeAlso: AH=88h,AH=8BhTop
INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER AH = 8Ah ??? SeeAlso: AH=92hTop
INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME AH = 8Bh DS:DX -> ASCIZ printer name Return: AL = status (see also AH=81h) 00h successful DX = physical device number SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"Top
INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER AH = 8Ch DX = physical device number ES:DI -> 17-byte buffer for ASCIZ device name Return: AL = status (see also AH=81h) 00h successful ES:DI buffer filled SeeAlso: AH=88h,AH=8BhTop
INT 17 - Alloy NTNX,MW386 - RESET SPOOLER AH = 8Dh AL = 00h Return: AL = status (see #00642) Notes: clears all buffers and resets spooler to boot-up values MW386 supports this function for compatibility only; it is a NOPTop
INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT AH = 8Eh AL = 00h Return: CX:BX -> INT 28 entry point SeeAlso: AH=8FhTop
INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT AH = 8Fh AL = 00h Return: CX:BX -> DOS intercept routine SeeAlso: AH=8EhTop
INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME AH = 90h AL = mode 00h NTNX compatibility DL = printer code (FFh=current) (NTNX, MW386 v1.x only) DH = number of copies (FFh=current) (NTNX, MW386 v1.x only) 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 CX:SI -> ASCIZ pathname Return: AL = status (see #00642) Note: in mode 00h, the file is always sent to logical LPT1 SeeAlso: AH=A0hTop
INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER AH = 91h AL = mode 00h NTNX compatibility Return: CX = user number (00h = host) DX = currently selected printer number (00h-08h) 01h MW386 Return: CX = user number DX = physical dev number of currently selected printer 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 Return: CX = user number DX = physical device number Return: AL = status (see #00642) SeeAlso: AH=8ChTop
INT 17 - Alloy NTNX - CHECK PRINTER DRIVER AH = 92h AL = 00h CL = 00h Return: CL = driver state 01h initialized 80h not initialized AX = status (see #00642) SeeAlso: AH=8AhTop
INT 17 - Alloy NTNX, MW386 - SELECT PRINTER AH = 94h AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) 01h MW386 DX = MW386 printer number 02h MW386 v2+ BX = logical printer number DX = MW386 printer number Return: AL = status (see #00642) Note: modes 00h and 01h affect only logical LPT1 SeeAlso: AH=8Bh,AH=95hTop
INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER AH = 95h AL = mode 00h NTNX compatibility Return: DX = NTNX printer number (see #00643) (FFFFh if current printer not compatible with NTNX) 01h MW386 Return: DX = MW386 printer number 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 Return: DX = MW386 printer number (FFFFh = none) Return: AL = status (see #00642) Note: modes 00h and 01h return the printer number of logical LPT1 only SeeAlso: AH=94hTop
INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS AH = 96h AL = 00h Note: documentation states that this is a NOP, doing only XOR AX,AX before returning SeeAlso: INT 14/AH=24hTop
INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK AH = 97h AL = mode 00h NTNX compatibility 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 CH,CL,DH = three character break sequence DL = subfunction 00h set break string else reset break Return: AL = status (see #00642) Notes: mode 00h affects only logical LPT1 when the break string is encountered, the spool file will be closed and queued for printing automatically the break string is not permanently saved, and will be reset each time MW386 or the user is rebooted SeeAlso: AH=9BhTop
INT 17 - Alloy NTNX,MW386 - RESTART PRINTER AH = 98h AL = 00h DL = printer number (FFh=current) Return: AL = status 00h successful 01h incorrect printer 02h task not found Note: MW386 supports this function for compatibility only; it is a NOPTop
INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
AH = 99h
AL = mode
00h NTNX compatibility
DL = NTNX printer number (see #00643)
(FFh = task's current logical LPT1)
DH = mode (see #00644)
01h MW386
DX = MW386 printer number
CL = mode (as for DH above)
Return: AL = status (see #00642)
DH = mode (bits 1 and 2 set as above)
DL = printer owner's user number if not spooled
Bitfields for Alloy printer mode:
0 get mode if 1, set mode if 0 (Table 00644)
1 private ("attached")
2 direct instead of spooled
3-7 reserved (0)
Top
INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION AH = 9Ah AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) (FFFFh = current logical LPT1) 01h MW386 DX = MW386 printer number CL = tab length (00h = no expansion, 01h-63h = spaces per tab) Return: AL = status (see #00642) Note: beginning with MW386 v2.0, tab expansion is set on a per-printer basis rather than a per-user basis; NTNX and MW386 v1.x ignore DX SeeAlso: AH=A4hTop
INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT AH = 9Bh AL = mode 00h NTNX compatibility CX = timeout value in clock ticks (1/18 sec) (00h = never) 01h MW386 CX = timeout value in seconds (00h = never) 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 CX = timeout value in seconds (00h = never) Return: AL = status (see #00642) Notes: modes 00h and 01h affect only the current logical LPT1 if no data is sent to a printer for the specified amount of time, the spool file will be closed and queued for printing automatically SeeAlso: AH=97hTop
INT 17 - Alloy MW386 - SPOOL COPY OF FILE AH = A0h AL = mode 00h NTNX compatibility DX = ??? (NTNX, MW386 v1.x only) 02h MW386 v2+ BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 CX:SI -> ASCIZ pathname Return: AL = status (see #00642) Notes: makes a copy of the specified file in the spooler's directory, allowing the original file to be modified or deleted while the copy is printed in mode 00h, the file is printed on logical LPT1 SeeAlso: AH=90hTop
INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED AH = A4h AL = new state 00h form feed after end of print job disabled 01h form feed enabled Return: AL = status (see #00642) Note: only affects the current logical LPT1 SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"Top
INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE AH = A6h AL = new state 00h banner page before print job disabled 01h banner page enabled Return: AL = status (see #00642) Note: only affects the current logical LPT1 SeeAlso: AH=A4hTop
INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS AH = A7h AL = spool flags (see #00645) BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 Return: AL = status (see #00642) Note: the documentation does not state which register contains the result of a GET SeeAlso: AH=A4h,AH=A6h Bitfields for Alloy spool flags: Bit(s) Description (Table 00645) 0 banner page enabled (see AH=A6h) 1 form feed enabled (see AH=A4h) 2-6 reserved (0) 7 set flags if 1, get flags if 0Top
INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME AH = A8h CX:SI -> ASCIZ filename without extension (max 8 chars) Return: AL = status (see #00642) Note: allows application to specify banner page filename for spool files collected from the application's printer output SeeAlso: AH=A9hTop
INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE AH = A9h AL = new spool drive (2=C:,3=D:,etc) Return: AL = status (see #00642) Note: does not remove previous spooling directory since jobs may be pending SeeAlso: AH=A8hTop
INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS AH = AAh AL = mode 00h NTNX DX = NTNX printer number (see #00643) 01h MW386 DX = MW386 printer number Return: AH = instantaneous printer status 00h printer ready 01h not ready 12h off line 13h out of paper 14h general device failure 15h device timeout 16h bad device numberTop
INT 17 - Alloy MW386 - CHECK SPOOLER AH = AFh Return: AX = 55AAh if spooler availableTop
INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS AH = C0h DX = printer port (0-3) Return: ES:BX -> control block (see #00646) SeeAlso: AH=C1h Format of PCSpool control block: Offset Size Description (Table 00646) 00h WORD printer number 02h WORD address of printer status port 04h WORD number of first record in queue 06h WORD number of last record in queue 08h DWORD characters already printed 0Ch DWORD number of characters remaining 10h DWORD pointer to dequeue buffer 14h DWORD previous count of characters printed 18h DWORD number of clock ticks taken to print them 1Ch WORD offset of next character to output 1Eh WORD offset of next character to print 20h WORD pointer to spooling queue record 22h BYTE current spooling status 23h BYTE current printer status: 00h OK 01h not ready 02h paused with message 03h paused 04h initializing FEh non-existent port FFh not spooled 24h BYTE current control record type 25h WORD observed printer speed 27h WORD characters to print per service 29h BYTE 01h if disk write needed 2Ah BYTE 01h if queued data should be flushed 2Bh BYTE 01h to update cps statusTop
INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD AH = C1h DX = printer port (0-3) DS:SI -> ASCIZ string to save for display Note: flushes pending writes SeeAlso: AH=C0h,AH=C2hTop
INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES AH = C2h DX = printer port (0-3) SeeAlso: AH=C3hTop
INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT) AH = C3h DX = printer port (0-3) SeeAlso: AH=C2h,AH=C7hTop
INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE AH = C4h Return: DI = B0BFh SI = segmentTop
INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE AH = C5h DX = printer port (0-3) Note: cancels up to the pause recordTop
INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS AH = C6h DX = printer port (0-3) Return: AX = queue status 0000h printer not active or at pause 0001h printer busyTop
INT 17 - PC Magazine PCSpool - CLOSE QUEUE AH = C7h DX = printer port (0-3) SeeAlso: AH=C3hTop
INT 17 - INSET - EXECUTE COMMAND STRING AX = CD00h DS:DX -> ASCIZ command string (max 80 bytes) Return: CX = 07C2h (1986d) Note: user interface menus pop up after last command, unless that command exits INSETTop
INT 17 - INSET - GET IMAGE SIZE AX = CD01h DS:DX -> ASCIZ name of image file Return: AX = height in 1/720th inch BX = width in 1/720th inch CX = 07C2h (1986d)Top
INT 17 - INSET - INITIALIZE AX = CD02h Return: CX = 07C2h (1986d) Note: all open files are closed and the printer is reset SeeAlso: AX=CD04hTop
INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE AX = CD03h Return: CX = 07C2h (1986d)Top
INT 17 - INSET - INITIALIZE LINKED MODE AX = CD04h ES:SI -> FAR routine for linked mode (see #00647) Return: CX = 07C2h SeeAlso: AX=CD02h,AX=CD08h (Table 00647) Values INSET linked-mode routine is called with: AL = function 00h send character to printer BL = character to send 01h send string to printer CX = number of bytes to send DS:DX -> buffer containing data 02h move print head to horizontal starting position of image Return: AX = status 0000h success 0001h failureTop
INT 17 - INSET - START MERGING IMAGE INTO TEXT AX = CD05h DS:DX -> ASCIZ name of PIX file CX = left margin of text in 1/720th inch Return: AH = printer type 00h page-oriented (multiple images may be placed side-by-side) 01h line-oriented (use AX=CD06h for vertical paper movement) CX = 07C2h (1986d) SeeAlso: AX=CD07hTop
INT 17 - INSET - GRAPHICS LINE FEED AX = CD06h Return: AH = completion status 00h image complete 01h image incomplete CX = 07C2h (1986d) SeeAlso: AX=CD09hTop
INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER AX = CD07h Return: CX = 07C2h SeeAlso: AX=CD05hTop
INT 17 - INSET - CANCEL LINK MODE AX = CD08h Return: CX = 07C2h SeeAlso: AX=CD04hTop
INT 17 - INSET - ALTER TEXT LINE SPACING AX = CD09h CX = line spacing in 1/720th inch Return: CX = 07C2h Note: not yet implemented, line spacing is currently fixed at 1/6 inch SeeAlso: AX=CD06hTop
INT 17 - INSET - GET SETUP AX = CD0Ah DS:DX -> buffer for IN.SET data Return: CX = 07C2hTop
INT 17 - INSET - START GETTING SCALED IMAGE AX = CD0Bh DS:SI -> ASCIZ pathname of .PIX file BX = number of bitplanes CX = number of rows in output bitmap DX = number of columns in output bitmap Return: AX = status 0000h OK FFFFh error Note: image is returned in strips by repeated calls to AX=CD0ChTop
INT 17 - INSET - GET NEXT IMAGE STRIP AX = CD0Ch Return: AX = status 0000h OK but not complete 0001h OK and image complete FFFFh error DS:SI -> buffer (max 4K) for bit map strip CX = start row DX = number of rows BX = offset in bytes between bit planes Note: buffer may be overwritten by subsequent calls SeeAlso: AX=CD0BhTop
INT 17 - EPP BIOS - INSTALLATION CHECK AH = E0h Return: ??? (AH <> E0h if installed ???) SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2hTop
INT 17 - EPP BIOS - DISABLE EPP AH = E1h ??? Return: ??? SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2hTop
INT 17 - EPP BIOS - ENABLE EPP AH = E2h ??? Return: ??? SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1hTop
INT 17 - NorthNet Jetstream API - INSTALLATION CHECK AH = F0h DX = printer port (0-3) Return: AX = 0001h Jetstream present else non-Jetstream port Note: NorthNet Jetstream is a high-performance DMA-driven parallel card able to drive printers at up to 80000 characters per secondTop
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER AH = F1h CX = data buffer length DX = printer port (0-3) DS:SI -> data buffer Return: AX = status 0000h printer not ready (see also AH=02h) other printing started SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5hTop
INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS AH = F2h DX = printer port (0-3) Return: AX = status 0000h prior print request finished other number of characters left to print SeeAlso: AH=02h,AH=F1h,AH=F3hTop
INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION AH = F3h DX = printer port (0-3) Return: AX = number of unprinted characters due to abort SeeAlso: AH=F1h,AH=F4hTop
INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS AH = F4h DX = printer port (0-3) DS:DS -> FAR post address (called with interrupts on) SeeAlso: AH=F1h,AH=F3hTop
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY AH = F5h CX = data buffer length DX = printer port (0-3) DS:SI -> data buffer (32-bit physical address) Return: AX = status 0000h printer not ready (see also AH=02h) other printing started SeeAlso: AH=F1hTop
INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE AH = FFh BX = 0000h CX = 0000h DX = printer port number Return: AH = printer status (see #00631 at AH=00h) Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc. Desc: close the spool file immediately instead of waiting for the close time to elapse SeeAlso: AH=01h,AH=03h"PC-MOS"Top
INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC) Desc: called when there is no bootable disk available to the system Notes: very few PCs other than those produced by IBM contain BASIC in ROM, so the action is unpredictable on compatibles; this interrupt often reboots the system, and often has no effect at all some PC and XT clones had an optional IBM CASSETTE BASIC stored in the ROM, too. most BIOSes will display an error message similar to "NO BASIC", and either reboot or return to the caller. PS/2 machines usually pop up a graphical box to the effect that the user should enter a floppy and press F1. Some clones display the message "No boot device available, strike F1 to retry, F2 for setup utility" network cards with their own BIOS can hook this interrupt to allow a diskless boot off the network (even when a hard disk is present if none of the partitions is marked as the boot partition) SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS",INT 2F/AX=4A06h,INT 2F/AX=4A07hTop
INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE AH = 00h Return: AX = keystroke SeeAlso: AH=01h,AH=02h,INT 16/AH=00hTop
INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE AH = 01h Return: BH = status 00h no keystrokes available 01h keystroke available AX = keystroke SeeAlso: AH=00h,AH=02h,INT 16/AH=01hTop
INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS AH = 02h Return: AL = shift flags SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02hTop
INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE AH = 03h ??? Return: ??? SeeAlso: AH=00h,AH=04hTop
INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED AH = 04h ??? Return: ??? Note: details are not available at this time SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02hTop
INT 18 - NEC PC-9800 series - VIDEO AH = function 0Ah set video mode 0Bh get video mode 0Ch start text screen display 0Dh end text screen display 0Eh set single display area 0Fh set multiple display area 10h set cursor shape 11h display cursor 12h terminate cursor 13h set cursor position 14h read font patter 16h initialize text video RAM 1Ah define user character others ??? Return: ??? Notes: details are not available at this time text video RAM is located at segments A000h (characters) and A200h (attributes), graphics video RAM at segment C000h Bitfields for NEC PC-9800 series video attributes: Bit(s) Description (Table 00648) 0 disable drawing character 1 blinking 2 reverse video 3 underline 4 vertical line 7-5 color (0=black, 1=blue, 2=red, 3=purple, 4=green, 5=cyan, 6=yellow, 7=white)Top
INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA AH = 0Eh DX = offset of first byte to display??? Return: ??? SeeAlso: AH=1Bh,MEM 0050h:0001hTop
INT 18 - NEC PC-9800 series - SET DISPLAY MODE AH = 1Bh AL = ??? (00h for text mode) Return: ???Top
INT 18 - SPHINX C-- - WB.COM - API
AX = 5350h ('SP')
BX = 4849h ('HI')
CX = 4E58h ('NX')
DH = function
01h set ???
DL = ???
02h get ???
Return: DL = ???
03h get ???
Return: ES:DI -> ??? data buffer
06h ???
Return: AX = 7370h ('sp') if installed
BX = 6869h ('hi') if installed
CX = 6E78h ('nx') if installed
Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
which is a cross between C and assembler; WB.COM is the driver which
launches the WorkBench
Top
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS AX = 6900h Return: AX = amount of DRAM on card or 0000h if GUS not available Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h and then shells out the the program requiring its services SeeAlso: AX=6901h,AX=690Ah,AX=690BhTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET AX = 6901h BX = number of active voices (14-32) Return: nothing SeeAlso: AX=6900hTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE AX = 6902h BX = voice number (00h-1Fh) CX = linear volume (0000h-01FFh) Return: nothing SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690AhTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE AX = 6903h BX = voice number (00h-1Fh) CX = frequency in Hz (0-44100) Return: nothing SeeAlso: AX=6902h,AX=6904hTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE AX = 6904h BX = voice number (00h-1Fh) CX = balance (0 = left, 7 = even, 15 = right) Return: nothing SeeAlso: AX=6902h,AX=6903hTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC AX = 6905h BL = voice number BH = sample type (0 = 8-bit, 1 = 16-bit) CL = looping type (0 = none, 1 = forward, 2 = back and forth) CH:DI = 20-bit starting address for voice data DL:SI = 20-bit address for loop start DH:BP = 20-bit address for loop end SeeAlso: AX=6903h,AX=6906h,AX=690BhTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA AX = 6906h BL = data format (1 = twos-complement, 0 = not) BH = sample type (0 = 8-bit, 1 = 16-bit) CX = number of bytes to send ES:SI -> buffer containing data DL:DI = 20-bit address of GUS DRAM at which to load sound data SeeAlso: AX=6900h,AX=6905h,AX=690ChTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE AX = 6907h BX = voice number (00h-1Fh) Return: nothing SeeAlso: AX=6908h,AX=690DhTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END AX = 6908h BX = voice number (00h-1Fh) CL:DX = 20-bit ending address Return: nothing SeeAlso: AX=690BhTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME AX = 6909h BL = voice number (00h-1Fh) BH = looping type (0 = none, 1 = forward, 2 = back and forth) CX = starting volume DX = ending volume DI:SI = time Return: nothing SeeAlso: AX=6902h,AX=690AhTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME AX = 690Ah BX = voice number (00h-1Fh) Return: AX = current non-linear volume for voice SeeAlso: AX=6902h,AX=6909hTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION AX = 690Bh BX = voice number Return: BX:AX = 20-bit address at which voice is playing SeeAlso: AX=6900h,AX=6905h,AX=6908hTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA AX = 690Ch BL = data format (1 = twos-complement, 0 = not) BH = sample type (0 = 8-bit, 1 = 16-bit) CX = number of bytes to get ES:SI -> buffer for retrieved data DL:DI = 20-bit address in GUS DRAM from which to read voice data Return: nothing SeeAlso: AX=6906hTop
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE AX = 690Dh BX = voice CX = sample type (0 = 8-bit, 1 = 16-bit) DX = looping type (0 = none, 1 = forward, 2 = back and forth) Return: CX = balance value SeeAlso: AX=6907h,AX=6908hTop
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE AX = 8000h Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks INT 18h and then shells out to the program requiring its services SeeAlso: AX=8001h,AX=8004hTop
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE AX = 8001h BX:CX -> ASCIZ filename SeeAlso: AX=8000h,AX=8002hTop
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE AX = 8002h SeeAlso: AX=8002h,AX=8003hTop
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING AX = 8003hTop
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN AX = 8004h SeeAlso: AX=8000h,AX=8003hTop
INT 19 - SYSTEM - BOOTSTRAP LOADER
Desc: This interrupt reboots the system without clearing memory or restoring
interrupt vectors. Because interrupt vectors are preserved, this
interrupt usually causes a system hang if any TSRs have hooked
vectors from 00h through 1Ch, particularly INT 08.
Notes: Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
A: to 0000h:7C00h. If this fails, and a hard disk is installed, the
BIOS will read sector 1, head 0, track 0 of the first hard disk.
This sector should contain a master bootstrap loader and a partition
table (see #00650). After loading the master boot sector at
0000h:7C00h, the master bootstrap loader is given control
(see #00653). It will scan the partition table for an active
partition, and will then load the operating system's bootstrap
loader (contained in the first sector of the active partition) and
give it control.
true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
disk have a valid boot sector
to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
a reset, store 0000h at 0040h:0072h before jumping.
VDISK.SYS hooks this interrupt to allow applications to find out how
much extended memory has been used by VDISKs (see #00649). DOS 3.3+
PRINT hooks INT 19 but does not set up a correct VDISK header block
at the beginning of its INT 19 handler segment, thus causing some
programs to overwrite extended memory which is already in use.
the default handler is at F000h:E6F2h for 100% compatible BIOSes
MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
contains extended partitions which point at each other in a loop,
since it will never find the end of the linked list of extended
partitions
under Windows Real and Enhanced modes, calling INT 19 will hang the
system in the same was as under bare DOS; under Windows Standard
mode, INT 19 will successfully perform a cold reboot as it appears
to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
BUG: when loading the remainder of the DOS system files fails, various
versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before
calling INT 19, assuming that the boot sector had stored the
contents of INT 1E at DS:SI instead of on the stack as it actually
does
SeeAlso: INT 14/AH=17h,INT 18"BOOT HOOK",INT 49"Tandy 2000",INT 5B"PC Cluster"
SeeAlso: MEM 0040h:0067h,MEM F000h:FFF0h,CMOS 0Fh
Format of VDISK header block (at beginning of INT 19 handler's segment):
Offset Size Description (Table 00649)
00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
12h 11 BYTEs signature string "VDISK Vn.m" for VDISK.SYS version n.m
1Dh 15 BYTEs n/a
2Ch 3 BYTEs linear address of first byte of available extended memory
Format of hard disk master boot sector:
Offset Size Description (Table 00650)
00h 446 BYTEs Master bootstrap loader code
1BEh 16 BYTEs partition record for partition 1 (see #00651)
1CEh 16 BYTEs partition record for partition 2
1DEh 16 BYTEs partition record for partition 3
1EEh 16 BYTEs partition record for partition 4
1FEh WORD signature, AA55h indicates valid boot block
Format of partition record:
Offset Size Description (Table 00651)
00h BYTE boot indicator (80h = active partition)
01h BYTE partition start head
02h BYTE partition start sector (bits 0-5)
03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
04h BYTE operating system indicator (see #00652)
05h BYTE partition end head
06h BYTE partition end sector (bits 0-5)
07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
08h DWORD sectors preceding partition
0Ch DWORD length of partition in sectors
SeeAlso: #00650
(Table 00652)
Values for operating system indicator:
00h empty partition-table entry
01h DOS 12-bit FAT
02h XENIX root file system
03h XENIX /usr file system (obsolete)
04h DOS 16-bit FAT (up to 32M)
05h DOS 3.3+ extended partition
06h DOS 3.31+ Large File System (16-bit FAT, over 32M)
07h QNX
07h OS/2 HPFS
07h Windows NT NTFS
07h Advanced Unix
07h see partition boot record; could be any of the above or others
08h OS/2 (v1.0-1.3 only)
08h AIX bootable partition, SplitDrive
08h Commodore DOS
08h DELL partition spanning multiple drives
09h AIX data partition
09h Coherent filesystem
0Ah OS/2 Boot Manager
0Ah OPUS
0Ah Coherent swap partition
0Bh Windows95 with 32-bit FAT
0Ch Windows95 with 32-bit FAT (using LBA-mode INT 13 extensions)
0Eh logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13)
0Fh logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13)
10h OPUS
11h OS/2 Boot Manager hidden 12-bit FAT partition
12h Compaq Diagnostics partition
14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition
17h OS/2 Boot Manager hidden HPFS partition
17h hidden NTFS partition
18h AST special Windows swap file ("Zero-Volt Suspend" partition)
19h Willowtech Photon coS
1Bh hidden Windows95 FAT32 partition
1Ch hidden Windows95 FAT32 partition (using LBA-mode INT 13 extensions)
1Eh hidden LBA VFAT partition
20h Willowsoft Overture File System (OFS1)
21h officially listed as reserved
21h FSo2
23h officially listed as reserved
24h NEC MS-DOS 3.x
26h officially listed as reserved
31h officially listed as reserved
33h officially listed as reserved
34h officially listed as reserved
36h officially listed as reserved
38h Theos
3Ch PowerQuest PartitionMagic recovery partition
40h VENIX 80286
41h Personal RISC Boot
41h PowerPC boot partition
42h SFS (Secure File System) by Peter Gutmann
45h EUMEL/Elan
46h EUMEL/Elan
47h EUMEL/Elan
48h EUMEL/Elan
4Fh Oberon boot/data partition
50h OnTrack Disk Manager, read-only partition
51h OnTrack Disk Manager, read/write partition
51h NOVELL
52h CP/M
52h Microport System V/386
53h OnTrack Disk Manager, write-only partition???
54h OnTrack Disk Manager (DDO)
55h EZ-Drive (see also INT 13/AH=FFh"EZ-Drive")
56h GoldenBow VFeature
5Ch Priam EDISK
61h SpeedStor
63h Unix SysV/386, 386/ix
63h Mach, MtXinu BSD 4.3 on Mach
63h GNU HURD
64h Novell NetWare 286
64h SpeedStore
65h Novell NetWare (3.11)
67h Novell
68h Novell
69h Novell
70h DiskSecure Multi-Boot
71h officially listed as reserved
73h officially listed as reserved
74h officially listed as reserved
75h PC/IX
76h officially listed as reserved
7Eh F.I.X.
80h Minix v1.1 - 1.4a
81h Minix v1.4b+
81h Linux
81h Mitac Advanced Disk Manager
82h Linux Swap partition
82h Prime
82h Solaris (Unix)
83h Linux native file system (ext2fs/xiafs)
84h OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
85h Linux EXT
86h FAT16 volume/stripe set (Windows NT)
87h HPFS Fault-Tolerant mirrored partition
87h NTFS volume/stripe set
93h Amoeba file system
94h Amoeba bad block table
98h Datalight ROM-DOS SuperBoot
99h Mylex EISA SCSI
A0h Phoenix NoteBIOS Power Management "Save-to-Disk" partition
A1h officially listed as reserved
A3h officially listed as reserved
A4h officially listed as reserved
A5h FreeBSD, BSD/386
A6h OpenBSD
A9h NetBSD (http://www.netbsd.org/)
B1h officially listed as reserved
B3h officially listed as reserved
B4h officially listed as reserved
B6h officially listed as reserved
B6h Windows NT mirror set (master), FAT16 file system
B7h BSDI file system (secondarily swap)
B7h Windows NT mirror set (master), NTFS file system
B8h BSDI swap partition (secondarily file system)
BEh Solaris boot partition
C0h DR DOS/DR-DOS/Novell DOS secured partition
C0h CTOS
C1h DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
C4h DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
C6h DR DOS 6.0 LOGIN.EXE-secured Huge partition
C6h corrupted FAT16 volume/stripe set (Windows NT)
C6h Windows NT mirror set (slave), FAT16 file system
C7h Syrinx Boot
C7h corrupted NTFS volume/stripe set
C7h Windows NT mirror set (slave), NTFS file system
CBh Reserved for DR DOS/DR-DOS/OpenDOS secured FAT32
CCh Reserved for DR DOS/DR-DOS secured FAT32 (LBA)
CEh Reserved for DR DOS/DR-DOS secured FAT16 (LBA)
D0h Multiuser DOS secured FAT12
D1h Old Multiuser DOS secured FAT12
D4h Old Multiuser DOS secured FAT16 (<= 32M)
D5h Old Multiuser DOS secured extended partition
D6h Old Multiuser DOS secured FAT16 (> 32M)
D8h CP/M-86
DBh CP/M, Concurrent CP/M, Concurrent DOS
DBh CTOS (Convergent Technologies OS)
E1h SpeedStor 12-bit FAT extended partition
E2h DOS read-only (Florian Painke's XFDISK 1.0.4)
E3h DOS read-only
E3h Storage Dimensions
E4h SpeedStor 16-bit FAT extended partition
E5h officially listed as reserved
E6h officially listed as reserved
EBh BeOS BFS (BFS1)
F1h Storage Dimensions
F2h DOS 3.3+ secondary partition
F3h officially listed as reserved
F4h SpeedStor
F4h Storage Dimensions
F5h Prologue
F6h officially listed as reserved
FEh LANstep
FEh IBM PS/2 IML (Initial Microcode Load) partition
FFh Xenix bad block table
Note: for partition type 07h, one should inspect the partition boot record
for the actual file system type
SeeAlso: #00651
(Table 00653)
Values Bootstrap loader is called with (IBM BIOS):
CS:IP = 0000h:7C00h
DH = access
bits 7-6,4-0: don't care
bit 5: =0 device supported by INT 13
DL = boot drive
00h first floppy
80h first hard disk
Top
INT 1A - TIME - GET SYSTEM TIME AH = 00h Return: CX:DX = number of clock ticks since midnight AL = midnight flag, nonzero if midnight passed since time last read Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs (except on Tandy 2000, where the clock runs at 20 ticks per second) IBM and many clone BIOSes set the flag for AL rather than incrementing it, leading to loss of a day if two consecutive midnights pass without a request for the time (e.g. if the system is on but idle) since the midnight flag is cleared, if an application calls this function after midnight before DOS does, DOS will not receive the midnight flag and will fail to advance the date Modern releases of MS-DOS/PC DOS (5.0+???) assume that AL is a day rollover counter rather than a flag, as expected by older releases. DOS 5 - 7.10 (Windows 98 SE) provide an undocumented CONFIG.SYS SWITCHES=/T option to force the old behaviour of the day advancing code, that is using a flag instead of a counter. DR DOS 3.31 - DR-DOS 7.03 handle AL as a flag. SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 55"Tandy 2000",INT 4E/AH=02h"TI" SeeAlso: INT 62/AX=0099h,MEM 0040h:006Ch,MEM 0040h:0070hTop
INT 1A - TIME - SET SYSTEM TIME AH = 01h CX:DX = number of clock ticks since midnight Return: nothing Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs (except on Tandy 2000, where the clock runs at 20 ticks per second) this call resets the midnight-passed flag SeeAlso: AH=00h,AH=03h,INT 21/AH=2DhTop
INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS) AH = 02h CF clear to avoid bug (see below) Return: CF clear if successful CH = hour (BCD) CL = minutes (BCD) DH = seconds (BCD) DL = daylight savings flag (00h standard time, 01h daylight time) CF set on error (i.e. clock not running or in middle of update) Notes: this function is also supported by the Sperry PC, which predates the IBM AT; the data is returned in binary rather than BCD on the Sperry, and DL is always 00h MS-DOS/PC DOS IO.SYS/IBMBIO.COM use this function to detect if a RTC is preset by checking if the returned values are non-zero. If they are, this function is called one more time, before it is assumed that no RTC is present. BUG: some BIOSes leave CF unchanged if successful, so CF should be cleared before calling this function SeeAlso: AH=00h,AH=03h,AH=04h,INT 21/AH=2ChTop
INT 1A - Tandy 2000 - TIME - GET DATE AND TIME AH = 02h Return: BX = number of days since January 1, 1980 CH = hours CL = minutes DH = seconds DL = hundredths SeeAlso: AH=03h"Tandy 2000",INT 55"Tandy 2000"Top
INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS) AH = 03h CH = hour (BCD) CL = minutes (BCD) DH = seconds (BCD) DL = daylight savings flag (00h standard time, 01h daylight time) Return: nothing Note: this function is also supported by the Sperry PC, which predates the IBM AT; the data is specified in binary rather than BCD on the Sperry, and the value of DL is ignored SeeAlso: AH=01h,AH=03h,AH=05h,INT 21/AH=2Dh,INT 4B/AH=01hTop
INT 1A - Tandy 2000 - TIME - SET DATE AND TIME AH = 03h BX = number of days since January 1, 1980 CH = hours CL = minutes DH = seconds DL = hundredths Return: nothing SeeAlso: AH=02h"Tandy 2000",INT 55"Tandy 2000"Top
INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS) AH = 04h CF clear to avoid bug (see below) Return: CF clear if successful CH = century (BCD) CL = year (BCD) DH = month (BCD) DL = day (BCD) CF set on error Notes: DR-DOS 7.02 (after 1998-06-06) and 7.03 hook this function and correct the century to 20xx if the reported year is 1900..1980 to auto-fix ROM-BIOSes which are not Year 2000 compliant. On a running system, it would also correct the rollover bug from 1999/12/31 to 2000/01/01. The latter can be turned off using the new CONFIG.SYS YEAR2000=ON|OFF command, as hooking INT 1Ah can sometimes cause compatibility problems with 3rd party software, e.g. NCR/Symbios/LSI Logic-based SDMS PCI SCSI drivers (including all OEM drivers like from Asus, Noma, etc.), some Flash-BIOS software like Asus PFLASH, Quarterdeck's QEMM Stealth and Quick-Boot features. Using EXCLUDESTEALTHINT=1A, though, will allow QEMM's Stealth features to coexist with the DR-DOS Year 2000 rollover support. Actually, the Y2K-fix is provided since OpenDOS 7.02 BETA 2+ (1997-08-13), but although these older releases corrected the ROM-BIOS, they didn't pass all Y2K-test suites and had some obscure and inexplicable PCI problems due to the fact that the original INT 1Ah was called via indirect means. Newer releases, however, use a dynamically fixed-up direct jump to avoid these problems. PC DOS 7 plus Y2K fixes and PC DOS 2000 provide similar, though not identical means, which cannot be switched off. MS-DOS and older issues of PC DOS do not provide any such means, and thus requires extra Y2K-TSRs to be loaded when run on buggy BIOSes. BUG: some BIOSes, such as the 1998/07/25 system ROM in the Compaq Deskpro EP/SB, leave CF unchanged if successful, so CF should be cleared before calling this function SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah,INT 4B/AH=02h"TI"Top
INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE AH = 04h Return: CF clear if successful CL = year-1980 DH = month (binary) (01h-0Ch) DL = day (binary) (01h-1Fh) CF set on error SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah,INT 4B/AH=02h"TI"Top
INT 1A - CheckIt Year 2000 Fix v2.06 - INSTALLATION CHECK
AH = 04h
CX = 4555h ('EU')
DX = 524Fh ('RO')
BX = 0000h
Return: BX <> 0000h if installed
BX = major/minor/sub version (2068h = version 2.06.8)
Program: CheckIt is a TSR by Eurosoft (UK) Ltd. which corrects some Y2K-related
RTC bugs
Top
INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS) AH = 05h CH = century (BCD) CL = year (BCD) DH = month (BCD) DL = day (BCD) Return: nothing SeeAlso: AH=04h,INT 21/AH=2Bh"DATE",INT 4B/AH=00h"TI"Top
INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE AH = 05h CL = year-1980 CH = 00h (???) DH = month (binary) (01h-0Ch) DL = day (binary) (01h-1Fh) Return: nothing SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh"DATE"Top
INT 1A - TIME - SET ALARM (AT,XT286,PS) AH = 06h CH = hour (BCD) CL = minutes (BCD) DH = seconds (BCD) Return: CF set on error (alarm already set or clock stopped for update) CF clear if successful Notes: the alarm occurs every 24 hours until turned off, invoking INT 4A each time the BIOS does not check for invalid values for the time, so the CMOS clock chip's "don't care" setting (any values between C0h and FFh) may be used for any or all three parts. For example, to create an alarm once a minute, every minute, call with CH=FFh, CL=FFh, and DH=00h. SeeAlso: AH=07h,AH=0Ch,INT 4A"SYSTEM"Top
INT 1A - TIME - CANCEL ALARM (AT,XT286,PS) AH = 07h Return: alarm disabled Note: does not disable the real-time clock's IRQ SeeAlso: AH=06h,AH=0Dh,INT 70Top
INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE) AH = 08h CH = hours in BCD CL = minutes in BCD DH = seconds in BCD SeeAlso: AH=09hTop
INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30) AH = 09h Return: CH = hours in BCD CL = minutes in BCD DH = seconds in BCD DL = alarm status 00h alarm not enabled 01h alarm enabled but will not power up system 02h alarm will power up system SeeAlso: AH=08hTop
INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS) AH = 0Ah Return: CF set on error CF clear if successful CX = count of days since Jan 1,1980 SeeAlso: AH=04h,AH=0BhTop
INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS) AH = 0Bh CX = count of days since Jan 1,1980 Return: CF set on error CF clear if successful SeeAlso: AH=05h,AH=0AhTop
INT 1A - TIME - SET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM) AH = 0Ch CH = hours (BCD) CL = minutes (BCD) DH = seconds (BCD) DL = day of month (BCD) Return: CF clear if successful CF set on error (alarm already set or clock nonfunctional) Desc: set an automatic power-on for a given time in the future Note: IBM classifies this function as optional SeeAlso: AH=06h,AH=0Dh,AH=0Eh,INT 4ATop
INT 1A - TIME - RESET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM) AH = 0Dh Return: CF clear if successful CF set on error Desc: cancel a previously-set power-on alarm Note: IBM classifies this function as optional SeeAlso: AH=07h,AH=0Ch,AH=0EhTop
INT 1A - TIME - GET RTC DATE/TIME ALARM AND STATUS (IBM) AH = 0Eh Return: CF clear if successful BH = alarm status 00h disabled 01h enabled but will not power-up system 02h enabled, system will power-up on activation CH = alarm time, hours (BCD) CL = alarm time, minutes (BCD) DH = seconds (BCD) DL = day of month (BCD) CF set on error SeeAlso: AH=0Ch,AH=0Dh,AH=0FhTop
INT 1A - TIME - INITIALIZE REAL-TIME CLOCK AH = 0Fh AL = reserved (0) Return: CF clear if successful CF set on error SeeAlso: AH=0Ch,AH=0Dh,AH=0EhTop
INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE AH = 10h ??? Return: ??? SeeAlso: AH=11h,AH=12h,INT 17/AH=01hTop
INT 1A - NEC PC-9800 series - INSTALLATION CHECK AX = 1000h Return: AX <> 1000h if NECTop
INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER AH = 11h ??? Return: ??? SeeAlso: AH=10h,AH=12h,INT 17/AH=00hTop
INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS AH = 12h ??? Return: ??? SeeAlso: AH=10h,AH=11h,INT 17/AH=02hTop
INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK AX = 3601h Return: DS:SI = routine to monitor keyboard input, immediately preceded by the ASCIZ string "WPCORP\0" Notes: WordPerfect 5.0 will call this interrupt at start up to determine if a third party product wants to interface with it. The third party product must intercept this interrupt and return the address of a keyboard monitor routine. Before checking for keyboard input, and after every key entered by the user, Word Perfect will call the routine whose address was provided in DS:SI with the following parameters: Entry: AX = key code or 0 BX = WordPerfect state flag Exit: AX = 0 or key code BX = 0 or segment address of buffer with key codes See the "WordPerfect 5.0 Developer's Toolkit" for further information. SeeAlso: INT 16/AX=5500hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY AX = 6108h STACK: WORD conversation ID (0000h-0009h) DWORD pointer to message buffer WORD length of message DWORD pointer to reply buffer WORD length of reply buffer WORD 0000h (use default "Cparams" structure) Return: AX = status (see #00654) STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6205h (Table 00654) Values for SNAP.EXE status: 0000h successful F830h "SNAP_ABORTED" FC04h "SNAP_SERVERDIED" FC05h "SNAP_RESEND" FC06h "SNAP_SELECTFAILED" FC07h "SNAP_WRONGVERSION" FC08h "SNAP_INVALIDACK" FC09h "SNAP_TIMEOUT" FC0Ah "SNAP_SERVERREJECT" FC0Bh "SNAP_NOREPLYDUE" FC0Ch "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR" FC0Dh "SNAP_NOINIT" FC0Eh "SNAP_SOCKETERROR" FC0Fh "SNAP_BUFFERLIMIT" FC10h "SNAP_INVALIDCID" FC11h "SNAP_INVALIDOP" FC12h "SNAP_XMITFAIL" FC13h "SNAP_NOMORERETRIES" FC14h "SNAP_BADPARMS" FC15h "SNAP_NOMEMORY" FC16h "SNAP_NOMORECONVS" FFFFh failed (invalid function/parameter)Top
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY AX = 6205h STACK: WORD conversation ID (0000h-0009h) DWORD pointer to message WORD length of message WORD 0000h (use default "Cparms" structure) Return: AX = status (see #00654) STACK unchanged SeeAlso: AX=6108hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION AX = 6308h STACK: WORD offset of ASCIZ "guardian" WORD offset of ASCIZ hostname WORD offset of ASCIZ server name WORD offset of ASCIZ userid WORD offset of ASCIZ password WORD offset of password length WORD offset of password type WORD offset of "Cparms" structure (see #00655) Return: ??? STACK unchanged Note: all stacked offsets are within the SNAP data segment (use AX=6A01h to allocate a buffer) SeeAlso: AX=6405h,AX=7202h Format of SNAP.EXE Cparms structure: Offset Size Description (Table 00655) 00h WORD retry delay in seconds 02h WORD timeout delay in seconds 04h WORD maximum buffer size 06h WORD encryption levelTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION AX = 6405h STACK: WORD conversation ID (0000h-0009h) DWORD pointer to message buffer WORD length of message WORD 0000h (use default "Cparms" structure) Return: AX = status (see #00654) STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6308hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT AX = 6900h Return: AX = value used for DS by resident code SeeAlso: AX=6A01h,AX=6F01hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT AX = 6A01h STACK: WORD number of bytes to allocate Return: AX = offset of allocated buffer or 0000h if out of memory STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6B01hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT AX = 6B01h STACK: WORD offset within SNAP data segment of previously allocated buffer Return: STACK unchanged Note: this call is a NOP if the specified offset is 0000h SeeAlso: AX=6A01hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE AX = 6C04h STACK: WORD offset within SNAP data segment of dest (nonzero) WORD segment of source buffer WORD offset of source buffer WORD number of bytes to copy Return: AX = offset of byte after last one copied to destination STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6D04hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE AX = 6D04h STACK: WORD offset within SNAP data segment of source buffer WORD segment of destination buffer WORD offset of destination buffer WORD number of bytes to copy Return: AX = offset of byte after last one copied from source buffer filled STACK unchanged SeeAlso: AX=6C04hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ??? AX = 6E01h STACK: WORD new value for ??? Return: AX = old value of ??? STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application ProtocolTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK AX = 6F01h STACK: WORD 0000h Return: AX = status 0000h SNAP is resident other SNAP not present STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol, and is required by PCVENUS (a network shell). The combination of SNAP and PCVENUS allows the use of the Andrew File System as one or more networked drives. SeeAlso: AX=6900h,AX=7400hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR" AX = 7002h STACK: WORD anchor number (0000h-0009h) WORD new value for the anchor Return: AX = status 0000h successful FFFFh failed (top word on stack not in range 00h-09h) STACK unchanged SeeAlso: AX=7101hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR" AX = 7101h STACK: WORD anchor number (0000h-0009h) Return: AX = anchor's value STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=7002hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS AX = 7202h STACK: WORD conversation ID (0000h-0009h) WORD offset within resident data segment of "Cparms" structure (see #00655) Return: AX = status??? STACK unchanged SeeAlso: AX=6308hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ??? AX = 7302h STACK: WORD conversation ID (0000h-0009h) WORD offset within resident data segment of ??? Return: AX = ??? ??? STACK unchanged SeeAlso: AX=7400hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION AX = 7400h Return: AX = version (AH=major, AL=minor) Note: this call is only valid if SNAP is installed SeeAlso: AX=7302h,INT 1A/AX=6F01hTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ??? AH = 75h AL = ??? Return: AX = ??? (0000h) Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application ProtocolTop
INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ??? AH = 76h AL = ??? Return: AX = ???Top
INT 1A - SNAP.EXE 3.4 - ??? AH = 77h AL = ??? (at least 01h) STACK: WORD ??? ??? Return: ??? STACK unchangedTop
INT 1A - SNAP.EXE 3.4 - ??? AX = 7802h STACK: WORD ??? WORD ??? Return: ??? STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application ProtocolTop
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND??? AH = 7Fh ??? Return: ??? Note: this function is not supported by the Tandy 1000SL/TL BIOS SeeAlso: AH=80h,AH=83h,AH=85hTop
INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR AH = 80h AL = 00h source is 8253 channel 2 01h source is cassette input 02h source is I/O channel "Audio IN" 03h source is sound generator chip Note: although documented in the 1000TL Technical Reference, the 1000TL BIOS has just an IRET for this call SeeAlso: AH=7Fh,AH=83hTop
INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
AH = 80h
Return: CF clear if successful
CX = 5353h ('SS') if Socket Services installed
AL = number of adapters present (0-16)
AH destroyed
CF set on error
AH = error code (see #00656)
SeeAlso: AH=83h"PCMCIA"
(Table 00656)
Values for PCMCIA error codes:
01h "BAD_ADAPTER" nonexistent adapter
02h "BAD_ATTRIBUTE" invalid attribute specified
03h "BAD_BASE" invalid system memory base address
04h "BAD_EDC" invalid EDC generator specified
05h "BAD_INDICATOR" invalid indicator specified
06h "BAD_IRQ" invalid IRQ channel specified
07h "BAD_OFFSET" invalid PCMCIA card offset specified
08h "BAD_PAGE" invalid page specified
09h "BAD_READ" unable to complete request
0Ah "BAD_SIZE" invalid window size specified
0Bh "BAD_SOCKET" nonexistent socket specified
0Ch "BAD_TECHNOLOGY" unsupported Card Technology for writes
0Dh "BAD_TYPE" unavailable window type specified
0Eh "BAD_VCC" invalid Vcc power level index specified
0Fh "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
10h "BAD_WAIT" invalid number of wait states specified
11h "BAD_WINDOW" nonexistent window specified
12h "BAD_WRITE" unable to complete request
13h "NO_ADAPTERS" no adapters installed, but Socket Services is present
14h "NO_CARD" no card in socket
15h function not supported
16h invalid mode
17h invalid speed
18h busy
Top
INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK AH = 81h DS:DX -> callback routine (see #00657) or 0000h:0000h to disable Return: CF clear if successful AH destroyed CF set on error AH = error code (see #00656) Note: the callback will be invoked on any socket changes whose notification has not been disabled with the status change enable mask; it may be invoked either while processing a hardware interrupt from the adapter or while processing the following Socket Services request SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA" (Table 00657) Values PCMCIA callback routine is invoked with: AL = adapter number BH = status change interrupt enable mask (see #00658) BL = socket number DH = current socket status (see #00659) DL = current card status (see #00660) Return: all registers preserved Notes: the callback may be invoked during a hardware interrupt, and may not call on Socket Services the callback will be invoked once for each socket with a status change Bitfields for PCMCIA status change interrupt enable mask: Bit(s) Description (Table 00658) 7 card detect change 6 ready change 5 battery warning change 4 battery dead change 3 insertion request 2 ejection request 1-0 reserved (0) Bitfields for PCMCIA current socket status: Bit(s) Description (Table 00659) 7 card changed 6 reserved (0) 5 card insertion complete 4 card ejection complete 3 card insertion request pending 2 card ejection request pending 1 card locked 0 reserved (0) Bitfields for PCMCIA current card status: Bit(s) Description (Table 00660) 7 card detect 6 ready 5 battery voltage detect 2 (battery warning) 4 battery voltage detect 1 (battery dead) 3-1 reserved (0) 0 write protectedTop
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK AX = 8100h Return: AL > 80h if supported AX = 00C4h if supported (1000SL/TL) CF set if sound chip is busy CF clear if sound chip is free Note: the value of CF is not definitive; call this function until CF is clear on return, then call AH=84h"Tandy"Top
INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND AH = 82h ES:BX -> buffer for sound samples CX = length of buffer DX = transfer rate (1-4095, 1 is fastest) Return: AH = 00h CF set if sound busy CF clear if sound chip free Note: the value in DX should be 1/10 the corresponding value for INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL. Call INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function. The BIOS issues an INT 15/AX=91FBh when the input is complete DMA across a 64K boundary is masked by the BIOSTop
INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK AH = 82h DS:DX -> callback routine (see #00661) or 0000h:0000h Return: CF clear if successful AH destroyed CF set on error AH = error code (see #00656) Note: the callback is invoked on a Write Multiple request with an unsupported card technology type SeeAlso: AH=81h"PCMCIA",AH=94h (Table 00661) Values PCMCIA callback routine is invoked with: ES:AX -> Low-Level Socket Services Routines (see #00663) BH = socket attributes (see #00662) CX = number of bytes or words to write DS:SI -> data buffer to be written DX:DI -> 26-bit linear card address BP = card technology type Return: CF clear if successful CF set on error AH = error code (07h,0Ch,12h,14h) (see #00656) Bitfields for PCMCIA socket attributes: Bit(s) Description (Table 00662) 7-4 reserved (0) 3 packed buffer 2 even bytes only (only valid if 1 set) 1 data width (clear = byte, set = word) 0 memory type (clear = common, set = attribute) Format of PCMCIA Low-Level Socket Services Routines: Offset Size Description (Table 00663) 00h WORD offset of Write Many routine (see #00664) 02h WORD offset of Write One routine (see #00665) 04h WORD offset of Read One routine (see #00666) 06h WORD offset of Increment Offset routine (see #00667) 08h WORD offset of Set Offset routine (see #00668) 0Ah WORD offset of Get Status routine (see #00669) (Table 00664) Call Write Many routine with: BH = socket attributes (see #00662) CX = number of bytes or words to write DS:SI -> data to be written Return: CF clear if successful CF set on error (Table 00665) Call Write One routine with: AL/AX = data to be written BH = socket attributes (see #00662) Return: CF clear if successful CF set on error (Table 00666) Call Read One routine with: BH = socket attributes (see #00662) Return: CF clear if successful AL/AX = data read CF set on error (Table 00667) Call Increment Offset routine with: BH = socket attributes (see #00662) Return: CF clear if successful CF set on error (Table 00668) Call Set Offset routine with: DX:DI = new offset address Return: CF clear if successful CF set on error (Table 00669) Call Get Status routine with: nothing Return: AL = current card status (see #00660)Top
INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND AH = 83h AL = volume (0=silence, 7=highest) CX = number of bytes to play DX = time between sound samples (multiples of 273 nanoseconds) only bits 11-0 used ES:BX -> sound data (array of 8-bit unsigned PCM samples) Return: AH = 00h CF set if sound is busy CF clear if sound chip is free Notes: this call returns immediately while the sound plays in the background; the sound chip is clocked at 3.57 MHz, with the low 12 bits of DX specifying the clock divisor The BIOS appears to call INT 15/AX=91FBh when the sound device underflows to allow another INT 1A/AH=83h for seamless playing of long sounds. SeeAlso: AH=84h"Tandy",INT 15/AH=91hTop
INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
AH = 83h
AL = adapter number
Return: CF clear if successful
AX = Socket Services version (BCD)
BX = implementation version (BCD)
CX = 5353h ("SS")
DS:SI -> ASCIZ implementor description
CF set on error
AH = error code (01h) (see #00656)
Note: the current version (from the Revision A.00 documentation) of Socket
Services is 1.00 (AX=0100h)
SeeAlso: AH=80h"PCMCIA"
Top
INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND AH = 84h Return: ??? Note: the BIOS will call INT 15/AX=91FBh when the sound has stopped playing SeeAlso: AH=83h"Tandy",AH=85h"Tandy"Top
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER AH = 84h AL = adapter number Return: CF clear if successful AH destroyed BH = number of windows BL = number of sockets (1-16) CX = number of EDCs DH = capabilities (see #00670) DL = status change interrupt used (only if DH bit 3 set)(see #00671) CF set on error AH = error code (01h) (see #00656) SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h Bitfields for PCMCIA capabilities: Bit(s) Description (Table 00670) 7-6 reserved (0) 5 status change interrupt is hardware shareable 4 status change interrupt is software shareable 3 status change interrupt 2 data bus width is per-socket rather than per-window 1 power management is per-adapter rather than per-socket 0 indicators are per-adapter rather than per-socket (Table 00671) Values for PCMCIA status change interrupt usage: 00h-0Fh IRQ level 10h NMI 11h I/O check 12h bus error 13h vendor specific 14h-FFh reservedTop
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND??? AH = 85h ??? Return: ??? Note: this function is not supported by the Tandy 1000SL/TL BIOS SeeAlso: AH=7Fh,AH=83h"Tandy"Top
INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER AH = 85h AL = adapter number Return: CF clear if successful AH destroyed DH = adapter attributes (see #00672) CF set on error AH = error code (01h) (see #00656) SeeAlso: AH=84h"PCMCIA",AH=86h Bitfields for PCMCIA adapter attributes: Bit(s) Description (Table 00672) 7-5 reserved (0) 4 hardware share status change 3 software share status change 2 enable status change interrupts 1 adapter preserves state information during reduced power consumption 0 attempting to reduce power consumptionTop
INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER AH = 86h AL = adapter number DH = new adapter attributes (see #00672) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h) (see #00656) SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"Top
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW AH = 87h AL = adapter number BH = window number Return: CF clear if successful AH destroyed BL = capabilities (see #00673) CX = bitmap of assignable sockets DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0) DL = supported access speeds (see #00674) DS:SI -> Memory Window Characteristics table (see #00675) DS:DI -> I/O Window Characteristics table (see #00676) CF set on error AH = error code (01h,11h) (see #00656) SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch Bitfields for PCMCIA window capabilities: Bit(s) Description (Table 00673) 7-5 reserved (0) 4 separate enable for EISA comon space 3 EISA I/O mappable 2 I/O space 1 attribute memory 0 common memory Bitfields for PCMCIA supported access speeds: Bit(s) Description (Table 00674) 7 reserved (0) 6 600 ns 5 300 ns 4 250 ns 3 200 ns 2 150 ns 1 100 ns 0 WAIT line monitoring Format of PCMCIA Memory Window Characteristics table: Offset Size Description (Table 00675) 00h WORD window capabilities (see #00677) 02h WORD minimum base address in 4K pages 04h WORD maximum base address in 4K pages 06h WORD minimum window size in 4K pages 08h WORD maximum window size in 4K pages 0Ah WORD window size granularity (4K units) 0Ch WORD required base address alignment (4K units) 0Eh WORD required card offset alignment (4K units) Format of PCMCIA I/O Window Characteristics table: Offset Size Description (Table 00676) 00h WORD window capabilities (see #00677) 02h WORD minimum base address in bytes 04h WORD maximum base address in bytes 06h WORD minimum window size in bytes 08h WORD maximum window size in bytes 0Ah WORD window size granularity (bytes) Bitfields for PCMCIA window capabilities: Bit(s) Description (Table 00677) 0 programmable base address 1 programmable window size 2 window disable/enable supported 3 8-data bus 4 16-data bus 5 base address alignment on size boundary required 6 power-of-two size granularity ---memory windows--- 7 card offset must be aligned on size boundary 8 paging hardware available 9 paging hardware shared 10 page disable/enable supported 11-15 reserved (0) ---I/O windows--- 7-15 reserved (0)Top
INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW AH = 88h AL = adapter number BH = window number Return: CF clear if successful AH destroyed BL = socket number (0-16) (0 = not assigned) CX = window size (bytes for I/O window, 4K units for memory window) DH = window attributes (see #00678) DL = access speed (only one bit set) (see #00674) SI = window base address (bytes if I/O, 4K units if memory) DI = card offset address (memory only, 4K units) CF set on error AH = error code (01h,11h) (see #00656) SeeAlso: AH=87h,AH=89h,AH=8Ah Bitfields for PCMCIA window attributes: Bit(s) Description (Table 00678) 0 memory-mapped rather than I/O-mapped 1 attribute memory rather than common (memory-mapped) EISA mapped (I/O) 2 enabled 3 16-data path 4 subdivided into pages (memory-mapped only) 5 non-specific access slot enable (EISA-mapped only) 6-7 reserved (0)Top
INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW AH = 89h AL = adapter number BH = window number BL = socket number CX = window size (bytes if I/O window, 4K units if memory window) DH = window attributes (see #00678) DL = access speed (only one bit set) (see #00674) SI = window base address (bytes if I/O, 4K units if memory window) DI = card offset addrress (memory only, 4K units) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #00656) SeeAlso: AH=87h,AH=88h,AH=8BhTop
INT 1A - PCMCIA Socket Services v1.00 - GET PAGE AH = 8Ah AL = adapter number BH = window number BL = page number Return: CF clear if successful AH destroyed DX = page attributes (see #00679) DI = memory card offset (4K units) CF set on error AH = error code (01h,08h,11h) (see #00656) Notes: this function is only valid for memory-mapped windows the socket being operated on is implied by the previous AH=89h call SeeAlso: AH=88h,AH=8Bh Bitfields for PCMCIA page attributes: Bit(s) Description (Table 00679) 0 page enabled 15-1 reserved (0)Top
INT 1A - PCMCIA Socket Services v1.00 - SET PAGE AH = 8Bh AL = adapter number BH = window number BL = page number DX = page attributes (see #00679) DI = memory card offset (4K units) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,02h,07h,08h,11h) (see #00656) Notes: this function is only valid for memory-mapped windows the socket being operated on is implied by the previous AH=89h call SeeAlso: AH=89h,AH=8AhTop
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET AH = 8Ch AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed DH = capabilities (see #00680) DL = hardware indicators (see #00681) DS:SI -> Socket Characteristics table (see #00682) DS:DI -> Power Management table (see #00684) CF set on error AH = error code (01h,0Bh) (see #00656) SeeAlso: AH=87h,AH=8Dh,AH=8Eh Bitfields for PCMCIA socket capabilities: Bit(s) Description (Table 00680) 0 card change 1 card lock 2 insert card (motor control) 3 eject card (motor control) 4-7 reserved (0) Bitfields for PCMCIA socket hardware indicators: Bit(s) Description (Table 00681) 0 busy status 1 write-protected 2 battery status 3 card lock status 4 XIP status (eXecute-In-Place) 5-7 reserved (0) Format of PCMCIA Socket Characteristics table: Offset Size Description (Table 00682) 00h WORD supported card types (see #00683) 02h WORD steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15) 04h WORD additional steerable IRQ levels bit 0: NMI bit 1: I/O check bit 2: bus error bit 3: vendor-unique bits 4-7 reserved (0) Bitfields for supported card types: Bit(s) Description (Table 00683) 0 memory card 1 I/O card 2-7 reserved (0) Format of PCMCIA Power Management table: Offset Size Description (Table 00684) 00h WORD number of entries in table (0 if power management not avail) 02h 2N BYTEs power levels byte 0: voltage in 0.1V units byte 1: power supply bit 7: Vcc bit 6: Vpp1 bit 5: Vpp2Top
INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET AH = 8Dh AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed BH = status change interrupt enable mask (see #00658) CH = Vcc level (lower nybble) (see #00684) CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble) DH = current socket status (see #00659) DL = indicators (see #00681) SI = card type (see #00685) DI = IRQ level steering (I/O only) (see #00686) CF set on error AH = error code (01h,0Bh) (see #00656) SeeAlso: AH=8Ch,AH=8Eh Bitfields for PCMCIA card type: Bit(s) Description (Table 00685) 0 memory 1 I/O 2-15 reserved (0) Bitfields for PCMCIA I/O level steering: Bit(s) Description (Table 00686) 15 interrupt steering enabled 14-5 reserved (0) 4-0 IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)Top
INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET AH = 8Eh AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = status change interrupt enable mask (see #00658) CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble) DH = current socket status (see #00659) DL = indicators (see #00681) SI = card type (see #00685) DI = IRQ level steering (I/O only) (see #00686) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #00656) SeeAlso: AH=8Ch,AH=8DhTop
INT 1A - PCMCIA Socket Services v1.00 - GET CARD AH = 8Fh AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed DL = current card status (see #00660) CF set on error AH = error code (01h,0Bh) (see #00656) SeeAlso: AH=8Dh,AH=90hTop
INT 1A - PCMCIA Socket Services v1.00 - RESET CARD AH = 90h AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,0Bh,14h) (see #00656) Note: toggles RESET pin of the specified card, but does not wait after toggling the pin; it is the caller's responsibility to avoid accessing the card before it is ready againTop
INT 1A - PCMCIA Socket Services v1.00 - READ ONE AH = 91h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) DX:SI = card address Return: CF clear if successful AH destroyed CL/CX = value read CF set on error AH = error code (01h,07h,09h,0Bh,14h) (see #00656) CX may be destroyed Note: this function is only valid for I/O-mapped sockets SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+" Bitfields for PCMCIA attributes: Bit(s) Description (Table 00687) 2 even bytes only 1 word rather than byte 0 attribute memory instead of common memoryTop
INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE AH = 92h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) CL/CX = value to write DX:SI = card address Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,07h,0Bh,12h,14h) (see #00656) Note: this function is only valid for I/O-mapped sockets; it also does not implement Card Technology handling--use AH=94h when writing to non-RAM technologies SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"Top
INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE AH = 93h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) CX = number of bytes or words to read DX:SI = card address DS:DI -> data buffer to be filled Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,07h,09h,0Bh,14h) (see #00656) Note: this function is only available on I/O-mapped sockets SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"Top
INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE AH = 94h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) CX = number of bytes or words to read DX:DI = card address DS:SI -> buffer containing data BP = Card Technology type (0000h = RAM) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #00656) Notes: this function is only available on I/O-mapped sockets Socket Services calls the Card Technology callback (see #00661) for any card technology it does not directly support SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"Top
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE AH = 95h AL = adapter number BH = EDC generator number Return: CF clear if successful AH destroyed CX = bitmap of assignable sockets DH = EDC capabilities (see #00688) DL = supported EDC types (see #00689) CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=96h,AH=9Ch Bitfields for EDC capabilities: Bit(s) Description (Table 00688) 0 unidirectional only generation 1 bidirectional only generation 2 register-based (I/O-mapped) support 3 memory-mapped support 4 pausable 5-7 reserved (0) Bitfields for supported EDC types: Bit(s) Description (Table 00689) 0 8-checksum 1 16-CRC-SDLC 2-7 reserved (0)Top
INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE AH = 96h AL = adapter number BH = EDC generator number Return: CF clear if successful AH destroyed BL = socket number DH = EDC attributes (see #00690) DL = EDC type (see #00689) (only one bit set) CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=95h,AH=97h,AH=9Ch Bitfields for EDC attributes: Bit(s) Description (Table 00690) 0 unidirectional only 1 (if 0 set) clear=read, set=write 2-7 reserved (0)Top
INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE AH = 97h AL = adapter number BH = EDC generator BL = socket number DH = EDC attributes (see #00690) DL = EDC type (see #00689) (only one bit may be set) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,02h,04h,0Bh) (see #00656) SeeAlso: AH=96h,AH=9ChTop
INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE AH = 98h AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9ChTop
INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE AH = 99h AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=9AhTop
INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE AH = 9Ah AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=99h,AH=98hTop
INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE AH = 9Bh AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (see #00656) SeeAlso: AH=98h,AH=99h,AH=9ChTop
INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE AH = 9Ch AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed DL/DX = computed checksum or CRC CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9BhTop
INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO AH = 9Dh AL = adapter number BH = EDC generator ES:EDI -> vendor information structure (see #00691) Return: CF clear if successful AH destroyed DX = vendor release number in BCD ES:EDI unchanged CF set on error AH = error code (01h,15h) (see #00656) Notes: this API is supported by recent versions of the AMI BIOS the low-level API described here is hidden by the higher-level ExCA API once Card Services has been installed SeeAlso: AH=9Dh"ExCA" Format of Vendor Information structure: Offset Size Description (Table 00691) 00h WORD buffer length (set to size of buffer below) 04h WORD (ret) data length 08h x BYTEs implementor name (ASCIIZ string)Top
INT 1A - Intel PCMCIA ExCA Card Services - API AH = 9Dh AL = subfunction (see #00692) ??? Return: ??? SeeAlso: AH=9Dh"ExCA",#00891 (Table 00692) Values for PCMCIA ExCA Card Services subfunction number: 00h Client Services: Get Number of Sockets 01h Advanced Client Utilities: Initialize 02h Client Services: Register Client 03h Client Services: Deregister Client 04h Advanced Client Utilities: Enumerate Clients 05h Client Services: Register SCB 06h Client Services: Deregister SCB 07h Advanced Client Utilities: Register MTD 08h Advanced Client Utilities: Deregister MTD 09h Advanced Client Utilities: Enumerate MTD 0Ah Client Services: Get Status 0Bh Client Services: Reset Card 0Ch Client Utilities: Get First Tuple 0Dh Client Utilities: Get Next Tuple 0Eh Client Utilities: Determine First Region 0Fh Client Utilities: Determine Next Region 10h Client Utilities: Get First Region 11h Client Utilities: Get Next Region 12h Client Utilities: Get First Partition 13h Client Utilities: Get Next Partition 14h Bulk Memory Services: Open Region 15h Bulk Memory Services: Read Memory 16h Bulk Memory Services: Write Memory 17h Bulk Memory Services: Copy Memory 18h Bulk Memory Services: Erase Memory 19h Resource Management: Request I/O 1Ah Resource Management: Release I/O 1Bh Resource Management: Request Memory 1Ch Client Services: Modify Window 1Dh Resource Management: Release Memory 1Eh Client Services: Map Mem Page 1Fh Advanced Client Utilities: Return SS Entry 20h Advanced Client Utilities: Map Log to Phy 21h Advanced Client Utilities: Map Log Phy to Log 22h Resource Management: Request IRQ 23h Resource Management: Release IRQ 24h Bulk Memory Services: Close RegionTop
INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT AH = 9Eh AL = adapter number Return: CF clear if successful AH destroyed CX = bitmap representing sockets which have changed status CF set on error AH = error code (01h) (see #00656) Note: this API is supported by recent versions of the AMI BIOSTop
INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER AH = 9Fh AL = adapter number BL = mode 00h get prior INT 1Ah handler 01h set prior INT 1Ah handler CX:DX -> new prior handler Return: CF clear if successful AH destroyed CX:DX -> old prior handler CF set on error AH = error code (01h,15h,18h) (see #00656) Desc: allows hooking of INT 16h "behind" the Socket Services hook Note: this API is supported by recent versions of the AMI BIOS SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA"Top
INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK AH = A0h Return: AH = B0h if installed AL = pending INT 1A/AH=D0h subfunction if nonzero??? ES = code segment ES:BX -> name of current spool file ES:SI -> current despool file CL = despooler state (00h disabled, 41h enabled) CH = spooler state (00h disabled, 41h enabled) DL = despooler activity 00h currently active printing a file 41h standing by DH = 00h ??? = 41h ??? DI = 0000h ??? 0001h ??? Program: Disk Spool II is a shareware disk-based print spooler by Budget Software Company Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1hTop
INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS AH = A0h AL = adapter number BH = mode 00h real mode 01h 16:16 protected mode 02h 16:32 protected mode 03h 00:32 (Flat) protected mode BL = subfunction 00h return number of additional data areas (see #00693) 01h return description of additional data areas (see #00694) 02h accept mode-specific pointers to data areas (see #00695) ES:EDI -> buffer supplied by caller Return: CF clear if successful AH destroyed CX = number of additional data areas ES:EDI unchanged CF set on error AH = error code (01h,02h,15h,16h,18h) (see #00656) SeeAlso: AH=9Fh,AH=AEh Format of PCMCIA Subfunction 00h Buffer Table Entry structure: Offset Size Description (Table 00693) 00h DWORD 32-bit linear base address of the code segment 04h DWORD segment limit of the code segment 08h DWORD entry point offset 0Ch DWORD 32-bit linear base address of the data segment (ignored in 00:32 flat mode) 10h DWORD segment limit of the data segment 14h DWORD data area offset. Only used in 32-bit protected mode. SeeAlso: #00694,#00695 Format of PCMCIA Additional Data Area Description structure [array]: Offset Size Description (Table 00694) 00h DWORD 32-bit linear base address of the additional data segment (ignored in 00:32 flat mode) 04h DWORD segment limit of the code segment 08h DWORD data area offset (only used in 32-bit protected mode) SeeAlso: #00693,#00695 Format of PCMCIA Subfunction 02h Buffer Table Entry structure: Offset Size Description (Table 00695) 00h DWORD 32-bit offset(ignored in 16:16 protected mode) 04h DWORD selector (only used in 00:32 flat mode) 08h DWORD reserved SeeAlso: #00693,#00694Top
INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS AH = A1h AL = adapter number BH = Mode 00h = Real Mode 01h = 16:16 Protected Mode 02h = 16:32 Protected Mode 03h = 00:32 Protected Mode CX = Number of access offsets ES:EDI -> buffer supplied by caller, CX words long (see #00696) Return: CF clear if successful AH destroyed DX = number of access offsets supported ES:EDI unchanged CF set on error AH = error code (01h,15h,16h) (see #00656) Desc: Returns an array of low-level adapter-specific optimized PC Card access routines for adapters that use registers or I/O ports to access PC Card memory. Adapters that access PC Card memory through windows mapped to host system memory do not support this function. Note: offsets returned are 16-bit offsets into the Socket Services code segment. They must be called appropriately for the processor mode selected. (Real, 16:16 and 16:32 modes use FAR CALL, Flat 00:32 mode uses a 32-bit NEAR CALL). SeeAlso: AH=AEh Format of Offset Table structure: Offset Size Description (Table 00696) 00h WORD Set Address 02h WORD Set Auto Increment 04h WORD Read Byte 06h WORD Read Word 08h WORD Read Byte with Auto Increment 0Ah WORD Read Word with Auto Increment 0Ch WORD Read Words 0Eh WORD Read Words with Auto Increment 10h WORD Write Byte 12h WORD Write Word 14h WORD Write Byte with Auto Increment 16h WORD Write Word with Auto Increment 18h WORD Write Words 1Ah WORD Write Words with Auto Increment 1Ch WORD Compare Byte 1Eh WORD Compare Byte with Auto Increment 20h WORD Compare Words 22h WORD Compare Words with Auto IncrementTop
INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE AH = A2h ??? details not available Return: ???Top
INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES AH = A4h ??? details not available Return: ??? SeeAlso: AH=A5h"CardBus"Top
INT 1A - CardBus Socket Services - SET BRIDGE WINDOW AH = A5h ??? details not available Return: ??? SeeAlso: AH=A4h"CardBus"Top
INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK AH = ABh Return: AH = BAh if installed AL = pending INT 1A/AH=ADh subfunction if nonzero??? ES = code segment ES:BX -> name of current spool file ES:SI -> current despool file CL = despooler state (00h disabled, 41h enabled) CH = spooler state (00h disabled, 41h enabled) DL = despooler activity 00h currently active printing a file 41h standing by DH = 00h ??? = 41h ??? DI = 0000h ??? 0001h ??? Program: Disk Spool II is a shareware disk-based print spooler by Budget Software Company SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1hTop
INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK AH = ACh Return: (see AH=ABh) Note: this function is identical to AH=ABh SeeAlso: AH=A0h,AH=ABh,AH=ADhTop
INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS AH = ADh AL = function code (see #00697) Return: AH = 00h if successful SeeAlso: AH=ABh (Table 00697) Values for Disk Spool function code: 02h enable spooler only 03h enable the despooler 04h disable the despooler 08h inhibit popup menu 09h enable popup menu 0Ah ??? 0Bh disable the spooler 0Ch start despooler after last successfully printed document??? 0Dh start despooler at the exact point where it last left off??? 0Eh pop up the menu 0Fh ??? 11h ??? 14h ??? 15h ??? 16h ??? 17h ??? 18h ??? 19h ??? 20h clear file pointed to by the despooler??? 21h ??? 22h ??? 23h ??? 30h ???Top
INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC AH = AEh AL = adapter number all other registers are vendor-specific Return: vendor specific SeeAlso: AH=A1h,AH=AFhTop
INT 1A - PCMCIA Socket Services v2.1 - API AH = AEh SI = function 0002h ??? 0100h ??? 0101h ??? 8000h ??? 8001h ??? details not yet available Return: CF clear if successful CF set on error AH = error code (02h,0Bh,11h,15h,17h) (see #00656) SeeAlso: AH=9EhTop
INT 1A - PCMCIA v2 Card Services - API AH = AFh AL = function 00h close memory 01h copy memory 02h deregister client 03h get client information (see #00702) 04h get configuration information (see #00704) 05h get first partition 06h get first region 07h get first tuple (see #00711) 08h get next partition 09h get next region 0Ah get next tuple 0Bh get Card Services information (see #00700) 0Ch get status 0Dh get tuple data (see #00712) 0Eh get first client (see #00701) 0Fh get/register Erase Queue 10h register client (see #00713) 11h reset function 12h map logical socket 13h map logical window 14h map memory page 15h map physical socket 16h map physical window 17h modify window 18h open memory 19h read memory 1Ah register MTD 1Bh release I/O 1Ch release IRQ (see #00715) 1Dh release window 1Eh release configuration (see #00716) 1Fh request I/O (see #00717) 20h request IRQ (see #00718) 21h reqeust window (see #00720) 22h request socket mask 23h return SS entry 24h write memory 25h deregister Erase Queue 26h check Erase Queue 27h modify configuration 28h register timer 29h set region 2Ah get next client 2Bh validate CIS 2Ch request exclusive access (see #00723) 2Dh release exclusive access (see #00723) 2Eh get event mask 2Fh release socket mask 30h request configuration (see #00724) 31h set event mask 32h add Socket Service 33h replace Socket Service 34h vendor-specific 35h adjust resource information 36h access configuration register 37h get first window 38h get next window 39h get memory page 3Ah request DMA 3Bh release DMA further details not yet available Return: ??? = result code (see #00698) SeeAlso: AH=AEh (Table 00698) Values for PCMCIA Card Services result codes: 00h successful 01h invalid adapter number 02h bad value for attribute field 03h bad value for base system memory address 04h invalid EDC generator specified 05h (reserved for historical reasons) 06h invalid IRQ level specified 07h invalid PC Card memory array offset 08h invalid page number specified 09h unable to complete read request 0Ah invalid size specified 0Bh invalid socket number 0Ch (reserved for historical reasons) 0Dh invalid window or interface type 0Eh invalid Vcc power level specified 0Fh invalid Vpp1 or Vpp2 power level specified 10h (reserved for historical reasons) 11h invalid window number 12h unable to complete write request 13h (reserved for historical reasons) 14h no PC Card in socket 15h service not supported by implementation 16h unsupported processor mode 17h specified speed not available 18h busy -- retry later 19h undefined error (general failure) 1Ah storage medium write protected 1Bh argument length in (E)CX is invalid 1Ch bad value(s) in argument packet 1Dh configuration has already been locked 1Eh requested resource already in use 1Fh no more items of requested type available 20h out of resources 21h invalid client handle 22h unsupported client version (Table 00699) Values for Card Services Callback Event codes: 01h battery dead 02h battery low 03h card locked 04h card has become ready 05h card removed 06h card unlocked 07h motorized ejection complete 08h ejection requested 09h insertion complete 0Ah insertion requested 0Bh power management: resume 0Ch power management: suspend 0Dh exclusive access granted 0Eh exclusive access requested 0Fh perform physical reset 10h physical reset requested 11h card has been reset 12h MTD request (read/write/etc) 14h request for client info 15h timer has expired 16h Socket Service was modified 17h write-protected 18h attention requested 40h card insertion 80h reset complete 81h erase complete 82h registration complete Format of Card Services Information: Offset Size Description (Table 00700) 00h WORD length of information record in bytes 02h WORD signature 04h WORD number of sockets 06h WORD revision level 08h WORD Card Services level 0Ah WORD offset of vendor string 0Ch WORD length of vendor string 0Eh WORD number of functions 10h 255 BYTEs vendor string SeeAlso: #00702 Format of Card Services Client structure: Offset Size Description (Table 00701) 00h WORD PCMCIA socket number 02h WORD client attributes Format of Cards Services Client Information: Offset Size Description (Table 00702) 00h WORD maximum length of data in bytes (180) 02h WORD (ret) length of returned data 04h WORD attributes (see #00703) 06h WORD revision level (BCD) 08h WORD Card Services level (BCD) 0Ah WORD revision date (DOS packed date format) (see #01666) 0Ch WORD offset to name 0Eh WORD length of name 10h WORD offset to vendor string 12h WORD length of vendor string 14h 80 BYTEs buffer for name 64h 80 BYTEs buffer for vendor string SeeAlso: #00700,#00704 Bitfields for Card Services client attributes: Bit(s) Description (Table 00703) 0 memory client 1 MTD client 2 I/O client 3 all clients can share this card 4 only one client can use this card at a time SeeAlso: #00702 Format of Card Services configuration information: Offset Size Description (Table 00704) 00h WORD socket (usually 0000h) 02h WORD attributes (see #00705) 04h BYTE Vcc value 05h BYTE Vpp1 value 06h BYTE Vpp2 value 07h BYTE interface type (see #00706) 08h DWORD base address of configuration registers 0Ch BYTE card's Status register setting (if present) 0Dh BYTE card's Pin register setting (if present) 0Eh BYTE card's Socket/Copy register setting (if present) 0Fh BYTE card's Option register setting (if present) 10h BYTE bitmap of present card configuration registers 11h BYTE first device type 12h BYTE function code 13h BYTE SysInit mask 14h WORD manufacturer code 16h WORD manufacturer information 18h BYTE valie card register values 19h BYTE IRQ number assigned to PC Card 1Ah WORD IRQ attributes (see #00708) 1Ch WORD base port address (for I/O range 1) 1Eh BYTE number of contiguous ports (for I/O range 1) 1Fh BYTE bitmap of port attributes (for I/O range 1) (see #00709) 20h WORD base port address (for I/O range 2) 22h BYTE number of contiguous ports (for I/O range 2) 23h BYTE bitmap of port attributes (for I/O range 2) (see #00709) 24h BYTE number of I/O address lines decoded (16-bit PC Card only) 25h BYTE extended status register setting (if present) 26h BYTE bitmap of DMA attributes (see #00710) (note: value at call is used to set!) 27h BYTE assigned DMA channel 28h BYTE number of I/O windows in use on logical socket 29h BYTE number of memory windows in use on logical socket SeeAlso: #00703,#00724 Bitfields for Card Services Configuration attributes: Bit(s) Description (Table 00705) 0 exclusive 1 IRQ active 2 CardBus card 3-5 reserved (0) 6 DMA channel is active 7 reserved (0) 8 valid client 9 overwrite voltage value 10-15 reserved (0) SeeAlso: #00704 Bitfields for Card Services Configuration interface type: Bit(s) Description (Table 00706) 0 memory interface 1 I/O and memory interface 2 CardBus interface 3-7 reserved (0) SeeAlso: #00704 Bitfields for Card Services Configuration registers: Bit(s) Description (Table 00707) 0 option value is value 1 status value 2 pin-replacement value 3 copy value 4 extended status value 5-7 reserved (0) SeeAlso: #00704 Bitfields for Card Services Configuration IRQ attributes: Bit(s) Description (Table 00708) 1-0 sharing 00 no sharing 01 time-multiplex sharing 10 dynamic sharing 11 reserved 2 force pulse mode 3 first used together 4-7 reserved 8 pulse IRQ has been assigned 9-15 reserved SeeAlso: #00704,#00709,#00710,#00715,#00718 Bitfields for Card Services Configuration Port attributes: Bit(s) Description (Table 00709) 0 shared I/O ports 1 "CS_FirstCommonUsedCard" 2 force alias access 3 =1 sixteen-bit I/O =0 eight-bit I/O 7-4 reserved (0) SeeAlso: #00704,#00708,#00710,#00717 Bitfields for Card Services Configuration DMA attributes: Bit(s) Description (Table 00710) 1-0 sharing mode 00 no sharing 01 time-multiplex sharing 10 dynamic sharing 11 reserved 3-2 DMA request signal 00 reserved 01 DMARQ uses pin SPKR# 10 DMARQ uses pin IOIS16# 11 DMARQ uses pin INPACK# 4 DMA size 0 eight bits 1 sixteen bits 7-5 reserved (0) SeeAlso: #00704,#00708,#00709 Format of Card Services Tuple information: Offset Size Description (Table 00711) 00h WORD logical socket number 02h WORD attributes bit 0: return Link tuples 04h BYTE code value of desired tuple 05h BYTE reserved (0) 06h WORD (ret) TupleFlags 08h DWORD (ret) -> Card Services Link State Information 0Ch DWORD (ret) -> Card Services CIS State Information 10h BYTE (ret) code for tuple 11h BYTE (ret) link value for tuple SeeAlso: #00712 Format of Card Services GetTupleData record: Offset Size Description (Table 00712) 00h WORD logical socket 02h WORD attributes 04h BYTE code value of desired tuple 05h BYTE offset into tuple from link byte 06h WORD flags 08h DWORD -> Link 0Ch DWORD -> CIS 10h WORD (call) maximum amount of data to return (0004h) 12h WORD (ret) amount of data returned 14h DWORD (ret) tuple data SeeAlso: #00711 Format of Card Services Client Registration record: Offset Size Description (Table 00713) 00h WORD attributes 02h WORD event mask 04h WORD client data (passed to client event handler in DI) --- 16-bit code --- 06h WORD client data selector (passed to event handler in DS) 08h WORD client data offset (passed to event handler in SI) 0Ah WORD reserved --- 32-bit code --- 06h WORD reserved 08h DWORD client data offset (passed to event handler in ESI) ------ 0Ch WORD expected Card Services version (0210h for v2.10) Bitfields for Card Services client event codes: Bit(s) Description (Table 00714) 0 change in write-protect status 1 change in card lock 2 ejection request 3 insertion request 4 battery is dead 5 battery low 6 change in Ready 7 change in Card Detect 8 power management change 9 reset 10 Socket Services updated 11 extended status change SeeAlso: #00713 Format of Card Services ReleaseIRQ record: Offset Size Description (Table 00715) 00h WORD logical socket number 02h WORD attributes (see #00708) 04h BYTE assigned IRQ number to be released Format of Card Services Release Configuration record: Offset Size Description (Table 00716) 00h WORD logical socket number Format of Card Services Request I/O record: Offset Size Description (Table 00717) 00h WORD logical socket number 02h WORD base port 1 04h BYTE size of port range 1 05h BYTE attributes for port range 1 (see #00709) 06h WORD base port 2 08h BYTE size of port range 2 09h BYTE attributes for port range 2 (see #00709) 0Ah BYTE number of address lines (typically 16) SeeAlso: #00718,#00716 Format of Card Services Request IRQ record: Offset Size Description (Table 00718) 00h WORD logical socket number 02h WORD attributes (see #00708) 04h BYTE (ret) assigned IRQ number, if successful 05h BYTE IRQ info (see #00719) 06h WORD bitmap of available IRQs (bit 0 = IRQ0, etc.) (only if bit 4 of IRQ info set) SeeAlso: #00717,#00716 Bitfields for Card Services Request IRQ info flags: Bit(s) Description (Table 00719) 7 IRQ is shared 6 pulse (edge-triggered) interrupt 5 level interrupt 4 use IRQ bitmap --- bit 4 set --- 3 vendor-specific interrupt 2 bus error 1 I/O check interrupt 0 NMI --- bit 4 clear --- 3-0 IRQ number SeeAlso: #00718 Format of Card Services Request Window record: Offset Size Description (Table 00720) 00h WORD logical socket number 02h WORD attributes (see #00721) 04h DWORD system base adress 08h DWORD size of memory window 0Ch BYTE additional info if attributes bit ??? is set, this is the address-lines field otherwise, this is the access-speed field (see #00722) Bitfields for Card Services Request Window attributes: Bit(s) Description (Table 00721) 0 I/O window instead of memory window 1 attribute memory instead of normal memory (16-bit PC Cards only) 2 window enabled 3 16-bit data path instead of 8-bit path (16-bit PC Cards only, v2.10+) (ignored if bit 9 set) 4 size is given in 16K pages (invalid for CardBus PC Cards) 5 shared (invalid for CardBus) 6 first shared (invalid for CardBus) 7 "CS_BindingSpecific" (memory window only) 8 card offsets are window-size granular (16-bit PC Card memory window) 9 32-bit data path (CardBus only) 10 reserved (0) 12-11 prefetch/cache 00 neither prefetchable nor cacheable 01 prefetchable but not cacheable 10 prefetchable and cachable 11 reserved 15-13 decoded base address register number (CardBus only) SeeAlso: #00720,#00722 Bitfields for Card Services Request Window access-speed: Bit(s) Description (Table 00722) 6-3 mantissa 0000 use device speed code 0001 1.0 0010 1.2 0011 1.2 ??? 0100 1.5 0101 2.0 0110 2.5 0111 3.0 1000 3.5 1001 4.0 1010 4.5 1011 5.0 1100 5.5 1101 6.0 1110 7.0 1111 8.0 --- if mantissa==0 --- 2-0 device speed code 000 reserved 001 250 ns 010 200 ns 011 150 ns 100 100 ns 101-111 reserved --- if mantissa<>0 --- 2-0 speed exponent 000 1 ns 001 10 ns 010 100 ns 011 1 us 100 10 us 101 100 us 110 1 ms 111 10 ms SeeAlso: #00720,#00721 Format of Card Services Request/Release Exclusive Access record: Offset Size Description (Table 00723) 00h WORD logical socket number 02h WORD attributes (currently all reserved, must be 0000h) Format of Card Services Request Configuration record: Offset Size Description (Table 00724) 00h WORD socket (usually 0000h) 02h WORD attributes (see #00705) 04h BYTE Vcc value 05h BYTE Vpp1 value 06h BYTE Vpp2 value 07h BYTE interface type (see #00706) 08h DWORD base address of configuration registers 0Ch BYTE card's Status register setting (if present) 0Dh BYTE card's Pin register setting (if present) 0Eh BYTE card's Socket/Copy register setting (if present) 0Fh BYTE card's Option register setting (if present) 10h BYTE bitmap of present card configuration registers 11h BYTE extended status register setting (if present) SeeAlso: #00704Top
INT 1A U - HP 100LX/200LX - PCMCIA - ??? AX = B000h ES:BX -> parameter block ??? Return: CF clear if ??? CF set if ??? Note: called by HP 100LX/200LX PCMCIA client CIC100.EXETop
INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
AX = B001h
CX = 4D52h ("MR")
DX = 4349h ("CI")
Return: CX = 4943h ("IC") if installed
DX = 524Dh ("RM") if installed
ES:DI -> MRCINFO structure (see #00725)
Note: this call is functionally identical to INT 2F/AX=4A12h, which should
be called first, as this call is used for the first, ROM-based
MRCI server, while the other call is used for RAM-based servers
which may be partially or entirely replacing a prior server
SeeAlso: INT 2F/AX=4A12h
Format of MRCINFO structure:
Offset Size Description (Table 00725)
00h 4 BYTEs vendor signature
"MSFT" Microsoft
04h WORD server version (high=major)
06h WORD MRCI specification version
08h DWORD address of server entry point (see #00727)
0Ch WORD bit flags: server capabilities (see #00726)
0Eh WORD bit flags: hardware assisted capabilities (see #00726)
10h WORD maximum block size supported by server (at least 8192 bytes)
Bitfields for MRCI capabilities:
Bit(s) Description (Table 00726)
0 standard compress
1 standard decompress
2 update compress
3 MaxCompress (not present in initial public release)
4 reserved
5 incremental decompress
6 MRCI 2.0 standard compress
7 MRCI 2.0 standard decompress
8-14 reserved
15 this structure is in ROM and can't be modified
(server capabilities only)
(Table 00727)
Call MRCI entry point with:
DS:SI -> MRCREQUEST structure (see #00728)
CX = type of client (0000h application, 0001h file system)
AX = operation
0001h perform standard compression
0002h perform standard decompression
0004h perform update compression
0008h perform MaxCompress
0020h perform incremental decompression
0040h perform MRCI 2.0 standard compression
0080h perform MRCI 2.0 standard decompression
AX = FFFFh clear flags
BX = bitmask of flags to clear (set bits in BX are flags to clear)
Return: AX = status
0000h successful
0001h invalid function
0002h server busy, try again
0003h destination buffer too small
0004h incompressible data
0005h bad compressed data format
BP destroyed (MS-DOS 6.2)
Note: MRCI driver may chain to a previous driver
Format of MRCREQUEST structure:
Offset Size Description (Table 00728)
00h DWORD pointer to source buffer
04h WORD size of source buffer (0000h = 64K)
06h WORD (UpdateCompress only)
(call) offset in source buffer of beginning of changed data
(ret) offset in destination buffer of beginning of changed
compressed data
08h DWORD pointer to destination buffer
must contain original compressed data for UpdateCompress
0Ch WORD size of destination buffer (0000h = 64K)
any compression: size of buffer for compressed data
standard decompression: number of bytes to be decompressed
incremental decompression: number of byte to decompress now
(ret) actual size of resulting data
0Eh WORD client compressed data storage allocation size
10h DWORD incremental decompression state data
set to 00000000h before first incremental decompression call
Notes: the source and destination buffers may not overlap
the source and destination buffer sizes should normally be the same
application should not update the contents of the MRCREQUEST structure
between incremental decompression calls
Top
Top
INT 1A - PCI BIOS v2.0c+ - INSTALLATION CHECK
AX = B101h
EDI = 00000000h
Return: AH = 00h if installed
CF clear
EDX = 20494350h (' ICP')
EDI = physical address of protected-mode entry point (see #00731)
AL = PCI hardware characteristics (see #00730)
BH = PCI interface level major version (BCD)
BL = PCI interface level minor version (BCD)
CL = number of last PCI bus in system
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
some BIOSes do not change EDI, so applications looking for the
protected-mode entry point should set EDI to 00000000h before
calling this function
SeeAlso: AX=B181h
(Table 00729)
Values for PCI BIOS v2.0c+ status codes:
00h successful
81h unsupported function
83h bad vendor ID
86h device not found
87h bad PCI register number
Bitfields for PCI hardware characteristics:
Bit(s) Description (Table 00730)
0 configuration space access mechanism 1 supported
1 configuration space access mechanism 2 supported
2-3 reserved
4 Special Cycle generation mechanism 1 supported
5 Special Cycle generation mechanism 2 supported
6-7 reserved
(Table 00731)
Call protected-mode entry point with:
registers as for real/V86-mode INT call
CS = ring 0 descriptor with access to full address space
Return: as for real/V86-mode call
Top
INT 1A - PCI BIOS v2.0c+ - FIND PCI DEVICE AX = B102h CX = device ID (see #00735,#00742,#00743,#00873,#00875) DX = vendor ID (see #00732) SI = device index (0-n) Return: CF clear if successful CF set on error AH = status (00h,83h,86h) (see #00729) 00h successful BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 func) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call device ID FFFFh may be reserved as a wildcard in future implementations the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation all devices sharing a single vendor ID and device ID may be enumerated by incrementing SI from 0 until error 86h is returned SeeAlso: AX=B182h (Table 00732) Values for PCI vendor ID: 001Ah Ascend Communications, Inc. 003Dh Martin-Marietta Corporation 0E11h Compaq (see #00733) 1000h Symbios Logic Inc (formerly NCR) (see #00734) 1002h ATI (see #00735) 1003h ULSI Systems (see #00736) 1004h VLSI Technologies (see #00737) 1005h Avance Logics (ADL) (see #00738) 1006h Reply Group 1007h Netframe Systems Inc. 1008h Epson 100Ah Phoenix Technologies 100Bh National Semiconductor (see #00739) 100Ch Tseng Labs (see #00740) (also ID 10BEh) 100Dh AST Research 100Eh Weitek (see #00741) 1010h Video Logic Ltd 1011h DEC (see #00742) 1012h Micronics Computers 1013h Cirrus Logic (see #00743,#00029) 1014h IBM (see #00744) 1015h LSI Logic Corp. of Canada 1016h ICL Personal Systems 1017h SPEA Software AG 1018h Unisys 1019h EliteGroup Computer Sys 101Ah NCR/AT&T GIS 101Bh Vitesse Semiconductor 101Ch Western Digital (see #00745) 101Eh AMI (see #00746) 101Fh Picturetel 1020h Hitachi Computer Electronics 1021h Oki Electric Industry 1022h Advanced Micro Devices (see #00747) 1023h Trident Microsystems (see #00748) 1024h Zenith Data Systems 1025h Acer 1028h Dell Computer Corporation 1029h Siemens Nixdorf 102Ah LSI Logic, Headland Division (see #00749) 102Bh Matrox (see #00750) 102Ch Chips & Technologies (see #00751) 102Dh Wyse Technologies 102Eh Olivetti Advanced Technology 102Fh Toshiba America (see #00752) 1030h TMC Research 1031h Miro Computer Products AG (see #00753) 1032h Compaq 1033h NEC Corporation (see #00754) 1034h Burndy Corporation 1035h Computers and Communications Research Lab 1036h Future Domain (see #00755) 1037h Hitachi Micro Systems 1038h AMP Incorporated 1039h Silicon Integrated System (SIS) (see #00756) 103Ah Seiko Epson Corporation 103Bh Tatung Corp. of America 103Ch Hewlett-Packard (see #00757) 103Eh Solliday 103Fh Logic Modeling 1040h Kubota Pacific 1041h Computrend 1042h PC Technology (see #00758,#00928) (see also PORT 03F0h"PCTech") 1043h Asustek 1044h Distributed Processing Technology (DPT) (see #00759) 1045h OPTi (see #00760) 1046h IPC Corporation, Ltd. 1047h Genoa Systems Corp. 1048h Elsa GmbH 1049h Fountain Technology 104Ah SGS Thomson Microelectric (see #00761) 104Bh BusLogic (see #00762) 104Ch Texas Instruments (see #00763) 104Dh Sony Corporation 104Eh Oak Technology (see #00764) 104Fh Co-Time Computer Ltd. 1050h Winbond (see #00765) 1051h Anigma Corp. 1052h Young Micro Systems 1054h Hitachi, Ltd. (see #00766) 1055h EFAR Microsystems (see #00767) 1056h ICL 1057h Motorola (see #00768) 1058h Electronics and Telecommunications Research 1059h Teknor Microsystems 105Ah Promise Technology (see #00769) 105Bh Foxconn International 105Ch Wipro Infotech Ltd. 105Dh Number 9 Computer Company (see #00770) 105Eh VTech Engineering Canada, Ltd. 105Fh Infotronic America, Inc. 1060h United Microelectronics (UMC) (see #00771) 1061h 8x8 (X Tech) (see #00772) 1062h Maspar Computer Copr. 1063h Ocean Office Automation 1064h Alcatel Cit 1065h Texas Microsystems 1066h PicoPower Technology (see #00773) 1067h Mitsubishi Electronics 1068h Diversified Technology 1069h Mylex Corporation (see #00774) 106Ah Aten Research 106Bh Apple Computer 106Ch Hyundai Electronics America 106Dh Sequent 106Eh DFI Inc. 106Fh City Gate Development, Ltd. 1070h Daewoo Telecom Ltd. 1071h Mitac 1072h GIT Co., Ltd. 1073h Yamaha Corporation (see #00775) 1074h NexGen Microsystems (see #00776) 1075h Advanced Integration Research 1076h Chaintech Computer Co. Ltd. 1077h Q Logic (see #00777) 1078h Cyrix Corporation 1079h I-Bus 107Ah Networth 107Bh Gateway 2000 107Ch Goldstar Co. Ltd. 107Dh Leadtek Research (see #00778) 107Eh Interphase Corporation (see #00779) 107Fh Data Technology Corporation (DTC) (see #00780) 1080h Contaq Microsystems (see #00781) 1081h Supermac Technology 1082h EFA Corporation of America 1083h Forex Computer Corporation (see #00782) 1084h Parador 1085h Tulip Computers Int'l BV 1086h J. Bond Computer Systems 1087h Cache Computer 1088h Microcomputer Systems (M) Son 1089h Data General Corporation 108Ah Bit3 Computer (see #00783) 108Ch Elonex PLC (Oakleigh Systems, Inc) 108Dh Olicom (see #00784) 108Eh Sun Microsystems 108Fh Systemsoft Corporation 1090h Encore Computer Corporation 1091h Intergraph Corporation (see #00785) 1092h Diamond Computer Systems 1093h National Instruments (see #00786) 1094h First International Computers (FIC) 1095h CMD Technology, Inc. (see #00787) 1096h Alacron 1097h Appian Technology (see #00788) 1098h Vision / Quantum Designs Ltd (see #00789) 1099h Samsung Electronics Co. Ltd. 109Ah Packard Bell 109Bh Gemlight Computer Ltd. 109Ch Megachips Corporation 109Dh Zida Technologies 109Eh Brooktree Corporation (see #00790) 109Fh Trigem Computer Inc. 10A0h Meidensha Corporation 10A1h Juko Electronics Inc. Ltd. 10A2h Quantum Corporation 10A3h Everex Systems Inc. 10A4h Globe Manufacturing Sales 10A5h Racal Interlan 10A6h Informtech Industrial Ltd. 10A7h Benchmarq Microelectronics 10A8h Sierra Semiconductor (see #00791) 10A9h Silicon Graphics 10AAh ACC Microelectronics (see #00792) 10ABh Digicom 10ACh Honeywell IASD 10ADh Symphony Labs (see #00793) 10AEh Cornerstone Technology 10AFh Microcomputer Systems 10B0h CardExpert Technology 10B1h Cabletron Systems, Inc. 10B2h Raytheon Company 10B3h Databook Inc 10B4h STB Systems 10B5h PLX Technology (see #00794) 10B6h Madge Networks (see #00795) 10B7h 3com Corporation (see #00796) 10B8h Standard Microsystems Corporation (SMC) (see #00797) 10B9h Acer Labs Inc. (see #00798) 10BAh Mitsubishi Electronics Corp. 10BBh Dapha Electronics Corporation 10BCh Advanced Logic Research Inc. (ALR) 10BDh Surecom Technology (see #00799) 10BEh Tseng Labs International Corp. (see #00740) 10BFh Most Inc. 10C0h Boca Research Inc. 10C1h ICM Corp. Ltd. 10C2h Auspex Systems Inc. 10C3h Samsung Semiconductors 10C4h Award Software International Inc. 10C5h Xerox Corporation 10C6h Rambus Inc. 10C7h Media Vision 10C8h Neomagic Corporation (see #00800) 10C9h DataExpert Corporation 10CAh Fujitsu 10CBh Omron Corporation 10CCh Mentor Arc Inc. 10CDh Advanced System Products (see #00801) 10CEh Radius Inc. 10CFh Citicorp TTI (see #00802) 10D0h Fujitsu Limited 10D1h Future+ Systems 10D2h Molex Incorporated 10D3h Jabil Circuit Inc. 10D4h Hualon Microelectronics 10D5h Autologic Inc. 10D6h Cetia 10D7h BCM Advanced Research 10D8h Advanced Peripherals Labs 10D9h Macronix International Co. Ltd 10DAh Thomas-Conrad Corporation 10DBh Rohm Research 10DCh CERN/ECP/EDU (see #00803) 10DDh Evans & Sutherland (see #00804) 10DEh NVIDIA Corporation 10DFh Emulex Corporation (see #00805) 10E0h Integrated Micro Solutions (IMS) (see #00806) 10E1h TekRAM Technology Corporation Ltd. (see #00807) 10E2h Aptix Corporation 10E3h Newbridge Microsystems (see #00808) 10E4h Tandem Computers 10E5h Micro Industries 10E6h Gainbery Computer Products Inc. 10E7h Vadem 10E8h Applied Micro Circuits Corp. (see #00809) 10E9h Alps Electronic Corp. Ltd. 10EAh Integraphics Systems (see #00810) 10EBh Artist Graphics (see #00811) 10ECh Realtek Semiconductor (see #00812) 10EDh ASCII Corporation (see #00813) 10EEh Xilinx Corporation 10EFh Racore Computer Products 10F0h Peritek Corporation 10F1h Tyan Computer 10F2h Achme Computer Inc. 10F3h Alaris Inc. 10F4h S-MOS Systems 10F5h NKK Corporation (see #00814) 10F6h Creative Electronic Systems SA 10F7h Matsushita Electric Industrial Corp. Ltd. 10F8h Altos India Ltd. 10F9h PC Direct 10FAh Truevision (see #00815) 10FBh Thesys Ges. fr Microelektronik mbH 10FCh I/O Data Device Inc. 10FDh Soyo Technology Corp. Ltd. 10FEh Fast Electronic GmbH 10FFh N-Cube 1100h Jazz Multimedia 1101h Initio Corporation (see #00816) 1102h Creative Labs 1103h Triones Technologies Inc. 1104h Rasterops 1105h Sigma Designs, Inc. 1106h VIA Technologies (see #00817) 1107h Stratus Computer 1108h Proteon Inc. (see #00818) 1109h Cogent Data Technologies (see #00819) 110Ah Siemens AG / Siemens Nixdorf AG (see #00820) 110Bh Xenon Microsystems / Chromatic Research, Inc. 110Ch Mini-Max Technology Inc. 110Dh ZNyX Corporation 110Eh CPU Technology 110Fh Ross Technology 1110h Powerhouse Systems 1111h Santa Cruz Operation (SCO) 1112h Rockwell / RNS division of Meret Communications Inc. (see #00821) 1113h Accton Technology Corporation 1114h Atmel Corporation 1115h DuPont Pixel Systems 1116h Data Translation / Media 100, Inc. 1117h Datacube Inc. (see #00822) 1118h Berg Electronics 1119h Vortex Computersysteme GmbH (see #00823) 111Ah Efficient Networks, Inc. (see #00824) 111Bh Teledyne Electronic Systems 111Ch Tricord Systems, Inc. 111Dh Integrated Device Technology 111Eh Eldec Corporation 111Fh Precision Digital Images 1120h EMC Corporation 1121h Zilog 1122h Multi-tech Systems, Inc. 1123h Excellent Design, Inc. 1124h Leutron Vision AG 1125h Eurocore 1126h Vigra 1127h FORE Systems (see #00825) 1128h ??? 1129h Firmworks 112Ah Hermes Electronics Co. 112Bh Linotype - Hell AG 112Dh Ravicad 112Eh Infomedia MicroElectronics Inc (see #00826) 112Fh Imaging Technology (see #00827) 1130h Computervision 1131h Philips Semiconductors 1132h Mitel Corp 1133h Eicon Technology Corporation 1134h Mercury Computer Systems Inc (see #00828) 1135h Fuji Xerox Co Ltd (see #00829) 1136h Momentum Data Systems 1137h Cisco Systems Inc 1138h Ziatech Corporation (see #00830) 1139h Dynamic Pictures Inc (see #00831) 113Ah FWB Inc 113Ch Cyclone Microsystems (PLX) (see #00832) 113Dh Leading Edge Products Inc 113Eh Sanyo Electric Co. - Computer Engineering Dept. 113Fh Equinox Systems 1140h Intervoice Inc 1141h Crest Microsystem Inc (see #00833) 1142h Alliance Semiconductor Corp (see #00834) 1143h Netpower, Inc. 1144h Cincinnati Milacron / Vickers Inc. Electronic Systems (see #00835) 1145h Workbit Corp 1146h Force Computers 1147h Interface Corp. 1148h Schneider & Koch Co. / Syskonnect (see #00836) 1149h Win System Corporation 114Ah VMIC (see #00837) 114Bh Canopus Co. 114Ch Annabooks 114Dh IC Corporation 114Eh Nikon Systems Inc 114Fh Digi International / Stargate (see #00838) 1150h Thinking Machines Corp. 1151h JAE Electronics Inc. 1152h Megatek 1153h Land Win Electronic Corp. 1154h Melco Inc. 1155h Pine Technology Ltd. 1156h Periscope Engineering 1157h Avsys Corporation 1158h Voarx R&D Inc. (see #00839) 1159h MuTech (see #00840) 115Ah Harleguin Ltd. 115Bh Parallax Graphics 115Ch Photron, Ltd. 115Dh Xircom 115Eh Peer Protocols Inc. 115Fh ??? 1160h Megasoft Inc. 1161h PFU Ltd. (see #00841) 1162h OA Laboratory Co Ltd. 1163h Creative Labs / Rendition (see #00842) 1164h Advanced Peripherals Tech 1165h Imagraph Corporation (see #00843) 1166h Pequr Technology Inc. / Relience Computer 1167h Mutoh Industries, Inc. 1168h Thine Electronics Inc 1169h Centre for Development of Advanced Computing 116Ah Polaris Communications 116Bh Connectware Inc 116Ch ??? 116Dh ??? 116Eh ??? 116Fh Workstation Technology 1170h Inventec Corporation 1171h Loughborough Sound Images 1172h Altera Corporation 1173h Adobe Systems 1174h Bridgeport Machines 1175h Mitron Computer Inc. 1176h SBE 1177h Silicon Engineering 1178h Alfa Inc (see #00844) 1179h Toshiba America Info Systems 117Ah A-Trend Technology 117Bh LG Electronics Inc. 117Ch Atto Technology 117Dh ??? 117Eh T/R Systems 117Fh ??? 1180h Ricoh Co Ltd 1181h Telmatics International 1182h ??? 1183h Fujikura Ltd 1184h Forks Inc 1185h Dataworld 1186h D-Link System Inc 1187h Advanced Technology Laboratories 1188h Shima Seiki Manufacturing Ltd. 1189h Matsushita Electronics (see #00845) 118Ah Hilevel Technology 118Bh ??? 118Ch Corollary Inc (see #00846) 118Dh BitFlow Inc (see #00847) 118Eh Hermstedt GmbH 118Fh ??? 1190h ??? 1191h Artop Electric / Acard Technology Corp. (see #00848) 1192h Densan Co. Ltd 1193h Zeitnet Inc. (see #00849) 1194h Toucan Technology 1195h Ratoc System Inc 1196h Hytec Electronics Ltd 1197h Gage Applied Sciences Inc. 1198h Lambda Systems Inc 1199h Digital Communications Associates Inc, 119Ah Mind Share Inc. 119Bh Omega Micro Inc. 119Ch Information Technology Inst. 119Dh Bug Sapporo Japan 119Eh Fujitsu 119Fh Bull Hn Information Systems 11A0h Convex Computer Corporation 11A1h Hamamatsu Photonics K.K. 11A2h Sierra Research and Technology 11A3h Deuretzbacher GmbH & Co. Eng. KG 11A4h Barco 11A5h MicroUnity Systems Engineering, Inc. 11A6h Pure Data 11A7h Power Computing Corp. 11A9h InnoSys Inc. (see #00850) 11AAh Actel 11ABh Galileo Technology Ltd. (see #00851) 11ACh Canon Information Systems 11ADh Lite-On Communications Inc 11AEh Scitex Corporation Ltd 11AFh Pro-Log Corporation / Avid Technology Corp. 11B0h V3 Semiconductor Inc. (see #00852) 11B1h Apricot Computers 11B2h Eastman Kodak 11B3h Barr Systems Inc. 11B4h Leitch Technology International 11B5h Radstone Technology Plc 11B6h United Video Corp 11B7h Motorola 11B8h Xpoint Technologies Inc 11B9h Pathlight Technology Inc. (see #00853) 11BAh Videotron Corp 11BBh Pyramid Technology 11BCh Network Peripherals Inc 11BDh Pinnacle Systems Inc. 11BEh International Microcircuits Inc 11BFh Astrodesign, Inc. 11C3h NEC Corporation 11C4h Document Technologies Ind. 11C5h Shiva Corporatin 11C6h Dainippon Screen Mfg. Co., Ltd. 11C7h D.C.M. Data Systems 11C8h Dolphin Interconnect Solutions (see #00854) 11C9h MAGMA 11CAh LSI Systems Inc 11CBh Specialix International, Ltd. (see #00855) 11CCh Michels & Kleberhoff Computer GmbH 11CDh HAL Computer Systems Inc. 11CEh Netaccess 11D0h Lockheed Martin Federal Systems-Manassas 11D2h Intercom, Inc. 11D4h Analog Devices 11D5h Ikon Corp. 11D9h TEC Corp. 11DAh Novell 11DBh Sega Enterprises, Ltd. 11DEh Zoran Corporation 11DFh New Wave PDG 11E0h ??? 11E1h GEC Plessey Semi Inc. 11E2h Samsung Information Systems Americ 11E3h Quicklogic Corporation 11E4h Second Wave Inc. 11E5h IIX Consulting 11E6h Mitsui-Zosen System Research 11E7h ??? 11E8h Digital Processing Systems Inc. 11E9h ??? 11EAh Elsag Bailey 11EBh Formation Inc. 11ECh Coreco Inc. 11EDh Mediamatics 11EEh Dome Imaging Systems Inc. 11EFh Nicolet Technologies B.V. 11F0h Compu-Shack GmbH 11F1h Symbios Logic Inc. 11F2h Picture Tel Japan K.K. 11F3h Keithley Metrabyte 11F4h Kinetic Systems Corporation 11F5h Computing Devices International 11F6h Powermatic Data Systems Ltd. 11F6h Compex USA, Inc. (see #00856) 11F7h Scientific Atlanta 11F8h PMC-Sierra Inc. (see #00857) 11F9h I-Cube, Inc. 11FEh RP ??? (see #00858) 1201h Vista Controls Corp. 1203h Bayer Corp., AGFA division 1204h Lattice Semiconductor Corp. 1205h Array Corp. 1206h Amdahl Corp. 120Eh Cyclades (see #00859) 1216h PURUP Eskofot A/S 1217h O2Micro, Inc. 121Ah 3DFX Interactive, Inc. 121Bh Advanced Telecomm Modules 1220h Ariel Corporation (see #00860) 1221h Contec Co., Ltd. 1222h Ancor Communications, Inc. 1223h Heurikon/Computer Products 1224h Interactive Images 1225h Power I/O, Inc. 1226h ??? 1227h Tech-Source 1228h Norsk Elektro Optikk A/S 1229h Data Kinesis Inc. 122Ah Integrated Telecom 122Bh LG Industrial Systems Co. Ltd. 122Ch Sican GmbH 122Dh Aztech Systems Ltd 122Eh Xyratex 122Fh Andrew Corporation 1230h Fishcamp Engineering 1231h Woodward McCoach, Inc. 1232h GPT Limited 1233h Bus-Tech, Inc. 1234h Technical Corp. 1235h Risq Modular Systems, Inc. / Smart Modular Technologies, Inc. 1236h Sigma Designs Corporation 1237h Alta Technology Corporation 1238h Adtran 1239h The 3DO Company 123Ah Visicom Laboratories, Inc. 123Bh Seeq Technology, Inc. 123Ch Century Systems, Inc. 123Dh Engineering Design Team, Inc. 123Eh Sumutech, Inc. 123Fh C-Cube Microsystems 1240h Marathon Technologies Corp. 1241h DSC Communications 1242h (unknown vendor) 1243h Delphax 1244h AVM Audiovisuelles Mktg & Computer GmbH 1245h A.P.D., S.A. 1246h Dipix Technologies, Inc. 1247h Xylon Research, Inc. 1248h Central Data Corporation 1249h Samsung Electronics Co., Ltd. 124Ah AEG Electrocom GmbH 124Bh SBS/Greenspring Modular I/O 124Ch Solitron Technologies, Inc. 124Dh Stallion Technologies 124Eh Cylink 124Fh Infortrend Technology, Inc. 1250h Hitachi Microcomputer System, Ltd. 1251h VLSI Solution Oy 1252h ??? 1253h Guzik Technical Enterprises 1254h Linear Systems Ltd. 1255h Optibase Ltd. 1256h Perceptive Solutions, Inc. 1257h Vertex Networks, Inc. 1258h Gilbarco, Inc. 1259h Allied telesyn International 125Ah ABB Power Systems 125Bh Asix Electronics Corporation 125Ch Aurora Technologies, Inc. 125Dh ESS Technology 125Eh SpecialVideo Engineering SRL 125Fh Concurrent Technologies, Inc. 1260h Harris Semiconductor (see #00861) 1261h Matsushita-Kotobuki Electronics Industries 1262h ES Computer Company, Ltd. 1263h Sonic Solutions 1264h Aval Nagasaki Corporation 1265h Casio Computer Co., Ltd. 1266h Microdyne Corporation 1267h S.A. Telecommunications 1268h Tektronix 1269h Thomson-CSF/TTM 126Ah Lexmark International, Inc. 126Bh Adax, Inc. 126Ch Northern Telecom 126Dh Splash Technology, Inc. 126Eh Sumitomo Metal Industries, Ltd. 126Fh Silicon Motion, Inc. 1270h Olympus Optical Co., Ltd. 1271h GW Instruments 1272h Telematics International 1273h Hughes Network Systems 1274h Ensoniq (see #00862) 1275h Network Appliance Corporation 1276h Switched Network Tecnologies, Inc. 1277h Comstream 1278h Transtech Parallel Systems Ltd. 1279h Transmeta Corporation 127Ah Rockwell Semiconductor Systems 127Bh Pixera Corporation 127Ch Crosspoint Solutions, Inc. 127Dh Vela Research 127Eh Winnov, L.P. 127Fh Fujifilm 1280h Photoscript Group Ltd. 1281h Yokogawa Electric Corporation 1282h Davicom Semiconductor, Inc. 1283h Integrated Technology Express, Inc. 1284h Sahara Networks, Inc. 1285h Platform Technologies, Inc. 1286h Mazet GmbH 1287h M-Pact, Inc. / Luxsonor, Inc. 1288h Timestep Corporation 1289h AVC Technology, Inc. 128Ah Asante Technologies, Inc. 128Bh Transwitch Corporation 128Ch Retix Corporation / Sonoma Systems, Inc. 128Dh G2 Networks, Inc. 128Ch Retix Corp 128Dh ??? 128Eh Samho Multi Tech Ltd. / Hoon Tech Co., Ltd. 128Fh Tateno Dennou, Inc. 1290h Sord Computer Corporation 1291h NCS Computer Italia 1292h Tritech Microelectronics, Inc. 1293h Media Reality Technology 1294h Rhetorex, Inc. 1295h Imagenation Corporation 1296h Kofax Image Products 1297h Holco Ent Co, Ltd / Shuttle Computer 1298h Spellcaster Telecommunications Inc. 1299h Knowledge Technology Lab. 129Ah VMetro, Inc. 129Bh Image Access 129Ch Jaycor / Xantel Corporation 129Dh Compcore Multimedia, Inc. 129Eh Victor Company of Japan, Ltd. 129Fh OEC Medical Systems, Inc. 12A0h Allen-Bradley Company 12A1h Simpact Associates, Inc. 12A2h Newgen Systems Corporation 12A3h Lucent Technologies 12A4h NTT Electronics Technology Company 12A5h Vision Dynamics Ltd. 12A6h Scalable Networks, Inc. 12A7h AMO GmbH 12A8h News Datacom 12A9h Xiotech Corporation 12AAh SDL Communications, Inc. 12ABh Yuan Yuan Enterprise Co., Ltd. 12ACh MeasureX Corporation 12ADh Multidata GmbH 12AEh Alteon Networks, inc. 12AFh TDK USA Corporation 12B0h Jorge Scientific Corporation 12B1h GammaLink 12B2h General Signal Networks 12B3h Inter-Face Co. Ltd. 12B4h FutureTel Inc. 12B5h Granite Systems Inc. 12B6h Natural Microsystems 12B7h Acumen 12B8h Korg 12B9h US Robotics / 3com Corporation 12BAh PMC Sierra 12BBh Nippon Unisoft Corporation 12BCh Array Microsystems 12BDh Computerm Corp. 12BEh Anchor Chips 12BFh Fujifilm Microdevices 12C0h InfiMed 12C1h GMM Research Corp. 12C2h Mentec Limited 12C3h Holtek Microelectronics Inc. 12C4h Connect Tech Inc. 12C5h Picture Elements, Inc. (see #00863) 12C6h Mitani Corporation 12C7h Dialogic Corporation 12C8h G Force Co, Ltd. 12C9h Gigi Operations 12CAh Integrated Computing Engines 12CBh Antex Electronics Corporation 12CCh Pluto Technologies International 12CDh Aims Lab 12CEh Netspeed, Inc. 12CFh Prophet Systems, Inc. 12D0h GDE Systems, Inc. 12D1h Psitech 12D2h NVIDIA / SGS Thomson 12D3h Vingmed Sound A/S 12D4h DGM&S 12D5h Equator Technologies 12D6h Analogic Corporation 12D7h Biotronic SRL 12D8h Pericom Semiconductor 12D9h Aculab PLC 12DAh True Time 12DBh Annapolis Micro Systems, Inc. 12DCh Symicron Computer Communication Ltd. 12DDh Management Graphics 12DEh Rainbow Technologies 12DFh SBS Technologies Inc. 12E0h Chase Research 12E1h Nintendo Co, Ltd. 12E2h Datum Inc, Bancomm-Timing Division 12E3h Imation Corp - Medical Imaging Systems 12E4h Brooktrout Technology Inc. 12E5h Apex Inc / XCD Inc. 12E6h Cirel Systems 12E7h Sunsgroup Corporation / Sebring Systems 12E8h CRISC Corporation 12E9h GE Spacenet 12EAh Zuken / Real Vision, Inc. 12EBh Aureal Semiconductor 12ECh 3A International, Inc. 12EDh Optivision Inc. 12EEh Orange Micro 12EFh Vienna Systems 12F0h Pentek 12F1h Sorenson Vision Inc. 12F2h GammaGraphx, Inc. 12F3h XING, Inc. 12F4h Megatel 12F5h Forks 12F6h Dawson France 12F7h Cognex 12F8h Electronic-Design GmbH 12F9h FourFold Technologies 12FBh Spectrum Signal Processing 12FCh Capital Equipment Corp. 12FDh i2S 12FEh ESD Electronic System Design GmbH 12FFh Lexicon 1300h Harman International Industries, Inc. 1302h Computer Sciences Corp. 1303h Innovative Integration 1304h Juniper Networks 1305h NetPhone, Inc. 1306h Duet Technologies 1307h Computer Boards 1308h Jato Technologies, Inc. 1309h AB Semicon, Ltd. 130Ah Mitsubishi Electric MicroComputer 130Bh Colorgraphic Communications Corp. 130Ch AMBEX Technologies, Inc. 130Dh Accelerix, Inc. 130Eh Yamatake-Honeywell Co., Ltd. 130Fh Advanet, Inc. 1310h GESPAC 1311h VideoServer, Inc. 1312h Acuity Imaging, Inc. 1313h Yaskawa Electric Co. 1316h Teradyne, Inc. 1317h Bridgecom, Inc. 1318h Packet Engines, Inc. 1319h ForteMedia, Inc. 131Ah Finisar Corp. 131Ch Nippon Electro-Sensory Devices Corp. 131Dh Sysmic, Inc. 131Eh Xinex Networks, Inc. 131Fh SIIG, Inc. 1320h Crypto AG 1321h Arcobel Graphics BV 1322h MTT Co., Ltd. 1323h DOME, Inc. 1324h Sphere Communications 1325h Salix Technologies, Inc. 1326h SeaChange International 1327h Voss Scientific 1328h Quadrant International 1329h Productivity Enhancement 132Ah Microcom, Inc. 132Bh BroadBand Technologies 132Ch Micrel, Inc. 132Dh Integrated Silicon Solution, Inc. 1330h MMC Networks 1331h RadiSys Corporation 1332h Micro Memory 1333h ??? 1334h Redcreek Communications, Inc. 1335h Videomail, Inc. 1336h ??? 1337h Third Planet Publishing 1338h BT Electronics 133Ah VTEL Corp. 133Bh Softcom Microsystems 133Ch Holontech Corp. 133Dh S S Technologies 133Eh Virtual Computer Corp. 133Fh SCM Microsystems 1340h Atalla Corp. 1341h Kyoto Microcomputer Co. 1342h Promax Systems Inc. 1343h Phylon Communications, Inc. 1344h Crucial Technology 1345h Arescom, Inc. 1346h ??? 1347h Odetics 1348h ??? 1349h Sumitomo Electric Industries, Ltd. 134Ah DTC Technology Corp. 134Bh Ark Research Corp. 134Ch Chori Joho System Co., Ltd. 134Dh Pctel, Inc. 134Eh CSTI 134Fh Algo System Co., Ltd. 1350h Systec Co., Ltd. 1351h Sonix, Inc. 1353h Dassault A.T. 1354h dWave System, Inc. 1355h Kratos Analytical, Ltd. 1356h The Logical Co. 1359h Prisa Networks 135Ah Brain Boxes 135Bh Giganet, Inc. 135Ch Quatech, Inc. 135Dh ABB Network Partner AB 135Eh Sealevel Systems, Inc. 135Fh I-Data International A-S 1360h Meinberg Funkuhren 1361h Soliton Systems K.K. 1362h Fujifacom Corp. 1363h Phoenix Technology, Ltd. 1364h ATM Communications, Inc. 1365h Hypercope Corp. 1366h Teijin Seiki Co., Ltd. 1367h Hitachi Zosen Corp. 1368h Skyware Corp. 1369h Digigram 136Ah High Soft Tech 136Bh Kawasaki Steel Corp. 136Ch Adtek System Science Co., Ltd. 136Dh Gigalabs, Ltd. 136Fh Applied Magic, Inc. 1370h ATL Products 1371h CNET Technology, Inc. 1373h Silicon Vision, Inc. 1374h Silicom, Ltd. 1375h Argosystems, Inc. 1376h LMC 1377h Electronic Equipment Production 1378h Telemann Co., Ltd. 1379h Asahi Kasei Microsystems Co., Ltd. 137Ah Mark Of The Unicorn, Inc. 137Bh PPT Vision 137Ch Iwatsu Electric Co., Ltd. 137Dh Dynachip Corp. 137Eh Patriot Scientific Corp. 137Fh Japan Satellite Systems, Inc. 1380h Sanritz Automation Co., Ltd. 1381h Brains Co., Ltd. 1382h Marian - Electronic & Software 1383h Controlnet, Inc. 1384h Reality Simulation Systems, Inc. 1385h Netgear 1386h Video Domain Technologies 1387h Systran Corp. 1388h Hitachi Information Technology Co., Ltd. 1389h Applicom International 138Ah Fusion Micromedia Corp. 138Bh Tokimec, Inc. 138Ch Silicon Reality 138Dh Future Techno Designs Pte., Ltd. 138Eh Basler GmbH 138Fh Patapsco Designs, Inc. 1390h Concept Development, Inc. 1391h Development Concepts, Inc. 1392h Medialight, Inc. 1394h Level One Communications 1395h Ambicom, Inc. 1396h Cipher Systems, Inc. 1397h Cologne Chip Designs GmbH 1398h Clarion Co., Ltd. 1399h Rios Systems Co., Ltd. 139Ah Alacritech, Inc. 139Bh Mediasonic Multimedia Systems, Ltd. 139Ch Quantum 3D, Inc. 139Dh EPL, Ltd. 139Eh Media4 139Fh Aethra S.R.L. 13A0h Crystal Group, Inc. 13A1h Kawasaki Heavy Industries, Ltd. 13A2h Ositech Communications, Inc. 13A3h HI-FN 13A4h Rascom, Inc. 13A5h Audio Digital Imaging, Inc. 13A6h Videonics, Inc. 13A7h Teles AG 13A8h Exar Corp. 13A9h Ultrasound Group 13AAh Broadband Networks, Inc. 13ABh Arcom Control Systems, Ltd. 13ACh Motion Media Technology, Ltd. 13ADh Nexus, Inc. 13AEh ALD Technology, Ltd. 13AFh T.Sqware 13B0h Maxspeed Corp. 13B1h Tamura Corp. 13B2h Techno Chips Co., Ltd. 13B3h Lanart Corp. 13B4h Wellbean Co, Inc. 13B5h ARM 13B6h DLoG GmbH 13B7h LOGIC Devices, Inc. 13B8h Nokia Telecommunications Oy 13B9h Elecom Co., Ltd. 13BAh Oxford Instruments 13BBh Sanyo Technosound Co., Ltd. 13BCh Bitran Corp. 13BDh Sharp Corp. 13BEh Miroku Jyoho Service Co., Ltd. 13BFh Sharewave., Inc. 13C0h Microgate Corp. 13C1h 3ware Inc. 13C2h Technotrend Systemtechnik GmbH 13C3h Janz Computer AG 13C4h Phase Metrics 13C5h Alphi Technology Corp. 13C6h Condor Engineering, Inc. 13C7h Blue Chip Technology, Ltd. 13C8h Apptech, Inc. 13C9h Eaton Corp. 13CAh IOMEGA Corp. 13CBh Yano Electric Co., Ltd. 13CCh Metheus Corp. 13CDh Compatible Systems Corp. 13CEh Cocom A/S 13CFh Studio Audio & Video, Ltd. 13D0h Techsan Electronics Co., Ltd. 13D1h Abocom Systems, Inc. 13D2h Shark Multimedia, Inc. 13D3h IMC Networks 13D4h Graphics Microsystems, Inc. 13D5h Media 100, Inc. 13D6h K.I. Technology Co., Inc. 13D7h Toshiba Engineering Corp. 13D8h Phobos Corp. 13D9h Apex PC Solutions, Inc. 13DAh Intresource Systems Pte., Ltd. 13DBh Janich & Klass Computertechnik GmbH 13DCh Netboost Corp. 13DDh Multimedia Bundle, Inc. 13DEh ABB Robotics Products AB 13DFh E-Tech, Inc. 13E0h GVC Corp. 13E1h Silicom Multimedia Systems, Inc. 13E2h Dynamics Research Corp. 13E3h Nest, Inc. 13E4h Calculex, Inc. 13E5h Telesoft Design, Ltd. 13E6h Argosy Research, Inc. 13E7h NAC, Inc. 13E8h Chip Express Corp. 13E9h Intraserver Technology, Inc. 13EAh Dallas Semiconductor 13EBh Hauppauge Computer Works, Inc. 13ECh Zydacron, Inc. 13EDh Raytheion E-Systems 13EEh Hayes Microcomputer Products, Inc. 13F0h Sundance Technology, Inc. 13F1h Oce' - Technologies B.V. 13F2h Ford Microelectronics, Inc. 13F3h McData Corp. 13F4h Troika Design, Inc. 13F5h Kansai Electric Co., Ltd. 13F6h C-Media Electronics, Inc. 13F7h Wildfire Communications 13F8h Ad Lib Multimedia, Inc. 13F9h NTT Advanced Technology Corp. 13FAh Pentland Systems, Ltd. 13FBh Aydin Corp. 13FCh Computer Peripherals International 13FDh Micro Science, Inc. 13FEh Advantech Co., Ltd. 13FFh Silicon Spice, Inc. 1400h ARTX, Inc. 1401h CR-Systems A/S 1402h Meilhaus Electronic GmbH 1403h Ascor, Inc. 1404h Fundamental Software, Inc. 1405h Excalibur Systems, Inc. 1406h Oce' Printing Systems GmbH 1407h Lava Computer Mfg., Inc. 1408h Aloka Co., Ltd. 1409h Timedia Technology Co., Ltd. 140Ah DSP Research, Inc. 140Bh Ramix, Inc. 140Ch Elmic Systems, Inc. 140Dh Matsushita Electrics Works, Ltd. 140Eh Goepel Electronic GmbH 140Fh Salient Systems Corp. 1410h Midas Lab, Inc. 1411h Ikos Systems, Inc. 1412h IC Ensemble, Inc. 1413h Addonics 1414h Microsoft 1415h Oxford Semiconductor, Ltd. 1416h Multiwave Innovation Pte, Ltd. 1417h Convergenet Technologies, Inc. 1418h Kyushu Electronics Systems, Inc. 1419h Excel Switching Corp. 141Ah Apache Micro Peripherals, Inc. 141Bh Zoom Telephonics, Inc. 141Dh Digitan Systems, Inc. 141Eh Fanuc, Ltd. 141Fh Visiontech, Ltd. 1420h Psion Dacom PLC 1421h ADS Technologies, Inc. 1422h Ygrec Systems Co., Ltd. 1423h Custom Technology Corp. 1424h Vidoeserver Connections 1425h ASIC Designers, Inc. 1426h Storage Technology Corp. 1427h Better On-line Solutions 1428h EDEC Co., Ltd. 1429h UNEX Technology Corp. 142Ah Kingmax Technology, Inc. 142Bh RadioLAN 142Ch Minton Optic Industry Co., Ltd. 142Dh Pix Stream, Inc. 142Eh Vitec Multimedia 142Fh Radicom Research, Inc. 1430h ITT Aerospace/Communications Division 1431h Gilat Satellite Networks 1432h Edimax Computer Co. 1433h Eltec Elektronik GmbH 1435h Real Time Devices US, Inc. 1436h CIS Technology, Inc. 1437h Nissin Co Inc 1438h Atmel-Dream 1439h Outsource Engineering & Mfg. Inc 143Ah Stargate Solutions Inc 143Bh Canon Research Center, America 143Ch Amlogic Inc 143Dh Tamarack Microelectronics Inc 143Fh Lightwell Co Ltd - Zax Division 1440h Algol Corp 1441h AGIE LTD 1442h Phoenix Contact Co GmbH 1443h Unibrain S.A. 1444h TRW 1445h Logical do Ltd 1447h AIM GmbH 1448h Alesis Studio 1449h TUT Systems Inc 144Ah Adlink Technology 144Bh Loronix Information Systems Inc 144Ch Catalina Research Inc 144Eh Olitec 144Fh Askey Computer Corp 1450h Nexus Systems Inc 1451h SP3D Chip Design GmbH 1453h Mycom Inc 1454h Altiga Networks 1455h Logic Plus Plus Inc 1456h Advanced Hardware 1457h Nuera Communications Inc 1458h Giga-Byte Technology 1459h Dooin Electronics 145Ah Escalate Networks Inc 145Bh Praim SRL 145Ch Cryptek 145Dh Gallant Computer Inc 145Eh Aashima Technology B.V. 145Fh Baldor Electric Company 1460h Dynarc Inc 1461h Avermedia Technologies Inc 1462h Micro-Star International Co Ltd 1463h Fast Corp 1464h Interactive Circuits & Systems Ltd 1465h GN Nettest Telecom Div. 1466h Designpro Inc 1467h Digicom SPA 1468h Ambit microsystem Corp 1469h Cleveland Motion Controls 146Ah IFR Ltd 146Bh Parascan Technologies Ltd 146Ch Ruby Tech Corp 146Dh Tachyon Inc 146Eh Williams Electronic Games Inc 146Fh Multi Dimensional Consulting Inc 1470h Bay Networks 1471h Integrated Telecom Express Inc 1472h Daikin Indistries Ltd 1473h Zapex Technologies Inc 1474h Doug Carson & Associates 1475h Picazo Communications 1476h Mortara Instrument Inc 1477h Net Insight 1478h Diatrend Corp 1479h Toray Industries Inc 147Ah Formosa Industrial Computing 147Bh Abit Computer Corp 147Ch Aware Inc 147Dh Interworks Computer Products 147Eh Matsushita Graphic Communication Systems Inc 147Fh Nihon Unisys Ltd 1480h SCII Telecom 1481h Biopac Systems Inc 1482h ISYTEC 1483h Labway Corp 1668h Action Tec Electronics, Inc. 1A08h Sierra Semiconductor 1B13h Jaton Corp. 1C1Ch Symphony (see #00864) 1D44h DPT 1DE1h TekRAM (see #00865) 21C3h 21st Century Computer Corp. 2348h Racore 270Bh Xantel Corp. 270Fh Chaintech Computer Co., Ltd. 3000h Hansol Electronics Inc. 3142h Post Impression Systems 3388h Hint Corp. 3D3Dh 3DLabs (see #00866) 4005h Avance Logic, Inc. (see #00867) 4444h Internext Compression, Inc. 4468h BRIDGEPORT MACHINES 4594h Cogetec Informatique Inc. 4680h UMAX Computer Corp. 4843h Hercules Computer Technology, Inc. 4942h ??? 4943h Growth Networks 4978h Axil Computer, Inc. 4A14h NetVin 4B10h Buslogic Inc. (see #00869) 4C48h Lung Hwa Electronics 4D51h Mediaq Inc 4DDCh ILC data Device Corp. 5053h Voyetra Technologies 5143h Qualcomm, Inc. 5333h S3 (see also #00870) 5455h Technische Universitt Berlin 5519h Cnet Technologies, Inc. 5555h Genroco Inc 5700h Netpower 6356h UltraStor 6374h c't Magazin fuer Computertechnik (see #00871) 6409h Logitec Corp 6666h Decision Computer International Co. 7604h O.N. Electric Co Ltd 8008h Quancom Electronic GmbH (see #00872) 8086h Intel (see also #00873) 8800h Trigem Computer (see #00874) 8866h T-Square Design Inc 8888h Silicon Magic 8E0Eh Computone Corporation 8E2Eh KTI 9004h Adaptec (see #00875) 9005h Adaptec 907Fh Atronics (see #00876) 9412h Holtek A200h NEC Corp. (see #00754) A259h Hewlett Packard (see #00757) A25Bh Hewlett Packard GmbH PL24-MKT (see #00757) A304h Sony A727h 3com Corp. (see #00796) AA42h Scitex Digital Video B1B3h Shiva Europe, Ltd. C001h TSI Telsys C0A9h Micron/Crucial Technology C0DEh Motorola (see #00768) C0FEh Motion Engineering, Inc. CAFEh Chrysalis-ITS D4D4h DY4 Systems Inc. E159h Tiger Jet Network Inc. E000h Winbond E159h Tiger Jet Network Inc. ECC0h Echo Corp. EDD8h Ark Logic Inc (see #00877) FEDAh Epigram Inc Note: this list, as well as the following per-vendor tables, tends to be rather out-of-date. The current version of the listing can be found in PCICFG.DAT, part of the PCICFG program distributed in RBPCIxxx.ZIP (available at http://www.pobox.com/~ralf/files.html). SeeAlso: #00878 (Table 00733) Values for Compaq PCI device code: 0001h EISA Bridge 0002h ISA Bridge 1000h Triflex/PCI CPU Bridge 2000h Triflex/PCI CPU Bridge 3032h QVision 3033h QVision 1280/p 3034h QVision 1280 4000h Triflex/PCI CPU Bridge AE32h Netelligent 10/100 TX AE34h Netelligent 10 T AE35h Integrated NetFlex 3/P AE40h Dual-port Netelligent 10/100 TX AE43h ProLiant Integrated Netelligent 10/100 B011h Dual-port Netelligent 10/100 TX F130h ThunderLAN F150h NetFlex 3/P with BNC SeeAlso: #00732 (Table 00734) Values for Symbios Logic (formerly NCR) PCI device code: 0001h PCI revision ID: 00-0Fh 53C810 (fast SCSI) 10-1Fh 53C810A (fast SCSI) 20-2Fh 53C810ALV (fast SCSI) 0002h 53C820 (fast wide SCSI) 0003h PCI revision ID: 00-0Fh 53C825 (fast wide SCSI) 10-1Fh 53C825A (Ultra wide SCSI) 0004h 53C815 (fast SCSI) 0005h 53C810AP (fast SCSI) 0006h PCI revision ID: 00-0Fh 53C860 (Ultra SCSI) 10-1Fh 53C860LV (Ultra SCSI) 000Fh 53C875 (Ultra wide SCSI) 1000h 63c815 Fast-SCSI SeeAlso: #00732 (Table 00735) Values for ATI PCI device code: 4158h 68800AX (Mach32) 4354h 215CT222 4358h 210888CX 4758h 210888GX (Mach64) 5654h 215VT222 Video Expression SeeAlso: #00732 (Table 00736) Values for ULSI Systems PCI device code: 0201h US201 Graphics Controller SeeAlso: #00732 (Table 00737) Values for VLSI Technologies PCI device code: 0005h 82C592 CPU Bridge 0006h 82C593 ISA Bridge 0007h 82C594 Wildcat System Ctrlr 0008h VL82C597 Wildcat ISA Bridge 0009h 82C597 000Ch 82C541 000Dh 82C543 0101h 82C532 0102h 82C534 0104h 82C535 0105h 82C147 0200h 82C975 RISC GUI Accelerator 0280h 82C925 RISC GUI Accelerator SeeAlso: #00732 (Table 00738) Values for Avance Logic, Inc. (Avance Logics) PCI device code: 2301h ALG2301 GUI accelerator 2302h ALG2302 GUI accelerator SeeAlso: #00732,INT 10/AX=4F70h (Table 00739) Values for National Semiconductor PCI device code: 0001h DP83810 Ethernet 0002h PC87415 IDE DMA-Master Mode controller (see #00922) D001h NS87410 EIDE controller (see #00921) SeeAlso: #00732,#00773 (Table 00740) Values for Tseng Labs PCI device code: 3202h ET4000/W32p-2 3205h ET4000/W32p-B 3206h ET4000/W32p-C 3207h ET4000/W32p-D 3208h ET6000 SeeAlso: #00732 (Table 00741) Values for Weitek PCI device code: 9000h Power9000??? 9001h Power9001 9100h Power9100 SeeAlso: #00732 (Table 00742) Values for DEC PCI device code: 0001h DC21050 DEC BRD PCI-PCI bridge 0002h DC21040 Tulip 0004h DecChip 21030 0009h DC21140 Tulip Fast (see #00923) 000Ah 21230 Video Codec 000Fh DEFPA FDDI 0014h DC21041 Tulip Plus (see #00923) 0016h DGLPB ATM 0019h DC21143 PCI/Cardbus Ethernet 0021h 21052 PCI-PCI Bridge (see #00924) 0022h 21150 PCI-PCI Bridge 0024h 21152 PCI-PCI Bridge 0025h 21153 PCI-PCI Bridge 0026h 21154 PCI-PCI Bridge 0045h 21553 PCI-PCI Bridge 0046h 21554 PCI-PCI Bridge 1050h??? 21340 Managed Port Switch SeeAlso: #00732 (Table 00743) Values for Cirrus Logic PCI device code: 0038h CL-GD7548 Video Controller 004Ch CL-GD7556 64-bit Video/Graphics LCD/CRT Ctrlr 00A0h Cirrus 5430 00A4h Cirrus 5434-4 00A8h Cirrus 5434-8 00ACh Cirrus 5436 00B8h Cirrus GD5446 00BCh CL-GD5480 64-bit SGRAM GUI accelerator 1100h Cirrus 6729 PCMCIA Controller 1110h Cirrus 6832 PCMCIA/CardBus Ctrlr 1200h Cirrus 7542 1202h Cirrus 7543 1204h Cirrus 7541 6001h CS4610/4611 CrystalClear SoundFusion Audio Accelerator SeeAlso: #00732 (Table 00744) Values for IBM PCI device code: 0002h MCA Bridge 0005h Alta Lite CPU Bridge 0007h Alta MP CPU Bridge 000Ah ISA Bridge 0017h CPU Bridge 0018h Auto LANStreamer 001Bh GXT-150P Graphics Adapter 001Dh 82G2675 0020h MCA Bridge 0022h PCI-PCI Bridge 002Eh ??? RAID SCSI 0036h Miami/PCI 32-bit LocalBus Bridge 0047h ??? 0048h ??? 004Ah ??? 004Bh ??? 004Ch ??? 004Dh ??? 004Eh ??? 004Fh ??? 0050h ??? 0051h ??? 0052h ??? 0053h ??? 25 MBit ATM controller 0055h ??? 0059h ??? 005Ah ??? 005Bh ??? SeeAlso: #00732 (Table 00745) Values for Western Digital PCI device code: 0193h WD33C193A 8-bit SCSI 0196h SCSI Bridge 0197h WD33C197A 16-bit SCSI 0296h WD33C296A 16-bit SCSI 3193h WD7193 Fast SCSI-II 3197h WD7197 Fast-Wide SCSI-II 3296h WD7197 4296h WD33C296 Wide Fast-20 Bridge C24Ah 90C? SeeAlso: #00732 (Table 00746) Values for AMI PCI device code: 9010h MegaRAID 9030h ??? IDE Controller 9031h ??? IDE Controller 9032h ??? IDE/SCSI Controller 9033h ??? SCSI Controller 9040h ??? Multimedia card SeeAlso: #00732 (Table 00747) Values for Advanced Micro Devices (AMD) PCI device code: 2000h Am79C970 (Lance) Am79C970A (PCnet-PCI II, PCI revision ID is 1xh) Am79C971 (PCnet-FAST, PCI revision ID is 2xh) 2020h Am53c974 SCSI (see #00925) 2040h Am79C974 Ethernet/SCSI SeeAlso: #00732 (Table 00748) Values for Trident PCI device code: 9320h ??? 32-bit GUI accelerator 9350h ??? 32-bit GUI accelerator 9360h ??? Flat-Panel controller 9420h Trident 9420 9440h Trident 9440 9460h Trident 9460 9660h Trident 9660 9682h ??? Multimedia accelerator SeeAlso: #00732 (Table 00749) Values for LSI Logic PCI device code: 0000h Hydra (Pentium chipset) 0010h Aspen (486 chipset) SeeAlso: #00732 (Table 00750) Values for Matrox PCI device code: 0518h MGA-II (Ultima) 0519h Millenium (2064W) 0D10h MGA-I (Impression) SeeAlso: #00732 (Table 00751) Values for Chips & Technologies PCI device code: 00B8h 64310 GUI Accelerator 00D0h 65545 Flat Panel/CRT VGA 00D8h F65545 00DCh F65548 00E0h 65550 Flat Panel/CRT GUI Accelerator 00E4h 65554 display 00E5h 65555 HiQVPro LCD/CRT GUI Controller 00F4h 68554 HiQVision LCD/CRT GUI Controller SeeAlso: #00732 (Table 00752) Values for Toshiba America PCI device code: 0009h r4x00 Bridge SeeAlso: #00732 (Table 00753) Values for Miro Computer Products AG PCI device code: 5601h 36050 5607h video in/out w/ MPEG SeeAlso: #00732 (Table 00754) Values for NEC Corporation PCI device code: 0001h PCI-to-486 Bridge 0002h PCI-to-VL98 Bridge 0003h ATM LAN controller 0004h r4000PCI Bridge 0005h PCI-to-486 Bridge 0006h GUI Accelerator 0007h PCI-to-UXbus Bridge 0008h GUI Accelerator 0009h PC-98 Graphics Controller SeeAlso: #00732 (Table 00755) Values for Future Domain PCI device code: 0000h TMC-36C70 / TMC-18C30 (fast SCSI) SeeAlso: #00732 (Table 00756) Values for Silicon Integrated System (SIS) PCI device code: 0001h SiS6201 0002h SiS6202 0006h SI 85C501/2 0008h SI 85C503/5513 0205h SiS6205 0406h SiS501 0496h SiS496 0596h Pentium chipset 0601h SiS601 3602h IDE controller 5401h 486 chipset 5511h SiS5511 Pentium chipset 5513h SiS5513 EIDE controller 5581h Pentium chipset 5582h ISA Bridge 5596h Pentium chipset 6204h video decoder/MPEG 6205h PCI VGA controller SeeAlso: #00732 (Table 00757) Values for Hewlett-Packard PCI device code: 1030h J2585A DeskDirect 10/100 PCI NIC 1040h J2973A DeskDirect 10BaseT PCI NIC 1041h J2585B DeskDirect 10/100 PCI NIC 1042h J2970A DeskDirect 10BaseT/2 PCI NIC 2910h E2910A PCI-bus exerciser 2925h E2925A PCI-bus exerciser SeeAlso: #00732 (Table 00758) Values for PC Technology PCI device code: 1000h RZ1000 1001h RZ1001 SeeAlso: #00732 (Table 00759) Values for Distributed Processing Technology (DPT) PCI device code: A400h 2124A/9X EATA SmartCache/RAID SCSI SeeAlso: #00732 (Table 00760) Values for OPTi PCI device code: A0F8h 82C750 (Vendetta) USB controller C557h 82C557 C558h 82C558 C567h 82C750 (Vendetta, device 0) C568h 82C750 (Vendetta, device 1) C621h 82C621 IDE controller / 82C750 Vendetta IDE controller C822h 82C822 C824h 82C824 FireFox PC-Card controller C825h 82C825 FireBridge II C861h 82C861/82C871 FireLink/FireBlast PCI-to-USB Bridge (see #00965) D568h 82C750 Vendetta IDE controller D768h 82C750 Vendetta IDE controller (ultra DMA) SeeAlso: #00732 (Table 00761) Values for SGS Thomson Microelectronics PCI device code: 0008h SGS 2000 0009h SGS 1764 SeeAlso: #00732 (Table 00762) Values for BusLogic PCI device code: 0140h MultiMaster NC 1040h MultiMaster 8130h FlashPoint SeeAlso: #00732 (Table 00763) Values for Texas Instruments PCI device code: 0500h 100 Mbit LAN controller 0508h tms380c2x 1000h TI PCI Eagle i/f 3D04h TVP4010 3D Graphics Processor !!!ti\slas155.pdf p.26 A001h TDC1570 64-bit ATM sar A100h TDC1561 32-bit ATM sar AC10h PCI1050 PCCard controller AC11h PCI1053 PCCard controller AC12h PCI1130 PCCard controller SeeAlso: #00732 (Table 00764) Values for Oak Technology PCI device code: 0107h OTI-0107 (Spitfire) SeeAlso: #00732 (Table 00765) Values for Winbond PCI device code: 0000h ??? Ethernet controller 0001h 83769 0105h 82C105 SeeAlso: #00732 (Table 00766) Values for Hitachi Ltd. PCI device code: 0001h PCI Bridge 0002h PCI-bus controller SeeAlso: #00732 (Table 00767) Values for EFAR Microsystems PCI device code: 0810h 486 Bridge 0922h Pentium/P54C Bridge 0926h ISA Bridge SeeAlso: #00732 (Table 00768) Values for Motorola PCI device code: 0001h MPC105 PowerPC chipset SeeAlso: #00732 (Table 00769) Values for Promise Technology PCI device code: 5300h Promise 5300 SeeAlso: #00732 (Table 00770) Values for Number 9 Computer Company PCI device code: 2309h Imagine 128 2339h Imagine 128-2 SeeAlso: #00732 (Table 00771) Values for United Microelectronics (UMC) PCI device code: 0001h UM82C881 (486 chipset) 0002h UM82C776 (ISA Bridge) 0101h UM8673F 0881h UM8881 (486 chipset) 0886h UM8886F (ISA Bridge) 0891h UM8891A 1001h UM886A (dual IDE controller) 673Ah UM8886BF 8710h UM8710 VGA controller 886Ah UM8886A 8881h UM8881F 8886h UM8886F 8891h UM8891 (Pentium chipset) 9017h UM9017F E881h UM8881 (486 chipset) E886h UM8886N E891h UM8891N SeeAlso: #00732 (Table 00772) Values for 8x8 (X Tech) PCI device code: 0001h AGX-016 0002h IIT3204/3501 MPEG decoder SeeAlso: #00732 (Table 00773) Values for PicoPower PCI device code: 0000h PT80C826 VL Bridge 0001h Vesuvius V1-LS System Controller (see PORT 0024h"V1-LS") Revision ID field: 03h = Rev. AA, 04h = Rev. BB, 05h = Rev. CC 0002h Vesuvius V3-LS ISA Bridge (see #00971,PORT 0024h"V3-LS") 0005h National Semiconductor PC87550 PCI System Controller 8002h Vesuvius V3-LS ISA Bridge (secondary; Rev. BB and higher only) SeeAlso: #00732,#00739 (Table 00774) Values for Mylex Corporation PCI device code: 0001h DAC960P Wide SCSI + RAID SeeAlso: #00732 (Table 00775) Values for Yamaha Corporation PCI device code: 0001h ?? 3D graphics controller 0002h YGV615 RPA3 3D graphics controller SeeAlso: #00732 (Table 00776) Values for NexGen Microsystems PCI device code: 4E78h NexGen 82C501 SeeAlso: #00732 (Table 00777) Values for Q Logic PCI device code: 1020h ISP1020 Fast-Wide SCSI 1022h ISP1022 Fast-Wide SCSI SeeAlso: #00732 (Table 00778) Values for Leadtek Research PCI device code: 0000h LeadTek 805 SeeAlso: #00732 (Table 00779) Values for Interphase PCI device code: 0001h ATM interface 0002h 100 vg amylan controller SeeAlso: #00732 (Table 00780) Values for Data Technology Corporation (DTC) PCI device code: 0802h SL82C105 EIDE Controller SeeAlso: #00732 (Table 00781) Values for Contaq Microsystems PCI device code: 0600h Contaq 82C599 SeeAlso: #00732 (Table 00782) Values for Forex Computer Corporation PCI device code: 0001h FR710 EIDE Controller 0613h ??? Host Bridge SeeAlso: #00732 (Table 00783) Values for Bit3 Computer PCI device code: 0001h Model 617 PCI-VME Bus Adapter SeeAlso: #00732 (Table 00784) Values for Olicom PCI device code: 0001h ??? Ethernet Controller SeeAlso: #00732 (Table 00785) Values for Intergraph Corporation PCI device code: 0020h 3D graphics processor 0021h 3D graphics processor w/texture 0040h 3D graphics frame buffer 0041h 3D graphics frame buffer 0060h proprietary bus bridge 0720h Motion JPEG codec SeeAlso: #00732 (Table 00786) Values for National Instruments PCI device code: C801h PCI-GPIB SeeAlso: #00732 (Table 00787) Values for CMD Technology, Inc. PCI device code: 0640h CMD 640 0642h IDE controller with RAID-1 0646h CMD 646 EIDE 0650h PBC0650A Fast SCSI-II SeeAlso: #00732 (Table 00788) Values for Appian Technology: 0038h ??? EIDE Controller SeeAlso: #00732 (Table 00789) Values for Vision / Quantum Designs Ltd. PCI device code: 0001h QD8500 0002h QD8580 SeeAlso: #00732 (Table 00790) Values for Brooktree Corporation PCI device code: 0350h BT848 TV/PCI with DMA Push 2115h BtV 2115 Mediastream Controller 2125h BtV 2125 Mediastream Controller 8230h Bt8230 ATM Segment/Reassembly Ctrlr (SRC) (see #00981) SeeAlso: #00732 (Table 00791) Values for Sierra Semiconductor PCI device code: 0000h STB 64-bit GUI accelerator SeeAlso: #00732 (Table 00792) Values for ACC Microelectronics PCI device code: 0000h ACC 2056 SeeAlso: #00732 (Table 00793) Values for Symphony Labs PCI device code: 0001h 83769 0103h sl82c103 PCI-IDE Controller 0105h 82C105 bus-master PCI-IDE controller SeeAlso: #00732 (Table 00794) Values for PLX Technology PCI device code: 9036h PCI9036 interface chip 9060h PCI9060xx interface chip SeeAlso: #00732 (Table 00795) Values for Madge Networks PCI device code: 0001h Smart 16/4 Ringnode 1000h Collage 25 ATM adapter 1001h Collage 155 ATM adapter SeeAlso: #00732 (Table 00796) Values for 3com Corporation PCI device code: 5900h 3C590 5950h 3C595TX 5951h 3C595T4 5952h 3C595MII 8811h token ring 9000h 3C900-TPO Fast Etherlink 9001h 3C900-COMBO Fast Etherlink 9050h 3C905-TX Fast Etherlink 10/100 SeeAlso: #00732 (Table 00797) Values for Standard Microsystems Corporation (SMC) PCI device code: 1000h 37C665 floppy disk controller 1001h 37C922 floppy disk controller SeeAlso: #00732 (Table 00798) Values for Acer Labs Inc. PCI device code: 1435h M1435 VL Bridge 1445h ALI M1445 VL bridge + EIDE 1449h ALI M1449 ISA bridge 1451h ALI M1451 Pentium chipset 1461h ALI M1461 P54C chipset 1489h ALI M1489 1511h ALI M1511 1513h ALI M1513 3141h M3141 GUI accelerator VRAM 3143h M3143 GUI accelerator VRAM/DAC 3145h M3145 GUI accelerator VRAM 3147h M3147 GUI accelerator VRAM/DAC 3149h M3149 GUI accelerator VRAM 3151h M3151 GUI accelerator VRAM 5212h M4803 5215h ALI MS4803 EIDE controller 5217h m5217 I/O 5219h m5219 I/O 5235h m5225 I/O SeeAlso: #00732 (Table 00799) Values for Surecom Technology PCI device code: 5240h IDE Controller 5241h PCMCIA Bridge 5242h general-purpose controller 5243h Bus controller 5244h Floppy-disk controller SeeAlso: #00732 (Table 00800) Values for Neomagic Corporation: 0000h graphics controller SeeAlso: #00732 (Table 00801) Values for Advanced System Products PCI device code: 1100h ABP940 revision A??? SCSI 1200h ABP940 revision B??? Fast SCSI-2 1300h Fast-Wide SCSI controller SeeAlso: #00732 (Table 00802) Values for Citicorp TTI PCI device code: 2001h mb86605 Wide SCSI-2 SeeAlso: #00732 (Table 00803) Values for CENR/ECP/EDU PCI device code: 0001h SPSB PMC 0002h SPSB PCI 10DCh ATT 2C15-3 FPGA SeeAlso: #00732 (Table 00804) Values for Evans & Sutherland PCI device code: 0001h 3D graphics processor SeeAlso: #00732 (Table 00805) Values for Emulex Corporation PCI device code: 1AE5h Fibre Channel Host Adapter SeeAlso: #00732 (Table 00806) Values for Integrated Micro Solutions PCI device code: 5026h IMS5026/27/28 VL Bridge 5028h ISA Bridge 8849h IMS 8849 8853h ATM network card 9128h IMS9129 GUI accelerator SeeAlso: #00732 (Table 00807) Values for TekRAM Technology Corporation Ltd. PCI device code: 690Ch TekRAM 690c SeeAlso: #00732 (Table 00808) Values for Newbridge Microsystems PCI device code: 0000h CA91C042 VMEbus Bridge SeeAlso: #00732 (Table 00809) Values for Applied Micro Circuits Corp. PCI device code: 4750h S5933 PCI controller 8043h MyriNet SeeAlso: #00732 (Table 00810) Values for Integraphics Systems PCI device code: 1680h 1680 SeeAlso: #00732 (Table 00811) Values for Artist Graphics PCI device code: 0101h 3GA 64-bit graphics processor SeeAlso: #00732 (Table 00812) Values for Realtek Semiconductor PCI device code: 8029h Realtek 8029 SeeAlso: #00732 (Table 00813) Values for ASCII Corporation PCI device code: 7310h V7310 VGA Video Overlay SeeAlso: #00732 (Table 00814) Values for NKK Corporation PCI device code: A001h NDR4000 NR4600 Bridge SeeAlso: #00732 (Table 00815) Values for Truevision PCI device code: 0000h ??? GUI Accelerator 0001h ??? GUI Accelerator 0002h ??? GUI Accelerator 0003h ??? GUI Accelerator 0004h ??? GUI Accelerator 0005h ??? GUI Accelerator 0006h ??? GUI Accelerator 0007h ??? GUI Accelerator 0008h ??? GUI Accelerator 0009h ??? GUI Accelerator 0010h ??? GUI Accelerator 0011h ??? GUI Accelerator 0012h ??? GUI Accelerator 0013h ??? GUI Accelerator 0014h ??? GUI Accelerator 0015h ??? GUI Accelerator SeeAlso: #00732 (Table 00816) Values for Initio Corporation PCI device code: 9100h 320P 9400h Fast-Wide SCSI 9700h Fast-Wide SCSI SeeAlso: #00732 (Table 00817) Values for VIA Technologies PCI device code: 0505h VIA 82C505 0561h VIA 82C561 0571h AMD-645 Peripheral Bus Controller, function 1 (see #01034) VT82C586A/B PCI Integrated Peripheral Controller, function 1 0576h VIA 82C576 0585h VT82C585VPX Host Bus-PCI bridge (see #00982) 0586h AMD-645 Peripheral Bus Controller, function 0 (see #01011) VT82C586A/B PCI Integrated Peripheral Controller, function 0 0595h AMD-640 System Controller (see #00983) VT82C595 0597h VT82C597 / VT82C597AT 1000h 82C570MV P54 Controller 1106h 82C570MV ISA Bridge + IDE 1571h VIA 82C416 3038h AMD-645 Peripheral Bus Controller, function 2 (see #01046) VT82C586A/B PCI Integrated Peripheral Controller, function 2 3040h AMD-645 Peripheral Bus Controller, function 3 (see #01049) VT82C586B PCI Integrated Peripheral Controller, function 3 SeeAlso: #00732 (Table 00818) Values for Proteon Inc. PCI device code: 0100h p1690plus-AA Token Ring 0101h p1690plus-AB 2-port Token Ring SeeAlso: #00732 (Table 00819) Values for Cogent Data Technologies PCI device code: 1400h EM110TX PCI Fast Ethernet SeeAlso: #00732 (Table 00820) Values for Siemens Nixdorf PCI device code: 6120h SZB6120 Multimedia Adapter SeeAlso: #00732 (Table 00821) Values for Rockwell PCI device code: 2200h FDDI adapter 2300h Fast Ethernet adapter 2340h four-port Fast Ethernet 2400h ATM adapter SeeAlso: #00732 (Table 00822) Values for Datacube Inc. PCI device code: 9500h MAX-LC SuperVGA 9501h MAX-LC image processing SeeAlso: #00732 (Table 00823) Values for Vortex Computersysteme GmbH PCI device code: 0000h GDT60x0 SCSI RAID 0001h GDT6000B SCSI RAID 0002h GDT6x10 SCSI RAID 0003h GDT6x20 two-channel SCSI RAID 0004h GDT6530 three-channel SCSI RAID 0005h GDT6550 five-channel SCSI RAID 0006h GDT6x17 0007h GDT6x27 0008h GDT6537 0009h GDT6557 000Ah GDT6x15 000Bh GDT6x25 000Ch GDT6535 000Dh GDT6555 SeeAlso: #00732 (Table 00824) Values for Efficient Networks, Inc. PCI device code: 0000h 155P-MF1 ATM FPGA 0002h ATM ASIC SeeAlso: #00732 (Table 00825) Values for FORE Systems PCI device code: 0210h PCA200PC 0300h PCA200E SeeAlso: #00732 (Table 00826) Values for Infomedia MicroElectronics PCI device code: 0000h EIDE/HD and IDE/CD-ROM controller 000Bh EIDE/HD and IDE/CD-ROM controller SeeAlso: #00732 (Table 00827) Values for Imaging Technology PCI device code: 0000h ICPCI 0001h video frame grabber/processor SeeAlso: #00732 (Table 00828) Values for Mercury Computer Systems PCI device code: 0001h Raceway Bridge SeeAlso: #00732 (Table 00829) Values for Fuji Xerox Co Ltd. PCI device code: 0001h Printer Controller SeeAlso: #00732 (Table 00830) Values for Ziatech Corporation PCI device code: 8905h 8905 STD-32 Bridge SeeAlso: #00732 (Table 00831) Values for Dynamic Pictures Inc. PCI device code: 0001h VGA-compatible 3D graphics SeeAlso: #00732 (Table 00832) Values for Cyclone Microsystems (PLX Technology???) PCI device code: 0001h PLX 9060 0911h PCI 911 i960Jx Intelligent I/O 0912h PCI 912 i960Cx Intelligent I/O 0913h PCI 913 i960Hx Intelligent I/O SeeAlso: #00732 (Table 00833) Values for Crest Microsystem PCI device code: 0001h EIDE/ATAPI super adapter SeeAlso: #00732 (Table 00834) Values for Alliance Semiconductor Corp. PCI device code: 3210h Pro Motion 3210 6410h GUI Accelerator 6412h GUI Accelerator 6420h GUI Accelerator 6422h Pro Video 6424h GUI Accelerator 6426h GUI Accelerator SeeAlso: #00732 (Table 00835) Values for Cincinnati Milacron PCI device code: 0001h Noservo Controller SeeAlso: #00732 (Table 00836) Values for Schneider & Koch Co. PCI device code: 4000h FDDI adapter SeeAlso: #00732 (Table 00837) Values for VMIC PCI device code: 7587h VME SeeAlso: #00732 (Table 00838) Values for Digi International / Stargate PCI device code: 0003h RightSwitch SeeAlso: #00732 (Table 00839) Values for Voarx R&D Inc. PCI device code: 3011h Tokenet/vg 1001/10m anylan 9050h Lanfleet/Truevalue SeeAlso: #00732 (Table 00840) Values for MuTech PCI device code: 0001h MV1000 SeeAlso: #00732 (Table 00841) Values for PFU Ltd. PCI device code: 0001h Host Bridge SeeAlso: #00732 (Table 00842) Values for Creative Labs (vendor ID 1163h) PCI device code: 0001h 3D Blaster SeeAlso: #00732 (Table 00843) Values for Imagraph Corporation PCI device code: 0001h Motion JPEG record/play w/ audio SeeAlso: #00732 (Table 00844) Values for Alfa Inc. PCI device code: AFA1h Fast Ethernet SeeAlso: #00732 (Table 00845) Values for Matsushita Electronics PCI device code: 1592h ??? SeeAlso: #00732 (Table 00846) Values for Corollary Inc. PCI device code: 0014h PCIB C-bus II to PCI bridge chip SeeAlso: #00732 (Table 00847) Values for BitFlow Inc. PCI device code: 0001h Raptor-PCI frame grabber SeeAlso: #00732 (Table 00848) Values for Artop Electric PCI device code: 0001h IDE controller 0002h IDE controller 0003h SCSI-2 cache controller 0004h ATP8400 ASIC cache accelerator 8001h SCSI-2 cache controller 8002h SCSI-2 controller SeeAlso: #00732 (Table 00849) Values for Zeitnet Inc. PCI device code: 0001h Zeitnet 1221 0002h Zeitnet 1225 SeeAlso: #00732 (Table 00850) Values for InnoSys Inc. PCI device code: 4240h AMCC S5933Q Intelligent Serial Card SeeAlso: #00732 (Table 00851) Values for Galileo Technology PCI device code: 0146h GT-64010 System Controller for R46xx CPU 4801h GT-48001 8-port switched Ethernet ctrlr SeeAlso: #00732 (Table 00852) Values for V3 Semiconductor Inc. PCI device code: 0292h V292PBC Am29030/40 Bridge 0960h V96xPBC i960 Bridge C960h V96DPC i960 dual PCI Bridge SeeAlso: #00732 (Table 00853) Values for Pathlight Technology PCI device code: C0EDh SSA Controller SeeAlso: #00732 (Table 00854) Values for Dolphin Interconnect Solutions PCI device code: 0658h PSB PCI-SCI Bridge SeeAlso: #00732 (Table 00855) Values for Specialix Research Ltd. PCI device code: 2000h PCI-9050 Target Interface 4000h Specialix XIO (SUPI-1 Target Interface) 8000h Specialix RIO (T255 Bridge) SeeAlso: #00732 (Table 00856) Values for Compex USA, Inc. PCI device code: 1401h ReadyLINK RL2000 10MBit NIC SeeAlso: #00732 (Table 00857) Values for PMC-Sierra Inc. PCI device code: 7375h PM7375 LASAR-155 ATM SAR SeeAlso: #00732 (Table 00858) Values for RP PCI device code: 0001h RP8OCTA 0002h RP8INTF 0003h RP16INTF 0004h RP32INTF SeeAlso: #00732 (Table 00859) Values for Cyclades PCI device code: 0100h Cyclom Y Lo multiport serial card 0101h Cyclom Y Hi 0200h Cyclom Z Lo multiport serial card 0201h Cyclom Z Hi SeeAlso: #00732 (Table 00860) Values for Ariel Corporation PCI device code: 1220h AMCC 5933 TMS320C80 DSP/Imaging Board SeeAlso: #00732 (Table 00861) Values for Harris Semiconductor PCI device code: 8130h HMP8130 NTSC/PAL Video Decoder 8131h HMP8131 NTSC/PAL Video Decoder SeeAlso: #00732 (Table 00862) Values for Ensoniq PCI device code: 1371h AudioPCI-97 ES1371 5000h AudioPCI ES1370 SeeAlso: #00732 (Table 00863) Values for Picture Elements PCI device code: 0081h PCIVST PCI Thresholding Engine SeeAlso: #00732 (Table 00864) Values for Symphony PCI device code: 0001h Symphony 82C101 IDE controller SeeAlso: #00732 (Table 00865) Values for TekRAM PCI device code: DC29h DC290 / DC290M EIDE controller SeeAlso: #00732 (Table 00866) Values for 3DLabs PCI device code: 0004h 3C0SX GUI Accelerator SeeAlso: #00732 (Table 00867) Values for Avance Logic, Inc. PCI device code: 2301h AVL2301 GUI Accelerator 2303h AVG2302 GUI Accelerator SeeAlso: #00732 (Table 00868) Values for 4942h PCI device code: 4C4Ch ??? (Ensoniq AudioPCI ES1370 subsystem) SeeAlso: #00732 (Table 00869) Values for BusLogic Inc. PCI device code: 3080h ??? SCSI-ti 4010h ??? Fast-Wide SCSI-2 SeeAlso: #00732 (Table 00870) Values for S3 PCI device code: 5631h 86C325 ViRGE 3D GUI Accelerator 8800h Vision 866 8801h Vision 964 8810h S3 Trio32 8811h S3 Trio64, or Trio64V+ 8812h S3 Trio64UV+ 8813h S3 Trio64? v3 883Dh S3 ViRGE/VX 888xh S3 868 88Bxh S3 928 88C0h S3 864-1 88C1h S3 864-2 88C2h S3 864-3 88C3h S3 864-4 88D0h S3 964-1 88D1h S3 964-2 88D2h S3 964-3 88D3h S3 964-4 88F0h S3 968 88F1h S3 968-2 88F2h S3 968-3 88F3h S3 968-3 8900h S3 Trio64 V2/DX GUI Accelerator 8901h S3 775 Trio64V2 8902h S3 PLATO/PX 8A01h S3 ViRGE/DX or ViRGE/GX 8A10h ??? 8C00h ??? 8C01h ??? SeeAlso: #00732,#00873 (Table 00871) Values for c't Magazin fr Computer PCI device code: 6773h GPPCI PCI interface SeeAlso: #00732 (Table 00872) Values for Quancom Electronic PCI device code: 0010h PCI-WDOG1 Watchdog 0011h PWDOG2 Watchdog2/PCI SeeAlso: #00732 (Table 00873) Values for Intel PCI device code: 0482h 82375EB/SB PCI-EISA Bridge (see #01054) 0483h 82424 Cache Controller (see #01063) 0484h 82378/82379 Bus Interface (Mercury/Saturn/Neptune chipsets) (see #01064) 0486h 82425EX/82430 04A3h 82434 LX (Mercury) / NX (Neptune) (see #01055) 0960h i960 RP Microprocessor/Bridge 1221h 82092AA PCMCIA Bridge 1222h 82092AA IDE Controller 1223h Intel SAA7116 1226h 82596 1227h 82865 1228h EtherExpress Pro/100 Smart 1229h 82557 Fast Ethernet (see #01227) 122Dh 82437FX (Triton) 122Eh 82371FB ISA Bridge (Triton) 1230h 82338 IDE controller / 82371FB IDE function (Triton) 1234h 82371MX (see #01168) 1235h 82437MX 1237h 82441FX (see #01229) 1239h 82371FB IDE Interface (Triton) 123Ch 82380AB Mobile PCI-to-ISA Bridge (see #01090) 124Bh 82380FB Mobile PCI-to-PCI Bridge (see #04069) 1250h 82439HX (430HX chipset) (see #01098) 1960h 80960RP i960RP Microprocessor 7000h 82371SB ISA Bridge (see #01167) 7010h 82371SB IDE controller (see #01214) 7020h 82371SB (see #01215) 7030h 82437VX (430VX chipset) (see #01108) 7100h 82439TX (430TX chipset) (see #01099) 7110h 82371AB PIIX4 ISA Bridge (see #01100) 7111h 82371AB PIIX4 Ultra DMA IDE Controller (see #01103) 7112h 82371AB PIIX4 USB Controller (see #01104) 7113h 82371AB PIIX4 Power Management Controller (see #01105) 7180h 82443LX/EX 440LX/EX Host-PCI Bridge (see #01129) 7181h 82443LX/EX 440LX/EX AGP device (see #01130) 7190h 82443BX 440BX PCI-Host Bridge (AGP Enabled) (see #01142) 7191h 82443BX 440BX PCI-PCI Bridge (see #01143) 7192h 82443BX 440BX PCI-Host Bridge (AGP Disabled) (see #01142) 71A0h 82443GX Host Bridge/Controller (AGP enabled) 71A1h 82443GX AGP Controller 71A2h 82443GX Host Bridge/Controller (AGP disabled) 84C4h 82450KX/GX PCI Bridge (Orion) (see #01240) 84C5h 82450KX/GX Memory Ctrlr (Orion) 84CAh 82451NX (450NX) Memory & I/O Controller (MIOC) 84CBh 82454NX (450NX) PCI Expansion Bridge (PXB) SeeAlso: #00732,#00870 (Table 00874) Values for Trigem Computer PCI device code: 2008h video assistant SeeAlso: #00732 (Table 00875) Values for Adaptec PCI device code: 1078h AIC-7810C RAID Coprocessor 5078h x940 Fast-Wide SCSI-II Ctrlr 5578h AHA-2830P SCSI Controller 7078h AHA-294x/AIC-7870P Fast-Wide SCSI-II 7178h AHA-2940 Fast-Wide SCSI-II 7278h x940 two-channel Fast-Wide SCSI 7378h AHA-3985 4-channel RAID SCSI 7478h AHA-2944 SCSI 7810h AIC-7810 memory control IC 7850h AIC-7850 SCSI IC (see #01241) 7855h AHA-2930 SCSI 7870h AIC-7870 SCSI IC 7871h AHA-2940 7872h AHA-3940 7873h AHA-3980 7874h AHA-2944 Differential SCSI 7880h AIC-7880 Fast-20 SCSI 8078h Adaptec 7880 8178h Adaptec 2940UW 8278h AHA-3940U/UW 8378h Adaptec 7883 8478h Adaptec 7884 SeeAlso: #00732 (Table 00876) Values for Atronics PCI device code: 2015h Atronics 2015 SeeAlso: #00732 (Table 00877) Values for Ark Logic Inc. PCI device code: A091h ARK 1000PV ??? Stingray A099h ARK 2000PV ??? Stingray A0A1h ark2000mt 64-bit GUI Accel w/DCI SeeAlso: #00732Top
INT 1A - PCI BIOS v2.0c+ - FIND PCI CLASS CODE AX = B103h ECX = class code (see also #F0085,#00878) bits 31-24 unused bits 23-16 class bits 15-8 subclass bits 7-0 programming interface SI = device index (0-n) Return: CF clear if successful CF set on error AH = status (00h,86h) (see #00729) 00h successful BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 func) 86h device not found EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation all devices sharing the same Class Code may be enumerated by incrementing SI from 0 until error 86h is returned SeeAlso: AX=B183hTop
INT 1A - PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS AX = B106h BL = bus number EDX = Special Cycle data Return: CF clear if successful CF set on error AH = status (00h,81h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Note: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call SeeAlso: AX=B186h,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION BYTE AX = B108h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful CL = byte read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation BUG: the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFh for register 00h if the PCI function number is nonzero SeeAlso: AX=B109h,AX=B10Ah,AX=B188h,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION WORD AX = B109h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh, must be multiple of 2) (see #00878) Return: CF clear if successful CX = word read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation BUG: the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFFFh for register 00h if the PCI function number is nonzero SeeAlso: AX=B108h,AX=B10Ah,AX=B189h,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD
AX = B10Ah
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh, must be multiple of 4) (see #00878)
Return: CF clear if successful
ECX = dword read
CF set on error
AH = status (00h,87h) (see #00729)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
BUG: the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFFFFFFFh
for register 00h if the PCI function number is nonzero
SeeAlso: AX=B108h,AX=B109h,AX=B10Ah/SF=8086h,AX=B18Ah,INT 2F/AX=1684h/BX=304Ch
Format of PCI Configuration Data:
Offset Size Description (Table 00878)
00h WORD vendor ID (read-only) (see #00732 at AX=B102h)
FFFFh returned if requested device non-existent
02h WORD device ID (read-only)
04h WORD command register (see #00879)
06h WORD status register (see #00880)
08h BYTE revision ID
09h 3 BYTEs class code
bits 7-0: programming interface
bits 15-8: sub-class
bits 23-16: class code (see also #F0085)
0Ch BYTE cache line size
0Dh BYTE latency timer
0Eh BYTE header type
bits 6-0: header format
00h other
01h PCI-to-PCI bridge
02h PCI-to-CardBus bridge
bit 7: multi-function device
0Fh BYTE Built-In Self-Test result (see #00881)
---header type 00h---
10h DWORD base address 0 (see #00882)
(OpenHCI) base address of host controller registers (see #00902)
14h DWORD base address 1
18h DWORD base address 2
1Ch DWORD base address 3
20h DWORD base address 4
24h DWORD base address 5
28h DWORD CardBus CIS pointer (read-only) (see #00889)
2Ch WORD subsystem vendor ID or 0000h
2Eh WORD subsystem ID or 0000h
30h DWORD expansion ROM base address (see #00883)
34h BYTE offset of capabilities list within configuration space (R/O)
(only valid if status register bit 4 set) (see #00884)
35h 3 BYTEs reserved
38h DWORD reserved
3Ch BYTE interrupt line
00h = none, 01h = IRQ1 to 0Fh = IRQ15
3Dh BYTE interrupt pin (read-only)
(00h = none, else indicates INTA# to INTD#)
3Eh BYTE minimum time bus master needs PCI bus ownership, in 250ns units
(read-only)
3Fh BYTE maximum latency, in 250ns units (bus masters only) (read-only)
40h 48 DWORDs varies by device (see #00919,#00920,#01055,#01083)
---header type 01h---
10h DWORD base address 0 (see #00882)
14h DWORD base address 1
18h BYTE primary bus number (for bus closer to host processor)
19h BYTE secondary bus number (for bus further from host processor)
1Ah BYTE subordinate bus number
1Bh BYTE secondary latency timer
1Ch BYTE I/O base (see #00899)
1Dh BYTE I/O limit (see #00899)
1Eh WORD secondary status
20h WORD memory base (see #00900)
22h WORD memory limit
24h WORD prefetchable memory base
26h WORD prefetchable memory limit
28h DWORD prefetchable base, upper 32 bits
2Ch DWORD prefetchable limit, upper 32 bits
30h WORD I/O base, upper 16 bits
32h WORD I/O limit, upper 16 bits
34h DWORD reserved
38h DWORD expansion ROM base address
3Ch BYTE interrupt line
3Dh BYTE interrupt pin (read-only)
3Eh WORD bridge control (see #00901)
40h 48 DWORDs varies by device (see #00919,#00920,#01055,#01083)
---header type 02h---
10h DWORD CardBus Socket/ExCa base address (see #00890)
bits 31-12: start address of socket interface register block
in 4K blocks
bits 11-0: reserved (0)
14h BYTE offset of capabilities list within configuration space (R/O)
(only valid if status register bit 4 set) (see #00884)
15h BYTE reserved
16h WORD secondary status
18h BYTE PCI bus number
19h BYTE CardBus bus number
1Ah BYTE subordinate bus number
1Bh BYTE CardBus latency timer
1Ch DWORD memory base address 0
20h DWORD memory limit 0
24h DWORD memory base address 1
28h DWORD memory limit 1
2Ch WORD I/O base address 0
2Eh WORD I/O base address 0 high word (optional)
30h WORD I/O limit 0
32h WORD I/O limit 0 high word (optional)
34h WORD I/O base address 1
36h WORD I/O base address 1 high word (optional)
38h WORD I/O limit 1
3Ah WORD I/O limit 1 high word (optional)
3Ch BYTE interrupt line
3Dh BYTE interrupt pin (read-only) (no interrupt used if 00h)
3Eh WORD bridge control
40h WORD subsystem vendor ID
42h WORD subsystem device ID
44h DWORD 16-bit PC Card legacy mode base address (for accessing ExCa
registers)
48h 14 DWORDs reserved
80h 32 DWORDs varies by device (see #00919,#00920,#01055,#01083)
Bitfields for PCI Configuration Command Register:
Bit(s) Description (Table 00879)
0 I/O access enabled
1 memory access enabled
2 bus master enable
3 special cycle recognition enabled
4 memory write and invalidate enabled
5 VGA palette snoop enabled
6 parity error response enabled
7 wait cycles enabled
8 system error (SERR# line) enabled
9 fast back-to-back transactions enabled
15-10 reserved
SeeAlso: #00878,#00880
Format of PCI Configuration Status Register:
Bit(s) Description (Table 00880)
3-0 reserved (0)
4 new capabilities list is present (first entry pointed at by byte at
34h or 14h)
5 capable of running at 66 MHz
6 UDF supported
7 capable of fast back-to-back transactions
8 data parity error reported
10-9 device select timing
00 fast
01 medium
10 slow
11 reserved
11 signaled target abort
12 received target abort
13 received master abort
14 signaled system error (device is asserting SERR# line)
15 detected parity error (set even if parity error reporting is disabled)
Note: bits 12, 13 and 15 are cleared by writing a 1 into the corresponding
bit
SeeAlso: #00878,#00879
Bitfields for PCI Configuration Built-In Self-Test register:
Bit(s) Description (Table 00881)
3-0 completion code (0000 = successful)
5-4 reserved
6 start BIST (set to one to start, cleared automatically on completion)
7 BIST-capable
Notes: this register is hardwired to 00h if no BIST capability
software should timeout the BIST after two seconds
SeeAlso: #00878
Bitfields for PCI Configuration Base Address:
Bit(s) Description (Table 00882)
0 address type (0 = memory space, 1 = I/O space)
---memory address---
2-1 address type
00 anywhere in first 4GB
01 below 1MB
10 anywhere in 64-bit address space
11 reserved
3 prefetchable
31-4 bits 31-4 of base memory address if addressable in first 1MB or 4GB
63-4 bits 63-4 of base memory address if addressable in 64-bit memory
(bits 63-32 are stored in the following base address DWORD)
---I/O address---
1 reserved
31-2 bits 31-2 of base I/O port
SeeAlso: #00878,#00902
Bitfields for PCI Configuration Expansion ROM Address:
Bit(s) Description (Table 00883)
0 address decode enable (ROM address is valid)
10-1 reserved
31-11 bits 31-11 of ROM's starting physical address
SeeAlso: #00878
Format of PCI Capabilities List:
Offset Size Description (Table 00884)
00h BYTE capability identifier
01h PCI Power Managment
01h BYTE offset of next item (within configuration space) or 00h
N BYTEs varies by capability type
---PCI Power Management---
02h WORD power managment capabilities (see #00885) (read-only)
04h WORD power managment capabilities status register (see #00886)
06h BYTE PMCSR bridge support extensions (see #00887)
07h BYTE (optional) read-only data register (see #00888)
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #00878,#00880
Bitfields for PCI Power Management Capabilities:
Bit(s) Description (Table 00885)
15 reserved (0)
14-12 PME# support
bit 12: PME# can be asserted from power state D0
bit 13: PME# can be asserted from power state D1
bit 14: PME# can be asserted from power state D2
11 reserved (0)
10 D2 power state supported
9 D1 power state supported
8 full-speed clock is required in state D0 for proper operation
(if clear, device may be run at reduced clock except when actually
being accessed)
7-6 dynamic clock control support
00 not bridge, no dynamic clock control, or secondary bus' clock is
is tied to primary bus' clock
01 bridge is capable of dynamic clock control
10 reserved
11 secondary bus has independent clock, but dynamic clock not supported
5 device-specific initialization is required
4 auxiliary power required for PME# generation
3 PCI clock required for PME# generation
2-0 specification version
001 = v1.0; four bytes of power management registers
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #00884,#00886,#00887
Bitfields for PCI Power Management Capabilities Status Register:
Bit(s) Description (Table 00886)
15 PME status: if set, PME# is (or would be) asserted
writing a 1 to this bit clears it
14-13 (read-only) scale factor to apply to contents of Data register
00 unknown (or unimplemented data)
01 x0.1
10 x0.01
11 x0.001
12-9 (read-write) data select (see #00888)
8 (read-write) enable PME# assertion
7-5 reserved (0)
4 (read-write) enable dynamic data reporting
when set, PME# is asserted whenever the value in the Data register
changes significantly
3-2 reserved (0)
1-0 (read-write) current power state
00 = D0
...
11 = D3
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #00884,#00885,#00887
Bitfields for PCI Power Management PMCSR bridge support extension:
Bit(s) Description (Table 00887)
7 (read-only) Bus Power Control Enable
6 (read-only) Bus Power State B3 supported
5 (read-only) Bus Power State B2 supported
4 dynamic clock control enable
3-0 reserved (0)
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #00884,#00885,#00886
(Table 00888)
Values for PCI Power Management Data Select:
00h D0-state power consumed in watts (+20%/-10%)
01h D1-state power consumed in watts (+20%/-10%)
02h D2-state power consumed in watts (+20%/-10%)
03h D3-state power consumed in watts (+20%/-10%)
04h D0-state power dissipated into chassis in watts
05h D1-state power dissipated into chassis in watts
06h D2-state power dissipated into chassis in watts
07h D3-state power dissipated into chassis in watts
08h-0Fh reserved
SeeAlso: #00886
Bitfields for PCI Configuration CardBus CIS Pointer:
Bit(s) Description (Table 00889)
2-0 address space
000 in device's device-specific configuration space
001 in memory pointed to by base address register 0
...
110 in memory pointed to by base address register 5
111 in device's expansion ROM
27-3 offset within address space defined by bits 2-0
31-28 ROM image number (when address space is expansion ROM)
SeeAlso: #00878
Format of CardBus Socket/ExCA socket interface register space:
Offset Size Description (Table 00890)
00h DWORD Socket Event Register (see #00892)
04h DWORD Socket Mask Register (see #00893)
08h DWORD Socket Present State Register (see #00894)
0Ch DWORD Socket Force Event Register (see #00895)
10h DWORD Socket Control Register (see #00896)
14h 3 DWORDs reserved
20h DWORD Socket Power Management Register
90h BYTE (TI PCI1130) Retry Status Register
91h BYTE (TI PCI1130) Card Control Register (see #00897)
92h BYTE (TI PCI1130) Device Control Register (see #00898)
93h BYTE (TI PCI1130) Buffer Control Register
800h 64+ BYTEs ExCa Socket Interface Registers (see #00891)
Format of ExCa memory-mapped registers:
Offset Size Description (Table 00891)
00h BYTE identification and revision register
01h BYTE interface status register
02h BYTE power control register
03h BYTE interrupt and general control
04h BYTE card status change
05h BYTE card status change interrupt configuration
06h BYTE address window enable
07h BYTE I/O window control register
08h WORD I/O window 0 start address
0Ah WORD I/O window 0 end address
0Ch WORD I/O window 1 start address
0Eh WORD I/O window 1 end address
10h WORD memory window 0 start address
12h WORD memory window 0 end address
14h WORD memory window 0 offset address
16h 2 BYTEs user-defined
18h WORD memory window 1 start address
1Ah WORD memory window 1 end address
1Ch WORD memory window 1 offset address
1Eh BYTE user-defined
1Fh BYTE reserved
20h WORD memory window 2 start address
22h WORD memory window 2 end address
24h WORD memory window 2 offset address
26h 2 BYTEs user-defined
28h WORD memory window 3 start address
2Ah WORD memory window 3 end address
2Ch WORD memory window 3 offset address
2Eh 2 BYTEs user-defined
30h WORD memory window 4 start address
32h WORD memory window 4 end address
34h WORD memory window 4 offset address
36h 10 BYTEs user-defined
---optional---
40h BYTE memory window 0 start address high byte
41h BYTE memory window 1 start address high byte
42h BYTE memory window 2 start address high byte
43h BYTE memory window 3 start address high byte
44h BYTE memory window 4 start address high byte
45h-7FFh user-defined
SeeAlso: #00890
Bitfields for CardBus Socket Event Register:
Bit(s) Description (Table 00892)
0 CSTSCHG pin asserted (status change)
1 CCD1# (card detect 1) changed state
2 CCD2# (card detect 2) changed state
3 interface power cycle completed
31-4 reserved (0)
Note: the bits in this register are set by the bridge, and cleared by writing
a one into the bits one wishes to clear
SeeAlso: #00890,#00893,#00895
Bitfields for CardBus Socket Event Mask Register:
Bit(s) Description (Table 00893)
0 write-protect (enable status-change interrupt on WriteProtect switch)
1 ready mask (allow status-change interrupt on Ready line change)
3-2 battery condition (allow status-change int on battery-condition change)
4 general wakeup enabled
5 binary audio mode enabled on CAUDIO pin
6 Pulse Width Modulation enabled on CAUDIO pin
(CAUDIO state undefined if both bits 5 and 6 set)
13-7 reserved (0)
14 Wakeup mask (enable wakeup events via status-change pin)
15 enable card interrupts via CINT# pin and wakeup events
31-16 reserved
SeeAlso: #00890,#00892,#00894
Bitfields for CardBus Socket Present State Register:
Bit(s) Description (Table 00894)
0 CSTSCHG pin asserted (status change)
1 CCD1# (card detect 1) changed state
2 CCD2# (card detect 2) changed state
3 interface power cycle completed
4 16-bit PC card inserted
5 CardBus card inserted
6 card's interrupt pin asserted
7 card inserted but type can not be determined
8 data may have been lost due to abrupt card removal
9 attempted to apply Vcc voltage not supported by the card
10 card can accept Vcc = 5.0 volts
11 card can accept Vcc = 3.3 volts
12 card can accept Vcc = X.X volts
13 card can accept Vcc = Y.Y volts
27-14 reserved (0)
28 socket can accept Vcc = 5.0 volts
29 socket can accept Vcc = 3.3 volts
30 socket can accept Vcc = X.X volts
31 socket can accept Vcc = Y.Y volts
Note: bits 0-3 may be cleared by writing a 1 into the respective bits
SeeAlso: #00890,#00892,#00893,#00896
Bitfields for CardBus Socket Force Event Register:
Bit(s) Description (Table 00895)
0 write-protect
1 ready
2 battery voltage detect 2
3 battery voltage detect 1
4 general wakeup
14-5 reserved (0)
15 enable card interrupts via CINT# pin
31-16 reserved
Note: this register can simulate events by forcing the values of some of the
bits in the Event Mask Register; any bit of this register which is
set to 1 forces the corresponding bit in the Mask Register to 1,
while bits set to 0 leave the corresponding bit unchanged
SeeAlso: #00890,#00892,#00896
Bitfields for CardBus Socket Control Register:
Bit(s) Description (Table 00896)
2-0 Vpp control
000 power off
001 12.0 Volts
010 5.0 Volts
011 3.3 Volts
100 reserved (X.X Volts)
101 reserved (Y.Y Volts)
110 reserved
111 reserved
3 reserved (0)
6-4 Vcc control (as for Vpp, but 12.0V not supported)
31-7 reserved (0)
SeeAlso: #00890,#00893,#00895
Bitfields for TI PCI1130 Card Control Register:
Bit(s) Description (Table 00897)
0 interrupt pending
1 speaker output enabled
2 reserved
3 enable status-change interrupt routing (to INTA# for socket A, INTB#
for socket B)
4 function interrupt routed to corresponding PCI interrupt pin
5 PCI interrupts enabled
6 ZOOM video mode enabled
7 Ring Indicator enabled on IRQ15/RI_OUT pin
SeeAlso: #00890,#00898
Bitfields for TI PCI1130 Device Control Register:
Bit(s) Description (Table 00898)
0 reserved (0)
2-1 interrupt mode enable
00 no interrupt
01 ISA mode (direct IRQ routing)
10 serialized interrupt mode
11 reserved
4-3 reserved
5 3volt Socket Capable force bit
6 5volt Socket Capable force bit
7 reserved
SeeAlso: #00890,#00897
Bitfields for PCI Configuration I/O base and limit:
Bit(s) Description (Table 00899)
3-0 (read-only) address decoding type
0000 16-bit
0001 32-bit
other reserved
7-4 bits 15-12 of I/O address range
SeeAlso: #00878,#00900
Bitfields for PCI Configuration memory base and limit:
Bit(s) Description (Table 00900)
3-0 address decode type
0000 32-bit address decoder
0001 64-bit address decoder
other reserved
15-4 bits 31-20 of memory address range
SeeAlso: #00878,#00899
Bitfields for PCI Configuration Bridge Control Register:
Bit(s) Description (Table 00901)
7 enable fast back-to-back cycles on secondary bus
6 reset secondary bus
5 master abort mode on secondary bus
4 reserved
3 VGA enable (when set, forward VGA memory and I/O ranges to seconary
bus)
2 ISA enable
1 reserved
0 enable parity error response
SeeAlso: #00878,#01131
Format of OpenHCI Host Controller memory-mapped registers:
Offset Size Description (Table 00902)
00h DWORD "HcRevision" OpenHCI revision (see #00903)
04h DWORD "HcControl" HC operating modes (see #00904)
08h DWORD "HcCommandStatus" command/status (see #00905)
0Ch DWORD "HcInterruptStatus" interrupt status (see #00906)
10h DWORD "HcInterruptEnable" enable interrupts (see #00907)
14h DWORD "HcInterruptDisable" disable interrupts (see #00907)
18h DWORD "HcHCCA" HC Communications Area (see #00908)
1Ch DWORD "HcPeriodCurrentED" Endpoint Descriptor addr (see #00909)
20h DWORD "HcControlHeadED" Control Endpoint Descriptor (see #00910)
24h DWORD "HcControlCurrentED" Control Endpoint Descriptor (see #00910)
28h DWORD "HcBulkHeadED" Bulk Endpoint Descriptor (see #00911)
2Ch DWORD "HcBulkCurrentED" Bulk Endpoint Descriptor (see #00911)
30h DWORD "HcDoneHead" last completed Xfer Descr. (see #00912)
34h DWORD "HcFmInterval" Frame bit-time interval (see #00913)
38h DWORD "HcFmRemaining" bit time remaining in Frame (see #00914)
3Ch DWORD "HcFmNumber" Frame Number (bits 15-0)
40h DWORD "HcPeriodicStart" earliest time to start periodic list
(bits 13-0)
44h DWORD "HcLSThreshold" threshold for Low Speed transaction
(bits 11-0)
48h DWORD "HcRhDescriptorA" Root Hub Descriptor A (see #00915)
4Ch DWORD "HcRhDescriptorB" Root Hub Descriptor B (see #00916)
50h DWORD "HcRhStatus" Root Hub status (see #00917)
54h N DWORDs "HCRhPortStatus[1-N]" Root Hub port status N (see #00918)
Note: OpenHCI reserves a full 4K page of the systems address space for its
memory-mapped registers
SeeAlso: #00878,#00882,#F0085,#00966
Bitfields for OpenHCI "HcRevision" register:
Bit(s) Description (Table 00903)
31-8 reserved
7-0 BCD OpenHCI specification number (10h = 1.0, 11h = 1.1)
Note: this register is read-only
SeeAlso: #00902,#00904
Bitfields for OpenHCI "HcControl" register:
Bit(s) Description (Table 00904)
31-11 reserved
10 RWE enable Remote Wakeup feature
9 RWC controller supports Remote Wakeup signalling
8 IR Interrupt Routing
0 normal host bus interrupt
1 System Managment Interrupt
7-6 HCFS USB Host Controller Functional State
00 USBReset
01 USBResume
10 USBOperational
11 USBSuspend
5 BLE enable Bulk List processing in next frame
4 CLE enable Control List processing in next frame
3 IE enable Isochronous ED processing
2 PLE enable processing of Periodic List in next frame
1-0 CBSR Control Bulk Service Ratio
00 1:1 Control EDs:Bulk EDs served
01 2:1
10 3:1
11 4:1
SeeAlso: #00902,#00903,#00905
Bitfields for OpenHCI "HcCommandStatus" register:
Bit(s) Description (Table 00905)
31-18 reserved
17-16 SOC scheduling-overrun count
15-4 reserved
3 OCR ownership change request is pending
2 BLF bulk list contains TDs
1 CLF control list contains TDs
0 HCR host controller software reset
Note: writing a 1 bit sets the corresponding bit, while a 0 bit leaves the
corresponding bit unchanged
SeeAlso: #00902,#00903,#00906
Bitfields for OpenHCI "HcInterruptStatus" register:
Bit(s) Description (Table 00906)
31 reserved (0)
30 OC ownership change
29-7 reserved
6 RHSC Root Hub status changed
5 FNO frame number overflowed
4 UE unrecoverable error
3 RD resume detected
2 SF start of frame
1 WDH writeback done
0 SO scheduling overrun
Note: writing a 1 bit clears the corresponding bit of the register
SeeAlso: #00902,#00903,#00905,#00907
Bitfields for OpenHCI "HcInterruptEnable" and "HcInterruptDisable" registers:
Bit(s) Description (Table 00907)
31 MIE master interrupt enable
30 OC ownership change
29-7 reserved
6 RHSC Root Hub status change
5 FNO frame number overflow
4 UE unrecoverable error
3 RD Resume Detect
2 SF start of frame
1 WDH HcDoneHead writeback
0 SO scheduling overrun
Note: writing a 1 bit to HcInterruptEnable enables the corresponding
interrupt, while writing a 1 bit to HcInterruptDisable disables it;
zero bits are ignored. On reading, both registers return the
same value, which reflects the currently enabled interrupts
SeeAlso: #00902
Bitfields for OpenHCI "HcHCCA" register:
Bit(s) Description (Table 00908)
31-8 physical address of Host Controller Communications Area (bits 31-8)
7-0 reserved (0)
Note: the required alignment for the HCCA may be determined by writing
FFFFFFFFh to this register and determining the number of low-order
zero bits
SeeAlso: #00902,#00909,#00910
Bitfields for OpenHCI "HcPeriodCurrentED" register:
Bit(s) Description (Table 00909)
31-4 physical address of current Isochronous/Interrupt Endpoint Descriptor
(bits 31-4)
3-0 reserved (0)
SeeAlso: #00902,#00908,#00910
Bitfields for OpenHCI "HcControlHeadED"/"HcControlCurrentED" register:
Bit(s) Description (Table 00910)
31-4 physical address of first/current Endpoint Descriptor (bits 31-4)
3-0 reserved (0)
Note: HcControlCurrentED is set to 0000000h to indicate the end of the
Control list
SeeAlso: #00902,#00908,#00909
Bitfields for OpenHCI "HcBulkHeadED"/"HcBulkCurrentED" register:
Bit(s) Description (Table 00911)
31-4 physical address of first/current Endpoint Descriptor in the Bulk
list (bits 31-4)
3-0 reserved (0)
Note: HcBulkCurrentED is set to 0000000h to indicate the end of the Bulk
list
SeeAlso: #00902,#00908,#00910
Bitfields for OpenHCI "HcDoneHead" register:
Bit(s) Description (Table 00912)
31-4 physical address of most-recently completed Transfer Descriptor added
to the Done queue (bits 31-4)
3-0 reserved (0)
SeeAlso: #00902,#00909,#00911
Bitfields for OpenHCI "HcFmInterval" register:
Bit(s) Description (Table 00913)
31 "FIT" toggled each time a new value is loaded into bits 13-0
30-16 "FSMPS" largest data packet in bits
15-14 reserved
13-0 "FI" Frame Interval (between to consecutive SOFs)
SeeAlso: #00902,#00914
Bitfields for OpenHCI "HcFmRemaining" register:
Bit(s) Description (Table 00914)
31 "FRT" loaded from bit 31 of HcFmInterval whenever FR reaches 0
30-14 reserved
13-0 "FR" FrameRemaining -- bits times left in current frame
SeeAlso: #00902,#00913
Bitfields for OpenHCI "HcRhDescriptorA" register:
Bit(s) Description (Table 00915)
31-24 "POTPGT" power-on to power-good time in 2ms units
23-13 reserved
12 "NOCP" no over-current protection supported
11 "OCPM" over-current status reported per-port
10 "DT" device type - is root hub compound device?
9 "NPS" NoPowerSwitching -- ports are always powered up
8 "PSM" power-switching mode -- if set, each port powered individually
7-0 "NDP" number of downstream ports
SeeAlso: #00902,#00916,#00917
Bitfields for OpenHCI "HcRhDescriptorB" register:
Bit(s) Description (Table 00916)
31-16 "PPCM" PortPowerControlMask -- bitmask of ports NOT affected by global
power control (bit 16 [port #0] is reserved)
15-0 "DR" DeviceRemovable -- bitmap of removable devices
SeeAlso: #00902,#00915,#00917
Bitfields for OpenHCI "HcRhStatus" register:
Bit(s) Description (Table 00917)
31 "CRWE" Clear Remote Wakeup Enable
write 1 to disable remote wakeup (writes of 0 ignored)
30-18 reserved
17 "OCIC" OverCurrent Indicator Change
write 1 to clear
16 R "LPSC" Local Power Status Change
W Set Global Power mode (write 1; writes of 0 ignored)
15 "DRWE" Device Remote Wakeup Enable
write 1 to enable (writes of 0 ignored)
read to get current status
14-2 reserved
1 "OCI" OverCurrent Indicator
0 R "LPS" LocalPowerStatus (always 0 for Root Hub)
W write 1 to turn off power to all ports/ports with clear
PortPowerControlMask bits
SeeAlso: #00902,#00915,#00916,#00918
Bitfields for OpenHCI "HcRhPortStatusN" register:
Bit(s) Description (Table 00918)
31-21 reserved
20 "PRSC" Port Reset Status Change (write '1' to clear)
19 "OCIC" Port OverCurrent Indiactor Change (write '1' to clear)
18 "PSSC" Port Suspend Status Change (write '1' to clear)
17 "PESC" Port Enable Status Change (write '1' to clear)
16 "CSC" Connect Status Change (write '1' to clear)
15-10 reserved
9 R "LSDA" Low Speed Device Attached
W clear port power by writing '1'
8 R "PPS" Port Power Status
W set port power by writing '1'
7-5 reserved
4 R "PRS" Port Reset Status
W set port reset by writing '1'
3 R "POCI" Port OverCurrent Indicator
W clear suspend status by writing '1'
2 R "PSS" Port Suspend Status
W set port suspend by writing '1'
1 R "PES" Port Enable Status
W set port enable by writing '1'
0 R "CCS" current connect status
W clear port enable by writing '1'
SeeAlso: #00902,#00915,#00916,#00917
Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (VLSI devices) AX = B10Ah subfn 1004h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h Format of PCI Configuration Data for VLSI VL82C591 Host/PCI bridge: Offset Size Description (Table 00919) 00h 64 BYTEs header (see #00878) (vendor ID 1004h, device ID 0005h) 40h BYTE bus number 41h BYTE subordinate bus number 42h WORD reserved 44h 4 DWORDs reserved 54h 2 BYTEs device-specific configuration registers 56h WORD reserved 58h 2 BYTEs device-specific configuration registers 5Ah WORD reserved 5Ch 5 BYTEs device-specific configuration registers ... FFh BYTE device-specific configuration register SeeAlso: #00878,#00732,#00920 Format of PCI Configuration data for VLSI VL82C593 PCI/ISA bridge: Offset Size Description (Table 00920) 00h 64 BYTEs header (see #00878) (vendor ID 1004, device ID 0006h) 40h 4 DWORDs reserved 50h 11 BYTEs device-specific configuration registers 5Bh BYTE reserved 5Ch 25 BYTEs device-specific configuration registers 75h 138 BYTEs reserved FFh BYTE device-specific configuration register SeeAlso: #00878,#00919Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (National Semicond. device) AX = B10Ah subfn 100Bh BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h Format of National Semiconductor PC87410 EIDE Controller configuration: Offset Size Description (Table 00921) 00h 64 BYTEs header (see #00878) (vendor ID 100Bh, device ID D001h) 10h DWORD I/O base address for channel 0 control ports (def: 01F0h) 14h DWORD I/O base address for channel 0 status port (def: 03F6h) 18h DWORD I/O base address for channel 1 control ports (def: 0170h) 1Ch DWORD I/O base address for channel 1 status port (def: 0376h) 40h BYTE IDE Channel 0 timing control 41h WORD IDE Channel 0 read-ahead counter (write-only except bit 15) 43h BYTE IDE Channel 0 function 44h BYTE IDE Channel 1 timing control 45h WORD IDE Channel 1 read-ahead counter (write-only except bit 15) 47h BYTE IDE Channel 1 function 48h BYTE PCI control 49h 7 BYTEs unused 50h 176 BYTEs ??? (unused?) !!!http://www.national.com/ds/PC/PC87410.pdf p.7 SeeAlso: #00739,#00922 Format of National Semiconductor PC87415 IDE DMA-Master configuration: Offset Size Description (Table 00922) 00h 64 BYTEs header (see #00878) (vendor ID 100Bh, device ID 0002h) 40h 3 BYTEs control register 43h BYTE write buffer status (read-only) 44h BYTE Channel 1 master read timing 45h BYTE Channel 1 master write timing 48h BYTE Channel 1 slave read timing 49h BYTE Channel 1 slave write timing 4Ch BYTE Channel 2 master read timing 4Dh BYTE Channel 2 master write timing 50h BYTE Channel 2 slave read timing 51h BYTE Channel 2 slave write timing 54h BYTE command and control block timing 55h BYTE sector size !!!http://www.national.com/ds/PC/PC87415.pdf p.8 SeeAlso: #00739,#00921Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (DEC device)
AX = B10Ah subfn 1011h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh) (see #00878)
Return: CF clear if successful
ECX = dword read
CF set on error
AH = status (00h,87h) (see #00729)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
Format of DEC DC21140/DC21040/DC21041 Tulip {Fast/Plus} Ethernet:
Offset Size Description (Table 00923)
00h 64 BYTEs header (see #00878)
(vendor ID 1011h, device ID 0014h)
10h DWORD base I/O port for access to control/status registers
14h DWORD base memory address for access to control/status registers
40h DWORD configuration driver area
bit 31: sleep mode \ only one of bits 31,30 may be set
bit 30: snooze mode /
bits 15-8: device driver's use
!!!digital\21041hm.pdf p.34 digital\21140ahm.pdf p.35
SeeAlso: #00742
Format of DEC 21052 PCI-PCI bridge PCI configuration data:
Offset Size Description (Table 00924)
00h 64 BYTEs header, type 1 (see #00878)
(vendor ID 1011h, device ID 0021h)
40h BYTE chip control
41h BYTE diagnostic control
42h BYTE burst counter
43h BYTE SErr disable
44h BYTE primary target wait timer
45h BYTE secondary target wait timer
46h 2 BYTEs reserved
48h DWORD count of secondary write attempts
4Ch DWORD count of primary write attempts
50h 44 DWORDs reserved
!!!digital\21052ds.pdf p.117
SeeAlso: #00742
Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (AMD devices) AX = B10Ah subfn 1022h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=1042h,AX=B10Ah/SF=8086h Format of AMD Am53C974A PC-SCSI PCI configuration data: Offset Size Description (Table 00925) 00h 64 BYTEs header (see #00878) (vendor ID 1022h, device ID 2020h) 10h DWORD I/O base address (see PORT xxxxh"Am53C974A") 40h 16 BYTEs scratch registers (used by AMD's PC-SCSI drivers as follows: 40h/41h SCSI configuration register 0 (see #00926,#00927) ... 4Eh/4Fh SCSI configuration register 7) SeeAlso: #00747 Bitfields for AMD Am53C974A Target Device Configuration Register: Bit(s) Description (Table 00926) 15-14 reserved 13 "FSCSI" Fast SCSI drive is present 12-8 "SPD" synchronous period 7-4 synchronous offset (0 = asynchronous transfers) 3-1 SCSI bus status 0 target device is present and active if 0, all other bits must be cleared to zero for target devices SeeAlso: #00925,#00927 Bitfields for AMD Am53C974A Host Configuration Register: Bit(s) Description (Table 00927) 15-9 reserved 8 SCSI bus has been reset 7 starting BIOS number (bits 6-4) is valid 6-4 starting BIOS number (000 = BIOS drive 80h, 001 = drive 81h, etc) 3 this device is a SCSI host 2 protected-mode driver initialized 1 real-mode driver initialized 0 target device present =0 indicates that this is a host if bit 3 is set SeeAlso: #00925,#00926Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (PC Technology devices) AX = B10Ah subfn 1042h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=1022h,AX=B10Ah/SF=1045h,AX=B10Ah/SF=8086h Format of PCI Configuration data for PC Technology RZ-1000 EIDE controller: Offset Size Description (Table 00928) 00h 64 BYTEs header (see #00878) (vendor ID 1042h, device ID 1000h) 10h DWORD base address for controller I/O registers (set to 01F1h for primary controller, 0171h for secondary) 14h DWORD base address for controller digital I/O port (set to 03F5h for primary, 0375h for secondary) 40h DWORD ??? bits 7-1: ??? bit 13: read-ahead mode enabled (Read-Ahead is buggy on original RZ-1000, and is thus typically disabled by clearing this bit) bit 16: ??? 44h DWORD ??? 48h 8 BYTEs ??? 50h 176 BYTEs unused???Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (OPTi devices) AX = B10Ah subfn 1045h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=1042h,AX=B10Ah/SF=1066h Format of PCI Configuration data for OPTi 82C750 Vendetta (device 0): Offset Size Description (Table 00929) 00h 64 BYTEs header (see #00878) (vendor ID 1045h, device ID C567h) 40h DWORD memory control (see #00930) 44h 6 BYTEs data path control (see #00931) 4Ah WORD reserved 4Ch BYTE SDRAM SDRAS/SDCAS mux control (see #00932) 4Dh BYTE SDRAM select (see #00933) 4Eh BYTE ECC test / I2C control (see #00934) 4Fh BYTE ECC test data 50h DWORD ECC control (see #00935) 54h WORD SDRAM select (see #00936) 56h BYTE data path control / EDO X-2-2-2 writes (see #00937) 57h BYTE reserved 58h DWORD ECC reporting (see #00938) 5Ch 164 BYTEs reserved SeeAlso: #00878,#00939,#00965 Bitfields for OPTi 82C750 Vendetta (device 0) memory control: Bit(s) Description (Table 00930) 31-30 reserved 29 reserved (1) 28-18 reserved 17 reserved (1) 16 HA drive-back during CPU memory access enable 15-6 PCI video frame buffer write posting hole 5-4 reserved 3 PCI bus write post disable 2 video frame buffer write post (posting enabled if bit 2 = bit 3) 1 video memory write post(posting enabled if bit 1 = bit 3) 0 I/O cycle write post enable SeeAlso: #00929,#00931 Bitfields for OPTi 82C750 Vendetta (device 0) data path control: Bit(s) Description (Table 00931) 41-47 reserved 40 DTY pin suspend enable 39-38 reserved 37 SDRAM refresh 0 sized bank RAS# disable 36 SDRAM control signal stepping enable 35 reserved 34-32 SDRAM mode 000 = normal 001 = NOP enable 010 = precharge all banks 011 = mode register enable 100 = CBR cycle enable 101-111 = reserved 31 SDRAM memory read access enable 30 CPU-to-PCI FIFO clear enable 29 PCI-to-DRAM FIFO clear enable 28 CPU-to-DRAM FIFO clear enable 27 82C750 register write disable 26-15 reserved 14 PCI master/ECC generate NMI disable 13-12 reserved (1) 11 memory parity checking enable 10 reserved 9 CPU DRAM write byte merge enable 8 MD bus pull-up resistor disable 7 PCI CPU write 6DW FIFO enable 6 DRAM PCI read 24DW FIFO enable 5 DRAM PCI write 24DW FIFO enable 4 DRAM CPU write 8QW FIFO enable 3 82C750 memory read access (0 = SDRAM, 1 = reserved) 2-1 reserved 0 82C750 memory read access (0 = FP mode, 1 = EDO/SDRAM) SeeAlso: #00929 Bitfields for OPTi 82C750 Vendetta (device 0) SDRAM SDRAS/SDCAS mux control: Bit(s) Description (Table 00932) 7 MCACHE enable 6 GWE#/BWE# (1) 5 reserved (read-only) 4 reserved (1) 3 BOFF# CPU status latch enable 2 reserved (1) (SDRAS# & SDCAS#) 1 reserved (1) (BA1 & BA0) 0 pin mux 0 = RAS4# & RAS5# 1 = SDRAS# & SDCAS# SeeAlso: #00929 Bitfields for OPTi 82C750 Vendetta (device 0) SDRAM select: Bit(s) Description (Table 00933) 7-6 reserved 5 bank 5 enable 4 bank 4 enable 3-0 reserved SeeAlso: #00929 Bitfields for OPTi 82C750 Vendetta (device 0) ECC test / I2C control: Bit(s) Description (Table 00934) 7 ECC test mode enable 6 reserved 5 reserved (1 if SDRAM enabled) 4 I2C data output read-back (read-only) 3 I2C clock output read-back (read-only) 2 I2C data output (refer to file I2C.LST for more details) 1 I2C clock output 0 I2C control enable SeeAlso: #00929,I2C A0h,#00935 Bitfields for OPTi 82C750 Vendetta (device 0) ECC control: Bit(s) Description (Table 00935) 31-13 upper 19 bits of error address 12-5 syndrome byte for reported error 4 non-correctable error 3 single-bit error 2 nibble error 1 ECC error report enable 0 ECC data path enable SeeAlso: #00929,#00934 Bitfields for OPTi 82C750 Vendetta (device 0) SDRAM select: Bit(s) Description (Table 00936) 15 SDWE# stepping enable 14 reserved (1) (SDRAM) 13-12 reserved 11-6 bank 5-0 SDRAM technology 0 = 16 Mb 1 = 64 Mb 5-0 bank 5-0 SDRAM timing 0 = leadoff 7/6 1 = leadoff 8/7 SeeAlso: #00929 Bitfields for OPTi 82C750 Vendetta (device 0) data path control / EDO X-2-2-2: Bit(s) Description (Table 00937) 7 CPU-to-DRAM FIFO enable 6 1 CLK CAS enable 5-0 RAS5#-RAS0# X-2-2-2 write enable (CPU-to-DRAM FIFO, DRAM write post, and cache readaround write must be enabled) SeeAlso: #00929 Bitfields for OPTi 82C750 Vendetta (device 0) ECC reporting: Bit(s) Description (Table 00938) 31-26 reserved 25-16 single-bit error counter 15 reserved 14 delayed write enable 13-4 single-bit error limit 3 correctable error reporting (0 = NMI, 1 = SMI) 2 single-bit error counter enable (disabling resets counter) 1 error reporting method (0 = NMI, 1 = SMI) 0 NMI/SMI generate disable SeeAlso: #00929 Format of PCI Configuration data for OPTi 82C750 Vendetta (device 1): Offset Size Description (Table 00939) 00h 64 BYTEs header (see #00824) (vendor ID 1045h, device ID C568h) 40h WORD keyboard control (see #00940) 42h WORD interrupt control (see #00941) 44h BYTE pin functionality 1 (see #00942) 45h BYTE reserved 46h WORD cycle control (see #00943) 48h WORD pin functionality 2 (see #00944) 4Ah WORD ROMCS# range control (see #00945) 4Ch BYTE miscellaneous control 1 (see #00946) 4Dh BYTE reserved 4Eh BYTE miscellaneous control 2 (see #00947) 4Fh BYTE miscellaneous control 3 (see #00948) 50h WORD interrupt trigger control (see #00949) 52h WORD interrupt multiplexing control (see #00950) 54h WORD PCI master control (see #00951) 56h WORD serial interrupt source (see #00952) 58h BYTE serial interrupt mode control (see #00953) 59h BYTE pin functionality 3 (see #00954) 5Ah WORD distributed DMA master base address 5Ch BYTE distributed DMA control (see #00955) 5Dh 3 BYTEs reserved 60h BYTE USB interrupt control register (see #00956) 61h BYTE PCI reset control (see #00957) 62h BYTE emulation control (see #00958) 63h BYTE PCI retry control (see #00959) 64h 153 BYTEs reserved FDh BYTE SMI control FEh BYTE stop grant cycle control FFh BYTE host memory parity error SeeAlso: #00878,#00929,#00965 Bitfields for OPTi 82C750 Vendetta (device 1) keyboard control: Bit(s) Description (Table 00940) 15 keyboard port read (read-only) 14 keyboard port write (read-only) 13 keyboard RESET CPUINIT 0 = generate immediately 1 = wait for halt 12 keyboard emulation disable 11-9 PIRQ3# IRQ generation 000 = use interrupt trigger control register (offset 50h) 001 = IRQ5 010-101 = IRQ9-IRQ12 110-111 = IRQ14-IRQ15 8-6 PIRQ2# IRQ generation 5-3 PIRQ1# IRQ generation 2-0 PIRQ0# IRQ generation SeeAlso: #00939,#00941 Bitfields for OPTi 82C750 Vendetta (device 1) interrupt control: Bit(s) Description (Table 00941) 15 ISA IRQ14 blocking enable 14 ISA IRQ15 blocking enable 13 DMA/ISA master to preempt PCI master enable 12 PCI priority is fixed instead of rotating 11-10 back-to-back ISA I/O delay 00 = 3 ATCLKs 01 = 12 ATCLKs 10 = no delay 11 = delay all by 12 ATCLKs 9 PCI master ISA device access disable 8 ISA bus control signals for memory access >16M and I/O access >64K disable 7-6 IRQ15-IRQ14 triggering (0 = edge, 1 = level) 5-2 IRQ12-IRQ9 triggering (0 = edge, 1 = level) 1 IRQ 5 triggering (0 = edge, 1 = level) 0 pin AE16 functionality 0 = DREQ6 1 = EPMI0# SeeAlso: #00939,#00940 Bitfields for OPTi 82C750 Vendetta (device 1) pin functionality 1: Bit(s) Description (Table 00942) 7-6 pin AC15 functionality 00-01 = controlled by bits 1-0 10 = DACK7# 11 = reserved 5-4 pin AE15 functionality 00-01 = controlled by bits 1-0 10 = DACK6# 11 = reserved 3-2 pin AF15 functionality 00-01 = controlled by bits 1-0 10 = DACK5# 11 = reserved 1-0 DACK group-wise programmable pin functionalities 00 = DACK3#-DACK0# 01 = DACK7#-DACK5#, DACK3#, DACK1#, DACK0# 10 = reserved 11 = EDACK2#-EDACK0#, EDACKEN#, PIRQ3#, PIRQ2# SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) cycle control: Bit(s) Description (Table 00943) 15 ISA bus ROM write enable 14 hidden refresh enable 13-12 ATCLK select 00 = LCLK/4 01 = LCLK/3 10 = LCLK/2 11 = LCLK 11 CPU master to PCI slave write 0 = 1 LCLK 1 = 0 LCLK 10-8 PCI master to PCI master preempt timer 000 = no preempt 001 = 260 LCLKs 010 = 132 LCLKs 011 = 68 LCLKs 100 = 36 LCLKs 101 = 20 LCLKs 110 = 12 LCLKs 111 = 5 LCLKs 7 reserved 6 XDIR achieve 0 = accessing ROM, keyboard controller, RTC 1 = accessing ROM, NVRAM 5 PERR# to SERR# conversion enable 4 address parity checking enable 3 target abort SERR# generation enable 2 fast back-to-back enable 1 sample point decoding 0 = slow 1 = subtractive 0 reserved SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) pin functionality 2: Bit(s) Description (Table 00944) 15 pin AF18 functionality (0 = IRQ15, 1 = reserved) 14-13 pin AE19 functionality (00-01 = IRQ12, 10-11 = reserved) 12 pin AD20 functionality (0 = IRQ10, 1 = MIRQ10/12) 11 pin AE21 functionality (0 = IRQ6, 1 = reserved) 10 pin AD22 functionality (0 = IRQ4, 1 = MIRQ4/6) 9-8 pin AD16 functionality (00 = DREQ7, 01 = EPMI3#, 1x = reserved) 7-6 pin AD17 functionality 00 = DREQ3 01 = DREQ3/7 10 = DREQ7 11 = reserved 5-4 pin AD18 functionality 00 = DREQ1 01 = DREQ1/6 10 = DREQ6 11 = reserved 3-2 pin AE18 functionality 00 = DREQ0 01 = DREQ0/5 10 = DREQ5 11 = reserved 1-0 pin T23 functionality (0x = PREQ1#, 1x = reserved) SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) ROMCS# range control: Bit(s) Description (Table 00945) 15 FFFF8000h-FFFFFFFFh ROMCS# disable 14 FFFF0000h-FFFF7FFFh ROMCS# disable 13 FFFE8000h-FFFEFFFFh ROMCS# enable 12 FFFE0000h-FFFE7FFFh ROMCS# enable 11 FFFD8000h-FFFDFFFFh ROMCS# enable 10 FFFD0000h-FFFD7FFFh ROMCS# enable 9 FFFC8000h-FFFCFFFFh ROMCS# enable 8 FFFC0000h-FFFC7FFFh ROMCS# enable 7 F8000h-FFFFFh ROMCS# disable 6 F0000h-F7FFFh ROMCS# disable 5 E8000h-EFFFFh ROMCS# enable 4 E0000h-E7FFFh ROMCS# enable 3 D8000h-DFFFFh ROMCS# enable 2 D0000h-D7FFFh ROMCS# enable 1 C8000h-CFFFFh ROMCS# enable 0 C0000h-C7FFFh ROMCS# enable SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) miscellaneous control 1: Bit(s) Description (Table 00946) 7-5 reserved 4 game port/MPU-401 enable 3 PREQ4#/PGNT4# mux (0 = SDA2/GP3, 1 = PREQ4#/PGNT4#) 2 DACK5# 1-to-0 transition enable 1-0 reserved SeeAlso: #00939,#00947,#00948 Bitfields for OPTi 82C750 Vendetta (device 1) miscellaneous control 2: Bit(s) Description (Table 00947) 7-4 reserved 3 pipeline byte merge enable 2 EOP configuration (0 = output, 1 = input) 1 byte merge enable 0 ISA master data swap disable SeeAlso: #00939,#00946,#00948 Bitfields for OPTi 82C750 Vendetta (device 1) miscellaneous control 3: Bit(s) Description (Table 00948) 7 pin AB15 functionality 0 = DACK5# 1 = PPWRL+PPWRL2 6 IDE functionality support enable 5 reserved (read-only) 4 ISA bus AT command 1 wait state extension disable 3-2 reserved 1 pin AE14 functionality 0 = controlled by offset 44h bits 1-0 1 = GPCS2# 0 reserved SeeAlso: #00939,#00946,#00947 Bitfields for OPTi 82C750 Vendetta (device 1) interrupt trigger control: Bit(s) Description (Table 00949) 15 reserved (1) 14 reserved 13 pin AD15 functionality (0 = DACK2#, 1 = GPCS2#) 12-11 reserved 10 IRQ3 triggering (0 = edge, 1 = level) 9 IRQ4 triggering (0 = edge, 1 = level) 8 IRQ7 triggering (0 = edge, 1 = level) 7-6 IRQ generation when PIRQ3# triggered 00 = disable 01 = IRQ3 10 = IRQ4 11 = IRQ7 5-4 IRQ generation when PIRQ2# triggered 00 = disable 01 = IRQ3 10 = IRQ4 11 = IRQ7 3-2 IRQ generation when PIRQ1# triggered 00 = disable 01 = IRQ3 10 = IRQ4 11 = IRQ7 1-0 IRQ generation when PIRQ0# triggered 00 = disable 01 = IRQ3 10 = IRQ4 11 = IRQ7 SeeAlso: #00939,#00950 Bitfields for OPTi 82C750 Vendetta (device 1) interrupt multiplexing control: Bit(s) Description (Table 00950) 15 pin functionality 0 = AE22:IRQ3, AF21:IRQ5, AE21:IRQ6, AD21:IRQ7, AE20:IRQ9, AF19:IRQ11 1 = AE22:MIRQ3/5, AF21:MIRQ7/9, AE21:MIRQ11/15, AD21:EPMI1#, AE20:EPMI2#, AF19:GMIRQ 14 pin R22 functionality (0 = PREQ2#, 1 = EPMI0#) 13 IRQ1 latching enable 12 IRQ12 latching enable 11 DACKEN# status (0 = active low, 1 = active high) 10 system bus owned by external device 9 flash ROM locking enable 8 reserved 7 IRQ6 triggering (0 = edge, 1 = level) 6-3 IRQ generation when GMIRQ triggered 0000 = disabled 0001-0010 = reserved 0011-0111 = IRQ3-IRQ7 1000 = reserved 1001-1100 = IRQ9-IRQ12 1101 = reserved 1110-1111 = IRQ14-IRQ15 2 reserved (1) 1 priority scheme enable 0 concurrent refresh and IDE cycle enable SeeAlso: #00939,#00949 Bitfields for OPTi 82C750 Vendetta (device 1) PCI master control: Bit(s) Description (Table 00951) 15-12 reserved 11 interrupt request register recover enable 10 DMA address and counter (0 = current, 1 = base) 9 CPU/PCI master access ISA cycle retry enable 8 CPU-to-PCI cycle AHOLD signal use enable (used only when bit 4 = 1) 7 PCI master X-1-1-1 write enable 6 PCI master X-1-1-1 read enable 5 concurrent PCI master/IDE enable 4 new AHOLD protocol enable 3 PCI master non-contiguous byte enable 2 reserved 1 simultaneous hardware PMU and IDE function operation enable 0 ISA refresh disable SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) serial interrupt source: Bit(s) Description (Table 00952) 15-3 IRQ15-IRQ3 interrupt resource (0 = ISA, 1 = serial interrupt) 2 SMI#, IOCHK#, PCIRQ3#-PCIRQ0# interrupt resource 0 = ISA 1 = serial interrupt 1-0 IRQ1-IRQ0 interrupt resource (0 = ISA, 1 = serial interrupt) SeeAlso: #00939,#00953 Bitfields for OPTi 82C750 Vendetta (device 1) serial interrupt mode control: Bit(s) Description (Table 00953) 7-6 serial interrupt control mode 00 = continuous 01 = idle 1x = active 5 reserved 4 data frame slot support 0 = 17 slots (IRQ15-IRQ3, IRQ1-IRQ0, SMI#, IOCHK#) 1 = 21 slots (IRQ15-IRQ3, IRQ1-IRQ0, SMI#, IOCHK#, PCIRQ3#-PCIRQ0#) 3-2 CPU access PCI priority 00 = lowest 01 = higher after 4 PCI master grants 10 = higher after 2 PCI master grants 11 = higher after 3 PCI master grants 1-0 serial interrupt start frame pulse width in continuous/active mode 00 = 4/3 CLK 01 = 6/5 CLK 10 = 8/7 CLK 11 = reserved SeeAlso: #00939,#00952 Bitfields for OPTi 82C750 Vendetta (device 1) pin functionality 3: Bit(s) Description (Table 00954) 7 PCI arbitration time-out mode enable 6 0 wait state for CPU I/O access enable 5 SMI output disable 4 CPU request for PCI bus (0 = enabled, 1 = reserved) 3 reserved 2 refresh preemption disable 1-0 reserved SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) distributed DMA control: Bit(s) Description (Table 00955) 7-5 channel 7-5 enable 4-1 channel 3-0 enable 0 DDMA enable SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) USB interrupt control register: Bit(s) Description (Table 00956) 7 reserved 6-5 buffered DMA control 00 = original DMA with old protocol 01 = reserved 10 = original DMA with PCI master capability 11 = buffered DMA enable 4 reserved 3-0 IRQ generation when USBIRQ triggered 0000 = disabled 0001-0010 = reserved 0011-0111 = IRQ3-IRQ7 1000 = reserved 1001-1100 = IRQ9-IRQ12 1101 = reserved 1110-1111 = IRQ14-IRQ15 SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) PCI reset control: Bit(s) Description (Table 00957) 7 PCI soft reset generate enable 6 PCI slave demand mode buffered DMA retry fix enable 5 IORDY# PCI master delay fix enable 4 ISA command deassertion IOCHRDY delay 0 = <1 ATCLK 1 = >=1 ATCLK 3-2 buffered DMA fix (00 = disable, 11 = enable) 1 reserved 0 ISA master synchronization (1) SeeAlso: #00939 Bitfields for OPTi 82C750 Vendetta (device 1) emulation control: Bit(s) Description (Table 00958) 7 PCIRST# disable 6 SDA2 muxed with XDIR (0 = XDIR, 1 = SDA2) 5 SPKR muxed with MIDI1 (0 = MIDI1, 1 = SPKR) 4 audio mux (0 = MP7-MP0, DACK) 3 audio module enable 2 ATA-33 IDE pin mux scheme (0 = old, 1 = new) 1 REFRESH priority (0 = high, 1 = lowest) 0 port 92h emulation disable SeeAlso: #00939,PORT 0092h Bitfields for OPTi 82C750 Vendetta (device 1) PCI retry control: Bit(s) Description (Table 00959) 7-2 reserved 1 reserved (1) 0 ISA slave PCI master retry 0 = no change 1 = generate BOFF# SeeAlso: #00939 Format of PCI Configuration data for OPTi 82C750 Vendetta (IDE controller): Offset Size Description (Table 00960) 00h 64 BYTEs header (see #00824) (vendor ID 1045h, device ID C621h) 40h BYTE IDE initialization control (see #00961) 41h BYTE reserved 42h BYTE IDE enhanced feature (see #00962) 43h BYTE IDE enhanced mode (see #00963) 44h WORD ultra DMA mode select (see #00964) 46h 186 BYTEs reserved Bitfields for OPTi 82C750 Vendetta (IDE Controller) IDE initialization control: Bit(s) Description (Table 00961) 7-6 bus master IDE PCI bus request when FIFO filled with 00 = 32 bytes (early request disabled) 01 = 30 bytes 10 = 28 bytes 11 = 26 bytes 5 reserved (1) 4 reserved 3 secondary IDE disable 2 I/O addresses relocatable 1-0 IDE device default cycle time 00 = >=600ns (PIO mode 0) 01 = >=383ns (PIO mode 2) 10 = >=240ns (PIO mode 1) 11 = >=180ns (PIO mode 3) SeeAlso: #00960 Bitfields for OPTi 82C750 Vendetta (IDE Controller) IDE enhanced feature: Bit(s) Description (Table 00962) 7 reserved 6 IDE write concurrency enable 5 slave IDE FIFO to ISA bus preemption disable 4 IDE arbiter PCI/IDE concurrency support enable 3 PCI memory commands enable 2 PCI master IDE and IDE cycle concurrency enable 1 PCI master X-1-1-1 MIDE enable 0 reserved SeeAlso: #00960,#00963 Bitfields for OPTi 82C750 Vendetta (IDE Controller) IDE enhanced mode: Bit(s) Description (Table 00963) 7-6 secondary IDE drive 1 enhanced mode 00 = disabled 01 = command recovery in 1 LCLK 10 = command recovery in 0 LCLK 11 = reserved 5-4 secondary IDE drive 0 enhanced mode 00 = disabled 01 = command recovery in 1 LCLK 10 = command recovery in 0 LCLK 11 = reserved 3-2 primary IDE drive 1 enhanced mode 00 = disabled 01 = command recovery in 1 LCLK 10 = command recovery in 0 LCLK 11 = reserved 1-0 primary IDE drive 0 enhanced mode 00 = disabled 01 = command recovery in 1 LCLK 10 = command recovery in 0 LCLK 11 = reserved SeeAlso: #00960,#00963 Bitfields for OPTi 82C750 Vendetta (IDE Controller) ultra DMA mode select: Bit(s) Description (Table 00964) 15 primary IDE disable 14-12 reserved 11-10 secondary IDE drive 1 ultra DMA mode 00 = mode 0 01 = mode 1 10 = mode 2 11 = reserved 9-8 secondary IDE drive 0 ultra DMA mode (same values as bits 11-10) 7-6 primary IDE drive 1 ultra DMA mode (same values as bits 11-10) 5-4 primary IDE drive 0 ultra DMA mode (same values as bits 11-10) 3 secondary IDE drive 1 ultra DMA 33 enable 2 secondary IDE drive 0 ultra DMA 33 enable 1 primary IDE drive 1 ultra DMA 33 enable 0 primary IDE drive 0 ultra DMA 33 enable SeeAlso: #00960 Format of PCI Configuration data for OPTi 82C861/82C871 PCI-to-USB Bus Bridge: Offset Size Description (Table 00965) 00h 64 BYTEs header (see #00878) (vendor ID 1045h, device ID C861h) 40h 4 BYTEs reserved for testing 44h 10 BYTEs reserved 4Eh BYTE I2C control bits 7-5: reserved bit 4: I2C data output read-back (read-only) bit 3: I2C clock output read-back (read-only) bit 2: I2C data output bit 1: I2C clock output bit 0: I2C control enable 4Fh BYTE reserved 50h BYTE PCI host feature control bits 7-4: reserved bit 3: subsystem vendor ID register write disable bit 2: CLKRUN# enable bit 1: port 2 output disable bit 0: port 1 output disable 51h BYTE interrupt assignment bit 7: host controller type 0 = Viper-N+ (send 1 data phase on IRQ driveback) 1 = FireStar (send 2 data phases on IRQ driveback) bit 6: IRQ driveback enable bit 5: reserved bits 4-0: interrupt assignment 00000 = disabled 00001 = PCIRQ0# (default) to 00100 = PCIRQ3#, 00101 = ACPI0 to 01111 = ACPI10 10000 = IRQ0 to 11111 = IRQ15 52h 2 BYTEs reserved 54h DWORD IRQ driveback address bits 1-0: reserved to 00 (read-only) 58h 20 BYTEs reserved 6Ch DWORD reserved (test mode enable) SeeAlso: #00878,#00929,#00939 Format of OPTi FireLink/FireBlast Host Controller memory-mapped registers: Offset Size Description (Table 00966) 00h 256 BYTES standard OpenHCI registers (see #00902) 100h DWORD "HceControl" emulation control (see #00967) 104h DWORD "HceInput" legacy Input Buffer (see #00968) 108h DWORD "HceOutput" legacy Output Buffer (see #00969) 10Ch DWORD "HceStatus" legacy Status (see #00970) SeeAlso: #00902,#00965 Bitfields for OPTi FireLink/FireBlast "HceControl" register: Bit(s) Description (Table 00967) 31-9 reserved 8 A20 gate state 7 IRQ12 active (write 1 to clear) 6 IRQ1 active (write 1 to clear) 5 A20 gate sequence 1 D1h written to port 64h 0 other than D1h written to port 64h 4 external IRQ emulation enable 3 IRQ enable 2 character pending emulation enable 1 (read-only) emulation interrupt condition 0 emulation enable SeeAlso: #00902,PORT 0064h Bitfields for OPTi FireLink/FireBlast "HceInput" register: Bit(s) Description (Table 00968) 31-8 reserved 7-0 data written to port 60h or 64h SeeAlso: #00902,#00970,PORT 0060h,PORT 0064h Bitfields for OPTi FireLink/FireBlast "HceOutput" register: Bit(s) Description (Table 00969) 31-8 reserved 7-0 data to be returned on read of port 60h SeeAlso: #00902,PORT 0060h Bitfields for OPTi FireLink/FireBlast "HceStatus" register: Bit(s) Description (Table 00970) 31-8 reserved 7 parity error 6 time-out 5 aux output full enable 4 keyboard inhibit switch state 0 inhibited 1 not inhibited 3 data written to port: 0 port 60h 1 port 64h 2 warm/cold boot flag 1 input full 0 output full SeeAlso: #00902,PORT 0060h,PORT 0064hTop
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (PicoPower devices) AX = B10Ah subfn 1066h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h Format of PicoPower Vesuvius V3-LS ISA Bridge configuration: Offset Size Description (Table 00971) 00h 64 BYTEs header (see #00878) (vendor ID 1066h, device ID 0002h or 8002h) 40h WORD distributed DMA control register (see #00972) 42h BYTE distributed DMA status register (see #00973) 44h DWORD slave DMAC CH0 base register (see #00974) 48h DWORD slave DMAC CH1 base register (see #00974) 4Ch DWORD slave DMAC CH2 base register (see #00974) 50h DWORD slave DMAC CH3 base register (see #00974) 54h DWORD slave DMAC CH5 base register (see #00974) 58h DWORD slave DMAC CH6 base register (see #00974) 5Ch DWORD slave DMAC CH7 base register (see #00974) 90h DWORD PCI-to-ISA bridge configuration register (see #00975) 94h DWORD ISA memory address positive decode (see #00976) 98h DWORD I/O address positive decode (see #00977) 9Ch WORD I/O configuration address register (see #00978) A0h DWORD programmable ISA I/O address decoder (see #00979) A4h 6 DWORD programmable ISA range decoder registers 1-6 (see #00980) C0h 64 BYTEs reserved SeeAlso: #00773 Bitfields for PicoPower Vesuvius V3-LS distributed DMA control register: Bit(s) Description (Table 00972) 15-6 reserved 5 (revision BB & later) secondary slave floppy disk distributed access enable (if bit 1 = 0) 4 (revision BB & later) secondary slave hard disk distributed access enable (if bit 1 = 0) 3 slave floppy drive port distributed access enable (if bit 1 = 0) 2 slave hard drive port distributed access enable (if bit 1 = 0) 1 distributed DMA mode 0 = master 1 = slave 0 distributed DMA function enable SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS distributed DMA status register: Bit(s) Description (Table 00973) 7-1 reserved 0 DDMA status (write 1 to clear) SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS slave DMAC CH0-7 base register: Bit(s) Description (Table 00974) 31-16 reserved (0) 15-7 channel base address 6-4 channel base address (hardwired to channel number) 3 extended address (0) 2-1 size (00 for channel 0-3, 01 for channel 5-7) 0 channel enable SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS PCI-to-ISA bridge configuration: Bit(s) Description (Table 00975) 31-15 reserved 14 AD/SD/SA bus staggering enable 13 ISA bridge PCI positive decode enable 12 ISA bridge PCI subtractive decode disable 11-10 reserved 9 retry enable 8 lock input enable 7 SERR#/NMI status flag (write 1 to clear) 6 PERR#/NMI status flag (write 1 to clear) 5 SERR# triggers NMI enable 4 PERR# triggers NMI enable 3 reserved 2-0 (revision BB and later) system configuration setting SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS ISA memory address positive decode: Bit(s) Description (Table 00976) 31-9 reserved 8 ISA memory A0000h-AFFFFh and FFA0000h-FFFAFFFFh decode enable 7 ISA memory B0000h-BFFFFh and FFB0000h-FFFBFFFFh decode enable 6 ISA memory C0000h-C7FFFh and FFC0000h-FFFC7FFFh decode enable 5 ISA memory C8000h-CFFFFh and FFC8000h-FFFCFFFFh decode enable 4 ISA memory D0000h-D7FFFh and FFD0000h-FFFD7FFFh decode enable 3 ISA memory D8000h-DFFFFh and FFD8000h-FFFDFFFFh decode enable 2 ISA memory E0000h-E7FFFh and FFE0000h-FFFE7FFFh decode enable 1 ISA memory E8000h-EFFFFh and FFE8000h-FFFEFFFFh decode enable 0 ISA memory F0000h-FFFFFh and FFF0000h-FFFFFFFFh decode enable SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS I/O address positive decode: Bit(s) Description (Table 00977) 31-24 reserved 23 (revision BB and later) I/O read 377h decode enable 22 (revision BB and later) I/O read 3F7h decode enable 21 PC NET (360h-36Fh) decode enable 20 audio 5 (388h-38Bh) decode enable 19 audio 4 (250h-25Fh) decode enable 18 audio 3 (240h-24Fh) decode enable 17 audio 2 (230h-23Fh) decode enable 16 audio 1 (220h-22Fh) decode enable 15 audio 0 (201h) decode enable 14 (revision BB and later) ISA secondary floppy (370h-375h, 377h write) decode enable 13 (revision BB and later) ISA primary floppy (3F0h-3F5h, 3F7h write) decode enable 12 (revision BB and later) ISA secondary IDE (170h-177h, 376h) decode enable 11 (revision BB and later) ISA primary IDE (1F0h-1F7h, 3F6h) decode enable 10 ISA LPT3 (3BCh-3BFh, 7BCh-7BEh) decode enable 9 ISA LPT2 (278h-27Fh, 678h-67Ah) decode enable 8 ISA LPT1 (378h-37Fh, 778h-77Ah) decode enable 7 ISA COM4 (2E8h-2EFh) decode enable 6 ISA COM3 (3E8h-3EFh) decode enable 5 ISA COM2 (2F8h-2FFh) decode enable 4 ISA COM1 (3F8h-3FFh) decode enable 3 ISA system I/O (00h-FFh) decode enable 2 configuration (24h/26h) decode enable 1-0 reserved SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS I/O configuration address register: Bit(s) Description (Table 00978) 15-10 reserved 9-1 configuration I/O address 0 configuration address register enable SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS programmable ISA I/O address decoder: Bit(s) Description (Table 00979) 31-18 reserved 17 ISA range decoder 6 read enable 16 ISA range decoder 6 write enable 15 ISA range decoder 6 type 0 = memory 1 = I/O 14 ISA range decoder 5 read enable 13 ISA range decoder 5 write enable 12 ISA range decoder 5 type (same values as bit 15) 11 ISA range decoder 4 read enable 10 ISA range decoder 4 write enable 9 ISA range decoder 4 type (same values as bit 15) 8 ISA range decoder 3 read enable 7 ISA range decoder 3 write enable 6 ISA range decoder 3 type (same values as bit 15) 5 ISA range decoder 2 read enable 4 ISA range decoder 2 write enable 3 ISA range decoder 2 type (same values as bit 15) 2 ISA range decoder 1 read enable 1 ISA range decoder 1 write enable 0 ISA range decoder 1 type (same values as bit 15) SeeAlso: #00971 Bitfields for PicoPower Vesuvius V3-LS programmable ISA range decoder 1: Bit(s) Description (Table 00980) 31-16 ISA address compare 15-0 ISA device address (memory address bits 23-8, I/O address bits 15-0) SeeAlso: #00971Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Brooktree devices) AX = B10Ah subfn 1066h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #00878) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h Format of Brooktree Bt8230 ATM controller configuration: Offset Size Description (Table 00981) 00h 64 BYTEs header (see #00878) (vendor ID 109Eh, device ID 8230h) 10h DWORD address at which to map external memory (multiple of 16M) internal registers are mapped at offsets 0000h-01FFh; Bt8222 registers are mapped at 0200h-03FFh, and T1/E1 Framer registers are mapped at 0800h-0FFFh. Only 32-bit memory accesses are used 40h BYTE maximum burst length (00h not allowed, default = 10h) 41h BYTE "SPECIAL_STATUS" bit 3: attempted to perform DMA on PCI while bus-mastering disabled in PCI command word bit 2: PCI/DMA synchronization error occurred bit 1: PCI bus master encountered fatal error bit 0: direction of transaction which encountered error =0 write (refer to offset 48h) =1 read (refer to offset 44h) Note: bits 3-1 are write-clear, bit 0 is read-only 42h 2 BYTEs unused 44h DWORD current read target address for PCI bus master (read-only) 48h DWORD current write target address for PCI bus master (read-only) 4Ch 180 BYTEs reserved SeeAlso: #00790Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (VIA Technologies devices)
AX = B10Ah subfn 1106h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh) (see #00878)
Return: CF clear if successful
ECX = dword read
CF set on error
AH = status (00h,87h) (see #00729)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
Format of Via Technologies' VT82C580VPX CPU-PCI bridge configuration:
Offset Size Description (Table 00982)
00h 64 BYTEs header (see #00878)
(vendor ID 1106h, device ID 0585h)
40h 16 BYTEs unused
50h BYTE cache control 1
51h BYTE cache control 2
52h BYTE non-cacheable control
53h BYTE system performance control
54h BYTE non-cacheable region 1 (high)
55h BYTE non-cacheable region 1 (low)
56h BYTE non-cacheable region 2 (high)
57h BYTE non-cacheable region 2 (low)
58h BYTE DRAM configuration 1
59h BYTE DRAM configuration 2
5Ah 6 BYTEs DRAM row N ending address (N=0-5)
60h BYTE DRAM type
61h BYTE shadow RAM control 1
62h BYTE shadow RAM control 2
63h BYTE shadow RAM control 3
64h BYTE DRAM reference timing
65h BYTE DRAM timing control 1 (see #00996)
66h BYTE DRAM timing control 2 (see #00997)
67h BYTE 32-bit DRAM width (see #00998)
68h BYTE
69h BYTE reserved ("do not program")
6Ah BYTE refresh counter
6Bh BYTE refresh control
6Ch BYTE SDRAM control
6Dh BYTE DRAM control drive strength
6Eh 2 BYTEs reserved
70h BYTE PCI buffer control
71h BYTE CPU-to-PCI flow control 1
72h BYTE CPU-to-PCI flow control 2
73h BYTE PCI master control 1
74h BYTE PCI master control 2
75h BYTE PCI arbitration 1
76h BYTE PCI arbitration 2
77h BYTE reserved for chip test
78h 136 BYTEs reserved
!!!via\580vpx.pdf
SeeAlso: #00817
Format of AMD-640 System Controller:
Offset Size Description (Table 00983)
00h 64 BYTEs header (see #00878)
(vendor ID 1106h, device ID 0595h)
0Dh BYTE latency timer (bits 7-3)
00h = 32*8 PCI clocks
01h = 1*8 PCI clocks
N = N*8 PCI clocks
40h 16 BYTEs unused???
50h BYTE cache control 1 (see #00984)
51h BYTE cache control 2 (see #00985)
52h BYTE non-cacheable control (see #00986)
53h BYTE system performance control (see #00987)
54h WORD non-cacheable region 1 (see #00988)
56h WORD non-cacheable region 2 (see #00988)
58h BYTE DRAM configuration register 1 (see #00989)
59h BYTE DRAM configuration register 2 (see #00990)
5Ah 6 BYTEs end of DRAM banks 0-5
each register specifies bits 29-22 of the bank's ending address
60h BYTE DRAM type (see #00991)
61h BYTE shadow RAM control register 1 (see #00992)
62h BYTE shadow RAM control register 2 (see #00993)
63h BYTE shadow RAM control register 3 (see #00994)
64h BYTE DRAM timing (see #00995)
65h BYTE DRAM control register 1 (see #00996)
66h BYTE DRAM control register 2 (see #00997)
67h BYTE 32-bit DRAM width control register (see #00998)
68h 2 BYTEs reserved
6Ah BYTE DRAM refresh counter (in units of 16 CPU clocks)
6Bh BYTE DRAM refresh control register (see #00999)
6Ch BYTE SDRAM control register (see #01000)
6Dh BYTE DRAM drive strength control register (see #01001)
6Eh BYTE ECC control register (see #01002)
6Fh BYTE ECC status register (see #01003)
70h BYTE PCI buffer control (see #01004)
71h BYTE CPU-to-PCI flow control 1 (see #01005)
72h BYTE CPU-to-PCI flow control 2 (see #01006)
73h BYTE PCI target control (see #01007)
74h BYTE PCI initiator control (see #01008)
75h BYTE PCI arbitration control 1 (see #01009)
76h BYTE PCI arbitration control 2 (see #01010)
77h 137 BYTEs reserved
Note: the AMD-640 uses PCI configuration mechanism #1; bus/device/function
are always 00h/00h/00h
SeeAlso: #00817,#01011
Bitfields for AMD-640 Cache Control Register 1:
Bit(s) Description (Table 00984)
7-6 cache enable
00 disabled
01 initialization (BIOS fills L2 cache to known state)
10 enabled (normal operation)
11 reserved
5 reserved (do not change)
4-3 tag configuration
00 eight tag bits, no "modify" bit
01 seven tag bits, one modify bit
10 ten tag bits, no modify bit
11 nine tag bits, one modify bit
2 reserved (0)
1-0 type of cache RAM
00 none
01 reserved
10 burst SRAM
11 pipeline burst SRAM
SeeAlso: #00983,#00985
Bitfields for AMD-640 Cache Control Register 2:
Bit(s) Description (Table 00985)
7-6 reserved (0)
5 backoff processor until L2 cache filled
4 reserved (0)
3 two banks of SRAM instead of one
2 reserved (0)
1-0 L2 cache size
00 = 256K
01 = 512K
10 = 1M
11 = 2M
SeeAlso: #00983,#00984,#00986
Bitfields for AMD-640 Non-Cacheable Control Register:
Bit(s) Description (Table 00986)
7 segment C000h-C7FFh cacheable and write-protected
6 D000h-DFFFh cacheable and write-protected
5 E000h-EFFFh cacheable and write-protected
4 F000h-FFFFh cacheable and write-protected
3 reserved (0)
2 force L2 cache fill
1 reserved (1)
0 L2 write mode (0 = writeback, 1 = write-through)
SeeAlso: #00983,#00985,#00987
Bitfields for AMD-640 System Performance Control Register:
Bit(s) Description (Table 00987)
7 enable read-around-write
6 enable cache read pipeline cycle
5 enable cache write pipeline cycle
4 enable DRAM pipeline cycle
3 enable PCI Peer Concurrence (PCI initiator can transfer to another
PCI device without blocking memory or CPU bus)
2-0 reserved (0)
SeeAlso: #00983,#00986
Bitfields for AMD-640 Non-Cacheable Region register:
Bit(s) Description (Table 00988)
15-11 bits 20-16 of region's base address
10-8 size of non-cacheable area
000 disabled
001 = 64K
010 = 128K
...
110 = 2M
111 = 4M
7-0 bits 28-21 of region's base address
SeeAlso: #00983,#00989
Bitfields for AMD-640 DRAM Configuration Register 1:
Bit(s) Description (Table 00989)
7-5 type of address mapping for memory banks 0 and 1
---EDO/FastPageMode---
000 eight-bit column address
001 nine-bit column address
010 ten-bit column address
011 eleven-bit column address
100 twelve-bit column address
other reserved
---SDRAM---
0xx = 16-Mbit SDRAM (see #00991)
1xx = 64-Mbit SDRAM
4 reserved (0)
3-1 type of address mapping ofr memory banks 2 and 3
0 reserved (0)
SeeAlso: #00983,#00990
Bitfields for AMD-640 DRAM Configuration Register 2:
Bit(s) Description (Table 00990)
7-5 type of address mapping for memory banks 4 and 5 (see #00989)
4-3 reserved (0)
2-0 last populated memory bank
000 - 101 = Bank0 - Bank5
110,111 reserved
Note: banks 2-4 are non-cacheable if tag RAM is ten bits + modified bit
SeeAlso: #00983,#00989
Bitfields for AMD-640 DRAM Type register:
Bit(s) Description (Table 00991)
7-6 reserved
5-4 type of DRAM in banks 4 and 5
00 fast page mode (FPM)
01 extended data out (EDO)
10 reserved
11 synchronous DRAM (SDRAM)
3-2 type of DRAM in banks 2 and 3
1-0 type of DRAM in banks 0 and 1
SeeAlso: #00983,#00989,#00990
Bitfields for AMD-640 Shadow RAM Control Register 1:
Bit(s) Description (Table 00992)
7-6 segment CC00h-CFFFh shadow RAM control
00 shadowing disabled
01 write enabled
10 read enabled
11 both read and write enabled
5-4 segment C800h-CBFFh shadow RAM control
3-2 segment C400h-C7FFh shadow RAM control
1-0 segment C000h-C3FFh shadow RAM control
SeeAlso: #00983,#00993,#00994
Bitfields for AMD-640 Shadow RAM Control Register 2:
Bit(s) Description (Table 00993)
7-6 segment DC00h-DFFFh shadow RAM control
00 shadowing disabled
01 write enabled
10 read enabled
11 both read and write enabled
5-4 segment D800h-DBFFh shadow RAM control
3-2 segment D400h-D7FFh shadow RAM control
1-0 segment D000h-D3FFh shadow RAM control
SeeAlso: #00983,#00992,#00994
Bitfields for AMD-640 Shadow RAM Control Register 3:
Bit(s) Description (Table 00994)
7-6 segment E000h-EFFFh shadow RAM control
00 shadowing disabled
01 write enabled
10 read enabled
11 both read and write enabled
5-4 segment F000h-FFFFh shadow RAM control
3-2 ISA memory hole
00 none
01 = 512K-640K
10 = 15M-16M
11 = 14M-16M
1 enable SMI redirection
if set: 30000h-3FFFFh redirected to B0000h, 40000h-4FFFFh to A0000h
0 redirect video RAM accesses (A0000h-BFFFFh) to system DRAM rather than
PCI bus (used to initialize SMRAM at B0000h)
SeeAlso: #00983,#00992,#00993
Bitfields for AMD-640 DRAM Timing register:
Bit(s) Description (Table 00995)
7-6 RAS# precharge time
00 = 2T (for 50ns DRAM) [T = HCLK period]
01 = 3T (60ns)
10 = 4T (70ns)
11 = 6T
5-4 RAS# pulse width
00 = 3T (for 50ns DRAM)
01 = 4T (60ns)
10 = 5T (70ns)
11 = 6T
3-2 CAS# pulse width
FPM: 00=1T, 01=2T, 10=3T, 11=4T
EDO: 00=4T, 01=1T, 10=2T, 11=3T
1 write pulse width (0 = 1T, 1 = 2T)
0 delay from column address to CAS# (0 = 1T, 1 = 2T)
SeeAlso: #00983,#00994
Bitfields for AMD-640 DRAM Control Register 1:
Bit(s) Description (Table 00996)
7-6 page mode control
00 close page after access
01 reserved
10 keep page open until timeout or page miss
11 close page if processor has not accessed DRAM for 8 CPU cycles
5 enable fast DRAM decoding
4 reduce EDO DRAM leadoff cycle from 6T to 5T
3 delay DRAM data latch by 1/2 clock
2 (AMD-640) reserved
(VT82C580VPX) Pin88 function (0 = DB32, 1 = TA9)
1 reserved (0)
0 delay DRAM read cycle by 1T whenever write buffer contains data
must be set if read-around-write is enabled (see #00987)
SeeAlso: #00983,#00997,#00982
Bitfields for AMD-640 DRAM Control Register 2:
Bit(s) Description (Table 00997)
7 enable EDO test mode
when set, EDO RAM contents will read correctly, FPM not
6 reserved (0)
5-3 (AMD-640) reserved (0)
5 (VT82C580VPX) SDRAM CAS# latency (0 = latency 2, 1 = latency 3)
4 (VT82C580VPX) reserved (0)
3 (VT82C580VPX) enable Turbo EDO mode (0 = x-2-2-2, 1 = x-1-1-1 bursts)
2 add one wait state for memory data-to-host data pop
1 reduce RAS# precharge by 1T for SDRAM
0 reduce RAS# to CAS# delay for SDRAM
Note: bits 1 and 0 have no effect unless SDRAM has been selected via the
DRAM type register (see #00991)
SeeAlso: #00983,#00996,#00982
Bitfields for AMD-640 32-bit DRAM Width Control register:
Bit(s) Description (Table 00998)
7 RAS# to Column Address delay (0 = 1T, 1 = 2T)
6 delay NA# by 1T
5-0 widths of banks 5 - 0
AMD-640 documentation clains that all bits should be cleared
for VT82C580VPX, settings are 0 = 64-bit, 1 = 32-bit (only applicable
when two banks of PBSRAM are installed)
SeeAlso: #00983,#00982,#00997,#00999
Bitfields for AMD-640 DRAM Refresh Control register:
Bit(s) Description (Table 00999)
7 enable CAS#-before-RAS# refresh
6 enable burst refresh (four rows every 60 us, not one every 15 us)
5-0 reserved (0)
SeeAlso: #00983,#00998
Bitfields for AMD-640 SDRAM Control Register:
Bit(s) Description (Table 01000)
7 enable 4-bank interleave for 64-Mbit SDRAMs (when bit 5 set)
6 enable SDRAM burst write
5 enable SDRAM bank interleave
(when set, reduces 3-line burst from 8-1-1-1-3-1-1-1-3-1-1-1 to 8-1...)
4 reserved (0)
3 SDRAM CAS# latency (0 = latency 2, 1 = latency 3)
2-0 SDRAM Operation Mode
000 normal SDRAM
001 enable NOP command
010 convert CPU-to-DRAM cycles into All Banks Precharge command
011 convert CPU-to-DRAM cycles into commands on MA[11:0]
100 enable CAS#-before-RAS# cycles
other reserved
SeeAlso: #00983,#00999
Bitfields for AMD-640 DRAM Drive Strength Control register:
Bit(s) Description (Table 01001)
7 bank decoding test (1="for production test only. DO NOT SET.")
6 strength of MA[1:0] drive (0 = 12ma, 1 = 24ma)
5 function of N17 and M17 pins
0 N17 is RAS5#, M17 is RAS4#
1 N17 is MA1, M17 is MA0
4 force SMM mode (when set, act as if SMIACT# is asserted)
3 strength of SDRAM command lines (0 = 12ma, 1 = 24ma)
2 strength of MA[13:2] and WEx# drive (0 = 12ma, 1 = 24ma)
1 strength of CAS# drive (0 = 12ma, 1 = 24ma)
0 strength of RAS# drive (0 = 12ma, 1 = 24ma)
SeeAlso: #00983,#00999
Bitfields for AMD-640 ECC Control Register:
Bit(s) Description (Table 01002)
7 ECC mode select (0 = parity, 1 = ECC)
6 reserved (0)
5 assert SERR# for ECC multibit errors
4 assert SERR# for ECC single-bit errors
3 add 1T for SDRAM read cycles with ECC (required when ECC mode enabled)
2 enable ECC for banks 5 and 4
1 enable ECC for banks 3 and 2
0 enable ECC for banks 1 and 0
SeeAlso: #00983,#01003
Bitfields for AMD-640 ECC Status Register:
Bit(s) Description (Table 01003)
7 multi-bit error detected (write-clear)
6-4 number of DRAM bank containing multi-bit error (write-clear)
3 single-bit error detected (write-clear)
2-0 number of DRAM bank containing single-bit error (write-clear)
SeeAlso: #00983,#01002
Bitfields for AMD-640 PCI Buffer Control register:
Bit(s) Description (Table 01004)
7 enable CPU-to-PCI posted writes
6 enable PCI-to-DRAM posted writes
5 enable PCI-to-DRAM prefetch
4-2 reserved (0)
1 disable PCI retry for processor QuadWord access
0 CPU-to-PCI buffer flushing
0 flushing has priority over bus grants
1 bus-grant to another PCI initiator has priority over flushing
SeeAlso: #00983
Bitfields for AMD-640 CPU-to-PCI Flow Control 1 register:
Bit(s) Description (Table 01005)
7,3 PCI burst control
00 no bursts, every write goes to write buffer
01 burst writes placed in write buffer, non-burst writes sent to PCI
bus immediately after write buffers flushed
1x all writes go to write buffer; bursting performed for burstable
transactions
6 enable byte merge
5 reserved (1)
4 enable posted PCI I/O cycle writes
2 eanble fast back-to-back PCI writes
1 enable quick frame generation (FRAME# asserted one clock early)
0 add one wait state to IRDY#
SeeAlso: #00983,#01006
Bitfields for AMD-640 CPU-to-PCI Flow Control 2 register:
Bit(s) Description (Table 01006)
7 unsuccessful retry (16 or 64 times) has occurred (write-clear)
6 retry timeout action
0 retry continuously, recording status
1 flush buffer; if reading, return FFFFFFFFh
5-4 retry count and backoff
00 retry twice, backoff processor
01 retry 16 times, set bit 7 on failure
10 retry four times, backoff processor
11 retry 64 times, set bit 7 on failure
3 discard failed data from write buffer when retry fails
2 backoff processor if PCI read retry fails
1 assert FRAME# one cycle earlier than indicated by offset 71h bit 1
0 reduce TRDY#-to-BRDY# by one HCLK on processor reads of PCI target
SeeAlso: #00983,#01005,#01007
Bitfields for AMD-640 PCI Target Control register:
Bit(s) Description (Table 01007)
7 slow memory decoding (must be set if fast back-to-back cycles enabled)
6 add one wait state to TRDY# response on reads
5 add one wait state to TRDY# response on writes
4 reserved (0)
3 assert STOP# after write timeout
2 assert STOP# after read timeout
1 enable sampling of PCI LOCK# pin
0 force AMD-640 to initiate PCI arbitration if FRAM# not asserted within
16 PCI clocks of last GNT#
SeeAlso: #00983,#01006,#01008
Bitfields for AMD-640 PCI Initiator Control register:
Bit(s) Description (Table 01008)
7 enable enhanced PCI commands (Memory Read Line, Memory Read Multiple,
and Memory Write and Invalidate)
6 enable single-write byte merging
5-0 reserved (0)
SeeAlso: #00983,#01007,#01008
Bitfields for AMD-640 PCI Arbitration Control 1 register:
Bit(s) Description (Table 01009)
7 arbitration priority
0 = fixed (high-to-low is REQ1#, REQ2#, REQ3#, REQ4#, PREQ#, and CPU)
1 = fair (round-robin) arbitration
6 arbitration mode
0 arbitrate at end of REQ#
1 arbitrate at end of each FRAME# (allows pre-emption by a
higher-priority initiator)
5-4 reserved (0)
3-0 number of idle time periods of 32 PCI clocks before arbitration is
forced (0000 disables timeout)
SeeAlso: #00983,#01008,#01010
Bitfields for AMD-640 PCI Arbitration Control 2 register:
Bit(s) Description (Table 01010)
7 enable initiator priority rotation
=0 use arbitration priority as set by offset 75h bit 7 (see #01009)
6 reserved (0)
5-4 initiator priority rotation control
00 disabled (use offset 75h bit 7 setting)
01 grant to processor after every PCI initiator grant
10 grant to processor after every other PCI initiator grant
11 grant to processor after every three PCI initiator grants
3-0 reserved (0)
SeeAlso: #00983,#01009
Format of AMD-645 Peripheral Bus Controller, function 0 (PCI-ISA bridge) data:
Offset Size Description (Table 01011)
00h 64 BYTEs header (see #00878)
(vendor ID 1106h, device ID 0586h)
40h BYTE ISA bus control (see #01012)
41h BYTE ISA Test Mode (see #01013)
42h BYTE ISA clock control (see #01014)
43h BYTE ROM Decode Control (see #01015)
44h BYTE keyboard controller control (see #01016)
45h BYTE Type F DMA control (see #01017)
46h BYTE Miscellaneous control 1 (see #01018)
47h BYTE Miscellaneous control 2 (see #01019)
48h BYTE Miscellaneous control 3 (see #01020)
49h BYTE reserved
4Ah BYTE IDE interrupt routing (see #01021)
4Bh BYTE reserved
4Ch BYTE PCI memory hole bottom, bits 23-16
4Dh BYTE PCI memory hole top, bits 23-16
(if top is <= bottom, hole is disabled)
4Eh WORD DMA/Master memory access control 3 (see #01022)
50h BYTE PnP DRQ Routing (see #01023)
51h 3 BYTEs reserved
54h BYTE PCI IRQ Edge/Level selection (see #01024)
55h BYTE PnP Routing for external MIRQ0/1 (see #01025)
56h BYTE PnP Routing for PCI INTB/INTA (see #01027)
57h BYTE PnP Routing for PCI INTD/INTC (see #01028)
58h BYTE PnP Routing for external MIRQ2 (see #01029)
59h BYTE MIRQ pin configuration (see #01030)
5Ah BYTE XD Power-On Strap Options (see #01031)
5Bh BYTE internal RTC test mode (see #01032)
5Ch 4 BYTEs reserved
60h WORD distributed DMA, channel 0 base address/enable (see #01033)
62h WORD distributed DMA, channel 1 base address/enable (see #01033)
64h WORD distributed DMA, channel 2 base address/enable (see #01033)
66h WORD distributed DMA, channel 3 base address/enable (see #01033)
68h WORD reserved
6Ah WORD distributed DMA, channel 5 base address/enable (see #01033)
6Ch WORD distributed DMA, channel 6 base address/enable (see #01033)
6Eh WORD distributed DMA, channel 7 base address/enable (see #01033)
70h 144 BYTEs reserved
SeeAlso: #00817,#00983,#01034,#01046
Bitfields for AMD-645 ISA Bus Control register:
Bit(s) Description (Table 01012)
7 extra delay on ISA commands (default is disabled)
6 enable extended ISA bus ready (default is disabled)
5 ISA slave wait states (0=4 wait states [default], 1=5 wait states)
4 chipset I/O wait states (0=2 wait states [default], 1=4 wait states)
3 I/O recovery time enabled
2 enable extended ALE
1 no ROM wait states (default is clear, 1 wait state)
0 enable ROM writes
SeeAlso: #01011
Bitfields for AMD-645 ISA Test Mode register:
Bit(s) Description (Table 01013)
7-6 reserved (0)
5 enable fast reset via PORT 0092h
4 reserved (0)
3 double DMA clock (=0 DMA at 1/2 ISA clock, =1 DMA at full ISA clock)
2-0 reserved (0)
SeeAlso: #01011,#01012,#01014
Bitfields for AMD-645 ISA Clock Control register:
Bit(s) Description (Table 01014)
7 disable "Latch IO16#"
6-4 reserved (0)
3 enable ISA Bus clock select via bits 2-0 (=0 use PCLK/4)
2-0 ISA Bus clock select
000 PCLK/3 (default)
001 PCLK/2
010 PCLK/4
011 PCLK/6
100 PCLK/5
101 PCLK/10
110 PCLK/12
111 OSC/2
Note: in order to safely change the ISA clock, bit 3 must first be cleared,
then bits 2-0 may be changed, and finally bit 3 can be set again
SeeAlso: #01011,#01013
Bitfields for AMD-645 ROM Decode Control register:
Bit(s) Description (Table 01015)
7 enable 64K ROM at FFFE00000h-FFFEFFFFh
6 enable 384K ROM at FFF80000h-FFFDFFFFh
5 enable 32K ROM at E8000h-EFFFFh
4 enable 32K ROM at E0000h-E7FFFh
3 enable 32K ROM at D8000h-D8FFFh
2 enable 32K ROM at D0000h-D7FFFh
1 enable 32K ROM at C8000h-CFFFFh
0 enable 32K ROM at C0000h-C7FFFh
SeeAlso: #01011
Bitfields for AMD-645 Keyboard Controller Control register:
Bit(s) Description (Table 01016)
7-4 reserved (0)
3 enable Mouse Lock
2-0 reserved (0)
SeeAlso: #01011
Bitfields for AMD-645 Type-F DMA Control register:
Bit(s) Description (Table 01017)
7 enable line buffer from ISA Master/DMA to PCI
6-4 enable Type F timing on DMA Channels 7, 6, 5
3-0 enable Type F timing on DMA Channels 3-0
SeeAlso: #01011
Bitfields for AMD-645 Miscellaneous Control 1 register:
Bit(s) Description (Table 01018)
7-5 reserved (0)
4 enable command register test mode
(when set, PCI offset 04h bits 0-1 become writable and bit 3 read-only)
3-2 reserved (0)
1 disallow interruptions of PCI burst reads
0 enable posted memory writes
SeeAlso: #01011,#01019,#01020
Bitfields for AMD-645 Miscellaneous Control 2 register:
Bit(s) Description (Table 01019)
7 use INIT as CPU reset signal instead of CPURST
6 enable PCI transaction delay
5 enable ports 04D0h-04D1h (per EISA spec)
4 enable interrupt controller shadow register
3 reserved (0)
2 enable write delay transaction time-out timer
1 enable read delay transaction time-out timer
0 software PCI reset -- set to cause a PCI reset via PCIRST pin
SeeAlso: #01011,#01018,#01020,PORT 04D0h
Bitfields for AMD-645 Miscellaneous Control 3 register:
Bit(s) Description (Table 01020)
7-4 reserved (0)
3 disable RTC PORT 0074h and PORT 0075h
2 disable integrated USB controller
1 disable integrated IDE controller
0 add 512K to offset 4Eh bits 15-12 at top of PCI memory
SeeAlso: #01011,#01018,#01019,PORT 0074h"AMD-645"
Bitfields for AMD-645 IDE Interrupt Routing register:
Bit(s) Description (Table 01021)
7 wait for PGNT before Grant to ISA Master/DMA
6 port 00xxh bus select (0=access via SD bus, 1=access via XD bus)
5-4 reserved (0)
3-2 secondary IDE channel IRQ (same encoding as primary)
1-0 primary IDE channel IRQ
00 IRQ14 (default for primary)
01 IRQ15 (default for secondary)
10 IRQ10
11 IRQ11
SeeAlso: #01011
Bitfields for AMD-645 DMA/Master Memory Access Control 3 register:
Bit(s) Description (Table 01022)
15-12 top of PCI memory for ISA DMA/Master access, bits 23-20, less 1
11 accesses to E0000h-EFFFFh forwarded to PCI
10 accesses to A0000h-BFFFFh forwarded to PCI
9 accesses to 80000h-9FFFFh forwarded to PCI
8 accesses to 00000h-7FFFFh forwarded to PCI
7 accesses to DC000h-DFFFFh forwarded to PCI
6 accesses to D8000h-DBFFFh forwarded to PCI
5 accesses to D4000h-D7FFFh forwarded to PCI
4 accesses to D0000h-D3FFFh forwarded to PCI
3 accesses to CC000h-CFFFFh forwarded to PCI
2 accesses to C8000h-CBFFFh forwarded to PCI
1 accesses to C4000h-C7FFFh forwarded to PCI
0 accesses to C0000h-C3FFFh forwarded to PCI
SeeAlso: #01011
Bitfields for AMD-645 PnP DRQ Routing register:
Bit(s) Description (Table 01023)
7-0 reserved (always read 04h)
SeeAlso: #01011,#01024
Bitfields for AMD-645 PCI IRQ Edge/Level Select register:
Bit(s) Description (Table 01024)
7-4 reserved
3 PIRQA# is edge-sensitive rather than level-sensitive
2 PIRQB# is edge-sensitive
1 PIRQC# is edge-sensitive
0 PIRQD# is edge-sensitive
SeeAlso: #01011,#01023,#01025
Bitfields for AMD-645 PnP IRQ Routing 1 register:
Bit(s) Description (Table 01025)
7-4 routing for MIRQ1 (see #01026)
3-0 routing for MIRQ0 (see #01026)
SeeAlso: #01011,#01024
(Table 01026)
Values for AMD-645 IRQ routing:
0000 disabled
0001 IRQ1
0010 reserved
0011 IRQ3
...
0111 IRQ7
1000 reserved
1001 IRQ9
...
1100 IRQ12
1101 reserved
1110 IRQ14
1111 IRQ15
SeeAlso: #01025,#01027,#01028,#01029
Bitfields for AMD-645 PnP IRQ Routing 2 register:
Bit(s) Description (Table 01027)
7-4 routing for PIRQB# (see #01026)
3-0 routing for PIRQA# (see #01026)
SeeAlso: #01025,#01028,#01029
Bitfields for AMD-645 PnP IRQ Routing 3 register:
Bit(s) Description (Table 01028)
7-4 routing for PIRQD# (see #01026)
3-0 routing for PIRQC# (see #01026)
SeeAlso: #01025,#01027,#01029
Bitfields for AMD-645 PnP IRQ Routing 4 register:
Bit(s) Description (Table 01029)
7-4 reserved
3-0 routing for MIRQ2# (see #01026)
SeeAlso: #01025,#01027,#01028
Bitfields for AMD-645 MIRQ Pin Configuration register:
Bit(s) Description (Table 01030)
7-3 reserved (0)
2 select MASTER# instead of MIRQ2
1 select KEYLOCK instead of MIRQ1
0 select APICCS# instead of MIRQ0
SeeAlso: #01011,#01029
Bitfields for AMD-645 XD Power-Up Strap Options register:
Bit(s) Description (Table 01031)
7-4 Keyboard RP16-RP13
3 reserved (0)
2 enable internal RTC
1 enable internal PS/2 mouse
0 enable internal keyboard controller
Note: the default value of this register is latched from external pins at
power-up
SeeAlso: #01011
Bitfields for AMD-645 Internal RTC Test Mode register:
Bit(s) Description (Table 01032)
7-2 reserved (0)
1 enable access to internal RTC's RAM when RTC is disabled
(see PORT 0074h"AMD-645")
0 reserved (0)
SeeAlso: #01011
Bitfields for AMD-645 Distributed DMA Base/Enable register:
Bit(s) Description (Table 01033)
15-4 base address bits 15-4 for Channel N
3 enable DMA channel
2-0 reserved (0)
SeeAlso: #01011
Format of AMD-645 Peripheral Bus Controller, function 1 (IDE Control) data:
Offset Size Description (Table 01034)
00h 64 BYTEs header (see #00878)
(vendor ID 1106h [VIA Technologies], device ID 0571h)
09h BYTE programming interface
bit 7: Master IDE capability
bits 6-4: reserved (0)
bit 3: secondary channel supports operating mode selection
bit 2: use native PCI mode, not compatibility mode for sec. ch.
bit 1: primary channel supports operating mode selection
bit 0: use native PCI mode, not compatibility mode for pri. ch.
10h DWORD primary data/command base address
14h DWORD primary control/status base address
18h DWORD secondary data/command base address
1Ch DWORD secondary control/status base address
20h DWORD bus master control base address (default 0000CC01h)
40h BYTE chip enable (see #01035)
41h BYTE IDE configuration (see #01036)
42h BYTE reserved ("do not program")
43h BYTE FIFO configuration (see #01037)
44h BYTE miscellaneous control 1 (see #01038)
45h BYTE miscellaneous control 2 (see #01039)
46h BYTE miscellaneous control 3 (see #01040)
47h BYTE unused???
48h DWORD drive timing control (see #01041)
4Ch BYTE address setup time (see #01042)
4Dh BYTE reserved ("do not program")
4Eh BYTE secondary non-01F0h port access timing (see #01043)
4Fh BYTE primary non-01F0h port access timing (see #01043)
50h BYTE UltraDMA/33 extended timing control, Sec. Drive 1 (see #01044)
51h BYTE UltraDMA/33 extended timing control, Sec. Drive 0 (see #01044)
52h BYTE UltraDMA/33 extended timing control, Pri. Drive 1 (see #01044)
53h BYTE UltraDMA/33 extended timing control, Pri. Drive 0 (see #01044)
54h 4 BYTEs reserved
58h DWORD "reserved"
(appears to be an additional set of drive timing controls)
5Ch 4 BYTEs ???
60h WORD primary sector size (see #01045)
62h 6 BYTEs reserved
68h WORD secondary sector size (see #01045)
6Ah 150 BYTEs reserved
Note: the AMD-645 IDE controller is compatible with the SFF 8038i v1.0 spec
SeeAlso: #00817,#01011,#01046
Bitfields for AMD-645 IDE Chip Enable register:
Bit(s) Description (Table 01035)
7-2 reserved (00001)
1 enable primary IDE channel
0 enable secondary IDE channel
SeeAlso: #01034,#01036
Bitfields for AMD-645 IDE Configuration register :
Bit(s) Description (Table 01036)
7 enable primary IDE read-prefetch buffer
6 enable primary IDE post write buffer
5 enable secondary IDE read-prefetch buffer
4 enable secondary IDE post write buffer
3-0 reserved (0110)
SeeAlso: #01034,#01035,3813
Bitfields for AMD-645 IDE FIFO Configuration register:
Bit(s) Description (Table 01037)
7 reserved (0)
6-5 FIFO configuration
00 primary channel = 16, secondary channel = 0
01/10 primary channel = 8, secondary channel = 8
11 primary channel = 0, secondary channel = 16
4 reserved (1)
3-2 primary channel FIFO threshold
00 = completely full
01 = 3/4 full
10 = 1/2 full
11 = 1/4 full
1-0 secondary channel FIFO threshold (same settings as bits 3-2)
SeeAlso: #01034,#01036
Bitfields for AMD-645 IDE Miscellaneous Control 1 register:
Bit(s) Description (Table 01038)
7 reserved (0)
6 number of wait states on Master Read Cycle IRDY#
5 number of wait states on Master Write Cycle IRDY#
4 enable 1/2 clock advance on FIFO output
3 enable bus-master IDE status register read retry
2-0 reserved (0)
SeeAlso: #01034,#01039,#01040
Bitfields for AMD-645 IDE Miscellaneous Control 2 register:
Bit(s) Description (Table 01039)
7 reserved (0)
6 swap interrupts between the two IDE channels
5-0 reserved (0)
SeeAlso: #01034,#01038,#01040
Bitfields for AMD-645 IDE Miscellaneous Control 3 register:
Bit(s) Description (Table 01040)
7 enable FIFO flush for read DMA on primary channel interrupt
6 enable FIFO flush for read DMA on secondary channel interrupt
5 enable FIFO flush for each sector on primary channel
4 enable FIFO flush for each sector on secondary channel
3-2 reserved
1-0 maximum DRDY# pulse width
00 unlimited
01 64 PCI clocks
10 128 PCI clocks
11 192 PCI clocks
SeeAlso: #01034,#01038,#01039
Bitfields for AMD-645 IDE Drive Timing Control register:
Bit(s) Description (Table 01041)
31-28 primary drive 0 active DIOR#/DIOW# pulse width
27-24 primary drive 0 DIOR#/DIOW# recovery time (PCI clocks, less 1)
23-20 primary drive 1 active pulse width (PCI clocks, less 1)
19-16 primary drive 1 recovery time
15-12 secondary drive 0 active pulse width
11-8 secondary drive 0 recovery time
7-4 secondary drive 1 active pulse width
3-0 secondary drive 1 recover time (PCI clocks, less 1)
SeeAlso: #01034,#01042
Bitfields for AMD-645 IDE Address Setup Time register:
Bit(s) Description (Table 01042)
7-6 primary drive 0 address setup time
00 = 1T
01 = 2T
10 = 3T
11 = 4T
5-4 primary drive 1 address setup time (same values as above)
3-2 secondary drive 0 address setup time
1-0 secondary drive 1 address setup time
SeeAlso: #01034,#01041
Bitfields for AMD-645 Non-01F0h Port Access Timing register:
Bit(s) Description (Table 01043)
7-4 width of DIOR#/DIOW# active pulse in PCI clocks (less 1)
3-0 DIOR#/DIOW# recovery time in PCI clocks (less 1)
SeeAlso: #01011
Bitfields for AMD-645 UltraDMA/33 Extended Timing Control register:
Bit(s) Description (Table 01044)
7 method for enabling UltraDMA mode on drive
0 using "Set Feature" command
1 using bit 6 of this register
6 enable UltraDMA mode for drive
5 UltraDMA transfer mode
0 UltraDMA DMA mode
1 UltraDMA PIO mode
4-2 reserved (0)
1-0 drive cycle time
00 = 2T
...
11 = 5T
SeeAlso: #01011
Bitfields for AMD-645 Sector Size register:
Bit(s) Description (Table 01045)
15-12 reserved
11-0 sector size in bytes (default 200h)
SeeAlso: #01011
Format of AMD-645 Peripheral Bus Controller, function 2 (USB Controller) data:
Offset Size Description (Table 01046)
00h 64 BYTEs header (see #00878)
(vendor ID 1106h, device ID 3038h)
20h DWORD base address of USB I/O ports (see PORT xxxxh"AMD-645 - USB"
40h BYTE miscellaneous control 1 (see #01047)
41h BYTE miscellaneous control 2 (see #01048)
42h 2 BYTEs reserved
44h 3 BYTEs reserved ("do not program")
47h BYTE reserved
48h 24 BYTEs reserved
60h BYTE USB release number (read-only, 10h)
61h 95 BYTEs reserved
C0h WORD USB legacy support (read-only, 2000h)
C2h 62 BYTEs reserved
SeeAlso: #00817,#00983,#01011,#01034,#01049
Bitfields for AMD-645 USB Miscellaneous Control 1 register:
Bit(s) Description (Table 01047)
7 PCI memory commands
0 support memory-read-line, memory-read-multiple, and
memory-write-and-invalidate
1 memory read and memory write commands only
6 do not disable port on EOF babble
5 eanble PCI parity checking and PERR# generation
4 reserved (0)
3 USB data length
0 allow TD length up to 1280 bytes
1 limit to 1023
2 enable USB power management
1 DMA limited to 8-DW burst instead of 16-DW
0 insert one PCI wait state
SeeAlso: #01046,#01048
Bitfields for AMD-645 USB Miscellaneous Control 2 register:
Bit(s) Description (Table 01048)
7-3 reserved (0)
2 only trap port 60h/64h bits when trap-enable bits are set
1 do not pass A20GATE command sequence (from UHCI) through I/O port 64h
0 reserved (0)
SeeAlso: #01046,#01047,PORT 0064h
Format of AMD-645 Peripheral Bus Controller, function 3 (Power Mgmt) data:
Offset Size Description (Table 01049)
00h 64 BYTEs header (see #00878)
(vendor ID 1106h, device ID 3040h)
20h DWORD base address for I/O ports (see PORT xxxxh"AMD-645")
40h BYTE pin configuration (see #01050)
41h BYTE general configuration (see #01051)
42h BYTE SCI interrupt configuration (see #01052)
43h BYTE reserved
44h WORD primary interrupt channel
bit 2 is reserved; setting any other bit N makes IRQN the
primary interrupt channel
46h WORD secondary interrupt channel
bit 2 is reserved; setting any other bit N makes IRQN the
secondary interrupt channel
48h 8 BYTEs unused???
50h DWORD GP timer control (see #01053)
54h 13 BYTEs reserved
61h BYTE programming interface read value (value to be returned by
configuration register 09h) (write-only)
62h BYTE subclass read value (value to be returned by
configuration register 0Ah) (write-only)
63h BYTE base class read value (value to be returned by configuration
register 0Bh) (write-only)
64h 156 BYTEs reserved
SeeAlso: #00817,#00983,#01011,#01034,#01046,#01049
Bitfields for AMD-645 PM Pin Configuration register:
Bit(s) Description (Table 01050)
7 GPIO4 configuration (0 = Pin136 is GPO_WE, 1 = Pin136 is GPIO4)
6 GPIO3 configuration (0 = Pin92 is GPI_RE#, 1 = Pin92 is GPIO3)
5-0 reserved (0)
SeeAlso: #01049,#01051
Bitfields for AMD-645 PM General Configuration register:
Bit(s) Description (Table 01051)
7 enable debounce of PWRBTN# input
6 enable ACPI timer reset
5-4 reserved ("do not program")
3 select ACPI timer size (0 = 24 bits, 1 = 32 bits)
2 enable PCI Frame Activation as Resume Event im power state C2
1 clock-throttling cycle time
0 = 32 usec clock, 512 usec cycle time (default)
1 = 1 msec clock 16 msec cycle time
0 reserved ("do not program")
SeeAlso: #01049,#01050,MEM xxxxh:xxx0h"ACPI"
Bitfields for AMD-645 PM SCI Interrupt Configuration register:
Bit(s) Description (Table 01052)
7-4 reserved (0)
3-0 interrupt assignment
0000 disabled
else IRQ number (except IRQ2 is reserved)
SeeAlso: #01049
Bitfields for AMD-645 PM GP Timer Control register:
Bit(s) Description (Table 01053)
31-30 power-conservation mode timer
00 = 1/16 sec
01 = 1/8 sec
10 = 1 sec
11 = 1 minute
29 (read) set when system is in power-conservation mode
28 enable power-conservation mode
27-26 secondary event timer
00 = 2 msec
01 = 64 msec
10 = 1/2 sec
11 = 0.25 msec after EOI
25 secondary event occurred, secondary event timer is counting down
24 enable secondary event timer
23-16 GP1 Timer count (see bits 5-4)
15-8 GP0 Timer count (see bits 1-0)
7 start GP1 timer
6 automatically reload GP1 timer after counting down to 0
5-4 time base for GP1 timer
00 disabled
01 = 32 microseconds
10 = 1 second
11 = 1 minute
3 start GP0 timer
2 automatically reload GP0 timer after counting down to 0
1-0 time base for GP0 timer
00 disabled
01 = 1/16 second
10 = 1 second
11 = 1 minute
SeeAlso: #01049
Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Intel devices)
AX = B10Ah subfn 8086h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh) (see #00878)
Return: CF clear if successful
ECX = dword read
CF set on error
AH = status (00h,87h) (see #00729)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ah,AX=B10Ah/SF=1106h,AX=B10Dh
Format of PCI Configuration data for Intel 82375 EISA Bridge:
Offset Size Description (Table 01054)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 0482h)
(revision numbers: 03h = 82375EB, 04h = 82375SB)
40h BYTE PCI Control
!!!intel\29047704.pdf pg. 32
41h BYTE PCI Arbiter Control
42h BYTE PCI Arbiter Priority Control
43h BYTE PCI Arbiter Priority Control Extension
44h BYTE MEMCS# Control
45h BYTE MEMCS# Bottom of Hole
46h BYTE MEMCS# Top of Hole
47h BYTE MEMCS# Top of Memory
48h WORD EISA Address Decode Control 1
4Ah 2 BYTEs reserved
4Ch BYTE ISA I/O Recovery Time Control
4Dh 7 BYTEs reserved
54h BYTE MEMCS# Attribute Register #1
55h BYTE MEMCS# Attribute Register #2
56h BYTE MEMCS# Attribute Register #3
57h BYTE reserved
58h BYTE PCI Decode Control
59h BYTE reserved
5Ah BYTE EISA Address Decode Control 2
5Bh BYTE reserved
5Ch BYTE EISA-to-PCI Memory Region Attributes
5Dh 3 BYTEs reserved
60h 4 DWORDs EISA-to-PCI Memory Region Address registers 1-4
70h 4 DWORDs EISA-to-PCI I/O Region Address registers 1-4
80h WORD BIOS Timer base address
82h 2 BYTEs reserved
84h BYTE EISA Latency Timer Control Register
85h 3 BYTEs reserved
88h DWORD PCEB Test Control Register ("DO NOT WRITE")
8Ch 116 BYTEs reserved
SeeAlso: #00878,#01055
Format of PCI Configuration data for Intel 82434LX/NX Cache/DRAM Controller:
Offset Size Description (Table 01055)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 04A3h)
(revision numbers: 01h/03h are 82434LX, 1xh are 82434NX)
(command register only supports bits 8,6,2,1,0)
40h 16 BYTEs unused (hard-wired to 00h)
44h BYTE ??? (AMI BIOS writes 00h)
45h BYTE ??? (AMI BIOS writes 00h)
50h BYTE Host CPU Selection (see #01056)
51h BYTE deturbo frequency control register
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
by comparing it against a free-running 8-bit counter counting
at 1/8 the CPU clock speed
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
(only bits 7-6 writable, bits 5-0 hardwired to 0)
52h BYTE Secondary Cache Control (see #01057)
53h BYTE Host Read/Write Buffer Control (see #01058)
54h BYTE PCI Read/Write Buffer Control
bits 7-3: reserved
bit 2: LBXs connected to TRDY#
bit 1: enable PCI burst writes
bit 0: enable PCI-to-memory posted writes
55h 2 BYTEs reserved
57h BYTE DRAM Control (see #01059)
58h BYTE DRAM Timing (see also #01117)
bits 7-2: reserved
bit 1: (NX only) RAS# Wait State
bit 0: CAS# Wait State (one extra wait state before CAS#
within burst cycle)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 8 BYTEs DRAM Row Boundary registers 0-7
(chip revisions numbered < 10h [LX] only support six rows of
DRAM)
each register N indicates the amount of cumulative amount of
memory in SIMM banks 0-N, in multiples of 1M; offset 67h
(65h on 82434LX's) contains the total amount of memory
installed in the system; on the 82434NX, two additional
bits are concatenated to each row boundary from the DRAM Row
Boundary Extension registers to allow up to 1024M of memory
to be specified (though only 512M are supported)
68h 4 BYTEs (NX only) DRAM Row Boundary Extension registers
each nybble is concatenated with the corresponding DRAM Row
Boundary register to form a 12-bit boundary value (of which
only the low 10 bits are actually used)
6Ch DWORD reserved (hardwired to 00000000h)
70h BYTE Error Command (see #01060)
71h BYTE Error Status (see #01061)
72h BYTE System Management RAM control (see also #01123)
bits 7-6: reserved
bit 5: map SMM-mode memory (64K) into address space when bits
2-0 = 010 (default 3000h:0000h; can be changed by
first SMM event)
bit 4: close SMRAM space (allows data accesses to be forwarded
to PCI bus while execuding SMM code)
bit 3: lock SMRAM space (can't be cleared by software)
bits 2-0: SMRAM memory address (010 = Axxxxh, 011 = Bxxxxh)
73h 5 BYTEs reserved
78h WORD Memory Space Gap
bit 15: enable ISA hole
bits 14-12: size of ISA hole in MB (less 1); must be power of 2
bits 11-8: reserved
bits 7-4: bottom of ISA memory hole in MB
(must be multiple of gap size)
bits 3-0: reserved
7Ah 2 BYTEs reserved
7Ch DWORD Frame Buffer Range (see #01062)
80h 128 BYTEs reserved
Note: the 82434NX is part of the Intel Neptune chipset
SeeAlso: #01064,#01083
Bitfields for Intel 82434LX/NX Host CPU Selection:
Bit(s) Description (Table 01056)
7-5 host CPU type
LX: hardwired to 100 (Pentium)
NX: "reserved" (101 on RB's system)
4-3 reserved
2 enable L1 cache
1-0 Host Operating Frequency (set according to external bus speed)
00: reserved
01: 50 MHz
10: 60 MHz
11: 66 MHz
(LX: bit 1 reserved, only 60/66 MHz supported)
SeeAlso: #01055,#01057
Bitfields for Intel 82434LX/NX Secondary Cache Control:
Bit(s) Description (Table 01057)
7-6 secondary cache size
00 none
01 reserved
10 256K
11 512K
5 SRAM type
0 standard SRAMs
1 burst SRAMs
4 secondary cache allocation
0 cache only CPU reads of memory with CACHE# asserted
1 cache all CPU reads of cacheable memory
3 Cache Byte Control
0 use single write enable and per-byte select lines
1 use per-byte write enables on the cache
2 (NX only) SRAM connectivity
0 disable CCS[1:0]# / CCS1# functionality
1 enable CCS[1:0]# functionality to de-select async SRAMs, placing them
in a low-power standby mode
1 enable CCS1# functionality for burst SRAMs, indicating the lack of an
external address latch
1 (LX only) Secondary Cache Write Policy
0 write-through
1 write-back (NX is always in write-back mode)
0 Secondary Cache Enable
SeeAlso: #01055,#01058
Bitfields for Intel 82434LX/NX Host Read/Write Buffer Control:
Bit(s) Description (Table 01058)
7-4 reserved
3 enable read-around-write
2 reserved
1 enable CPU-to-PCI posted writes
0 (LX only) enable CPU-to-memory posted writes
(NX always posts memory writes)
SeeAlso: #01055,#01057
Bitfields for Intel 82434LX/NX DRAM Control:
Bit(s) Description (Table 01059)
7-6 (NX only) DRAM burst timing
00 X-4-4-4 read/write (default)
01 X-4-4-4 read, X-3-3-3 write
10 reserved
11 X-3-3-3 read/write
5 parity error mask
4 0-Active RAS# mode
3 SMRAM enable (must be set to enable reg 72h)
2 Burst-of-Four Refresh
1 Refresh Type
=0 RAS#-only
=1 CAS#-before-RAS#
0 DRAM Refresh Enable
SeeAlso: #01055
Bitfields for Intel 82434LX/NX Error Command register:
Bit(s) Description (Table 01060)
7 assert SERR# on receiving target abort
6 assert SERR# on PCI data-write parity error
5 (NX only) assert SERR# on PCI data-read parity error
4 (NX only) assert SERR# on PCI address parity error
3 (NX only) assert PERR# on data parity error
2 enable L2 cache parity
1 enable SERR# on DRAM/L2 cache data parity error
0 assert PEN# on data reads; allow CPU to signal parity error via PCHK#
Notes: PCI command register bit 6 is master enable for bit 3;
PCI cmd bits 6 and 8 are the master enable for bits 7-4 and 1
bits 1-0 = 10 is not permitted
SeeAlso: #01055,#01061
Bitfields for Intel 82434LX/NX Error Status register:
Bit(s) Description (Table 01061)
7 reserved
6 PCI-write detected parity error
5 (NX only) PCI-read detected parity error
4 (NX only) PCI address parity error detected
3 main memory data parity error
2 L2 cache data parity error
1 reserved
0 Shutdown cycle detected
Note: clear status bits by writing a 'one' bit to each bit to be cleared
SeeAlso: #01060,#01055
Bitfields for Intel 82434LX/NX Frame Buffer Range register:
Bit(s) Description (Table 01062)
31-20 buffer offset (in 1MB increments; must be multiple of buffer set set
by bits 3-0)
19-14 reserved
13 enable byte merging
12 128K VGA-range Attribute Enable
when set, bits 13,9,7 also apply to VGA memory range (Axxxx-Bxxxx)
11-10 reserved
9 no lock requests
8 reserved
7 enable transparent bufer writes
6-4 reserved
3-0 buffer size in MB (less 1); must be power of 2
Note: if bits 31-20=0, the frame buffer feature is disabled
SeeAlso: #01055
Format of PCI Configuration data for Intel 82424 Cache Controller:
Offset Size Description (Table 01063)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 0483h)
40h BYTE bus number
41h BYTE subordinate bus number
42h BYTE disconnect timer
50h BYTE host CPU selection
51h BYTE deturbo frequency control
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
52h BYTE secondary cache control
53h BYTE write buffer control
54h BYTE PCI features control
55h BYTE DRAM Operation Mode Select
56h BYTE System Exception Handling
57h BYTE SMM Control Register
58h BYTE reserved
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see also #01118)
60h 4 BYTEs DRAM Row Boundary registers 0-3
each register N indicates amount of memory in rows 0-N (each
row is 64 bits wide)
boundary register 3 (offset 63h) contains the total system
memory, which may not exceed 128M
64h 4 BYTEs unused???
68h WORD Memory Hole-0
6Ah WORD Memory Hole-1
Note: the above field names are those given by EduWARE's PCI Configuration
Manager v1.2
SeeAlso: #01055,#01083,#01108
Format of PCI Configuration data for Intel 82378 and 82379 ISA Bridges:
Offset Size Description (Table 01064)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 0484h)
(revision ID:
bits 7-4: reserved
bits 3-0: revision
0011 82378ZB A0-step
1000 82379AB A0-step)
40h BYTE PCI Control (see #01065)
41h BYTE PCI Arbiter Control (see #01066)
42h BYTE PCI Arbiter Priority Control (see #01067)
43h BYTE (82378ZB) PCI Arbiter Priority Control Extension Register
bit 0: bank 3 fixed priority mode select (see also #01067)
=0 REQ2# has higher priority
=1 REQ3# has higher priority
44h BYTE MEMCS# Control (see #01068)
45h BYTE MEMCS# Bottom of Hole (address bits 23-16)
46h BYTE MEMCS# Top of Hole (address bits 23-16)
47h BYTE MEMCS# Top of Memory
(address bits 28-21 == size in 2M increments, less 1)
48h BYTE ISA Address Decoder Control (see #01069)
49h BYTE ISA Address Decoder ROM Block Enable (see #01070)
4Ah BYTE ISA Address Decoder Bottom of Hole (address bits 23-16)
4Bh BYTE ISA Address Decoder Top of Hole (address bits 23-16)
4Ch BYTE ISA Controller Recovery Time (see #01087)
4Dh BYTE ISA Clock Divisor (see #01071)
4Eh BYTE Utility Bus Chip Select Enable A (see #01072)
4Fh BYTE Utility Bus Chip Select Enable B (see #01073)
50h 4 BYTEs reserved
54h BYTE MEMCS# Attribute Register #1 (see #01074)
attributes for 16K blocks from C0000h-CFFFFh
55h BYTE MEMCS# Attribute Register #2 (see #01074)
attributes for 16K blocks from D0000h-DFFFFh
56h BYTE MEMCS# Attribute Register #3 (see #01074)
attributes for 16K blocks from E0000h-EFFFFh
57h BYTE (82378) Scatter/Gather Relocation Base Adress (see #01075)
(82379AB) reserved
58h 8 BYTEs reserved
60h BYTE (82378ZB) IRQ0# Route Control (see #01076)
61h BYTE (82378ZB) IRQ1# Route Control (see #01076)
62h BYTE (82378ZB) IRQ2# Route Control (see #01076)
63h BYTE (82378ZB) IRQ3# Route Control (see #01076)
64h 12 BYTEs reserved
70h BYTE (82378) reserved
(82379AB, write-only) PIC/APIC Configuration Control
(see #01077)
71h BYTE (82378) reserved
(82379AB, write-only) APIC Base Address Relocation
(see #01078,MEM FEC00000h)
72h 14 BYTEs reserved
80h WORD BIOS timer base address (see PORT 0078h)
bits 15-2 are bits 15-2 of BIOS timer port address
bit 1: reserved (0)
bit 0: timer enabled (if disabled, other bits ignored)
82h 30 BYTEs unused???
A0h BYTE SMI Control (see #01079)
A1h BYTE reserved
A2h WORD SMI Enable (see #01080)
A4h DWORD System Event Enable (SEE) (see #01081)
A8h BYTE Fast-Off Timer (in minutes)
A9h BYTE reserved
AAh WORD active SMI Requests (see #01082)
ACh BYTE (82378ZB) Clock Throttle STPCLK# Low Timer
duration of STPCLK# low period in 32 microsecond units
ADh BYTE reserved
AEh BYTE (82378ZB) Clock Throttle STPCLK# High Timer
duration of STPCLK# high period in 32 microsecond units
AFh 81 BYTEs reserved
SeeAlso: #01055,#01167,PORT 040Ah"82378ZB"
Bitfields for Intel 82378/82379 PCI Control:
Bit(s) Description (Table 01065)
7 reserved (0)
6 DMA Reserved Page Register Aliasing Control
=0 alias PORT 80h-8Fh to PORT 90h-9Fh
5 Interrupt Acknowledge Enable
=0 ignore INTA cycles on the PCI bus, but still allow 8259 register
access and poll-mode functions
4-3 Subtractive Decoding Sample Point
00 slow sample point
01 typical
10 fast sample point
11 reserved
2 PCI Posted Write Buffer Enable
1 ISA Master Line Buffer Configuration
=0 single-transaction mode
=1 eight-byte mode for ISA bus master transfers
0 DMA Line Buffer Configuration
=0 single-transaction mode
=1 eight-byte mode
SeeAlso: #01064,#01066
Bitfields for Intel 82378/82379 PCI Arbiter Control:
Bit(s) Description (Table 01066)
7-5 reserveed (0)
4-3 Master Retry Timer
00 disabled (retries never masked)
01 retries unmasked after 16 PCICLKs
10 retries unmasked after 32 PCICLKs
11 retries unmasked after 64 PCICLKs
2 Bus Park
=1 park CPUREQ# on PCI bus when 82378 detects PCI bus idle
1 Bus Lock
=0 resource lock
=1 Bus lock
0 Guaranteed Access Time
=1 ISA bus masters are guaranteed 2.5 microsecond CHRDY time-out
SeeAlso: #01064,#01065
Bitfields for Intel 82378/82379 PCI Arbiter Priority Control:
Bit(s) Description (Table 01067)
7 bank 3 rotate control
6 bank 2 rotate control
5 bank 1 rotate control
4 bank 0 rotate control
3 bank 2 fixed priority mode select B
2 bank 2 fixed priority mode select A
1 bank 1 fixed priority mode select
0 bank 0 fixed priority mode select
Note: if both 'rotate' and 'fixed' bits are set for a given bank,
that bank will be in rotating-priority mode
SeeAlso: #01064,#01066
Bitfields for Intel 82378/82379 MEMCS# Control Register:
Bit(s) Description (Table 01068)
7-5 reserved (0)
4 MEMCS# Master Enable
3 write enable for 0F0000h-0FFFFFh
2 read enable for 0F0000h-0FFFFFh
1 write enable for 080000h-09FFFFh
0 read enable for 080000h-09FFFFh
SeeAlso: #01064
Bitfields for Intel 82378/82379 ISA Address Decoder Control Register:
Bit(s) Description (Table 01069)
7-4 ISA memory cycle forwarding to PCI
0000-1111 = 1M-16M top of ISA memory; any accesses above programmed
limit are forwarded to PCI bus
3-0 ISA/DMA memory cycle to PCI bus enables
bit 3: 896K-960K (E000h-EFFFh)
bit 2: 640K-768K (A000h-BFFFh)
bit 1: 512K-640K (8000h-9FFFh)
bit 0: 0K-512K (0000h-7FFFh)
SeeAlso: #01064,#01070
Bitfields for Intel 82378/82379 ISA Address Decoder ROM Block Enable:
Bit(s) Description (Table 01070)
7 enable 880K-896K (EC00h-EFFFh)
6 enable 864K-880K (E800h-EBFFh)
5 enable 848K-864K (E400h-E7FFh)
4 enable 832K-848K (E000h-E3FFh)
3 enable 816K-832K (DC00h-DFFFh)
2 enabel 800K-816K (D800h-DBFFh)
1 enable 784K-800K (D400h-D7FFh)
0 enable 768K-784K (D000h-D3FFh)
Note: ISA accesses within any enabled ranges are forwarded to the PCI bus
SeeAlso: #01064,#01069
Bitfields for Intel 82378/82379 ISA Clock Divisor Register:
Bit(s) Description (Table 01071)
7 reserved (0)
6 enable positive decode of upper 64K BIOS at 000F0000h-000FFFFFh,
FFEF0000h-FFEFFFFFh, and FFFF0000h-FFFFFFFFh
5 coprocessor error enable
=1 FERR# is driven onto IRQ13
4 IRQ12/Mouse Function Enable
=0 standard IRQ12
=1 mouse
3 RSTDRV enable
=1 assert RSTDRV until this bit cleared (for use in changing ISA bus
speed)
2-0 PCICLK-to-ISA SYSCLK divisor
000 4
001 3
other reserved
SeeAlso: #01064,#01069
Bitfields for Intel 82378/82379 Utility Bus Chip Select A Register:
Bit(s) Description (Table 01072)
7 extended BIOS enable (decode accesses to FFF80000h-FFFDFFFFh)
6 lower BIOS enable (decode accesses to E0000h-EFFFFh,
FFEE0000h-FFEEFFFFh, and FFFE0000h-FFFEFFFFh)
5 (82378ZB) floppy disk primary/secondary address select
=1 use secondary address range
4 (82378ZB) IDE Decode enable
3,2 floppy disk address locations enable
1 keyboard controller address location enable
enables I/O addresses 60h,62h,64h,66h (82378ZB) or 60h/64h (82379AB)
0 RTC address location enabled
=1 enable decode of I/O ports 70h-77h
SeeAlso: #01064,#01089,#01073
Bitfields for Intel 82378ZB/82379 Utility Bus Chip Select B Register:
Bit(s) Description (Table 01073)
7 configuration RAM decode enable
=1 permit write accesses to I/O port 0C00h and r/w to ports 08xxh
6 enable PORT 0092h
5-4 parallel port enable
00 LPT1 (ports 03BCh-03BFh)
01 LPT2 (ports 0378h-037Fh)
10 LPT3 (ports 0278h-027Fh)
11 disabled
3-2 serial port B enable
00 COM1 (03F8h-03FFh)
01 COM2 (02F8h-02FFh)
10 reserved
11 port B disabled
1-0 serial port A enable
00 COM1 (03F8h-03FFh)
01 COM2 (02F8h-02FFh)
10 reserved
11 port A disabled
Note: if both serial ports are set to the same address, port B is disabled
SeeAlso: #01064,#01072,PORT 0092h
Bitfields for Intel 82378/82379 MEMCS# Attribute Register 1/2/3:
Bit(s) Description (Table 01074)
7 write-enable xC000h-xFFFFh expansion ROM
6 read-enable xC000h-xFFFFh expansion ROM
5 write-enable x8000h-xBFFFh expansion ROM
4 read-enable x8000h-xBFFFh expansion ROM
3 write-enable x4000h-x7FFFh expansion ROM
2 read-enable x4000h-x7FFFh expansion ROM
1 write-enable x0000h-x3FFFh expansion ROM
0 read-enable x0000h-x3FFFh expansion ROM
Note: x = C/D/E depending on the attribute register
SeeAlso: #01064
Bitfields for Intel 82378ZB Scatter Gather Relocation Base Address:
Bit(s) Description (Table 01075)
7-0 bits 15-8 of base address for scatter/gather I/O ports
(default 04h; low 8 bits of address are always 10h-3Fh)
SeeAlso: #01064,#01074,#01076,PORT 040Ah"82378ZB",#P0039
Bitfields for Intel 82371/82378/82379 PCI IRQ Route Control Register:
Bit(s) Description (Table 01076)
7 disable IRQ routing
6-4 reserved (0)
3-0 ISA IRQ number to which to route the PCI IRQ
Note: IRQs 0-2, 8, and 13 are reserved
SeeAlso: #01064,#01167,#01100
Bitfields for Intel 82379AB PIC/APIC Configuration Control Register:
Bit(s) Description (Table 01077)
7-2 reserved
1 SMI Routing Control
=1 SMI via APIC
=0 SMI via SMI# signal
0 INT Routing Control
=1 INT disabled (requires that APIC be enabled)
=0 INT enabled
SeeAlso: #01064,#01078
Bitfields for Intel 82379AB/82371 APIC Base Address Relocation:
Bit(s) Description (Table 01078)
7 reserved
6 (82379AB) reserved
6 (82371) A12 mask
=1 ignore address bit 12 in APIC address
5-0 bits 15-10 of APIC memory address (ORed with FEC00000h to form base
address)
SeeAlso: #01064,#01167,#01077,MEM FEC00000h
Bitfields for Intel 82378/82379 SMI Control Register:
Bit(s) Description (Table 01079)
7 reserved
6 (82378) reserved
(82379) require Stop Grant bus cycle before asserting STPCLK#
5-4 reserved
3 Fast-Off Timer freeze
2 STPCLK# scaling enable
=1 enable Clock Throttle bytes in PCI configuration space
1 STPCLK# signal enable
=1 assert STPCLK# on read from PORT 00B2h
0 SMI# Gate
=1 enable SMI# on system management interrupt
Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
write to PORT 00B2h
bit 0 does not affect the recording of SMI events, so a pending SMI
will cause an immediate SMI# when the bit is set
SeeAlso: #01064,#01080,#01081,#01222,PORT 00B2h
Bitfields for Intel 82371/82378/82379 SMI Enable Register:
Bit(s) Description (Table 01080)
15-9 reserved
8 (82371SB only) Legacy USB SMI enable
7 APMC Write SMI enable
=1 generate SMI on write to PORT 00B2h
6 EXTSMI# SMI enable
5 Fast-Off Timer SMI enable
4 IRQ12 (PS/2 mouse) SMI enable
3 IRQ8 (RTC alarm) SMI enable
2 IRQ4 (COM1/COM3) SMI enable
1 IRQ3 (COM2/COM4) SMI enable
0 IRQ1 (keyboard) SMI enable
SeeAlso: #01064,#01079,#01081,#01167,PORT 00B2h
Bitfields for Intel 82371/82378/82379 System Event Enable Register:
Bit(s) Description (Table 01081)
31 Fast-Off SMI enable (system and break events)
30 (82379 only) Fast-Off Interrupt Enable (break events only)
30 (82371 only) INTR enable (break events only)
29 Fast-Off NMI enable (system and break events)
28 (82371SB only) Fast-Off APIC enable (break events only)
27 (82379 only) Fast-Off COM enable (system events only)
26 (82379 only) Fast-Off LPT enable (system events only)
25 (82379 only) Fast-Off Drive enable (system events only)
24 (82379 only) Fast-Off DMA enable (system events only)
23-16 reserved
15-3 Fast-Off IRQ (15-3) enable (system and break events)
2 reserved
1-0 Fast-Off IRQ (1-0) enable (system and break events)
Note: any enabled system event restarts the Fast-Off Timer, thus preventing
a Fast-Off powerdown; any enabled break event awakens the system from
powerdown
SeeAlso: #01064,#01079,#01080,#01082,#01167
Bitfields for Intel 82371/82378/82379 SMI Request Register:
Bit(s) Description (Table 01082)
15-9 reserved
8 (82371SB only) Legacy USB SMI status
7 APM SMI Status (write to PORT 00B2h triggered SMI)
6 EXTSMI# SMI Status (EXTSMI# line triggered SMI)
5 Fast-Off Timer expired
4 IRQ12 triggered SMI
3 IRQ8 triggered SMI
2 IRQ4 triggered SMI
1 IRQ3 triggered SMI
0 IRQ1 triggered SMI
Note: software must explicitly reset the appropriate bits
SeeAlso: #01064,#01081,#01167
Format of PCI Configuration data for Intel 82425EX PSC:
Offset Size Description (Table 01083)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 0486h)
40h BYTE PCI control register (see #01084)
41h 3 BYTEs ???
44h BYTE host device control register (see #01085)
45h 3 BYTEs ???
48h WORD PCI local-bus IDE control register (see #01086)
4Ah 2 BYTEs ???
4Ch BYTE ISA I/O recovery timer register (see #01087)
4Dh BYTE part revision register (see #01088)
4Eh BYTE X-bus Chip Select A register (see #01089)
4Fh BYTE X-bus Chip Select B register??? (see also #01102)
50h BYTE host select register
51h BYTE deturbo frequency control register
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
52h WORD secondary (L2) cache control register
54h 2 BYTEs ???
56h WORD DRAM control register
58h BYTE ???
59h 7 BYTEs Programmable Attribute Map (PAM) registers 0-6 (see also #01118)
60h 5 BYTEs DRAM row boundary registers 0-4
each register N indicates amount of memory in rows 0-N (each
row is 64 bits wide); the fifth row of memory (if
implemented) must contain either 8M or 16M, depending on
system configuration
boundary register 4 (offset 64h) contains the total system
memory, which may not exceed 128M
65h BYTE ???
66h BYTE PIRQ route control register 0
67h BYTE PIRQ route control register 1
68h BYTE DRAM memory hole register
69h BYTE top of memory
6Ah 6 BYTEs ???
70h BYTE SMRAM control register
71h 47 BYTEs unused???
A0h BYTE SMI control register
A1h BYTE ???
A2h WORD SMI enable register
A4h DWORD system event enable
A8h BYTE fast off timer register
A9h BYTE ???
AAh WORD SMI request register
ACh BYTE clock throttle STPCLK# low timer
ADh BYTE unused???
AEh BYTE clock throttle STPCLK# high timer
AFh BYTE ???
B0h 80 BYTEs unused???
SeeAlso: #00878,#01063,#01055,#01108,#01167
Bitfields for Intel 82425EX PCI control register:
Bit(s) Description (Table 01084)
0 CPU-to-PCI byte merging
1 CPU-to-PCI bursting enable
2 PCI posted-write buffer enable
4-3 subtractive decode sampling point
00 slow
01 typical
10 fast
11 reserved
5 DRAM parity error enable
6 target abort error enable
7 reserved
SeeAlso: #01083,#01085,#01086,#01087
Bitfields for Intel 82425EX host device control register:
Bit(s) Description (Table 01085)
0 HRDY# maximum signal sampling point
0 slow timing
1 fast timing
1 HDEV# signal sampling point
0 slow timing
1 fast timing
2 host device present
7-3 reserved
SeeAlso: #01083,#01084
Bitfields for Intel 82425EX local-bus IDE control register:
Bit(s) Description (Table 01086)
1-0 primary/secondary PCI IDE enable
00 IDE disabled
01 primary (ports 01F0h-01F7h,03F6,03F7h)
10 secondary (ports 0170h-017Fh,0376h,0377h)
11 reserved
3-2 fast timing bank drive select 1
bit 2 = drive 0 enabled
bit 3 = drive 1 enabled
5-4 IORDY sample point Enable Drive Select
bit 4 = drive 0 enabled
bit 5 = drive 1 enabled
7-6 reserved
9-8 IORDY sample point
00 6 clocks
01 5 clocks
10 4 clocks
11 3 clocks
12-10 recover time (000 = 8 PCI clocks, 001 = 7, ..., 101 = 3, 110/111 = 3)
15-13 reserved
SeeAlso: #01083,#01084
Bitfields for Intel chipset ISA I/O recovery timer register:
Bit(s) Description (Table 01087)
7 (82425EX/82371) DMA reserved page register aliasing disable
=0 ports 0090h-009Fh alias ports 0080h-008Fh
=1 ports 0090h-009Fh forwarded to ISA bus
6 8-bit I/O recovery enable
5-3 8-bit I/O recovery time
000 = 8 SYSCLKs
001-110 = 1-7 SYSCLKs
2 16-bit I/O recovery enable
1-0 16-bit I/O recovery time
00 = 4 SYSCLKs
01-11 = 1-3 SYSCLKs
SeeAlso: #01064,#01083,#01084,#01167,#01170
Bitfields for Intel 82425EX part revision register:
Bit(s) Description (Table 01088)
7-5 fabrication house identifier (read-only)
4 E0000h-EFFFFh ISA-to-main-memory forwarding enabled
3-0 revision ID (read-only)
SeeAlso: #01083,#01089
Bitfields for Intel 82425EX/82371 X-bus Chip Select A register:
Bit(s) Description (Table 01089)
7 extended BIOS enabled at FFF80000h-FFFDFFFFh
6 lower (E000h) BIOS enabled
5 trigger IRQ13 on FERR#
4 IRQ12 mouse function enabled
3 (82371AB only) alias accesses to PORTs 63h/65h/67h to 61h
(else) reserved (0)
2 BIOS memory write protect
1 keyboard controller addresses (60h,62h,64h,66h) enabled
0 RTC addresses (70h-77h) enabled
SeeAlso: #01083,#01167,#01088,#01102
Format of PCI Configuration Data for Intel 82380AB PCI-ISA Bridge:
Offset Size Description (Table 01090)
00h 64 BYTEs header (see #00878)
(vender ID 8086h, device ID 123Ch)
40h BYTE I/O Recovery Register (see #01091)
41h BYTE reserved
42h BYTE MISA Error Status (see #01092)
43h 189 BYTEs reserved
SeeAlso: #00873,#01093
Bitfields for Intel 82380AB I/O Recovery Register:
Bit(s) Description (Table 01091)
7 SYSCLK select
0 SYSCLK = PCICLK/4
1 SYSCLK = PCICLK/3
6 enable 8-bit I/O recovery
5-3 additional recovery time for 8-bit I/O cycles, in SYSCLKs
2 enable 16-bit I/O recovery
1-0 additional recovery time for 16-bit I/O cycles, in SYSCLKs
SeeAlso: #01090
Bitfields for Intel 82380AB MISA error status:
Bit(s) Description (Table 01092)
7-3 reserved
2 IOCHK# asserted
1 reserved
0 illegal byte lane combination for PCI I/O detected
SeeAlso: #01090
Format of PCI Configuration data for Intel 82380FB PCI-PCI Bridge (MPCI2):
Offset Size Description (Table 01093)
00h 64 BYTEs header type 1 [bridge] (see #00878)
(vendor ID 8086h, device ID 124Bh)
40h BYTE Connector Control (see #01094)
41h BYTE Connector Event (see #01095)
42h 2 BYTEs reserved
44h WORD Serial Bus Interface/Burst Enable (see #01096)
46h BYTE MPCI2 Miscellaneous Status (see #01097)
47h 5 BYTEs reserved
4Ch WORD Special Message Encode
encoded message portion of Special Cycle forwarded by MPCI2
4Eh 178 BYTEs reserved
SeeAlso: #00873,#01090
Bitfields for Intel 82380FB Connector Control register:
Bit(s) Description (Table 01094)
7-4 reserved
3 QEN2 output signal
2 QEN1 output signal
1-0 reserved
SeeAlso: #01093
Bitfields for Intel 82380FB Connector Event register:
Bit(s) Description (Table 01095)
7 reserved (1)
6 activate power-no suspend
5 (read-only) inverted state of MISAEN pin
4 (read-only) inverted state of DSTYP pin
3 undocking permit
software should set this bit for at least 32 microseconds; when this
bit is then cleared, the MPCI2 pulses the OPENACK signal for 256 us
to tell external hardware to "eject" the notebook
2 reserved (1)
1 system is docked
0 open requested
SeeAlso: #01093
Bitfields for Intel 82380FB Serial Interface/Burst Enable register:
Bit(s) Description (Table 01096)
15-13 reserved
12 enable SERR# on discarding of posted write data
11 reserved
10 SDATA signal direction (0 = output, 1 = input)
9 enable write posting
8 enable read bursting
7 enable upstream blind prefetching
6 reserved
5 SDATA signal state (read when bit 10 set, write when bit 10 clear)
4 SDIN signal state
3 do not pulse P_SERR# when S_PERR# is asserted
2 cascade/frame determination delay (0 = 20 P_CLKs, 1 = 10 P_CLKs)
1 serial EEPROM chip select
0 serial EEPROM clock
SeeAlso: #01093
Bitfields for Intel 82380FB MPCI2 Miscellaneous Status register:
Bit(s) Description (Table 01097)
7-1 reserved
0 (write-clear) P_SERR# was asserted due to invalidation of posted write
SeeAlso: #01093
Format of PCI Configuration Data for Intel 82439HX:
Offset Size Description (Table 01098)
00h 64 BYTEs header (see #00878)
(vender ID 8086h, device ID 1250h)
(revision ID 00h = A0 stepping)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #01110)
51h BYTE reserved
52h BYTE cache control (see #01112)
53h 3 BYTEs reserved
56h BYTE DRAM extended control (see #01115)
57h BYTE DRAM control (see #01116)
58h BYTE DRAM timing (see #01117)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 8 BYTEs DRAM Row Boundary registers 0-7
each register N indicates cumulative amount of memory in rows
0-N (each 64 bits wide), in 4M units
68h BYTE DRAM Row Type (see #01119)
bits 0-7 indicate whether each row 0-7 contains EDO DRAM
instead of page-mode DRAM
69h BYTE ???
6Ah 8 BYTEs reserved
72h BYTE System Management RAM control (see #01123)
73h 29 BYTEs reserved
90h BYTE Error Command (see #01126)
91h BYTE Error Status (see #01127) (read-only)
92h BYTE Error Syndrome (read-only)
latest non-zero ECC error syndrome
93h 109 BYTEs reserved
SeeAlso: #01108,#01229
Format of PCI Configuration Data for Intel 82439TX "MTXC":
Offset Size Description (Table 01099)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7100h)
(revision ID 00h = A0 stepping)
40h 15 BYTEs reserved
4Fh BYTE Arbitration Control register (see #01109)
50h BYTE PCI Control register (see #01110)
51h BYTE reserved
52h BYTE Cache Control register (see #01112)
53h BYTE Extended Cache Control register (see #01113)
54h WORD SDRAM Control Register (see #01114)
56h BYTE DRAM Extended Control register (see #01115)
57h BYTE DRAM Control register (see #01116)
58h BYTE DRAM Timing register (see #01117)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 6 BYTEs DRAM Row Boundary registers 0-5
each register N indicates cumulative amount of memory in rows
0-N (each 64 bits wide), in 4M units
66h BYTE reserved
67h BYTE DRAM Row Type High register (see #01213)
68h BYTE DRAM Row Type Low register (see #01119)
69h 7 BYTEs reserved
70h BYTE Multi-Transaction Timer register
number of PCLKs guaranteed to the current agent before the
82439TX will grant the bus to another PCI agent on request
71h BYTE Extended System Management RAM Control register (see #01149)
72h BYTE System Management RAM Control register (see #01123)
73h 6 BYTEs reserved
79h BYTE Miscellaneous Control register (see #01128)
7Ah 134 BYTEs reserved
Note: The Intel 82439TX chipset uses PCI configuration mechanism #1
SeeAlso: #00873,PORT 0CF8h
Format of PCI Configuration Data for Intel 82371AB (PIIX4), ISA Bridge:
Offset Size Description (Table 01100)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7110h)
40h 12 BYTEs reserved
4Ch BYTE ISA I/O recovery timer (see #01101)
4Dh BYTE reserved
4Eh WORD X-Bus Chip Select (see #01089,#01102)
50h 16 BYTEs reserved
60h BYTE PIRQA route control (see #01076)
61h BYTE PIRQB route control (see #01076)
62h BYTE PIRQC route control (see #01076)
63h BYTE PIRQD route control (see #01076)
!!!intel\29056201.pdf p.59
64h BYTE serial IRQ control
65h 4 BYTEs reserved???
69h BYTE top of memory
6Ah WORD miscellaneous status
6Ch 10 BYTEs reserved???
76h BYTE motherboard device DMA control 0
77h BYTE motherboard device DMA control 1
78h 9 BYTEs reserved???
80h BYTE APIC base address relocation
81h BYTE reserved???
82h BYTE deterministic latency control
83h 13 BYTEs reserved???
90h WORD PCI DMA configuration
92h WORD distributed DMA (channels 0-3) slave base pointer
94h WORD distributed DMA (channels 5-7) slave base pointer
96h 26 BYTEs reserved???
B0h DWORD general configuration
B4h 23 BYTEs reserved???
CBh BYTE real-time clock configuration
CCh 52 BYTEs reserved
SeeAlso: #00873,#01103,#01104,#01105
Bitfields for Intel PIIX4 ISA I/O recovery timer:
Bit(s) Description (Table 01101)
7 disable aliasing PORTs 90h-9Fh into 80h-8Fh (except PORT 0092h)
6 enable 8-bit I/O recover timer in bits 5-3
5-3 additional 8-bit I/O recovery time (added to 3.5 SYSCLK minimum)
000 = 8 SYSCLKs, else N SYSCLKs
2 enable 16-bit I/O recovery timer in bits 1-0
1-0 additional 16-bit I/O recovery time (added to 3.5 SYSCLK minimum)
00 = 3 SYSCLKs
01 = 1 SYSCLK
10 = 2 SYSCLKs
11 = 4 SYSCLKs
SeeAlso: #01100
Bitfields for Intel 82371 X-Bus Chip Select Enable (high byte):
Bit(s) Description (Table 01102)
7-3 reserved
2 (82371AB) enable positive PCI decode for Micro Controller at PORTs 62h
and 66h
1 (82371AB) enable one-megabyte extended BIOS (FFF00000h-FFF7FFFFh are
forwarded to ISA bus, aliased to top of 16M region)
0 enable I/O APIC
SeeAlso: #01089
Format of PCI Configuration Data for Intel 82371AB (PIIX4), IDE Controller:
Offset Size Description (Table 01103)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7111h)
20h DWORD I/O base address (for 16 contiguous PORTs)
!!!intel\29056201.pdf p.89
40h WORD primary channel timing register
42h WORD secondary channel timing register
44h BYTE slave IDE timing
45h 3 BYTEs reserved???
48h BYTE Ultra DMA/33 control
49h BYTE reserved???
4Ah WORD Ultra DMA/33 timing
4Ch 180 BYTEs reserved
SeeAlso: #00873,#01100,#01104,#01105
Format of PCI Configuration Data for Intel 82371AB (PIIX4), USB Controller:
Offset Size Description (Table 01104)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7112h)
20h DWORD I/O base address (for 32 contiguous PORTs)
!!!intel\29056201.pdf p.102
40h 32 BYTEs reserved
60h BYTE USB specification release number
00h pre-release 1.0
10h release 1.0
61h 95 BYTEs reserved
C0h WORD legacy support
C2h 61 BYTEs reserved
FFh BYTE miscellaneous support
SeeAlso: #00873,#01100,#01103,#01105
Format of PCI Configuration Data for Intel 82371AB (PIIX4), Power Management:
Offset Size Description (Table 01105)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7113h)
40h DWORD base address of power-management I/O ports
(same format as PCI base addresses; low bit hardwired to 1)
44h DWORD initial counts of device 0-11 idle timers
48h DWORD !!!intel\29056201.pdf p.117
4Ch DWORD general-purpose input control
50h 3 BYTEs "device resource D"
53h BYTE unused???
54h DWORD device activity event selection A
58h DWORD device activity event selection B
5Ch DWORD "device resource A"
60h DWORD "device resource B"
64h DWORD "device resource C"
68h 3 BYTEs "device resource E"
6Bh 5 BYTEs unused???
70h 3 BYTEs "device resource G"
73h BYTE unused???
74h DWORD "device resource H"
78h DWORD "device resource I"
7Ch DWORD "device resource J"
80h BYTE miscellaneous power management
81h 15 BYTEs unused???
90h DWORD base address for SMBus I/O ports
(same format as PCI base addresses; low bit hardwired to 1)
94h ...
D2h BYTE SMBus host configuration
D3h BYTE SMBus slave command
D4h BYTE SMBus slave shadow port 1 address
D5h BYTE SMBus slave shadow port 2 address
D6h BYTE SMBus revision
D7h
SeeAlso: #00873,#01100,#01103,#01104
Format of PCI Configuration Data for Intel 82437MX:
Offset Size Description (Table 01106)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 1235h)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #01111)
51h BYTE reserved
52h BYTE cache control (see #01112)
53h 4 BYTEs reserved
57h BYTE DRAM Control (see #01116)
58h BYTE DRAM timing (see #01117)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 4 BYTEs DRAM Row Boundary Registers 0-3
each register N indicates cumulative amount of memory in rows
0-N, in 4M units (each row is 64 bits wide)
64h 4 BYTEs reserved
68h BYTE DRAM Row Type (see #01121)
69h 9 BYTEs reserved
72h BYTE System Management RAM control (see #01123)
73h 141 BYTEs reserved
SeeAlso: #01108,#01107
Format of PCI Configuration Data for Intel 82437FX:
Offset Size Description (Table 01107)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 122Dh) (see #00873)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #01111)
51h BYTE reserved
52h BYTE cache control (see #01112)
53h 4 BYTEs reserved
57h BYTE DRAM Control (see #01116)
58h BYTE DRAM timing (see #01117)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 5 BYTEs DRAM Row Boundary Registers 0-4
each register N indicates cumulative amount of memory in rows
0-N, in 4M units (each row is 64 bits wide)
65h 3 BYTEs reserved
68h BYTE DRAM Row Type (see #01121)
69h 9 BYTEs reserved
72h BYTE System Management RAM control (see #01123)
73h 141 BYTEs reserved
SeeAlso: #01106,#01108
Format of PCI Configuration Data for Intel 82437VX:
Offset Size Description (Table 01108)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7030h)
(revision ID 00h = A0 stepping)
40h 15 BYTEs reserved
4Fh BYTE arbitration control (see #01109)
50h BYTE PCI Control (see #01110)
51h BYTE reserved
52h BYTE cache control (see #01112)
53h BYTE cache control extensions (see #01113)
54h WORD SDRAM control (see #01114)
55h BYTE reserved
56h BYTE DRAM extended control (see #01115)
57h BYTE DRAM control (see #01116)
58h BYTE DRAM timing (see #01117)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 5 BYTEs DRAM Row Boundary registers 0-4
each register N indicates amount of memory in rows 0-N in 4M
units (each row is 64 bits wide); the fifth row of memory (if
implemented) must contain either 8M or 16M, depending on
system configuration
boundary register 4 (offset 64h) contains the total system
memory, which may not exceed 128M
65h 2 BYTEs reserved
67h BYTE DRAM Row Type (high)
defines memory type in DRAM row 4 in bits 4,0 (see #01119)
68h BYTE DRAM Row Type (low) (see #01119)
69h BYTE PCI TRDY timer (see #01122)
6Ah 6 BYTEs reserved
70h BYTE Multi-Transaction Timer
number of PCLKs guaranteed to the current agent before the
82437 will grant the bus to another PCI agent on request
71h BYTE reserved
72h BYTE System Management RAM control (see #01123)
73h BYTE shared memory buffer control (see #01124)
74h BYTE shared memory buffer start address, in 0.5MB units
end address is top-of-memory at offset 64h or start of an
enabled PCI memory hole when top-of-memory is 16M
76h 2 BYTEs reserved
78h BYTE graphics controller latency timers (see #01125)
79h 135 BYTEs reserved
SeeAlso: #00873,#01063,#01083,#01098,#01106
Bitfields for Intel 82437VX,82439TX Arbitration Control register:
Bit(s) Description (Table 01109)
7 extended CPU-to-PIIX PHLDA# signalling enabled
6-0 (82439TX) reserved
6-4 reserved
3 (82437VX) CPU priority enable
=1 CPU gets PCI bus after two PCI slots
=0 CPU gets PCI bus after three PCI slots
2-0 reserved
SeeAlso: #01099,#01108,#01110
Bitfields for Intel 82437VX,82439HX/TX PCI Control register:
Bit(s) Description (Table 01110)
7-4 reserved (82437VX,82439TX)
7 DRAM ECC/Parity Select (82439HX)
=1 ECC
=0 parity
6 ECC TEST enable (82439HX)
5 shutdown to port 92h (82439HX)
=1 send 01h to PORT 0092h on Shutdown special cycle on host bus
4 dual-processor NA# enable (82439HX)
3 PCI Concurrency Enable
=1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
=0 CPU kept off PCI bus during all PCI bus-master cycles
2-0 reserved (82437VX,82439TX)
2 SERR# Output Type (82439HX only)
=1 SERR# is actively driven high when negated
=0 SERR# is PCI-compatible open-drain output
1 reserved
0 Global TXC Enable (82439HX only)
=1 enable new 82439HX features
SeeAlso: #01099,#01108,#01098,#01112,#01111
Bitfields for Intel 82437FX/82437MX PCI Control register:
Bit(s) Description (Table 01111)
7-5 CPU inactivity timer (in PCI Clocks less 1)
4 reserved
3 enable PCI Peer Concurrency
=1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
=0 CPU kept off PCI bus during all PCI bus-master cycles
2 disable PCI Bursting
1 disable PCI Streaming
0 disable Bus Concurrency
SeeAlso: #01106,#01107,#01110
Bitfields for Intel 82437,82439HX/TX cache control register:
Bit(s) Description (Table 01112)
7-6 secondary cache size
00 none
01 256K
10 512K
11 reserved
5-4 L2 RAM type
00 pipelined burst SRAM/DRAM
01 reserved
10 asynchronous SRAM (82437FX/MX/VX,82439TX only)
11 two banks of pipelined burst cache
3 NA disable
=1 never assert NA# pin
2 reserved (82437FX/MX/VX,82439TX)
2 Extended Cacheability Enable (82439HX)
=1 cache up to 512M
=0 cache only first 64M
1 Secondary Cache Force Miss or Invalidate
=1 force all memory accesses to bypass L2 cache
0 First Level Cache Enable
=1 all memory accesses made non-cacheable by CPU L1 cache
SeeAlso: #01099,#01108,#01098,#01110,#01113,#01114,#01106
Bitfields for Intel 82437VX,82439TX cache control extensions register:
Bit(s) Description (Table 01113)
7-6 reserved
5 DRAM cache detected (read-only)
4-0 DRAM cache refresh timer
number of HCLKs 82437VX,82439TX remains idle during DRAM cache refresh
SeeAlso: #01099,#01108,#01112
Bitfields for Intel 82437VX,82439TX SDRAM control register:
Bit(s) Description (Table 01114)
15-9 reserved
8-6 Special SDRAM Mode Select
000 normal mode (default)
001 enable NOP command
010 enable All Banks Precharge command
011 enable Mode Register Command
100 enable CBR Cycle
101 reserved
11x reserved
5 (82437VX) reserved
5 (82439TX) RAS# to CAS# Override
=1 and CAS# latency=0, RAS# to CAS# is delayed 2 HCLKs
=0 RAS# to CAS# delay determined solely by CAS# latency setting
4 CAS# latency
=1 latency is 2 for all SDRAM cycles
=0 latency is 3
3 RAS# precharge and refresh timing
=0 slower
=1 faster
2 reserved
1 (82437VX) reserved
1 (82439TX) 64-Mbit Technology Enable
=1 supports 64M-bit SDRAM devices
=0 supports 64M-bit EDO/FPM devices only
0 reserved
SeeAlso: #01099,#01108,#01112
Bitfields for Intel 82437VX,82439HX/TX DRAM extended control register:
Bit(s) Description (Table 01115)
7 reserved
6 (VX/TX) refresh RAS# assertion length (0=4 clocks, 1=5 clocks)
5 (VX/TX) Fast EDO Path Select
4 Speculative Leadoff Disable
3 (82439HX) Turn-Around Insertion Enable
=1 insert one extra clock of turnaround time after asserting MWE#
2-1 Memory Address Drive Strength
82437VX: 82439HX: 82439TX:
00 reserved 00 8mA 00 10mA/10mA (MA/MWE#)
01 10mA (default) 01 8mA/12mA (MAA/MWE#) 01 10mA/16mA (MA/MWE#)
10 16mA 10 12mA/8mA (MAA/MWE#) 10 16mA/10mA (MA/MWE#)
11 reserved 11 12mA 11 16mA/16mA (MA/MWE#)
0 (82437VX) DRAM Symmetry Detect Mode
(used to force some memory address lines to fixed value for detecting
DRAM symmetry row-by-row)
0 (82439HX) 64MBit Mode Enable
=1 enable support for 64M SIMMs
0 (82439TX) reserved
SeeAlso: #01099,#01108,#01098,#01116
Bitfields for Intel 82437,82439HX/TX DRAM control register:
Bit(s) Description (Table 01116)
7-6 DRAM Hole Enable
00 none
01 512K-640K
10 15M-16M (82437FX/MX/VX only)
11 14M-16M (82437VX,82439TX only)
5 reserved
4 (82437MX only) refresh type during Suspend
=1 self-refreshing DRAMs in system
=0 CAS-before-RAS refresh
(82439TX only) Enhanced Paging disabled
3 EDO Detect Mode enable
(used to detect whether memory is EDO bank-by-bank)
2-0 DRAM refresh rate
FX/VX/HX MX TX
000 disabled 15.6 us disabled
001 50 MHz 31.2 us 15.6 us
010 60 MHz 62.4 us 31.2 us
011 66 MHz 125 us 64.4 us
100 reserved 250 us 125 us
101 reserved reserved 256 us
1xx reserved reserved reserved
SeeAlso: #01099,#01108,#01098,#01115,#01106
Bitfields for Intel 82437FX/MX/VX,82439HX/TX DRAM timing register:
Bit(s) Description (Table 01117)
7 (82437FX,82439TX) reserved
7 (82437MX) MA[11:2] buffer strength
=0 8mA
=1 12mA
7 (82437VX) MA-to-RAS# Delay
=1 one clock
=0 two clocks
7 (82439HX) Turbo Read Leadoff
=1 bypass first register in DRAM data pipeline, saving one clock
(may only be set in a cacheless configuration)
6-5 DRAM Read Burst Timing
00 x444 (EDO and Standard Page Mode)
01 x333 (EDO), x444 (SPM)
10 x222 (EDO), x333 (SPM)
11 x322 (EDO), x333 (SPM) (82437VX only)
11 reserved (other)
4-3 DRAM Write Burst Timing
00 x444
01 x333
10 x222
11 reserved
2 (82439TX) reserved
2 RAS-to-CAS Delay
=1 two clocks
=0 three clocks
1-0 DRAM Leadoff Timing
82437FX/MX Read Leadoff Write Leadoff RAS# Precharge
00 8 6 3
01 7 5 3
10 8 6 4
11 7 5 4
82437VX,82439TX Read Write Leadoff RAS# Precharge
00 11 7 3
01 10 6 3
10 11 7 4
11 10 6 4
82439HX Read Leadoff Write Leadoff RAS# Precharge
00 7 6 3
01 6 5 3
10 7 6 4
11 6 5 4
SeeAlso: #01099,#01108,#01116,#01106,#01107
Bitfields for Intel 8243x/8244x Programmable Attribute Map Register:
Bit(s) Description (Table 01118)
7 reserved
6 cache enable (region 1)
5 write enable (region 1)
4 read enable (region 1)
3 reserved
2 cache enable (region 0)
1 write enable (region 0)
0 read enable (region 0)
Notes: each programmable attribute map register controls two memory
regions at the top of the first megabyte of memory
for the Intel 82441FX and 82443BX/LX, bits 6 and 2 are reserved, as
cacheability is set using the Pentium Pro/II/Celeron's MTRR registers
(see MSR 000000FEh)
Intel 82434,82437FX/MX/VX,82439HX,82441FX,82443EX/LX PAM
registers/regions:
PAM0 low: reserved [*]
PAM0 hi: segment F000-FFFF
PAM1 low: segment C000-C3FF
PAM1 hi: segment C400-C7FF
PAM2 low: segment C800-CBFF
PAM2 hi: segment CC00-CFFF
PAM3 low: segment D000-D3FF
PAM3 hi: segment D400-D7FF
PAM4 low: segment D800-DBFF
PAM4 hi: segment DC00-DFFF
PAM5 low: segment E000-E3FF
PAM5 hi: segment E400-E7FF
PAM6 low: segment E800-EBFF
PAM6 hi: segment EC00-EFFF
[*] on the 82434 (and possibly other Intel chipsets), the low nybble of
PAM0 controls segment 8000-9FFF
SeeAlso: #01055,#01108,#01098,#01099,#01229,#01106,#01107,#01142,#01129
Bitfields for Intel 82437VX,82439TX DRAM Row Type register:
Bit(s) Description (Table 01119)
7,3 row 3 type
6,2 row 2 type
5,1 row 1 type
4,0 row 0 type
00 SPM DRAM
01 EDO DRAM
10 SDRAM
11 reserved
SeeAlso: #01099,#01108,#01118,#01213
Bitfields for Intel 82439TX DRAM Row Type high register:
Bit(s) Description (Table 01213)
7 Host Frequency detection
=1 66MHz Bus
=0 60MHz bus
5,1 DRAM Row 5 type
4,0 DRAM ROW 4 type
00 SPM
01 EDO
10 SDRAM
11 reserved
6,3 reserved
2 Memory Address select Enabled
SeeAlso: #01099,#01119
Bitfields for Intel 82437FX/82437MX DRAM Row Type register:
Bit(s) Description (Table 01121)
7-4 reserved
3-0 DRAM Row N is EDO instead of page-mode DRAM
SeeAlso: #01106,#01107
Bitfields for Intel 82437VX PCI TRDY timer:
Bit(s) Description (Table 01122)
7-3 reserved
2-0 TRDY timeout value
000 2 PCICLKs
001 4 PCICLKs
010 6 PCICLKs
011 8 PCICLKs
1xx reserved
SeeAlso: #01108,#01123
Bitfields for Intel 82437,82439HX/TX,82443BX/EX/LX SMRAM control register:
Bit(s) Description (Table 01123)
7 reserved
6 SMM Space Open
=1 make SMM DRAM visible even when not in SMM if bit 4 =0
5 SMM Space Closed
=1 no data references permitted to SMM DRAM even in SMM
4 SMM Space Locked
=1 force bits 4 and 6 to become read-only; and clear bit 6
3 SMRAM Enable
=1 128K DRAM are accessible for use at A000 while in SMM
2-0 SMM Space Base Segment
010 segment A000-BFFF
100 segment C000-CFFF (82437MX,82443EX only)
other reserved
Note: bits 5 and 6 must never both be set at the same time
SeeAlso: #01099,#01108,#01098,#01124,#01106,#01107,#01142,#01129
Bitfields for Intel 82437VX Shared Memory Buffer control register:
Bit(s) Description (Table 01124)
7-2 reserved
1 enable shared memory buffer
0 redirect shared memory buffer access
=0 treat SMB area as a hole in system DRAM
SeeAlso: #01108,#01123,#01125
Bitfields for Intel 82437VX Graphics Controller Latency Timer:
Bit(s) Description (Table 01125)
7-6 reserved
5-3 GC latency for PCI reads (in 4 HCLK multiples) (default=100)
2-0 GC latency for CPU and PCI writes (in 4 HCLK multiples) (default=011)
SeeAlso: #01108,#01124
Bitfields for Intel 82439HX Error Command register:
Bit(s) Description (Table 01126)
7 SERR# duration
=0 one PCI clock
=1 until error flags are cleared
6-3 reserved
2 force bad parity on multiple-bit uncorrectable error
1 assert SERR# on multiple-bit uncorrectable error
0 assert SERR# on single-bit correctable error
SeeAlso: #01098,#01127
Bitfields for Intel 82439HX Error Status register:
Bit(s) Description (Table 01127)
7-5 DRAM row associated with multi-bit error
4 multi-bit uncorrectable error occurred (write 1 bit to clear)
3-1 DRAM row associated with single-bit correctable error
0 single-bit correctable error occurred (write 1 bit to clear)
SeeAlso: #01098,#01126
Bitfields for Intel 82439TX miscellaneous control register:
Bit(s) Description (Table 01128)
7 reserved
6 ACPI control register enable
5 Suspend refresh type (EDO/FPM DRAM only)
=1 Self refresh (Always for SDRAM)
=0 CBR refresh
4 Normal refresh enable
When set to 1, 82439TX switches from suspend refresh to normal refresh
3 reserved
2 Internal clock control disable
=1 disable
=0 enable Disables 82439TX internal clocks during suspend, reducing
power consumption.
1-0 reserved
SeeAlso: #01099
Format of PCI configuration for Intel 82443EX/LX Device 0 (Host-PCI):
Offset Size Description (Table 01129)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7180h)
chipset is 82443EX if revision >= 03h
40h 16 BYTEs reserved
50h WORD PAC Configuration register (See #01131)
52h BYTE reserved
53h BYTE Data Buffer Control register (see #01132)
54h BYTE reserved
55h WORD DRAM Row Type register (see #01133)
57h BYTE DRAM Control register (see #01134)
58h BYTE DRAM Timing register (see #01135)
59h 7 BYTEs PAM Configuration registers 0-6 (See #01118)
60h 8 BYTEs DRAM Row Boundary registers 0-7
each register indicates top of memory for a particular row, in
8MB units; DIMMs use two rows each, with single-sided DIMMs
leaving the odd-numbered rows unpopulated
68h BYTE Fixed DRAM Hole Control register (see #01147)
69h BYTE reserved
6Ah WORD DRAM Extended Mode Select register (see #01136)
6Ch DWORD Memory Buffer Strength Control register (see #01137)
70h BYTE Multi-Transaction Timer register (see #01140)
71h BYTE reserved
72h BYTE System Management RAM Control register (see #01123)
73h 29 BYTEs reserved
90h BYTE Error Command register (see #01156)
91h BYTE Error Status 0 register (see #01138)
92h BYTE Error Status 1 register (see #01139)
93h BYTE Reset Control Register (see #01239)
94h 12 BYTEs reserved
A0h DWORD AGP Capability register (see #01158)
A4h DWORD AGP Status register (see #01159)
A8h DWORD AGP Command register (see #01160)
ACh 4 BYTEs reserved
B0h DWORD AGP Control register (see #01161)
B4h BYTE Arpeture Size Control register (see #01162)
B5h 3 BYTEs reserved
B8h DWORD Arpeture Translation Table Base register (see #01163)
BCh BYTE AGP MTT Control register (see #01140)
BDh BYTE AGP Low Priority Transaction timer register (see #01141)
BCh 67 BYTEs reserved
Notes: The 82443EX is virtually identical to the 82443LX, except that it does
not support ECC type DRAM.
The Intel 82443EX/LX chipsets use PCI configuration mechanism #1
SeeAlso: #01130,#01142,PORT 0CF8h
Format of PCI configuration for Intel 82443EX/LX Device 1 (PCI-PCI):
Offset Size Description (Table 01130)
00h 64 BYTEs header, type 1 [bridge] (see #00878)
(vendor ID 8086h, device ID 7181h)
chipset is 82443EX if revision >= 03h
40h 192 BYTEs reserved
Note: The Intel 82443LX chipset uses PCI configuration mechanism #1
SeeAlso: #01129,#01143,PORT 0CF8h
Bitfields for Intel 82443EX/LX (Device 0) PAC Configuration register:
Bit(s) Description (Table 01131)
15 WSC# Handshake Disable
14 (82443LX) Host Frequency (read-only)
=1 60MHz
=0 66MHz
14 (82443EX) reserved
13-12 reserved
11 ??? (Not documented by Intel!)
10 PCI Agent to Arperture Access Disable
9 Aperture Access Global Enable
8-6 (82443EX) reserved
8-7 (82443LX) DRAM Data Integrety Mode
00 Non-ECC (no check, no correct)
01 EC-only (do check, no correct)
10 reserved
11 ECC (do check, do correct)
6 (82443LX) ECC-Test Diagnostic Mode Enabled
5 MDA Present
Note: Controls routing of Monochrome Display Adaptor I/O and memory
range accesses. Works in conjunction with the VGA-bit in
Bridge Control register of device 1 (see #00901):
VGA MDA
0 0 MDA and VGA routed to PCI bus
0 1 reserved
1 0 MDA and VGA routed to AGP bus
1 1 VGA routed to AGP bus, MDA routed to PCI bus
4-0 reserved
SeeAlso: #00901,#01129
Bitfields for Intel 82443EX/LX (Device 0) Data Buffer Control register:
Bit(s) Description (Table 01132)
7 reserved
6 CPU-to-PCI posting enabled
5 Write post during I/O Bridge access enabled
4-0 reserved
SeeAlso: #01129
Bitfields for Intel 82443EX/LX (Device 0) DRAM Row Type register:
Bit(s) Description (Table 01133)
15-14 row 7 type
0 0 EDO (Same values for each row)
0 1 reserved
1 0 SDRAM
1 1 empty row
13-12 row 6 type
11-10 row 5 type
9-8 row 4 type
7-6 row 3 type
5-4 row 2 type
3-2 row 1 type
1-0 row 0 type
SeeAlso: #01129,#01134
Bitfields for Intel 82443EX/LX (Device 0) DRAM Control register:
Bit(s) Description (Table 01134)
7-6 reserved
5 DRAM EDO Auto-Detect mode enabled
4 SDRAM power management enabled
3 reserved
2-0 DRAM Refresh rate
000 = Refresh disabled
001 = Normal (Based on PAC Configuration bit 14)
010-111 = reserved
SeeAlso: #01129,#01133,#01135
Bitfields for Intel 82443EX/LX (Device 0) DRAM Timing register:
Bit(s) Description (Table 01135)
7 SDRAM RAS to CAS Delay (1 = 2 clocks, 0 = 3 clocks)
6 SDRAM CAS Latency (1 = 2 clocks, 0 = 3 clocks)
5 SDRAM RAS Precharge Time (1 = 2 clocks, 0 = 3 clocks)
4 EDO DRAM Read Burst timing
=1 Read rate is x222
=0 Read rate is x333
3 EDO DRAM Write Burst timing
=1 Write rate is x222
=0 write rate is x333
2 EDO RAS Precharge Time (1 = 3 clocks, 0 = 4 clocks)
1 EDO RAS to CAS Delay (1 = 2 clocks, 0 = 3 clocks)
0 MA Wait State
=1 Fast (0 wait states for SDRAM, clocks run normally for EDO)
=0 Slow (1 wait state for SDRAM, add one clock to all EDO timings)
SeeAlso: #01129,#01134
Bitfields for Intel 82443EX/LX DRAM Extended Mode Select register:
Bit(s) Description (Table 01136)
15-8 reserved
7-5 Operating Mode
000 Normal operating mode
001 NOP command enabled
010 All banks precharge enable
011 Mode register set command enable
100 CBR cycle enable
101-11x reserved
4 reserved
3-2 Page timeout select
00 16 clocks
01-11 reserved
1-0 Close both banks control
00 close both banks on page misses
01-11 reserved
SeeAlso: #01129
Bitfields for Intel 82443EX/LX Memory Buffer Strength Control register:
Bit(s) Description (Table 01137)
31-30 MAA[1-0] buffer strength
00 48mA (same values for bits 25-12,5-0)
01 42mA
10 22mA
11 reserved
29-28 (82443LX only) MECC[7-0] buffer strength
00 42mA (same values for bits 27-26,11-6)
01 38mA
10 33mA
11 reserved
27-26 MD[63-0] buffer strength
25-24 RCSA[0]# & RCSB[0]#/MAB[6] buffer strength
23-22 (82443LX only) MAB[1-0] buffer strength
21-20 MAA[13:2] buffer strength
19-18 RCSA[1]# & RCSB[1]#/MAB[7] buffer strength
17-16 RCSA[2]# & RCSB[2]#/MAB[8] buffer strength
15-14 RCSA[3]# & RCSB[3]#/MAB[9] buffer strength
13-12 (82443LX only) RCSA[4]# & RCSB[4]#/MAB[10] buffer strength
11-10 (82443LX only) CQDB[5,1]# buffer strength
9-8 CQDA[5,1]# buffer strength
7-6 CQDA[7-6,4-2,0]# buffer strength
---82443LX---
5-4 RCSA[5]# & RCSB[5]#/MAB[11] buffer strength
3-2 RCSA[6]#/MAB[2] & RCSB[6]#/MAB[12] buffer strength
1-0 RCSA[7]#/MAB[3] & RCSB[7]#/MAB[13] buffer strength
---82443EX---
5-0 reserved
SeeAlso: #01129
Bitfields for Intel 82443EX/LX Error Status 0 register:
Bit(s) Description (Table 01138)
---82443LX---
7-5 Multi-bit first error (read-only) Indicates which DRAM row had the
multi-bit error
4 Multiple-bit ECC Error occurred flag
3-1 Single-bit first row error (read-only) Indicates which DRAM row had the
single-bit error
0 Single-bit ECC error occurred flag
---82443EX---
7-0 reserved
Note: Write a 1 to bits 4 & 0 to clear the flags
SeeAlso: #01129,#01139
Bitfields for Intel 82443EX/LX Error Status 1 register:
Bit(s) Description (Table 01139)
7-3 reserved
2 AGP non-snoopable access outside of graphics arperture
1 AGP non-snoopable access outside of main DRAM ranges and arperture
0 access to invalid graphics arperture translation table entry
Note: Write a 1 to these bit(s) to clear
SeeAlso: #01129,#01138
Bitfields for Intel 82443EX/LX Multi-Transaction Timer register:
Bit(s) Description (Table 01140)
7-3 Multi-transaction timer count value
2-0 reserved
SeeAlso: #01129,#01141
Bitfields for Intel 82443EX/LX Low Priority Transaction Timer register:
Bit(s) Description (Table 01141)
7-3 Low priority transaction timer count value
2-0 reserved
SeeAlso: #01129,#01140
Format of PCI Configuration for Intel 82443BX Device 0 (Host-PCI):
Offset Size Description (Table 01142)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7190h/7192h)
10h DWORD graphics aperture base address
2Ch WORD subsystem vendor identification (write-once)
2Eh WORD subsystem device identification (write-once)
40h 16 BYTEs reserved (0)
50h DWORD 440BX Configuration (see #01144)
54h 3 BYTEs reserved (0)
57h BYTE DRAM Control (see #01145)
58h BYTE DRAM Timing (see #01146)
59h 7 BYTEs Programmable Attribute Map register 0-6 (see #01118)
60h 8 BYTEs DRAM Row Boundary registers 0-7
each register indicates top of memory for a particular row, in
8MB units; DIMMs use two rows each, with single-sided DIMMs
leaving the odd-numbered rows unpopulated
68h BYTE Fixed DRAM Hole Control (see #01147)
69h 6 BYTEs Memory Buffer Strength Control (see #01148)
6Fh 2 BYTEs reserved (0)
71h BYTE Intel Reserved (1Fh)
72h BYTE SMRAM Control (see #01123)
73h BYTE Extended SMRAM Control (see #01149)
74h WORD SDRAM Row Page Size (see #01150)
76h WORD SDRAM Control Register (see #01151)
78h WORD Paging Policy Register (see #01152)
7Ah BYTE Power Management Control (see #01153)
7Bh WORD Suspend CBR Refresh Rate Register (see #01154)
7Dh 3 BYTEs reserved (0)
80h DWORD Error Address Pointer (see #01155)
84h 12 BYTEs reserved (0)
90h BYTE Error Command Register (see #01156)
91h WORD Error Status Register (see #01157)
93h BYTE reserved (0)
94h DWORD Intel Reserved (00006104h)
98h WORD Intel Reserved (0500h)
9Ah BYTE Intel Reserved (0)
9Bh 5 BYTEs reserved (0)
A0h DWORD AGP Capability Identifier (see #01158)
A4h DWORD AGP Status Register (read-only) (see #01159)
A8h DWORD AGP Command Register (see #01160)
ACh 4 BYTEs reserved (0)
B0h DWORD AGP Control Register (see #01161)
B4h BYTE Aperture Size Control (see #01162)
B5h 3 BYTEs reserved (0)
B8h DWORD Aperture Translation Table (see #01163)
BCh 2 BYTEs reserved
BEh WORD reserved (0)
C0h DWORD Intel Reserved (0)
C4h DWORD Intel Reserved (0)
C8h BYTE Intel Reserved (18h)
C9h BYTE Intel Reserved (0Ch)
CAh 3 BYTEs Memory Buffer Frequency Select (see #01164)
CDh 3 BYTEs reserved (0)
D0h 8 BYTEs BIOS scratch pad (read-write, init to 0 on reset)
D8h 8 BYTEs Intel Reserved (0)
E0h 2 DWORDs DRAM Write Thermal Throttling Control (see #01165)
E8h 8 BYTEs DRAM Read Therman Throttling Control (see #01165)
F0h WORD Buffer Control Register (see #01166)
F2h 2 BYTEs Intel Reserved (0000h)
F4h DWORD Intel Reserved (0000F800h)
bits 30-29 are "Abort Disable Test Mode" configuration bits
and should always be set (according to Intel
Specification Update)
F8h DWORD Intel Reserved (00000F20h)
FCh DWORD Intel Reserved (0)
SeeAlso: #00873,#01143,PORT 0022h"82443BX"
!!!intel\29063301.pdf p.34
Format of PCI Configuration for Intel 82443BX Device 1 (PCI-AGP):
Offset Size Description (Table 01143)
00h 64 BYTEs header, type 1 [bridge] (see #00878)
(vendor ID 8086h, device ID 7191h)
40h 192 BYTEs reserved
SeeAlso: #00873,#01142,#01130
!!!intel\29063301.pdf p.80
Bitfields for Intel 82443BX (Device 0) NBX Configuration Register:
Bit(s) Description (Table 01144)
31-24 SDRAM rows without ECC; each set bit indicates a row in the SDRAM array
with does NOT have error correction (bit 24 = row 0; note that double-
sided DIMMs use two rows, one for the front and one for the back)
23-19 reserved
18 DRAM data asserted on host bus on the same clock on which the snoop
result is sampled, instead of one clock later
17 ECC signals are always driven for EDO memory
16 IDSEL redirection
=0 allocate IDSEL1/AD12 to bridge, never assert external AD12
=1 allocate IDSEL7/AD18 to bridge, never assert external AD18; PCI
configuration cycles for Bus0/Device7 are redirected to Bus0/Device1
15 disable WSC# handshake (uni-processor mode)
14 Intel Reserved
13:12 Host/DRAM frequency
00 100 MHz
01 reserved
10 66 MHz
11 reserved
11 enable AGP-to-PCI access (note: AGP-to-PCI traffic is not allowed to
target ISA-bus devices)
10 disable PCI agent access to graphis aperture (ignored if bit 9 clear)
9 global enable graphics aperture access
8:7 DRAM Data Integrity Mode
00 non-ECC
01 error checking only (e.g. parity)
10 ECC mode
11 ECC mdoe with hardware scrubbing
6 enable ECC diagnostics mode (when set, ECC lines are forced to zero on
writes and compared to internally-generated ECC on reads)
5 monochrome video adapter present on PCI/ISA bus (with primary adapter
on AGP bus)
if register 3Eh bit 3 is clear, all VGA cycles are sent to PCI
regardless of this bit
otherwise: if clear, all VGA cycles are sent to AGP; if set, all VGA
cycles except MDA ranges (memory B0000h-B7FFFh and ports 03B4h,03B5h,
03B8h,03B9h,03BAh,03BFh) are sent to AGP
4 reserved
3 enable posting of host USWC (U??? Speculative Write Combine) writes to
PCI memory
2 In-Order Queue Depth
=1 maximum (PPro supports up to 8, but 82443BX only supports depth 4)
=0 depth forced to 1 (no pipelining on processor bus)
1:0 reserved
SeeAlso: #01142
Bitfields for 82443BX DRAM Control:
Bit(s) Description (Table 01145)
7-6 reserved
5 module mode configuration (read-only)
=0 self-refresh entry is staggered; if "SDRAMPWR" (offset 76h bit 4) is
set, 3 DIMMs are supported, CKE[5:0] is driven, and dynamic SDRAM
power-down is available; if "SDRAMPWR" is clear, 4 DIMMs are
supported but power-down is not available
=1 self-refresh entry is not staggered; 3 DIMMs are supported, only
CKE0 is driven, and dynamic power-down is not available
4:3 DRAM type
00 EDO
01 SDRAM
10 registered SDRAM
11 reserved
2:0 DRAM refresh rate
000 disabled
001 15.6 microseconds
010 31.2 microseconds
011 62.4
100 124.8
101 249.6
else reserved
SeeAlso: #01142
Bitfields for Intel 82443BX DRAM Timing:
Bit(s) Description (Table 01146)
7-2 reserved
1 add one EDO RASx# wait state for row misses (two tASR instead of one)
0 add one wait state to first EDO CASx# assertion for page hits
(2 Tasc instead of 1 Tasc)
SeeAlso: #01142
Bitfields for Intel 82443BX/EX/LX Fixed DRAM Hole Control:
Bit(s) Description (Table 01147)
7-6 Hole Enable
00 none
01 512K-640K
10 15M-16M
11 reserved
5-0 reserved (0)
SeeAlso: #01142,#01129
Bitfields for Intel 82443BX Memory Buffer Strength Control:
Bit(s) Description (Table 01148)
47-40 reserved (0)
39-38 strengths of MAA[13:0], WEA#, SRASA#, SCASA# (settings same as below)
37-36 strengths of MAB[12:11,9:0], MAB[13,10], WEB#, SRASB#, SCASB#
00 = 1x (at both 66 and 100 MHz)
01 reserved
10 = 2x (at both 66 and 100 MHz)
11 = 3x (at both 66 and 100 MHz)
35-34 MD[63:0] buffer strength control 2
4 DIMM FET config: strength for MD[63:0] path connected to DIMMs 2&3
3/4 DIMM non-FET config: program to same value as buffer str. ctrl 1
33-32 MD[63:0] buffer strength control 1
4 DIMM FET config: strength for MD[63:0] path connected to DIMMs 0&1
3/4 DIMM non-FET config: programmable based on total load detected on
all DIMM connectors
00 = 1x (at both 66 and 100 MHz)
01 reserved
10 = 2x (at both 66 and 100 MHz)
11 = 3x (at 100 MHz only)
31-30 MECC[7:0] buffer strength control 2
4 DIMM FET config: strength for MECC[7:0] path connected to DIMMs 2&3
3/4 DIMM non-FET config: program to same value as buffer str. ctrl 1
29-28 MECC[7:0] buffer strength control 1
4 DIMM FET config: strength for MD[63:0] path connected to DIMMs 0&1
3/4 DIMM non-FET config: programmable based on total load detected on
all DIMM connectors
(values same as for MD[63:0] buffer strength)
27-26 CSB7#/CKE5 buffer strength (same values as bits 37-36)
25-24 CSA7#/CKE3 buffer strength (same values as bits 37-36)
23-22 CSB6#/CKE4 buffer strength (same values as bits 37-36)
21-20 CSA6#/CKE2 buffer strength (same values as bits 37-36)
19 CSA5#/RASA5#, CSB5#/RASB5# buffer strength
0 = 1x (at both 66 and 100 MHz)
1 = 2x (at both 66 and 100 MHz)
18 CSA4#/RASA4#, CSB4#/RASB4# buffer strength (same values as bit 19)
17 CSA3#/RASA3#, CSB3#/RASB3# buffer strength (same values as bit 19)
16 CSA2#/RASA2#, CSB2#/RASB2# buffer strength (same values as bit 19)
15 CSA1#/RASA1#, CSB1#/RASB1# buffer strength (same values as bit 19)
14 CSA0#/RASA0#, CSB0#/RASB0# buffer strength (same values as bit 19)
13-12 DQMA5/CASA5# buffer strength
00 = 1x (at both 66 and 100 MHz)
01 reserved
10 = 2x (at both 66 and 100 MHz)
11 = 3x (at 66 MHz only)
11-10 DQMA1/CASA1# buffer strength (same values as bits 37-36)
9-8 DQMB5/CASB5# buffer strength (same values as bits 13-12)
7-6 DQMB1/CASB1# buffer strength (same values as bits 13-12)
5-4 DQMA[7:6,4:2,0]/CASA[7:6,4:2,0]# buffer strength (as for bits 37-36)
3-2 CKE1/GCKE buffer strength (same values as bits 37-36)
1-0 CKE0/FENA buffer strength (same values as bits 37-36)
SeeAlso: #01142
Bitfields for Intel 82439TX/82443BX Extended SMRAM Control register:
Bit(s) Description (Table 01149)
7 SMRAM location
=0 compatible SMRAM space at segment A000h
=1 high SMRAM space at addreses 100A0000h to 100FFFFFh (accessing
physical DRAM addresses A0000h to FFFFFh)
6 (write-clear) access to extended SMRAM memory range when SMRAM space
is not open and not in SMM
5 enable write-through caching of SMRAM
(forced to 1 by 82443BX, to 0 by 82439TX)
4 enable L1 caching of SMRAM (forced to 1 by 82443BX)
3 enable L2 caching of SMRAM (forced to 1 by 82443BX)
2-1 TSEG size (read-only once SMRAM locked) (see #01123)
00 128K
01 256K
10 512K
11 1M
0 enable TSEG (read-only once SMRAM locked) (see #01123)
when both SMRAM and TSEG are enabled, the top N kilobytes of physical
DRAM are no longer claimed by the memory controller, and instead
appear as extended SMRAM at an address 256M higher than the physical
address
SeeAlso: #01142,#01123,#01099
Bitfields for Intel 82443BX SDRAM Row Page Size:
Bit(s) Description (Table 01150)
15-14 page size for row 7 (back of DIMM4)
00 two KB
01 four KB
10 eight KB
11 reserved
13-12 page size for row 6 (front of DIMM4)
...
3-2 page size for row 1 (back of DIMM1)
1-0 page size for row 0 (front of DIMM1)
SeeAlso: #01142
Bitfields for Intel 82443BX SDRAM Control Register:
Bit(s) Description (Table 01151)
15-10 reserved (0)
9-8 add one-clock delay to idle/pipeline DRAM leadoff when =01 (all other
values are illegal)
7-5 SDRAM mode select
000 normal operation
001 issue NOP command on all CPU-to-SDRAM cycles
010 issue All-Banks-Precharge command on all CPU-to-SDRAM cycles
011 issue mode register set command on CPU-to-SDRAM cycles
(command is driven on memory address lines, so the proper
address must be calculated for each row of memory to drive
the correct command; MAx[2:0] must be driven to 010 for
burst-of-4 mode, MAx3 to 1 for interleave wrap type,
MAx4 to the value of the CAS# latency bit, MAx[6:5] to 01,
and MAx[12:7] to 0000000
100 issue CBR cycles on all CPU-to-SDRAM cycles
else reserved
4 "SDRAMPWR" specifies how CKE signals are driven for various DRAM
configurations; refer to #01145 bit 5
3 Leadoff Command Timing
=0 four CS# clocks (100 MHz or 66 MHz desktop if MAA/MAB load > 9)
=1 three CS# clocks (66 MHz mobile platforms, or desktop w/ load <= 9)
2 CAS# latency
=0 three DCLKs
=1 two DCLKs
1 SDRAM RAS# to CAS# delay
=0 three clocks
=1 two clocks
0 SDRAM RAS# precharge
=0 three clocks
=1 two clocks
SeeAlso: #01142
Bitfields for Intel 82443BX Paging Policy Register:
Bit(s) Description (Table 01152)
15-8 banks per row (bit 7 is row 0, bit 15 is row 7)
=0 two banks
=1 four banks
7-5 reserved
4 Intel Reserved
3-0 DRAM Idle Timer ("DIT")
number of clocks in idle state before all pages are precharged
0000 no clocks
0001 2 clocks
0010 4 clocks
0011 8 clocks
0100 10 clocks
0101 12 clocks
0110 16 clocks
0111 32 clocks
1xxx never (pages are not closed on idle)
SeeAlso: #01142
Bitfields for Intel 82443BX Power Management Control Register:
Bit(s) Description (Table 01153)
7 enable SDRAM power-down for idle rows
6 enable ACPI control register at PORT 0022h
5 suspend refresh type
=0 self-refresh
=1 CBR mode
4 enable normal refresh (must be set before accessing RAM after a reset)
3 quick-start mode enabled (read-only)
2 enable dynamic clock gating on AGPset "IDLE" condition (all buses in
idle state)
1 AGP disabled (read-only)
0 enable CPU reset without PCIRST enable
SeeAlso: #01142
Bitfields for Intel 82443BX Suspend CBR Refresh Rate:
Bit(s) Description (Table 01154)
15-13 reserved (0)
12 enable automatic Suspend CBR Refresh Rate adjustment (based on number
of OSCCLKs in a given time); if clear, the below field must be
programmed to guarantee minimum refresh rates in the worst case
11-0 Suspend CBR Refresh Rate (number of OSCCLKs between refresh requests)
SeeAlso: #01142
Bitfields for Intel 82443BX Error Address Pointer:
Bit(s) Description (Table 01155)
31-12 (read-only) bits 31-12 of address in which first parity/ECC error
occurred
11-2 reserved
1 (write-clear) multi-bit error occurred
0 (write-clear) single-bit error occurred
SeeAlso: #01156,#01142
Bitfields for Intel 82443BX/EX/LX Error Command Register:
Bit(s) Description (Table 01156)
7 enable SERR# on AGP non-snoopable access outside graphics aperture
6 enable SERR# on invalid AGP DRAM access (82443BX)
enable SERR# on AGP Non-snoopable access to location outside main DRAM
and arpeture rangles (82443EX/LX)
5 enable SERR# on access to invalid Graphics Aperture Translation Table
4 enable SERR# on receiving Target Abort
3 enable SERR# when Thermal DRAM Throttling detected (82443BX)
enable SERR# on PCI Parity Error (82443EX/LX)
---82443BX---
2 SERR# mode
=0 asserted for one PCI clock
=1 level mode signal (for systems that connect SERR# to EXTSMI#)
1 enable SERR# on receiving multi-bit Parity/ECC error
0 enable SERR# on receiving single-bit (corrected) ECC error
---82443EX/LX---
2-0 reserved
Note: bits 1 and 0 must be clear on systems not supporting ECC
SeeAlso: #01155,#01157,#01142,#01129
Bitfields for Intel 82443BX Error Status Register:
Bit(s) Description (Table 01157)
15-13 reserved (0)
12 (write-clear) DRAM Read thermal throttling condition occurred
11 (write-clear) DRAM Write thermal throttling condition occurred
10 (write-clear) AGP non-snoopable access outside Graphics Aperture
9 (write-clear) invalid AGP non-snoopable DRAM read access
8 (write-clear) invalid Graphics Aperture Translation Table entry
7-5 (read-only) number of DRAM row containing first multi-bit error
4 (write-clear) multi-bit (uncorrectable) error occurred
3-1 (read-only) number of DRAM row containing first single-bit error
0 (write-clear) single-bit (correctable) error occurred
SeeAlso: #01156,#01142
Bitfields for Intel AGP Capability Identifier:
Bit(s) Description (Table 01158)
31-24 reserved
23-20 major version of supported AGP revision
19-16 minor version of supported AGP revision
15-8 offset of next capability (0 = none)
7-0 PCI capability ID (2 = AGP, 0 = disabled)
SeeAlso: #01142,#01159,#01129
Bitfields for Intel 82443BX/EX/LX AGP Status Register:
Bit(s) Description (Table 01159)
31-24 maximum AGP request queue depth (read-only)
23-10 reserved
9 AGP side band addressing is supported (read-only)
8-2 reserved
1-0 supported AGP data transfer type(s)
bit 0: 1x data transfer mode
bit 1: 2x data transfer mode
Note: bits 0 and 1 may not both be clear
SeeAlso: #01160,#01142,#01158,#01129
Bitfields for Intel 82443BX/EX/LX AGP Command Register:
Bit(s) Description (Table 01160)
31-10 reserved
9 enable AGP sideband addressing
8 enable AGP
7-2 reserved
1-0 selected AGP transfer rate
00 = default
01 = 1x
10 = 2x
11 illegal
SeeAlso: #01159,#01142,#01161,#01129
Bitfields for Intel 82443BX/EX/LX AGP Control Register:
Bit(s) Description (Table 01161)
31-16 reserved (0)
15 disable forced ordering of snoopable writes and AGP reads (82443BX)
(82443EX/LX) reserved
14 reserved (0)
13 enable Graphics Aperture Write-AGP Read synchronization
12-10 reserved (0)
9-8 reserved (0) (82443BX)
expedite transaction throttle timer (82443EX/LX)
00 no throttling
01 reserved
10 192 clocks on, 64 clocks off
11 reserved
7 enable Graphics Translation Lookaside Buffer (and GTLB Flush Control)
6-0 reserved (0)
SeeAlso: #01160,#01142,#01129
Bitfields for Intel 82443BX/EX/LX Graphics Aperture Size Control:
Bit(s) Description (Table 01162)
7-6 reserved
5-0 aperture size
000000 256M
100000 128M
110000 64M
111000 32M
111100 16M
111110 8M
111111 4M
other illegal
SeeAlso: #01142,#01163,#01129
Bitfields for Intel 82443BX/EX/LX Graphics Aperture Trans. Table Base Register:
Bit(s) Description (Table 01163)
31-12 bits 31-12 of aperture translation table base address
11-0 reserved (0)
SeeAlso: #01162,#01142,#01129
Bitfields for Intel 82443BX Memory Buffer Frequency Select:
Bit(s) Description (Table 01164)
23 reserved
22 MAA[13:0], WEA#, SRASA#, SCASA# buffer select
=0 66 MHz buffers
=1 100 MHz buffers
21 MAB[12:11,9:0]#, MAB[13,10], WEB#, SRASB#, SCASB# buffer select
(as for bit 22)
20 MD[63:0] (control 2) buffer select
19 MD[63:0] (control 1) buffer select
18 MECC[7:0] (control 2) buffer select
17 MECC[7:0] (control 1) buffer select
16 CSB7#/CKE5 buffer select
15 CSA7#/CKE3 buffer select
14 CSB6#/CKE4 buffer select
13 CSA6#/CKE2 buffer select
12 CSA5#/RASA5#, CSB5#/RASB5# buffer select
11 CSA4#/RASA4#, CSB4#/RASB4# buffer select
10 CSA3#/RASA3#, CSB3#/RASB3# buffer select
9 CSA2#/RASA2#, CSB2#/RASB2# buffer select
8 CAS1#/RASA1#, CSB1#/RASB1# buffer select
7 CSA0#/RASA0#, CSB0#/RASB0# buffer select
6 DQMA5/CASA5# buffer select
5 DQMA1/CASA1# buffer select
4 DQMB5/CASB5# buffer select
3 DQMB1/CASB1# buffer select
2 DQMA[7:6,4:2,0]/CASA[7:6,4:2,0]# buffer select
1 CKE1/GCKE buffer select
0 CKE0/FENA buffer select
SeeAlso: #01142,#01166
Bitfields for Intel 82443BX DRAM Read/Write Thermal Throttling Control:
Bit(s) Description (Table 01165)
63 lock all read and write throttle control register bits (exists in Write
Throttling control register only)
62-46 reserved
45-38 global DRAM sampling window (in four-millisecond units)
37-26 global QWORD threshold (documented as units of 215, but may be typo and
actually be units of 2^15 = 32768)
thermal throttling will be invoked if the number of QWORD accesses
during the sampling window exceeds the threshold count
25-20 throttle time in multiples of the sampling window
19-13 throttle monitoring window in 16 DRAM-clock units
12-3 throttle QWORD maximum count -- while throttling is enabled, at most
this many QWORD accesses are permitted during each throttle
monitoring window
2-0 DRAM Throttle Mode
100 normal operation
else Intel Reserved
SeeAlso: #01142
Bitfields for Intel 82443BX Buffer Control Register:
Bit(s) Description (Table 01166)
15-10 reserved
9-6 AGP Jam Latch strength
bit 9: enable strong pull-up
bit 8: enable weak pull-up
bit 7: enable strong pull-down
bit 6: enable weak pull-down
5-0 Intel Reserved
SeeAlso: #01142,#01164
Format of PCI Configuration for Intel 82371FB/82371SB Function 0 (ISA Bridge):
Offset Size Description (Table 01167)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 122Eh/7000h)
(revision ID 00h = 82371SB step A-1)
(revision ID 01h = 82371SB step B-0)
40h 12 BYTEs reserved
4Ch BYTE ISA I/O Controller Recovery Timer (see #01087)
4Dh BYTE reserved
4Eh BYTE X-Bus Chip Select Enable (see #01089)
4Fh BYTE (82371SB) X-Bus Chip Select Enable High (see #01102)
bit 0: I/O APIC enabled
4Fh BYTE (82371FB) reserved
50h 16 BYTEs reserved
60h 4 BYTEs PCI IRQ Route Control (see #01076)
64h 5 BYTEs reserved
69h BYTE top of memory (see #01216)
6Ah WORD miscellaneous status (see #01217)
6Ch 4 BYTEs reserved
70h BYTE motherboard IRQ Route Control 0 (see #01218)
71h BYTE (82371FB) motherboard IRQ Route Control 1 (see #01218)
72h 4 BYTEs reserved
76h 2 BYTEs motherboard DMA control (see #01219)
78h WORD programmable chip select control (see #01220)
7Ah 6 BYTEs reserved
80h BYTE (82371SB) APIC Base Address Relocation (see #01078)
81h BYTE reserved
82h BYTE (82371SB) Deterministic Latency Control (see #01221)
83h 29 BYTEs reserved
A0h BYTE SMI Control (see #01222)
A1h BYTE reserved
A2h WORD SMI Enable (see #01080)
A4h DWORD System Event Enable (SEE) (see #01081)
A8h BYTE Fast-Off Timer (in minutes, PCICLKs, or milliseconds)
value is count less one; timer must be stopped before
changing its value
A9h BYTE reserved
AAh WORD SMI Request (see #01082)
ACh BYTE Clock Scale STPCLK# Low Timer
STPCLK# stays low for 1+1056*(value+1) PCICLKs
ADh BYTE reserved
AEh BYTE Clock Scale STPCLK# High Timer
STPCLK# stays high for 1+1056*(value+1) PCICLKs
AFh 81 BYTEs reserved
SeeAlso: #00873,#01214,#01215,#01064,#01083,#01108,#01098
Format of PCI configuration for Intel 82371MX MPIIX:
Offset Size Description (Table 01168)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 1234h)
40h 9 BYTEs reserved
49h BYTE serial and parallel port enable (see #01169)
4Ah 2 BYTEs reserved
4Ch BYTE Extended I/O Controller Recovery Timer (see #01170)
4Dh BYTE reserved
4Eh BYTE BIOS enable (see #01171)
4Fh BYTE FDC enable (see #01172)
50h 16 BYTEs reserved
60h BYTE PIRQA# Route Control (see #01076)
61h BYTE PIRQB# Route Control (see #01076)
62h 8 BYTEs reserved
6Ah WORD Miscellaneous Status (see #01173)
6Ch WORD IDE timing modes (see #01223)
6Eh 2 BYTEs reserved
70h BYTE Motherboard IRQ Route Control (see #01223)
71h 5 BYTEs reserved
76h 3 BYTEs Motherboard DMA Route Control (see #01219)
79h 5 BYTEs reserved
7Eh BYTE Audio enable (see #01174)
7Fh BYTE DMA channel 5-7 address size (see #01175)
80h BYTE PCI DMA enable (see #01176)
81h 7 BYTEs reserved
88h BYTE PCI DMA/PCI DMA expansion A (see #01177)
89h BYTE PCI DMA/PCI DMA expansion B (see #01177)
8Ah WORD Programmable Memory Address Control 0 (see #01178)
8Ch WORD Programmable Memory Address Control 1 (see #01178)
8Eh WORD Programmable Memory Address Mask (see #01179)
90h BYTE Programmable Address Range Enable (see #01180)
91h BYTE reserved
92h WORD Programmable Chip Select Control (see #01181)
94h WORD Programmable Address Control 1 (see #01182)
96h WORD Programmable Address Control 2 (see #01182)
98h WORD Programmable Address Control 3 (see #01182)
9Ah BYTE Programmable Address Mask A (see #01183)
9Bh BYTE Programmable Address Mask B (see #01184)
9Ch WORD I/O configuration address (see #01185)
9Eh 2 BYTEs reserved
A0h WORD Programmable Address Control 4 (see #01182)
A2h WORD Programmable Address Control 5 (see #01182)
A4h BYTE Programmable Address Mask C (see #01186)
A5h BYTE Peripheral Access Detect Enable 0 (see #01187)
A6h BYTE Peripheral Access Detect Enable 1 (see #01188)
A7h BYTE Peripheral Access Detect Enable 2 (see #01189)
A8h WORD Local Trap Address for Device 3 (see #01190)
AAh BYTE Local Trap Mask for Device 3 (see #01191)
ABh BYTE Local Trap SMI Enable (see #01192)
ACh 2 BYTEs reserved
AEh BYTE Local Trap SMI Status (see #01192)
AFh BYTE reserved
B0h BYTE Local Standby SMI Enable (see #01193)
B1h BYTE Local Standby Timer Reload Enable (see #01194)
B2h BYTE Local Standby SMI Status (see #01193)
B3h BYTE reserved
B4h BYTE Local Standby Timer IDE Idle (see #01195)
B5h BYTE Local Standby Timer Audio Idle (see #01195)
B6h BYTE Local Standby Timer COM Idle (see #01195)
B7h BYTE reserved
B8h BYTE Local Standby Timer Device 1 Idle (see #01195)
B9h BYTE Local Standby Timer Device 2 Idle (see #01195)
BAh BYTE Local Standby Timer Device 3 Idle (see #01195)
BBh BYTE reserved
BCh BYTE Software/EXTSMI# SMI Delay Timer (see #01195)
BDh BYTE Suspend SMI Delay Timer (see #01195)
BEh BYTE Global Standby Timer (see #01195)
BFh BYTE Clock Throttle Standby Timer (see #01195)
C0h BYTE System Management Control (see #01196)
C1h BYTE System SMI Enable (see #01197)
C2h BYTE Miscellaneous SMI Enable (see #01198)
C3h BYTE Global SMI Enable (see #01200)
C4h 2 BYTEs reserved
C6h BYTE System SMI Status (see #01197)
C7h BYTE Miscellaneous SMI Status (see #01199)
C8h BYTE Global SMI Status (see #01201)
C9h 3 BYTEs reserved
CCh BYTE Suspend/Resume Control 1 (see #01202)
CDh BYTE Suspend/Resume Control 2 (see #01203)
CEh BYTE SMOUT Control (see #01204)
CFh BYTE reserved
D0h BYTE System Event Enable 0 (see #01207)
D1h BYTE System Event Enable 1 (see #01208)
D2h BYTE System Event Enable 2 (see #01209)
D3h BYTE Burst Count Timer (see #01195)
D4h BYTE Clock Control (see #01205)
D5h BYTE reserved
D6h BYTE STPCLK# Low Timer (see #01195)
D7h BYTE STPCLK# High Timer (see #01195)
D8h BYTE Stop Break Event Enable 0 (see #01207)
D9h BYTE Stop Break Event Enable 1 (see #01208)
DAh BYTE Stop Break Event Enable 2 (see #01209)
DBh 5 BYTEs reserved
E0h BYTE Shadow Register (see #01206)
E1h 3 BYTEs reserved
E4h BYTE Burst Clock Event Enable 0 (see #01207)
E5h BYTE Burst Clock Event Enable 1 (see #01208)
E6h BYTE Burst Clock Event Enable 2 (see #01209)
E7h BYTE Burst Clock Event Enable 3 (see #01210)
E8h BYTE Burst Clock Event Enable 4 (see #01211)
E9h BYTE Burst Clock Event Enable 5 (see #01212)
EAh BYTE Burst Clock Event Enable 6 (see #01213)
EBh BYTE reserved
ECH BYTE Clock Throttle Break Event Enable 0 (see #01207)
EDh BYTE Clock Throttle Break Event Enable 1 (see #01208)
EEh BYTE Clock Throttle Break Event Enable 2 (see #01209)
EFh BYTE Clock Throttle Break Event Enable 3 (see #01210)
F0h BYTE Clock Throttle Break Event Enable 4 (see #01211)
F1h BYTE Clock Throttle Break Event Enable 5 (see #01212)
F2h BYTE Clock Throttle Break Event Enable 6 (see #01213)
F3h 13 BYTES reserved
SeeAlso: #00873,#01076
Bitfields for Intel 82371MX serial and parallel port enable register:
Bit(s) Description (Table 01169)
7 reserved
6 LPT3 enabled
5 LPT2 enabled
4 LPT1 enabled
3 COM4 enabled
2 COM3 enabled
1 COM2 enabled
0 COM1 enabled
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Extended I/O Controller Recovery Timer register:
Bit(s) Description (Table 01170)
7 reserved
6 8-Bit I/O Recovery Enable
=1 Enable value programmed into bits 5-3
5-3 8-Bit I/O Recovery Times
000 = 8 SYSCLK
001 = 1 SYSCLK (default)
010 = 2 SYSCLK
011 = 3 SYSCLK
100 = 4 SYSCLK
101 = 5 SYSCLK
110 = 6 SYSCLK
111 = 7 SYSCLK
2-0 Reserved (0)
SeeAlso: #01168,#01087,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX BIOS enable register:
Bit(s) Description (Table 01171)
7 Extended BIOS Enable
6 Lower BIOS Enable 1
5 Lower BIOS Enable 0
4 Lower BIOS CS# Enable 0
3 F Segment BIOS Enable
2 BIOSCS# Write Protect
1-0 reserved
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX FDC Enable register:
Bit(s) Description (Table 01172)
7 Coprocessor Error fuction Enable
6 IRQ12/M Mouse Function Enable
5 System Management Output 5/Disk Output Enable
4 System Management Output 4/RTCALE Enable
3 Motherboad DMA 2 Disable
2 reserved
1 Floppy Secondary Addess Enable
0 Floppy Primary Address Enable
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Miscellaneous Status register:
Bit(s) Description (Table 01173)
15-3 reserved
2-1 reserved (0)
0 ISA Clock Divisor Status
=1 Divisor=3 (PCICLK=25MHz) default
=0 Divisor=4 (PCICLK=33MHz)
Note: This is a read-only register that reports on chipset jumper settings.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Audio enable register:
Bit(s) Description (Table 01174)
7 Audio enabled
6-4 Reserved
3-2 Audio I/O Address
00 0220h
01 0230h
10 0240h
11 0250h
1-0 reserved
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX DMA channel 5-7 address size register:
Bit(s) Description (Table 01175)
7 Channel 7 16/8-Bit Count by Word/Byte
=1 16-bit, count by word
=0 8-bit, count by byte
6 Channel 6 16/8-Bit Count by Word/Byte (same values as bit 7)
5 Channel 5 16/8-Bit Count by Word/Byte (same values as bit 7)
4-3 reserved (0)
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX PCI DMA Enable register:
Bit(s) Description (Table 01176)
7 DMA CH7 is on PCI Bus
6 DMA CH6 is on PCI Bus
5 DMA CH5 is on PCI Bus
4 reserved
3 DMA CH3 is on PCI Bus
2 DMA CH2 is on PCI Bus
1 DMA CH1 is on PCI Bus
0 DMA CH0 is on PCI Bus
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX PCI DMA/PCI DMA expansion registers:
Bit(s) Description (Table 01177)
7-4 reserved
3 Expansion enabled
2-0 DMA channel
Note: The PCI DMA Expansion request lines (REQ[A,B]#/GNT[A,B]#) provide PCI
DMA and PCI DMA expansion support.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Memory Address Control registers:
Bit(s) Description (Table 01178)
15-0 Memory Access Control
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Memory Address Mask register:
Bit(s) Description (Table 01179)
7-0 Memory Address Mask
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Address Range Enable register:
Bit(s) Description (Table 01180)
7 PCS# Enabled for Programmable Address Range 2
6 PCS# Enabled for Programmable Address Range 1
5 Programmable Address range 5 Enabled
4 Programmable Address range 4 Enabled
3 Programmable Address range 5 Enabled
2 Programmable Address range 3 Enabled
1 Programmable Address range 1 Enabled
5 PCS# Address range Enabled
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Chip Select Control register:
Bit(s) Description (Table 01181)
15-0 PCS# Address
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Address Control registers:
Bit(s) Description (Table 01182)
15-0 Programmable Address Control
Note: This register selects a 16-bit I/O address range to be forwarded to
the Extended I/O Bus, if enabled in the Programmable Address Range
register.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Address Mask A register:
Bit(s) Description (Table 01183)
7-4 Programmable Address Control 1 Mask
3-0 Programmable Chip Select Mask
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Address Mask B register:
Bit(s) Description (Table 01184)
7-4 Programmable Address Control 3 Mask
3-0 Programmable Address Control 2 Mask
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX I/O configuration address register:
Bit(s) Description (Table 01185)
15-10 reserved
9-1 I/O Configuration Address
0 I/O Configuration Address Enabled
Note: This register provides an I/O address range to be forwarded to the
Extended I/O Bus for accesses to the configuration space of an
integrated I/O device. PCI address bits 9-1 are compared to bits
9-1 of this register. Address bits 31-10 must be 0.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Programmable Address Mask C register:
Bit(s) Description (Table 01186)
7-4 Programmable Address Control 5 Mask
3-0 Programmable Address Control 4 Mask
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Peripheral Access Detect Enable 0 register:
Bit(s) Description (Table 01187)
7 Enable Audio-E
6 Enable Audio-D
5 Enable Audio-C
4 Enable Audio-B
3 Enable Audio-A
2 Enable Parallel 3
1 Enable Parallel 2
0 Enable Parallel 1
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Peripheral Access Detect Enable 1 register:
Bit(s) Description (Table 01188)
7 Enable COM4
6 Enable COM3
5 Enable COM3
4 Enable COM1
3 Enable Secondary FDC
2 Enable Primary FDC
1 Enable Secondary IDE
0 Enable Promary IDE
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Peripheral Access Detect Enable 2 register:
Bit(s) Description (Table 01189)
7 Enable PMAC1
6 Enable PMAC0
5 Enable PAC5
4 Enable PAC4
3 Enable PAC3
2 Enable PAC2
1 Enable PAC1
0 Enable PCSC
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Local Trap Address for Device 3 register:
Bit(s) Description (Table 01190)
15-0 Local Trap Address base for Device 3
Note: Is compared with bits 15-0 of PCI I/O Addresses. Address bits 31-16
must be 0.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Local Trap Mask for Device 3 register:
Bit(s) Description (Table 01191)
7-4 Local Trap COM Port Select
=1000 COM4 02E8h-02EFh
=0100 COM3 03E8h-83EFh
=0010 COM2 02F8h-02FFh
=0001 COM1 03F8h-03FFh
Note: These bits when set cause an SMI# when access to the corresponding I/O
port range is made.
3-0 Local Trap Mask
Note: This field selects the range of trappable addresses (in bytes).
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Local Trap SMI Enable/Status registers:
Bit(s) Description (Table 01192)
7-6 reserved
5 IDE
4 Audio
3 COM
2 DEV3
1 DEV2
0 DEV1
Note: a set bit indicates in the Enable register turns generation of SMI# on
I/O accesses to the address region used by the selected device;
a set bit in the Status register indicates which trap caused an SMI#
interrupt.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Local Standby SMI Enable/Status registers:
Bit(s) Description (Table 01193)
7-6 reserved
5 IDE
4 Audio
3 COM
2 DEV3
1 DEV2
0 DEV1
Note: each bit in the Enable register turns on the associated SMI Timer; a
set bit in the Status register indicates which local standby timer
caused the SMI interrupt
SeeAlso: #01168,#01194,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Local Standby Timer Reload Enable register:
Bit(s) Description (Table 01194)
7 IDE
6 Audio
5 COM
4 DEV3
3 DEV2
2 DEV1
1 Audio MDAK2
0 Audio MDAK1
Note: This register enables local standby timer reloading. When the
associated I/O address range is accessed, the standby timer is
reloaded with it's default value. Also note the different bit-order
for this register only.
SeeAlso: #01168,#01193,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Count Value registers:
Bit(s) Description (Table 01195)
7-0 Count value
Note: This field contains the initial count value for various time-out
events. 00 is an illegal programmed value. The programmed value is
decremented by certain events or system clocks, and the event is
triggered when the count reaches 0.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX System Management Control register:
Bit(s) Description (Table 01196)
7-3 reserved
2 Freeze (but not reset) all Power Management timers
1 =0 disable all Power Management functions
0 =0 disable SMI
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX System SMI Enable/Status registers:
Bit(s) Description (Table 01197)
7 reserved
6 Write to APMC Port (software SMI)
5 EXTSMI#
4 IRQ12
3 IRQ8
2 IRQ4
1 IRQ3
0 IRQ1
Note: each set bit in the Enable register turns on SMI# generation for the
associated hardware event; a set bit in the Status register indicates
which event caused the SMI interrupt
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Miscellaneous SMI Enable register:
Bit(s) Description (Table 01198)
7-4 reserved
3 Write to APMC Port
2 SRBTN#
1 BATLOW#
0 reserved
Note: Enables SMI# generation for the above hardware events
SeeAlso: #01168,#01199,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Miscellaneous SMI Status register:
Bit(s) Description (Table 01199)
7-4 reserved
3 =1 indicates system is in global standby mode
2 SRBTN# caused SMI
1 BATLOW# caused SMI
0 reserved
SeeAlso: #01168,#01198,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Global SMI Enable register:
Bit(s) Description (Table 01200)
7 System Events Enabled
6 Software SMI#'s (generated by bit 0 of this register) Enabled
5 reserved
4 Local Traps Enabled
3 Local Standby Timers Enabled
2 Global Standby Timer Enabled
1 SRBTN# and BATLOW# Enabled
Note: Enables SMI# generation for the above hardware events
SeeAlso: #01168,#01201,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Global SMI Status register:
Bit(s) Description (Table 01201)
7 One of the System Events caused SMI
6 Software SMI or EXTSMI# caused SMI
5 Write to APMC caused SMI
4 Access to one of the Local Traps caused SMI
3 One of the local Standby timers caused SMI
2 Global Standby Timer caused SMI
1 SRBTN# or BATLOW# caused SMI
0 reserved
SeeAlso: #01168,#01200,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Suspend/Resume Control 1 register:
Bit(s) Description (Table 01202)
7 BATLOW# bypasses Suspend delay timer and activates SMI# immediately
6 IRQ8 will NOT cause a resume
5 COM RI (Ring) will NOT cause a resume ("Wake on Ring" function)
4 BATLOW# will not prevent a resume
3 is set by power management software at the end of a suspend routine
2 can be set by power management software at the end of a suspend routine
1-0 Set suspend mode
00 Suspend Disabled
01 reserved
10 Suspend-to-DRAM
11 Suspend-to-Disk
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Suspend/Resume Control 2 register:
Bit(s) Description (Table 01203)
7-1 reserved
0 EXTSMI# will NOT cause a resume event
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX SMOUT Control register:
Bit(s) Description (Table 01204)
7-6 reserved
5-0 Writing to any bits sets the state of the 6 SMOUTx pins.
SMOUT5 is not effected if it is configured for DOE# function
SMOUT4 is not effected if it is configured for RTCALE function
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Clock Control register:
Bit(s) Description (Table 01205)
7 Clock Throttle standy by timer frequency
=1 32ms
=0 4ms
Note: Sets the granularity of the Clock Throttle Standby Timer
6-5 reserved
4 Enable Auto Clock Throttle
3-2 STPCLK# Mode
00 Disable STPCLK# Function
01 Enable stop grant mode
10 Enable stop clock mode
11 reserved
1 Enable clock throttling
0 Enable "PCI Clock can be stopped"
SeeAlso: #01168,PORT xxxxh"Intel 82371"
(Table 01206)
Values for Intel 82371MX Shadow Register
Value AT Port Description
00h 00h Channel 0 Base Address Register (low byte)
01h 00h Channel 0 Base Address Register (high byte)
02h 01h Channel 0 Base Word Count Register (low byte)
03h 01h Channel 0 Base Word Count Register (high byte)
04h 02h Channel 1 Base Address Register (low byte)
05h 02h Channel 1 Base Address Register (high byte)
06h 03h Channel 1 Base Word Count Register (low byte)
07h 03h Channel 1 Base Word Count Register (high byte)
08h 04h Channel 2 Base Address Register (low byte)
09h 04h Channel 2 Base Address Register (high byte)
0Ah 05h Channel 2 Base Word Count Register (low byte)
0Bh 05h Channel 2 Base Word Count Register (high byte)
0Ch 06h Channel 3 Base Address Register (low byte)
0Dh 06h Channel 3 Base Address Register (high byte)
0Eh 07h Channel 3 Base Word Count Register (low byte)
0Fh 07h Channel 3 Base Word Count Register (high byte)
10h 08h DMA1 Command Register
11h 0Bh Channel 0 Mode Register
12h 0Bh Channel 1 Mode Register
13h 0Bh Channel 2 Mode Register
14h 0Bh Channel 3 Mode Register
15h 0Fh DMA1 Mask Register
16h C4h Channel 5 Base Address Register (low byte)
17h C4h Channel 5 Base Address Register (high byte)
18h C6h Channel 5 Base Word Count Register (low byte)
19h C6h Channel 5 Base Word Count Register (high byte)
1Ah C8h Channel 6 Base Address Register (low byte)
1Bh C8h Channel 6 Base Address Register (high byte)
1Ch CAh Channel 6 Base Word Count Register (low byte)
1Dh CAh Channel 6 Base Word Count Register (high byte)
1Eh CCh Channel 7 Base Address Register (low byte)
1Fh CCh Channel 7 Base Address Register (high byte)
20h CDh Channel 7 Base Word Count Register (low byte)
21h CDh Channel 7 Base Word Count Register (high byte)
22h D0h DMA2 Command Register
23h D6h Channel 5 Mode Register
24h D6h Channel 6 Mode Register
25h D6h Channel 7 Mode Register
26h DEh DMA2 Mask Register
27h 20h PIC1 ICW1
28h 21h PIC1 ICW2
29h 21h PIC1 ICW3
2Ah 21h PIC1 ICW4
2Bh 20h PIC1 OCW2
2Ch A0h PIC2 ICW1
2Dh A1h PIC2 ICW2
2Eh A1h PIC2 ICW3
2Fh A1h PIC2 ICW4
30h A0h PIC2 OCW2
31h 70h NMI mask / RTC address
32h 03FAh COM1 FIFO Enable Register (only bits 0,3,6 & 7 valid)
33h 02FAh COM2 FIFO Enable Register (only bits 0,3,6 & 7 valid)
34h 03EAh COM3 FIFO Enable Register (only bits 0,3,6 & 7 valid)
35h 02EAh COM4 FIFO Enable Register (only bits 0,3,6 & 7 valid)
36h 40h TIMER 0 Count Register (low byte)
37h 40h TIMER 0 Count Register (high byte)
38h 20h Master PIC OCW3 Register (bits 0,2 & 5 only valid)
39h A0h Slave PIC OCW3 Register (bits 0,2 & 5 only valid)
Desc: This register is used to read the current programmed value of certain
AT compatable I/O ports which are traditionally write-only.
Note: To read a given register, write the value from the table to the shadow
register, then immediately re-read the shadow register. The returned
value is the current value of the I/O port.
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Burst Clock/Clock Throttle Break Enable 0 register:
Bit(s) Description (Table 01207)
7 Enable IRQ7
6 Enable IRQ6
5 Enable IRQ7
4 Enable IRQ4
3 Enable IRQ3
2 reserved
1 Enable IRQ1
0 Enable IRQ0
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Event Enable 1 register:
Bit(s) Description (Table 01208)
7 Enable IRQ15
6 Enable IRQ14
5 reserved
4 Enable IRQ12
3 Enable IRQ11
2 Enable IRQ10
1 Enable IRQ9
0 Enable IRQ8
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Event Enable 2 register:
Bit(s) Description (Table 01209)
7 (Clock Throttle Break Event,Burst Clock Event)
reserved
(System Event,Stop Break Event,Clock Throttle Break Event)
Enable BATLOW# & SRBTN#
6 Enable EXTSMI#
5 Enable SMI#
4 (System Event,Stop Break Event,Clock Throttle Break Event)
Enable NMI
(Burst Clock Event)
reserved
3 (System Event,Stop Break Event,Clock Throttle Break Event)
Enable INTR
(Burst Clock Event)
reserved
2 reserved
1 Enable COMRI#
0 Enable events of selected type
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Event Enable 3 register:
Bit(s) Description (Table 01210)
7-2 reserved
1 Enable EXTEVNT#
0 Enable PHLDA#
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Event Enable 4 register:
Bit(s) Description (Table 01211)
7 Enable PMAC1
6 Enable PMAC0
5 Enable PAC5
4 Enable PAC4
3 Enable PAC3
2 Enable PAC2
1 Enable PAC1
0 Enable PCSC
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Event Enable 5 register:
Bit(s) Description (Table 01212)
7 Enable COM4
6 Enable COM3
5 Enable COM3
4 Enable COM1
3 Enable Secondary FDC
2 Enable Primary FDC
1 Enable Secondary IDE
0 Enable Promary IDE
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Bitfields for Intel 82371MX Event Enable 6 register:
Bit(s) Description (Table 01213)
7 Enable Audio-E
6 Enable Audio-D
5 Enable Audio-C
4 Enable Audio-B
3 Enable Audio-A
2 Enable Parallel 3
1 Enable Parallel 2
0 Enable Parallel 1
SeeAlso: #01168,PORT xxxxh"Intel 82371"
Format of PCI Configuration for Intel 82371FB/82371SB Function 1 (IDE):
Offset Size Description (Table 01214)
00h 64 BYTEs header (see #00878)
(vender ID 8086h, device ID 1230h/7010h)
20h DWORD Bus Master Interface Base Address
(see PORT xxxxh"Intel 82371SB")
40h WORD IDE timing modes, primary channel (see #01223)
42h WORD IDE timing modes, secondary channel (see #01223)
44h BYTE (82371SB) slave IDE timing register (see #01224)
45h 187 BYTEs reserved
SeeAlso: #01167,#01215,PORT xxxxh"Intel 82371SB"
Format of PCI Configuration data for Intel 82371SB Function 2 (USB):
Offset Size Description (Table 01215)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 7020h)
20h DWORD I/O space base address
(see PORT xxxxh"Intel 82371SB")
40h 32 BYTEs reserved
60h BYTE Serial Bus Specification release number
00h pre-release 1.0
10h Release 1.0
61h 9 BYTEs reserved
6Ah WORD miscellaneous status (see #01225)
6Ch 84 BYTEs reserved
C0h WORD legacy support (see #01226)
C2h 62 BYTEs reserved
SeeAlso: #01167,#01214,PORT xxxxh"Intel 82371SB"
Bitfields for Intel 82371FB/82371SB top of memory register:
Bit(s) Description (Table 01216)
7-4 top of ISA memory (in megabytes, less 1; i.e. 0001 = 2M)
3 ISA/DMA lower BIOS forwarding enable
2 (82371SB) enable A000/B000 segment forwarding to PCI bus
1 enable forwarding ISA/DMA 512K-640K region to PCI bus
0 reserved
SeeAlso: #01167,#01217
Bitfields for Intel 82371FB/82371SB miscellaneous status register:
Bit(s) Description (Table 01217)
15 (82371SB) enable SERR# on delayed transaction
write 1 to clear this bit
14-8 reserved
7 (82371SB) NB Retry Enable
6 (82371SB) EXTSMI# Mode Enable
allow special SERR# protocol between PCI bridge and 82371
5 reserved
4 (82371SB) enable USB
disable USB's master enable and I/O decode enable prior to
clearing this bit!
3 reserved
2 (82371FB) PCI Header Type Bit enable
=1 report multifunction device in PCI configuration header
1 (82371FB) internal ISA DMA/external DMA Mode status (read-only)
=0 normal DMA operation
0 (82371FB) ISA Clock Divisor status (read-only)
(82371SB) ISA Clock Divisor (read-write)
=1 SYSCLK clock divisor is 3
=0 SYSCLK clock divisor is 4
SeeAlso: #01167,#01216
Bitfields for Intel 82371FB/82371SB/82371MX motherboard IRQ Route Control:
Bit(s) Description (Table 01218)
7 disable IRQ routing
6 enable MIRQx/IRQx sharing
5 (82371SB only) enable IRQ0 output
4 reserved (0)
3-0 ISA IRQ number to which to route the PCI IRQ
Notes: IRQs 0-2, 8, and 13 are reserved
interrupt sharing should only be enabled when the device connected to
the MIRQ line and the device connected to the IRQ line both produce
active high, level triggered interrupts.
SeeAlso: #01167,#01168,#01216,#01219
Bitfields for Intel 82371FB/82371SB/82371MX motherboard DMA control:
Bit(s) Description (Table 01219)
7 type F DMA buffer enable
6-4 reserved
3 (82371FB only) disable motherboadr DMA channel
(SB/MX) reserved (0)
2-0 DMA channel number (100 = disabled [default])
(82371FB) Type F and Motherboard DMA
(82371SB/MX) Type F DMA
SeeAlso: #01167,#01168,#01218
Bitfields for Intel 82371FB/83271SB programmable chip select control register:
Bit(s) Description (Table 01220)
15-2 I/O address which will assert PCS# signal
1-0 PCS address mask
00 four bytes
01 eight contiguous bytes
10 disabled
11 sixteen contiguous bytes
SeeAlso: #01167,#01219,#01221
Bitfields for Intel 82371SB Deterministic Latency Control register:
Bit(s) Description (Table 01221)
7-4 reserved
3 enable SERR# on delayed transaction timeout
2 enable USB passive release
1 enable passive release
0 enable delayed transactions
SeeAlso: #01167,#01220
Bitfields for Intel 82371FB/82371SB SMI Control Register:
Bit(s) Description (Table 01222)
7-5 reserved
4-3 Fast-Off Timer freeze/granularity selection
00 one minute granularity (assuming 33 MHz PCICLK)
01 disabled (frozen)
10 one PCICLK
11 one millisecond
2 STPCLK# scaling enable
=1 enable Clock Scale bytes in PCI configuration space
1 STPCLK# signal enable
=1 assert STPCLK# on read from PORT 00B2h
0 SMI# Gate
=1 enable SMI# on system management interrupt
Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
write to PORT 00B2h
bit 0 does not affect the recording of SMI events, so a pending SMI
will cause an immediate SMI# when the bit is set
SeeAlso: #01167,#01079
Bitfields for Intel 82371FB/82371SB/82371MX IDE timing modes:
Bit(s) Description (Table 01223)
15 IDE decode enable
14 (82371SB) slave IDE timing register enable (see #01224)
(82371MX) primary/secondary address decode (=0 primary, =1 secondary)
13-12 IORDY# sample point
00 five clocks after DIOx# assertion
01 four clocks
10 three clocks
11 two clocks
11-10 reserved
9-8 recovery time between IORDY# sample point and DIOx#
00 four clocks
01 three clocks
10 two clocks
11 one clock
7 (FB/SB) DMA timing enable only, drive 1
(MX) reserved
6 prefetch and posting enable, drive 1
5 IORDY# sample point enable drive select 1
4 fast timing bank drive select 1
3 (FB/SB) DMA timing enable only, drive 0
(MX) reserved
2 prefetch and posting enable, drive 0
1 IORDY# sample point enable drive select 0
0 fast timing bank drive select 0
SeeAlso: #01214,#01168
Bitfields for Intel 82371SB slave IDE timing register:
Bit(s) Description (Table 01224)
7-6 secondary drive 1 IORDY# sample point
00 five clocks after DIOx# assertion
01 four clocks
10 three clocks
11 two clocks
5-4 secondary drive 1 recovery time
00 four clocks
01 three clocks
10 two clocks
11 one clock
3-2 primary drive 1 IORDY# sample point
1-0 primary drive 1 recovery time
SeeAlso: #01223
Bitfields for Intel 82371SB miscellaneous status:
Bit(s) Description (Table 01225)
15-1 reserved
0 USB clock selection
=1 48 MHz
=0 24 MHz
SeeAlso: #01215,#01226
Bitfields for Intel 82371SB legacy support register:
Bit(s) Description (Table 01226)
15 A20GATE pass-through sequence ended
write 1 to clear this bit
14 reserved
13 USB PIRQ enabled
12 USR IRQ status (read-only)
11 trap caused by write to PORT 0064h
write 1 to clear this bit
10 trap caused by read from PORT 0064h
write 1 to clear this bit
9 trap caused by write to PORT 0060h
write 1 to clear this bit
8 trap caused by read from PORT 0060h
write 1 to clear this bit
7 enable SMI at end of A20GATE Pass-Through
6 A20GATE pass-through sequence in progress (read-only)
5 enable A20GATE pass-through sequence
(write PORT 64h,D1h; write 60h,xxh; read 64h; write 64h,FFh)
4 enable trap/SMI on USB IRQ
3 enable trap/SMI on PORT 0064h write
2 enable trap/SMI on PORT 0064h read
1 enable trap/SMI on PORT 0060h write
0 enable trap/SMI on PORT 0060h read
SeeAlso: #01215,#01225
Format of PCI Configuration Data for Intel 82557:
Offset Size Description (Table 01227)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 1229h) (see #00873)
10h DWORD base address of memory-mapped Control/Status Registers (4K)
(see #01228)
14h DWORD base address of I/O-mapped Control/Status Registers (32 ports)
18h DWORD base address of Flash memory (1M)
40h 192 BYTEs unused
SeeAlso: #01098
Format of Intel 82557 Control/Status Registers:
Offset Size Description (Table 01228)
00h WORD SCB status word
02h WORD SCB command word
04h DWORD SCB general pointer
08h DWORD PORT
0Ch WORD Flash control register
0Eh WORD EEPROM control register
10h DWORD MDI control register
14h DWORD Early RCV Interrupt Rx byte count (RXBC) register
Note: see www.intel.com/design/network/datashts/64434604.pdf for additional
details
SeeAlso: #01228
Format of PCI Configuration Data for Intel 82441FX:
Offset Size Description (Table 01229)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 1237h) (see #00873)
40h 16 BYTEs reserved
50h WORD PMC Configuration (see #01230)
52h BYTE deturbo counter control
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
53h BYTE DBX buffer control (see #01231)
54h BYTE auxiliary control (see #01232)
55h WORD DRAM Row Type (see #01233)
57h BYTE DRAM Control (see #01234)
58h BYTE DRAM Timing (see #01235)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 8 BYTEs DRAM Row Buondary registers 0-7
each register N indicates cumulative amount of memory in rows
0-N (each 64 bits wide), in 8M units
68h BYTE Fixed DRAM Hole Control
69h 7 BYTEs reserved
70h BYTE Multi-Transaction Timer
number of PCLKs guaranteed to the current agent before the
82441 will grant the bus to another PCI agent on request
71h BYTE CPU Latency Timer (see #01236)
72h BYTE System Management RAM control (see #01123)
73h 29 BYTEs reserved
90h BYTE Error Command (see #01237)
91h BYTE Error Status (see #01238)
92h BYTE reserved
93h BYTE Turbo Reset Control (see #01239)
94h 108 BYTEs reserved
SeeAlso: #01098,#01108
Bitfields for Intel 82441FX PMC Configuration Register:
Bit(s) Description (Table 01230)
15 WSC Protocol Enable
14 Row Select/Extra Copy select (read-only)
=1 pins on PMC configured as two additional row selects (6/7)
=0 extra copy of two lowest memory address bits enabled
13-10 reserved
9-8 host frequence select
00 reserved
01 60 MHz
10 66 MHz
11 reserved
7 reserved
6 ECC/Parity TEST enable
5-4 DRAM Data Integrity Mode
00 no parity/ECC
01 parity generated and checked
10 ECC generated and checked, correction disabled
10 ECC generated and checked, correction enabled
3 reserved
2 In-Order Queue size (0=one, 1=four)
1-0 reserved
SeeAlso: #01229,#01231
Bitfields for Intel 82441FX DBX buffer control register:
Bit(s) Description (Table 01231)
7 enable delayed transactions
6 enable CPU-to-PCI IDE posting
5 enable USWC Write Post during I/O Bridge access
4 disable PCI Delayed Transaction timer
3 enable CPU-to-PCI Write Post
2 enable PCI-to-DRAM pipeline
1 enable PCI Burst Write Combining
0 enable Read-Around-Write
SeeAlso: #01229,#01230
Bitfields for Intel 82441FX auxiliary control register:
Bit(s) Description (Table 01232)
7 enable RAS precharge
6-2 reserved
1 Lower Memory Address Buffer Set A
=0 8mA
=1 12mA
0 reserved
SeeAlso: #01229
Bitfields for Intel 82441FX DRAM Row Type register:
Bit(s) Description (Table 01233)
15-14 row 7 DRAM type
13-12 row 6 DRAM type
11-10 row 5 DRAM type
9-8 row 4 DRAM type
7-6 row 3 DRAM type
5-4 row 2 DRAM type
3-2 row 1 DRAM type
1-0 row 0 DRAM type
00 fast page-mode DRAM
01 EDO DRAM
10 BEDO DRAM
11 empty row
SeeAlso: #01229,#01234
Bitfields for Intel 82441FX DRAM Control register:
Bit(s) Description (Table 01234)
7 reserved
6 enable DRAM Refresh Queue
5 enable DRAM EDO Auto-Detect Mode
4 DRAM Refresh Type
=0 CAS before RAS
=1 RAS only
3 reserved
2-0 DRAM refresh rate
000 disabled
001 normal (as set by PMCCFG register)
01x reserved
1xx reserved
111 fast refresh (every 32 host clocks)
SeeAlso: #01229,#01233,#01235
Bitfields for Intel 82441FX DRAM Timing register:
Bit(s) Description (Table 01235)
7 reserved
6 enable WCBR Mode
5-4 DRAM Read Burst Timing
BEDO EDO FPM
00 x333 x444 x444
01 x222 x333 x444
10 x222 x222 x333
11 res. res. res.
3-2 DRAM Write Burst Timing
(B)EDO FPM
00 x444 x444
01 x333 x444
10 x333 x333
11 x222 x333
1 RAS-to-CAS delay
=1 one clock
=0 zero clocks
0 insert one MA Wait State
SeeAlso: #01229,#01234
Bitfields for Intel 82441FX CPU Latency Timer register:
Bit(s) Description (Table 01236)
7-5 reserved
4-0 snoop stall count value
SeeAlso: #01229
Bitfields for Intel 82441FX Error Command register:
Bit(s) Description (Table 01237)
7-5 reserved
4 enable SERR# on receiving Target Abort
3 enable SERR# on PCI Parity Error (PERR#)
2 reserved
1 enable SERR# on receiving multiple-bit ECC/Parity error
0 enable SERR# on receiving single-bit ECC error
SeeAlso: #01229,#01238
Bitfields for Intel 82441FX Error Status register:
Bit(s) Description (Table 01238)
7-5 DRAM row causing first multi-bit error (read-only)
4 multiple-bit uncorrectable error detected
write 1 to this bit to clear it
3-1 DRAM row causing first single-bit error (read-only)
0 single-bit correctable ECC error detected
write 1 to this bit to clear it
SeeAlso: #01229,#01237
Bitfields for Intel 82441FX,82443EX/LX Turbo Reset Control register:
Bit(s) Description (Table 01239)
7-4 reserved
3 enable BIST on hard reset
2 reset CPU
1 reset mode (0 = soft reset, 1 = hard reset)
0 deturbo mode (82441FX)
reserved (82443EX/LX)
Note: BIST should not be enabled during a soft reset
SeeAlso: #01229,#01129,PORT 0CF9h
Format of PCI Configuration data for Intel 82454KX/GX:
Offset Size Description (Table 01240)
00h 64 BYTEs header (see #00878)
(vendor ID 8086h, device ID 84C4h)
!!!intel\29052301.pdf pg. 40
40h DWORD top of system memory
44h 4 BYTEs reserved
48h BYTE PCI decode mode
49h BYTE bridge device number
4Ah BYTE PCI bus number
4Bh BYTE PCI subordinate bus number
4Ch BYTE PB configuration
4Dh 4 BYTEs reserved
51h BYTE deturbo counter control
52h BYTE reserved
53h BYTE CPU read/write control
54h WORD PCI read/write control
56h BYTE reserved
57h BYTE SMM Enable
58h BYTE video buffer area enable
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
60h 16 BYTEs reserved
70h BYTE Error Command
71h BYTE Error Status
72h 6 BYTEs reserved
78h WORD memory gap range
7Ah WORD memory gap upper address
7Ch DWORD PCI frame buffer
80h 8 BYTEs reserved
88h DWORD high memory gap start address
8Ch DWORD high memory gap end address
90h 8 BYTEs reserved
98h DWORD (GX only) I/O Space Range #1
9Ch BYTE PCI reset
9Dh 3 BYTEs reserved
A0h DWORD (GX only) I/O Space Range #2
A4h DWORD I/O APIC range
A8h 8 BYTEs reserved
B0h WORD configuration values driven on reset
B2h 2 BYTEs reserved
B4h WORD captured system configuration values (read-only)
B6h 2 BYTEs reserved
B8h DWORD SMM range
BCh BYTE high BIOS register
BDh 3 BYTEs reserved
C0h DWORD PB Extended Error Reporting Command
C4h DWORD PB Extended Error Reporting Status
C8h DWORD PB Retry Timers
CCh 52 BYTEs reserved
SeeAlso: #00878
Top
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Adaptec devices) AX = B10Ah subfn 9004h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) (see #01241) Return: CF clear if successful ECX = dword read CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h Format of PCI Configuration Data for AIC-78xx PCI SCSI controllers: Offset Size Description (Table 01241) 00h 64 BYTEs header (see #00878) (vendor ID 9004h) (see #00875 for device ID) 40h WORD device configuration register (DEVCONFIG) (see #01242) SeeAlso: #00734,PORT xxxxh"Adaptec AIC-78xx" Bitfields for AIC-78xx device configuration register (DEVCONFIG): Bit(s) Description (Table 01242) 15-11 reserved 10 (AIC-787x+) multi-port mode (MPORTMODE) 9 (AIC-787x+) external SRAM present? (RAMPSM) 8 "VOLSENSE" 7 SCB RAM select (SCBRAMSEL) 6 "MRDCEN" 5 (AIC-787x+) external SCB SRAM access time (EXTSCBTIME) 4 (AIC-787x+) external SCB SRAM parity enable (EXTSCBPEN) 3 "BERREN" 2 "DACEN" 1 SCSI terminator power level (STPWLEVEL) 0 (AIC-787x+) differential active negation enable (DIFACTNEGEN) Note: clearing bit 7 allows access to the external SCB SRAM SeeAlso: #01241Top
INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE AX = B10Bh BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) CL = byte to write Return: CF clear if successful CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B108h,AX=B10Ch,AX=B10Dh,AX=B18Bh,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD AX = B10Ch BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (multiple of 2 less than 0100h) CX = word to write Return: CF clear if successful CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B109h,AX=B10Bh,AX=B10Dh,AX=B18Ch,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD AX = B10Dh BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (multiple of 4 less than 0100h) ECX = dword to write Return: CF clear if successful CF set on error AH = status (00h,87h) (see #00729) EAX, EBX, ECX, and EDX may be modified all other flags (except IF) may be modified Notes: this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B10Bh,AX=B10Ch,AX=B18Dh,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION AX = B10Eh BX = 0000h DS = segment/selector for PCI BIOS data (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as specified by BIOS32 services directory) ES:(E)DI -> IRQ routing table header (see #01259 at AX=B406h) Return: CF clear if successful AH = 00h BX = bit map of IRQ channels permanently dedicated to PCI WORD ES:[DI] = size of returned data CF set on error AH = error code (59h) (see #01243) WORD ES:[DI] = required size of buffer SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.1+ - SET PCI IRQ AX = B10Fh BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) CH = number of IRQ to connect CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram DS = segment/selector for PCI BIOS data (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as specified by BIOS32 services directory) Return: CF clear if successful AH = 00h CF set on error AH = error code (59h) (see #01243) Note: assumes that the calling application has determined the IRQ routing topology (see AX=B10Eh), has ensured that the selected IRQ will not cause a conflict, and will update the interrupt line configuration register on all devices which currently use the IRQ line SeeAlso: AX=B10EhTop
INT 1A - PCI BIOS v2.0c+ - INSTALLATION CHECK (32-bit) AX = B181h Return: as for AX=B101h SeeAlso: AX=B101hTop
INT 1A - PCI BIOS v2.0c+ - FIND PCI DEVICE (32-bit) AX = B182h CX = device ID (see #00735,#00742,#00743,#00873,#00875) DX = vendor ID (see #00732 at AX=B102h) SI = device index (0-n) Return: as for AX=B102h SeeAlso: AX=B102hTop
INT 1A - PCI BIOS v2.0c+ - FIND PCI CLASS CODE (32-bit) AX = B183h ECX = class code (bits 23-0) SI = device index (0-n) Return: as for AX=B103h SeeAlso: AX=B103hTop
INT 1A - PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS (32-bit) AX = B186h BH = bus number EDX = Special Cycle data Return: as for AX=B106h Note: the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B106hTop
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION BYTE (32-bit) AX = B188h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) Return: as for AX=B108h Note: the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B108h,AX=B189h,AX=B18AhTop
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION WORD (32-bit) AX = B189h BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) Return: as for AX=B109h Note: the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B109h,AX=B188h,AX=B18AhTop
INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (32-bit) AX = B18Ah BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) Return: as for AX=B10Ah Note: the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ah,AX=B188h,AX=B189hTop
INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE (32-bit) AX = B18Bh BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (0000h-00FFh) CL = byte to write Return: as for AX=B10Bh Note: the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Bh,AX=B18Ch,AX=B18DhTop
INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD (32-bit) AX = B18Ch BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (multiple of 2 less than 0100h) CX = word to write Return: as for AX=B10Ch Note: the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Ch,AX=B18Bh,AX=B18DhTop
INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD (32-bit) AX = B18Dh BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) DI = register number (multiple of 4 less than 0100h) ECX = dword to write Return: as for AX=B10Dh Note: the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation SeeAlso: AX=B10Dh,AX=B18Bh,AX=B18ChTop
INT 1A - PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION (32-bit) AX = B18Eh BX = 0000h DS = segment/selector for PCI BIOS data (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as specified by BIOS32 services directory) ES:(E)DI -> IRQ routing table header (see #01259 at AX=B406h) Return: CF clear if successful AH = 00h BX = bit map of IRQ channels permanently dedicated to PCI WORD ES:[DI] = size of returned data CF set on error AH = error code (59h) (see #01243) WORD ES:[DI] = required size of buffer SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304ChTop
INT 1A - PCI BIOS v2.1+ - SET PCI IRQ (32-bit) AX = B18Fh BH = bus number BL = device/function number (bits 7-3 device, bits 2-0 function) CH = number of IRQ to connect CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram DS = segment/selector for PCI BIOS data (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as specified by BIOS32 services directory) Return: CF clear if successful AH = 00h CF set on error AH = error code (59h) (see #01243) Note: assumes that the calling application has determined the IRQ routing topology (see AX=B10Eh), has ensured that the selected IRQ will not cause a conflict, and will update the interrupt line configuration register on all devices which currently use the IRQ line SeeAlso: AX=B10EhTop
INT 1A - Reserved For PCI AH = B2hTop
INT 1A - Reserved For PCI AH = B3hTop
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - INSTALLATION CHECK
AX = B400h
Return: CF clear if installed
AX = 0000h if installed
BH = ACFG major version (02h)
BL = ACFG minor version (08h)
CX = ??? (0002h)
EDX = 47464341h ('GFCA', which is byte-swapped 'ACFG')
SI = ??? (001Fh)
SeeAlso: AX=B401h,AX=B402h,AX=B403h,AX=B404h,AX=B405h,AX=B406h,AX=B407h
SeeAlso: @xxxxh:xxxxh"Plug-and-Play"
(Table 01243)
Values for Intel Plug-and-Play AUTO-CONFIGURATION error codes:
0000h successful
0001h specified action could not be completed
0051h ???
0055h unable to read/write configuration table from/to nonvolatile storage
0056h not a valid configuration table or wrong table version
0059h buffer too small
0081h unsupported function
FFFFh ???
SeeAlso: #F0081
Top
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET DEFAULT CONFIG TABLE AX = B401h Return: CF clear if successful AX = 0000h BX = maximum size of configuration table in bytes CX = required configuration buffer size (includes scratch space used by ACFG code) EDI = linear/physical address of ESCD table (see #01244) CF set on error AX = error code (see #01243) SeeAlso: AX=B400h,AX=B402h,@xxxxh:xxxxh"Plug-and-Play" Format of Intel Plug-and-Play Extended System Configuration Data table: Offset Size Description (Table 01244) 00h WORD total length of this table 02h 4 BYTEs signature "ACFG" 06h BYTE minor version number 07h BYTE major version number (currently 02h) 08h BYTE number of boards listed in the configuration data 09h 3 BYTEs reserved (00h) 0Ch var board data WORD checksum Notes: this table contains information about the standard devices in the system, such as serial ports, parallel ports, etc. For each device, it includes at least the I/O port address (03F8h,02F8h,0378h,etc). the sum of all words in the table, including the checksum field (with implied zero padding if the length is odd), must equal 0000h SeeAlso: #01245 Format of Extended System Configuration Data Board Header: Offset Size Description (Table 01245) 00h WORD length of this header in bytes 02h BYTE slot number 00h motherboard 01h-0Fh ISA/EISA 10h-40h PCI 03h BYTE reserved (00h) SeeAlso: #01244,#01246 Format of Extended System Configuration Data Freeform Board Header: Offset Size Description (Table 01246) 00h 4 BYTEs signature "ACFG" 04h BYTE minor version number 05h BYTE major version number (currently 02h) 06h BYTE board type 01h ISA 02h EISA 04h PCI 08h PCMCIA 10h PnPISA 20h MCA 07h BYTE reserved (00h) 08h WORD disabled functions (bit N set = function N disabled) 0Ah WORD configuration error functions 0Ch WORD reconfigurable functions (bit N set = function N reconfig'able) 0Eh 2 BYTEs reserved (00h) SeeAlso: #01249,#01250 Format of Extended System Configuration Data Freeform PCI Device Data: Offset Size Description (Table 01247) 00h BYTE PCI bus number 01h BYTE PCI device and function number 02h WORD PCI device identifier 04h WORD PCI vendor ID (see #00732 at INT 1A/AX=B102h) 06h 2 BYTEs reserved (00h) SeeAlso: #01247,#01250 Format of Extended System Configuration Data Freeform PnP ISA Board ID: Offset Size Description (Table 01248) 00h DWORD vendor ID (EISA device identifier) 04h DWORD serial number SeeAlso: #01248,#01249 Format of Extended System Configuration Data PnP ISA ECD Extension Function: Offset Size Description (Table 01249) 00h WORD 001Eh (length of this structure) 02h BYTE 01h (selection size) 03h BYTE 00h (selection data) 04h BYTE C0h (function information byte) (see #01252) 05h BYTE 18h (size of following free-format data) 06h 16 BYTEs freeform board header (see #01246) 16h 8 BYTEs Plug-and-Play board ID (see #01248) Note: ECD = Extended Configuration Data; this structure must be the last "function" for a particular ISA Plug-and-Play board SeeAlso: #01250 Format of Extended System Configuration Data PCI ECD Extension Function: Offset Size Description (Table 01250) 00h WORD length of this structure (at least 001Eh, up to 0056h) 02h BYTE 01h (selection size) 03h BYTE 00h (selection data) 04h BYTE C0h (function information byte) (see #01252) 05h BYTE size of following free-format data (at least 18h, max 50h) 06h 16 BYTEs freeform board header (see #01246) 16h 8N BYTEs PCI board ID (see #01247) for one to eight boards Notes: ECD = Extended Configuration Data; this structure must be the last "function" for a particular PCI board AMI BIOS v1.00.05.AX1 sets the length field to 001Ch for entries with a single board ID, apparently treating the field as the length of the remainder of the structure instead of the full structure's length SeeAlso: #01249 Bitfields for EISA ID and Slot Information: Bit(s) Description (Table 01251) 3-0 selector among duplicate configuration file names (0000 if no dups) 5-4 slot type 00 expansion slot 01 embedded 10 virtual slot 11 reserved 6 ID is readable 7 duplicate IDs present 8 board can be disabled 9 IOCHKERR supported 10 board or entries locked 13-11 reserved 14 board does not have or need configuration file 15 configuration not complete SeeAlso: #01252 Bitfields for EISA Function Information: Bit(s) Description (Table 01252) 0 subtype data 1 memory information (see #01253) 2 IRQ information (see #01255) 3 DMA information (see #01256) 4 port range information (see #01257) 5 port initialization data (see #01258) 6 free form data 7 function disabled SeeAlso: #01249,#01250,#01251 Format of EISA Memory Information: Offset Size Description (Table 01253) 00h WORD memory information flags (see #01254) 02h 3 BYTEs high 24 bits of memory start address (LSB first) 05h WORD memory size in K (0000h = 65536K) SeeAlso: #01252 Bitfields for EISA Memory Information Flags: Bit(s) Description (Table 01254) 0 writable (RAM rather than ROM) 1 cached 2 write-back cache rather than write-through 4-3 memory type 00 system 01 expantion 10 virtual 11 other 5 shared 6 reserved (0) 7 more entries follow 9-8 memory width 00 byte 01 word 10 dword 11 reserved 11-10 decoded address lines 00 = 20 01 = 24 10 = 32 11 reserved 15-12 reserved (0) SeeAlso: #01253 Bitfields for EISA IRQ Information: Bit(s) Description (Table 01255) 3-0 IRQ number 4 reserved (0) 5 IRQ triggering (0 = edge, 1 = level) 6 IRQ is shareable 7 more entries follow 15-8 reserved (0) SeeAlso: #01252 Bitfields for EISA DMA Information: Bit(s) Description (Table 01256) 2-0 DMA channel number 5-3 reserved (0) 6 shareable 7 more entries follow 9-8 reserved 11-10 DMA transfer size 00 byte 01 word 10 dword 11 word, but count in bytes 13-12 DMA timing 00 ISA-compatible 01 EISA type "A" 10 EISA type "B" 11 EISA type "C"/"F" (burst) 15-14 reserved (0) SeeAlso: #01252 Format of EISA Port Range Information: Offset Size Description (Table 01257) 00h BYTE port description bits 4-0: number of sequential ports bit 5 reserved (0) bit 6: shareable bit 7: more entries follow 01h WORD I/O port address SeeAlso: #01252,#01258 Format of EISA Port Initialization Data: Offset Size Description (Table 01258) 00h BYTE flags bits 1-0: port size 00 byte 01 word 10 dword 11 reserved bit 2: masked write bits 6-3 reserved (0) bit 7: more entries follow 01h ??? SeeAlso: #01252,#01257Top
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - COPY AND VERIFY CONFIG TABLE AX = B402h DS:SI -> configuration table (see #01244) ES:DI -> buffer for copy of configuration table Return: CF clear if successful AX = 0000h CF set on error AX = error code (0055h,0056h) (see #01243) Note: the buffer pointed at by ES:DI must be at least as large as the maximum configuration table size reported by AX=B401h SeeAlso: AX=B400h,AX=B401h,AX=B403hTop
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - STORE ESCD TABLE IN NVRAM AX = B403h DS:SI -> configuration table (see #01244) Return: CF clear if successful AX = 0000h CF set on error AX = error code (0055h) (see #01243) Note: sets the configuration table's checksum field, then copies the table into nonvolatile storage (i.e. FlashROM) SeeAlso: AX=B400h,AX=B402hTop
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET AVAILABLE IRQs??? AX = B404h BX = bitmap of IRQs being used??? Return: CF clear if successful AX = 0000h BX = available for ISA??? (not(BXin) & A127h) CX = available for on-board I/O??? (not(BXin) & 40D8h) DX = available for PCI??? (either not(BXin) & 0E00h or 0000h) CF set on error AX = error code (0051h) (see #01243) Note: the various vector types have also been called "shareable", "unshareable", and "avoidable" SeeAlso: AX=B400h,INT 2F/AX=1684h/BX=304ChTop
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET ??? AX = B405h Return: AX = ??? (0008h) SeeAlso: AX=B400hTop
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET PCI IRQ ROUTING TABLE AX = B406h ES:DI -> IRQ routing table header (see #01259) Return: CF clear if successful AX = 0000h WORD ES:[DI] = size of returned data CF set on error AX = error code (0059h) (see #01243) WORD ES:[DI] = required size of buffer SeeAlso: AX=B400h,AX=B404h,AX=B10Eh,INT 2F/AX=1684h/BX=304Ch Format of Intel Plug-and-Play AUTO-CONFIGURATION PCI IRQ routing header: Offset Size Description (Table 01259) 00h WORD length of IRQ routing table buffer 02h DWORD -> IRQ routing table array buffer (see #01260) Format of Intel Plug-and-Play ACFG PCI IRQ routing table entry [array]: Offset Size Description (Table 01260) 00h BYTE PCI bus number 01h BYTE PCI device number (bits 7-3) 02h BYTE link value for INTA# (if non-zero, wire-ORed together with any other PCI interrupts with same link value) 03h WORD IRQ connectivity bit map for INTA# (standard AT IRQs to which PCI interrupt can be routed) 05h BYTE link value for INTB# 06h WORD IRQ connectivity bit map for INTB# 08h BYTE link value for INTC# 09h WORD IRQ connectivity bit map for INTC# 0Bh BYTE link value for INTD# 0Ch WORD IRQ connectivity bit map for INTD# 0Eh BYTE (PCI BIOS v2.1+) device slot number (00h = motherboard) 0Fh BYTE reserved Note: each item in the routing table corresponds to a motherboard PCI device or PCI slot SeeAlso: #01259,#M0091Top
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - ??? AX = B407h EDX = length of ??? EDI = physical address of ??? Return: CF clear if successful AX = 0000h EDX = ??? EDI = ??? CF set on error AX = error code (FFFFh) (see #01243) Notes: returns error if EDI < 000C0000h or EDI+EDX > 00100000h seems to force EDI and EDX to align to 16K boundaries SeeAlso: AX=B400hTop
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - 32-BIT API AH = B4h AL = function (80h-87h) further details not yet available Note: these functions are 32-bit versions of functions 00h-07hTop
INT 1A U - Disk Spool II v2.07+ - ALTERNATE INSTALLATION CHECK AH = C0h Return: (see AH=A0h) Notes: this call is identical to AH=A0h this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=A0h,AH=ABh,AH=D0hTop
INT 1A U - DATEFIX - INSTALLATION CHECK AX = CCCCh BX = CCCCh CX = 0000h Return: CX = CCCCh if installed ES:BX -> original interrupt handler Program: DATEFIX is a public-domain TSR to correct the date on AT&T 6300 machines, where the realtime clock's calendar wraps after 1991 SeeAlso: AH=FEh,AH=FFh"AT&T"Top
INT 1A U - Disk Spool II v2.07+ - FUNCTION CALLS AH = D0h AL = function code 01h enable spooler and despooler 02h enable spooler only 03h enable despooler at beginning of file 04h disable the despooler 05h disable the despooler and spooler 06h clear the spool file 08h inhibit the popup menu 09h enable the popup menu 0Ah ??? (called by Disk Spool's INT 21 handler) 0Bh disable the spooler 0Ch start despooler after last successfully printed document 0Dh start despooler at the exact point where it last left off 0Eh pop up the menu 0Fh ??? 11h start new spool file??? (called by Disk Spool's INT 21 handler when a program terminates) 14h ??? 15h delete despool file and reset ??? 16h ??? (writes something to unknown file) 17h ??? (writes something to despool file, then reads something else and ???) 18h ??? (reads something from despool file, and then ???) 19h ??? (creates/truncates spool file) 20h clear file pointed to by the despooler 21h ??? (writes something to unknown file) 22h ??? (writes something to spool file if spooler/despooler using same file) 23h ??? (opens/creates unknown file, then ???) 30h ??? 31h ??? 32h beep 33h append CRLF to spool file??? 34h ??? 35h ??? 36h ??? 37h append CRLF to spool file and start a new spool file??? 38h ??? 40h ??? (v4.05) 41h ??? (v4.05) 51h ??? (called by Disk Spool's INT 21 handler) 52h ??? (called by Disk Spool's INT 21 handler) 57h ??? 5Ah ??? (v4.05) 5Bh ??? (v4.05) 5Ch ??? (v4.05) Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=A0h,AH=ADhTop
INT 1A - Disk Spool II v4.0x - ENABLE/DISABLE AH = E0h AL = subfunction 01h enable spooler 02h disable spooler 03h enable despooler 04h disable despooler CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) Return: AH = status 00h successful F0h printer port not managed by Disk Spool II FFH failed Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=A0h,AH=E1h,AX=E301h,AX=E401hTop
INT 1A - Disk Spool II v4.0x - GET STATUS AH = E1h CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) Return: AH = status 00h successful CL = despooler state (00h disabled, 41h enabled) CH = spooler state (00h disabled, 41h enabled) DL = despooler activity (00h standing by, 41h printing) ES:BX -> ASCIZ name of current spool file (or next if AutoSpool or AutoDespool enabled) ES:SI -> ASCIZ name of current despool file ES:DI -> 3-byte file extension used by Disk Spool II F0h printer port not managed by Disk Spool II Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=A0h,AH=E0h,AH=E2hTop
INT 1A - TheGrab v4.60 - ??? AX = E11Bh ??? Return: ??? (may destroy all registers) SeeAlso: AX=E11DhTop
INT 1A - TheGrab v4.60 - INSTALLATION CHECK AX = E11Dh Return: ES:DI -> signature block (see #01261) if installed CX = length of signature block (000Fh) Program: TheGrab is a resident ANSI screen grabber bundled with TheDraw SeeAlso: AX=E11Bh Format of TheGrab signature block: Offset Size Description (Table 01261) 00h BYTE 08h 01h 8 BYTEs ASCIZ "THEGRAB" 09h 6 BYTEs ??? (zeros)Top
INT 1A - Disk Spool II v4.0x - GET SPOOL FILES AH = E2h AL = which 01h first 02h next (can only call after "first") CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) Return: AH = status 00h successful ES:BX -> ASCIZ filename F0h no (more) spool files FFh failed Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=E0h,AH=E1hTop
INT 1A - Disk Spool II v4.0x - GET SPOOL FILE STATUS AX = E301h ES:BX -> ASCIZ filename (max 32 chars) Return: AH = status 00h successful ES:SI -> spool file status record (see #01262) F0h not a spool file FFh failed Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=E0h,AX=E302h,AX=E401h Format of Disk Spool II spool file status record: Offset Size Description (Table 01262) 00h BYTE hour of creation or last update 01h BYTE minute of creation or last update 02h BYTE year-1980 of creation or last update 03h BYTE month of creation or last update 04h BYTE day of creation or last update 05h BYTE total number of copies to print 06h BYTE number of copies already printed 07h BYTE printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) 08h BYTE save status (00h delete after printing, 01h save) 09h BYTE file status 01h done printing, but being saved 02h on hold 03h queued for printing 04h being spooled 05h being despooled (i.e. printed) 0Ah 16 BYTEs ASCIZ description 1Ah 2 WORDs file size in bytes (high,low) 1Eh 2 WORDs bytes left to print (high,low)Top
INT 1A - Disk Spool II v4.0x - UPDATE SPOOL FILE AX = E302h ES:BX -> ASCIZ filename (max 32 chars) ES:SI -> spool file status record (see #01262) Return: AH = status 00h successful F0h not a spool file FFh failed Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=E0h,AX=E301h,AX=E401hTop
INT 1A - Disk Spool II v4.0x - SPOOL EXISTING FILE AX = E401h ES:BX -> ASCIZ filename (max 32 chars) CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) Return: AH = status 00h successful FFh failed Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=E1h,AX=E302h,AX=E402hTop
INT 1A U - Disk Spool II v4.0x - SPOOL EXISTING FILE??? AX = E402h ES:BX -> ASCIZ filename (max 32 chars) CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) Return: AH = status 00h successful FFh failed Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=E1h,AX=E302h,AX=E401hTop
INT 1A U - Emulaser ELSPL.COM - ??? AH = E5h ??? Return: ??? Program: ELSPL.COM is a licensed version of Disk Spool II which is distributed as part of Vertisoft's Emulaser PostScript emulator SeeAlso: AH=A0h,INT 17/AH=03hTop
INT 1A U - Disk Spool II v4.05 - ??? AH = EEh AL = printer port??? ??? Return: ??? Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=E1hTop
INT 1A - RighTime v1.1 - TEMPORARILY DISABLE AH = F7h Program: RighTime is a TSR by G.T. Becker which continuously adjusts the system time to correct for clock drift Note: any AH value from F0h-F7h or F9h-FEh will perform this function in version 1.1, but F7h is the function called by transient portion SeeAlso: AH=F8h,AH=FFh"RighTime"Top
INT 1A - RighTime v1.1 - ENABLE AH = F8h Program: RighTime is a TSR by G.T. Becker which continuously adjusts the system time to correct for clock drift Note: RighTime is TeSseRact-compatible (see INT 2F/AX=5453h) and modifies its TeSseRact program identifier based on its current state: "RighTime" when enabled, "RighTim"F7h when disabled. SeeAlso: AH=F7h,AH=FFh"RighTime"Top
INT 1A - AT&T 6300 - READ TIME AND DATE AH = FEh Return: BX = day count (0 = Jan 1, 1984) CH = hour CL = minute DH = second DL = hundredths SeeAlso: AX=CCCCh/BX=CCCCh,AH=FFh"AT&T",INT 21/AH=2Ah,INT 21/AH=2ChTop
INT 1A - AT&T 6300 - SET TIME AND DATE AH = FFh BX = day count (0 = Jan 1, 1984) CH = hour CL = minute DH = second DL = hundredths Return: ??? SeeAlso: AX=CCCCh/BX=CCCCh,AH=FEh,INT 21/AH=2Bh"DATE",INT 21/AH=2DhTop
INT 1A - RighTime v1.1 - PERMANENTLY DISABLE AH = FFh Program: RighTime is a TSR by G.T. Becker which continuously adjusts the system time to correct for clock drift Note: upon being permanently disabled, RighTime closes the file handle referencing its executable (which is updated with time correction information every two minutes while RighTime is enabled).Top
INT 1A - SND - INSTALLATION CHECK??? AX = FF00h Return: AL = version??? (02h) AH = busy flag (00h if not in a SND call, 01h if SND currently active) Note: the SND API is also supported by IC (Internal Commands) v2.0, a shareware TSR by Geoff Friesen which extends COMMAND.COM's internal command set SeeAlso: AX=FF01h,AX=FF02h,AX=FF04h,AX=FF05hTop
INT 1A - SND - PAUSE AX = FF01h DX = number of clock ticks to delay Return: AH = status 00h successful 01h SND busy Notes: if successful, execution returns to the caller after the delay expires; if SND is busy, execution returns immediately the IC v2.0 implementation of this API makes no special allowance for time rollover at midnight, which can cause the delay to be over one hour if this function is called just before the BIOS time count rolls over and the delay extends into the next day SeeAlso: AX=FF00h,INT 15/AH=86h,INT 62/AX=0096h,INT 7F/AH=E8h,INT 80/BX=0009h SeeAlso: INT E0/CL=BDhTop
INT 1A - SND - START SOUND AX = FF02h DX = frequency in Hertz (14h-FFFFh) Return: AH = status 00h successful 01h SND busy SeeAlso: AX=FF00h,AX=FF01h,AX=FF03hTop
INT 1A - SND - STOP SOUND AX = FF03h Return: AH = status 00h successful 01h busy Note: turns off any sound currently being emitted by the PC's speaker unless SND is currently busy processing an API call (this includes background music). Use AX=FF05h to stop the sound even if an API call is in progress. SeeAlso: AX=FF00h,AX=FF02h,AX=FF05hTop
INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND AX = FF04h DS:DX -> ASCIZ music string Return: AH = status 00h successful (music begins playing in background) 01h busy Note: the music string accepted by SND is not the same as that accepted by BASIC and other programs which process music strings SeeAlso: AX=FF00h,AX=FF05h,INT 80/BX=0006hTop
INT 1A - SND - UNCONDITIONALLY STOP SOUND AX = FF05h Return: AH = 00h (successful) Note: this function is the same as AX=FF03h, but will stop the sound even if SND is currently busy, such as playing background music SeeAlso: AX=FF00h,AX=FF03h,INT 80/BX=0007hTop
INT 1B C - KEYBOARD - CONTROL-BREAK HANDLER Desc: this interrupt is automatically called when INT 09 determines that Control-Break has been pressed Note: normally points to a short routine in DOS which sets the Ctrl-C flag, thus invoking INT 23h the next time DOS checks for Ctrl-C. SeeAlso: INT 23,MEM 0040h:0071hTop
INT 1C - TIME - SYSTEM TIMER TICK Desc: this interrupt is automatically called on each clock tick by the INT 08 handler Notes: this is the preferred interrupt to chain when a program needs to be invoked regularly not available on NEC 9800-series PCs SeeAlso: INT 08,INT E2"PC Cluster"Top
INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES Notes: the default parameter table (see #01263) is located at F000h:F0A4h for 100% compatible BIOSes Under PhysTechSoft's PTS ROM-DOS this table is fictitious. SeeAlso: INT 10/AH=00h Format of video parameters: Offset Size Description (Table 01263) 00h 16 BYTEs 6845 register values for modes 00h and 01h 10h 16 BYTEs 6845 register values for modes 02h and 03h 20h 16 BYTEs 6845 register values for modes 04h and 05h 30h 16 BYTEs 6845 register values for modes 06h and 07h 40h WORD bytes in video buffer for modes 00h and 01h (0800h) 42h WORD bytes in video buffer for modes 02h and 03h (1000h) 44h WORD bytes in video buffer for modes 04h and 05h (4000h) 46h WORD bytes in video buffer for mode 06h (4000h) 48h 8 BYTEs columns on screen for each of modes 00h through 07h 50h 8 BYTEs CRT controller mode bytes for each of modes 00h through 07h Note: QEMM v7.5 Stealth appears to copy only the first 40h bytes of this table into always-accessible memoryTop
INT 1E - SYSTEM DATA - DISKETTE PARAMETERS Notes: the default parameter table (see #01264) is located at F000h:EFC7h for 100% compatible BIOSes if the table is changed, INT 13/AH=00h should be called to ensure that the floppy-disk controller is appropriately reprogrammed before rebooting the machine, this pointer should be restored to point to the original position of the floppy parameters in the ROM BIOS. The DOS boot sector takes care of this and in the case of a bootstrap error, resets the vector. It also passes the original pointer to the IO.SYS/IBMDOS.COM file for possible later restoration. under PhysTechSoft's PTS ROM-DOS this table is fictitious. the DR-DOS multi-OS LOADER (at least 1.04 up to including DR-DOS 7.03) does not alter the INT 1Eh vector when launching IBMBIO.COM files via its boot methods "S" or "D". Although this allows booting (uncompressed) IBMBIO.COM files bigger than 29 KB, it may occasionally cause the floppy parameters to get trashed due to a bug in the DR-DOS 7.03 IBMBIO.COM startup code. BUG: The 2nd level decompressor of the DR-DOS 7.03 IBMBIO.COM (1998/08/11 to 1999/07) start-up code erroneously assumes that the floppy parameters reside at 0000h:7C00h (normally set up there by the boot sector) instead of relying on the INT 1Eh vector to point at their location. Since the "assumed" floppy parameters get moved around and INT 1Eh gets updated to point to their new location, this may cause the contents of the floppy params to get trashed, if they weren't actually copied to 0000h:7C00h by the bootstrap loader (that is the boot sector or the LOADER utility). SeeAlso: INT 13/AH=0Fh,INT 41"HARD DISK 0",INT 4D/AH=0Ah Format of diskette parameter table: Offset Size Description (Table 01264) 00h BYTE first specify byte bits 7-4: step rate (Fh=2ms,Eh=4ms,Dh=6ms,etc.) bits 3-0: head unload time (0Fh = 240 ms) 01h BYTE second specify byte bits 7-1: head load time (01h = 4 ms) bit 0: non-DMA mode (always 0) Note: The DOS boot sector sets the head load time to 15ms, however, one should retry the operation on failure 02h BYTE delay until motor turned off (in clock ticks) 03h BYTE bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024) 04h BYTE sectors per track (maximum if different for different tracks) 05h BYTE length of gap between sectors (2Ah for 5.25", 1Bh for 3.5") 06h BYTE data length (ignored if bytes-per-sector field nonzero) 07h BYTE gap length when formatting (50h for 5.25", 6Ch for 3.5") 08h BYTE format filler byte (default F6h) 09h BYTE head settle time in milliseconds 0Ah BYTE motor start time in 1/8 seconds ---IBM SurePath BIOS--- 0Bh BYTE maximum track number 0Ch BYTE data transfer rate 0Dh BYTE drive type in CMOS SeeAlso: #03226 at INT 4D/AH=09hTop
INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT Desc: this vector points at 1024 bytes of graphics data, 8 bytes for each character 80h-FFh Notes: graphics data for characters 00h-7Fh stored at F000h:FA6Eh in 100% compatible BIOSes Under PhysTechSoft's PTS ROM-DOS this table is fictitious. SeeAlso: INT 10/AX=5000h,INT 43Top
INT 1F U - C&T "SuperState" BIOS - POWER OFF AH = 12h Return: none Note: POWER OFFTop
INT 1F U - C&T "SuperState" BIOS - EXECUTE FAR PROC ROUTINE ON SuperState AH = 17h ES:DI -> far procedure Return: all registers except AH,ES,DI Note: You can change the BIOS area (F000h:0000h - F000h:FFFFh) only through this functionTop
INT 1F U - C&T "SuperState" BIOS - ENABLE AUTO WAKEUP AND SET TIME AND DATE AH = 19h AL = hour in BCD BH = minutes in BCD BL = seconds in BCD CH = year century in BCD (must be 19h) CL = year low in BCD DH = month in BCD DL = date in BCD Return: CF clearTop
INT 1F U - C&T "SuperState" BIOS - SET SUSPEND TIMEOUT AH = 1Ch BX = sec until suspend starts Return: NoneTop
INT 1F U - C&T "SuperState" BIOS - SET SLEEP TIMEOUT AH = 1Dh BX = sec until sleep starts Return: NoneTop
INT 1F - NEC PC-9801 - COPY EXTENDED MEMORY AH = 90h ES:BX -> global descriptor table (see #00499 at INT 15/AH=87h) CX = number of bytes to copy SI = 0000h DI = 0000h Return: CF clear if successful CF set on error ??? SeeAlso: INT 15/AH=87hTop
INT 1F U - C&T "SuperState" BIOS - REQUEST PASSWORD INPUT AH = F5h BL = FAh Return: none Note: this function will not return until the correct password is entered SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEhTop
INT 1F U - C&T "SuperState" BIOS - ENCRYPT PASSWORD AH = F5h BL = FDh CX:SI = input string DX:DI = encrypted string BH = length of input string Return: CF set on error SeeAlso: AH=F5h/BL=FAh,AH=F5h/BL=FEhTop
INT 1F U - C&T "SuperState" BIOS - SET PASSWORD AH = F5h BL = FEh CX:SI -> input string BH = length of input string (if BH = 00h, clear password) Return: CF set on error Note: the input string must be encrypted by INT 1Fh/AH=F5h/BL=FDh SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FFhTop
INT 1F U - C&T "SuperState" BIOS - GET ENCRYPTED PASSWORD AH = F5h BL = FFh DX:DI = string buffer Return: CF set on error CF clear if successful BH = length of input string (if BH = 00h, password is not valid) DX:DI -> encrypted password string SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEhTop
INT 1F U - C&T "SuperState" BIOS - GET/SET CPU SPEED AH = FBh BL = function 00h get CPU speed Return: AL = current CPU speed (00h = fast, 01h = slow) 01h set CPU speed AL = new CPU speed (00h = fast, 01h = slow) SeeAlso: AH=FCh/BL=00hTop
INT 1F U - C&T "SuperState" BIOS - GET ALARM STATUS AH = FCh BL = 00h Return: AL = current alarm state (00h = disabled, 01h = enabled) SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02hTop
INT 1F U - C&T "SuperState" BIOS - SET ALARM STATUS AH = FCh BL = 01h AL = new alarm state (00h = disabled, 01h = enabled) SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03hTop
INT 1F U - C&T "SuperState" BIOS - GET ALARM TIME AH = FCh BL = 02h Return: CH = hour by BCD CL = min by BCD DH = sec by BCD SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h,AH=FCh/BL=04hTop
INT 1F U - C&T "SuperState" BIOS - SET ALARM TIME AH = FCh BL = 03h CH = hour by BCD CL = min by BCD DH = sec by BCD Return: CF set on error (incorrect time format or Alarm is not enable) SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h,AH=FCh/BL=05hTop
INT 1F U - C&T "SuperState" BIOS - GET ALARM DATE AH = FCh BL = 04h Return: CH = year century by BCD CL = year low by BCD DH = month by BCD DL = date by BCD SeeAlso: AH=FCh/BL=02h,AH=FCh/BL=05hTop
INT 1F U - C&T "SuperState" BIOS - SET ALARM DATE AH = FCh BL = 05h CH = year century by BCD CL = year low by BCD DH = month by BCD DL = date by BCD Return: CF set on error (incorrect date format or Alarm is not enable) SeeAlso: AH=FCh/BL=03h,AH=FCh/BL=04hTop
INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP STATUS AH = FDh BL = 00h Return: AL = current wake-up state (00h = disabled, 01h = enabled) SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02hTop
INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP STATUS AH = FDh BL = 01h AL = new wake-up state (00h = disabled, 01h = enabled) SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03hTop
INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP TIME AH = FDh BL = 02h Return: CH = hour by BCD CL = min by BCD DH = sec by BCD SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03hTop
INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP TIME
AH = FDh
BL = 03h
CH = hour by BCD
CL = min by BCD
DH = sec by BCD
Return: CF set on error (incorrect Time format or Auto Wake up is not enable)
SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
Top
INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP DATE AH = FDh BL = 04h Return: CH = year century in BCD CL = year low in BCD DH = month in BCD DL = date in BCD SeeAlso: AH=FDh/BL=02h,AH=FDh/BL=05hTop
INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP DATE AH = FDh BL = 05h CH = year century in BCD CL = year low in BCD DH = month in BCD DL = date in BCD Return: CF set on error (incorrect date format or Auto Wake up is not enable) SeeAlso: AH=FDh/BL=03h"C&T",AH=FDh/BL=04h"C&T"Top
Top
INT 20 - Minix - SEND/RECEIVE MESSAGE AX = process ID of other process BX -> message CX = operation (1 send, 2 receive, 3 send&receive) Program: Minix is a Version 7 Unix-compatible operating system by Andrew Tanenbaum Note: the message contains the system call number (numbered as in V7 Unix(tm)) and the call parametersTop
INT 20 - DOS 1+ - TERMINATE PROGRAM CS = PSP segment Return: never Notes: (see INT 21/AH=00h) this function sets the program's return code (ERRORLEVEL) to 00h SeeAlso: INT 21/AH=00h,INT 21/AH=4ChTop
INT 20 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE FIRMWARE DEBUGGER ??? Return: ??? SeeAlso: INT 21"COMTROL"Top
INT 20 P - Microsoft Windows - VMM - VxD SERVICES VxD = 0001h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01265) Values for VMM (VxD ID 0001h) service number: 0000h get version 0001h get current VM handle 0002h test current VM handle 0003h get system VM handle 0004h test system VM handle 0005h validate VM handle 0006h get VMM reenter count 0007h begin reentrant execution 0008h end reentrant execution 0009h install V86 breakpoint 000Ah remove V86 breakpoint 000Bh allocate V86 callback 000Ch allocation PM callback 000Dh call when VM returns 000Eh schedule global event 000Fh schedule VM event 0010h call global event 0011h call VM event 0012h cancel global event 0013h cancel VM event 0014h call priority VM event 0015h cancel priority VM event 0016h get NMI handler address 0017h set NMI handler address 0018h hook NMI event 0019h call when VM interrupts enabled 001Ah enable VM interrupts 001Bh disable VM interrupts 001Ch map flat 001Dh map linear to VM address 001Eh adjust execution priority 001Fh begin critical section 0020h end critical section 0021h end critical section and suspend 0022h claim critical section 0023h release critical section 0024h call when not critical 0025h create semaphore 0026h destroy semaphore 0027h wait on semaphore 0028h signal semaphore 0029h get critical section status 002Ah call when task switched 002Bh suspend VM 002Ch resume VM 002Dh no-fail resume VM 002Eh nuke VM 002Fh crash current VM 0030h get execution focus 0031h set execution focus 0032h get time slice priority 0033h set time slice priority 0034h get time slice granularity 0035h set time slice granularity 0036h get time slice information 0037h adjust execution time 0038h release time slice 0039h wake up VM 003Ah call when idle 003Bh get next VM handle 003Ch set global timeout 003Dh set VM timeout 003Eh cancel timeout 003Fh get system time Return: EAX = time in milliseconds that Windows has been running 0040h get VM execution time 0041h hook V86 interrupt chain 0042h get V86 interrupt vector 0043h set V86 interrupt vector 0044h get PM interrupt vector 0045h set PM interrupt vector 0046h simulate interrupt 0047h simulate IRET 0048h simulate far call 0049h simulate far jump 004Ah simulate far RET 004Bh simulate far RET N 004Ch build interrupt stack frame 004Dh simulate push 004Eh simulate pop 004Fh _HeapAllocate 0050h _HeapReAllocate 0051h _HeapFree 0052h _HeapGetSize 0053h _PageAllocate 0054h _PageReAllocate 0055h _PageFree 0056h _PageLock 0057h _PageUnLock 0058h _PageGetSizeAddr 0059h _PageGetAllocInfo 005Ah _GetFreePageCount 005Bh _GetSysPageCount 005Ch _GetVMPgCount 005Dh _MapIntoV86 005Eh _PhysIntoV86 005Fh _TestGlobalV86Mem 0060h _ModifyPageBits 0061h copy page table 0062h map linear into V86 0063h linear page lock 0064h linear page unlock 0065h _SetResetV86Pageabl 0066h _GetV86PageableArray 0067h _PageCheckLinRange 0068h page out dirty pages 0069h discard pages 006Ah _GetNulPageHandle 006Bh get first V86 page 006Ch map physical address to linear address 006Dh _GetAppFlatDSAlias 006Eh _SelectorMapFlat 006Fh _GetDemandPageInfo 0070h _GetSetPageOutCount 0071h hook V86 page 0072h assign device V86 pages 0073h deassign device V86 pages 0074h get array of V86 pages for device 0075h _SetNULPageAddr 0076h allocate GDT selector 0077h free GDT selector 0078h allocate LDT selector 0079h free LDT selector 007Ah _BuildDescriptorDWORDs 007Bh get descriptor 007Ch set descriptor 007Dh toggle HMA 007Eh get fault hook addresses 007Fh hook V86 fault 0080h hook PM fault 0081h hook VMM fault 0082h begin nested V86 execution 0083h begin nested execution 0084h execute V86-mode interrupt 0085h resume execution 0086h end nested execution 0087h allocate PM application callback area 0088h get current PM application callback area 0089h set V86 execution mode 008Ah set PM execution mode 008Bh begin using locked PM stack 008Ch end using locked PM stack 008Dh save client state 008Eh restore client state 008Fh execute VxD interrupt STACK: WORD interrupt number other registers as required by interrupt call Return: registers as returned by interrupt call 0090h hook device service EAX = service ID (high word = VxD ID, low = service number) ESI -> new handler 0091h hook device V86 API 0092h hook device PM API 0093h system control (see also #02657) 0094h simulate I/O 0095h install multiple I/O handlers 0096h install I/O handler DX = I/O port address ESI -> handler to call when I/O access attempted??? 0097h enable global trapping DX = I/O port address 0098h enable local trapping DX = I/O port address 0099h disable global trapping DX = I/O port address 009Ah disable local trapping DX = I/O port address 009Bh create list 009Ch destroy list 009Dh allocate list 009Eh attach list 009Fh attach list tail 00A0h insert into list 00A1h remove from list 00A2h deallocate list 00A3h get first item in list 00A4h get next item in list 00A5h remove first item in list 00A6h add instance item 00A7h allocate device callback area 00A8h allocate global V86 data area 00A9h allocate temporary V86 data area 00AAh free temporary V86 data area 00ABh get decimal integer from profile 00ACh convert decimal string to integer 00ADh get fixed-point number from profile 00AEh convert fixed-point string 00AFh get hex integer from profile 00B0h convert hex string to integer 00B1h get boolean value from profile 00B2h convert boolean string 00B3h get string from profile 00B4h get next string from profile 00B5h get environment string 00B6h get exec path 00B7h get configuration directory 00B8h open file 00B9h get PSP segment 00BAh get DOS vectors 00BBh get machine information 00BCh get/set HMA information 00BDh set system exit code 00BEh fatal error handler 00BFh fatal memory error 00C0h update system clock 00C1h test if debugger installed 00C2h output debugger string 00C3h output debugger character 00C4h input debugger character 00C5h debugger convert hex to binary 00C6h debugger convert hex to decimal 00C7h debugger test if valid handle 00C8h validate client pointer 00C9h test reentry 00CAh queue debugger string 00CBh log procedure call 00CCh debugger test current VM 00CDh get PM interrupt type 00CEh set PM interrupt type 00CFh get last updated system time 00D0h get last updated VM execution time 00D1h test if double-byte character-set lead byte 00D2h _AddFreePhysPage 00D3h _PageResetHandlePAddr 00D4h _SetLastV86Page 00D5h _GetLastV86Page 00D6h _MapFreePhysReg 00D7h _UnmapFreePhysReg 00D8h _XchgFreePhysReg 00D9h _SetFreePhysRegCalBk 00DAh get next arena (MCB) 00DBh get name of ugly TSR 00DCh get debug options 00DDh set physical HMA alias 00DEh _GetGlblRng0V86IntBase 00DFh add global V86 data area 00E0h get/set detailed VM error 00E1h Is_Debug_Chr 00E2h clear monochrome screen 00E3h output character to mono screen 00E4h output string to mono screen 00E5h set current position on mono screen 00E6h get current position on mono screen 00E7h get character from mono screen 00E8h locate byte in ROM 00E9h hook invalid page fault 00EAh unhook invalid page fault 00EBh set delete on exit file 00ECh close VM 00EDh "Enable_Touch_1st_Meg" 00EEh "Disable_Touch_1st_Meg" 00EFh install exception handler 00F0h remove exception handler 00F1h "Get_Crit_Status_No_Block" 00F2h "_Schedule_VM_RTI_Event" 00F3h "_Trace_Out_Service" 00F4h "_Debug_Out_Service" 00F5h "_Debug_Flags_Service" 00F6h VMM add import module name 00F7h VMM Add DDB 00F8h VMM Remove DDB 00F9h get thread time slice priority 00FAh set thread time slice priority 00FBh schedule thread event 00FCh cancel thread event 00FDh set thread timeout 00FEh set asynchronous timeout 00FFh "_AllocatreThreadDataSlot" 0100h "_FreeThreadDataSlot" 0101h create Mutex 0102h destroy Mutex 0103h get Mutex owner 0104h call when thread switched 0105h create thread 0106h start thread 0107h terminate thread 0108h get current thread handle 0109h test current thread handle 010Ah "Get_Sys_Thread_Handle" 010Bh "Test_Sys_Thread_Handle" 010Ch "Validate_Thread_Handle" 010Dh "Get_Initial_Thread_Handle" 010Eh "Test_Initial_Thread_Handle" 010Fh "Debug_Test_Valid_Thread_Handle" 0110h "Debug_Test_Cur_Thread" 0111h "VMM_GetSystemInitState" 0112h "Cancel_Call_When_Thread_Switched" 0113h "Get_Next_Thread_Handle" 0114h "Adjust_Thread_Exec_Priority" 0115h "_Deallocate_Device_CB_Area" 0116h "Remove_IO_Handler" 0117h "Remove_Mult_IO_Handlers" 0118h unhook V86 interrupt chain 0119h unhook V86 fault handler 011Ah unhook PM fault handler 011Bh unhook VMM fault handler 011Ch unhook device service 011Dh "_PageReserve" 011Eh "_PageCommit" 011Fh "_PageDecommit" 0120h "_PagerRegister" 0121h "_PagerQuery" 0122h "_PagerDeregister" 0123h "_ContextCreate" 0124h "_ContextDestroy" 0125h "_PageAttach" 0126h "_PageFlush" 0127h "_SignalID" 0128h "_PageCommitPhys" 0129h "_Register_Win32_Services" 012Ah "Cancel_Call_When_Not_Critical" 012Bh "Cancel_Call_When_Idle" 012Ch "Cancel_Call_When_Task_Switched" 012Dh "_Debug_Printf_Service" 012Eh enter Mutex 012Fh leave Mutex 0130h simulate VM I/O 0131h "Signal_Semaphore_No_Switch" 0132h "_MMSwitchContext" 0133h "_MMModifyPermissions" 0134h "_MMQuery" 0135h "_EnterMustComplete" 0136h "_LeaveMustComplete" 0137h "_ResumeExecMustComplete" 0138h get thread termination status 0139h "_GetInstanceInfo" 013Ah "_ExecIntMustComplete" 013Bh "_ExecVxDIntMustComplete" 013Ch begin V86 serialization 013Dh unhook V86 page 013Eh "VMM_GetVxDLocationList" 013Fh "VMM_GetDDBList" get start of VxD chain (see also #02657 at INT 2F/AX=1684h/BX=0017h) 0140h unhook NMI event 0141h "Get_Instanced_V86_Int_Vector" 0142h get or set real DOS PSP 0143h call priority thread event 0144h "Get_System_Time_Address" 0145h "Get_Crit_Status_Thread" 0146h "Get_DDB" 0147h "Directed_Sys_Control" 0148h "_RegOpenKey" 0149h "_RegCloseKey" 014Ah "_RegCreateKey" 014Bh "_RegDeleteKey" 014Ch "_RegEnumKey" 014Dh "_RegQueryValue" 014Eh "_RegSetValue" 014Fh "_RegDeleteValue" 0150h "_RegEnumValue" 0151h "_RegQueryValueEx" 0152h "_RegSetValueEx" 0153h "_CallRing3" 0154h "Exec_PM_Int" 0155h "_RegFlushKey" 0156h "_PageCommitContig" 0157h "_GetCurrentContext" 0158h "_LocalizeSprintf" 0159h "_LocalizeStackSprintf" 015Ah "Call_Restricted_Event" 015Bh "Cancel_Restricted_Event" 015Ch "Register_PEF_Provider" 015Dh "_GetPhysPageInfo" 015Eh "_RegQueryInfoKey" 015Fh "MemArb_Reserve_Pages" 0160h "Time_Slice_Sys_VM_Idle" 0161h "Time_Slice_Sleep" 0162h "Boost_With_Decay" 0163h "Set_Inversion_Pri" 0164h "Reset_Inversion_Pri" 0165h "Release_Inversion_Pri" 0166h "Get_Thread_Win32_Pri" 0167h "Set_Thread_Win32_Pri" 0168h "Set_Thread_Static_Boost" 0169h "Set_VM_Static_Boost" 016Ah "Release_Inversion_Pri_ID" 016Bh "Attach_Thread_To_Group" 016Ch "Detach_Thread_From_Group" 016Dh "Set_Group_Static_Boost" 016Eh "_GetRegistryPath" 016Fh "_GetRegistryKey" 0170h "_CleanupNestedExec" 0171h "_RegRemapPreDefKey" 0172h "End_V86_Serialization" 0173h "_Assert_Range" 0174h "_Sprintf" 0175h "_PageChangePager" 0176h "_RegCreateDynKey" 0177h "RegQMulti" 0178h "Boost_Thread_With_VM" 0179h "Get_Boot_Flags" 017Ah "Set_Boot_Flags" 017Bh "_lstrcpyn" 017Ch "_lstrlen" 017Dh "_lmemcpy" 017Eh "_GetVxDName" 017Fh "Force_Mutexes_Free" 0180h "Restore_Forced_Mutexes" 0181h "_AddReclaimableItem" 0182h "_SetReclaimableItem" 0183h "_EnumReclaimableItem" 0184h "Time_Slice_Wake_Sys_VM" 0185h "VMM_Replace_Global_Environment" 0186h "Begin_Non_Serial_Nest_V86_Exec" 0187h "Get_Nest_Exec_Status" 0188h "Open_Boot_Log" 0189h "Write_Boot_Log" 018Ah "Close_Boot_Log" 018Bh "EnableDisable_Boot_Log" 018Ch "_Call_On_My_Stack" 018Dh "Get_Inst_V86_Int_Vec_Base" 018Eh "_lstrcmpi" 018Fh "_strupr" 0190h "Log_Fault_Call_Out" 0191h "_AtEventTime" 0191h ...last service for Windows95 SP1 811Ch unhook device service??? (called by KEYREMAP.VXD) EAX = service ID (high word = VxD ID, low = service number) ESI -> handler SeeAlso: #01266,#01267,INT 2F/AX=1684h/BX=0001hTop
INT 20 P - Microsoft Windows - DEBUG - VxD SERVICES VxD = 0002h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01266,#01340 (Table 01266) Values for DEBUG (VxD ID 0002h) service number: 0000h get version 0001h "DEBUG_Fault" 0002h "DEBUG_CheckFault" 0003h "_DEBUG_LoadSyms" SeeAlso: #01265,#01267Top
INT 20 P - Microsoft Windows - VPICD - VxD SERVICES VxD = 0003h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01267,#01340 (Table 01267) Values for VPICD (VxD ID 0003h) service number: 0000h get version 0001h virtualize IRQ 0002h set interrupt request 0003h clear interrupt request 0004h physical EOI 0005h get complete status 0006h get status 0007h test physical request 0008h physically mask 0009h physically unmask 000Ah set automatic masking 000Bh get IRQ complete status 000Ch convert handle to IRQ 000Dh convert IRQ to interrupt 000Eh convert interrupt to IRQ 000Fh call on hardware interrupt 0010h force default owner 0011h force default behavior 0012h "VPICD_Auto_Mask_At_Inst_Swap" 0013h "VPICD_Begin_Inst_Page_Swap" 0014h "VPICD_End_Inst_Page_Swap" 0015h "VPICD_Virtual_EOI" 0016h "VPICD_Get_Virtualization_Count" 0017h "VPICD_Post_Sys_Critical_Init" 0018h "VPICD_VM_SlavePIC_Mask_Change" SeeAlso: #01265,#01268,INT 2F/AX=1684h/BX=0003hTop
INT 20 P - Microsoft Windows - VDMAD - VxD SERVICES VxD = 0004h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01268) Values for VDMAD (VxD ID 0004h) service number: 0000h get version 0001h virtualize channel 0002h get region information 0003h set region information 0004h get virtual state 0005h set virtual state 0006h set physical state 0007h mask channel 0008h unmask channel 0009h lock DMA region 000Ah unlock DMA region 000Bh scatter lock 000Ch scatter unlock 000Dh reserve buffer space 000Eh request buffer 000Fh release buffer 0010h copy to buffer 0011h copy from buffer 0012h default handler 0013h disable translation 0014h enable translation 0015h get EISA address mode 0016h set EISA address mode 0017h unlock DMA region (ND) 0018h "VDMAD_Phys_Mask_Channel" 0019h "VDMAD_Phys_Unmask_Channel" 001Ah "VDMAD_Unvirtualize_Channel" 001Bh "VDMAD_Set_IO_Address" 001Ch "VDMAD_Get_Phys_Count" 001Dh "VDMAD_Get_Phys_Status" 001Eh "VDMAD_Get_Max_Phys_Page" 001Fh "VDMAD_Set_Channel_Callbacks" 0020h "VDMAD_Get_Virt_Count" 0021h "VDMAD_Set_Virt_Count" 0021h ...last service for Windows95 SP1 SeeAlso: #01267,#02646,#02683 at INT 2F/AX=1684h/BX=0444hTop
INT 20 P - Microsoft Windows - VTD - VxD SERVICES VxD = 0005h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01269) Values for VTD (VxD ID 0005h) service number: 0000h get version 0001h update system clock 0002h get interrupt period 0003h begin minimum interrupt period 0004h end minimum interrupt period 0005h disable trapping 0006h enable trapping 0007h get real time Return: EDX:EAX = time in 840ns units since Windows was started 0008h "VTD_Get_Date_And_Time" 0009h "VTD_Adjust_VM_Count" 000Ah "VTD_Delay" SeeAlso: #02646 at INT 2F/AX=1684h/BX=0005hTop
INT 20 P - Microsoft Windows - V86MMGR - VxD SERVICES VxD = 0006h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01270) Values for V86MMGR (VxD ID 0006h) service number: 00h get version 01h allocate V86 pages 02h set EMS and XMS limits 03h get EMS and XMS limits 04h set mapping information 05h get mapping information 06h Xlat API 07h load client pointer 08h allocate buffer 09h free buffer 0Ah get Xlat buffer state 0Bh set Xlat buffer state 0Ch get VM flat selector 0Dh map pages 0Eh free page map region 0Fh _LocalGlobalReg 10h get page status 11h set local A20 12h reset base pages 13h set available mapped pages 14h "V86MMGR_NoUMBInitCalls" 15h "V86MMGR_Get_EMS_XMS_Avail" 16h "V86MMGR_Toggle_HMA" EAX = ??? 17h "V86MMGR_Dev_Init" 18h "V86MMGR_Alloc_UM_Page" SeeAlso: #02646,#01271,INT 2F/AX=1684h"DEVICE API"Top
INT 20 P - Microsoft Windows - PageSwap - VxD SERVICES VxD = 0007h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01271) Values for PageSwap (VxD ID 0007h) service number: 00h get version 01h test create 02h create swap file 03h destroy swap file 04h in 05h out 06h test if I/O valid 07h "Read_Or_Write" 08h "Grow_File" 09h "Init_File" SeeAlso: #01270,#01272,#01273,#02648Top
INT 20 P - Microsoft Windows - REBOOT - VxD SERVICES VxD = 0009h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01272) Values for REBOOT (VxD ID 0009h) service number: 00h get REBOOT version??? 01h ??? 02h ??? 03h ...last service for Windows95 SP1 SeeAlso: #01271,#01273,#02642Top
INT 20 P - Microsoft Windows - VDD - VxD SERVICES VxD = 000Ah Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01273) Values for VDD (VxD ID 000Ah) service number: 00h get version 01h PIF state 02h get GrabRtn 03h hide cursor 04h set VM type 05h get ModTime 06h set HCurTrk 07h message clear screen 08h message foreground color 09h message background color 0Ah message output text 0Bh message set cursor position 0Ch query access 0Dh "VDD_Check_Update_Soon" 0Eh "VDD_Get_Mini_Dispatch_Table" 0Fh "VDD_Register_Virtual_Port" DX = base I/O port number CL = number of contiguous ports??? 10h "VDD_Get_VM_Info" 11h "VDD_Get_Special_VM_IDs" Return: ESI = ??? EDI = ??? 12h "VDD_Register_Extra_Screen_Selector" 13h "VDD_Takeover_VGA_Port" DX = VGA I/O port number (03C2h, etc.) ECX -> routine to call on I/O access Return: ECX -> previous handler (to be jumped to at end of new handler) 14h ??? 15h ??? 16h ...last service for Windows95 SP1 SeeAlso: #01272,#01274,#02648Top
INT 20 P - Microsoft Windows - VSD - VxD SERVICES VxD = 000Bh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01274) Values for VSD (VxD ID 000Bh) service number: 00h get version 01h bell 02h sound on 03h "VSD_TakeSoundPort" SeeAlso: #01273,#01275Top
INT 20 P - Microsoft Windows - VMD / VMOUSE - VxD SERVICES VxD = 000Ch Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01275) Values for VMD / VMOUSE (VxD ID 000Ch) service number: 0000h get version 0001h set mouse type 0002h get mouse owner 0003h "VMOUSE_Post_Pointer_Message" 0004h "VMOUSE_Set_Cursor_Proc" 0005h "VMOUSE_Call_Cursor_Proc" 0006h "VMOUSE_Set_Mouse_Data~Get_Mouse_Data" 0007h "VMOUSE_Manipulate_Pointer_Message" 0008h "VMOUSE_Set_Middle_Button" 0009h "VMD_Set_Middle_Button" 000Ah "VMD_Enable_Disable_Mouse_Events" 000Bh "VMD_Post_Absolute_Pointer_Message" ...last service for Windows95 SP1 SeeAlso: #01274,#01276,INT 2F/AX=1684h/BX=000ChTop
INT 20 P - Microsoft Windows - VKD - VxD SERVICES VxD = 000Dh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01276) Values for VKD (VxD ID 000Dh) service number: 0000h get version 0001h define hotkey 0002h remove hotkey 0003h locally enable hotkey 0004h locally disable hotkey 0005h reflect hotkey 0006h cancel hotkey state 0007h force keys 0008h get keyboard owner 0009h define paste mode 000Ah start pasting 000Bh cancel paste 000Ch get message key 000Dh peek message key 000Eh flush message key queue 000Fh "VKD_Enable_Keyboard" 0010h "VKD_Disable_Keyboard" 0011h "VKD_Get_Shift_State" 0012h "VKD_Filter_Keyboard_Input" 0013h "VKD_Put_Byte" 0014h "VKD_Set_Shift_State" ...last service for Windows95 SP1 SeeAlso: #01275,#01277Top
INT 20 P - Microsoft Windows - VCD - VxD SERVICES VxD = 000Eh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01277) Values for VCD (VxD ID 000Eh) service number: 0000h get version 0001h set port global 0002h get focus 0003h virtualize port 0004h "VCD_Acquire_Port" 0005h "VCD_Free_Port" 0006h "VCD_Acquire_Port_Windows_Style" 0007h "VCD_Free_Port_Windows_Style" 0008h "VCD_Steal_Port_Windows_Style" 0009h "VCD_Find_COM_Index" 000Ah "VCD_Set_Port_Global_Special" 000Bh "VCD_Virtualize_Port_Dynamic" 000Ch "VCD_Unvirtualize_Port_Dynamic" ...last service for Windows95 SP1 SeeAlso: #01276,#01278Top
INT 20 P - Microsoft Windows - BlockDev / IOS - VxD SERVICES VxD = 0010h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01278) Values for BlockDev/IOS (VxD ID 0010h) service number: 0000h get version 0001h register device 0002h find INT 13 drive 0003h get device list 0004h send command 0005h command complete 0006h synchronous command 0007h "IOS_Register" 0008h "IOS_Requestor_Service" 0009h "IOS_Exclusive_Access" 000Ah "IOS_Send_Next_Command" 000Bh "IOS_Set_Async_Time_Out" 000Ch "IOS_Signal_Semaphore_No_Switch" 000Dh "IOSIdleStatus" 000Eh "IOSMapIORSToI24" 000Fh "IOSMapIORSToI21" 0010h "PrintLog" SeeAlso: #01277,#01279Top
INT 20 P - Microsoft Windows - VMCPD - VxD SERVICES VxD = 0011h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01279) Values for VMCPD (VxD ID 0011h) service number: 0000h "VMCPD_Get_Version" 0001h "VMCPD_Get_Virt_State" 0002h "VMCPD_Set_Virt_State" 0003h "VMCPD_Get_CR0_State" 0004h "VMCPD_Set_CR0_State" 0005h "VMCPD_Get_Thread_State" 0006h "VMCPD_Set_Thread_State" 0007h "_VMCPD_Get_FP_Instruction_Size" 0008h "VMCPD_Set_Thread_Precision" SeeAlso: #01278,#01280,#02642Top
INT 20 P - Microsoft Windows - EBIOS - VxD SERVICES VxD = 0012h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01280) Values for EBIOS (VxD ID 0012h) service number: 00h get EBIOS version 01h get unused memory SeeAlso: #01279,#01281Top
INT 20 P - Microsoft Windows - VNETBIOS - VxD SERVICES VxD = 0014h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01281) Values for VNETBIOS (VxD ID 0014h) service number: 00h get version 01h register 02h submit 03h enum 04h deregister 05h register2 06h map 07h enum2 SeeAlso: #01280,#01282Top
INT 20 P - Microsoft Windows - DOSMGR - VxD SERVICES VxD = 0015h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01282) Values for DOSMGR (VxD ID 0015h) service number: 0000h get version 0001h set exec VM data 0002h coyp VM drive state 0003h execute VM 0004h get InDOS pointer 0005h add device 0006h remove device 0007h instance device 0008h get DOS critical status 0009h enable InDOS polling 000Ah backfill allowed 000Bh "LocalGlobalReg" 000Ch "Init_UMB_Area" 000Dh "Begin_V86_App" 000Eh "End_V86_App" 000Fh "Alloc_Local_Sys_VM_Mem" EAX = number of paragraphs??? to allocate 0010h "DOSMGR_Grow_CDSs" 0011h "DOSMGR_Translate_Server_DOS_Call" 0012h "DOSMGR_MMGR_PSP_Change_Notifier" SeeAlso: #01281,#02656 at INT 2F/AX=1684h/BX=0015hTop
INT 20 P - Microsoft Windows - SHELL - VxD SERVICES VxD = 0017h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01283) Values for SHELL (VxD ID 0017h) service number: 0000h get version 0001h resolve contention 0002h event 0003h SYSMODAL message 0004h message 0005h get VM information 0006h "_SHELL_PostMessage" 0007h "_SHELL_WinExec" 0008h "_SHELL_CallDll" 0009h "SHELL_OpenClipboard" 000Ah "SHELL_SetClipboardData" 000Bh "SHELL_GetClipboardData" 000Ch "SHELL_CloseClipboard" 000Dh "_SHELL_Install_Taskman_Hooks" 000Eh "SHELL_Hook_Properties" 000Fh "SHELL_Unhook_Properties" 0010h "SHELL_OEMKeyScan" 0011h "SHELL_Update_User_Activity" 0012h "_SHELL_UnhookSystemBroadcast" 0013h "_SHELL_LocalAllocEx" 0014h "_SHELL_LocalFree" 0015h "_SHELL_LoadLibrary" 0016h "_SHELL_FreeLibrary" 0017h "_SHELL_GetProcAddress" 0018h "_SHELL_CallDll" 0019h "_SHELL_SuggestSingleMSDOSMode" 001Ah "SHELL_CheckHotkeyAllowed" 001Bh "_SHELL_GetDOSAppInfo" SeeAlso: #01282,#01284,#02657 at INT 2F/AX=1684h/BX=0017hTop
INT 20 P - Microsoft Windows - VMPoll - VxD SERVICES VxD = 0018h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01284) Values for VMPoll (VxD ID 0018h) service number: 00h get version 01h enable/disable 02h reset detection 03h check idle SeeAlso: #01269,#02657 at INT 2F/AX=1684h/BX=0017hTop
INT 20 P - Microsoft Windows - DOSNET - VxD SERVICES VxD = 001Ah Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01285) Values for DOSNET (VxD ID 001Ah) service number: 00h get version 01h send FILESYSCHANGE 02h do PSP adjust SeeAlso: #01284,#01286Top
INT 20 P - Microsoft Windows - VFD - VxD SERVICES VxD = 001Bh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01286,#01340 (Table 01286) Values for VFD (VxD ID 001Bh) service number: 0000h get version SeeAlso: #01285,#01287Top
INT 20 P - Microsoft Windows - LoadHi - VxD SERVICES VxD = 001Ch Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01287) Values for LoadHi (VxD ID 001Ch) service number: 00h get version Return: CF clear EAX = version (AH = major, AL = minor) ESI -> ASCIZ signature "LoadHi" SeeAlso: #01286,#01288Top
INT 20 P - Microsoft Windows - Int13 - VxD SERVICES VxD = 0020h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01288) Values for Int13 (VxD ID 0020h) service number: 00h get version 01h device registered 02h translate VM interrupt 03h hooking BIOS interrupt 04h unhooking BIOS interrupt SeeAlso: #01287,#01289Top
INT 20 P - Microsoft Windows - PAGEFILE - VxD SERVICES VxD = 0021h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01289) Values for PAGEFILE (VxD ID 0021h) service number: 00h get version 01h init file 02h clean up 03h grow file 04h read or write 05h cancel 06h test I/O valid 07h "Get_Size_Info" 08h "Set_Async_Manager" 09h "Call_Async_Manager" SeeAlso: #01288,#02661 at INT 2F/AX=1684h/BX=0021hTop
INT 20 P - Microsoft Windows - VPOWERD - VxD SERVICES VxD = 0026h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01290) Values for VPOWERD (VxD ID 0026h) service number: 00h get version Return: CF clear EAX = version (AH = major, AL = minor) 01h get APM BIOS version Return: CF clear EAX = APM BIOS version 02h get current power management level Return: CF clear EAX = power management level 03h enable/disable power management (see INT 15/AX=5308h) Return: EAX = error code (see #02665) or 00000000h if successful 04h set power state (see INT 15/AX=5307h) ??? Return: EAX = error code (see #02665) or 00000000h if successful 05h set system power status Return: EAX = error code (see #02665) or 00000000h if successful 06h restore APM power-on defaults (see INT 15/AX=5309h) Return: EAX = error code (see #02665) or 00000000h if successful 07h get power status (see INT 15/AX=530Ah) Return: ??? 08h get APM 1.1 power state (see INT 15/AX=530Ch) Return: ??? 09h invoke OEM APM function ??? -> bufer containing parameters for INT 15/AX=5380h Return: EAX = error code (see #02665) or 00000000h if successful buffer updated if successful 0Ah register power handler ??? Return: EAX = error code (see #02665) or 00000000h if successful 0Bh deregister power handler ??? Return: EAX = error code (see #02665) or 00000000h if successful 0Ch Win32 get system power status 0Dh Win32 set system power status SeeAlso: #01289,#01291,INT 2F/AX=1684h/BX=0026hTop
INT 20 P - Microsoft Windows - VXDLDR - VxD SERVICES VxD = 0027h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01291) Values for VXDLDR (VxD ID 0027h) service number: 0000h "VXDLDR_Get_Version" 0001h "VXDLDR_LoadDevice" 0002h "VXDLDR_UnloadDevice" 0003h "VXDLDR_DevInitSucceeded" 0004h "VXDLDR_DevInitFailed" 0005h "VXDLDR_GetDeviceList" 0006h "VXDLDR_UnloadMe" 0007h "PELDR_LoadModule" 0008h "PELDR_GetModuleHandle" 0009h "PELDR_GetModuleUsage" 000Ah "PELDR_GetEntryPoint" 000Bh "PELDR_GetProcAddress" 000Ch "PELDR_AddExportTable" 000Dh "PELDR_RemoveExportTable" 000Eh "PELDR_FreeModule" 000Fh "VXDLDR_Notify" 0010h "_PELDR_InitCompleted" 0011h "_PELDR_LoadModuleEx" SeeAlso: #01289,#01292Top
INT 20 P - Microsoft Windows - NDIS - VxD SERVICES VxD = 0028h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01292) Values for NDIS (VxD ID 0028h) service number: 00h "NdisGetVersion" 01h "NdisAllocateSpinLock" 02h "NdisFreeSpinLock" 03h "NdisAcquireSpinLock" 04h "NdisReleaseSpinLock" 05h "NdisOpenConfiguration" 06h "NdisReadConfiguration" 07h "NdisCloseConfiguration" 08h "NdisReadEisaSlotInformation" 09h "NdisReadMcaPosInformation" 0Ah "NdisAllocateMemory" 0Bh "NdisFreeMemory" 0Ch "NdisSetTimer" 0Dh "NdisCancelTimer" 0Eh "NdisStallExecution" 0Fh "NdisInitializeInterrupt" 10h "NdisRemoveInterrupt" 11h "NdisSynchronizeWithInterrupt" 12h "NdisOpenFile" 13h "NdisMapFile" 14h "NdisUnmapFile" 15h "NdisCloseFile" 16h "NdisAllocatePacketPool" 17h "NdisFreePacketPool" 18h "NdisAllocatePacket" 19h "NdisReinitializePacket" 1Ah "NdisFreePacket" 1Bh "NdisQueryPacket" 1Ch "NdisAllocateBufferPool" 1Dh "NdisFreeBufferPool" 1Eh "NdisAllocateBuffer" 1Fh "NdisCopyBuffer" 20h "NdisFreeBuffer" 21h "NdisQueryBuffer" 22h "NdisGetBufferPhysicalAddress" 23h "NdisChainBufferAtFront" 24h "NdisChainBufferAtBack" 25h "NdisUnchainBufferAtFront" 26h "NdisUnchainBufferAtBack" 27h "NdisGetNextBuffer" 28h "NdisCopyFromPacketToPacket" 29h "NdisRegisterProtocol" 2Ah "NdisDeregisterProtocol" 2Bh "NdisOpenAdapter" 2Ch "NdisCloseAdapter" 2Dh "NdisSend" 2Eh "NdisTransferData" 2Fh "NdisReset" 30h "NdisRequest" 31h "NdisInitializeWrapper" 32h "NdisTerminateWrapper" 33h "NdisRegisterMac" 34h "NdisDeregisterMac" 35h "NdisRegisterAdapter" 36h "NdisDeregisterAdapter" 37h "NdisCompleteOpenAdapter" 38h "NdisCompleteCloseAdapter" 39h "NdisCompleteSend" 3Ah "NdisCompleteTransferData" 3Bh "NdisCompleteReset" 3Ch "NdisCompleteRequest" 3Dh "NdisIndicateReceive" 3Eh "NdisIndicateReceiveComplete" 3Fh "NdisIndicateStatus" 40h "NdisIndicateStatusComplete" 41h "NdisCompleteQueryStatistics" 42h "NdisEqualString" 43h "NdisNetAddressStringToBinary" 44h "NdisReadNetworkAddress" 45h "NdisWriteErrorLogEntry" 46h "C_MapPhysToLinear" 47h "C_HeapFree" 48h "NdisAllocateSharedMemory" 49h "NdisFreeSharedMemory" ... 5Fh ...last service for Windows95 SP1 SeeAlso: #01291,#01293Top
INT 20 P - Microsoft Windows - VWIN32 - VxD SERVICES VxD = 002Ah Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01293) Values for VWIN32 (VxD ID 002Ah) service number: 0000h "VWin32_Get_Version" 0001h "VWin32_Wake_For_Event" 0002h "_VWIN32_QueueUserApc" 0003h "_VWIN32_Get_Thread_Context" 0004h "_VWIN32_Set_Thread_Context" 0005h "_VWIN32_CopyMem" 0006h "_VWIN32_BlockForTermination" 0007h "_VWIN32_Emulate_Npx" 0008h "_VWIN32_CheckDelayedNpxTrap" 0009h "VWIN32_EnterCrstR0" 000Ah "VWIN32_LeaveCrstR0" 000Bh "_VWIN32_FaultPopup" 000Ch "VWIN32_GetContextHandle" 000Dh "VWIN32_GetCurrentProcessHandle" 000Eh "_VWIN32_SetWin32Event" 000Fh "_VWIN32_PulseWin32Event" 0010h "_VWIN32_ResetWin32Event" 0011h "_VWIN32_WaitSingleObject" 0012h "_VWIN32_WaitMultipleObjects" 0013h "_VWIN32_CreateRing0Thread" 0014h "_VWIN32_CloseVxDHandle" 0015h "VWIN32_ActiveTimeBiasSet" 0016h "VWIN32_GetCurrentDirectory" 0017h "VWIN32_BlueScreenPopup" 0018h "VWIN32_TerminateApp" 0019h "_VWIN32_QueueKernelAPC" 001Ah "VWIN32_SysErrorBox" 001Bh "_VWIN32_IsClientWin32" 001Ch "VWIN32_IFSRIPWhenLev2Taken" SeeAlso: #01292,#01294Top
INT 20 P - Microsoft Windows - VCOMM - VxD SERVICES VxD = 002Bh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01294) Values for VCOMM (VxD ID 002Bh) service number: 0000h "VCOMM_Get_Version" 0001h "_VCOMM_Register_Port_Driver" 0002h "_VCOMM_Acquire_Port" 0003h "_VCOMM_Release_Port" 0004h "_VCOMM_OpenComm" 0005h "_VCOMM_SetCommState" 0006h "_VCOMM_GetCommState" 0007h "_VCOMM_SetupComm" 0008h "_VCOMM_TransmitCommChar" 0009h "_VCOMM_CloseComm" 000Ah "_VCOMM_GetCommQueueStatus" 000Bh "_VCOMM_ClearCommError" 000Ch "_VCOMM_GetModemStatus" 000Dh "_VCOMM_GetCommProperties" 000Eh "_VCOMM_EscapeCommFunction" 000Fh "_VCOMM_PurgeComm" 0010h "_VCOMM_SetCommEventMask" 0011h "_VCOMM_GetCommEventMask" 0012h "_VCOMM_WriteComm" 0013h "_VCOMM_ReadComm" 0014h "_VCOMM_EnableCommNotification" 0015h "_VCOMM_GetLastError" 0016h "_VCOMM_Steal_Port" 0017h "_VCOMM_SetReadCallBack" 0018h "_VCOMM_SetWriteCallBack" 0019h "_VCOMM_GetSetCommTimeouts" 001Ah "_VCOMM_SetWriteRequest" 001Bh "_VCOMM_SetReadRequest" 001Ch "_VCOMM_Dequeue_Request" 001Dh "_VCOMM_Dequeue_Request" 001Eh "_VCOMM_Enumerate_DevNodes" 001Fh "VCOMM_Map_Win32DCB_To_Ring0" 0020h "VCOMM_Map_Ring0DCB_To_Win32" 0021h "_VCOMM_Get_Contention_Handler" 0022h "_VCOMM_Map_Name_To_Resource" SeeAlso: #01293,#01295Top
INT 20 P - Microsoft Windows - SPOOLER - VxD SERVICES VxD = 002Ch Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01295) Values for SPOOLER (VxD ID 002Ch) service number: 0000h get version??? 0001h ??? 0010h ...last service for Windows95 SP1 SeeAlso: #01294,#01296Top
INT 20 P - Microsoft Windows - VSERVER - VxD SERVICES VxD = 0032h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01296) Values for VSERVER (VxD ID 0032h) service number: 00h get VSERVER version Return: CF clear EAX = version (AH = major, AL = minor) EBX = ??? (00000000h) 01h allocate ??? AX = ??? ESI = ??? Return: CF clear if successful CF set on error (table full) 02h NOP??? Return: EBX = 00000000h 03h ??? Return: ZF clear SeeAlso: #01295,#01297,INT 2F/AX=1684h/BX=0032hTop
INT 20 P - Microsoft Windows - CONFIGMG - VxD SERVICES VxD = 0033h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01297) Values for CONFIGMG (VxD ID 0033h) service number: 0000h "_CONFIGMG_Get_Version" 0001h "_CONFIGMG_Initialize" 0002h "_CONFIGMG_Locate_DevNode" 0003h "_CONFIGMG_Get_Parent" 0004h "_CONFIGMG_Get_Child" 0005h "_CONFIGMG_Get_Sibling" 0006h "_CONFIGMG_Get_Device_ID_Size" 0007h "_CONFIGMG_Get_Device_ID" 0008h "_CONFIGMG_Get_Depth" 0009h "_CONFIGMG_Get_Private_DWord" 000Ah "_CONFIGMG_Set_Private_DWord" 000Bh "_CONFIGMG_Create_DevNode" 000Ch "_CONFIGMG_Query_Remove_SubTree" 000Dh "_CONFIGMG_Remove_SubTree" 000Eh "_CONFIGMG_Register_Device_Driver" 000Fh "_CONFIGMG_Register_Enumerator" 0010h "_CONFIGMG_Register_Arbitrator" 0011h "_CONFIGMG_Deregister_Arbitrator" 0012h "_CONFIGMG_Query_Arbitrator_Free_Size" 0013h "_CONFIGMG_Query_Arbitrator_Free_Data" 0014h "_CONFIGMG_Sort_NodeList" 0015h "_CONFIGMG_Yield" 0016h "_CONFIGMG_Lock" 0017h "_CONFIGMG_Unlock" 0018h "_CONFIGMG_Add_Empty_Log_Conf" 0019h "_CONFIGMG_Free_Log_Conf" 001Ah "_CONFIGMG_Get_First_Log_Conf" 001Bh "_CONFIGMG_Get_Next_Log_Conf" 001Ch "_CONFIGMG_Add_Res_Des" 001Dh "_CONFIGMG_Modify_Res_Des" 001Eh "_CONFIGMG_Free_Res_Des" 001Fh "_CONFIGMG_Get_Next_Res_Des" 0020h "_CONFIGMG_Get_Performance_Info" 0021h "_CONFIGMG_Get_Res_Des_Data_Size" 0022h "_CONFIGMG_Get_Res_Des_Data" 0023h "_CONFIGMG_Process_Events_Now" 0024h "_CONFIGMG_Create_Range_List" 0025h "_CONFIGMG_Add_Range" 0026h "_CONFIGMG_Delete_Range" 0027h "_CONFIGMG_Test_Range_Available" 0028h "_CONFIGMG_Dup_Range_List" 0029h "_CONFIGMG_Free_Range_List" 002Ah "_CONFIGMG_Invert_Range_List" 002Bh "_CONFIGMG_Intersect_Range_List" 002Ch "_CONFIGMG_First_Range" 002Dh "_CONFIGMG_Next_Range" 002Eh "_CONFIGMG_Dump_Range_List" 002Fh "_CONFIGMG_Load_DLVxDs" 0030h "_CONFIGMG_Get_DDBs" 0031h "_CONFIGMG_Get_CRC_CheckSum" 0032h "_CONFIGMG_Register_DevLoader" 0033h "_CONFIGMG_Reenumerate_DevNode" 0034h "_CONFIGMG_Setup_DevNode" 0035h "_CONFIGMG_Reset_Children_Marks" 0036h "_CONFIGMG_Get_DevNode_Status" 0037h "_CONFIGMG_Remove_Unmarked_Children" 0038h "_CONFIGMG_ISAPNP_To_CM" 0039h "_CONFIGMG_CallBack_Device_Driver" 003Ah "_CONFIGMG_CallBack_Enumerator" 003Bh "_CONFIGMG_Get_Alloc_Log_Conf" 003Ch "_CONFIGMG_Get_DevNode_Key_Size" 003Dh "_CONFIGMG_Get_DevNode_Key" 003Eh "_CONFIGMG_Read_Registry_Value" 003Fh "_CONFIGMG_Write_Registry_Value" 0040h "_CONFIGMG_Disable_DevNode" 0041h "_CONFIGMG_Enable_DevNode" 0042h "_CONFIGMG_Move_DevNode" 0043h "_CONFIGMG_Set_Bus_Info" 0044h "_CONFIGMG_Get_Bus_Info" 0045h "_CONFIGMG_Set_HW_Prof" 0046h "_CONFIGMG_Recompute_HW_Prof" 0047h "_CONFIGMG_Query_Change_HW_Prof" 0048h "_CONFIGMG_Get_Device_Driver_Private_DWord" 0049h "_CONFIGMG_Set_Device_Driver_Private_DWord" 004Ah "_CONFIGMG_Get_HW_Prof_Flags" 004Bh "_CONFIGMG_Set_HW_Prof_Flags" 004Ch "_CONFIGMG_Read_Registry_Log_Confs" 004Dh "_CONFIGMG_Run_Detection" 004Eh "_CONFIGMG_Call_At_Appy_Time" 004Fh "_CONFIGMG_Fail_Change_HW_Prof" 0050h "_CONFIGMG_Set_Private_Problem" 0051h "_CONFIGMG_Debug_DevNode" 0052h "_CONFIGMG_Get_Hardware_Profile_Info" 0053h "_CONFIGMG_Register_Enumerator_Function" 0054h "_CONFIGMG_Call_Enumerator_Function" 0055h "_CONFIGMG_Add_ID" 0056h "_CONFIGMG_Find_Range" 0057h "_CONFIGMG_Get_Global_State" 0058h "_CONFIGMG_Broadcast_Device_Change_Message" 0059h "_CONFIGMG_Call_DevNode_Handler" 005Ah "_CONFIGMG_Remove_Reinsert_All" Note: the VxD services appear to be identical to the PM/V86 APIs on INT 2F/AX=1684h SeeAlso: #01296,#01299,INT 2F/AX=1684h/BX=0033hTop
INT 20 P - Microsoft Windows - DWCFGMG.SYS - VxD SERVICES VxD = 0034h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01298) Values for DWCFGMG.SYS (VxD ID 0034h) service number: 00h "CM_GetVersion" get supported DDI version Return: EAX = 00000000h if not installed else AH = major version number AL = minor version number EBX = number of devices controlled by DWCFGMG.SYS 01h "CM_GetConfig" get device configuration EBX = device index EDI -> buffer for configuration information (see #02675) Return: EAX = status (0000h successful, 0001h index out of range) 02h "CM_LockConfig" lock device configuration EDI -> configuration information (see #02675) Return: EAX = status 0000h successful 0001h resource conflict 0002h invalid request 03h "CM_UnlockConfig" unlock device configuration EDI -> configuration information (see #02675) Return: EAX = status (0000h successful, 0001h invalid request) 04h "CME_QueryResources" 05h "CME_AllocResources" 06h "CME_DeallocResources" SeeAlso: INT 2F/AX=1684h/BX=0034hTop
INT 20 P - Microsoft Windows - VFBACKUP - VxD SERVICES VxD = 0036h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01299) Values for VFBACKUP (VxD ID 0036h) service number: 0000h get version Return: CF clear EAX = version (AH = major, AL = minor) 0001h "VFBACKUP_Lock_NEC" 0002h "VFBACKUP_UnLock_NEC" 0003h "VFBACKUP_Register_NEC" 0004h "VFBACKUP_Register_VFD" 0005h "VFBACKUP_Lock_All_Ports" SeeAlso: #01297,#01300Top
INT 20 P - Microsoft Windows - VMINI / ENABLE - VxD SERVICES VxD = 0037h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01300) Values for VMINI / ENABLE (VxD ID 0037h) service number: 0000h get version Return: CF clear EAX = version (AH = major, AL = minor) 0001h "VMINI_Update" ??? (performs VMMCall 1800Eh, then falls through to service 04h) Return: EAX = system time??? 0002h "VMINI_Status" get current ??? Return: EAX = ??? 0003h "VMINI_DisplayError" (schedules a global event via VMMCall 1800Eh) Return: ??? 0004h "VMINI_SetTimeStamp" (performs VMMCall 100CFh) Return: EAX = system time 0005h "VMINI_Siren" (call ??? priority event) Return: nothing 0006h "VMINI_RegisterAccess" (set ??? / get ???) EDI -> buffer containing data to copy into VxD and space for results Return: EDI buffer updated 0007h "VMINI_GetData" EBX = ??? flags (bits 2,15,17,18 checked) EDI -> ??? ??? Return: ??? 0008h "VMINI_ShutDownItem" (schedules a global event via VMMCall 1800Eh) Return: ??? 0009h "VMINI_RegisterSK" (get ??? data) EDI -> buffer for data (see #01301) Return: EDI buffer updated if large enough SeeAlso: #01299,#01302,#02677 at INT 2F/AX=1684h/BX=0037h Format of ENABLE.VXD ??? data: Offset Size Description (Table 01301) 00h DWORD (ret) length of data, including this word (call) length of buffer 04h DWORD -> 24-byte (or larger) buffer 08h DWORD -> 20-byte buffer 0Ch DWORD -> 260-byte buffer 10h DWORD -> 260-byte buffer SeeAlso: #01300Top
INT 20 P - Microsoft Windows - VCOND - VxD SERVICES VxD = 0038h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01302) Values for VCOND (VxD ID 0038h) service number: 0000h get VCOND version Return: CF clear EAX = version (AH = major, AL = minor) 0001h "VCOND_Launch_ConApp_Inherited" SeeAlso: #01303,#01300,#01304 (Table 01303) Values for Windows95 VCOND (Vxd ID 0038h) Win32 service number: 00h get VCOND version Return: EAX = version (AH = major, AL = minor) ... 34h ...last Win32 service for Windows95 SP1 SeeAlso: #01302Top
INT 20 P - Microsoft Windows - BIOS - VxD SERVICES VxD = 003Dh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01304) Values for BIOS (VxD ID 003Dh) service number: 00h get version??? 01h ??? 02h ??? 03h ??? SeeAlso: #01302,#01305Top
INT 20 P - Microsoft Windows - WSOCK - VxD SERVICES VxD = 003Eh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01305) Values for WSOCK (VxD ID 003Eh) service number: 00h get WSOCK version Return: CF clear AH = major version AL = minor version EAX high word = 0000h 01h ??? EAX = ??? or 00000000h Return: CF clear if successful EAX = 00000000h CF set on error EAX = ??? 02h ??? EAX = ??? or 00000000h Return: ??? 03h ??? 04h ...last service for Windows95 SP1 SeeAlso: #01304,#01306Top
INT 20 P - Microsoft Windows - IFSMgr - VxD SERVICES VxD = 0040h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01306) Values for IFSMGR (VxD ID 0040h) service number: 00h get version 01h "RegisterMount" 02h "RegisterNet" 03h "RegisterMailSlot" 04h "Attach" 05h "Detach" 06h "Get_NetTime" 07h "Get_DOSTime" 08h "SetupConnection" 09h "DerefConnection" 0Ah "ServerDOSCall" 0Bh "CompleteAsync" 0Ch "RegisterHeap" 0Dh "GetHeap" 0Eh "RetHeap" 0Fh "CheckHeap" 10h "CheckHeapItem" 11h "FillHeapSpare" 12h "Block" 13h "Wakeup" 14h "Yield" 15h "SchedEvent" 16h "QueueEvent" 17h "KillEvent" 18h "FreeIOReg" 19h "MakeMailSlot" 1Ah "DeleteMailSlot" 1Bh "WriteMailSlot" 1Ch "PopUp" 1Dh "printf" 1Eh "AssertFailed" 1Fh "LogEntry" 20h "DebugMenu" 21h "DebugVars" 22h "GetDebugString" 23h "GetDebugHexNum" 24h "NetFunction" 25h "DoDelAllUses" 26h "SetErrString" 27h "GetErrString" 28h "SetReqHook" 29h "SetPathHook" 2Ah "UseAdd" 2Bh "UseDel" 2Ch "InitUseAdd" 2Dh "ChangeDir" 2Eh "DelAllUses" 2Fh "CDROM_Attach" 30h "CDROM_Detach" 31h "Win32DupHandle" 32h "Ring0_FileIO" 33h "Toggle_Extended_File_Handle" 34h "IFSMgr_GetDrive_Info" 35h "IFSMgr_Ring0GetDriveInfo" 36h "IFSMgr_BlockNoEvents" 37h "IFSMgr_NetToDosTime" 38h "IFSMgr_DosToNetTime" 39h "IFSMgr_DosToWin32Time" 3Ah "IFSMgr_Win32ToDosTime" 3Bh "IFSMgr_NetToWin32Time" 3Ch "IFSMgr_Win32ToNetTime" 3Dh "IFSMgr_MetaMatch" 3Eh "IFSMgr_TransMatch" 3Fh "IFSMgr_CallProvider" 40h "UniToBCS" 41h "UniToBCSPath" 42h "BCSToUni" 43h "UniToUpper" 44h "UniCharToOEM" 45h "CreateBasis" 46h "MatchBasisName" 47h "AppendBasisTail" 48h "FcbToShort" 49h "ShortToFcb" 4Ah "IFSMgr_ParsePath" 4Bh "Query_PhysLock" 4Ch "_VolFlush" 4Dh "NotifyVolumeArrival" 4Eh "NotifyVolumeRemoval" 4Fh "QueryVolumeRemoval" 50h "IFSMgr_FSDUnmountCFSD" 51h "IFSMgr_GetConversionTablePtrs" 52h "IFSMgr_CheckAccessConflict" 53h "IFSMgr_LockFile" 54h "IFSMgr_UnlockFile" 55h "IFSMgr_RemoveLocks" 56h "IFSMgr_CheckLocks" 57h "IFSMgr_CountLocks" 58h "IFSMgr_ReassignLockFileInst" 59h "IFSMgr_UnassignLockList" 5Ah "IFSMgr_MountChildVolume" 5Bh "IFSMgr_UnmountChildVolume" 5Ch "IFSMgr_SwapDrives" 5Dh "IFSMgr_FSDMapFHtoIOREQ" 5Eh "IFSMgr_FSDParsePath" 5Fh "IFSMgr_FSDAttachSFT" 60h "IFSMgr_GetTimeZoneBias" 61h "IFSMgr_PNPEvent" 62h "IFSMgr_RegisterCFSD" 63h "IFSMgr_Win32MapExtendedHandleToSFT" 64h "IFSMgr_DbgSetFileHandleLimit" 65h "IFSMgr_Win32MapSFTToExtendedHandle" 66h "IFSMgr_FSDGetCurrentDrive" 67h "IFSMgr_InstallFileSystemApiHook" 68h "IFSMgr_RemoveFileSystemApiHook" 69h "IFSMgr_RunScheduledEvents" 6Ah "IFSMgr_CheckDelResource" 6Bh "IFSMgr_Win32GetVMCurdir" 6Ch "IFSMgr_SetupFailedConnection" 6Dh "_GetMappedErr" 6Eh "ShortToLossyFcb" 6Fh "IFSMgr_GetLockState" 70h "BcsToBcs" 71h "IFSMgr_SetLoopback" 72h "IFSMgr_ClearLoopback" 73h "IFSMgr_ParseOneElement" 74h "BcsToBcsUpper" SeeAlso: #01305,#01307Top
INT 20 P - Microsoft Windows - VCDFSD - VxD SERVICES VxD = 0041h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01307) Values for VCDFSD (VxD ID 0041h) service number: 00h get VCDFSD version??? 01h ??? 02h ??? 03h ??? SeeAlso: #01306,#01308Top
INT 20 P - Microsoft Windows - PERF - VxD SERVICES VxD = 0048h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01308) Values for PERF (VxD ID 0048h) service number: 00h get version Return: CF clear EAX = version (AH = major, AL = minor) 01h "PERF_Server_Register" (creates/sets a registry key for the server) 02h "PERF_Server_Deregister" end performance monitoring (deletes registry key for server) 03h "PERF_Server_Add_Stat" start performance monitoring (creates/sets a registry key) 04h "PERF_Server_Remove_Stat" end performance monitoring (deletes registry key) SeeAlso: #01307,#01311,#01309Top
INT 20 P - Microsoft Windows - MTRR - VxD SERVICES VxD = 004Ah Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01309) Values for MTRR (VxD ID 004Ah) service number: 00h get version 01h ??? (highest service defined for Win95B) SeeAlso: #01308,#01310Top
INT 20 P - Microsoft Windows - NTKERN - VxD SERVICES VxD = 004Bh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01310) Values for NTKERN (VxD ID 004Bh) service number: 00h get version??? ... 08h ??? (highest service defined for Win95B) SeeAlso: #01309,#01311Top
INT 20 P - Microsoft Windows - VFLATD - VxD SERVICES VxD = 011Fh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01311) Values for VFLATD (VxD ID 011Fh) service number: 00h get VFLATD version??? 01h ??? SeeAlso: #01308,#01312Top
INT 20 P - Microsoft Windows - vjoyd - VxD SERVICES VxD = 0449h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01312) Values for vjoyd (VxD ID 0449h) service number: 00h get vjoyd version??? 01h ??? SeeAlso: #01311,#01313Top
INT 20 P - Microsoft Windows - mmdevldr - VxD SERVICES VxD = 044Ah Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01313) Values for mmdevldr (VxD ID 044Ah) service number: 00h get mmdevldr version??? 01h ??? 02h ??? 03h ??? 04h ??? 05h ??? SeeAlso: #01312,#01314Top
INT 20 P - Microsoft Windows - VNetSup - VxD SERVICES VxD = 0480h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01314) Values for VNetSup (VxD ID 0480h) service number: 00h get VNetSup version??? 01h ??? 02h ??? 03h ??? 04h ??? 05h ??? 06h ??? SeeAlso: #01313,#01315Top
INT 20 P - Microsoft Windows - VREDIR - VxD SERVICES VxD = 0481h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01315) Values for VREDIR (VxD ID 0481h) service number: 0000h "VRedir_Get_Version" 0001h "VRedir_Register" 0002h "VRedir_MakeMailSlot" 0003h "VRedir_DeleteMailSlot" 0004h "VRedir_ServerEnum" 0010h ...last service for Windows95 SP1 SeeAlso: #01314,#01316Top
INT 20 P - Microsoft Windows - VSHARE - VxD SERVICES VxD = 0483h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01316) Values for VSHARE (VxD ID 0483h) service number: 00h get VSHARE version??? SeeAlso: #01315,#01317Top
INT 20 P - Microsoft Windows - NWLINK - VxD SERVICES VxD = 0487h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01317) Values for NWLINK (VxD ID 0487h) service number: 00h get NWLINK version??? 01h ??? 06h ...last service for Windows95 SP1 SeeAlso: #01316,#01318,#02642Top
INT 20 P - Microsoft Windows - VTDI - VxD SERVICES VxD = 0488h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01318) Values for VTDI (VxD ID 0488h) service number: 00h get VTDI version??? 01h ??? 08h get ??? seen called with DWORD -> ASCIZ "MSTCP" on stack, returning EAX=??? 0Dh ...last service for Windows95 SP1 SeeAlso: #01317,#01319Top
INT 20 P - Microsoft Windows - VIP - VxD SERVICES VxD = 0489h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01319) Values for VIP (VxD ID 0489h) service number: 00h get VIP version??? 01h ??? 05h ??? 06h ??? returns EAX=0/1 08h ...last service for Windows95 SP1 ---Frontier Technologies' FTCVIP--- 09h ??? returns EAX=1 SeeAlso: #01318,#01320Top
INT 20 P - Microsoft Windows - MSTCP - VxD SERVICES VxD = 048Ah Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01320) Values for MSTCP (VxD ID 048Ah) service number: 00h get MSTCP version??? SeeAlso: #01319,#01321Top
INT 20 P - Microsoft Windows - VCACHE - VxD SERVICES VxD = 048Bh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01321) Values for VCACHE (VxD ID 048Bh) service number: 0000h "VCACHE_Get_Version" 0001h "VCACHE_Register" 0002h "VCACHE_GetSize" 0003h "VCACHE_CheckAvail" 0004h "VCACHE_FindBlock" 0005h "VCACHE_FreeBlock" 0006h "VCACHE_MakeMRU" 0007h "VCACHE_Hold" 0008h "VCACHE_Unhold" 0009h "VCACHE_Enum" 000Ah "VCACHE_TestHandle" 000Bh "VCACHE_VerifySums" 000Ch "VCACHE_RecalcSums" 000Dh "VCACHE_TestHold" 000Eh "VCACHE_GetStats" 000Fh "VCache_Deregister" 0010h "VCache_AdjustMinimum" 0011h "VCache_SwapBuffers" 0012h "VCache_RelinquishPage" 0013h "VCache_UseThisPage" 0014h "_VCache_CreateLookupCache" 0015h "_VCache_CloseLookupCache" 0016h "_VCache_DeleteLookupCache" 0017h "_VCache_Lookup" 0018h "_VCache_UpdateLookup" SeeAlso: #01320,#01322Top
INT 20 P - Microsoft Windows - NWREDIR - VxD SERVICES VxD = 048Eh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01322) Values for NWREDIR (VxD ID 048Eh) service number: 00h get NWREDIR version??? 01h ??? SeeAlso: #01321,#01323Top
INT 20 P - Microsoft Windows - FILESEC - VxD SERVICES VxD = 0491h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01323) Values for FILESEC (VxD ID 0491h) service number: 00h get FILESEC version??? 01h ??? 10h ...last service for Windows95 SP1 SeeAlso: #01322,#01324Top
INT 20 P - Microsoft Windows - NWSERVER - VxD SERVICES VxD = 0492h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01324) Values for NWSERVER (VxD ID 0492h) service number: 00h get NWSERVER version??? 01h ??? 02h ??? 03h ??? SeeAlso: #01323,#01325Top
INT 20 P - Microsoft Windows - MSSP / NWSP - VxD SERVICES VxD = 0493h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01325) Values for MSSP/NWSP (VxD ID 0493h) service number: 00h get NSSP / NWSP version??? 01h ??? 06h ...last service for Windows95 SP1 SeeAlso: #01324,#01326Top
INT 20 P - Microsoft Windows - NSCL - VxD SERVICES VxD = 0494h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01326) Values for NSCL (VxD ID 0494h) service number: 00h get NSCL version??? 01h ??? 02h ??? SeeAlso: #01325,#01327Top
INT 20 P - Microsoft Windows - AFVXD - VxD SERVICES VxD = 0495h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01327) Values for AFVXD (VxD ID 0495h) service number: 00h get version Return: CF clear AX = version (AH = high, AL = low) 01h ??? EAX -> ??? EBX -> ??? ECX = ??? Return: ??? 02h ??? EAX -> ??? Return: ??? SeeAlso: #01326,#01328Top
INT 20 P - Microsoft Windows - NDIS2SUP - VxD SERVICES VxD = 0496h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier (see #02642) SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01328) Values for NDIS2SUP (VxD ID 0496h) service number: 00h get NDIS2SUP version??? 01h ??? SeeAlso: #01327,#01329Top
INT 20 P - Microsoft Windows - Splitter - VxD SERVICES VxD = 0498h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier (see #02642) SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01329) Values for Splitter (VxD ID 0498h) service number: 00h get Splitter version Return: CF clear EAX = version (00000001h) 01h ??? 02h ??? 03h hook/unhook VMM "hook device service" service EAX = request (0 = unhook, nonzero = hook) Return: if EAX nonzero on entry, Splitter's service 04h replaces VMM service 0090h; otherwise, default handler is restored 04h Splitter "hook device service" handler SeeAlso: #01328,#01330Top
INT 20 P - Microsoft Windows - PPPMAC - VxD SERVICES VxD = 0499h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier (see #02642) SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01330) Values for PPPMAC (VxD ID 0499h) service number: 00h ??? 09h ...last service for Windows95 SP1 SeeAlso: #01329,#01331,#02642Top
INT 20 P - Microsoft Windows - VDHCP - VxD SERVICES VxD = 049Ah Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier (see #02642) SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01331) Values for VDHCP (VxD ID 049Ah) service number: 00h get VDHCP version??? 01h ??? 02h ??? 03h ??? SeeAlso: #01330,#01332Top
INT 20 P - Microsoft Windows - VNBT - VxD SERVICES VxD = 049Bh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier (see #02642) SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01332) Values for VNBT (VxD ID 049Bh) service number: 00h get VNBT version??? SeeAlso: #01331,#01333Top
INT 20 P - Microsoft Windows - LOGGER - VxD SERVICES VxD = 049Dh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier (see #02642) SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01333) Values for LOGGER (VxD ID 049Dh) service number: 00h get LOGGER version??? 01h ??? 02h ??? 03h ??? 04h ??? SeeAlso: #01332,#01334Top
INT 20 P - Microsoft Windows - PCCARD - VxD SERVICES VxD = 097Ch Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier (see #02642) SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01334,#01340 (Table 01334) Values for PCCARD (VxD ID 097Ch) service number: 0000h "PCCARD_Get_Version" 0001h "PCCARD_Card_Services" SeeAlso: #01333,#01337Top
INT 20 P - Frontier Technologies ??? - VxD SERVICES VxD = 3048h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01335 (Table 01335) Values for ??? (VxD ID 3048h) service number: 00h get version??? 03h ??? called with 5 DWORDs on stack, returns EAX=???, ECX nonzero on error 04h ??? called with DWORD on stack, returns EAX=???, ECX nonzero on error 06h ??? called with DWORD on stack, returns EAX=???, ECX nonzero on error 07h ??? called with 3 DWORDs on stack, returns EAX=???, ECX nonzero on error 0Bh ??? called with 2 DWORDs on stack, returns EAX=???, ECX nonzero on error 0Ch ??? called with 2 DWORDs on stack, returns EAX=???, ECX nonzero on error 0Dh ??? called with 6 DWORDs on stack, returns EAX=???, ECX nonzero on error 1Ah ??? called with 3 DWORDs on stack SeeAlso: #01336Top
INT 20 P - Frontier Technologies ??? - VxD SERVICES VxD = 3049h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01336 (Table 01336) Values for ??? (VxD ID 3049h) service number: 00h get version??? 1Dh ??? called with 2 DWORDs on stack; returns EAX=???, ECX nonzero on error 1Eh ??? called with 6 DWORDs on stack; returns EAX=???, ECX nonzero on error SeeAlso: #01335Top
INT 20 P - QEMM - VstlthD - VxD SERVICES VxD = 3098h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01337) Values for VStlthD (VxD ID 3098h) service number: 00h get version Return: CF clear EAX = version (AH = major, AL = BCD minor) 01h ??? 02h get current ??? Return: CF clear EDX = current value of ??? 03h ??? SeeAlso: #01334,#01338Top
INT 20 P - Microsoft Windows - WSVV - VxD SERVICES VxD = 30F6h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01338) Values for WSVV (VxD ID 30F6h) service number: 00h get WSVV version??? SeeAlso: #01337,#01339Top
INT 20 P - Microsoft Windows - ASPIENUM - VxD SERVICES VxD = 33FCh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01339) Values for ASPIENUM (VxD ID 33FCh) service number: 00h get ASPIENUM version??? 01h ??? 02h ??? 03h ??? SeeAlso: #01338,#01340Top
INT 20 P - Microsoft Windows - DSOUND - VxD SERVICES VxD = 357Eh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01340) Values for DSOUND (VxD ID 357Eh) service number: 00h get DSOUND version??? 01h ??? 02h ??? SeeAlso: #01339,#01341Top
INT 20 P - Microsoft Windows - A3D - VxD SERVICES VxD = 39E6h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01341) Values for A3D (VxD ID 39E6h) service number: 00h get version??? 01h ??? 02h ??? (highest service defined) SeeAlso: #01340,#01342Top
INT 20 P - Microsoft Windows - CWCPROXY - VxD SERVICES VxD = 3BFDh Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01342) Values for CWCPROXY (VxD ID 3BFDh) service number: 00h get version??? ... 03h ??? (highest service defined) SeeAlso: #01341,#01343Top
INT 20 P - Microsoft Windows - VGARTD - VxD SERVICES VxD = 3C78h Note: the desired VxD and service number are identified by the data immediately following the INT 20 instruction, as in: INT 20h DW service number DW VxD identifier SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340 (Table 01343) Values for VGARTD (VxD ID 3C78h) service number: 00h get version??? ... 05h ??? (highest service defined) SeeAlso: #01342,#02642Top
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=0B56h
Top
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=71h
Top
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=1113h
Top
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=1111h
Top
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 follow
Top
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 call
Top
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 Qcache
Top
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=DE30h
Top
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 buffer
Top
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=5643h
Top
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=5643h
Top
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=5643h
Top
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 segment
Top
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 DA34h
Top
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 invalid
Top
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 shell
Top
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=C3h
Top
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=BCh
Top
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=BCh
Top
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 Mas
Top
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 installed
Top
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=F100h
Top
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=6A6Dh
Top
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=6A6Dh
Top
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=6A6Dh
Top
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=6A6Dh
Top
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=6A6Dh
Top
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=6A6Dh
Top
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=4BF1h
Top
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=37DFh
Top
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=37D4h
Top
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=37D5h
Top
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=37D4h
Top
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=37D7h
Top
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=37D6h
Top
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 procedure
Top
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=37DCh
Top
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 use
Top
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;DIET
Top
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 DOS
Top
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=7156h
Top
Top
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 ??? record
Top
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,#04111
Top
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 padding
Top
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 reserved
Top
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 padding
Top
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 number
Top
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,...,N
Top
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: #01573
Top
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: #01580
Top
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: #01600
Top
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 number
Top
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,#01787
Top
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 value
Top
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,#01683
Top
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 seconds
Top
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,#01689
Top
Top
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=0002h
Top
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=0003h
Top
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 properly
Top
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=5F83h
Top
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=5F81h
Top
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 Machines
Top
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 Dos32QueryMuxWaitSem
Top
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: #01758
Top
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 reserved
Top
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=7761h
Top
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: #01819
Top
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: #01826
Top
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: #01863
Top
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,#02118
Top
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,#01872
Top
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: #01873
Top
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
Top
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: #01895
Top
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: #01913
Top
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: #01922
Top
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,#01936
Top
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: #01935
Top
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,#02187
Top
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,#02188
Top
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,#01947
Top
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: #01945
Top
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,#01951
Top
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: #01949
Top
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,#01956
Top
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: #01953
Top
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,#02198
Top
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: #02007
Top
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: #02007
Top
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=C9h
Top
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: #02024
Top
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: #02068
Top
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
Top
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: #02401
Top
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 path
Top
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: #02152
Top
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: #01948
Top
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: #02196
Top
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=C9h
Top
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 string
Top
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: #02361
Top
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: #02393
Top
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: #02471
Top
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: #02523
Top
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
INT 22 - DOS 1+ - PROGRAM TERMINATION ADDRESS Desc: this vector specifies the address of the routine which is to be given control after a program is terminated; it should never be called directly, since it does not point at an interrupt handler Notes: this vector is restored from the DWORD at offset 0Ah in the PSP during termination, and then a FAR JMP is performed to the address in INT 22 normally points at the instruction immediately following INT 21/AH=4Bh call which loaded the current program SeeAlso: INT 20,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4ChTop
INT 22 - COMTROL HOSTESS i/ISA DEBUGGER - CHANGE FIRMWARE DEBUGGING PORT AL = new firmware debugging port Return: ??? SeeAlso: INT 21"COMTROL",INT 23"COMTROL"Top
INT 23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER ---DOS 1.x--- Return: AH = 00h abort program if all registers preserved, restart DOS call ---DOS 2+--- CF clear Return: all registers preserved return via RETF with CF set or (MS-DOS 1,DR DOS) RETF 2 with CF set DOS will abort program with errorlevel 0 else (RETF/RETF 2 with CF clear or IRET with CF ignored) interrupted DOS call is restarted Notes: this interrupt is invoked whenever DOS detects a ^C or ^Break; it should never be called directly MS-DOS 1.25 also invokes INT 23 on a divide overflow (INT 00) MS-DOS remembers the stack pointer before calling INT 23, and if it is not the same on return, pops and discards the top word; this is what permits a return with RETF as well as IRET or RETF 2 MS-DOS 2.1+ ignores the returned CF if SP is the same on return as it was when DOS called INT 23, so RETF 2 will not terminate the program Novell DOS 7 always pops a word if CF is set on return, so one should not return with RETF 2 and CF set or IRET with the stored flags' CF set any DOS call may safely be made within the INT 23 handler, although the handler must check for a recursive invocation if it does call DOS SeeAlso: INT 1B,INT 21/AH=92h"PTS-DOS"Top
INT 23 - COMTROL HOSTESS i/ISA DEBUGGER - GET CONFIGURATION INFORMATION AL = query type 00h get old config map Return: AX = old config map 01h get dual-ported RAM map Return: BX:AX = dual-ported RAM map 02h get SCC port map Return: BX:AX = SCC port map SeeAlso: INT 22"COMTROL",INT 26"COMTROL"Top
INT 24 C - DOS 1+ - CRITICAL ERROR HANDLER Notes: invoked when a critical (usually hardware) error is encountered by DOS (see #02543); should never be called directly when DOS terminates a program, it copies the previous value of the INT 24 vector out of the PSP (see #01378) and into the interrupt vector table SeeAlso: INT 21/AH=95h,INT 21/AH=59h/BX=0000h,INT 21/AH=92h"PTS-DOS" (Table 02543) Values critical error handler is called with: AH = type and processing flags (see #02544) AL = drive number if AH bit 7 clear BP:SI -> device driver header (see #01646 at INT 21/AH=52h) (BP:[SI+4] bit 15 set if character device) DI low byte contains error code if AH bit 7 set (see #02545) STACK: DWORD return address for INT 24 call WORD flags pushed by INT 24 WORD original AX on entry to INT 21 WORD BX WORD CX WORD DX WORD SI WORD DI WORD BP WORD DS WORD ES DWORD return address for INT 21 call WORD flags pushed by INT 21 Return: AL = action code (see #02546) SS,SP,DS,ES,BX,CX,DX preserved Notes: the only DOS calls the handler may make are INT 21/AH=01h-0Ch,30h,59h if the handler returns to the application by popping the stack, DOS will be in an unstable state until the first call with AH > 0Ch for DOS 3.1+, IGNORE (AL=00h) is turned into FAIL (AL=03h) on network critical errors if IGNORE specified but not allowed, it is turned into FAIL if RETRY specified but not allowed, it is turned into FAIL if FAIL specified but not allowed, it is turned into ABORT (DOS 3.0+) if a critical error occurs inside the critical error handler, the DOS call is automatically failed (AL set to 03h and the INT 24 call skipped) The initial critical error handler is located in the kernel and always results in FAIL. However, by default it is replaced by the critical error handler in the command interpreter when it loads. This can be suppressed (e.g. for BBS systems) by loading the primary DOS 3.00+ COMMAND.COM shell with the undocumented option /F 'Fail'. This syntax is also supported with PTS/DOS 6.51+, S/DOS 1.0+, and DR-OpenDOS 7.02+ (1997-11-13) COMMAND.COM, as well as 4DOS.COM/NDOS.COM. OpenDOS 7.01+ COMMAND.COM (1997-03-21) introduced this under /N, which is still supported by newer releases (although it has a slightly different meaning now). BUG: DR DOS COMMAND.COM before 1998-05-07 caused incorrect error messages to occur if the error code had a non-zero MSB (e.g. NWCDEX's "IO error reading from device" instead of the correct "not ready error"). This was fixed with the DR-OpenDOS 7.03 COMMAND.COM now passing the full error code to any critical error handlers. Bitfields for critical error type and processing flags: Bit(s) Description (Table 02544) 7 class =0 disk I/O error =1 -- if block device, bad FAT image in memory -- if char device, error code in DI 6 unused 5 Ignore allowed (DOS 3.0+) 4 Retry allowed (DOS 3.0+) 3 Fail allowed (DOS 3.0+) 2-1 disk area of error 00 = DOS area 01 = FAT 10 = root dir 11 = data area 0 set if write, clear if read Note: Abort is always allowed SeeAlso: #02545,#02546 (Table 02545) Values for critical error code: 00h (0) write-protection violation attempted 01h (1) unknown unit for driver 02h (2) drive not ready 03h (3) unknown command given to driver 04h (4) data error (bad CRC) 05h (5) bad device driver request structure length 06h (6) seek error 07h (7) unknown media type (non-DOS disk) 08h (8) sector not found 09h (9) printer out of paper 0Ah (10) write fault 0Bh (11) read fault 0Ch (12) general failure 0Dh (13) (DOS 3.0+, "multitasking" DOS, PTS-DOS & S/DOS) sharing violation 0Eh (14) (DOS 3.0+) lock violation 0Fh (15) invalid disk change / wrong disk 10h (16) (DOS 3.0+) FCB unavailable 10h (16) uncertain media 11h (17) (DOS 3.0+) sharing buffer overflow 11h (17) character call interrupted 12h (18) (DOS 4.0+) code page mismatch 13h (19) (DOS 4.0+) out of input 14h (20) (DOS 4.0+) insufficient disk space Note: Critical error codes 00h..0Ch are the traditional codes reported through INT 24. These code assignments are mapped to error codes 13h..1Fh reported by INT21/AH=59h (see #01680). Similarly, the DOS 3.x critical error codes 0Dh..11h are mapped to INT21/AH=59h error codes 20h..24h, however, the DOS 4.0+ critical error codes are not mapped. BUG: Paragon Technology Systems' S/DOS 1.0 sources (a stripped down issue of PTS-DOS 6.51 with sources on CD) erroneously list DOS INT 24 error codes 12h..14h as 11h..13h, however, since the sources do not make use of these defines, this seems to be only a documentation error. SeeAlso: #02544,#02546,#01680 (Table 02546) Values for critical error handler action code: 00h ignore error and continue processing request 01h retry operation 02h terminate program as though INT 21/AH=4Ch called (INT 20h for DOS 1.x) 03h fail system call in progress (DOS 3+) SeeAlso: #02544,#02546Top
INT 25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M) AL = drive number (00h = A:, 01h = B:, etc) CX = number of sectors to read (not FFFFh) DX = starting logical sector number (0000h - highest sector on drive) DS:BX -> buffer for data Return: CF clear if successful CF set on error AH = status (see #02547) AL = error code (same as passed to INT 24 in DI) AX = 0207h if more than 64K sectors on drive -- use new-style call may destroy all other registers except segment registers Notes: original flags are left on stack, and must be popped by caller this call bypasses the DOS filesystem examination of CPWIN386.CPL indicates that if this call fails with error 0408h on an old-style (<32M) call, one should retry the call with the high bit of the drive number in AL set Novell DOS 7 decides whether the old-style or new-style (>32M) version of INT 25 must be used solely on the basis of the partition's size, thus forcing use of the new-style call even for data in the first 32M of the partition PC Tools MIRROR as shipped with MS-DOS 5.0+ checks several signatures at the beginning of INT 25h and INT 26h before it starts to patch these vectors. The signatures it looks for are 83h, F9h, FFh, 74h (CMP CX,-01; JZ ????) at offset +1 from the INT 25h/26h entry points and 2Eh, FFh, 2Eh (JMP DWORD PTR CS:[????]) at the location pointed to by the JZ ????. If it finds these signatures it will use the target address of the far jump for its sub-sequent checks, otherwise it will just take the previous interrupt entry points when scanning for FAh, 2Eh, 8Ch, 16h (CLI; MOV CS:????,SS) or FAh, 2Eh, 89h, 26h (CLI; MOV CS:????,SP) right at the beginning. Hence, it seems the first two checks are to trace through a specific INT 25h/26h filter. However, the purpose of the whole patch is unknown. A method to detect the actual assignments of logical drive numbers to physical BIOS drive units (for example to detect the boot drive), is to temporarily mount an INT 13h handler recording the used DL drive unit for any INT 13/AH=02h read operations and discarding any attempts to access actual floppy drives. Then call INT 25h for all the appropriate DOS drives and watch the results recorded by the INT 13h interceptor. Although all registers except segment registers may be destroyed some software depends on some of the registers being preserved. For example some Flash disk drivers requires that DX is not trashed. DR-DOS 7.03 takes care of this. BUGS: DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an invalid drive number DR DOS 3.41 will return with a jump instead of RETF, leaving the wrong number of bytes on the stack; use the huge-partition version (INT 25/CX=FFFFh) for all partition sizes under DR DOS 3.41 DR DOS 6.0 original issues 05/1991 & 08/1991 reported wrong error codes for "drive not ready" and "write protect". This was fixed with the DR DOS BDOS patch "PAT321" (1992/02/19, XDIR /C: 947Bh), and later "full" rebuilds (see INT 21/AX=4452h for details). SeeAlso: INT 13/AH=02h,INT 25/CX=FFFFh,INT 26,INT 21/AX=7305h,INT 21/AH=90h"PTS" (Table 02547) Values for disk I/O status: 80h device failed to respond (timeout) 40h seek operation failed 20h controller failed 10h data error (bad CRC) 08h DMA failure 04h requested sector not found 03h write-protected disk (INT 26 only) 02h bad address mark 01h bad commandTop
INT 25 - DOS 3.31+ - ABSOLUTE DISK READ (32M-2047M hard-disk partition) CX = FFFFh AL = drive number (0=A, 1=B, etc) DS:BX -> disk read packet (see #02548) Return: CF clear if successful CF set on error AH = status (see #02547) AL = error code (same as passed to INT 24 in DI) AX = 0207h for FAT32 drive -- use INT 21/AX=7305h may destroy all other registers except segment registers; Win9X always sets SI to 0000h due to an apparent coding bug Notes: partition is potentially >32M (and requires this form of the call) if bit 1 of the device attribute word in the device driver is set original flags are left on stack, and must be removed by caller this call bypasses the DOS filesystem for FAT32 drives (which may be up to 2TB in size), use INT 21/AX=7305h SeeAlso: INT 13/AH=02h,INT 25,INT 26/CX=FFFFh,INT 21/AX=7305h Format of disk read packet: Offset Size Description (Table 02548) 00h DWORD sector number 04h WORD number of sectors to read 06h DWORD transfer address SeeAlso: #02552Top
INT 25 - Stacker - GET DEVICE DRIVER ADDRESS AX = CDCDh DS:BX -> buffer for address (see #02549) CX = 0001h DX = 0000h Return: AX = CDCDh if Stacker installed DS:BX buffer filled Note: not supported by Stacker Anywhere; to obtain the Stacker device driver address and to detect drives controlled by all versions of Stacker, INT 21/AX=4404h"Stacker" or lookup via the CDS and DPB should be preferred (see INT 21/AH=52h) Stacker Anywhere does not link its built-in device driver into the standard device driver chain, but it can be found via CDS/DPB SeeAlso: INT 21/AX=4404h"Stacker" Format of Stacker v2+ driver address buffer: Offset Size Description (Table 02549) 00h WORD signature CDCDh 02h WORD ??? 0001h 04h DWORD pointer to Stacker signature at device driver offset 1Ah (see #02550) Format of Stacker v2+ device driver: Offset Size Description (Table 02550) 00h DWORD pointer to next driver, offset=FFFFh if last driver FFFFh:FFFFh for Stacker Anywhere 04h WORD device attributes (see #01647,#01648) 06h WORD device strategy entry point 08h WORD device interrupt entry point 0Ah BYTE number of subunits (drives) supported by driver 0 for Stacker Anywhere 0Bh 7 BYTEs signature "STAC-CD" for Stacker and Stacker Anywhere 12h 7 BYTEs ??? 19h BYTE always = 01h ?? (Stacker Anywhere points here) 1Ah WORD signature A55Ah (all other Stacker versions point here) 1Ch WORD Stacker version * 64h 0C8h = 200, 012Ch = 300, 0190h = 400 (also Stacker Anywhere) 1Eh WORD offset of volume-specific information offset table (list of WORDs, one per drive, containing offsets to various information) 20h 56 BYTEs n/a 58h BYTE volume number, set after INT 21/AX=4404h, INT 21/AX=4408h (use to index into volume-specific info offset table, should be set to FFh before and tested for change after) 59h 19 BYTEs n/a 6Ch 4 BYTEs ASCII string "SWAP" 70h 26 BYTEs drive mapping table (one byte for each drive A: through Z:) (only used for drives swapped by SSWAP.COM; other drives compressed by Stacker can be found with the standard device driver header signature (see INT 21/AH=52h) ---Stacker 4, Stacker Anywhere--- 8Ah 40 BYTEs ??? B2h 4 BYTEs ASCII string "SWP2" B6h 26 BYTEs drive table ??? D0h 150 BYTEs ??? 166h 60 BYTEs LZSINFO structure (see #02808 at INT 2F/AX=4A12h) SeeAlso: #02551,#01646 at INT 21/AH=52h Format of Stacker boot record: Offset Size Description (Table 02551) 1F0h 8 BYTEs Stacker signature (first byte is CDh) 1F8h DWORD pointer to start of Stacker device driver 1FCh WORD Stacker volume number 1FEh WORD ??? SeeAlso: #02550Top
INT 25 - PC-CACHE.SYS - INSTALLATION CHECK AL = FFh SI = 4358h Return: SI = 6378h if installed CX = segment of device driver PC-CACHE.SYS DX = version (major in DH, minor in DL) Program: PC-CACHE.SYS is a small device driver used by PC-Cache v5.x to obtain access to certain disk drivers for devices such as Bernoulli drives SeeAlso: INT 13/AH=A0hTop
Top
INT 26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M) AL = drive number (00h = A:, 01h = B:, etc) CX = number of sectors to write (not FFFFh) DX = starting logical sector number (0000h - highest sector on drive) DS:BX -> data to write Return: CF clear if successful CF set on error AH = status (see #02547) AL = error code (same as passed to INT 24 in DI) AX = 0207h if more than 64K sectors on drive -- use new-style call may destroy all other registers except segment registers Notes: original flags are left on stack, and must be popped by caller this call bypasses the DOS filesystem, though DOS 5+ invalidates any disk buffers referencing sectors which are written with this call examination of CPWIN386.CPL indicates that if this call fails with error 0408h on an old-style (<32M) call, one should retry the call with the high bit of the drive number in AL set Novell DOS 7 decides whether the old-style or new-style (>32M) version of INT 26 must be used solely on the basis of the partition's size, thus forcing use of the new-style call even for data in the first 32M of the partition Windows98 will display an error message and deliberately hang the system on attempted write to any hard disk if neither bit 7 of the Extended Drive Info byte nor bit 6 of "DOS_FLAG" (List-of-Lists+60h) is set Although all registers except segment registers may be destroyed some software depends on some of the registers being preserved. For example some Flash disk drivers requires that DX is not trashed. DR-DOS 7.03 takes care of this. BUGS: DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an invalid drive number DR DOS 3.41 will return with a jump instead of RETF, leaving the wrong number of bytes on the stack; use the huge-partition version (INT 26/CX=FFFFh) for all partition sizes under DR DOS 3.41 DR DOS 6.0 original releases 05/1991 & 08/1991 reported wrong error codes for "drive not ready" and "write protect". This was fixed with the DR DOS BDOS patch "PAT321" (1992/02/19, XDIR /C: 947Bh) and later "full" rebuilds (see INT21/AX=4452h for details). SeeAlso: INT 13/AH=03h,INT 25,INT 26/CX=FFFFh,INT 21/AX=7305h,INT 21/AH=91h"PTS"Top
INT 26 - DOS 3.31+ - ABSOLUTE DISK WRITE (32M-2047M hard-disk partition) CX = FFFFh AL = drive number (0=A, 1=B, etc) DS:BX -> disk write packet (see #02552) Return: CF clear if successful CF set on error AH = status (see #02547) AL = error code (same as passed to INT 24 in DI) may destroy all other registers except segment registers Notes: partition is potentially >32M (and requires this form of the call) if bit 1 of the device attribute word in the device driver is set original flags are left on stack, and must be removed by caller this call bypasses the DOS filesystem, though DOS 5+ invalidates any disk buffers referencing sectors which are written with this call for FAT32 drives (which may be up to 2TB in size), use INT 21/AX=7305h Windows98 will display an error message and deliberately hang the system on attempted write to any hard disk if neither bit 7 of the Extended Drive Info byte nor bit 6 of "DOS_FLAG" (List-of-Lists+60h) is set SeeAlso: INT 13/AH=03h,INT 25/CX=FFFFh,INT 26,INT 21/AX=7305h Format of disk write packet: Offset Size Description (Table 02552) 00h DWORD sector number 04h WORD number of sectors to read 06h DWORD transfer address SeeAlso: #02548Top
INT 26 - COMTROL HOSTESS i/ISA DEBUGGER - ENTER/EXIT EXTENDED ADDRESSING MODE ??? Return: ??? SeeAlso: INT 23"COMTROL",INT 27"COMTROL"Top
INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT DX = number of bytes to keep resident (max FFF0h) CS = segment of PSP Return: never Notes: this is an obsolete call INT 22, INT 23, and INT 24 are restored from the PSP does not close any open files the minimum number of bytes which will remain resident is 110h for DOS 2.x and 60h for DOS 3.0+; there is no minimum for DOS 1.x, which implements this service in COMMAND.COM rather than the DOS kernel SeeAlso: INT 21/AH=31hTop
INT 27 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE REMOTE TURBO DEBUGGER KERNEL ??? Return: ??? Desc: invoke a copy of the remote Turbo Debugger kernel on the Hostess i controller SeeAlso: INT 20"COMTROL",INT 26"COMTROL"Top
INT 28 C - DOS 2+ - DOS IDLE INTERRUPT SS:SP = top of MS-DOS stack for I/O functions Return: all registers preserved Desc: This interrupt is invoked each time one of the DOS character input functions loops while waiting for input. Since a DOS call is in progress even though DOS is actually idle during such input waits, hooking this function is necessary to allow a TSR to perform DOS calls while the foreground program is waiting for user input. The INT 28h handler may invoke any INT 21h function except functions 00h through 0Ch. Notes: under DOS 2.x, the critical error flag (the byte immediately after the InDOS flag) must be set in order to call DOS functions 50h/51h from the INT 28h handler without destroying the DOS stacks. calls to INT 21/AH=3Fh,40h from within an INT 28 handler may not use a handle which refers to CON at the time of the call, the InDOS flag (see INT 21/AH=34h) is normally set to 01h; if larger, DOS is truly busy and should not be reentered the default handler is an IRET instruction supported in OS/2 compatibility box the _MS-DOS_Programmer's_Reference_ for DOS 5.0 incorrectly documents this interrupt as superseded the performance of NetWare Lite servers (and probably other peer-to- peer networks) can be dramatically improved by calling INT 28 frequently from an application's idle loop SeeAlso: INT 21/AH=34h,INT 2A/AH=84h,INT 2F/AX=1680hTop
INT 28 u - PCXDUMP v9.00+ - INSTALLATION CHECK AX = 9999h Return: AX = AAAAh if installed CX = version number * 100 (example: 03A2h = 930 = v9.30) DL = interrupt used by the dump function (see #02553) (00h if call not available) BX = CS of PCXDUMP's INT 28 handler (undocumented) ES = segment of PCXDUMP's memory block (v9.30, undocumented) Program: PCXDUMP is a shareware screen grabber saving in PCX format Notes: if DL<>00h a dump can be requested by calling INT DL as shown below (the user can choose the interrupt number at installation time); if DL=00h the dump function can be called only by hotkeys (this is the default) (Table 02553) Call PCXDUMP screen-dump function with: INT xx AX = 1234h BX = dump type 0000h Color dump 0001h Immediate color dump 0002h Black/White dump 0003h Immediate B/W dump 0004h Inverted B/W dump 0005h Gray scaled dump 0006h Inverted gray scaled dump 0007h Text screen dump to text file 0008h Text screen dump to ansi file Return: nothing Notes: if BX=0001h, 0003h, 0007h or 0008h the whole screen will be dumped; the other valid values will draw a selection frame on the screen except in text modes (text modes allow only full screen dumps) this function doesn't perform the dump, it only requests it; the dump will be performed after a few milliseconds if it's safe to do so, thus the author recommends putting a 60 ms delay after this callTop
INT 29 C - DOS 2+ - FAST CONSOLE OUTPUT AL = character to display Return: nothing BX may be destroyed by some versions of DOS 3.3 Notes: automatically called when writing to a device with bit 4 of its device driver header set (see also INT 21/AH=52h) COMMAND.COM v3.2 and v3.3 compare the INT 29 vector against the INT 20 vector and assume that ANSI.SYS is installed if the segment is larger the default handler under DOS 2.x and 3.x simply calls INT 10/AH=0Eh the default handler under DESQview 2.2 understands the <Esc>[2J screen-clearing sequence, calls INT 10/AH=0Eh for all others SeeAlso: INT 21/AH=52h,INT 2F/AX=0802h,INT 79"AVATAR.SYS"Top
INT 29 - ShowGFX - INSTALLATION CHECK AX = E60Dh CL = 0Eh DX = C0DEh Return: DX = DEC0h Program: ShowGFX is a PCBoard graphics driver by Solar DesignerTop
INT 2A - NETWORK - INSTALLATION CHECK AH = 00h Return: AH <> 00h if installed CF set if NetWare v2.15 NetBIOS emulator installed Note: supported by PC LAN Program, LAN Manager, LANtastic, NetWare, 10NET, etc. SeeAlso: INT 5C"NetBIOS"Top
INT 2A - AT&T Starlan Extended NetBIOS (var length names) - INSTALLATION CHECK AX = 0000h Return: AH = DDh SeeAlso: INT 5B"Extended NetBIOS"Top
INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NETBIOS REQUEST,NO ERROR RETRY AH = 01h ES:BX -> NCB (see #03249 at INT 5C"NetBIOS") Return: AL = NetBIOS error code AH = status 00h no error 01h error occurred SeeAlso: AH=04h,AX=0500h,INT 5B"Extended NetBIOS",INT 5C"NetBIOS"Top
INT 2A - NETWORK (Microsoft) - SET NET PRINTER MODE AH = 02h ??? Return: ???Top
INT 2A - NETWORK - CHECK DIRECT I/O AX = 0300h DS:SI -> ASCIZ device name (may be full path or only drive specifier-- must include the colon) Return: CF clear if direct physical addressing (INT 13,INT 25) permissible CF set if access via files only Notes: do not use direct disk accesses if this function returns CF set or the device is redirected (INT 21/AX=5F02h) use AH=00h to determine whether the network is installed; if not, direct physical access is allowed may take some time to execute, so programs which need to check frequently should save the result of the first call this function is called by the DOS kernel on INT 25 and INT 26 supported by PC LAN Program, LAN Manage, LANtastic, NetWare, 10NET, etc. SeeAlso: INT 13/AH=02h,INT 13/AH=03h,INT 25,INT 26,INT 21/AX=5F02hTop
INT 2A - NETWORK - EXECUTE NetBIOS REQUEST AH = 04h AL = error retry 00h automatically retry request on errors 09h, 12h, and 21h (see #03248 at INT 5C"NetBIOS") 01h no retry 02h ??? ES:BX -> Network Control Block (see #03249 at INT 5C"NetBIOS") Return: AX = 0000h if successful AH = 01h on error AL = error code Notes: invokes either INT 5B or INT 5C as appropriate supported by PC LAN Program, LANtastic, LAN Manager, NetWare, 10NET, etc. NetWare 2.15 NetBIOS emulator returns CF clear if successful, CF set on error PC LAN Program defines any non-zero return value in AH as an error indicator for subfunction 00h, and any non-zero return value in AX as an error indicator for subfunction 01h SeeAlso: AH=00h,AH=01h,AX=0500h,INT 5B"Extended NetBIOS",INT 5C"NetBIOS"Top
INT 2A - NETWORK - GET NETWORK RESOURCE AVAILABILITY AX = 0500h Return: AX reserved BX = number of network names available CX = number of network control blocks available DX = number of network sessions available Notes: supported by PC LAN Program, LAN Manager, LANtastic, NetWare, 10NET, etc. the application should call this function before using any network resources, and maintain its own count to avoid exceeding the network's resource limits SeeAlso: AH=00h,AH=01h,AH=04h,INT 5C"NetBIOS"Top
INT 2A - NETBIOS, LANtastic - NETWORK PRINT-STREAM CONTROL AH = 06h AL = function 01h set concatenation mode all printer output put in one job until return to DOS prompt 02h set truncation mode (default) printer open/close or BIOS/DOS output switch starts new job 03h flush printer output and start new print job Return: CF set on error AX = error code CF clear if successful Notes: subfunction 03h is equivalent to Ctrl/Alt/keypad-* supported by PC LAN Program, LANtastic, NetWare, 10NET, etc. LANtastic v4.x no longer supports this call this function sets the printer mode for all redirected printers SeeAlso: INT 21/AX=5D08h,INT 21/AX=5D09h,INT 2F/AX=1125hTop
INT 2A U - PC Network v1.00 - RECEIVER.COM - ??? AH = 07h ??? Return: ??? Program: PC Network is an early networking package which was renamed the IBM PC Local Area Network Program (PC LAN Program) as of v1.10 SeeAlso: AH=86hTop
INT 2A - MS Networks or NETBIOS - ??? AX = 2001h ??? Return: ??? Note: intercepted by DESQview 2.xTop
INT 2A - NETWORK - ??? AX = 2002h ??? Return: ??? Note: called by MS-DOS 3.30-6.00 APPENDTop
INT 2A - NETWORK - ??? AX = 2003h ??? Return: ??? Note: called by MS-DOS 3.30-6.00 APPENDTop
INT 2A U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK
AX = 4147h ('AG')
DX = 0000h
Return: DX = 4147h if installed
DS:SI -> configuration data (see #02554)
Program: DOS-NET is a shareware networking package by Albert Graham
Note: this call is supported by CLIENT.COM, SERVER.COM, ROUTER.COM, and
NETDOS.COM
SeeAlso: INT 65/DX=4147h,INT 65/DX=4741h
Format of DOS-NET v1.20 configuration data area:
Offset Size Description (Table 02554)
00h BYTE ???
01h BYTE interrupt number used by DOS-NET APIs
02h WORD function number to place in AX for above interrupt
04h BYTE minor version as two BCD digits (e.g. 20h for v1.20)
05h BYTE major version number (01h for v1.20)
06h 2 BYTEs ???
08h WORD ??? (used by ARCNET.COM)
bit 15: ??? (set by MACTEST.COM)
0Ah WORD ??? (used by NDIS.COM and ODI.COM)
0Ch 22 BYTEs ???
24h DWORD -> ??? function (set by PROTECT.COM)
28h 12 BYTEs ???
34h DWORD -> ??? function (set by FASTVIEW.COM)
38h DWORD -> ??? function (set by FASTVIEW.COM)
58h DWORD -> ??? (offsets 04h and 1Ah from value are used by NETFILES)
???
7Ch WORD ???
7Eh WORD ??? (may be high half of a DWORD at 7Ch)
???
A8h DWORD -> ??? (used by SM.COM)
???
114h WORD ???
116h WORD ??? (may be high half of a DWORD at 114h)
???
1BDh BYTE ??? flags
bit 0: ???
bit 6: ???
???
1E1h BYTE ???
???
208h WORD ??? (used by SM.COM, MACTEST)
282h WORD ???
284h 2 BYTEs ???
286h WORD ??? flags
bit 0: ???
???
31Eh WORD ???
320h WORD ??? (used by NDIS.COM and ODI.COM)
322h 8 BYTEs ???
32Ah WORD ??? (used by NDIS.COM and ODI.COM)
???
33Eh 4 BYTEs ??? (used by ODI.COM)
342h N BYTEs ??? (used by NDIS.COM)
???
3CFh BYTE ??? flags
bit 2: ???
3D2h BYTE installed-component flags
bit 0: PROTECT installed
bit 1: NETCACHE installed
bit 3: SM.COM installed
bit 7: NETDEBUG installed
3D3h BYTE installed-component flags
bit 0: NETFILES installed
bit 6: FASTVIEW installed
???
3FFh BYTE ??? (used by NDIS.COM)
400h BYTE ???
401h BYTE ??? (used by SM.COM)
402h BYTE ??? (used by SM.COM)
???
448h BYTE ???
449h BYTE ??? (used by MACTEST)
44Ah BYTE ??? (used by PROTECT)
44Bh BYTE ???
44Ch BYTE ???
44Dh BYTE ??? (used by SM.COM)
44Eh BYTE ??? (used by SM.COM, MACTEST)
???
Top
INT 2A - NETWORK - PC LAN PROG v1.31+ - GET LOGGED ON USER NAME AX = 7802h ES:DI -> 8-byte buffer to be filled Return: AL = 00h if no user logged on to Extended Services AL <> 00h if user logged on to Extended Services buffer at ES:DI filled with name, padded to 8 chars with blanks.Top
INT 2A CU - NETWORK - BEGIN DOS CRITICAL SECTION AH = 80h AL = critical section number (00h-0Fh) (see #02555) Notes: normally hooked to avoid interrupting a critical section, rather than called the handler should ensure that none of the critical sections are reentered, usually by suspending a task which attempts to reenter an active critical section the DOS kernel does not invoke critical sections 01h and 02h unless it is patched. DOS 3.1+ contains a zero-terminated list of words beginning at offset -11 from the Swappable Data Area (see #01687 at INT 21/AX=5D06h); each word contains the offset within the DOS data segment of a byte which must be changed from C3h (RET) to 50h (PUSH AX) under DOS 3.x or from 00h to a nonzero value under DOS 4.0+ to enable use of critical sections. For DOS 4.0+, all words in this list point at the byte at offset 0D0Ch. MS Windows patches the DOS kernel's calls to INT 2A/AH=80h-81h into far calls to its own handler, and does not reflect the calls back to INT 2A unless SYSTEM.INI contains ReflectDOSInt2A=1 or ModifyDOSInt2A=0 in the [386Enh] section Novell NETX does not issue INT 2A/AH=80h and INT 2A/AH=81h calls when it intercepts INT 21 calls and processes them itself SeeAlso: AH=81h,AH=82h,AX=8700h,INT 21/AX=5D06h,INT 21/AX=5D0Bh (Table 02555) Values for DOS critical section number: 01h DOS kernel, SHARE.EXE, DOSMGR apparently for maintaining the integrity of DOS/SHARE/NET data structures 02h DOS kernel, DOSMGR ensures that no multitasking occurs while DOS is calling an installable device driver 05h network redirector 06h DOS 4.x only IFSFUNC 08h ASSIGN.COM 0Ah MSCDEX, CORELCDX 0Fh IBM PC LAN server (while intercepting INT 10/AH=06h,07h,0Eh)Top
INT 2A CU - NETWORK - END DOS CRITICAL SECTION AH = 81h AL = critical section number (00h-0Fh) (see #02555) Notes: normally hooked rather than called the handler should reawaken any tasks which were suspended due to an attempt to enter the specified critical section MS Windows patches the DOS kernel's calls to INT 2A/AH=80h-81h into far calls to its own handler, and does not reflect the calls back to INT 2A unless SYSTEM.INI contains ReflectDOSInt2A=1 or ModifyDOSInt2A=0 in the [386Enh] section SeeAlso: AH=80h,AH=82h,AX=8700hTop
INT 2A CU - NETWORK - END DOS CRITICAL SECTIONS 0 THROUGH 7 AH = 82h Notes: called by the INT 21h function dispatcher for function 0 and functions greater than 0Ch except 59h, and on process termination the handler should reawaken any tasks which were suspended due to an attempt to enter one of the critical sections 0 through 7 SeeAlso: AH=81hTop
INT 2A CU - NETWORK - KEYBOARD BUSY LOOP AH = 84h Notes: similar to DOS's INT 28h, called from inside the DOS keyboard input loop (i.e. INT 21/AH=07h or INT 21/AH=08h) to allow the network software to process requests Novell DOS 7+ calls this function with AX=8400h from inside of the keyboard input loop. SeeAlso: INT 28Top
INT 2A U - PC Network v1.00 - RECEIVER.COM - ??? AH = 86h ??? Return: ??? SeeAlso: AH=07h,AH=C4hTop
INT 2A CU - PRINT - BEGIN BACKGROUND PRINTING AX = 8700h CF clear Return: CF clear if OK to print in background now CF set if background printing not allowed at this time Desc: used to inform interested programs that PRINT is about to start its background processing, and allow those programs to postpone the processing if necessary Notes: when PRINT gains control and wants to begin printing, it calls this function. If CF is clear on return, PRINT begins its background processing, and calls AX=8701h when it is done. If CF is set on return, PRINT will relinquish control immediately, and will not call AX=8701h PCVENUS (an early network shell by IBM and CMU) hooks this call to prevent background printing while its own code is active SeeAlso: AH=80h,AH=81h,AX=8701hTop
INT 2A CU - PRINT - END BACKGROUND PRINTING AX = 8701h Desc: used to inform interested programs that PRINT has completed its background processing Note: called by PRINT after it has performed some background printing; not called if AX=8700h returned with CF set. SeeAlso: AX=8700hTop
INT 2A U - PC Network v1.00 - RECEIVER.COM - ??? AH = 89h AL = ??? (ASSIGN uses 08h) ??? Return: ???Top
INT 2A U - IBM PC 3270 EMULATION PROGRAM - ??? AH = 90h ??? Return: ??? Note: the LANtastic redirector and SERVER.EXE use this function with AL=01h, 03h-07h,0Ch-11hTop
INT 2A U - Network - ??? AH = C2h AL = subfunction 07h ??? 08h ??? BX = 0001h ??? Return: ??? Note: this function is called by the DOS 3.30-6.00 APPENDTop
INT 2A U - PC Network v1.00 - RECEIVER.COM - ??? AH = C4h AL = subfunction 07h ??? 08h ??? BX = ??? ??? Return: ??? SeeAlso: AH=86hTop
INT 2A U - Novell NetWare Lite - SERVER - DOS CRITICAL SECTION DISABLE AX = D800h Return: nothing Desc: sets ??? flag, and sets ??? to initial value Note: called by CLIENT for communication between client and server SeeAlso: AX=D801h,AX=D850hTop
INT 2A U - Novell NetWare Lite - SERVER - DOS CRITICAL SECTION ENABLE AX = D801h Return: nothing Desc: clears the ??? flag set by AX=D800h Note: called by CLIENT for communication between client and server SeeAlso: AX=D800h,AX=D850hTop
INT 2A U - Novell NetWare Lite - CLIENT - START SERVER CRITICAL SECTION AX = D850h Return: nothing Desc: increments an internal byte-sized counter Note: this function is intercepted by DV/X 1.10 PEERSERV.DVR and the Advanced NetWare 4.0 DOS Requester SeeAlso: AX=D851hTop
INT 2A U - Novell NetWare Lite - CLIENT - END SERVER CRITICAL SECTION AX = D851h Return: nothing Desc: resets an internal byte-sized counter to zero Note: this function is intercepted by DV/X 1.10 PEERSERV.DVR and the Advanced NetWare 4.0 DOS Requester SeeAlso: AX=D850hTop
INT 2A U - Novell NetWare - DOS Requester v1.03 - SERVER LOADED AX = D852h Return: ??? Note: calls the NetWare Lite SERVER installation check, and sets ??? pointer SeeAlso: AX=D853h,INT 2F/AX=D880hTop
INT 2A U - Novell NetWare - DOS Requester v1.03 - SERVER UNLOADED AX = D853h Return: ??? Note: clears the pointer set by AX=D852h SeeAlso: AX=D852hTop
INT 2A U - PC Network 1.00 - ??? AH = E0h AL = subfunction??? (01h,02h, maybe others) ??? Return: ??? Note: called by PCNet 1.00 NET.COM, a shell program from which others are runTop
INT 2A - PC/TCP PREDIR.EXE - ??? AX = FF90h Return: AX = ??? Note: PREDIR.EXE is the network printer redirector included as part of the PC/TCP system by FTP Software, Inc.Top
INT 2A - PC/TCP PREDIR.EXE - ??? AX = FF91h BX = ??? Return: AX = status???Top
INT 2A - PC/TCP PREDIR.EXE - INSTALLATION CHECK AX = FF92h Return: AX = 0000h if installed BX = redirected printer port (FFFFh if no printers redirected) CX = version (CH = major, CL = minor) Note: PREDIR.EXE is the network printer redirector included as part of the PC/TCP system by FTP Software, Inc.Top
INT 2A - PC/TCP PREDIR.EXE - ??? AX = FF93h Return: AX = ???Top
INT 2A - PC/TCP PREDIR.EXE - ??? AX = FF94h BX = ??? CX = ??? DX = ??? Return: AX = ??? Note: PREDIR.EXE is the network printer redirector included as part of the PC/TCP system by FTP Software, Inc.Top
INT 2A - PC/TCP PREDIR.EXE - GET CONFIGURATION STRINGS AX = FF95h CX = what to get 0000h ??? (returned pointer to "C:\COMMAND.COM") 0001h spooling program 0002h ??? 0003h spool file name 0004h swap file name Return: AX = status 0000h successful BX:DX -> ASCIZ configuration stringTop
INT 2A - PC/TCP PREDIR.EXE - SET PRINT JOB TERMINATION CONFIGURATION AX = FF96h CX = what to set 0000h ??? 0001h print-on-hotkey state 0002h print-on-exit state 0003h print job timeout in clock ticks 0004h print-on-EOF state BX = new value (0000h disabled, 0001h enabled except for timeout) Return: AX = ??? SeeAlso: AX=FF97h Note: PREDIR.EXE is the network printer redirector included as part of the PC/TCP system by FTP Software, Inc.Top
INT 2A - PC/TCP PREDIR.EXE - GET PRINT JOB TERMINATION CONFIGURATION AX = FF97h CX = what to get 0000h ??? 0001h print-on-hotkey state 0002h print-on-exit state 0003h print job timeout in clock ticks 0004h print-on-EOF state Return: AX = status 0000h successful BX = old value (0000h disabled, 0001 enabled except for timeout) SeeAlso: AX=FF96hTop
INT 2B - DOS 2+ - RESERVED Note: this vector is not used in MS-DOS versions <= 6.22, and points at an IRET instructionTop
INT 2B - IBM ROM-DOS v4.0 - ??? AH = function 00h ??? (modifies data in IBMBIO.COM) 01h internal operations 02h ??? AL = index (00h-0Ch) Return: AX = ??? or (CMOS 2Dh and CMOS 2Eh) 03h get ??? data Return: AX = (CMOS 2Dh and CMOS 2Eh) BX = FFFFh other does nothing Note: function 03h is called by ROMSHELL.COM; if BX != 0, then the ES:DI from INT 2F/AX=1982h points at valid data SeeAlso: INT 2F/AX=1982hTop
INT 2C - DOS 2+ - RESERVED Note: this vector is not used in DOS versions <= 6.00, and points at an IRETTop
INT 2C - STARLITE architecture - KERNEL API Note: STARLITE is an architecture by General Software for a series of MS-DOS compatible operating systems (OEM DOS, NETWORK DOS, and SMP DOS) to be released in 1991. The interrupt number is subject to change before the actual release.Top
INT 2C R - Cloaking - CALL PROTECTED-MODE PASSALONG CHAIN
Notes: when this interrupt is invoked in V86 mode, RM386 will invoke the first
in a chain of protected-mode handlers, and will only pass execution
to the V86-mode INT 2C handler if none of the handlers in the
passalong chain handle the call instead. This is the method by which
the real-mode stub of a cloaked application communicates with the
protected-mode portion.
the cloaking host calls the passalong chain with EAX=58494E33h ('WIN3')
when MS Windows starts up and with EAX=334E4958h ('3NIW') when
Windows shuts down; between these two broadcasts, the additional
Windows-only Cloaking services are available
this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
memory manager included in Helix Software's Netroom
SeeAlso: INT 2C/AX=0009h,INT 2F/AX=4310h"Cloaking"
Top
INT 2C P - Cloaking - ALLOCATE GDT SELECTOR AX = 0000h EBX = base address CL = access mode byte CH = extended access mode byte (omit limit field) EDX = segment limit Return: CF clear if successful AX = selector CF set on error AX = error code (see #02556) Notes: this INT 2C interface is used by Netroom's DPMI.EXE v3.00 to access extended memory, set the base address to the desired physical address plus 400000h (4M) this function was first introduced with RM386 (RAM-MAN/386) v6.00, the memory manager included in Helix Software's Netroom SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0004h,AX=0005h,INT 31/AH=57h,#00501 (Table 02556) Values for Cloaking error code: 0001h no more selectors 0002h not a GDT ring 0 selector 0003h invalid selector (out of range, not user selector) 0004h selector not allocatedTop
INT 2C P - Cloaking - FREE GDT SELECTOR AX = 0001h SI = selector Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,INT 2F/AX=4310h"Cloaking"Top
INT 2C P - Cloaking - SET SEGMENT BASE ADDRESS AX = 0002h SI = selector EBX = new physical base addres Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 31/AX=0007h,#00501Top
INT 2C P - Cloaking - SET SEGMENT LIMIT AX = 0003h SI = selector EBX = new limit Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 31/AX=0008hTop
INT 2C P - Cloaking - SET SEGMENT ACCESS MODE AX = 0004h SI = selector CL = new access mode byte (see #00502) Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0005h,INT 31/AX=0009hTop
INT 2C P - Cloaking - SET SEGMENT EXTENDED ACCESS MODE AX = 0005h SI = selector CL = new extended access mode byte (limit field ignored) (see #02557) Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0004h,INT 31/AX=0009h Bitfields for extended access mode byte: Bit(s) Description (Table 02557) 7 4K granularity instead of byte granularity 6 32-bit code segment 5 reserved (0) 4 segment available to system SeeAlso: #00505Top
INT 2C P - Cloaking - GET PROTECTED-MODE INTERRUPT VECTOR AX = 0006h CL = vector (00h-7Fh) Return: CF clear DX:EBX -> current interrupt handler Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0007h,INT 31/AX=0204hTop
INT 2C P - Cloaking - SET PROTECTED-MODE INTERRUPT VECTOR AX = 0007h CL = vector (00h-7Fh) DX:EBX -> interrupt handler Return: CF clear Notes: this function was first introduced with RM386 (RAM-MAN/386) v6.00 the IDT entry's type remains unchanged SeeAlso: AX=0006h,INT 31/AX=0205hTop
INT 2C P - Cloaking - GET PASSALONG ADDRESS AX = 0008h Return: CF clear DX:EBX = current passalong address Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0009h,AX=002Ch,INT 2F/AX=4310h"Cloaking"Top
INT 2C P - Cloaking - SET PASSALONG ADDRESS AX = 0009h DX:EBX = new value for passalong address (see #02558) Return: CF clear Notes: when an INT 2C instruction is executed in V86 mode, the Cloaking host calls the passalong address. The handler should check whether the upcall is of interest to it, and if not it should jump to the old passalong address (retrieved with AX=0008h before the handler was installed). The final handler should return with CF clear to cause the interrupt to be reflected back to V86 mode if none of the passalong handlers is triggered this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0008h,AX=002Dh,INT 2C"PASSALONG CHAIN" (Table 02558) Values Cloaking passalong address is called with: EAX = CS:IP of byte following INT 2C instruction invoking passalong SS:EBX -> caller registers (see #02559) CF clear others undefined Return: CF clear: pass along to V86-mode INT 2C handler CF set: return immediately to V86 mode Format of Cloaking caller registers: Offset Size Description (Table 02559) 00h DWORD EDI 04h DWORD ESI 08h DWORD EBP 0Ch DWORD reserved (ESP from PUSHAD instruction) 10h DWORD EBX 14h DWORD EDX 18h DWORD ECX 1Ch DWORD EAX 20h DWORD error code 24h DWORD EIP 28h WORD CS 2Ah WORD padding 2Ch DWORD EFLAGS 30h DWORD ESP 34h WORD SS 36h WORD padding --remainder not available if protected-mode ring3 trap--- 38h WORD ES 3Ah WORD padding 3Ch WORD DS 3Eh WORD padding 40h WORD FS 42h WORD padding 44h WORD GS 46h WORD paddingTop
INT 2C P - Cloaking - GET BASE ADDRESS OF GDT SELECTOR AX = 000Ah SI = selector Return: CF clear if successful EBX = segment base address CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the memory manager included in Helix Software's Netroom SeeAlso: AX=0000h,AX=0002h,AX=000BhTop
INT 2C P - Cloaking - GET SELECTOR LIMIT AX = 000Bh SI = selector Return: CF clear if successful EBX = segment base address CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=000Ah,INT 2F/AX=4310h"Cloaking"Top
INT 2C P - RM386 v6.00 - CLOAKING - RESERVED FOR CLOAKED BIOS USE UNDER WINDOWS AX = function (000Ch-001Fh)Top
INT 2C P - Cloaking v1.01 - "Simulate_Shell_Event" AX = 000Fh ECX = event code (see #02560) DX = subfunction for event EDX high word = boost value (see #02561) SI:EDI -> completion procedure Return: CF clear if successful (event scheduled) CF set on error Note: this function is only available while MS Windows is running SeeAlso: AX=0011h,AX=0012h,INT 2F/AX=1605h,INT 2F/AX=4310h"Cloaking" (Table 02560) Values for Cloaking shell event code: 0414h Hot key event subevent 0000h: Alt-Space subevent 0001h: Alt-Enter subevent 0002h: Dir-VM 0415h Switch context subevent 0000h for DOS VM context, nonzero for System VM context 0416h Clipboard event 0417h Termination event subevent 0000h for normal termination, nonzero for error 0418h Display message subevent 0000h for normal message, nonzero for system model ASAP 0419h Crash 041Ah Paste complete subevent 0000h: normal subevent 0001h: cancelled by user subevent 0002h: cancelled 041Bh Contention event 041Ch Screen switch subevent 0000h: forward subevent 0001h: back 041Dh Filesystem change 041Eh Check Focus 041Fh Panic Bitfields for boost value: Bit(s) Description (Table 02561) 0 boost system VM until focus changes 1 boost system VM on Switcher screen 2 boost system VM until response 3 boost system VM during clipboard activity 4 boost system VM during print screen 5 boost system VM during updateTop
INT 2C P - Cloaking v1.01 - "Switch_VMs_and_Call_back" AX = 0011h EBX = handle of VM to be made active SI:EDI -> 32-bit FAR completion procedure Return: CF clear if successful (scheduled) CF set on error Notes: this function is only available while MS Windows is running the completion procedure is called with CF clear if the specified VM has been made active, or with CF set on error SeeAlso: AX=000Fh,AX=0012hTop
INT 2C P - Cloaking v1.01 - "Query_Current_VM" AX = 0012h Return: CF clear EBX = handle of active VM ESI = handle of system VM ECX = VM status flags (see #02562) EDX = shell flags (see #02563) Note: this function is only available while MS Windows is running in enhanced mode SeeAlso: AX=000Fh,AX=0011h,AX=0013h Bitfields for VM status flags: Bit(s) Description (Table 02562) 0 in exclusive mode 1 runs in background 2 being created 3 suspended 4 not executable 5 executing in protected mode 6 contains PM application 7 32-bit PM application 8 called from VxD 9 high priority background 10 blocked on semaphore 11 awakening 12 has pageable V86 13 has locked V86 14 is scheduled 15 idle 16 closing Bitfields for shell flags: Bit(s) Description (Table 02563) 2 windowed 5 Alt-Tab reserved 6 Alt-Esc reserved 7 Alt-Space reserved 8 Alt-PrtSc reserved 9 Alt-Enter reserved 10 Alt-PrtSc reserved 11 PrtSc reserved 12 polling enabled 13 no HMA 14 has shortcut key 15 locked EMS handles 16 locked XMS handles 17 fast paste enabled 18 locked V86 memory 30 close-on-exit enabledTop
INT 2C P - Cloaking v1.01 - "Issue_System_Modal_Message" AX = 0013h EDX = message box flags (see #02564) DS:ECX -> ASCIZ message text DS:EDI -> ASCIZ caption Return: CF clear EAX = response code Note: this function is only available while MS Windows is running in enhanced mode SeeAlso: AX=000Fh,AX=0012h Bitfields for message box flags: Bit(s) Description (Table 02564) 3-0 response codes (see #02565) 7-4 icon codes 1 = Warning hand 2 = exclamation mark 4 = asterisk 9-8 default response (0 = first button, 1 = second, 2 = third) 12 message is system model 15 don't change focus 29 hang with interrupts enabled 30 do not window 31 execute ASAP (Table 02565) Values for response codes: 00h OK 01h OK, Cancel 02h Abort, Retry, Ignore 03h Yes, No, Cancel 04h Yes, No 05h Retry, CancelTop
INT 2C P - Cloaking v1.01 - GET INT 2C API HANDLER ENTRY POINT AX = 001Dh Return: CF clear DX:EBX = selector:offset of Cloaking host INT 2C handler Desc: get the Cloaking host's entry point to bypass any other programs which may have hooked INT 2C in protected mode Note: the returned entry point must be called with a simulated INT, i.e. a PUSHD must precede the far call to the handler SeeAlso: INT 2F/AX=4310h"Cloaking"Top
INT 2C P - Cloaking v1.01 - CLEAR CRITICAL SECTION AX = 001Eh Return: CF clear Desc: allow MS Windows to switch to another VM after having prevented it by invoking a critical section SeeAlso: AX=001Fh,INT 15/AX=101Ch,INT 2F/AX=1682hTop
INT 2C P - Cloaking v1.01 - SET CRITICAL SECTION AX = 001Fh Return: CF clear Desc: prevent MS Windows from switching to another VM SeeAlso: AX=001Eh,INT 15/AX=101Bh,INT 2F/AX=1681hTop
INT 2C P - Cloaking - GET SIZE OF PROTECTED-MODE STATE AX = 0020h Return: EAX = number of bytes required for storing state Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0021h,AX=0022hTop
INT 2C P - Cloaking - SAVE PROTECTED-MODE STATE AX = 0021h ES:EDI -> buffer for protected-mode state Return: CF clear buffer filled Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0020h,AX=0022hTop
INT 2C P - Cloaking - RESTORE PROTECTED-MODE STATE AX = 0022h DS:ESI -> buffer containing previously-saved protected-mode state Return: CF clear if successful state restored CF set on error (invalid buffer contents) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0020h,AX=0021hTop
INT 2C P - Cloaking - ISSUE PROTECTED-MODE XMS CALL AX = 0023h Notes: not currently implemented--NOP in RM386 v6.00 this function was first introduced with RM386 (RAM-MAN/386) v6.00Top
INT 2C P - Cloaking - SET V86-MODE STACK AX = 0024h DX:EBX = new value for V86-mode SS:ESP Return: nothing Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00Top
INT 2C P - Cloaking - CALL V86-MODE PROCEDURE AX = 0025h DS:EBX -> client register structure (see #02559) Return: CF clear if successful client register structure updated CF set if no more nested procedure call space available Notes: this call uses the V86-mode stack supplied in the client structure, and calls the routine specified by CS:IP in the client structure this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0026h,AX=0027h,INT 31/AX=0301hTop
INT 2C P - Cloaking - CALL V86-MODE INTERRUPT HANDLER AX = 0026h DS:EBX -> client register structure (see #02559) CX = interrupt number Return: CF clear if successful client register structure updated CF set if no more nested procedure call space available Notes: this call uses the V86-mode stack supplied in the client structure this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0025h,AX=0027h,INT 31/AX=0300hTop
INT 2C P - Cloaking - CHAIN TO V86-MODE INTERRUPT HANDLER AX = 0027h DS:EBX -> client register structure (see #02559) Return: CF clear if successful client register structure updated CF set if no more nested procedure call space available Notes: this call uses the V86-mode stack supplied in the client structure, and jumps to the address specified by CS:IP in the client structure this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0025h,AX=0026hTop
INT 2C P - Cloaking - GET ESP0 FROM TSS AX = 0028h Return: CF clear EAX = TSS's ESP0 Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the memory manager included in Helix Software's NetroomTop
INT 2C P - Cloaking - SET SECONDARY STACK AX = 0029h DX:EBX = new value for SS:ESP of ring 3 secondary stack Return: CF clear Desc: inform RM386 of the ring 3 interrupt stack location Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00Top
INT 2C P - Cloaking - SET 8259 IRQ BASE VECTORS AX = 002Ah BL = base vector of master interrupt controller CL = base vector of slave interrupt controller Notes: this call merely informs RM386 that the caller has changed the interrupt mappings this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: INT 67/AX=DE0BhTop
INT 2C P - Cloaking - PROTECTED-MODE VIRTUAL DMA SERVICES AX = 002Bh CH = 81h CL = subfunction (02h-0Ch) other registers as appropriate for subfunction Return: varies by function CF set on error Notes: these functions are equivalent to the INT 4B/AX=81xxh subfunctions with the same numbers this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: INT 4B/AX=8102h,INT 4B/AX=810ChTop
INT 2C P - Cloaking - GET PORT-TRAPPING PASSALONG AX = 002Ch Return: CF clear DX:EBX = current I/O trapping passalong address Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0008h,AX=002DhTop
INT 2C P - Cloaking - SET PORT-TRAPPING PASSALONG AX = 002Dh DX:EBX = new I/O trapping passalong address (see #02566) Return: CF clear Notes: RM386 calls the passalong address whenever an access to a monitored I/O port is attempted; the handler should check whether it is a port that it is interested in, and if not call the previous passalong address (which was retrieved with AX=002Ch before installing the new handler) this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0009h,AX=002Ch,INT 67/AX=5DEAh (Table 02566) Values Cloaking port-trapping passalong address is called with: EAX = CS:IP of faulting instruction (unless executing in protected-mode ring 3) SS:EBX -> caller register structure (see #02559) check EFLAGS V86-mode bit for type CX = first two bytes of I/O instruction which was trapped DX = port to which I/O is being performed CF clear Return: CF clear if RM386 should perform I/O operation CF set if I/O should be skipped Note: RM386 skips the trapped I/O instruction, so the passalong handler should not modify the client CS:EIPTop
INT 2C P - Cloaking - TRAP I/O PORT AX = 002Eh DX = port number to trap Return: CF clear if successful CF set on error (port out of range or reserved) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=002Fh,AX=0030hTop
INT 2C PU - Cloaking - UNTRAP I/O PORT AX = 002Fh DX = port number for which to cancel trapping Return: CF clear if successful CF set on error (port out of range or reserved) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=002Eh,AX=0030hTop
INT 2C PU - Cloaking - GET TRAPPING STATE OF SPECIFIED PORT AX = 0030h DX = port number Return: CF clear if successful BX = current state (0000h not trapped, 0001h trapped) CF set on error (port out of range or reserved) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=002Eh,AX=002FhTop
INT 2C PU - RM386 v6.00 - BUG AX = 0031h Program: RM386 (RAM-MAN/386) is the memory manager included in Helix Software's Netroom Note: due to a fencepost error, RM386 v6.00 will branch unpredictably if invoked with this functionTop
INT 2C P - Cloaking v1.01 - ALLOCATE V86 CALLBACK AX = 0031h DX:EBX = CS:EIP of protected-mode routine to be invoked by callback Return: CF clear if successful EBX = CS:IP of V86-mode callback handler CF set on error SeeAlso: AX=0032hTop
INT 2C P - Cloaking v1.01 - FREE V86 CALLBACK AX = 0032h EBX = CS:IP of V86-mode callback handler Return: CF clear if successful CF set on error AX = error code 0005h invalid callback address 0006h callback already free SeeAlso: AX=0032hTop
INT 2C P - Cloaking v1.01 - REGISTER CLOAKING CLIENT AX = 0033h DS:EDX -> client registration structure (see #02567) Return: CF clear if successful CF set on error (linked list corrupt) SeeAlso: AX=0034h,#02778 at INT 2F/AX=4310h"Cloaking" Format of client registration structure: Offset Size Description (Table 02567) 00h PWORD link to next structure 06h PWORD link to previous structure 0Ch 2 BYTEs client version (major, minor) 0Eh 20 BYTEs client name 22h DWORD physical address of client start 26h DWORD client's total size in bytes Note: the link area should not be modified once the structure has been used for the registration callTop
INT 2C P - Cloaking v1.01 - UNREGISTER CLOAKING CLIENT AX = 0034h DS:EDX -> client registration structure (see #02567) Return: CF clear if successful CF set on error (linked list corrupt) Note: the client must unregister before freeing the XMS block containing its registration structure(s) SeeAlso: AX=0033h,#02778 at INT 2F/AX=4310h"Cloaking"Top
INT 2D - DOS 2+ - RESERVED Note: this vector is not used in DOS versions <= 6.00, and points at an IRET BUG: RM386 v6.00-6.02 (as distributed with Helix's Netroom v3.x) contains a stack bug in its protected-mode INT 2D handler which causes a crash when INT 2D is invoked from V86 modeTop
INT 2D - ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.6] AH = multiplex number AL = function 00h installation check 01h get private entry point 02h uninstall 03h request popup 04h determine chained interrupts 05h get hotkey list 06h get device-driver information 07h-0Fh reserved for future enhancements Return: AL = 00h (not implemented) other application-dependent other registers vary by function (also see individual entries below) Return: varies by function Notes: programs should not use fixed multiplex numbers; rather, a program should scan all multiplex numbers from 00h to FFh, remembering the first unused multiplex in case the program is not yet installed. For multiplex numbers which are in use, the program should compare the first 16 bytes of the signature string to determine whether it is already installed on that multiplex number. If not previously installed, it should use the first free multiplex number. functions other than 00h are not valid unless a program is installed on the selected multiplex number to be considered fully compliant with version 3.6 of the specification, programs must implement at least functions 00h, 02h (no resident uninstall code required), and 04h (return value 04h). TSRs that provide hotkeys with which the user can activate them must also implement function 05h. TSRs which provide DOS device drivers must also implement function 06h. The absolute minimum fully-compliant implementation has an overhead of 64 bytes (80 bytes with function 05h) plus 22 bytes per hooked interrupt (for the interrupt sharing protocol header and hook list entry). the signature string and description may be used by memory mappers to display the installed programs to be considered fully compliant, users of this specification must adhere to the IBM interrupt sharing protocol (see #02568), which will permit removal of TSRs in arbitrary order and interrupt handler reordering. All TSRs following this specification should be removable unless they are loaded from CONFIG.SYS, though they need not keep the code for removing themselves resident; it is acceptable for a separate program to perform the interrupt unhooking and memory-freeing steps of removal. A sample public-domain implementation including example TSRs and utility programs may be found in a separate package distributed as AMISLnnn.ZIP (AMISL092.ZIP as of this writing). Please let me know if you choose to follow this proposal. The signature and a list of the private API calls you use would be appreciated, as well. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h SeeAlso: INT 2D/AL=05h,INT 2D/AL=06h,INT 2F"NOTES" Format of interrupt sharing protocol interrupt handler entry point: Offset Size Description (Table 02568) 00h 2 BYTEs short jump to actual start of interrupt handler, immediately following this data block (EBh 10h) 02h DWORD address of next handler in chain 06h WORD signature 424Bh 08h BYTE EOI flag 00h software interrupt or secondary hardware interrupt handler 80h primary hardware interrupt handler (will issue EOI to interrupt controller) 09h 2 BYTEs short jump to hardware reset routine must point at a valid FAR procedure (may be just RETF) 0Bh 7 BYTEs reserved (0) by IBM for future expansion Note: when chaining to the prior handler, the interrupt handler must perform an indirect jump/call using the address at offset 02h in the ISP header. This permits another AMIS TSR to hook itself into the chain at a position other than as the first handler to receive an interrupt. SeeAlso: INT F1/AH=01h"Common ISDN API",INT F1/AH=06h"CAPI",#04068Top
INT 2D - AMIS v3.0+ - INSTALLATION CHECK AL = 00h AH = multiplex number for program Return: AL = 00h if free AL = FFh if multiplex number in use CX = binary version number (CH = major, CL = minor) DX:DI -> signature string (see #02569) identifying the program using the multiplex number SeeAlso: INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h,INT 2D/AL=05h SeeAlso: INT 2D/AL=06h Index: installation check;Alternate Multiplex Interrupt Specification Index: installation check;AMIS|installation check;FASTMOUS Index: installation check;SPELLER|installation check;Monitor Index: installation check;NOLPT|installation check;NOTE Index: installation check;RBkeyswp|installation check;SWITCHAR Index: installation check;VGABLANK|installation check;EATMEM Index: installation check;RECALL|installation check;XPTR2 Format of AMIS signature string: Offset Size Description (Table 02569) 00h 8 BYTEs blank-padded manufacturer's name (possibly abbreviated) 08h 8 BYTEs blank-padded product name 10h 64 BYTEs ASCIZ product description (optional, may be a single 00h) Note: it is not necessary to reserve a full 64 bytes for the description, just enough to store the actual ASCIZ string SeeAlso: #02570 (Table 02570) Values for AMIS signatures known to be in use: 'Byrial J' 'EKLAVO ' permits keyboard entry of Esperanto accented letters 'CoveSoft' 'Burnout+' shareware screen saver Burnout Plus 'Crynwr ' 'SPELLER ' TSR spelling-checker 'CPH1995 ' 'CDTSR ' resident CD-Audio player 'CPH1996 ' 'DSAPI ' 'CSJewell' 'Modula3L' Curtis Jewell's Modula-3 compiler (non-TSR) 'Cubbi...' 'ASCII...' Example ASCII code view/enter TSR by Sergey Zubkov 'Cubbi...' 'ScrnGrab' Example screen grabber by Sergey Zubkov 'DAISYCHA' 'INDRIVER' Advanced Parallel Port daisy chain driver (vendor name in product description field, if desired) (see also INT 2D/AL=DCh) 'DTown SD' 'DTU ' DTown Software Development's DTown Utilities (see also INT 2D/AL=20h) 'ECLIPSE ' 'PLUMP ' Eclipse Software's printer and plotter spooler 'GraySoft' 'GIPC ' GraySoft's Inter-Process Communications driver 'heathh ' 'Monitor ' 'Helge O ' TSRs by Helge Olav Helgesen 'IVALM SK' 'lmkey ' Russian keyboard driver by Sergey Khabarov 'IVALM SK' 'lmrus ' Russian screen driver by Sergey Khabarov 'J. Berry' 'RATSR ' RemoteAccess Network Manager workstation module 'JWB ' 'RAMLIGHT' James Birdsall's on-screen RAMdisk activity indicator 'M Better' 'iHPFS ' Marcus Better's HPFS filesystem driver for DOS 'M. Paul ' 'FREEVER ' DOS version-faking TSR by Matthias Paul 'Nildram ' 'ST ' Screen Thief graphics screen grabber 'NoBrain ' 'FlatReal' Flat real mode monitor by Sergei Shtylyov 'NoBrain ' 'Grabber ' Frame grabber drivers by Sergei Shtylyov 'NoBrain ' 'SqrModes' TSR providing some non-standard video modes by Sergei Shtylyov 'Pino Nav' 'ALTMENU ' activate any program's menu bar by pressing Alt key 'Pino Nav' 'Keybit ' Pino Navato's KEYBIT Lite Italian keyboard driver v4+ 'PowrQuot' 'CAPRILOG' 'PowrQuot' 'CAPRITSR' 'PowrQuot' 'CAPRIWIN' 'R-Ware ' 'dLite ' run-time data decompression TSR 'Ralf B ' 'disaXXYY' RBdisabl -- disable key scancode XX w/ shift states YY 'Ralf B ' 'DUALVGA ' dual-VGA support, screen blanker, and DPMS driver 'Ralf B ' 'FASTMOUS' example TSR included with sample AMIS library code 'Ralf B ' 'NoBreak ' disable Ctrl-@, Ctrl-C, and Ctrl-Break keys 'Ralf B ' 'NOLPT n ' example TSR -- turn LPTn into bit-bucket 'Ralf B ' 'NOTE ' example TSR -- popup note-taker 'Ralf B ' 'RBclock ' RBclock -- on-screen real-time clock 'Ralf B ' 'RBclockE' RBclock -- on-screen elapsed-time clock 'Ralf B ' 'RBdvorak' Dvorak keyboard mapping w/ opt Esc/~, LCtrl/CapsLk swap 'Ralf B ' 'RBkcount' display count of keystrokes on screen 'Ralf B ' 'RBkeyswp' RBkeyswap v3.0+ -- swap Esc/~ and LCtrl/CapsLock keys 'Ralf B ' 'RBnoboot' disable Ctrl-Alt-Del key combination 'Ralf B ' 'ShftCaps' require Shift-CapsLock to turn on CapsLock 'Ralf B ' 'ShftNumL' require Shift-NumLock to turn off NumLock 'Ralf B ' 'SWITCHAR' example TSR -- add switchar() support removed from DOS5 'Ralf B ' 'VGABLANK' VGA-only screen blanker 'Ralf B ' 'WINTAME ' yield CPU when program in Win95 DOS box is idle 'Sally IS' 'Mdisk ' removeable, resizeable RAMdisk 'Sally IS' 'Scr2Tex ' screen dumper with output in (La)Tex format 'SRT ' 'STOPBOOT' reboot preventer by Steve Talbot 'Thaco ' 'NEST ' Eirik Pedersen's programmer's delimiter matcher 'TifaWARE' 'EATMEM ' George A. Theall's public domain memory restrictor for testing programs (v1.1+) 'TifaWARE' 'RECALL ' public domain commandline editor and history (v1.2+) 'Todd ' 'XPTR2 ' PC-to-Transputer interface by Todd Radel 'WlkngOwl' 'NoiseSYS' NOISE.SYS random-number generator SeeAlso: #02569Top
INT 2D - AMIS v3.0+ - GET PRIVATE ENTRY POINT AL = 01h AH = multiplex number for program Return: AL = 00h if all API calls via INT 2D AL = FFh if entry point supported DX:BX -> entry point for bypassing interrupt chain Note: this function is not valid unless a program is installed on the specified multiplex number; use INT 2D/AL=00h to check SeeAlso: INT 2D/AL=00h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h,INT 2D/AL=05h SeeAlso: INT 2D/AL=06h Index: entry point;Alternate Multiplex Interrupt|entry point;AMISTop
INT 2D - AMIS v3.0+ - UNINSTALL AL = 02h AH = multiplex number for program DX:BX = return address for successful uninstall (may be ignored by TSR) Return: AL = status 00h not implemented (makes TSR non-compliant with specification) 01h unsuccessful 02h can not uninstall yet, will do so when able 03h safe to remove, but no resident uninstaller (TSR still enabled) BX = segment of memory block with resident code 04h safe to remove, but no resident uninstaller (TSR now disabled) BX = segment of memory block with resident code 05h not safe to remove now, try again later 06h disabled, but can not be removed from memory because loaded from CONFIG.SYS 07h safe to remove, but no resident device-driver uninstaller. Caller must unlink device drivers from DOS device chain as well as unhooking interrupts and freeing memory BX = segment of memory block with resident code FFh successful return at DX:BX with AX destroyed if successful and TSR honors specific return address Note: this function is not valid unless a program is installed on the specified multiplex number; use INT 2D/AL=00h to check SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=03h,INT 2D/AL=04h,INT 2D/AL=05h SeeAlso: INT 2D/AL=06h Index: uninstall;Alternate Multiplex Interrupt Specification|uninstall;AMISTop
INT 2D - AMIS v3.0+ - REQUEST POP-UP AL = 03h AH = multiplex number for program Return: AL = status 00h not implemented or TSR is not a pop-up 01h can not pop up at this time, try again later 02h can not pop up yet, will do so when able 03h already popped up 04h unable to pop up, user intervention required BX = standard reason code 0000h unknown failure 0001h interrupt chain passes through memory which must be swapped out to pop up 0002h swap-in failed CX = application's reason code if nonzero FFh TSR popped up and was exited by user BX = return value 0000h no return value 0001h TSR unloaded 0002h-00FFh reserved 0100h-FFFFh application-dependent Note: this function is not valid unless a program is installed on the specified multiplex number; use INT 2D/AL=00h to check SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=04h,INT 2D/AL=05h SeeAlso: INT 2D/AL=06hTop
INT 2D - AMIS v3.0+ - DETERMINE CHAINED INTERRUPTS AL = 04h AH = multiplex number for program BL = interrupt number (except 2Dh) Return: AL = status 00h not implemented (makes TSR non-compliant with specification) 01h (obsolete) unable to determine 02h (obsolete) interrupt hooked 03h (obsolete) interrupt hooked, address returned DX:BX -> TSR's interrupt BL handler 04h list of hooked interrupts returned DX:BX -> interrupt hook list (see #02571) FFh interrupt not hooked Notes: BL is ignored if the TSR returns AL=04h; in that case, the caller needs to scan the return list rather than making additional calls to this function. If the return is not 00h or 04h, then the caller must cycle through the remaining interrupt numbers it wishes to check. return values 01h through 03h may not be used by AMIS v3.6-compliant programs; they are included here solely for compatibility with version 3.3, though they were probably never used in any implementation for return values 01h through 03h, since INT 2D is known to be hooked, the resident code need not test for BL=2Dh (to minimize its size), and the return value is therefore undefined in that case. this function is not valid unless a program is installed on the specified multiplex number; use INT 2D/AL=00h to check SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=05h SeeAlso: INT 2D/AL=06h Format of AMIS interrupt hook list [array]: Offset Size Description (Table 02571) 00h BYTE interrupt number (last entry in array is 2Dh) 01h WORD offset within hook list's segment of the interrupt handler this will point at the initial short jump of the interrupt sharing protocol header (see #02568) SeeAlso: #02572Top
INT 2D - AMIS v3.5+ - GET HOTKEYS AL = 05h AH = multiplex number for program Return: AL = status 00h not implemented FFh supported DX:BX -> hotkey list (see #02572) Notes: this function is not valid unless a program is installed on the specified multiplex number; use INT 2D/AL=00h to check programs which provide hotkeys are required to provide this function to be fully compliant with this specification SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h SeeAlso: INT 2D/AL=06h Format of AMIS hotkey list: Offset Size Description (Table 02572) 00h BYTE type of hotkey checking (see #02573) 01h BYTE number of hotkeys (may be zero if TSR can disable hotkeys) 02h 6N BYTEs array of hotkey definitions (one per hotkey, first should be primary hotkey) Offset Size Description 00h BYTE hotkey scan code (00h/80h if shift states only) hotkey triggers on release if bit 7 set 01h WORD required shift states (see #02574) 03h WORD disallowed shift states (see #02574) 05h BYTE hotkey flags (see #02575) Notes: except for bit 7, the shift states correspond exactly to the return values from INT 16/AH=12h. A set bit in the required states word indicates that the corresponding shift state must be active when the hotkey's scan code is received for the hotkey to be recognized; a clear bit means that the corresponding state may be ignored. A set bit in the disallowed shift states word indicates that the corresponding shift state must be inactive. for the disallowed-states word, if one of the "either" bits is set, then both the corresponding left bit and right bit must be set examples: Ctrl-Alt-Del monitoring: 53h 000Ch 0003h 06h Alt-key tap (DESQview): B8h 0000h 0007h 08h Shf-Shf-N (NOTE.COM): 31h 0003h 000Ch 00h Index: hotkeys;AMIS SeeAlso: #00006 Bitfields for type of AMIS hotkey checking: Bit(s) Description (Table 02573) 0 checks before chaining INT 09 1 checks after chaining INT 09 2 checks before chaining INT 15/AH=4Fh 3 checks after chaining INT 15/AH=4Fh 4 checks on INT 16/AH=00h,01h,02h 5 checks on INT 16/AH=10h,11h,12h 6 checks on INT 16/AH=20h,21h,22h 7 reserved (0) SeeAlso: #02572 Bitfields for AMIS shift states: Bit(s) Description (Table 02574) 0 right shift pressed 1 left shift pressed 2 either control key pressed 3 either Alt key pressed 4 ScrollLock active 5 NumLock active 6 CapsLock active 7 either shift key pressed 8 left control key pressed 9 left Alt key pressed 10 right control key pressed 11 right Alt key pressed 12 ScrollLock pressed 13 NumLock pressed 14 CapsLock pressed 15 SysReq key pressed Notes: if bit 2 is set, either control key may be pressed for the hotkey; if bits 8 and 10 are both set, then both control keys must be pressed. Similarly for bits 3 and 9/11, as well as 7 and 0/1. the SysReq key is often labeled SysRq SeeAlso: #02572,#02575 Bitfields for AMIS hotkey flags: Bit(s) Description (Table 02575) 0 hotkey chained before processing 1 hotkey chained after processing 2 others should pass through this hotkey so that it can be monitored 3 hotkey will not activate if other keys pressed/released before hotkey press is completed 4 this key is remapped into some other key 5 this key is conditionally chained (sometimes passed on, sometimes swallowed) 6-7 reserved (0) SeeAlso: #02572,#02574Top
INT 2D - AMIS v3.6 - GET DEVICE-DRIVER INFORMATION AL = 06h AH = multiplex number for program Return: AL = number of device driver headers supplied by prog. AH = device-driver flags (see #02576) DX:BX -> first device driver header (see #01646) Program: AMIS is the Alternate Multiplex Interrupt Specification promulgated by Ralf Brown Notes: if AL=00h, AH,BX,DX are meaningless and may be destroyed this function is not valid unless a program is installed on the specified multiplex number; use INT 2D/AL=00h to check programs which provide device drivers are required to support this function to be considered fully compliant with v3.6+ of the specification SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h SeeAlso: INT 2D/AL=05h Bitfields for AMIS device-driver information flags: Bit(s) Description (Table 02576) 0 program loaded from CONFIG.SYS, and thus can not be removed from memory (leave clear if unable to determine) 1 device driver headers have not been linked into DOS device chain 2 reentrant device driver(s)Top
INT 2D - RATSR 2.0+ - GET STATUS AL = 10h AH = AMIS multiplex number for RATSR Return: AL = status 01h listening (no connection) 02h receiving \ 03h sending > station being monitored 04h initializing receive / AH = keyboard lock status (00h unlocked, 01h locked) Program: RATSR is a utility by James Berry provided with RemoteAccess/Professional, a commercial bulletin board system, that allows remote control of a station over a network SeeAlso: INT 2D"AMIS"Top
INT 2D - dLite 1.0+ - GET PARAMETER BLOCK ADDRESS AL = 10h AH = AMIS multiplex number for dLite Return: CF clear if successful ES:BX -> parameter block (see #02577) CF set on error Program: dLite is a shareware TSR by Rainer Schuetze which transparently expands compressed files when they are read SeeAlso: AL=11h"dLite",AL=12h"dLite",INT 21/AX=FEDCh"PCMANAGE" Format of dLite parameter block: Offset Size Description (Table 02577) 00h BYTE TSR flags (see #02578) 01h WORD maximum number of programs needing original filesize 03h WORD current number of programs needing original filesize 05h WORD maximum number of files that can be handled by dLite (should be the same as FILES= in CONFIG.SYS) 07h WORD offset (in the same segment as the parameter block) of the table of programs needing the original filesize (8 bytes each, without path or extension, uppercase, and zero \ terminated if shorter than 8 bytes) Bitfields for dLite TSR flags: Bit(s) Description (Table 02578) 0 deny FCB access 1 dLite sleeping rather than activated 2 always indicate original filesize when reading directory entries, rather than only for specified programs 3-7 reserved SeeAlso: #02577Top
INT 2D - Burnout Plus v3.00 - GET STATE/CONTROL INFORMATION AL = 10h AH = AMIS multiplex number for Burnout Plus Return: AL = 01h BX = Burnout Plus status (see #02579) CX = record of features loaded (see #02580) ES:DI -> Burnout Plus control structure (see #02581) Program: Burnout Plus is a DOS screen saver from Cove Software SeeAlso: INT 14/AX=AA01h,INT 2D"AMIS" Index: screen saver;Burnout Plus Bitfields for Burnout Plus status: Bit(s) Description (Table 02579) 0 screen is blanked 1 MS Windows is active (Burnout Plus deactivated) 2-15 reserved Bitfields for Burnout Plus features loaded/features enabled: Bit(s) Description (Table 02580) 0 mouse activity monitor 1 passkey support 2 password support 3 continuous clear 4 software blanking 5 video activity monitor 6 disk activity monitor 7 activating keystroke suppression SeeAlso: #02581 Format of Burnout Plus control structure: Offset Size Description (Table 02581) 00h BYTE size of structure in bytes 01h WORD Burnout Plus version 03h WORD screen blanking reset count in clock ticks 05h WORD current countdown value in clock ticks 07h BYTE type of timeout specification 08h BYTE instant-blank hotkey 09h WORD extended status information (see #02582) the bits for password, passkey, and software blanking are ignored and cannot be enabled or disabled externally 0Bh WORD features enabled (see #02580) Note: all fields except the first two may be modified by external programs to affect the operation of Burnout Plus Index: hotkeys;Burnout Plus Bitfields for extended Burnout Plus status information: Bit(s) Description (Table 02582) 0 Burnout Plus disabled 1 force screen to blank on next clock tick 2 restore screen if currently blanked 3-15 reserved Note: 1 and 2 are automatically cleared by Burnout Plus after blanking or restoring the screen SeeAlso: #02581Top
INT 2D U - Screen Thief v1.00 - FREE HIGH MEMORY BUFFERS AL = 10h AH = AMIS multiplex number for Screen Thief Return: nothing Program: Screen Thief is a graphics screen grabber Note: releases any code and data stored in EMS, DOS UMBs, or XMS UMBs, but does not release the low-memory stub; this may be used to effect a partial uninstall if INT 2D/AL=02h fails SeeAlso: INT D8"Screen Thief"Top
INT 2D U - RAMLIGHT v1.0 - GET MONITORING INFORMATION AL = 10h AH = AMIS multiplex number for RAMLIGHT Return: ES:BX -> array of fake device driver headers used in monitoring CX = number of drives being monitored???Top
INT 2D - DTown Utilities v1.40+ - EXTENDED API INSTALLATION CHECK AL = 10h Return: AL = FFh BL = extended API availability (00h no, 01h API is loaded) SeeAlso: INT 2D/AL=11h"DTown",INT 2D/AL=20h,INT 2D/AL=50hTop
INT 2D - CDTSR - GET INTERNAL VARIABLE TABLE AL = 10h AH = AMIS multiplex number for CDTSR Return: CX:DX -> CDTSR internal variable structure (see #02583) Program: CDTSR is a resident audio CD player by Colin Hill SeeAlso: INT 2D/AL=11h"CDTSR",INT 2D/AL=12h"CDTSR",INT 2D/AL=13h"CDTSR" Format of CDTSR internal variable structure: Offset Size Description (Table 02583) 00h BYTE hotkey scan code (see #00006) 01h BYTE hotkey shift states 02h BYTE flag: repeat 03h BYTE flag: custom repeat 04h BYTE flag: background polling 05h DWORD (read-only) internal timing variable 09h DWORD current track play position, in frames 0Dh DWORD current disk play position, in frames 11h BYTE number of entries in track program 12h BYTE index into track program currently playing (FFh if not playing) 13h 100 BYTEs track program (each byte contains one track number) 77h BYTE saved cursor end scan line 78h BYTE saved cursor start scan line 79h BYTE currently playing track 7Ah BYTE CD driver media-change flag 7Bh WORD video base segment during last popup 7Dh WORD video page offset during last popup 7Fh BYTE currently-selected track 80h DWORD begin of custom repeat, in frames 84h DWORD end of custom repeat, in frames 88h WORD track program index of top list itemTop
INT 2D - KEYBIT Lite v5+ - GET POINTER TO STATUS BYTE AL = 10h AH = AMIS multiplex number for KEYBIT Lite Return: DX:BX -> status byte (see #02584) Program: KEYBIT Lite is an enhanced Italian keyboard driver by Pino Navato. SeeAlso: INT 2D"AMIS" Bitfields for KEYBIT Lite status byte: Bit(s) Description (Table 02584) 7 KEYBIT Lite active 6 E-mail support active 5-0 reserved Notes: E-mail support is one of the original features of KEYBIT Lite. It is the automatic conversion of the 8-bits ASCII chars produced by some keys available on Italian keyboards to couples of 7-bits chars. Message editors should always enable e-mail support, they should also restore its original status before exiting. The user can change both status bits by hotkeys.Top
INT 2D - ALTMENU - GET POINTER TO KEY CODE AL = 10h AH = AMIS multiplex number for signature 'Pino Nav' 'ALTMENU ' Return: DX:BX -> WORD key code to insert in keyboard buffer on Alt-key tap Program: Pino Navato's freeware ALTMENU permits activating the menu bar of any program by pressing the Alt key alone. Notes: The value in the key code word will be returned in AX by a call to INT 16/AH=00h after the Alt key is pressed by itself ALTMENU may be disabled by setting the key code equal to 0000h SeeAlso: INT 16/AH=00h,INT 2D"AMIS"Top
INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET ORIGINAL SIZE AL = 11h AH = AMIS multiplex number for dLite BX = file handle Return: CF clear if successful DX:AX = size of uncompressed file CF set on error (not dPressed file) SeeAlso: AL=10h"dLite",AL=12h"dLite"Top
INT 2D - DTown Utilities v1.40+ - UTILITY INSTALLATION CHECK AL = 11h BL = function 00h get number of installed utilities Return: BL = number of utilities 01h get installed utilities DX:DI -> buffer containing one byte for each utility Return: DX:DI buffer filled with flags (0=no,1=yes) indicating whether the corresponding utility is loaded Return: AL = FFh if supported Note: this function is only available if the extended API has been installed in the resident portion SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20hTop
INT 2D - CDTSR - REPROGRAM CDTSR AL = 11h AH = AMIS multiplex number for CDTSR Return: nothing Program: CDTSR is a resident audio CD player by Colin Hill Desc: reprograms CDTSR based on the values in the internal variable structure (see #02583), which may have been changed by an application SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=12h"CDTSR",INT 2D/AL=13h"CDTSR"Top
INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET COMPRESSED SIZE AL = 12h AH = AMIS multiplex number for dLite BX = file handle Return: CF clear if successful DX:AX = size of compressed file CF set on error (not dPressed file) SeeAlso: AL=10h"dLite",AL=11h"dLite"Top
INT 2D - CDTSR - DISABLE POPUP AL = 12h AH = AMIS multiplex number for CDTSR Return: nothing SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=11h"CDTSR",INT 2D/AL=13h"CDTSR"Top
INT 2D - FREEVER - GET ORIGINAL DOS VERSION INFO AL = 12h AH = AMIS multiplex number for FREEVER Return: AL = FFh if successful BH = major DOS version BL = minor DOS version CH = DOS version flag CL = OEM number DH = major DR DOS version number (FFh if unknown) DL = minor DR DOS version number (FFh if unknown) Program: FREEVER is an AMIS-conformant freeware DOS version-faking TSR similar to SETVER for any DOS-compatible OS, written by Matthias Paul SeeAlso: INT 2D/AL=13h"FREEVER",INT 2D/AL=14h"FREEVER",INT 2D/AL=17h"FREEVER"Top
INT 2D - CDTSR - ENABLE POPUP AL = 13h AH = AMIS multiplex number for CDTSR Return: nothing Program: CDTSR is a resident audio CD player by Colin Hill SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=11h"CDTSR",INT 2D/AL=12h"CDTSR"Top
INT 2D - FREEVER - SET VERSION NUMBERS AL = 13h AH = AMIS multiplex number for FREEVER BH = new major DOS version BL = new minor DOS version CH = new DOS version flag CL = new DOS revision number DH = new OEM number SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=15h"FREEVER",INT 2D/AL=17h"FREEVER"Top
INT 2D - FREEVER - ENABLE TSR AL = 14h AH = AMIS multiplex number for FREEVER Return: AL = FFh if successful SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=15h"FREEVER",INT 2D/AL=16h"FREEVER"Top
INT 2D - FREEVER - DISABLE TSR AL = 15h AH = AMIS multiplex number for FREEVER Return: AL = FFh if successful SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=14h"FREEVER",INT 2D/AL=16h"FREEVER"Top
INT 2D - FREEVER - GET TSR STATUS AL = 16h AH = AMIS multiplex number for FREEVER Return: AL = FFh if successful BL = status 01h resident and active 02h resident and inactive SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=15h"FREEVER",INT 2D/AL=17h"FREEVER"Top
INT 2D - FREEVER - GET TaskMAX STATUS AT INSTALLATION AL = 17h AH = AMIS multiplex number for FREEVER Return: AL = FFh if successful BL = status 00h if TaskMAX not loaded before SETDRVER FFh if TaskMAX was loaded before SETDRVER Program: FREEVER is an AMIS-conformant freeware DOS version-faking TSR similar to SETVER for any DOS-compatible OS, written by Matthias Paul SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=14h"FREEVER",INT 2D/AL=16h"FREEVER"Top
INT 2D - DTown Utilities v1.40+ - GET POP-UP HANDLER ADDRESS AL = 20h Return: AL = FFh if available DX:DI -> DTU popup-handler Program: DTown Utilities is a freeware programmer's utility TSR by Jeroen van Disseldorp Note: this function is only available if the extended API has been installed in the resident portion SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=21h,INT 2D/AL=50h,INT 2D/AL=51h SeeAlso: INT 03"DTown"Top
INT 2D - DTown Utilities v1.40+ - POP UP AL = 21h BL = which utility to bring up 00h active utility 01h help screen 0Ah ASCII table 0Bh memory view 0Ch CPU status 0Dh calculator 0Eh miscellaneous 0Fh file viewer 10h disassembler Return: AL = status 00h already active FFh popped up successfully BX = 0000h Note: this function is only available if the extended API has been installed in the resident portion SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20h,INT 2D/AL=50hTop
INT 2D - DTown Utilities v1.40+ - MEMORY VIEW SET ADDRESS AL = 50h CX:DX = new address for start of memory view utility's display Note: this function is only available if the extended API has been installed in the resident portion Return: AL = FFh if supported SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20h,INT 2D/AL=21h,INT 2D/AL=51hTop
INT 2D - DTown Utilities v1.40+ - MEMORY VIEW SET REFERENCE
AL = 51h
BL = reference ("bookmark") number
CX:DX = new address for reference
Return: AL = status
00h invalid index
FFh reference set
Note: this function is only available if the extended API has been installed
in the resident portion
Program: DTown Utilities is a shareware programmer's utility TSR by Jeroen van
Disseldorp
SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20h,INT 2D/AL=50h
Top
INT 2D C - DAISY.SYS - BROADCAST: CHAIN RESCANNED AL = DCh AH = AMIS multiplex number for signature 'DAISYCHA' 'INDRIVER' DL = LPT Port Rescanned Program: DAISY.SYS is a daisy chain manager for parallel port peripherals conforming to the IEEE 1284.3 Committee's daisy chain specification. Desc: This Broadcast is sent whenever daisy chain IDs are reassigned to warn parallel port device drivers that their daisy chain ID may have been changed. Note: This function is a callout from DAISY.SYS, NOT a call into DAISY.SYS SeeAlso: INT 17/AX=0200h"Enhanced Parallel Port",#00633,#02570Top
INT 2E U - DOS 2+ - PASS COMMAND TO COMMAND INTERPRETER FOR EXECUTION DS:SI -> commandline to execute (see #02585) Return: all registers except CS:IP destroyed AX = status (4DOS v4.0) 0000h successful FFFFh error before processing command (not enough memory, etc) other error number returned by command Notes: this call allows execution of arbitrary commands (including COMMAND.COM internal commands) without loading another copy of COMMAND.COM if COMMAND.COM is the user's command interpreter, the primary copy executes the command; this allows the master environment to be modified by issuing a "SET" command, but changes in the master environment will not become effective until all programs descended from the primary COMMAND.COM terminate since COMMAND.COM processes the string as if typed from the keyboard, the transient portion needs to be present, and the calling program must ensure that sufficient memory to load the transient portion can be allocated by DOS if necessary results are unpredictable if invoked by a program run from a batch file because this call is not reentrant and COMMAND.COM uses the same internal variables when processing a batch file hooked but ignored by 4DOS v3.0 COMMAND.COM replacement unless SHELL2E has been loaded the MS-DOS 5 Programmer's Reference calls this "Reload Transient" Format of DOS commandline: Offset Size Description (Table 02585) 00h BYTE length of command string, not counting trailing CR 01h var command string N BYTE 0Dh (CR)Top
INT 2E UP - Windows NT - NATIVE API EAX = function number (see #02586) EDX = address of parameter block Return: ??? (Table 02586) Values for Windows NT NTOS function number: 000h AcceptConnectPort (24 bytes of parameters) 001h AccessCheck (32 bytes of parameters) 002h AccessCheckAndAuditAlarm (44 bytes of parameters) 003h AddAtom (8 bytes of parameters) 004h AdjustGroupsToken (24 bytes of parameters) 005h AdjustPrivilegesToken (24 bytes of parameters) 006h AlertResumeThread (8 bytes of parameters) 007h AlertThread (4 bytes of parameters) 008h AllocateLocallyUniqueId (4 bytes of parameters) 009h AllocateUuids (12 bytes of parameters) 00Ah AllocateVirtualMemory (24 bytes of parameters) 00Bh CallbackReturn (12 bytes of parameters) 00Ch CancelIoFile (8 bytes of parameters) 00Dh CancelTimer (8 bytes of parameters) 00Eh ClearEvent (4 bytes of parameters) 00Fh Close (4 bytes of parameters) 010h CloseObjectAuditAlarm (12 bytes of parameters) 011h CompleteConnectPort (4 bytes of parameters) 012h ConnectPort (32 bytes of parameters) 013h Continue (8 bytes of parameters) 014h CreateDirectoryObject (12 bytes of parameters) 015h CreateEvent (20 bytes of parameters) 016h CreateEventPair (12 bytes of parameters) 017h CreateFile (44 bytes of parameters) 018h CreateIoCompletion (16 bytes of parameters) 019h CreateKey (28 bytes of parameters) 01Ah CreateMailslotFile (32 bytes of parameters) 01Bh CreateMutant (16 bytes of parameters) 01Ch CreateNamedPipeFile (56 bytes of parameters) 01Dh CreatePagingFile (16 bytes of parameters) 01Eh CreatePort (20 bytes of parameters) 01Fh CreateProcess (32 bytes of parameters) 020h CreateProfile (36 bytes of parameters) 021h CreateSection (28 bytes of parameters) 022h CreateSemaphore (20 bytes of parameters) 023h CreateSymbolicLinkObject (16 bytes of parameters) 024h CreateThread (32 bytes of parameters) 025h CreateTimer (16 bytes of parameters) 026h CreateToken (52 bytes of parameters) 027h DelayExecution (8 bytes of parameters) 028h DeleteAtom (4 bytes of parameters) 029h DeleteFile (4 bytes of parameters) 02Ah DeleteKey (4 bytes of parameters) 02Bh DeleteObjectAuditAlarm (12 bytes of parameters) 02Ch DeleteValueKey (8 bytes of parameters) 02Dh DeviceIoControlFile (40 bytes of parameters) 02Eh DisplayString (4 bytes of parameters) 02Fh DuplicateObject (28 bytes of parameters) 030h DuplicateToken (24 bytes of parameters) 031h EnumerateKey (24 bytes of parameters) 032h EnumerateValueKey (24 bytes of parameters) 033h ExtendSection (8 bytes of parameters) 034h FindAtom (8 bytes of parameters) 035h FlushBuffersFile (8 bytes of parameters) 036h FlushInstructionCache (12 bytes of parameters) 037h FlushKey (4 bytes of parameters) 038h FlushVirtualMemory (16 bytes of parameters) 039h FlushWriteBuffer (no parameters) 03Ah FreeVirtualMemory (16 bytes of parameters) 03Bh FsControlFile (40 bytes of parameters) 03Ch GetContextThread (8 bytes of parameters) 03Dh GetPlugPlayEvent (16 bytes of parameters) 03Eh GetTickCount (no parameters) 03Fh ImpersonateClientOfPort (8 bytes of parameters) 040h ImpersonateThread (12 bytes of parameters) 041h InitializeRegistry (4 bytes of parameters) 042h ListenPort (8 bytes of parameters) 043h LoadDriver (4 bytes of parameters) 044h LoadKey (8 bytes of parameters) 045h LoadKey2 (12 bytes of parameters) 046h LockFile (40 bytes of parameters) 047h LockVirtualMemory (16 bytes of parameters) 048h MakeTemporaryObject (4 bytes of parameters) 049h MapViewOfSection (40 bytes of parameters) 04Ah NotifyChangeDirectoryFile (36 bytes of parameters) 04Bh NotifyChangeKey (40 bytes of parameters) 04Ch OpenDirectoryObject (12 bytes of parameters) 04Dh OpenEvent (12 bytes of parameters) 04Eh OpenEventPair (12 bytes of parameters) 04Fh OpenFile (24 bytes of parameters) 050h OpenIoCompletion (12 bytes of parameters) 051h OpenKey (12 bytes of parameters) 052h OpenMutant (12 bytes of parameters) 053h OpenObjectAuditAlarm (48 bytes of parameters) 054h OpenProcess (16 bytes of parameters) 055h OpenProcessToken (12 bytes of parameters) 056h OpenSection (12 bytes of parameters) 057h OpenSemaphore (12 bytes of parameters) 058h OpenSymbolicLinkObject (12 bytes of parameters) 059h OpenThread (16 bytes of parameters) 05Ah OpenThreadToken (16 bytes of parameters) 05Bh OpenTimer (12 bytes of parameters) 05Ch PlugPlayControl (16 bytes of parameters) 05Dh PrivilegeCheck (12 bytes of parameters) 05Eh PrivilegedServiceAuditAlarm (20 bytes of parameters) 05Fh PrivilegeObjectAuditAlarm (24 bytes of parameters) 060h ProtectVirtualMemory (20 bytes of parameters) 061h PulseEvent (8 bytes of parameters) 062h QueryInformationAtom (20 bytes of parameters) 063h QueryAttributesFile (8 bytes of parameters) 064h QueryDefaultLocale (8 bytes of parameters) 065h QueryDirectoryFile (44 bytes of parameters) 066h QueryDirectoryObject (28 bytes of parameters) 067h QueryEaFile (36 bytes of parameters) 068h QueryEvent (20 bytes of parameters) 069h QueryFullAttributesFile (8 bytes of parameters) 06Ah QueryInformationFile (20 bytes of parameters) 06Bh QueryIoCompletion (20 bytes of parameters) 06Ch QueryInformationPort (20 bytes of parameters) 06Dh QueryInformationProcess (20 bytes of parameters) 06Eh QueryInformationThread (20 bytes of parameters) 06Fh QueryInformationToken (20 bytes of parameters) 070h QueryIntervalProfile (8 bytes of parameters) 071h QueryKey (20 bytes of parameters) 072h QueryMultipleValueKey (24 bytes of parameters) 073h QueryMutant (20 bytes of parameters) 074h QueryObject (20 bytes of parameters) 075h QueryOleDirectoryFile (44 bytes of parameters) 076h QueryPerformanceCounter (8 bytes of parameters) 077h QuerySection (20 bytes of parameters) 078h QuerySecurityObject (20 bytes of parameters) 079h QuerySemaphore (20 bytes of parameters) 07Ah QuerySymbolicLinkObject (12 bytes of parameters) 07Bh QuerySystemEnvironmentValue (16 bytes of parameters) 07Ch QuerySystemInformation (16 bytes of parameters) 07Dh QuerySystemTime (4 bytes of parameters) 07Eh QueryTimer (20 bytes of parameters) 07Fh QueryTimerResolution (12 bytes of parameters) 080h QueryValueKey (24 bytes of parameters) 081h QueryVirtualMemory (24 bytes of parameters) 082h QueryVolumeInformationFile (20 bytes of parameters) 083h QueueApcThread (20 bytes of parameters) 084h RaiseException (12 bytes of parameters) 085h RaiseHardError (24 bytes of parameters) 086h ReadFile (36 bytes of parameters) 087h ReadFileScatter (36 bytes of parameters) 088h ReadRequestData (24 bytes of parameters) 089h ReadVirtualMemory (20 bytes of parameters) 08Ah RegisterThreadTerminatePort (4 bytes of parameters) 08Bh ReleaseMutant (8 bytes of parameters) 08Ch ReleaseSemaphore (12 bytes of parameters) 08Dh RemoveIoCompletion (20 bytes of parameters) 08Eh ReplaceKey (12 bytes of parameters) 08Fh ReplyPort (8 bytes of parameters) 090h ReplyWaitReceivePort (16 bytes of parameters) 091h ReplyWaitReplyPort (8 bytes of parameters) 092h RequestPort (8 bytes of parameters) 093h RequestWaitReplyPort (12 bytes of parameters) 094h ResetEvent (8 bytes of parameters) 095h RestoreKey (12 bytes of parameters) 096h ResumeThread (8 bytes of parameters) 097h SaveKey (8 bytes of parameters) 098h SetIoCompletion (20 bytes of parameters) 099h SetContextThread (8 bytes of parameters) 09Ah SetDefaultHardErrorPort (4 bytes of parameters) 09Bh SetDefaultLocale (8 bytes of parameters) 09Ch SetEaFile (16 bytes of parameters) 09Dh SetEvent (8 bytes of parameters) 09Eh SetHighEventPair (4 bytes of parameters) 09Fh SetHighWaitLowEventPair (4 bytes of parameters) 0A0h ??? (??? bytes of parameters) 0A1h SetInformationFile (20 bytes of parameters) 0A2h SetInformationKey (16 bytes of parameters) 0A3h SetInformationObject (16 bytes of parameters) 0A4h SetInformationProcess (16 bytes of parameters) 0A5h SetInformationThread (16 bytes of parameters) 0A6h SetInformationToken (16 bytes of parameters) 0A7h SetIntervalProfile (8 bytes of parameters) 0A8h SetLdtEntries (24 bytes of parameters) 0A9h SetLowEventPair (4 bytes of parameters) 0AAh SetLowWaitHighEventPair (4 bytes of parameters) 0ABh ??? (??? bytes of parameters) 0ACh SetSecurityObject (12 bytes of parameters) 0ADh SetSystemEnvironmentValue (8 bytes of parameters) 0AEh SetSystemInformation (12 bytes of parameters) 0AFh SetSystemPowerState (12 bytes of parameters) 0B0h SetSystemTime (8 bytes of parameters) 0B1h SetTimer (28 bytes of parameters) 0B2h SetTimerResolution (12 bytes of parameters) 0B3h SetValueKey (24 bytes of parameters) 0B4h SetVolumeInformationFile (20 bytes of parameters) 0B5h ShutdownSystem (4 bytes of parameters) 0B6h SignalAndWaitForSingleObject (16 bytes of parameters) 0B7h StartProfile (4 bytes of parameters) 0B8h StopProfile (4 bytes of parameters) 0B9h SuspendThread (8 bytes of parameters) 0BAh SystemDebugControl (24 bytes of parameters) 0BBh TerminateProcess (8 bytes of parameters) 0BCh TerminateThread (8 bytes of parameters) 0BDh TestAlert (no parameters) 0BEh UnloadDriver (4 bytes of parameters) 0BFh UnloadKey (4 bytes of parameters) 0C0h UnlockFile (20 bytes of parameters) 0C1h UnlockVirtualMemory (16 bytes of parameters) 0C2h UnmapViewOfSection (8 bytes of parameters) 0C3h VdmControl (8 bytes of parameters) 0C4h WaitForMultipleObjects (20 bytes of parameters) 0C5h WaitForSingleObject (12 bytes of parameters) 0C6h WaitHighEventPair (4 bytes of parameters) 0C7h WaitLowEventPair (4 bytes of parameters) 0C8h WriteFile (36 bytes of parameters) 0C9h WriteFileGather (36 bytes of parameters) 0CAh WriteRequestData (24 bytes of parameters) 0CBh WriteVirtualMemory (20 bytes of parameters) 0CCh W32Call (20 bytes of parameters) 0CDh CreateChannel (8 bytes of parameters) 0CEh ListenChannel (8 bytes of parameters) 0CFh OpenChannel (8 bytes of parameters) 0D0h ReplyWaitSendChannel (12 bytes of parameters) 0D1h SendWaitReplyChannel (16 bytes of parameters) 0D2h SetContextChannel (4 bytes of parameters) 0D3h YieldExecution (no parameters)Top
INT 2E - 4DOS v2.x-3.03 SHELL2E.COM - UNINSTALL BX = E22Eh DS:SI -> zero byte Return: if successful, SHELL2E terminates itself with INT 21/AH=4ChTop
INT 2F - Multiplex - NOTES AH = identifier of program which is to handle the interrupt 00h-3Fh reserved for IBM (for DOS) 40h-7Fh reserved for Microsoft (for DOS) 80h-B7h reserved for IBM B8h-BFh reserved for networks C0h-FFh reserved for applications AL is the function code This is a general mechanism for verifying the presence of a TSR and communicating with it. When searching for a free identifier code for AH using the installation check (AL=00h), the calling program should set BX/CX/DX to 0000h and must not depend on any registers other than CS:IP and SS:SP to be valid on return, since numerous programs now use additional registers on input and/or output for the installation check. Notes: Since the multiplex chain is growing so long, and beginning to experience multiplex number collisions, I have proposed an alternate multiplex interrupt on INT 2D. If you decide to use the alternate multiplex, please let me know. DOS and some other programs return values in the flags register, so any TSR which chains by calling the previous handler rather than jumping to it should ensure that the returned flags are preserved and passed back to the original caller SeeAlso: INT 2D"ALTERNATE MULTIPLEX"Top
INT 2F - BMB Compuscience Canada Utilities Interface - INSTALLATION CHECK AH = xx (dynamically assigned based upon a search for a multiplex number which doesn't answer installed) AL = 00h installation check ES:DI = EBEBh:BEBEh Return: AL = 00h not installed 01h not installed, not OK to install FFh installed; if ES:DI was EBEBh:BEBEh on entry, ES:DI will point to a string of the form 'MMMMPPPPPPPPvNNNN' where MMMM is a short form of the manufacturer's name, PPPPPPPP is a product name and NNNN is the product's version numberTop
INT 2F - Ross Wentworth's Turbo Pascal POPUP LIBRARY AH = programmer-selected multiplex number AL = function 00h installation check Return: AL = FFh if installed 01h get TSR interrupt vectors Return: DX:AX -> vector table (see #02587) 02h get TSR code segment Return: AX = code segment for all interrupt handlers 03h call user exit routine and release TSR's memory 04h get signature string Return: DX:AX -> counted string containing signature 05h get TSR's INT 2F handler Return: DX:AX -> INT 2F handler 06h enable/disable TSR BL = new state (00h disabled, 01h enabled) 07h activate TSR (popup if not disabled) 08h get hotkeys BL = which hotkey (00h = hotkey 1, 01h = hotkey 2) Return: AX = hotkey (AH = keyflags, AL = scancode) 09h set hotkey BL = which hotkey (00h = hotkey 1, 01h = hotkey 2) CX = new hotkey (CH = keyflags, CL = scancode) 0Ah-1Fh reserved Index: installation check;Ross Wentworth POPUP library Index: hotkeys;Ross Wentworth POPUP library Format of POPUP vector table entry: Offset Size Description (Table 02587) 00h BYTE vector number (00h = end of table) 01h DWORD original vector 05h WORD offset of interrupt handler in TSR's code segmentTop
INT 2F - CiriSOFT Spanish University of Valladolid TSR's Interface AH = xx (dynamically assigned based upon a search for a multiplex number from C0h to FFh which doesn't answer installed) AL = 00h installation check ES:DI = 1492h:1992h Return: AL = 00h not installed 01h not installed, not OK to install FFh installed; and if ES:DI was 1492h:1992h on entry, ES:DI will point to author_name_ver table (see #02588) AH = FFh Note: this interface permits advanced communication with TSRs: it is possible to make a generic uninstall utility, advanced TSR relocator programs in order to fit fragmented memory areas, etc. See also: INT 2D"AMIS",INT 2F"Compuscience" Index: installation check;CiriSOFT TSR interface Index: uninstall;CiriSOFT TSR interface Format of CiriSOFT author_name_ver table: Offset Size Description (Table 02588) -16 WORD segment of the start of the resident TSR code (CS in programs with PSP, XMS upper memory segment if installed as UMB...) -14 WORD offset of the start of the resident TSR code (frequently 100h in *.COM programs and 0 in upper memory TSR's). -12 WORD memory used by TSR (in paragraphs). Knowing the memory area used by TSR is possible to determine if hooked vectors are still pointing it (and if it is safe to uninstall). -10 BYTE characteristics byte (see #02589) -9 BYTE number of multiplex entry used (redefinition available). Note that the TSR must use THIS variable in it's INT 2Fh handler. -8 WORD offset to vector_area table (see #02590) -6 WORD offset to extra_area table (see #02591,#02589 [bit 7]) -4 4 BYTEs signature string "*##*" 00h var "AUTHOR:PROGRAM_NAME:VERSION",0 (variable length, this area is used in order to determine if the TSR is already resident and it's version code; the ':' char is used as delimiter) Bitfields for CiriSOFT characteristics byte: Bit(s) Description (Table 02589) 0-2 type 000 normal program (with PSP) 001 upper XMS memory block (needed HIMEM.SYS function to free memory when uninstalling) 010 device driver (*.SYS) 011 device driver in EXE format 1xx others (reserved) 3-6 reserved 7 set if extra_table defined and supported (see #02591) SeeAlso: #02588 Format of CiriSOFT vector_area table: Offset Size Description (Table 02590) -1 BYTE number of vectors intercepted by TSR 00h BYTE first vector number 01h DWORD first vector pointer before installing the TSR 05h BYTE second vector number 06h DWORD second vector pointer before installing the TSR 0Ah ... (and so on) Note: the TSR must use these variables to invoke the previous interrupt handler routines SeeAlso: #02588 Format of extra_area table (needed only to improve relocation feature): Offset Size Description (Table 02591) 00h WORD offset to external_ctrl table (see #02592) 0000h if not supported 02h WORD reserved for future use (0) SeeAlso: #02588 Format of CiriSOFT external_ctrl table: Offset Size Description (Table 02592) 00h BYTE bit 0: TSR is relocatable (no absolute segment references) 01h WORD offset to a variable which can activate/inhibit the TSR ---And if bit 0 in offset 00h is off: 03h DWORD pointer to ASCIZ pathname for executable file which supports /SR parameter (silent installation & inhibit) 07h DWORD pointer to first variable to initialize on the copy reloaded from the previous TSR still resident 0Bh DWORD pointer to last variable (all variables packed in one block)Top
INT 2F U - DOS 2.x only PRINT.COM - SUBMIT FILE FOR PRINTING AH = 00h DS:DX -> opened FCB (see #01345 at INT 21/AX=0Fh) Return: AH = number of files currently in print queue AL = status 00h file successfully added 01h queue is full ES:BX -> print queue (10 FCBs; first byte of FFh indicates unused) ES:DX -> currently-printing FCB (if DX=FFFFh, none printing) Notes: DOS 2.x PRINT.COM does not chain to previous INT 2F handler values in AH other than 00h or 01h cause PRINT to return the number of files in the queue in AH SeeAlso: AH=01h"PRINT",AX=0102hTop
INT 2F U - PSPRINT - PRINT JOB CONTROL AH = 00h ??? Return: ???Top
INT 2F - DOS 3.1+ PRINT - GIVE PRINT A TIME SLICE AX = 0080h Return: after PRINT executes Notes: PRINT returns AL=01h if AH=00h but AL is not 80h on entry this function is not supported by the Novell DOS 7 PRINT.COMTop
INT 2F - Personal NetWare - VLM - ??? AX = 00D8h ??? Return: ??? Note: hooked by one of the .VLMs loaded by VLM.EXE v1.10, but apparently a NOPTop
INT 2F U - DOS 2.x only PRINT.COM - REMOVE FILE FROM PRINT QUEUE AH = 01h DS:DX -> FCB (see #01345 at INT 21/AH=0Fh) for file to be canceled Return: AH = number of files currently in print queue AL = 00h (successful) ES:BX -> print queue (10 FCBs; first byte of FFh indicates unused) ES:DX -> currently-printing FCB (if DX=FFFFh, none printing) Notes: DOS 2.x PRINT.COM does not chain to previous INT 2F handler values in AH other than 00h or 01h cause PRINT to return the number of files in the queue in AH SeeAlso: AH=00h"PRINT.COM",AX=0103hTop
INT 2F - DOS 3.0+ PRINT - INSTALLATION CHECK AX = 0100h Return: AL = status 00h not installed 01h not installed, but not OK to install FFh installed AH = 00h (Novell DOS 7) SeeAlso: AX=0101hTop
INT 2F U - PrintCache 3.1 PRINT.COM - INSTALLATION CHECK AX = 0100h SI = 20D6h DI = 8761h Return: AX = 00FFh if installed DI = 0001h if PrintCache's PRINT.COM installed and magic values match SI = resident code segment Program: PrintCache PRINT.COM is a DOS PRINT replacement included in LaserTools' PrintCache memory/disk-based print spooler package Note: if either of SI or DI differ from the indicated magic values, only AX will be modified on return, for compatibility with DOS PRINT SeeAlso: AX=0101h/SI=20D6h,AX=C000h"PCACHE"Top
INT 2F - DOS 3.0+ PRINT - SUBMIT FILE FOR PRINTING AX = 0101h DS:DX -> submit packet (see #02593) Return: CF clear if successful AL = status 01h added to queue 9Eh now printing CF set on error AX = error code (see #02594,#01680 at INT 21/AH=59h/BX=0000h) SeeAlso: AX=0102h Format of PRINT submit packet: Offset Size Description (Table 02593) 00h BYTE level (must be 00h) 01h DWORD pointer to ASCIZ filename (no wildcards) (Table 02594) Values for PRINT error code: 0001h invalid function 0002h file not found 0003h path not found 0004h out of file handles 0005h access denied 0008h print queue full 0009h spooler busy 000Ch name too long 000Fh invalid driveTop
INT 2F U - PrintCache v3.1 PRINT.COM - SUBMIT FILE FOR PRINTING AX = 0101h SI = 20D6h DI = 8761h DS:DX -> submit packet (see #02593) CL = print options bit 4: use default options Return: CF clear if successful AL = status 01h added to queue 9Eh now printing CF set on error AX = error code (see #02594) Program: PrintCache PRINT.COM is a DOS PRINT replacement included in LaserTools' PrintCache memory/disk-based print spooler package Note: if either SI or DI differs from the indicated magic values on entry, PrintCache will use the default print options for the file for compatibility with DOS PRINT SeeAlso: AX=0100h/SI=20D6h,AX=0101h,AH=00h"PRINT",AX=0107h"PrintCache"Top
INT 2F - DOS 3.0+ PRINT - REMOVE FILE FROM PRINT QUEUE AX = 0102h DS:DX -> ASCIZ filename (wildcards allowed) Return: CF clear if successful CF set on error AX = error code (see #02594) SeeAlso: AX=0101h,AX=0103h,AH=01h"PRINT"Top
INT 2F - DOS 3.0+ PRINT - CANCEL ALL FILES IN PRINT QUEUE AX = 0103h Return: CF clear if successful CF set on error AX = error code (see #02594) SeeAlso: AX=0102hTop
INT 2F - DOS 3.0+ PRINT - FREEZE PRINT QUEUE TO READ JOB STATUS AX = 0104h Return: CF clear if successful DX = error count since status last read DS:SI -> print queue CF set on error AX = error code (see #02594) Desc: get the list of print jobs, temporarily suspending PRINT's activities to avoid changing the list while it is being examined Notes: the print queue is an array of 64-byte ASCIZ filenames terminated by an empty filename; the first name is the file currently being printed printing is stopped until AX=0105h is called to prevent the queue from changing while the filenames are being read SeeAlso: AX=0101h,AX=0105hTop
INT 2F - DOS 3.0+ PRINT - RESTART PRINT QUEUE AFTER STATUS READ AX = 0105h Return: CF clear if successful CF set on error AX = error code (see #02594) Desc: restart PRINT's activities once an application finishes examining the print queue SeeAlso: AX=0104hTop
INT 2F - DOS 3.3+ PRINT - GET PRINTER DEVICE AX = 0106h Return: CF set if files in print queue AX = error code 0008h (queue full) DS:SI -> device driver header (see #01646) CF clear if print queue empty AX = 0000h Desc: determine which device, if any, PRINT is currently using for output Notes: undocumented prior to the release of MS-DOS 5.0 this function can be used to allow a program to avoid printing to the printer on which PRINT is currently performing output SeeAlso: AX=0104hTop
INT 2F U - PrintCache v3.1 PRINT.COM - SET TRAILING FORM FEEDS AX = 0107h CL bit 0: output form feed between print jobs Return: AL destroyed SeeAlso: AX=0100h/SI=20D6h,AX=0101h/SI=20D6hTop
INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - INSTALLATION CHECK AX = 0200h Return: AL = FFh if installed Desc: determine whether the PC LAN Program redirector is installed SeeAlso: AX=0201h,AX=0203hTop
INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ??? AX = 0201h Return: nothing??? Notes: this function is called by the DOS 3.3+ PRINT.COM AX=0202h appears to be the opposite function these functions are supposedly used to signal opening and closing of printers SeeAlso: AX=0202hTop
INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ??? AX = 0202h ??? Return: nothing??? Notes: this function is called by the DOS 3.3+ PRINT.COM these functions are supposedly used to signal opening and closing of printers SeeAlso: AX=0201hTop
INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ??? AX = 0203h Return: nothing??? Notes: this function is called by the DOS 3.3+ PRINT.COM AX=0204h appears to be the opposite function these functions are supposedly used to signal opening and closing of printers SeeAlso: AX=0200h,AX=0204hTop
INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ??? AX = 0204h ??? Return: nothing??? Notes: this function is called by the DOS 3.3+ PRINT.COM AX=0203h appears to be the opposite function these functions are supposedly used to signal opening and closing of printers SeeAlso: AX=0200h,AX=0203hTop
INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ??? AX = 02xxh ??? Return: ???Top
INT 2F U - DOS 3.0+ CRITICAL ERROR HANDLER - INSTALLATION CHECK AX = 0500h Return: AL = status 00h not installed, OK to install 01h not installed, can't install FFh installed BX destroyed (MSCDEX v2.21-2.25) CF clear (MSCDEX v2.21-2.25) Desc: determine whether a critical error message override is installed Note: this set of functions allows a user program to partially or completely override the default critical error handler's message in COMMAND.COM SeeAlso: AH=05h,INT 24Top
INT 2F CU - DOS 3.0+ CRITICAL ERROR HANDLER - EXPAND ERROR INTO STRING
AH = 05h
---DOS 3.x---
AL = extended error code (not zero)
---DOS 4.0+ ---
AL = error type
01h DOS extended error code
02h parameter error
BX = error code
Return: CF clear if successful
ES:DI -> ASCIZ error message (read-only)
AL = completion state
00h message requires completion with device name, drive, etc.
01h message is complete as returned
CF set if error code can't be converted to string
AX,DI,ES destroyed
other flags corrupted
Notes: called at start of COMMAND.COM's default critical error handler if
installed by a user program, allowing partial or complete overriding
of the default error messages
subfunction 02h is called by many DOS 4 external programs
DR DOS's COMMAND.COM appends additional info ("0 files copied") to the
returned string
SeeAlso: AX=0500h,AX=122Eh,INT 24
Top
INT 2F - DOS 3.0+ ASSIGN - INSTALLATION CHECK AX = 0600h Return: AL = status 00h not installed 01h not installed, but not OK to install FFh installed Notes: ASSIGN is not a TSR in DR DOS 5.0; it is internally replaced by SUBST (see INT 21/AH=52h) undocumented prior to the release of DOS 5.0 SeeAlso: AX=0601h,INT 21/AH=52hTop
INT 2F U - DOS 3.0+ ASSIGN - GET DRIVE ASSIGNMENT TABLE AX = 0601h Return: ES = segment of ASSIGN work area and assignment table Note: the 26 bytes starting at ES:0103h specify which drive each of A: to Z: is mapped to. Initially set to 01h 02h 03h.... SeeAlso: AX=0600h,AX=AF14h"WinDOS"Top
INT 2F U - DRIVER.SYS support - INSTALLATION CHECK AX = 0800h Return: AL = status 00h not installed, OK to install 01h not installed, not OK to install FFh installed Desc: determine whether the internal support code used by DRIVER.SYS is present; it is always present in DOS 3.2+ Note: supported by DR DOS 5.0 and Novell DOS 7Top
INT 2F U - DRIVER.SYS support - ADD NEW BLOCK DEVICE AX = 0801h DS:DI -> drive data table (see #02601,#02602,#02603) Return: AX,BX,SI,ES destroyed Notes: moves down internal list of drive data tables, copying and modifying the drive description flags word for tables referencing same physical drive the data table is appended to the chain of tables supported by DR DOS 5.0 and Novell DOS 7 SeeAlso: AX=0803hTop
INT 2F U - DRIVER.SYS support - EXECUTE DEVICE DRIVER REQUEST AX = 0802h ES:BX -> device driver request header (see #02597) Return: request header updated as per requested operation STACK: WORD original flags from INT call (left by RETF in device driver, at least in DOS 5.0-6.22) Notes: supported by DR DOS 5.0 DOS 3.2 executes this function on any AL value from 02h through F7h; DOS 4.0+ executes this function on AL=02h and AL=04h-F7h the command codes (see #02595) and structures described below apply to all drivers which support the appropriate commands; this call is just one of a number of ways in which a device driver request may be invoked supported by Novell DOS 7 SeeAlso: AX=0800h,AX=0801h,AX=0803h,AX=1510h,INT 21/AH=52h,INT 21/AH=99h SeeAlso: INT 21/AH=9Ah (Table 02595) Values for device driver command code: 00h (0) INIT 01h (1) MEDIA CHECK (block devices) 02h (2) BUILD BPB (block devices) 03h (3) IOCTL INPUT 04h (4) INPUT 05h (5) NONDESTRUCTIVE INPUT, NO WAIT (character devices) 06h (6) INPUT STATUS (character devices) 07h (7) INPUT FLUSH (character devices) 08h (8) OUTPUT 09h (9) OUTPUT WITH VERIFY 0Ah (10) OUTPUT STATUS (character devices) 0Bh (11) OUTPUT FLUSH (character devices) 0Ch (12) IOCTL OUTPUT 0Dh (13) (DOS 3.0+) DEVICE OPEN 0Eh (14) (DOS 3.0+) DEVICE CLOSE 0Fh (15) (DOS 3.0+) REMOVABLE MEDIA (block devices) 10h (16) (DOS 3.0+) OUTPUT UNTIL BUSY (character devices) 11h (17) (European MS-DOS 4.0) STOP OUTPUT (console screen drivers only) 12h (18) (European MS-DOS 4.0) RESTART OUTPUT (console screen drivers only) 13h (19) (DOS 3.2+) GENERIC IOCTL 14h (20) (DOS 4.0, KKCFUNC) DEVICE RESTORE (character device) 15h (21) (European MS-DOS 4.0) RESET UNCERTAIN MEDIA FLAG 16h (22) (DOS 4.0) unknown??? 17h (23) (DOS 3.2+) GET LOGICAL DEVICE 18h (24) (DOS 3.2+) SET LOGICAL DEVICE 19h (25) (DOS 5.0+) CHECK GENERIC IOCTL SUPPORT 80h (128)(CD-ROM,DRFAT32) READ LONG 81h (129)(CD-ROM) reserved 82h (130)(CD-ROM,DRFAT32) READ LONG PREFETCH 83h (131)(CD-ROM,DRFAT32) SEEK 84h (132)(CD-ROM) PLAY AUDIO 85h (133)(CD-ROM) STOP AUDIO 86h (134)(CD-ROM,DRFAT32) WRITE LONG 87h (135)(CD-ROM,DRFAT32) WRITE LONG VERIFY 88h (136)(CD-ROM) RESUME AUDIO Bitfields for device request status: Bit(s) Description (Table 02596) 15 error 14-11 reserved 10 ??? set by DOS kernel on entry to some driver calls 9 busy 8 done (may be clear on return under European MS-DOS 4.0) 7-0 error code if bit 15 set (see #02598) Format of device driver request header: Offset Size Description (Table 02597) 00h BYTE length of request header 01h BYTE subunit within device driver 02h BYTE command code (see #02595) 03h WORD status (filled in by device driver) (see #02596) ---DOS--- 05h 4 BYTEs reserved (unused in DOS 2.x and 3.x) 09h DWORD (European MS-DOS 4.0 only) pointer to next request header in device's request queue (other versions) reserved (unused in DOS 2.x and 3.x) ---STARLITE architecture--- 05h DWORD pointer to next request header 09h 4 BYTEs reserved ---command code 00h--- 0Dh BYTE (ret) number of units 0Eh DWORD (call) pointer to DOS device helper function (see #02599) (European MS-DOS 4.0 only) (call) pointer past end of memory available to driver (DOS 5+) (ret) address of first free byte following driver 12h DWORD (call) pointer to commandline arguments (ret) pointer to BPB array (block drivers) or 0000h:0000h (character drivers) 16h BYTE (DOS 3.0+) drive number for first unit of block driver (0=A) ---European MS-DOS 4.0--- 17h DWORD pointer to function to save registers on stack ---DOS 5+ --- 17h WORD (ret) error-message flag 0001h MS-DOS should display error msg on init failure ---command code 01h--- 0Dh BYTE media descriptor 0Eh BYTE (ret) media status 00h don't know 01h media has not changed FFh media has been changed 0Fh DWORD (ret, DOS 3.0+) pointer to previous volume ID if the OPEN/CLOSE/RM bit in device header is set and disk changed Note: some drives (or controllers???) forget the change line status if another drive is accessed afterwards. The DOS IO.SYS layer takes care of this by not relying on the reported change line status when the change line is not active and a different drive is accessed, instead it reports "don't know" to the DOS kernel. ---command code 02h--- 0Dh BYTE media descriptor 0Eh DWORD transfer address -> scratch sector if NON-IBM FORMAT bit in device header set -> first FAT sector otherwise 12h DWORD pointer to BPB (set by driver) (see #01663 at INT 21/AH=53h) ---command codes 03h,0Ch--- (see also INT 21/AX=4402h"DOS 2+",INT 21/AX=4403h"DOS") 0Dh BYTE media descriptor (block devices only) 0Eh DWORD transfer address 12h WORD (call) number of bytes to read/write (ret) actual number of bytes read or written ---command codes 04h,08h,09h (except Compaq DOS 3.31, DR DOS 6)--- 0Dh BYTE media descriptor (block devices only) 0Eh DWORD transfer address 12h WORD byte count (character devices) or sector count (block devices) 14h WORD starting sector number (block devices only) 16h DWORD (DOS 3.0+) pointer to volume ID if error 0Fh returned 1Ah DWORD (DOS 4.0+) 32-bit starting sector number (block devices with device attribute word bit 1 set only) if starting sector number above is FFFFh (see INT 21/AH=52h) ---command codes 04h,08h,09h (Compaq DOS 3.31, DR DOS 6)--- 0Dh BYTE media descriptor (block devices only) 0Eh DWORD transfer address 12h WORD byte count (character devices) or sector count (block devices) 14h DWORD 32-bit starting sector number (block devices only) Note: to reliably determine which variant of the request block for functions 04h,08h,09h has been passed to the driver, check the length field as well as the word at offset 14h. If the length is 1Eh and 14h=FFFFh, use the DWORD at 1Ah as the starting sector number; if the length is 18h, use the DWORD at 14h; otherwise, use the WORD at 14h. ---command code 05h--- 0Dh BYTE byte read from device if BUSY bit clear on return ---command codes 06h,07h,0Ah,0Bh,0Dh,0Eh,0Fh--- no further fields ---command code 10h--- 0Dh BYTE unused 0Eh DWORD transfer address 12h WORD (call) number of bytes to write (ret) actual number of bytes written ---command codes 11h,12h--- 0Dh BYTE reserved ---command code 14h--- no further fields Note: This is at least true for KKCFUNC.SYS' "device restore". KKCFUNC.SYS checks that INT 2Fh in the IVT still points to KKCFUNC's own INT 2Fh entry point. In this case it restores the original INT 2Fh vector, as recorded at device init, into the IVT. SeeAlso: INT 2F/AH=4Dh ---command code 15h--- no further fields ---command codes 13h,19h--- 0Dh BYTE category code 00h-7Fh reserved for Microsoft 00h unknown 01h COMn: (serial) (DOS 3.3+) 02h reserved for terminal control 03h CON (DOS 3.3+) 04h reserved for keyboard control 05h LPTn: 07h mouse (European MS-DOS 4.0) 08h disk 48h FAT32 disk control (MS-DOS 7.10+) 80h-FFh reserved for OEM/user-defined 9Eh (STARLITE) Media Access Control driver EDh (DR PalmDOS) login security SeeAlso: #01558 0Eh BYTE function code 00h (STARLITE) MAC Bind request 0Fh WORD copy of DS at time of IOCTL call (apparently unused in DOS 3.3) SI contents (European MS-DOS 4.0) 11h WORD offset of device driver header (see #01646) DI contents (European MS-DOS 4.0) 13h DWORD pointer to parameter block from INT 21/AX=440Ch or AX=440Dh ---command codes 80h,82h--- 0Dh BYTE addressing mode 00h HSG (default) 01h Phillips/Sony Red Book 0Eh DWORD transfer address (ignored for command 82h) 12h WORD number of sectors to read (if 0 for command 82h, request is an advisory seek) 14h DWORD starting sector number logical sector number in HSG mode frame/second/minute/unused in Red Book mode (HSG sector = minute * 4500 + second * 75 + frame - 150) 18h BYTE data read mode 00h cooked (2048 bytes per frame) 01h raw (2352 bytes per frame, including EDC/ECC) 19h BYTE interleave size (number of sectors stored consecutively) 1Ah BYTE interleave skip factor (number of sectors between consecutive portions) ---command code 83h--- 0Dh BYTE addressing mode 00h HSG (default) 01h Phillips/Sony Red Book 0Eh DWORD transfer address (ignored) 12h WORD number of sectors to read (ignored) 14h DWORD starting sector number (see also above) ---command code 84h--- 0Dh BYTE addressing mode 00h HSG (default) 01h Phillips/Sony Red Book 0Eh DWORD starting sector number (see also above) 12h DWORD number of sectors to play ---command codes 85h,88h--- no further fields ---command codes 86h,87h--- 0Dh BYTE addressing mode 00h HSG (default) 01h Phillips/Sony Red Book 0Eh DWORD transfer address (ignored in write mode 0) 12h WORD number of sectors to write 14h DWORD starting sector number (also see above) 18h BYTE write mode 00h mode 0 (write all zeros) 01h mode 1 (default) (2048 bytes per sector) 02h mode 2 form 1 (2048 bytes per sector) 03h mode 2 form 2 (2336 bytes per sector) 19h BYTE interleave size (number of sectors stored consecutively) 1Ah BYTE interleave skip factor (number of sectors between consecutive portions) (Table 02598) Values for device driver error code: 00h write-protect violation 01h unknown unit 02h drive not ready 03h unknown command 04h CRC error 05h bad drive request structure length 06h seek error 07h unknown media 08h sector not found 09h printer out of paper 0Ah write fault 0Bh read fault 0Ch general failure 0Dh reserved 0Eh (CD-ROM) media unavailable 0Fh invalid disk change (Table 02599) Call European MS-DOS 4.0 device helper function with: DL = function 00h "SchedClock" called on each timer tick AL = tick interval in milliseconds 01h "DevDone" device I/O complete ES:BX -> request header Note: must update status word first; may be called from an interrupt handler 02h "PullRequest" pull next request from queue DS:SI -> DWORD pointer to start of device's request queue Return: ZF clear if pending request ES:BX -> request header ZF set if no more requests 03h "PullParticular" remove specific request from queue DS:SI -> DWORD pointer to start of device's request queue ES:BX -> request header Return: ZF set if request header not found 04h "PushRequest" push the request onto the queue DS:SI -> DWORD pointer to start of device's request queue ES:BX -> request header interrupts disabled 05h "ConsInputFilter" keyboard input check AX = character (high byte 00h if PC ASCII character) Return: ZF set if character should be discarded ZF clear if character should be handled normally Note: called by keyboard interrupt handler so DOS can scan for special input characters 06h "SortRequest" push request in sorted order by starting sector DS:SI -> DWORD pointer to start of device's request queue ES:BX -> request header interrupts disabled 07h "SigEvent" send signal on keyboard event AH = event identifier Return: AL,FLAGS destroyed 09h "ProcBlock" block on event AX:BX = event identifier (typically a pointer) CX = timeout in ms or 0000h for never DH = interruptable flag (nonzero if pause may be interrupted) interrupts disabled Return: after corresponding ProcRun call CF clear if event wakeup, set if unusual wakeup ZF set if timeout wakeup, clear if interrupted AL = wakeup code, nonzero if unusual wakeup interrupts enabled BX,CX,DX destroyed Note: block process and schedules another to run 0Ah "ProcRun" unblock process AX:BX = event identifier (typically a pointer) Return: AX = number of processes awakened ZF set if no processes awakened BX,CX,DX destroyed 0Bh "QueueInit" initialize/clear character queue DS:BX -> character queue structure (see #02600) Note: the queue size field must be set before calling 0Dh "QueueWrite" put a character in the queue DS:BX -> character queue (see #02600) AL = character to append to end of queue Return: ZF set if queue is full ZF clear if character stored 0Eh "QueueRead" get a character from the queue DS:BX -> character queue (see #02600) Return: ZF set if queue is empty ZF clear if characters in queue AL = first character in queue 10h "GetDOSVar" return pointer to DOS variable AL = index of variable 03h current process ID BX = index into variable if AL specifies an array CX = expected length of variable Return: CF clear if successful DX:AX -> variable CF set on error AX,DX destroyed BX,CX destroyed Note: the variables may not be modified 14h "Yield" yield CPU if higher-priority task ready to run Return: FLAGS destroyed 1Bh "CritEnter" begin system critical section DS:BX -> semaphore (6 BYTEs, initialized to zero) Return: AX,BX,CX,DX destroyed 1Ch "CritLeave" end system critical section DS:BX -> semaphore (6 BYTEs, initialized to zero) Return: AX,BX,CX,DX destroyed Note: must be called in the context of the process which called CritEnter on the semaphore Note: the DWORD pointing at the request queue must be allocated by the driver and initialized to 0000h:0000h. It always points at the next request to be executed Format of European MS-DOS 4.0 character queue: Offset Size Description (Table 02600) 00h WORD size of queue in bytes 02h WORD index of next character out 04h WORD count of characters in the queue 06h N BYTEs queue bufferTop
INT 2F U - DOS 4.0+ DRIVER.SYS support - GET DRIVE DATA TABLE LIST
AX = 0803h
Return: DS:DI -> first drive data table in list (see #02601,#02602,#02603)
Note: not available under DR DOS 5.0, but supported by Novell DOS 7 (using
the MS-DOS 4+ data table format)
SeeAlso: AX=0801h
Format of DOS 3.30 drive data table:
Offset Size Description (Table 02601)
00h DWORD pointer to next table (offset FFFFh if last table)
04h BYTE physical unit number (for INT 13)
05h BYTE logical drive number (0=A:)
06h 19 BYTEs BIOS Parameter Block (see also INT 21/AH=53h)
Offset Size Description
00h WORD bytes per sector
02h BYTE sectors per cluster, FFh if unknown
03h WORD number of reserved sectors
05h BYTE number of FATs
06h WORD number of root dir entries
08h WORD total sectors
0Ah BYTE media descriptor, 00h if unknown
0Bh WORD sectors per FAT
0Dh WORD sectors per track
0Fh WORD number of heads
11h WORD number of hidden sectors
19h BYTE flags
bit 6: 16-bit FAT instead of 12-bit FAT
1Ah WORD number of DEVICE OPEN calls without corresponding DEVICE CLOSE
1Ch 11 BYTEs volume label or "NO NAME " if none (always "NO NAME" for
fixed media)
27h BYTE terminating null for volume label???
28h BYTE device type (see #01561 at INT 21/AX=440Dh"DOS 3.2+")
29h WORD bit flags describing drive (see #02604)
2Bh WORD number of cylinders
2Dh 19 BYTEs BIOS Parameter Block for highest capacity supported
40h 3 BYTEs ???
43h 9 BYTEs filesystem type???, default = "NO NAME "
(apparently only MS-DOS 3.30 fixed media, nulls for removable
media and PC-DOS 3.30)
4Ch BYTE least-significant byte of last-accessed cylinder number
---removable media---
4Dh DWORD time of last access in clock ticks (FFFFFFFFh if never)
---fixed media---
4Dh WORD partition (FFFFh = primary, 0001h = extended)
4Fh WORD absolute cylinder number of partition's start on physical
drive (always FFFFh if primary partition)
SeeAlso: #02602,#02603
Format of COMPAQ DOS 3.31 drive data table:
Offset Size Description (Table 02602)
00h DWORD pointer to next table (offset FFFFh if last table)
04h BYTE physical unit number (for INT 13)
05h BYTE logical drive number (0=A:)
06h 25 BYTEs BIOS Parameter Block (see #02603)
1Fh 6 BYTEs reserved fields from BPB above???
25h BYTE flags
bit 6: 16-bit FAT instead of 12-bit FAT
bit 5: large volume???
26h WORD device-open count???
28h 11 BYTEs volume label or "NO NAME " if none (always "NO NAME" for
fixed media)
33h BYTE terminating null for volume label
34h BYTE device type (see #01561 at INT 21/AX=440Dh"DOS 3.2+")
35h WORD bit flags describing drive (see #02604)
37h WORD number of cylinders
39h 25 BYTEs BIOS parameter block for highest capacity drive supports
52h 6 BYTEs ??? apparently always zeros
58h BYTE least-significant byte of last-accessed cylinder number
---removable media---
59h DWORD time of last access in clock ticks (FFFFFFFFh if never)
---fixed media---
59h WORD partition (FFFFh = primary, 0001h = extended)
5Bh WORD absolute cylinder number of partition's start on physical
drive (always FFFFh if primary partition)
SeeAlso: #02601,#02603
Format of DOS 4.0-7.0 drive data table:
Offset Size Description (Table 02603)
00h DWORD pointer to next table (offset FFFFh if last table)
04h BYTE physical unit number (for INT 13)
05h BYTE logical drive number (0=A:)
06h 25 BYTEs BIOS Parameter Block (see also INT 21/AH=53h)
Offset Size Description
00h WORD bytes per sector
02h BYTE sectors per cluster, FFh if unknown
03h WORD number of reserved sectors
05h BYTE number of FATs
06h WORD number of root dir entries
08h WORD total sectors (refer to offset 15h if zero)
0Ah BYTE media descriptor, 00h if unknown
0Bh WORD sectors per FAT
0Dh WORD sectors per track
0Fh WORD number of heads
11h DWORD number of hidden sectors
15h DWORD total sectors if WORD at 08h is zero
1Fh BYTE flags
bit 6: 16-bit FAT instead of 12-bit
bit 7: unsupportable disk (all accesses will return Not Ready)
20h WORD device-open count
22h BYTE device type (see #01561 at INT 21/AX=440Dh"DOS 3.2+")
23h WORD bit flags describing drive (see #02604)
25h WORD number of cylinders (for partition only, if hard disk)
27h 25 BYTEs BIOS Parameter Block for default (highest) capacity supported
40h 6 BYTEs reserved (part of BPB above)
46h BYTE last track accessed
---removable media---
47h DWORD time of last access in clock ticks (FFFFFFFFh if never)
---fixed media---
47h WORD partition (FFFFh = primary, 0001h = extended)
always 0001h for DOS 5+
49h WORD absolute cylinder number of partition's start on physical drive
(FFFFh if primary partition in DOS 4.x)
------
4Bh 11 BYTEs volume label or "NO NAME " if none (apparently taken from
extended boot record rather than root directory)
56h BYTE terminating null for volume label
57h DWORD serial number
5Bh 8 BYTEs filesystem type ("FAT12 " or "FAT16 ")
63h BYTE terminating null for filesystem type
SeeAlso: #02601,#02602
Bitfields for flags describing drive:
Bit(s) Description (Table 02604)
0 fixed media
1 door lock ("changeline") supported
2 current BPB locked
3 all sectors in a track are the same size
4 physical drive has multiple logical units
5 current logical drive for shared physical drive
6 disk change detected
7 device parameters were changed (set DASD before formatting)
(see #01560 at INT 21/AX=440Dh"DOS 3.2+")
8 disk reformatted (BPB of current media was changed)
9 access flag (fixed media only, disables reads and writes)
(see #01566 at INT 21/AX=440Dh"DOS 3.2+")
Top
INT 2F - SHARE - INSTALLATION CHECK AX = 1000h Return: AL = status 00h not installed, OK to install 01h not installed, not OK to install FFh installed Notes: supported by OS/2 v1.3+ compatibility box, which always returns AL=FFh if DOS 4.01 SHARE was automatically loaded, file sharing is in an inactive state (due to the undocumented /NC flag used by the autoload code) until this call is made DR DOS 5.0 SHARE 1.00 only checks for AH=10h and in this case does not chain to a previous handler, DR DOS 6.0 SHARE 1.02+ properly chains for any values other than AX=1000h and the private FDOS hook AX=1001h. However, under DR PalmDOS and Novell DOS 7+, the SHARE 2.00+ only tests for the AX=1000h install check, since it no longer uses AX=1001h to hook into the system. DOS 5+ chains to the previous handler if AL <> 00h on entry Windows Enhanced mode hooks this call and reports that SHARE is installed even when it is not BUGS: values of AL other than 00h put DOS 3.x SHARE into an infinite loop (08E9: OR AL,AL 08EB: JNZ 08EB) <- the buggy instruction (DOS 3.3) values of AL other than described here put PC-DOS 4.00 into the same loop (the buggy instructions are the same) SeeAlso: AX=1080h,INT 21/AH=52h,INT 21/AX=4457h/DX=FFFFhTop
INT 2F U - DR DOS 6.0+ FDOS EXTENSIONS - INSTALL FDOS HOOK (SHARE / DELWATCH) AX = 1001h DX:BX -> new FDOS stub entry function Return: nothing Notes: the default handler for the pointer set by this call under DELWATCH simply returns with CF set In Digital Research terminology FDOS is the part of the BDOS kernel (IBMDOS.COM) responsible for the file system and related tasks, and its functionality is also used by the BDOS kernel itself. However, for reasons of performance and code size, it uses direct calling. This interrupt allows external components like SHARE file locking or DELWATCH delete tracking software to hook into the internal backdoor INT 2F/AH=10h/AL<=09h chain in the kernel, so that they can actually allows the kernel to ensure that several conditions are met when passing control to these registered components including proper maintaining A20, re-enterancy, or critical section mutexing (e.g. getting the disk sub-system queue "MXdisk"). The default handler in the BDOS just sets the carry flag and returns. Currently known clients to this shared interface are DR DOS 6.0 SHARE 1.xx, DR DOS 6.0+ DELWATCH 1.00+, which both chain onto the same call far address, and the version of AddStor's SuperStor which is bundled with DR DOS 6.0 However, the DR PalmDOS, and Novell DOS 7 - DR-DOS 7.03 SHARE 2.00-2.05 do not use this function to hook into the system. Instead they fix up the share stubs directly. DR PalmDOS SHARE 2.00 uses the stubs at Table !!! INT 21/AH=52h, while Novell DOS 7 - DR-DOS 7.03 SHARE 2.01-2.05 use the private set of share stubs at Table !!! at INT 21/AX=4458h). Future releases may possibly again fix up the share stubs at INT 21/AH=52h. SeeAlso: AX=1000h,AX=F800hTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - READ BUFFERS AX = 1002h CH = FFh (pre-read required) CL = buffer type (here FAT, DIR, or DATA, see below) AH:DX = 24 bit sector number Return: ES:SI -> buffer control block Notes: This private function is called internally by the OS kernel to ask the FDOS to find the corresponding buffer. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1003h,AX=1008h,AX=1009h,AX=10FEh Bitfields for Novell DOS 7 FDOS buffer type: Bit(s) Description (Table 04099) 7 remote (on a network drive) 6 dirty (modified) 3 data sector 2 directory sector 1 FAT sectorTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - FLUSH BUFFERS AX = 1003h BL = drive??? BH = buffer type to flush (BF_ISFAT+BF_ISDIR+BF_ISDATA) Return: nothing??? Notes: This private function is called internally by the OS kernel to ask the FDOS to flush all buffer. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1004h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - FREE FAT CHAIN AX = 1004h BX = first block to release on current drive Return: nothing Notes: This private function is called internally by the OS kernel to ask the FDOS to release the FAT chain. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1005h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - ALLOCATE CLUSTER AX = 1005h BX = block from which to start search (e.g. current end of file) 0000h = start of disk Return: AX or BX??? = allocated cluster (already marked as End of Chain) or 0000h if none available Notes: This private function is called internally by the OS kernel to ask the FDOS to allocate disk space. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1004h,AX=1007h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - NEXT CLUSTER / READ FAT??? AX = 1006h BX = current cluster number Return: AX or BX??? = next cluster in chain Notes: This private function is called internally by the OS kernel to ask the FDOS to get the next cluster in a file. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1005h,AX=1007h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - UPDATE FAT ENTRY / WRITE FAT??? AX = 1007h BX = FAT entry to change DX = new value Return: nothing Notes: This private function is called internally by the OS kernel to ask the FDOS to update the FAT. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1005h,AX=1006h,AX=1008h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - FIXUP CHECKSUMS / DIR UPDATE??? AX = 1008h BX = segment of directory buffer CX = cluster to fixup (0 = root) DI = directory entry index (truncated to cluster if subdirectory) BX:SI -> directory entry (single entry for hashing) Return: nothing Notes: This private function is called internally by the OS kernel to ask the FDOS to fixup hashing/checksums. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1007h,AX=1009h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - DIRECTORY BUFFER INFO AX = 1009h Return: ES:DI -> 128-byte directory record buffer ES:SI -> directory BCB structure (see #04101) Notes: This private function is called internally by the OS kernel. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as the DELWATCH TSR. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=10FEh Format of Novell DOS 7+ FDOS directory BCB: Offset Size Description (Table 04101) 00h BYTE drive (FFh = invalid) 01h BYTE low byte of record number 02h BYTE middle byte of record number 03h BYTE high byte of record numberTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - SUPERSTOR - QUERY PHYS FREE SPACE AX = 1010h CX = 0000h Return: CX = free space 0000h if no physical space left on the drive else there is still space available Notes: This private function is internally called by the FDOS part of the OS kernel on "out of disk space" conditions. It allows optimized behaviour of DELWATCH delete tracking software in conjunction with disk compression, and was implemented for SuperStor (but it would also work with other disk compression if they hook this function). If there truly is no physical space left on the drive, the FDOS asks DELWATCH to purge files in its queue until enough space has been freed, or there actually is no free disk space any more. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as SuperStor, bundled with DR DOS "Panther" and Novell DOS 7 BETAs. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - CREATE PASSWORD ENTRY AX = 1020h ??? Return: ??? Notes: This private function is called internally by the OS kernel to an optional SECURITY TSR. By using the INT 2F/AX=1001h FDOS hook, it can be intercepted by external system components such as Multiuser SECURITY, bundled with DR DOS "Panther" Beta 1. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1021h,AX=1022h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - CHANGE PASSWORD ENTRY AX = 1021h CL > 05h ??? BX -> matching directory entry??? AL = directory attributes??? Return: ??? CF set on error (password change not allowed) Notes: This private function is called internally by the OS kernel to an optional SECURITY TSR. By using the INT 2F/AX=1001h FDOS hook, it can be intercepted by external system components such as Multiuser SECURITY, bundled with DR DOS "Panther" Beta 1. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1020h,AX=1022h,AX=10FEhTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - CHECK PASSWORD ENTRY AX = 1022h ??? Return: ??? Notes: This private function is called internally by the OS kernel to an optional SECURITY TSR. By using the INT 2F/AX=1001h FDOS hook, it can be intercepted by external system components such as Multiuser SECURITY, bundled with DR DOS "Panther" Beta 1. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=1020h,AX=1021h,AX=10FEhTop
INT 2F U - DOS 4 only SHARE internal - ??? AX = 1040h ??? Return: AL = FFh??? SeeAlso: AX=1000hTop
INT 2F U - DOS 4 only SHARE internal - TURN ON FILE SHARING CHECKS AX = 1080h Return: AL = status F0h successful FFh checking was already on Note: DOS 4.x SHARE has dual functions: FCB support for large (>32M) media and file sharing checks. The undocumented commandline flag /NC can be used to disable the sharing code. SeeAlso: AX=1000h,AX=1081hTop
INT 2F U - DOS 4 only SHARE internal - TURN OFF FILE SHARING CHECKS AX = 1081h Return: AL = status F0h successful FFh checking was already off Note: (see AX=1080h) SeeAlso: AX=1000h,AX=1080hTop
INT 2F U - DR DOS 6.0+ DELWATCH.EXE - INSTALLATION CHECK AX = 10FEh Return: AL = FFh if installed and active AH = internal version number 10h for DR DOS 6.0 DELWATCH 1.0 / 1.1 (through 1993/03/19) 20h for Novell DOS 7+ DELWATCH 2.0+ DX:BX -> private entry point (see #02605) Notes: The DR DOS 6.0 DELWATCH 1.x used to store information about deleted files in a hidden file named @DLWATCH.DAT, however the Novell DOS 7+ DELWATCH 2.0+ stores all the info in previously unused fields in the files' directory entries. (See table !!! at INT 21h/11h for details). This, however, now causes problems on systems also running Windows 9x since Microsoft decided to use a rather similar but incompatible method to store long filenames etc. in these entries. Running DELWATCH 2.x on a system which previously used DELWATCH 1.x, the @DLWATCH.DAT file will be abandoned and converted to the new method. SeeAlso: #01352,INT 21/AX=4306h,INT 21/AX=5704h,INT 2F/AX=1001h (Table 02605) Call DELWATCH private entry point with: AH = function 00h (OS hook) installation check AL = 00h required for DELWATCH 1.x Return: CF clear AX = 0000h CX = 0004h (unsupported function) 01h (DELWATCH 1.x) New Disk ??? 01h (DELWATCH 2.0+) disable DELWATCH on drive AL = drive number (00h = A:) Return: AX = status (0000h if failed, FFFFh if successful) 02h (OS hook) Delete File AL = drive number (00h = A:) DX = directory cluster number (0000h for root directory) CX = directory entry number DS:BX -> directory entry ES,DS must be valid selectors if called in protected mode Return: DS:BX -> updated directory entry CF set if file is to be deleted by the OS CF clear if DELWATCH has placed the file in its queue Note: deletes the directory entry 03h (OS hook) Free Clusters AL = drive number (00h = A:) CX = number of clusters currently free (do not free if > 1) DX = preferred 'search from cluster' (ignored by DELWATCH 2.0) Return: CF clear if clusters freed CF set if no clusters freed DX = new 'search from' cluster (one before first free) 04h (OS hook) free root directory entry AL = drive number (00h = A:) Return: CF set if no directory entry freed 05h (OS hook) return free space AL = drive number (00h = A:) CX = number of free clusters Return: CX = updated number of free clusters Notes: adds space used by "deleted" files to free space call is chained 06h enable DELWATCH on drive AL = drive number with bit 7 set (80h = A:, etc.) (DELWATCH 2.0+: set bit 6 for removable drives) BX = maximum files of same name in one directory to save CX = maximum files to save on this disk DS:DX -> MEMDESC??? for drive data (see #04104) DS:SI -> MEMDESC??? for DWLIST (see #04104) ES,DS must contain valid selectors if called in protected mode Return: AX = status 0000h failed FFFFh successful CX = error code on failure (see #04102) (0004h "wrong version" if AL < 80h on entry) 07h (DELWATCH 1.x) disable DELWATCH on drive ??? 07h (DELWATCH 2.0+) (OS hook) new disk AL = drive (00h = A:, etc.) ES:BX -> DOS DDSC structure CF set if not enabled Return: ??? 08h set file extensions list AL = sense (00h exclude named extensions, 01h only named ext.) DS:BX -> 31-byte ASCIZ extension list (three blank-padded bytes per extension) Return: AX = FFFFh (successful) 09h adjust pending delete space AL = drive number (00h = A:) CX = number of clusters being freed Return: AX = 0000h if drive not enabled 0Ah remove DELWATCH entry AL = drive number (00h = A:) DX = directory cluster number (0000h if root directory) CX = directory entry number BX:SI -> filename ES,DS must contain valid selectors if called in protected mode Return: AX > 0000h if entry found in DWLIST 0Bh enable NEWDISK Return: AX > 0000h if successful (FFFFh for DELWATCH 2.0) see also function 0Dh 0Ch (DELWATCH 1.x) drive status AL = drive number (00h = A:, etc.) Return: AX = drive data segment, 0000h if not enabled CX = pending delete space, if drive enabled 0Ch (DELWATCH 2.0+) check if drive enabled AL = drive number with bit 7 set (80h = A:, etc.) DS:DX -> MEMDESC for drive data (see #04104) (DX = 0000h if not required) DS:SI -> MEMDESC for DWLIST (see #04104) (SI = 0000h if not required) ES,DS must contain valid selectors if called in protected mode Return: AX = drive status (see also #04103) 0000h disabled or error CX = error code (see #04102) 0001h drive enabled CX = pending delete space, FFFFh if NEWDISK not yet called 0Dh disable NEWDISK BX = segment address of bitmap buffer Return: AX > 0000h if successful (FFFFh for DELWATCH 2.0) see also function 0Bh 0Eh (DELWATCH 2.0+) (OS hook) purge file AL = drive number (00h = A:) DX = directory cluster number (0000h if root directory) CX = directory entry number Return: CF set if drive not enabled CF clear AX = status 0000h successfully purged else error code (see #04102) 0Fh (DELWATCH 2.0+) (OS hook) undelete file AL = drive number (00h = A:) DX = directory cluster number (0000h if root directory) CX = directory entry number Return: CF set if drive not enabled CF clear AX = status 0000h successfully undeleted else error code (see #04102) Return: AX = 0000h, CX = 0001h (see #04102) if DELWATCH busy registers unchanged if AH > 0Fh on entry Notes: functions marked "OS hook" must under no circumstances by called by external applications, as this would bypass the serialization performed by the kernel and cause problems at least in multitasking environments. two functions have been swapped between DELWATCH 1.x and DELWATCH 2.0 to ensure that DELWATCH 1.x calls will not do anything under newer versions of the OS; for the same reason, the drive number in AL sometimes requires that bit 7 be set for DELWATCH 2.0+. SeeAlso: AX=1001h,AX=1010h (Table 04102) Values for DELWATCH error codes: 0001h reentered (DELWATCH busy) 0002h not enabled 0003h not found 0004h wrong version of DELWATCH 0005h memory allocation SeeAlso: #04103 (Table 04103) Values for DELWATCH drive status: 0000h drive not enabled 0001h OK 0002h no bitmap 0003h zero files 0004h cross-linked files SeeAlso: #04102 Format of DELWATCH MEMDESC structure: Offset Size Description (Table 04104) 00h BYTE memory type 01h protected mode (DPMS) 02h XMS 03h upper (high) memory 04h low memory 01h DWORD location (conventional memory) WORD: segment base address (XMS) WORD: XMS handle (DPMS) DWORD: DPMS memory 32-bit base address 05h DWORD length in bytes 09h DWORD allocation (conventional memory) WORD: memory block segment (XMS) WORD: XMS handle (same as location handle) (DPMS) DWORD: DPMS 32-bit handleTop
INT 2F U - DR DOS 5.0 - FIXUP SHARE STUB TABLE??? AX = 10FFh ES:BX -> new SHARE stub table to use??? Return: DS destroyed??? Notes: Sets a pointer in the kernel. ES:BX points to a structure in SHARE's segment, which presumeably contains a number (4 or 11???) of entries of 5 bytes each and is probably part of some kind of share stub dispatcher that gets fixed up by this call. This was seen called by DR DOS 5.0 SHARE 1.00 (when INT 2F/AX=1000h revealed that SHARE was not installed) before it hooked INT 2Fh via INT 21/AH=35h to provide its install check function. It preserved the DS register before calling. However, the DR DOS 6.0+ SHARE 1.02+ uses INT 2F/AX=1001h to hook into the OS, DR PalmDOS SHARE 2.00 directly fixes up the share stubs in table !!! at INT 21h/52h, and Novell DOS 7 - DR-DOS 7.03 SHARE 2.01-2.05 maintains the private set of share stubs in Table !!! at INT 21/AX=4458h). This function was probably used between 1990/02/09 and 1991/03/15. SeeAlso: INT 2F/AX=1001hTop
INT 2F C - NETWORK REDIRECTOR - INSTALLATION CHECK
AX = 1100h
Return: AL = status
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
AH = product identifier (ad hoc by various manufacturers)
00h if PC Tools v8 DRIVEMAP
42h ('B') for Beame&Whiteside BWNFS v3.0a
6Eh ('n') for NetWare Lite v1.1 CLIENT
Notes: this function is called by the DOS 3.1+ kernel
in DOS 4.x only, the 11xx calls are all in IFSFUNC.EXE, not in the
PC LAN Program redirector; DOS 5+ moves the calls back into the
redirector
the PC Network 1.00 redirector (renamed to PC LAN Program in 1.1-1.3)
only supports AL=00h-27h
Top
INT 2F - MSCDEX (MS CD-ROM Extensions) - INSTALLATION CHECK AX = 1100h subfn DADAh STACK: WORD DADAh Return: AL = status 00h not installed, OK to install STACK unchanged 01h not installed, not OK to install STACK unchanged FFh installed STACK: WORD ADADh if MSCDEX installed DADBh if Lotus CD/Networker installed Note: although MSCDEX sets the stack word to ADADh on return, any value other than DADAh is considered to mean that MSCDEX is already installed; Lotus CD/Networker v4+ uses this feature to fool MSCDEX into thinking it is already installed when it is in fact CD/Networker that is installed Index: installation check;Lotus CD/Networker Index: Lotus CD/Networker;installation checkTop
INT 2F CU - NETWORK REDIRECTOR - REMOVE REMOTE DIRECTORY AX = 1101h SS = DOS DS SDA first filename pointer -> fully-qualified directory name SDA CDS pointer -> current directory structure for drive with dir Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1103h,AX=1105h,INT 21/AH=3Ah,INT 21/AH=60hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - REMOVE REMOTE DIRECTORY AX = 1102h SS = DOS DS SDA first filename pointer -> fully-qualified directory name SDA CDS pointer -> current directory structure for drive with dir Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Note: appears to be identical to AX=1101h; MS internal documentation calls this function "SEQ_RMDIR" SeeAlso: AX=1101hTop
INT 2F CU - NETWORK REDIRECTOR - MAKE REMOTE DIRECTORY AX = 1103h SS = DOS DS SDA first filename pointer -> fully-qualified directory name SDA CDS pointer -> current directory structure for drive with dir Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1101h,AX=1105h,INT 21/AH=39h,INT 21/AH=60hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - MAKE REMOTE DIRECTORY AX = 1104h SS = DOS DS SDA first filename pointer -> fully-qualified directory name SDA CDS pointer -> current directory structure for drive with dir Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Note: appears to be identical to AX=1103h SeeAlso: AX=1103hTop
INT 2F CU - NETWORK REDIRECTOR - CHDIR AX = 1105h SS = DOS DS SDA first filename pointer -> fully-qualified directory name SDA CDS pointer -> current directory structure for drive with dir Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful CDS updated with new path Notes: this function is called by the DOS 3.1+ kernel directory string in CDS should not have a terminating backslash unless the current directory is the root SeeAlso: AX=1101h,AX=1103h,INT 21/AH=3Bh,INT 21/AH=60hTop
INT 2F CU - NETWORK REDIRECTOR - CLOSE REMOTE FILE AX = 1106h ES:DI -> filled-in SFT (assumed to point at SDA's current SFT field) Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful SFT updated (redirector must decrement open count, which may be done with INT 2F/AX=1208h) ES:DI must be preserved Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1116h,AX=1201h,AX=1208h,AX=1227h,INT 21/AH=3EhTop
INT 2F CU - NETWORK REDIRECTOR - COMMIT REMOTE FILE AX = 1107h ES:DI -> filled-in SFT (assumed to point at SDA's current SFT field) Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful all buffers for file flushed directory entry updated ES:DI must be preserved Desc: perform all the buffer flushing, directory updates, etc. that would be performed on a file close, but do not decrement the SFT reference count Note: this function is called by the DOS 3.1+ kernel SeeAlso: INT 21/AH=68h,INT 21/AX=5D01hTop
INT 2F CU - NETWORK REDIRECTOR - READ FROM REMOTE FILE AX = 1108h ES:DI -> SFT SFT DPB field -> DPB of drive containing file CX = number of bytes SS = DOS DS SDA DTA field -> user buffer Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful CX = number of bytes read (0000h = end of file) SFT updated Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1109h,AX=1229h,INT 21/AH=3Fh"DOS",INT 21/AX=5D06hTop
INT 2F CU - NETWORK REDIRECTOR - WRITE TO REMOTE FILE AX = 1109h ES:DI -> SFT SFT DPB field -> DPB of drive containing file CX = number of bytes SS = DOS DS SDA DTA field -> user buffer Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful CX = number of bytes written SFT updated Notes: this function is called by the DOS 3.1+ kernel PrintCache v3.1 PCACHE.EXE intercepts this function for SFTs where the Device Driver Header field points at PCACHE, but does not intercept any other network redirector functions SeeAlso: AX=1107h,AX=1108h,INT 21/AH=40h,INT 21/AX=5D06hTop
INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - LOCK REGION OF FILE AX = 110Ah BX = file handle CX:DX = starting offset SI = high word of size STACK: WORD low word of size ES:DI -> SFT SFT DPB field -> DPB of drive containing file SS = DOS DS Return: CF set on error AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) STACK unchanged Notes: this function is called by the DOS 3.10-3.31 kernel the redirector is expected to resolve lock conflicts SeeAlso: AX=110Bh,INT 21/AH=5ChTop
INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - LOCK/UNLOCK REGION OF FILE AX = 110Ah BL = function 00h lock 01h unlock CX = number of lock/unlock parameters (0001h for DOS 4.0-6.1) DS:DX -> parameter block (see #02606) ES:DI -> SFT SFT DPB field -> DPB of drive containing file SS = DOS DS Return: CF set on error AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) Notes: this function is called by the DOS 4.0+ kernel the redirector is expected to resolve lock conflicts SeeAlso: AX=110Bh,INT 21/AH=5Ch Format of parameter block entry [array, but currently limited to single entry]: Offset Size Description (Table 02606) 00h DWORD start offset 04h DWORD size of regionTop
INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - UNLOCK REGION OF FILE AX = 110Bh BX = file handle CX:DX = starting offset SI = high word of size STACK: WORD low word of size ES:DI -> SFT for file SFT DPB field -> DPB of drive containing file Return: CF set on error AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) STACK unchanged Note: this function is called by the DOS 3.1-3.31 kernel; DOS 4.0+ calls AX=110Ah instead SeeAlso: AX=110Ah,INT 21/AH=5ChTop
INT 2F CU - NETWORK REDIRECTOR - GET DISK INFORMATION AX = 110Ch ES:DI -> current directory structure for desired drive Return: CF clear if data valid AL = sectors per cluster AH = media ID byte BX = total clusters CX = bytes per sector DX = number of available clusters CF set if data invalid Note: this function is called by the DOS 3.1+ kernel SeeAlso: INT 21/AH=36hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - SET REMOTE FILE'S ATTRIBUTES AX = 110Dh SDA first filename pointer -> name of file ??? Return: ??? Note: similar to AX=110Eh SeeAlso: AX=110EhTop
INT 2F CU - NETWORK REDIRECTOR - SET REMOTE FILE'S ATTRIBUTES AX = 110Eh SS = DOS DS SDA first filename pointer -> fully-qualified name of file SDA CDS pointer -> current directory structure for drive with file STACK: WORD new file attributes Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful STACK unchanged Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=110Dh,AX=110Fh,INT 21/AX=4301h,INT 21/AH=60hTop
INT 2F CU - NETWORK REDIRECTOR - GET REMOTE FILE'S ATTRIBUTES AND SIZE AX = 110Fh SS = DOS DS SDA first filename pointer -> fully-qualified name of file SDA CDS pointer -> current directory structure for drive with file (offset = FFFFh if null CDS [net direct request]) SDA search attributes = mask of attributes which may be included in search for file Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful AX = file attributes BX:DI = file size CX = time stamp of file DX = date stamp of file Notes: this function is called by the DOS 3.1+ kernel wildcards and device names are not permitted SeeAlso: AX=110Eh,INT 21/AX=4300h,INT 21/AH=60hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GET REMOTE FILE'S ATTRIBUTES AND SIZE AX = 1110h SDA first filename pointer -> name of file ??? Return: ??? Note: appears to be similar to AX=110Fh SeeAlso: AX=110EhTop
INT 2F CU - NETWORK REDIRECTOR - RENAME REMOTE FILE AX = 1111h SS = DS = DOS DS SDA first filename pointer = offset of fully-qualified old name SDA second filename pointer = offset of fully-qualified new name SDA CDS pointer -> current directory structure for drive with file Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1112h,INT 21/AH=56h,INT 21/AH=60hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - RENAME REMOTE FILE AX = 1112h SS = DS = DOS DS SDA first filename pointer -> name of file ??? Return: ??? Note: similar to AX=1111h SeeAlso: AX=1111hTop
INT 2F CU - NETWORK REDIRECTOR - DELETE REMOTE FILE AX = 1113h SS = DS = DOS DS SDA first filename pointer -> fully-qualified filename in DOS DS SDA CDS pointer -> current directory structure for drive with file Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Notes: this function is called by the DOS 3.1+ kernel the filespec may contain wildcards SeeAlso: AX=1114h,INT 21/AH=41h,INT 21/AH=60hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - DELETE REMOTE FILE AX = 1114h SDA first filename pointer -> name of file ??? Return: ??? Note: similar to AX=1113h SeeAlso: AX=1113hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - OPEN REMOTE FILE AX = 1115h SS = DOS DS ES:DI -> SFT ??? ??? Return: ??? Note: similar to AX=1116h SeeAlso: AX=1116h,AX=112EhTop
INT 2F CU - NETWORK REDIRECTOR - OPEN EXISTING REMOTE FILE AX = 1116h ES:DI -> uninitialized SFT SS = DOS DS SDA first filename pointer -> fully-qualified name of file to open STACK: WORD file access and sharing modes (see #01402 at INT 21/AH=3Dh) Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful SFT filled (except handle count, which DOS manages itself) STACK unchanged Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1106h,AX=1115h,AX=1117h,AX=1118h,AX=112Eh,INT 21/AH=3Dh SeeAlso: INT 21/AH=60hTop
INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE REMOTE FILE AX = 1117h ES:DI -> uninitialized SFT SS = DOS DS SDA first filename pointer -> fully-qualified name of file to open SDA CDS pointer -> current directory structure for drive with file STACK: WORD file creation mode low byte = file attributes (see #01401 at INT 21/AH=3Ch) high byte = 00h normal create, 01h create new file Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful SFT filled (except handle count, which DOS manages itself) STACK unchanged Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1106h,AX=1116h,AX=1118h,AX=112Eh,INT 21/AH=3Ch,INT 21/AH=60hTop
INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE FILE WITHOUT CDS AX = 1118h ES:DI -> uninitialized SFT SS = DOS DS SDA first filename pointer -> fully-qualified name of file STACK: WORD file creation mode low byte = file attributes high byte = 00h normal create, 01h create new file Return: ??? STACK unchanged Note: this function is called by the DOS 3.1+ kernel when creating a file on a drive for which the SDA CDS pointer has offset FFFFh SeeAlso: AX=1106h,AX=1116h,AX=1117h,AX=112Eh,INT 21/AH=60hTop
INT 2F CU - NETWORK REDIRECTOR - FIND FIRST FILE WITHOUT CDS AX = 1119h SS = DS = DOS DS [DTA] = uninitialized 21-byte findfirst search data (see #01626 at INT 21/AH=4Eh) SDA first filename pointer -> fully-qualified search template SDA search attribute = attribute mask for search Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful [DTA] = updated findfirst search data (bit 7 of first byte must be set) [DTA+15h] = standard directory entry for file (see #01352) Notes: this function is called by the DOS 3.1+ kernel DOS 4.x IFSFUNC returns CF set, AX=0003h SeeAlso: AX=111Ah,AX=111Bh,INT 21/AH=1AhTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - FIND NEXT FILE WITHOUT CDS AX = 111Ah ??? Return: CF set AX = error code (03h for DOS 4.01 IFSFUNC) Note: use AX=111Ch for DOS 5+ SeeAlso: AX=1119h,AX=111ChTop
INT 2F CU - NETWORK REDIRECTOR - FINDFIRST AX = 111Bh SS = DS = DOS DS [DTA] = uninitialized 21-byte findfirst search data (see #01626 at INT 21/AH=4Eh) SDA first filename pointer -> fully-qualified search template SDA CDS pointer -> current directory structure for drive with file SDA search attribute = attribute mask for search Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful [DTA] = updated findfirst search data (bit 7 of first byte must be set) [DTA+15h] = standard directory entry for file (see #01352) Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1119h,AX=111Ch,INT 21/AH=1Ah,INT 21/AH=4Eh,INT 21/AH=60hTop
INT 2F CU - NETWORK REDIRECTOR - FINDNEXT AX = 111Ch SS = DS = DOS DS ES:DI -> CDS ES:DI -> DTA (MSDOS v5.0) [DTA] = 21-byte findfirst search data (see #01626 at INT 21/AH=4Eh) Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful [DTA] = updated findfirst search data (bit 7 of first byte must be set) [DTA+15h] = standard directory entry for file (see #01352) Note: this function is called by the DOS 3.1+ kernel SeeAlso: AX=1119h,AX=111Bh,INT 21/AH=1Ah,INT 21/AH=4FhTop
INT 2F CU - NETWORK REDIRECTOR - CLOSE ALL REMOTE FILES FOR PROCESS (ABORT) AX = 111Dh SS = DOS DS SDA PSP segment field = PSP of terminating process Return: nothing Notes: used when a process is aborted; the process being terminated is indicated by the "sharing PSP" field in the SDA (offset 1Ah/1Ch) this function is called by the DOS 3.1+ kernel closes all FCBs opened by process SeeAlso: INT 21/AX=5D04hTop
INT 2F CU - NETWORK REDIRECTOR - DO REDIRECTION AX = 111Eh SS = DOS DS STACK: WORD function to execute 5F00h get redirection mode BL = type (03h printer, 04h disk) Return: BH = state (00h off, 01h on) 5F01h set redirection mode BL = type (03h printer, 04h disk) BH = state (00h off, 01h on) 5F02h get redirection list entry BX = redirection list index DS:SI -> 16-byte local device name buffer ES:DI -> 128-byte network name buffer Return: must set user's BX to device type and CX to stored parameter value, using AX=1218h to get stack frame address 5F03h redirect device BL = device type (see INT 21/AX=5F03h) CX = stored parameter value DS:SI -> ASCIZ source device name ES:DI -> destination ASCIZ network path + ASCIZ passwd 5F04h cancel redirection DS:SI -> ASCIZ device name or network path 5F05h get redirection list extended entry BX = redirection list index DS:SI -> buffer for ASCIZ source device name ES:DI -> buffer for destination ASCIZ network path Return: BH = status flag BL = type (03h printer, 04h disk) CX = stored parameter value BP = NETBIOS local session number 5F06h similar to 5F05h??? Return: CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) STACK unchanged Notes: this function is called by the DOS 3.1+ kernel on INT 21/AH=5Fh (including LAN Manager calls) the PC Network 1.00 redirector does not support function 5F06h SeeAlso: INT 21/AX=5F00h,INT 21/AX=5F01h,INT 21/AX=5F02h,INT 21/AX=5F03h SeeAlso: INT 21/AX=5F04h,INT 21/AX=5F05h,INT 21/AX=5F06hTop
INT 2F CU - NETWORK REDIRECTOR - PRINTER SETUP AX = 111Fh STACK: WORD function 5E02h set printer setup 5E03h get printer setup 5E04h set printer mode 5E05h get printer mode Return: CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) STACK unchanged Note: this function is called by the DOS 3.1+ kernel SeeAlso: INT 21/AX=5E02h,INT 21/AX=5E03h,INT 21/AX=5E04h,INT 21/AX=5E05hTop
INT 2F CU - NETWORK REDIRECTOR - FLUSH ALL DISK BUFFERS AX = 1120h DS = DOS DS ??? Return: CF clear (successful) Notes: this function is called by the DOS 3.1+ kernel uses CDS array pointer and LASTDRIVE= entries in DOS list of lists SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01hTop
INT 2F CU - NETWORK REDIRECTOR - SEEK FROM END OF REMOTE FILE AX = 1121h CX:DX = offset (in bytes) from end ES:DI -> SFT SFT DPB field -> DPB of drive with file SS = DOS DS Return: CF set on error AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful DX:AX = new file position Note: this function is called by the DOS 3.1+ kernel, but only when seeking from the end of a file opened with sharing modes set in such a manner that another process is able to change the size of the file while it is already open SeeAlso: AX=1228h,INT 21/AH=42hTop
INT 2F CU - NETWORK REDIRECTOR - PROCESS TERMINATION HOOK AX = 1122h SS = DOS DS DS = PSP of process about to terminate Return: ??? Notes: this function is called by the DOS 3.1+ kernel after calling this function, the kernel calls INT 2F/AX=111Dh SeeAlso: AX=111Dh,INT 21/AH=4Ch,INT 60/DI=0601hTop
INT 2F CU - NETWORK REDIRECTOR - QUALIFY REMOTE FILENAME AX = 1123h DS:SI -> ASCIZ filename to canonicalize ES:DI -> 128-byte buffer for qualified name Return: CF set if not resolved Notes: called by MS-DOS 3.1+ kernel, but not called by DR DOS 5.0 unless the filename matches the name of a character device called first when DOS attempts to resolve a filename (unless inside an AX=5D00h server call); if this fails, DOS resolves the name locally SeeAlso: AX=1221h,INT 21/AH=60hTop
INT 2F CU - NETWORK REDIRECTOR - TURN OFF REMOTE PRINTER AX = 1124h ES:DI -> SFT SS = DOS DS ??? Return: CX = ??? Note: this function is called by the DOS 3.1+ kernel if AX=1126h returns CF set SeeAlso: AX=1126hTop
INT 2F CU - NETWORK REDIRECTOR - REDIRECTED PRINTER MODE AX = 1125h STACK: WORD subfunction 5D07h get print stream state Return: DL = current state 5D08h set print stream state DL = new state 5D09h finish print job Return: CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) STACK unchanged Note: this function is called by the DOS 3.1+ kernel SeeAlso: INT 21/AX=5D07h,INT 21/AX=5D08h,INT 21/AX=5D09hTop
INT 2F CU - NETWORK REDIRECTOR - REMOTE PRINTER ECHO ON/OFF AX = 1126h ES:DI -> SFT for file handle 4??? SS = DOS DS??? ??? Return: CF set on error Notes: this function is called by the DOS 3.1+ kernel called when print echoing (^P, ^PrtSc) changes state and STDPRN has bit 11 of the device information word in the SFT set SeeAlso: AX=1124hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED AX = 1127h Return: CF set AX = 0001h (invalid function) (see #01680 at INT 21/AH=59h/BX=0000h)Top
INT 2F - NetWare 4.0 - REMOTE FILE COPY
AX = 1127h
BX = 4E57h ('NW') (signature identifying this as a NetWare call)
SI = source file handle
DI = destination file handle
DX:CX = number of bytes to copy, starting at current file position
Return: CF clear if successful
CF set on error
AX = error code (05h,06h,0Bh,11h,3Bh) (see #01680)
DX:CX = number of bytes successfully copied (file position updated)
Notes: this is the only call which may be made directly to the NetWare
redirector from an application
COMMAND.COM's COPY and DOS's XCOPY reportedly call INT 21/AX=1127h in
order to speed up copies between files on the same network server;
if error code 11h (not same device) is returned, the copy is
performed in the usual manner. However, no such calls appear to
be present in MS-DOS 6.22.
From the DR DOS "Panther" BETA COMMAND.COM (1992/06/22) up to some of
the Novell DOS 7 COMMAND.COM updates (1994/09/12), the shell made
calls to INT 2F/AX=11F0h to attempt "remote server COPYing". However,
this was removed from later releases of the shell because it stopped
Performance Technologies' PowerLAN 3.1 working. (A successor of
the DR-DOS 7.03 COMMAND.COM may possibly reintroduce this remote
copy feature. Probably it would then try both INT 2F/AX=1127h and
INT 2F/AX=11F0h.)
SeeAlso: INT 2F/AX=11F0h
Top
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED AX = 1128h Return: CF set AX = 0001h (invalid function) (see #01680 at INT 21/AH=59h/BX=0000h)Top
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED AX = 1129h Return: CF set AX = 0001h (invalid function) (see #01680 at INT 21/AH=59h/BX=0000h)Top
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - CLOSE ALL FILES FOR PROCESS AX = 112Ah DS = DOS DS ??? Return: ??? Note: does something to each IFS driverTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GENERIC IOCTL AX = 112Bh SS = DOS DS CX = function/category DS:DX -> parameter block STACK: WORD value of AX on entry to INT 21 (440Ch or 440Dh) ??? Return: CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Note: this function is called by the DOS 4.0 kernelTop
INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - "UPDATE_CB" - ??? AX = 112Ch SS = DOS DS SDA current SFT pointer -> SFT for file ??? Return: CF set on error Note: called by SHARE in DOS 5.0-6.0Top
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - EXTENDED ATTRIBUTES AX = 112Dh BL = subfunction (value of AL on INT 21) 02h get extended attributes 03h get extended attribute properties 04h set extended attributes Return: CF clear else ??? Return: CX = ??? (00h or 02h for DOS 4.01) ES:DI -> SFT for file SS = DOS DS Return: DS = DOS DS Note: this function is called by the DOS 4.0 kernel on INT 21/AX=5702h, INT 21/AX=5703h, and INT 21/AX=5704h SeeAlso: INT 21/AX=5702h,INT 21/AX=5703h,INT 21/AX=5704h,INT 21/AH=6EhTop
INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - EXTENDED OPEN/CREATE FILE AX = 112Eh SS = DS = DOS DS ES:DI -> uninitialized SFT for file STACK: WORD file attribute for created/truncated file low byte = file attributes high byte = 00h normal create/open, 01h create new file SDA first filename pointer -> fully-qualified filename SDA extended file open action = action code (see #01770 at INT 21/AX=6C00h) SDA extended file open mode = open mode for file (see INT 21/AX=6C00h) Return: CF set on error AX = error code CF clear if successful CX = result code 01h file opened 02h file created 03h file replaced (truncated) SFT initialized (except handle count, which DOS manages itself) Note: this function is called by the DOS 4.0+ kernel BUG: this function is not called correctly under some DOS versions (at least 5.0 and 6.2): the file attribute on the stack is not correct if the action code is 11h, the result code in CX is not passed back to the application. SeeAlso: AX=1115h,AX=1116h,AX=1117h,INT 21/AX=6C00hTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - IFS IOCTL AX = 112Fh SS = DOS DS STACK: WORD function in low byte 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 = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Note: this function is called by the DOS 4.0 kernel SeeAlso: INT 21/AH=6BhTop
INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GET IFSFUNC SEGMENT AX = 1130h Return: ES = CS of resident IFSFUNCTop
INT 2F - LAN Manager Enhanced DOS Services - ??? AX = 1180h ??? Return: ??? SeeAlso: AX=1100h,AX=1181h,AX=118EhTop
INT 2F - LAN Manager Enhanced DOS Services - SET USER NAME??? AX = 1181h ??? Return: ??? SeeAlso: AX=1100h,AX=1180hTop
INT 2F - LAN Manager Enhanced DOS Services - INSTALL SERVICE AX = 1182h ??? Return: ??? SeeAlso: AX=1100h,AX=1180hTop
INT 2F - LAN Manager Enhanced DOS - ??? AX = 1184h ??? Return: ???Top
INT 2F - LAN Manager Enhanced DOS - DosReadAsynchNmPipe AX = 1186h DS:SI -> stack frame (see #02607) Return: CF clear if successful CF set if error AX = error code Note: LAN Manager enhance mode adds features beyond the standard redirector file/printer services SeeAlso: AX=118Fh,AX=1190h,AX=1191h,INT 21/AX=5F39h Format of LAN Manager DosReadAsynchNmPipe stack frame: Offset Size Description (Table 02607) 00h DWORD -> number of bytes read 04h WORD size of buffer 06h DWORD -> buffer 0Ah DWORD -> return code 0Eh DWORD function to call on completion as function( char far *buffer ) 12h WORD handleTop
INT 2F - LAN Manager 2.0+ DOS Enhanced ENCRYPT.EXE - STREAM ENCRYPTION SERVICE AX = 118Ah BX = function (0000h or 0001h) Return: CF clear if successful AX = 1100h success CF set if error AX = 0001h, etc. SeeAlso: AX=1186h,AH=41h,AH=42h,AH=4BhTop
INT 2F - LAN Manager Enhanced DOS - ??? AX = 118Bh ??? Return: ???Top
INT 2F - LAN Manager Enhanced DOS - ??? AX = 118Ch ??? Return: ???Top
INT 2F - LAN Manager Enhanced DOS - ??? AX = 118Eh ??? Return: ???Top
INT 2F - LAN Manager Enhanced DOS - DosWriteAsynchNmPipe AX = 118Fh DS:SI -> stack frame (see #02608) Return: CF clear if successful CF set if error AX = error code SeeAlso: AX=1186h,AX=1191h,INT 21/AX=5F3Ah Format of LAN Manager DosReadAsynchNmPipe stack frame: Offset Size Description (Table 02608) 00h DWORD -> number of bytes read 04h WORD Size of buffer 06h DWORD -> buffer 0Ah DWORD -> return code 0Eh DWORD function to call on completion as function( char far *buffer ) 12h WORD handleTop
INT 2F - LAN Manager Enhanced DOS - DosReadAsynchNmPipe2 AX = 1190h DS:SI -> stack frame (see #02609) Return: CF clear if successful CF set if error AX = error code SeeAlso: AX=1186h,AX=1191h Format of LAN Manager DosReadAsynchNmPipe2 stack frame: Offset Size Description (Table 02609) 00h DWORD -> number of bytes read 04h WORD size of buffer 06h DWORD -> buffer 0Ah DWORD -> return code 0Eh DWORD function to call on completion as function( char far *buffer ) 12h WORD handle 14h DWORD ???Top
INT 2F - LAN Manager Enhanced DOS - DosWriteAsynchNmPipe2 AX = 1191h DS:SI -> stack frame (see #02610) Return: CF clear if successful CF set if error AX = error code SeeAlso: AX=118Fh,AX=1190h,INT 21/AX=5F3Ah Format of LAN Manager DosReadAsynchNmPipe2 stack frame: Offset Size Description (Table 02610) 00h DWORD -> number of bytes read 04h WORD size of buffer 06h DWORD -> buffer 0Ah DWORD -> return code 0Eh DWORD function to call on completion as function( char far *buffer ) 12h WORD handle 14h DWORD ???Top
INT 2F - Novell ??? - REMOTE FILE COPY AX = 11F0h SI = source file handle DI = destination file handle DX:CX = number of bytes to copy, starting at current file position CF cleared Return: CF clear: AX = 11F0h "no network there" AX <> 11F0h if successful CF set on error "the request could not be handled" AX = error code (05h,06h,0Bh,11h,3Bh) (see #01680) DX:CX = number of bytes successfully copied (file position updated) Notes: From the DR DOS "Panther" BETA COMMAND.COM (1992/06/22) up to some of the Novell DOS 7 COMMAND.COM updates (1994/09/12), the shell made calls to INT 2F/AX=11F0h to attempt "remote server COPYing". However, this was removed from later releases of the shell because it interfered with Performance Technologies' PowerLAN 3.1. (A successor of the DR-DOS 7.03 COMMAND.COM may possibly reintroduce this remote copy feature. Probably it would then try both INT 2F/AX=1127h and INT 2F/AX=11F0h.) SeeAlso: INT 2F/AX=1127hTop
INT 2F U - DOS 3.0+ internal - INSTALLATION CHECK AX = 1200h Return: AL = FFh (for compatibility with other INT 2F functions)Top
INT 2F U - DOS 3.0+ internal - CLOSE CURRENT FILE AX = 1201h SS = DOS DS = DOS kernel data seg (must be using a DOS internal stack) SDA current SFT pointer -> SFT of file to close Return: CF set on error ES:DI -> SFT for file CX undefined (new reference count of SFT in many versions) BX destroyed SeeAlso: AX=1106h,AX=1227h,INT 21/AH=3EhTop
INT 2F U - DOS 3.0+ internal - GET INTERRUPT ADDRESS AX = 1202h STACK: WORD vector number Return: ES:BX -> interrupt vector (DWORD containing handler's address) STACK unchangedTop
INT 2F U - DOS 3.0+ internal - GET DOS DATA SEGMENT AX = 1203h Return: DS = data segment of IBMDOS.COM/MSDOS.SYS Note: for DOS prior to version 5.0, the data segment is the same as the code segmentTop
INT 2F U - DOS 3.0+ internal - NORMALIZE PATH SEPARATOR AX = 1204h STACK: WORD character to normalize Return: AL = normalized character (forward slash turned to backslash, all others unchanged) ZF set if path separator STACK unchangedTop
INT 2F U - DOS 3.0+ internal - OUTPUT CHARACTER TO STANDARD OUTPUT AX = 1205h STACK: WORD character to output Return: STACK unchanged Note: can be called only from within DOSTop
INT 2F U - DOS 3.0+ internal - INVOKE CRITICAL ERROR AX = 1206h DI = error code BP:SI -> device driver header (see #01646) SS = DOS DS (must be using a DOS internal stack) STACK: WORD value to be passed to INT 24 in AX Return: AL = 0-3 for Abort, Retry, Ignore, Fail STACK unchanged SeeAlso: INT 24Top
INT 2F U - DOS 3.0+ internal - MAKE DISK BUFFER MOST-RECENTLY USED AX = 1207h DS:DI -> disk buffer Return: nothing Desc: move the indicated buffer to the end of the disk buffer chain (least- recently used is first); under DOS 3.3, the buffer is then moved to the start of the disk buffer chain if it was marked unused Notes: can be called only from within DOS this function is nearly the same as AX=120Fh SeeAlso: AX=120FhTop
INT 2F U - DOS 3.0+ internal - DECREMENT SFT REFERENCE COUNT
AX = 1208h
ES:DI -> SFT
Return: AX = original value of reference count
Notes: if the reference count was 1, it is set to FFFFh ("busy", since 0
indicates that the SFT is not in use). It is the caller's
responsibility to set the reference count to zero after cleaning up.
used by network redirectors such as MSCDEX
SeeAlso: AX=1106h
Top
INT 2F U - DOS 3.0+ internal - FLUSH AND FREE DISK BUFFER AX = 1209h DS:DI -> disk buffer Return: disk buffer marked unused, contents written to disk if buffer dirty Note: can be called only from within DOS SeeAlso: AX=120Eh,AX=1215hTop
INT 2F U - DOS 3.0+ internal - PERFORM CRITICAL ERROR INTERRUPT AX = 120Ah DS = SS = DOS DS (must be using a DOS internal stack) STACK: WORD extended error code Return: AL = user response (0=ignore, 1=retry, 2=abort, 3=fail) CF clear if retry, set otherwise STACK unchanged Notes: can only be called during a DOS function call, as it uses various fields in the SDA to set up the registers for the INT 24 reportedly sets current DPB's first root directory sector to 1 SeeAlso: INT 24Top
INT 2F U - DOS 3.0+ internal - SIGNAL SHARING VIOLATION TO USER AX = 120Bh ES:DI -> system file table entry for previous open of file STACK: WORD extended error code (should be 20h--sharing violation) Return: CF clear if operation should be retried CF set if operation should not be retried AX = error code (20h) (see #01680 at INT 21/AH=59h/BX=0000h) STACK unchanged Notes: can only be called during a DOS function call should only be called if an attempt was made to open an already-open file contrary to the sharing rules invokes INT 24 if SFT file opened via FCB or in compatibility mode with inheritance allowedTop
INT 2F U - DOS 3.0+ internal - OPEN DEVICE AND SET SFT OWNER/MODE AX = 120Ch SDA current SFT pointer -> SFT for file DS = DOS DS SS = DOS DS (must be using a DOS internal stack) Return: ES, DI, AX destroyed Notes: invokes "device open" call on device driver for SFT changes owner of last-accessed SFT to calling process if it was opened via FCB called by network redirectors such as MSCDEXTop
INT 2F U - DOS 3.0+ internal - GET DATE AND TIME AX = 120Dh SS = DOS DS (must be using a DOS internal stack) Return: AX = current date in packed format (see #01666 at INT 21/AX=5700h) DX = current time in packed format (see #01665 at INT 21/AX=5700h) SeeAlso: INT 21/AH=2Ah,INT 21/AH=2ChTop
INT 2F U - DOS 3.0+ internal - MARK ALL DISK BUFFERS UNREFERENCED AX = 120Eh SS = DOS DS (must be using a DOS internal stack) Return: DS:DI -> first disk buffer Notes: clears "referenced" flag on all disk buffers in DOS 5+, this has become essentially a NOP, invoking the same code used by AX=1224h (SHARING DELAY) SeeAlso: AX=1209h,AX=1210h,INT 21/AH=0DhTop
INT 2F U - DOS 3.0+ internal - MAKE BUFFER MOST RECENTLY USED AX = 120Fh DS:DI -> disk buffer SS = DOS DS (must be using a DOS internal stack) Return: DS:DI -> next buffer in buffer list Desc: move the indicated buffer to the end of the disk buffer chain (least- recently used is first); under DOS 3.3, the buffer is then moved to the start of the disk buffer chain if it was marked unused Note: this function is the same as AX=1207h except that it returns a pointer to the buffer following the specified buffer in the buffer chain SeeAlso: AX=1207hTop
INT 2F U - DOS 3.0+ internal - FIND UNREFERENCED DISK BUFFER AX = 1210h DS:DI -> first disk buffer to check Return: ZF clear if found DS:DI -> first unreferenced disk buffer ZF set if not found Note: in DOS 5+, this has become essentially a NOP, invoking the same code used by AX=1224h (SHARING DELAY) SeeAlso: AX=120EhTop
INT 2F U - DOS 3.0+ internal - NORMALIZE ASCIZ FILENAME AX = 1211h DS:SI -> ASCIZ filename to normalize ES:DI -> buffer for normalized filename Return: destination buffer filled with uppercase filename, with slashes turned to backslashes SeeAlso: AX=121Eh,AX=1221hTop
INT 2F U - DOS 3.0+ internal - GET LENGTH OF ASCIZ STRING AX = 1212h ES:DI -> ASCIZ string Return: CX = length of string SeeAlso: AX=1225hTop
INT 2F U - DOS 3.0+ internal - UPPERCASE CHARACTER AX = 1213h STACK: WORD character to convert to uppercase Return: AL = uppercase character STACK unchangedTop
INT 2F U - DOS 3.0+ internal - COMPARE FAR POINTERS AX = 1214h DS:SI = first pointer ES:DI = second pointer Return: ZF set if pointers are equal, ZF clear if not equal CF clear if pointers equal, CF set if notTop
INT 2F U - DOS 3.0+ internal - FLUSH BUFFER AX = 1215h DS:DI -> disk buffer SS = DOS DS (must be using a DOS internal stack) STACK: WORD drives for which to skip buffer ignore buffer if drive same as high byte, or bytes differ and the buffer is for a drive OTHER than that given in low byte Return: STACK unchanged Note: can be called only from within DOS SeeAlso: AX=1209hTop
INT 2F U - DOS 3.0+ internal - GET ADDRESS OF SYSTEM FILE TABLE ENTRY AX = 1216h BX = system file table entry number Return: CF clear if successful ES:DI -> system file table entry BX = relative entry number in system file table containing entry AX destroyed CF set if BX greater than FILES= Note: supported by DR DOS 5+ SeeAlso: AX=1220hTop
INT 2F U - DOS 3.0+ internal - GET CURRENT DIRECTORY STRUCTURE FOR DRIVE AX = 1217h SS = DOS DS (must be using a DOS internal stack) STACK: WORD drive (0 = A:, 1 = B:, etc) Return: CF set on error (drive > LASTDRIVE) CF clear if successful DS:SI -> current directory structure for specified drive STACK unchanged SeeAlso: AX=1219hTop
INT 2F U - DOS 3.0+ internal - GET CALLER'S REGISTERS AX = 1218h Return: DS:SI -> saved caller's AX,BX,CX,DX,SI,DI,BP,DS,ES (on stack) Note: only valid while within DOSTop
INT 2F U - DOS 3.0+ internal - SET DRIVE??? AX = 1219h SS = DOS DS (must be using a DOS internal stack) STACK: WORD drive (0 = default, 1 = A:, etc) Return: ??? STACK unchanged Notes: calls AX=1217h builds a current directory structure if inside server call (INT 21/AX=5D00h) SeeAlso: AX=1217h,AX=121FhTop
INT 2F U - DOS 3.0+ internal - GET FILE'S DRIVE AX = 121Ah DS:SI -> filename Return: AL = drive (0 = default, 1 = A:, etc, FFh = invalid) DS:SI -> filename without leading X: (if present) SeeAlso: INT 21/AH=19h,INT 21/AH=60hTop
INT 2F U - DOS 3.0+ internal - SET YEAR/LENGTH OF FEBRUARY AX = 121Bh CL = year - 1980 Return: AL = number of days in February Note: requires DS to be set to the DOS data segment SeeAlso: INT 21/AH=2Bh"DATE"Top
INT 2F U - DOS 3.0+ internal - CHECKSUM MEMORY AX = 121Ch DS:SI -> start of memory to checksum CX = number of bytes DX = initial checksum SS = DOS DS (must be using a DOS internal stack) Return: AX, CX destroyed DX = checksum DS:SI -> first byte after checksummed range Notes: used by DOS to determine day count since 1980/1/1 given a date supported by DR DOS 5.0+ SeeAlso: AX=121DhTop
INT 2F U - DOS 3.0+ internal - SUM MEMORY AX = 121Dh DS:SI -> memory to add up CX = 0000h DX = limit Return: AL = byte which exceeded limit CX = number of bytes before limit exceeded DX = remainder after adding first CX bytes DS:SI -> byte beyond the one which exceeded the limit Notes: used by DOS to determine year or month given day count since 1980/1/1 supported by DR DOS 5.0+ SeeAlso: AX=121ChTop
INT 2F U - DOS 3.0+ internal - COMPARE FILENAMES AX = 121Eh DS:SI -> first ASCIZ filename ES:DI -> second ASCIZ filename Return: ZF set if filenames equivalent, ZF clear if not Note: supported by DR DOS 5.0+ SeeAlso: AX=1211h,AX=1221hTop
INT 2F U - DOS 3.0+ internal - BUILD CURRENT DIRECTORY STRUCTURE AX = 121Fh SS = DOS DS (must be using a DOS internal stack) STACK: WORD drive letter Return: ES:DI -> current directory structure (will be overwritten by next call) STACK unchangedTop
INT 2F U - DOS 3.0+ internal - GET JOB FILE TABLE ENTRY AX = 1220h BX = file handle Return: CF set on error AL = 6 (invalid file handle) CF clear if successful ES:DI -> JFT entry for file handle in current process Notes: the byte pointed at by ES:DI contains the number of the SFT for the file handle, or FFh if the handle is not open supported by DR DOS 5.0+ SeeAlso: AX=1216h,AX=1229hTop
INT 2F U - DOS 3.0+ internal - CANONICALIZE FILE NAME AX = 1221h DS:SI -> file name to be fully qualified ES:DI -> 128-byte buffer for resulting canonical file name SS = DOS DS (must be using a DOS internal stack) Return: (see INT 21/AH=60h) Note: identical to INT 21/AH=60h SeeAlso: AX=1123h,INT 21/AH=60hTop
INT 2F U - DOS 3.0+ internal - SET EXTENDED ERROR INFO AX = 1222h SS = DOS data segment SS:SI -> 4-byte records BYTE error code, FFh = last record BYTE error class, FFh = don't change BYTE suggested action, FFh = don't change BYTE error locus, FFh = don't change SDA error code set Return: SI destroyed SDA error class, error locus, and suggested action fields set Note: can be called only from within DOS SeeAlso: AX=122Dh,INT 21/AH=59h/BX=0000h,INT 21/AX=5D0AhTop
INT 2F U - DOS 3.0+ internal - CHECK IF CHARACTER DEVICE AX = 1223h DS = DOS DS SS = DOS DS (must be using a DOS internal stack) SDA+218h (DOS 3.10-3.30) = eight-character blank-padded name SDA+22Bh (DOS 4.0-6.0) = eight-character blank-padded name SDA file attribute field set direction flag clear (i.e. CLD) Return: CF set if no character device by that name found CF clear if found BH bits 4-0 copied from low byte of device attribute word BH bit 5 set, bits 7-6 clear Notes: can only be called from within DOS the check is skipped (always says "not device") if the volume ID bit of the file attribute field is set on entry SeeAlso: INT 21/AX=5D06h,INT 21/AX=5D0BhTop
INT 2F U - DOS 3.0+ internal - SHARING RETRY DELAY AX = 1224h SS = DOS DS (must be using a DOS internal stack) Return: after delay set by INT 21/AX=440Bh, unless in server call (INT 21/AX=5D00h) Note: delay is dependent on the processor speed, and is skipped entirely if inside a server call SeeAlso: INT 21/AX=440Bh,INT 21/AH=52h,INT 62/AX=0097hTop
INT 2F U - DOS 3.0+ internal - GET LENGTH OF ASCIZ STRING AX = 1225h DS:SI -> ASCIZ string Return: CX = length of string Note: supported by DR DOS 5.0+ SeeAlso: AX=1212hTop
INT 2F U - DOS 3.3+ internal - OPEN FILE AX = 1226h CL = access mode DS:DX -> ASCIZ filename SS = DOS DS (must be using a DOS internal stack) Return: CF set on error AL = error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful AX = file handle Notes: can only be called from within DOS equivalent to INT 21/AH=3Dh used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel SeeAlso: AX=1227h,INT 21/AH=3DhTop
INT 2F U - DOS 3.3+ internal - CLOSE FILE AX = 1227h BX = file handle SS = DOS DS (must be using a DOS internal stack) Return: CF set on error AL = 06h invalid file handle CF clear if successful Notes: can only be called from within DOS equivalent to INT 21/AH=3Eh used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel SeeAlso: AX=1106h,AX=1201h,AX=1226h,INT 21/AH=3EhTop
INT 2F U - DOS 3.3+ internal - MOVE FILE POINTER AX = 1228h BP = 4200h, 4201h, 4202h (see INT 21/AH=42h) BX = file handle CX:DX = offset in bytes SS = DOS DS (must be using a DOS internal stack) Return: as for INT 21/AH=42h Notes: equivalent to INT 21/AH=42h, but may only be called from inside a DOS function call sets user stack frame pointer to dummy buffer, moves BP to AX, performs LSEEK, and restores frame pointer used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel SeeAlso: INT 21/AH=42hTop
INT 2F U - DOS 3.3+ internal - READ FROM FILE AX = 1229h BX = file handle CX = number of bytes to read DS:DX -> buffer SS = DOS DS (must be using a DOS internal stack) Return: as for INT 21/AH=3Fh"DOS" Notes: equivalent to INT 21/AH=3Fh, but may only be called when already inside a DOS function call used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel SeeAlso: AX=1226h,INT 21/AH=3Fh"DOS"Top
INT 2F U - DOS 3.3+ internal - SET FASTOPEN ENTRY POINT AX = 122Ah BX = entry point to set (0001h or 0002h) DS:SI -> FASTOPEN entry point (see #02611,#02612) (entry point not set if SI = FFFFh for DOS 4.0+) Return: CF set if specified entry point already set Notes: entry point in BX is ignored under DOS 3.30 both entry points set to same handler by DOS 4.01 DOS 5.0 and 6.0 only set entry point 1 (Table 02611) Values DOS 3.30+ FASTOPEN entry point is called with: AL = 01h Lookup CX = ??? seems to be offset DI = ??? seems to be offset SI = offset in DOS DS of filename AL = 02h insert file into FASTOPEN cache AL = 03h delete file from FASTOPEN cache SI = offset in DOS DS of filename AL = 04h purge FASTOPEN cache AH = subfunction (00h,01h,02h) ES:DI -> ??? CX = ??? (subfunctions 01h and 02h only) Returns: CF set on error or not installed Note: function 03h calls function 01h first SeeAlso: #02612,#02613 (Table 02612) Values PC-DOS 4.01 FASTOPEN is additionally called with: AL = 04h ??? AH = 03h ??? AL = 05h ??? AL = 0Bh ??? AL = 0Ch ??? AL = 0Dh ??? AL = 0Eh ??? AL = 0Fh ??? AL = 10h ??? SeeAlso: #02611,#02613 (Table 02613) Values MS-DOS 5.0-6.0 FASTOPEN is additionally called with: AL = 04h purge FASTOPEN cache AH = 03h ??? AL = 05h ??? DL = drive (00h = A:) ??? AL = 06h ??? ??? SeeAlso: #02611,#02612Top
INT 2F U - DOS 3.3+ internal - IOCTL AX = 122Bh BP = 44xxh SS = DOS DS (must be using a DOS internal stack) additional registers as appropriate for INT 21/AX=44xxh Return: as for INT 21/AH=44h Notes: equivalent to INT 21/AH=44h, but may only be called when already inside a DOS function call sets user stack frame pointer to dummy buffer, moves BP to AX, performs IOCTL, and restores frame pointer used by NLSFUNC in accessing COUNTRY.SYS when invoked by the DOS kernel SeeAlso: INT 21/AH=44hTop
INT 2F U - DOS 3.3+ internal - GET DEVICE CHAIN AX = 122Ch Return: BX:AX -> header of second device driver (NUL is first) in driver chain Note: although this function exists in DR DOS 5.0 and Novell DOS 7, it always returns 0000h:0000h prior to Novell DOS 7 Update 15 SeeAlso: INT 21/AH=52hTop
INT 2F U - DOS 3.3+ internal - GET EXTENDED ERROR CODE AX = 122Dh SS = DOS DS Return: AX = current extended error code SeeAlso: AX=1222h,INT 21/AH=59h/BX=0000hTop
INT 2F U - DOS 4.0+ internal - GET OR SET ERROR TABLE ADDRESSES AX = 122Eh DL = subfunction 00h get standard DOS error table (see #02614) Return: ES:DI -> error table (DOS 4: errors 00h-12h,50h-5Bh) (DOS 5: errors 00h-26h,4Fh,51h-59h) 01h set standard DOS error table ES:DI -> error table 02h get parameter error table (errors 00h-0Ah) Return: ES:DI -> error table 03h set parameter error table ES:DI -> error table 04h get critical/SHARE error table (errors 13h-2Bh) Return: ES:DI -> error table 05h set critical/SHARE error table ES:DI -> error table 06h get ??? error table Return: ES:DI -> error table or 0000h:0000h 07h set ??? error table ES:DI -> error table 08h get error message retriever (see #02615) Return: ES:DI -> FAR procedure to fetch error message 09h set ??? error table ES:DI -> error table Notes: if the returned segment on a "get" is 0001h, then the offset specifies the offset of the error message table within COMMAND.COM, and the procedure returned by DL=08h should be called DOS 5+ COMMAND.COM does not allow setting any of the addresses (calls with DL odd are ignored); they are always returned with segment 0001h for DOS 5.0, the standard and critical/SHARE error tables are combined into a single error table SeeAlso: AX=0500h,INT 21/AH=59h/BX=0000h Format of DOS 4.x error table: Offset Size Description (Table 02614) 00h BYTE FFh 01h 2 BYTEs 04h,00h (DOS version???) 03h BYTE number of error headers following 04h 2N WORDs table of all error headers for table Offset Size Description 00h WORD error message number 02h WORD offset of error message from start of header error messages are count byte followed by msg Note: DOS 5 error tables consist of one word per error number; each word contains either the offset of a counted string or 0000h (Table 02615) Call error retrieval function with: AX = error number (see #02616) DI = offset of error table Return: ES:DI -> error message (counted string) Notes: this function needs to access COMMAND.COM if the messages were not loaded into memory permanently with /MSG; the caller should assume that the returned message will be overwritten by the next call of the function supported by DR DOS 5.0 (Table 02616) Values for parameter errors: 01h Too many parameters 02h Required Parameter missing 03h Invalid switch 04h Invalid keyword 06h Parameter value not in allowed range 07h Parameter value not allowed 08h Parameter value not allowed 09h Parameter format not correct 0Ah Invalid parameter 0Bh Invalid parameter combinationTop
INT 2F U - DOS 4.x internal - SET DOS VERSION NUMBER TO RETURN AX = 122Fh DX = DOS version number (0000h = return true DOS version) Notes: not available under DR DOS 5.0 or 6.0, or Novell DOS 7 supported by FREEVER.COM, a freeware DOS version faking TSR by Matthias Paul SeeAlso: INT 21/AH=30h,INT 21/AX=3306h,INT 2F/AX=E000h"SETDRVER"Top
INT 2F U - Windows95 - FIND SFT ENTRY IN INTERNAL FILE TABLES AX = 1230h ES:DI -> SFT entry Return: CF clear if SFT found in internal table CF set if SFT not in any internal file table AX = 0000h SI:CX = 32-bit starting cluster number for directory DX = directory entry number BX = index into new file system table Notes: the new file system table from which the return values are taken is reported to be statically allocated with 20 entries, and used only for FCB calls this function is not supported by DR-DOS 7.03 or earlier, by S/DOS 1.0, or by PTS-DOS 6.51 BUG: Win95-OSR2 is reported to have a bug that can potentially corrupt memory if SFT tables are "arranged poorly" SeeAlso: AX=1231h,AX=1200hTop
INT 2F U - Windows95 - SET/CLEAR "REPORT WINDOWS TO DOS PROGRAMS" FLAG AX = 1231h DL = function 00h set byte after "IsWIN386" to 01h 01h set "IsWIN386" bit 1 02h clear "IsWIN386" bit 1 else Return: CF set AX = 0001h Return: CF clear AX = 0000h Note: this function is not supported by DR-DOS 7.03 or earlier, by S/DOS 1.0, or by PTS-DOS 6.51 BUG: Windows98 will crash the system if DL>02h on entry due to an off-by-1 conditional jump; if the jump were correct, the function would return CF set/AX=0001h as for Windows95 SeeAlso: AX=1230h,AX=1200hTop
INT 2F U - PTS-DOS - SET MACHINE ID AX = 1250h ??? Return: ??? Note: This is known to be supported by Paragon Technology Systems PTS-DOS sometime before 6.51, but is known not to be supported by S/DOS 1.0 (which derived from PTS-DOS 6.51) SeeAlso: AX=1251hTop
INT 2F U - PTS-DOS - GET MACHINE ID AX = 1251h ??? Return: ??? Note: This is known to be supported by Paragon Technology Systems PTS-DOS sometime before 6.51, but is known not to be supported by S/DOS 1.0 (which derived from PTS-DOS 6.51) SeeAlso: AX=1250hTop
INT 2F U - PTS-DOS 6.51, S/DOS 1.0+ - SET SFT INCREMENT AX = 1252h BX = new SFT increment Return: ??? Note: This function is known to be supported by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0 and probably was also supported in earlier releases. SeeAlso: AX=1253hTop
INT 2F U - PTS-DOS 6.51, S/DOS 1.0+ - GET SFT INCREMENT AX = 1253h Return: BX = current SFT increment AX = ??? Note: This function is known to be supported by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0 and probably was also supported in earlier releases. SeeAlso: AX=1252hTop
INT 2F C - PTS-DOS 6.51, S/DOS 1.0+ - "EMPTY" (RESERVED FOR INPUT STRING) AX = 1260h ES:DI -> string buffer (see getstr) DL = extended keystroke code or FFh if ENTER Return: AX = 0000h (default handler in the kernel) CF set if action done, all registers preserved Notes: This function is known to be handled by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0, and probably was also handled in earlier releases. The default handler in the kernel justs XORs AX,AX and returns. This is reserved to be invoked in input stringTop
INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - GET FIRST UMB AX = 1261h Return: AX = address of first UMB or 1 if invalid function. Note: This function is known to be supported by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0, and probably was also supported in earlier releases.Top
INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - GET DOS COLOR AX = 1262h Return: AL = current video attribute used by DOS functions Note: This function is known to be supported by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0, and probably was also supported in earlier releases. SeeAlso: AX=1263hTop
INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - SET DOS COLOR AX = 1263h DL = new video attribute to be used by DOS functions Return: ??? Note: This function is known to be supported by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0, and probably was also supported in earlier releases. SeeAlso: AX=1262hTop
INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - "SYSBELL" - EMIT A BEEP AX = 1270h Return: ??? Note: This function is known to be supported by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0, and probably was also supported in earlier releases. SeeAlso: AX=1271hTop
INT 2F C - PTS-DOS, S/DOS - RESERVED FOR BEEP AX = 1271h Return: ??? Note: According to the Paragon Technology Systems S/DOS 1.0 sources, which derived from PTS-DOS 6.51, this is reserved for a "BEEP" function. However, S/DOS 1.0 does not handle this function by itself. SeeAlso: AX=1270hTop
INT 2F - PTS-DOS 6.51, S/DOS 1.0+ - BACKDOOR INTERCEPT INT 2Fh CHAIN AX = 12F0h CX:DX -> user INT 2F handler CF set Return: CF clear if successful CX:DX -> previous INT 2F handler CF set on error Notes: This function is known to be supported by Paragon Technology Systems PTS-DOS 6.51 and S/DOS 1.0, and probably was also supported in earlier releases. It is handled from within the kernel's INT 2Fh dispatcher. Resident system extensions should call INT 2Fh/12F0h to intercept the INT 2Fh chain. The main idea of this call is to allow them to be moved to the HMA and intercept INT 2Fh without querying A20 state and without interception of the INT2Fh vector. This is why the "Chain2F" variable must be instanced by placing it to the SDA. On chain entry of the far procedure, CF must be set. All registers except for AX, BP, and DS remain unchanged. If a handler cannot process the call, it must set CF and do a far jump to the previous one in the chain in order to indicate an error. If CF is still set on exit, the call will be ignored.Top
INT 2F - PTS-DOS, S/DOS - RESERVED AX = 12F1h-12FFh Return: ??? Note: According to the Paragon Technology Systems S/DOS 1.0 sources, which derived from PTS-DOS 6.51, these functions are reserved for future use. However, S/DOS 1.0 does not make use of them itself.Top
INT 2F - FreeDOS - FDAK-DDT - INSTALLATION CHECK / STATUS CHECK AX = 12FFh BL = 00h Return: AL = DDh if installed BH = state (00h disabled, nonzero enabled) BL = readonly flag (00h writable, nonzero read-only) Program: FDAK-DDT is the FreeDOS Alternative Kernel Device Drivers Testing release by Yury A. Semenov SeeAlso: AX=12FFh/BL=07hTop
INT 2F - FreeDOS - FDAK-DDT - ENABLE FDAK DRIVERS AX = 12FFh BL = 01h SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=02hTop
INT 2F - FreeDOS - FDAK-DDT - DISABLE FDAK DRIVERS AX = 12FFh BL = 02h SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=01hTop
INT 2F - FreeDOS - FDAK-DDT - SWITCH BLOCK DEVICE TO READ-ONLY AX = 12FFh BL = 03h ??? SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=04hTop
INT 2F - FreeDOS - FDAK-DDT - SWITCH BLOCK DEVICE TO READ-WRITE AX = 12FFh BL = 04h ??? SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=03hTop
INT 2F - FreeDOS - FDAK-DDT - TURN ACTIVITY INDICATOR ON AX = 12FFh BL = 05h Note: not yet implemented as of January 1996 SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=06hTop
INT 2F - FreeDOS - FDAK-DDT - TURN ACTIVITY INDICATOR OFF AX = 12FFh BL = 06h Note: not yet implemented as of January 1996 SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=05hTop
INT 2F - FreeDOS - FDAK-DDT - UNINSTALL AX = 12FFh BL = 07h Return: ES = segment of FDAK memory block Note: the caller must free the memory block returned in ES (via INT 21/AH=49h) SeeAlso: AX=12FFh/BL=00hTop
INT 2F U - DR DOS 6.0+ IBMBIO.COM - QUERY SIZE OF THE BDOS AX = 12FFh BX = 0000h Return: AX = 0000h if supported DX = size of the BDOS in paragraphs Flags trashed ES,CL destroyed (DR PalmDOS) Note: This API is provided by IBMBIO.COM for the initialization phase of drivers loaded via DEVICE=/HIDEVICE=/DEVICEHIGH= directives and is only available during these short time intervals. It is called by DR DOS 6.0 EMM386.SYS and Novell DOS 7+ EMM386.EXE to query the size of the BDOS kernel (the resident code of IBMDOS.COM). SeeAlso: AX=12FFh/BX=0001h,AX=12FFh/BX=0002hTop
INT 2F U - DR DOS 6.0+ IBMBIO.COM - RELOCATE THE BDOS AX = 12FFh BX = 0001h CX = 0000h (DR PalmDOS) DX = segment to relocate to (FFFFh for HMA) Return: AX = 0000h if supported Flags trashed BX,CX,DX,DI,SI,DS,ES destroyed (DR PalmDOS) Notes: This API is provided by IBMBIO.COM for the initialization phase of drivers loaded via DEVICE=/HIDEVICE=/DEVICEHIGH= directives and is only available during these short time intervals. It is initiated by DR DOS 6.0 EMM386.SYS and Novell DOS 7+ EMM386.EXE to relocate the BDOS kernel (e.g. into the HMA). This call is also issued by DR PalmDOS IBMBIO.COM which explicitly clears CX. Under Novell DOS 7+ the actual relocation takes place at a later stage, but under DR PalmDOS the BDOS is relocated immediately. SeeAlso: AX=12FFh/BX=0000h,AX=12FFh/BX=0003hTop
INT 2F U - DR DOS 6.0+ IBMBIO.COM - QUERY SIZE OF THE BIOS AX = 12FFh BX = 0002h Return: AX = 0000h if supported DX = size of the DOS BIOS in paragraphs CL and flags trashed Note: This API is provided by IBMBIO.COM for the initialization phase of drivers loaded via DEVICE=/HIDEVICE=/DEVICEHIGH= directives and is only available during these short time intervals. It is called by DR DOS 6.0 EMM386.SYS and Novell DOS 7 EMM386.EXE to query the size of the DOS BIOS (the resident code of IBMBIO.COM). SeeAlso: AX=12FFh/BX=0000h,AX=12FFh/BX=0003hTop
INT 2F U - DR DOS 6.0+ IBMBIO.COM - RELOCATE THE BIOS AX = 12FFh BX = 0003h CX = 0000h (DR PalmDOS) DX = segment to relocate to (FFFFh for HMA) Return: AX = 0000h if supported Flags trashed Notes: This API is provided by IBMBIO.COM for the initialization phase is only available during these short time intervals. It is initiated by DR DOS 6.0 EMM386.SYS and Novell DOS 7 EMM386.EXE to relocate the resident part of the DOS BIOS. The actual relocation takes place at a later stage. This call is also issued by DR PalmDOS IBMBIO.COM which explicitly clears CX. SeeAlso: AX=12FFh/BX=0001h,AX=12FFh/BX=0002hTop
INT 2F U - DR DOS 6.0+ - BOOT PHASE BROADCASTS FOR MEMORYMAX/RPLOADER/SECURITY AX = 12FFh BX = 0005h CX = 0000h DX = function 0000h MemoryMAX cleanup broadcast 0001h RPLOADER broadcast !!! details to follow Note: called at three separate points inside IBMBIO.COMTop
INT 2F U - DR DOS 6+, Novell DOS 7+ - EMM386.EXE - VIDEO MEMORY SPACE CONTROL
AX = 12FFh
BX = 0006h
DX = 0000h
CX = function
0000h get status of video memory space (MEMMAX /V)
0001h map memory into video memory space (MEMMAX +V)
0002h unmap memory from video memory space (MEMMAX -V)
Return: CF clear if successful
AX = 0000h (successful)
BX = segment of reserved video RAM
CX = segment of used video RAM
DX = segment of first upper MCB
Notes: this functionality is provided by EMM386, and partially supported by
HIDOS.SYS
BL specifies which program handles the call, BH is the function number
BUG: 4DOS 5.51(a) often hangs the system (reported to be reproducable), if
MEMMAX +V is issued from the 4DOS prompt. To avoid this, one should
temporary load COMMAND.COM followed by MEMMAX +v , starting the
application, MEMMAX -v and EXIT. 4DOS 5.5c does not show this
phenomena on the same systems where 5.51a hangs.
SeeAlso: AX=D201h/BX=4849h
(Table 04105)
Values for DR DOS memory space control error code:
00h successful
80h video memory already unmapped
81h video memory already mapped
82h no video memory reserved (/VIDEO not specified)
83h video memory in use (graphics mode or non-standard text mode)
84h mapped video memory contains allocated arena(s)
85h hardware error
86h driver requires protected mode but is permanently in real mode
("EMM386 OFF")
Top
INT 2F U - Novell DOS 7 - SCRIPT.EXE - GET ??? AX = 12FFh BX = 0007h CX = 0000h Return: CF clear if installed AX = 0000h BX = ??? (4426h) CX = ??? (0068h) DX = PSP segment of resident code??? SI = ??? (4AFAh) ES = resident code segmentTop
INT 2F - DR DOS 6.0+ IBMBIO.COM - REGISTER ROOT OF UPPER MEMORY LINK AX = 12FFh BX = 0009h DX = new value for root segment of upper memory link Return: AX = 0000h if supported ES:BX modified Notes: the DX value is stored at offset 66h in SYSVARS (see INT 21h/AH=52h) and offset 18h in the Novell DOS 7 internal variable table (see INT 21/AX=4458h) This API is provided by IBMBIO.COM for the initialization phase of drivers loaded via DEVICE=/HIDEVICE=/DEVICEHIGH= directives and is only available during these short time intervals. It is probably initiated by the Novell DOS 7+ EMM386.EXE. this function has apparently been supported since DR DOS 6.0 "Buxton" of 1991/03/19 for Novell DOS 7, ES:BX points at the internal variable table DRDAT, but this may change in future releasesTop
INT 2F U - Novell DOS 7+ - MEMORYMAX INSTALLATION CHECK AX = 12FFh BX = 0106h Return: CF clear if successful AX = 0000h (successful) BX = EDC0h (signature "European Development Centre") CL = memory manager variant 00h if HIMEM.SYS present 01h if EMMXMA.SYS present 02h if EMM386.EXE present (DPMI/VCPI disabled) 03h if multitasking EMM386.EXE present (DPMI/VCPI loaded) CH = ??? (00h) DX = binary driver version, DH is major, DL is minor ES = segment of EMM386 device driver header (low-memory stub) CF set on error AX = 0001h Notes: BL specifies which program handles the call, BH is the function number if the word at ES:0012h is nonzero, if contains the offset within segment ES of the CEMM-compatible entry point (see #02617) if no other program has hooked INT 67, an alternate installation check is to test for the string "NOVELL EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67 handler's segment; the word immediately preceding this string contains the offset of the API entry point if it is nonzero Index: entry point;Novell EMM386 (Table 02617) Call Novell EMM386.EXE entry point with: AH = 00h get memory manager's status??? ??? AH = 01h set memory manager's status??? ??? AH = 02h Weitek coprocessor support??? AL = subfunction??? more functions??? SeeAlso: #01513 at INT 21/AX=4402h/SF=02h,#03666 at INT 67/AX=FFA5hTop
INT 2F - Novell DOS 7+ - MEMORYMAX GET PAGE TABLE ENTRY AX = 12FFh BX = 0206h ESI = linear address Return: CF clear if successful AX = 0000h (successful) CX = 0000h EDI = page table entry CF set on error AX = function status 0000h function supported CX error code 80h if linear address has no mapping 0001h (AX > 0) function not supported CX undefined Note: This function is supported by Novell DOS 7+ EMM386.EXE 3.0+ and possibly by HIMEM.SYS 2.3+. SeeAlso: AX=12FFh/BX=0306hTop
INT 2F - Novell DOS 7+ - MEMORYMAX SET PAGE TABLE ENTRY AX = 12FFh BX = 0306h ESI = linear address EDI = page table entry Return: CF clear if successful AX = 0000h (successful) CX = 0000h CF set on error AX = function status 0000h function supported CX error code 80h if linear address has no mapping 0001h (AX > 0) function not supported CX undefined Note: This function is supported by Novell DOS 7+ EMM386.EXE 3.0+ and possibly by HIMEM.SYS 2.3+. SeeAlso: AX=12FFh/BX=0206hTop
INT 2F - Novell DOS 7+ - MEMORYMAX CREATE ACCESS KEY AX = 12FFh BX = 0406h Return: CF clear if successful AX = 0000h (successful) CX = 0000h SI:DI = access key CF set on error AX = function status 0000h function supported CX error code 80h if access key already exists 0001h (AX > 0) function not supported CX undefined Note: This function is supported by Novell DOS 7+ EMM386.EXE 3.0+ and possibly by HIMEM.SYS 2.3+. SeeAlso: AX=12FFh/BX=0506hTop
INT 2F - Novell DOS 7+ - MEMORYMAX DESTROY ACCESS KEY AX = 12FFh BX = 0506h SI:DI = access key Return: CF clear if successful AX = 0000h (successful) CX = 0000h CF set on error AX = function status 0000h function supported CX error code 80h if invalid access key 81h if no access key exists 0001h (AX > 0) function not supported CX undefined Note: This function is supported by Novell DOS 7+ EMM386.EXE 3.0+ and possibly by HIMEM.SYS 2.3+. SeeAlso: AX=12FFh/BX=0406hTop
INT 2F U - Novell DOS 7 - EMM386.EXE - ??? AX = 12FFh BL = 06h BH = function (06h-09h) ??? Return: CF clear if successful CF set on error AX = function status 0000h function supported CX error code 0001h (AX > 0) function not supported CX undefinedTop
INT 2F U - Novell DOS 7 - EMM386.EXE - CHECK IF MULTITASKING SUPPORT LOADED???
AX = 12FFh
BX = 0EDCh ('EDC' = Novell European Development Center)
Return: AX = 0000h if ??? loaded
CF clear
BX = 0000h
Notes: called by Novell DOS 7 TaskMgr
if this function returns with AX=0000h, then the code necessary to
support the API on INT 2F/AX=2780h is loaded and that API becomes
available for use
because the request is handled on the initial trap to the memory
manager caused by INT instructions, this function must be invoked
with an actual INT 2F instruction instead of some simulation such
as a far call to the address in the interrupt vector table
SeeAlso: AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h,AX=2780h/CL=04h
Top
INT 2F U - DOS 3.2+ - SET DISK INTERRUPT HANDLER
AH = 13h
DS:DX -> interrupt handler disk driver calls on read/write
ES:BX = address to restore INT 13 to on system halt (exit from root
shell) or warm boot (INT 19)
Return: DS:DX set by previous invocation of this function
ES:BX set by previous invocation of this function
Notes: IO.SYS hooks INT 13 and inserts one or more filters ahead of the
original INT 13 handler. The first is for disk change detection
on floppy drives, the second is for tracking formatting calls and
correcting DMA boundary errors, the third is for working around
problems in a particular version of IBM's ROM BIOS
before the first call, ES:BX points at the original BIOS INT 13; DS:DX
also points there unless IO.SYS has installed a special filter for
hard disk reads (on systems with model byte FCh and BIOS date
"01/10/84" only), in which case it points at the special filter
most DOS 3.2+ disk access is via the vector in DS:DX, although a few
functions are still invoked via an INT 13 instruction
during Windows 3.1 startup this function seems to be used to
temporarily point DOS to a dummy handler in WDCTRL.386 which always
halts the system with a fatal error message. If DS hasn't changed
on return from the function, Windows will display the error message
"Invalid DOS version".
this is a dangerous security loophole for any virus-monitoring software
which does not trap this call ("INT13", "Nomenklatura", and many
Bulgarian viruses are known to use it to get the original ROM entry
point)
the preloadable Novell DOS 7+ SECURITY.BIN driver $SECURE$ traps
this call.
BUG: Novell DOS 7 IBMBIO.COM before 1995-05-08 trashed AX on return from
this function. VGACOPY by Thomas Mnkemeier's VGA Software GmbH
crashed due to this. Later releases of Novell DOS 7 preserved the
contents of the AX register.
SeeAlso: INT 13/AH=01h,INT 19,INT 9D"VIRUS"
Top
INT 2F U - MS-NET - ??? AH = 13h ??? Return: ??? Note: supposedly used to move (or control the movement of) NCBsTop
INT 2F C - NLSFUNC.COM - INSTALLATION CHECK AX = 1400h BX <> 0EDCh Return: AL = status 00h not installed, OK to install 01h not installed, not OK to install FFh installed Notes: this function is called by the DOS v3.3+ kernel supported by OS/2 v1.3+ compatibility box, which always returns AL=FFh supported by DR DOS 5.0+ NLSFUNC v3.0+ documented for MS-DOS 5+, but undocumented in prior versions DR DOS 5.0+ NLSFUNC 3.00+ returns CF set and AX=0001h, if AL was not 00h, FEh, or FFh on entry. SeeAlso: AX=1400h/BX=0EDCh,AX=1401h"NLSFUNC",AX=1402h"NLSFUNC"Top
INT 2Fh - DR-DOS NLSFUNC 4.01+ - ENHANCED INSTALLATION CHECK
AX = 1400h
BX = 0EDCh
Return: AL = status
00h not installed, OK to install
01h not installed, not OK to install
(for example under a multitasker)
FFh installed
ES:DI -> version signature ("4.01$".."4.04$" for 4.01..4.04)
flags may be destroyed
Program: NLSFUNC 4.01+ is currently an independent project under
development by Matthias Paul. It is not yet publically available,
but as NLSFUNC 4.00 did, it will probably become available with
future DR-DOS releases.
Notes: If BX <> 0EDCh on entry, DR-DOS NLSFUNC 4.01+ performs the standard
installation check (INT 2F/AX=1400h), and does not change ES:DI.
DR DOS 5.0+ NLSFUNC 3.00+ returns CF set and AX=0001h, if AL was not
00h, FEh, or FFh on entry.
NLSFUNC 4.01+ will use the ES:DI enhancement to check the driver
version and calculate displacements into the resident driver for
runtime updates of internal structures like the local NLS database
filespec, etc.
If the returned ES points into the HMA (ES=FFFEh) care should be taken
to actually access the HMA while checking the version signature and
updating resident data (mutex with local A20 enable/disable).
While previous issues of NLSFUNC installed under a multitasker,
DR-DOS NLSFUNC 4.01+ will actually adapt to work properly in this
environment.
SeeAlso: AX=1400h"NLSFUNC.COM",AX=14FEh,AX=14FFh,INT 21/AH=65h
Top
INT 2F - European MS-DOS 4.0 POPUP - "CheckPu" - INSTALLATION CHECK AX = 1400h Return: AX = FFFFh if installed BX = maximum memory required to save screen and keyboard info CF clear if successful CF set on error AX = error code 0002h invalid function 0004h unknown error Note: the POPUP interface is used by background programs (see INT 21/AH=80h) to communicate with the user SeeAlso: AX=1401h"POPUP",AX=1402h"POPUP",AX=1403h"POPUP"Top
INT 2F CU - NLSFUNC.COM - CHANGE CODE PAGE AX = 1401h DS:SI -> internal code page structure (see #02618) BX = new code page (see #01757 at INT 21/AX=6602h) DX = country code??? Return: AL = status 00h successful else DOS error code Note: this function is called by the DOS v3.3+ kernel SeeAlso: AX=1400h"NLSFUNC",AX=1402h"NLSFUNC",INT 21/AH=66h Format of DOS 3.30 internal code page structure: Offset Size Description (Table 02618) 00h 8 BYTEs ??? 08h 64 BYTEs name of country information file (see #02619) 48h WORD system code page (see #01757 at INT 21/AX=6602h) 4Ah WORD number of supported subfunctions 4Ch 5 BYTEs data to return for INT 21/AX=6502h 51h 5 BYTEs data to return for INT 21/AX=6504h 56h 5 BYTEs data to return for INT 21/AX=6505h 5Bh 5 BYTEs data to return for INT 21/AX=6506h 60h 41 BYTEs data to return for INT 21/AX=6501h Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS file: Offset Size Description (Table 02619) 00h BYTE ID tag (FFh) 01h 7 BYTEs ASCII "COUNTRY" 08h 8 BYTEs ??? (00h) 10h BYTE ??? (01h) 11h BYTE ??? (00h) 12h BYTE ??? (01h) 13h DWORD offset of first entry in file (see #02620) SeeAlso: #02623 Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS entry: Offset Size Description (Table 02620) 00h WORD number of country-codepage entries following 02h N Country-Codepage entries: Offset Size Description 00h WORD length of entry, not counting this word (000Ch) 02h WORD country ID 04h WORD codepage ID 06h WORD ??? (0000h) 08h WORD ??? (0000h) 0Ah DWORD offset of country-subfunction-header in file (see #02621) Notes: multiple codepages for a country are stored consecutively PTS/DOS places a copyright string immediately following this structure, though a copyright at the end of the file is preferable SeeAlso: #02619 Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS country-subfunc header: Offset Size Description (Table 02621) 00h WORD number of subfunction entries following 02h N subfunction entries Offset Size Description 00h WORD length of subfunction entry, not counting this word (usually 06h) 02h WORD subfunction ID (value passed to INT 21/AH=65h in AL) 04h DWORD offset within file of subfunction data entry (see #02622) SeeAlso: #02620 Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS country-subfunc data:: Offset Size Description (Table 02622) 00h BYTE ID-tag (FFh) 01h 7 BYTEs table-type signature (blank-padded) "CTYINFO" general country info (subfn 01h) "UCASE " uppercase table (subfn 02h) "LCASE " lowercase table (subfn 03h) (DOS 6.2_) "FUCASE " filename uppercase table (subfn 04h) "FCHAR " filename terminator table (subfn 05h) "COLLATE" collating sequence (subfn 06h) "DBCS " double-byte character table (subfn 07h) 08h WORD length of following table in bytes (if 0000h for DBCS table, there will still be a word of 0000h) ---country info (01h)--- 0Ah WORD country ID (see #01400 at AH=38h) 0Ch WORD code page (see #01757) 0Eh 34 BYTEs country-dependent info (see #01399 at AH=38h) ---uppercase table (02h)--- 0Ah 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh ---lowercase table (03h)--- 0Ah 256 BYTEs lowercase equivalents (if any) of chars 00h to FFh ---filename uppercase table (04h)--- 0Ah 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh ---filename terminator table (05h)--- 0Ah BYTE ??? (01h for MS-DOS 3.30-6.00) 0Bh BYTE lowest permissible character value for filename 0Ch BYTE highest permissible character value for filename 0Dh BYTE ??? (00h for MS-DOS 3.30-6.00) 0Eh BYTE first excluded character in range \ all characters in this 0Fh BYTE last excluded character in range / range are illegal 10h BYTE ??? (02h for MS-DOS 3.30-6.00) 11h BYTE number of illegal (terminator) characters 12h N BYTEs characters which terminate a filename: ."/\[]:|<>+=;, ---collating sequence (06h)--- 0Ah 256 BYTEs values used to sort characters 00h to FFh ---DBCS table (07h)--- 0Ah 2N BYTEs start/end for N lead byte ranges WORD 0000h (end of table) SeeAlso: #02621,#01750,#01751,#01753,#01754,#01755,#01756 Format of DR DOS/Novell DOS/OpenDOS COUNTRY.SYS file: Offset Size Description (Table 02623) 00h 126 BYTEs copyright notice (terminated with Ctrl-Z; NUL-padded) the copyright notice starts with the signature "COUNTRY.SYS Rx.xx" where "x.xx" indicates the file format revision, which is checked by the OS (revision is 2.00 for DR DOS 3.41 and 2.01 for all newer versions of DR DOS, Novell DOS, and OpenDOS) 7Eh WORD signature of file format revision 0EDCh = 2.00 (DR DOS 3.41) EDC1h = 2.01 (all newer versions) 80h var country pointer records (see #02624) (packed array of variable-size records) SeeAlso: #02619 Format of DR DOS/Novell DOS/OpenDOS COUNTRY.SYS country pointer record:: Offset Size Description (Table 02624) 00h WORD country code (0000h if end of array) 02h WORD code page (see #01757) 04h WORD ??? (0000h) 06h 7 WORDs offsets in file for INT 21/AH=65h subfunctions 01h to 07h, or 0000h if no table for that subfunction 14h var country information Notes: the end-of-file marker is a country pointer record filled entirely with zeros the data at which the pointers point is in the same format as the tables returned by INT 21/AH=65h, except that the general-info table for subfunction 01h does not contain the length word at the beginning SeeAlso: #02623Top
INT 2F - European MS-DOS 4.0 POPUP - "PostPu" - OPEN/CLOSE POPUP SCREEN AX = 1401h DL = function (00h open, 01h close) DH = wait flag 00h block until screen opens 01h return error if screen is not available 02h urgent--always open screen immediately Return: CF clear if successful BX = amount of memory needed to save screen and keyboard info, 0000h if default save location can be used (only if DH was 02h) CF set on error Note: the application using the screen is frozen until the popup screen is closed SeeAlso: AX=1400h"POPUP",AX=1402h"POPUP",AX=1403h"POPUP"Top
INT 2F CU - NLSFUNC.COM - GET EXTENDED COUNTRY INFO AX = 1402h BP = subfunction (same as AL for INT 21/AH=65h) BX = code page (see #01757 at INT 21/AX=6602h) DX = country code (see #01400 at INT 21/AH=38h) DS:SI -> internal code page structure (see #02618) ES:DI -> user buffer CX = size of user buffer Return: AL = status 00h successful else DOS error code Notes: this function is called by the DOS v3.3+ kernel on INT 21/AH=65h code page structure apparently only needed for COUNTRY.SYS pathname SeeAlso: AX=1401h"NLSFUNC",AX=1403h"NLSFUNC",AX=1404h,INT 21/AH=65hTop
INT 2F - European MS-DOS 4.0 POPUP - "SavePu" - SAVE POPUP SCREEN AX = 1402h ES:DI -> save buffer (0000h:0000h for default buffer in POPUP) Return: CF clear if successful CF set on error AX = error code (see #02625) SeeAlso: AX=1400h"POPUP",AX=1401h"POPUP",AX=1403h"POPUP" (Table 02625) Values for POPUP error code: 0001h process does not own screen 0004h unknown error 0005h invalid pointerTop
INT 2F CU - NLSFUNC.COM - SET CODE PAGE AX = 1403h DS:SI -> internal code page structure (see #02618) BX = code page (see #01757 at INT 21/AX=6602h) DX = country code (see #01400 at INT 21/AH=38h) Return: AL = status ??? Note: this function is called by the DOS v3.3+ kernel on INT 21/AH=38h SeeAlso: AX=1402h"NLSFUNC",AX=1404h,INT 21/AH=38h"SET"Top
INT 2F - European MS-DOS 4.0 POPUP - "RestorePu" - RESTORE SCREEN AX = 1403h ES:DI -> buffer containing saved screen (0000h:0000h for default buffer in POPUP) Return: CF clear if successful CF set on error AX = error code (see #02625) SeeAlso: AX=1400h"POPUP",AX=1401h"POPUP",AX=1402h"POPUP"Top
INT 2F CU - NLSFUNC.COM - GET COUNTRY INFO AX = 1404h BX = code page (see #01757 at INT 21/AX=6602h) DX = country code (see #01400 at INT 21/AH=38h) DS:SI -> internal code page structure (see #02618) ES:DI -> user buffer Return: AL = status ??? Notes: this function is called by the DOS v3.3+ kernel on INT 21/AH=38h code page structure apparently only needed for COUNTRY.SYS pathname SeeAlso: AX=1402h,AX=1403h,INT 21/AH=38h"GET"Top
INT 2F U - DR DOS 5.0 NLSFUNC - GET EXTENDED COUNTRY INFORMATION AX = 14FEh BX = code page (FFFFh=global code page) (see #01757 at INT 21/AX=6602h) DX = country ID (FFFFh=current country) (see #01400 at INT 21/AH=38h) ES:DI -> country information buffer CL = info ID 01h get general internationalization info 02h get pointer to uppercase table 04h get pointer to filename uppercase table 05h get pointer to filename terminator table 06h get pointer to collating sequence table 07h get pointer to Double-Byte Character Set table CF set (used to return error if not installed) Return: CF clear if successful DS:SI -> requested information CF set on error Notes: DR DOS 5.0 NLSFUNC returns CF set and AX=0001h if AL was not 00h, FEh, or FFh on entry. the DR DOS kernel calls this function on INT 21/AX=6501h the value in CL is not range-checked by the DR DOS 5.0 NLSFUNC SeeAlso: #02626,AX=14FFh,INT 21/AH=65h Format of DR DOS COUNTRY.SYS file: Offset Size Description (Table 02626) 00h 126 BYTEs copyright notice (terminated with Ctrl-Z, padded with NULs) 7Eh WORD signature EDC1h 80h var country pointer records Offset Size Description 00h WORD country code (0000h if end of array) 02h WORD code page (see #01757 at INT 21/AX=6602h) 04h WORD ??? (0000h) 06h 7 WORDs offsets in file for data tables for subfunctions 01h-07h var var country informationTop
INT 2F U - DR DOS 5.0+ NLSFUNC - PREPARE CODE PAGE AX = 14FFh BX = code page (see #01757 at INT 21/AX=6602h) Return: AX = ??? ZF set if AX=0000h Notes: DR DOS 5.0 NLSFUNC returns CF set and AX=0001h if AL was not 00h, FEh, or FFh on entry. passes codepage preparation request to each character device supporting the generic IOCTL call BUG: DR DOS 5.0 NLSFUNC 3.00 - Novell DOS 7 NLSFUNC 3.03, and OpenDOS 7.01 - DR-OpenDOS 7.02 NLSFUNC 3.02 requires DF cleared on entry, otherwise the system may crash. However, since this function is called only by the BDOS, the problem never actually occurs. DR-DOS 7.02/7.03 NLSFUNC 4.00+ always clears DF by itself. SeeAlso: AX=1400h/BX=0EDCh,AX=14FEh,INT 21/AX=440Ch,INT 21/AX=6602hTop
INT 2F - DOS 4.00 GRAPHICS.COM - INSTALLATION CHECK AX = 1500h Return: AX = FFFFh ES:DI -> ??? (graphics data?) Note: this installation check conflicts with the CD-ROM Extensions installation check; moved to AX=AC00h in later versions SeeAlso: AX=AC00hTop
INT 2F - CD-ROM - INSTALLATION CHECK AX = 1500h BX = 0000h Return: BX = number of CD-ROM drive letters used CX = starting drive letter (0=A:) AX = 15FFh (Novell DOS 7 NWCDEX only!) Notes: this installation check DOES NOT follow the format used by other software this installation check conflicts with the DOS 4.00 GRAPHICS.COM installation check BUG: this function may return an incorrect starting drive letter when INTERLNK is installed SeeAlso: AX=150Ch,AX=15FFh,INT 2F/AX=D000h"Lotus"Top
INT 2F U - CDBLITZ v2.11 - INSTALLATION CHECK AX = 1500h CH = 90h (function number) BX = 1234h (magic value for CDBLITZ) Return: CX = 1234h if installed CF clear DX = BCD version number (DH = major, DL = minor) Program: CDBLITZ is a CD-ROM cache by Blitz 'n' Software, Inc. SeeAlso: AX=1500h/CH=99hTop
INT 2F U - CDBLITZ v2.11 - GET STATISTICS AX = 1500h CH = 91h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear ES:BX -> statistics record (see #02627) SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=97h Format of CDBLITZ statistics record: Offset Size Description (Table 02627) 00h WORD cache mode (see also AX=1500h/CH=94h) 0001h 'min', 0002h 'max' 02h DWORD number of read calls??? 06h DWORD total number of sectors read 0Ah DWORD unused??? (zero) 0Eh DWORD number of cache hit sectors 12h WORD cache size in KB 14h WORD unused??? (zero) 16h WORD cache state (0000h disabled, 0001h enabled)Top
INT 2F U - CDBLITZ v2.11 - ENABLE CACHE AX = 1500h CH = 92h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=93h,AX=1500h/CH=94hTop
INT 2F U - CDBLITZ v2.11 - DISABLE CACHE AX = 1500h CH = 93h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=92h,AX=1500h/CH=95hTop
INT 2F U - CDBLITZ v2.11 - SET 'MAX' MODE (CACHE BOTH DIRECTORIES AND DATA) AX = 1500h CH = 94h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=92h,AX=1500h/CH=95hTop
INT 2F U - CDBLITZ v2.11 - SET 'MIN' MODE (CACHE ONLY DIRECTORY ENTRIES) AX = 1500h CH = 95h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=94hTop
INT 2F U - CDBLITZ v2.11 - FLUSH CACHE AX = 1500h CH = 96h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear Note: this function resets the counts for number of sectors read and number of cache hits, but no other values in the statistics record (see #02627) SeeAlso: AX=1500h/CH=90hTop
INT 2F U - CDBLITZ v2.11 - GET CACHE STATISTICS AX = 1500h CH = 97h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear AL = cache mode (01h 'min', 02h 'max') (see also AX=1500h/CH=94h) AH = cache state (00h disabled, 01h enabled) BX = cache size in KB DX:CX = total number of reads DI:SI = number of cache hits SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=91hTop
INT 2F U - CDBLITZ v2.11 - UNINSTALL AX = 1500h CH = 99h (function number) BX = 1234h (magic value for CDBLITZ) Return: CF clear ??? Program: CDBLITZ is a CD-ROM cache by Blitz 'n' Software, Inc. SeeAlso: AX=1500h/CH=90hTop
INT 2F - CD-ROM - GET DRIVE DEVICE LIST AX = 1501h ES:BX -> buffer to hold drive letter list (5 bytes per drive letter) Return: buffer filled, for each drive letter BYTE subunit number in driver DWORD address of device driver header (see #01646) Note: reportedly returns AX=0000h and an invalid address under Windows95; other reports say it works fine SeeAlso: AX=1510hTop
INT 2F - CD-ROM - GET COPYRIGHT FILE NAME AX = 1502h ES:BX -> 38-byte buffer for name of copyright file CX = drive number (0=A:) Return: CF set if drive is not a CD-ROM drive AX = 000Fh (invalid drive) CF clear if successful SeeAlso: AX=1503hTop
INT 2F - CD-ROM - GET ABSTRACT FILE NAME AX = 1503h ES:BX -> 38-byte buffer for name of abstract file CX = drive number (0=A:) Return: CF set if drive is not a CD-ROM drive AX = 000Fh (invalid drive) CF clear if successful SeeAlso: AX=1502h,AX=1504hTop
INT 2F - CD-ROM - GET BIBLIOGRAPHIC DOC FILE NAME AX = 1504h ES:BX -> 38-byte buffer for name of bibliographic documentation file CX = drive number (0=A:) Return: CF set if drive is not a CD-ROM drive AX = 000Fh (invalid drive) CF clear if successful SeeAlso: AX=1502h,AX=1503hTop
INT 2F - CD-ROM - READ VTOC AX = 1505h ES:BX -> 2048-byte buffer CX = drive number (0=A:) DX = sector index (0=first volume descriptor,1=second,...) Return: CF set on error AX = error code (15=invalid drive,21=not ready) CF clear if successful AX = volume descriptor type (1=standard,FFh=terminator,0=other) Note: This function was not supported by Novell DOS 7 NWCDEX prior to the 08/16/94 updateTop
INT 2F - CD-ROM - TURN DEBUGGING ON AX = 1506h BX = debugging function to enable Note: reserved for development SeeAlso: AX=1507hTop
INT 2F - CD-ROM - TURN DEBUGGING OFF AX = 1507h BX = debugging function to disable Note: reserved for development SeeAlso: AX=1506hTop
INT 2F - CD-ROM - ABSOLUTE DISK READ AX = 1508h ES:BX -> buffer CX = drive number (0=A:) SI:DI = starting sector number DX = number of sectors to read Return: CF set on error AL = error code (0Fh invalid drive,15h not ready) CF clear if successful Note: returns error 15h (not ready) under Windows95 if the starting sector number is less than 10h SeeAlso: AX=1509hTop
INT 2F - CD-ROM - ABSOLUTE DISK WRITE AX = 1509h ES:BX -> buffer CX = drive number (0=A:) SI:DI = starting sector number DX = number of sectors to write Note: corresponds to INT 26h and is currently reserved and nonfunctional, but could be implemented for CD-R and CD-RW drives SeeAlso: AX=1508hTop
INT 2F - CD-ROM - RESERVED AX = 150AhTop
INT 2F - CD-ROM v2.00+ - DRIVE CHECK AX = 150Bh CX = drive number (0=A:) Return: BX = ADADh if MSCDEX.EXE installed AX = support status 0000h if drive not supported nonzero if supported SeeAlso: AX=150DhTop
INT 2F - CD-ROM v2.00+ - GET MSCDEX.EXE VERSION (GET VERSION) AX = 150Ch BX = 0000h Return: BH = major version BL = minor version Notes: MSCDEX.EXE versions prior to 2.00 leave BX unchanged, thus BX should be 0000h on entry Corel's CORELCDX.COM v1.01d returns 2.20, v1.12a returns 2.21 Meridian Data's CDNETEX.EXE returns its own version number, e.g. 4.70 J.M.A. Hall's CDEMU2.COM returns 2.10 (it is an MSCDEX emulator for networked CD-ROM drives) Windows95 returns v2.95 Novell DOS 7 NWCDEX.EXE returns the same version number reported in its startup message SeeAlso: AX=1500h"CD-ROM",AX=15FFh"CORELCDX"Top
INT 2F - CD-ROM v2.00+ - GET CD-ROM DRIVE LETTERS AX = 150Dh ES:BX -> buffer for drive letter list (1 byte per drive) Return: buffer filled with drive numbers (0=A:). Each byte corresponds to the drive in the same position for function 1501h SeeAlso: AX=150BhTop
INT 2F - CD-ROM v2.00+ - GET/SET VOLUME DESCRIPTOR PREFERENCE AX = 150Eh BX = subfunction 00h get preference DX = 0000h Return: DX = preference settings 01h set preference DH = volume descriptor preference 01h = primary volume descriptor 02h = supplementary volume descriptor DL = supplementary volume descriptor preference 01h = shift-Kanji CX = drive number (0=A:) Return: CF set on error AX = error code (15=invalid drive,1=invalid function) CF clear if successfulTop
INT 2F - CD-ROM v2.00+ - GET DIRECTORY ENTRY
AX = 150Fh
CL = drive number (0=A:)
CH bit 0 = copy flag
clear if direct copy
set if copy to structure which removes ISO/High Sierra diffs
ES:BX -> ASCIZ path name
SI:DI -> buffer for directory entry (see #02628,#02629)
must be 255 bytes for direct copy, 285 bytes for canonical
Return: CF set on error
AX = error code
CF clear if successful
AX = disk format (0=High Sierra,1=ISO 9660)
Note: this function was not supported by Novell DOS 7 NWCDEX prior to the
08/16/94 update
Format of CD-ROM directory entry (direct copy):
Offset Size Description (Table 02628)
00h BYTE length of directory entry
01h BYTE length of XAR in Logical Block Numbers
02h DWORD LBN of data, Intel (little-endian) format
06h DWORD LBN of data, Motorola (big-endian) format
0Ah DWORD length of file, Intel format
0Eh DWORD length of file, Motorola format
---High Sierra---
12h 6 BYTEs date and time
18h BYTE bit flags
19h BYTE reserved
---ISO 9660---
12h 7 BYTEs date and time
(seventh byte is offset from GMT in 15-minute increments)
19h BYTE bit flags
---both formats---
1Ah BYTE interleave size
1Bh BYTE interleave skip factor
1Ch WORD volume set sequence number, Intel format
1Eh WORD volume set sequence number, Motorola format
20h BYTE length of file name
21h N BYTEs file name
BYTE (optional) padding if filename is odd length
N BYTEs system data
SeeAlso: #02629,#01352
Format of CD-ROM directory entry (canonicalized):
Offset Size Description (Table 02629)
00h BYTE length of XAR in Logical Block Numbers
01h DWORD Logical Block Number of file start
05h WORD size of disk in logical blocks
07h DWORD file length in bytes
0Bh 7 BYTEs date and time
12h BYTE bit flags
13h BYTE interleave size
14h BYTE interleave skip factor
15h WORD volume set sequence number
17h BYTE length of file name
18h 38 BYTEs ASCIZ filename
3Eh WORD file version number
40h BYTE number of bytes of system use data
41h 220 BYTEs system use data
SeeAlso: #02628
Top
INT 2F - CD-ROM v2.10+ - SEND DEVICE DRIVER REQUEST AX = 1510h CX = CD-ROM drive letter (0 = A, 1 = B, etc) ES:BX -> CD-ROM device driver request header (see #02597 at AX=0802h) Return: CF clear if device driver has been called (check the request header's status word to determine whether an error has occurred) ES:BX request header updated CF set if device driver has not been called AX = error code (000Fh = invalid drive, 0001h = invalid function) ES:BX request header unchanged Notes: MSCDEX initializes the device driver request header's subunit field based on the drive number specified in CX MSCDEX v2.21 through v2.25 (at least) return error code AX=0001h if nested calls are attempted BUGS: Novell DOS 7 NWCDEX prior to the 12/13/94 update did not initialize the subunit field Windows95 sets CF if CX isn't a CD-ROM drive but leaves CF unchanged if the drive is in fact a CD-ROM SeeAlso: AX=0802hTop
INT 2F - CD-ROM - CORELCDX - INSTALLATION CHECK AX = 15FFh BX = 0000h Return: BX = ABCDh if CORELCDX loaded Note: Corel's CORELCDX.COM is a replacement for MSCDEX.EXE; it also supports the standard MSCDEX installation check calls AX=1500h and AX=150Ch SeeAlso: AX=1500h"CD-ROM",AX=150ChTop
Top
INT 2F - MS Windows - WINDOWS ENHANCED MODE INSTALLATION CHECK AX = 1600h Return: AL = status 00h neither Windows 3.x enhanced mode nor Windows/386 2.x running 01h Windows/386 2.x running 80h XMS version 1 driver installed (neither Windows 3.x enhanced mode nor Windows/386 2.x running) (obsolete--see note) FFh Windows/386 2.x running AL = anything else AL = Windows major version number >= 3 AH = Windows minor version number Notes: INT 2F/AH=16h comprises an API for non-Windows programs (DOS device drivers, TSRs, and applications) to cooperate with multitasking Windows/386 2.x and Windows 3.x and higher enhanced mode. certain calls are also supported in the Microsoft 80286 DOS extender in Windows standard mode this function served as the installation check and AX=1610h served to get the driver entry point for XMS version 1, which is now obsolete. Use AX=4300h and AX=4310h instead Windows95 reports version 4.00, Windows95B reports version 4.03 SeeAlso: AX=160Ah,AX=1610h,AX=4300h,AX=4680h Index: installation check;XMS version 1Top
INT 2F - MS Windows/386 2.x - GET API ENTRY POINT AX = 1602h Return: ES:DI -> Windows/386 2.x API procedure entry point Notes: this interface is supported in Windows 3.x and Windows95 only for 2.x compatibility to get the current virtual machine (VM) ID in Windows/386 2.x: AX = 0000h ES:DI -> return address JUMP to address returned from INT 2F/AX=1602h After JUMP, at return address: BX = current VM ID. SeeAlso: AX=C020hTop
INT 2F C - MS Windows/386 - GET INSTANCE DATA
AX = 1603h
Return: AX = 5248h ('RH') if supported
DS:SI -> Windows/386 instance data (see #02630)
Notes: reportedly supported by RM Nimbus MS-DOS 3.3 kernel
this function is called by DOSMGR when AX=1607h/BX=0015h is not
supported, as is the case in DOS versions prior to 5.0
see Geoff Chappell's book _DOS_Internals_ for additional discussions of
this function, DOSMGR's behavior, and instancing in general
SeeAlso: AX=1607h/BX=0015h
Format of Windows/386 instance data:
Offset Size Description (Table 02630)
00h WORD segment of IO.SYS (0000h = default 0070h)
02h WORD offset in IO.SYS of STACKS data structure (DOS 3.2x)
0000h if not applicable
04h WORD number of instance data entries (max 32)
06h Array of instance data entries
Offset Size Description
00h WORD segment (0002h = DOS kernel)
02h WORD offset
04h WORD size
Top
INT 2F C - MS Windows - WINDOWS ENHANCED MODE & 286 DOSX INIT BROADCAST AX = 1605h ES:BX = 0000h:0000h DS:SI = 0000h:0000h CX = 0000h DX = flags bit 0 = 0 if Windows enhanced-mode initialization bit 0 = 1 if Microsoft 286 DOS extender initialization bits 1-15 reserved (undefined) DI = version number (major in upper byte, minor in lower) Return: CX = 0000h if okay for Windows to load CX = FFFFh (other registers unchanged) if Windows 3.0 in standard mode CX <> 0 if Windows should not load ES:BX -> startup info structure (see #02631) DS:SI -> virtual86 mode enable/disable callback or 0000h:0000h (see #02634) Notes: the Windows enhanced mode loader and Microsoft 286 DOS extender will broadcast an INT 2F/AX=1605h call when initializing. Any DOS device driver or TSR can watch for this broadcast and return the appropriate values. If the driver or TSR returns CX <> 0, it is also its responsibility to display an error message (however, Windows95 is reported to load regardless of the returned CX). each handler must first chain to the prior INT 2F handler with registers unchanged before processing the call if the handler requires local data on a per-VM basis, it must store the returned ES:BX in the "next" field of a startup info structure and return a pointer to that structure in ES:BX a single TSR may set the V86 mode enable/disable callback; if DS:SI is already nonzero, the TSR must fail the initialization by setting CX nonzero MSD checks for Windows 3.0 running in standard mode by testing whether CX=FFFFh and other registers are unchanged on return Novell DOS v7.0 (Update 8 - Update 11) TASKMGR in multitasking mode uses this broadcast, even if TASKMGR.INI sets WinPresent= to OFF Microsoft's EMM386.EXE for DOS 5+ when installed with the NOEMS option changes its driver name from EMMQXXX0 to EMMXXXX0 while Windows is active SeeAlso: AX=1606h,AX=1608h,AX=4B05h Format of Windows Startup Information Structure: Offset Size Description (Table 02631) 00h 2 BYTEs major, minor version of info structure 02h DWORD pointer to next startup info structure or 0000h:0000h 06h DWORD pointer to ASCIZ name of virtual device file or 0000h:0000h 0Ah DWORD virtual device reference data (see #02633) (only used if above nonzero) 0Eh DWORD pointer to instance data records (see #02632) or 0000h:0000h ---structure version >= 4.0--- 12h DWORD pointer to optionally-instanced data records (see #02632) or 0000h:0000h Format of one Instance Item in array: Offset Size Description (Table 02632) 00h DWORD address of instance data (end of array if 0000h:0000h) 04h WORD size of instance data SeeAlso: #02631 Format of Virtual Device Reference Data: Offset Size Description (Table 02633) 00h DWORD physical address of ??? or 00000000h 04h DWORD physical address of ??? table 08h DWORD "DEST_PAGE" address to which pages must be mapped 0Ch N DWORDs "SRC_PAGE" physical addresses of the pages 00000000h = end of table Note: EMM386.EXE sets the first pointer to the start of the device driver chain, the second pointer to a field of 40h bytes followed by a 16-bit offset to the end of the SRC_PAGE table, and DEST_PAGE to the start segment of the UMB area SeeAlso: #02631 (Table 02634) Values Windows virtual mode enable/disable procedure is called with: AX = 0000h disable V86 mode AX = 0001h enable V86 mode interrupts disabled Return: CF set on error CF clear if successful interrupts disabled SeeAlso: #02631Top
INT 2F C - MS Windows - WINDOWS ENHANCED MODE & 286 DOSX EXIT BROADCAST AX = 1606h DX = flags bit 0 = 0 if Windows enhanced-mode exit bit 0 = 1 if Microsoft 286 DOS extender exit bits 1-15 reserved (undefined) Notes: if the init broadcast fails (AX=1605h returned CX <> 0), then this broadcast will be issued immediately. this call will be issued in real mode Novell DOS v7.0 (Update 8 - Update 15) TASKMGR in multitasking mode uses this broadcast, even if TASKMGR.INI sets WinPresent= to OFF SeeAlso: AX=1605h,AX=1609hTop
INT 2F C - MS Windows - VIRTUAL DEVICE CALL OUT API AX = 1607h BX = virtual device ID (see #02642) CX = (usually) callout subfunction Return: (usually) AX,BX,CX,DX,ES contain results Notes: more of a convention than an API, this call specifies a standard mechanism for Windows enhanced-mode virtual devices (VxD's) to talk to DOS device drivers and TSRs see below for details on several virtual devices SeeAlso: AX=1605h,AX=1607h/BX=000Ch,AX=1607h/BX=0014h,AX=1607h/BX=0015h SeeAlso: AX=1607h/BX=0018h,AX=1684h"DEVICE API",AX=C020hTop
INT 2F C - MS Windows - "V86MMGR" VIRTUAL DEVICE API AX = 1607h BX = 0006h (VxD identifier of "V86MMGR") CX = 0000h Return: AX = status 0000h if local A20 state changed 1607h if A20 unchanged other if global A20 state changed SeeAlso: AX=1607h"CALL OUT API"Top
INT 2F C - MS Windows - "VMD" VIRTUAL MOUSE DEVICE API AX = 1607h BX = 000Ch (VxD identifier of "VMD") Return: CX = nonzero if mouse driver already virtualized Note: VMD (Virtual Mouse Driver) calls this and then checks whether CX is nonzero; if yes, it will not automatically virtualize the mouse driver. This would be used if MOUSE.COM already virtualizes itself using the Windows API. SeeAlso: AX=1607h/BX=0014h,AX=1607h/BX=0015hTop
INT 2F C - MS Windows95 - "VKD" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 000Dh (VxD ID for VKD) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - MS Windows 3.1 - "BLOCKDEV" VIRTUAL HARD DISK DEVICE API AX = 1607h BX = 0010h (VxD identifier of "BLOCKDEV") CX = function 0001h starting FastDisk compatibility tests 0002h ending FastDisk compatibility tests 0003h check if FastDisk installation allowed Return: CX = 0000h if allowed Note: this interface is called by the Windows FastDisk driver (such as WDCTRL) when it thinks that the INT 13h handler immediately below IO.SYS's INT 13h code is not in ROM; it should be supported by any program which hooks itself underneath IO.SYS's INT 13h code with INT 2F/AH=13h SeeAlso: AX=1607h/BX=0014h,INT 2F/AH=13hTop
INT 2F C - MS Windows - "VNETBIOS" VIRTUAL DEVICE API AX = 1607h BX = 0014h (VxD identifier of "VNETBIOS") Return: ES:DI -> 128-byte table specifying VNETBIOS actions for each NetBIOS command code (see #02635) Note: VNETBIOS (Virtual NetBIOS) calls this function to determine whether the NetBIOS has an extensions Windows should know about SeeAlso: AX=1607h/BX=000Ch,AX=1607h/BX=0010h,AX=1607h/BX=0015h (Table 02635) Values for VNETBIOS action code: 00h "VN_Unknown" unknown command 04h "VN_No_Map" no memory mapping necessary 08h "VN_Map_In" input buffer is quickly used, so no global mapping needed 0Ch "VN_Map_In" output buffer is quickly used, so no global mapping needed 10h "VN_Map_In_Out" buffer is quickly used, so no global mapping needed 14h "VN_Chain_Send" the chain-send command 18h "VN_Cancel" special case for cancel command 1Ch "VN_Buffer_In" buffer is incoming 20h "VN_Buffer_Out" buffer is outgoing 24h "VN_Buffer_In_Out" buffer used for both incoming and outgoing dataTop
INT 2F C - MS Windows - "DOSMGR" VIRTUAL DEVICE API AX = 1607h BX = 0015h (VxD identifier of "DOSMGR") CX = function 0000h query instance processing DX = 0000h Return: CX = state 0000h not instanced other instanced (DOS 5+ kernel returns 0001h) DX = segment of DOS drivers or 0000h for default of 0070h ES:BX -> patch table (see #02637) 0001h set patches in DOS DX = bit mask of patch requests (see #02636) Return: AX = B97Ch BX = bit mask of patches applied (see #02636) DX = A2ABh 0002h remove patches in DOS (ignored by DOS 5.0 kernel) DX = bit mask of patch requests (see #02636) Return: CX = 0000h (DOS 5-6) Note: return values are ignored by DOSMGR in Windows 3.1 0003h get size of DOS data structures DX = bit mask of request (only one bit can be set) bit 0: Current Directory Structure size Return: if supported request: AX = B97Ch CX = size in bytes of requested structure DX = A2ABh else: CX = 0000h all other registers preserved 0004h determine instanced data structures Return: AX = B97Ch if supported DX = A2ABh if supported (DOS 5+ kernel returns 0000h) BX = bit mask of instanced items bit 0: CDS bit 1: SFT bit 2: device list bit 3: DOS swappable data area 0005h get device driver size ES = segment of device driver Return: DX:AX = 0000h:0000h on error (not dev. driver segment) DX:AX = A2ABh:B97Ch if successful BX:CX = size of device driver in bytes Notes: DOSMGR (DOS Manager) will check whether the OEM DOS/BIOS data has been instanced via this API and will not perform its own default instancing of the normal DOS/BIOS data if so; if this API is not supported, DOSMGR will also try to access instancing data through INT 2F/AX=1603h these functions are supported by the DOS 5+ kernel; DOSMGR contains tables of instancing information for earlier versions of DOS see Geoff Chappell's book _DOS_Internals_ for additional discussions of DOSMGR's behavior and instancing in general SeeAlso: AX=1603h,AX=1605h,AX=1607h/BX=000Ch,AX=1607h/BX=0014h SeeAlso: AX=1684h"DEVICE API" Bitfields for DOSMGR patch requests: Bit(s) Description (Table 02636) 0 enable critical sections 1 NOP setting/checking user ID 2 turn INT 21/AH=3Fh on STDIN into polling loop 3 trap stack fault in "SYSINIT" to WIN386 4 BIOS patch to trap "Insert disk X:" to WIN386 Format of DOSMGR patch table: Offset Size Description (Table 02637) 00h 2 BYTEs DOS version (major, minor) 02h WORD offset in DOS data segment of "SAVEDS" 04h WORD offset in DOS data segment of "SAVEBX" 06h WORD offset in DOS data segment of InDOS flag 08h WORD offset in DOS data segment of User ID word 0Ah WORD offset in DOS data segment of "CritPatch" table to enable critical section calls (see INT 2A/AH=80h) 0Ch WORD (DOS 5+ only) offset in DOS data segment of "UMB_HEAD", containing segment of last MCB in conventional memoryTop
INT 2F C - MS Windows - "VMPoll" VIRTUAL DEVICE - IDLE CALLOUT AX = 1607h BX = 0018h (VMPoll VxD ID) (see #02642) CX = 0000h Return: AX = status 0000h if timeslice used nonzero if timeslice not needed Note: when VMPoll makes this callout, all virtual machines are idle, and any interested TSR can use the opportunity to perform background processing SeeAlso: AX=1607h"CALL OUT API",AX=1689hTop
INT 2F C - MS Windows - "PageFile" VIRTUAL DEVICE - GET LOCK BYTE AX = 1607h BX = 0021h (PageFile VxD ID) CX = 0000h Return: AX = status 0000h success ES:DI -> cache lock byte in disk cacher other no disk cache or unsupported Notes: PageFile issues this call on real-mode initialization in order to allow disk caches to provide it with a byte which it can use to temporarily lock the disk cache; VMPOLL also issues this call, so it is made twice each time Windows starts up if this call fails, PageFile falls back to other techniques for locking the disk cache SeeAlso: AX=1607h"CALL OUT API"Top
INT 2F C - MS Windows - "W32S" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 002Dh (VxD ID for W32S) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - MS Windows - "IFSMgr" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 0040h (VxD ID for IFSMgr) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - MS Windows - "VADLIBD" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 0446h (VxD ID for VADLIBD) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - MS Windows - "IFSMgr" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 0484h (VxD ID for IFSMgr) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - MS Windows - "NWSUP" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 0487h (VxD ID for NWSUP) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - Rational Systems DOS/4GW - ??? AX = 1607h BX = 22C0h ??? Return: ??? SeeAlso: INT 15/AX=BF02h,INT 15/AX=BF04h,#02642Top
INT 2F C - MS Windows - "PharLap" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 28A1h (VxD ID for PharLap) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - MS Windows - "SIWVID" VIRTUAL DEVICE - ??? CALLOUT AX = 1607h BX = 7A5Fh (VxD ID for SIWVID) ??? Return: ??? SeeAlso: AX=1607h"CALL OUT API",#02642Top
INT 2F C - MS Windows - WINDOWS ENHANCED MODE INIT COMPLETE BROADCAST AX = 1608h Notes: called after all installable devices have been initialized real-mode software may be called between the Windows enhanced-mode init call (AX=1605h) and this call; the software must detect this situation SeeAlso: AX=1605h,AX=1609hTop
INT 2F C - MS Windows - WINDOWS ENHANCED MODE BEGIN EXIT BROADCAST AX = 1609h Note: called at the beginning of a normal exit sequence; not made in the event of a fatal system crash SeeAlso: AX=1606h,AX=1608hTop
INT 2F - MS Windows 3.1 - IDENTIFY WINDOWS VERSION AND TYPE AX = 160Ah Return: AX = 0000h if call supported BX = version (BH=major, BL=minor) CX = mode (0002h = standard, 0003h = enhanced) Note: Windows95 reports version 4.00, Windows95B reports version 4.03 SeeAlso: AX=1600h,AX=4680hTop
INT 2F - MS Windows 3.1 - IDENTIFY TSRs AX = 160Bh ES:DI = 0000h:0000h Return: ES:DI -> TSR information structure (see #02638) Desc: this call allows Windows-aware TSRs to make themselves known to Windows. Note: the TSR should first chain to the previous INT 2F handler, then allocate a communication structure, place the returned ES:DI pointer in the first field, and return a pointer to the new structure SeeAlso: AX=1605h,AX=160Ch,AX=4B01h,AX=4B05h Format of TSR-to-Windows information structure: Offset Size Description (Table 02638) 00h DWORD pointer to next structure 04h WORD PSP segment 06h WORD API version ID (0100h) 08h WORD EXEC flags (how to load command specified by "exec_cmd") bit 0: "WINEXEC" bit 1: "LOADLIBRARY" bit 2: "OPENDRIVER" 0Ah WORD "exec_cmd_show" (see #02639) 0Ch DWORD "exec_cmd" pointer to command line to be executed 10h 4 BYTEs reserved (0) 14h DWORD pointer to TSR ID block (see #02640) 18h DWORD pointer to TSR data block or 0000h:0000h (Table 02639) Values for TSR information structure "exec_cmd_show": 00h HIDE 01h SHOWNORMAL 02h SHOWMINIMIZED 03h SHOWMAXIMIZED 04h SHOWNOACTIVE 05h SHOW 06h MINIMIZE 07h SHOWMINNOACTIVE 08h SHOWNA 09h RESTORE Note: this value is passed as the second parameter to the WinExec(), LoadLibrary(), or OpenDriver() call used to execute a requested command line SeeAlso: #02638 Format of Norton Utilities 6.0 TSR ID block: Offset Size Description (Table 02640) 00h WORD length of name string 02h N BYTEs name of TSR's executable SeeAlso: #02638Top
INT 2F - MS Windows 3.1 - DETECT ROMs AX = 160Ch ??? Return: ??? Note: used by ROM Windows; appears to be a NOP under standard Windows95 and Windows95B SeeAlso: AX=160Bh,INT 21/AH=6Dh"ROM"Top
INT 2F U - MS-DOS 7 kernel - BOOT LOGO SUPPORT??? AX = 160Eh BL = subfunction 00h get ??? AX = state of flag manipulated by subfn 04h and 05h 0000h clear FFFFh set DX = ??? (0000h) 01h link in INT 10h??? handlers 02h unlink INT 10h??? handlers 03h ??? 04h set ??? flag 05h clear ??? flag Return: AX = 0000h if supported ??? SeeAlso: AX=160Fh,AX=1611h,AX=1614hTop
INT 2F U - MS-DOS 7 kernel - GET/SET ??? HANDLER AX = 160Fh BL = subfunction 00h get ??? handler Return: AX = 0000h if supported CX:DX -> handler to which control is passed after ??? executes = 160Fh inside a Windows 95B DOS box 01h set ??? handler CX:DX -> new handler for ??? Return: AX = 0000h if supported Notes: this function is not supported if ??? in the IO.SYS drivers portion of the kernel is an IRET instruction (as is the case on my system) rather than a FAR JMP the indicated handler seems to be related to INT 10 processing SeeAlso: AX=160Eh,AX=1611h,AX=1614hTop
INT 2F - XMS v1.x only - GET DRIVER ADDRESS AX = 1610h details unavailable Note: this function and AX=1600h were only used in XMS version 1 and are now obsolete. Use AX=4300h and AX=4310h instead SeeAlso: AX=1600h,AX=4310hTop
INT 2F U - MS-DOS 7 kernel - GET SHELL PARAMETERS AX = 1611h Return: AX = 0000h if supported DS:DX -> primary shell's executable name DS:SI -> prinary shell command line (counted string) BH = ??? (00h) BL = ??? (00h,40h) Desc: return the program name and commandline from the CONFIG.SYS SHELL= statement SeeAlso: AX=160Eh,AX=160Fh,AX=1612h,AX=4A33hTop
INT 2F U - MS-DOS 7 kernel - GET ??? AX = 1612h Return: AX = 0000h if supported ES:BX -> DOS 7 kernel data (see #02641) Note: called by VTD.VXD; one of the returned data items is a pointer to the WORD in which the default CLOCK$ driver maintains its count of days since 01jan1980 SeeAlso: AX=160Fh,AX=1611h,AX=1613h Format of MS-DOS 7.x ??? kernel data: Offset Size Description (Table 02641) 00h WORD structure revision??? (0001h) 02h DWORD -> ??? function (call with DS=high word of this field) the indicated function vectors through the INT 13 hook at 0070h:00B4h and then forces the A20 gate open 06h DWORD -> ??? function 0Ah WORD DOS DS 0Ch 8 BYTEs zeros seen 14h DWORD -> ??? data 18h DWORD -> ??? data ???Top
INT 2F - MS-DOS 7 kernel - GET SYSTEM.DAT (REGISTRY FILE) PATHNAME AX = 1613h ES:DI -> buffer for full ASCIZ pathname to Windows95 SYSTEM.DAT CX = buffer size in bytes Return: AX = 0000h if supported ES:DI buffer filled CX = number of bytes copied into buffer SeeAlso: AX=160Eh,AX=1611h,AX=1612h,AX=1614h,AX=1690hTop
INT 2F U - MS-DOS 7 kernel - SET SYSTEM.DAT (REGISTRY FILE) PATHNAME AX = 1614h ES:DI -> ASCIZ pathname to Windows95 SYSTEM.DAT Return: AX = status 0000h if successful 1614h not supported other: maximum length of pathname (004Eh for v4.00.950) SeeAlso: AX=160Eh,AX=1611h,AX=1613h,AX=1690hTop
INT 2F - Windows95 - SAVE32.COM - INSTALLATION CHECK AX = 1615h Return: AX = 0000h if installed BX = segment of resident code Program: SAVE32.COM is a TSR included in the Windows95 distribution which preserves the contents of 32-bit registers across invocations of all of the hardware interrupt handlers (which, for some older BIOSes and TSRs, do not properly preserve the high words of the 32-bit registers)Top
INT 2F - MS Windows, DPMI, various - RELEASE CURRENT VIRTUAL MACHINE TIME-SLICE AX = 1680h Return: AL = status 00h if the call is supported 80h (unchanged) if the call is not supported Notes: programs can use this function in idle loops to enhance performance under multitaskers; this call is supported by MS Windows 3+, DOS 5+, DPMI 1.0+, and in OS/2 2.0+ for multitasking DOS applications does not block the program; it just gives up the remainder of the time slice should not be used by Windows-specific programs when called very often without intermediate screen output under MS Windows 3.x, the VM will go into an idle-state and will not receive the next slice before 8 seconds have elapsed. This time can be changed in SYSTEM.INI through "IdleVMWakeUpTime=<seconds>". Setting it to zero results in a long wait. this function has no effect under OS/2 2.10-4.0 if the DOS box has an "Idle Sensitivity" setting of 100 SeeAlso: AX=1689h,INT 15/AX=1000h,INT 15/AX=5305h,INT 21/AH=89h,INT 7A/BX=000AhTop
INT 2F - MS Windows 3+ - BEGIN CRITICAL SECTION AX = 1681h Notes: used to prevent a task switch from occurring should be followed by an INT 2F/AX=1682h call as soon as possible nested calls are allowed, and must be followed by an appropriate number of "end critical section" calls not supported in Windows/386 2.x. Get INDOS flag with INT 21/AH=34h and increment by hand. SeeAlso: AX=1682h,INT 15/AX=101Bh,INT 21/AH=34hTop
INT 2F - MS Windows 3+ - END CRITICAL SECTION AX = 1682h Notes: not supported in Windows/386 2.x. Get InDOS flag with INT 21/AH=34h and decrement by hand, taking care not to decrement InDOS flag through zero SeeAlso: AX=1681h,INT 15/AX=101Ch,INT 21/AH=34hTop
INT 2F - MS Windows 3+ - GET CURRENT VIRTUAL MACHINE ID AX = 1683h Return: BX = current virtual machine (VM) ID Notes: Windows itself currently runs in VM 1, but this can't be relied upon VM IDs are reused when VMs are destroyed an ID of 0 will never be returned SeeAlso: AX=1684h"DEVICE API",AX=1685h,AX=168BhTop
INT 2F - MS Windows - GET DEVICE API ENTRY POINT AX = 1684h BX = virtual device (VxD) ID (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point, or 0:0 if the VxD does not support an API Note: some Windows enhanced-mode virtual devices provide services that applications can access. For example, the Virtual Display Device (VDD) provides an API used in turn by WINOLDAP. SeeAlso: AX=1684h/BX=0001h,AX=1684h/BX=0015h,AX=1683h,AX=4011h,INT 20"Windows" (Table 02642) Values for MS Windows VxD ID: Value Name CallOut V86 PM Description 0000h ACT200L ? ? ? IrDA Infrared ActiSys framer VxD 0000h ACT220L ? ? ? IrDA Infrared ActiSys 220 framer VxD 0000h ADAPTEC ? ? ? IrDA Infrared Adaptec framer VxD 0000h AM1500T ? N N (Win95) 0000h ATI ? N N (Win95) ATI display driver 0000h ATIPPCAP ? N Y ATI Rage128-based video card 0000h CDFS ? N N 0000h CDTSD ? N N (Win95) CD-ROM Type-Specific Driver 0000h CE2NDIS3 ? N N (W4Wg) 0000h CENDIS ? N N (W4Wg) 0000h CHIPS ? N N (Win95) Chips&Tech display driver 0000h CIRRUS ? N N (Win95) Cirrus display driver 0000h CTNDW ? N N (W4Wg) 0000h CTVSD ? N N (Win95) CD-ROM Vendor-Specific Driver 0000h CM2NDIS3 ? N N (W4Wg) 0000h COMBUFF ? N N (Win95) 0000h COMPAQ ? N N (Win95) Compaq display driver 0000h CPQNDIS3 ? N N (W4Wg) 0000h CRYSTAL ? ? ? IrDA Infrared Crystal framer VxD 0000h CWCENUM ? N N (Win95SR2???) 0000h CWCSPUD3 ? N N (Win95SR2???) 0000h DBKVSSD ? N N (Win95) Databook PCMCIA socket services??? 0000h DDOM95 ? N N 0000h DECLAN ? N N (W4Wg) 0000h DiskTSD ? N N (Win95) hard-disk Type-Specific Driver 0000h DiskVSD ? N N (Win95) hard-disk Vendor-Specific Driver 0000h DMICTVXD ? N N 0000h DMMDVDX ? N N Diamond MaximumDVD 0000h DRVSPACX ? N N (Win95) 0000h E30N3 ? N N (W4Wg) 0000h E31N3 N N (W4Wg) 0000h EE16 N N (W4Wg) 0000h EISA N N (Win95) 0000h EL59X N N (Win95) 0000h ELNK16 N N (W4Wg) 0000h ELNK3 N N (Win95) 0000h ELNKII N N (W4Wg) 0000h ELNKMC N N (W4Wg) 0000h ELPC3 N N (W4Wg) 0000h ENABLE2 N N (Win95) 0000h ENABLE4 N N (Win95) 0000h EPRO N N (Win95) 0000h ES1488V N N (Win95) 0000h ES1688V N N (Win95) 0000h ES488V N N (Win95) 0000h ES688V N N (Win95) 0000h ESI ? ? IrDA Infrared ESI framer VxD 0000h FILEMON N N DOS386 File Monitor 0000h FLS1MTD N N (Win95) flash-memory driver??? 0000h FLS2MTD N N (Win95) flash-memory driver??? 0000h HPEISA N N (W4Wg) 0000h HPFEND N N (W4Wg) 0000h HPISA N N (W4Wg) 0000h HPMCA N N (W4Wg) 0000h HSFLOP N N 0000h IBMTOK N N (W4Wg) 0000h IBMTOK4 N N (Win95) 0000h IRCOMM ? ? IrDA Infrared Virtual COM/LPT driver 0000h IRLAMPEX ? ? IrDA Infrared Protocol VxD 0000h IRLAPFRM ? ? IrDA Infrared Virtual COM/LPT frame driver 0000h IRMATRAK N N (W4Wg) 0000h JAVASUP N N Internet Explorer JAVA support 0000h KEYREMAP N N (Windows95 PowerToys) shift-key remapper 0000h LPT N N N (Win4Workgroups 3.11) DOS386 LPT Device 0000h LPTENUM ? N N 0000h MONVSD ? ? ? 0000h MGA ? N N (Win95) Matrox MGA display driver 0000h MSMINI ? N N (Win95) 0000h MSODISUP N N N (Win4Workgroups 3.11) MS ODI Support 0000h mvpas ? N N (Win95) Pro Audio Spectrum driver 0000h NECATAPI ? N N (Win95) 0000h NICE ? N N (Win95) 0000h NTI4CDR ? Y Y NTI CD-R/CD-RW 0000h NV3 ? N N (Win95SR2) 0000h NWNBLINK N N N (Win4Workgroups 3.11) Netware NetBIOS 0000h OAK N N (Win95) Oak Tech display driver 0000h OCTK32 N N (W4Wg) 0000h OTCETH N N (W4Wg) 0000h PARALINK N N (Win95) 0000h PARALLAX ? ? IrDA Infrared Parallax framer VxD 0000h PCNTN3 N N (W4Wg) 0000h PE3NDIS N N (W4Wg) 0000h PPM N N (Win95) 0000h PROTEON N N (W4Wg) 0000h QEMMFix N N 0000h QIC117 N N (Win95) QIC-117 floppy-ctrl tape drive 0000h QPI N N QEMM Programming Interface (see INT 67/AH=3Fh) 0000h RMM N N Real-Mode Mapper for hw with real-mode drivers 0000h S3 N N (Win95) S3 display driver 0000h S3INFO N N 0000h S3MINI N N S3 display driver 0000h SAGE N N (Plus!) System Agent 0000h sage N N (Plus! for Win95) System Agent 0000h scsi1hlp N N (Win95) 0000h SERENUM N N 0000h SERIAL N N N (Win4Workgroups 3.11) DOS386 Serial Device 0000h SERWAVE ? N N 0000h SETP3 ? N N (Win95) Silicon Ethernet Pocket Adapter 0000h SLMSDENM ? Y Y 0000h SMARTVSD ? N N (EZ-SMART???) 0000h SMC8000W ? N N (W4Wg) 0000h SMC80PC ? N N (W4Wg) 0000h SMC8100W ? N N (W4Wg) 0000h SMC8232W ? N N (W4Wg) 0000h SMC9000 ? N N (W4Wg) 0000h SNIP ? N N (W4Wg) 0000h SOCKET ? N N (W4Wg) 0000h SOCKETSV ? N N (Win95) 0000h SPAP ? Y Y (Win95) 0000h SPENDIS ? N N (Win95) 0000h SRAMMTD ? N N (Win95) flash-memory driver??? 0000h STLTH64 ? N N Diamond Stealth64 driver 0000h STLTHMON ? N N 0000h T20N3 ? N N (W4Wg) 0000h T30N3 ? N N (W4Wg) 0000h TCTOK ? N N (W4Wg) 0000h TSENG ? N N (Win95) Tseng Labs display driver 0000h UBNEI ? N N (W4Wg) 0000h UNIMODEM ? ? ? (Win95) Universal Modem Driver 0000h VDEF ? N N (Win95) 0000h VGATEWAY ? N Y (Win95) dialin gateway 0000h VIDEO7 ? N N (Win95) Video7 display driver 0000h VRomD ? N N (Win95) 0000h VStDspcD ? ? ? Quarterdeck Stealth D*Space 0000h VXDMON ? ? ? 0000h WD ? N N (Win95) 0000h WINTOP ? N N (Windows95 Power Toys) 0000h WSHTCP ? N N 0000h XGA ? N N (Win95) XGA display driver 0001h VMM ? N N Virtual Machine Manager 0001h VMM ? Y Y Windows95 Virtual Machine Manager 0002h Debug ? ? ? 0003h VPICD ? Y Y Virtual Prog. Interrupt Controller (PIC) Device 0004h VDMAD ? N N Virtual Direct Memory Access (DMA) Device 0005h VTD ? Y Y Virtual Timer Device 0006h V86MMGR Y N N (Windows3.x) Virtual 8086 Mode Device 0006h V86MMGR ? N Y (Win95) Virtual 8068 Mode Device 0007h PageSwap ? N N Paging Device 0008h Parity ? N N Parity-check trapper 0009h Reboot ? N Y Ctrl-Alt-Del handler 000Ah VDD ? N Y Virtual Display Device (GRABBER) 000Bh VSD ? N N Virtual Sound Device 000Ch VMD Y Y Y Virtual Mouse Device 000Dh VKD ? N Y Virtual Keyboard Device 000Eh VCD ? N Y Virtual COMM Device 000Fh VPD ? N Y Virtual Printer Device 0010h VHD ? ? ? Virtual Hard Disk Device (Windows 3.0) 0010h BLOCKDEV Y N N Virtual Hard Disk Device (Windows 3.1) 0010h IOS N N N (Win4Workgroups 3.11) DOS386 IOS Device 0010h IOS ? Y Y Windows95 I/O Supervisor 0011h VMCPD ? Y Y (Windows3.x) Virtual Math CoProcessor Device 0011h VMCPD ? N Y (Win95) Virtual Math CoProcessor Device 0012h EBIOS ? N N Reserve EBIOS page (e.g., on PS/2) 0013h BIOSXLAT ? N N Map ROM BIOS API between prot & V86 mode 0014h VNETBIOS Y N N Virtual NetBIOS Device 0015h DOSMGR Y Y N DOS data instancing (see #02656) 0016h WINLOAD ? ? ? 0017h SHELL ? N Y (Windows3) 0017h SHELL ? Y Y (Win95) 0018h VMPOLL Y N N 0019h VPROD ? ? ? 001Ah DOSNET ? N N assures network integrity across VMs 001Ah VNETWARE ? Y Y Novell NetWare DOSNET replacement 001Bh VFD ? N N Virtual Floppy Device 001Ch VDD2 ? ? ? Secondary display adapter 001Ch LoadHi ? N N Netroom LoadHi Device (RMLODHI.VXD) 001Ch LoadHi ? N N 386MAX LoadHi Device (386MAX.VXD) 001Ch LoadHi ? N N Win386 LoadHi Device (EMM386.EXE) 001Dh WINDEBUG ? N Y 001Dh TDDebug ? N Y 001Eh TSRLoad ? ? ? TSR instance utility 001Fh BiosHook ? ? ? BIOS interrupt hooker VxD 0020h Int13 N N N 0021h PageFile Y N Y Paging File device 0022h SCSI ? ? ? 0022h APIX ? N Y (Win95) 0023h MCA_POS ? ? ? Microchannel Programmable Option Select 0024h SCSIFD ? ? ? SCSI FastDisk device 0025h VPEND ? ? ? Pen device 0026h APM ? ? ? Advanced Power Management 0026h VPOWERD ? Y Y (Win95) power management 0027h VXDLDR N Y Y (Win4Wg 3.11/Win95) VXD Loader 0028h NDIS N Y Y (Win4Wg 3.11) Network Driver Interface Spec 0029h ??? 002Ah VWIN32 ? N Y (Win95) 002Bh VCOMM N Y Y (Win4Workgroups 3.11) DOS386 VCOMM Device 002Ch SPOOLER ? N N Windows95 print spooler 002Dh W32S Y N Y WIN32s 32-bit extension to Windows API 002Eh ??? 002Fh ??? 0030h MACH32 N N Y ATI Mach32 video card 0031h NETBEUI N N N (Win4Workgroups 3.11) NETBEUI 0032h SERVER N Y Y (Win4Workgroups 3.11) Int21 File Server 0032h VSERVER ? N Y (Win95) Int21 File Server 0033h CONFIGMG ? Y Y (Win95) 0033h EDOS ? N N Windows DOS Box Enhancer by Mom's Software 0034h DWCFGMG.SYS ? Y ? DOS Plug-and-Play configuration manager 0035h SCSIPORT ? N N (Win95) virtualized access to SCSI adapter 0036h VFBACKUP ? Y Y (Win95) 0037h ENABLE ? Y Y (Win95) 0038h VCOND ? Y Y (Win95) 0039h ??? 003Ah VPMTD N N Y (Win4Workgroups 3.11) IFAX Scheduler Device 003Bh DSVXD ? Y N DoubleSpace VxD from MS-DOS v6.x 003Ch ISAPNP ? N N (Win95) 003Dh BIOS ? Y Y (Win95) 003Eh WSOCK ? Y Y (Win95) WinSock 003Fh WSIPX ? N N (Win95) IPX WinSock 0040h IFSMGR ? N N (Win95) 0041h VCDFSD ? N N (Win95) CD-ROM File System Driver (MSCDEX) 0042h MRCI2 ? N N (Win95) DriveSpace3 0043h PCI ? N N (Win95) 0048h PERF ? N N (Win95) 004Ah MTRR ? N N (Win95SR2) PPro/P-II MTRR enumerator??? 004Bh NTKERN ? N Y (Win95SR2) 0051h ISAPNP ? N N (Win95) ISA Plug-and-Play manager 008Dh ESDI_506 ? N N (Win95) MFM/RLL/ESDI disk driver 0090h voltrack ? N N (Win95) Volume Tracker 00FDh FAKEIDE ? N N (Chicago) 0102h CV1 ? N N Microsoft C/C++ 7.00+ CodeView for Windows 011Fh VFLATD ? N Y (Win95) 0200h VIPX ? Y Y NetWare Virtual IPX Driver 0200h VTEMPD ? ? ? dummy template driver by Ray Patch 0201h VNWLSERV ? N N NetWare Lite 1.1 Server (SERVER.EXE) 0202h WINICE ? Y Y SoftICE/W 0202h SICE ? Y Y 0203h VCLIENT ? N Y NetWare Lite 1.1+ Client 0205h VCAFT ? N N Novell Virtual CAFT Driver (LANalyzer for Win) 0205h BCW ? Y Y Nu-Mega Bounds Checker for Windows 0206h VTXRX ? N N Novell Virtual TXRX Driver (LANalyzer for Win) 0207h DPMS N Y N Novell DOS Protected Mode Services 0234h VCOMMUTE ? Y Y PC Tools Commute 0442h VTDAPI ? N Y MMSys Win386 VTAPI Device 0443h ??? 0444h VADMAD ? ? ? Autoinitialize DMA (Windows 3.0) 0445h VSBD ? Y Y WinResKit: Sound Blaster Device 0446h VADLIBD Y Y Y MMSys Win386 AdLib Device (v3.x) 0447h ??? 0448h SETULTRA ? ? ? Gravis UltraSound setup 0449h vjoyd ? N Y (Win95) joystick 044Ah mmdevldr ? Y Y (Win95) 044Bh ??? 044Ch msmpu401 ? N N (Win95) MPU-401 MIDI driver 044Ch cwdmidi ? Y Y (Crystal???) MIDI driver 044Dh msopl ? N N (Win95) OPL-3 (SoundBlaster FM) driver 044Eh mssblst ? N N (Win95) SoundBlaster MIDI driver 045Dh VflatD ? N Y dva.386, part of WIN32s 045Eh ??? 045Fh mssndsys ? ? ? Microsoft Sound System audio driver 045Fh azt16 ? Y Y Aztech Sound Galaxy 16 audio driver 0460h UNIMODEM ? N Y Universal Modem driver 0480h VNetSup N Y Y (Win4Workgrps 3.11) Virtual Network Support 0481h VRedir N N N (Win4Workgroups 3.11) Redirector File System 0481h VREDIR ? N N (Win95) Redirector File System driver 0482h VBrowse ? Y Y Win386 Virtual Browser 0482h SNAPVXD ? Y Y (Win95) 0483h VSHARE ? N N (Win4Workgroups) Virtual SHARE 0483h VSHARE ? Y Y (Win95) Virtual SHARE 0484h IFSMgr Y N Y (Win4Wg 3.11) Installable File System Manager 0485h ??? ??? 0486h VFAT N Y Y (Win4Workgroups 3.11) Win386 HPFS Driver 0487h NWLINK ? Y Y Win386 Virtual Packet Exchange Protocol 0487h NWSUP Y N N NetWare Vnetbios shim 0488h VTDI ? N N (Win95) 0489h VIP ? Y N (Win95) 0489h FTCVIP ? Y Y Frontier Technologies' VIP 048Ah VTCP ? Y ? 048Ah MSTCP ? Y N (Win95) TCP stack 048Ah FTCTDI ? Y Y Future Technologies' TCP stack 048Bh VCache N Y Y (Win4Workgroups 3.11) Virtual File Cache 048Bh VCACHE ? Y Y (Win95) disk cache 048Ch ??? ??? 048Dh RASMAC ? Y Y enhanced mode Win4Workgroups RASMAC device 048Eh NWREDIR ? Y Y (Win95) 048Fh ??? ??? 0490h ??? ??? 0491h FILESEC ? ? ? (Win95) File Access Control Manager 0492h NWSERVER ? ? ? (Win95) 0493h SECPROV ? ? ? (Win95) Security Provider 0494h NSCL ? Y Y (Win95) 0495h AFVXD ? N N (Win95) 0496h NDIS2SUP ? ? ? (W4Wg???) NDIS2 networking support 0497h MSODISUP ? N N (W4Wg???) 0498h Splitter ? N N (Win95) 0499h PPPMAC ? Y Y (Win95) 049Ah VDHCP ? Y Y (Win95) 049Bh VNBT ? Y Y (Win95) NetBIOS-over-TCP/IP driver 049Ch ??? 049Dh LOGGER ? ? ? (Win95) 04A2h IRLAMP ? ? ? IrDA Infrared Enumerator VxD 097Ch PCCARD ? N Y (Win95) (see INT 20/VxD=097Ch) 1020h VCV ? ? ? Microsoft C/C++ 7.00 CodeView 1021h VMB ? Y Y Microsoft C/C++ 7.00 WXSRVR 1022h Vpfd ? Y Y Microsoft C/C++ 7.00 1025h MMD ? Y Y Microsoft C/C++ 8.00, Visual C/C++ 1.00 2020h PIPE ? Y Y by Thomas W. Olson, in Windows/DOS DevJrn 5/92 21EAh VADLIBWD ? N Y Adlib Waveform Driver by John Ridges 2200h VFINTD ? Y Y Norton VFINTD (Norton Desktop) 22C0h ??? Y Rational Systems DOS/4GW ??? 2402h ZMAX ? N N Qualitas 386MAX v7 DOSMAX handler 24A0h VNSS ? N Y Norton Screen Saver (Norton Desktop) 24A1h VNDWD ? Y Y Norton VNDWD Device (Norton Desktop) 24A2h SYMEvent ? Y Y Norton Utilities v8 2540h VILD ? Y N INTERLNK client from MS-DOS v6.x 2640h VASBID ? N Y WinResKit: Artisoft Sounding Board Device 2860h COMMTASK N N Y Windows 386-mode preemptive tasker by James A. Kenemuth of Interabang Computing 28A0h PHARLAPX ? Y ? PharLap inter-VM communications DLL 28A1h PharLap Y Y Y PharLap 386|DOS-Extender DOSXNT.386 28C0h VXD N Y Y Generic VxD for real and protected mode by Andrew Schulman in MSJ February 1993 28C1h PUSHKEYS ? ? ? VKD_Force_Keys device 28C2h VCR3D ? ? ? Virtual CR3, by A.Schulman in MSJ October 1992 2925h EDOS ? Y Y Enhanced DOS by Firefly Software 292Dh VSBPD ? Y Y Sound Blaster Pro 295Ah GRVSULTR ? Y Y Gravis UltraSound / UltraSound ACE 3048h FTCTCPIP ? N Y Frontier Technologies' TCP/IP stack 3049h ??? (called by FNFSC32.VXD, FrontierTech's VNFSD) 304Ch DWCFGMG.SYS ? Y Plug-and-Play configuration access 3098h VstlthD N N N for QEMM Stealth ROM mode 3099h VVidramD ? Y N for QEMM VIDRAM support 30F6h WSVV ? N Y (Win95) WinSock for Voice-View Modems??? 310Eh WPS ? N Y MS DevNet CD-ROM: Windows Process Status 3110h VGSSD ? Y Y VSGLX16.386 for Aztech Sound Galaxy 16 313Bh PMC ? ? ? Power Management Coordinator 318Ah LMOUSE ? Y Y (Win95) Logitech mouse??? 31CFh STAT.386 ? ? ? Ton Plooy's processor statistics VxD 3202h VdspD ? N N (Win95) 3203h vpasd ? N N (Win95) Pro Audio Spectrum driver 32A4h SBAWE ? Y Y (Win95) SoundBlaster AWE driver 32A5h VSB16 ? N N (Win95) SoundBlaster 16 driver 32CBh VFRAD ? Y Y Dr.Franz - Simultan's diagnotics VFRAD.386 32DCh NV3RM ? N Y (Win95SR2) 3354h Discover ? N Y (Nuts&Bolts) Discover 33AAh DECCORE ? Y Y (Win95) DEC Pathworks core VxD 33B4h DECLICL ? N N (Win95) 33F0h VIWD ? Y Y Gravis UltraSound Plug-n-Play Interwave v1.x 33FCh ASPIENUM ? N N (Win95) 34DCh MAGNARAM ? N Y Quarterdeck MagnaRAM (MAGNA31.VXD/MAGNA95.VXD) 357Eh DSOUND ? Y Y (Win95) DirectSound 3584h VSNDSYS ? Y Y (Win95SR2) 35C5h LUGEPS ? Y Y Lugaru's Epsilon editor 36AEh AIB-PC.386 ? Y Y Sunset Laboratory interface hardware driver 377Bh MX1501HAD ? ? ? Cherry keyboard chipcard reader 38BEh Vheapx ? N Y (Nuts&Bolts) Virtual Heap Expander 38C0h Bombshel ? N Y (Nuts&Bolts) Bombshelter 38DAh VIWD ? Y Y UltraSound PnP InterWave driver v2.0beta 39E6h A3D ? N N (Win95SR2) 3A39h CINEMSYS ? Y Y Software Cinemaster MPEG/DVD decoder 3BFCh CWCSPUD ? N N (Win95SR2) 3BFDh CWCPROXY ? N N (Win95SR2) 3BFEh CWCMMSYS ? N Y (Win95SR2) 3BFFh CWCDSND ? N N (Win95SR2) 3C46h X10MOUSE ? Y Y X10 RF wireless mouse 3C78h VGARTD ? N N (Win95SR2) 3E6Dh DDRAW ? Y Y DirectDraw 3ED6h ATIVVXXX ? N Y ATI Rage128-based video card 3EE5h WINTEL.VXD ? ? ? "WinTel" Windows remote-control program (see also PORT 063Eh) 4321h POSTMSG ? Y Y (see #02712) 4321h VPCD ? N N PCache 4321h avvxp500 ? N N (Win95) VxP500 driver 6001h REGVXD ? Y Y Windows95 Registry Monitor helper 7A5Fh SIWVID Y Y Y Soft-ICE for Windows video driver 7FE0h VSWITCHD ? Y N by Jeff Prosise 7FE0h VWFD N Y Y reports windowed/fullscreen state; by Neil Sandlin of Microsoft, shipped with ANSIPLUS 7FE1h VWATCHD N Y Y basic driver w/ no functionality except tracing by Keith Jin of Microsoft PSS 7FE5h VFINTD N Y Y Virtual Floppy Interrupt trapper by Neil Sandlin of Microsoft 7FE7h VMPAGES N Y Y demonstration of exporting VxD services, by Neil Sandlin of Microsoft 7FE8h VPOSTD ? Y Y PostMessage() demo by Curtis J. Palmer of MS 7FE9h VIdleD N N N demonstration of Call_When_Idle function, by Bernie McIlroy of Microsoft 7FEBh VMIOD N N N Virtual Monitor I/O Traffic Device, by Neil Sandlin of Microsoft 7FEDh VMIRQD N N N Virtual Monitor IRQ Traffic Device, by Neil Sandlin of Microsoft 8888h VbillD ? ? ? Bill Potvin II's for reversing Compaq LTE video EEEEh VEPSD ? N N Virtual Extended Paging Services for Borland C++ v4.0 Notes: The high bit of the VxD ID is reserved for future use. Originally, the next 10 bits were the OEM number which was assigned by Microsoft, and the low 5 bits were the device number. Currently, Microsoft assigns VxD IDs individually for each driver; send blank email to vxdid@microsoft.com for more information. "CallOut"=Y indicates that the VxD uses the INT 2F/AX=1607h/BX=VxDID device callout interface; "PM" and "V86" indicate whether the VxD provides an API entry point in protected mode and Virtual-86 mode (e.g. DOS boxes)Top
INT 2F - MS Windows95 - VMM - GET API ENTRY POINT AX = 1684h BX = 0001h (virtual device ID for VMM) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02643) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02643) Call Windows VMM 16-bit entry point with: AX = function number ---registry functions--- 0100h "RegOpenKey" STACK: DWORD -> DWORD for returned key handle DWORD -> ASCIZ registry key name DWORD HKEY (see #02644) 0101h "RegCreateKey" STACK: DWORD -> DWORD for returned key handle DWORD -> ASCIZ registry key name DWORD HKEY (see #02644) 0102h "RegCloseKey" STACK: DWORD key handle from RegOpenKey or RegCreateKey 0103h "RegDeleteKey" STACK: DWORD -> ASCIZ registry key name DWORD HKEY (see #02644) 0104h "RegSetValue" STACK: DWORD ??? DWORD -> ??? DWORD ??? DWORD -> ??? DWORD HKEY (see #02644) 0105h "RegQueryValue" STACK: DWORD -> DWORD for ??? DWORD -> ASCIZ ??? DWORD -> ASCIZ ??? DWORD HKEY (see #02644) 0106h "RegEnumKey" STACK: DWORD ??? DWORD -> ASCIZ ??? DWORD ??? DWORD HKEY (see #02644) 0107h "RegDeleteValue" 0108h "RegEnumValue" STACK: DWORD -> DWORD for ??? DWORD -> BYTE ??? DWORD -> DWORD for ??? DWORD -> DWORD for ??? DWORD -> DWORD for ??? DWORD -> ASCIZ ??? DWORD ??? DWORD HKEY (see #02644) 0109h "RegQueryValueEx" 010Ah "RegSetValueEx" 010Bh "RegFlushKey" 010Ch "RegLoadKey" 010Dh "RegUnLoadKey" 010Eh "RegSaveKey" 010Fh "RegRestore" 0110h "RegRemapPreDefKey" Return: parameters popped from stack DX:AX = return value (Table 02644) Values for Windows95 VMM predefined HKEY values: 80000000h HKEY_CLASSES_ROOT 80000001h HKEY_CURRENT_USER 80000002h HKEY_LOCAL_MACHINE 80000003h HKEY_USERS 80000004h HKEY_PERFORMANCE_DATA 80000005h HKEY_CURRENT_CONFIG 80000006h HKEY_DYN_DATA SeeAlso: #02643Top
INT 2F - MS Windows - VPICD - GET API ENTRY POINT AX = 1684h BX = 0003h (virtual device ID for VPICD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02645) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02645) Call VPICD API entry point with: EAX = function number 0000h get version Return: AX = binary version (AH=major, AL=minor) 0001h virtualize timer??? 0002h unvirtualize timer???Top
INT 2F - MS Windows - VTD - GET API ENTRY POINT AX = 1684h BX = 0005h (virtual device ID for VTD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02646) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02646) Call VTD.386/VTD.VXD entry point with: AX = function number 0000h get VTD version number Return: CF clear AH = major version AL = minor version 0100h get current clock tick time Return: EDX:EAX = clock tick time in 840ns units since Windows was started 0101h get current system time in milliseconds Return: EAX = time in milliseconds that Windows has been running 0102h get current virtual machine time Return: EAX = cumulative amount of time the virtual machine has been active, in milliseconds Note: this entry point should only be called directly when TOOLHELP.DLL TimerCount() cannot be called SeeAlso: #01268,#01270,#01269 at INT 20"Windows"Top
INT 2F P - MS Windows95 - V86MMGR - GET API ENTRY POINT AX = 1684h BX = 0006h (virtual device ID for V86MMGR device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02647) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02647) Call V86MMGR entry point with: EAX = function number 0000h get V86MMGR version Return: CF clear AH = major version AL = minor version 0001h get ??? Return: CF clear EAX = status bits bit 0: ??? bit 1: ??? bit 2: ??? bit 3: ??? bit 4: ??? else Return: CF setTop
INT 2F P - MS Windows - REBOOT - GET API ENTRY POINT AX = 1684h BX = 0009h (virtual device ID for REBOOT device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02648) 0000h:0000h if the VxD does not support an API SeeAlso: INT 14/AH=17h"FOSSIL",INT 16/AX=E0FFh (Table 02648) Call REBOOT protected-mode entry point with: AX = function 0100h warm boot Return: never Note: broadcasts "Reboot_Processor" message, which is caught by the VKD device 0201h set KERNEL Ctrl-Alt-Del handler ES:DI -> new Ctrl-Alt-Del handler DS:SI -> KERNEL reboot sanity check byte Return: CF clear Notes: if an application installs its own handler and then chains to Windows' handler, Windows will no longer be able to detect hung applications, and will always produce an "Application not responding" dialog DS must contain a writable, fixed selector because the provided address is converted to a linear address before being stored when Ctrl-Alt-Del is pressed in the system VM, Reboot sets the sanity check byte to zero, schedules a 750ms wait, and then tests whether the check byte is still zero; if not, it displays a message that there is no hung application and then exits 0202h get KERNEL Ctrl-Alt-Del handler Return: CF clear ES:DI -> current Ctrl-Alt-Del handler Note: the default handler is located in KERNEL 0203h display "Application not responding" dialog box ES:DI -> ASCIZ name of hung application Return: never if user pressed Ctrl-Alt-Del a second time CF clear AX = result 0000h user pressed Esc 0001h user pressed Enter Note: this function is used by the default Windows Ctrl-Alt-Del handler 0204h set/reset protected-mode INT 01 handler CX:EDX -> new protected-mode INT 01 handler CX = 0000h restore protected-mode INT 01 handler Return: CF clear Notes: if CX is nonzero, the current handler address is saved internally before the new handler is set; this saved address is then used when CX is zero on entry used by Windows' default Ctrl-Alt-Del handler; actual fatal exit to DOS will be done on next INT 01 Warning: opened files are not closed and remain open as orphaned files in DOS Note: functions 0201h and 0203h are not useful outside the system VM SeeAlso: #01271,#01273Top
INT 2F P - MS Windows - VDD - GET API ENTRY POINT AX = 1684h BX = 000Ah (virtual device ID for VDD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02649) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02649) Call VDD entry point with: EAX = function 0000h get VDD version Return: CF clear AH = major version AL = minor version Note: also performs an internal initialization 0001h ??? Return: ECX = ??? ??? 0002h 0003h 0004h 0005h 0006h 0007h 0008h 0009h 0080h 0081h 0082h 0083h 0084h 0085h 0086h 0087h 0088h 0089h else Return: nothingTop
INT 2F - MS Windows - VMD - GET API ENTRY POINT AX = 1684h BX = 000Ch (virtual device ID for VMD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02650) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02650) Call VMOUSE entry point with: EAX = function number 0000h get VMOUSE version Return: CF clear AH = major version AL = minor version 0001h EBX = ??? ECX = ??? Return: CF clear if successful CF set on error (e.g. fn 0003h not yet called) 0002h ??? (calls "test system VM handle") Return: CF clear if successful (in system VM) CF set on error 0003h ??? ECX = ??? DX = ??? Return: CF clear 0004h ??? Note: invokes Call_Priority_VM_Event 0005h get mouse port data Return: CF clear AL = ??? (04h) AH = mouse IRQ interrupt number (IRQ4=0Ch,etc.) CX = mouse I/O port address (e.g. 03F8h) DX = COM port number??? (0001h for mouse on COM1) 0100h NOP??? Return: CF clear 0101h init??? Return: CF clear Note: appears to be the same as fn 0005h, but returns no data 0102h unimplemented Return: CF set 0103h check ??? Return: AX = status (0000h/0001h) Note: checks flag set by fn 0003h else Return: CF set SeeAlso: #02649,#02651Top
INT 2F P - MS Windows - VKD - GET API ENTRY POINT AX = 1684h BX = 000Dh (virtual device ID for VKD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02651) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02651) Call VKD entry point with: EAX = function 0000h get VKD version Return: CF clear AH = major version AL = minor version 0001h ??? EBX = VM handle or 00000000h to use ??? VM handle CH = ??? CL = ??? EDX = ??? or FFFFFFFFh Return: CF clear if successful CF set on error else Return: CF set SeeAlso: #02650,#02652Top
INT 2F P - MS Windows - VCD - GET API ENTRY POINT AX = 1684h BX = 000Eh (virtual device ID for VCD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02652) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02652) Call VCD entry point with: EDX = function number 0000h get VCD version Return: CF clear AH = major version AL = minor version 0001h get ??? Return: CF clear AX = bit mask of ??? 0002h get ??? CX = COM port number Return: CF clear DX:AX -> ??? 0003h set ??? CX = COM port number DX:AX -> new ??? Return: CF clear 0004h acquire COM port AX = ??? CX = COM port number Return: CF clear AX = ??? EBX = ??? DX = ??? 0005h release COM port CX = COM port number Return: CF clear 0006h ??? Return: CF set AL = 00h else Return: CF set EAX = FFFFFFFFh Note: these functions are apparently only available from the system VM, returning CF set and EAX=FFFFFFFFh otherwise SeeAlso: #02651,#02653Top
INT 2F P - MS Windows - VPD - GET API ENTRY POINT AX = 1684h BX = 000Fh (virtual device ID for VPD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02653) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02653) Call VPD entry point with: EDX = function number 0000h get VPD version Return: CF clear AH = major version AL = minor version DX = ??? (CB01h) 0001h get valid??? printers Return: CF clear AX = bitmask of ??? printers (bits 0-2) 0002h get ??? for printer CX = printer port (0-2) Return: CF clear if successful BX:AX = ??? CF set on error (invalid port number) 0003h set ??? for printer CX = printer port (0-2) BX:AX = ??? Return: CF clear if successful CF set on error (invalid port number) 0004h ??? CX = printer port (0-2) EAX = VM handle Return: CF clear if successful CF set on error (invalid port number) 0005h ??? CX = printer port (0-2) EAX = VM handle Return: CF clear if successful CF set on error (invalid port number or ???) 0006h-000Eh unused Return: CF set 000Fh ??? CX = printer port (0-2) AX = ??? Return: CF clear if successful CF set on error (e.g. invalid port number) 0010h ??? CX = printer port (0-2) Return: CF clear if successful CF set on error (e.g. invalid port number) 0011h ??? CX = printer port (0-2) Return: CF clear if successful CF set on error (e.g. invalid port number) 0012h get port status CX = printer port (0-2) Return: CF clear if successful AX = port status (see #P0658 at PORT 03BCh"LPT") CF set on error (e.g. invalid port number) else Return: CF set Note: these functions are apparently only available from the system VM, returning CF set SeeAlso: #02652,#02654Top
INT 2F - MS Windows - IOS - GET API ENTRY POINT AX = 1684h BX = 0010h (virtual device ID for IOS device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02654) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02654) Call IOS entry point with: EAX = function number 0000h ??? Return: CF clear if successful AX = 0000h CF set on error AX = FFFFh 0001h check if ??? Return: CF clear if successful AX = 0000h CF set on error AX = FFFFh 0002h requestor services??? DL = service number??? Return: CF clear if successful AX = 0000h DX = ??? CF set on error AX = FFFFh Note: calls "IOS_Requestor_Service" (see INT 20"Windows") 0003h ??? (copies five bytes of data internally) Return: CF clear if successful AX = 0000h EDX = ??? CF set on error AX = FFFFh else Return: CF set AX = FFFFh SeeAlso: #02653,#02655Top
INT 2F - MS Windows - VMCPD - GET API ENTRY POINT AX = 1684h BX = 0011h (virtual device ID for VMCPD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02655) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02655) Call Windows95 VMCPD protected-mode entry point with: EAX = function number 0000h get VMCPD version Return: CF clear AH = major version AL = minor version 0001h get ??? flags Return: CF clear AX = ??? flags bit 0: ??? bit 1: ??? bit 2: ??? bit 3: ??? else Return: CF set SeeAlso: #02654,#02656Top
INT 2F - MS Windows - DOSMGR - GET API ENTRY POINT AX = 1684h BX = 0015h (virtual device ID for DOSMGR device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02656,#01282) 0000h:0000h if the VxD does not support an API SeeAlso: #01282 at INT 20"Windows" (Table 02656) Call DOSMGR entry point with: AX = 0000h get DOSMGR version Return: CF clear AX = version (AH = major, AL = minor) AX = 0001h set critical focus Return: CF clear AX = 0002h crash current virtual machine Return: never Note: displays message box stating that "application has been stopped by the DOSMGR device" AX = 0003h enter critical section Note: this function assumes that the code for INT 2A/AX=8001h and INT 2A/AX=8002h have been modified for Windows AX = 0004h get VM ID byte Return: CF clear if successful ES:DI -> VM ID byte CF set on error Note: this function fails if the INT 2A modifications have not yet been applied AX = 0005h inform Windows of possible media change BL = drive number (00h=A:) Return: CF clear if successful CF set on error SeeAlso: #01282 at INT 20"Windows",#02655,#02657Top
INT 2F U - MS Windows - SHELL - GET API ENTRY POINT AX = 1684h BX = 0017h (virtual device ID for SHELL device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02657) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h/BX=0021h,#01283 at INT 20"Windows" (Table 02657) Call SHELL entry point with: EDX = function number (0000h-0027h,0100h-0108h, mostly unknown) 0000h get version number Return: AX = version number EBX = system VM handle 0001h "SHELL_Get_SYSVM_Info" get system VM information Return: CF clear AX bit 0 set if system VM executing exclusively BX = background time slice priority CX = foreground time slice priority SI = minimum time slice in milliseconds 0002h "SHELL_Set_SYSVM_Info" set system VM information AX bit 0 set if system VM should execute exclusively (ignored?) BX = background time slice priority (1-10000) CX = foreground time slice priority (1-10000) SI = minimum time slice in milliseconds (1-10000) Return: CF clear if successful 0003h "SHELL_Crt_VM" create a virtual machine ES:EDI -> SEB structure (see #02658) Return: CF clear if successful EAX = VM handle CF set on error EDX,EAX = result from GetSetDetailedVMError() 0004h "SHELL_Destroy_VM" destroy a virtual machine EBX = VM handle (not system VM) Return: nothing 0005h "SHELL_Set_Focus" EBX = VM handle ECX = ??? Return: nothing 0006h "SHELL_Get_VM_State" EBX = VM handle (not system VM) ES:EDI -> ??? structure Return: CF clear if successful 0007h "SHELL_Set_VM_State" EBX = VM handle (not system VM) ES:EDI -> ??? structure 0008h "SHELL_Debug_Out" ??? Return: ??? Note: dummy function in retail version of MS Windows 0009h "SHELL_VMDA_Init" ??? Return: ??? 000Ah "SHELL_VMDA_Exit" ??? Return: ??? 000Bh "SHELL_Get_Message_Txt" ??? Return: ??? 000Ch "SHELL_Event_Complete" ??? Return: ??? 000Dh "SHELL_Get_Contention_Info" ??? Return: ??? 000Eh "SHELL_Get_Clip_Info" ??? Return: ??? 000Fh "SHELL_Set_Paste" ??? Return: ??? 0010h "SHELL_Switcher_Assist" ??? Return: ??? 0011h "SHELL_Get_FileSysChng" ??? Return: ??? 0012h "SHELL_Query_Destroy" ??? Return: ??? 0013h "SHELL_SetFocus_Cur_VM" set input focus to current VM ??? Return: ??? 0014h "SHELL_User_Busy_API" ??? Return: ??? 0015h "SHELL_Chng_Hot_Key" ??? Return: ??? 0016h "SHELL_Get_TermInfo" ??? Return: ??? ---Windows95--- 0017h ??? 0018h ??? 0019h ??? 001Ah ??? 001Bh ??? 001Ch ??? 001Dh ??? 001Eh ??? 001Fh ??? 0020h ??? 0021h ??? 0022h ??? 0023h ??? 0024h ??? 0025h ??? 0026h ??? Note: makes VxDCALL 00178002h (see INT 20"Windows") 0027h ??? 0100h get ??? version Return: AX = version??? (0400h for Windows95) 0101h not implemented Return: CF set EAX = FFFFFFFFh 0102h not implemented Return: CF set EAX = FFFFFFFFh 0103h not implemented Return: CF set EAX = FFFFFFFFh 0104h ??? 0105h ??? 0106h ??? ??? Return: CF clear if successful CF set on error 0107h get SDK version for VxD AX = VxD identifier Return: EAX = VxD ID (high word) and SDK version (low) 00000000h if no such VxD loaded Note: makes a VMMCALL 0001013Fh (see INT 20"Windows") followed by ??? 0108h ??? Return: CF set if called from VM other than system VM EAX = FFFFFFFFh Note: except for functions 0013h,0026h,and 010xh, this API may only be called from the system VM SeeAlso: #01283 at INT 20"Windows" Format of Shell Execution Block (SEB): Offset Size Description (Table 02658) 00h DWORD PIF flags (see #02659) 04h DWORD display flags (see #02660) 08h PWORD -> pathname of .EXE to run 0Eh PWORD -> argument list 14h PWORD -> working drive/directory 1Ah WORD desired number of V86 pages for virtual machine 1Ch WORD minimum number of V86 pages for VM 1Eh WORD foreground priority 20h WORD background priority 22h WORD maximum KB of EMS 24h WORD minimum KB of EMS 26h WORD maximum KB of XMS 28h WORD minimum KB of XMS 2Ah WORD maximum KB of DPMI??? 2Ch WORD minimum KB of DPMI??? 2Eh 128 BYTEs title Note: the PWORDs at offsets 08h,0Eh, and 14h consist of a DWORD offset followed by a WORD selector Bitfields for 386 Enhanced Mode PIF flags: Bit(s) Description (Table 02659) 0 exclusive use of processor when VM is fullscreen 1 VM runs in background 2 VM runs in window 3-4 ??? 5 Alt-Tab reserved 6 Alt-Esc reserved 7 Alt-Space reserved 8 Alt-Enter reserved 9 Alt-PrtSc reserved 10 PrtSc reserved 11 Ctrl-Esc reserved 12 VM will release idle time slice 13 VM not allowed to use high memory 14 ??? 15 VM expanded memory not pageable 16 VM extended memory not pageable 17 Fast paste from clipboard enabled 18 VM application memory not pageable 30 Close VM when application exits SeeAlso: #02658,#02660 Bitfields for SHELL display options: Bit(s) Description (Table 02660) 0 emulate text mode 1 monitor text port 2 monitor low graphics port 3 monitor high graphics port 7 Retain video memory SeeAlso: #02658,#02659Top
INT 2F - MS Windows - VNETWARE - GET API ENTRY POINT AX = 1684h BX = 001Ah (virtual device ID for VNETWARE device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F P - MS Windows - WINDEBUG - GET API ENTRY POINT AX = 1684h BX = 001Dh (virtual device ID for WINDEBUG device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F PU - MS Windows - PAGEFILE - GET API ENTRY POINT AX = 1684h BX = 0021h (virtual device ID for PAGEFILE device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02661) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h/BX=0017h,#01289 at INT 20"Windows" (Table 02661) Call PAGEFILE entry point with: AX = function 0000h get version Return: CF clear AX = version (AH = major, AL = minor) 0001h get swap file info DS:SI -> 128-byte buffer for swap file full pathname DS:DI -> 128-byte buffer for SPART.PAR full pathname Return: CF clear AL = pager type (see #02662) AH = flags bit 7: swap file corrupted ECX = maximum size of swap file DS:SI buffer filled if paging enabled DS:DI buffer filled if permanent swap file 0002h delete permanent swap file on exit Return: CF clear 0003h get current temporary swap file size Return: CF clear DX:AX = current swap file size in bytes 0000h:0000h if permanent swap file Note: this API is only available in protected mode, and may only be called from the system VM SeeAlso: #01289 at INT 20"Windows",#02663 (Table 02662) Values for MS Windows PAGEFILE pager type: 00h paging disabled 01h MSDOS 02h BIOS 03h 32-bit disk access SeeAlso: #02661Top
INT 2F P - MS Windows - APIX - GET API ENTRY POINT AX = 1684h BX = 0022h (virtual device ID for APIX device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02663) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02663) Call APIX protected-mode entry point with: AH = function number 00h get APIX version Return: CF clear AH = major version AL = minor version 01h ??? Return: CF clear AX = number of ??? 02h NOP Return: CF clear 03h ??? Return: CF clear AX = 0000h/FFFFh else Return: CF clear (bug?) SeeAlso: #02661,#02666Top
INT 2F P - MS Windows - VPOWERD - GET API ENTRY POINT AX = 1684h BX = 0026h (virtual device ID for VPOWERD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02664) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02664) Call VPOWERD.VXD entry point with: AX = function number 0000h get VPOWERD version Return: DX = 0000h AX = version (AH = major, AL = minor) 0001h get APM BIOS version Return: DX:AX = APM BIOS version 0002h get current power management level Return: DX:AX = power management level 0003h enable/disable power management (see INT 15/AX=5308h) ??? = new state of power management Return: DX:AX = 0000h:0000h if successful else error code (see #02665) 0004h set power state (see INT 15/AX=5307h) Return: DX:AX = 0000h:0000h if successful else error code (see #02665) 0005h set system power status Return: DX:AX = 0000h:0000h if successful else error code (see #02665) 0006h restore APM power-on defaults (see INT 15/AX=5309h) Return: DX:AX = 0000h:0000h if successful else error code (see #02665) 0007h get power status (see INT 15/AX=530Ah) Return: ??? 0008h get APM 1.1 power state (see INT 15/AX=530Ch) Return: ??? 0009h invoke OEM APM function ??? -> buffer containing parameters for INT 15/AX=5380h Return: DX:AX = 0000h:0000h or error code (see #02665) buffer updated if successful 000Ah register power handler ??? Return: DX:AX = 0000h:0000h or error code 000Bh deregister power handler ??? Return: DX:AX = 0000h:0000h or error code (see #02665) 000Ch Win32 get system power status 000Dh Win32 set system power status else Return: DX = 0000h AX = 00FFh SeeAlso: #02663,#02666 (Table 02665) Values for VPOWERD.VXD error code: 000000xxh APM error code 000000FFh function number out of range 80000001h ??? (service 05h) 80000002h ??? (service 0Dh) 80000003h specified NULL buffer pointer (service 07h,08h,09h) 80000005h ??? (service 03h) 80000006h ??? (service 04h) 80000007h ??? (service 05h) 80000008h ??? (service 05h) 80000009h out of memory (service 0Ah) 8000000Ah ??? (service 0Ah) 8000000Bh invalid power handler (service 0Bh) 8000000Ch unsupported/disabled??? function SeeAlso: #02664,#01290Top
INT 2F - MS Windows95 - VXDLDR - GET API ENTRY POINT AX = 1684h BX = 0027h (virtual device ID for VXDLDR device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02666) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02666) Call VXDLDR entry point with: EAX = function number 0000h get VXDLDR version Return: CF clear AX = 0000h (successful) DH = major version DL = minor version 0001h load device DS(???):DX -> ASCIZ path name of dynamically-loadable VxD (driver must reside in current directory or Windows system directory???) ES:DI = 0000h:0000h Return: CF clear if successful AX = 0000h ES:DI -> VxD API entry point CF set on error AX = error code (see #02667) 0002h unload device EBX = device ID or FFFFFFFFh (Undefined_Device_ID) ---if EBX=FFFFFFFFh --- (DS???):DX -> ASCIZ name of dynamically-loadable device (case-sensitive) Return: CF clear if successful AX = 0000h CF set on error AX = error code (see #02667) else Return: CF set AX = 000Bh SeeAlso: #02664,#02668 (Table 02667) Values for VXDLDR error code: 0000h successful 000Bh invalid function number SeeAlso: #02666Top
INT 2F - MS Windows - NDIS - GET API ENTRY POINT AX = 1684h BX = 0028h (virtual device ID for NDIS device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02668) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02668) Call NDIS.VXD entry point with: ??? = function number 0000h set ??? to ??? ??? = new ??? Return: DX:AX = 0000h:0001h 0002h ??? ??? Return: DX:AX -> ??? 0003h reset ??? to default Return: DX:AX = 0000h:0001h else Return: DX:AX = 0000h:0000h SeeAlso: #02666,#02669Top
INT 2F P - MS Windows - VWIN32 - GET API ENTRY POINT AX = 1684h BX = 002Ah (virtual device ID for VWIN32 device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02669) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02669) Call VWIN32.VXD entry point with: AH = function number 00h get VWIN32 version and ??? Return: CF clear AH = major version AL = minor version EDX = ??? 01h ??? EBX = ??? ECX = ??? Return: CF clear EAX = ??? 02h ??? Return: CF clear AX = ??? or 0000h 03h address allocation DS:??? -> buffer containing/for page data ECX = length of buffer AL = subfunction 00h reserve page(s) 01h commit page(s) 02h decommit page(s) 03h free page(s) Return: CF clear if successful CF set on error Note: this function uses ECX bytes of stack 04h get ??? Return: CF clear EAX = ??? 05h ??? EBX = ??? Return: CF clear EAX = ??? 06h ??? EBX = ??? Return: CF clear EAX = ??? 07h ??? EBX = ??? Return: CF clear EAX = ??? 08h get ??? Return: CF clear AX = ??? 09h ??? EBX = ??? ECX = ??? Return: CF clear 0Ah ??? EBX = ??? Return: CF clear 0Bh ??? EBX = ??? Return: CF clear 0Ch ??? EBX = ??? ECX = ??? EDX = ??? ??? Return: CF clear if successful EAX = ??? CF set on error 0Dh clear ??? Return: CF clear 0Eh ??? EBX = ??? ECX = ??? Return: CF clear 0Fh ??? EBX = ??? ECX = ??? Return: CF clear 10h ??? Return: CF clear Note: invokes VMMcall 00010184h 11h ??? Return: CF clear Note: invokes VMMcall 00010160h 12h ??? ??? 13h pop up system error dialogue Return: CF clear AX = ??? or 0000h 14h "IFSMgr_GetConversionTablePtrs" Return: CF clear DX:AX -> ??? Note: invokes VxDcall 00400051h 15h "Boost_With_Decay" EBX = ??? ECX = ??? EDX = ??? Return: CF clear else Return: CF set SeeAlso: #02668,#02670Top
INT 2F - MS Windows - VCOMM - GET API ENTRY POINT AX = 1684h BX = 002Bh (virtual device ID for VCOMM device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02670) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02670) Call VCOMM.VXD entry point with: AX = function number 0000h open COM/LPT port BX = port number (00h-7Fh = COMx, 80h-FFh = LPTx) Return: DX:AX = handle??? 0001h set comm state ??? Return: AX = ??? 0002h setup comm port ??? Return: AX = status (0000h failed, FFFFh success) 0003h transmit character EBX = handle??? CL = character to transmit Return: AX = status??? 0004h close comm port EBX = handle??? Return: ??? 0005h clear comm error EBX = handle??? EAX = ??? Return: AX = status??? 0006h "EscapeCommFunction" EBX = handle??? CX = ??? EAX = ??? Return: DX:AX = ??? 0007h purge buffers EBX = handle??? CX = ??? Return: AX = status??? 0008h set comm event mask EBX = handle??? CX = new event mask Return: AX = status??? 0009h get comm event mask EBX = handle??? Return: AX = current event mask 000Ah ??? EBX = handle??? Return: ??? 000Bh "WriteComm" EBX = handle??? CX = number of characters to write ES???:BX -> buffer (if CX > 1) SI??? low byte contains character if CX=1 Return: AX = status EAX high word may be destroyed 000Ch "ReadComm" EBX = handle??? CX = number of bytes to read ES???:DI -> buffer Return: AX = status ??? ZF = ??? 000Dh set ??? callback EBX = handle??? CX = ??? DX = ??? Return: AX = status??? else Return: AX = 0000h SeeAlso: #02669,#02671Top
INT 2F P - MS Windows - W32S - GET API ENTRY POINT AX = 1684h BX = 002Dh (virtual device ID for W32S device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F P - MS Windows - MACH32 - GET API ENTRY POINT AX = 1684h BX = 0030h (virtual device ID for MACH32 device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - SERVER / VSERVER - GET API ENTRY POINT AX = 1684h BX = 0032h (virtual device ID for SERVER device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02671) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",#01296 at INT 20"Windows" (Table 02671) Call Windows95 VSERVER.VXD protected-mode entry point with: AX = function number 0003h NOP Return: AX = 0000h 0004h NOP Return: AX = 0000h 0007h NOP Return: AX = 0000h 0008h NOP Return: nothing 000Fh ??? Return: AX = status 0000h successful 0842h on error 0010h ??? Return: AX = status 0000h successful 0842h on error else Return: AX = 0032h SeeAlso: #02670,#02672Top
INT 2F - MS Windows - CONFIGMG - GET API ENTRY POINT AX = 1684h BX = 0033h (virtual device ID for CONFIGMG device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02672) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02672) Call CONFIGMG.VXD entry point with: AX = function number 0000h get CONFIGMG version Return: CF clear AH = major version AL = minor version ... 005Ah else Return: CF set AX = 0020h SeeAlso: #01297 at INT 20"Windows",#02671,#02673Top
INT 2F - Intel Plug-and-Play - CONFIGURATION MANAGER - GET ENTRY POINT AX = 1684h BX = 0034h (ID for Configuration Manager) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> API entry point (see #02673) 0000h:0000h if Configuration Manager not loaded Note: this API is often provided by a DOS device driver, in which case it is available whether or not MSWindows is running Index: installation check;Plug-and-Play Configuration Manager SeeAlso: AX=1684h/BX=304Ch (Table 02673) Call Configuration Manager entry point with: AX = function 0000h "CM_GetVersion" get supported DDI version Return: AH = BCD major version AL = BCD minor version BX = number of devices identified by configuration Note: returns AX = 0000h if no config manager installed 0001h "CM_GetConfig" get device configuration BX = device index ES:DI -> buffer for configuration information (see #02675) Return: AX = status 0000h successful ES:DI buffer filled other error code (0001h = index out of range) 0002h "CM_LockConfig" lock device configuration ES:DI -> configuration information (see #02675) Return: AX = status 0000h successful ES:DI buffer filled with assigned config 0001h resources conflict 0002h invalid request or configuration info 0003h "CM_UnlockConfig" unlock device configuration ES:DI -> configuration information (see #02675) Return: AX = status 0000h successful ES:DI buffer filled with assigned config 0001h invalid request or configuration info 0004h "CME_QueryResources" get hot-swappable resources ES:DI -> configuration information (see #02675) Return: AX = status (see #02674) 0005h "CME_AllocResources" remove resources from available pool ES:DI -> configuration information (see #02675) Return: AX = status (see #02674) 0006h "CME_DeallocResources" return resources to available pool ES:DI -> configuration information (see #02675) Return: AX = status (see #02674) SeeAlso: #01298 at INT 20"Windows",#02672,#02676 (Table 02674) Values for Configuration Manager status: 00h successful 01h device not found, configuration error 02h I/O port unavailable 04h IRQ unavailable 08h DMA channel unavailable 10h memory range unavailable SeeAlso: #02673 Format of Configuration Information Structure: Offset Size Description (Table 02675) 00h DWORD bus ID 04h DWORD device ID 08h DWORD serial number 0Ch DWORD logical ID 10h DWORD flags ---ISA bus--- 14h BYTE Card Select Number 15h BYTE logical device number 16h WORD Read Data port ------ 18h WORD number of memory windows 1Ah 9 DWORDs physical base addresses of memory windows 3Eh 9 DWORDs length of memory windows 62h 9 WORDs memory window attributes 74h WORD number of I/O ports 76h 20 WORDs I/O port base addresses B6h 20 WORDs lengths of I/O port ranges F6h WORD number of IRQs F8h 7 BYTEs IRQ registers FFh 7 BYTEs IRQ attributes 106h WORD number of DMA channels 108h 7 BYTEs DMA channels used 10Fh 7 WORDs DMA channel attributes 11Dh 3 BYTEs reserved SeeAlso: #02673Top
INT 2F - MS Windows - VFBACKUP - GET API ENTRY POINT AX = 1684h BX = 0036h (virtual device ID for VFBACKUP device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02676) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02676) Call VFBACKUP.VXD entry point with: nothing -- this API is a NOP for the default Windows95 VFBACKUP SeeAlso: #02673,#01126Top
INT 2F - MS Windows - ENABLE.VXD - GET API ENTRY POINT AX = 1684h BX = 0037h (virtual device ID for ENABLE device) (see #02677) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02676) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02677) Call Windows95 ENABLE.VXD entry point with: AX = function number 0000h get ENABLE version Return: CF clear AX = version (AH = major, AL = minor) 0001h EBX = ??? Return: ??? 0002h get ??? Return: CF clear DX:AX = ??? 0003h get ??? Return: CF clear DX:AX = ??? 0004h ??? EBX = ??? ECX = ??? EDX = ??? Return: CF clear if successful CF set on error else Return: CF set SeeAlso: #02676,#02678Top
INT 2F - MS Windows - VCOND - GET API ENTRY POINT AX = 1684h BX = 0038h (virtual device ID for VCOND device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02678) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02678) Call VCOND.VXD virtual-86 entry point with: AX = function number 0202h 0203h 0204h 0205h 0206h 0207h 0208h 0209h 020Ah 020Bh 020Dh 020Eh 020Fh 0210h 0401h 0402h 0403h 0404h 0405h else NOP SeeAlso: #02679,#02677 (Table 02679) Call VCOND.VXD protected-mode entry point with: AX = function number 0301h 0302h 0303h 0304h 0305h 0306h 0307h 0308h else NOP SeeAlso: #02678,#02676Top
INT 2F - MS Windows - DSVXD - GET API ENTRY POINT AX = 1684h BX = 003Bh (virtual device ID for DSVXD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - BIOS VxD - GET API ENTRY POINT AX = 1684h BX = 003Dh (virtual device ID for BIOS device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02680) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02680) Call BIOS.VXD entry point with: AX = function number 0000h get BIOS.VXD version Return: CF clear AH = major version AL = minor version 0100h ??? Return: AX = 0000h Note: calls CONFIGMG services 804Eh/804Fh 0200h ??? Return: CF clear if successful AX = ??? CF set on error AX = error code??? Note: invokes VxDcall 00290002h 0300h ??? Return: CF clear if successful AX = ??? CF set on error AX = error code??? else Return: CF set SeeAlso: #02679,#02681Top
INT 2F - MS Windows - WSOCK - GET API ENTRY POINT AX = 1684h BX = 003Eh (virtual device ID for WSOCK device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F P - MS Windows - VFLATD - GET API ENTRY POINT AX = 1684h BX = 011Fh (virtual device ID for VFLATD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02681) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",AX=1684/BX=045Dh,INT 20"Windows" (Table 02681) Call VFLATD.VXD entry point with: DL = function number 00h get VFLATD version and ??? Return: CF clear EAX = version (AH = major, AL = minor) EBX = ??? ECX = ??? EDX = ??? or 00000000h 01h ??? AX = ??? CX = ??? Return: EAX = ??? EDX = ??? 02h ??? ??? 03h ??? EAX = ??? EBX = ??? ESI = ??? CX = ??? DH = ??? Return: EAX = ??? EDX = ??? CF clear 04h ??? DH = ??? EAX = ??? ECX = ??? Return: CF clear EAX = ??? EDX = ??? 05h ??? ??? Note: locks some linear memory and calls fn 02h 06h ??? ??? Return: CF clear if successful CF set on error Note: calls fn 02h and unlocks some linear memory else Return: CF set SeeAlso: #02680Top
INT 2F - MS Windows - VIPX - GET API ENTRY POINT AX = 1684h BX = 0200h (virtual device ID for VIPX device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - WINICE - GET API ENTRY POINT AX = 1684h BX = 0202h (virtual device ID for WINICE device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F P - MS Windows - VCLIENT - GET API ENTRY POINT AX = 1684h BX = 0203h (virtual device ID for VCLIENT device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - BCW - GET API ENTRY POINT AX = 1684h BX = 0205h (virtual device ID for BCW device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F R - MS Windows - DPMS VxD - GET API ENTRY POINT AX = 1684h BX = 0207h (virtual device ID for DPMS device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VCOMMUTE - GET API ENTRY POINT AX = 1684h BX = 0234h (virtual device ID for VCOMMUTE device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F P - MS Windows - VTDAPI - GET API ENTRY POINT AX = 1684h BX = 0442h (virtual device ID for VTDAPI device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02682) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02682) Call VTDAPI.VXD entry point with: EAX = function number 0000h 0001h 0002h 0003h 0004h 0005h 0006h 0007h 0008h 0009h 000Ah 000Bh else Return: nothing??? SeeAlso: #02682Top
INT 2F - MS Windows - VADMAD - GET API ENTRY POINT AX = 1684h BX = 0444h (virtual device ID for VADMAD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02683) 0000h:0000h if the VxD does not support an API (Table 02683) Call VADMAD entry point with: DX = operation 0000h set VADMAD mode AX = desired mode 0001h set VADMAD channel AX = desired channel Note: after setting mode/channel, start the DMA operation with an OUT to I/O port 0Bh (channels 0-3) or D6h (channels 4-7) SeeAlso: #01268 at INT 20"Windows"Top
INT 2F - MS Windows - VSBD - GET API ENTRY POINT AX = 1684h BX = 0445h (virtual device ID for VSBD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VADLIBD - GET API ENTRY POINT AX = 1684h BX = 0446h (virtual device ID for VADLIBD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F P - MS Windows - vjoyd - GET API ENTRY POINT AX = 1684h BX = 0449h (virtual device ID for "vjoyd" device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02684) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02684) Call VJOYD.VXD entry point with: AX = function number 0000h get VJOYD version Return: AH = major version AL = minor version 0001h ??? DX = ??? Return: DX:AX = ??? 0002h ??? DX = ??? Return: DX:AX = ??? 0003h ??? Retrun: AX = 0001h 0004h ??? DX = ??? Return: DX:AX = ??? 0005h ??? Return: ??? else Return: EAX = 00000000h SeeAlso: #02682,#02685Top
INT 2F - MS Windows - mmdevldr - GET API ENTRY POINT
AX = 1684h
BX = 044Ah (virtual device ID for "mmdevldr" device) (see #02642)
ES:DI = 0000h:0000h
Return: ES:DI -> VxD API entry point (see #02685)
0000h:0000h if the VxD does not support API in current mode
SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
(Table 02685)
Call MMDEVLDR.VXD entry point with:
DX = function number
0000h ???
Return: CF clear if successful
AX = 0000h
CF set on error
AX = error code (000Bh)
Note: invokes VxDCall 17000Eh ("CallAtAppyTime")
0001h ???
Return: CF clear if successful
AX = 0000h
CF set on error
AX = error code (000Bh)
Note: invokes VxDCall 17000Eh ("CallAtAppyTime")
0002h ???
EDX = ???
Return: CF clear if successful
AX = 0000h
EDX = ???
CF set on error
AX = error code
0003h ???
Return: CF clear if successful
AX = 0000h
CF set on error
AX = error code
Note: invokes VxDcall 2A0002h ("VWIN32_QueueUserApc")
0004h set Win32 event
Return: CF clear if successful
AX = 0000h
CF set on error
AX = error code
Note: invokes VxDcall 2A000Eh ("VWIN32_SetWin32Event")
0005h ??? (allocates some memory)
Return: CF clear
AX = 0000h
0006h ??? (frees memory)
Return: CF clear if successful
AX = 0000h
CF set on error
AX = error code
else
Return: CF set
AX = 000Bh (invalid function)
SeeAlso: #02684,#02686
Top
INT 2F P - MS Windows - VflatD - GET API ENTRY POINT AX = 1684h BX = 045Dh (virtual device ID for VflatD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",AX=1684h/BX=011Fh,INT 20"Windows"Top
INT 2F - MS Windows - azt16 - GET API ENTRY POINT AX = 1684h BX = 045Fh (virtual device ID for "azt16" device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02686) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h/BX=3110h,AX=1684h"DEVICE API",INT 20"Windows" (Table 02686) Call azt16.VXD entry point with: DX = function number 0000h get azt16 version Return: CF clear AX = version (AH=major, AL=minor) 0001h ??? AX = subfunction 0000h ??? Return: 0001h ??? ECX = ??? else error Return: CF clear if successful ??? CF set on error AX = error code 0002h ??? AX = ??? BX = ??? Return: ??? 0003h ??? AX = ??? BX = ??? Return: ??? 0004h ??? BX = ??? CX = ??? Return: CF clear if successful AX = 0001h CF set on error AX = 0000h 0005h ??? BX = ??? CX = ??? Return: CF clear if successful AX = 0001h CF set on error AX = 0000h 0006h ??? BX = ??? ECX = ??? Return: CF clear if succesful AX = ??? CF set on error AX = FFFFh 0100h get azt16 version Return: CF clear AX = version (AH=major, AL=minor) 0101h AX = ??? ECX = ??? Return: CF clear if successful AX = 0001h CF set on error AX = 0000h 0102h ??? AX = ??? Return: CF clear if successful CF set on error AX = reason??? (0/1/2) 0103h ??? AX = ??? Return: CF clear if successful AX = 0000h CF set on error AX = reason??? (1/3) 0200h ??? EDX = ??? ??? Return: CF clear if successful DX:AX = ??? CF set on error DX:AX = 0000h:0000h 0201h ??? ??? Return: CF clear AX= 0000h else Return: CF set SeeAlso: #02685,#02705Top
INT 2F P - MS Windows - UNIMODEM - GET API ENTRY POINT AX = 1684h BX = 0460h (virtual device ID for UNIMODEM device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02687) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02687) Call UNIMODEM.VXD protected-mode entry point with: AX = function number 0000h Return: AX = ??? 0001h Return: AX = ??? 0002h Return: AX = ??? 0003h Return: AX = ??? 0004h Return: AX = ??? 0005h Return: AX = ??? 0006h Return: AX = ??? 0007h Return: AX = ??? else Return: AX = 0002h SeeAlso: #02686,#02688Top
INT 2F - MS Windows - VNetSup - GET API ENTRY POINT AX = 1684h BX = 0480h (virtual device ID for VNetSup device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02688) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02688) Call VNetSup.VXD entry point with: AX = function number 0000h Return: AX = ??? 0001h Return: AX = ??? 0002h Return: AX = ??? else Return: CF set AX = 0001h SeeAlso: #02687,#02689Top
INT 2F - MS Windows - VBrowse - GET API ENTRY POINT AX = 1684h BX = 0482h (virtual device ID for VBrowse device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VSHARE - GET API ENTRY POINT AX = 1684h BX = 0483h (virtual device ID for VSHARE device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02689) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02689) Call Windows95 VSHARE.VXD entry point with: AX = function number 0000h get VSHARE version Return: AH = major version AL = (BCD?) minor version else NOP SeeAlso: #02688Top
INT 2F P - MS Windows - IFSMgr - GET API ENTRY POINT AX = 1684h BX = 0484h (virtual device ID for IFSMgr device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VFAT - GET API ENTRY POINT AX = 1684h BX = 0486h (virtual device ID for VFAT device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - NWLINK - GET API ENTRY POINT AX = 1684h BX = 0487h (virtual device ID for NWLINK device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F R - MS Windows - VIP - GET API ENTRY POINT AX = 1684h BX = 0489h (virtual device ID for VIP device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows 3.11 - VXDLDR - GET API ENTRY POINT AX = 1684h BX = 048Ah (virtual device ID for VTCP device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VCACHE - GET API ENTRY POINT AX = 1684h BX = 048Ah (virtual device ID for VCACHE device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02691) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02690) Call Windows95 VCACHE.VXD entry point with: Return: CF set SeeAlso: #02689,#02691Top
INT 2F - MS Windows - RASMAC - GET API ENTRY POINT AX = 1684h BX = 048Dh (virtual device ID for RASMAC device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - NWREDIR - GET API ENTRY POINT AX = 1684h BX = 048Eh (virtual device ID for NWREDIR device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02691) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02691) Call Windows95 NWREDIR.VXD entry point with: Return: CF set EAX = FFFFFFFFh SeeAlso: #02690Top
INT 2F - MS Windows - NSCL - GET API ENTRY POINT AX = 1684h BX = 0494h (virtual device ID for NSCL device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02692,#02693) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02692) Call Windows95 NSCL.VXD virtual-86 entry point with: AL = function number 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah else Return: AX = FFFFh SeeAlso: #02691,#02692 (Table 02693) Call Windows95 NSCL.VXD protected-mode entry point with: AL = function number 00h 01h 02h 03h else Return: AX = FFFFh SeeAlso: #02692Top
INT 2F - MS Windows - PPPMAC - GET API ENTRY POINT AX = 1684h BX = 0499h (virtual device ID for PPPMAC device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VDHCP - GET API ENTRY POINT AX = 1684h BX = 049Ah (virtual device ID for VDHCP device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VNBT - GET API ENTRY POINT AX = 1684h BX = 049Bh (virtual device ID for VNBT device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - VMB - GET API ENTRY POINT AX = 1684h BX = 1021h (virtual device ID for VMB device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - PHARLAPX - GET API ENTRY POINT AX = 1684h BX = 28A0h (virtual device ID for PHARLAPX device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02694) 0000h:0000h if the VxD does not support an API (Table 02694) Call PHARLAPX VxD entry point with: AX = function 0001h get PHARLAP.386 version Return: AX = version number (AH = major, AL = minor) ---queue functions--- 0101h allocate a new message queue CX = size of queue data buffer in bytes Return: DX:AX = handle for new queue, or 0000h:0000h on error 0102h allocate a new key queue CX = size of queue data buffer in bytes EDX = VM handle into which keys will be pasted Return: DX:AX = handle for new queue, or 0000h:0000h on error 0103h free message queue EDX = queue handle Return: AX = status (0000h,0003h,0007h) (see #02695) 0104h free key queue EDX = queue handle Return: AX = status (0000h,0003h,0005h) (see #02695) 0105h add message to communications queue EDX = queue handle BX = length of message data in bytes CX = length of message header in bytes ES:(E)SI -> message header GS:(E)DI -> message data Return: AX = status (0000h-0003h,0007h) (see #02695) 0106h remove message from queue EDX = queue handle CX = length of buffer in bytes ES:(E)SI -> buffer for message Return: AX = status (0000h,0003h,0006h,0007h,0008h) (see #02695) CX = length of returned message (if AX=0000h or 0008h) 0107h flush queue (remove all data) EDX = queue handle Return: AX = status (0000h,0003h) (see #02695) 0108h add PasteKey structure(s) to key queue EDX = queue handle CX = number of PasteKey structures in buffer ES:(E)SI -> PasteKey array (see #02696) Return: AX = status (0000h-0003h) (see #02695) 0109h register enqueueing callback function EDX = queue handle ECX = function argument ES:(E)SI -> callback function Return: AX = status (0000h,0003h,0009h) (see #02695) 010Ah register dequeueing callback function EDX = queue handle ECX = function argument ES:(E)SI -> callback function Return: AX = status (0000h,0003h,0009h) (see #02695) 010Bh unregister enqueueing callback function EDX = queue handle Return: AX = status (0000h,0003h,0009h) (see #02695) 010Ch unregister dequeueing callback function EDX = queue handle Return: AX = status (0000h,0003h,0009h) (see #02695) 010Dh get message queue status EDX = queue handle Return: AX = status (0000h,0003h) (see #02695) CX = number of pending messages 010Eh peek at message in queue EDX = queue handle BX = number of message in queue (0000h = first) CX = size of buffer in bytes ES:(E)SI -> buffer for message Return: AX = status (0000h,0003h,0006h,0008h) (see #02695) CX = length of returned message (if AX=0000h or 0008h) 010Fh peek at last message in queue EDX = queue handle CX = size of buffer in bytes ES:(E)SI -> buffer for message Return: AX = status (0000h,0003h,0006h,0008h) (see #02695) CX = length of returned message (if AX=0000h or 0008h) 0110h replace last message in queue EDX = queue handle CX = length of message header in bytes BX = length of message data in bytes ES:(E)SI -> message header GS:(E)DI -> message data Return: AX = status (0000h,0002h,0003h) (see #02695) 0111h set permitted message count for queue EDX = queue handle CX = maximum number of messages to enqueue (FFFFh = unlimited) Return: AX = status (0000h,0003h) (see #02695) ---generalized VxD services--- 0202h call VxD function ES:(E)BX -> in/out register-set buffer Return: buffer updated 0203h map flat ??? --system register functions--- 0301h read system registers into buffer ES:(E)SI -> 512-byte buffer Return: AX = 0000h buffer filled (mostly zeros) 0302h copy linear memory into buffer EDX = linear address CX = number of bytes to copy ES:(E)SI -> buffer Return: AX = 0000h 0303h copy data into linear memory EDX = linear address CX = number of bytes to copy ES:(E)SI -> buffer Return: AX = 0000h 0304h freeze VM ??? 0305h unfreeze VM ??? ---name registration functions--- 0401h register name EDX = magic number to associate with name ES:(E)SI -> name to register Return: AX = status (0000h,0009h) (see #02695) 0402h unregister name ES:(E)SI -> name to be unregistered Return: AX = status (0000h,0009h) (see #02695) 0403h look up name ES:(E)SI -> name to look up Return: DX:AX = magic number or 0000h:0000h if not registered 0404h get name list handle Return: DX:AX = name list handle 0000h:0000h if not initialized ---special DOS server routines (undocumented)--- 0501h register 0502h unregister 0503h validate VM 0504h get INT9 count 0505h get screen line 0506h get shift status 0507h get server PB pointer 0508h initialize DOS shell 0509h get last VM handle (Table 02695) Values for PHARLAPX function status: 00h successful 01h data is too large to fit in queue 02h queue is full 03h invalid queue handle 04h invalid VM handle for queue 05h error starting a paste operation 06h queue is empty 07h a VM is blocked waiting on the queue 08h message was too long (truncated) 09h unable to register or unregister specified callback SeeAlso: #02694 Format of PHARLAPX PasteKey structure: Offset Size Description (Table 02696) 00h BYTE ASCII code 01h BYTE scan code (see #00006) 02h WORD shift states SeeAlso: #02694 Format of PHARLAPX VxD-call register structure: Offset Size Description (Table 02697) 00h DWORD call number 04h WORD input register map (see #02698) 06h WORD output register map (see #02698) 08h 7 DWORDs values for EAX, EBX, ECX, EDX, EBP, ESI, EDI on call 24h 4 WORDs values for DS, ES, FG, GS on call 2Ch DWORD EFLAGS on call 30h 7 DWORDs returned values of EAX, EBX, ECX, EDX, EBP, ESI, EDI 4Ch 4 WORDs returned values of DS, ES, FS, GS 54h DWORD returned EFLAGS SeeAlso: #02694 Bitfields for PHARLAPX VxD-call register map: Bit(s) Description (Table 02698) 0 value in EAX field is valid 1 value in EBX field is valid 2 value in ECX field is valid 3 value in EDX field is valid 4 value in EBP field is valid 5 value in ESI field is valid 6 value in EDI field is valid 7 value in DS field is valid 8 value in ES field is valid 9 value in FS field is valid 10 value in GS field is valid 11 value in EFLAGS field is valid SeeAlso: #02697Top
INT 2F - MS Windows - PharLap VxD - GET API ENTRY POINT AX = 1684h BX = 28A1h (virtual device ID for PharLap device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",AX=1684h/BX=28A0h,INT 20"Windows"Top
INT 2F - MS Windows - EDOS - GET API ENTRY POINT AX = 1684h BX = 2925h (virtual device ID for EDOS device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02699) 0000h:0000h if the VxD does not support an API (Table 02699) Call EDOS entry point with: AX = 0000h get EDOS version number Return: AH = major version AL = minor version AX = 0001h display message CX = 0 DX:BX -> ASCIZ Message AX = 0002h get EDOS error coded Return: EAX = time in milliseconds that Windows has been running AX = 0003h execute windows program Return: EAX = cumulative amount of time the virtual machine has been active, in milliseconds AX = 0008h get/set priority BX = 0000h??? foreground 0001h background DI = 0000h get 0001h set DX = priority setting Return: CX = foreground priority DX = background priority BX:AX = flags 00000001h exclusive ON 00000010h background ON SI = CPU percentageTop
INT 2F - MS Windows - VSBPD - GET API ENTRY POINT AX = 1684h BX = 292Dh (virtual device ID for VSBPD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - GRVSULTR - GET API ENTRY POINT AX = 1684h BX = 295Ah (virtual device ID for GRVSULTR device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - Intel Plug-and-Play - CONFIGURATION ACCESS - GET ENTRY POINT AX = 1684h BX = 304Ch (ID for Configuration Access) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> API entry point (see #02700) 0000h:0000h if Configuration Access not loaded Note: this API is often provided by a DOS device driver, in which case it is available whether or not MSWindows is running Index: installation check;Plug-and-Play Configuration Access SeeAlso: AX=1684h/BX=0034h (Table 02700) Call Plug-and-Play Configuration Access entry point with: AX = function 0000h "CA_GetVersion" Return: AX = BCD version (AH = major, AL = minor) 0001h "CA_PCI_Read_Config_Byte" (see also INT 1A/AX=B108h) !!! 0002h "CA_PCI_Read_Config_Word" (see also INT 1A/AX=B109h) 0003h "CA_PCI_Read_Config_DWord" (see also INT 1A/AX=B10Ah) 0004h "CA_PCI_Write_Config_Byte" (see also INT 1A/AX=B10Bh) 0005h "CA_PCI_Write_Config_Word" (see also INT 1A/AX=B10Ch) 0006h "CA_PCI_Write_Config_DWord" (see also INT 1A/AX=B10Dh) 0007h "CA_PCI_Generate_Special_Cycle" (see also INT 1A/AX=B106h) 0008h "CA_PCI_Get_Routing_Options" (see also INT 1A/AX=B10Eh) 0009h invalid function 000Ah invalid function 000Bh "CA_PnPISA_Get_Info" 000Ch "CA_PnPISA_Read_Config_Byte" 000Dh "CA_PnPISA_Write_Config_Byte" 000Eh "CA_PnPISA_Get_Resource_Data" 000Fh invalid function 0010h "CA_EISA_Get_Board_ID" 0011h "CA_EISA_Get_Slot_Config" 0012h "CA_EISA_Get_SlotFunc_Config" 0013h "CA_EISA_Clear_NVRAM_Config" 0014h "CA_EISA_Write_Config" 0015h invalid function 0016h "CA_ESCD_Get_Info" 0017h "CA_ESCD_Read_Config" 0018h "CA_ESCD_Write_Config" 0019h invalid function 001Ah "CA_Acfg_PCI_Manage_IRQs" DL = IRQ??? ES:DI -> ??? Return: AX = status 001Bh "CA_Acfg_PCI_Get_Routing_Options" ES:DI -> IRQ routing table header (see #01259 at INT 1A/AX=B406h) Return: AX = status 001Ch-001Fh invalid functions 0020h "CA_PnPB_Get_Num_Sys_Dev_Nodes" 0021h "CA_PnPB_Get_Sys_Dev_Node" 0022h "CA_PnPB_Set_Sys_Dev_Node" 0023h "CA_PnPB_Get_Stat_Res_Info" 0024h "CA_PnPB_Set_Stat_Res_Info" Return: AX = FFFFh if unsupported function SeeAlso: #02701Top
INT 2F - MS Windows - VVidramD - GET API ENTRY POINT AX = 1684h BX = 3099h (virtual device ID for VVidramD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02701) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02701) Call VVidramD (VIDRAM.VXD) virtual-86 entry point with: AX = function number 0000h map page??? BX = page number??? Return: CF clear if successful CF set on error 0001h ??? Return: CF clear if successful CF set on error else Return: CF set SeeAlso: #02700,#02702Top
INT 2F P - MS Windows - WSVV - GET API ENTRY POINT AX = 1684h BX = 30F6h (virtual device ID for WSVV device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02702) Call WSVV.VXD protected-mode entry point with: AX = function number ???? Return: ??? SeeAlso: #02701,#02703Top
INT 2F - MS Windows - WPS - GET API ENTRY POINT AX = 1684h BX = 310Eh (virtual device ID for WPS device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02703) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02703) Call WPS protected-mode entry point with: DX = function 0000h get WPS.386 version Return: CF clear AX = version (AH = major, AL = minor) 0001h get number of installed VxDs Return: CF clear AX = number of installed VxDs 0002h get VxD characteristics AX = number of VxD ES:BX -> buffer for VxD characteristics structure (see #02704) Return: CF clear ES:BX buffer filled SeeAlso: #02702,#02706 Format of WPS.386 VxD characteristics structure: Offset Size Description (Table 02704) 00h WORD VxD ID number 02h BYTE VxD minor version 03h BYTE VxD major version 04h BYTE DDK minor version 05h BYTE DDK major version 06h WORD flags bit 0: V86 API supported bit 1: PM API supported bit 2: services supported 08h DWORD start order 0Ch 9 BYTEs ASCIZ VxD name SeeAlso: #02703Top
INT 2F - MS Windows - VSGLX16.386 - GET API ENTRY POINT AX = 1684h BX = 3110h (virtual device ID for VSGLX16.386) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02705) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h/BX=045Fh,AX=1684h"DEVICE API",INT 20"Windows" (Table 02705) Call VSGLX16.386 entry point with: DX = function number 0000h get azt16 version Return: CF clear AX = version returned by "azt16" device 0001h get ??? AX = ??? (always fails if nonzero) ES:BX -> buffer for ??? first DWORD of buffer must be set to length of buffer (in bytes, 1 <= size <= 92) before calling Return: CF clear if successful AX = 0001h CF set on error (invalid pointer, bad buffer size) AX = 0000h 0002h AX = ??? BX = ??? Return: CF clear if successful AX = ??? CF set on error AX = error code 0003h AX = ??? BX = ??? Return: CF clear if successful CF set on error 0004h set ??? ES:DI -> buffer containing ??? BX = ??? CX = number of bytes to copy Return: CF clear if successful AX = 0001h CF set on error AX = 0000h 0005h get ??? ES:DI -> buffer for ??? BX = ??? CX = number of bytes to copy Return: CF clear if successful AX = 0001h CF set on error AX = 0000h else Return: CF set SeeAlso: #02686Top
INT 2F - MS Windows - STAT.386 - GET API ENTRY POINT AX = 1684h BX = 31CFh (virtual device ID for STAT.386) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02706) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02706) Call STAT.386 entry point with: AX = function 0000h get version Return: AX = STAT.386 version (AH = major, AL = minor) 0001h execute RDMSR/WRMSR/RDTSC BH = 00h BL = second opcode byte (30h=WRMSR,31h=RDTSC,32h=RDMSR) EDX:EDI = value to be written (for BL=30h) ECX = MSR number for RDMSR/WRMSR Return: EDX:EAX = value read (RDTSR/RDMSR only) SeeAlso: #02703,#02707Top
INT 2F - QEMM v8.01 - MAGNARAM VxD - GET API ENTRY POINT AX = 1684h BX = 34DCh (virtual device ID for MAGNARAM) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02707) 0000h:0000h if the VxD does not support an API SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02707) Call MAGNARAM MAGNA95.VXD protected-mode entry point with: AX = function number 0000h get version and ??? Return: AX = version (AH = major, AL = minor) CX = ??? bit 0: ??? bit 1: ??? 0001h get ??? Return: CF clear DX:AX = ??? SHL 2 0002h Return: CF clear if successful AX = ??? DX = ??? CF set on error 0003h get ??? Return: CF clear DX:AX = ??? SHL 2 0004h ??? Return: CF clear DX:AX = ??? 0005h ??? Return: CF clear DX:AX = ??? 0006h ??? Return: CF clear DX:AX = ??? 0007h ??? Return: CF clear DX:AX = ??? 0008h ??? Return: CF clear DX:AX = ??? 0009h ??? Return: CF clear DX:AX = ??? 000Ah ??? Return: CF clear DX:AX = ??? 000Bh get ??? Return: CF clear DX:AX = ??? SHL 2 000Ch get ??? Return: CF clear DX:AX = ??? SHL 2 000Dh get ??? Return: CF clear DX:AX = ??? SHL 2 000Eh get ??? Return: CF clear AX = ??? DX = ??? 000Fh get ??? Return: CF clear DX:AX = ??? 0010h get ??? Return: CF clear DX:AX = ??? 0011h get ??? Return: CF clear DX:AX = ??? 0012h get ??? Return: CF clear DX:AX = ??? 0013h get ??? Return: CF clear DX:AX = ??? 0014h get ??? Return: CF clear DX:AX = ??? 0015h get ??? Return: CF clear DX:AX = ??? else Return: CF set SeeAlso: #02706,#02708Top
INT 2F - MS Windows - DSOUND - GET API ENTRY POINT AX = 1684h BX = 357Eh (virtual device ID for DSOUND device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"Top
INT 2F - MS Windows - MX1501HAD - GET API ENTRY POINT AX = 1684h BX = 377Bh (virtual device ID for MX1501HAD device) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02708) 0000h:0000h if the VxD does not support an API Note: The drivers VCMD95C.VXD and VCMD.386 are part of the driver disks provided with the chip-card-reader/keyboard combination MX 1501 HAD, produced by Cherry SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02708) Call CHERRY VCMD95C.VXD entry point with: AX = function 0001h get version Return: AX = version number (0100h) (AH = major, AL = minor) 0002h hook INT 09 (and 8???) 0003h unhook INT 09 (and 8???) 0004h get number of bytes in FIFO Return: AX = bytes in FIFO 0005h get next FIFO-data Return: AX = data BL = port number BH = direction (1=in, 0=out) DX:CX = timestamp 0006h clear FIFO 0007h output byte DX = port number BL = keyboard command Return: data in FIFO (see #02710) (value, port, in/out, timestamp) 0008h input byte DX = port number Return: data in FIFO (see #02710) (value, port, in/out, timestamp) 0009h input byte immediately DX = port number Return: AX = data 000Ah read next FIFO data (nondestructive) Return: AX = data BL = port number BH = direction (1=in, 0=out) DX:CX = timestamp 000Bh get timestamp Return: DX:CX = timestamp (in ms) 000Ch enable IRQ 1 000Dh disable IRQ 1 000Eh enable data retrieval Note: Sets a flag in the internal mode-byte which tells the driver to recognize the data 000Fh disable data retrieval Note: resets a flag in the internal mode-byte 0010h get retrieval mode Return: AX = current retrieval mode 0011h set retrieval mode BX = new retrieval mode (see #02709) Return: AX = old retrieval mode 0012h get command value Return: AX = command value 0013h set command value BX = command value SeeAlso: #02706,#02711 Bitfields for retrieval mode: Bit(s) Description (Table 02709) 0 enable data retrieval 1 0 = interrupt-driven 1 = polling mode 2 0 = read port 60h everytime 1 = read port 60h only when OBF of port 64h is set 3 0 = don't call old INT 9 1 = call INT 9 before our INT-handler 4-7 reserved SeeAlso: #02708,#02710 Format of FIFO entry (1024 entries in FIFO): Offset Size Description (Table 02710) 00h BYTE data byte 01h BYTE I/O port 02h BYTE direction (1=in, 0=out) 03h BYTE reserved 04h DWORD timestamp SeeAlso: #02708,#02709Top
INT 2F - MS Windows - VIWD - GET API ENTRY POINT AX = 1684h BX = 38DAh (virtual device ID for VIWD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02711) 0000h:0000h if the VxD does not support API in current mode SeeAlso: AX=1684h"DEVICE API",INT 20"Windows" (Table 02711) Call VIWD.VXD entry point with: DX = function number 0000h ??? Return: CF clear AX = ??? 0004h ??? Return: CF clear DX = 0000h 0006h Return: CF clear 000Ah AX = ??? Return: CF clear if successful CF set on error 000Ch 000Dh 000Eh Return: CF clear 000Fh Return: CF clear 0010h 0011h 0015h Return: CF clear if successful AX = ??? CF set on error AX = ??? DX = 0000h 0016h 0017h Return: CF clear if successful AX = ??? CF set on error AX = ??? DX = 0000h 0018h ??? CX = ??? Return: CF clear if successful AX = 0000h CF set on error else Return: CF set SeeAlso: #02708,#02712Top
INT 2F - MS Windows - POSTMSG - GET API ENTRY POINT AX = 1684h BX = 4321h (virtual device ID for POSTMSG device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02712,#02714) 0000h:0000h if the VxD does not support an API (Table 02712) Call POSTMSG protected-mode entry point with: AX = window handle CX:BX -> callback procedure (see #02713) Return: nothing Note: this call registers a WinApp with the VxD; the callback must be in a fixed, non-discardable code segment SeeAlso: #02714,#02715 (Table 02713) Values POSTMSG callback routine is called with: STACK: DWORD "lParam" parameter from DOSApp WORD "wParam" parameter from DOSApp WORD Windows message number (WM_USER + 100h) WORD registered HWND (Table 02714) Call POSTMSG V86-mode entry point with: BX = wParam value to pass to protected-mode callback DX:AX = lParam value to pass to protected-mode callback Return: CF clear if successful CF set on error (no WinApp registered) SeeAlso: #02712Top
INT 2F - MS Windows - VSWITCHD - GET API ENTRY POINT AX = 1684h BX = 7FE0h (virtual device ID for VSWITCHD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02715) 0000h:0000h if the VxD does not support an API (Table 02715) Call VSWITCHD entry point with: AX = function 0000h toggle windowed mode (simulate Alt-Enter keypress) Return: nothing 0001h get windowed mode Return: CF clear if VM is windowed CF set if VM is full-screen SeeAlso: #02712,#02716Top
INT 2F - MS Windows - VbillD - GET API ENTRY POINT AX = 1684h BX = 8888h (virtual device ID for VbillD device) (see #02642) ES:DI = 0000h:0000h Return: ES:DI -> VxD API entry point (see #02716) 0000h:0000h if the VxD does not support an API (Table 02716) Call VbillD entry point with: AX = function 0001h set reverse video 0002h set normal video Return: ??? SeeAlso: #02715Top
INT 2F - MS Windows - SWITCH VMs AND CALLBACK AX = 1685h BX = VM ID of virtual machine to switch to CX = flags (see #02717) DX:SI = priority boost (refer to VMM.INC) ES:DI -> FAR procedure to callback Return: CF set on error AX = error code 01h invalid VM ID 02h invalid priority boost 03h invalid flags CF clear if successful event will be or has been called Notes: some DOS devices, such as networks, need to call functions in a specific VM. This call forces the appropriate VM to be installed. the callback procedure must preserve all registers and return with IRET SeeAlso: AX=1683h,INT 15/AX=1117h,AX=DB06h"WINGO" Bitfields for VM switching flags: Bit(s) Description (Table 02717) 0 wait until interrupts enabled 1 wait until critical section unowned 2-15 reserved (zero)Top
INT 2F - DOS Protected-Mode Interface - DETECT MODE AX = 1686h Return: AX = 0000h if operating in protected mode under DPMI (INT 31 available) AX nonzero if in real/V86 mode or no DPMI (INT 31 not available) SeeAlso: AX=1687hTop
INT 2F - DOS Protected-Mode Interface - INSTALLATION CHECK AX = 1687h Return: AX = 0000h if installed BX = flags bit 0: 32-bit programs supported CL = processor type (02h=80286, 03h=80386, 04h=80486) DH = DPMI major version DL = two-digit DPMI minor version (binary) SI = number of paragraphs of DOS extender private data ES:DI -> DPMI mode-switch entry point (see #02718) AX nonzero if not installed SeeAlso: AX=1686h,AX=43E0h,AX=DE01h/BX=4450h,AX=FB42h/BX=0001h SeeAlso: INT 31/AX=0400h,INT 31/AX=5702h,INT D4/AH=10h (Table 02718) Call DPMI mode switch entry point with: AX = flags bit 0: set if 32-bit program ES = real mode segment of buffer for DPMI private data (ignored if SI was zero) Return: CF set on error program still in real mode AX = error code (DPMI 1.0+) 8011h unable to allocate all necessary descriptors 8021h 32-bit program specified, but 16-bit DPMI host CF clear if successful CS = 16-bit selector corresponding to real-mode CS SS = selector corresponding to real-mode SS (64K limit) DS = selector corresponding to real-mode DS (64K limit) ES = selector to program's PSP (100h byte limit) FS = GS = 0 high word of ESP = 0 if 32-bit program program now in protected mode Note: this entry point is only called for the initial switch to protected modeTop
INT 2F U - MS Windows 3.0, 386MAX v6.01 - GET ALIAS SELECTOR TO LDT AX = 1688h BX = 0BADh Return: AX = 0000h if supported BX = alias selector for LDT Note: use the LSL instruction or GetSelectorLimit() to find LDT size this call should be considered obsolete for Windows 3.1+, as the alias selector can be retrieved via the API entry point for "MS-DOS" retrieved from INT 2F/AX=168Ah (see #02720) SeeAlso: AX=1687h,#02720Top
INT 2F U - MS Windows 3.0+ - KERNEL IDLE CALL AX = 1689h BX = status flags (see #04105) Return: ??? Desc: the Windows KERNEL idle loop calls this function, which VMM uses as an indication that the system is idle, which in turn generates INT 28 and INT 2F/AX=1607h/BX=0018h callouts SeeAlso: AX=1680h,AX=1607h/BX=0018h,INT 15/AX=1000h,INT 28 Bitfields for Kernel Idle status flags: Bit(s) Description (Table 04106) 15-1 reserved 0 "Win_Idle_Mouse_Busy"Top
INT 2F - DPMI 0.9+ - GET VENDOR-SPECIFIC API ENTRY POINT
AX = 168Ah
DS:(E)SI = selector:offset of ASCIZ vendor name (see #02719)
Return: AL = status
00h successful
ES:(E)DI -> extended API entry point
8Ah unsuccessful
Notes: the vendor name is used to determine which entry point to return; it is
case-sensitive
available in protected mode only
32-bit applications use ESI and EDI, 16-bit applications use SI and DI
this call is present but not documented for DPMI 0.9
the Borland C++ 3.1 DPMILOAD does not handle requests for entry points
other than the MS-DOS one gracefully, producing an unhandled
exception report; this has been fixed in the Borland Pascal 7 version
SeeAlso: AX=1687h,INT 31/AX=0A00h,INT 31/AH=57h
(Table 02719)
Values for DPMI vendor-specific API names:
"MS-DOS" MS Windows and 386MAX v6.00+ (see #02720)
"386MAX" 386MAX v6.00+
"HELIX_DPMI" Helix Netroom's DPMI server
"Phar Lap" Phar Lap 286|DOS-Extender RUN286 (see #02721)
"RATIONAL DOS/4G" DOS/4G, DOS/4GW
"VIRTUAL SUPPORT" Borland 32RTM
(Table 02720)
Call Windows-support ("MS-DOS") entry point with:
AX = 0100h get LDT alias selector
Return: CF clear if successful
AX = alias selector
CF set on error
SeeAlso: #02719,AX=1688h/BX=0BADh
(Table 02721)
Call Phar Lap RUN286 entry point with:
AX = 0000h (function "load MSW")
BX = new value for MSW register (low word of CR0)
Return: ???
SeeAlso: #02719
Top
INT 2F - MS Windows 3.1 - SET FOCUS TO SPECIFIED VIRTUAL MACHINE AX = 168Bh BX = virtual machine ID (see AX=1683h), 0000h for current DOS box Return: AL = 00h if focus set to specified VM Notes: documented on the Microsoft Developer's Network CD-ROM if the VM is a windowed DOS box, it will be set to full screen SeeAlso: AX=1683hTop
INT 2F - MS Windows 3.1 - RESTART COMMAND AX = 168Ch ??? Return: ??? Note: WIN.COM executes specified applicationTop
INT 2F - Windows95 - TITLE - SET APPLICATION TITLE AX = 168Eh DX = 0000h ES:DI -> ASCIZ application title (max 79 chars+NUL) Return: AX = status 0000h failed 0001h successful Note: if ES:DI is 0000h:0000h or points at an empty string, the current title is removed BUG: this function can return a successful status even though the title was not changed; reportedly, waiting for two clock ticks after program startup solves this problem SeeAlso: AX=168Eh/DX=0001h,AX=168Eh/DX=0002hTop
INT 2F - Windows95 - TITLE - SET VIRTUAL MACHINE TITLE AX = 168Eh DX = 0001h ES:DI -> ASCIZ virtual machine title (max 29 chars+NUL) Return: AX = status 0000h failed 0001h successful Notes: if ES:DI is 0000h:0000h or points at an empty string, the current title is removed the VM title should only be changed on explicit instruction from the user BUG: this function can return a successful status even though the title was not changed; reportedly, waiting for two clock ticks after program startup solves this problem SeeAlso: AX=168Eh/DX=0000h,AX=168Eh/DX=0003hTop
INT 2F - Windows95 - TITLE - GET APPLICATION TITLE AX = 168Eh DX = 0002h ES:DI -> buffer for ASCIZ application title CX = size of buffer in bytes Return: AX = status 0000h failed 0001h successful Desc: copy as much of the application's window title as possible to the given buffer, appending a terminating NUL to the buffer SeeAlso: AX=168Eh/DX=0000h,AX=168Eh/DX=0003hTop
INT 2F - Windows95 - TITLE - GET VIRTUAL MACHINE TITLE AX = 168Eh DX = 0003h ES:DI -> buffer for ASCIZ virtual-machine title CX = size of buffer in bytes Return: AX = status 0000h failed 0001h successful Desc: copy as much of the virtual machine's title as possible to the given buffer, appending a terminating NUL to the buffer SeeAlso: AX=168Eh/DX=0001h,AX=168Eh/DX=0002hTop
INT 2F - Windows95 - CLOSE-AWARENESS - ENABLE/DISABLE CLOSE COMMAND AX = 168Fh DH = 00h DL = new state 00h disabled 01h enabled Return: AX = status 0000h successful else failed Desc: enable or disable the system menu Close command for an application SeeAlso: AX=168Fh/DH=01h,AX=168Fh/DH=02hTop
INT 2F - Windows95 - CLOSE-AWARENESS - QUERY CLOSE AX = 168Fh DH = 01h DL = 00h (reserved) Return: AX = status 0000h Close command selected but not yet acknowledged 0001h Close command issued and acknowledged 168Fh Close command not selected -- application should continue Desc: determine whether the user has requested that the application be closed by selecting the system menu's Close option SeeAlso: AX=168Fh/DH=00h,AX=168Fh/DH=02hTop
INT 2F - Windows95 - CLOSE-AWARENESS - ACKNOWLEDGE CLOSE AX = 168Fh DH = 02h DL = 00h (reserved) Return: AX = status 0000h successful else failed Note: once a Close command has been issued, no further keyboard input is available to the application until it calls this function to acknowledge the Close request SeeAlso: AX=168Fh/DH=00h,AX=168Fh/DH=03hTop
INT 2F - Windows95 - CLOSE-AWARENESS - CANCEL CLOSE AX = 168Fh DH = 03h DL = 00h (reserved) Return: AX = status 0000h successful else failed Desc: cancels a close request which has already been acknowledged if the application determines that it will not exit at this time SeeAlso: AX=168Fh/DH=00h,AX=168Fh/DH=03hTop
INT 2F U - MS-DOS 7 kernel - GET/SET ??? AX = 1690h ES:BX -> ??? Return: ES:BX -> ??? data (see #02722) SeeAlso: AX=1611h,AX=1614h Format of MS-DOS 7 kernel ??? data: Offset Size Description (Table 02722) 00h DWORD -> ??? data (appears to list the installed drivers) 04h DWORD -> ??? (value passed in via ES:BX is stored here)Top
INT 2F - MS Windows "WINOLDAP" - IDENTIFY WinOldAp VERSION AX = 1700h Return: AX = 1700h if this version of WINOLDAP doesn't support clipboard AX <> 1700h AL = WINOLDAP major version AH = WINOLDAP minor version Program: WinOldAp (WINOLDAP.MOD) is a Microsoft Windows extension supporting "old" (character-mode) application access to Dynamic Data Exchange, menus, and the Windows clipboard. Note: this installation check DOES NOT follow the format used by other software of returning AL=FFh SeeAlso: AX=1701h,AX=4601h Index: installation check;WINOLDAPTop
INT 2F - MS Windows "WINOLDAP" - OPEN CLIPBOARD AX = 1701h Return: AX = status nonzero success 0000h clipboard is already open SeeAlso: AX=1700h,AX=1702h,AX=1703h,AX=1704h,INT 16/AX=CB00hTop
INT 2F - MS Windows "WINOLDAP" - EMPTY CLIPBOARD AX = 1702h Return: AX = status nonzero clipboard has been emptied 0000h failure SeeAlso: AX=1700h,AX=1701h,AX=1703h,AX=1704h,INT 16/AX=CB05hTop
INT 2F - MS Windows "WINOLDAP" - SET CLIPBOARD DATA AX = 1703h DX = clipboard format supported by WinOldAp (see #02723) ES:BX -> data (see #02724,#02725) SI:CX = size of data Return: AX = status nonzero data copied into the Clipboard 0000h failure SeeAlso: AX=1701h,AX=1705h,INT 16/AX=CB04h (Table 02723) Values for WinOldAp clipboard format: 01h text 02h bitmap 03h metafile picture 04h SYLK 05h DIF 06h TIFF 07h OEM text 08h DIB bitmap 80h special format (used by Windows WRITE, maybe other Windows applets???) 81h DSP text 82h DSP bitmap Format of Windows Clipboard bitmap: Offset Size Description (Table 02724) 00h WORD type (0000h) 02h WORD width of bitmap in pixels 04h WORD height of bitmap in pixels 06h WORD bytes per line 08h BYTE number of color planes 09h BYTE number of adjacent color bits in pixel 0Ah DWORD pointer to start of data 0Eh WORD width in 0.1mm units 10h WORD height in 0.1mm units 12h N BYTEs bitmap data Format of Windows metafile picture: Offset Size Description (Table 02725) 00h WORD mapping mode 02h WORD X extent 04h WORD Y extent 06h WORD picture dataTop
INT 2F - MS Windows "WINOLDAP" - GET CLIPBOARD DATA SIZE AX = 1704h DX = clipboard format supported by WinOldAp (see #02723) Return: DX:AX = size of data in bytes, including any headers 0000h:0000h if no data in this format in the Clipboard Note: Windows reportedly rounds up the size of the data to a multiple of 32 bytes SeeAlso: AX=1700h,AX=1703h,AX=1705hTop
INT 2F - MS Windows "WINOLDAP" - GET CLIPBOARD DATA AX = 1705h DX = clipboard format supported by WinOldAp (see #02723) ES:BX -> buffer Return: AX = status nonzero success 0000h error, or no data in this format in Clipboard SeeAlso: AX=1700h,AX=1704h,INT 16/AX=CB03hTop
INT 2F - MS Windows "WINOLDAP" - CloseClipboard AX = 1708h Return: AX = status 0000h failure nonzero successTop
INT 2F - MS Windows "WINOLDAP" - COMPACT CLIPBOARD AX = 1709h SI:CX = desired size in bytes Return: DX:AX = number of bytes in largest block of free memory Note: WinOldAp is responsible for including the size of any headersTop
INT 2F - MS Windows "WINOLDAP" - GET DEVICE CAPABILITIES AX = 170Ah DX = GDI information index (see #02726) Return: AX = integer value of the desired item (see #02727,#02728,#02729,#02730,#02731,#02732,#02733) Note: This function returns the device-capability bits for the given display (Table 02726) Values for GDI information index: 00h device driver version 02h device classification 04h width in mm 06h height in mm 08h width in pixels 0Ah height in pixels 0Ch bits per pixel 0Eh number of bit planes 10h number of brushes supported by device 12h number of pens supported by device 14h number of markers supported by device 16h number of fonts supported by device 18h number of colors 1Ah size required for device descriptor 1Ch curve capabilities 1Eh line capabilities 20h polygon capabilities 22h text capabilities 24h clipping capabilities 26h bitblt capabilities 28h X aspect 2Ah Y aspect 2Ch length of hypotenuse of aspect 58h logical pixels per inch of width 5Ah logical pixels per inch of height SeeAlso: #02727,#02728,#02729,#02730,#02731,#02732,#02733 (Table 02727) Values for device classification: 00h vector plotter 01h raster display 02h raster printer 03h raster camera 04h character-stream, PLP 05h Metafile, VDM 06h display-file SeeAlso: #02726,#02728,#02729,#02730,#02731,#02732,#02733 Bitfields for curve capabilities: Bit(s) Description (Table 02728) 0 circles 1 pie wedges 2 chord arcs 3 ellipses 4 wide lines 5 styled lines 6 wide styled lines 7 interiors SeeAlso: #02726,#02727,#02729,#02730,#02731,#02732,#02733 Bitfields for line capabilities: Bit(s) Description (Table 02729) 1 polylines 2 markers 3 polymarkers 4 wide lines 5 styled lines 6 wide styled lines 7 interiors SeeAlso: #02726,#02727,#02728,#02730,#02731,#02732,#02733 Bitfields for polygon capabilities: Bit(s) Description (Table 02730) 0 polygons 1 rectangles 2 trapezoids 3 scanlines 4 wide borders 5 styled borders 6 wide styled borders 7 interiors SeeAlso: #02726,#02727,#02728,#02729,#02731,#02732,#02733 Bitfields for text capabilities: Bit(s) Description (Table 02731) 0 output precision character 1 output precision stroke 2 clippping precision stroke 3 90-degree character rotation 4 arbitrary character rotation 5 independent X and Y scaling 6 double-size 7 integer scaling 8 continuous scaling 9 bold 10 italic 11 underline 12 strikeout 13 raster fonts 14 vector fonts 15 reserved SeeAlso: #02726,#02727,#02728,#02729,#02730,#02732,#02733 (Table 02732) Values for clipping capabilities: 00h none 01h clipping to rectangles SeeAlso: #02726,#02727,#02728,#02729,#02730,#02731,#02733 Bitfields for raster capabilities: Bit(s) Description (Table 02733) 0 simple bitBLT 1 device requires banding support 2 device requires scaling support 3 supports >64K bitmap SeeAlso: #02726,#02727,#02728,#02729,#02730,#02731,#02732Top
INT 2F U - MS-Manager AH = 18h ??? Return: ???Top
INT 2F U - DOS 4.x only SHELLB.COM - INSTALLATION CHECK AX = 1900h Return: AL = status 00h not installed FFh installedTop
INT 2F U - DOS 4.x only SHELLB.COM - SHELLC.EXE INTERFACE AX = 1901h BL = SHELLC type 00h transient 01h resident DS:DX -> far call entry point for resident SHELLC.EXE Return: ES:DI -> SHELLC.EXE workspace within SHELLB.COM Note: SHELLB.COM and SHELLC.EXE are parts of the DOS 4.x shellTop
INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM INTERFACE AX = 1902h ES:DI -> ASCIZ full filename of current batch file, with at least the final filename element uppercased DS:DX -> buffer for results Return: AL = 00h failed, either (a) final filename element quoted at ES:DI does not match identity of shell batch file quoted as parameter of most recent call of SHELLB command, or (b) no more Program Start Commands available. AL= FFh success, then: memory at DS:[DX+1] onwards filled as: DX+1: BYTE count of bytes of PSC DX+2: N BYTEs Program Start Command text BYTE 0Dh terminator Desc: COMMAND.COM executes the result of this call in preference to reading a command from a batch file. Thus the batch file does not advance in execution for so long as SHELLB provides PSCs from its workspace. Note: The PSCs are planted in SHELLB workspace by SHELLC, the user menu interface. The final PSC of a sequence is finished with a GOTO COMMON, which causes a loop back in the batch file which called SHELLC so as to execute SHELLC again. The check on batch file name permits PSCs to CALL nested batch files while PSCs are still stacked up for subsequent execution.Top
INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM interface AX = 1903h ES:DI -> ASCIZ batch file name as for AX=1902h Return: AL = status FFh quoted batch file name matches last SHELLB parameter 00h it does notTop
INT 2F U - DOS 4.x only SHELLB.COM - SHELLB transient to TSR interface AX = 1904h Return: ES:DI -> name of current shell batch file: WORD number of bytes of name following BYTEs (8 max) uppercase name of shell batch fileTop
INT 2F U - IBM ROM-DOS v4.0 - INSTALLATION CHECK AX = 1980h Return: AL = FFh if ??? installed/supported Note: called at the very beginning of SHELLSTB.COM, which exits if AL is not FFh on return SeeAlso: AX=1981h,AX=1982hTop
INT 2F U - IBM ROM-DOS v4.0 - GET ??? STRING AX = 1981h DS:DX -> buffer for ??? Return: AL = status FFh if successful DS:DX buffer filled (refer to note below) 81h on error Note: the first byte of the buffer is unchanged; depending on a byte in IBMBIO.COM, the remainder of the buffer is filled with either "C:\ROMSHELL.COM",0Dh or xxh,xxh,0Fh,"C:\ROMSHELL.COM",0Dh SeeAlso: AX=1980h,AX=1982hTop
INT 2F U - IBM ROM-DOS v4.0 - GET ??? TABLE AX = 1982h Return: AL = FFh if supported ES:DI -> ??? table (see #02734) Note: called by ROMSHELL.COM SeeAlso: AX=1980h,AX=1981h Format of ROM-DOS v4.0 ??? table: Offset Size Description (Table 02734) 00h BYTE ??? (00h) 01h BYTE ??? (41h) (ROMSHELL.COM checks if =00h) 02h BYTE ??? (00h) (ROMSHELL.COM checks if =01h) 03h WORD ??? (0001h) (ROMSHELL.COM checks if =0001h) 05h BYTE ??? (00h) 06h WORD ??? (04D5h)Top
INT 2F - DOS 4.0+ ANSI.SYS - INSTALLATION CHECK AX = 1A00h Return: AL = FFh if installed Notes: AVATAR.SYS also responds to this call documented for DOS 5+, but undocumented for DOS 4.xTop
INT 2F - ANSIPLUS.SYS v2.00+ - INSTALLATION CHECK
AX = 1A00h
BX = 414Eh ('AN')
CX = 5349h ('SI')
DX = 2B2Bh ('++')
Return: AL = FFh if installed
CF clear
ES:BX -> INT 29 entry point
CX = ANSIPLUS BCD version number (v3.10+, CH=major, CL=minor)
DL = capabilities (v4.00+)
00h full capability driver
01h reduced capability driver
2Bh full capability driver (before v4.00)
Program: ANSIPLUS.SYS is a CON device driver by Kristofer Sweger which
replaces the normal ANSI.SYS with a more powerful version having
many additional features
Notes: ANSIPLUS also identifies itself as ANSI.SYS if BX,CX, or DX differ
from the magic values above
an additional installation check is to test for the signature
"ANSIPLUS" 12 bytes before the INT 29 entry point; the version
number is also available as a four-character ASCII string (e.g.
"4.00") four bytes before the entry point
SeeAlso: AX=1AA5h,AX=1AA6h,AX=1AA7h,AX=1AA8h,AX=1AA9h,AX=1AAAh,AX=D44Fh
Top
INT 2F - AVATAR.SYS - INSTALLATION CHECK
AX = 1A00h
BX = 4156h ('AV')
CX = 4154h ('AT')
DX = 4152h ('AR')
Return: AL = FFh if installed
CF clear
BX = AVATAR protocol level supported
CX = driver type
0000h AVATAR.SYS
4456h DVAVATAR.COM inside DESQview window
DX = 0016h
Program: AVATAR.SYS is a CON replacement by George Adam Stanislav which
interprets AVATAR command codes in the same way that ANSI interprets
ANSI command codes
Notes: AVATAR also identifies itself as ANSI.SYS if BX, CX, or DX differ from
the magic values
SeeAlso: AX=1A21h,AX=1A3Ch,AX=1A3Fh,AX=1A52h,AX=1A72h,AX=1A7Dh,AX=1AADh"AVATAR"
Top
INT 2F U - DOS 4.0+ ANSI.SYS internal - GET/SET DISPLAY INFORMATION AX = 1A01h CL = function 7Fh for GET 5Fh for SET DS:DX -> parm block as for INT 21,AX=440Ch,CX=037Fh/035Fh respectively Return: CF clear if successful AX destroyed CF set on error AX = error code (many non-standard) Note: presumably this is the DOS IOCTL interface to ANSI.SYS SeeAlso: AX=1A02h,INT 21/AX=440ChTop
INT 2F U - DOS 4.0+ ANSI.SYS internal - MISCELLANEOUS REQUESTS AX = 1A02h DS:DX -> parameter block (see #02735) Return: CF clear if successful CF set on error AX = error code Note: DOS 5+ chains to previous handler if AL > 02h on call SeeAlso: AX=1A01h Format of ANSI.SYS parameter block: Offset Size Description (Table 02735) 00h BYTE subfunction 00h set/reset interlock 01h get /L flag 01h BYTE interlock state 00h=reset, 01h=set This interlock prevents some of the ANSI.SYS post-processing in its hook onto INT 10, AH=00h mode set 02h BYTE (returned) 00h if /L not in effect 01h if /L in effectTop
INT 2F - AVATAR.SYS - SET DRIVER STATE AX = 1A21h (AL='!') DS:SI -> command string with one or more state characters (see #02736) CX = length of command string Return: CF set on error (invalid subfunction) CF clear if successful Note: the characters in the state string are interpreted left to right, and need not be in any particular order SeeAlso: AX=1A00h/BX=4156h,AX=1A3Fh (Table 02736) Values for AVATAR.SYS state characters: 'a' activate driver 'd' disable driver 'f' use fast screen output 'g' always convert gray keys (+ and -) to function keys 'G' never convert gray keys 'l' convert gray keys only when ScrollLock active 's' use slow screen output 't' Tandy 1000 keyboard (not yet implemented)Top
INT 2F U - AVATAR.SYS v0.11 - ??? AX = 1A3Ch ??? Return: CX = 0000h SeeAlso: AX=1A00h/BX=4156h,AX=1A21h,AX=1A3EhTop
INT 2F U - AVATAR.SYS v0.11 - ??? AX = 1A3Eh CL = ??? CH = ??? DL = ??? DH = ??? Return: CL = ??? CH = ??? DL = ??? DH = ??? SeeAlso: AX=1A3Ch,AX=1A3FhTop
INT 2F - AVATAR.SYS - QUERY DRIVER STATE AX = 1A3Fh (AL='?') ES:DI -> buffer CX = length of buffer in bytes Return: CF clear CX = actual size of returned info Note: the returned information consists of multiple letters whose meanings are described under AX=1A21h SeeAlso: AX=1A00h/BX=4156h,AX=1A21h,AX=1A44hTop
INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ3 HANDLER
AX = 1A42h
BX = 4156h ('AV')
ES:DI -> FAR handler for serial port using IRQ3
DS = data segment needed by handler
Return: AX = status/return value
0000h if no more room
1A42h if ASD not installed
else handle to use when uninstalling
Notes: the handler need not save/restore registers or signal EOI to the
interrupt controller
the handler should return AX=0000h if the interrupt was meant for it,
and either leave AX unchanged or return a non-zero value otherwise
the most recently installed handler will be called first, continuing
to earlier handlers until one returns AX=0000h
SeeAlso: AX=1A43h,AX=1A62h
Top
INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ4 HANDLER
AX = 1A43h
BX = 4156h ('AV')
ES:DI -> FAR handler for serial port using IRQ4
DS = data segment needed by handler
Return: AX = status/return value
0000h if no more room
1A43h if ASD not installed
else handle to use when uninstalling
Notes: (see AX=1A42h)
SeeAlso: AX=1A42h,AX=1A63h
Top
INT 2F - AVATAR.SYS v0.11+ - GET DATA SEGMENT
AX = 1A44h
BX = 4156h ('AV')
Return: AX = 0000h
DS = data segment
CX = size of data segment
Note: AVATAR.SYS calls this function whenever it is invoked. If each
process under a multitasker hooks this function and provides a
separate data segment, AVATAR.SYS becomes fully reentrant.
SeeAlso: AX=1A21h,AX=1A3Fh,AX=1A52h
Top
INT 2F U - AVATAR.SYS v0.11 - GET ??? AX = 1A52h CX = size of buffer ES:DI -> buffer Return: ??? copied into user buffer Note: the maximum size of the data which may be copied is returned by AX=1A72h SeeAlso: AX=1A53h,AX=1A72hTop
INT 2F U - AVATAR.SYS v0.11 - ??? AX = 1A53h CL = ??? (00h-05h) ??? Return: ??? SeeAlso: AX=1A00h/BX=4156h,AX=1A52h,AX=1A72hTop
INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ3 HANDLER
AX = 1A62h
BX = 4156h ('AV')
CX = handle for IRQ routine returned by AX=1A42h
SeeAlso: AX=1A42h,AX=1A63h
Top
INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ4 HANDLER
AX = 1A63h
BX = 4156h ('AV')
CX = handle for IRQ routine returned by AX=1A43h
SeeAlso: AX=1A43h,AX=1A62h
Top
INT 2F U - AVATAR.SYS v0.11 - GET ??? SIZE AX = 1A72h Return: CX = maximum size of ??? SeeAlso: AX=1A00h/BX=4156h,AX=1A52h,AX=1A7Bh,AX=1AADh"AVATAR"Top
INT 2F U - AVATAR.SYS v0.11 - ??? AX = 1A7Bh Return: AX = 0000h CX = 0000h SeeAlso: AX=1A00h/BX=4156h,AX=1A72h,AX=1A7DhTop
INT 2F U - AVATAR.SYS v0.11 - ??? AX = 1A7Dh Return: AX = ??? SeeAlso: AX=1A00h/BX=4156h,AX=1A7BhTop
INT 2F - ANSIPLUS v4.03+ - GET/SET ANSIPLUS INTERNAL VARIABLES AX = 1AA3h BH = function 00h get current/default colors Return: CH = default colors CL = current colors 01h set current/default colors CH = default colors (00h = leave unchanged) CL = current colors 02h get current subscreen region Return: BH,BL = true screen rows,columns CH,CL = top left row,column of region DH,DL = bottom right row,column of region 03h set subscreen region CH,CL = top left row,column of region DH,DL = bottom right row,column of region 04h get driver features (bits 0-31) Return: DX:CX = current feature bits 05h set driver features (bits 0-31) DX:CX = feature bits 06h get driver features (bits 32-63) Return: DX:CX = current feature bits 07h set driver features (bits 32-63) DX:CX = feature bits other: reserved for future use SeeAlso: AX=1AA4h,AX=1AA5hTop
INT 2F - ANSIPLUS v4.02+ - GET/SET ANSIPLUS SMOOTH SCROLLING RATE AX = 1AA4h BL = function 00h get scrolling rate 01h set scrolling rate BH = new minimum scrolling rate in scan lines per retrace Return: BH = smooth scrolling rate SeeAlso: AX=1AA3h,AX=1AA5hTop
INT 2F - ANSIPLUS v4.00+ - GET/SET ANSIPLUS CLIPBOARD AX = 1AA5h DH = subfunction 00h get clipboard information 01h get clipboard text 02h set clipboard text 03h append text to clipboard 04h clear clipboard 05h paste clipboard to keyboard ES:BX -> data area for subfunctions 01h, 02h, and 03h CX = size of data area (maximum size for subfunction 01h, actual size to add to clipboard for subfunctions 02h and 03h) Return: AL = status 00h successful 01h unsupported subfunction (reduced capability driver) 02h insufficient space A5h unsupported function (ANSIPLUS before v4.00) ES:BX -> ANSIPLUS local clipboard data CX = number of bytes currently in local clipboard DX = maximum size of local clipboard SeeAlso: AX=1A00h/BX=414Eh,AX=1AA4h,AX=1AA6hTop
INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS DRIVER AX = 1AA6h BH = function 00h get hooked interrupts 01h set hooked interrupts mask BL = new interrupts mask (see #02737) Return: BL = previous interrupts mask (see #02737) SeeAlso: AX=1A00h/BX=414Eh,AX=1AA7h Desc: used to temporarily disable any prior copies of ANSIPLUS when a new copy is installed, such as in a multitasking system like DESQview Note: only the most-recently loaded copy of ANSIPLUS on the current INT 2F chain responds to this call Bitfields for ANSIPLUS hooked interrupts mask: Bit(s) Description (Table 02737) 0 INT 09 hook disabled 1 INT 10 hook disabled 2 INT 15 hook disabled 3 INT 16 hook disabled 4 INT 1C hook disabled 5 reset all bits when INT 29 called 6 INT 29 hook disabled 7 INT 33, INT 74, or other mouse event hook disabledTop
INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS FEATURES AX = 1AA7h BL = function 00h prevent scroll-back saves 01h enable scroll-back saves 02h disable key reprogramming and lock changes by escape sequences 03h enable key reprogramming by escape sequences 04h disable and lock key stacking changes by escape sequences 05h allow key stacking by escape sequences Return: nothing SeeAlso: AX=1AA6hTop
INT 2F - ANSIPLUS v3.10+ - GET NEXT ANSIPLUS SCROLLBACK LINE AX = 1AA8h Return: AL = status 00h successful ES:BX -> screen line (character and attribute pairs) CX = length of line in bytes, 0000h if no more lines or unsupported video mode 01h unsupported video mode active 02h screen currently scrolled back 03h reduced capability driver A8h unsupported function (driver before v3.10) SeeAlso: AX=1A00h/BX=414Eh,AX=1AA9hTop
INT 2F - ANSIPLUS v3.10+ - GET ANSIPLUS SCROLLBACK INFORMATION AX = 1AA9h Return: AL = status 00h successful BX = current number of lines in scrollback buffer CX = number of bytes in one line 01h unsupported video mode active 02h screen currently scrolled back 03h reduced capability driver A9h unsupported function (driver before v3.10) Desc: determine how much data is in the scrollback buffer and initialize scrollback retrieval to return the first line on the next call to AX=1AA8h SeeAlso: AX=1A00h/BX=414Eh,AX=1AA8hTop
INT 2F - ANSIPLUS v3.01+ - GET/SET ANSIPLUS SCREEN SAVER BLANKING TIME AX = 1AAAh BX = function FFFFh to get current blanking time other to set time CX = blanking time in clock ticks (0000h-7FFFh) Return: BX = current blanking time CX = blanking time when last set SeeAlso: AX=1A00h/BX=414Eh,AX=1AABhTop
INT 2F - ANSIPLUS v3.01+ - SET ANSIPLUS KEY REPEAT RATE AX = 1AABh BX = repeat rate in characters per second 0000h use BIOS repeat rate Return: nothing SeeAlso: AX=1A00h/BX=414Eh,AX=1AAAh,AX=1AAChTop
INT 2F - ANSIPLUS v3.00+ - LOAD CHARACTER GENERATOR AX = 1AACh BH = number of bytes per character pattern BL = VGA/EGA character table to be loaded CX = number of characters to load DX = starting character code (offset into Map2 block) ES:BP -> user character table to be loaded Return: AX = 1100h Desc: load the EGA/VGA character generator without the BIOS function's side effects of resetting the video mode and color palette SeeAlso: AX=1A00h/BX=414Eh,AX=1AABh,AX=1AADh"ANSIPLUS",INT 10/AX=1100hTop
INT 2F - ANSIPLUS v2.00+ - ANSIPLUS DEVICE STATUS REPORT AX = 1AADh BL = report request code (81h-96h for v4.00) CX = color selector or key code, if required by request Return: AX = first reported result BX = second result CX = third result, if applicable (unchanged otherwise) DX = fourth result, if applicable (unchanged otherwise) Desc: get device status reports equivalent to those for Esc [#n sequences while bypassing any device redirection and avoiding the need to parse the returned result Note: the report request code in BL is identical to the number in the corresponding Esc [#n sequence SeeAlso: AX=1A00h/BX=414Eh,AX=1AAChTop
INT 2F U - AVATAR.SYS v0.11 - ??? AX = 1AADh DX = 0000h CX = subfunction (00h-0Ch) ??? Return: AX = 0000h if DX was nonzero ??? SeeAlso: AX=1A00h/BX=4156h,AX=1A72hTop
INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - INSTALLATION CHECK AX = 1B00h Return: AL = FFh if installed Note: XMA2EMS.SYS extension is only installed if DOS has page frames to hide. This extension hooks onto INT 67/AH=58h and returns from that call data which excludes the physical pages being used by DOS. SeeAlso: AH=1Bh"FRAME INFO"Top
INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - GET HIDDEN FRAME INFORMATION AH = 1Bh AL <> 00h DI = hidden physical page number Return: AX = FFFFh if failed (no such hidden page) AX = 0000h if OK, then ES = segment of page frame DI = physical page number Notes: this corresponds to the data edited out of the INT 67/AH=58h call FASTOPEN makes this call with AL = FFh SeeAlso: AX=1B00hTop
INT 2F - DR DOS 5.0 GRAFTABL - INSTALLATION CHECK AX = 2300h Return: AH = FFh Note: this installation check does not follow the usual format SeeAlso: AH=23h,AX=2E00hTop
INT 2F - DR DOS 5.0 GRAFTABL - GET GRAPHICS DATA AH = 23h AL nonzero Return: AH = FFh ES:BX -> graphics data (8 bytes for each character from 80h to FFh) SeeAlso: AX=2300h,AX=2E00hTop
INT 2F - DR DOS 6.0 TaskMAX - INSTALLATION CHECK AX = 2700h Return: AL = status 00h not installed FFh installed Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modesTop
INT 2F - DR DOS 6.0 TaskMAX - GET STATUS AX = 2701h Return: AX = maximum simultaneous tasks BX = index into TASK_IDS of current foreground task CX = currently-active tasks DX = version number (DL = major, DH = minor) (DR DOS 6.0 = 0001h, Novell DOS 7 = 0002h) ES:SI -> TASK_IDS ES:DI -> name table (array of 8-byte names, NUL-terminated if <8 chars) Notes: do not attempt to create a new task if CX == AX the task's index is its position on the task menu, while its ID is the position within the internal task name table SeeAlso: AX=2714h,AX=2716hTop
INT 2F - DR DOS 6.0 TaskMAX - GET PER-TASK EMS LIMIT AX = 2702h Return: DX = maximum pages INT 67/AH=42h will report available Note: TaskMAX does not limit EMS allocations other than by limiting the amount which is reported as being available at a given time SeeAlso: AX=2703h,INT 67/AH=42hTop
INT 2F - DR DOS 6.0 TaskMAX - SET PER-TASK EMS LIMIT AX = 2703h DX = maximum pages INT 67/AH=42h should report available Return: DX = new maximum for reporting Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=2702h,INT 67/AH=42hTop
INT 2F - DR DOS 6.0 TaskMAX - REGISTER/UNREGISTER TASK MANAGER AX = 2704h DL = subfunction 00h unregister task manager 01h register task manager Return: DL = status 00h registered 01h unregistered Notes: a task manager replaces TaskMAX's menu system with its own user interface; while one is registered, the TaskMAX hotkeys and Ctrl-Alt-Del invoke the manager rather than the built-in menu system unregister the task manager before terminating it SeeAlso: AX=2705h Index: hotkeys;TaskMAXTop
INT 2F - DR DOS 6.0 TaskMAX - ENABLE/DISABLE DIRECT SWITCHING AX = 2705h DL = subfunction 00h disable keystrokes for switching to next/prev/specified task 01h enable Return: nothing Note: should only be called by a registered task manager (see AX=2704h) SeeAlso: AX=2704h,AX=2706hTop
INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO SPECIFIED TASK AX = 2706h DX = task index (see AX=2701h) of task to be activated Return: DX = task index of previously-active task Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=2705h,AX=2707h,AX=2715hTop
INT 2F - DR DOS 6.0 TaskMAX - CREATE NEW TASK AX = 2707h DS:DX -> ASCIZ pathname of executable ES:BX -> parameter block (see #02738) CX = number of ticks before automatic return to task manager (0000h = run until termination or explicitly switched) Return: DX = new task's task index (FFFFh if task terminated) SeeAlso: AX=2706h,AX=2708h Format of TaskMAX parameter block: Offset Size Description (Table 02738) 00h WORD reserved, should be 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 PSPTop
INT 2F - DR DOS 6.0 TaskMAX - DELETE TASK AX = 2708h DX = task index Return: DX = FFFFh (task deleted) Notes: this call should only be used for abnormal task termination, after first checking for open files with AX=270Ch; should not be used with programs that allocate EMS or XMS memory switches to specified task first SeeAlso: AX=2707hTop
INT 2F - DR DOS 6.0 TaskMAX - NAME TASK AX = 2709h DX = task index DS:SI -> 8-byte name (8 NULs = remove name) Return: AL = task flags 00h ID unused or task terminated 01h ID in use, task name table entry valid 81h ID in use, task name fixed BX = task ID ES:DI -> name in task name table (see AX=2701h) Note: the task retains the given name until it terminates or the name is removed by specifying a name of 8 NULs. SeeAlso: AX=2701h,AX=2707hTop
INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK INDEX TO TASK ID AX = 270Ah DX = task index Return: DX = task ID (FFFFh if index invalid) Note: task IDs stay constant, while indexes can change when other tasks are deleted SeeAlso: AX=2701h,AX=270BhTop
INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK ID TO TASK INDEX AX = 270Bh DX = task ID Return: DX = task index (FFFFh if task not active) Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=270AhTop
INT 2F - DR DOS 6.0 TaskMAX - CHECK OPEN FILES AX = 270Ch DX = task index Return: AX = number of files currently open for specified task SeeAlso: AX=2708hTop
INT 2F - DR DOS 6.0 TaskMAX - CHECK IF TASK RUNNING PRIMARY COMMAND INTERPRETER AX = 270Dh DX = task index Return: DX = status 0000h if primary command interpreter (COMMAND.COM, etc.) running 0001h if not in root shell for task Note: TaskMAX will return 0001h if the specified task has spawned another command interpreter with AX=2707h SeeAlso: AX=2707h,AX=270ChTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET TEXT PASTE LEAD-IN AX = 270Eh CX = length of string (max 15 keystrokes, 0000h to get current string) DS:SI -> pasting lead-in string (character/scan-code pairs) Return: ES:DI -> current lead-in string Note: the specified sequence of keystrokes is sent to the application before every line of a text-mode spreadsheet paste SeeAlso: AX=270Fh,AX=2710h,AX=2713hTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE LEAD-IN AX = 270Fh CX = length of string (max 15 keystrokes, 0000h to get current string) DS:SI -> pasting lead-in string (character/scan-code pairs) Return: ES:DI -> current lead-in string Note: the specified sequence of keystrokes is sent to the application before every number in a numeric-mode spreadsheet paste SeeAlso: AX=270Eh,AX=2710h,AX=2711h,AX=2713hTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET PASTE LINE TERMINATOR STRING AX = 2710h CX = length of string (max 15 keystrokes, 0000h to get current string) DS:SI -> pasting terminator string (character/scan-code pairs) Return: ES:DI -> current terminator string Note: the specified sequence of keystrokes is sent to the application after every line of a spreadsheet paste operation SeeAlso: AX=270Eh,AX=270Fh,AX=2713hTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE DECIMAL POINT AX = 2711h DX = ASCII code for separator (FFFFh to get current) Return: DL = current separator character SeeAlso: AX=270FhTop
INT 2F - DR DOS 6.0 TaskMAX - INITIATE EXPORTING TASK DATA AX = 2712h DX = task indexTop
INT 2F - DR DOS 6.0 TaskMAX - INITIATE PASTE OPERATION AX = 2713h DX = task index CX = paste mode 0000h alphanumeric 0001h numeric 0002h text SeeAlso: AX=270Eh,AX=270Fh,AX=2710h,AX=2711hTop
INT 2F - DR DOS 6.0 TaskMAX - GET SWAP SPACE INFO AX = 2714h Return: CX = total KB of swap space DX = available KB of swap space Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=2701hTop
INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO TASK MANAGER AX = 2715h Return: only after calling task is again selected SeeAlso: AX=2706hTop
INT 2F - DR DOS 6.0 TaskMAX - GET PASTE BUFFER STATUS AX = 2716h Return: AX = 0000h if AX=2716h,AX=2717h,AX=2718h supported CX = bytes in paste buffer DX = current generation number (updated after every copy operation) BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support this call (it does support the remainder of the TaskMAX API) SeeAlso: AX=2701h,AX=2713h,AX=2714h,AX=2717h,AX=2718hTop
INT 2F - DR DOS 6.0 TaskMAX - PASTE DATA DIRECTLY TO APPLICATION BUFFER AX = 2717h CX = bytes in destination buffer ES:DI -> destination buffer Return: AX = 0000h if function supported CX = bytes actually copied (FFFFh if buffer too small) DX = current generation number for paste buffer BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support this call (it does support the remainder of the TaskMAX API) Note: the destination buffer may be too small if another task adds more data to the paste buffer after the AX=2716h call but before this call SeeAlso: AX=2713h,AX=2716h,AX=2718hTop
INT 2F - DR DOS 6.0 TaskMAX - COPY DATA DIRECTLY INTO PASTE BUFFER AX = 2718h CX = bytes in source buffer DS:SI -> source buffer (plain ASCII, lines terminated with CR LF) Return: AX = 0000h if function supported CX = bytes actually copied DX = current generation number for paste buffer BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support this call (it does support the remainder of the TaskMAX API) SeeAlso: AX=2712h,AX=2716h,AX=2717hTop
INT 2F - Novell DOS 7 TaskMGR - NOP AX = 2719h to 271BhTop
INT 2F U - Novell DOS 7 TaskMGR - ??? AX = 271Ch DX = ??? bit 0: ??? Return: ??? ---if DX bit 0 set--- AX = 0031h CX = 0000h BUG: if the task switcher is running, and DX bit 0 is set on call, this function will crash because its exit code attempts to pop several registers which are not pushed when DX bit 0 is setTop
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - SUPERVISOR MODULE AX = 2780h CL = 01h (module: Supervisor) CH = subfunction 00h unused Return: CX = status (0002h) (see #02739) 01h unused Return: CX = status (0002h) (see #02739) 02h "Z_ModuleReg" register an OS module EBX = module number (0005h-000Fh) DS:EDX -> module descriptor (see #02741) Return: CX = status (0000h,0030h) (see #02739) 03h allocate SYSDAT memory DX = number of ??? to allocate Return: CX = status (0000h,0003h) (see #02739) 04h get selector to SYSDAT Return: CX = 0000h (successful) BX = selector for EMM386 data segment EBX high word cleared 05h "Z_MoveReal" relocate segment into extended memory DS:EDX -> descriptor parameter block Return: ECX = status (00h,03h,31h,32h) (see #02739) ---if successful--- parameter block filled 06h "Z_Reboot" return to real mode via triple fault 07h debugger break Note: calls INT 03, then INT 21/AH=02h to output a question mark 08h "X_ForeCheck" check if domain is in foreground Return: CX = 0000h (successful) EBX = ??? (0 or 2) 09h register VxD with system 0Ah unload VxD hook 0Bh indicate end of initialization phase Return: CX = status (0002h) (see #02739) 0Ch "F_AllocWindow" allocate 4K mapping window 0Dh "F_RegisterBoot" register reboot addresses EBX = ??? EDX = ??? Return: ??? 0Eh "F_EnquireBoot" check if reboot active Return: CX = 0000h (successful) BL = ??? \ or BX = 0000h BH = ??? / 0Fh get debugging level Return: CX = 0000h (successful) EBX = new value for debugging level 10h set debugging level EDX = ??? Return: CX = 0000h (successful) EBX = old value of debugging level 11h installation check (documented) Return: CX = status 0000h if multitasker is installed EBX = version (0100h for v1.00) 1101h if multitasker is not present 12h "F_V86BPInstall" install V86 breakpoint DX = ??? Return: CX = 0000h (successful) AX = old value of ??? 13h "F_V86BPRemove" remove V86 breakpoint Return: CX = status (0000h,003Fh) (see #02739) AX = ??? 14h "F_V86BPOffer" indicate INT 03 to be used as V86 breakpoint EDX = linear address ??? of INT 03 instruction for breakpoint Return: CX = status (0000h,003Fh) (see #02739) 15h "F_LoaderCleanup" offer opportunity to clean up BX = segment of ??? Return: CX = 0000h (successful) BX = segment of ??? 16h "F_RegisterVxDWindow" register VxD mapping window 17h "F_RegisterPNW" register Personal NetWare information EBX = subfunction (0-2) Return: CX = status (0002h if EBX>2) (see #02739) ??? 18h unused Return: CX = status (0002h) (see #02739) Return: CX = status (most subfunctions) (E)AX and/or (E)BX contain return values, depending on function Notes: called by DPMS.EXE and EMM386.EXE this API is only available if AX=12FFh/BX=0EDCh returns successfully; because the request is handled on the initial trap to the memory manager caused by INT instructions, this API must be invoked with an actual INT 2F instruction instead of some simulation such as a far call to the address in the interrupt vector table SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=02h,AX=2780h/CL=03h,AX=2780h/CL=04h (Table 02739) Values for Novell DOS 7 EMM386 function status: 0000h successful 0001h not implemented 0002h invalid subfunction 0003h unable to find memory 0004h invalid flag (semaphore) number 0005h flag (semaphore) overrun 0006h flag (semaphore) underrun 0007h no queue handles available 0009h no queue buffers available 000Ah queue is in use 000Bh invalid process handle 000Ch no process handles available 000Dh queue access not permitted 000Eh queue is empty 000Fh queue is full 0012h no memory handles available 0014h can't find process in process list 001Bh invalid memory handle 0023h unable to terminate process 002Ah flag set ignored 002Dh no more system flags 002Eh flag (semaphore) not in idle state 002Fh flag (semaphore) wait timed out 0030h bad module number in CL 0031h bad descriptor invalid value for DESC_PB_SINFO in a descriptor parameter block 0032h no free descriptors 0033h error while locking/unlocking a page 0034h error getting or setting a page 0035h no pages available 0036h invalid domain 0037h process already frozen 0038h process not frozen 0039h fork failure (no registered swaplist) 003Ah page already free 003Bh page already allocated 003Ch unable to switch tasks 003Dh attempted to free critical section which is not active 003Eh too many active critical sections 003Fh ??? 41FFh current domain is invalid, or no domain in context 42FFh domain ID is not a valid descriptor 43FFh domain creation still in progress 44FFh domain currently being deleted 45FFh task manager is busy, cannot unload it 46FFh task manager already loaded 47FFh task manager not yet loaded 48FFh cannot save/restore because prior switch not complete 49FFh console already has owner 4BFFh unsupported opcode 4CFFh 32-bit address prefix not supported 4FFFh timeout, but not on timer queue 50FFh unable to lock timer queue 53FFh unable to switch while in Global Message Mode 54FFh error while setting Global Message Mode 55FFh not in Global Message Mode 56FFh system already in Domain Message Mode 57FFh not in Domain Message Mode 58FFh unable to allocate timeout structure 59FFh unsupported video type 5AFFh function not handled by any VM 5BFFh error in Serial..Set call 5CFFh error in Parallel..Set call 5DFFh domain list overflowed 5FFFh unable to free domain while in nobuffers mode Format of Novell DOS/OpenDOS EMM386 descriptor parameter block: Offset Size Description (Table 02740) 00h DWORD "DESC_PB_BASE" 04h DWORD "DESC_PB_LIMIT" 08h WORD "DESC_PB_SEL" 0Ah BYTE "DESC_PB_MINFO" 0Bh BYTE "DESC_PB_SINFO" SeeAlso: #02741 Format of Novell DOS/OpenDOS EMM386 module descriptor: Offset Size Description (Table 02741) 00h 12 BYTEs descriptor parameter block (see #02740) 0Ch DWORD -> module entry point Note: for function "Z_ModuleReg", only DESC_PB_SEL and the module entry point need to be initialized before calling EMM386 SeeAlso: #02740Top
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - REAL-TIME MONITOR AX = 2780h CL = 02h (module: Real-Time Monitor) CH = subfunction 00h ??? ??? Return: CX = status (0000h,0023h, others???) (see #02739) BX = ??? (0000h if CX=0000h, FFFFh if CX=0023h) Note: calls func 04h/sf 03h, func 04h/sf 1Eh,func 02h/sf 43h, func 02h/sf 0Bh, and func 04h/sf 01h 01h "Z_PCountGet" get and clear count of dispatches DX = ??? handle or 0000h for default Return: CX = status (0000h,000Bh) (see #02739) EBX = old value of ??? if successful EDX destroyed 02h "Z_FlagWait" wait on semaphore DX = index of semaphore??? Return: CX = status (0000h,0004h,0005h) (see #02739) EBX = 0000FFFFh on error, 00000000h if successful 03h "Z_FlagSet" set a semaphore flag DX = index of semaphore??? Return: CX = status (0000h,0004h,0006h) (see #02739) BX = FFFFh on error, 0000h if successful 04h "X_QCreate" create a new queue Return: CX = status (0000h,0007h,000Ah) (see #02739) 05h "X_QOpen" open queue for reading/writing EDX -> ??? data (first 8 bytes seem to be name) Return: CX = status (0000h,0009h,000Dh) (see #02739) 06h "X_QDelete" delete a queue Note: calls fn 02h/subfn 05h, then fn 02h/subfn 40h 07h "X_QRead" read message from queue EDX = ??? Return: CX = status (0000h,0009h,000Eh) (see #02739) 08h "X_QReadC" read message from queue, if any EDX = ??? Return: CX = status (0000h,0009h,000Eh) (see #02739) 09h "X_QWrite" write message to queue EDX = ??? Return: CX = status (0000h,0009h,000Fh) (see #02739) 0Ah "X_QWriteC" write message to queue, if space available EDX = ??? Return: CX = status (0000h,0009h,000Fh) (see #02739) 0Bh "X_PDelay" put process to sleep for specified period DX = number of clock ticks to sleep??? Return: CX = 0000h (successful) 0Ch "X_PDispatch" force a dispatch (run scheduler) Return: CX = 0000h (successful) 0Dh "F_PTerm" terminate process??? Return: CX = status (0000h,0023h) (see #02739) BX = FFFFh on error, 0000h if successful Note: calls fn 04h/subfn 03h, fn 04h/subfn 1Eh, fn 02h/subfn 43h, fn 02h/subfn 0Bh, fn 04h/sub 01h 0Eh "X_PCreate" create new process ??? Return: CX = status (0000h,000Ch) (see #02739) EBX = ??? if successful 0Fh "Z_PPriorSet" set process priority BX = ??? DX = ??? handle or 0000h for default Return: CX = status (0000h,000Bh) (see #02739) 10h "X_PHandleGet" get current process handle Return: CX = 0000h (successful) BX = handle of default ??? EBX high word cleared 11h "X_PTerm" terminate process DX = process handle or 0000h for current BX = ??? (handle???) Return: CX = status (0000h,000Bh,0014h) (see #02739) 12h "F_Sleep" ??? BX = ??? DX = ??? Return: CX = 0000h (successful) 13h "F_Wakeup" ??? DX = ??? Return: CX = status (see #02739) 14h "F_FindPDName" find process by name??? BX = ??? DX = ??? Return: CX = status (0000h,0014h) (see #02739) BX = FFFFh on error, ??? if successful 15h "F_SetFlags" set ??? flags BX = ??? (low two bits only) DX = ??? handle or 0000h for default Return: CX = status (0000h,000Bh) (see #02739) BX = new value of ??? flags (entire word) EBX high register cleared 16h "F_EndOfInterrupt" issue EOI to PIC Return: CX = 0000h (successful) 17h "X_PTermOff" disable process termination 18h "X_PTermOK" enable process termination 19h "Z_FlagStatusGet" get semahprore's status 1Ah "F_QRdMX" ??? 1Bh "F_QWrMX" ??? 1Ch "Z_FlagAlloc" allocate a new semaphore 1Dh "Z_FlagFree" free semaphore 1Eh "X_FlagsMaxGet" get number of semaphores supported 1Fh "X_QReadNDC" non-destructive read from queue (peek) 20h "Z_FlagWWTO" wait on semaphore, with timeout 21h "F_UdaAlloc" ??? 22h "F_UdaFree" ??? 23h "X_PSuspend" suspend process 24h "X_PUnsuspend" restart process after suspension 25h "X_CritEnter" enter critical region 26h "X_CritExit" leave critical region 27h "F_PCreate" ??? 28h "Z_PHandleListGet" get list of process handles 29h "Z_PNameGet" get process name 2Ah "Z_PStatusGet" get process status 2Bh "F_PDToDomain" get process' domain??? 2Ch "Z_PPriorGet" get process priority 2Dh "F_QDList" get list of queues??? 2Eh "Z_QNameGet" get queue's name 2Fh "X_QMsgLenGet" get message length of queue 30h "X_QMsgMaxGet" get message capacity of queue 31h "Z_QWriterGet" get handle of process waiting to write queue 32h "Z_QReaderGet" get handle of process waiting to read queue 33h "X_QMsgNumGet" get number of messages in queue 34h "Z_QFlagsGet" get queue's flags 35h "F_NameToQD" get queue by name??? 36h "F_NameToPD" get process by name??? 37h "X_MXCreate" create a mutex 38h "X_MXDelete" delete a mutex 39h "X_MXEnter" enter mutual-exclusion zone 3Ah "X_MXEnterC" enter mutual-exclusion zone if it is free 3Bh "X_MXExit" leave mutual-exclusion zone 3Ch "Z_TicksSet" set length of foreground time slices 3Dh "X_TickGet" get clock tick period 3Eh "F_ProcessID" ??? 3Fh "X_QClose" close a queue 40h "F_QDispose" delete queue??? 41h "F_PDToFlags" get process flags??? 42h "F_PDToDParam" ??? 43h "F_ReleaseMX" release mutex??? 44h "F_SimulateInt" ??? 45h "Z_QFlagsSet" set queue's flags 46h "F_TickRate" ??? 47h ??? Return: CX = status (most subfunctions) (E)AX and/or (E)BX contain return values, depending on function Notes: called by DPMS.EXE and EMM386.EXE this API is only available if AX=12FFh/BX=0EDCh returns successfully; because the request is handled on the initial trap to the memory manager caused by INT instructions, this API must be invoked with an actual INT 2F instruction instead of some simulation such as a far call to the address in the interrupt vector table SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=03h,AX=2780h/CL=04hTop
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - MEMORY AX = 2780h CL = 03h (module: Memory) CH = subfunction 00h ??? 01h "F_PdirGet" ??? 02h "F_PdirSet" ??? 03h "Z_PageAlloc" allocate a given page of memory 04h "F_PageAllocG" allocate global page??? 05h "F_PageAllocI" allocate instance page??? 06h "F_PtblRead" get page table??? 07h "F_PtrlWrite" select page table??? 08h "Z_PtblGet" read page table 09h "Z_PtblSet" change page table 0Ah "Z_PagesAlloc" allocate pages of memory 0Bh "Z_PageFree" free a given page of memory 0Ch "Z_MemAlloc" allocate a memory block 0Dh "Z_MemFree" release memory block 0Eh "Z_MemSizeGet" get size of memory block 0Fh "Z_MemResize" resize a memory block 10h "Z_DescAlloc" allocate a memory descriptor 11h "Z_DescFree" release a memory descriptor 12h "Z_DescGet" get details on memory descriptor 13h "Z_DescSet" set a memory descriptor 14h "Z_MemDescAlloc" allocate a memory block and its descriptor 15h "Z_MemDescFree" release a memory block and its descriptor 16h "Z_MemDescSizeGet" get size of memory block 17h "Z_MemDescResize" resize a memory block 18h "Z_PageLock" lock a page, with existing contents 19h "Z_PageUnlock" unlock a page 1Ah "Z_PageLockAny" lock a page, contents undefined 1Bh "Z_PageUnlockReuse" unlock page, reuse phsyical memory 1Ch "Z_PageLockNone" lock a page, no physical memory assigned 1Dh "Z_PageUnlockNone" unlock a page, don't reuse physical memory 1Eh "F_CallRealRaw" call real mode (SS:ESP supplied) 1Fh "F_IntRealRaw" perform real-mode interrupt (SS:ESP supplied) 20h "F_CallReal" call real mode with RETF frame 21h "F_IntReal" perform real-mode interrupt 22h "F_PagedCallReal" paged real-mode call 23h "F_PagedIntReal" paged real-mode interrupt 24h "F_CallIretReal" call real mode with IRET frame 25h "F_CallIretRealRaw" call real mode with IRET (SS:ESP supplied) 26h "F_CallProt16" call 16-bit protected-mode code 27h "F_CallProt32" call 32-bit protected-mode code 28h "F_IAddPage" add kernel instance data 29h "Z_PageDomLock" lock page in specific domain, preserve contents 2Ah "Z_PatgeDomUnlock" unlock page in specific domain 2Bh "Z_PageDomLockAny" lock page in specific domain, undef contents 2Ch "Z_PageDomUnlockReuse" unlock page in spec. domain,reuse ph.mem 2Dh "Z_PageDomLockNone" lock page in spec. domain, no phys memory 2Eh "Z_PageDomUnlockNone" unlock page in spec. domain, no phys. mem 2Fh "Z_GateAlloc" allocate a gate 30h "Z_GateFree" release a gate 31h "X_MemFreeGet" get total free memory 32h "X_MemTopGet" get highest memory address 33h "X_MemTotalGet" get total memory size 34h "F_DescRead" ??? 35h "F_DescWrite" ??? 36h "F_GetStack" ??? 37h "F_SetStack" ??? Return: CX = status (most subfunctions) (E)AX and/or (E)BX contain return values, depending on function Notes: called by DPMS.EXE and EMM386.EXE this API is only available if AX=12FFh/BX=0EDCh returns successfully; because the request is handled on the initial trap to the memory manager caused by INT instructions, this API must be invoked with an actual INT 2F instruction instead of some simulation such as a far call to the address in the interrupt vector table SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=04hTop
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DOMAINS AX = 2780h CL = 04h (module: Domains) CH = subfunction 00h "F_DAlloc" create new domain 01h "F_DFree" delete a domain 02h "X_DomHandleGetMy" get current domain handle 03h "F_DSet" switch to another domain 04h "Z_HandlerSWInt" install software-interrupt handler 05h "Z_HandlerPageFault" install page-fault handler 06h "Z_HandlerIOEx" install I/O exception handler 07h "Z_HandlerGenEx" install general exception handler 08h "Z_HandlerHWInt" install hardware interrupt handler 09h "Z_IOBitmapGet" get current domain's I/O bitmap entry 0Ah "Z_IOBitmapSet" set current domain's I/O bitmap entry 0Bh "Z_IOBitmapDomGet" get domain's I/O bitmap entry 0Ch "Z_IOBitmapDomSet" set domain's I/O bitmap entry 0Dh "Z_DomMemRead" read memory in another domain 0Eh "Z_DomMemWrite" write memory in another domain 0Fh "Z_PtblDomGet" read domain's page table 10h "Z_PtblDomSet" write domain's page table 11h "Z_InstanceSet" register instanced memory 12h "X_DomNProcessesGet" get number of processes in domain 13h "X_DomSuspend" suspend a domain 14h "Z_DomUnsuspend" resume execution of a domain 15h "Z_DomFork" make a copy of the current domain 16h "Z_DomTerm" terminate domain and all processes in it 17h "Z_HandlerUnlink" remove a handler 18h "Z_HandlerHWIntDflt" install default hardware interrupt handler 19h "Z_HandlerVHWInt" install virtual hardware interrupt handler 1Ah "Z_HandlerVHWIntDflt" install default virtual hware int handler 1Bh "Z_HandlerSwapIn" install swap-in handler 1Ch "Z_HandlerSwapOut" install swap-out handler 1Dh "Z_EndOfInterrupt" signal EOI 1Eh ??? 1Fh "Z_HandlerPCreate" install process-creation handler 20h "Z_HandlerPTerm" install process-termination handler 21h "Z_DomRootProcessGet" get domain's root process' handle 22h "F_DForeground" domain has just switched to foreground 23h "F_DBackground" domain has just switched to background 24h "F_MapHMA" map domain's HMA 25h "F_AddInstData" add DOS instance data 26h "X_DomMemFreeGet" get free memory in a domain 27h "X_DomMemUsedGet" get memory used by current domain 28h "Z_DomMemMaxGet" get per-domain memory limit 29h "Z_DomMemMaxSet" set per-domain memory limit 2Ah "F_ReflectInt21" protected-mode INT 21 support 2Bh "Z_DomHandleGet" get domain for a process 2Ch ??? 2Dh ??? 2Eh ??? 2Fh ??? 30h ??? 31h ??? 32h ??? Return: CX = status (most subfunctions) (E)AX and/or (E)BX contain return values, depending on function Notes: called by DPMS.EXE and EMM386.EXE this API is only available if AX=12FFh/BX=0EDCh returns successfully; because the request is handled on the initial trap to the memory manager caused by INT instructions, this API must be invoked with an actual INT 2F instruction instead of some simulation such as a far call to the address in the interrupt vector table SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03hTop
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - VIRTUAL MACHINES AX = 2780h CL = 05h (module: VM) CH = function 00h "F_VMProtInit" internal protected-mode initialization 01h "Z_TMLoad" load task manager 02h "Z_TMUnload" unload task manager 03h "Z_VMBackSet" send virtual machine to background 04h "Z_VMForeSet" send virtual machine to foreground 05h "Z_VMSaveEnable" enable saving virtual machine 06h "Z-VMSaveDisable" disable saving virtual machine 07h "Z_TMInit" intialize task manager 08h "Z_TMHotKeyGet" get task manager hotkey 09h "Z_TMHitKeyEnable" restart scanning for task manager key 0Ah "Z_TMHotKeyDisable" stop scanning for task manager key 0Bh "X_ForeGet" get current foreground domain 0Ch "F_DMAHandlerEnable" (re)enable DMA address translation 0Dh "F_DMAHandlerDisable" disable DMA address translation 0Eh "Z_SerialTimeoutGet" set serial port timeout 0Fh "Z_ParallelTimeoutSet" set parallel port timeout 10h "F_VCPIEntry" domain is entering VCPI mode 11h "F_VCPIExit" domain is leaving VCPI mode 12h "X_MsgGlobalEnter" enter Global Message Mode 13h "X_MsgGlobalDisplay" display global message 14h "X_MsgGlobalExit" leave Global Message Mode 15h "X_MsgDomEnter" enter Domain Message Mode 16h "X_MsgDomDisplay" display domain-specific message 17h "X_MsgDomExit" leave Domain Message Mode 18h "X_MsgFatalDisplay" display fatal error message 19h "Z_SerialBaseSet" set serial port address 1Ah "Z_ParallelBaseSet" set parallel port address 1Bh "Z_SerialIRQSet" set serial port IRQ 1Ch "Z_ParallelIRQSet" set parallel port IRQ 1Dh "F_ResetVideo" emergency video system reset 1Eh "F_SetMouseIRQ" set which IRQ is used by mouse 1Fh "F_CheckNotIdle" check whether system is idle 20h "F_GetMouseInfo" 21h "Z_SerialOwnerGet" get serial port owner 22h "Z_SerialTimeoutGet" get serial port timeout 23h "Z_ParallelOwnerGet" get parallel port owner 24h "Z_ParallelTimeoutGet" get parallel port timeout ??? Return: ??? Notes: called by DPMS.EXE and EMM386.EXE the handler for this function may be set by one of the subfunctions of AX=2780h/CL=01h; the default handler returns AX=BX=FFFFh and CX=0001h (see #02739) this API is only available if AX=12FFh/BX=0EDCh returns successfully; because the request is handled on the initial trap to the memory manager caused by INT instructions, this API must be invoked with an actual INT 2F instruction instead of some simulation such as a far call to the address in the interrupt vector table SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03hTop
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DPMI SERVICES AX = 2780h CL = 06h CH = function 00h "F_InitDPMI" used for internal initialization 01h "F_DescAllocLDT" allocate LDT descriptor 02h "F_DescFreeLDT" free LDT descriptor 03h "F_DescGetLDT" get details on LDT descriptor 04h "F_DescSetLDT" set up LDT descriptor 05h "F_DescAllocInt21" allocate descriptor for PM INT 21 06h "F_WhereIsDPMI" get address of DPMI global data Return: ??? Notes: called by DPMS.EXE and EMM386.EXE the handler for this function may be set by one of the subfunctions of AX=2780h/CL=01h; the default handler returns AX=BX=FFFFh and CX=0001h (see #02739) this API is only available if AX=12FFh/BX=0EDCh returns successfully; because the request is handled on the initial trap to the memory manager caused by INT instructions, this API must be invoked with an actual INT 2F instruction instead of some simulation such as a far call to the address in the interrupt vector table SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03hTop
INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - AVAILABLE FOR APPS AX = 2780h CL = function (07h-0Fh) ??? Return: ??? Notes: called by DPMS.EXE and EMM386.EXE the handlers for each of these functions may be set individually by one of the subfunctions of AX=2780h/CL=01h; the default handlers return with all registers unchanged this API is only available if AX=12FFh/BX=0EDCh returns successfully; because the request is handled on the initial trap to the memory manager caused by INT instructions, this API must be invoked with an actual INT 2F instruction instead of some simulation such as a far call to the address in the interrupt vector table SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03hTop
INT 2F U - Novell DOS 7 TaskMGR - BEGIN CRITICAL SECTION??? AX = 2781h Return: ??? SeeAlso: AX=2782hTop
INT 2F U - Novell DOS 7 TaskMGR - END CRITICAL SECTION??? AX = 2782h Return: ??? SeeAlso: AX=2781hTop
INT 2F U - Novell DOS 7 - EMM386.EXE - GET ??? AX = 2783h Return: AX = ??? BX = ???Top
INT 2F U - Novell DOS 7 TaskMGR - ??? API AX = 278Fh as for INT 2F/AX=2780h Return: as for INT 2F/AX=2780h Note: Novell DOS 7 TaskMGR passes this call through to INT 2F/AX=2780h without changing any other registers SeeAlso: AX=2780h/CL=01h,AX=2782hTop
INT 2F - Gammafax DOS Dispatcher INTERFACE AH = 2Ah Note: details not available at this time SeeAlso: AX=8000h"FaxBIOS",AX=C000h/BX=444Bh,AX=CB00h,AX=CBDDh,INT 66"BitFax"Top
INT 2F U - Novell DOS 7 - GRAFTABL - INSTALLATION CHECK AX = 2E00h Return: AH = FFh if installed Note: this installation check does not follow the usual format of setting AL to FFh SeeAlso: AX=2300h,AH=2Eh"GRAFTABL"Top
INT 2F U - Novell DOS 7 - GRAFTABL - GET FONT TABLE AH = 2Eh AL nonzero Return: AH = FFh if installed ES:BX -> graphics data (8 bytes per character from 80h to FFh) SeeAlso: AX=2E00h,AH=23h"GRAFTABL"Top
INT 2F - Kingswood TSR INTERFACE - COMPATIBILITY MODE AX = 3900h Return: AL = status 00h not installed FFh one or more TSRs using this interface is installed DX may be destroyed Note: this function is provided to that the multiplex number will appear used to other programs SeeAlso: AH=39h/BL=00hTop
INT 2F - Kingswood TSR INTERFACE - INSTALLATION CHECK
AH = 39h
BL = 00h
AL = TSR ID number (01h-FFh, currently only 01h-1Bh used) (see #02742)
Return: AL = status
00h not installed
FFh installed
DX = segment address of resident module
Note: All of Kingswood Software's TSRs use this interface. Usually the
resident module is installed by allocating a block of upper memory,
setting its owner ID to 000Ah (used by DOS), and filling the MCB name
field with the TSR's name.
SeeAlso: #02743,AX=3900h,AH=39h/BL=01h
(Table 02742)
Values for Kingswood TSR ID number:
01h TSR Windows
02h NOBUSY
03h CD STACK
04h DISK WATCH
05h PUSHBP
06h ALIAS
07h KEYMACRO
08h SLOWDOWN
09h ANSIGRAB
0Ah TEE
0Bh FASTMOUS
0Ch EXTWILD
0Dh BREAKOUT
0Eh STOPDISK
0Fh MEMINIT
10h JANUSEXT
11h CAPS
12h ANSI
13h TRAPPER
14h EATMEM
15h WPJOKE
16h SHOWDOS
17h LOGINTS
18h BLANKVGA
19h SWAPEXEC
1Ah SHELL
1Bh TSRGAMES
Format of Kingswood TSR modules:
Offset Size Description (Table 02743)
00h 4 BYTEs signature "FTSR"
04h WORD segment address of this module (used to check validity)
06h WORD number of words to skip (usually 0000h if no PSP present)
08h N WORDs module-defined data that must be at a fixed segment offset
(usually only a PSP if file access is required)
5N BYTEs interrupt list (see #02744)
BYTE FFh terminator
Format of Kingswood TSR interrupt list entry:
Offset Size Description (Table 02744)
00h BYTE interrupt number (00h-FEh)
01h WORD offset within segment of DWORD pointer to previous interrupt
03h WORD offset within segment of begin of interrupt handler code
Top
INT 2F - Kingswood TSR INTERFACE - REMOVAL CHECK AH = 39h BL = 01h AL = TSR ID number (01h-FFh) (see #02742) Return: AL = status 00h not ready to be removed FFh resident module may be removed by deassigning the interrupts hooked by the TSR and deallocating the TSR's memory block AH,BX,CX,DX,ES may be destroyed SeeAlso: AX=3900h,AH=39h/BL=00hTop
INT 2F - Kingswood TSR INTERFACE - APPLICATION-SPECIFIC FUNCTION CALLS AH = 39h BL = function number (02h-FFh) AL = TSR ID number (01h-FFh) (see #02742) CX,DX,SI,DI,DS,ES may contain parameters BH reserved for use by the function dispatcher Return: as appropriate for the called function SeeAlso: AX=3900h,AH=39h/BL=00h,AX=3901h/BL=02hTop
INT 2F - Kingswood TSR Windows - OPEN WINDOW AX = 3901h BL = 02h Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved Notes: opens the next TSR window on top of any others. Only three TSR windows can be opened at any one time. The three windows are all 40x11 characters, partly overlapping. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=03h,AX=3901h/BL=05h,AX=3901h/BL=06hTop
INT 2F - Kingswood TSR Windows - HIDE WINDOWS AX = 3901h BL = 03h Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved Notes: Hide any visible TSR windows from view. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02h,AX=3901h/BL=05hTop
INT 2F - Kingswood TSR Windows - SHOW WINDOWS AX = 3901h BL = 04h Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved Notes: Re-display all TSR windows after a HIDE WINDOWS call. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02h,AX=3901h/BL=03hTop
INT 2F - Kingswood TSR Windows - CLOSE WINDOW AX = 3901h BL = 05h Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved Notes: Close the last opened TSR window. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02hTop
INT 2F - Kingswood TSR Windows - SET WINDOW TITLE AX = 3901h BL = 06h DS:SI -> title string Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02hTop
INT 2F - Kingswood TSR Windows - POSITION CURSOR AX = 3901h BL = 07h CH = Y coordinate (0-10) CL = X coordinate (0-39) Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved Note: the hardware cursor is always disabled when a TSR window is opened; this call only sets a text position SeeAlso: AH=39h/BL=00h,AX=3901h/BL=08h,AX=3901h/BL=09hTop
INT 2F - Kingswood TSR Windows - DISPLAY STRING AX = 3901h BL = 08h DS:SI -> string Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved Notes: The text is not clipped. This routine understands Tab, NewLine and Carriage Return SeeAlso: AH=39h/BL=00h,AX=3901h/BL=07hTop
INT 2F - Kingswood TSR Windows - SCROLL WINDOW AX = 3901h BL = 09h CL = scroll direction: 01h up, FFh down, 00h clear window Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved SeeAlso: AH=39h/BL=00h,AX=3901h/BL=07hTop
INT 2F - Kingswood TSR Windows - SOUND BEEPER AX = 3901h BL = 0Ah DX = sound divisor, or 0 for silence. (divide 1843200 by required frequency to get value for DX) CL = sound length in 18.2 Hz clock ticks Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved SeeAlso: AH=39h/BL=00hTop
INT 2F - Kingswood TSR Windows - ADD OR REMOVE USER AX = 3901h BL = 0Bh CL = number of users increment: +1 if adding a new user -1 if removing a user Return: AX = error code (0000h if successful) SI,DI,DS,ES preserved Note: the TSR windows resident module may only be removed when the internal user count is zero SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02hTop
INT 2F - Kingswood ANSI display driver - SET COMPATIBILITY MODE AX = 3912h BL = 03h CL = new mode (00h fast, FFh BIOS) Return: AL = old compatibility mode SI,DI,DS,ES preserved SeeAlso: AX=3900h,AX=3912h/BL=04hTop
INT 2F - Kingswood ANSI display driver - SET FLAGS AX = 3912h BL = 04h CL = new flags (see #02745) Return: AL = old flags SI,DI,DS,ES preserved SeeAlso: AX=3900h,AX=3912h/BL=03h Bitfields for Kingswood ANSI flags: Bit(s) Description (Table 02745) 0 do not wrap at end of line 1 wait for beeps to end before displaying next character 2 do not use graphics cursorTop
INT 2F - Windows 3+ (OS/2 2.x???) - GET VIRTUAL DEVICE DRIVER (VDD) CAPABILTIES AX = 4000h Return: AL = video virtualization (see #02746) Notes: This function is used by display drivers to find out what capabilities exist for the VDD driver and also trigger the VDD driver to call functions 4005h and 4006h (and 4001h/4002h under OS/2?). This function also gives the Video Driver hardware access to the video registers. Once the background/foreground callouts have been activated by a call to this function, the application *must* handle those callouts and save/restore the video memory itself. (Table 02746) Values for Windows video virtualization: 01h does not virtualize video access 02h virtualizes the video when in text mode 03h virtualizes the video when in text mode or single plane graphics modes 04h virtualizes the video when in text mode, single plane graphics modes, and VGA multiplane modes FFh virtualizes the video fullyTop
INT 2F C - OS/2 compatibility box - SWITCHING DOS TO BACKGROUND AX = 4001h Note: called by OS/2 when the DOS box is about to be placed in the background and the video driver should save any necessary state SeeAlso: AX=4002h,AX=4005hTop
INT 2F C - OS/2 compatibility box - SWITCHING DOS TO FOREGROUND AX = 4002h Note: called by OS/2 when the DOS box is about to be placed in the foreground and the video driver should restore the previously-saved state SeeAlso: AX=4001h,AX=4006hTop
INT 2F - Windows 3.x - ENTERING VIDEO DRIVER CRITICAL SECTION AX = 4003h Note: This critical section must be exited within 1 second. SeeAlso: AX=4004hTop
INT 2F - Windows 3.x - EXITING VIDEO DRIVER CRITICAL SECTION AX = 4004h SeeAlso: AX=4003hTop
INT 2F C - Windows 3.x - SWITCHING DOS TO BACKGROUND AX = 4005h Notes: called by Windows when the DOS box is about to be placed in the background and the video driver should save any necessary state information (this may be called only in Standard mode) this callout is not made unless the application has first called AX=4000h SeeAlso: AX=4001h,AX=4006hTop
INT 2F C - Windows 3.x - SWITCHING DOS TO FOREGROUND AX = 4006h Notes: called by Windows when the DOS box is about to be placed in the foreground and the video driver should restore any necessary state information (this may be called only in Standard mode) this callout is not made unless the application has first called AX=4000h SeeAlso: AX=4002h,AX=4005hTop
INT 2F - Windows 3.x - ENABLE VDD TRAPPING OF VIDEO REGISTERS AX = 4007h Note: used by Windows Standard modeTop
INT 2F - OS/2 v2.0+ - INSTALLATION CHECK / GET VERSION AX = 4010h Return: AX = 4010h if OS/2 not installed AX = 0000h for OS/2 Warp 3.0 BX = OS/2 version if installed Note: OS/2 Warp 3.0 SeeAlso: INT 21/AH=30h,INT 21/AX=3306hTop
INT 2F - OS/2 - GET VDD API ENTRY POINT AX = 4011h DS:(E)SI -> ASCIZ name of VDD registered with VDHRegisterAPI Return: ES:DI -> breakpoint address to call for VDD API, or 0000h:0000h Note: this function may be invoked from either V86 or protected mode, and will return the appropriate address to call for invoking the VDD in that mode SeeAlso: AX=1684h"DEVICE API"Top
INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ??? AX = 4021h ??? Return: ??? SeeAlso: AX=4022h,AX=4023hTop
INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ??? AX = 4022h ??? Return: ??? SeeAlso: AX=4021h,AX=4023hTop
INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ??? AX = 4023h ??? Return: ??? SeeAlso: AX=4021h,AX=4022hTop
INT 2F UC - Diamond Stealth64 Video - DMSSTL.DRV - ??? AX = 4027h ??? Return: ??? Notes: called when ??? a protected-mode handler for this function may be installed with the function RFV_HOOKINT2FHANDLER SeeAlso: AX=4021h,AX=4022hTop
INT 2F - PharLap 286|DOS-Extender Lite v2.5 - ??? AX = 4040h Return: BX:CX -> ???Top
INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - INSTALLATION CHECK AX = 4100h Return: CF clear if successful AL = FFh CF set on error AX = ??? Notes: MINIPOP and NETPOPUP provide a network message popup service LAN Manager enhanced mode adds features beyond the standard redirector file/printer services SeeAlso: AX=118Ah,AX=4103h,AX=4104h,AH=42h,AH=4BhTop
INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - ??? AX = 4103h Return: ??? SeeAlso: AX=4100h,AX=4104hTop
INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - ??? AX = 4104h Return: ??? SeeAlso: AX=4100h,AX=4103hTop
INT 2F - LAN Manager 2.0 DOS Enhanced MSRV.EXE - MESSENGER SERVICE AH = 42h ??? Return: ??? Note: LAN Manager enhanced mode adds features beyond the standard redirector file/printer services SeeAlso: AX=118Ah,AX=4100h,AH=4BhTop
INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) v2+ - INSTALLATION CHECK AX = 4300h Return: AL = 80h XMS driver installed AL <> 80h no driver Notes: XMS gives access to extended memory and noncontiguous/nonEMS memory above 640K this installation check DOES NOT follow the format used by other software SeeAlso: AX=4310h,AX=1687h,INT 67/AH=40h,@xxxxh:xxxxh"PMM" Index: installation check;XMS version 2+Top
INT 2F U - HIMEM.SYS v2.77+ - GET A20 HANDLER NUMBER AX = 4308h Return: AL = 43h if supported BL = A20 handler number (value of /MACHINE:nn switch) BH = AT A20 switch time (00h medium, 01h fast, 02h slow) Note: if the A20 handler number returned in BL is 00h, an external handler is being used (see AX=4330h) SeeAlso: AX=4309h,AX=4330hTop
INT 2F U - HIMEM.SYS v3.09+ - GET XMS HANDLE TABLE AX = 4309h Return: AL = 43h if function supported ES:BX -> XMS handle table (see #02747) Note: HIMEM.SYS v3.09 is part of MS-DOS 6.0. SeeAlso: AX=4308h Format of XMS handle table: Offset Size Description (Table 02747) 00h BYTE ??? (01h in HIMEM.SYS v3.09) 01h BYTE size of one handle descriptor 02h WORD number of handles (default = 20h) 04h DWORD pointer to XMS handle array (see #02748) SeeAlso: #02777 Format of XMS handle descriptor [array]: Offset Size Description (Table 02748) 00h BYTE flag 01h=free, 02h=used, 04h=in pool but not associated with any EMB 01h BYTE lock count (00h=unlocked) 02h DWORD address of XMS block in KB (shift left by 10 for abs. address) 06h DWORD size of XMS block in KBTop
INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) v2+ - GET DRIVER ADDRESS AX = 4310h Return: ES:BX -> driver entry point (see #02749,#02750,#02753,#02760,#02769,#02774) Notes: HIMEM.SYS v2.77 chains to previous handler if AH is not 00h or 10h HIMEM.SYS requires at least 256 bytes free stack space when calling the driver entry point SeeAlso: AX=4300h,AX=4310h"Cloaking",AX=4310h"Netroom",AX=4310h"XMZ" Format of XMS driver entry point: Offset Size Description (Table 02749) 00h 5 BYTEs jump to actual handler either short jump (EBh XXh) followed by three NOPs or far jump (EAh XXXX:XXXX) to a program which has hooked itself into the XMS driver chain Note: to hook into the XMS driver chain, a program should follow the chain of far jumps until it reaches the short jump of the driver at the end of the chain; this short jump is to be replaced with a far jump to the new handler's entry point, which should contain a short jump followed by three NOPs. The new handler must return to the address pointed at by the short jump which was overwritten. Using this method, the new handler becomes the first to see every XMS request. (Table 02750) Call the XMS driver "Get XMS version number" function with: AH = 00h Return: AX = XMS version (in BCD, AH=major, AL=minor) BX = internal revision number (in BCD for HIMEM.SYS) DX = High Memory Area (HMA) state 0001h HMA (1M to 1M + 64K) exists 0000h HMA does not exist SeeAlso: #02751,#02752,#02757,#02758,#02764 (Table 02751) Call the XMS driver "Request High Memory Area" function with: AH = 01h DX = memory in bytes (for TSR or device drivers) FFFFh if application program Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,90h,91h,92h) (see #02775) Note: HIMEM.SYS will fail function 01h with error code 91h if AL=40h and DX=KB free extended memory returned by last call of function 08h SeeAlso: #02752,#02784 (Table 02752) Call the XMS driver "Release High Memory Area" function with: AH = 02h Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,90h,93h) (see #02775) SeeAlso: #02751 (Table 02753) Call the XMS driver "Global enable A20, for using the HMA" function with: AH = 03h Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,82h) (see #02775) SeeAlso: #02754,#02755,MSR 00001000h (Table 02754) Call the XMS driver "Global disable A20" function with: AH = 04h Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,82h,94h) (see #02775) SeeAlso: #02753,#02756,MSR 00001000h (Table 02755) Call the XMS driver "Local enable A20" function with: AH = 05h Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,82h) (see #02775) Note: this function is used for direct access to extended memory SeeAlso: #02753,#02756 (Table 02756) Call the XMS driver "Local disable A20" function with: AH = 06h Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,82h,94h) (see #02775) SeeAlso: #02754,#02755 (Table 02757) Call the XMS driver "Query A20 state" function with: AH = 07h Return: AX = status 0001h enabled 0000h disabled BL = error code (00h,80h,81h) (see #02775) SeeAlso: #02750,#02758 (Table 02758) Call the XMS driver "Query free extended memory" function with: AH = 08h BL = 00h (some implementations leave BL unchanged on success) Return: AX = size of largest extended memory block in KB DX = total extended memory in KB BL = error code (00h,80h,81h,A0h) (see #02775) Note: this function does not include the HMA in the returned memory sizes SeeAlso: #02750,#02757,#02759,#02771 (Table 02759) Call the XMS driver "Allocate extended memory block" function with: AH = 09h DX = Kbytes needed Return: AX = status 0001h success DX = handle for memory block 0000h failure BL = error code (80h,81h,A0h) (see #02775) SeeAlso: #02758,#02761,#02764,#02765,#02766,#02772 (Table 02760) Call the XMS driver "Free extended memory block" function with: AH = 0Ah DX = handle of block to free Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,A2h,ABh) (see #02775) SeeAlso: #02759,#02772 (Table 02761) Call the XMS driver "Move extended memory block" function with: AH = 0Bh DS:SI -> EMM structure (see #02776) Return: AX = status 0001h success 0000h failure BL = error code (80h-82h,A3h-A9h) (see #02775) Note: if either handle in the EMM structure is 0000h, the corresponding offset is considered to be an absolute segment:offset address in directly addressable memory SeeAlso: #02759,#02762 (Table 02762) Call the XMS driver "Lock extended memory block" function with: AH = 0Ch DX = handle of block to lock Return: AX = status 0001h success DX:BX = 32-bit physical address of locked block 0000h failure BL = error code (80h,81h,A2h,ACh,ADh) (see #02775) Note: MS Windows 3.x rejects this function for handles allocated after Windows started SeeAlso: #02759,#02761,#02763,#02777 (Table 02763) Call the XMS driver "Unlock extended memory block" function with: AH = 0Dh DX = handle of block to unlock Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,A2h,AAh) (see #02775) SeeAlso: #02762 (Table 02764) Call the XMS driver "Get handle information" function with: AH = 0Eh DX = handle for which to get info Return: AX = status 0001h success BH = block's lock count BL = number of free handles left DX = block size in KB 0000h failure BL = error code (80h,81h,A2h) (see #02775) BUG: MS Windows 3.10 acts as though unallocated handles are in use Note: MS Windows 3.00 has problems with this call SeeAlso: #02750,#02759,#02773 (Table 02765) Call the XMS driver "Reallocate extended memory block" function with: AH = 0Fh DX = handle of block BX = new size of block in KB Return: AX = status 0001h success 0000h failure BL = error code (80h,81h,A0h-A2h,ABh) (see #02775) SeeAlso: #02759,#02768 (Table 02766) Call the XMS driver "Request upper memory block" function with: AH = 10h DX = size of block in paragraphs Return: AX = status 0001h success BX = segment address of UMB DX = actual size of block 0000h failure BL = error code (80h,B0h,B1h) (see #02775) DX = largest available block Notes: Upper Memory consists of non-EMS memory between 640K and 1024K the XMS driver need not implement functions 10h through 12h to be considered compliant with the standard under DOS 5+, if CONFIG.SYS contains the line DOS=UMB, then no upper memory blocks will be available for allocation because all blocks have been grabbed by MS-DOS while booting SeeAlso: #02759,#02767,#02785,INT 21/AH=58h"UMB" (Table 02767) Call the XMS driver "Release upper memory block" function with: AH = 11h DX = segment address of UMB to release Return: AX = status 0001h success 0000h failure BL = error code (80h,B2h) (see #02775) Note: the XMS driver need not implement functions 10h through 12h to be considered compliant with the standard SeeAlso: #02760,#02766,#02768 (Table 02768) Call the XMS v3.0+ driver "Reallocate upper memory block" function with: AH = 12h DX = segment address of UMB to resize BX = new size of block in paragraphs Return: AX = status 0001h success 0000h failure BL = error code (80h,B0h,B2h) (see #02775) DX = maximum available size (RM386) Note: the XMS driver need not implement functions 10h through 12h to be considered compliant with the standard SeeAlso: #02765,#02766,#02767,#02783 (Table 02769) Call the QEMM v5.11 "???" function with: AH = 34h (QEMM 5.11 only, undocumented) ??? Return: ??? SeeAlso: #02770 (Table 02770) Call the QEMM v5.11 "???" function with: AH = 44h (QEMM 5.11 only, undocumented) ??? Return: ??? SeeAlso: #02769,#02783 (Table 02771) Call the XMS v3.0 driver "Query free extended memory" function with: AH = 88h Return: EAX = largest block of extended memory, in KB BL = status (00h,80h,81h,A0h) (see #02775) ECX = physical address of highest byte of memory (valid even on error codes 81h and A0h) EDX = total Kbytes of extended memory (0 if status A0h) BUG: HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions are called SeeAlso: #02758,#02772 (Table 02772) Call the XMS v3.0 driver "Allocate any extended memory" function with: AH = 89h EDX = Kbytes needed Return: AX = status 0001h success DX = handle for allocated block (free with AH=0Ah) (see #02760) 0000h failure BL = status (80h,81h,A0h,A1h,A2h) (see #02775) SeeAlso: #02759,#02771 (Table 02773) Call the XMS v3.0 driver "Get extended EMB handle information" function with: AH = 8Eh DX = handle Return: AX = status 0001h success BH = block's lock count CX = number of free handles left EDX = block size in KB 0000h failure BL = status (80h,81h,A2h) (see #02775) BUG: MS-DOS 6.0 HIMEM.SYS leaves CX unchanged SeeAlso: #02764,#02772,#02774 (Table 02774) Call the XMS v3.0 driver "Reallocate any extended memory block" function with: AH = 8Fh DX = unlocked memory block handle EBX = new size in KB Return: AX = status 0001h success 0000h failure BL = status (80h,81h,A0h-A2h,ABh) (see #02775) BUG: HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions are called SeeAlso: #02765,#02773 (Table 02775) Values for XMS error code returned in BL: 00h successful 80h function not implemented 81h Vdisk was detected 82h an A20 error occurred 8Eh a general driver error 8Fh unrecoverable driver error 90h HMA does not exist or is not managed by XMS provider 91h HMA is already in use 92h DX is less than the /HMAMIN= parameter 93h HMA is not allocated 94h A20 line still enabled A0h all extended memory is allocated A1h all available extended memory handles are allocated A2h invalid handle A3h source handle is invalid A4h source offset is invalid A5h destination handle is invalid A6h destination offset is invalid A7h length is invalid A8h move has an invalid overlap A9h parity error occurred AAh block is not locked ABh block is locked ACh block lock count overflowed ADh lock failed B0h only a smaller UMB is available B1h no UMB's are available B2h UMB segment number is invalid Format of EMM structure: Offset Size Description (Table 02776) 00h DWORD number of bytes to move (must be even) 04h WORD source handle 06h DWORD offset into source block 0Ah WORD destination handle 0Ch DWORD offset into destination block Notes: if source and destination overlap, only forward moves (source base less than destination base) are guaranteed to work properly if either handle is zero, the corresponding offset is interpreted as a real-mode address referring to memory directly addressable by the processor Format of XMS handle info [array]: Offset Size Description (Table 02777) 00h BYTE handle 01h BYTE lock count 02h DWORD handle size 06h DWORD handle physical address (only valid if lock count nonzero) SeeAlso: #02747,#02762Top
INT 2F - Cloaking - REAL-MODE API
AX = 4310h
Return: ES:BX -> driver entry point (see #02749,#02778,#02779,#02780,#02781)
SeeAlso: AX=4310h"XMS"
(Table 02778)
Call the Cloaking v1.01 "Client Registration" function with:
AH = 7Eh
BX = subfunction
0000h get client registration count
0001h get client registration structures
ES:DI -> buffer for registration structures
Return: AX = status
0000h failed
0001h successful
---subfunction 00h---
BX = size of client structure in bytes
CX = number of clients installed
---subfunction 01h---
ES:DI buffer filled
SeeAlso: #02779,#02781,INT 2C/AX=0033h
(Table 02779)
Call the Cloaking v1.01 "Verify Cloaking Host" function with:
AH = 7Fh
Return: AX = status
0000h failed
0001h (successful) if installed
BX = version (0101h for v1.01)
CX = flags
bit 0: host is VCPI-based
DS:DX -> ASCIZ Cloaking host signature
"CLOAKING.EXE"0, followed by a far-call entry point to
uninstall host (see #02780) in Helix's CLOAKING.EXE
SeeAlso: #02778,#02781
Index: installation check;Cloaking host|installation check;CLOAKING.EXE
(Table 02780)
Call the CLOAKING.EXE "Uninstall Host" function with:
Return: AX = 4F4Bh ('OK') if successfully uninstalled protected-mode code
(Table 02781)
Call the Cloaking "Start Protected-Mode Client" function with:
AH = 82h
DX = XMS handle of locked block containing protected-mode code
CL = code size (00h 16-bit, else 32-bit)
ESI, EDI = parameters to pass to protected-mode code
Return: AX = status
nonzero success
0000h failed
BL = error code (A2h,B0h) (see #02775)
Notes: this function calls a user initialization function at offset 0 in
the XMS memory block (see #02782)
supported by Helix's RM386 v6.00 and Helix's CLOAKING.EXE
SeeAlso: #02778,#02779
(Table 02782)
Values user initialization function is called with:
EBX = physical address of block's start
ESI = user data from function 82h call
EDI = user data from function 82h call
CS = code selector for XMS block at EBX (16-bit or 32-bit)
DS = data selector for XMS block, starting at EBX
ES = selector for V86 memory access to full real-mode 1088K
GS = selector for full 4G flat address space
SS:ESP -> stack provided by host
Return: via 32-bit FAR return
Note: the initialization function may call any protected-mode Cloaking
service; it should store the values of DS, ES, and GS for future
reference
Top
INT 2F - Helix Netroom RM386 v6.00 - XMS EXTENSIONS AX = 4310h Return: ES:BX -> driver entry point (see #02783,#02784,#02785,#02786) Notes: HIMEM.SYS v2.77 chains to previous handler if AH is not 00h or 10h HIMEM.SYS requires at least 256 bytes free stack space when calling the driver entry point SeeAlso: AX=4300h,AX=4310h"XMS",AX=4310h"Cloaking" (Table 02783) Call the Netroom RM386 v6.00 "Reallocate upper memory block" function with: AH = 80h DX = segment address of UMB to resize BX = new size of block in paragraphs Return: AX = status 0001h success 0000h failure BL = error code (80h,B0h,B2h) (see #02775) DX = maximum available size Note: this function is identical to function 12h SeeAlso: #02768,#02784 (Table 02784) Call the Netroom RM386 v6.00 "re-enable HMA allocation" function with: AH = 81h Return: AX = 0001h (success) SeeAlso: #02751,#02783,#02785 (Table 02785) Call the Netroom RM386 v6.00 "Create new UMB entry" function with: AH = 83h BX = segment of high-memory block DX = first page of start of block CX = number of consecutive pages in block DI = start of UMB in block Return: AX = 0001h (success) DI = segment of first high-DOS block Note: the new UMB is not linked into the high-memory chain SeeAlso: #02766,#02784,#02786 (Table 02786) Call the Netroom RM386 v6.00 "Get all XMS handles info" function with: AH = 84h CX = size of buffer for handle info ES:DI -> buffer for handle info (see #02777) Return: AX = 0001h (success) DX = current number of allocated XMS handles SeeAlso: #02785,#02771Top
INT 2F - NEC PC-9800 - XMZ - PRIVATE API AX = 4310h Return: ES:BX -> driver entry point (see #02787,#02788) Program: XMZ is an XMS 2.x-compatible driver for the NEC PC-98 series written by ZOBplus Hayami and available at ftp:/ftp.tohoku.ac.jp/pub/msdos/Memory/xmz/ SeeAlso: AX=4300h,AX=4310h"XMS" (Table 02787) Call XMZ v1.02 "Get HMA Information" function with: AH = FFh (XMZ only) AL = 01h Return: AX = 1 on success DX = minimum HMA allocation size (/HMAMIN=) BX = actual size of HMA allocation, if in use (i.e. the value in DX when XMS function 1 was called) SeeAlso: #02788 (Table 02788) Call XMZ v1.02 "Get EMB Handle Information" function with: AH = FFh (XMZ only) AL = 02h Return: AX = 1 on success DX = number of EMB handles configured (/NUMHANDLES=) BX = offset in XMZ's segment of the handle table (use segment of entry point) (see #02789) SeeAlso: #02787 Format of XMZ v1.02 EMB Handle structure: Offset Size Description (Table 02789) 00h BYTE flag byte 04h unused handle slot 02h in-use handle slot 01h handle slot that represents a free block 01h BYTE lock count 02h WORD block start address (1K increments) 04h WORD block length (1K increments) SeeAlso: #02788Top
INT 2F U - HIMEM.SYS - Mach 20 SUPPORT AX = 4320h ??? Return: ???Top
INT 2F CU - HIMEM.SYS v2.77+ - GET EXTERNAL A20 HANDLER ADDRESS AX = 4330h Return: AL = 80h if external A20 handler provided ES:BX -> external A20 handler (see #02790) CL = A20 detection support 00h handler is unable to report A20 state 01h handler supports function 0002h to report A20 state Note: HIMEM.SYS calls this function to allow an external program to provide an A20 handler (i.e. to support a machine not supported by HIMEM itself) SeeAlso: AX=4308h,AX=4310h (Table 02790) Call parameters for external A20 handler are: AX = function 0000h disable A20 0001h enable A20 0002h get A20 state Return: AX = status (functions 0000h and 0001h) 0000h failure 0001h successful AX = A20 state (function 0002h) 0000h disabled 0001h enabled Note: HIMEM.SYS only calls function 0002h if the returned CL indicated that the handler supports the callTop
INT 2F - Multiplex - ??? AX = 43D6h Note: Central Point's CPBACKUP v9 calls this function with CX=07FFh and DX=80D3h at startupTop
INT 2F - DOS Protected Mode Services (DPMS) v1.0 - INSTALLATION CHECK
AX = 43E0h
BX = 0000h
CX = 4450h ('DP')
DX = 4D53h ('MS')
Return: AX = 0000h if installed
CF clear
ES:DI -> server structure (see #02791)
ES:BX -> registration structure (pre-NWDOS 7 beta spec) (see #02793)
Note: the DPMS 1.0 server included with the original release of Novell DOS
7.0 supports both the beta and 1.0 specification, setting ES:BX even
if CX and DX are not as specified on entry (since the beta
specification did not use those registers). However, the DPMS 1.1
server included with the March 1994 update does not support the beta
specification
SeeAlso: AX=43E1h,AX=43E2h,AX=43E3h,INT 2F/AX=1687h
Index: signature strings;DPMS
Format of DPMS 1.0 server structure:
Offset Size Description (Table 02791)
00h 4 BYTEs signature string "DPMS"
04h 2 BYTEs DPMS version (major,minor)
06h 8 BYTEs blank-padded server OEM name
0Eh 2 BYTEs OEM server version (major,minor)
10h WORD DPMS flags (see #02792)
12h BYTE CPU type
(02h = 286, 03h = 386 or higher, higher values allowed)
Bitfields for DPMS flags:
Bit(s) Description (Table 02792)
0 fast processor reset available (286 only)
1 DPMS server is enabled
2 memory is remapped
3-15 reserved (undefined)
Format of beta DPMS registration structure:
Offset Size Description (Table 02793)
00h DWORD real-mode API entry point (see #02795)
04h DWORD 16-bit protected-mode API entry point (see #02795)
08h 8 BYTEs reserved (0)
10h 8 BYTEs blank-padded server OEM name
18h WORD flags
bit 0: fast processor reset available (286 only)
bits 1-15 reserved (undefined)
1Ah 2 BYTEs DPMS version (major,minor)
1Ch BYTE CPU type (02h = 286, 03h = 386 or higher)
Top
INT 2F - DOS Protected Mode Services (DPMS) v1.0 - REGISTER CLIENT AX = 43E1h CX = required protected-mode stack size in bytes ES:DI -> DPMS client interface structure (see #02794) Return: AX = 0000h if supported CF clear ES:DI buffer filled with API entry point code from offset 0Ah Note: the client is allowed to copy the returned API code to any location in memory, and need not keep the three code fields together SeeAlso: AX=43E0h,AX=43E2h,AX=43E3h Format of DPMS client interface structure: Offset Size Description (Table 02794) 00h WORD 0000h (structure version / flags) 02h 8 BYTEs blank-padded client name 0Ah 7 BYTEs real/virtual-86 mode API code (see #02795) 11h BYTE space for return instruction set to C3h for near return, CBh for far return 12h 7 BYTEs 16-bit protected-mode API code (see #02795) 19h BYTE space for return instruction set to C3h for near return, CBh for far return 1Ah 9 BYTEs 32-bit protected-mode API code (see #02795) 23h BYTE space for return instruction set to C3h for near return, CBh for far return Note: the DPMS server fills the return opcode bytes with zeros and DPMS requests will thus crash the system unless the application explicitly sets them (some early versions set them to C3h by default, but one should not rely on that) (Table 02795) Call DPMS entry point with: AX = 0000h unregister client from server ---control transfer functions--- AX = 0100h call protected-mode procedure CX = number of words of stack to copy ES:(E)DI -> callup/down register structure (see #02797) Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0101h call real-mode procedure (RETF return) CX = number of words of stack to copy ES:(E)DI -> callup/down register structure (see #02797) Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0102h call real-mode procedure (IRET return) CX = number of words of stack to copy ES:(E)DI -> callup/down register structure (see #02797) Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0103h call real-mode interrupt handler BL = interrupt number CX = number of words of stack to copy ES:(E)DI -> callup/down register structure (see #02797) Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0104h register default protected mode procedure ES:(E)DI -> default register structure (see #02798) Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0105h register default real-mode procedure (RETF return) ES:(E)DI -> default register structure (see #02798) Return: CF clear if successful CF set on error AX = error code (see #02796) Note: the procedure will be called from 16-bit prot. mode AX = 0106h register default real-mode procedure (IRET return) ES:(E)DI -> default register structure (see #02798) Return: CF clear if successful CF set on error AX = error code (see #02796) Note: the procedure will be called from 16-bit prot. mode AX = 0107h register default real-mode interrupt handler BL = interrupt number ES:(E)DI -> default register structure (see #02798) Return: CF clear if successful CF set on error AX = error code (see #02796) Note: the handler will be called from 16-bit protected mode AX = 0108h register default real-mode procedure (RETF return) ES:(E)DI -> default register structure (see #02798) Return: CF clear if successful CF set on error AX = error code (see #02796) Note: the procedure will be called from 32-bit prot. mode AX = 0109h register default real-mode procedure (IRET return) ES:(E)DI -> default register structure (see #02798) Return: CF clear if successful CF set on error AX = error code (see #02796) Note: the procedure will be called from 32-bit prot. mode AX = 010Ah register default real-mode interrupt handler BL = interrupt number ES:(E)DI -> default register structure (see #02798) Return: CF clear if successful CF set on error AX = error code (see #02796) Note: the handler will be called from 32-bit protected mode ---descriptor management--- AX = 0200h allocate descriptors CX = number of descriptors to allocate Return: CF clear if successful AX = selector for first descriptor allocated CF set on error AX = error code (see #02796) AX = 0201h free a descriptor BX = selector for descriptor Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0202h create alias descriptor BX = selector for descriptor to be aliased Return: CF clear if successful AX = alias descriptor CF set on error AX = error code (see #02796) AX = 0203h build alias to real-mode segment BX = descriptor CX = real-mode segment Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0204h set descriptor base BX = descriptor CX:DX = base address Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0205h set descriptor limit BX = descriptor CX = limit Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0206h set descriptor type/attribute BX = descriptor CL = type CH = attribute Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0207h get descriptor base BX = descriptor Return: CF clear if successful CX:DX = base address CF set on error AX = error code (see #02796) ---linear memory functions--- AX = 0300h get size of largest free block of memory Return: CF clear if successful BX:CX = size CF set on error AX = error code (see #02796) AX = 0301h allocate block of extended memory BX:CX = required size Return: CF clear if successful BX:CX = base address SI:DI = handle CF set on error AX = error code (see #02796) AX = 0302h free block of extended memory SI:DI = handle Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0303h map linear memory ES:(E)DI -> DDS (see #02799) Return: CF clear if successful BX:CX = base address SI:DI = handle CF set on error AX = error code (see #02796) AX = 0304h unmap linear memory SI:DI = handle Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0305h get page table entries ESI = linear address (E)CX = count ES:(E)DI -> buffer for page table entries Return: CF clear if successful ES:(E)DI buffer filled CF set on error AX = error code (see #02796) AX = 0306h set page table entries EBX = linear memory handle ESI = linear address (E)CX = count ES:(E)DI -> buffer containing page table entries Return: CF clear if successful CF set on error AX = error code (see #02796) AX = 0307h get largest mappable block size Return: CF clear if successful BX:CX = size CF set on error AX = error code (see #02796) ---miscellaneous--- AX = 0400h relocate segment to extended memory ES:SI = base address CX = limit BL = type BH = attribute DX = selector or 0000h Return: CF clear if successful AX = selector BX:CX = new base address SI:DI = handle CF set on error AX = error code (see #02796) Note: the beta DPMS specification, which is still supported by the Novell DOS 7.0 DPMS host, only supported functions 0100h-0103h, 0200h-0207h, 0300h-0304h, and 0400h (Table 02796) Values for DPMS error code: 8000h general error 8001h unsupported function 8002h unable to switch to protected mode 8004h no default stack defined 8005h unknown client 8010h resource unavailable 8011h descriptor unavailable 8012h linear memory unavailable 8013h physical memory unavailable 8021h invalid value 8022h invalid selector 8023h invalid handle 8025h invalid linear address Format of DPMS callup/down register structure: Offset Size Description (Table 02797) 00h DWORD EDI 04h DWORD ESI 08h DWORD EBP 0Ch 4 BYTEs reserved (0) (ESP, may be used by DPMS server) 10h DWORD EBX 14h DWORD EDX 18h DWORD ECX 20h DWORD EAX 24h DWORD EIP 28h WORD CS 2Ah 2 BYTEs reserved (0) 2Ch DWORD EFLAGS 30h DWORD ESP 34h WORD SS 36h 2 BYTEs reserved (0) 38h WORD ES 3Ah 2 BYTEs reserved (0) 3Ch WORD DS 3Eh 2 BYTEs reserved (0) 40h WORD FS 42h 2 BYTEs reserved (0) 44h WORD GS 46h 2 BYTEs reserved (0) Format of DPMS default register structure: Offset Size Description (Table 02798) 00h DWORD EIP 04h WORD CS 06h 2 BYTEs reserved (0) 08h WORD number of words to copy from stack to stack 0Ah BYTE (call) 00h (ret) nonzero if call could not be made 0Bh BYTE reserved (may be used by some servers) 0Ch DWORD ESP 10h WORD SS 12h 2 BYTEs reserved (0) 14h WORD ES 16h 2 BYTEs reserved (0) 18h WORD DS 1Ah 2 BYTEs reserved (0) 1Ch WORD FS 1Eh 2 BYTEs reserved (0) 20h WORD GS 22h 2 BYTEs reserved (0) 24h 9 BYTEs API entry code (filled in by server) Format of DPMS lock DDS: Offset Size Description (Table 02799) 00h DWORD total size in bytes 04h DWORD offset 08h WORD segment or selector 0Ah WORD reserved 0Ch WORD maximum number of physical blocks structure has space for 0Eh WORD number of physical blocks listed 10h DWORD physical address of first block 14h DWORD size in bytes of first block ...Top
INT 2F - DOS Protected Mode Services (DPMS) v1.0 - ENABLE/DISABLE DPMS AX = 43E2h BX = new state (0000h disable, 0001h enable) Return: AX = 0000h if supported Note: this function should normally be called only by system software SeeAlso: AX=43E0h,AX=43E1h,AX=43E3hTop
INT 2F C - DOS Protected Mode Services (DPMS) v1.0 - DPMS STARTUP BROADCAST
AX = 43E3h
BX = 0000h
CX = 4450h ('DP')
DX = 4D53h ('MS')
ES:DI -> DPMS server structure (see #02791)
Return: BX = status
bit 0 set if server is not allowed to load (e.g. some resident
program is incompatible)
Note: this callout is made while the potential server is running as a normal
real-mode DOS program, so there are no BIOS/DOS re-entrancy issues
SeeAlso: AX=43E0h,AX=43E4h
Top
INT 2F C - DOS Protected Mode Services (DPMS) v1.0 - DPMS EXIT BROADCAST
AX = 43E4h
BX = 0000h
CX = 4450h ('DP')
DX = 4D53h ('MS')
Return: BX = status
bit 0 set if server is not allowed to unload
Note: servers never unload until all clients unregister
SeeAlso: AX=43E0h,AX=43E3h
Top
INT 2F U - DOS Extender support??? AH = 44h AL = function (at least 0Bh, 15h, 17h) ??? Return: ??? Note: called by Codeview for Windows SeeAlso: AH=86hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - INSTALLATION CHECK AX = 4500h Return: AL = installation status 01h if PROF.COM installed 02h if VPROD.386 installed SeeAlso: AX=4501h,AX=4502hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SETUP PROFILER AX = 4501h BX = CSIPS buffer size in KB (first parameter for ProfSetup) CX = output limit in KB (second parameter for ProfSetup) Note: this call is not supported by PROF.COM SeeAlso: AX=4502h,AX=4503hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SET SAMPLING RATE AX = 4502h BL = sampling rate for PROF.COM (0 < BL <= 13) (01h = 8192/s, 04h = 1024/s, 08h = 32/s, 0Dh = 1/s) CX = sampling rate for VPROD.386 Note: for PROF.COM, this programs the CMOS clock by setting BL+2 as the low four bits of CMOS register 0Ah. The interruption rate is 1 SHL (15 - BL) per second. SeeAlso: AX=4501h,AX=4503hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - START PROFILING AX = 4503h Notes: Profiling is also turned on by the key combinations LeftShift + RightShift + Alt and LeftShift + RightShift + Ctrl for PROF.COM, this call programs the CMOS clock by reading register 0Ch, and setting bit 6 of register 0Bh. It then makes sure that IRQ8 is unmasked SeeAlso: AX=4504hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - STOP PROFILING AX = 4504h Notes: profiling is also turned off by the key combination LeftShift + RightShift for PROF.COM, this programs the CMOS clock by reading register 0Ch and clearing bit 6 of register 0Bh. It then masks IRQ8. SeeAlso: AX=4503h,AX=4505h,AX=4506h,AX=4507hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - CLEAR PROFILING DATA AX = 4505h SeeAlso: AX=4503h,AX=4504h,AX=4506hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFlush" AX = 4506h SeeAlso: AX=4505h,AX=4507hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFinish" AX = 4507h Note: this call is essentially a "ProfStop" (AX=4504h) followed by "ProfFlush" (AX=4506h) SeeAlso: AX=4504h,AX=4505h,AX=4506hTop
INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - ALTERNATE SEGDEBUG IFACE AX = 4508h BX = ordinal (or 0000h) CX = segment DX = instance (or 0000h) SI = type (or 0000h) ES:DI -> ASCIZ module name Notes: this call is an alternate entry to the profiler's SEGDEBUG interface, but only to function 0, for notifying the profiler of each new segment loaded. The SHOWHITS utility then examines the profiler's output files (CSIPS.DAT and SEGENTRY.DAT) in conjunction with symbol files to provide information in a useful form. this call does not have a corresponding Windows function SeeAlso: AX=4500hTop
INT 2F CU - MS Windows WINOLDAP - SWITCHING ??? AX = 4601h Return: ??? Note: the DOS 5+ kernel intercepts this function and copies the MCB following the caller's PSP memory block into the DOS data segment; in conjunction with AX=4602h, this intercept is used by DOS to avoid corruption of the Windows real-mode heap's end sentinel SeeAlso: AX=1700h,AX=4602hTop
INT 2F CU - MS Windows WINOLDAP - SWITCHING ??? AX = 4602h Return: ??? Note: the DOS 5+ kernel intercepts this function and copies the previously-saved MCB from the DOS data segment into the MCB following the caller's PSP memory block; in conjunction with AX=4601h, this intercept is used by DOS to avoid corruption of the Windows real-mode heap's end sentinel SeeAlso: AX=1700h,AX=4601hTop
INT 2F U - Windows/286 DOS Extender AH = 46h AL = subfunction (03h,04h) Return: ??? Note: these two subfunctions are called by MS Windows 3.0Top
INT 2F - F-PROT v1.x only - F-LOCK.EXE - API
AX = 4653h ('FS')
CX = 0002h
BX = subfunction
0000h installation check
Return: AX = FFFFh
0001h uninstall
Return: AX,BX,ES destroyed
0002h disable (v1.08 and below only)
0003h enable (v1.08 and below only)
Program: F-LOCK is part of the shareware F-PROT virus/trojan protection
package by Fridrik Skulason
SeeAlso: AX=4653h/CX=0003h,AX=CA00h,INT 21/AX=4BEEh
Index: installation check;F-LOCK|uninstall;F-LOCK
Top
INT 2F - F-PROT v1.x only - F-XCHK.EXE - API
AX = 4653h ('FS')
CX = 0003h
BX = subfunction
0000h installation check
Return: AX = FFFFh
0001h uninstall
Return: AX,BX,ES destroyed
Program: F-XCHK is part of the shareware F-PROT virus/trojan protection
package by Fridrik Skulason
SeeAlso: AX=4653h/CX=0002h,AX=4653h/CX=0004h,AX=CA00h
Index: installation check;F-XCHK|uninstall;F-XCHK
Top
INT 2F - F-PROT v1.x only - F-POPUP.EXE - API
AX = 4653h ('FS')
CX = 0004h
BX = subfunction
0000h installation check
Return: AX = FFFFh
0001h uninstall
Return: AX,BX,ES destroyed
0002h disable (v1.08 and below only)
display message (v1.14+)
other registers: ???
0003h enable (v1.08 and below only)
display message (v1.14+)
other registers: ???
Return: AX = key pressed by user
Program: F-POPUP is part of the shareware F-PROT virus/trojan protection
package by Fridrik Skulason
SeeAlso: AX=4653h/CX=0003h,AX=4653h/CX=0005h,AX=CA00h
Index: installation check;F-POPUP|uninstall;F-POPUP
Top
INT 2F - F-PROT v1.x only - F-DLOCK.EXE - API
AX = 4653h ('FS')
CX = 0005h
BX = subfunction
0000h installation check
Return: AX = FFFFh
0001h uninstall
Return: AX,BX,ES destroyed
Program: F-DLOCK is part of the shareware F-PROT virus/trojan protection
package by Fridrik Skulason
SeeAlso: AX=4653h/CX=0004h,AX=CA00h
Index: installation check;F-DLOCK|uninstall;F-DLOCK
Top
INT 2F - F-PROT v2.x - VIRSTOP - ENABLE/DISABLE BOOTSECTOR READ CHECKING
AX = 4653h ('FS')
CX = 0007h
BL = new state of bootsector checking (01h = disabled)
Program: VIRSTOP is the resident virus-checker from Fridrik Skulason's F-PROT
virus/trojan protection package
Top
INT 2F - F-PROT v2.x - ???
AX = 4653h ('FS')
CX = 0008h
???
Return: ???
Note: called by F-PROT v2.x VIRSTOP
Top
INT 2F - F-PROT v2.x - VIRSTOP - INSTALLATION CHECK
AX = 4653h ('FS')
CX = 0008h
Return: AX = 5346h if installed
BX = version???
DS:SI -> ASCIZ name of file containing virus signatures
DS:DI -> 80-byte buffer for ???
Top
INT 2F U - MS Windows v3.0 - INSTALLATION CHECK AX = 4680h Return: AX = result 0000h MS Windows 3.0 running in real (/R) or standard (/S) mode, or DOS 5 DOSSHELL active nonzero no Windows, Windows prior to 3.0, or Windows3 in enhanced mode Note: Windows 3.1 finally provides an installation check which works in all modes (see AX=160Ah) SeeAlso: AX=1600h,AX=160AhTop
INT 2F U - ??? AH = 47h ??? Return: ??? Note: reportedly called by Microsoft BASIC Compiler v7.0Top
INT 2F - DOS 5+ DOSKEY - INSTALLATION CHECK AX = 4800h Return: AL = nonzero if installed (DOS 5.0 and 6.0 return AX=AA02h, Novell DOS 7 returns AX=EDFFh) ES = segment of DOSKEY resident portion DX = ??? (Novell DOS only; 02E6h for shipped v0.01) Notes: DOSKEY chains if AL is not 00h or 10h on entry this function is supported by Novell DOS 7 DOSKEY SeeAlso: AX=4800h"PCED",AX=4810hTop
INT 2F - PCED v2.1 - INSTALLATION CHECK AX = 4800h Return: AX = AACDh if installed ES = segment of PCED kernel (PCED has multiple code segments) Program: PCED v2.1 is a command line editor/history/macro facility by Cove Software. It is the commercial version of the freeware CED. Notes: DOSKEY also responds to this call if installed, returning AX=AA02h. unlike DOSKEY, PCED does *not* chain if AL contains an unsupported function code. It IRETs with all registers intact.Top
INT 2F - DOS 5+ DOSKEY, PCED v2.1 - READ INPUT LINE FROM CONSOLE AX = 4810h DS:DX -> line buffer (see #01344 at INT 21/AH=0Ah) Return: AX = 0000h if successful Notes: the first byte (length) of the buffer MUST be 80h, or MS-DOS's DOSKEY chains to the previous handler; PCED and Novell DOS allow sizes other than 80h if the user's input is a macro name, no text is placed in the buffer even though AX=0000h on return; the program must immediately issue this call again to retrieve the expansion of the macro. Similarly, if the user enters a special parameter such as $*, this call must be repeated to retrieve the expansion; on the second call, DOSKEY overwrites the macro name on the screen with its expansion. unlike DOSKEY, PCED expands all macros on the first call, so it is not necessary to make two calls; since the buffer is not empty on return, DOSKEY-aware programs will not make the second call DOSKEY chains if AL is not 00h or 10h on entry this function is supported by Novell DOS 7 DOSKEY SeeAlso: AX=4800h,INT 21/AH=0AhTop
INT 2F - PCED v2.1 - PCED API AX = 48C0h DX = API function code other registers as required by the specified function Return: CF clear if successful CF set on error AX = PCED error code other registers as appropriate for API function Program: PCED v2.1 is a command line editor/history/macro facility by Cove Software. It is the commercial version of the freeware CED. Note: the full API information is available from Cove Software SeeAlso: AX=4800h"PCED",AX=48C1h,AX=48C2h,AX=48C3hTop
INT 2F - PCED/VSTACK - INSTALLATION CHECK AX = 48C1h BL = 00h Return: AX = 0000h if installed BX = VSTACK resident segment Program: VSTACK is a resident backscroll utility included as part of the PCED package by Cove Software Note: chains if BL <> 00h on entry SeeAlso: AX=48C0h,AX=48C2hTop
INT 2F - PCED/ATTRIB - INSTALLATION CHECK AX = 48C2h BL = 00h Return: AX = 0000h if installed BX = ATTRIB resident segment Program: ATTRIB is a resident file attribute changer included as part of the PCED package by Cove Software Note: chains if BL <> 00h on entry SeeAlso: AX=48C0h,AX=48C1h,AX=48C3hTop
INT 2F - PCED/KEYDEF - INSTALLATION CHECK AX = 48C3h BL = 00h Return: AX = 0000h if installed BX = KEYDEF resident segment Program: KEYDEF is a resident keyboard redefinition utility included as part of the PCED package by Cove Software Note: chains if BL <> 00h on entry SeeAlso: AX=48C0h,AX=48C2h,AX=48C4hTop
INT 2F - PCED/FLIST - INSTALLATION CHECK AX = 48C4h BL = 00h Return: AX = 0000h if installed BX = FLIST resident segment Program: FLIST is a resident filelist processor included as part of the PCED package by Cove Software Note: chains if BL <> 00h on entry SeeAlso: AX=48C0h,AX=48C3h,AX=48C5hTop
INT 2F - PCED/ASSOC - INSTALLATION CHECK AX = 48C5h BL = 00h Return: AX = 0000h if installed BX = ASSOC resident segment Program: ASSOC is a resident utility included as part of the PCED package which associates files with executable programs based on their extensions Note: chains if BL > 02h on entry SeeAlso: AX=48C0h,AX=48C4h,AX=48C5h/BL=01h,AX=48C5h/BL=02hTop
INT 2F - PCED/ASSOC - GET VERSION AX = 48C5h BL = 01h Return: AX = 0000h if installed BX = binary ASSOC version (BL = major, BH = minor) Note: chains if BL > 02h on entry SeeAlso: AX=48C0h,AX=48C5h/BL=00h,AX=48C5h/BL=02hTop
INT 2F - PCED/ASSOC - ASSOCIATION TEST AX = 48C5h BL = 02h DS:SI -> ASCIZ filename Return: AX = status 0000h if filename is unknown 0001h if there is an association defined for the file BX destroyed Program: ASSOC is a resident utility included as part of the PCED package which associates files with executable programs based on their extensions Note: chains if BL > 02h on entry SeeAlso: AX=48C0h,AX=48C5h/BL=00h,AX=48C5h/BL=01hTop
INT 2F U - DOS 5.0+ SETUP AH = 49h AL = function 00h update format completion gauge BX = percentage complete, 0000h when done, FFFFh if aborted Return: AX = status 0000h continue formatting else installation program wants FORMAT to abort 10h get pointer to resident data AX = FFFFh if supported ES:BX -> internal structure ??? Return: ???Top
INT 2F CU - DOS 5+ - FLOPPY-DISK LOGICAL DRIVE CHANGE NOTIFICATION AX = 4A00h CX = 0000h DH = new drive number DL = current drive number Return: CX = FFFFh to skip "Insert diskette for drive X:" message Note: called by MS-DOS 5.0+ IO.SYS just before displaying the message "Insert diskette for drive X:" on single-floppy systemsTop
INT 2F - DOS 5+ - QUERY FREE HMA SPACE AX = 4A01h Return: BX = number of bytes available in HMA (0000h if DOS not using HMA) ES:DI -> start of available HMA area (FFFFh:FFFFh if not using HMA) Notes: called by Windows 3.1 DOSX.EXE supported by Novell DOS 7 SeeAlso: AX=4310h,AX=4A02hTop
INT 2F - DOS 5+ - ALLOCATE HMA SPACE AX = 4A02h BX = number of bytes Return: ES:DI -> start of allocated HMA block or FFFFh:FFFFh BX = number of bytes actually allocated (rounded up to next paragraph for DOS 5.0 and 6.0) Notes: this call is not valid unless DOS is loaded in the HMA (DOS=HIGH) called by Windows 3.1 DOSX.EXE supported by Novell DOS 7 SeeAlso: AX=4A01h,AX=4A03hTop
INT 2F U - Windows95 - DOS KERNEL - (DE)ALLOCATE HMA MEMORY BLOCK AX = 4A03h CX = segment of block's owner??? DL = subfunction 00h allocate block BX = number of bytes Return: DI=FFFFh if unable to allocate ES:DI -> allocated block 01h resize block ES:DI -> previously-allocated block BX = new size in bytes (must be less than original size???) Return: DI=FFFFh if unable to allocate ES:DI -> reallocated block Note: the contents of the original block are NOT copied 02h free block??? ES:DI -> block to be freed Note: in MS-DOS 7.x, function 4A02h is implemented by calling this function with DL=00h SeeAlso: AX=4A02hTop
INT 2F U - Windows95 - DOS KERNEL - GET START OF HMA MEMORY CHAIN AX = 4A04h Return: AX = 0000h if function supported ES:DI -> first HMA memory control block (see #02800) Format of Windows95 HMA memory control block: Offset Size Description (Table 02800) 00h 2 BYTEs signature "MS" (4Dh 53h) 02h WORD segment of owner (or segment at which to address block???) 0000h = free 0001h = DOS??? FF33h = IO.SYS FFFFh = MSDOS.SYS 04h WORD size of memory block (not including this header) 06h WORD offset of next memory block in segment FFFFh, or 0000h if last 08h 8 BYTEs unused (explicitly set to 0 for MS-DOS 7.10)Top
INT 2F U - DOS 5+ DOSSHELL - TASK SWITCHING API??? AX = 4A05h SI = function 0000h reset??? 0001h ??? ES:BP -> 80-byte buffer containing ??? 0002h ??? 0003h ??? 0004h ??? BL = ??? 0005h ??? 0006h get ??? Return: ES:SI -> ??? 0007h get ??? Return: AX = ??? 0008h get ??? Return: DX:AX -> ??? (internal control data of some kind) 0009h get ??? Return: ES:SI -> ??? (apparently identical to function 0006h) 000Ah ??? BL = length of buffer ES:BP -> buffer containing ??? 000Bh get ??? Return: AX = ??? 000Ch ??? BL = ??? Return: if BL nonzero on entry DX:AX -> ??? if BL = 00h on entry ES:SI -> ??? Notes: DOSSHELL chains to the previous handler if SI is not one of the values listed above the DOSSWAP.EXE module calls functions 03h,04h,05h,07h,08h,09h,0Ch the Windows 3.1 DSWAP.EXE and WSWAP.EXE task switchers use these calls SeeAlso: AX=4B01hTop
INT 2F CU - DOS 5+ - DOS SUPERVISOR "REBOOT PANEL" - ADJUST MEMORY SIZE AX = 4A06h DX = segment following last byte of conventional memory Return: DX = segment following last byte of memory available for use by DOS Desc: used to override the default memory size when booting diskless workstations Notes: called by MS-DOS 5+ IO.SYS and DR DOS 6.0+ IBMBIO.OCM startup code if the signature "RPL" is present three bytes beyond the INT 2F handler; this call overrides the value returned by INT 12 hooked by RPL code at the top of memory to protect itself from being overwritten; DOS builds a memory block with owner = 0008h and name "RPL" which must be freed by the RPL code when it is done. Under DR DOS, it is sufficient to set the owner field of the MCB to 0000h. In addition to the test for "RPL", DR PalmDOS (since 1992/08/25), DR DOS 6.0 "Business update March 1993", DR DOS "Panther" and "StarTrek", and Novell DOS 7+ also check for a "RPLOADER" signature. If this 2nd signature is found, IBMBIO.COM will store the INT 2Fh vector for later use after the BIOS init, when at several points it directly calls the RPLOADER via an emulated INT 2Fh with AX=12FFh/BX=5/CX=0/DX=1 and a phase code 1, 2 or 3 on the stack. This permits the RPLOADER to keep track of the initialization process and clean or fix up anything it wishes. The "phase 1" broadcast is issued after the BIOS init code and data have been relocated (e.g. into the HMA), "phase 2" gets issued immediately before the CONFIG.SYS processing begins and the DOS code and data are relocated, and the closing "phase 3" happens to permit any final tidy ups before the memory manager gets acknowledgement of completion. SeeAlso: INT 12"BIOS",INT 18"BOOT HOOK",AX=4A07h,INT 2F/AX=12FFh/BX=0005hTop
INT 2F U - RESERVED FOR PROTMAN SUPPORT AX = 4A07h ??? Return: ??? SeeAlso: AX=4A06h,INT 18"BOOT HOOK"Top
INT 2F - SMARTDRV v4.00+ - INSTALLATION CHECK AND HIT RATIOS AX = 4A10h BX = 0000h CX = EBABh (v4.1+; see Note), and CX <> 0EDCh Return: AX = BABEh if installed DX:BX = cache hits DI:SI = cache misses CX = number of dirty cache elements BP = version in BCD (4.10 = 0410h) 4.0 = 0400h (Windows 3.1) 4.01 = 0401h (MS-DOS 6.0, 1992/07/30) 4.10 = 0410h (1992/11/11) 4.20 = 0420h 5.0 = 0500h (MS-DOS 6.2) Notes: most of the SMARTDRV API, including this call, is supported by PC-Cache v8.0 and recent versions of the Norton Caches the internal name for SMARTDRV is "BAMBI", hence the magic "BABE". if DBLSPACE.BIN is installed but SMARTDRV has not yet been installed, then calls of this function with CX<>EBABh on entry cause DBLSPACE.BIN to display the error message "Cannot run SMARTDrive 4.0 with DoubleSpace" and abort the caller with INT 21/AX=4C00h Since the Novell DOS 7 - DR-DOS 7.03 NWCACHE supports a similar install check at this function, but the returned registers contain different data, the caller must take the returned AX value into account to ensure proper interpretation of the returned info. The caller should ensure CX <> 0EDCh to avoid any interaction with the NWCACHE and COMMAND.COM special case of CX=0EDCh. Although this is an install check, NWCACHE always flushes delayed writes to disk, when calling this function with CX<>0EDCh or while /FLUSH:ON is active, but this is nothing to rely upon. The reason for this could be to get more accurate statistics, while SMARTDRV just takes a on-the-fly snapshot of the statistic vars. The private NWCACHE/NLCACHE install check INT2Fh/D8C0h does not flush to disk, and therefore can be used by callers that must ensure the buffers aren't flushed on this function (e.g. alternative command shells may need this to make their "flush before prompt" feature configurable). The NWCACHE 0EDCh special case will most probably vanish with future issues of NWCACHE (2.0+). SMARTDRV v3.x had a completely different API using IOCTL calls, which was also supported by the Norton Caches BUG: Although DS and ES registers are listed as unmodified, some releases of SMARTDRV seem to trash the DS register, at least the MS-DOS 6.2+ KEYB takes care to preserve the DS register when calling this function. SeeAlso: AX=4A10h/BX=0001h,AX=4A10h/BX=0004h,AX=4A10h/BX=0005h SeeAlso: AX=4A10h/BX=0007h,AX=4A10h/BX=1234h,AX=4A11h/BX=0000h SeeAlso: INT 21/AX=4402h"SMARTDRV",INT 21/AX=4403h"SMARTDRV"Top
INT 2F U - Novell NWCACHE - INSTALLATION CHECK AND STATISTICS
AX = 4A10h
BX = 0000h
CX = magic value
0EDCh flush delayed writes
('EDC' = Novell European Development Center)
other (use EBABh to avoid SMARTDRV/DBLSPACE interaction)
Return: (also refer to notes below)
AX = 6756h ('gV') if installed
CF clear
BX = cache memory type
01h conventional memory
02h extended memory
03h EMS
DI:SI = cache misses
CX:DX = segment:offset address of data area containing statistics
(see #04095)
BP = version in BCD
0100h = 1.00
0101h = 1.01 & 1.02 (!)
Notes: SMARTDRV 4.0+ uses a similar installation check on this function but
returns different data. To ensure proper interpretation of
the returned values, the caller must check the returned magic
value in AX. Since SMARTDRV may also alter DI:SI (and possibly
DS), the caller should take care of this, too.
The Novell DOS / DR-DOS 7.x COMMAND.COM invokes this function with
CX=0EDCh, which causes NWCACHE to flush any delayed writes before
returning the normal register values if it is configured to flush
writes before returning to the DOS prompt (/FLUSH:ON); however, if
/FLUSH:OFF, this function becomes a NOP with CX=0EDCh.
Note that for this function the 0EDCh special case may vanish with
future issues of NWCACHE (2.0+), and the function would then always
do the normal install check, and not flush the cache.
SeeAlso: AX=4A10h/BX=0001h"NWCACHE"
Format of NWCACHE statistics:
Offset Size Description (Table 04095)
00h DWORD number of read requests
04h DWORD number of reads performed
08h DWORD number of write requests
0Ch DWORD number of writes performed
10h WORD number of disk errors
12h WORD number of cache memory errors
Top
INT 2F - SMARTDRV v4.00+ - FLUSH BUFFERS (COMMIT CACHE) AX = 4A10h BX = 0001h Note: this function is also supported by PC-Cache v8.0. SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0002h,INT 21/AH=0DhTop
INT 2F U - Novell NWCACHE - ???
AX = 4A10h
BX = 0001h
CX = 0EDCh ('EDC' = Novell European Development Center)
Return: ???
SeeAlso: AX=4A10h/BX=0000h"NWCACHE"
Top
INT 2F - SMARTDRV v4.00+ - RESET CACHE AX = 4A10h BX = 0002h Note: this function is also supported by PC-Cache v8.0. SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0001hTop
INT 2F - SMARTDRV v4.00+ - STATUS AX = 4A10h BX = 0003h BP = drive number (0=A, 1=B, etc.) FFFFh = all drives (NWCACHE only) DL = subfunction 00h only get information 01h turn on read cache 02h turn off read cache 03h turn on write cache 04h turn off write cache ---NWCACHE--- 05h reduce cache size CX = number of KB to reduce (can't shrink below min size) 06h increase cache size CX = number of KB to increase (can't grow above max size) Return: AX = BABEh if OK DL = status (see #02801) DL = FFh if drive does not exist Notes: If the read cache is off, reads will not be cached, but writes will continue to be cached if the write-cache is enabled. this function is also supported by PC-Cache v8.0. SMARTDRV flushes the cache if sub-functions 02h or 04h have been called to disable read or write caching. On calling this function, NWCACHE flushes any delayed writes, but you should not rely on this, since this behavior may vanish in future versions. BUG: The MS-DOS 6.20+ SCANDISK disables a SMARTDRV 4+ compatible cache for the drive it is about to process. However, at least when the cache loaded is NWCACHE, the cache will still remain disabled for this drive after SCANDISK has finished. The reason for this behavior is not yet known. The workaround is to re-enable with the NWCACHE d:+ syntax afterwards, where d: is the corresponding drive letter. SeeAlso: AX=4A10h/BX=0000h Bitfields for SMARTDRV status: Bit(s) Description (Table 02801) 7 not cached (no read-caching) 6 write-through (not write-cached) 0-5 real drive number (0=A, 1=B...) Notes: the "real" drive number is always set to 00h for RAM disks and to 3Fh for CD-ROMs; unfortunately, the latter means that an uncached CD-ROM has status FFh, just as a nonexistent drive does also supported by Novell DOS 7 - Caldera/Lineo DR-DOS 7.03 NWCACHETop
INT 2F - SMARTDRV v4.00+ - GET CACHE SIZE AX = 4A10h BX = 0004h Return: AX = size in elements of full-sized cache BX = current size in elements CX = size of one element in bytes DX = number of elements under Windows Note: this function is also supported by PC-Cache v8.0. SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0003h,AX=4A10h/BX=0005hTop
INT 2F - SMARTDRV v4.00+ - GET DOUBLE-BUFFER STATUS AX = 4A10h BX = 0005h BP = drive number (0=A, 1=B...) Return: AX = BABEh if double-buffered ES:DI -> 16-byte array of status bytes for fixed disks (see #02802) SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0003h,AX=4A10h/BX=0006h (Table 02802) Values for SMARTDRV status byte: 00h state unknown FFh drive double-buffered else not double-bufferedTop
INT 2F CU - SMARTDRV v4.00+ - CHECK IF DRIVE CACHEABLE AX = 4A10h BX = 0006h CL = drive number (01h = A:) Return: AX = 0006h if drive should not be cached by SMARTDRV Note: called by SMARTDRV at startup to determine whether it should cache a particular drive SeeAlso: AX=4A10h/BX=0000hTop
INT 2F - SMARTDRV v4.00+ - GET DEVICE DRIVER FOR DRIVE AX = 4A10h BX = 0007h BP = drive number (00h=A:) Return: DL = unit number within device driver ES:DI -> device driver header for drive (see #01646) Note: this function is also supported by PC-Cache v8.0. this call is reported to always return the driver header of the standard block driver (A:-C:+) for SmartDrive v5.00 from MS-DOS 6.2 SeeAlso: AX=4A10h/BX=0000h,AX=4A11h/BX=0003h,AX=4A11h/BX=0004hTop
INT 2F - SMARTDRV v4.20+ - GET/SET FLUSH BEFORE PROMPT, CD-ROM SUPPORT AX = 4A10h BX = 0008h DL = subfunction 00h set DH = new states bit 0: flush before prompt bits 1-7 reserved (0) 01h get Return: DH = status flags bit 0: (v4.2+) flush before prompt bit 1: (v5.0+) CD-ROM caching support installed Note: v4.2 was an interim release to fix problems in the SMARTDRV included with MS-DOS 6.00; v5.00 is included with MS-DOS 6.2Top
INT 2F - SMARTDRV v4.00+ - GET ELEMENT STATUS TABLE AX = 4A10h BX = 000Ah Return: ES:BX -> information pointer table (see #02803) Note: this function is also supported by PC-Cache v8.0. SeeAlso: AX=4A10h/BX=0000h Format of SMARTDRV information pointer table: Offset Size Description (Table 02803) 00h WORD offset of ??? byte/word array (byte if elements < 2000h bytes) 02h WORD offset of dirty flag byte/word array (byte if elts < 2000h) each byte/word is a bit string of the dirty sectors in element 04h WORD offset of word array containing low halves of unique identifiers for the corresponding element's contents 06h WORD offset of word array containing high halves of unique identifiers for the corresponding element's contents 08h WORD offset of WORD containing current number of elements in cacheTop
INT 2F - SMARTDRV v4.00+ - SIGNAL SERIOUS ERROR AX = 4A10h BX = 1234h Desc: this function pops up a message box saying that a serious error occurred and to hit R to retry, then waits for the keypress Note: this function is also supported by PC-Cache v8.0. SeeAlso: AX=4A10h/BX=0000hTop
INT 2F - DBLSPACE.BIN - "GetVersion" - INSTALLATION CHECK
AX = 4A11h
BX = 0000h
Return: AX = 0000h (successful)
BX = 444Dh ("DM")
CL = first drive letter used by DBLSPACE (41h ['A'] = A:)
CH = number of drive letters used by DBLSPACE
DX = internal DBLSPACE.BIN version number (bits 14-0)
bit 15 set if DBLSPACE.BIN has not yet been relocated to final
position in memory (i.e. DBLSPACE.SYS /MOVE)
Program: DBLSPACE.BIN is the resident driver for DoubleSpace, the
disk-compression software bundled with MS-DOS 6.0 and 6.20
Notes: this function is also supported by the version of SuperStor bundled
with IBM DOS 6.x and "preloading" versions of Stacker
the complete DBLSPACE.BIN API is still supported by MS-DOS 6.22's
DRVSPACE.BIN
SeeAlso: AX=4A11h/BX=0001h,AX=4A11h/BX=0002h,AX=4A11h/BX=0003h
SeeAlso: AX=4A11h/BX=0005h,AX=4A11h/BX=0007h,AX=4A11h/BX=FFFFh
SeeAlso: INT 21/AX=4404h"DBLSPACE"
Top
INT 2F - DBLSPACE.BIN - "GetDriveMapping" - GET DRIVE MAPPING AX = 4A11h BX = 0001h DL = drive number (0=A:) Return: AX = status (see also #02804) 0000h successful if DL was compressed drive, BL = host drive (bit 7 set if drive is compressed) else if DL was host drive, BL = compressed drive else BL = specified drive (if available for DoubleSpace) BH = DoubleSpace sequence number other error code (0101h) (see #02804) apparently never returned for the MS-DOS 6.2 DoubleSpace Note: the compressed volume file for the specified compressed drive is host:\DBLSPACE.sequence SeeAlso: AX=4A11h/BX=0000h (Table 02804) Values for DBLSPACE function status: 0000h successful 0100h bad function 0101h invalid drive 0102h not a compressed drive 0103h drive already swapped 0104h drive not swapped SeeAlso: #02806Top
INT 2F - DBLSPACE.BIN - "Swap Drive" - SWAP DRIVE LETTERS OF CVF AND HOST DRIVE AX = 4A11h BX = 0002h DL = drive number (0=A:) of compressed drive to swap with its host Return: AX = status (0000h,0101h,0102h,0103h) (see #02804) Note: this function is intended for use by DBLSPACE.EXE only SeeAlso: AX=4A11h/BX=0000hTop
INT 2F - DBLSPACE.BIN - "DSGetEntryPoints" - GET DEVICE DRIVER ENTRY POINTS AX = 4A11h BX = 0003h CL = drive number (0=A:) of compressed drive Return: CL = FFh on error (not compressed drive) CL <> FFh driver unit number of host drive ES:SI -> device driver's strategy routine ES:DI -> device driver's interrupt routine BX destroyed Note: in conjunction with subfunction 0004h, this call allows disk caches like SMARTDRV to apply a device driver wrapper to DoubleSpaced drives just like SMARTDRV applies to regular block devices SeeAlso: AX=4A10h/BX=0007h,AX=4A11h/BX=0000h,AX=4A11h/BX=0004hTop
INT 2F - DBLSPACE.BIN - "DSSetEntryPoints" - SET DEVICE DRIVER ENTRY POINTS AX = 4A11h BX = 0004h CL = drive number (0=A:) of compressed drive DL = unit number for new driver entry points DH = 00h ES:SI -> device driver strategy routine to call for drive ES:DI -> device driver interrupt routine to call for drive Return: CL = FFh on error (not a compressed drive) BX destroyed Program: DBLSPACE.BIN is the resident driver for DoubleSpace, the disk-compression software bundled with MS-DOS 6.0 Note: in conjunction with subfunction 0003h, this call allows disk caches like SMARTDRV to apply a device driver wrapper to DoubleSpaced drives just like SMARTDRV applies to regular block devices SeeAlso: AX=4A10h/BX=0007h,AX=4A11h/BX=0000h,AX=4A11h/BX=0003hTop
INT 2F - DBLSPACE.BIN - "ActivateDrive" - MOUNT COMPRESSED DRIVE
AX = 4A11h
BX = 0005h
DL = drive number (0=A:) to assign to new drive
ES:SI -> activation record (see #02805)
Return: status returned in activation record (see #02806)
SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0006h
Format of DBLSPACE activation record:
Offset Size Description (Table 02805)
00h 2 BYTEs signature "MD" (4Dh 44h)
02h BYTE 4Dh ('M') mount command
03h BYTE error code (set to FFh before calling) (see #02806)
04h BYTE host drive number (0=A:)
05h ??? DISK_UNIT structure (not documented)
(Table 02806)
Values for DBLSPACE Mount error code:
00h successful
01h drive letter not available for DoubleSpace
02h drive letter already in use
03h no more disk units (increase MaxRemovableDrives in .INI)
09h CVF too fragmented
SeeAlso: #02805,#02804
Top
INT 2F - DBLSPACE.BIN - "DeactivateDrive" - UNMOUNT COMPRESSED DRIVE AX = 4A11h BX = 0006h DL = drive number (0=A:) to unmount Return: AX = status (0000h,0102h) (see #02804) SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0005hTop
INT 2F - DBLSPACE.BIN - "GetDriveSpace" - GET SPACE AVAIL ON COMPRESSED DRIVE AX = 4A11h BX = 0007h DL = compressed drive number (0=A:) Return: AX = status (0000h,0102h) (see also #02804) 0000h successful DS:SI -> free space record (see #02807) Program: DBLSPACE.BIN is the resident driver for DoubleSpace, the disk-compression software bundled with MS-DOS 6.0 SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0008h Format of DBLSPACE free space record: Offset Size Description (Table 02807) 00h DWORD total number of sectors in drive's sector heap 04h DWORD number of free sectors in drive's sector heapTop
INT 2F - DBLSPACE.BIN - "GetFileFragmentSpace" - GET SIZE OF FRAGMENT HEAP AX = 4A11h BX = 0008h DL = compressed drive number (0=A:) Return: AX = status (0000h,0102h) (see also #02804) 0000h successful BX = maximum entries in File Fragment heap CX = available entries in File Fragment heap SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0007h,AX=4A11h/BX=0009hTop
INT 2F - DBLSPACE.BIN - "GetExtraInfo" - DETERMINE NUMBER OF DISK_UNIT STRUCTS AX = 4A11h BX = 0009h DL = compressed drive number (0=A:) Return: AX = status (see also #02804) 0000h successful CL = number of DISK_UNIT structures allocated (see AX=4A11h/BX=0005h) CH = DoubleGuard enabled-checks bitflags in bits 6-0 (DOS 6.2) Note: the DoubleGuard checks are enabled or disabled as a block by the DoubleGuard= line in DBLSPACE.INI; they may be individually set with the CheckSum= line. SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0008hTop
INT 2F - DBLSPACE.BIN v6.2 - SET AUTOMOUNT DRIVES AX = 4A11h BX = 000Ah CX:DX = bitmask of drives on which to enable AutoMount (DX bit 0 = A:, CX bit 0 = P:, etc.) Return: AX = 0000h if supported CX:DX = old mask or 0000h:0000h on error BX destroyed SeeAlso: AX=4A11h/BX=000BhTop
INT 2F - DBLSPACE.BIN v6.2 - GET AUTOMOUNT DRIVES AX = 4A11h BX = 000Bh Return: AX = 0000h if supported CX:DX = mask of drives with AutoMount enabled 0000h:0000h on error BX destroyed SeeAlso: AX=4A11h/BX=000AhTop
INT 2F U - DBLSPACE.BIN - RELOCATE AX = 4A11h BX = FFFEh ES = segment to which to relocate DBLSPACE.BIN Return: ??? Notes: called by DBLSPACE.SYS to relocate DBLSPACE.BIN to its final position in memory this function also unhooks and discards the code providing this function and AX=4A11h/BX=FFFFh this function is also supported by the version of SuperStor bundled with IBM DOS 6.x and "preloading" versions of Stacker SeeAlso: AX=4A11h/BX=FFFFhTop
INT 2F U - DBLSPACE.BIN - GET RELOCATION SIZE AX = 4A11h BX = FFFFh Return: AX = number of paragraphs needed by DBLSPACE.BIN Note: used by DBLSPACE.SYS to relocate the DBLSPACE driver to its final position in memory this function is also supported by the version of SuperStor bundled with IBM DOS 6.x and "preloading" versions of Stacker SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=FFFEhTop
INT 2F - Microsoft Realtime Compression Interface (MRCI) - RAM-BASED SERVER
AX = 4A12h
CX = 4D52h ("MR")
DX = 4349h ("CI")
Return: CX = 4943h ("IC") if installed
DX = 524Dh ("RM") if installed
ES:DI -> MRCINFO structure (see #00725 at INT 1A/AX=B001h)
Note: this call is functionally identical to INT 1A/AX=B001h, but should be
called first, as the latter call is used for the first, ROM-based
MRCI server, while this call is used for RAM-based servers which
may be partially or entirely replacing a prior server
SeeAlso: AX=4A12h/CX=5354h,INT 1A/AX=B001h
Top
INT 2F - Stacker 4 LZS Compression Interface (LZSAPI)
AX = 4A12h
CX = 5354h ("ST")
DX = 4143h ("AC")
Return: AX = 4F4Bh ("OK") if installed
CX = 7374h ("st") if installed
DX = 6163h ("ac") if installed
ES:DI -> entry point in LZSAPI server (usually, driver
STACKER.COM) containing far address of an actual
LZSINFO structure (see #02808)
SeeAlso: AX=4A12h/CX=4D52h,INT 25/AX=CDCDh
Format of LZSINFO structure:
Offset Size Description (Table 02808)
00h 6 BYTEs signature "LZSAPI"
06h WORD server version (200 (0C8h) for Stacker 4 and Stacker Anywhere)
08h 4 BYTEs vendor signature
"STAC" = Stac Electronics, Inc.
0Ch 6 BYTEs ???
12h WORD bit flags: server status/capabilities (see #02809)
14h DWORD -> Stacker 3.X-compatible compression procedure
18h DWORD -> Stacker 3.X-compatible decompression procedure
1Ch 4 BYTEs reserved (always set to 0)
20h DWORD -> incremental Stacker 3.x-compatible compression procedure
(see #02810)
24h 4 BYTEs ???
28h DWORD -> incremental Stacker 3.x-compatible decompression procedure
(see #02811)
2Ch 4 BYTES ???
30h DWORD -> new (Stacker 4) compression procedure
34h 4 BYTEs ???
38h DWORD -> new (Stacker 4) decompression procedure
Notes: Stacker 4 usally keeps two different data-compression algorithms in
memory (preferably in XMA):
1) new (Stacker 4) data compression algorithm (4K LZ77 with hashing
and static Huffman encoding), and
2) old (Stacker 3.x-compatible) one (2K LZ77 with hashing), which
is used to work with STACVOL files created under older
versions of Stacker.
Bitfields for LZSAPI capabilities:
Bit(s) Description (Table 02809)
0 ???
1 busy/error flag
2-10 ???
11 maximum compressor/decompressor presented
(Table 02810)
Call Stacker 3.x-style non-incremental functions with:
STACK: DWORD return address for compress/decompress procedure
WORD compression algorithm parameters (see #02812)
WORD size of destination buffer (in bytes)
DWORD address of destination buffer
WORD size of source buffer (in bytes)
DWORD address of source buffer
Return: (compression/decompression procedure)
AX = size of resulting data in destination buffer
0000h if error (either destination buffer too small or error in
compressed data)
(Table 02811)
Call Stacker 4-style incremental procedures with:
STACK: DWORD return address for compr./decompr. procedure
DWORD address of LZSSWAP structure (see #02813)
if 0000:0000, procedure uses non-incremental technique
WORD compression algorithm parameters (see #02812)
WORD size of destination buffer (in bytes)
DWORD address of destination buffer
WORD size of source buffer (in bytes)
DWORD address of source buffer
(Table 02812)
Values for Compression algorithm parameters:
Value Compression level (/P=xx parameter)
07F9h 1
0621h 2
0625h 3
0665h 4
0669h 5
06E9h 6
06EDh 7
07D1h 8
07D9h 9
Format of LZSSWAP structure:
Offset Size Description (Table 02813)
00h 2 BYTEs signature "CS"
02h 6 BYTEs reserved
08h DWORD address of destination buffer swapping procedure
0Ch DWORD address of stack swapping procedure
Top
INT 2F U - DBLSPACE.BIN - DBLSPACE/MRCI STEALTH PACKET API AX = 4A13h Return: AX = 134Ah if supported ES:BX -> entry point record (see #02814) SeeAlso: AX=4A11h/BX=0000h,AX=4A12h/CX=4D52h"MRCI" Format of DBLSPACE entry point record: Offset Size Description (Table 02814) 00h DWORD pointer to FAR function for ??? 04h 5 BYTEs FAR JUMP instruction to ???Top
INT 2F - MS EMM386.EXE v4.46+ - INSTALL I/O VIRTUALIZATION HANDLER AX = 4A15h BX = 0000h (function number) DX = starting I/O address EDX high word = ending I/O address CX = number of ports to trap DS:SI -> I/O dispatch table (see #02815) DI = size of client's code and data (size of DS segment which must be made available to I/O dispatch function in protected mode) Return: CF clear if successful CF set on error Notes: this interface is only available in virtual-86 mode; the I/O handlers will be called in protected mode only ports 0100h-FFFFh may be trapped; EMM386 reserved ports 0000h- 00FFh Format of EMM386 I/O dispatch table [array]: Offset Size Description (Table 02815) 00h WORD I/O port number 02h WORD offset of I/O handler for port (see #02816) (Table 02816) Values EMM386 I/O dispatch function is called with: CX = Ring0 code selector for I/O handler's segment DS = Ring0 data selector for I/O handler's segment (alias of CS) EDX = faulting I/O address ECX = direction (00000008h for byte output, 00000000h for byte input) (reportedly 00h for byte/word input, 04h for byte/word output under DOS 6.22 EMM386) EAX = data in/out Return: (via FAR RET) CF clear if I/O access successfully virtualized CF set if access not virtualized (default handler will be called to perform the I/O) BUG: 32-bit I/O on trapped ports hangs the DOS 6.22 EMM386 SeeAlso: #02815Top
INT 2F U - Windows95 - OPEN BOOT LOG AX = 4A16h Return: AX = status 0000h successful FFFFh boot log file already open else DOS error code BX destroyed SeeAlso: AX=4A17h,AX=4A18hTop
INT 2F U - Windows95 - WRITE TO BOOT LOG AX = 4A17h CX = number of bytes to write DS:DX -> message to write (must include CR-LF if it is desired) Return: AX = status 0000h successful FFFFh boot log file not open else DOS error code Note: calls the code for INT 2F/AX=4A21h after writing to the file SeeAlso: AX=4A17h,AX=4A18h,AX=4A21hTop
INT 2F U - Windows95 - CLOSE BOOT LOG AX = 4A18h Return: AX = status 0000h successful FFFFh boot log file not open else DOS error code from closing file BX destroyed SeeAlso: AX=4A16h,AX=4A17hTop
INT 2F U - Windows95 - ??? AX = 4A21h Return: AX destroyed Note: calls INT 21/AX=4404h"IOCTL" with a five-byte buffer containing "MDF??" SeeAlso: AX=4A17hTop
INT 2F U - Windows95 - ??? AX = 4A31h CL = new value for ??? DS:SI -> BYTE to be set to CL Return: nothingTop
INT 2F U - Windows95 - PATCH ??? AX = 4A32h BL = subfunction 00h get ??? Return: AX = flag: subfunction 04h has been used (0000h/FFFFh) DX = ??? (0000h/?) 01h patch ??? in IO.SYS (segment 0070h) 02h unpatch ??? in IO.SYS 03h ??? 04h set ???, then do subfunction 01h 05h unset ???, then do subfunction 02h else Return: nothingTop
INT 2F - Windows95 - CHECK MS-DOS VERSION 7 AX = 4A33h Return: AX = 0000h for MS-DOS 7.00+ (officially) BX,DX,SI,DS may be destroyed (undoc) DS:DX -> ASCIZ primary shell executable name (undoc) DS:SI -> CONFIG.SYS SHELL= command line (counted string) (undoc) BH = ??? (0000h) (undoc) BL = ??? (0000h) AX nonzero (usually 4A33h) if MS-DOS 6- or other DOS SeeAlso: AX=1611h,INT 21/AH=30hTop
INT 2F - LAN Manager 2.0 DOS Enh NETWKSTA.EXE - NETWORK WORKSTATION REDIRECTOR AH = 4Bh ??? Return: ??? Note: LAN Manager enhanced mode adds features beyond the standard redirector file/printer services SeeAlso: AX=118Ah,AX=4100h,AH=42hTop
INT 2F C - DOS 5+ TASK SWITCHER - BUILD CALLOUT CHAIN AX = 4B01h CX:DX -> task switcher entry point (see #02819) ES:BX = 0000h:0000h Return: ES:BX -> callback info structure (see #02817) or 0000h:0000h Notes: called by the task switcher this function is hooked by clients which require notification of task switcher activities; the call must first be passed on to the prior handler with registers unchanged using a simulated interrupt. On return, the client must build a callback info structure and store the returned ES:BX in the "next" field, then return the address of its own callback info structure. a client program must add itself to the notification chain if it provides services to other programs; before terminating, it must remove itself from the chain by calling the task switcher's entry point with AX=0005h (see #02819) the task switcher entry point should not be saved, as it is subject to change and will be provided on any notification call the Windows 3.1 Standard Mode supports this API SeeAlso: AX=160Bh,AX=4B02h Format of task switcher callback info structure: Offset Size Description (Table 02817) 00h DWORD pointer to next callback info structure 04h DWORD pointer to notification function (see #02818) 08h DWORD reserved 0Ch DWORD address of zero-terminated list of API info structures (see #02821) (Table 02818) Values task switcher notification function is called with: AX = function 0000h switcher initialization Return: AX = status 0000h if OK to load nonzero to abort task switcher 0001h query suspend BX = session ID Return: AX = status 0000h if OK to switch session 0001h if not 0002h suspend session BX = session ID interrupts disabled Return: AX = 0000h if OK to switch session = 0001h if not 0003h activate session BX = session ID CX = session status flags bit 0: set if first activation of session bits 1-15: reserved (0) interrupts disabled Return: AX = 0000h 0004h session active BX = session ID CX = session status flags bit 0: set if first activation of session bits 1-15: reserved (0) Return: AX = 0000h 0005h create session BX = session ID Return: AX = 0000h if OK to create session = 0001h if not 0006h destroy session BX = session ID Return: AX = 0000h 0007h switcher termination BX = flags bit 0: set if calling switcher is only switcher loaded bits 1-15: reserved (0) Return: AX = 0000h ES:DI -> task switcher entry point (see #02819) Notes: function 0000h is generally called by the program which controls or invokes the task switcher, rather than by the task switcher itself; the entry point supplied to this function is not necessarily the entry point to the task switcher itself, and may be 0000h:0000h. If any client indicates that loading is not possible, all clients will be called with function 0007h; thus it is possible for a client to receive a termination notice without a corresponding initialization notice. except for functions 0002h and 0003h, the notification handler is called with interrupts enabled and may make any INT 21h function call; interrupts must not be enabled in functions 0002h and 0003h function 0007h may be called with ES:DI = 0000h:0000h if the entry point is no longer validTop
INT 2F - DOS 5+ TASK SWITCHER - INSTALLATION CHECK
AX = 4B02h
BX = 0000h
ES:DI = 0000h:0000h
Return: ES:DI = 0000h:0000h if task switcher not loaded
ES:DI -> task switcher entry point (see #02819) if loaded
AX = 0000h
Notes: the returned entry point is that for the most-recently loaded task
switcher; the entry points for prior task switchers may be determined
with the "get version" call (see #02819)
this function is supported by PC Tools v8+ CPTASK
SeeAlso: AX=4A05h,AX=4B03h
(Table 02819)
Call task switcher entry point with:
AX = 0000h get version
Return: CF clear if successful
AX = 0000h
ES:BX -> task switcher version struct (see #02820)
CF set if unsupported function
AX = 0001h test memory region
ES:DI -> first byte to be tested
CX = size of region to test
Return: CF clear if successful
AX = memory type of tested region
0000h global
0001h global and local
0002h local (replaced on session switch)
CF set if unsupported function
AX = 0002h suspend switcher
ES:DI -> new task switcher's entry point
Return: CF clear if successful
AX = state
0000h switcher has been suspended
0001h switcher not suspended, new switcher must
abort
0002h switcher not suspended, but new switcher
may run anyway
CF set if unsupported function
AX = 0003h resume switcher
ES:DI -> new task switcher's entry point
Return: CF clear if successful
AX = 0000h
CF set if unsupported function
AX = 0004h hook notification chain
ES:DI -> callback info structure to be added to chain
(see #02817)
Return: CF clear if successful
AX = 0000h
CF set if unsupported function
AX = 0005h unhook notification chain
ES:DI -> callback info structure to be removed from chain
(see #02817)
Return: CF clear if successful
AX = 0000h
CF set if unsupported function
AX = 0006h query API support
BX = asynchronous API identifier
Return: CF clear if successful
AX = 0000h
ES:BX -> API info structure (see #02821) for the
client which provides the highest
level of API support
CF set if unsupported function
Format of task switcher version structure:
Offset Size Description (Table 02820)
00h WORD major version of supported protocol (current protocol is 1.0)
02h WORD minor version of supported protocol
04h WORD major version of task switcher
06h WORD minor version of task switcher
08h WORD task switcher ID (see AX=4B03h)
0Ah WORD operation flags
bit 0: set if task switcher disabled
bits 1-15: reserved (0)
0Ch DWORD pointer to ASCIZ task switcher name
("MS-DOS Shell Task Switcher" for DOSSHELL task switcher)
10h DWORD pointer to previous task switcher's entry point or 0000h:0000h
Format of API info structure:
Offset Size Description (Table 02821)
00h WORD size of structure in bytes (000Ah)
02h WORD API identifier
0001h NetBIOS
0002h 802.2
0003h TCP/IP
0004h LAN Manager named pipes
0005h Novell NetWare IPX
04h WORD major version \ of highest version of API for which the support
06h WORD minor version / level specified in the next field is provided
08h WORD support level
0001h minimal support
0002h API-level support
0003h switcher compatibility
0004h seamless compatibility
Top
INT 2F - DOS 5+ TASK SWITCHER - ALLOCATE SWITCHER ID AX = 4B03h ES:DI -> task switcher entry point (see #02819) Return: AX = 0000h BX = switcher ID (0001h-000Fh), or 0000h if no more available Notes: if a task switcher has determined that it is the first to be loaded, it must allocate an identifier for itself and provide this function to all subsequent task switchers; if it is not the first to be loaded, it must call this function to allocate an ID. The switcher ID is used as the high four bits of all session identifiers to ensure unique session IDs. if no more switcher IDs are available, the new task switcher making the call must terminate or disable itself the task switcher providing the identifiers may call the new task switcher's entry point as needed this call is available from within DOSSHELL even if the task switcher is not installed this function is supported by PC Tools v8+ CPTASK, but appears to always return an ID of 0000h SeeAlso: AX=4B02h,AX=4B04hTop
INT 2F - DOS 5+ TASK SWITCHER - FREE SWITCHER ID AX = 4B04h BX = switcher ID ES:DI -> task switcher entry point (see #02819) Return: AX = 0000h BX = status 0000h successful other error (invalid ID or ID not allocated) Notes: called by a task switcher when it exits, unless it was the first loaded and is providing the support for AX=4B03h and AX=4B04h the task switcher providing the identifiers may call the terminating task switcher's entry point as needed this call is available from within DOSSHELL even if the task switcher is not installed this call is supported by PC Tools v8+ CPTASK, but appears to return sucessfully no matter which ID is given SeeAlso: AX=4B02h,AX=4B03hTop
INT 2F C - DOS 5+ TASK SWITCHER - IDENTIFY INSTANCE DATA AX = 4B05h ES:BX = 0000h:0000h CX:DX -> task switcher entry point (see #02819) Return: ES:BX -> startup info structure (see #02822) or 0000h:0000h Notes: called by task switcher clients with instance data should hook this call, pass it through to the previous handler with unchanged registers using a simulated interrupt. On return, the client should create a startup info structure (see #02822), store the returned ES:BX in the "next" field, and return the address of the created structure in ES:BX all MS-DOS function calls are available from within this call this function is supported by Novell DOS 7 DOSKEY, with structure v3.00 SeeAlso: AX=1605h,AX=160Bh,AX=4B02h Format of task switcher startup info structure: Offset Size Description (Table 02822) 00h 2 BYTEs major, minor version of info structure (03h,00h) 02h DWORD pointer to next startup info structure or 0000h:0000h 06h DWORD 0000h:0000h (ignored) 0Ah DWORD ignored 0Eh DWORD pointer to instance data records (see #02823) Format of one instance data record in array: Offset Size Description (Table 02823) 00h DWORD address of instance data (end of array if 0000h:0000h) 04h WORD size of instance dataTop
INT 2F - MS Windows - WIN.COM - GET ??? POINTER TO WIN.COM AX = 4B06h Return: AX = 0000h ES:BX -> ??? function in WIN.COM Note: the entry point is called with AX = 0001h or 0003h BX = ??? SeeAlso: AX=4B80hTop
INT 2F - MS Windows 3+ - WIN.COM - SET PROGRAM TO EXECUTE ON EXIT AX = 4B20h Return: AX = 0000h if successful DX:CX -> 256-byte buffer for pathname and commandline (see #02824) Notes: when the Windows function ExitWindows is called with an exit code of 44h, WIN.COM executes the program specified in the returned buffer and then restarts Windows the returned address is a real-mode segment:offset value SeeAlso: AX=4B21h Format of WIN.COM buffer: Offset Size Description (Table 02824) 00h 128 BYTEs commandline for program (count byte, command tail, 0Dh) 80h 128 BYTEs ASCIZ pathname of program to execute Note: the order above is for a Windows95 DOS box; it may be reversed under Windows 3.xTop
INT 2F - Windows95 - WIN.COM - GET NESTING LEVEL AX = 4B21h Return: AH = 00h if WIN.COM already active AL = number of instances of WIN.COM in memory SeeAlso: AX=4B20hTop
INT 2F - KeyRus v7.3 - API
AX = 4B52h ('KR')
BL = function number
00h installation check
Return: AL = 82h if installed
BH = major version number
BL = minor version number
ES destroyed
01h get driver status
Return: AL??? = current status (see #02825)
02h set driver state
AL = new driver state (see #02825)
03h blank screen (if blanking enabled when TSR was loaded)
04h unblank screen
4Ch switch to English keyboard mode
90h switch to Russian keyboard mode
Return:
Bitfields for KeyRus driver status:
Bit(s) Description (Table 02825)
1-0 language mode
00 Latin
01 Russian
10 Alternative
11 unused
2 allow character loading (if disabled, use ROM fonts)
3 English keyboard support
7-4 used internally (read-only)
Top
INT 2F - MS Windows - WSWAP.EXE - RESET INTERNAL VARIABLES AX = 4B80h Return: nothing Note: called by WINOLDAP.MOD SeeAlso: AX=4B06hTop
INT 2F U - Advanced Power Management AH = 4Ch AL = function 00h version check 01h suspend system requested FFh suspend/resume battery notification ??? Return: ???Top
INT 2F U - KKCFUNC AH = 4Dh AL = function 00h get function address 01h get error number of last call to KKC DOS function 02h register/release KKC 03h get table address !!! details to follow Return: ??? Notes: This API is provided by KKCFUNC.SYS, a support driver for Kana Kanji Converters (KKC), which is used to handle multiple client KKCs and provide all the necessary framework to call DOS functions at any time. also called by MSKK For AL > 3, KKCFUNC passes the call down to the original INT 2Fh, as recorded at initialization.Top
INT 2F - SilverNET v2+ - INSTALLATION CHECK
AX = 4E53h ("NS")
BL = 00h (function "installation check")
BH = module ID (see #02826)
Return: AX = 0000h if specified module installed
BX = 4E53h if installed
Program: SilverNET is an SMB-compatible peer-to-peer NOS for DOS or
Windows systems, by Net-Source, Inc. of Santa Clara, CA.
SeeAlso: AX=4E53h/BL=01h,AX=4E53h/BL=02h,AX=B800h,AX=B809h
(Table 02826)
Values for SilverNET module ID:
01h SilverCACHE
02h Workstation
03h NetBIOS
04h Peer
20h NS Share
80h NetWare help TSR
Top
INT 2F - SilverNET - GET RUNTIME PARAMETER
AX = 4E53h ("NS")
BL = 01h (function "get runtime parameter")
BH = module ID (see #02826)
CX = parameter index (see #02827,#02829,#02830)
Return: AX = WORD value at specified index (see #02828)
Desc: retrieve a word of data from the specified SilverNET module
(Table 02827)
Values for SilverNET Peer parameter index (* = read-only):
00h * maximum outstanding SMB buffers
02h * maximum logged-in nodes
04h * number of shareable resources
06h * number of characters to print per time slice
08h * number of printers that can be shared
0Ah * number of nodes logged in
0Ch * number of files to allow opened
0Eh how fast to despool (/PSLICE)
10h audit flag
24h * far pointer to resource table (each resource is 96 bytes in length)
32h * far pointer to SFT (internal if SilverNET files > CONFIG.SYS files,
else DOS SFT)
36h spool flags (see #02828)
SeeAlso: #02829
Bitfields for spool flags:
Bit(s) Description (Table 02828)
0 LPT1 needs despooling
1 LPT2 needs despooling
2 LPT2 needs despooling
4 COM1 needs despooling
5 COM2 needs despooling
6 COM3 needs despooling
SeeAlso: #02827
(Table 02829)
Values for NS Share parameter index (* = read-only):
00h version number (high byte = minor, low byte = major)
10h * segment of first lock record (other records in consecutive paragraphs)
(if PSP field = 0000h, lock record is free)
12h * maximum possible number of lock records
14h * starting segment of sharing buffer
(NS Share's sharing records are identical to DOS SHARE except that
fields which are normally offsets into SHARE are segment numbers)
18h * size of sharing buffer in paragraphs
1Ah * total free paragraphs in sharing buffer
1Ch * current number of shared files
1Eh * current number of locked records
SeeAlso: #02827,#02830
(Table 02830)
Values for Workstation parameter index (* = read-only):
00h version number (high byte = minor, low byte = major)
02h * size of each network buffer for file operations
04h * number of redirector file buffers
06h * size of each print cache buffer
08h * number of network LPT printers
0Ch flush time in ticks (idle time on network printer before flushing)
0Eh (16 WORDs) last active time for each printer
2Eh * stub segment if program split into two parts
60h receive name number for datagram listens
62h * 18-byte machine name
74h * LASTDRIVE (01h = A:, etc.)
7Ch row number of message box on screen
7Eh message time in clock ticks
82h * number of network adapters in use
84h station ID broadcast flag (never set on redirectors)
96h * NetBIOS names left
98h * NCBs left
9Ah * sessions left
A2h * total number of network printers (LPT+COM)
A4h * number of serial network printers
A8h * segment containing file cache buffers
AAh * segment containing print cache buffers
ACh * bytes remaining free in HMA before program loaded
AEh * start of free memory in HMA
B2h * flag: using HMA
SeeAlso: #02829
Top
INT 2F - SilverNET - SET RUNTIME PARAMETERS
AX = 4E53h ("NS")
BL = 02h (function "set runtime parameters")
BH = module ID (see #02826)
CX = parameter index (see #02829,#02830)
DX = new value for specified parameter
Desc: set a WORD value in the specified SilverNET module
Note: not all indexed parameters are writable; modifying a read-only
parameter can result in system crashes
SeeAlso: AX=4E53h/BL=00h,AX=4E53h/BL=01h
Top
INT 2F U - ODIHLP.EXE - INSTALLATION CHECK AX = 5100h Return: AL = FFh if installed BX = 0000h DX:SI -> signature string "ODI$HLP$" Program: ODIHLP is a real-mode helper allowing the Windows for Workgroups 3.11 protected-mode NDIS3 protocol to work with real-mode ODI drivers and LSL.COM Note: the returned signature string might be the first field of a structure SeeAlso: AX=C000h"LSL.COM"Top
INT 2F - JAM.SYS v1.10+ - "GetVersion" - INSTALLATION CHECK AX = 5200h Return: AH = 80h (successful) if installed BX = internal JAM.SYS version number CX = size of JAMINFO structure (see #02831,#02832) DX = JAM.SYS segment address Program: JAM.SYS is a main component of the JAM Real-Time Data Compression Utilities by George A. Reznik and friends (JAM Software). SeeAlso: AX=5201h Format of JAMINFO v1.10 structure: Offset Size Description (Table 02831) 00h 25 BYTEs extended BIOS parameter block (BPB) 19h 11 BYTEs ??? 25h DWORD total number of sectors in JAM archive file (size of compressed data area) 29h BYTE flags (see #02833) 2Ah 127 BYTEs full JAM archive file name A9h WORD the number of fragments in archive file ABh 96 BYTEs archive file fragmentation list - array of 16 FRAGMENT structures (see #02834) 10Bh DWORD address of the host-drive DPB (Drive Parameter Block) 10Fh DWORD number of free sectors in JAM archive file 113h WORD device status word (see #02835) SeeAlso: #02832 Format of JAMINFO v1.20 structure: Offset Size Description (Table 02832) 00h 25 BYTEs extended BIOS parameter block (BPB) 19h BYTE physical driver number 1Ah BYTE reserved 1Bh BYTE extended boot record signature 1Ch DWORD volume serial number 20h 11 BYTEs volume label 2Bh 8 BYTEs file system ID 33h DWORD total number of sectors in JAM archive file (size of compressed data area) 37h BYTE flags (see #02833) 38h 128 BYTEs full JAM archive file name B8h WORD the number of fragments in archive file BAh 96 BYTEs archive file fragmentation list - array of 16 FRAGMENT structures (see #02834) 11Ah DWORD address of the host-drive DPB (Drive Parameter Block) 11Eh DWORD number of free sectors in JAM archive file 122h WORD device status word (see #02835) Note: the first 33h bytes are copied from the archive file's boot sector SeeAlso: #02831 Bitfields for JAMINFO flags: Bit(s) Description (Table 02833) 2-0 reserved 3 (v1.20+) 4 enable direct write requests (Int 26h, non-DOS requests, etc.) 5 read-only mode 6 no write-behind caching 7 full undelete-compatible allocation strategy SeeAlso: #02831,#02832 Format of JAM FRAGMENT structure: Offset Size Description (Table 02834) 00h WORD starting sector (low word) 02h BYTE starting sector (high byte) 03h WORD size of fragment (low word) 05h BYTE size of fragment (high byte) SeeAlso: #02831,#02832 (Table 02835) Values for JAM.SYS status (high byte): 00h successful 01h drive is not a JAM drive 02h drive is already attached 03h archive file cluster size value is larger than driver's one 04h drive is not attached 05h drive is locked 06h drive is not locked 07h bad physical-level request 08h host drive reading/writing error 09h bad entries in JAM descriptor table 0Ah compressed data integrity error 0Bh archive file overflow 0Ch bad DOS request 0Dh incorrect parameters in JAMINFO structure Note: the low byte of the status is the DOS error code for the Host drive SeeAlso: #02598 at INT 2F/AX=0802hTop
INT 2F - JAM.SYS v1.10+ - "GetInfo" - GET COMPRESSED DRIVE INFORMATION AX = 5201h DL = compressed drive number (0-default, 1-A:, etc.) DS:BX -> buffer for JAMINFO structure (see #02831,#02832) Return: AH = status (00h,01h) (see #02835) SeeAlso: AX=5200hTop
INT 2F - JAM.SYS v1.10+ - "Attach" - MOUNT COMPRESSED DRIVE AX = 5202h DL = drive number (0-default, 1-A:, etc.) to attach to the JAM archive file DS:BX -> pointer to JAMINFO structure (see #02831,#02832), which contains parameters of the JAM file to mount, and pointer to the host drive DPB (i.e. DPB of the drive on which the JAM file is located) Return: AH = status (00h,02h,03h,08h,09h,0Dh) (see also #02835) 03h archive file cluster size value is larger than driver's - not mounted 09h bad entries in JAM descriptor table - file mounted read-only AL = host drive error code (see #02598 at INT 2F/AX=0802h) SeeAlso: AX=5203hTop
INT 2F - JAM.SYS v1.10+ - "Detach" - UNMOUNT COMPRESSED DRIVE AX = 5203h DL = drive number (0-default, 1-A:, etc.) to detach Return: AH = status (00h,01h,04h,05h,08h,09h,0Bh,0Dh) (see #02835) AL = host drive error code (see #02598 at INT 2F/AX=0802h) SeeAlso: AX=5202hTop
INT 2F - JAM.SYS v1.10+ - "Lock" - LOCK COMPRESSED DRIVE AX = 5204h DL = drive number (0-default, 1-A:, etc.) to lock Return: AH = status (00h,01h,04h,05h,08h,09h,0Bh,0Dh) (see #02835) AL = host drive error code (see #02598 at INT 2F/AX=0802h) SeeAlso: AX=5205h, AX=5206h, AX=5207hTop
INT 2F - JAM.SYS v1.10+ - "UnLock" - UNLOCK COMPRESSED DRIVE AX = 5205h DL = drive number (0-default, 1-A:, etc.) to unlock Return: AH = status (00h,01h,04h,06h,08h,09h,0Dh) (see #02835) AL = host drive error code (see #02598 at INT 2F/AX=0802h) SeeAlso: AX=5204h, AX=5206h, AX=5207h Note: Lock and UnLock functions were added to the JAM API to prevent asynchronous physical-level access (see AX=5206h,AX=5207h) to compressed data on JAM drives. In other words, two or more programs which use JAM API (say, JMAX optimizer and JCHKDSK - disk checker) cannot be run on the same JAM drive simultaneously.Top
INT 2F - JAM.SYS v1.10+ - "Read" - PHYSICAL READ DATA FROM JAM ARCHIVE AX = 5206h DL = drive number (0-default, 1-A:, etc.) DS:BX -> disk transfer packet (see #02836) Return: AH = status (00h,01h,04h,06h,07h,08h,0Dh) (see #02835) AL = host drive error code (see #02598 at INT 2F/AX=0802h) Program: JAM.SYS is a main component of the JAM Real-Time Data Compression Utilities by George A. Reznik and friends (JAM Software). SeeAlso: AX=5207h Format of disk transfer packet: Offset Size Description (Table 02836) 00h DWORD sector number 04h WORD number of sectors to read(write) 06h DWORD transfer addressTop
INT 2F - JAM.SYS v1.10+ - "Write" - PHYSICAL WRITE DATA TO JAM ARCHIVE AX = 5207h DL = drive number (0-default, 1-A:, etc.) DS:BX -> disk transfer packet (see #02836) Return: AH = status (00h,01h,04h,06h,07h,08h,0Dh) (see #02835) AL = host drive error code (see #02598 at INT 2F/AX=0802h) SeeAlso: AX=5206hTop
INT 2F U - POWER.EXE - APM event broadcasting??? AH = 53h AL = event??? 05h CPU idle 0Bh PM event broadcast API Return: ??? Note: called by MS Windows 3.1 POWER.DRV; hooked by MS Mouse driver v8.20+ and PC-Cache v8.0 SeeAlso: AX=530Bh,AX=5400h,INT 33/AX=002FhTop
INT 2F U - ??? (MOUSEPWR.COM, others) - ??? AX = 530Bh BX = subfunction 0003h ??? 0004h ??? ??? Return: ??? Note: it appears that subfunction 0003h reads or restores the current mouse settings (the MS Mouse driver hooks AX=530Bh), and 0004h might be the converseTop
INT 2F U - POWER.EXE - INSTALLATION CHECK
AX = 5400h
Return: AX = POWER.EXE version (AH = major, AL = minor) if installed
BX = 504Dh ("PM")
CF clear
Note: called by MS Windows 3.1 POWER.DRV
SeeAlso: AH=53h,AX=5401h,AX=5402h,AX=5481h,AX=5482h
Top
INT 2F U - POWER.EXE - GET/SET POWER STATUS AX = 5401h BH = function 00h get status Return: BL = current power management status (see #02837) 01h set status BL = new power managment status (see #02837) Return: AX = function status (see #02838) Note: called by MS Windows 3.1 POWER.DRV SeeAlso: AH=53h,AX=5400h,AX=5402h,AX=5403h Bitfields for power management status: Bit(s) Description (Table 02837) 0 POWER.EXE power management enabled 1 APM firmware power management enabled 2-7 reserved (0) Notes: bit 1 is ignored if there is no APM firmware bits 1-0: 00 = POWER OFF, 10 = POWER STD, 11 = POWER ADV (Table 02838) Values for POWER.EXE function status: 0000h successful 0002h "ERROR_PM_ALREADY_CONNECTED" 0003h "ERROR_PM_NOT_CONNECTED" 0087h "ERROR_PM_INVALID_PARAMETER"Top
INT 2F U - POWER.EXE - GET/SET IDLE DETECTION STRATEGY AX = 5402h BH = subfunction 00h get other set BL = detection strategy (00h-0Fh or FFh) Return: BX = current/new detection strategy SeeAlso: AH=53h,AX=5400h,AX=5401h,AX=5481h,AX=5482hTop
INT 2F U - POWER.EXE - GET/SET ADVANCED POWER MANAGEMENT SETTING AX = 5403h BX = new power management setting or 0000h to get current setting Return: AX = status 0000h successful BX = power management setting (see #02839) other error code SeeAlso: AX=5401h,AX=5480h (Table 02839) Values for power management setting: 0001h-0005h "min" 0006h "reg" 0007h-0008h "max"Top
INT 2F - TesSeRact RAM-RESIDENT PROGRAM INTERFACE AX = 5453h BX = subfunction 00h installation check CX = 0000h DS:SI -> 8-char blank-padded name (see #02840) Return: AX = FFFFh installed CX = ID number of already-installed copy AX = anything else, not installed CX = ID number for TSR when installed 01h get user parameters CX = TSR ID number Return: AX = status 0000h successful ES:BX -> user parameter block (see #02841) nonzero failed 02h check if hotkey in use CL = scan code of hot key (see #00006) Return: AX = FFFFh hot key conflicts with another TSR otherwise safe to use the hotkey 03h replace default critical error handler CX = TSR ID number DS:SI -> new routine for INT 24h Return: AX = nonzero, unable to install new handler 04h get internal data area CX = TSR ID number Return: AX = status 0000h successful ES:BX -> TSR's internal data area (see #02842) nonzero, TSR not found 05h set multiple hot keys CX = TSR ID number DL = number of additional hot keys to allocate DS:SI -> table of hot keys BYTE hotkey scan code (see #00006) BYTE hotkey shift state BYTE flag value to pass to TSR (nonzero) Return: AX = nonzero, unable to install hot keys 06h - 0Fh reserved 10h enable TSR CX = TSR ID number Return: AX = nonzero, unable to enable 11h disable TSR CX = TSR ID number Return: AX = nonzero, unable to disable 12h unload TSR CX = TSR ID number Return: AX = nonzero, invalid TSR number Note: if any interrupts used by TSR have been grabbed by another TSR, the TesSeRact routines will wait until it is safe to remove the indicated TSR from memory 13h restart TSR CX = TSR ID number of TSR which was unloaded but is still in memory Return: AX = nonzero, unable to restart TSR 14h get status word CX = TSR ID number Return: AX = FFFFh invalid ID number = other, successful BX = bit flags 15h set status word CX = TSR ID number DX = new bit flags Return: AX = nonzero, unable to set status word 16h get INDOS state at popup CX = TSR ID number Return: AX = 0000h successful BX = value of INDOS flag 17h - 1Fh reserved 20h call user procedure CX = TSR ID number ES:DI -> user-defined data Return: AX = 0000h successful 21h stuff keystrokes into keyboard buffer CX = TSR ID number DL = speed 00h stuff keystrokes only when buffer is empty 01h stuff up to four keystrokes per clock tick 02h stuff up to 15 keystrokes per clock tick DH = scan code flag if zero, buffer contains alternating ASCII and scan codes if nonzero, buffer contains only ASCII codes SI = number of keystrokes ES:DI -> buffer to stuff Return: AX = 0000h success F0F0h user aborted with ^C or ^Break other unable to stuff keystrokes 22h (v1.10) trigger popup CX = TSR ID number Return: AX = 0000h success, TSR will either pop up or beep to indicate that it is unable to pop up nonzero invalid ID number 23h (v1.10) invoke TSR's background function CX = TSR ID number Return: AX = 0000h success FFFFh not safe to call background function nonzero invalid ID number 24h - 2Fh reserved Notes: Borland's THELP.COM popup help system for Turbo Pascal and Turbo C (versions 1.x and 2.x only) fully supports the TesSeRact API, as do the SWAP?? programs by Innovative Data Concepts. AVATAR.SYS supports functions 00h and 01h (only the first three fields of the user parameter block) using the name "AVATAR " SeeAlso: AX=CAFEh,INT 16/AX=55FFh,INT 2D"AMIS" Index: installation check;TesSeRact TSR interface|uninstall;TesSeRact (Table 02840) Values for TesSeRact names: "AVATAR " AVATAR.SYS "QeditTSR" TSR version of SemWare's Qedit editor "SCRNBLNK" Trusted Access screen blanker Format of TesSeRact User Parameter Block: Offset Size Description (Table 02841) 00h 8 BYTEs blank-padded TSR name 08h WORD TSR ID number 0Ah DWORD bitmap of supported functions 0Eh BYTE scan code of primary hotkey (see #00006) 00h = pop up when shift states match FFh = no popup (if shift state also FFh) 0Fh BYTE shift state of primary hotkey FFh = no popup (if scan code also FFh) 10h BYTE number of secondary hotkeys 11h DWORD pointer to extra hotkeys set by func 05h 15h WORD current TSR status flags 17h WORD PSP segment of TSR 19h DWORD DTA for TSR 1Dh WORD default DS for TSR 1Fh DWORD stack at popup 23h DWORD stack at background invocation Index: hotkeys;TesSeRact TSR interface Format of TSR internal data area: Offset Size Description (Table 02842) 00h BYTE revision level of TesSeRact library 01h BYTE type of popup in effect 02h BYTE INT 08 occurred since last invocation 03h BYTE INT 13 occurred since last invocation 04h BYTE active interrupts 05h BYTE active soft interrupts 06h BYTE DOS major version 07h BYTE how long to wait before popping up 08h DWORD pointer to INDOS flag 0CH DWORD pointer to DOS critical error flag 10h WORD PSP segment of interrupted program 12h WORD PSP segment of prog interrupted by INT 28 14h DWORD DTA of interrupted program 18h DWORD DTA of program interrupted by INT 28 1Ch WORD SS of interrupted program 1Eh WORD SP of interrupted program 20h WORD SS of program interrupted by INT 28 22h WORD SP of program interrupted by INT 28 24h DWORD INT 24 of interrupted program 28h 3 WORDs DOS 3.0+ extended error info 2Eh BYTE old BREAK setting 2Fh BYTE old VERIFY setting 30h BYTE were running MS WORD 4.0 before popup 31h BYTE MS WORD 4.0 special popup flag 32h BYTE enhanced keyboard call in use 33h BYTE delay for MS WORD 4.0 11 times (for INTs 08h,09h,13h,16h,1Ch,21h,28h,2Fh,1Bh,23h, and 24h): DWORD old interrupt vector BYTE interrupt number WORD offset in TesSeRact code segment of new interrupt handlerTop
INT 2F U - POWER.EXE - GET/SET ??? AX = 5480h BX = direction 0000h get other set CX = size of buffer (at least 0010h) DS:SI -> buffer Return: AX = status 0000h successful other error code SeeAlso: AX=5400h,AX=5481h,AX=548FhTop
INT 2F U - POWER.EXE - GET STATISTICS AX = 5481h BX = which statistics 0000h idle detection 0001h APM statistics CX = length of buffer in bytes DS:SI -> buffer for statistics (see #02843,#02844) Return: AX = status 0000h successful 0071h "ERROR_PM_BUFFER_TOO_SMALL" 0087h "ERROR_PM_INVALID_PARAMETER" SeeAlso: AH=53h,AX=5400h,AX=5480h,AX=5402h,AX=5482h Format of POWER.EXE idle detection statistics: Offset Size Description (Table 02843) 00h DWORD "CPU_ON_TIME" total time CPU is active with POWER.EXE idle detection enabled, in timer ticks 04h DWORD "CPU_IDLE_TIME" timer ticks during which CPU was idle (divide by previous to get idle rate) 08h DWORD total idle calls 0Ch DWORD "TOTAL_APP_IDLE" total INT 2Fh idle calls 10h DWORD "TOTAL_DOS_YIELD" total INT 28h idle calls 14h DWORD "TOTAL_KEY_IDLE" total INT 16h idle calls 18h DWORD "TOTAL_DOS_IDLE" total INT 2Ah idle calls Format of APM statistics: Offset Size Description (Table 02844) 00h DWORD "RESUME_COUNT" total number of resumes since last APM_ENABLETop
INT 2F U - POWER.EXE - GET/SET APM POLLING FREQUENCY AX = 5482h BX = new polling frequency or 0000h to get current frequency Return: AX = 0000h (successful) BX = current frequency if BX=0000h on entry SeeAlso: AH=53h,AX=5400h,AX=5401h,AX=5480h,AX=5481h,AX=548FhTop
INT 2F U - POWER.EXE - GET/SET ??? AX = 548Fh BX = ??? or 0000h to get current ??? Return: AX = 0000h (successful) BX = current ??? CX = ??? SeeAlso: AX=5400h,AX=5480h,AX=5482hTop
INT 2F U - DOS 5+ - COMMAND.COM INTERFACE AX = 5500h Return: AX = 0000h if an instance of COMMAND.COM is already running DS:SI -> entry point table Notes: used to access the shareable portion of COMMAND.COM, which may have been moved into the HMA; only the primary COMMAND.COM retains this portion procedures called from a dispatcher in COMMAND's resident portion; most assume that the segment address of the resident portion is on the stack and are thus not of general use DR PalmDOS up to DR-DOS 7.03 COMMAND.COM do not support this call. When loading the default command processor (no SHELL= directive in CONFIG.SYS), MS-DOS 6.0-6.22 IO.SYS & PC DOS 6.1-2000 IBMBIO.COM check a signature (see #04099) in the COMMAND.COM file image to test if it is actually their own shell and has the correct version, before they will launch it. If the signature is not found, the message "Invalid COMMAND.COM" will be displayed. This test seems to have vanished with MS-DOS 7+, as it uses an .EXE style file format. In addition to this, the MS-DOS/PC DOS COMMAND.COM checks the version of the underlaying OS to see if it is their own. Hence, the PC DOS 6.1 (and by SETVER version faking also the PC DOS 7 and 2000) COMMAND.COM also run on Novell DOS 7 - DR DOS 7.03, which all identify themselves as DOS API level 6.0 and IBM OEM (not yet tested as primary shell). PC DOS 5.0 COMMAND.COM should run on DR PalmDOS (untested). The MS-DOS 7+ COMMAND.COM seems to no longer perform this kind of version check any more, which can cause a serious deadlock situation on a multi-boot system with DR-DOS installed, when the MS-DOS 7+ COMMAND.COM is placed in C:\. When IBMBIO.COM attempts to load the MS-DOS 7+ COMMAND.COM as a primary shell under DR-OpenDOS 7.02 to DR-DOS 7.03 no error message will be displayed by COMMAND.COM, but the machine will just hang. To defuse this situation, DR-DOS 7.02+ IBMBIO.COM was changed to still scan for a SHELL= directive in [D]CONFIG.SYS even in F5-mode. For maximum safety, the MS-DOS 7 COMMAND.COM should be moved from C:\ to C:\WINDOWS\COMMAND\ and a DCONFIG.SYS file should be created containing for example SHELL=C:\DRDOS\COMMAND.COM instead. If a MS-DOS CONFIG.SYS file exists, it should contain a SHELL=C:\WINDOWS\COMMAND\COMMAND.COM directive. (If no shell can be found at all, DR-DOS IBMBIO.COM would display a prompt to enter the proper path to COMMAND.COM). The DR-OpenDOS 7.02+ COMMAND.COM is designed to also run on 3rd party operating systems like MS-DOS/PC DOS 3.31+, Windows 9x, and in DOS boxes of OS/2, Windows NT and 2000, and will for example also take advantage of long filenames. SeeAlso: AX=5501h Format of Microsoft COMMAND.COM file image signature: Offset Size Description (Table 04100) 00h 3 BYTEs E9h xxh xxh (JMP instruction) 03h BYTE version bits 7-4: major version bits 3-0: minor version code ( 60h for MS-DOS 6.0 and PC-DOS 6.1; 64h for MS-DOS 6.20, Japanese MS-DOS 6.2, Hangeul MS-DOS 6.2; 66h for MS-DOS 6.22, PRC (Chinese) MS-DOS 6.22; 70h for PC DOS 7, PC DOS 7 Y2K edition ) Notes: Since DR DOS 6.0+, MS-DOS 7.0+, PTS-DOS, S/DOS, 4DOS/NDOS use an .EXE style shell file format, this signature is not met by any release of these shells. DR DOS 3.31-5.0 used a different jump (E8h) at offset 00h. Older releases of MS-DOS/PC DOS all had a jump (E9h) at offset 00h, but other values at offset 03h. For reference here is a list of the values for some of these older shells: 00h for PC DOS 1.10, Olivetti DOS 2.11, MS-DOS 5.0, Russian MS-DOS 5.0 1Eh for MS-DOS 4.01 BAh for PC DOS 3.10, 3.20, MS-DOS 3.30Top
INT 2F U - DOS 5+ - ROM COMMAND.COM INTERFACE AX = 5501h Return: ??? Note: used to determine whether the caller is the first instance of ROM COMMAND.COM SeeAlso: AX=5500hTop
INT 2F - INTERLNK - INSTALLATION CHECK AX = 5600h DX = magic value FFFFh BL = instance number (00h = any, 01h = first loaded, etc.) (BH = 00h and CX = 0000h, see note) Return: AL = FFh if installed BL = instance number CX = version number (CL = major, CH = minor) DX = resident CS of driver, DX:0000h -> header (see #02845) Notes: INTERLNK was derived from Sewell Development Corporation's FASTLYNX. Some Microsoft software explicitly clears the BH and CX registers before calling this function. BUG: reportedly, the MS-DOS INTERSRV program (though not INTERLNK) causes serious FAT corruption and data loss when run under Novell DOS 7. INTERSRV apparently checks for DR-DOS by testing the "OS" environment variable for the value "DRDOS", which is no longer correct for PalmDOS, Novell DOS, or OpenDOS. A workaround may be to explicitly set the OS variable to "DRDOS". SeeAlso: AX=5601h,AX=5602h,INT 60/AX=0000h Format of Interlnk device driver header: Offset Size Description (Table 02845) 00h DWORD pointer to next driver, offset=FFFFh if last driver 04h WORD device attributes (see #01647,#01648) 06h WORD device strategy entry point 08h WORD device interrupt entry point 0Ah 8 BYTEs character device name "NUL2 " 12h 165 BYTEs ??? B7h 67 BYTEs fully qualified Interlnk filename FAh 6 BYTEs ??? 100h DWORD pointer back to Interlnk filename at offset B7h 104h 8 BYTEs ??? 10Ch BYTE total number of redirected drives 10Dh BYTE first local drive number (0=A:) 10Eh BYTE printer redirection (0=no, 1=yes) 10Fh BYTE ??? 110h 3 BYTEs LPT1...3 status (0FFh=invalid) 113h 26 BYTEs remote drive number (0=A:, 0FEh=unused) (refer to note below) 12Dh 26 BYTEs always 0FEh ??? 147h 26 BYTEs always 0FFh ??? Note: to obtain the remote drive number, subtract the value at offset 10Ch from the local drive number before indexing into the table at 113h (example: if local drives F, G, H are remote drives C, F, E then the first three bytes at offset 113h are 02h, 05h, 04h) for each instance of Interlnk, an extra device driver is loaded, but all have the same device name NUL2 SeeAlso: #01646 at INT 21/AH=52hTop
INT 2F - INTERLNK - CHECK IF REDIRECTED DRIVE AX = 5601h DX = magic value FFFFh BH = drive number (0=A:) BL = instance number (00h=any, 01h=first loaded, etc.) (CX = 0000h, see note) Return: (as for AL=00h if redirected drive) Note: some Microsoft software explicitly clears the CX register before calling this function. SeeAlso: AX=5600h,AX=5601hTop
INT 2F - INTERLNK - CHECK IF PORT IN USE AX = 5602h DX = magic value FFFFh BL = instance number (00h=any, 01h=first loaded, etc.) CX = base port address of COM / LPT port to check Return: (as for AL=00h if port in use for a redirected drive) SeeAlso: AX=5600hTop
INT 2F U - IOMEGA DRIVERS - INSTALLATION CHECK
AX = 5700h
BX = program ID??? (0201h used by GUEST.EXE)
DX = 496Fh ('Io')
Return: AL = status
00h not installed
FFh installed
SeeAlso: AX=5701h,AX=5710h,AX=5711h,AX=5712h
Top
INT 2F U - IOMEGA DRIVERS - SECONDARY INSTALLATION CHECK
AX = 5701h
BX = program ID??? (0201h used by GUEST.EXE)
DX = 496Fh ('Io')
Return: AX = 0001h if GUEST.EXE installed
SeeAlso: AX=5700h,AX=5710h,AX=5711h,AX=5712h
Top
INT 2F U - IOMEGA DRIVERS - GET DRIVER INFORMATION???
AX = 5710h
BX = program ID??? (0201h used by GUEST.EXE)
DX = 496Fh ('Io')
Return: AX = ??? (BX ORed with ???)
BX = ??? (internal variable)
CX = ??? (internal variable)
DX = ??? (CX ORed with ???)
SeeAlso: AX=5700h,AX=5701h,AX=5711h,AX=5712h
Top
INT 2F U - IOMEGA DRIVERS - LOCK MEDIA IN DRIVE
AX = 5711h
BX = program ID??? (0201h used by GUEST.EXE)
DX = 496Fh ('Io')
Return: CF clear if successful (storage medium in drive)
AX = new lock count
CF set on error (drive empty)
SeeAlso: AX=5700h,AX=5701h,AX=5710h,AX=5712h
Top
INT 2F U - IOMEGA DRIVERS - UNLOCK MEDIA IN DRIVE / EJECT
AX = 5712h
BX = program ID??? (0201h used by GUEST.EXE)
DX = 496Fh ('Io')
Return: AX = new lock count (00h = unlocked)
Note: if the lock count was already zero, the storage medium is ejected
from the drive
SeeAlso: AX=5700h,AX=5701h,AX=5710h,AX=5711h
Top
INT 2F U - Helix Multimedia Cloaking - CACHECLK - INSTALLATION CHECK
AX = 5758h
BX = 4858h ('HX')
DX = 4443h ('DC')
CX <> 5758h
Return: BX = 6878h if installed
DX = 6463h if installed
CX = version (CH=major,CL=minor)
Program: CACHECLK is a 'Cloaked' disk cache by Helix Software
Note: returns with registers unchanged if CX=5758h on entry
SeeAlso: INT 16/AX=5758h/BX=4858h,INT 2F/AX=4310h"Cloaking"
Top
INT 2F U - PCMCIA - AWARD PCDISK - GET INFO FROM DRIVER ??? AX = 5D00h Return: ES:BX -> ??? Note: supported by Ventura Micro / Award PCDISK.EXE v1.02c PCMCIA/ATA driver SeeAlso: AX=5D01h,INT 21/AX=440Dh"DOS 3.2+"Top
INT 2F U - PCMCIA - AWARD PCDISK - PUT INFO INTO DRIVER ??? AX = 5D01h ES:BX -> ??? Return: nothing Note: supported by Ventura Micro / Award PCDISK.EXE v1.02c PCMCIA/ATA driver SeeAlso: AX=5D00h,INT 21/AX=440Dh"DOS 3.2+"Top
INT 2F U - IPLAY v1.00b - INSTALLATION CHECK
AX = 60FFh
DL = 00h (function number)
BX = 5344h ('SD')
CX = 4D50h ('MP')
Return: AX = 4F4Bh ('OK') if installed
Program: IPLAY is the Inertia Player by Prime and Excalibur for .MODules
(digitized music files)
Note: in version 1.00b, any value for DL except 01h invokes this function
SeeAlso: AX=60FFh/DL=01h
Top
INT 2F U - IPLAY v1.00b - GET DATA SEGMENT
AX = 60FFh
DL = 01h (function number)
BX = 5344h ('SD')
CX = 4D50h ('MP')
Return: AX = data segment
Program: IPLAY is the Inertia Player by Prime and Excalibur for .MODules
(digitized music files)
SeeAlso: AX=60FFh/DL=00h
Top
INT 2F U - PC Tools v7.0+ VDEFEND, VSAFE, VWATCH, DATAMON - SET ??? ADDRESS AX = 6282h CX:DX -> ??? or 0000h:0000h DI = segment of ??? record (see #02846) or 0000h/FFFFh to ignore Return: BX = 0062h Note: if CX:DX = 0000h:0000h on entry, the ??? address is not changed (DATAMON only) SeeAlso: INT 13/AH=FAh"VSAFE",INT 21/AH=FAh"VDEFEND" Format of VSAFE/VWATCH record: Offset Size Description (Table 02846) 00h DWORD ??? 04h WORD offset of ??? in record's segment VSAFE 2.0 sets byte at +01h to 56h or 58h VWATCH 2.1 sets byte at +02h to 56h or 58h 06h 2 BYTEs ??? 08h BYTE ??? (01h/other)Top
INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK AX = 6284h BX = 0000h CX = 0000h Return: AX = segment of resident code BX = 5555h CX = 5555h Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools SeeAlso: AX=6284h/BX=0001h,INT 16/AX=FFA3h/BX=0000hTop
INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ??? AX = 6284h BX = 0001h CX = 0001h Return: AX:BX -> ??? data (see #02847) CX = BX SeeAlso: AX=6284h/BX=0000h Format of DPROTECT data for v9.0: Offset Size Description (Table 02847) 00h 5 BYTEs ??? 05h WORD resident code segment (may be segment of DWORD at +03h) 07h DWORD -> FAR function to sound alert tone ???Top
INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET OPTIONS AX = 6284h BX = 0002h CX = 0002h Return: AX = options (see #02848) BX = ??? (0000h for v9) CX = AX DX = BX Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools SeeAlso: AX=6284h/BX=0000h,AX=6284h/BX=0003h Bitfields for DATAMON/DPROTECT options: Bit(s) Description (Table 02848) 1 ??? 12 disabled 13 using Delete Sentry 14 using Delete TrackerTop
INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - SET OPTION??? FLAGS AX = 6284h BX = 0003h CX = flags (see #02849) DX = flags bit 15: ??? Note: v9 DPROTECT only checks bit 12 of CX, and ignores DX entirely SeeAlso: AX=6284h/BX=0002h Bitfields for DATAMON/DPROTECT CX flags: Bit(s) Description (Table 02849) 3 ??? 5 ??? 10 ??? 12 disable DATAMON/DPROTECTTop
INT 2F U - PC Tools v8 DATAMON, v9+ DPROTECT - ??? AX = 6284h BX = 0004h CX = 0004h Return: AX = 5555h BX = ??? (0800h) CX = ??? (FCCCh for v8, FCCBh for v9)Top
INT 2F - SCRNSAV2.COM - INSTALLATION CHECK AX = 6400h Return: AL = installation state 00h not installed FFh installed Program: SCRNSAV2.COM is a screen saver for PS/2s with VGA by Alan Ballard SeeAlso: INT 10/AX=5555h,INT 14/AX=AA01h Index: screen saver;SCRNSAV2Top
INT 2F - License Service API - INSTALLATION CHECK AX = 7000h CX = license server index (0000h to 001Fh) Return: AL = status 00h not installed FFh installed Notes: The License Service API is being maintained by Microsoft but is being supported by a large number of companies including Apple, Banyan, DEC, HP, Lotus, Microsoft, Novell, Software Publishers Association, and Wordperfect (not a complete list!) Each license service provider must search for the next free index slot to use SeeAlso: AX=7001h,AX=7003h,AX=7004h,AX=7005hTop
INT 2F - License Service API - REQUEST LICENSE AX = 7001h CX = license server index (0000h to 001Fh) DS:DX -> SLSREQUEST structure (see #02850) Return: AX = status 0000h success else provider error code ES:BX = provider specific handle for the license context SeeAlso: AX=7002h,AX=7004h,AX=7005h Format of License Service SLSREQUEST structure: Offset Size Description (Table 02850) 00h DWORD (ret) status code 04h DWORD (ret) handle identifying context 08h DWORD (call) address of Publisher string 0Ch DWORD (call) address of Product string 10h DWORD (call) address of Version string 14h DWORD units required 18h DWORD address of comment string 1Ch DWORD address of SLSCHALLENGE structure (see #02851) Format of License Service SLSCHALLENGE structure: Offset Size Description (Table 02851) 00h DWORD algorithm (currently always 1) 04h DWORD secret to be challenged (1-255) 08h DWORD size of challenge in bytes (1-255) 0Ch N BYTEs challenge dataTop
INT 2F - License Service API - RELEASE LICENSE AX = 7002h CX = license server index (0000h to 001Fh) DS:DX -> SLSRELEASE structure (see #02852) ES:BX = provider specific handle for the license context Return: AL = status 00h not installed FFh installed SeeAlso: AX=7001h,AX=7005h Format of License Service SLSRELEASE structure: Offset Size Description (Table 02852) 00h DWORD handle indentifying license context 04h DWORD total units consumed 08h DWORD address of comment stringTop
INT 2F - License Service API - UPDATE AX = 7003h CX = license server index (0000h to 001Fh) DS:DX -> SLSUPDATE structure (see #02853) ES:BX = provider specific handle for the license context Return: AL = status 00h not installed FFh installed SeeAlso: AX=7004h,AX=7005h Format of License Service SLSUPDATE structure: Offset Size Description (Table 02853) 00h DWORD (ret) status code 04h DWORD (call) handle identifying license context 08h DWORD (call) total units consumed 0Ch DWORD additional units required 10h DWORD address of comment string 14h DWORD address of SLSCHALLENGE structure (see #02851)Top
INT 2F - License Service API - GET ERROR AX = 7004h CX = license server index (0000h to 001Fh) DS:DX -> SLSGETERROR structure (see #02854) ES:BX = provider specific handle for the license context Return: AL = status 00h not installed FFh installed SeeAlso: AX=7000h,AX=7001h Format of License Service SLSGETERROR structure: Offset Size Description (Table 02854) 00h DWORD (ret) status code 04h DWORD handle identifying license context 08h DWORD error code 0Ch DWORD buffer size in bytes 10h N BYTEs data bufferTop
INT 2F - License Service API - QUERY LICENSE AX = 7005h CX = license server index (0000h to 001Fh) DS:DX -> SLSQUERY structure (see #02855) ES:BX = provider specific handle for the license context Return: AL = status 00h not installed FFh installed SeeAlso: AX=7001h,AX=7002h Format of License Service SLSQUERY structure: Offset Size Description (Table 02855) 00h DWORD (ret) status code 04h DWORD handle identifying license context 08h DWORD information index 0Ch DWORD buffer size in bytes 10h N BYTEs data bufferTop
INT 2F U - HP 200LX - KEY200 - INSTALLATION CHECK AX = 7041h BX = 4B70h Return: BX = 7965h if keyboard remapper KEY200.COM installedTop
INT 2F - SRDISK v1.30+ - INSTALLATION CHECK
AX = 7200h
Return: AL = FFh if installed
ES = segment of device driver header (see #02856)
Program: SRDISK is a freeware resizeable RAMdisk by Marko Kohtala
SeeAlso: AX=7201h
Format of SRDISK device driver header:
Offset Size Description (Table 02856)
00h 10 BYTEs same as standard device driver header
(see #01646 at INT 21/AH=52h)
0Ah BYTE number of subunits (drives) supported by driver
0Bh 3 BYTEs signature "SRD"
0Eh 4 BYTEs memory type string ("XMS "/"EMS ")
12h 4 BYTEs ASCII driver version string "N.NN"
16h BYTE 00h
17h BYTE configuration format version (currently 00h or 01h)
18h WORD offset of drive configuration data
SeeAlso: #01646
Top
INT 2F - SRDISK v2.02 - GET CODE/DATA SEGMENT AX = 7201h Return: AL = FFh if installed ES = segment of device driver header (see #02856) Program: SRDISK is a freeware resizeable RAMdisk by Marko Kohtala SeeAlso: AX=7200hTop
Top
INT 2F - Novell NetWare - LOW-LEVEL API (IPX) INSTALLATION CHECK AX = 7A00h Return: AL = status 00h not installed FFh installed ES:DI -> FAR entry point for routines accessed exclusively through INT 7A in NetWare versions through 2.0a. Call with same values as INT 7A ES:BX -> two bytes containing IPX major/minor version (IPXODI v2.12; BX unchanged by older IPX drivers) CX = ES ??? SeeAlso: AX=7AFFh/BX=0000h,AX=D800h,INT 64"Novell",INT 7A"LOW-LEVEL API"Top
INT 2F U - Novell NetWare - TBMI v1.1+ - GET TBMI STATUS AX = 7A10h Return: DH = major TBMI version number DL = minor TBMI version number (01h for v1.1) CX = segment address of TBMI resident part BX = status word of TBMI (see #02857) Note: TBMI is the Task-Switched Buffer Manager Interface SeeAlso: AX=7A11h,AX=7A12h,AX=7A13h,AX=7A14h Bitfields for NetWare TBMI status word: Bit(s) Description (Table 02857) 0 INT2F intercepted by TBMI 1 INT7A intercepted by TBMI 2 INT64 intercepted by TBMI 3-14 reserved or unused ??? 15 outstanding task ID was detectedTop
INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT2F HANDLERS AX = 7A11h Return: ES:BX -> old INT 2F handler DS:DX -> TBMI INT 2F handler SeeAlso: AX=7A10h,AX=7A12h,AX=7A13h,AX=7A1AhTop
INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT64 HANDLERS AX = 7A12h Return: ES:BX -> old INT 64 handler DS:DX -> TBMI INT 64 handler SeeAlso: AX=7A10h,AX=7A11h,AX=7A13hTop
INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT7A HANDLERS AX = 7A13h Return: ES:BX -> old INT 7A handler DS:DX -> TBMI INT 7A handler SeeAlso: AX=7A10h,AX=7A11h,AX=7A12hTop
INT 2F U - Novell NetWare - TBMI v1.1+ - GET STATISTICS AX = 7A14h CX = statistic to retrieve 0000h available diagnostic functions??? Return: CX = maximum available function??? (000Ch for v2.0) 0001h buffers in use Return: CX = TBMI buffers currently in use 0002h maximum buffers used Return: CX = maximum number of buffers ever in use 0003h unavailable buffers Return: CX = count of unavailable TBMI buffers 0004h old interrupt usage Return: CX = TBMI accesses to intercepted old vectors INT 2F, INT 64, and INT 7A 0005h far call usage Return: CX = TBMI accesses to IPX/SPX far call handler (not including internal accesses) 0006h task buffering Return: CX = TBMI task buffering status (enabled/disabled or disable/enable switch count???) 0007h current task ID Return: CX = TBMI current task ID number (0000h if ???) 0008h outstanding ID count Return: CX = number of outstanding TBMI IDs 0009h configured ECBs Return: CX = number of TBMI Event Control Blocks configured 000Ah configured data ECBs Return: CX = number of TBMI data ECBs configured 000Bh configured sockets Return: CX = number of TBMI sockets configured (from NETCFG) 000Ch current sockets Return: CX = number of TBMI sockets currently in use Return: BX = maximum supported subfunction (000Ch) SeeAlso: AX=7A10hTop
INT 2F OU - Novell NetWare - TBMI v1.1 only - RESET ??? AX = 7A15h Return: BX = new value of ??? Desc: set ??? to its default value Note: this call is a NOP under TBMI v2.0 (TBMI2) SeeAlso: AX=7A17hTop
INT 2F OU - Novell NetWare - TBMI v1.1 only - ??? AX = 7A16h CX = ??? ??? Return: ??? Note: this call is a NOP under TBMI v2.0 (TBMI2)Top
INT 2F OU - Novell NetWare - TBMI v1.1 only - ??? AX = 7A17h ??? Return: BX = old value of ??? CX = new value of ??? Note: this call is a NOP under TBMI v2.0 (TBMI2) SeeAlso: AX=7A15hTop
INT 2F U - Novell NetWare - TASKID v1.0 - INSTALLATION CHECK AX = 7A18h Return: AL = FFh if installed BX = configuration flags (see #02858) CX = resident code segment SeeAlso: AX=7A10h Bitfields for NetWare TASKID configuration flags: Bit(s) Description (Table 02858) 0 INT 2F hooked 3 INT 08 hooked other unusedTop
INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 08 HANDLERS AX = 7A19h Return: AL = FFh DS:DX -> TASKID INT 08 handler ES:BX -> original INT 08 handlerTop
INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 2F HANDLERS AX = 7A1Ah Return: AL = FFh DX:DX -> TASKID INT 2F handler ES:BX -> original INT 2F handler SeeAlso: AX=7A11h,AX=7A19hTop
INT 2F U - Novell NetWare - TASKID v1.0 - GET DIAGNOSTICS INFORMATION AX = 7A1Bh CX = desired information 0000h supported functions 0001h TASKID ID number Return: CX = ID number 0002h set-ID count Return: CX = ID set count Return: AL = FFh BX = highest supported subfunction number (0002h) SeeAlso: AX=7A14h,AX=7A18hTop
INT 2F U - Novell NetWare - TBMI v1.1+ - ??? AX = 7A1Ch BP = ??? CX:DX = ??? Return: AX = 70FFhTop
INT 2F U - Novell NetWare - TBMI v1.1+ - ??? AX = 7A1Dh ??? Return: ES = ??? ??? SI destroyedTop
INT 2F U - Novell NetWare - TBMI v1.1+ - ??? AX = 7A1Eh ES:SI -> ??? ??? Return: ???Top
INT 2F - Novell NetWare - Adv NetWare 4.0 DOS Requester - GET VLM CALL ADDRESS
AX = 7A20h
BX = 0000h
Return: AX = 0000h on success (installed)
ES:BX -> far call address for DOS Requester (see #02859)
Notes: the DOS Requester replaces the NetWare Shell (ANETx, NETx) on
NetWare LAN's as of the release of Advanced NetWare 4.0 (1993). It
is backward compatible with NetWare 2.1x through 3.11 servers as
well. Note that there was a NetWare 4.0 in the early 1980's, which
can cause confusion.
this call is used as the installation check by VLM.EXE, which is the
loader for all the modules of the DOS Requester
.VLMs are standard old .EXE format executables whose normal entry point
merely terminates to prevent loading from the command line (Novell's
VLMs all return errorlevel 6). The real entry point is found by
looking at the VLM header at the beginning of the load image
(see #02862)
Index: installation check;NetWare 4.0 DOS Requester
SeeAlso: AX=7A20h/BX=0001h,AX=7A20h/BX=0002h
(Table 02859)
Call DOS Requester entry point with:
STACK: WORD destination function
WORD destination VLM ID (see #02861)
WORD source VLM ID (0000h = application program)
other registers (except BP) as appropriate for function
Return: AX = status code (0000h,8811h,8846h,8848h,8853h) (see #02860)
ZF set if successful, clear on error
other registers as appropriate for function
STACK popped
BP destroyed
(Table 02860)
Values for VLM status code:
0000h successful
88xxh error generated by requester
8801h invalid or non-attached connection handle
8802h drive in use (OS/2 only)
8803h cannot add CDS
8804h bad path
8805h error sending or receiving NCP packets
8806h unknown network error
8807h invalid server connection slot
8808h no connection slots available
880Ah no route to server
880Bh "BAD_LOCAL_TARGET" (OS/2 only)
880Ch too many request fragments
880Dh "CONNECT_LIST_OVERFLOW" (OS/2 only)
880Eh buffer overflow on receive
880Fh no connection to server
8810h no router found (OS/2 only)
8811h nonexistent function called
8830h internal server request attempted between two separate connections
8831h no primary connection set
8833h invalid buffer length
8834h invalid user name
8835h no local print spooler installed
8836h attempted function with invalid parameter
8837h failed to open configuration file (OS/2 only)
8838h no configuration file (OS/2 only)
8839h configuration file read failed (OS/2 only)
883Ah line too long in configuration file (OS/2 only)
883Bh configuration lines ignored (OS/2 only)
883Ch foreign resource
883Dh daemon already installed (OS/2 only)
883Eh print spooler already installed
883Fh local connection table already full
8840h configuration section not found (OS/2 only)
8841h invalid transport type
8842h TDS tag in use (OS/2 only)
8843h TDS out of memory (OS/2 only)
8844h called TDS function with invalid tag
8845h TDS write was truncated
8846h called partially asynchronous function while it was busy
8847h unable to find any responding servers
8848h non-loaded or nonexistent VLM called
8849h network drive already mapped
884Ah attempted map to local drive which was already in use
884Bh no more drives available for mapping
884Ch device is not redirected
884Dh no more SFT entries (too many handles)
884Eh unable to unload
884Fh connection entry was already in use
8850h too many reply fragments
8851h name table already full
8852h socket not open
8853h memory management error
8854h SFT III switch occurred in mid-transfer
8855h preferred server was not found (alternate returned)
8856h device not recognized
8857h bad network byte
88A0h memory allocation error
88A1h connection timeout failure
88A2h transport: bad request
88A3h specified transport not installed
88A4h unable to open connection with specified parameters
88A6h unsupported function
88A7h no such task
88A8h too many tasks
88A9h version mismatch
88AAh request cancelled
88ABh invalid NDS name
88ACh unable to perform operation while logged into NDS
88ADh requester not available for use
88AEh MacIPX not configured properly
88AFh no servers found
88B0h no volume or session associated with identifier
88B1h not a NetWare volume
88B2h MacIPX version incompatible with Requester
88B4h MacIPX not open
88B5h insufficient stack
88B6h client API already initialized
88B7h checksums required by client are not available
88B8h packet signing required by client are not available
88B9h server requires checksum
88BAh server requires packet signing
88BBh already logged in
88BCh negotiated checksums but connection timed out
89xxh error generated by server
low byte = return code from server (see also #01927,#01961)
8900h server successful
8901h out of disk space
897Eh NCP boundary check failed
897Fh ???
8980h lock failed; file in use
8981h out of handles
8982h no open privileges
8983h hard (non-correctable) I/O error
8984h no creation privileges
8985h no create/delete privileges
8986h attempted to create a file which already exists read-only
8987h filename error during creation (wildcards in name)
8988h invalid file handle
8989h no search privileges
898Ah no deletion privileges
898Bh no rename privileges
898Ch no modify privileges
898Dh some affected files are in use
898Eh all affected files are in use
898Fh some affected files are read-only
8990h all affected files are read-only; volume read-only
8991h some files could not be renamed because target names already exist
8992h all affected names exist
8993h no read privileges
8994h no write privileges
8995h file detached
8996h server out of memory
8997h no disk space for spool file
8998h disk map error; volume does not exist
8999h directory full
899Ah attempt to rename across volumes
899Bh bad directory handle
899Ch invalid path; no more trustees
899Dh no directory handles
899Eh bad filename
899Fh directory active
89A0h directory not empty
89A1h directory I/O error
89A2h I/O lock error
89A3h-89A5h ???
89A6h auditing is active
89A7h auditing version error
89A8h no auditing rights
89A3h-89BEh ???
89BFh invalid name space
89C0h no account privileges
89C1h no account balance
89C2h credit limit exceeded
89C4h account disabled
89C5h login lockout (intruder detection activated)
89C6h no console rights
89C7h-89CFh
89D0h queue error
89D1h no queue
89D2h no queue server
89D3h no queue rights
89D4h queue full
89D5h no queue job
89D6h no job rights; unencrypted password
89D7h queue servicing error; duplicate password; bad account
89D8h queue not active; password too short
89D9h station not queue server; maximum logins exceeded
89DAh queue halted; bad login time
89DBh maximum queue servers; unauthorized login station
89DCh account disabled or expired
89DEh password expired (all grace logins used up)
89DFh password expired but login allowed (grace login)
89E0h-89E6h ???
89E7h no disk track
89E8h property is not an item property; write to group
89E9h member exists
89EAh no such member
89EBh property is not a set property
89ECh no such set
89EDh property exists
89EEh object exists
89EFh illegal name
89F0h illegal wildcard
89F1h invalid bindery security level
89F2h not allowed to read object
89F3h not allowed to write/rename object
89F4h not allowed to delete object
89F5h not allowed to create object
89F6h not allowed to delete property
89F7h not allowed to create property; attempt to use non-local drive
89F8h not allowed to write property; already attached to server
89F9h not allowed to read property; no free connection slots
89FAh temporary remap error; no more server slots
89FBh no such property; invalid parameters
89FCh no such object; internet packet request canceled; unknown file server
89FDh bad station number; lock collision
89FEh directory locked; bindery locked; timeout
89FFh general error; hard error; lock error
Note: some server-generated error codes have multiple interpretations; use
the one appropriate to the failing call
(Table 02861)
Values for VLM identifier:
0001h VLM.EXE Virtual Loadable Modules manager (see also #02864)
0010h CONN.VLM connection table manager (see also #02867)
0020h TRAN.VLM transport protocol multiplexor (see also #02871)
0021h IPXNCP.VLM transport protocol implementation using IPX (see #02873)
0022h TCPNCP.VLM TCP/IP transport
0030h NWP.VLM NetWare protocol multiplexor (see also #02875)
0031h BIND.VLM bindery
0032h NDS.VLM NetWare Directory Services (see also #02877)
0033h PNW.VLM Personal NetWare
0034h RSA.VLM RSA encryption for directory services re-authentication
0040h REDIR.VLM DOS redirector (see also #02879)
0041h FIO.VLM file I/O (see also #02882)
0042h PRINT.VLM printer redirector (see also #02884)
0043h GENERAL.VLM misc functions for NETx and REDIR (see also #02888)
0050h NETX.VLM NetWare shell compatibility (see also #02890)
0060h AUTO.VLM auto-reconnect/auto-retry
0061h SECURITY.VLM enhanced security module (see #02892)
0100h NMR.VLM NetWare management responder
09F2h DRVPRN.VLM Desktop SNMP Services - Drive/Printer Mappings
09F5h SAA.VLM SAA client API for Netware
09F6h IPXMIB.VLM SNMP IPX-monitoring Module???
09F7h PNWMIB.VLM Personal Netware SNMP Instrumentation Module
09F8h PNWTRAP.VLM Personal Netware SNMP Trap Module
09F9h MIB2PROT.VLM MIB-II Protocol Groups
09FAh MIB2IF.VLM MIB-II Interfaces Group
09FBh NVT.VLM ???
09FCh WSTRAP.VLM Desktop SNMP Services - Trap Module
09FDh WSREG.VLM Desktop SNMP Services - Registration Module
09FEh WSASN1.VLM Desktop SNMP Services - ASN.1 Module
09FFh WSSNMP.VLM Desktop SNMP Services - Agent Module
Format of VLM header:
Offset Size Description (Table 02862)
00h DWORD -> initialization entry point
04h DWORD -> VLM API entry point
08h DWORD -> ??? entry point
0Ch DWORD -> ??? entry point
10h DWORD -> ??? entry point
...
var DWORD 00000000h (end of entry point list)
4 BYTEs signature "NVlm"
WORD VLM identifier (see #02861)
---v1.20+ ---
1Eh WORD ???
20h WORD Transient Switch Count
22h WORD VLM Call Count
24h WORD Offset ControlBlocks (See #02863)
26h WORD Current VLMID
28h BYTE Memory Type
00h=Conventional 02h=EMS 04h=XMS
29h BYTE Modules Loaded
2Ah WORD BlockId
2Ch WORD Transient Block
2Eh WORD Global Segment
30h 3 DWORDs pointers to AsyncQueue head, tail, and s???
3Ch 3 DWORDs pointers BusyQueue head, tail, and s???
48h WORD ReEntrance Level
4Ah WORD Full Map Count
4Ch WORD ???
4Eh 80 BYTEs ASCIZ configuration file filename
Note: the number of entry points in the header is reported as "Func" in the
VLM /D display.
Format of VLM Control Block for VLM v1.20 [array]:
Offset Size Description (Table 02863)
00h WORD Flag
02h WORD VLM Identifier (See #02861)
04h WORD Func
06h WORD Maps
08h WORD number of times called
0Ah WORD ???
0Ch WORD Transient Segment
0Eh WORD Global Segment
10h WORD Address Low
12h WORD Address High
14h WORD TSegSize
16h WORD GSegSize
18h WORD SSegSize
1Ah BYTE VLMName[9] ASCIZ
Note: this information is shown in VLM /d under the dashed line. There are
as many 35-byte blocks as modules loaded
SeeAlso: #02862
(Table 02864)
Call VLM Manager (VLM.EXE, ID 0001h) with:
Func Description/Registers
01h VLM Notify
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h VLM Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02865)
Return: AX = status (0000h if successful)
buffer filled if successful
04h VLM internal use
BX = function
0000h get interrupt vector (calls INT 21/AH=35h)
0001h begin critical section (calls INT 2F/AX=1681h)
0002h end critical section (calls INT 2F/AX=1682h)
0003h ???
Format of VLM.EXE statistics:
Offset Size Description (Table 02865)
00h WORD size of statistics record in bytes (including this word)
02h WORD number of times a VLM has been mapped into memory
04h WORD number of times a VLM has been called
06h WORD offset of vcbArray buffer
08h WORD VLM ID of VLM currently mapped into memory
0Ah BYTE memory type: conventional/EMS/XMS
0Bh BYTE number of loaded VLMs
0Ch WORD EMS/XMS handle or 0000h if conventional memory
0Eh WORD start segment for conventional memory swap
10h WORD segment for global memory, or 0000h if conventional memory
12h 12 BYTEs queue structure for asynchronous calls (see #02866)
1Eh 12 BYTEs queue structure for synchronous calls (see #02866)
2Ah WORD current re-entrance level
2Ch WORD number of times EMS/XMS map-out performed
2Eh BYTE stack switch control
2Fh BYTE flag: nonzero if switcher loaded
30h 80 BYTEs pathname of configuration file
SeeAlso: #02864
Format of VLM.EXE queue structure:
Offset Size Description (Table 02866)
00h DWORD queue head (initially 00000000h)
04h DWORD queue tail (initialized to be same as head)
08h WORD current queue size (number of nodes in queue)
0Ah WORD maximum queue size (in nodes)
SeeAlso: #02865
(Table 02867)
Call Connection Manager (CONN.VLM, ID 0010h) with:
Func Description/Registers
01h Conn Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Conn Statistics
CX = length of buffer
ES:DI -> buffer for connection statistics (see #02868)
Return: AX = status (0000h successful)
04h Conn Alloc Handle
Return: AX = status (0000h successful)
CX = connection handle
05h Conn Validate Handle
CX = connection handle
Return: AX = 0000h if valid handle
06h Conn Free Handle
CX = connection handle
Return: AX = status (0000h successful)
07h Conn Get Entry Field
BH = connection parameter (see #02870)
CX = connection handle
DX = value if BH is non-array parameter
DH = offset in array if BH is array parameter
DL = number of bytes to copy if BH is array
ES:DI -> return buffer if BH is array
Return: AX = 0000h if successful
DL/DX = value if non-array parameter
DH = maximum number of bytes in buffer if array parameter
DL = number of bytes copied if array
BX destroyed
08h Conn Set Entry Field
BH = connection parameter (see #02870)
CX = connection handle
DL/DX = value if BH is non-array parameter
DH = offset in array if BH is array parameter
DL = number of bytes to copy if BH is array
DS:SI -> buffer if BH is array
Return: AX = 0000h if successful
DH = maximum number of bytes in buffer
DL = number of bytes copied
BX destroyed
09h Conn Reset Entry Field
BH = connection parameter (see #02870)
CX = connection handle
Return: AX = 0000h if successful
BX,DX destroyed
0Ah Conn Lookup Handle
BL = lookup type (00h equal, 40h not equal)
BH = connection parameter (see #02870)
CX = connection handle, 0000h if first
DL/DX = value if BH is non-array parameter
DH = offset in array if BH is array parameter
DL = number of bytes to copy if BH is array
DS:SI (ES:DI???) -> buffer if BH is array
Return: AX = 0000h if successful
CX = handle matching given parameters
0Dh Conn Name Lookup
CX = connection handle
ES:DI -> 49-byte buffer for server name or 0000h:0000h
Return: AX = 0000h if successful
BX = length of server name
ES:DI buffer filled if pointer not 0000h:0000h
0Eh Conn Name To Handle
DS:SI -> uppercased server name
CX = length of server name, 0000h if ASCIZ name
Return: AX = error code or 0000h if successful
CX = connection handle if successful
0Fh Conn Get Num Connections
Return: AX = status (0000h if successful)
DX = number of connections
CX = segment of connection table
first entry in table (See #02869)
Format of VLM connection statistics:
Offset Size Description (Table 02868)
00h WORD total length of statistics record (including this word)
02h WORD number of connection handles allocated
04h WORD average name length (configured in NET.CFG)
06h WORD maximum number of tasks (configured in NET.CFG)
08h WORD number of failed "allocate handle" calls
0Ah WORD number of failed "add name" calls
0Ch WORD number of failed task calls
Note: some versions of the NetWare requester reportedly do not implement
this correctly
SeeAlso: #02867
Format of NetWare VLM Connection Table [array]:
Offset Size Description (Table 02869)
00h WORD Protocol VLMid 0032(NDS) 0031(BIND) Func 07 equiv.
0033(PNW) 0000(unused) BH=01h
02h BYTE (connection status)
bit 6: connection locked BH=16h
bit 5: authenticated BH=03h
bit 4: permanent BH=02h
bit 2: broadcast msg waiting BH=12h
03h BYTE (connection capabilities)
bit 5: Large Internet Packets none
bit 3: Packet Burst Reset BH=07h
bit 2: Max I/O BH=06h
bit 1: SFT3 change BH=05h
bit 0: Packet Burst Support BH=04h
04h WORD reference count BH=09h
06h WORD soft resource count BH=15h
08h BYTE NCP Order Number BH=0Eh
09h BYTE Server security options BH=14h
bit 0: CRC enabled
bit 1: packet signing required
bit 5: packet signing enabled
0Ah BYTE OS Major Version BH=08h
0Bh BYTE OS Minor Version BH=08h
0Ch WORD Hops to Server BH=0Ah
0Eh WORD Maximum Packet Size for this connection BH=0Bh
10h WORD LIP Parameters BH=13h
12h WORD NCP Request Type BH=10h
14h BYTE NCP Sequence BH=0Ch
15h WORD Connection Number BH=0Dh
17h BYTE ??? none
18h WORD Transport VLMid 21(IPXNCP) 22(TCPNCP) BH=0Fh
1Ah BYTE Node Address[4] BH=11h
1Eh BYTE Network[6] BH=11h
24h BYTE Socket[2] BH=11h
26h BYTE Local Target[6] BH=11h
2Ch WORD Round Trip Time BH=11h
2Eh WORD ??? none
SeeAlso: #02867
(Table 02870)
Values for NetWare Connection Manager CEI (Connection Entry Information):
number flags description
00h FR error
01h WL VLM id of transport protocol (NDS/BIND/PNW)
00h = wildcard
02h FR permanent flag (01h if connection is permanent)
03h F authenticated flag (01h if connection is authenticated)
04h F packet burst supported
05h FR SFT3 change status
06h FR connection needs maximum I/O transmission
07h FR packet burst reset needed
08h W server version
09h W reference count (tasks using connection, 00h = dynamic)
0Ah W distance to server associated with connection
0Bh W maximum packet size supported by transport protocol
0Ch B NCP sequence number
0Dh W connection number
0Eh B NCP order number
0Fh WL VLM id for transport protocol
00h = wildcard, 21h = IPX, 22h = TCP
10h W NCP request type
11h A transport specific buffer
12 byte server address
6 byte router address
2 byte round trip time
12h FR broadcast message waiting
13h W large internet packets supported
14h B security options
bit 0: CRC enabled
bit 1: packet signing enabled
bit 5: packet signing active
15h W soft resource count
16h FR connection locked
Note: flag meanings
F=flag value
B=byte value
W=word value
A=array
R=resettable
L=settable only before authentication
others=read only
SeeAlso: #02867
(Table 02871)
Call TRAN.VLM (VLM ID 0020h) with:
Func Description/Registers
01h TRAN Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h TRAN Statistics
06h TRAN Request Reply (see INT 21/AH=F2h)
AL = NCP request code (see #02095 at INT 21/AH=F2h)
BH = error handler flag
00h default error handler
01h return network errors to caller
02h handle network errors in requester
BL = request list length (max 5 fragments) (see #02872)
CX = connection handle
DH = 00h (reserved)
DL = reply list length (max 5 fragments) (see #02872)
DS:SI -> address list (each element is DWORD address + WORD length)
ES:DI -> address list
Return: AX = error code, 0000h if successful (see #02860)
BX,DX destroyed
ES:DI buffer filled with reply packet fragments
08h TRAN Schedule/Cancel Event
BX = subfunction
0000h schedule event
AX = number of timer ticks to delay before calling function
ES:SI -> event control block (including valid call address)
0001h cancel event
ES:SI -> event control block (including call address)
Return: AX = status (0000h = successful) (see #02860)
09h TRAN Get Max Phys Size
BX = subfunction
00h get maximum node size
Return: AX = status (0000h = successful) (see #02860)
BX = maximum supported physical packet size
DX = size of protocol header
SI = RequestReply socket number
01h get maximum route size to specified server
CX = connection handle for route to be checked
Return: AX = status (0000h = successful) (see #02860)
DX = maximum supported packet size for current route
0Ah TRAN Broadcast Mux
BX = subfunction
0001h get stored broadcast (Personal NetWare)
ES:DI -> 60-byte buffer for counted ASCIZ message string
Return: AX = status (0000h = successful) (see #02860)
Format of TRAN.VLM request/reply fragment descriptor (array):
Offset Size Description (Table 02872)
00h DWORD address of buffer
04h WORD length of buffer
(Table 02873)
Call IPXNCP.VLM (VLM ID 0021h) with:
Func Description/Registers
01h IPX Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h IPX Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02874)
Return: AX = status (see #02860)
06h IPXNCP Request Reply???
functionally equivalent to Tran Request Reply???
Format of NetWare IPX statistics:
Offset Size Description (Table 02874)
00h WORD size of statistics, including this word
02h DWORD number of TRAN Request Reply calls made
06h WORD number of user aborts
08h WORD number of user retries
0Ah WORD IPX receive errors
0Ch WORD IPX send errors
0Eh WORD number of unrecognized responses
10h WORD number of bad connection numbers in requests
12h WORD number of bad sequence responses
14h WORD receive buffer overflows
16h WORD number of times route to attached server was lost
18h WORD number of times server responded "busy"
1Ah WORD number of unknown "NCPRepCompCode" values
1Ch WORD number of bad connection numbers in responses
1Eh WORD padding for NETX compatibility
20h WORD padding for NETX compatibility
22h WORD number of attach requests to server without route
24h WORD number of times server responded to attach without slot
26h WORD number of times a server went down during a request
28h DWORD same-server optimizations
2Ch WORD local route changes
2Eh WORD IPX CRC errors
30h WORD number of user fails
32h BYTE flag: CRCs enabled
33h BYTE flag: LIP enabled
34h BYTE flag: configurable NET error handler
SeeAlso: #02873
(Table 02875)
Call NWP.VLM (VLM ID 0030h) with:
Func Description/Registers
01h NWP Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h NWP Statistics
CX = size of buffer for statistics
ES:DI -> buffer for statistics (see #02876)
Return: AX = status (see #02860)
04h NWP Connect
DL = resource count state (NDS connections only)
CX = proposed connection handle (not yet connected to server)
DS:SI -> 48-byte server name (NUL-terminated if less than 48 bytes)
Return: AX = status (0000h = successful) (see #02860)
CX = actual connection handle to use
Note: if the returned handle differs from the proposed handle, the
proposed handle should be freed
05h NWP Disconnect
DL = ???
00h global disconnect -- clear all resources associated with conn.
01h destroy connection -- send disconnect request to server
CX = connected connection handle
Return: AX = status (0000h = successful) (see #02860)
06h NWP Attach
DL = resource count state (NDS connections only)
CX = connection handle (allocated by not yet attached to server)
DS:SI -> full network address for desired server
Return: AX = status (0000h = successful) (see #02860)
08h NWP Login
BX = object type
CX = connection handle (must be connected) to be authenticated
DS:SI -> ASCIZ user name (max 48 bytes)
ES:DI -> ASCIZ user password (max 128 bytes)
Return: AX = status (0000h = successful) (see #02860)
09h NWP Logout
CX = connection handle
Return: AX = status (0000h = successful) (see #02860)
0Ah NWP Get Bindery Object/Get Message Handler
BX = subfunction
0002h set workstation's broadcast message mode
DL = message mode
00h client hold client message set on, retrieve/display on
01h client hold client message set off, retr/display on
02h client hold client message set on, retrieve/dislay off
03h client hold client message set off, retr/display off
04h get current message mode
05h set broadcast callback
CX:SI -> callback handler
06h get broadcast timeout
07h set broadcast timeout
CX = timeout in timer ticks (0000h = never)
CX = connection handle, or 0000h to notify all servers
0003h get object ID for object name
AX = object type (big-endian)
CX = connection handle
DX = length of object name
ES:DI -> uppercased ASCIZ object name
Return: AX = status (see #02860)
DX:BX = object ID
0004h get object name for object ID
DX:SI = object ID
CX = connection handle for server which is to do the lookup
ES:DI -> 48-byte buffer for object name
Return: AX = status (see #02860)
0005h retrieve broadcast message
0Ch NDS Fragment Request (passed to NDS.VLM's function 0Ch) (see #02877)
AX = verb or request type
CX = connection handle
DS:SI -> request structure (DWORD data address followed by WORD size)
ES:DI -> buffer for reply structure (same format as request)
Return: AX = status (0000h = successful) (see #02860)
0Eh NWP Ordered Send To All
AL = NCP request code
AH = inverse request code (FFh if none) to back out from failures
BX = number of fragments in request list
DX = number of fragments in reply list buffer
DS:SI -> request fragment list
ES:DI -> reply fragment list
Return: AX = status (see #02860)
BX, CX, DX destroyed
Note: the available functions are described under INT 21/AX=F2xxh
0Fh NWP Preferred Handler
BX = subfunction
0000h get preferred connection name
DX = VLM ID (NDS/BIND/PNW)
ES:DI -> 49-byte buffer for connection name
Return: ES:DI buffer filled
0001h set preferred connection name
DX = VLM ID (NDS/BIND/PNW)
CX = length of connection name (may be 0000h, max 48)
DS:SI -> name of preferred connection
0002h get preferred connection ID
DX = VLM ID (NDS/BIND/PNW)
Return: AX = status (see #02860)
CX = connection handle if successful
0003h get server address
CX = connection handle or 0000h
DS:SI -> ASCIZ name to be resolved
ES:DI -> 12-byte buffer for server address
10h NWP Security???
BX = subfunction
0001h get security flags (see also INT 21/AX=B301h)
Return: BX:CX indicates signature level
= 0100h:0000h if signature level=0
= 0300h:0000h if signature level=1
= 0302h:0000h if signature level=2
= 0302h:0202h if signature level=3
0002h create session keys (see also INT 21/AX=B302h)
CX = server connection handle
DS:SI -> 24-byte input buffer
0004h set security flags (see also INT 21/AX=B304h)
BL:CL = new flags
0006h renegotiate security level (see also INT 21/AX=B306h)
CX = server connection number (01h-08h)
Format of NWP.VLM statistics:
Offset Size Description (Table 02876)
00h WORD size of statistics record (including this byte)
02h BYTE flag: Large Internet Packets enabled
03h BYTE bit flags: enabled security features
04h BYTE bit flags: preferred security features
05h BYTE bit flags: required security features
06h BYTE minimum level of required security
SeeAlso: #02875
(Table 02877)
Call NDS.VLM (VLM ID 0032h) with:
Func Description/Registers
01h NDS Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h NDS Statistics
06h NDS Attach
CX = allocated connection handle
DS:SI -> server address
08h NDS Fragment Requst
Return: AX = 8836h (invalid parameter)
Note: this function was documented but does not work
0Ch NDS context
BX = subfunction
0000h get default name context
CX = length of buffer for default context
ES:DI -> buffer to receive name
Return: ES:DI buffer filled
0001h set default context
CX = length of new default context name
DS:SI -> context name
0002h read from TDS
CX = reply buffer length
DX = 0110h ???
SI = offset in TDS
ES:DI -> reply buffer
0003h write to TDS
0005h "NWDSChangeResourceConnection/Lock Connection"
CX = connection handle
DL = subfunction (00h-09h)
04h = NWDSChangeResourceOnConnection
07h = NWDSChangeResourceOnConnection
08h = NWDSLockConnection
0006h NDS change connection state (internal)
CX = connection handle
AL = 00h or 01h
0007h "NWDSSetMonitoredConnection"
AX = subfunction
0001h get monitored connection
Return: CX = connection handle???
0002h set monitored connection
CX = connection handle???
0008h send NDS request
AX = NDS function
CX = connection handle
DS:SI -> request buffer descriptor (see #02878)
ES:DI -> reply buffer descriptor (see #02878)
000Ah set NDS CEI Info
DL = buffer length
DS:SI -> input buffer
Format of NetWare NDS request/reply buffer descriptor:
Offset Size Description (Table 02878)
00h DWORD -> buffer
04h WORD length of buffer in bytes
SeeAlso: #02877
(Table 02879)
Call REDIR.VLM (VLM ID 0040h) with:
Func Description/Registers
01h Redir Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Redir Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02880)
Return: AX = status (0000h if successful) (see #02860)
buffer filled if successful
04h Redir Build SFT (see INT 21/AH=B4h"NetWare")
CX = connection handle
ES:DI -> SFT build request (see #02881)
Return: AX = 0000h if successful
BX = DOS file handle
05h Redir DOS To NW Handle
BX = DOS file handle
ES:DI -> 11-byte buffer for NetWare handle
08h Redir Specific
BX = 0000h get item
DS:SI -> ASCIZ string "LPTx" (x='1'-'9') or drive spec ("d:")
ES:DI -> 512-byte reply buffer for
"\\server\resource",00h,"path",00h
Return: AX = status (0000h if successful) (see #02860)
Format of REDIR.VLM statistics:
Offset Size Description (Table 02880)
00h WORD size of statistics record (including this word)
02h WORD number of network errors causing a critical error (see INT 24)
04h WORD number of drives currently redirected
SeeAlso: #02879
Format of NetWare SFT build request:
Offset Size Description (Table 02881)
00h 6 BYTEs NetWare handle
06h WORD reserved for internal use
08h 14 BYTEs ASCIZ filename
16h BYTE DOS file attributes
bit 7: file is shareable
17h BYTE reserved
18h LONG file size
1Ch WORD creation date
1Eh WORD last access date or 0000h
20h WORD last update date or 0000h
22h WORD last update time or 0000h
(Table 02882)
Call File I/O FIO.VLM (VLM ID 0041h) with:
Func Description/Registers
01h FIO Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h FIO Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02883)
Return: AX = status (0000h if successful)
buffer filled if successful
04h FIO Remote Copy
Format of NetWare FIO statistics:
Offset Size Description (Table 02883)
00h WORD length of statistics record (including this word)
02h WORD number of read requests
04h WORD number of write requests
06h WORD number of cache read hits
08h WORD number of cache write hits
0Ah WORD number of cacheable files with free blocks
0Ch WORD number of cacheable files without free blocks
0Eh WORD number of standard read requests
10h WORD number of standard write requests
12h WORD number of burst read requests
14h WORD number of burst write requests
16h BYTE flag: cache writes enabled
17h BYTE flag: true commits enabled
18h WORD number of cache blocks
1Ah WORD size of a cache buffer
1Ch WORD number of ECBs for packet bursts (0000h if bursts disabled)
SeeAlso: #02882
(Table 02884)
Call PRINT.VLM (VLM ID 0042h) with:
Func Description/Registers
01h Print Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Print Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02885)
Return: AX = status (0000h if successful) (see #02860)
buffer filled if successful
04h Print Get/Set Data
BX = subfunction
00h set printer control flags (see #02886)
01h get printer control flags
02h set extended printer control flags (see #02887)
03h get extended printer control flags
AX = offset within Print structures at which to start read/write
CX = number of bytes to transfer
DX = printing device number (00h=LPT1/PRN, 01h=LPT2, etc.)
DS:SI -> buffer containing values for flags (subfunctions 00h/02h)
ES:DI -> buffer for flags (subfunctions 01h/03h
Return: AX = status (see #02860)
---if successful---
CX = number of bytes returned (subfunctions 01h/03h)
DX = maximum supported size for function/type of data
05h Print Open Capture File
07h Print Get Num Of Printers
BX = subfunction
0000h get number of physical printers
nonzero: get configured printer (from NET.CFG)
Return: AX = status (see #02860)
---if successful---
BX = number of physical/configured printers
08h Print Redirection
BX = subfunction
0000h redirect device to queue
AX = length of queue name, 0000h to use queue ID
CX = connection handle
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
DS:SI -> uppercased ASCIZ queue name
ES:DI -> DWORD queue ID, 00000000h to use queue name
0001h test whether device is redirected
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
0002h cancel redirection
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
0003h redirect device to file
AX = 0000h or 4E57h ('NW')
CX = connection handle
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
ES:DI -> ASCIZ path of file
0004h get extended redirection information (see #02886)
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
ES:DI -> buffer for server/queue name
Return: ES:DI buffer filled
Return: AX = 0000h if successful
09h Print Flush And Close Job
BX = subfunction
0000h unconditional close
nonzero: conditional close -- close only if concatenate flag is
clear
DX = index of printing device (00h=LPT1/PRN, 01h=LPT2, etc.)
Return: AX = status (see #02860)
0Ch Print Get/Set Banner Name
BL = subfunction
00h set banner name
DS:SI -> ASCIZ banner name (12 bytes, including NUL)
01h get banner name
ES:DI -> 12-byte buffer for banner name
Return: AX = status (see #02860)
Format of PRINT.VLM statistics:
Offset Size Description (Table 02885)
00h WOFD size of statistics buffer (including this word)
02h DWORD -> old INT 17 handler
06h WORD number of physical printers reported by BIOS
SeeAlso: #02884
Format of PRINT.VLM standard print control information:
Offset Size Description (Table 02886)
00h BYTE PFStatus (reserved, 00h)
01h BYTE print flags (default 80h)
bit 2: release job for printing if capture interrupted
bit 3: suppress form feed
bit 4: notify
bit 6: text file
bit 7: print banner
02h BYTE tab size (01h-12h, default 08h)
03h BYTE number of copies (default 01h)
04h BYTE ??? (may be number of copies instead of offset 03h)
05h BYTE form type to be mounted in printer (default 00h)
06h BYTE reserved (00h)
07h 14 BYTEs banner
15h BYTE capture printer (LPT) number
16h WORD capture timeout in seconds
18h BYTE job concatenation flag (00h or 01h, default 00h)
19h BYTE maximum lines per page (default 66)
1Ah BYTE ??? (may be maximum lines instead of offset 19h)
1Bh BYTE maximum characters per line (default 132)
1Ch BYTE ??? (may be maximum characters instead of offset 1Ch)
1Dh 13 BYTEs name of form to be mounted in printer
2Ah BYTE flag: capture active (00h or FFh, default 00h)
2Bh BYTE flag: capturing to file (00h or 01h, default 00h)
2Ch BYTE flag: timeout field is being decremented (default 00h)
2Dh DWORD -> printer setup string
31h DWORD -> printer reset string
35h BYTE reserved (01h)
---remainder is read-only---
36h BYTE flag: job has started printing (00h or FFh, default 00h)
37h BYTE flag: job placed in queue (00h or FFh, default 00h)
38h BYTE flag: PJobValid (00h or FFh, default 00h)
FFh if associated capture file is open for capturing data
39h DWORD print-queue ID
3Dh WORD print-job number (default 00h) (1-999)
3Fh BYTE number of chars in INT 17h print cache buffer (default 00h)
40h BYTE ???
41h WORD high word of print-job number (default 00h)
SeeAlso: #02884,#02887
Format of PRINT.VLM extended print control information:
Offset Size Description (Table 02887)
00h DWORD NDS printer object ID or directory entry number (when capturing
to a file)
04h BYTE connection handle for server
06h 48 BYTEs ASCIZ print queue name on server
36h DWORD ID of target server, or FFFFFFFFh if any server may be used
3Ah 6 BYTEs target print time, FFFFFFFFFFFFh for immediate printing
40h BYTE status flags
41h BYTE ???
42h 13 BYTEs client's banner name (overrides global banner if set)
4Fh 13 BYTEs job description
5Ch 4 BYTEs reserved (0)
SeeAlso: #02884,#02886
(Table 02888)
Call GENERAL.VLM (VLM ID 0043h) with:
Func Description/Registers
01h Gen Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Gen Statistics
CX = length of statistics buffer
ES:DI -> buffer for statistics (see #02889)
Return: AX = status (see #02860)
04h Gen Get/Set Primary
BX = subfunction
0001h get primary connection
CX = primary connection handle to be retrieved
Return: AX = status (see #02860)
CX = primary connection handle
0002h set primary connection
CX = primary connection handle to be stored
Return: AX = status (see #02860)
06h Gen Specific
BX = subfunction
0000h get command processor and master environment addresses
Return: DX = segment of master environment
ES:DI -> command processor's private COMSPEC= copy
0001h get default or primary connection
Return: AX = status (0000h successful)
CX = connection handle if successful
0002h last queue information
AL = operation
00h zap
01h set
02h get
DI:DX = queue file handle
CX = connection handle
Return: AX = status (0000h successful)
DI:DX = queue file handle
CX = connection handle or 0000h if queue info invalid
0003h get/set machine name(s)
AX = name type
00h get short machine name
02h get long machine name
04h set short machine name
06h set long machine name
08h get DOS name
0Ah set DOS name
ES:SI -> ASCIZ name if setting
Return: AX = status (0000h if successful)
ES:SI -> ASCIZ name if getting
0004h set per-task EXEC search mode
Return: AX = status (0000h if successful)
09h Gen Return Drive Info
BX = subfunction
0000h get first available drive
Return: AX = status (see #02860)
BX = drive letter of first drive
0001h get Lastdrive
Return: AX = status (see #02860)
CH = number lastdrive 1=A: - 1Ah=Z:
Format of NetWare GENERAL.VLM statistics:
Offset Size Description (Table 02889)
00h WORD size of statistics record, including this word
02h DWORD previous INT 21 vector
SeeAlso: #02888
(Table 02890)
Call NETX.VLM (VLM ID 0050h) with:
Func Description/Registers
01h NetX Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h NetX Statistics
CX = length of statistics buffer
ES:DI -> buffer for statistics (see #02891)
Return: AX = status (see #02860)
Format of NETX.VLM statistics:
Offset Size Description (Table 02891)
00h WORD buffer size, including this word
02h DWORD previous INT 21 handler
SeeAlso: #02890
(Table 02892)
Call SECURITY.VLM (VLM ID 0061h) with:
Func Description/Registers
01h Security Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Security Statistics
04h ???
AL = subfunction
01h compute session key
DS:SI -> 24-byte input buffer
ES:DI -> 8-byte output buffer
Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM CallA ADDRESS AX = 7A20h BX = 0001h Return: AX = 0000h if request was handled ES:BX -> CallA entry point (see #02893) SeeAlso: AX=7A20h/BX=0000h (Table 02893) Call VLM CallA entry point with: AX = function 0000h submit 0001h cancel (not implemented) ES:DI -> Overlay Asynchronous Control Block structure (see #02894) Return: DI, DS, ES preserved; all other registers may be destroyed interrupts disabled Desc: asychronously call the specified VLM and then return to caller, which might be another VLM Format of Overlay Asynchronous Control Block (OACB): Offset Size Description (Table 02894) 00h DWORD link to next OACB, 0000h:0000h if last (filled by VLM.EXE) 04h DWORD callback address or 0000h:0000h 08h BYTE InUse flag (00h if complete) (set by VLM.EXE) 09h BYTE flag, reserved for VLM use 0Ah WORD destination VLM 0Ch WORD destination function 0Eh WORD temporary storage for VLM.EXE 10h 6 BYTEs reserved 16h 6 DWORDs EAX,EBX,ECX,EDX,ESI,EDI 2Eh 4 WORDs DS,ES,FS,GS (FS and GS not used)Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTIPLEX ADDRESS AX = 7A20h BX = 0002h Return: AX = 0000h ES:BX -> VLM multiplex entry point (see #02895) Note: for v1.10, this function is only available while VLM.EXE is loading the .VLM modules, because ES is destroyed on return SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0001h,AX=7A20h/BX=0003h (Table 02895) Call DOS Requester entry point with: BX = function??? 0000h DX = ??? DI = ??? BP = ??? 0002h CX = ??? 0003h DX = ??? BP = ??? 0006h AH = subfunction??? AL = ??? STACK: variable (0, 4, 10, 14 bytes seen)Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM PARSE API ADDRESS AX = 7A20h BX = 0003h Return: AX = 0000h if request was handled ES:BX -> VLM parse API entry pointTop
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTICAST CALLOUT AX = 7A20h BX = 0004h Return: AX = 0000h if request was handled ES:BX -> VLM multicast data (see #02896) SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0002h,AX=7A20h/BX=0005h Format of DOS Requester data: Offset Size Description (Table 02896) 00h DWORD pointer to ??? (code) 04h 4 BYTEs ??? 08h DWORD pointer to ??? (code) (see #02897) ??? (Table 02897) Call offset 08h function with: AL = function (00h-07h) ??? Return: ???Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM INT 24 ADDRESS AX = 7A20h BX = 0005h Return: AX = 0000h if request was handled ES:BX -> VLM INT 24 handler SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0002h,AX=7A20h/BX=0004hTop
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT AX = 7A20h BX = 0006h Return: AX = 0000h if request was handled ES:BX -> ??? entry point (RETF in v1.03 and v1.10)Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT AX = 7A20h BX = 0007h Return: AX = 0000h ES:BX -> ??? entry point (RETF in v1.03 and v1.10)Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT AX = 7A20h BX = 0008h Return: AX = 0000h ES:BX -> ??? entry point (RETF in v1.03 and v1.10)Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT AX = 7A20h BX = 0080h Return: AX = 0000h ES:BX -> ??? entry point (RETF in v1.03 and v1.10) Note: this function is identical to AX=7A20h/BX=0006h in v1.03 and v1.10Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT AX = 7A20h BX = 0081h Return: AX = 0000h ES:BX -> ??? entry point (RETF in v1.03 and v1.10) Note: this function is identical to AX=7A20h/BX=0007h in v1.03 and v1.10Top
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT AX = 7A20h BX = 0082h Return: AX = 0000h ES:BX -> ??? entry point (RETF in v1.03 and v1.10) Note: this function is identical to AX=7A20h/BX=0008h in v1.03 and v1.10Top
INT 2F C - Novell NetWare - DOS Requester - BROADCAST CALLBACK AX = 7A21h CX = server connection (FFFFh if message from Personal NetWare user) interrupts disabled Return: CX = 0000h if broadcast handled interrupts disabled Note: this function is only linked into INT 2F when INT 21/AH=DEh/DL=05h has been issued SeeAlso: AX=7A22h,AX=7A85h,INT 21/AH=DEhTop
INT 2F C - Novell NetWare - DOS Requester - BROADCAST/SFT3 INFORM
AX = 7A22h
DL = function
21h ('!') broadcast waiting for workstation
40h ('@') SFT3 server-change inform
BX = transport type
0021h IPX
0022h TCP
ES:SI -> transport-specific data block
(ECB for IPX, undefined for TCP)
interrupts disabled
Return: AX = 0000h if event handled, unchanged if not
interrupts disabled
Note: this callback is made from within a hardware interrupt handler; a
separate call to AX=7A21h is made once the system is in a safe
state for receiving the message
SeeAlso: AX=7A21h
Top
INT 2F - Novell NetWare - IPXODI v2.12 - GET GNMA SUPPORT AX = 7A2Fh Return: AX = 0000h if supported and active BX = support level (0001h) ES:DI -> GNMA entry point (see #02898) Program: GNMA is the Generic NetWare Management Agent Note: IPXODI v2.12 is distributed as part of the Personal NetWare system bundled with Novell DOS 7 SeeAlso: INT 7A/BX=001Fh (Table 02898) Call IPXODI GNMA entry point with: BX = function 0000h Register Responder ES:SI -> responder structure (see #02899) Return: CF clear if successful CF set on error AX = status FFFFh if specified responder is already registered interrupts enabled all other registers except DS, CS:IP, SS:SP destroyed Note: the responder structure must not be deallocated until the responder is deregistered 0001h Deregister Responder AX = type of responder to deregister Return: AX = status FFFFh if specified responder not registered interrupts enabled ES:SI buffer from original registration may now be freed all other registers except DS, CS:IP, SS:SP destroyed 0002h Get Responders Return: ES:SI -> head of responder structure list (read-only) interrupts enabled all other registers except DS, CS:IP, SS:SP destroyed Note: the returned list may change as tasks are swapped in and out 0003h Send Acknowledgement AL = completion code 00h successful 01h-FCh responder-specific FDh invalid function CX = length of return data (0000h if none) DX:SI -> return data Return: interrupts enabled all other registers except DS, CS:IP, SS:SP destroyed Format of NetWare GNMA responder structure: Offset Size Description (Table 02899) 00h DWORD -> next responder structure (used by GNMA) 04h DWORD -> responder's request handler (called by GNMA) (see #02900) 08h WORD responder ID 0Ah WORD number of functions supported by responder 0Ch DWORD reserved for use by GNMA SeeAlso: #02898 (Table 02900) Values GNMA responder's request handler is called with: AL = function 00h responder request CX = length of request data (not including header) (see #02901) DS:DI -> request data (see #02901) DS:BX -> 528-byte reply buffer ES:SI -> responder structure (see #02899) from registration DF clear interrupts disabled Return: AH = acknowledement status 00h acknowledgment being returned synchronously nonzero: acknowledgment will be sent via GNMA function 0003h (see #02898) CX = length of acknowledement data DX:BX -> acknowledgment (may use provided buffer or another buffer) AL = completion code 00h successful 01h-FCh responder-specific FDh invalid request DF clear interrupts disabled other registers may be destroyed 01h responder acknowledgement complete ES:SI -> responder structure (see #02899) from registration DF clear interrupts disabled Return: DF clear interrupts disabled all registers (except SS:SP) may be destroyed Note: this function is called if function 00h returned a responder-provided data buffer; once this function is called, the responder may deallocate the buffer 02h responder reset ES:SI -> responder structure (see #02899) from registration DF clear interrupts disabled Return: DF clear interrupts disabled all registers (except SS:SP) may be destroyed Note: called whenever a network managment application terminates Note: the responder handler should switch to a local stack if it enables interrupts or uses more than a few words of stack space SeeAlso: #02899 Format of GNMA responder request data: Offset Size Description (Table 02901) 00h WORD responder's assigned ID 02h WORD function number (defined by responder) 04h N BYTEs data for request (max 528 bytes; actual amount is determined by CX) SeeAlso: #02900Top
INT 2F U - Personal NetWare - HRMIB - UNINSTALL
AX = 7A2Fh
BX = 0EDCh ('EDC' = Novell European Development Center)
Return: ???
SeeAlso: AX=7AA0h
Top
INT 2F - Novell NetWare - TCP/IP Protocol Stack - INSTALLATION CHECK AX = 7A40h Return: AX = 7AFFh if installed 0000h:BX = address of interrupt vector for MLID ISR CX = version (CH=major, CL=minor) DX = 0000h ES:DI -> entry point for TCP/IP stack (see #02903) Notes: Novell's LAN Workplace for DOS TCPIP.EXE also supports this interface this function is also supported by the Beame&Whiteside BWLWP40 shim, but it only returns AL and ES:DI, and does not support AX=7A41h SeeAlso: AX=7A41h,INT 15/AX=DE2Eh,INT 60"Excelan" (Table 02902) Values for NetWare TCP/IP function code: 01h "accept" accept a network connection request 02h "bind" associate an address with a socket 03h close socket Call: socket number field set 04h "connect" connect to a remote host 05h "getmyipaddr" get IP address Call: socket number field in sockaddr set to 0000h 06h "getmymacaddr" get hardware address 07h "getpeername" 08h "getsockname" get socket name 09h "getsockopt" get socket options 0Ah "getsubnetmask" get subnet mask 0Bh "ioctl" 0Ch "listen" wait for connection request on socket 0Dh "select" Return: socket bitmap updated (1=active) 0Eh "setmyipaddr" (obsolete) set IP address 0Fh "setsockopt" set socket options 10h "shutdown" 11h "socket" open socket Call: socket number field set to 0000h Return: socket number set 12h "recv" get data from peer 13h "recvfrom" get data from specified remote host Call: socket number set packet length and buffer descriptors set Return: packet length and receive buffers updated sockaddr field set to source port number + IP address 14h "send" write data to socket 15h "sendto" write data to specified recipient Call: socket number set flags at offset 18h = 0000h packet length and buffer descriptors set ---v4.02+ --- 16h get BOOTP data Return: BOOTP data stored in parameter block (see #02906) 17h "getsnmpinfo" 18h "getpathinfo" get/set configuration??? ---v4.??? --- 19h "getifn" get interface number 1Ah "setipinfo" set IP information 1Bh "getipinfo" get IP information 1Ch "setdnsinfo" set DNS information 1Dh "getdnsinfo" get DNS information 1Eh "setroutes" set/modify route entry(ies) 1Fh "getroutes" get route entry(ies) 20h "removeroutes" remove route entry(ies) 21h "setarpe" set/modify ARP entry(ies) 22h "getarpe" get ARP entry(ies) 23h "removearpe" remove ARP entry(ies) Notes: these functions are based on the Unix socket interface OR function number with 80h to call ESR SeeAlso: #02904 (Table 02903) Call NetWare TCP/IP entry point with: ES:SI -> parameter block (see #02904) Return: ES:SI parameter block updated DX may be destroyed Format of NetWare TCP/IP Request Control Block (RCB): Offset Size Description (Table 02904) 00h DWORD -> next RCB 04h DWORD -> previous RCB 08h DWORD -> FAR post routine called if bit 7 of function code set 0Ch BYTE flags (internal use) bit 0: request in progress bit 1: posted bit 2: Windows bit 3: "PROTBUF" bit 4: "ABORTRCB" for Ctrl-Break handling bit 5: call INT 21/AX=0B00h while blocking 0Dh 7 BYTEs ??? 14h BYTE (ret) temporary result code 15h BYTE (call) function code (bit 7 set if non-blocking) (see #02902) 16h BYTE socket number 17h BYTE (ret) result or error code (see #02905) ---accept/bind/connect/getmyipaddr/getpeername/getsockname commands--- 18h sockaddr structure (WORD port + DWORD IP address) ---close comand--- no additional fields ---getmymacaddr command--- 18h 6 BYTEs low-level hardware network address ---BOOTP command--- 18h 64 BYTEs BOOTP VSA data (see #02906) ---getpathinfo command 18h 8 BYTEs key "TCP_CFG" used by PING.EXE 20h 128 BYTEs path A0h WORD length of path in previous field ---getsockopt/setsockopt commands--- 18h WORD option name 0004h SO_REUSEADDR 0008h SO_KEEPALIVE 0080h SO_LINGER 1Ah WORD option value 1Ch WORD "linger" ---getsubnetmask command--- 18h DWORD sockaddr structure (WORD port + DWORD subnet mask) ---ioctl command--- 18h DWORD argument value 1Ch WORD ioctl number ---listen command--- 18h WORD maximum allowable connection backlog ---select command--- 18h WORD number of sockets 1Ah fd_set readfds (bitmap of sockets) fd_set writefds fd_set expectionfds DWORD timeout in clock ticks ---shutdown command--- 18h WORD shutdown type ---socket command--- 18h WORD protocol (1 = ICMP, 6 = TCP, 17 = UDP) ---I/O commands (recv,recvfrom,send,sendto)--- 18h WORD flags 1Ah 6 BYTEs sockaddr from/to WORD port number DWORD IP address 20h WORD length of packet sent/received 22h WORD number of pointer/length pairs following (max 8) 24h 6N BYTEs buffer descriptors, each Offset Size Description 00h DWORD pointer to buffer 04h WORD length of buffer ---getsnmpinfo command--- 18h DWORD (ret) -> ??? data in TCPIP code segment --getifn command--- 18h WORD interface number 1Ah WORD MLID instance number 1Ch 128 BYTEs MLID name ---getipinfo/setipinfo commands--- 18h WORD interface number (00h = default) 1Ah DWORD IP address 1Eh DWORD IP netmask 22h 3 DWORDs router addresses (00000000h = unused entry) ---getdnsinfo/setdnsinfo commands--- 18h WORD interface number (00h = default) 1Ah 3 DWORDs name server IP addresses (00000000h = unused entry) 26h 128 BYTEs domain name ---getroutes/setroutes/removeroutes commands--- 18h WORD number of route entries to follow (max 5) 1Ah 10N BYTEs route entries DWORD destination host/net IP address DWORD IP address of first router WORD route type ---getarpe/setarpe/removearpe commands--- 18h WORD number of ARP entries to follow (max 16) 1Ah 10N BYTEs ARP entries DWORD destination IP address 6 BYTEs destination hardware address ---other commands--- 18h 4 WORDs parameter words 0 to 3 (see #02902 for usage) (Table 02905) Values for NetWare TCP/IP status: 00h successful 04h would block 09h invalid socket 23h would block 24h operation in progress 25h already in progress 26h not a socket 27h destination address required 28h message too long 29h wrong protocol type for socket 2Ah protocol not available 2Bh protocol not supported 2Ch socket type not supported 2Dh operation not supported on socket 2Eh protocol family not supported 2Fh address family not supported by protocol family 30h address already in use 31h unable to assign requested address 32h network is down 33h network is unreachable 34h network dropped connection 35h software caused connection abort 36h connection reset by peer 37h no buffer space 38h socket is already connected 39h socket is not connected 3Ah socket is in shutdown mode 3Bh too many references 3Ch connection timed out 3Dh connection refused 3Eh too many levels of symbolic links 3Fh file name too long 40h host is down 41h host unreachable 42h protocol stack not installed 43h asynchronous operation not supported 44h synchronous operation not supported 45h no RCB available FFh blocking (call has not yet returned) SeeAlso: #02904 Format of BOOTP data (stored in parameter block): Offset Size Description (Table 02906) 18h 4 BYTEs ??? 1Ch BYTE ??? (01h) 1Dh BYTE address length (04h) 1Eh 4 BYTEs subnet mask 22h BYTE ??? (03h) 23h BYTE ??? (04h) 24h 4 BYTEs IP address of nearest router 28h BYTE ??? (06h) 29h BYTE length of following data (08h) 2Ah 4 BYTEs IP address of nameserver 1 2Eh 4 BYTEs IP address of nameserver 2 32h BYTE ??? (0Ch) 33h BYTE length of local name 34h N BYTEs local host name BYTE FFh (end marker) SeeAlso: #02904,#02902Top
INT 2F U - Novell NetWare - TCP/IP Protocol Stack - WINDOWS SUPPORT??? AX = 7A41h ES:DI -> FAR entry point for ??? (will be called with BX=1,2,3,4) Return: AX = 7AFFh if supported 0000h:BX = address of interrupt vector for MLID ISR CX = version (CH=major, CL=minor) DX = 0000h ES:SI -> DWORD containing passed value of ES:DI ES:DI -> entry point for TCP/IP stack Notes: Novell's LAN Workplace for DOS TCPIP.EXE also supports this interface the pointer which is set to ES:DI is cleared to 0000h:0000h when a Windows exit broadcast is received SeeAlso: AX=7A40hTop
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ??? ENTRY POINT AX = 7A42h Return: AX = 7AFFh if supported ES:DI -> ??? entry point (see #02907) (Table 02907) Call NetWare TCPIP.EXE entry point with: DX = ??? ES:DI -> ??? (see #02908) Return: AX = 0000h other registers destroyed Format of data buffer: Offset Size Description (Table 02908) 00h WORD offset of WORD ??? or 0000h 02h WORD offset of DWORD ??? or 0000h 04h WORD offset of DWORD ??? or 0000hTop
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ??? AX = 7A43h Return: AX = 7AFFh if supported DX = offset of ??? SeeAlso: AX=7A44hTop
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - SET ??? AX = 7A44h DX = offset of ??? (see AX=7A43h) Return: AX = 7AFFh if supported SeeAlso: AX=7A43hTop
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ??? AX = 7A4Ch Return: AX = 7AFFh if supported BX = ??? (0037h) CX = ??? (001Ch)Top
INT 2F U - Novell NetWare - ??? AX = 7A4Dh BX = 0001h ES:DI -> ??? Return: AL = FFh if ??? ES:DI -> ??? Note: called by NETBIOS.EXE v3.01Top
INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - INSTALLATION CHECK AX = 7A4Eh Return: AX = 7AFFh if installed SeeAlso: AX=7A4Fh"RARPD"Top
INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - UNINSTALL AX = 7A4Fh Return: AX = 7AFFh if installed DX,ES destroyed Note: this call conflicts with SNMP.EXE (both RARPD and SNMP are supplied with LAN Workplace for DOS!), such that running SNMP will uninstall RARPD as SNMP checks whether it is already installed! SeeAlso: AX=7A4Eh"RARPD",AX=7A4Fh/BX=0001hTop
INT 2F U - Novell NetWare - SNMP.EXE - INSTALLATION CHECK AX = 7A4Fh BX = 0001h Return: AX = 7AFFh if installed Note: this call conflicts with RARPD.EXE (both SNMP and RARPD are supplied with LAN Workplace for DOS!), such that running SNMP will uninstall RARPD as SNMP checks whether it is already installed! SeeAlso: AX=7A4Fh"RARPD",AX=7A4Fh/BX=0002hTop
INT 2F U - Novell NetWare - SNMP.EXE - ??? AX = 7A4Fh BX = 0002h Return: AL = status 4Fh if failed FFh if successful SeeAlso: AX=7A4Fh/BX=0001hTop
INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - ABNORMAL EXIT AX = 7A80h Return: nothing Notes: called on abnormal exit of the NetWare shell to notify other Novell TSRs that it is unsafe to call the shell in the future; also called by NETX.VLM when it is unloaded must be passed through so that all interested programs see the exit on receiving this call, IPXODI clears an internal pointer to a default value; Novell's NETBIOS.EXE clears its INT 21h pointer to 0000h:0000h and stops calling it SeeAlso: AX=7A81hTop
INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - SET SHELL INT 21 HANDLER AX = 7A81h CX:DX -> shell's INT 21h entry point Return: nothing Notes: the shell calls this function as it loads to allow interested TSRs and drivers to make a local copy of the shell's entry point must be passed through so that all interested programs see itTop
INT 2F C - Novell NetWare - shell 3.01 - BROADCAST INFORM AX = 7A85h CX = broadcast server number Return: CX = 0000h if broadcast message handled by another program CX unchanged if broadcast not handled SeeAlso: AX=7A21hTop
INT 2F U - Novell NetWare - NETBIOS.EXE 3+ - INSTALLATION CHECK AX = 7A90h Return: AL = 00h if present BX = ??? CX = PSP segment of NETBIOS resident code SeeAlso: AX=7AFEhTop
INT 2F U - Personal NetWare - HRMIB - ??? AX = 7AA0h BX = function 0000h ??? 0001h ??? Return: ??? SeeAlso: AX=7A2Fh/BX=0EDChTop
INT 2F - LAN HiJack - LHR - DISABLE??? AX = 7AC1h Program: LAN HiJack is a NetWare utility by KDS Software which allows a user to take over control of a workstation remotely; LHR is the program run on the slave workstation SeeAlso: AX=7AC8h,AX=7AC9h,AX=7ACFhTop
INT 2F - LAN HiJack - LHR - SYNCHRONIZE SHIFT STATES??? AX = 7AC2h Note: sets BIOS keyboard status byte to an internal variable SeeAlso: AX=7AC3h,AX=7ACFhTop
INT 2F - LAN HiJack - LHR - CLEAR ??? FLAG AX = 7AC3h SeeAlso: AX=7AC2h,AX=7ACFhTop
INT 2F - LAN HiJack - LHR - ENABLE FUNCTIONS AX = 7AC8h BL = function(s) to enable (see #02909) SeeAlso: AX=7AC1h,AX=7AC9h,AX=7ACFh Bitfields for LAN HiJack function(s) to enable/disable: Bit(s) Description (Table 02909) 0 ??? 1 remote keyboard enabled 2 support remote's mouse 3-7 unusedTop
INT 2F - LAN HiJack - LHR - DISABLE FUNCTIONS AX = 7AC9h BL = function(s) to disable (see #02909) SeeAlso: AX=7AC1h,AX=7AC8hTop
INT 2F - LAN HiJack - LHJ - ??? AX = 7ACAh BL = ??? Return: ??? Program: LAN HiJack is a NetWare utility by KDS Software which allows a user to take over control of a workstation remotely; LHJ is the program run on the controlling workstationTop
INT 2F - LAN HiJack - LHJ - ??? AX = 7ACBh BX = ??? Return: ??? Note: this function appears to be related to the keyboard SeeAlso: AX=7ACChTop
INT 2F - LAN HiJack - LHJ - ??? AX = 7ACCh BX = ??? Return: ??? Note: this function appears to be related to the mouse SeeAlso: AX=7ACBhTop
INT 2F - LAN HiJack - LHR - INSTALLATION CHECK AX = 7ACFh BX = 0000h Return: BX = segment of resident code if installed Program: LAN HiJack is a NetWare utility by KDS Software which allows a user to take over control of a workstation remotely; LHR is the program run on the slave workstationTop
INT 2F - Novell NetWare - DOSNP.EXE v1.30G - INSTALLATION CHECK AX = 7AF0h Return: AL = FFh if present ES = 7AF0h CX = PSP segment of resident codeTop
INT 2F - Novell NetWare - Access Server Driver - INSTALLATION CHECK AX = 7AF1h BL = sequence number (01h first driver, 02h second, 00h no driver) Return: AX <> 7AF1h if present BH = total number of drivers ---if BL nonzero on entry--- AL = number of ports provided by specified driver ES:DI -> driver entry point (see #02910,#02911,#02912,#02913,#02914,#02915,#02916,#02917) ES:DX -> ID string SeeAlso: INT 7A/BX=001Ch (Table 02910) Call Access Server driver "initialize port" function with: AH = 01h AL = port number (00h-0Fh) ES:BX -> configuration parameter block (see #02923) interrupts disabled Return: CF clear if successful CF set on error SeeAlso: #02911 (Table 02911) Call Access Server driver "get port status" function with: AH = 02h AL = port number (00h-0Fh) interrupts disabled Return: CF clear if successful BL = transmitter status (see #02920) BH = receiver status (see #02921) DL = external status signals (see #02922) CF set on error interrupts disabled SeeAlso: #02910,#02912,#02915 (Table 02912) Call Access Server driver "get input from port" function with: AH = 03h AL = port number (00h-0Fh) CX = size of data buffer ES:BX -> buffer for data interrupts disabled Return: CF clear if successful CF set on error interrupts disabled CX = number of bytes read Note: the driver will add a NUL to the buffer when a break signal is detected SeeAlso: #02912,#02913 (Table 02913) Call driver "send output data to port" function with: AH = 04h AL = port number (00h-0Fh) CX = number of bytes to send ES:BX -> buffer containing data interrupts disabled Return: CF clear if successful CF set on error interrupts disabled CX = number of bytes actually written SeeAlso: #02912,#02914 (Table 02914) Call driver "get I/O character counts" function with: AH = 05h AL = port number (00h-0Fh) interrupts disabled Return: CF clear if successful BX = number of bytes pending transmission CX = number of bytes available for reading CF set on error interrupts disabled SeeAlso: #02912,#02913 (Table 02915) Call driver "control XON/XOFF" function with: AH = 06h AL = port number (00h-0Fh) DL = new state (00h software flow control disabled, else enabled) interrupts disabled Return: CF clear if successful CF set on error interrupts disabled SeeAlso: #02916 (Table 02916) Call driver "get error counts and statistics" function with: AH = 07h AL = port number (00h-0Fh) ES:BX -> buffer for statistics (see #02924) interrupts disabled Return: CF clear if successful ES:BX buffer filled CF set on error interrupts disabled SeeAlso: #02917,#02918,#02919 (Table 02917) Call driver "general request" function with: AH = 08h AL = port number (00h-0Fh) DX = requested operations bit 0: flush transmit buffers bit 1: flush receive buffers bit 4: define XON/XOFF characters ES:BX -> XON/XOFF characters (see #02925) if DX bit 4 set interrupts disabled Return: CF clear if successful CF set on error interrupts disabled (Table 02918) Call driver "deadman timer management" function with: AH = 09h AL = port number (00h-0Fh) BX = next time interval in seconds (0000h to disable timer) interrupts disabled Return: CF clear interrupts disabled SeeAlso: #02919 (Table 02919) Call driver "get buffer sizes" function with: AH = 0Ah AL = port number (00h-0Fh) interrupts disabled Return: CF clear if successful BX = size of transmit buffer CX = size of receive buffer CF set on error interrupts disabled SeeAlso: #02918 (Table 02920) Values for Access Server transmitter status: 00h uninitialized 01h ready, not transmitting 02h transmitting 03h XOFF received 04h transmitting, buffer full 05h XOFF received and buffer full (Table 02921) Values for Access Server receiver status: 00h uninitialized 01h ready 02h receive buffer full, data may have been lost Bitfields for external status signals: Bit(s) Description (Table 02922) 7,6 undefined 5 CTS active 4 DSR active 3 DCD active 2,1 undefined 0 ring indicator Format of Access Server configuration parameter block: Offset Size Description (Table 02923) 00h BYTE receive baud rate index 00h 50 bps, 01h 75 bps, 02h 110 bps, 03h 134.5 bps, 04h 150 bps, 05h 300 bps, 06h 600 bps, 07h 1200 bps, 08h 1800 bps, 09h 2000 bps, 0Ah 2400 bps, 0Bh 3600 bps, 0Ch 4800 bps, 0Dh 7200 bps, 0Eh 9600 bps, 0Fh 19200 bps, 10h 38400 bps, 11h 57600 bps, 12h 115200 bps 01h BYTE receive bits per character (0=5 bits..3=8 bits) 02h BYTE receive stop bits 03h BYTE receive parity 00h none, 01h odd, 02h even, 03h mark, 04h space 04h BYTE transmit baud rate index (same as receive baud rate) 05h BYTE transmit bits per character (0=5 bits..3=8 bits) 06h BYTE transmit stop bits 07h BYTE transmit parity (same as receive parity) 08h BYTE DTR state (00h off, 01h on) 09h BYTE RTS state (00h off, 01h on) 0Ah BYTE flow control (00h none, 01h XON/XOFF, 02h RTS/CTS, 03h both) 0Bh BYTE break control (00h off, 01h on) Format of Access Server statistics: Offset Size Description (Table 02924) 00h BYTE port number 01h BYTE external status signals (see #02922) 02h BYTE transmitter status (see #02920) 03h BYTE receiver status (see #02921) 04h DWORD number of characters received 08h DWORD number of characters transmitted 0Ch WORD input parity errors 0Eh WORD input framing errors 10h WORD lost characters due to hardware overrun 12h WORD lost characters due to data buffer overrun Note: the counts are not allowed to wrap around; once a count reaches FFFFh or FFFFFFFFh, it is no longer incremented Format of Access Server XON/XOFF characters: Offset Size Description (Table 02925) 00h BYTE 04h (number of bytes following) 01h BYTE transmit XON character 02h BYTE transmit XOFF character 03h BYTE receive XON character 04h BYTE receive XOFF characterTop
INT 2F U - Novell NetWare - DOSNP.EXE - INSTALLATION CHECK AX = 7AFEh Return: AL = FFh if present ES = (data???) segment of DOSNP Program: DOSNP.EXE provides "named pipes" support for DOS workstations running NetWare Note: the NetWare shell calls this function and refuses to load if DOSNP is present SeeAlso: AX=7A90hTop
INT 2F - Novell NetWare - TBMI v1.1+ - INSTALLATION CHECK / Windows SUPPORT
AX = 7AFFh
BX = 0000h
CX = 4E65h ("Ne")
DX = 7457h ("tW")
ES:DI -> Windows support procedure (see #02926)
Return: AL = FFh if installed
CX = configured sockets (14h)
DS:SI -> data table ???
ES:DI -> IPX far call handler
Notes: for IPX/SPX this call reportedly returns DS:SI pointing to the table
of pointers to service events queue head and tail
this function is also supported by IPXODI; v2.12 does not change DS,
but does set SI to an internal address
SeeAlso: AX=7AFFh/BX=0001h
(Table 02926)
Values Windows support procedure called with:
BP = function
0001h Get ECB
BX = socket number
Return: ES:SI -> ECB or 0000h:0000h if none available
0002h Count Listen ECBs
AX = BX = socket
Return: CX = number of listen ECBs for socket
(must be >= 2 for SPX to work)
0003h ???
0004h Inform task switcher of ECB locations
Note: registers other than those listed above are equal
to the values when IPX was called
Note: the support function will not be called if IPX is called with BX
bit 15 set
Top
INT 2F - Novell NetWare - TBMI v1.1+, shell v3.01d - INSTALLATION CHECK???
AX = 7AFFh
BX = 0001h
CX = 4E65h ("Ne")
DX = 7457h ("tW")
Return: AL = FFh if installed
CX = ??? (8000h)
SI = ??? (or -> ???) (0002h and 0007h seen)
ES:DI -> IPX far call handler
ES:DX -> 6-byte data area ???
Note: this function is also supported by IPXODI, but IPXODI v2.12 does not
return ES:DX
SeeAlso: AX=7AFFh/BX=0000h
Top
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - INSTALLATION CHECK AX = 7F00h Return: AL = FFh if installed SeeAlso: AX=7F01h"Harper",AX=7F02h"Harper",AX=7F03h"Harper"Top
INT 2F - PRINDIR v9.0 - INSTALLATION CHECK AX = 7F00h Return: AL = FFh if installed BX = version (BH = major, BL = minor) CX:DX -> ASCIZ signature "PRINDIR" Range: AH=7Fh is the default, may be changed at installation time Note: prior versions of PRINDIR used INT 7C or INT 7A SeeAlso: AX=7F01h"PRINDIR",AX=7F02h"PRINDIR",AX=7F03h"PRINDIR" SeeAlso: AX=7F06h"PRINDIR",AX=7F08h,AX=7F0Ah,AX=7F0Ch,AX=7F0Eh,INT 7C"PRINDIR"Top
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO COMMAND AX = 7F01h DS:DX -> command record (see #02927) Return: AL = status 00h successful else error code SeeAlso: AX=7F00h"Harper",AX=7F02h"Harper",INT 11/AH=FFh"SDLP" SeeAlso: INT 21/AX=4402h"ASPI",INT 4F/AX=8100h Format of CD-ROM redirector command record: Offset Size Description (Table 02927) 00h BYTE ID 01h 10 BYTEs CDB (Command Descriptor Block) for operation (see #03236,#03237) 0Bh WORD segment of buffer 0Dh WORD offset of buffer 0Fh BYTE status 10h BYTE sense 12h WORD countTop
INT 2F - PRINDIR v9.0 - SET CAPTURE DEVICE AX = 7F01h DX = capture device (as used by /GET commandline option) Return: AX = status 0000h successful FFFFh invalid device SeeAlso: AX=7F00h"PRINDIR",AX=7F02h"PRINDIR",AX=7F03h"PRINDIR" SeeAlso: AX=7F05h"PRINDIR"Top
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO RESET AX = 7F02h SeeAlso: AX=7F00h,AX=7F01hTop
INT 2F - PRINDIR v9.0 - SET DESTINATION DEVICE AX = 7F02h DX = destination device number (as used by /PUT commandline option) Return: AX = status 0000h successful FFFFh invalid device number SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR" SeeAlso: AX=7F06h"PRINDIR"Top
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - UNINSTALL AX = 7F03h Return: AL = status 00h successful 01h unable to uninstall SeeAlso: AX=7F00hTop
INT 2F - PRINDIR v9.0 - SET CAPTURE FILENAME AX = 7F03h CX:DX -> ASCIZ name of capture file Return: AX = status 0000h successful FFFFh name too long SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR" SeeAlso: AX=7F05h"PRINDIR",AX=7F07h"PRINDIR"Top
INT 2F - PRINDIR v9.0 - SET LOCK FILENAME AX = 7F04h CX:DX -> ASCIZ name of lock file Return: AX = status 0000h successful FFFFh invalid device number SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F03h"PRINDIR" SeeAlso: AX=7F05h,AX=7F06h,AX=7F08h,AX=7F0Ah,AX=7F0BhTop
INT 2F - PRINDIR v9.0 - DUMP CAPTURE BUFFER AX = 7F05h Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR",AX=7F06hTop
INT 2F - PRINDIR v9.0 - SET NORMAL TEXT COLOR AX = 7F06h DH = new attribute for normal text Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F05h"PRINDIR",AX=7F07hTop
INT 2F - PRINDIR v9.0 - SET HIGHLIGHT TEXT COLOR AX = 7F07h DH = new attribute for highlighted text Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F06h"PRINDIR",AX=7F08hTop
INT 2F - PRINDIR v9.0 - SET POPUP HOTKEY AX = 7F08h DH = new scancode for hotkey Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F05h"PRINDIR",AX=7F09h,AX=7F0Bh,AX=7F0DhTop
INT 2F - PRINDIR v9.0 - SET BYTE COUNTER DISPLAY AX = 7F09h DH = new state (00h off, 01h on) Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F07h"PRINDIR",AX=7F08h,AX=7F0Ah,AX=7F0ChTop
INT 2F - PRINDIR v9.0 - SET FLUSH DELAY AX = 7F0Ah DX = number of clock ticks before flushing Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F07h"PRINDIR",AX=7F09h,AX=7F0Bh,AX=7F0ChTop
INT 2F - PRINDIR v9.0 - SET MINIMUM DUMP SIZE AX = 7F0Bh DX = number of kilobytes to accumulate before dumping Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Ch,AX=7F0Dh,AX=7F0EhTop
INT 2F - PRINDIR v9.0 - SET ECHO STATE AX = 7F0Ch DX = new state (00h echo off, 01h echo on) Return: AX = status 0000h successful SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Dh,AX=7F0EhTop
INT 2F - PRINDIR v9.0 - SHOW POPUP PARAMETER MENU AX = 7F0Dh Return: AX = status 0000h successful else failed SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Ch,AX=7F0EhTop
INT 2F - PRINDIR v9.0 - SUBMIT BYTE TO CURRENT DESTINATION DEVICE AX = 7F0Eh DL = byte to send to destination device Return: AX = status 0000h successful else failed SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Ch,AX=7F0DhTop
INT 2F - Multiplex - ??? AX = 7F24h ??? Return: ??? Note: called by PC/370, an IBM 370 emulator by Donald S. HigginsTop
INT 2F - Multiplex - ??? AX = 7F26h ??? Return: ??? Note: called by PC/370, an IBM 370 emulator by Donald S. HigginsTop
INT 2F - EASY-NET - INSTALLATION CHECK AX = 8000h Return: AL = 00h not installed FFh installed Program: EASY-NET is a shareware two-machine serial-port networkTop
INT 2F - Nanosoft, Inc. TurboNET server - INSTALLATION CHECK AX = 8000h Return: AL = FFh if installed BX = CS of resident code CX = ??? (03FCh) Program: TurboNET is a NetBIOS-based file redirector and server; a demonstration version may be downloaded from Nanosoft's BBS SeeAlso: AX=8100hTop
INT 2F - CS_TSR specification - TSR INSTALLATION CHECK AX = 8000h DS:SI -> 4-byte CS_TSR signature (11h 43h 53h 10h) Return: AL = status 00h no CS_TSR-compliant TSRs installed 01h installed, but signature did not match FFh installed, signature matches ES:DI -> resident process block (see #02928) of last installed TSR (if DS:SI pointed at signature on entry) Program: the CS_TSR specification is a standardized TSR interface by Compact Soft group in Kiev, Ukraine Desc: determine whether any CS_TSR-compliant TSRs are installed on the selected multiplex number Range: AH=80h to AH=FFh SeeAlso: AX=8001h"CS_TSR",AX=8002h"CS_TSR",AX=8003h"CS_TSR" Format of CS_TSR process block: Offset Size Description (Table 02928) 00h 4 BYTEs CS_TSR signature 11h 43h 53h 10h 04h BYTE INT 2F multiplex number 05h WORD virtual process handle (unique among loaded TSRs) 07h 2 BYTEs version (binary minor version, then major version) 09h WORD PSP segment of TSR 0Bh DWORD pointer to ASCIZ program name 0Fh 3 BYTEs program creation date (day, month, year) 12h 3 BYTEs process start time (seconds, minutes, hours) 15h 3 BYTEs process start date (day, month, year)Top
INT 2F - FaxBIOS interface - INSTALLATION CHECK AX = 8000h DX = 0000h DI = 0000h Return: AL = FFh if installed DX:DI -> signature "FaxBiosjpc" Range: AH=80h to AH=FFh, selected by scanning multiplex numbers for signature SeeAlso: AH=2Ah,AX=80FBhTop
INT 2F - Nanosoft, Inc. TurboNET server - ??? AX = 8001h DS:SI -> 16-byte buffer for ??? Return: AH = status 00h successful 01h error (TurboNET busy) Note: makes NetBIOS callsTop
INT 2F - CS_TSR specification - GET HANDLE (TSR-SPECIFIC INSTALLATION CHECK) AX = 8001h DS:SI -> ASCIZ signature string for desired TSR (see #02929) Return: BX = process handle or 0000h if specified TSR not installed ES:DI -> process block for TSR (see #02928) if BX<>0000h Note: A widely-available copy of ASCII billing itself as "ASCII 2.OO by Nick Zaikin Jr." is in fact a hacked copy of the Compact Soft ASCII v4.23 which is identical except for the changed attribution and version (in fact, some instances of "4.23" were missed); the hacked copy requires the signature string "ASCII 2.OO by Nick Zaikin Jr." instead of the unhacked version's simple signature "ASCII" SeeAlso: AX=8000h"CS_TSR",AX=8002h"CS_TSR" (Table 02929) Values for CS_TSR signature strings: "ASCII" ASCII, a popup ASCII table with character input "Halculator" HALC, a 32-bit RPN WYSIWIH calculator with undo and ptr support "AntiTurbo" AT!, an intelligent system slow-down utilityTop
INT 2F - CS_TSR specification - GET PROCESS BLOCK BY PROCESS HANDLE AX = 8002h BX = process handle for TSR (see AX=8001h"CS_TSR") Return: ES:DI -> process block for specified TSR (see #02928) unchanged if no match for process handle Note: This function is used to allocate a process handle when the TSR installs itself, by setting ES:DI to point at something other than a CS_TSR process block's signature string and iterating through the possible process handles (0001h to FFFFh) until ES:DI is returned unchanged SeeAlso: AX=8000h"CS_TSR",AX=8001h"CS_TSR",AX=8003h"CS_TSR"Top
INT 2F - CS_TSR specification - CUSTOM SUBFUNCTION AX = 8003h BX = process handle for TSR (see AX=8001h"CS_TSR") other registers vary by TSR Return: vary by TSR, unchanged if not supported Program: the CS_TSR specification is a standardized TSR interface by Compact Soft group in Kiev, Ukraine SeeAlso: AX=8000h"CS_TSR",AX=8001h"CS_TSR",AX=8002h"CS_TSR"Top
INT 2F - FaxBIOS interface - COMMAND SUBMISSION AX = 80FBh BX = function number (see #02930) DX:DI -> command buffer (see #02932,#02935,#02936,#02937,#02938,#02939,#02944,#02950,#02957) Return: AL = FFh if submitted OK CX = result code (see #02931) Range: AH=80h to AH=FFh, selected by scanning multiplex numbers for signature SeeAlso: AX=8000h"FaxBIOS",AX=CBDDh (Table 02930) Values for FaxBIOS function number: 0001h SYS_LOGIN 0002h SYS_LOGOUT 0003h SYS_GET_FAXAPP_INFO 0004h STAT_IO_GET 0005h STAT_FAXBIOS_GET 0006h PDIR_OPEN 0007h PDIR_CLOSE (see #02940) 0008h PDIR_READ_PERSON (see #02941) 0009h PDIR_PARTIAL_READ 000Ah PDIR_READ_GROUP 000Bh PDIR_READ_MEMBER_LIST 000Ch PDIR_WRITE_PERSON 000Dh PDIR_WRITE_GROUP 000Eh PDIR_DELETE_PERSON 000Fh PDIR_DELETE_GROUP 0010h PDIR_READ_GROUP_LIST 0011h PDIR_IN_GROUP 0012h PDIR_OUT_GROUP 0013h SCHED_OPEN (see #02942) 0014h SCHED_ADD_DEST (see #02943) 0015h SCHED_ADD_FILE (see #02944) 0016h SCHED_SET_PARAMS (see #02945) 0017h SCHED_CANCEL (see #02942) 0018h SCHED_CLOSE (see #02946) 0019h SLOG_OPEN (see #02947) 001Ah SLOG_CLOSE (see #02947) 001Bh SLOG_SHORT_ENV_STAT 001Ch SLOG_LONG_ENV_STAT 001Dh SLOG_DEST_STAT 001Eh SLOG_FILE_STAT 001Fh SLOG_CANCEL_ENV 0020h RLOG_OPEN (see #02947) 0021h RLOG_CLOSE (see #02947) 0022h RLOG_READ 0023h GRAPH_GET_FILE_TYPE (see #02948) 0024h GRAPH_EXPORT_FILE 0025h GRAPH_GET_LAYOUT_INFO 0026h GRAPH_CREATE_FILE (see #02949) 0027h GRAPH_CLOSE_FILE (see #02950) 0028h GRAPH_CREATE_PAGE (see #02951) 0029h GRAPH_WRITE (see #02952) 002Ah GRAPH_END_PAGE 002Bh GRAPH_OPEN_FILE (see #02953) 002Ch GRAPH_GOTO_PAGE (see #02954) 002Dh GRAPH_READ (see #02955) 002Eh IOCTL_GET 002Fh IOCTL_SET 0030h IOCTL_ANSWER_FAX (see #02956) 0031h IOCTL_DIAL (see #02957) (Table 02931) Values for FaxBIOS result code: 0000h successful 0001h not prepared or servicing another client (busy) 0002h call failed due to sharing (LOCKED) 0003h logged-in client limit reached (FULL) 0004h transport denied (TRANSPORT_DENIED) 0005h not implemented (NOT_IMPLEMENTED) 0006h aborted while in progress (ABORTED) 0007h permissions denied (PERMISSION_DENIED) 0008h requested data is no longer valid (NO_LONGER_VALID) 0080h unspecified system error occurred 0081h an internal file was not found 0082h an internal file could not be created 0083h an internal file could not be opened 0084h an internal file could not be closed 0085h error occurred writing to an internal file 0086h error occurred reading from an internal file 0087h bad or corrupted file encountered 0088h an access violation occurred 0089h an internal file is empty 008Ah insufficient memory to process request 008Bh FaxBIOS was unable to issue a handle 008Ch an error internal to FaxBIOS occurred 008Dh no room on disk 0100h unspecified error accessing client file 0101h file not found 0102h creation fault 0103h open fault 0104h close fault 0105h write fault 0106h read fault 0107h file corrupted 0108h access violation 0109h empty file 0200h unspecified argument error 0201h bad function 0202h bad option 0203h bad structure size 0204h bad buffer size 0205h bad client ID 0300h unspecified error with token 0301h cover sheet token was invalid 0302h logo token was invalid 0303h signature token was invalid 0304h font token was invalid 0305h phone directory token was invalid 0306h outbound route token was invalid 0307h priority token was invalid 0308h sort token was invalid 0309h billing token was invalid 0400h unspecified handle error 0401h bad Phone Directory handle 0402h bad scheduling handle 0403h bad read send log handle 0404h bad read receive log handle 0405h bad graphics handle 0500h data passed in structure was invalid 0501h name field given is invalid 0502h phone number given is invalid 0503h poll code submitted is invalid 0504h file type constant was invalid 0505h BFT constant not defined or supported 0506h resolution not defined or supported 0507h page length not defined or supported 0508h page width not defined or supported 0509h date & time requested are ridiculous 050Ah Subject text was not an ASCIZ string 050Bh From text was not an ASCIZ string 050Ch requested envelope ID was not found 050Dh requested envelope ID is not valid 050Eh envelope requested was not found 050Fh destination index is out of range 0510h file index is out of range 0511h index into receive log is out of range 0512h file name specified was incomplete or invalid 0513h page selected was out of range 0514h bit width more than byte width 0515h mode for open is not defined 0516h person index is out of range 0517h person ID is out of range 0518h group index out of range or invalid 0519h group ID out of range or invalid 051Ah range of indices to read is invalid 051Bh group name given is invalid 051Ch field_to_use is badly specified 051Dh predicate invalid for field specified 0600h unspecified client procedure error 0601h device of interest is not present 0602h device of interest has been removed 0603h device of interest is not responding 0604h device of interest is disabled 0605h could not dial because device was in use 0606h maximum destination limit exceeded 0607h maximum file limit exceeded 0608h scheduling closed with no destination 0609h scheduling closed with no files or poll 060Ah scheduling closed with no parameters specified 060Bh file type specified does not match file 060Ch file type specified is not supported 060Dh file submitted is not exportable 060Eh file type specified is not imageable 060Fh error converting file 0610h envelope could not be cancelled 0611h Phone Directory is full 0612h record is already in the Phone Directory 0613h selected group in Phone Directory is full 0614h person is already in the group 0615h person is not in the group & cannot be removed 0616h a graphics file to be created already exists 0617h a graphics file to be read is empty 0618h GRAPH_CREATE_PAGE called before GRAPH_END_PAGE 0619h graph read or write attempted without goto or create 061Ah graph page contains no data 061Bh Phone Directory is already open for this client 061Ch schedule log is already open for this client 061Dh receive log is aready open for this client 061Eh Phone Directory function requires write mode 0800h denied exclusive use of the API Format of FaxBIOS SYS_LOGIN command buffer: Offset Size Description (Table 02932) 00h WORD structure size 02h WORD function number 04h WORD return code 06h WORD client ID 08h WORD API Major Version 0Ah WORD API Minor Version 0Ch DWORD reserved for manufacturer's use 10h 22 BYTEs manufacturer's ID 26h WORD highest possible device number 28h WORD maximum destinations per envelope 2Ah WORD maximum files per envelope 2Ch WORD FaxBIOS capabilities (see #02933) 2Eh DWORD T.30 capabilities (see #02934) 32h WORD IPC handle 34h DWORD amount of memory needed to load 38h WORD scope (00h for public, nonzero for private) 3Ah 6 BYTEs future expansion 40h WORD structure size Bitfields for FaxBIOS capabilities: Bit(s) Description (Table 02933) 0 transmit supported 1 receive supported 2 IOCTL supported 3 IOCTL_DIAL supported 4 IOCTL_ANSWER_FAX supported 5 manual transmit supported 6 optional phone services supported 7 canonical phone objects 8 seam with next supported Bitfields for T.30 capabilities: Bit(s) Description (Table 02934) 0 low vertical resolution (minimum) 1 high vertical resolution 2 page width 107mm (4.21 in) 3 page width 151mm (5.91 in) 4 page width 215mm (8.46 in) (minimum) 5 page width 255mm (10.04 in) 6 page width 303mm (11.93 in) 7 unused 8 page length 297mm (11.69 in) (minimum) 9 page length 364mm (14.33 in) 10 page length 279mm (11 in) 11 page length unlimited 12 Group 4 resolution 300x300 13 Group 4 resolution 400x400 14 able to respond to poll from remote 15 able to poll remote 16 binary file transfer supported Format of FaxBIOS SYS_LOGOUT command buffer: Offset Size Description (Table 02935) 00h WORD structure size 02h WORD function number 04h WORD return code 06h WORD client ID 08h DWORD client tag (for client's internal use) 0Ch 6 BYTEs future expansion 12h WORD structure size Format of FaxBIOS SYS_GET_FAXAPP_INFO command buffer: Offset Size Description (Table 02936) 00h 12 BYTEs common data (see #02935) 0Ch 80 BYTEs FaxBIOS data 5Ch 80 BYTEs default cover ACh 80 BYTEs default logo FCh 80 BYTEs default signature 14Ch 80 BYTEs default font 10 19Ch 80 BYTEs default font 165 1ECh 80 BYTEs default user font 23Ch 80 BYTEs default Pdir 28Ch 80 BYTEs default sort 2DCh 10 BYTEs default bill 2E6h 10 BYTEs default route 2F0h 40 BYTEs default cover sheet form 318h 34 BYTEs valid dial characters 33Ah 6 BYTEs local country code 340h 6 BYTEs local city or area code 346h 6 BYTEs future expansion 34Ch WORD structure size Format of FaxBIOS STAT_IO_GET command buffer: Offset Size Description (Table 02937) 00h 12 BYTEs common data (see #02935) 0Ch WORD device number 0Eh WORD current activity 10h WORD number of rings (if ringing) 12h WORD number of fascimiles transmitted 14h WORD number of fascimiles received 16h WORD status of last transmission 18h WORD envelope number of last transmission 1Ah WORD index of last destination in envelope 1Ch WORD status of last reception 1Eh WORD current page (if session in progress) 20h 80 BYTEs current file 70h 104 BYTEs remote number D8h 20 BYTEs last name ECh 20 BYTEs first name 100h 32 BYTEs company name 120h 32 BYTEs notes 140h WORD current envelope ID (if sending) 142h WORD total pages in transmission (if sending) 144h 6 BYTEs future expansion 14h WORD structure size Format of FaxBIOS STAT_FAXBIOS_GET command buffer: Offset Size Description (Table 02938) 00h 12 BYTEs common data (see #02935) 0Ch WORD status ID 0Eh WORD currenty FaxBIOS function number 10h WORD current Client ID being serviced 12h WORD number of things to do 14h WORD number of them done 16h WORD number of pages to do (if any) 18h WORD number of them done 1Ah WORD number of files to do 1Ch WORD number of them done 1Eh 80 BYTEs current File 6Eh WORD 0 if all devices are idle 70h WORD number of fascimiles transmitted 72h WORD number of fascimiles received 74h WORD status of last transmission in system 76h WORD envelope ID of last transmission 78h WORD index of last destination in envelope 7Ah WORD status of last reception in system 7Ch DWORD time of next transmission 80h 6 BYTEs future expansion 86h WORD structure size Format of FaxBIOS PDIR_OPEN command buffer: Offset Size Description (Table 02939) 00h 12 BYTEs common data (see #02935) 0Ch 80 BYTEs Phone Directory token 5Ch 80 BYTEs sort order token ACh WORD open Mode (0 = read, 1 = write) AEh WORD Phone Directory handle B0h WORD number of people B2h WORD number of groups B4h WORD bitmap of fields supported by partial read B6h 6 BYTEs future expansion BCh WORD structure size Format of FaxBIOS PDIR_CLOSE command buffer: Offset Size Description (Table 02940) 00h 12 BYTEs common data (see #02935) 0Ch WORD Phone Directory handle 0Eh 6 BYTEs future expansion 14h WORD structure size Format of FaxBIOS PDIR_READ_PERSON command buffer: Offset Size Description (Table 02941) 00h 12 BYTEs common data (see #02935) 0Ch WORD Phone Directory handle 0Eh WORD retrieve by index 10h WORD person ID or index 12h WORD how many groups person is in 14h WORD person ID 16h 20 BYTEs last name 2Ah 20 BYTEs first name 3Eh 32 BYTEs company 5Eh 32 BYTEs notes 7Eh 6 BYTEs FAX country code 84h 6 BYTEs FAX city/area code 8Ah 14 BYTEs FAX local number 98h 14 BYTEs FAX extension A6h 24 BYTEs reserved BEh 6 BYTEs voice country code C4h 6 BYTEs voice city/area code CAh 14 BYTEs voice local number D8h 14 BYTEs voice extension E6h 24 BYTEs reserved FEh 10 BYTEs outbound routing information 108h 10 BYTEs billing information, credit card etc 112h DWORD remote FAX capabilities 116h 21 BYTEs T.30 poll code of FAX number 12Bh 15 BYTEs reserved 13Ah 6 BYTEs future expansion 140h WORD structure size Format of FaxBIOS SCHED_OPEN, SCHED_CANCEL command buffer: Offset Size Description (Table 02942) 00h 12 BYTEs common data (see #02935) 0Ch WORD scheduler handle 0Eh 6 BYTEs future expansion 14h WORD structure size Format of FaxBIOS SCHED_ADD_DEST command buffer: Offset Size Description (Table 02943) 00h 12 BYTEs common data (see #02935) 0Ch WORD schedule handle 0Eh WORD device number if manual send wanted 10h WORD non-zero if poll desired 12h WORD person ID 14h 20 BYTEs last name 28h 20 BYTEs first name 3Ch 32 BYTEs company 5Ch 32 BYTEs notes 7Ch 6 BYTEs FAX country code 82h 6 BYTEs FAX city/area code 88h 14 BYTEs FAX local number 96h 14 BYTEs FAX extension A4h 24 BYTEs reserved BCh 6 BYTEs voice country code C2h 6 BYTEs voice city/area code C8h 14 BYTEs voice local number D6h 14 BYTEs voice extension E4h 24 BYTEs reserved FCh 10 BYTEs outbound routing information 106h 10 BYTEs billing information, credit card etc 110h DWORD remote FAX capabilities 114h 21 BYTEs T.30 poll code of FAX number 129h 15 BYTEs reserved 138h 6 BYTEs future expansion 13Eh WORD structure size SeeAlso: #02944 Format of FaxBIOS SCHED_ADD_FILE command buffer: Offset Size Description (Table 02944) 00h 12 BYTEs common data (see #02935) 0Ch WORD schedule handle 0Eh WORD file type 0000h unidentified 0001h native file format 0002h ASCII 0003h FaxBIOS Tiff Class F 10h 80 BYTEs file name 60h 80 BYTEs font token B0h WORD conversion options bitmap B2h WORD resolution 0000h standard 98 lines per inch, 204 dpi 0001h fine 196 lines per inch, 204 dpi 0002h Group4 300 dpi 0003h Group4 400 dpi B4h WORD page length 0000h 279 mm (11 in) 0001h 297 mm (11.69 in) 0002h 364 mm (14.33 in) 0003h unlimited B6h WORD page width 0000h 215 mm (8.46 in) 0001h 255 mm (10.04 in) 0002h 303 mm (11.93 in) 0003h 151 mm (5.91 in) 0004h 107 mm (4.21 in) B8h WORD binary file transfer specification 0000h only as FAX 0001h only as file (for non-faxable files) 0002h as file when possible else FAX BAh WORD seam flag (nonzero for seam with next) BCh WORD delete flag (nonzero to delete when done) BEh 6 BYTEs future expansion C4h WORD structure size SeeAlso: #02943,#02945 Format of FaxBIOS SCHED_SET_PARAMS command buffer: Offset Size Description (Table 02945) 00h 12 BYTEs common data (see #02935) 0Ch WORD scheduler handle 0Eh DWORD time to send 10h 10 BYTEs priority token 1Ch 80 BYTEs logo file token 6Ch 80 BYTEs signature file token BCh 80 BYTEs cover page token 10Ch 40 BYTEs Subject text 134h 40 BYTEs From text 15Ch WORD user ID 15Eh 6 BYTEs future expansion 164h WORD structure size SeeAlso: #02943,#02944,#02946 Format of FaxBIOS SCHED_CLOSE command buffer: Offset Size Description (Table 02946) 00h 12 BYTEs common data (see #02935) 0Ch WORD scheduler handle 0Eh WORD envelope ID generated 10h 6 BYTEs future expansion 16h WORD structure size SeeAlso: #02945 Format of FaxBIOS SLOG_OPEN, SLOG_CLOSE, RLOG_OPEN, RLOG_CLOSE command buffer: Offset Size Description (Table 02947) 00h 12 BYTEs common data (see #02935) 0Ch WORD log handle 0Eh WORD number of entries 10h 6 BYTEs future expansion 16h WORD structure size Format of FaxBIOS GRAPH_GET_FILE_TYPE command buffer: Offset Size Description (Table 02948) 00h 12 BYTEs common data (see #02935) 0Ch 80 BYTEs filename 5Ch WORD file type 0000h unidentified 0001h native file format 0002h ASCII 0003h FaxBIOS Tiff Class F 5Eh WORD bitmap of supported capabilities 60h 6 BYTEs future expansion 66h WORD structure size SeeAlso: #02949,#02950 Format of FaxBIOS GRAPH_CREATE_FILE command buffer: Offset Size Description (Table 02949) 00h 12 BYTEs common data (see #02935) 0Ch 80 BYTEs filename 5Ch WORD graph handle 5Eh 6 BYTEs future expansion 64h WORD structure size SeeAlso: #02948,#02950,#02951 Format of FaxBIOS GRAPH_CLOSE_FILE, GRAPH_END_PAGE command buffer: Offset Size Description (Table 02950) 00h 12 BYTEs common data (see #02935) 0Ch WORD graph handle 0Eh 6 BYTEs future expansion 14h WORD structure size SeeAlso: #02949,#02951 Format of FaxBIOS GRAPH_CREATE_PAGE command buffer: Offset Size Description (Table 02951) 00h 12 BYTEs common data (see #02935) 0Ch WORD graph handle 0Eh WORD resolution 10h WORD page width 12h 6 BYTEs future expansion 18h WORD structure size SeeAlso: #02949,#02950,#02952 Format of FaxBIOS GRAPH_WRITE_PAGE command buffer: Offset Size Description (Table 02952) 00h 12 BYTEs common data (see #02935) 0Ch WORD graph handle 0Eh DWORD pointer to storage for image 12h WORD band height in lines 14h WORD width of page image in bytes 16h WORD facsimile page width constant 18h WORD width of page image in bits 1Ah WORD number of bytes actually processed 1Ch 6 BYTEs future expansion 22h WORD structure size SeeAlso: #02951,#02953 Format of FaxBIOS GRAPH_OPEN_FILE command buffer: Offset Size Description (Table 02953) 00h 12 BYTEs common data (see #02935) 0Ch 80 BYTEs filename 5Ch WORD file type 5Eh WORD graph handle 60h WORD number of pages 62h 6 BYTEs future expansion 68h WORD structure size SeeAlso: #02952,#02954 Format of FaxBIOS GRAPH_GOTO_PAGE command buffer: Offset Size Description (Table 02954) 00h 12 BYTEs common data (see #02935) 0Ch WORD graph handle 0Eh WORD page number 10h WORD vertical resolution 12h WORD page width 14h DWORD page length 18h 6 BYTEs future expansion 1Eh WORD structure size SeeAlso: #02952,#02953,#02955 Format of FaxBIOS GRAPH_READ_PAGE command buffer: Offset Size Description (Table 02955) 00h 12 BYTEs common data (see #02935) 0Ch WORD graph handle 0Eh DWORD pointer to storage for image 12h WORD band height in lines 14h WORD width of page image in bytes 16h WORD facsimile page width constant 18h WORD width of page image in bits 1Ah WORD number of bytes actually processed 1Ch 6 BYTEs future expansion 22h WORD structure size Format of FaxBIOS IOCTL_ANSWER_FAX command buffer: Offset Size Description (Table 02956) 00h 12 BYTEs common data (see #02935) 0Ch WORD device number 0Eh 6 BYTEs future expansion 14h WORD structure size SeeAlso: #02957 Format of FaxBIOS IOCTL_DIAL command buffer: Offset Size Description (Table 02957) 00h 12 BYTEs common data (see #02935) 0Ch WORD device number 0Eh 6 BYTEs country code 14h 6 BYTEs city or area code 1Ah 14 BYTEs local number 28h 14 BYTEs extension 36h 14 BYTEs reserved 4Eh 6 BYTEs future expansion 54h WORD structure size SeeAlso: #02956Top
INT 2F U - Nanosoft, Inc. TurboNET redirector - INSTALLATION CHECK AX = 8100h Return: AL = FFh if installed Program: TurboNET is a NetBIOS-based file redirector and server; a demonstration version may be downloaded from Nanosoft's BBS SeeAlso: AX=8000h"TurboNET"Top
INT 2F U - Nanosoft, Inc. TurboNET redirector - ??? AX = 8101h Return: AL = ??? DL = ???Top
INT 2F U - Nanosoft, Inc. TurboNET redirector - ??? AX = 8102h Return: AL = ??? DL = ???Top
INT 2F U - Nanosoft, Inc. TurboNET redirector - GET MACHINE NAME??? AX = 8103h ES:DI -> 17-byte buffer Return: buffer filledTop
INT 2F U - Nanosoft, Inc. TurboNET redirector - ??? AX = 8104h BL = ??? BH = ??? CX = ??? DX = ??? DS:SI -> 16-byte buffer containing ??? Return: AL = 00h ???Top
INT 2F U - Nanosoft, Inc. TurboNET redirector - ??? AX = 8105h CX = ??? (don't change current value if 0000h) DX = ??? (don't change current value if 0000h) Return: AL = 00h successfulTop
INT 2F - RESPLAY - SAMPLE/PLAYBACK AX = 8200h DX:DI -> start of sample space CX:BX = length in bytes Return: AX = status (see #02958) Program: RESPLAY is a freeware sound sampling/playback utility by Mark J. Cox SeeAlso: AX=8201h"RESPLAY",AX=8210h (Table 02958) Values for RESPLAY status: 1000h successful 2000h not initialized (see AX=8210h) other RESPLAY not installedTop
INT 2F U - Nanosoft, Inc. CAPDOS - INSTALLATION CHECK AX = 8200h Return: AL = FFh if installed Program: CAPDOS is a TSR by Nanosoft, Inc. which allows INT 21h calls to be captured and recorded for later analysis SeeAlso: AX=8100h,AX=8201h"CAPDOS",AX=8202h"CAPDOS",AX=8203h"CAPDOS" SeeAlso: AX=8204h"CAPDOS"Top
INT 2F - RESPLAY - INSTALLATION CHECK AX = 8201h Return: AX = 7746h if installed SeeAlso: AX=8202h"RESPLAY",AX=8210hTop
INT 2F - Nanosoft, Inc. CAPDOS - CLEAR QUEUE AX = 8201h Note: resets queue of captured INT 21 calls SeeAlso: AX=8200h"CAPDOS"Top
INT 2F - RESPLAY - UNINSTALL AX = 8202h Return: AX = status 1000h successful SeeAlso: AX=8201h"RESPLAY",AX=8210h"RESPLAY"Top
INT 2F - Nanosoft, Inc. CAPDOS - START COLLECTION AX = 8202h SeeAlso: AX=8200h"CAPDOS",AX=8203h"CAPDOS"Top
INT 2F - Nanosoft, Inc. CAPDOS - STOP COLLECTION AX = 8203h SeeAlso: AX=8200h"CAPDOS",AX=8202h"CAPDOS",AX=8204h"CAPDOS"Top
INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE PARAMETERS AX = 8204h Return: AH = flag: queue wrapped if nonzero BX = index of current start of queue CX = size of queue in entries SeeAlso: AX=8200h"CAPDOS",AX=8202h"CAPDOS",AX=8205h"CAPDOS"Top
INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE ITEM AX = 8205h BX = queue item number Return: AX,BX,CX,DX,SI,DI,DS,ES as on entry to captured DOS call SeeAlso: AX=8200h"CAPDOS",AX=8204h"CAPDOS"Top
INT 2F - RESPLAY - INITIALIZE AX = 8210h BL = sound device number (see #02959) BH = sample rate in multiples of 250 Hz (14h to A0h) CL = direction 00h playback 01h sample Return: AX = status (see #02958) SeeAlso: AX=8200h"RESPLAY",AX=8220h"MODRES" (Table 02959) Values for RESPLAY sound device: 00h printer port LPT1 01h printer port LPT2 02h prototype board at I/O address 0300h 03h printer port (alternative LPT1) 04h internal speakerTop
INT 2F - MODRES - PLAY MODULE
AX = 8220h
DX:CX -> MODPARM structure (see #02960)
Return: AX = status
5722h succesful
2000h parameters out of range
other MODRES not installed
SeeAlso: AX=8221h,AX=8223h,AX=8225h,AX=8227h,AX=8200h"RESPLAY"
Format of MODPARM Structure:
Offset Size Description (Table 02960)
00h WORD signature 504Dh ("MP" = Modparm)
02h BYTE output device (see #02962 at INT 2F/AX=8221h)
03h WORD segment of start of main module (pattern) data
05h 31 WORDs segment of start of sample numbers 1-31
43h BYTE pattern at which to start playing (00h to 7Fh)
44h BYTE function
00h play from pattern [offset 43h] until end of the song
01h play indicated pattern [offset 43h] only
45h BYTE Machine speed
00h 10-12Mhz
01h 12-25Mhz (default)
02h 25Mhz+
03h mix speed 10kHz (fast 8Mhz machines)
04h mix speed 12kHz (10Mhz machines)
05h mix speed 13kHz
06h mix speed 8kHz (test for 8Mhz machines)
46h BYTE allow >64k sample playing
80h MOD has samples >64k in it
else all samples in MOD are <64k
Notes: Main module data and all samples must start on segment boundaries.
In version 2.00 (ONLY) this function carries on playing (works in
the background)
SeeAlso: #02961
Top
INT 2F - MODRES - INSTALLATION CHECK AX = 8221h Return: AX = status 5722h successful other MODRES not installed BX = BCD version number (BH = major, BL = minor) DX:CX -> Output Device structure (read-only) (see #02961) SeeAlso: AX=8220h,AX=8222h,AX=8225h,AX=8227h Format of Output Device structure [array]: Offset Size Description (Table 02961) 00h 20 BYTEs ASCIZ name of the output device (end of list if first char is FFh) 14h WORD apparently always FFFFh 16h WORD 0000h if output device not available else first I/O port for the output device 18h WORD second I/O port for the output device (for example if it is stereo) 000oh if only one port used or device is not available 1Ah 7 BYTEs ??? SeeAlso: #02960,#02962 (Table 02962) Values for MODRES v1.52 output device index: 00h PC speaker 01h D/A Converter on LPT1 02h D/A Converter on LPT2 03h D/A Converter on LPT3 04h D/A Converter on LPT4 05h D/A Converter on LPT1&LPT2 (stereo) 06h D/A Converter on LPT1&LPT2 (mono) 07h Sound Blaster (port 02x0h) 08h User Defined D/A (mono) 09h User Defined D/A (stereo) 0Ah Stereo-on-1 0Bh Disney SS su LPT1 0Ch Disney SS su LPT2 0Dh Disney SS su LPT3 0Eh Disney SS su LPT4 Note: this list may vary between versions of MODRESTop
INT 2F - MODRES - UNINSTALL AX = 8222h Return: AX = code segment of the program Note: this function does not release the TSRs memory; the caller must do so SeeAlso: AX=8220h,AX=8221h,AX=8223hTop
INT 2F - MODRES - PLAY SAMPLE
AX = 8223h
DX:CX -> SAMPARM structure (see #02963)
Return: AX = status
5722h succesful
2000h parameters out of range
other MODRES not installed
SeeAlso: AX=8221h,AX=8224h,AX=8225h,AX=8226h
Format of SAMPARM Structure:
Offset Size Description (Table 02963)
00h WORD signature 5053h ("SP" = SAMPARM)
02h WORD segment of start of sample to play
04h WORD length of sample (IN WORD)
06h BYTE output device (see #02962 at INT 2F/AX=8221h)
07h WORD pitch to play (see #02964)
09h BYTE volume (from 00h to 40h)
0Ah WORD loop start
0Ch WORD loop length
0Eh BYTE machine speed (see INT 2F/AX=8220h)
SeeAlso: #02960
(Table 02964)
Values for Pitch to play::
C 0 is 06B0h
C#0 is 06B0h / 2^(1/12)
D 0 is (06B0h / 2^(1/12)) / 2^(1/12)
...
Note: C 1 is 06B0h / 2
C 2 is 06B0h / 4
etc.
SeeAlso: #02963
Top
INT 2F - MODRES - ??? AX = 8224h DX:CX -> ??? Return: ??? SeeAlso: AX=8221h,AX=8223h,AX=8224hTop
INT 2F - MODRES v2.00+ - GET LOCATION IN MOD AX = 8225h Return: AL = status 00h playing 01h reached end or stopped AH = speed of MOD BX = position within pattern 0000h-0400h CL = position within the song (track number) SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8226hTop
INT 2F - MODRES v2.00+ - STOP PLAYING AX = 8226h Return: AX = status 5722h succesful other MODRES not installed Desc: stops playing the MOD file before performing critical operations such as disk accesses SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8225h,AX=8227hTop
INT 2F - MODRES - CONFIGURE AX = 8227h BX = function 0001h set default playing speed (06h) 0002h select output device CL = output device (see #02962 at INT 2F/AX=8221h) Return: AX = status 5722h succesful 2000h parameters out of range other MODRES not installed Note: function 0001h should be called every time a new module is loaded SeeAlso: AX=8220h,AX=8221h,AX=8222h,AX=8223hTop
INT 2F U - ??? AH = 86h AL = function (at least 06h and 07h) ??? Return: ??? Note: called by Codeview for Windows SeeAlso: AH=44hTop
INT 2F - WHOA!.COM - INSTALLATION CHECK AX = 8900h Return: AL = state 00h not installed FFh installed Program: WHOA!.COM is a system slow-down utility by Brad D Crandall SeeAlso: AX=8901h,AX=8902hTop
INT 2F - WHOA!.COM - UNINSTALL AX = 8901h Return: AL = status FDh successful FEh error SeeAlso: AX=8900hTop
INT 2F - WHOA!.COM - SET DELAY COUNT AX = 8902h BX = delay count (larger values slow system down more) Return: AL = status FDh successful FEh error Program: WHOA!.COM is a system slow-down utility by Brad D Crandall SeeAlso: AX=8900hTop
INT 2F U - RAID - INSTALLATION CHECK AX = 9000h Return: AL = FFh if installed Program: RAID (Resident AID) is a TSR utility program by Ross Neilson Wentworth that resides mostly in EMSTop
INT 2F U - RAID - GET ??? AX = 9001h Return: DX:AX -> ??? SeeAlso: AX=9000hTop
INT 2F U - RAID - GET RESIDENT SEGMENT AX = 9002h Return: AX = segment of resident (conventional memory) portion SeeAlso: AX=9000hTop
INT 2F U - RAID - UNINSTALL AX = 9003h Return: ??? SeeAlso: AX=9000hTop
INT 2F U - RAID - GET ??? AX = 9004h Return: AX = first available paragraph past end of resident portion??? CX destroyed SeeAlso: AX=9000hTop
INT 2F - Network Courier E-Mail - API AH = 92h AL = function 00h installation check 01h uninstall 02h pop down MICRO.EXE notification window 03h ??? 04h ??? 05h ??? Return: ??? Program: The Network Courier is an electronic mail package by Consumers Software of Vancouver, BC which was bought by Microsoft in 1991 and renamed Microsoft Mail v3.0. SeeAlso: AX=9400h,AX=9401h,AX=9402h,AH=9Ch Index: installation check;Network Courier E-Mail Index: uninstall;Network Courier E-MailTop
INT 2F U - PC Tools v8.0 DRIVEMAP - BUG AX = 9200h Program: DRIVEMAP is a redirector which allows drives on computers connected over the parallel or serial ports to appear as local drives BUG: jumps to data because jump table entry is 0000h Note: DRIVEMAP returns AX=FFFFh if not a valid function number in ALTop
INT 2F U - PC Tools v8.0 DRIVEMAP - CHECK IF MAPPED DRIVE AX = 9201h DL = drive number (01h = A:, etc.) Return: AL = 92h if mapped drive AH may be destroyed (v8.0 DRIVEMAP returns AX=0000h if not mapped) SeeAlso: AX=9204h,AX=920BhTop
INT 2F U - PC Tools v8.0 DRIVEMAP - UNINSTALL AX = 9202h BX = caller's CS Return: AX = status 0000h failed nonzero successful SeeAlso: AX=9204hTop
INT 2F U - PC Tools v8.0 DRIVEMAP - GET VERSION AX = 9203h Return: AH = major version AL = minor version CX = segment of resident code Note: the DRIVEMAP included with PC Tools v8.0 is version 1.00 SeeAlso: AX=9204h,INT 16/AX=FF70hTop
INT 2F U - PC Tools v8.0 DRIVEMAP - INSTALLATION CHECK AX = 9204h Return: AX = 9200h if installed BL = ??? CX = segment of resident code Program: DRIVEMAP is a redirector which allows drives on computers connected over the parallel or serial ports to appear as local drives SeeAlso: AX=9201h,AX=9202h,AX=9203hTop
INT 2F U - PC Tools v8.0 DRIVEMAP - SET ??? AX = 9205h BX = ??? to set Return: CX = new value of ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9206h ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ??? AX = 9207h ??? Return: AX = ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9208h ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9209h ??? Return: AX = ??? BX = ??? CX = ??? DX = ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 920Ah BX = ??? Return: AX = ??? or FFFBh on errorTop
INT 2F U - PC Tools v8.0 DRIVEMAP - SET DRIVE MAPPING AX = 920Bh BL = drive letter (41h ['A'] = A:, etc) CX = ??? (0000h removes mapping) Return: AX = ??? or FFF8h on error SeeAlso: AX=9201h,AX=920DhTop
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 920Ch ??? Return: AX = ??? (0002h) CX = ??? (0000h)Top
INT 2F U - PC Tools v8.0 DRIVEMAP - GET DRIVE TYPE AX = 920Dh BL = drive letter (41h ['A'] = A:, etc) Return: AX = type flags bit 0: ??? bit 1: available bit 5: local BX = ??? CX = segment of resident code (apparently an unintended side effect) Program: DRIVEMAP is a redirector which allows drives on computers connected over the parallel or serial ports to appear as local drives SeeAlso: AX=9218h,INT 16/AX=FF70hTop
INT 2F U - PC Tools v8.0 DRIVEMAP - SET LPT MAPPING AX = 920Eh BX = port number (0-2) CX = ??? (0000h to unmap) Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ??? AX = 920Fh ES:DI -> 3-byte buffer for ??? Return: CX = 0000h ES:DI buffer filledTop
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9210h ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ??? AX = 9211h ES:DI -> 8-word buffer for ??? Return: CX = 0000h ES:DI buffer filledTop
INT 2F U - PC Tools v8.0 DRIVEMAP - CRITICAL SECTION??? AX = 9212h BX = phase 0000h leave critical section??? nonzero enter critical section???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9213h BX = function number (0000h-000Bh) ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ??? AX = 9214h ES:DI -> 6-word buffer for ??? Return: CX = 0000h AX = ??? ES:DI buffer filledTop
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ??? AX = 9215h ES:DI -> 100-word buffer for ??? Return: CX = 0000h ES:DI buffer filledTop
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9216h ES:DI -> ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9217h DS:SI -> 25-word buffer containing ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - GET LPT TYPE??? AX = 9218h BX = port number??? Return: AX = ??? BX = ??? (0000h) CX = ??? (0000h) Program: DRIVEMAP is a redirector which allows drives on computers connected over the parallel or serial ports to appear as local drivesTop
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 9219h ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 921Ah ??? Return: AH = ??? AL = ??? BX = ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 921Bh ??? Return: AX = ??? CX = segment of resident code (apparently an unintended side effect)Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 921Ch ??? Return: ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ??? AX = 921Dh Return: AX = ???Top
INT 2F U - PC Tools v8.0 DRIVEMAP - ??? AX = 921Eh ??? Return: ??? Program: DRIVEMAP is a redirector which allows drives on computers connected over the parallel or serial ports to appear as local drives Note: this function sets two variables to 24h each SeeAlso: INT 16/AX=FF70hTop
INT 2F - InnerMission v1.7+ - INSTALLATION CHECK AH = 93h BX = CX = AX Return: AL = state FFh if installed and BX=CX=AX on entry BX = segment of resident code 01h if installed but BX or CX differ from AX (multiplex number not available) Program: InnerMission is a shareware graphical screen blanker by Kevin Stokes SeeAlso: INT 14/AX=AA01h,INT 2F/AX=6400h Index: screen saver;InnerMissionTop
INT 2F - MICRO.EXE - INSTALLATION CHECK AX = 9400h Return: AL = 07h or 08h if installed Program: MICRO.EXE is a TSR of the Microsoft Mail part of Workgroup Connection SeeAlso: AH=92h"Network Courier",AX=9401h,AX=9402h,AX=9403h,AX=9404h SeeAlso: INT 21/AH=3Fh"WORKGRP.SYS"Top
INT 2F - MICRO.EXE - SET ??? FLAG AX = 9401h SeeAlso: AX=9400h,AX=9403hTop
INT 2F - MICRO.EXE - ??? AX = 9402h ??? Return: ??? SeeAlso: AX=9400hTop
INT 2F - MICRO.EXE - SET ??? FLAG AX = 9403h SeeAlso: AX=9400h,AX=9404hTop
INT 2F - MICRO.EXE - CLEAR ??? FLAG AX = 9404h ES:DI -> name of executable from which MICRO.EXE was started Note: if the specified name is identical to the name of the program file from which MICRO was started, the ??? flag is cleared; otherwise, it is left unchanged SeeAlso: AX=9400h,AX=9403hTop
INT 2F U - STRETCH - INSTALLATION CHECK AX = 96C7h Return: AX = AAAAh if installed Program: stretch.exe is a TSR for Toshiba Laptops with WD90C24 video chip to avoid blank screen areas in VGA text modes by increasing inter-line spacingTop
INT 2F U - Micro Focus COBOL v3.1.31 internal - ??? AH = 97h AL = function 00h installation check Return: AL = FFh if installed 08h get ??? Return: AL = ??? BX = ??? DX = ??? AH destroyed 20h get ??? Return: AX:BX = far entry point of ??? CX = segment of ??? 80h ??? Return: ??? Notes: Micro Focus COBOL compiler v3.1.31 and companion programs supply these functions for internal use; these programs call the installation check at startup (before installing the INT 2F handler) and crash the system if a not authorized program answers with AL=FFh the handler checks AL only if an internal flag is 1, otherwise ??? SeeAlso: AH=98h"COBOL",AH=99h"COBOL",AH=9Ah"COBOL"Top
INT 2F U - Micro Focus COBOL v3.1.31 internal - ??? AH = 98h AL = function 00h installation check Return: AL = FFh if installed 10h get ??? Return: AX = ??? 18h get segment of ??? Return: AX = segment of ??? 19h get pointer to ??? Return: AX:BX -> ??? Notes: Micro Focus COBOL compiler v3.1.31 and companion programs supply these functions for internal use; these programs call the installation check at startup (before installing the INT 2F handler) and crash the system if a not authorized program answers with AL=FFh the handler checks AL only if an internal flag is 0, otherwise ??? SeeAlso: AH=97h"COBOL",AH=99h"COBOL",AH=9Ah"COBOL"Top
INT 2F U - S3RMDRV.SYS - INSTALLATION CHECK / VERSION CHECK
AX = 9800h
BX = function
0000h installation check
Return: AX = 524Dh ('RM') if installed
0001h get driver version
Return: AX = driver version (AH=major, AL=BCD minor)
Program: S3RMDRV.SYS provides support for the S3 MPEG driver FMPDRV
SeeAlso: AX=9803h
Top
INT 2F U - S3RMDRV.SYS - COPY ??? INTO USER BUFFER AX = 9803h DX:BX -> 116-byte buffer for ASCIZ ??? Return: AX = 0000h DX:BX buffer filled with string stored in driver from its parameter list when it was loaded Note: the examined version of the driver returns CF set for any AL other than 00h or 03h SeeAlso: AX=9800hTop
INT 2F U - Micro Focus COBOL v3.1.31 internal - ??? AH = 99h ??? Return: ??? Note: used internally by Micro Focus COBOL compiler v3.1.31 and companion programs SeeAlso: AH=97h"COBOL",AH=98h"COBOL",AH=9Ah"COBOL"Top
INT 2F U - DOS Navigator II - INSTALLATION CHECK
AX = 9900h
Return: BX = 444Eh ('DN') if installed
AX = number of DOS Navigator executions
CL = child process exit code
DX = version number (see #02965)
Notes: old versions of DOS Navigator II always returned AH=1, while newer
ones return AH=0 and store AL in the DN.FLG file
Program: DOS Navigator is a multi-window shell for MS-DOS by RIT S.R.L.
DOS Navigator(TM) is a registered trademark of RIT S.R.L.
SeeAlso: AX=9901h,AX=9902h,AX=9903h,AX=9904h,AX=9905h,AX=9906h
(Table 02965)
Values for DOS Navigator II version code:
2100h version 1.35
2138h version 1.38
2141h version 1.41
2150h version 1.50
Top
INT 2F U - DOS Navigator II - RETURN POINTER TO COMMAND LINE AX = 9901h Return: ES:BX -> command line (terminated with 0Dh) AX = ES SeeAlso: AX=9900h,AX=9902h,AX=9903hTop
INT 2F U - DOS Navigator II - SET 'TRUE' EXIT CODE OF DN.PRG AX = 9902h CL = exit code Return: AX destroyed SeeAlso: AX=9900h,AX=9901h,AX=9903hTop
INT 2F U - DOS Navigator II - SPECIFY HOW TO EXECUTE COMMANDS AX = 9903h CL = 1 to use INT 2E CL <> 1 to use INT 21/AH=4Bh SeeAlso: AX=9900h,AX=9901h,AX=9902hTop
INT 2F U - DOS Navigator II v1.49 - SET ??? AX = 9904h CX:DX = new value for ??? SeeAlso: AX=9900h,AX=9905h,AX=9906hTop
INT 2F U - DOS Navigator II v1.49 - GET ??? AX = 9905h Return: CX:DX = current value of ??? (set by AX=9904h) SeeAlso: AX=9900h,AX=9904h,AX=9906hTop
INT 2F U - DOS Navigator II v1.49 - GET ??? AX = 9906h DX = new value for ??? (bit 15 must be set, otherwise not changed) Return: CX = previous value for ??? SeeAlso: AX=9900h,AX=9904h,AX=9905hTop
INT 2F U - Micro Focus COBOL v3.1.31 internal - ??? AH = 9Ah ??? Return: ??? Note: used internally by Micro Focus COBOL compiler v3.1.31 and companion programs SeeAlso: AH=97h"COBOL",AH=98h"COBOL",AH=99h"COBOL"Top
INT 2F - Network Courier E-Mail OPERATOR.EXE - API AH = 9Ch AL = subfunction 01h uninstall Return: ??? Program: The Network Courier is an electronic mail package by Consumers Software of Vancouver, BC which was bought by Microsoft in 1991 and renamed Microsoft Mail v3.0. SeeAlso: AH=92h Index: uninstall;Network Courier E-Mail OPERATOR.EXETop
INT 2F U - INTMON v2.1 - INSTALLATION CHECK AX = 9E00h Return: AX = FFFFh if installed BX = segment of resident code Program: INTMON is a shareware interactive interrupt monitoring TSR for 386 and higher machines by Celso Minnitti, Jr. SeeAlso: AX=9E01h,AX=9E02h,AX=9E03h,AX=9F00hTop
INT 2F U - INTMON v2.1 - RESET AX = 9E01h Return: ??? Desc: this function specifies that INTMON should assume that any interrupts on which it is currently awaiting a return have completed (i.e. interrupts which never return such as INT 20 and INT 27) SeeAlso: AX=9E00h,AX=9E03hTop
INT 2F U - INTMON v2.1 - DISPLAY CPU REGISTERS??? AX = 9E02h Return: ??? SeeAlso: AX=9E00hTop
INT 2F U - INTMON v2.1 - HOOK INTERRUPT??? AX = 9E03h BH = interrupt number??? Return: ??? Note: if AL > 03h on entry, INTMON 2.1 returns immediately SeeAlso: AX=9E00h,AX=9E01hTop
INT 2F U - INTCFG v2.1 - INSTALLATION CHECK AX = 9F00h Return: AX = FFFFh if installed Program: INTCFG is an optionally-resident control program for INTMON by Celso Minnitti, Jr. SeeAlso: AX=9E00h,AX=9F01h,AX=9F30h,AX=9F49hTop
INT 2F U - INTCFG v2.1 - ??? AX = 9F01h ??? Return: ??? SeeAlso: AX=9F00hTop
INT 2F U - INTCFG v2.1 - GET ??? AX = 9F30h Return: AX = ??? (0002h) SeeAlso: AX=9F00hTop
INT 2F U - INTCFG v2.1 - UNINSTALL AX = 9F49h Return: AX,DX,DS,ES destroyed SeeAlso: AX=9F00hTop
INT 2F - Ergo DOS extenders - INSTALLATION CHECK AH = A1h BX = 0081h AL = which FEh OS/286,OS/386 FFh HummingBoard DOS extender ES:DI -> 16-byte buffer Return: if installed, first four bytes of ES:DI buffer are "IABH" Note: since TKERNEL is a licensed version, it is likely that subfunctions BX=0082h and BX=0084h are present and function identically to the AX=FBA1h/BX=008xh calls SeeAlso: AX=ED00h,AX=FBA1h/BX=0081h,INT 15/AX=BF02hTop
INT 2F U - Biologic HRAMDEV.SYS - API AX = A189h BX = subfunction 0000h set ??? 0001h remove ??? 0002h get status ??? 0003h enable ??? 0004h disable ??? 0005h set ??? flag 0006h clear ??? flag 0007h set ??? flag 0008h clear ??? flag 0009h set ??? ES:DI -> function-specific arguments if func 0000h: 20-byte buffer containing ??? if func 0001h: 20-byte buffer for returned ??? if func 0002h: 16-byte buffer for returned ??? if func 0009h: WORD containing ??? Return: BX = A189h if installed AH = status 00h successful FFh failed or invalid function number Program: HRAMDEV.SYS is a part of the shareware package HRAM by Biologic which provides improved high memory access under MS-DOS 5.0 Note: functions 00h and 01h use a stack of four entries; function 01h always removes the values stored with the most recent function 00h call which has not yet been matched with a function 01h call.Top
INT 2F - Futurus Team - INSTALLATION CHECK
AX = A4E0h
Return: AL = 52h ("R") if installed
AH = major version plus 30h ("0")
ES:BX -> ??? (INT A4 handler???)
Note: older versions of Right Hand Man (from which Team evolved) store the
signature "RH" at offset 103h in the INT 2F handler's segment
SeeAlso: INT A4"Right Hand Man"
Top
INT 2F - METZTSR.COM - INSTALLATION CHECK AX = A900h CF set Return: CF clear if resident AX = 97FFh CF set if not present Notes: METZTSR.COM prevents METZ applications (such as the MAGIC screen saver) inactivity timeout while running a DOSapp under MS Windows. the default multiplex number is A9h, but may be set to any value from 80h to FFh with a commandline switch SeeAlso: AX=A901h,AX=A902hTop
INT 2F - METZTSR.COM - GET TIME OF LAST KEYBOARD ACTIVITY AX = A901h CF set Return: CF clear if successful AX:DX = BIOS time at which INT 09 was last invoked CF set if not present SeeAlso: INT 09,INT 1A/AH=00hTop
INT 2F - METZTSR.COM - SET METZ Ctrl-Alt-Del FLAG AX = A902h BL = new value 00h Ctrl-Alt-Del not allowed else Ctrl-Alt-Del allowed (startup default is 01h) CF set Return: CF clear if successful AX = 97FFh CF set if not resident SeeAlso: AX=A903hTop
INT 2F - METZTSR.COM - GET METZ Ctrl-Alt-Del FLAG AX = A903h CF set Return: CF clear if successful AX = 97FFh if Ctrl-Alt-Del allowed AX = 0000h if Ctrl-Alt-Del not allowed CF set if not resident SeeAlso: AX=A902hTop
INT 2F - Player's Tool 3.996b+ - UNINSTALL AH = AAh Return: AL = status 00h unloaded successfully 01h unable to unload: in DOS shell Program: Player's Tool is a game cheater by Dima Yakunin & Andy Robinson SeeAlso: AH=ABh"Player's Tool",AH=ACh"Player's Tool",INT 10/AH=AAhTop
INT 2F - VIDCLOCK.COM - INSTALLATION CHECK AX = AA00h Return: AL = 00h not installed FFh installed Program: VIDCLOCK.COM is a memory-resident clock by Thomas G. Hanlin IIITop
INT 2F - Player's Tool 3.996b+ - INSTALLATION CHECK AH = ABh Return: BH = FFh if installed BL = DOS shell state 01h in DOS shell 00h not in DOS shell SeeAlso: AH=AAh"Player's Tool",AH=ACh"Player's Tool",INT 10/AH=ABhTop
INT 2F - Btrieve Multi-User - INSTALLATION CHECK AX = AB00h Return: AL = 4Dh if installed SeeAlso: AX=AB01h,AX=AB02h,INT 7B"Btrieve"Top
INT 2F - SRSoft MODAL PC v2+ - INSTALLATION CHECK / GET VERSION
AX = AB00h
Return: AX = 5253h ('SR' byte-swapped) if installed
BX = MODAL PC version (BL = major, BH = minor)
Program: MODAL PC is an algorithm/real-system simulation package by SR Soft
using Petri-nets to describe simulated objects
SeeAlso: AX=AB01h"MODAL",AX=AB02h"MODAL",AX=AB06h"MODAL"
Top
INT 2F - Btrieve Multi-User - EXECUTE Btrieve OPERATION AX = AB01h BX = process ID DS:DX -> 38-byte parameter record (see #03840 at INT 7B"Btrieve") Return: AL = status 00h OK other retry after calling INT 7F/AX=0200h SeeAlso: AX=AB00h"Btrieve",AX=AB02h"Btrieve",INT 7B"Btrieve",INT 7F/AX=0200hTop
INT 2F - SRSoft MODAL PC v2+ - GET PROCESS RUN PARAMETER
AX = AB01h
Return: AX = 5253h ('SR' byte-swapped) if installed
BL = run parameter
00h normal process
01h run with tracing enabled
02h run initialization process (first thread of main task)
SeeAlso: AX=AB00h"MODAL",AX=AB02h"MODAL"
Top
INT 2F - Btrieve Multi-User - GET NEW PROCESS ID AX = AB02h Return: AL = 00h successful BX = process ID AL > 00h failed, retry after calling INT 7F/AX=0200h SeeAlso: AX=AB00h,AX=AB01h,INT 7B"Btrieve",INT 7F/AX=0200hTop
INT 2F - SRSoft MODAL PC v2+ - SET PROCESS EXIT CODE
AX = AB02h
BL = exit code
Return: AX = 5253h ('SR' byte-swapped) if installed
SeeAlso: AX=AB00h"MODAL",AX=AB01h"MODAL",AX=AB03h"MODAL"
Top
INT 2F - SRSoft MODAL PC v2+ - ALLOCATE COMMON MEMORY
AX = AB03h
BX = required size of common memory for variables/semaphores in bytes
Return: AX = 5253h ('SR' byte-swapped) if installed
SeeAlso: AX=AB00h"MODAL",AX=AB02h"MODAL",AX=AB04h"MODAL"
Top
INT 2F - SRSoft MODAL PC v2+ - GET ALL COMMON VARIABLES AND SEMAPHORES
AX = AB04h
DS:DX -> buffer for common data
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB03h"MODAL",AX=AB05h"MODAL",AX=AB06h,AX=AB07h
Top
INT 2F - SRSoft MODAL PC v2+ - SET ALL COMMON VARIABLES AND SEMAPHORES
AX = AB05h
DS:DX -> buffer containing common data
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB03h"MODAL",AX=AB04h"MODAL",AX=AB06h,AX=AB07h
Top
INT 2F - SRSoft MODAL PC v2+ - GET A COMMON VARIABLE OR SEMAPHORE
AX = AB06h
BX = offset of variable or semaphore in common memory
CX = variable/semaphore size in bytes
DS:DX -> buffer for variable or semaphore
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB04h,AX=AB05h,AX=AB07h
Top
INT 2F - SRSoft MODAL PC v2+ - SET A COMMON VARIABLE OR SEMAPHORE
AX = AB07h
BX = offset of variable or semaphore in common memory
CX = variable/semaphore size in bytes
DS:DX -> buffer containing variable or semaphore
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB04h,AX=AB05h,AX=AB06h
Top
INT 2F u - Player's Tool 3.996b+ - POP UP AH = ACh Return: AX = 1001h SeeAlso: AH=AAh"Player's Tool",AH=ABh"Player's Tool"Top
INT 2F - DOS 4.01+ GRAPHICS.COM - INSTALLATION CHECK AX = AC00h Return: AX = FFFFh ES:DI -> ??? (graphics data?) (not documented) Note: this installation check was moved here to avoid the conflict with the CD-ROM extensions that occurred in DOS 4.00 SeeAlso: AX=1500h"GRAPHICS"Top
INT 2F - QRIP/TSR - GIVE CPU TO QRIP AX = AC00h DI = 1092h Return: nothing Program: QRIP/TSR is a shareware TSR by Shane Hathaway implementing the Remote Imaging Protocol (RIP, RIPscrip) used by several BBS systems to provide a graphical user interface Desc: give QRIP some CPU time to update music and flashing timers Notes: if DI <> 1092h on entry, QRIP chains the call this function should be called regularly whenever the terminal program is otherwise idle; the updates are automatically performed on any other QRIP call SeeAlso: AX=AC01h,AX=ACF0hTop
INT 2F - QRIP/TSR - CHANGE INTERNAL FLAGS AX = AC01h DI = 1092h BX = flags to be turned on (see #02966) CX = flags to be turned off (see #02966) Return: AX = 9142h if installed DX = DOS-takeover flag (nonzero if QRIP able to take over DOS) ---if DX nonzero--- BX = QRIP version number in hex (BH = major, BL = minor) CX = new flags (see #02966) Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC00h/DI=1092h,AX=ACF0h Bitfields for QRIP internal flags: Bit(s) Description (Table 02966) 0 ANSI emulation enabled (default on) 1 RIP emulation enabled (default on) 2 graphical commands allowed (default on) 3 TTY text allowed (default on) 4 disable @ variables (default off in TSR mode) 5 wait for key on RIP "end scene" command (default off) 6 anti-stripping (default off in TSR mode) 7 sound enabled (default on) 8 automatic message filter (default off in TSR mode) 9 display-only mode (no user prompts) 10 TTY text suppression (default off in TSR mode) 11-15 reservedTop
INT 2F - QRIP/TSR - TURN OFF GRAPHICS SCREEN AX = AC02h DI = 1092h Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC03h,AX=ACF0hTop
INT 2F - QRIP/TSR - TURN ON GRAPHICS SCREEN AX = AC03h DI = 1092h Return: nothing Notes: if DI <> 1092h on entry, QRIP chains the call this function does not restore the contents of the screen (see AX=AC15h) SeeAlso: AX=AC02h,AX=AC14h,AX=AC15hTop
INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP AX = AC04h DI = 1092h DX:BX -> string CX = length of string Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC05h,AX=AC09h,AX=AC0Ah,AX=ACF0hTop
INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP AX = AC05h DI = 1092h DX:BX -> ASCIZ string Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC04h,AX=AC06h,AX=AC09h,AX=AC0Ah,AX=ACF0hTop
INT 2F - QRIP/TSR - RECEIVE CHARACTERS FROM QRIP AX = AC06h DI = 1092h Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967) BX = string-waiting flag 0001h entire string waiting to be sent to terminal (call AX=AC0Ch) CX = DX = AX Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC04h,AX=AC05h,AX=AC0Ch,AX=AC16h,AX=AC18h,AX=AC1Ah (Table 02967) Values for QRIP special codes: 0000h if none 0100h wait for user keypress (must call AX=AC16h/BL=00h or AX=AC18h) 0101h both/middle mouse button pressed 0102h entering block mode (up/download) (call AX=AC1Ah) 0103h right mouse button pressed 0104h BBS requested status bar on 0105h BBS requested status bar off 0106h BBS requested VT-102 terminal emulation (keypad keys should send VT-102 escape codes) 0107h BBS requested VT-102 mode off 0108h BBS requested doorway mode (raw IBM keyboard ASCII/scan code pairs) 0109h BBS requested doorway mode off 010Ah hotkey mode on 010Bh hotkey mode off 010Ch BBS requested Tab-key button changing on 010Dh BBS requested Tab-key mode off 010Eh XOFF (use flow control to stop incoming characters) 010Fh XON (use flow control to resume incoming characters) 0110h-0119h BBS requested application (0-9) be run application 0 should be a standard text editor 01FFh send ASCII 00h to BBS Note: for special codes 0104h to 010Dh, the terminal program should report any mode changes it make in response by calling AX=AC16hTop
INT 2F - QRIP/TSR - GET FONT DIRECTORY AX = AC07h DI = 1092h Return: DX:BX -> 80-byte internal buffer containing ASCIZ font directory name Notes: if DI <> 1092h on entry, QRIP chains the call the application may change the font directory by overwriting the returned buffer, ensuring that it does not exceed 80 bytes incl. NUL if changed, the new path will not become effective until the graphics screen is reinitialized SeeAlso: AX=AC08h,AX=ACF0hTop
INT 2F - QRIP/TSR - GET ICON DIRECTORY AX = AC08h DI = 1092h Return: DX:BX -> 80-byte internal buffer containing ASCIZ icon directory name Notes: if DI <> 1092h on entry, QRIP chains the call the application may change the icon directory by overwriting the returned buffer, ensuring that it does not exceed 80 bytes incl. NUL, and includes a trailing backslash if changed, the new path becomes effective immediately SeeAlso: AX=AC07h,AX=ACF0hTop
INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP AX = AC09h DI = 1092h DX:BX -> string CX = length of string Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967) BX = string-waiting flag 0001h entire string waiting to be sent to terminal (call AX=AC0Ch) CX = DX = AX Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC04h,AX=AC06h,AX=AC0Ah,AX=ACF0hTop
INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP AX = AC0Ah DI = 1092h DX:BX -> ASCIZ string Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967) BX = string-waiting flag 0001h entire string waiting to be sent to terminal (call AX=AC0Ch) CX = DX = AX Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC05h,AX=AC06h,AX=AC09h,AX=ACF0hTop
INT 2F - QRIP/TSR - EXECUTE RIP "END SCENE" COMMAND AX = AC0Bh DI = 1092h Return: nothing Notes: if DI <> 1092h on entry, QRIP chains the call enables all mouse buttons and cancels the RIP timeout SeeAlso: AX=AC01h,AX=AC04h,AX=ACF0hTop
INT 2F - QRIP/TSR - GET STRING TO BE SENT TO BBS AX = AC0Ch DI = 1092h Return: AX = status 0000h nothing to be sent 0001h a string is waiting to be sent DX:BX -> string to be sent (may contain NULs) CX = length of string 0002h special code waiting (call AX=AC06h) Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC06h,AX=ACF0hTop
INT 2F - QRIP/TSR - SET PROTECTED SCREEN AREA AX = AC0Dh DI = 1092h CL = number of text lines at bottom of screen to protect (00h = off) BL = attribute with which to fill area (bit 7 = high-int. background) Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC0Eh,AX=AC0Fh,AX=AC10h,AX=ACF0hTop
INT 2F - QRIP/TSR - WRITE ASCIZ STRING IN PROTECTED AREA AX = AC0Eh DI = 1092h DX:BX -> ASCIZ string to be written CL = column at which to begin writing CH = row number within protected area (00h = first line) Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC0Dh,AX=AC0Fh,AX=AC10h,AX=ACF0hTop
INT 2F - QRIP/TSR - SCROLL PROTECTED AREA AX = AC0Fh DI = 1092h BH,BL = row,column of upper-left corner in protected area DH,DL = row,column of lower-right corner CL = number of lines to scroll up Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC10h,AX=ACF0hTop
INT 2F - QRIP/TSR - SET OUTPUT COLOR FOR PROTECTED AREA AX = AC10h DI = 1092h BL = new attribute (bit 7 set for high-intensity background) Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC0Fh,AX=AC11h,AX=ACF0hTop
INT 2F - QRIP/TSR - CONVERT PROTECTED AREA TO ENTIRE SCREEN AX = AC11h DI = 1092h BX = mode (0000h = normal protect, 0001h = allow full-screen access) Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC0Fh,AX=AC10h,AX=AC12h,AX=ACF0hTop
INT 2F - QRIP/TSR - BEGIN POPUP-WINDOW MODE AX = AC12h DI = 1092h Return: nothing Notes: if DI <> 1092h on entry, QRIP chains the call while popup-mode is in effect, the terminal program can write to the screen (and easily restore it) by outputting a RIP file with AX=AC04h or AX=AC05h QRIP will automatically drop out of popup-window mode if the terminal program invokes RIP pick-lists any changes to the protected area will be restored when popup-window mode is cancelled SeeAlso: AX=AC04h,AX=AC11h,AX=AC13h,AX=ACF0hTop
INT 2F - QRIP/TSR - END POPUP-WINDOW MODE AX = AC13h DI = 1092h Return: nothing Notes: if DI <> 1092h on entry, QRIP chains the call restores screen SeeAlso: AX=AC12h,AX=ACF0hTop
INT 2F - QRIP/TSR - SAVE GRAPHICS SCREEN AND SWITCH TO TEXT MODE AX = AC14h DI = 1092h Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC03h,AX=AC15hTop
INT 2F - QRIP/TSR - RESTORE GRAPHICS SCREEN AX = AC15h DI = 1092h Return: nothing Desc: restores the graphics screen saved by the last call to AX=AC14h Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC03h,AX=AC14hTop
INT 2F - QRIP/TSR - REPORT MODE CHANGE TO QRIP AX = AC16h DI = 1092h BL = new mode 00h terminate key wait 01h status bar on 02h status bar off 03h VT-102 mode on 04h VT-102 mode off 05h doorway mode on 06h doorway mode off 07h hotkeys mode on 08h hotkeys mode off 09h tabkey mode on 0Ah tabkey mode off Return: nothing Notes: if DI <> 1092h on entry, QRIP chains the call all modes default to OFF when QRIP is first installedTop
INT 2F - QRIP/TSR - CALL (EXECUTE) A RIP FILE AX = AC17h DI = 1092h DX:BX -> ASCIZ filename for RIP file to be executed Return: nothing Notes: if DI <> 1092h on entry, QRIP chains the call the specified file may be in the current icon directory, the QRIP startup directory, or the current directory; any pathnames specified with the filename are ignoredTop
INT 2F - QRIP/TSR - SEND USER KEY TO QRIP AX = AC18h DI = 1092h BX = key (00xxh is normal ASCII, xx00h is an extended key) Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC06h,AX=ACF0hTop
INT 2F - QRIP/TSR - HANGUP AX = AC19h DI = 1092h Return: nothing Desc: inform QRIP that carrier has been lost Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=ACF0hTop
INT 2F - QRIP/TSR - GET RIP_ENTER_BLOCK_MODE INFORMATION AX = AC1Ah DI = 1092h Return: AH = requested protocol (see #02968) AL = file type (see #02969) DX:BX -> ASCIZ filename or 0000h:0000h CX = length of filename Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=ACF0h (Table 02968) Values for QRIP protocol identifier: 00h Xmodem (checksum) 01h Xmodem-CRC 02h Xmodem-1K 03h Xmodem-1K-G 04h Kermit 05h Ymodem 06h Ymodem-G 07h Zmodem with crash recovery 08h-0Fh same as 00h-07h, but for uploading instead of downloading SeeAlso: #02969 (Table 02969) Values for QRIP file type: 00h RIP file sequence to be displayed 01h RIP file sequence to be stored in icon directory 02h ICN file sequence to be stored in icon directory 03h HLP file sequence to be stored, then auto-loaded if needed 04h COMPOSITE DYNAMIC file sequence (batch protocols only) 05h ACTIVE DYNAMIC file sequence (batch protocols only) Note: for file types 04h and 05h, any .RIP or .ICN files are stored in the icon directory; in mode 05h, any .RIP files are also played back as they are received SeeAlso: #02968Top
INT 2F - QRIP/TSR - SET SYSTEM FONT SIZE AX = AC1Bh DI = 1092h BX = font size (see #02970) Return: nothing Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC04h,AX=ACF0h (Table 02970) Values for QRIP font size specifier: 00h 8x8 font, 80x43 screen 01h 7x8 font, 90x43 screen 02h 8x14 font, 80x25 screen 03h 7x14 font, 90x25 screen 04h 16x14 font, 40x25 screenTop
INT 2F - QRIP/TSR - INSTALLATION CHECK AX = ACF0h DI = 1092h Return: AX = 9142h if installed DX = DOS-takeover flag (nonzero if QRIP able to take over DOS) ---if DX nonzero--- BX = QRIP version number in hex (BH = major, BL = minor) CX = current flags (see AX=AC01h) Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=AC00h/DI=1092h,AX=AC01h,AX=AC04h,AX=AC06h,AX=AC1Ah,AX=ACFFhTop
INT 2F - QRIP/TSR - UNINSTALL AX = ACFFh DI = 1092h Return: AX = status 0000h unable to remove (interrupt vector hooked by another prog) 0001h successful 0002h unable to take over DOS at this time (retry uninstall) Note: if DI <> 1092h on entry, QRIP chains the call SeeAlso: AX=ACF0hTop
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - INSTALLATION CHECK AX = AD00h Return: AL = FFh if installed BX = ??? (0100h for MS-DOS 3.3+) Note: DOS 5+ DISPLAY.SYS chains to previous handler if AL is not one of the subfunctions listed here SeeAlso: AX=AD01h"DISPLAY",AX=AD02h"DISPLAY"Top
INT 2F U - DR DOS 3.41-5.0, Novell DOS 7 KEYB - INSTALLATION CHECK AX = AD00h Return: AX = FFFFh if installed flags destroyed Note: the Novell DOS 7 KEYB driver only checks AL to determine whether it is already installed SeeAlso: AX=AD80h"Novell"Top
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - SET ACTIVE CODE PAGE AX = AD01h BX = new code page (see #01757 at INT 21/AX=6602h) Return: CF clear if successful AX = 0001h CF set on error (unsupported code page) AX = 0000h SeeAlso: AX=AD02h"DISPLAY"Top
INT 2F U - DR DOS 3.41,5.0 KEYB - GET CONFIGURATION AX = AD01h Return: BX = current code page (see #01757 at INT 21/AX=6602h) CX = current keyboard layout (0100h = US, 0102h = foreign) ES = resident code segment SeeAlso: AX=AD01h"Novell",AX=AD00h"KEYB",AX=AD02h"KEYB",AX=AD83h"KEYB"Top
INT 2F U - Novell DOS 7 KEYB - GET/SET??? CONFIGURATION AX = AD01h CX = ??? (0000h) Return: AX = FFFFh if Novell DOS 7 KEYB installed BX = current code page (see #01757 at INT 21/AX=6602h) CX = current keyboard layout (0100h = US, 0102h = foreign) ES = resident code segment SeeAlso: AX=AD01h"DR DOS",AX=AD00h"KEYB",AX=AD02h"KEYB",AX=AD83h"KEYB"Top
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET ACTIVE CODE PAGE AX = AD02h Return: CF set if code page never set AX = 0001h BX = FFFFh (assume first hardware code page) CF clear if successful BX = current code page (see #01757 at INT 21/AX=6602h) SeeAlso: AX=AD01h"DISPLAY",AX=AD03hTop
INT 2F U - Novell DOS 7 KEYB - ??? AX = AD02h DX = ??? (0000h) Return: AX = FFFFh if installed flags destroyed SeeAlso: AX=AD01h"KEYB"Top
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET CODE PAGE INFORMATION
AX = AD03h
ES:DI -> buffer for code page information (see #02971)
CX = size of buffer in bytes
Return: CF set if buffer too small
CF clear if successful
ES:DI buffer filled
SeeAlso: AX=AD01h,AX=AD02h
Format of DOS 5.0-6.0 DISPLAY.SYS code page information:
Offset Size Description (Table 02971)
00h WORD number of software code pages
02h WORD ??? (0003h)
04h WORD number of hardware code pages
06h N WORDs hardware code page numbers (see #01757 at INT 21/AX=6602h)
N WORDs software (prepared) code pages (FFFFh if not yet prepared)
Top
INT 2F U - DOS 4.x only DISPLAY.SYS internal - ??? AX = AD04h ??? Return: ???Top
INT 2F U - DOS 4.x DISPLAY.SYS internal - INSTALLATION CHECK??? AX = AD10h ??? Return: AX = FFFFh BX = ??? (0100h in PC-DOS 4.01)Top
INT 2F U - DOS 5+ DISPLAY.SYS internal - ??? AX = AD10h ??? Return: CF clear if successful CF set on error Note: this function is a NOP if the active code page has never been set (AX=AD02h returns BX=FFFFh); its purpose otherwise is not knownTop
INT 2F - DOS 4.0+ - ??? AX = AD40h DX = ??? ??? Return: ??? Note: called by PC-DOS 4.01 PRINT.COMTop
INT 2F - Arabic/Hebrew DOS 5.0???+ - GET CURRENT FONTPAGE AX = AD41h (CX = 0000h) Return: CX = current fontpage Notes: Called by Arabic/Hebrew MS-DOS 5.0 CODEPAGE.COM immediately before a call to INT21h/6601h to get the current codepage. The function is probably implemented in the ARABIC.COM/HEBREW.COM driver. The CX = 0 on call is not actually a requirement, but it should be initialized this way to receive a fontpage 0 if ARABIC.COM/ HEBREW.COM is not loaded. A fontpage 0 indicated no fontpage support. At least this is what CODEPAGE.COM assumes (by using the CX=0 init status of a .COM program, when not being loaded in DEBUG.) Some European clones have code page 850 as their hardware font instead of code page 437 !!!more details to follow SeeAlso: AX=AD42h,AX=AD43hTop
INT 2F - Arabic/Hebrew DOS 5.0???+ SET CURRENT FONTPAGE AX = AD42h CX = fontpage (> 0) Return: ??? Note: called by Arabic/Hebrew MS-DOS 5.0 CODEPAGE.COM almost immediately before a call to INT21h/6602h to set the current codepage (without checking any possible error codes returned from the call). The function is probably implemented in the ARABIC.COM/HEBREW.COM driver. SeeAlso: AX=AD41h,AX=AD43h,INT 21/AX=6601h,INT 21/AX=6602hTop
INT 2F - Arabic/Hebrew DOS 5.0???+ - GET FONTPAGE STATUS??? AX = AD43h Return: AL = status 00h successful 01h-0Ah codepage info not found 0Bh bad codepage info file 0Ch font page not found or not available with codepage else device prepare error Note: called by Arabic/Hebrew MS-DOS 5.0 CODEPAGE.COM when the sequence INT 2F/AX=AD42h & INT 21/AX=6602h to set fontpage & codepage returned with CF set and AX <> 2, and the following INT 21/AH=59h returned error code 41h (65) (that is, the codepage was prepared, but could not be set). SeeAlso: AX=AD41h,AX=AD42h,INT 21/AX=6601h,INT 21/AX=6602hTop
INT 2F u - MS-DOS 3.3+ KEYB.COM internal - INSTALLATION CHECK AX = AD80h Return: AL = FFh if installed BX = version number (BH = major, BL = minor) ES:DI -> internal data (see #02972) AH destroyed (set to FFh by some implementations/versions) Notes: MS-DOS 3.30, PC-DOS 4.01, MS-DOS 5.00, and MS-DOS 6.22 all report version 1.00. this function was undocumented prior to the release of DOS 5.0 most versions of KEYB completely replace the BIOS INT 09 handler, but Novell DOS's KEYB partially uses the BIOS code and thus continues to chain to the original INT 09 at times some utilities check for AX=FFFFh on return SeeAlso: AX=AD80h"Novell",AX=AD81h,AX=AD82h,AX=AD83h Format of KEYB internal data: Offset Size Description (Table 02972) 00h DWORD original INT 09 04h DWORD original INT 2F 08h DWORD unused (0) original INT 16 in older KEYB versions??? 0Ch WORD flags A (see #02973) 0Eh WORD flags B (see #02974) 10h BYTE flags??? (bit1 used) 11h BYTE ??? 12h 4 BYTEs ??? 16h 2 BYTEs country ID letters, default is "US" 18h WORD current code page (see #01757 at INT 21/AX=6602h) ---DOS 3.3--- 1Ah WORD pointer to first item in list of code page tables??? 1Ch WORD pointer to ??? item in list of code page tables 1Eh 2 BYTEs unused??? 20h WORD pointer to key translation data (see #02976) 22h WORD pointer to last item in code page table list (see #02975) 24h 9 BYTEs ??? ---DOS 4.01--- 1Ah 2 BYTEs ??? 1Ch WORD pointer to first item in list of code page tables??? 1Eh WORD pointer to ??? item in list of code page tables 20h 2 BYTEs unused??? 22h WORD pointer to key translation data (see #02976) 24h WORD pointer to last item in code page table list (see #02975) 26h 9 BYTEs ??? ---DOS 6.22--- (checked out with 6.22, but might be earlier) 1Ah 2 BYTEs ??? 1Ch WORD pointer to current (first???) item in list of code page tables (corresponding to codepage indicated at offset 18h) (initial value is FFFFh) 1Eh WORD pointer to (entry to) list of code page tables (see #02975) If not FFFFh, INT 2F/AX=AD81h scans this list of code page tables until the requested code page was found in list or end of table was reached (FFFFh). If found, offsets 18h and 1Ch will be changed to requested new code page. If not found, it returns with AX=0001h 'code page not supported'). 20h WORD unused??? (initial value: FFFFh) 22h WORD pointer to key translation data (see #02455) 24h WORD pointer to last item in code page table list (see #02454) 26h WORD CAPSLock/ShiftLock management flags??? (0) Note: It appears that none of the bits is ever set inside KEYBs code! The following is guesswork: bit15: =1: With country specific keyboard mapping (<Ctrl>+ <Alt>+<F2>) active, <CapsLock> works as CAPSLock instead of ShiftLock??? Pressing a key in first row resets CapsLock??? (Effective only on PC Convertible or with Enhanced keyboard). bit14-10: unused (0) bit 9: =1: With country specific keyboard mapping active: some kind of temporary (table) shift??? bit 8-0: unused (0) 28h BYTE unused (0) 29h BYTE make code xx for <Ctrl>+<Alt>+<xx> to set keyboard mapping to US-layout (default is 3Bh=<F1>???) (see INT 2F/AX=AD82h,INT 2F/AX=AD83h) 2Ah BYTE make code yy for <Ctrl>+<Alt>+<yy> to set keyboard mapping to country specific layout (default is 3Ch=<F2>???), (see INT 2F/AX=AD82h,INT 2F/AX=AD83h) 2Bh 16 BYTEs unused (0) ??? Note: at least in MS-DOS v6.22, the signature "SHARED DATA" immediately precedes this structure Bitfields for MS-DOS v6.22 KEYB flags A: Bit(s) Description (Table 02973) 15 unused??? (0) 14 set on machine with BIOS machine type FBh or FEh/FFh without enh kbd 13 not FAh: ??? 12 set on start of machine detection, cleared on machine types F9h, FBh, FEh, FFh 11 not FAh: ??? (on ATs: override bit12 NOT to set NumLock on) 10 set on machine type F9h 9 unused??? (0) 8 unused??? (0) 7 used by INT 09, but never set! =1: after keyboard self test resulting AAh, INT 09 handler will (re)set keyboard code-set 1 and temporarily disable a PS/2 mouseport. 6 used by INT09, but never set! =1: after keyboard self test resulting AAh, INT 09 handler will (re)set keyboard code-set 1 and temporarily disable a PS/2 mouseport. 5 set for JP, KO, PR, TA layouts during installation??? =1: some special codepage (>932???) management??? 4-0 unused??? (0) SeeAlso: #02974,MEM F000h:FFFEh,INT 15/AH=C0h Bitfields for MS-DOS v6.22 KEYB flags B: Bit(s) Description (Table 02974) 15 INT 16/AH=1xh supported (INT 16h/AH=92h call returns AH<=80h) if clear, extended keyboard scan codes are immediately discarded 14 INT 16/AH=2xh supported (INT 16h/AH=A2h call returns AH<=80h) 13 unused (0) 12 network installed (INT 2F/AX=B800h) 11 original IBM PC (BIOS date 1981) 10 PC or PC/XT (BIOS machine type byte of FBh or FEh) 9 PC Convertible (BIOS machine type byte of F9h); use INT 15/AX=4104h 8 unused (0) 7 IBM PS/2 model 30 (BIOS machine type byte of FAh) 6 IBM AT (BIOS machine type FCh) 5 IBM PS/2 (BIOS machine type F8h) 4 PS/2 and unknown only: non-standard 8042 reported by INT 15/AH=C0h =1: after keyboard self test resulting AAh, INT 09 handler will (re)set keyboard code-set 1 and temporarily disable a PS/2 mouseport. 3 temporary flag??? 2-0 ??? SeeAlso: #02972,#02973 Format of code page table list entries: Offset Size Description (Table 02975) 00h WORD pointer to next item, FFFFh = last 02h WORD code page (see #01757 at INT 21/AX=6602h) 04h 2 BYTEs ??? Format of KEYB translation data: Offset Size Description (Table 02976) 00h WORD size of data in bytes, including this word 02h N-2 BYTEs ???Top
INT 2F u - Novell DOS 7 KEYB.COM - INSTALLATION CHECK AX = AD80h Return: AX = FFFFh if installed CX = Novell DOS KEYB version number (CL = major, CH = minor) DX = current keyboard codepage ES:DI -> internal data and tables (ES=FFFEh if KEYB in HMA) flags destroyed Notes: versions: v2.08 (original ship 4/94), v2.09 (Update 10, 11/18/94), v2.10 (Update 12, 2/22/95), v2.11 (Update 13, 5/8/95), v2.12 (Update 14, 7/31/95) although the installation check is via this INT 2F call, Novell DOS 7's KEYB has no known INT 2F entry point! Presumably, the handler is either coded in the kernel or reached via a FAR JMP from the kernel SeeAlso: AX=AD80h"MS-DOS"Top
INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD CODE PAGE AX = AD81h BX = code page (see #01757 at INT 21/AX=6601h) Return: CF set on error AX = 0001h (code page not available) CF clear if successful Notes: called by DISPLAY.SYS this function was undocumented prior to the release of DOS 5.0 SeeAlso: AX=AD80h,AX=AD82hTop
INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD MAPPING AX = AD82h BL = new state 00h US keyboard (Control-Alt-F1) FFh foreign keyboard (Control-Alt-F2) Return: CF set on error (BL not 00h or FFh) CF clear if successful Notes: this function was undocumented prior to the release of DOS 5.0 the states 00h and FFh correspond with the byte stored at offset +02h in KEYBs INT 09h handler SeeAlso: AX=AD80h,AX=AD81h,AX=AD83h,AX=AD84hTop
INT 2F - DOS 5+ KEYB.COM - GET KEYBOARD MAPPING AX = AD83h Return: BL = current state 00h US keyboard FFh foreign keyboard Note: the states 00h and FFh correspond with the byte stored at offset +02h in KEYBs INT 09h handler SeeAlso: AX=AD82h,AX=AD85h,INT 09Top
INT 2F - PC DOS 5.0+ KEYB.COM - SET KEYBOARD SUB-MAPPING AX = AD84h Return: if KEYB is in foreign mode: AL = current layout 00h primary layout 01h secondary layout Note: This function is not supported by MS-DOS 5 - 7.10. SeeAlso: AX=AD85h,AX=AD82hTop
INT 2F - PC DOS 5.0+ KEYB.COM - GET KEYBOARD SUB-MAPPING AX = AD85h BL = new layout 00h primary layout 01h secondary layout Note: This function is not supported by MS-DOS 5.0 - 7.10. SeeAlso: AX=AD84h,AX=AD83hTop
INT 2F U - DOS 4.0+ SELECT - DISPLAY FORMAT DISK PROMPT AX = ADC1h Return: AX destroyed??? Note: This function is called by DOS 4.0+ FORMAT utility just as it prompts for a disk to be formatted. It is only issued when the undocumented /SELECT option was specified and is intercepted by SELECT displaying the prompt. However, the callout is still present in DOS 6.0 at least.Top
INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - INSTALLATION CHECK
AX = AE00h
DX = magic value FFFFh
CH = FFh
CL = length of command line tail (4DOS v4.0)
DS:BX -> command line buffer (see #02977)
DS:SI -> command name buffer (see #02978)
DI = 0000h (4DOS v4.0)
Return: AL = FFh if this command is a TSR extension to COMMAND.COM
AL = 00h if the command should be executed as usual
Notes: This call provides a mechanism for TSRs to install permanent
extensions to the command repertoire of COMMAND.COM. It appears
that COMMAND.COM makes this call before executing the current
command line, and does not execute it itself if the return is FFh.
APPEND hooks this call, to allow subsequent APPEND commands to
execute without re-running APPEND
SeeAlso: AX=AE01h
Format of COMMAND.COM command line buffer:
Offset Size Description (Table 02977)
00h BYTE max length of command line, as in INT 21/AH=0Ah
01h BYTE count of bytes to follow, excluding terminating 0Dh
N BYTEs command line text, terminated by 0Dh
Format of command name buffer:
Offset Size Description (Table 02978)
00h BYTE length of command name
01h N BYTEs uppercased command name (blank-padded to 11 chars by 4DOS v4)
Top
INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - EXECUTE AX = AE01h DX = magic value FFFFh CH = 00h CL = length of command name (4DOS v4.0) DS:BX -> command line buffer (see #02977) DS:SI -> command name buffer (see #02978) Return: DS:SI buffer updated if length byte is nonzero, the following bytes contain the uppercase internal command to execute and the command line buffer contains the command's parameters (the first DS:[SI] bytes are ignored) Notes: this call requests execution of the command which a previous call to AX=AE00h indicated was resident APPEND hooks this call BUG: Novell DOS 7.0's COMMAND.COM (prior to Update 12) will attempt to run a disk program with the indicated name even if the returned length byte is zero, because the register used to flag this case is clobbered without first checking it. The workaround is to set the command name buffer to "REM" followed by enough blanks to pad out the original command's length, which will also work with MS-DOS 6. (from padgett@tccslr.dnet.mmc.com) SeeAlso: AX=AE00hTop
INT 2F - WinDOS v2.11 - INSTALLATION CHECK AX = AF00h Return: AL = FFh if installed Program: WinDOS is a DOS clone (claimed to be mostly MS-DOS 5.0 API compatible) written by Heiko Goemann SeeAlso: AX=AF01h"WinDOS",INT 21/AH=30hTop
INT 2F U - ??? AX = AF00h ??? Return: AX = 0000h if interface supported SeeAlso: AX=AF02h,AX=AF03h,AX=AF04h,AX=AF13h,AX=AF30hTop
INT 2F - WinDOS v2.11 - TURN ON ONLINE MODE AX = AF01h Return: nothing Desc: indicate that the user will not exchange floppy disks, allowing WinDOS to cache disk sectors in memory and avoid writing modified sectors back out to the floppy disk SeeAlso: AX=AF00h"WinDOS",AX=AF02h"WinDOS"Top
INT 2F - WinDOS v2.11 - TURN OFF ONLINE MODE AX = AF02h Return: nothing Desc: indicate that the floppy disk may be removed, and that WinDOS should write all buffered sectors out to the floppy disk SeeAlso: AX=AF00h"WinDOS",AX=AF01h"WinDOS"Top
INT 2F U - ??? AX = AF02h ??? Return: ES = ??? SeeAlso: AX=AF00hTop
INT 2F - WinDOS v2.11 - TURN VIDMEM ON AX = AF03h Return: AX = status 0000h successful 0001h CPU not in mode set by DOS386=On 0002h video adapter in graphics mode 0003h memory chain corrupted SeeAlso: AX=AF00h"WinDOS",AX=AF04h"WinDOS",AX=AF05h"WinDOS"Top
INT 2F U - ??? AX = AF03h ??? Return: DX = ??? SeeAlso: AX=AF00hTop
INT 2F - WinDOS v2.11 - TURN VIDMEM OFF AX = AF04h Return: AX = status 0000h successful 0001h video memory is in use SeeAlso: AX=AF00h"WinDOS",AX=AF03h"WinDOS",AX=AF05h"WinDOS"Top
INT 2F U - ??? AX = AF04h ??? Return: ??? SeeAlso: AX=AF00hTop
INT 2F - WinDOS v2.11 - GET VIDMEM STATE AX = AF05h Return: AX = status (0000h off, 0001h on) SeeAlso: AX=AF00h"WinDOS",AX=AF03h"WinDOS",AX=AF04h"WinDOS"Top
INT 2F U - ??? AX = AF05h ??? Return: ??? SeeAlso: AX=AF00hTop
INT 2F - WinDOS v2.11 - MAKE PROGRAM UNBREAKABLE AX = AF06h DS:DX -> break handler DI:BX = stack to use for break handler Return: nothing Desc: set a handler which should be invoked when Ctrl-C is pressed instead of aborting the program SeeAlso: AX=AF00h"WinDOS",AX=AF0Ah"WinDOS",AX=AF0Ch"WinDOS"Top
INT 2F - WinDOS v2.11 - SIGNAL FATAL OVERLAY FAULT AX = AF07h Return: never -- system reset Desc: pop up a window indicating that the system overlay file can not be loaded SeeAlso: AX=AF00h"WinDOS",AX=AF08h"WinDOS"Top
INT 2F - WinDOS v2.11 - SIGNAL RECOVERABLE OVERLAY FAULT AX = AF08h Return: nothing Desc: pop up a window requesting that a disk containing SH.OVL be inserted SeeAlso: AX=AF00h"WinDOS",AX=AF07h"WinDOS",AX=AF0BhTop
INT 2F - WinDOS v2.11 - GET TERMINATED PSP AX = AF09h Return: DS = PSP segment of most recently ended TSR SeeAlso: AX=AF00h"WinDOS",AX=AF0AhTop
INT 2F - WinDOS v2.11 - GET MAIN SHELL PSP AX = AF0Ah Return: AX = shell's PSP (same as DS on last call to AX=AF06h) Desc: get the PSP address of the last program to call AX=AF06h (normally the main command interpreter) SeeAlso: AX=AF00h"WinDOS",AX=AF06h"WinDOS",AX=AF09hTop
INT 2F - WinDOS v2.11 - SIGNAL FATAL ERROR AX = AF0Bh Return: never -- system reset Desc: pop up a window indicating a terminal system error SeeAlso: AX=AF00h"WinDOS",AX=AF07h,AX=AF08h,AX=AF15h"WinDOS"Top
INT 2F - WinDOS v2.11 - GET OTHER MAIN SHELL PARAMETERS AX = AF0Ch Return: DI:AX = stack SI = offset of break handler Desc: retrieve the parameters last set by AX=AF06h (normally by the main command interpreter) SeeAlso: AX=AF00h"WinDOS",AX=AF06h"WinDOS"Top
INT 2F - WinDOS v2.11 - GET CURRENT PARAMETER AX = AF0Dh BX = offset of desired parameter in global data area Return: AX = current value of parameter (AH undefined if byte value) SeeAlso: AX=AF00h"WinDOS",AX=AF0EhTop
INT 2F - WinDOS v2.11 - SET CURRENT PARAMETER BYTE VALUE AX = AF0Eh BX = offset of desired parameter in global data area DL = new value of parameter Return: nothing SeeAlso: AX=AF00h"WinDOS",AX=AF0DhTop
INT 2F - WinDOS v2.11 - GET HISTORY SEGMENT AX = AF0Fh Return: AX = segment of buffer for input history, or 0000h if none SeeAlso: AX=AF00h"WinDOS",AX=AF10h"WinDOS"Top
INT 2F - WinDOS v2.11 - SET HISTORY SEGMENT AX = AF10h BX = segment of new buffer for input history Return: nothing Note: the buffer must have been allocated with INT 21/AH=48h SeeAlso: AX=AF00h"WinDOS",AX=AF0Fh"WinDOS"Top
INT 2F - WinDOS v2.11 - FREE XMS BLOCKS AX = AF11h Return: nothing Desc: free all XMS blocks whose XMS identification value (see AX=AF12h) equals the current PSP SeeAlso: AX=AF00h"WinDOS",AX=AF12h"WinDOS",INT 21/AH=50hTop
INT 2F - WinDOS v2.11 - SET XMS IDENTIFICATION VALUE AX = AF12h DS = new XMS identification value (normally caller's PSP segment) Return: nothing SeeAlso: AX=AF00h"WinDOS",AX=AF11h"WinDOS"Top
INT 2F U - ??? AX = AF12h ??? Return: ES = ??? SeeAlso: AX=AF00hTop
INT 2F - WinDOS v2.11 - SET ASSIGN VALUE AX = AF13h BL = number of drive to remap (00h = A:) DL = number of drive to be accessed via drive number BL Return: nothing Desc: remap a drive letter Note: the remapping can be canceled by specifying DL=BL SeeAlso: AX=AF00h"WinDOS",AX=AF14h"WinDOS",AX=0601hTop
INT 2F U - ??? AX = AF13h ??? Return: ??? SeeAlso: AX=AF00hTop
INT 2F - WinDOS v2.11 - GET ASSIGN VALUE AX = AF14h BL = drive number (00h = A:) Return: DL = drive number which is actually accessed by drive number BL Desc: determine the current mapping for a drive SeeAlso: AX=AF00h"WinDOS",AX=AF13h"WinDOS",AX=0601hTop
INT 2F - WinDOS v2.11 - SIGNAL STACK ERROR AX = AF15h Return: never -- system reset Desc: pop up a window indicating a stack overflow SeeAlso: AX=AF00h"WinDOS",AX=AF0Bh"WinDOS"Top
INT 2F - WinDOS v2.11 - GET SIMPLE TRUENAME AX = AF16h DS:SI -> path to be canonicalized ES:DI -> buffer for canonicalized filename/pathname Return: CF clear if successful AX = 0000h CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) Desc: partially canonicalize a path, omitting SUBST, JOIN, ASSIGN, and network redirections SeeAlso: AX=AF00h"WinDOS",INT 21/AH=60hTop
INT 2F - WinDOS v2.11 - QUERY FOR NEW CURRENT DRIVE AX = AF17h Return: nothing Desc: pop up a dialog allowing the user to select a new default drive SeeAlso: AX=AF00h"WinDOS"Top
INT 2F - WinDOS v2.11 - SET CTRL-C/CTRL-BREAK DISABLE FLAG AX = AF18h DL = new break-checking state (00h enabled, 01h disabled) Return: nothing SeeAlso: AX=AF00h"WinDOS"Top
INT 2F - WinDOS v2.11 - SET HEAD SETTLE FLAG AX = AF19h DL = new state 00h diskette head settling time reset to 15ms before each access 01h no additional head settling time used between accesses Return: nothing SeeAlso: AX=AF00h"WinDOS"Top
INT 2F - WinDOS v2.11 - SEARCH FOR NON-FRAGMENTED DISK AREA AX = AF1Ah BL = drive (00h = current, 01h = A:, etc.) CX = number of clusters desired Return: CF clear if successful DI = first free cluster on logical drive BP = first cluster of contiguous free area AX destroyed CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) Desc: attempt to find an area of the disk containing the specified number of contiguous unallocated clusters SeeAlso: AX=AF00h"WinDOS"Top
INT 2F U - ??? AX = AF30h ??? Return: ??? SeeAlso: AX=AF00hTop
INT 2F - Disk-Emu - INSTALLATION CHECK / GET VERSION AX = AFDEh ES:DI -> 14-byte buffer for data (see #02979) Return: AX = CFDEh (Carlos Fernandez Disk-Emu) if installed BX = version (BH = major, BL = minor) Format of Disk-Emu information data: Offset Size Description (Table 02979) 00h BYTE number of tracks 01h BYTE sectors per track 02h WORD bytes per sector 04h BYTE number of heads 05h BYTE flag: 00h inactive, 01h active 06h BYTE write protection (00h none, 01h full, 02h pseudo) 07h BYTE saved (00h some unsaved data, 01h all data saved) 08h BYTE disk in memory (00h no, 01h yes) 09h WORD EMS handle 0Bh WORD XMS handle 0Dh BYTE memory type used for disk (00h XMS, 01h EMS)Top
INT 2F - DOS 3.3+ GRAFTABL.COM - INSTALLATION CHECK AX = B000h Return: AL = status 00h not installed, OK to install 01h not installed, not OK to install FFh installed Notes: called by DISPLAY.SYS documented for DOS 5.0, but undocumented in prior versions SeeAlso: AX=2300h,AX=2E00h,AX=B001hTop
INT 2F - DOS 3.3+ GRAFTABL.COM - GET GRAPHICS FONT TABLE AX = B001h DS:BX -> DWORD buffer for address of 8x8 font table Return: buffer filled AL = FFh Note: PC-DOS 3.30/4.01 and MS-DOS 6.0 set the font table offset to 0130h, MS-DOS 3.30 sets it to 0030h SeeAlso: AH=2Eh"GRAFTABL",AX=B000hTop
INT 2F - IBM PC3270 EMULATION PROG v3 - INSTALLATION CHECK AX = B400h Return: AL = FFh if installedTop
INT 2F - IBM PC3270 EMULATION PROG v3 - GET HOST BUFFER ADDRESS AX = B401h Return: ES -> host screen buffer (PC ASCII format) ES unchanged if communications not startedTop
INT 2F - IBM PC3270 EMULATION PROG v3 - ??? AX = B402h BX = ??? Return: ???Top
INT 2F - IBM PC3270 EMULATION PROG v3 - ??? AX = B403h ??? Return: ???Top
INT 2F - IBM PC3270 EMULATION PROG v3 - ??? AX = B404h ??? Return: ???Top
INT 2F - IBM PC3270 EMULATION PROG v3 - ??? AX = B405h ??? Return: ???Top
INT 2F - APPEND - INSTALLATION CHECK AX = B700h Return: AL = status 00h not installed FFh installed Note: MS-DOS 3.30 APPEND refuses to install itself when run inside TopView or a TopView-compatible environment SeeAlso: AX=B702hTop
INT 2F U - APPEND v3.21 only - GET APPEND PATH AX = B701h Return: ES:DI -> active APPEND path Notes: the only version of APPEND known to support this call is the APPEND shipped with Microtek MS-DOS 3.21; MS-DOS 3.30-6.00 APPEND displays "Incorrect APPEND Version" and aborts the caller use AX=B704h first, and only call this function if that one is not supported SeeAlso: AX=B700h,AX=B704hTop
INT 2F - APPEND - GET VERSION AX = B702h Return: AX = FFFFh if not DOS 4.0 APPEND (also if DOS 5.0 APPEND) AL = major version number AH = minor version number, otherwise SeeAlso: AX=B700h,AX=B710hTop
INT 2F U - DOS 3.3, DOS 5.0 APPEND - HOOK INT 21 AX = B703h ES:DI -> INT 21 handler APPEND should chain to Return: ES:DI -> APPEND's INT 21 handler Note: each invocation of this function toggles a flag which APPEND uses to determine whether to chain to the user handler or the original INT 21 SeeAlso: AX=B700h,AX=B706hTop
INT 2F - DOS 3.3+ APPEND - GET APPEND PATH AX = B704h Return: ES:DI -> active APPEND path (128 bytes max) Note: some versions of append do not support this call, and return ES unchanged; in this case, you should call AX=B701h to get the APPEND path SeeAlso: AX=B701hTop
INT 2F - DOS 4.0+ APPEND - GET APPEND FUNCTION STATE AX = B706h Return: BX = APPEND state (see #02980) SeeAlso: AX=B700h,AX=B707h Bitfields for APPEND state: Bit(s) Description (Table 02980) 0 set if APPEND enabled 1-11 reserved 12 (DOS 5.0) set if APPEND applies directory search even if a drive has been specified 13 set if /PATH flag active 14 set if /E flag active (environment var APPEND exists) 15 set if /X flag activeTop
INT 2F - DOS 4.0+ APPEND - SET APPEND FUNCTION STATE AX = B707h BX = APPEND state bits (see #02980) SeeAlso: AX=B700h,AX=B706hTop
INT 2F U - DOS 3.3+ APPEND - GET VERSION INFO AX = B710h Return: AX = current APPEND state (see #02980) BX = ??? (0000h in MS-DOS 3.30 and 5.00) CX = ??? (0000h in MS-DOS 3.30 and 5.00) DL = major version DH = minor version SeeAlso: AX=B700h,AX=B702hTop
INT 2F - DOS 4.0+ APPEND - SET RETURN FOUND NAME STATE AX = B711h Note: if the next INT 21h call (and ONLY the next) is function 3Dh, 43h, or 6Ch (also 4B03h and 4Eh if /X active), the fully qualified filename is written over top of the filename passed to the INT 21h call. The application must provide a sufficiently large buffer. This state is reset after the next INT 21h call processed by APPEND. APPEND uses the byte at offset 3Dh in the PSP (see #01378 at INT 21/AH=26h) to store the flag telling it to overwrite the filename BUG: DOS 4.0 APPEND reportedly overwrites DS:DX instead of DS:SI for INT 21/AH=6Ch SeeAlso: INT 21/AH=26h,INT 21/AH=4EhTop
INT 2F - NETWORK - INSTALLATION CHECK AX = B800h Return: AL = status 00h not installed nonzero installed BX = installed component flags (test in this order!) bit 6 server bit 2 messenger bit 7 receiver bit 3 redirector bit 1 LANPUP (LANtastic 4.0) Notes: this function is supported by PC LAN Program, LAN Manager, LANtastic, NetWare Lite, SilverNET, 10NET, etc. LANtastic and NetWare Lite use only BL for the return value, preserving BH; LAN Manager and DOS LAN Requester return BH=00h. This permits differentiation between those two groups by setting BH to a nonzero value before the call and checking its value on return. SeeAlso: AX=4E53h,AX=B809hTop
INT 2F - 10NET - INSTALLATION CHECK AX = B800h CX = F041h Return: AL = status 00h not installed nonzero installed BX = installed component flags (test in this order!) bit 6 server bit 2 messenger bit 7 receiver bit 3 redirector bit 1 LANPUP (LANtastic 4.0) CX = 10Net data segment CX:DX -> 10Net Configuration Table (see #01691 at INT 21/AX=5E01h"10NET") Note: if CX <> F041h on entry, neither CX nor DX will be changed, and this call becomes identical to the standard installation check above SeeAlso: AX=B800h"network",INT 21/AX=5E01h"10NET"Top
INT 2F - NETWORK - GET NETWORK EVENT POST HANDLER AX = B803h Return: ES:BX -> current event post handler (see AX=B804h) Note: this function is supported by PC LAN Program, 10NET v5.0, NetSoft DOS-NET v1.20+ SeeAlso: AX=B800h,AX=B804h,AX=B903hTop
INT 2F - NETWORK - SET NETWORK EVENT POST HANDLER AX = B804h CX = (10NET) 0370h if 10Windows is hooking post handler ES:BX -> new event post handler (see #02981) Notes: used in conjunction with AX=B803h to hook into the network event post routine this function is supported by PC LAN Program, 10NET v5.0, NetSoft DOS-NET v1.20+ The specified handler is called on any network event. Two events are defined: message received and critical network error. SeeAlso: AX=B800h,AX=B803h,AX=B904h (Table 02981) Values network post routine is called with: AX = 0000h single block message DS:SI -> ASCIZ originator name DS:DI -> ASCIZ destination name ES:BX -> text header (see #02982) AX = 0001h start multiple message block CX = block group ID DS:SI -> ASCIZ originator name DS:DI -> ASCIZ destination name AX = 0002h multiple block text CX = block group ID ES:BX -> text header (see #02982) AX = 0003h end multiple block message CX = block group ID AX = 0004h message aborted due to error CX = block group ID AX = 0101h server received badly formatted network request Return: AX = FFFFh (PC LAN will process error) AX = 0102h unexpected network error ES:BX -> NCB (see #03249 at INT 5C"NetBIOS") AX = 0103h server received INT 24 error other registers as for INT 24, except AH is in BH Return: as below, but only 0000h and FFFFh allowed Return: AX = response code 0000h user post routine processed message 0001h PC LAN will process message, but message window not displayed FFFFh PC LAN will process message Format of text header: Offset Size Description (Table 02982) 00h WORD length of text (maximum 512 bytes) 02h N BYTEs text of message Note: all CRLF sequences in message text are replaced by 14h; all other values below 20h (space) are reservedTop
INT 2F - NETWORK - GET NetBIOS NAME NUMBER OF MACHINE NAME AX = B807h Return: CH = NetBIOS name number of the machine name SeeAlso: INT 21/AX=5E00hTop
INT 2F U - NETWORK - RELINK KEYBOARD HANDLER AX = B808h ES:BX -> INT 09 handler network should call after it finishes INT 09 Notes: this call replaces the address to which the network software chains on an INT 09 without preserving the original value. This allows a prior handler to unlink, but does not allow a new handler to be added such that the network gets the INT 09 first unless the new handler completely takes over INT 09 and never chains. this function is called by the DOS 3.2 KEYBxx.COM and DOS 3.3+ KEYB.COM SeeAlso: AX=B908hTop
INT 2F - NETWORK - LANtastic, NetWare Lite - GET VERSION AX = B809h Return: AH = major version AL = minor version (decimal) Notes: this function is supported in this form by LANtastic, NetWare Lite, SilverNET, ... NetWare Lite returns its own version number rather than a PC LAN compatibility version SeeAlso: AX=4E53h,AX=B800h,AX=B809h"PC LAN Program"Top
INT 2F - NETWORK - PC LAN Program, Microsoft Networking - GET VERSION AX = B809h Return: AH = minor version (decimal) AL = major version Notes: this function is supported in this form by PC LAN Program, LAN Manager, the DOS LAN Requester, 10NET v5.0, and Microsoft Networking under WfWg 3.11 10NET returns version 1.10 (AX=0A01h) for compatibility SeeAlso: AX=4E53h,AX=B800h,AX=B809h"LANtastic"Top
INT 2F u - PC Network 1.00 - ??? AX = B80Ah ??? Return: ??? Program: PC Network is an early networking package which was renamed the IBM PC Local Area Network Program (PC LAN Program) as of v1.10 Note: called by RECEIVER (equivalent to NetWare Lite SERVER)Top
INT 2F U - DOS LAN Requester - GET XSI2 ADDRESS / DATA AX = B80Eh Return: DS:DI -> XSI2 TSR's resident data (see #02983) Note: this function is used by NET.COM to locate the USERID and DOMAIN of the logged-in user (which may differ from the NET START domain name from DOSLAN.INI which is returned by AX=B80Fh) SeeAlso: AX=B800h,AX=B80Fh Format of XSI2 resident data: Offset Size Description (Table 02983) 00h 254 BYTEs ??? FEh 10 BYTEs user ID 1 108h 10 BYTEs user ID 2 112h 10 BYTEs domain name 1 11Ch 10 BYTEs domain name 2 126h ? BYTEs domain controllerTop
INT 2F - DOS LAN Requester - GET START PARAMETERS AX = B80Fh CX = size of return data buffer ES:DI -> return data buffer (see #02984) Return: AX = status 00h network started nonzero network not started CX = number of bytes returned in buffer ES:DI buffer filled SeeAlso: AX=B809h"PC LAN Program",AX=B80Eh Format of DOS LAN Requester return data buffer: Offset Size Description (Table 02984) 00h BYTE major version 01h BYTE minor version 02h WORD configuration flags given when network was started (see #02985) 04h 15 BYTEs NET START machine name (space padded) 13h BYTE 00h 14h 9 BYTEs NET START domain name (NULL padded) 1Dh BYTE 00h 1Eh 32 BYTEs /WRK heuristics string (space padded, not terminated) 3Eh WORD /SRV value 40h WORD /ASG value 42h WORD /NBC value 44h WORD /NBS value 46h WORD /BBC value 48h WORD /BBS value 4Ah WORD /PBC value 4Ch WORD /PBS value 4Eh WORD /PFS value 50h WORD /PFT value 52h WORD /PWT value 54h WORD /KUC value 56h WORD /KST value 58h WORD /NVS value 5Ah WORD /NMS value 5Ch WORD /NDB value 5Eh WORD /MBI value 60h BYTE NetBIOS name number for machine name 61h BYTE NetBIOS name number for domain name 62h WORD NetBIOS sessions required for configuration 64h WORD NetBIOS commands required for configuration 66h WORD NetBIOS names required for configuration 68h 128 BYTEs NET START path (LANROOT) E8h BYTE 00h Bitfields for configuration flags: Bit(s) Description (Table 02985) 0 /NVS nonzero 1 /NMS nonzero 2 /API 3 /HIM 4 /LIM 5 /ENC 6 /POP 7 /EMS 8 /RPL 9-12 reserved 13 RDR started 14 RCV started 15 User is currently logged onTop
INT 2F - PC Network RECEIVER.COM - INSTALLATION CHECK AX = B900h Return: AL = state 00h if not installed FFh if installedTop
INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM INT 2F HANDLER ADDRESS AX = B901h Return: AL = ??? ES:BX -> RECEIVER.COM INT 2F handler Desc: allows more efficient execution by letting the caller bypass any other INT 2F handlers which have been added since RECEIVER.COM was installedTop
INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM POST ADDRESS AX = B903h Return: ES:BX -> POST handler SeeAlso: AX=B803h,AX=B904hTop
INT 2F - PC Network RECEIVER.COM - SET RECEIVER.COM POST ADDRESS AX = B904h ES:BX -> new POST handler SeeAlso: AX=B804h,AX=B903hTop
INT 2F - PC Network RECEIVER.COM - GET FILENAME AX = B905h DS:BX -> 128-byte buffer for filename 1 DS:DX -> 128-byte buffer for filename 2 Return: buffers filled from RECEIVER.COM internal buffers Note: use of filenames is unknown, but one appears to be for storing messages SeeAlso: AX=B906hTop
INT 2F - PC Network RECEIVER.COM - SET FILENAME AX = B906h DS:BX -> 128-byte buffer for filename 1 DS:DX -> 128-byte buffer for filename 2 Return: RECEIVER.COM internal buffers filled from user buffers Note: use of filenames is unknown, but one appears to be for storing messages SeeAlso: AX=B905hTop
INT 2F - PC Network RECEIVER.COM - UNLINK KEYBOARD HANDLER AX = B908h ES:BX -> INT 09 handler RECEIVER should call after it finishes INT 09 Note: this call replaces the address to which RECEIVER.COM chains on an INT 09 without preserving the original value. This allows a prior handler to unlink, but does not allow a new handler to be added such that RECEIVER gets the INT 09 first. SeeAlso: AX=B808hTop
INT 2F - CATC USB4DOS Host Controller - INSTALLATION CHECK AX = BB00h BX = 0000h Return: AX = 0001h if installedTop
INT 2F - CATC USB4DOS Host Controller - GET ??? AX = BB00h BX = 0001h Return: AX = 0000h CX:BX -> ???Top
INT 2F - CATC USB4DOS Host Controller - EXECUTE USB REQUEST AX = BB00h BX = 0002h CX:DX -> request packet (see #04097) Return: AX = destroyed Format of USB4DOS Host Controller request packet: Offset Size Description (Table 04097) 00h WORD command number 02h WORD (ret) major status 04h WORD (ret) minor status 06h DWORD -> callback function 0Ah 25 BYTEs data for command (varies by command number) 23h 12 BYTEs reserved for future useTop
INT 2F - CATC USB4DOS Host Controller - ??? (POLLS VARIOUS I/O PORTS) AX = BB00h BX = 0003h Return: AX = ???Top
INT 2F - CATC USB4DOS Host Controller - INVALID FUNCTION AX = BB00h BX > 0003h Return: AX = FFFFh (invalid function)Top
INT 2F - Windows 3.0, DOS 5+ EGA.SYS - INSTALLATION CHECK
AX = BC00h
Return: AL = state
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
BX = 5456h ("TV")
Range: AH=80h to AH=FFh, selected by commandline switch
SeeAlso: AX=BC06h"EGA",INT 10/AH=FAh"EGA"
Top
INT 2F - CATC USB4DOS Device Manager - INSTALLATION CHECK AX = BC00h BL = 00h Return: AX = installation state 0000h not installed 0001h installed BC00h not installed SeeAlso: AX=BC00h/BL=01h,AX=BC00h/BL=03hTop
INT 2F - CATC USB4DOS Device Manager - REGISTER DEVICE AX = BC00h BL = 01h CX:DX -> client_info structure (see #04096) Return: AX = client number, 0000h on failure SeeAlso: AX=BC00h/BL=02h,AX=BC00h/BL=00h Format of CATC USB4DOS client_info structure: Offset Size Description (Table 04096) 00h DWORD -> Attach() worker function 04h DWORD -> Detach() worker functionTop
INT 2F - CATC USB4DOS Device Manager - UNLOAD DEVICE AX = BC00h BL = 02h CX = client number Return: AX destroyed SeeAlso: AX=BC00h/BL=01h,AX=BC00h/BL=00hTop
INT 2F - CATC USB4DOS Device Manager - HUB DEVICE ATTACHED AX = BC00h BL = 03h BH = address and device type bits 7-1: USB address of hub bit 0: device speed =0 low-speed device =1 full-speed device CX:DX -> callback function Return: AX = USB address of attached device, or 0000h on failure SeeAlso: AX=BC00h/BL=04h,AX=BC00h/BL=00hTop
INT 2F - CATC USB4DOS Device Manager - HUB DEVICE DETACHED AX = BC00h BL = 04h BH = USB address of detached device (may be the hub itself) Return: AX destroyed SeeAlso: AX=BC00h/BL=03h,AX=BC00h/BL=00hTop
INT 2F - MediaVision MVSOUND.SYS - INSTALLATION CHECK
AX = BC00h
BX = 3F3Fh ('??')
CX = 0000h
DX = 0000h
Return: if installed, BX XOR CX XOR DX = 4D56h ('MV')
Program: MVSOUND.SYS is a driver for the MediaVision ProAudio Spectrum family
of sound boards; its primary programmer was Bryan Crane
SeeAlso: AX=BC01h"MVSOUND",AX=BC02h,AX=BC03h,AX=BC04h,AX=BC06h"MVSOUND"
Top
INT 2F - MediaVision MVSOUND.SYS - GET VERSION
AX = BC01h
BX = magic value 6D20h ('m ')
CX = magic value 2076h (' v')
DX = magic value 2020h (' ')
Return: BX = ASCII major version (leading zeros significant)
CX = ASCII minor version (leading zeros significant)
SeeAlso: AX=BC00h/BX=3F3Fh
Top
INT 2F - MediaVision MVSOUND.SYS - GET STATE TABLE POINTER
AX = BC02h
Return: AX = 4D56h ('MV')
BX:DX -> state table
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC03h
Top
INT 2F - MediaVision MVSOUND.SYS - GET FUNCTION TABLE POINTER
AX = BC03h
Return: AX = 4D56h ('MV')
BX:DX -> function table
CX = ??? (000Eh)
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC02h
Top
INT 2F - MediaVision MVSOUND.SYS - GET DMA AND IRQ CHANNELS
AX = BC04h
Return: AX = 4D56h ('MV')
BL = DMA channel
CL = IRQ number
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND"
Top
INT 2F U - MS Windows 3.0, DOS 5+ EGA.SYS - GET VERSION INFO
AX = BC06h
Return: BX = 5456h ("TV")
CH = major version
CL = minor version
DL = revision
SeeAlso: AX=BC00h"EGA",INT 10/AH=FAh"EGA"
Top
INT 2F - MediaVision MVSOUND.SYS - GET STATUS STRING
AX = BC06h
Return: AX = 4D56h ('MV')
DX:BX -> status string (first byte 0Ch if no status message to display)
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND",AX=BC0Bh"MVSOUND"
Top
INT 2F - MediaVision MVSOUND.SYS - GET EXECUTABLE PATH AX = BC0Bh Return: BX:DX -> ASCIZ path for MVPROAS.EXE, 0000h:0000h if not available SeeAlso: AX=BC00h/BX=3F3FhTop
INT 2F - MediaVision MVSOUND.SYS - RE-INITIALIZE INT 09 HANDLER AX = BC0Eh Return: BX = status 0000h on failure AX = 0000h FFFFh if successful DX:AX -> prior INT 09 handler Desc: re-initialize INT 09 handler to re-enable hotkeys (e.g. after loading KEYB)Top
INT 2F - REDVIEW - INSTALLATION CHECK AX = BE00h Return: AL = FFh if installed Program: REDVIEW is a public-domain TSR by Alexandr Novy and Petr Horak which copies data sent to standard output to standard error when the former has been redirected to a file, thus allowing the data to be seen on the screen at the same time it is captured in a fileTop
INT 2F - PC LAN PROGRAM REDIRIFS.EXE internal - INSTALLATION CHECK AX = BF00h Return: AL = FFh if installed Note: this function is also supported by NetSoft's DOS-NET v1.20+; however, none of the remaining BFxxh calls are supported SeeAlso: AX=BF01h,AX=BF80h,INT 2A/AX=4147hTop
INT 2F U - PC LAN PROGRAM REDIRIFS.EXE internal - ??? AX = BF01h ??? Return: ??? SeeAlso: AX=BF00hTop
INT 2F - PC LAN PROG REDIR.SYS internal - SET REDIRIFS ENTRY POINT AX = BF80h ES:DI -> FAR entry point to IFS handler in REDIRIFS Return: AL = FFh if installed ES:DI -> internal workspace Note: all future IFS calls to REDIR.SYS are passed to the ES:DI entry point SeeAlso: AX=BF00hTop
INT 2F - METZ XpressFax Hardware TSR (CLASS2) - API AH = C0h AL = function code (01h to 15h) Return: ??? SeeAlso: AX=C000h/BX=444Bh,AX=CB00h/BX=4D53hTop
INT 2F - Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
DX:BX -> FAR entry point (see #02986,#02987,#02988)
ES:SI -> signature string "LINKSUP$"
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: on return, ES = DX for LSL v1.10 and v2.05; LSL makes use of this in
its search for a previous installation
SeeAlso: AX=5100h,AX=C000h"NESL"
(Table 02986)
Call LSL function "Request MLID Registration" with:
BX = 0001h
ES:SI -> registration??? record (see #02990)
DS:DI -> buffer for LSL information block (see #02991)
Return: AX = completion code (0000h,8001h) (see #02989)
DS:DI buffer filled if successful
BX,CX corrupted
Note: see "Novell LAN Driver Developer's Guide, Volume III" for more details
(Table 02987)
Call LSL function "get support entry points" with:
BX = 0002h
ES:SI -> buffer for entry point record (see #02992)
Return: ES:SI buffer filled
(Table 02988)
Call LSL function "Request MLID API entry point" with:
BX = 0003h
Return: ES:SI -> MLID (Multiple Link Interface Driver) API entry point
(call with BX=function 00h-10h, not range-checked)
Note: LSL v1.10 and v2.05 execute BX=0003h for BX=0000h and any BX >= 0003h
(Table 02989)
Values for LSL completion code:
0000h successful
8001h out of resources
8002h bad parameter
8003h no more items
8004h item not present
8005h failed
8006h receive overflow
8007h canceled
8008h bad command
8009h duplicate entry
800Ah no such handler
800Bh no such driver
Format of LSL registration record:
Offset Size Description (Table 02990)
00h DWORD -> ??? FAR function (to be called with ES:SI -> ??? and
returning AX = completion code)
04h DWORD -> ???
08h DWORD -> ??? data (at least 3Eh bytes)
Format of LSL information block:
Offset Size Description (Table 02991)
00h DWORD -> ??? entry point (called with BX=function 00h-11h)
04h WORD ???
06h WORD ???
Note: due to a fencepost error, LSL v2.05 (distributed with Novell DOS 7)
will crash if the above entry point is called with BX=0012h
Format of entry point record:
Offset Size Description (Table 02992)
00h DWORD pointer to protocol support entry point in LSL (see #02993)
04h DWORD pointer to general support entry point in LSL (see #02994)
(Table 02993)
Call protocol support entry point with:
BX = function number
0000h ???
0001h ???
0002h ???
0003h "ScheduleAESEvent"
ES:SI -> AES ECB to be scheduled (see #02997)
Return: ES,SI preserved
0004h "CancelAESEvent"
ES:SI -> ECB to be cancelled (see #02997)
Return: ES,SI preserved
0005h "GetIntervalMarker"
Return: DX:AX = current interval marker in milliseconds
all other registers preserved
0006h "RegisterStack"
AX = logical board number
ES:SI -> bound stack info structure (see #03007)
Return: BX = assigned Stack ID if AX=0000h
0007h "DeRegisterStack"
AX = protocol stack's assigned Stack ID
0008h "RegisterDefaultStack"
AX = logical board number
ES:SI -> stack info structure (see #03008)
0009h "DeRegisterDefaultStack"
AX = logical board number
000Ah "RegisterPrescanStack"
AX = logical board number
ES:SI -> stack info structure (see #03008)
000Bh "DeRegisterPrescanStack"
AX = logical board number
000Ch "SendPacket"
ES:SI -> send ECB
Return: interrupts disabled
000Dh ???
000Eh ???
000Fh ???
0010h "GetStackIDFromName"
ES:SI -> counted NUL-terminated protocol name (max 15 chars)
Return: BX = Stack ID if AX=0000h
0011h "GetPIDFromStackIDBoard"
AX = Stack ID for protocol
CX = logical board number
ES:SI -> 6-byte buffer for protocol ID
0012h "GetMLIDControlEntry"
AX = logical board number
Return: ES:SI -> MLID control handler (see #02995) if AX=0000h
0013h "GetProtocolControlEntry"
AX = Stack ID or
FFFEh Prescan stack
CX = logical board number
FFFFh default protocol
CX = logical board number
Return: ES:SI -> protocol stack control entry point if AX=0000h
(see #02996)
0014h "GetLSLStatistics"
Return: AX = 0000h (successful)
ZF set
ES:SI -> LSL statistics table (see #02999)
0015h "BindStack"
AX = protocol stack's assigned Stack ID
CX = logical board number
0016h "UnbindStack"
AX = protocol stack's assigned Stack ID
CX = logical board number
0017h "AddProtocolID"
AX = frame type ID code
ES:SI -> 6-byte protocol ID
CX:DI -> counted NUL-terminated short protocol name (max 15 ch)
0018h "RelinquishControl"
Return: after LSL performs any necessary background processing
0019h "GetLSLConfiguration"
Return: AX = 0000h (successful)
ZF set
ES:SI -> LSL configuration table (see #02998)
001Ah "GetTickMarker"
Return: AX = number of 55ms ticks since LSL loaded
BX destroyed
Return: AX = completion code (see #02989)
ZF set if successful
SS:SP, DS, BP preserved; most other registers may be destroyed
(Table 02994)
Call general support entry point with:
BX = function number
0000h "Allocate Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0001h "Free Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0002h "Realloc Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0003h "Memory Statistics" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0004h "Add Memory To Pool" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0005h "AddGeneralService"
ES:SI -> General Service Control Block (see #03009)
0006h "RemoveGeneralService"
ES:SI -> General Service Control Block (see #03009)
0007h "GetNETcfgPath"
Return: AX = 0000h (successful)
DS:DX -> ASCIZ pathname for NET.CFG
0008h U ??? (in LSL 1.10)
Return: AX = 0000h
ES:SI -> ??? (a 22-byte data area)
000Ah "GetCriticalSectionStatus"
Return: BX = total outstanding calls to "StartCriticalSection"
000Bh "ServiceEvents"
interrupts disabled
Return: interrupts disabled
0010h "GetStackECB"
DS:DI -> Lookahead structure (see #03010)
interrupts disabled
Return: ES:SI -> ECB if successful (AX=0000h,ZF set)
interrupts disabled
8000h-FFFFh reserved for user general service providers
Return: AX = completion code (see #02989)
ZF set if successful
SS:SP, DS, BP preserved
(Table 02995)
Call MLID control handler with:
AX = logical board number
BX = function number
0000h "GetMLIDConfiguration"
Return: ES:SI -> MLID's configuration table if successful
(see #03002 for format)
0001h "GetMLIDStatistics"
Return: ES:SI -> MLID's statistics table if successful
(see #03002 for format)
0002h "AddMulticastAddress"
ES:SI -> 6-byte multicast address to add
0003h "DeleteMulticastAddress"
ES:SI -> 6-byte multicast address to delete
0005h "MLIDShutdown"
CX = type
0000h permanent (also deregisters from LSL)
other temporary (shutdown hardware only)
0006h "MLIDReset" reinitialize board / restart from temp shutdown
0007h "Create Connection" (obsolete?)
???
0008h "Delete Connection" (obsolete?)
???
0009h "SetLookAheadSize"
CX = requested lookahead size (00h-80h)
000Ah "PromiscuousChange"
CX = what to receive promiscuously
bit 0: MAC frames
bit 1: non-MAC frames
000Bh "RegisterReceiveMonitor"
CX = subfunction
0000h disable receive monitoring
else enable receive monitoring
ES:SI -> monitor receive routine
ES:DI -> monitor transmit routine
000Ch "Driver Poll" (obsolete?)
???
Return: AX = completion code (see #02989)
ZF set if successful
Note: not all boards/MLIDs support function 0010h; see bit 13 in the MLID
mode flags field of the MLID's configuration table
(Table 02996)
Call protocol stack control entry point with:
BX = function number
0000h "GetProtocolStackConfiguration"
Return: ES:SI -> protocol stack's configuration table
(see #03001)
0001h "GetProtocolStackStatistics"
Return: ES:SI -> protocol stack's statistics table (see #03000)
0002h "BindToMLID"
CX = board number to bind to
ES:SI -> implementation-dependant parameter string
0003h "UnBindFromMLID"
CX = board number from which protocol should unbind
ES:SI -> optional implementation-dependant parameter string
0004h "MLIDDeRegistered"
CX = board number that has de-registered from LSL
Return: AX = status
0000h successful
else implementation-dependant error codes
ZF set if successful
SS:SP, DS, BP preserved
Format of AES ECB:
Offset Size Description (Table 02997)
00h DWORD "AESLink" pointer used by LSL for list management
04h DWORD number of milliseconds to wait
08h DWORD "AESStatus" (is set to 00000000h when AES ESR is invoked)
0Ch DWORD -> function to be invoked when time expires
ES:SI will point to this structure on entry,
DS, BP, and SS:SP must be preserved.
SeeAlso: #03011
Format of LSL Configuration Table:
Offset Size Description (Table 02998)
00h BYTE major version of configuration table
01h BYTE minor version of configuration table (decimal, 0-99)
02h 8 BYTEs reserved
0Ah BYTE LSL major version (decimal)
0Bh BYTE LSL minor version (decimal, 0-99)
---LSL 1.0x ---
0Ch 14 BYTEs reserved
---LSL 1.10+ ---
0Ch WORD maximum number of boards which LSL can handle
0Eh WORD maximum number of protocol IDs which LSL can handle
10h 12 BYTEs reserved
Format of LSL Statistics Table:
Offset Size Description (Table 02999)
00h BYTE major version of statistics table format
01h BYTE minor version of statistics table format (decimal, 0-99)
02h WORD "GenericCounters" number of counters in static portion of
table
04h DWORD "ValidCountersMask" bit mask indicating which generic
counters are actually used. Bit 31 = TotalTxPackets, bit 30
is the next field, etc.
08h DWORD "TotalTxPackets" total SendPacket requests made
0Ch DWORD reserved
10h DWORD reserved
14h DWORD "AESEventsCount" number of completed AES events
18h DWORD "PostponedEvents" number of events postponed due to critical
sections inside the MLIDs
1Ch DWORD "CancelAESFailures" number of times CancelAESEvent failed
20h DWORD reserved
24h DWORD reserved
28h DWORD "TotalRxPackets" total number of GetStackECB requests
2Ch DWORD "UnclaimedPackets" total number of packets not consumed by a
protocol stack
30h WORD "NumberCustom" number of custom variables that follow
32h N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter)
var length-prepended and NULL terminated string for Counter 0
...
var length-prepended and NULL terminated string for Counter N-1
SeeAlso: #03000,#03006
Format of Protocol Stack Statistics Table:
Offset Size Description (Table 03000)
00h BYTE statistics table major version
01h BYTE statistics table minor version (decimal, 0-99)
02h WORD number of generic counters following
04h DWORD "ValidCountersMask" (bitmask, bit 31 is TotalTxPackets)
08h DWORD TotalTxPackets
0Ch DWORD TotalRxPackets
10h DWORD IgnoredRxPackets
14h WORD number of custom counters
16h N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter)
var length-prepended and NULL terminated string for Counter 0
...
var length-prepended and NULL terminated string for Counter N-1
SeeAlso: #02999,#03006
Format of Protocol Stack Configuration Table:
Offset Size Description (Table 03001)
00h BYTE configuration table major version
01h BYTE configuration table minor version (decimal, 0-99)
02h DWORD -> counted NUL-terminated long descriptive name for protocol
06h DWORD -> counted NUL-terminated short name for protocol (15 chars)
0Ah BYTE protocol stack major version
0Bh BYTE protocol stack minor version (decimal, 0-99)
0Ch 16 BYTEs reserved for future use
Format of MLID Configuration Table:
Offset Size Description (Table 03002)
00h 26 BYTEs signature 'HardwareDriverMLID ' (8 spaces on end)
1Ah BYTE configuration table major version
1Bh BYTE configuration table minor version (decimal, 0-99)
1Ch 6 BYTEs node address
22h WORD MLID mode flags (see #03003)
24h WORD board number
26h WORD board instance (if more than one of same board installed)
28h WORD maximum packet size
2Ah WORD BestDataSize
2Ch WORD WorstDataSize
2Eh DWORD -> counted NUL-terminated long name for NIC
32h DWORD -> counted NUL-terminated short name for NIC (8 chars max)
36h DWORD -> counted NUL-terminated Frame and Media type
3Ah WORD reserved (0000h)
3Ch WORD frame type ID
3Eh WORD TransportTime (milliseconds)
40h DWORD -> SourceRouteHandler for TokenRing. (Used by ROUTE.COM)
44h WORD lookahead size
46h WORD line speed (Mbps if high bit clear, else Kbps)
48h WORD QueueDepth
4Ah 6 BYTEs reserved (0)
50h BYTE driver major version
51h BYTE driver minor version (decimal, 0-99)
52h WORD bus/multicast flags (see #03004)
54h WORD send retries
56h DWORD ConfigTableLink
5Ah WORD MLID sharing flags (see #03005)
5Ch WORD slot number
5Eh WORD I/O address 1
60h WORD I/O range 1
62h WORD I/O address 2
64h WORD I/O range 2
66h DWORD memory address 1
6Ah WORD memory size 1
6Ch DWORD memory address 2
70h WORD memory size 2
72h BYTE interrupt line 1
73h BYTE interrupt line 2
74h BYTE DMA line 1
75h BYTE DMA line 2
Bitfields for MLID mode flags:
Bit(s) Description (Table 03003)
15 MLID supports Octet Reversal
14 node address is non-canonical
13 promiscuous mode is supported
12-8 reserved
7 LDataSize field in LookAhead structure supported
6 raw send supported
5 MLID needs to be polled by LSL
4 reserved (0)
3 multicasting is supported
2 not currently used by DOS ODI, set to 0.
1 network card uses DMA.
0 RealDriverBit, always set to 1.
Bitfields for bus/multicast flags:
Bit(s) Description (Table 03004)
10-9 specialized multicast support
00 = Group addressing is default for medium
01 = Invalid
10 = Filter group address in MLID.
11 = Adapter filters group address.
2 supports Micro Channel cards
1 supports ISA cards
0 supports EISA cards
Bitfields for MLID sharing flags:
Bit(s) Description (Table 03005)
8 NIC can share DMA2
7 NIC can share DMA1
6 NIC can share IRQ2
5 NIC can share IRQ1
4 NIC can share Memory2
3 NIC can share Memory1
2 NIC can share IO2
1 NIC can share IO1
0 MLID is currently shut down
Format of MLID Statistics Table:
Offset Size Description (Table 03006)
00h BYTE driver statistics table major version
01h BYTE driver statistics table minor version (decimal, 0-99)
02h WORD number of generic counters (typically 13)
04h DWORD "ValidCountersMask" (bit mask, bit 31 is TotalTxCount)
08h DWORD TotalTxCount
0Ch DWORD TotalRxCount
10h DWORD NoECBAvailableCount
14h DWORD TxTooBigCount
18h DWORD TxTooSmallCount
1Ch DWORD RxOverflowCount
20h DWORD RxTooBigCount
24h DWORD RxTooSmallCount
28h DWORD TxMiscCount
2Ch DWORD RxMiscCount
30h DWORD TxRetryCount
34h DWORD RxChecksumErrorCount
38h DWORD RxMismatchCount
3Ch WORD number of custom counters
3Eh N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter)
var length-prepended and NULL terminated string for Counter 0
...
var length-prepended and NULL terminated string for Counter N-1
SeeAlso: #02999,#03000
Format of bound stack info structure:
Offset Size Description (Table 03007)
00h DWORD -> protocol stack's short name (counted, NUL-terminated)
04h DWORD -> receive handler
08h DWORD -> control handler
Format of stack info structure:
Offset Size Description (Table 03008)
00h DWORD -> receive handler
04h DWORD -> control handler
Format of General Service Control Block:
Offset Size Description (Table 03009)
00h DWORD -> next GSCB (maintained internally by LSL)
04h DWORD -> entry point for general service handler
08h WORD command code for this general service (8000h-FFFFh)
Note: the control block must not be altered or deallocated until the general
service is removed
Format of Lookahead structure:
Offset Size Description (Table 03010)
00h DWORD -> Media header
04h DWORD -> lookahead buffer
08h WORD length of lookahead buffer
0Ah 6 BYTEs protocol ID
10h WORD logical board number
12h WORD lookahead size
Format of ODI ECB:
Offset Size Description (Table 03011)
00h DWORD link to next ECB
04h DWORD link to previous ECB
08h WORD general status
0000h received successfully
8006h packet overflow
8007h reception aborted (data not valid)
0Ah DWORD -> event service routine or RETF (never 0000h:0000h)(see #03012)
0Eh WORD protocol stack identifier
10h 6 BYTEs protocol ID (sending only)
16h WORD MLID board number (sending only)
18h 6 BYTEs MAC destination address
1Eh 4 BYTEs driver workspace
22h 8 BYTEs protocol workspace
2Ah WORD total length of sent buffer
2Ch WORD fragment count
2Eh 2 WORDs segment,offset of first fragment buffer
32h WORD length of first fragment buffer
...
SeeAlso: #02997
(Table 03012)
Values event service routine is called with:
ES:SI -> associated ODI ECB (see #03011)
interrupts disabled
Return: DS,BP,SS,SP preserved
interrupt disabled
Notes: the service routine may invoke any IPX/ODI function except CloseSocket
it is safe to send a packet and wait for completion if enough stack
space is available
Top
INT 2F - Novell NetWare Event Service Layer (NESL) 1.0 - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed DX:BX -> FAR entry point (see #03013,#03014,#03015,#03016,#03017,#03018) ES:SI -> signature string "NESL_EVENTS" Program: NESL is a generic interface for event handling in ODI drivers and other NetWare-oriented modules. Primarily intended to support power management and "hot swapping" of PCMCIA cards, but it is not limited to this. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"Link Support Layer",AX=C000h"NETWARN" (Table 03013) Call NESL function GetNESLConfigPointer with: BX = 0000h Return: AX = completion code (0000h,8008h) (see #03019) ES:SI -> NESL configuration table if successful (see #03020) BP,DS,STACK preserved Desc: Obtain a pointer to the NESL Configuration Table SeeAlso: #03014,#03017 (Table 03014) Call NESL function RegisterEventProducer with: BX = 0001h ES:SI -> Producer Event Control Block (PECB) (see #03021) Return: AX = completion code (0000h, 8005h, 8008h) (see #03019) ES:SI -> still points to PECB BP,DS,STACK preserved Desc: Allows a module to register as a producer of a given event class Note: PECB_ClassName and PECB_Flags must be filled in on entry SeeAlso: #02870,#03015,#03016,#03017 (Table 03015) Call NESL function DeRegisterEventProducer with: BX = 0002h ES:SI -> PECB previously passed to RegisterEventProducer (see #03021) Return: AX = completion code (0000h, 8002h, 8008h) (see #03019) ES:SI -> still points to PECB BP,DS,STACK preserved Desc: Allows a module to de-register as a producer of a given event class SeeAlso: #03014,#03018 (Table 03016) Call NESL function EventNotification with: BX = 0003h ES:SI -> PECB previously registered (see #03021) Return: AX = completion code (0h, 8005h, 8008h) (see #03019) ES:SI -> still points to PECB BP,DS,STACK preserved Desc: Allows a module to signal that an event has just occurred in a given event class. Notes: Once called, NESL will generate corresponding callouts for this event, as described in Table #03023. on entry, the PECB_DataPtr must point at an Event Parameter Block (EPB) (see #03024) filled in to match the desired event SeeAlso: #03014 (Table 03017) Call NESL function RegisterEventConsumer with: BX = 0004h ES:SI -> Consumer Event Control Block (CECB) (see #03022) Return: AX = completion code (0h, 8005h, 8008h) (see #03019) ES:SI -> still points to CECB BP,DS,STACK preserved Desc: Allows a module to register as a consumer of a given event class Note: on entry, the CECB_ClassName, CECB_NotifProc and CECB_OSILevel must be filled in. SeeAlso: #03014,#03018 (Table 03018) Call NESL function DeRegisterEventConsumer with: BX = 0005h ES:SI -> CECB previously passed to RegisterEventConsumer (see #03022) Return: AX = completion code (0h, 8002h, 8008h) (see #03019) ES:SI -> still points to CECB BP,DS,STACK preserved Desc: Allows a module to de-register as a consumer of a given event class SeeAlso: #03015,#03017 (Table 03019) Values for NESL Error code: 0000h Successful 8002h Bad Parameter 8005h Fail 8008h Bad Command Format of NESL Configuration Table: Offset Size Description (Table 03020) 00h WORD NESL_Cfg_MajVer Major Version of this table (=1) 02h WORD NESL_Cfg_MinVer Minor Version of this table (=0) 04h DWORD NESL_Cfg_ModLName -> ASCIZ long name of NESL module (typically -> "NetWare Event Service Layer for 16-Bit DOS") 08h DWORD NESL_Cfg_ModSName -> ASCIZ short name of NESL module (typically -> "NESL") 0Ch WORD NESL_Cfg_ModMajVer Major Version of NESL itself (=1) 0Eh WORD NESL_Cfg_ModMinVer Minor Version of NESL itself (=0) Format of NESL Producer Event Control Block (PECB): Offset Size Description (Table 03021) 00h WORD PECB_MajVer Major Version of this structure (=1) 02h WORD PECB_MinVer Minor Version of this structure (=0) 04h DWORD PECB_NextProducer -> next PECB. NULL if last. 08h DWORD PECB_ClassName -> ASCIZ string identifying event class (see #03025) 0Ch DWORD PECB_ConsumerList -> list of consumers for this event class 10h DWORD PECB_DataPtr -> points to additional data during events 14h DWORD PECB_Flags Bit 0 =0 consumers should be called "top down" for this event class. (OSI level 7 down to OSI level 1) =1 consumers should be called "bottom up" Bits 1-31 Reserved =0 18h 8 BYTEs PECB_Reserved (all zeros) Note: Although the event producer provides the memory for the PECB, the NESL module controls this memory until the event class is de-registered. While owned by NESL, this structure should be treated as read-only, except for the PECB_DataPtr field. Format of NESL Consumer Event Control Block (CECB): Offset Size Description (Table 03022) 00h WORD CECB_MajVer Major Version of this structure (=1) 02h WORD CECB_MinVer Minor Version of this structure (=0) 04h DWORD CECB_NextConsumer -> next CECB. NULL if last. 08h DWORD CECB_ClassName -> ASCIZ string identifying event class (see #03025) 0Ch DWORD CECB_NotifProc -> FAR CALL event handler (see #03023) 10h WORD CECB_OSILevel Bits 4-7 = OSI Layer of this module (1 through 7) Bits 0-3 = relative ordering with other modules on same layer 13h 14 BYTEs CECB_Reserved (all zeros) Note: Although the event consumer provides the memory for the CECB, the NESL module controls this memory until the consumer is de-registered. While owned by NESL, this structure should be treated as read-only, (Table 03023) Values NESL Consumer Notification Procedure is called with: ES:SI -> Event Parameter Block (EPB) (see #03024) Return: AX = completion code (0000h, 8005h) (see #03019) ES:SI -> still points to EPB Desc: Called by NESL to notify the consumer when an event has occurred in an event class for which it has registered. SeeAlso: #03022 Format of NESL Event Parameter Block (EPB): Offset Size Description (Table 03024) 00h WORD EPB_MajVer Major Version of this structure (=1) 02h WORD EPB_MinVer Minor Version of this structure (=0) 04h DWORD EPB_ClassName -> ASCIZ string identifying event class (see #03025) 08h DWORD EPB_EventName -> ASCIZ string identifying event within class (see #03026) 0Ch DWORD EPB_ModuleName -> ASCIZ string identifying module producing event 10h DWORD EPB_DataPtr0 -> event-defined data or NULL if not used 14h DWORD EPB_DataPtr1 -> event-defined data or NULL if not used 18h 8 BYTEs EPB_Reserved (all zeros) (Table 03025) Values for NESL Event Class Names: Event Class Description ------------------- ----------------------------------------- Service Suspend Suspension of a service. Called top-down. Service Resume Resumption/availability of a service. Called bottom-up. Service/Status Change Change in status or level of service. Called top-down. Suspend Request Request to suspend a service. Called bottom-up. Note: Contact Novell Labs to register new event classes. (Table 03026) Values for NESL Event Names: Event Name Class Description -------------------------- ------------- --------------------------- MLID Cable Disconnect Service Suspend Cable disconnected from NIC MLID Card Removal Service Suspend PCMCIA card removed MLID Hardware Failure Service Suspend Serious hardware failure in NIC MLID Not In Range Service Suspend Wireless access point is out of range MLID Shutdown Service Suspend MLID was shut down MLID Media Access Denied Service Suspend Access to physical medium unsuccessful MLID Cable Reconnect Service Resume Cable re-connected to NIC MLID Card Insertion Complete Service Resume PCMCIA card inserted MLID In Range Service Resume Wireless access point in range MLID Reset Service Resume MLID was just reset MLID Access Point Change Serv/Status Change Station has moved to new access point MLID Speed Change Serv/Status Change Change in communic. speed Note: Contact Novell Labs to register new event names. For all predefined events above, EPB_DataPtr0 (see #03024) points to the MLID Configuration table (see AX=C000h"ODI") for the affected MLID.Top
INT 2F - Novell NetWare Connect NETWARN - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed SI = segment of resident portion Program: NETWARN is a utility supplied with NetWare Connect to warn a remote dialup user when programs are about to be loaded slowly over the modem link. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Note: on return, verify that it is NETWARN responding by examining signature at in NETWARN's data table in the resident segment (see #03027) SeeAlso: AX=C000h"ODI",AX=C000h"NESL" Format of NETWARN Configuration structure: Offset Size Description (Table 03027) 103h 7 BYTEs signature string "NETWARN" 10Ah BYTE major version in ASCII (="1") 10Bh BYTE minor version in ASCII (="0") 10Ch DWORD minimum size of EXE cared about in bytes (/S=xxxx) 110h WORD same value in kilobytes (see #03028 [bit 4]) 112h BYTE multiplex code (AH value) actually being used 113h WORD options (see #03028) 115h DWORD INT 21h vector before NETWARN loaded 119h DWORD INT 2Fh vector before NETWARN loaded 11Dh 16 BYTEs ASCIIZ local name of last device which was checked 12Dh 128 BYTEs ASCIIZ remote name of last device which was checked Note: the specified offsets are from the start of the resident segment Bitfields for NETWARN options: Bit(s) Description (Table 03028) 0 ??? (=0) 1 /U (Unload) selected (never in resident) 2 /E (Enabled) Will trap & check EXEC's 3 /D (Disabled) No EXEC checking done 4 /S (Size) was set (see #03027 [offsets 010Ch and 0110h]) 5 /P (Path shown) 6 /H or /? (Help) (never in resident) SeeAlso: #03027Top
INT 2F - FN32 32 character filename utilities - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed ES:DI -> signature string "FN32 32CHAR TSR" Program: FN32 is a TSR which supports 32 character filenames under PC/MS-DOS Note: the TSR intercepts INT 21 calls and performs filename substitution by managing dictionary files in each directory which contains long filenamesTop
INT 2F - QMR - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed ES:DI -> signature string "QMR1!" Program: QMR (Cove Software, Quick Mouse Reset) monitors the mouse service interrupt (int 33h) and substitutes a fast software reset (mouse fn 21h) for the slow hardware reset (mouse fn 0). Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C001h"QMR",AX=C002h"QMR",AX=C003h"QMR"Top
INT 2F - VGAsave v1.93 - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed BX = segment of resident code Program: VGAsave is a freeware VGA-specific, mouse-aware screenblanker by Bill Javurek Range: AH=C0h to AH=FFh, selected by scanning for a free multiplex number Note: the transient portion of VGAsave compares the first 38 bytes of the resident code (addressed through BX) against its own copy of the resident code to complete the installation check SeeAlso: INT 14/AX=AA01h,INT 2F/AH=93h Index: screen saver;VGAsaveTop
INT 2F - AD-DOS - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
BX = 4144h ('AD')
CX = 2D44h ('-D')
DX = 4F53h ('OS')
Program: AD-DOS is the DOS version of the After Dark screen blanker for
MS Windows
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C001h"AD-DOS",AX=C003h"AD-DOS",AX=C005h"AD-DOS",AX=C007h"AD-DOS"
SeeAlso: AX=C009h"AD-DOS",AX=C020h"AD-DOS",INT 14/AX=AA01h
Index: screen saver;AD-DOS
Top
INT 2F U - WANG_ER.COM - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed ES = segment of resident code Program: WANG_ER is a TSR from Compaq which permits Compaq systems equipped with 3-mode floppy drives to read Wang document diskettes Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Note: The installation check is completed by comparing the resident code with the copy in the transient programTop
INT 2F O - ASPIHOOK.SYS - INSTALLATION CHECK AX = C000h Return: AL = FFh if multiplex number in use ES:DI -> ASCIZ signature "ASPIHOOK" if ASPIHOOK.SYS installed Program: ASPIHOOK is a device driver for monitoring SCSI activity through an ASPI host manager; it is part of the Personal Measure system activity monitor from Spirit of Performance, Inc. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"PMEASURE"Top
INT 2F - PMEASURE.EXE - INSTALLATION CHECK AX = C000h Return: AL = FFh if multiplex number in use ES:DI -> ASCIZ signature "PMEASURE.EXE" if PMEASURE.EXE installed Program: PMEASURE.EXE is a TSR for monitoring system hardware activity which is part of the Personal Measure system activity monitor from Spirit of Performance, Inc. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Note: If a Personal Measure Hook Module, such as ASPIHOOK.SYS, is already installed, PMEASURE.EXE uses the next highest free multiplex number. SeeAlso: AX=C000h"ASPIHOOK",AX=C000h"PERSONAL MEASURE"Top
INT 2F - PERSONAL MEASURE - HOOK MODULE INSTALLATION CHECK AX = C000h Return: AL = FFh if installed ES:DI -> signature string "PMEASUREHOOK" AX = C000 if not installed, per mux id conventions DH = major release number (binary) DL = minor release number (binary) Program: The Personal Measure system activity monitor from Spirit of Performance, Inc. uses an extensible series of modules to hook into various operating system interfaces and monitor system calls. Current hook modules are ASPIHOOK.SYS for ASPI device activity and CDRHOOK.SYS for non-ASPI CD-ROM activity. All hook modules share the same mux id. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"PMEASURE.EXE",AX=C001h"PERSONAL MEASURE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
SI = signature value 20D6h
DI = signature value 8761h
ES:BX -> configuration table (see #03029)
CX = ??? (0300h)
DX = ??? (0020h)
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
Range: AH=C0h to AH=FFh, selected by commandline switch
SeeAlso: AX=0100h/SI=20D6h,AX=C001h"PCACHE"
Format of PrintCache configuration table:
Offset Size Description (Table 03029)
00h 26 BYTEs ASCIZ signature string "TORQ Configuration Table: "
1Ah 2 BYTEs ???
1Ch DWORD -> data table (see #03030)
20h 4 BYTEs ASCIZ version string ("3.1" for v3.1)
24h 5 BYTEs ???
29h 12 BYTEs ASCIZ version date string ("Aug 31 1993" for v3.1)
35h WORD buffered port type (01h = LPT, 02h = COM)
37h WORD buffered port BIOS port number
39h 5 BYTEs ASCIZ buffered port name ("LPTn" or "COMn")
3Eh WORD physical port type (01h = LPT, 02h = COM)
40h WORD physical port BIOS port number
42h 5 BYTEs ASCIZ physical port name ("LPTn" or "COMn")
47h BYTE port driver IRQ
48h 21 BYTEs ???
5Dh WORD buffer size in K
5Fh 27 BYTEs ???
7Ah BYTE popup hotkey shift states (see #00582 at INT 16/AH=02h)
7Bh BYTE popup hotkey scan code (see #00006 at INT 09"IRQ1")
7Ch 4 BYTEs ???
80h 20 BYTEs ASCIZ printer type name
???
Format of PrintCache data table:
Offset Size Description (Table 03030)
00h 2 BYTEs ???
02h DWORD -> ??? entry point
???
Top
INT 2F - Frank Kintrup TSR Utilities - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed BX = program ID (see #03031) CX = 464Bh (signature "FK") DX = revision number (DH = major, DL = minor) ES = resident segment of TSR Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number SeeAlso: AX=C001h"Kintrup",AX=C002h"Kintrup" (Table 03031) Values for Frank Kintrup TSR program ID: 4153h "AS" ASCII.COM ASCII table with paste function 434Ch "CL" CLOCK.COM clock with date/time display and alarm 5043h "PC" PCALC.COM programmer's calculator with paste function 5343h "SC" SCRSAVE.COM screen saver with mouse support and hotkey 5544h "UD" UNDEL.COM undelete program like SMARTCAN or DPROTECTTop
INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK AX = C000h Return: AL = FFh if possibly installed Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh SeeAlso: AX=C001h"HP 100LX",AX=C0AEh"HP 100LX",AX=C0AFh"HP 100LX"Top
INT 2F - DIMWIT - INSTALLATION CHECK AX = C000h Return: AL = FFh if installed ES:DI -> signature string "DIMDOS" or "DIMWIN" Program: DIMWIT is a freeware Windows-aware screen blanker by Larry Board Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"AD-DOS",AX=C001h"DIMWIT" Index: screen saver;DIMWITTop
INT 2F - METZ XpressFax Hardware TSR (CLASS2) - INSTALLATION CHECK
AX = C000h
BX = 444Bh ('DK')
CX = 4A4Eh ('AN')
Return: AL = status
00h not installed, OK to install
FFh installed
BX = 646Bh ('dk')
CX = 6A6Eh ('an')
Range: AH=C0h to AH=FFh, selected automatically
SeeAlso: AH=C0h"METZ"
Top
INT 2F U - TSENGP.COM - INSTALLATION CHECK AX = C000h Return: AL = status 00h not installed, OK to install FFh installed DS = segment of resident code Program: TSENGP.COM is a TSR supplied by Compaq to fix an incompatibility between some applications and Tseng ET4000-based video adapters Range: AH=C0h to AH=FFh, selected automatically Note: the installation check is completed by comparing the first eleven bytes at DS:005Fh against the TSR's code (80h FCh 06h 74h 0Ah 80h FCh 07h 74h 05h EAh)Top
INT 2F U - LapLink RemoteAccess (LLRA) - INSTALLATION CHECK AX = C000h Return: AL = FFh if one of the components is installed CX:BX -> signature within LLRA component: "TSI_LapLinkCore" for LLRA1.EXE "TSI_Blackbird" for LLRA2.EXE "TSI_Redirector" for LLRA3.EXE "TSI_Compression" for LLRA4.EXE DL = major version number DH = minor version number Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Note: LapLink components are installed in the order listed above, but not necessarily all four; each gets its own multiplex number (default C0h-C3h) SeeAlso: AX=C002h"LapLink",AX=C205h"LapLink",AX=C2F0h"LapLink" SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink",AX=C3F0h"LapLink" SeeAlso: AX=C3F1h"LapLink"Top
INT 2F - QMR - REQUEST HARDWARE RESET AX = C001h Return: ES = QMR code segment AL destroyed Desc: this function is used to force a full mouse reset when QMR is installed SeeAlso: AX=C000h"QMR",AX=C002h"QMR"Top
INT 2F - DIMWIT - GET CONFIGURATION DATA AX = C001h Return: ES:DI -> TSR configuration data (see #03032) Program: DIMWIT is a freeware Windows-aware screen blanker by Larry Board Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"DIMWIT",AX=C001h"AD-DOS" Index: screen saver;DIMWIT Format of DIMWIT TSR configuration data: Offset Size Description (Table 03032) 00h WORD blanking delay in clock ticks 02h BYTE instant-blanking hotkey scan code (see #00006) Ctrl and Alt must also be pressedTop
INT 2F - AD-DOS - GET RESIDENT CODE SEGMENT AX = C001h ES = 0000h Return: AL = 00h if successful ES = AD-DOS TSR Code Segment SeeAlso: AX=C000h"AD-DOS",AX=C001h"DIMWIT" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ENTRY POINTS AX = C001h Return: AL = FFh if installed ES:BX -> ??? ES:DX -> ??? ES:SI -> ??? ES:DI -> ??? (equivalent to AX=C002h) SeeAlso: AX=C000h"PCACHE",AX=C002h"PCACHE"Top
INT 2F - Frank Kintrup TSR Utilities - CLOCK - DISABLE DISPLAY UPDATE AX = C001h Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number SeeAlso: AX=C000h"Kintrup",AX=C002h"Kintrup"Top
INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - UNINSTALL AX = C001h CX = 03FBh return address to continue uninstall if possible Return: program uninstalled Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh SeeAlso: AX=C000h"HP 100LX",AX=C0AEh"HP 100LX",AX=C0AFh"HP 100LX"Top
INT 2F - PERSONAL MEASURE - PASS PARAMETERS TO HOOK MODULE(S) AX = C001h DX = segment of PMEASURE.EXE or 0000h BX = offset in PMEASURE.EXE or 0000h CX = offset in PMEASURE.EXE or 0000h Return: None Program: PMEASURE.EXE is a TSR for monitoring system hardware activity which is part of the Personal Measure system activity monitor from Spirit of Performance, Inc. PMEASURE uses this call to inform its hook modules whether or not it is running and to pass information about shared data and procedures. Warning: This information documents a function that is private to Personal Measure and is provided as information only. It should NOT be called by any software other than Personal Measure. SeeAlso: AX=C000h"PERSONAL MEASURE"Top
INT 2F - AD-DOS - CHECK FOR NEW INPUT AX = C002h Return: AL = 00h if successful BX = status 0000h no input since last check 0001h new input available Note: this call also resets the new-input flag SeeAlso: AX=C000h"AD-DOS",AX=C004h Index: screen saver;AD-DOSTop
INT 2F - QMR - DISABLE QMR AX = C002h Return: ES = QMR code segment AL destroyed Desc: this call temporarily disables QMR SeeAlso: AX=C000h"QMR",AX=C003h"QMR"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET BUFFER SIZE AX = C002h Return: AX = ??? in K BX = size of print buffer in K Program: PCACHE is the resident print spooler portion of PrintCache by LaserTools; it may use either memory or disk space to spool output SeeAlso: AX=C000h"PCACHE"Top
INT 2F - Frank Kintrup TSR Utilities - CLOCK - ENABLE DISPLAY UPDATE AX = C002h Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number SeeAlso: AX=C000h"Kintrup",AX=C002h"Kintrup"Top
INT 2F U - LapLink RemoteAccess (LLRA) - Core - ??? AX = C002h details not yet available Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C2F0h"LapLink" SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"Top
INT 2F - AD-DOS - SET MINUTES TO WAIT AX = C003h BX = minutes to wait before blanking screen Return: AL = 00h if successful Program: AD-DOS is the DOS version of the After Dark screen blanker for MS Windows Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Note: this call also resets the delay timer SeeAlso: AX=C000h"AD-DOS",AX=C004h Index: screen saver;AD-DOSTop
INT 2F - QMR - ENABLE QMR AX = C003h Return: ES = QMR code segment AL destroyed Desc: this call enables QMR after it has been disabled SeeAlso: AX=C000h"QMR",AX=C002h"QMR"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG AX = C003h Return: BX destroyed SeeAlso: AX=C004h"PCACHE"Top
INT 2F - AD-DOS - GET MINUTES TO WAIT AX = C004h Return: AL = 00h if successful BX = minutes to wait before blanking screen SeeAlso: AX=C000h"AD-DOS",AX=C003h"AD-DOS" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG AX = C004h Return: BX destroyed SeeAlso: AX=C003h"PCACHE"Top
INT 2F - AD-DOS - SET BLANKER STATUS AX = C005h BX = new state (0000h inactive, 0001h active) (default 0001h) Return: AL = 00h if successful SeeAlso: AX=C006h"AD-DOS" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C005h ??? Return: BX destroyed ??? Program: PCACHE is the resident print spooler portion of PrintCache by LaserTools; it may use either memory or disk space to spool output Range: AH=C0h to AH=FFh, selected by commandline switch SeeAlso: AX=C000h"PCACHE"Top
INT 2F - AD-DOS - GET BLANKER STATUS AX = C006h Return: AL = 00h if successful BX = current state of screen blanker (0000h inactive, 0001h active) Program: AD-DOS is the DOS version of the After Dark screen blanker for MS Windows Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"AD-DOS",AX=C005h"AD-DOS" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C006h ??? Return: BX destroyed ??? Note: this function appears to be identical to AX=C007h SeeAlso: AX=C000h"PCACHE",AX=C007h"PCACHE"Top
INT 2F - AD-DOS - SET HOT KEY AX = C007h BX = hot key CL = hot key shift status Return: AL = 00h if successful SeeAlso: AX=C008h"AD-DOS" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C007h ??? Return: BX destroyed ??? Note: this function appears to be identical to AX=C006h SeeAlso: AX=C000h"PCACHE",AX=C006h"PCACHE"Top
INT 2F - AD-DOS - GET CURRENT HOT KEY AX = C008h Return: AX = status 0000h successful BX = Hot Key CL = Hot Key Shift Status 0008h otherwise SeeAlso: AX=C000h"AD-DOS",AX=C007h"AD-DOS" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG AX = C008h Return: BX destroyed SeeAlso: AX=C000h"PCACHE",AX=C009h"PCACHE"Top
INT 2F - AD-DOS - UNBLANK MONITOR AX = C009h Return: AL = 00h if successful Program: AD-DOS is the DOS version of the After Dark screen blanker for MS Windows Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Note: this function works by simulating keyboard activity Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG AX = C009h Return: BX destroyed Program: PCACHE is the resident print spooler portion of PrintCache by LaserTools; it may use either memory or disk space to spool output Range: AH=C0h to AH=FFh, selected by commandline switch SeeAlso: AX=C000h"PCACHE",AX=C008h"PCACHE"Top
INT 2F - AD-DOS - ??? AX = C00Ah Return: AX = status 0000h successful BH = ?? BL = ?? 000Ah failed Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C00Ah ??? Return: AH = bit flags bit 5: ??? AL = bit flags bit 4: ??? bit 3: ??? BX destroyed ??? SeeAlso: AX=C000h"PCACHE"Top
INT 2F - AD-DOS - ??? AX = C00Bh Return: AX = status 0000h successful 000Bh failed Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP AX = C00Bh Return: BX destroyed SeeAlso: AX=C000h"PCACHE"Top
INT 2F - AD-DOS - SET ??? INTERNAL FLAG TO 01h AX = C00Ch Return: AX = status 0000h successful 000Ch failed Program: AD-DOS is the DOS version of the After Dark screen blanker for MS Windows Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ??? AX = C00Ch Return: AX = ??? (0000h) BX = ??? (0000h) CX = ??? (0100h) DL = ??? DH = ??? SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? AX = C00Dh DL = ??? Return: BX destroyed Program: PCACHE is the resident print spooler portion of PrintCache by LaserTools; it may use either memory or disk space to spool output Range: AH=C0h to AH=FFh, selected by commandline switch SeeAlso: AX=C000h"PCACHE"Top
INT 2F - AD-DOS - SET PASSWORD STATUS AX = C00Eh BX = new state (0000h disabled, 0001h enabled) Return: ??? SeeAlso: AX=C000h"AD-DOS",AX=C00Fh"AD-DOS" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALL ??? AX = C00Eh ES:DX -> ??? Return: BX destroyed Note: ES:DX is stored internally if the variable is currently 0000h:0000h, but ignored if already set; a counter is incremented SeeAlso: AX=C000h"PCACHE",AX=C00Fh"PCACHE"Top
INT 2F - AD-DOS - GET PASSWORD STATUS AX = C00Fh Return: BX = current state (0000h disabled, 0001h enabled) SeeAlso: AX=C00Eh"AD-DOS" Index: screen saver;AD-DOSTop
INT 2F U - PrintCache v3.1 PCACHE.EXE - REMOVE ??? AX = C00Fh Return: BX destroyed Note: this function decrements the counter used by AX=C00Eh, and clears the internal pointer variable to 0000h:0000h when it reaches zero SeeAlso: AX=C000h"PCACHE",AX=C00Eh"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ??? AX = C010h CX = index of ??? table (00h-02h, others treated as 00h) SI = offset into data table Return: AL = byte at specified offset into table BX destroyed SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ??? AX = C011h Return: AX = ??? (0007h) BX = ??? (0001h) CH = ??? CL = ??? SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ??? AX = C012h Return: AX = ??? BX = ??? CX = ??? DX = ??? SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C013h ??? Return: BX destroyed ??? Program: PCACHE is the resident print spooler portion of PrintCache by LaserTools; it may use either memory or disk space to spool output Range: AH=C0h to AH=FFh, selected by commandline switch SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C014h ??? Return: BX destroyed ??? SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C015h ??? Return: BX destroyed ??? SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - INCREMENT ??? AX = C016h Return: BX destroyed SeeAlso: AX=C000h"PCACHE",AX=C017h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - DECREMENT ??? AX = C017h Return: BX destroyed SeeAlso: AX=C000h"PCACHE",AX=C016h"PCACH"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C018h ??? Return: BX destroyed ??? Note: the first instruction of this function is an indirect jump which points at a RET by default SeeAlso: AX=C000h"PCACHE",AX=C019h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C019h ??? Return: BX destroyed ??? Note: the first instruction of this function is an indirect jump which points at a RET by default SeeAlso: AX=C000h"PCACHE",AX=C018h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG AX = C01Ah Return: BX destroyed SeeAlso: AX=C000h"PCACHE",AX=C01Bh"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG AX = C01Bh Return: BX destroyed SeeAlso: AX=C000h"PCACHE",AX=C01Ah"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - ??? AX = C01Ch ??? Return: AX = ??? BX destroyed SeeAlso: AX=C000h"PCACHE"Top
INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP AX = C01Dh to C01Fh Return: BX destroyed Program: PCACHE is the resident print spooler portion of PrintCache by LaserTools; it may use either memory or disk space to spool output Range: AH=C0h to AH=FFh, selected by commandline switch SeeAlso: AX=C000h"PCACHE"Top
INT 2F - AD-DOS - GET AND RESET VxD API STATUS AX = C020h Return: AL = 00h if successful BX = VxD API Status 0000h no error 0001h error 0100h neither Windows 3.X enhanced mode nor Windows/386 2.x is running 0200h VM API entry point not found (VxD not installed) Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number Note: this call resets the VxD API Status to zero SeeAlso: AX=1602h,AX=1607h"CALL OUT API" Index: screen saver;AD-DOSTop
INT 2F - Explosiv v2.00+ - NON-TSR EXECUTING CHECK AX = C04Eh Return: AL = 4Fh if Explosiv is running but not memory-resident Program: Explosiv is a shareware animated screen blanker for DOS and Windows 3 by H&G Software (Reidar Gresseth and Chris Hook) Range: AH=C0h to AH=C9h, selected by configuration SeeAlso: AX=C050h Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.00+ - INSTALLATION CHECK AX = C050h Return: AL = 51h if installed ---v3.0+ --- BX = interval in clock ticks CH = animation display color (00h mono, 01h tinge, 02h color) CL = animation delay factor DH = animation parameters DL = INT 10 checking (00h on, 01h off) SI = number of bytes available for animation code DI = display type (00h VGA, 01h EGA, 02h CGA, 03h HGC, 04h MDA) Program: Explosiv is a shareware animated screen blanker for DOS and Windows 3 by H&G Software (Reidar Gresseth and Chris Hook) Range: AH=C0h to AH=C9h, selected by configuration SeeAlso: AH=93h,AX=C000h"AD-DOS",AX=C04Eh,AX=C052h,AX=C054h"v3" SeeAlso: INT 14/AX=AA01h Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.00+ - UNINSTALL AX = C052h DX:BX = address to return to on successful uninstall Return: at specified address if successful AL = 53h on error Note: specified return address must have the segment of the caller's PSP SeeAlso: AX=C050h Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.x - GET ANIMATION DELAY FACTOR AX = C054h Return: AL = delay factor SeeAlso: AX=C057h Index: screen saver;ExplosivTop
INT 2F - Explosiv v3.0+ - UPDATE PARAMETERS AX = C054h BX = new interval in clock ticks CH = animation display color (00h mono, 01h tinge, 02h color) CL = animation delay factor DH = animation parameters DL = INT 10 checking (00h on, 01h off) SeeAlso: AX=C050h Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.x - SET BLANKING INTERVAL AX = C055h BX = new interval in clock ticks Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.x - SET ANIMATION DISPLAY TYPE AX = C056h BL = animated display type (00h mono, 01h color) SeeAlso: AX=C058h"v2.x" Index: screen saver;ExplosivTop
INT 2F - Explosiv v3.0+ - ENABLE/DISABLE EXPLOSIV AX = C056h BX = new state 0000h disabled 0100h enabled 0101h enabled, but never blank 0102h enabled, always blankTop
INT 2F - Explosiv v2.x - SET ANIMATION DELAY FACTOR AX = C057h BL = delay factor SeeAlso: AX=C054h"v2.x" Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.x - SET ANIMATION PARAMETER AX = C058h BL = animation parameter Note: the animation parameter has different interpretations for each display SeeAlso: AX=C056h"v2.x" Index: screen saver;ExplosivTop
INT 2F - Explosiv v3.0+ - LOAD NEW ANIMATION DISPLAY CODE AX = C058h BX = file handle for file containing display code CX = number of bytes to load DX = offset at which animation code should be loaded Return: AL = status (see #03033) Note: if AL=00h-03h on return, the file will be closed Index: screen saver;Explosiv (Table 03033) Values for Explosiv function status: 00h successful 01h code too large to available space 02h no data read, load aborted 03h incomplete load, default blanking display loaded instead 58h unexpected offset in DXTop
INT 2F - Explosiv v2.x - DISABLE EXPLOSIV AX = C059h Note: clears flag set by AX=C05Ah SeeAlso: AX=C05Ah Index: screen saver;ExplosivTop
INT 2F u - Explosiv v2.x - ENABLE EXPLOSIV AX = C05Ah BL = ??? Note: sets flag cleared by AX=C059h then stores BL SeeAlso: AX=C059h,AX=C05Bh Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.x - CHANGE ANIMATION DISPLAY AX = C05Bh BL = animation display Note: this function fails silently if the requested display is not in memory SeeAlso: AX=C05Ah,AX=C05Ch Index: screen saver;ExplosivTop
INT 2F - Explosiv v2.x - SET INT 10 CHECKING AX = C05Ch BL = new state of INT 10 checking (00h enabled, 01h disabled) SeeAlso: AX=C05Bh Index: screen saver;ExplosivTop
INT 2F U - AMI IAM.SYS - INSTALL ??? CALLBACK AX = C080h CX:DX -> ??? callback DI = segment of ??? buffer (first WORD copied into IAM.SYS) Program: IAM.SYS is the Illegal Activity Monitor portion of American Megatrends, Inc.'s PC-Defender anti-virus product Note: also sets ??? flag SeeAlso: AX=C081h Format of IAM.SYS buffer: Offset Size Description (Table 03034) 00h BYTE ??? 01h BYTE ??? 02h N BYTEs ??? (ASCIZ strings)Top
INT 2F U - AMI IAM.SYS - CLEAR ??? AX = C081h Desc: clears the ??? flag that AX=C080h sets SeeAlso: AX=C080hTop
INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK AX = C0AEh Return: AX = 4453h if installed CX = 5259h if installed Range: AH=C0h to AH=FFh, selected by scanning for signature SeeAlso: AX=C000h"HP 100LX",AX=C001h"HP 100LX",AX=C0AFh"HP 100LX"Top
INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - GET BUFFER ADDRESS AX = C0AFh Return: ES:DI -> buffer (behind code) Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh SeeAlso: AX=C000h"HP 100LX",AX=C001h"HP 100LX",AX=C0AEh"HP 100LX"Top
INT 2F U - Personal NetWare - STPIPX v1.00 - INSTALLATION CHECK AX = C100h Return: AL = FFh if installed ES:SI -> signature string "STP-IPX$" BX = version??? (0001h for v1.00) DI corrupted Note: AH=C1h is the default value; STPIPX probably scans a range of multiplex numbers to find a free one, as LSL does SeeAlso: AX=C000h"LSL",AX=C101hTop
INT 2F U - Personal NetWare - STPIPX v1.00 - UNINSTALL AX = C101h Return: AL = status??? BX corrupted SeeAlso: AX=C101hTop
INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ??? AX = C205h details not yet available Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C2F0h"LapLink" SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"Top
INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ??? AX = C2F0h details not yet available Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink" SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"Top
INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ??? AX = C2F1h details not yet available Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink" SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink"Top
INT 2F - SETWPR.COM - INSTALLATION CHECK AX = C300h Return: AL = FFh if installed Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa SeeAlso: AX=C302h"SETWPR"Top
INT 2F U - SpaceManager - INSTALLATION CHECK AX = C300h DX = 0000h Return: AL = FFh if any SpaceManager programs installed BX = 6F73h CX = 6F68h Program: SpaceManager is an enhancement for MS-DOS DoubleSpace by Vertisoft Systems, Inc. Range: AH=C3h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C300h/BX=4F53hTop
INT 2F U - SpaceManager - INSTALLATION VERIFICATION
AX = C300h
BX = 4F53h ('OS')
CX = 4F48h ('OH')
DX = program identifier (see #03035) or 0666h for any SpaceManager prog
Return: AL = FFh if BX/CX as specified and specified program installed
BX = 6F73h ('os')
CX = 6F68h ('oh')
Range: AH=C3h to AH=FFh, selected by scanning for first free multiplex number
Note: this call is chained if BX,CX, or DX are not as specified above
SeeAlso: AX=C300h/DX=0000h
(Table 03035)
Values for SpaceManager program identifier:
9000h SMOUNT (SuperMount)
9001h SELECTC (SelectCompress)
9002h SUPERX (SuperExchange)
9003h FORTUNE (FortuneTeller)
Top
INT 2F U - SpaceManager - ??? AX = C301h DX = program identifier (9000h,9001h,9003h) (see #03035) ??? Return: ???Top
INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ??? AX = C301h details not yet available Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink" SeeAlso: AX=C2F0h"LapLink",AX=C3F0h"LapLink",AX=C3F1h"LapLink"Top
INT 2F U - SpaceManager - ENABLE PROGRAM AX = C302h DX = program identifier (9000h,9001h,9003h) (see #03035) Return: AX destroyed SeeAlso: AX=C303h,AX=C306hTop
INT 2F - SETWPR.COM - SET WRITE-PROTECTION STATE AX = C302h BL = new state 00h disk may be written 01h disk write-protected Return: AL = FFh if installed Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa SeeAlso: AX=C300h"SETWPR"Top
INT 2F U - SpaceManager - DISABLE PROGRAM AX = C303h DX = program identifier (9000h,9001h,9003h) (see #03035) Return: AX destroyed SeeAlso: AX=C302h,AX=C306hTop
INT 2F U - SpaceManager - GET PER-DRIVE ENABLEMENT TABLE AX = C304h DX = program identifier (9000h,9001h,9003h) (see #03035) Return: ES:BX -> 26-byte drive table (00h disabled for drive, 01h enabled) AX destroyedTop
INT 2F U - SpaceManager - FORTUNE.EXE - NOP AX = C305h DX = 9003h Return: AX destroyedTop
INT 2F U - SpaceManager - ??? AX = C305h DX = program identifier (9000h,9001h) (see #03035) ??? Return: ???Top
INT 2F U - SpaceManager - CHECK WHETHER PROGRAM ENABLED AX = C306h DX = program identifier (9000h,9001h,9003h) (see #03035) Return: AL = current state (00h disabled, FAh enabled) AH destroyed SeeAlso: AX=C302h,AX=C303hTop
INT 2F U - SpaceManager - SELECTC - ??? AX = C307h DX = 9001h BX = ??? CX = ??? ??? Return: ???Top
INT 2F U - SpaceManager - SELECTC - ??? AX = C308h DX = 9001h ??? Return: ???Top
INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ??? AX = C3F0h details not yet available Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink" SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink",AX=C3F1h"LapLink"Top
INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ??? AX = C3F1h details not yet available Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink" SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink",AX=C3F0h"LapLink"Top
INT 2F - PC-DOS Econet v1.05 - INSTALLATION CHECK AX = C500h Return: AL = status 00h not installed, OK to install 01h not installed, can't install FFh installed Note: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C501h,AX=C508hTop
INT 2F - PC-DOS Econet v1.05 - RESET BOARD AND DRIVER AX = C501h Return: AX = return code (see #03037) Desc: reset both the network board and the driver software Notes: use this function with caution, as it will affect any other resident software using the network board the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C500hTop
INT 2F - PC-DOS Econet v1.05 - PERFORM NETWORK OPERATION AX = C502h DS:DX -> control block (see #03036) Return: AX = return code (see #03037) (same as returned in control block) Note: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C500h Format of Econet control block: Offset Size Description (Table 03036) 00h DWORD -> command block (see #03038) 04h WORD length of transmit data block 06h DWORD -> transmit data block 0Ah WORD length of reply block (set to 0000h prior to call) 0Ch DWORD -> reply block 10h WORD return code (set to 0000h prior to call) (see #03037) 12h DWORD reserved for Econet use (Table 03037) Values for Econet return code: 0000h successful 0001h bad command in command block 0002h no handles left 0003h bad handle 0004h bad argument in command 0005h buffer too small 0006h kill condition failed 0007h control block in use 007Fh command aborted 01xxh retryable board error XXh 02xxh fatal board error XXh 0300h invalid subfunction number in AL 0301h timeout 03xxh other driver errors SeeAlso: #03036 Format of Econet command block: Offset Size Description (Table 03038) 00h BYTE command code (see #03039) ---command 00h--- 01h BYTE direction (00h = read initialization data, 01h = set init data) 02h WORD "TxCB" transmit control block size 04h WORD "RxCB" receive control block size Notes: TxCB and RxCB are always the same size in v1.05, permitting any CB to be used for either receive or transmit this command should not be used by applications to set the buffer sizes 06h 6 BYTEs padding (0) ---command 01h--- 01h BYTE port number (00h = receive on all ports) if the RxCB is opened for RPC, the port number indicates the allowable RPC (see #03040) 02h WORD station number (FEFFh = broadcast) 04h BYTE RPC flags bit 7: CB is open for RPCs only bit 6: restrict to RPC number given in next field 05h WORD RPC number 07h BYTE timeout in 1/2-second units (00h = never) if a timeout occurs, the RxCB can still receive data, and may generate another event after the timeout unless it is explicitly killed 08h 4 BYTEs padding (0) ---command 02h--- 01h BYTE control byte 02h BYTE port number 03h WORD station number 05h BYTE number of retries 06h WORD length of data to be sent (bits 14-0), 0000h allowed if bit 15 is set, no data will be transferred, but this field will be updated (needed for peeking) 08h DWORD -> destination address on remote machine ---command 03h--- 01h BYTE Control Block Handle FEh first filled-in RxCB FFh first TxCB which has been sent 02h 10 BYTEs padding (0) ---command 04h--- 01h BYTE Control Block Handle 02h BYTE kill condition 00h always 01h kill only if bit7 of control byte is clear 81h kill only if bit7 of control byte is set 03h 9 BYTEs padding (0) Notes: control blocks are not freed until explicitly killed because all TxCBs for a given destination are stored on a separate subchain, it is necessary to kill all failed TxCBs to a given destination before any new ones are opened to that destination ---command 06h--- 01h BYTE Control Block Handle 02h WORD starting byte within CB to read 04h WORD number of bytes if 0000h or greater than remaining bytes in CB, return all bytes from starting byte to end of CB 06h 6 BYTEs padding (0) ---command 07h--- 01h BYTE subfunction 00h-0Fh get/set M/C type (bit N=1 indicates to set byte N) four data bytes 10h get station number 11h set station number 12h get Tx pause in 5ms units (default 20) 13h set Tx pause 14h get software version numbers 16h get event enable mask 17h set event enable mask 18h get number of non-volatile bytes available 80h+2N get non-volatile byte N 81h+2N set non-volatile byte N 02h var new data Note: all command blocks should be padded to twelve bytes with zeros if needed SeeAlso: #03036 (Table 03039) Values for Econet command code: 00h initialize 01h open receive 02h open transmit 03h poll 04h kill 06h read 07h get/set system parameters SeeAlso: #03038 (Table 03040) Values for Econet RPC type: 00h all 81h peek 82h poke 83h remote JSR 84h remote procedure call 85h OS procedure 86h Halt 87h Continue SeeAlso: #03038 Format of Econet Reply Block (command 00h): Offset Size Description (Table 03041) 00h WORD TxCB size (default is 0500h, the maximum Econet packet length) 02h WORD RxCB size 04h BYTE number of TxCBs allocated 05h BYTE number of RxCBs allocated SeeAlso: #03036,#03042,#03044 Format of Econet Reply Block (commands 01h,02h): Offset Size Description (Table 03042) 00h BYTE control block handle SeeAlso: #03036,#03041,#03045 Format of Econet Reply Block (command 03h): Offset Size Description (Table 03043) 00h BYTE CB number (when wildcard specified for poll) 01h BYTE control (RxCB) 00h until received, then Sent Control byte (TxCB) transmit status bit 7: transmission pending bit 6: transmission failed bits 3-0: error number 02h BYTE Port number 03h WORD station number 05h WORD length 07h WORD 0000h SeeAlso: #03036,#03041,#03044 Format of Econet Reply Block (command 06h): Offset Size Description (Table 03044) 00h N BYTEs data read from network SeeAlso: #03036,#03043,#03045 Format of Econet Reply Block (command 07h): Offset Size Description (Table 03045) 00h N BYTEs returned information SeeAlso: #03036,#03044Top
INT 2F - PC-DOS Econet v1.05 - ADD EVENT HANDLER AX = C503h DS:DX -> event handler (see #03046) Return: AX = return code (see #03037) Note: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C500h,AX=C504h,AX=C505h,AX=C508h Format of Econet event handler: Offset Size Description (Table 03046) 00h DWORD -> next handler's code (at offset 8, filled in by Econet) 04h DWORD -> previous event handler (filled in by Econet) 08h var entry point (executable code called on event) (see #03047) (Table 03047) Values Econet event handler is called with: AL = event number AH = timeout flag (01h if timeout, else 00h) Return: all registers preserved if event trapped by this handler, issue RETF if event not trapped, jump to address stored at offset 0 SeeAlso: #03046Top
INT 2F - PC-DOS Econet v1.05 - REMOVE EVENT HANDLER AX = C504h DS:DX -> event handler Return: AX = return code (see #03037) Note: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508hTop
INT 2F - PC-DOS Econet v1.05 - SET DEFAULT EVENT ACTION AX = C505h DL = new default action 00h disable event handling (ignore incoming events) 01h enable (call event handler chain) 02h store until enabled or disabled (default) Return: AX = return code (see #03037) Note: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508hTop
INT 2F - PC-DOS Econet v1.05 - SET INDIVIDUAL EVENT ACTION AX = C506h DH = event number DL = new default action 00h disable event handling (ignore incoming events) 01h enable (call event handler chain) 02h store until enabled or disabled (default) Return: AX = return code (see #03037) Note: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C500h,AX=C504h,AX=C505h,AX=C507hTop
INT 2F - PC-DOS Econet v1.05 - TEST/CLEAR EVENT STATUS AX = C507h DH = event number (FFh = first event in queue) DL = disposition (00h test only, 01h test and clear) Return: AX = return code (see #03037) DH = event number if one is pending, 00h if none Note: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508hTop
INT 2F - PC-DOS Econet v1.05 - ENABLE/DISABLE EVENT SCHEDULER AX = C508h DL = new state of scheduler (01h enabled, 02h disabled) Return: AX = return code (see #03037) DL = previous state Notes: the interrupt-enable state will be preserved, but interrupts may be enabled during processing of this function while the scheduler is disabled, all events are queued until the scheduler is re-enabled SeeAlso: AX=C500h,AX=C503h,AX=C504h,AX=C506h,AX=C507hTop
INT 2F U - Smart Prompt - INSTALLATION CHECK AX = C64Ch BX = 5553h Return: AX = 4CC6h if installed BX = 5355h if installed Program: Smart Prompt (SMARTPMT) is a freeware TSR by Steve Gibson which forces an immediate flush of SmartDrive's (and compatible caches') buffers on returning to the DOS promptTop
INT 2F u - COLAP - INSTALLATION CHECK AX = C700h CX = 434Ch "CL" Return: AL = FFh if installed Program: colap.com is a freeware TSR by Eric Meyer which controls contrast and brightness of color laptops by changing the VGA palette colors; for Toshiba laptops there are more hotkeys for shutting off display and harddisk.Top
INT 2F U - ThunderByte??? - INSTALLATION CHECK AX = C900h BP = 0000h Return: AL = FFh if installed BP >= 0014h Note: called by TBSCANX SeeAlso: AX=C987h,AX=CA00hTop
INT 2F U - ThunderByte??? - DISINFECT FILE??? AX = C987h BX:DX -> filename BX:CX -> virus name Return: AX = status 0000h successful??? Note: called by TBSCANX SeeAlso: AX=CA00hTop
INT 2F - ThunderByte TBLOG - WRITE STRING TO LOG AX = C9FDh DS:SI -> ASCIZ string (max 110 chars) Return: AH = 00h AL = last character in string CX = number of unused characters in string SI,DI destroyed Notes: The string can also be terminated with a '%'-character. This function is never called within ThunderBYTE Anti-Virus. SeeAlso: AX=C900hTop
INT 2F C - StackMan - INSTALLATION BROADCAST AX = C9FFh BL = BCD version number CX = number of stacks DX = stack size in bytes Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V. which functions as a replacement for the DOS STACK= command as well as permitting multiple TSRs to share a pool of stack space InstallCheck: test for the string "STACKXXX" at offset 0Ah from the INT B4 handler Note: called by StackMan when it goes resident to inform interested TSRs that its API is available SeeAlso: INT B4"StackMan",INT B5"StackMan" Index: installation check;STACKMAN|broadcasts;STACKMAN installationTop
INT 2F - FAXPLUS - FAX TSR AH = CAh ??? Return: ??? Program: FAXTSR is a resident FAX send/receive module for FAXPLUS by Frans Veldman SeeAlso: AH=2Ah"Gammafax"Top
INT 2F - TBSCANX - INSTALLATION CHECK
AX = CA00h
BX = 5442h ('TB')
Return: AL = state
00h not installed
FFh installed
BX = 7462h ('tb') if BX was 5442h on entry
Program: TBSCANX is a resident virus scanning module by Frans Veldman.
Notes: programs may perform virus checks on themselves, other program files,
or their data files by invoking the TBSCANX API.
current versions of TBScanX don't actually check the value of BX
SeeAlso: AX=4653h/CX=0002h,AX=4653h/CX=0007h,AX=C900h
Top
INT 2F - TBSCANX - GET STATUS AX = CA01h Return: AH = BCD version number (v2.2+) CAh for versions before 2.2 AL = state (00h = disabled, 01h = enabled) CX = number of signatures which will be searched ---v2.0--- BX = EMS handle, 0000h if not using EMS ---v2.3+--- BX = segment of swap area, 0000h if not swapped DX = EMS or XMS handle (XMS handle if BX=0000h), FFFFh if not using EMS SeeAlso: AX=CA02hTop
INT 2F - TBSCANX - SET STATE AX = CA02h BL = new state (00h = disabled, 01h = enabled) SeeAlso: AX=CA01hTop
INT 2F - TBSCANX - SCAN BUFFER AX = CA03h CX = size of buffer DS:DX -> buffer containing data to scan Return: CF clear if no virus signatures found BX,ES destroyed CF set if signature found ES:BX -> ASCIZ virus name (v2.3+) DS:DX -> ASCIZ virus name (v2.0) AX,CX,DX destroyed (v2.3+) all other registers except CS:IP and SS:SP destroyed (v2.0) SeeAlso: AX=CA04hTop
INT 2F - TBSCANX - SCAN FILE AX = CA04h DS:DX -> filename Return: CF clear if no virus signatures found BX,SI,DI,ES destroyed CF set if signature found ES:BX -> ASCIZ virus name AX,CX,DX destroyed Note: this function requires at least 4K free memory SeeAlso: AX=CA03hTop
INT 2F U - THELP v3.0 - INSTALLATION CHECK AX = CAFEh BX = 0000h Return: BX = segment of resident code if installed 0000h if not installed SeeAlso: AX=5453h,INT 2D"AMIS"Top
INT 2F - Communicating Applications Specification - INSTALLATION CHECK AX = CB00h Return: AL = status 00h not installed, OK to install 01h not installed, not OK to install FFh installed Note: AH = CBh is the default identifier, but may be reconfigured SeeAlso: AH=2Ah,AX=8000h"FaxBIOS",AX=CB0Eh,AX=CBDChTop
INT 2F - METZ XpressFax CASMGR - INSTALLATION CHECK
AX = CB00h
BX = 4D53h ('MS')
CX = 4949h ('II')
Return: AL = status
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
BX = 6D73h ('ms')
CX = 6969h ('ii')
Note: this function is equivalent to the standard CASMGR installation check,
but uses the additional magic values to identify which CAS is
installed
SeeAlso: AH=2Ah,AX=8000h"FaxBIOS",AX=C000h/BX=444Bh,AX=CB0Eh,AX=CB16h
Top
INT 2F - Communicating Applications Specification - SUBMIT A TASK AX = CB01h DS:DX -> ASCIZ name of task control file Return: AX >= 0: event handle AX < 0: two's complement of error code (see #03048) Note: files needed for an event must be kept until task is complete or error SeeAlso: AX=CB0Bh,AX=CB15h (Table 03048) Values for CAS error code: (AH = class, AL = subcode, value passed back is 2's complement) Class 00h --- FAX warnings Subcode 00h no error 02h bad scanline count 03h page sent with errors, could not retransmit 04h received data lost 05h invalid or missing logo file 06h filename does not match nonstandard format (NSF) header 07h file size does not match NSF header Class 01h --- DOS warnings (data was sent) Subcode 01h invalid function 05h access denied 06h invalid handle others see #01680 at INT 21/AH=59h/BX=0000h Class 02h --- fatal errors (data not sent) Subcode 00h multiplex handler failed 01h unknown command 02h bad event handle 03h FIND NEXT attempted before FIND FIRST 04h no more events 07h invalid queue type 08h bad control file 09h communication board busy 0Ah invalid command parameter 0Bh can't uninstall resident code 0Ch file exists 80h unknown task type 81h bad phone number 82h bad .PCX file header 83h unexpected EOF 84h unexpected disconnect 85h too many dialing retries 86h no file specified for send 87h communication board timeout 88h received too many pages (>1023) of data 89h manual connect initiated too long ago 8Ah hardware command set error 8Bh bad NonStandard Format (NSF) header file Class 03h --- fatal DOS errors Subcode 02h file not found 03h path not found others see #01680 at INT 21/AH=59h/BX=0000h Class 04h --- FAX errors Subcode 01h remote unit not Group 3 compatible 02h remote unit did not send capabilities 03h other FAX machine incompatible 04h other FAX incapable of file transfers 05h exceeded retrain or FAX resend limit 06h line noise or failure to agree on bit rate 07h remote disconnected after receiving data 08h no response from remote after sending data 09h remote's capabilities incompatible 0Ah no dial tone (v1.2+) 0Bh invalid response from remote unit after sending data 0Dh phone line dead or remote unit disconnected 0Eh timeout while waiting for secondary dial tone (v1.2+) 11h invalid command from remote after receiving data 15h tried to receive from incompatible hardware 5Ch received data overflowed input buffer 5Dh remote unexpectedly stopped sending data 5Eh other FAX machine jammed (no data sent) 5Fh remote took too long to send fax scan line 63h can't get through to remote unit 64h user canceled event Class 05h --- application-specific (v1.2+) ---Intel FAXPOP.EXE Subcode 00h tried to send while in graphics mode 01h insufficient disk space 02h internal buffer overflow Class 06h --- CAS implementation-specific (v1.2+)Top
INT 2F - Communicating Applications Specification - ABORT CURRENT EVENT AX = CB02h Return: AX >= 0: event handle of aborted event AX < 0: error code (see #03048) Note: termination could take up to 30 seconds SeeAlso: AX=CB08h,AX=CB10hTop
INT 2F - Communicating Applications Specification - FIND FIRST QUEUE ENTRY AX = CB05h CX = status of events to find 0000h successful completion 0001h waiting to be processed 0002h number has been dialed 0003h connection established, sending 0004h connection established, receiving 0005h event aborted FFFFh find any event, regardless of status other negative values, match error code DH = direction 00h chronological order, earliest to latest 01h reverse chronological order, latest to earliest DL = queue to search 00h task queue 01h receive queue 02h log queue Return: AX = 0000h successful BX = event handle for found event AX < 0 error code (see #03048) SeeAlso: AX=CB06h,AX=CB07hTop
INT 2F - Communicating Applications Specification - FIND NEXT QUEUE ENTRY AX = CB06h DL = queue to search 00h task queue 01h receive queue 02h log queue Return: AX = 0000h successful BX = event handle for found event AX < 0 error code (see #03048) Note: direction of search is same as preceding FIND FIRST call SeeAlso: AX=CB05hTop
INT 2F - Communicating Applications Specification - OPEN FILE AX = CB07h BX = event handle from find (AL=05h,06h) or submit task (AL=01h) CX = receive file number (ignored for task queue and log queue) 0000h open receive control file N open Nth received data file DL = queue 00h task queue 01h receive queue control file or received file, as given by CX 02h log queue 03h group file in task queue (v1.2+) 04h group file in log queue (v1.2+) Return: AX = 0000h successful BX = DOS file handle for requested file AX < 0 error code (see #03048) Note: the returned file handle has been opened in read-only mode and should be closed with INT 21/AH=3Eh after use SeeAlso: AX=CB01h,AX=CB05h,AX=CB14hTop
INT 2F - Communicating Applications Specification - DELETE FILE AX = CB08h BX = event handle CX = receive file number 0000h delete ALL received files and receive control file N delete Nth received file DL = queue 00h delete control file in task queue and corresponding group file if it exists 01h delete file in receive queue, as given by CX 02h delete control file in log queue (individual deletions not recommended, to maintain integrity of log) and corresponding group file if it exists Return: AX = 0000h successful AX < 0 error code (see #03048) SeeAlso: AX=CB02h,AX=CB09hTop
INT 2F - Communicating Applications Specification - DELETE ALL FILES IN Q AX = CB09h DL = queue 00h delete all control files in task queue, including all group files 01h delete all files in receive queue 02h delete all control files in log queue, including all group files Return: AX = 0000h successful AX < 0 error code (see #03048) SeeAlso: AX=CB08hTop
INT 2F - Communicating Applications Specification - GET EVENT DATE AX = CB0Ah BX = event handle DL = queue 00h task queue 01h receive queue 02h log queue Return: AX = 0000h successful CX = year DH = month DL = day AX < 0 error code (see #03048) SeeAlso: AX=CB0Bh,AX=CB0ChTop
INT 2F - Communicating Applications Specification - SET TASK DATE AX = CB0Bh BX = event handle (task event only) CX = year DH = month DL = day Return: AX = 0000h successful AX < 0 error code (see #03048) Note: setting a task's date and time to before the current date and time causes it to execute immediately SeeAlso: AX=CB01h,AX=CB0Ah,AX=CB0DhTop
INT 2F - Communicating Applications Specification - GET EVENT TIME AX = CB0Ch BX = event handle DL = queue 00h task queue 01h receive queue 02h log queue Return: AX = 0000h successful CH = hour CL = minute DH = second DL = 00h AX < 0 error code (see #03048) SeeAlso: AX=CB0Ah,AX=CB0DhTop
INT 2F - Communicating Applications Specification - SET TASK TIME AX = CB0Dh BX = event handle (task events only) CH = hour CL = minute DH = second DL unused Return: AX = 0000h successful AX < 0 error code (see #03048) Note: setting a task's date and time to before the current date and time causes it to execute immediately SeeAlso: AX=CB0Bh,AX=CB0Ch,AX=CB10hTop
INT 2F - Communicating Applications Specification - GET EXTERNAL DATA BLOCK AX = CB0Eh DS:DX -> 256-byte buffer for external data block (see #03049) Return: AX = 0000h successful DS:DX buffer filled AX < 0 error code (see #03048) Format of CAS external data block: Offset Size Description (Table 03049) 00h BYTE CAS major version 01h BYTE CAS minor version 02h 68 BYTEs ASCIZ path to directory containing CAS software, ends in slash 46h 13 BYTEs ASCIZ name of current phonebook (in CAS directory) 53h 13 BYTEs ASCIZ name of current logo file (in CAS directory) 60h 32 BYTEs ASCIZ default sender name 80h 21 BYTEs ASCIZ CCITT identification of fax device 95h 107 BYTEs reservedTop
INT 2F - Communicating Applications Specification - GET/SET AUTORECEIVE AX = CB0Fh DL = subfunction 00h get current autoreceive state 01h set autoreceive state DH = number of rings before answer, 00h = never Return: AX = 0000h autoreceive disabled AX = N number of rings before answer AX < 0 error code (see #03048)Top
INT 2F - Communicating Applications Specification - GET CURRENT EVENT STATUS AX = CB10h DS:DX -> 512-byte buffer for status area (see #03051) Return: AX = 0000h successful BX = event handle of current event or negative error code if no current event buffer filled AX < 0 error code (see #03048) SeeAlso: AX=CB02h,AX=CB0Dh (Table 03050) Values for CAS event type: 00h send 01h receive 02h polled send 03h polled receive 04h to 7Fh reserved FFh serious hardware error Format of CAS status area: Offset Size Description (Table 03051) 00h BYTE event type (see #03050) 01h BYTE transfer type 00h 200x200 dpi, FAX mode 01h 100x200 dpi, FAX mode 02h file transfer mode 03h to 7Fh reserved 02h WORD event status (see #03052) 04h WORD event time (packed DOS time format, see INT 21/AX=5700h) 06h WORD event date (packed DOS date format, see INT 21/AX=5700h) 08h WORD number of files to transfer, max 7FFFh 0Ah WORD offset of file transfer record 0Ch 47 BYTEs ASCIZ phone number to call 3Bh 64 BYTEs ASCIZ application-specific tag string 7Bh BYTE reserved (00h) 7Ch BYTE connect time, seconds 7Dh BYTE connect time, minutes 7Eh BYTE connect time, hours 7Fh DWORD total number of pages in all files 83h DWORD pages already transmitted 87h WORD number of files already transmitted 89h BYTE cover page flag 00h don't transmit cover page 01h transmit cover page 02h to 7Fh reserved 8Ah WORD total number of transmission errors 8Ch 78 BYTEs reserved (zeros) DAh 21 BYTEs ASCIZ remote FAX's CCITT identification EFH 32 BYTEs ASCIZ destination name 10Fh 32 BYTEs ASCIZ sender name 12Fh 80 BYTEs filename of PCX logo file (max 1780x800 pixels) 17Fh 128 BYTEs file transfer record for current event (see #03053) (Table 03052) Values for CAS event status: 0000h completed successfully 0001h waiting 0002h number dialed 0003h connected, sending 0004h connected, receiving 0005h aborted 0006h to 007Fh reserved 0080h to 7FFFh application-specific events 8000h to FFFFh error codes Format of CAS file transfer record: Offset Size Description (Table 03053) 00h BYTE file type (ignored unless FAX) 00h ASCII 01h PCX 02h DCX 03h to 7Fh reserved 01h BYTE text size for ASCII FAX file 00h = 80 columns by 66 lines (11 inches) 01h = 132 columns by 88 lines (11 inches) 02h to 7Fh reserved 02h BYTE status of file 00h untouched 01h opened 02h moved 03h deleted 04h not yet received 05h to 7Fh reserved 03h DWORD bytes already transmitted 07h DWORD file size in bytes 0Bh WORD pages alread transmitted 0Dh WORD number of pages in file 0Fh 80 BYTEs ASCIZ filename 5Fh BYTE 1/8 inch page length if page length below set to 01h through 7Fh, this value specifies additional 1/8 inch increments to page length 60h BYTE page length 00h = 11 inches 01h to 7Fh = page length is this number of inches plus value of 1/8 inch field above 80h to FEh reserved FFh = ASCII pages ending with formfeed 61h 31 BYTEs reserved (zeros)Top
INT 2F - Communicating Applications Specification - GET QUEUE STATUS AX = CB11h DL = queue to get status of 00h task queue 01h receive queue 02h log queue 03h send events (v1.2+) 04h receive events (v1.2+) Return: AX >= 0 total number of changes made to queue, modulo 32768 BX = number of control files currently in queue CX = number of received files (zero for task and log queues) AX < 0 error code (see #03048) SeeAlso: AX=CB12hTop
INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF SEND EVENTS AX = CB11h DL = 03h Return: AX = number of successful sends since resident manager started BX = number of unsuccessful sends, including warnings SeeAlso: AX=CB11h/DL=04hTop
INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF RECEIVE EVENTS AX = CB11h DL = 04h Return: AX = number of received file events since resident manager started BX = number of received FAX events SeeAlso: AX=CB11h/DL=03hTop
INT 2F - Communicating Applications Specification - GET HARDWARE STATUS AX = CB12h DS:DX -> 128-byte status buffer (see #03054,#03056) Return: AX = 0000h successful DS:DX buffer filled with hardware-dependent status information < 0 error code (see #03048) SeeAlso: AX=CB10h,AX=CB11h Format of status buffer for Intel Connection CoProcessor: Offset Size Description (Table 03054) 00h BYTE Connection CoProcessor connection status flags (see #03057) 01h BYTE number of kilobytes of free buffer space 02h BYTE page buffer status bit 7: Connection CoProcessor has documents to send bits 6-0: number of pages in buffer 03h BYTE number of retries left for dialing number 04h BYTE page number to retransmit 05h BYTE communications status (see #03058) 06h BYTE baud rate (see #03055) 07h 3 BYTEs reserved 0Ah BYTE Connection CoProcessor hardware status (see #03059) 0Bh BYTE Connection CoProcessor switch states (see #03060) 0Ch BYTE communications flags (see #03061) 0Dh BYTE reserved 0Eh WORD error count (only valid while busy, reset when idle) 10h DWORD size of nonstandard format (NSF) file in bytes 14h BYTE 'A' if Connection CoProcessor board present 15h 9 BYTEs reserved 1Eh 21 BYTEs ASCIZ CCITT identification 33h 77 BYTEs reserved Note: the Intel Connection CoProcessor and SatisFAXtion may be distinguished by examining the byte at offset 14h Bitfields for Connection CoProcessor baud rate: Bit(s) Description (Table 03055) 7 reserved 6-4 baud rate 000 = 300 baud (V.21 SDLC or HDLC mode) 100 = 2400 baud (V.27 ter) 101 = 4800 baud (V.27 ter) 110 = 7200 baud (V.29) 111 = 9600 baud (V.29) 3-0 reserved, should be 0110 Format of status buffer for Intel SatisFAXtion board: Offset Size Description (Table 03056) 00h BYTE SatisFAXtion connection status flags (see #03062) 01h BYTE SatisFAXtion board state (see #03063) 02h BYTE number of KB free in buffer 03h BYTE number of pages or files in buffer 04h BYTE number of redials remaining on current number 05h BYTE FAX page number to retransmit 06h BYTE current page/file in block transfer 07h BYTE number of rings received (only if auto-answer enabled) 08h WORD error count 0Ah DWORD length of file being transferred 0Eh 6 BYTEs reserved 14h BYTE 'B' if SatisFAXtion board present 15h 13 BYTEs ASCIZ transfer agent name 22h 5 BYTEs ASCIZ transfer agent version number 27h 13 BYTEs ASCIZ resident loader name 34h 5 BYTEs ASCIZ resident loader version number 39h 21 BYTEs ASCIZ remote CSID 4Eh 13 BYTEs ASCIZ resident manager name 5Bh 5 BYTEs ASCIZ resident manager version number 60h 32 BYTEs reserved Note: the Intel Connection CoProcessor and SatisFAXtion may be distinguished by examining the byte at offset 14h Bitfields for Connection CoProcessor connection status flags: Bit(s) Description (Table 03057) 7 hardware busy sending or receiving 6 last page of data 5 no data on current page 4 retransmit request for current page being transmitted 3 NSF (nonstandard file) mode active 2-0 reserved Bitfields for communications status: Bit(s) Description (Table 03058) 7 originating call 6 FAX message to be sent 5 on line 4 ring detected and receive enabled 3 buffer dumped on receive 2-0 hardware sequence state 000 idle 001 dial 010 answer 011 transmit 100 receive 101 pre-message 110 post-message 111 disconnect Bitfields for Connection CoProcessor hardware status: Bit(s) Description (Table 03059) 7 modem option installed 6 Connection CoProcessor has control of DAA (not latched) 5 on line (not latched) 4 ring detected (not latched) 3 data in command buffer (not latched) 2 set if using DMA channel 1, clear if using DMA channel 3 1 line length compensation 1 set (not latched) 0 line length compensation 0 set (not latched) Bitfields for Connection CoProcessor switch states: Bit(s) Description (Table 03060) 7 reserved 6 unused 5 spare switch open 4 FAX ADR1 switch open 3 FAX ADR0 switch open 2 alternate interrupt switch open 1 COM SEL 1 switch open 0 COM SEL 0 switch open Note: valid combinations of 0-2 are 000 COM2 IRQ3 IObase 2F8h 001 COM1 IRQ4 IObase 3F8h 010 COM4 IRQ3 IObase 2E8h 011 COM3 IRQ4 IObase 3E8h 110 COM4 IRQ2 IObase 2E8h 111 COM3 IRQ5 IObase 3E8h Bitfields for communications flags: Bit(s) Description (Table 03061) 7 reserved 6 auxiliary relay forced ON 5 modem select relay forced ON 4 offhook relay forced ON 3 9600 bps enabled 2 7200 bps enabled 1 4800 bps enabled 0 2400 bps enabled Bitfields for SatisFAXtion connection status flags: Bit(s) Description (Table 03062) 7 busy in T.30 CCITT fax protocol 6 data on current page/file (only used for block xfers) 5 retransmission of last page requested 4 in file transfer mode 3 data in buffer 2 data buffer dumped on receive 1 200x100 dpi resolution instead of 200x200 dpi 0 data modem in use, FAX image modem not available Bitfields for SatisFAXtion board state: Bit(s) Description (Table 03063) 7 reserved 6 handset jack active, data and FAX modems not available 5-3 current rate 000 300 bps (V.21 HDLC) 100 2400 bps (V.27 ter) 101 4800 bps (V.27 ter) 110 7200 bps (V.29) 111 9600 bps (V.29) 2-0 T.30 CCITT protocol state 000 idle 001 dialing 010 answering 011 transmitting 100 receiving 101 pre-message 110 post-message 111 disconnectTop
INT 2F - Communicating Applications Specification - GET DIAGNOSTICS RESULTS AX = CB13h DL = 00h Return: AX = 0040h in progress >= 0 passed < 0 hardware-dependent failure code (see #03064,#03065) SeeAlso: AX=CB13h/DL=01h Bitfields for Intel Connection CoProcessor failure codes: Bit(s) Description (Table 03064) 3 9600 bps FAX modem module failed 2 SDLC chip failed 1 RAM failed 0 ROM checksum failed Bitfields for Intel SatisFAXtion failure codes: Bit(s) Description (Table 03065) 1 2400 bps data modem failed 0 9600 bps FAX modem failedTop
INT 2F - Communicating Applications Specification - START DIAGNOSTICS AX = CB13h DL = 01h Return: AX = 0000h successfully started AX < 0 error code (see #03048) SeeAlso: AX=CB13h/DL=00hTop
INT 2F - Communicating Applications Specification - MOVE RECEIVED FILE AX = CB14h BX = event handle CX = receive file number 0001h first received file N Nth received file DS:DX -> ASCIZ string specifying new name for file (must not exist) Return: AX = 0000h successful AX < 0 error code (see #03048)Top
INT 2F - Communicating Applications Specification - SUBMIT FILE TO SEND AX = CB15h DS:DX -> variable-length data area (see #03066) Return: AX >= 0 event handle AX < 0 error code (see #03048) SeeAlso: AX=CB01h Format of CAS file submission data area: Offset Size Description (Table 03066) 00h BYTE transfer type 00h = 200x200 dpi, fax mode 01h = 100x200 dpi, fax mode 02h = file transfer mode 03h to 7Fh reserved 01h BYTE text size 00h = 80 columns 01h = 132 columns 02h to 7Fh reserved 02h WORD time to send (DOS packed time, see #01665 at INT 21/AX=5700h) 04h WORD date to send (DOS packed date, see #01666 at INT 21/AX=5700h) 06h 32 BYTEs ASCIZ destination name 26h 80 BYTEs ASCIZ name of file to send 76h 47 BYTEs ASCIZ phone number to dial A5h 64 BYTEs ASCIZ application-specific tag string E5h BYTE reserved (00h) E6h BYTE cover page 00h don't send cover page 01h send cover page 02h to 7Fh reserved E7h 23 BYTEs reserved (zeros) FEh variable ASCIZ string containing text of cover page (if cover page flag set to 01h)Top
INT 2F - Communicating Applications Spec v1.2+ - UNLOAD RESIDENT MANAGER AX = CB16h BX = 1234h CX = 5678h DX = 9ABCh Return: AX = 0000h successful AX < 0 error code Note: the METZ XpressFax CASMGR ignores the values in BX,CX, and DX SeeAlso: AX=C000h/BX=444Bh,AX=CB00h Index: uninstall;CAS ManagerTop
INT 2F - Communicating Applications Spec v1.2+ - SET COVER PAGE STATUS AX = CB17h BX = event handle CL = cover page status 00h not read 01h read by user Return: AX = 0000h successful AX < 0 error codeTop
INT 2F - Intel SatisFAXtion CASMGR - ??? AX = CB80h ??? Return: ???Top
INT 2F - Intel SatisFAXtion CASMGR - ??? AX = CB81h ??? Return: ???Top
INT 2F - Intel SatisFAXtion CASMGR - ??? AX = CB82h ??? Return: ???Top
INT 2F - Comwave Microfax Specification - GET STATUS ARRAY AX = CBDCh BL = 56h BH = line number (starts with 1) CX:DX -> 32-byte status buffer or 80 character string Return: AX = number of cards installed, or FFFFh on error Program: Comwave manufacturers the Microfax line of fax cards which are a high-performance multi-card FAX solution for OEMs. Note: defaults to AH=CBh but can be changed SeeAlso: AX=CBDDh,AX=DA00hTop
INT 2F - Comwave Microfax Specification - COMMAND SUBMISSION AX = CBDDh BL = 56h BH = ? CX:DX -> command to execute Return: AX = status 0000h success FFFFh on error SeeAlso: AH=2Ah,AX=CBDCh,AX=80FBhTop
INT 2F U - PC-Kwik Programs - API AH = CCh SI = 5453h or 7473h AL = function number (at least 00h,01h,04h,05h,07h,80h) DL = program identifier (see #03067) Return: SI = 7473h other registers vary by function Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and thus supports this call SeeAlso: INT 21/AH=2Bh/CX=4358h (Table 03067) Values for PC-Kwik program identifier: 00h all installed PowerPak programs 01h SUPERPCK/SUPER/QCACHE v4.00+ (disk cache) 02h PCKSPL (print spooler) 04h PCKSCRN (screen accelerator) 05h PCKKEY (keyboard enhancer) 06h PCKRAMD (RAM disk) 08h PCKWIK.SYS 10h PCKCDROM (CD-ROM support for SUPERPCK)Top
INT 2F - Tsoft NFSDRVR - INSTALLATION CHECK AX = CC00h Return: AX = 7777h BX = ??? CX = ??? DX = ??? ES = data segment of resident portion SeeAlso: AX=CC01h,AX=CC06hTop
INT 2F - Tsoft NFSDRVR - ??? AX = CC01h ??? Return: ??? SeeAlso: AX=CC00hTop
INT 2F - Tsoft NFSDRVR - ??? AX = CC02h ??? Return: ??? SeeAlso: AX=CC00hTop
INT 2F - Tsoft NFSDRVR - ??? AX = CC03h ??? Return: ??? SeeAlso: AX=CC00hTop
INT 2F - Tsoft NFSDRVR - ??? AX = CC04h ??? Return: ??? SeeAlso: AX=CC00hTop
INT 2F - Tsoft NFSDRVR - ??? AX = CC05h ??? Return: ??? SeeAlso: AX=CC00hTop
INT 2F - Tsoft NFSDRVR - ??? AX = CC06h ??? Return: ??? SeeAlso: AX=CC00hTop
INT 2F - Intel Image Processing Interface - INSTALLATION CHECK AX = CD00h Return: AL = state 00h not installed, OK to install 01h not installed, not OK to install FFh installed SeeAlso: AX=CD02h"Image"Top
INT 2F - LaserPort Interface - INSTALLATION CHECK AX = CD00h Return: AL = status FFh installed SeeAlso: AX=CD0Fh"LaserPort"Top
INT 2F - SWELL.EXE - INSTALLATION CHECK AX = CD00h Return: AX = 00FFh installed BH = major version BL = minor version Program: SWELL.EXE is a TSR which swaps programs to disk when they EXEC a child process with INT 21/AH=4BhTop
INT 2F - Forte/Gravis ULTRAMID - INSTALLATION CHECK
AX = CD00h
BX = 464Fh ('FO')
CX = 5254h ('RT')
DX = 4520h ('E ')
Return: AL = FFh if installed
BX = 4155h ('AU')
CX = 4449h ('DI')
DX = 4F20h ('O ')
ES:SI -> program ID string
Program: ULTRAMID is a MIDI driver for the Gravis UltraSound which allows use
of AIL drivers with other software
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: INT 21/AX=FD12h,AX=CD00h/DX=4957h
Top
INT 2F R - InterWave Game API - INSTALLATION CHECK
AX = CD00h
DX = 4957h ('IW')
SI = 5645h ('VE')
Return: AL = FFh if installed
DX = 4554h ('ET')
SI = 454Bh ('EK')
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: AX=CD00h/BX=464Fh,AX=CD01h"InterWave",AX=CD21h"InterWave"
SeeAlso: AX=CD80h"InterWave"
Top
INT 2F - Intel Image Processing Interface - SET DEVICE NAME
AX = CD01h
CX:BX -> ASCIZ character device name ("LPTn", "COMn", "PRN")
Return: AL = status
00h successful
CX:BX -> internal character device name
80h error
Top
INT 2F - SWELL.EXE - SUSPEND ONCE AX = CD01h Return: AX = 0000h SeeAlso: AX=CD02h"SWELL"Top
INT 2F R - InterWave Game API - GET NUMBER OF INTERWAVE PROGRAMS / PROGRAM ID AX = CD01h BX = 0000h Return: BX = number of programs currently installed on the Game API Desc: get the number of programs supporting the InterWave Game API which are currently installed in memory, which also forms the next program ID number if the caller wishes to go resident on the API Range: AH=CDh-ECh, selected by scanning for an available multiplex number Notes: the first program to install on the IW Game API must use ID 00h the AMD-recommended implementation is for the handler to increment BX and chain to the previous handler (if any), but this will fail if TSRs are unloaded out-of-order SeeAlso: AX=CD00h"InterWave",AX=CD02h"InterWave",AX=CD03h"InterWave" SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"Top
INT 2F - Intel Image Processing Interface - GET VERSION NUMBER AX = CD02h Return: AL = status 00h/01h successful BH = major version number (BCD) BL = minor version number (BCD) 80h error Note: if return AL = 01h, the IPI supports network redirection SeeAlso: AX=CD00h"Image"Top
INT 2F - SWELL.EXE - SUSPEND AX = CD02h Return: AX = 0000h SeeAlso: AX=CD03h"SWELL"Top
INT 2F R - InterWave Game API - GET PROGRAM STATUS AND INFORMATION AX = CD02h BX = program identifier Return: CX = program status bit 0: using synthesizer bit 1: using Codec bit 2: supports at least one Game Device (see AX=CD21h,AX=CD22h) BX = supported API version (BCD, BH=major, BL=minor) if CX bit 2 set ES:DI -> ASCIZ identification string Range: AH=CDh-ECh, selected by scanning for an available multiplex number Note: ordinarily, an application will loop through all valid program identifiers (as returned by AX=CD01h); if any of the installed programs conflicts with the use the caller wishes to make of the InterWave chip, it should be disabled with AX=CD03h first SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave" SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"Top
INT 2F - Intel Image Processing Interface - SELECT SCAN LINE AX = CD03h BX = scan line CX = requested density in dots per inch (300, 600, or 1200) Return: AL = status (see also AX=CD04h"Image") 00h successful CX = density at which scan line was mapped ES:DI -> start of scan line 80h unsuccessful 81h scan line out of range 82h unsupported scan line density 83h out of memory SeeAlso: AX=CD04h"Image"Top
INT 2F - SWELL.EXE - ACTIVATE AX = CD03h Return: AX = 0000h SeeAlso: AX=CD02h"SWELL"Top
INT 2F R - InterWave Game API - SUSPEND PROGRAM AX = CD03h BX = installed program identifier CX = InterWave section to be released 0000h all 0001h synthesizer 0002h Codec Return: AL = status 00h successful BX = base port CL = IRQ CH = DMA channel (Codec only) else failed SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave" SeeAlso: AX=CD04h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"Top
INT 2F - Intel Image Processing Interface - MOVE BITMAP TO SCANLINE AX = CD04h CX:BX -> structure (see #03069) Return: AL = status (see #03068) SeeAlso: AX=CD03h"Image" (Table 03068) Values for IPI function status: 00h successful 80h unsuccessful 81h scan line out of range 82h unsupported scan line density 83h out of memory 84h unrecognized source 85h initialization error Format of structure: Offset Size Description (Table 03069) 00h WORD image source (0 = conventional memory, 1 = expanded memory) 02h DWORD pointer to image data 06h WORD scan line on which to place 08h WORD bit offset from start of scan line at which to place 0Ah WORD density of bitmap data (300, 600, or 1200 dpi) 0Ch WORD width in bits of data 0Eh WORD source logical page number 10h WORD source handle (only if source in expanded memory) 12h WORD source offset (only if source in expanded memory)Top
INT 2F - SWELL.EXE - TURN OFF VERBOSE MODE AX = CD04h Return: AX = 0000h SeeAlso: AX=CD05h"SWELL"Top
INT 2F R - InterWave Game API - WAKE PROGRAM AX = CD04h BX = installed program identifier Return: AL = status 00h successful else failed Note: this function should only be called after the program has been suspended with AX=CD03h SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave" SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave" SeeAlso: INT 7E/AL=84h"IWSBSDRV"Top
INT 2F - Intel Image Processing Interface - PRINT PAGE AX = CD05h Return: AL = status (00h,80h) (see #03068) Note: page image is retained, so multiple calls will print multiple copies of the page SeeAlso: AX=CD06h"Image"Top
INT 2F - SWELL.EXE - TURN ON VERBOSE MODE AX = CD05h Return: AX = 0000h SeeAlso: AX=CD04h"SWELL"Top
INT 2F R - InterWave Game API - UNINSTALL RESIDENT DEVICE DRIVER AX = CD05h BX = installed program identifier Return: AL = status 00h successful else failed SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave" SeeAlso: AX=CD03h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"Top
INT 2F - Intel Image Processing Interface - CLEAR PAGE AX = CD06h Return: AL = status (00h,80h) (see #03068) Note: palette is reset to default SeeAlso: AX=CD09h"Image"Top
INT 2F - SWELL.EXE - UNINSTALL AX = CD06h Return: AX = status 0000h uninstalled 8002h programs still swapped, not uninstalledTop
INT 2F - Intel Image Processing Interface - reserved AX = CD07h SeeAlso: AX=CD00h"Image"Top
INT 2F - SWELL.EXE - GET INFO AX = CD07h ES:BX -> 32-byte buffer for info (see #03070) Return: AX = status 0000h successful ES:BX buffer filled 8001h buffer wrong size Format of SWELL.EXE info buffer: Offset Size Description (Table 03070) 00h WORD 20h (total size of buffer) 02h BYTE suspend-once mode active if nonzero 03h BYTE 00h active, 01h suspended 04h BYTE 00h quiet, 01h verbose 05h BYTE "Borland support" (allowing INT 21/AX=4B01h) on if nonzero 06h 26 BYTEs unused???Top
INT 2F - Intel Image Processing Interface - SCREEN IMAGE AX = CD08h CX:BX -> structure (see #03071) Return: AL = status (00h,80h-85h) (see #03068) SeeAlso: AX=CD05h"Image",AX=CD09h"Image" Format of IPI screen image structure: Offset Size Description (Table 03071) 00h WORD image source (0 = conventional memory, 1 = expanded memory) 02h DWORD pointer to image data 06h WORD horizontal position on paper of left edge (in 1200 dpi units) 08h WORD vertical position on paper of top edge (in 1200 dpi units) 0Ah WORD left cropping (currently must be zero) 0Ch WORD top cropping (currently must be zero) 0Eh WORD width (currently must be 8000h) 10h WORD height (currently must be 8000h) 12h WORD horizontal size of image in 1200 dpi units 14h WORD vertical size of image in 1200 dpi units 16h WORD aspect ratio (currently reserved) 18h WORD initialization flag (if 01h, initialization is performed) 1Ah WORD pixels per line of source data 1Ch WORD number of scan lines in source data 1Eh WORD number of scan lines in packet 20h WORD bits per pixel (1,2,4,6, or 8) 22h WORD pixels per byte (1,2,4, or 8) 24h WORD compression type (currently only 00h [uncompressed] supported) 26h WORD source page number (if in expanded memory) 28h WORD source handle (if in expanded memory) 2Ah WORD source offset (if in expanded memory)Top
INT 2F - SWELL.EXE - UNUSED AX = CD08h Return: AX = FFFFh (error)Top
INT 2F - Intel Image Processing Interface - LOAD SCREEN
AX = CD09h
CX:BX -> structure (see #03072)
Return: AL = status (00h,80h) (see #03068)
SeeAlso: AX=CD06h"Image Processing",AX=CD0Ah"Image Processing"
Format of IPI load screen structure:
Offset Size Description (Table 03072)
00h BYTE style
44h ('D') diamond style
4Ch ('L') line style
01h BYTE reserved (00h)
02h WORD frequency in lines per inch [sic]
currently, coerced to nearest of 50, 60, 68, 70, 75, 85, or 100
04h WORD screen angle in degrees (-360 to 360)
currently coerced to nearest of -45, 0, 45, or 90
Top
INT 2F - SWELL.EXE - TURN OFF "BORLAND SUPPORT" AX = CD09h Return: AX = 0000h SeeAlso: AX=CD0Ah"SWELL"Top
INT 2F - Intel Image Processing Interface - LOAD PALETTE AX = CD0Ah CX:BX -> palette structure (see #03073) Return: AL = status (00h,80h) (see #03068) SeeAlso: AX=CD09h"Image Processing" Format of IPI palette structure: Offset Size Description (Table 03073) 00h BYTE bits per pixel for which palette is to be used (1,2,4,6, or 8) 01h 2**N palette translation values, one per possible pixel valueTop
INT 2F - SWELL.EXE - TURN ON "BORLAND SUPPORT" AX = CD0Ah Return: AX = 0000h SeeAlso: AX=CD09h"SWELL"Top
INT 2F - LaserPort Interface - EXECUTE FUNCTION AX = CD0Fh BL = function 01h enable 02h disable 03h ??? Return: AL = status 00h success SeeAlso: AX=CD00h"LaserPort"Top
INT 2F R - InterWave Game API - OPEN GAME DEVICE AX = CD21h BX = installed program identifier ES:DI -> ASCIZ device name "MIDISIMPLE" "MIDICOMPLEX" "DIRECTCODEC" Return: AL = status 00h successful DX = device handle ---MIDISIMPLE and MIDICOMPLEX--- BX = real-mode interrupt number (see #03074,#03075) ---DIRECTCODEC--- BX = base port CL = IRQ CH = DMA channel (04h = no DMA) SI = size of FIFO in bytes (0000h = use DMA) nonzero failed (not supported or already in use) AH may be destroyed Range: AH=CDh-ECh, selected by scanning for an available multiplex number SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave" SeeAlso: AX=CD05h"InterWave",AX=CD22h"InterWave",AX=CD80h"InterWave" (Table 03074) Call MIDISIMPLE with: EAX = function number 0001h MIDI byte out BL = MIDI byte to send 0002h MIDI string out ECX = length of MIDI string in bytes ES:EDI -> MIDI string to send (should not include timing info) DX = device handle INT xxh (as returned by AX=CD21h) Return: EAX = status 00000000h if successful FFFFFFFFh on error (bad handle) SeeAlso: #03075,INT 7E/AX=0001h"IWSBSDRV",INT 7E/AX=0002h"IWSBSDRV" (Table 03075) Call MIDICOMPLEX with: EAX = function number ??? (specification is still in development) DX = device handle INT xxh (as returned by AX=CD21h) Return: EAX = status 00000000h if successful FFFFFFFFh on error (bad handle) SeeAlso: #03074Top
INT 2F R - InterWave Game API - CLOSE GAME DEVICE AX = CD22h BX = installed program identifier DX = device handle (from AX=CD21h) Return: AL = status 00h successful FFh inavlid handle or device is not open Range: AH=CDh-ECh, selected by scanning for an available multiplex number SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave" SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"Top
INT 2F RC - InterWave Game API - MIXER SETTINGS CHANGED BROADCAST AX = CD80h Return: nothing Desc: called by an application controlling the InterWave chip's mixer whenever the mixer's settings are changed Range: AH=CDh-ECh, selected by scanning for an available multiplex number Note: when an application intercepts this function call, it must read the new mixer settings from the InterWave chip SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave" SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD22h"InterWave"Top
INT 2F - TEMPLEXX 1.0 - INSTALLATION CHECK AX = CF00h Return: AL = FFh if installed Program: TEMPLEXX is a popup keyboard template by Henson Scientific, Inc. Note: values in AL other than 00h cause an immediate return without modifying any registersTop
INT 2F C - MDEBUG display driver - GET DRIVER STATUS AX = D000h Return: CF set on error all other registers must be unchanged) CF clear if successful AL = FFh AH = driver semaphor 00h driver is not active 01h driver is active BX = CS of the driver CX = driver version (CH = major, CL = minor, must be >= 013Ch) DL = buffer semaphor 00h driver is not pending 01h driver is pending between functions 02h and 03h DH = show semaphor 00h driver is not pending 01h driver is pending between functions 04h and 05h Program: MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer, including a memory monitor, an interpreter and a disassembler Range: AH=C0h to AH=FFh, selected by switch or programmatically Notes: MDEBUG can use any two consecutive multiplex numbers between C0h and FFh; the default is D0h for the display driver and D1h for the command driver (call INT 60/AH=00h"MDEBUG" for the actual multiplex numbers used) this function MUST be reentrant, as MDEBUG calls it after every popup before any other actions. The handler should not change any registers if the display is in an unsupported mode or in a mode MDEBUG supports itself, e.g. a normal text mode with at least 80x25 characters (i.e. 80x43 or 132x44 (v1.60+)). In this case MDEBUG will not call any of the other functions for this popup session. MDEBUG will not call the other functions if the returned version is less than the actual version of MDEBUG. if the driver is reentrant, DL and DH should be 00h SeeAlso: AX=D001h,AX=D002h,AX=D003h,AX=D004h,AX=D005hTop
INT 2F - ZWmous - INSTALLATION CHECK
AX = D000h
Return: AX = 5A57h ("ZW") if installed
BX = segment of resident code
Program: ZWmous is a shareware TSR by Zen Wu which permits the use of a mouse
with many non-mouse applications by entering the letter under the
mouse cursor on button presses
SeeAlso: INT 33/AX=0003h
Top
INT 2F - Lotus CD/Networker - INSTALLATION CHECK
AX = D000h
Return: AL = FFh if CD/Networker TSR is loaded
BX = 4D44h ("MD") signature
CX = Windows mode word (from INT 2F/AX=1600h) at time of TSR load
DX = bitmap identifying all loaded CD/Networker TSRs.
Notes: INT 2F/AH=D0h is used by CD/Networker to communicate between a
resident redirector TSR and a transient program that controls the
TSR's CD-ROM drive emulation (volume attachments, caching, etc).
At present there is only one CD/Networker TSR; the bitmap always = 4.
SeeAlso: AX=D002h"Lotus",INT 2F/AX=1500h"CD-ROM"
Top
INT 2F C - MDEBUG display driver - INITIALIZE DRIVER AX = D001h Return: CF set on error AL = driver semaphor AH = buffer semaphor Range: AH=C0h to AH=FFh, selected by switch or programmatically Notes: MDEBUG calls this function after every successful call of the function 00h. The function should reset all internal data and the status of the driver. If this function returns an error, MDEBUG will not call the other functions in this popup session. MDEBUG can use any two consecutive multiplex numbers between C0h and FFh; the default is D0h for the display driver and D1h for the command driver SeeAlso: AX=D000hTop
INT 2F C - MDEBUG display driver - SAVE GRAPHIC DATA AX = D002h Return: CF set on error CF clear if successful display memory saved and display switched to one of the text modes 02h, 03h or 07h. Note: MDEBUG calls this function only once every popup session before displaying its windows. SeeAlso: AX=D000h,AX=D003hTop
INT 2F - Multiplex - Lotus CD/Networker GET DATA AREA AX = D002h BX = 4D44h DX = bitmap identifying one loaded CD/Networker TSR Return: ES:DI -> data area owned by TSR Note: the format of the data area changes with each minor revision, so it cannot be counted on SeeAlso: AX=D000h"Lotus"Top
INT 2F C - MDEBUG display driver - RESTORE GRAPHIC DATA AX = D003h Return: CF set on error CF clear if successful display restored to the mode it was in before calling AX=D002h and the display memory is restored Note: MDEBUG calls this function only once every popup session just before it exits to normal DOS. SeeAlso: AX=D000h,AX=D002hTop
INT 2F - MDEBUG display driver - SHOW SAVED DATA AX = D004h Return: CF set on error CF clear if successful display switched to mode it was in before calling AX=D002h and the display memory is restored Note: This function needn't save the display memory before changing it. SeeAlso: AX=D000h,AX=D005hTop
INT 2F - MDEBUG display driver - SWITCH BACK TO TEXT SCREEN AX = D005h Return: CF set on error CF clear if successful display restored to mode it was in before calling AX=D004h Note: This function needn't save or change the display memory SeeAlso: AX=D000h,AX=D004hTop
INT 2F - MDEBUG display driver - RESERVED FUNCTION NUMBERS AH = D0h AL = 06h-7Fh Note: these functions are reserved for future useTop
INT 2F - MDEBUG display driver - USER DEFINED FUNCTION NUMBERS AH = D0h AL = 80h-FFh Note: these functions numbers are reserved for user defined features (e.g. communication between the transient und resident parts of the driver)Top
INT 2F C - MDEBUG command driver - GET STATUS AX = D100h BX = version of MDEBUG (BH = major, BL = minor) CX = command driver counter ---v1.60+--- DS:SI -> MDEBUG identification table (see #03076) ES = segment of display memory used by MDEBUG DI = size of video mode used by MDEBUG (high byte = lines, low byte = columns) Return: DL = FFh BX = version number of the driver if it is less than the version in BX, else unchanged CX incremented Program: MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer, including a memory monitor, an interpreter, and a disassembler Range: AH=C0h to AH=FFh, selected by switch or programmatically Notes: called by MDEBUG at start of popup session; if the version number returned in BX is less than 1.52 (1.60 for MDEBUG v1.70), MDEBUG will not call any of the other functions during this popup session MDEBUG can use any two consecutive multiplex numbers between C0h and FFh; the default is D0h for the display driver and D1h for the command driver (call INT 60/AH=00h"MDEBUG" for the multiplex numbers actually used) this function must end with a far call to the old INT 2F handler after changing the registers this function MUST be reentrant command drivers must also declare the following data at the given offsets in the code segment 100h 3 BYTEs JMP-command in .COM-files 103h BYTE NOP-command (90h) 104h 26 BYTEs signature "Kommandotreiber fr MDEBUG" 11Eh 12 BYTEs name of driver, e.g. "MDHISDRV.COM" each driver must have a unique name MDEBUG will pass every key and command to the command driver(s) before checking for a valid internal command SeeAlso: AX=D000h,AX=D101h Format of MDEBUG identification table: Offset Size Description (Table 03076) -2 WORD entry offset 00h WORD CS of MDEBUG 02h DWORD old INT 08h vector 06h DWORD old INT 09h vector 0Ah DWORD address INT 16h routine used by MDEBUG 0Eh BYTE length of version string 0Fh N BYTEs version stringTop
INT 2F - MDEBUG command driver - INITIALIZE DRIVER AX = D101h CX = command driver counter Return: DL = status FFh if successful CX incremented else error: all registers unchanged Note: this function must end with a far call to the old INT 2F handler after changing the registers this function must be reentrantTop
INT 2F - MDEBUG command driver - EXECUTE INTERPRETER COMMAND AX = D102h BL = first character of the interpreter command BH = last character of the interpreter command (or blank) DS:SI -> parameter for the interpreter command as ASCIZ string DS:DI -> MDEBUG data structure (see #03078) Return: AL = FFh CF set on error AH = error number (see #03077) DS:SI -> ASCIZ error message (max 30 characters) if AH=0Ch CF clear if successful AH = return code 00h continue processing the command line 01h leave MDEBUG popup session 02h leave MDEBUG popup session and automatically popup again if the InDOS flag is zero 03h not used (same as 00h) 04h not used (same as 00h) 05h put new command line into the input buffer, DS:SI -> new command line (ASCIZ string, max 66 chars) 06h process new command line DS:SI -> new command line (ASCIZ string, max 66 chars) else unknown status, but continue processing commmand line Note: this function must end with a far call to the old INT 2F handler (with registers unchanged) if the driver does not support the interpreter command in BX. Otherwise, the driver must not chain to the old INT 2F. (Table 03077) Values for MDEBUG error number: 01h syntax error 02h first shell of the command.com is activ 03h Esc pressed 04h break pressed 05h DOS is busy 06h command ended 07h division by zero 08h invalid display driver 09h invalid command driver 0Ah error 8 and 9 0Bh unknown error 0Ch new error else unknown error Format of MDEBUG data structure: Offset Size Description (Table 03078) 00h WORD register SE 02h WORD register OF 04h WORD register FS 06h WORD register FO 08h WORD register AX 0Ah WORD register BX 0Ch WORD register CX 0Eh WORD register DX 10h WORD register SI 12h WORD register DI 14h WORD register DS 16h WORD register ES 18h WORD register BP 1Ah WORD register SS 1Ch WORD register SP 1Eh WORD register FL (flags) 20h WORD register R0 22h WORD register R1 24h WORD register R2 26h WORD register R3 28h WORD register R4 2Ah WORD register R5 2Ch WORD register R6 2Eh WORD register R7 30h WORD register R8 32h WORD register CS, return-address 34h WORD register IP, return-address 36h DWORD saved pointer to data for key <F6> (v1.60) saved monitor address (v1.70) 3Ah 12 WORDs saved register values on last popup entry (for <F8> key) (original register values at popup entry of MDEBUG) AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags 52h 12 WORDs saved register values on last popup exit (for <SHIFT-F8> key) AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags 6Ah DWORD address of the DOS-invars-table 6Eh DWORD address of the InDOS flag 72h WORD offset of the register which is used for the segment of the first monitor window 74h WORD offset of the register which is used for the offset of the first monitor window 76h WORD name of the register which is used for the segment of the first monitor segment 78h WORD name of the register which is used for the offset of the first monitor window 7Ah WORD pseudo register 1 7Ch WORD pseudo register 2Top
INT 2F - MDEBUG command driver - EXECUTE KEY IN THE MONITOR AX = D103h BX = key code (like result of an interrupt 16h call) CX = cursor position 0000h in the ASCII column of the monitor 0001h in one of the hex fields of the monitor DS:SI -> MDEBUG data structure (see #03078) ES:DI -> actual byte in the monitor Return: AL = FFh AH = return code 00h key processed, read next key 01h leave MDEBUG popup session 02h leave MDEBUG popup session and automatically popup again if DOS is not busy 03h signal an error (beep) 04h driver has redefined the key, proceed with the new key BX = new key code MDEBUG will not pass the new key to the command driver(s) else treat like code 00h Note: this function must end with a far call to the old INT 2F handler (with registers unchanged) if the driver does not support the key in BX. Otherwise, the driver must not chain to the old INT 2F. SeeAlso: AX=D104hTop
INT 2F - MDEBUG command driver - EXECUTE KEY IN THE INTERPRETER AX = D104h DS:SI -> MDEBUG data structure (see #03078) Return: AL = FFh AH = return code 00h key processed, read next key 01h leave MDEBUG popup session 02h leave MDEBUG popup session and automactically popup again if DOS is not busy 03h signal an error (beep) 04h driver has redefined the key, proceed with the new key BX = new key code MDEBUG won't pass the new key to the command driver(s) 05h put new command line into the input buffer DS:SI -> new command line (ASCIZ string, max 66 chars) 06h process new command line DS:SI -> new command line (ASCIZ string, max 66 chars) else treat like code 00h Note: this function must end with a far call to the old INT 2F handler if the driver does not support the key in BX. Otherwise, the driver must not chain to the old INT 2F. SeeAlso: AX=D103hTop
INT 2F - MDEBUG command driver - RESERVED FUNCTIONS AH = D1h AL = 05h-0Ah Note: these functions are reserved for future useTop
INT 2F - MDEBUG command driver - GET ADDRESS OF THE OLD INT 2F AX = D110h Return: DL = FFh ES:BX -> next program in the chain for INT 2F CX = code segment of this driver DI = offset of driver identification table (see #03079) (v1.60+) Notes: only called by the transient part of the driver must be reentrant and the driver must not chain this function to the old INT 2F Format of the MDEBUG driver identification table: Offset Size Description (Table 03079) 00h 26 BYTEs signature "Kommandotreiber fr MDEBUG" ^- Note: ASCII 129,German U-umlaut 27h 12 BYTEs name of driver, e.g. "MDHISDRV.COM" each driver must have a unique nameTop
INT 2F - MDEBUG command driver - START DRIVER AX = D111h Return: DL = FFh Notes: only called by the transient part of the driver to inform the resident part that it is installed the function must be reentrant and the driver mustn't chain this function to the old INT 2F SeeAlso: AX=D101h,AX=D112hTop
INT 2F - MDEBUG command driver - END DRIVER AX = D112h Return: DL = FFh Notes: only called by the transient part of the driver to inform the resident part that it will be released after this function the function must be reentrant and the driver mustn't chain this function to the old INT 2F SeeAlso: AX=D101h,AX=D111hTop
INT 2F - MDEBUG command driver - RESERVED FUNCTIONS AH = D1h AL = 13h-7Fh Note: these functions are reserved for future useTop
INT 2F - MDEBUG command driver - USER DEFINED FUNCTIONS AH = D1h AL = 80h-FFh Note: these functions are reserved for user defined features (e.g. communication between the transient und resident parts of the driver)Top
INT 2F - PCL-838.EXE - INSTALLATION CHECK AX = D200h Return: AL = FFh if installed??? (documented as AX = return value) Program: PCL-838 is a resident utility for controlling a stepmotor adapter board by Advantec SeeAlso: AX=D201h"PCL-838",AX=D202h"PCL-838"Top
INT 2F - Quarterdeck RPCI - INSTALLATION CHECK
AX = D200h
BX = 5144h ("QD")
CX = 4D45h ("ME")
DX = 4D30h ("M0")
Return: AL = FFh installed
if BX,CX,DX registers were as specified on entry:
BX = 4D45h ("ME")
CX = 4D44h ("MD")
DX = 5652h ("VR")
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Notes: the Quarterdeck RPCI (Resident Program Communication Interface) is
supported by QEMM v5.0+, QRAM, MANIFEST, VIDRAM, etc.
for AL <> 0, if the BX/CX/DX values don't match the identifier of a
Quarterdeck product, it just chains to the previous INT 2F handler
SeeAlso: AX=D201h/BX=4849h,AX=D201h/BX=4D41h,AX=D201h/BX=4D45h
SeeAlso: AX=D201h/BX=5145h,AX=D201h/BX=5649h
Top
INT 2F - PCL-838.EXE - UNINSTALL AX = D201h Return: AX = return value SeeAlso: AX=D200h"PCL-838",AX=D202h"PCL-838"Top
INT 2F - Quarterdeck RPCI - GET QD HIMEM PRESENCE
AX = D201h
BX = 4849h ("HI")
CX = 4D45h ("ME")
DX = 4D51h ("MQ")
Return: BX = 4F4Bh ("OK")
ES:DI -> HIMEM entry point
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
SeeAlso: AX=D200h,AX=D201h/BX=5145h
Top
INT 2F - Quarterdeck RPCI - QEMM/QRAM v5.0+ - GET HIRAM MEMORY CHAIN
AX = D201h
BX = 4849h ("HI")
CX = 5241h ("RA")
DX = 4D30h ("M0")
Return: BX = 4F4Bh ("OK")
CX = segment of start of HIRAM chain
DX = reserved block owner (QEMM/QRAM code segment)
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Note: the HIRAM memory chain has the same format as the regular DOS 4.0
memory chain (see #01628 at INT 21/AH=52h), except that XMS Upper
Memory Blocks have the block header program name field set to
"UMB"; blocks whose "owner" field is set to the reserved segment
returned in DX are locked-out regions such as video memory and ROMs.
SeeAlso: AX=12FFh/BX=0006h,AX=D200h
Top
INT 2F U - Quarterdeck RPCI - MANIFEST v1.0+ - INSTALLATION CHECK
AX = D201h
BX = 4D41h ("MA")
CX = 4E49h ("NI")
DX = 4645h ("FE")
Return: BX = 5354h ("ST") if installed
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
SeeAlso: AX=D200h
Top
INT 2F U - Quarterdeck RPCI - DVDOS4GX.DVR - ???
AX = D201h
BX = 4D45h ("ME")
CX = 5155h ("QU")
DX = 5044h ("PD")
Return: AL = FFh
BX = 4F4Bh ("OK")
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Note: this function is called by QEMM 6.03
performs a variety of actions before setting return registers
SeeAlso: AX=D200h
Top
INT 2F - Quarterdeck RPCI - QEMM v5.0+ - INSTALLATION CHECK
AX = D201h
BX = 5145h ("QE")
CX = 4D4Dh ("MM")
DX = 3432h ("42")
Return: BX = 4F4Bh ("OK")
ES:DI -> QEMM API entry point (see INT 67/AH=3Fh)
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Note: this call is not available under QEMM v6.00 unless Windows3 support
has been disabled with the NW3 switch to QEMM386.SYS
SeeAlso: AX=D200h,AX=D201h/BX=4849h,INT 67/AH=3Fh
Top
INT 2F u - Quarterdeck RPCI - VIDRAM v5.0+ - INSTALLATION CHECK
AX = D201h
BX = 5649h ("VI")
CX = 4452h ("DR")
DX = 414Dh ("AM")
Return: BX = 4F4Bh ("OK")
ES:DI -> VIDRAM entry point (see #03080)
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
SeeAlso: AX=D200h
(Table 03080)
Call VIDRAM entry point with:
AH = 00h get status
Return: AL = VIDRAM state (see #03081)
BL = extra RAM status (see #03082)
BH = feature flags (see #03083)
CL = current monitor (01h = mono, 80h = color)
SI = current top of memory (paragraph)
DI = segment of start of HiRAM chain
AH = 01h setup
AL = VIDRAM state (see #03081)
BL = extra RAM status (see #03082)
BH = feature flags (see #03083)
CL = monitor (01h = monochrome, 80h = color)
SI = new top of memory (paragraph)
DI = segment of start of HiRAM chain
AH = 02h get end address of VIDRAM code
Return: ES:DI -> VIDRAM partial map context (see #03084,#03085)
Return: CF set on error
CF clear if successful
(Table 03081)
Values for VIDRAM state:
00h off
01h no EGA graphics
02h no graphics at all
(Table 03082)
Values for VIDRAM extra RAM status:
00h VIDRAM does not use extra RAM
01h VIDRAM uses EMS as extra RAM
02h VIDRAM uses EGA as extra RAM
Bitfields for VIDRAM feature flags:
Bit(s) Description (Table 03083)
0 override enabled
1 mapped memory detected in A000h-B000h range
2 top of memory not at 640K
3 MDA detected
4 high RAM exists in video area
5 mapped memory detected in video area
6-7 reserved???
Format of VIDRAM partial map context (EMS 3.2):
Offset Size Description (Table 03084)
00h BYTE EMS version ID (32h)
01h WORD EMM handle for this entry
03h BYTE number of frames
04h BYTE first page frame
05h WORD offset from ES to previously saved map
Format of VIDRAM partial map context (EMS 4.0):
Offset Size Description (Table 03085)
00h BYTE EMS version ID (40h)
01h WORD mappable segment count
03h N WORD mappable segments
WORD offset to previously saved map???
Top
INT 2F - PCL-838.EXE - EXECUTE PCL838 COMMANDS AX = D202h CX:BX -> parameter table Return: AX = return value SeeAlso: AX=D200h"PCL-838",AX=D201h"PCL-838"Top
INT 2F U - TeleReplica - INSTALLATION CHECK AX = D300h BX = 4562h CX = 2745h DX = serial port I/O base address??? (03F8h for v3.9) Return: SI = segment of resident code AX = 251Dh BX = DF21h CX = F321h DX = ???Top
INT 2F U - LapLink Quick Connect v6 - API AX = D3CBh CX = function 0002h get ??? Return: BX:AX -> ??? CL = ??? CH = ??? DX = ??? DI = COM1 I/O port??? SI = COM2 I/O port??? 0003h initialization??? 0004h ??? 0005h initialization??? 0006h reset/clear ??? Return: AX = 0000h ES:DI -> next byte after ??? cleared by this call 0007h initialization??? 0008h uninstall Return: BX = status 0000h successful FFFFh incomplete, stub remains in memory Return: CX = 534Bh (except function 0002h) Index: uninstall;LapLink Quick ConnectTop
INT 2F - KDRIVE v2.x - INSTALLATION CHECK AX = D3D3h BH = 00h Return: BX = 3D3Dh if installed CF clear if installed AX = driver ID??? (returns 0087h for KDRIVE.EXE and 0880h for KDRIVOS2.EXE in one examined version) Program: KDRIVE is a shareware extended German keyboard driver by Martin Austermeier, originally based on K3 by Martin Gerdes as published in c't magazine 7/1988Top
INT 2F - 4DOS.COM v2.1+ - API AX = D44Dh BH = function 00h installation check Return: AX = 44DDh BL = major version number BH = minor version number CX = PSP segment address for current invocation DL = 4DOS shell number (0 for the first (root) shell, updated each time a new copy is loaded) 01h (internal, v2.1-3.03) terminate current copy of 4DOS Return: nothing (internal, v4.0+) ??? Return: AX = 44DDh ES:BX -> data area (see #03086) 02h ??? DX = ??? Note: v5.52 signals "unrecoverable error" and then terminates with INT 21/AH=4Ch or enters a deliberate infinite loop if ??? ---v2.1-3.03 only--- 03h EXEC program CX:DX -> EXEC record (see #03087) FEh deallocate shell number (passed through to root shell) ??? FFh allocate shell number (passed through to root shell) ---v5.52--- 03h get ??? BL = ??? (00h/01h) Return: DX = current value of ??? 04h set ??? BL = ??? (00h/01h) DX = new value for ??? Note: a bug in v3.00 will crash the system if unrecognized value in BH SeeAlso: AX=D44Eh,AX=D44Fh/BX=0000h,AX=E44Dh,INT 21/AX=4403h"DOS" SeeAlso: INT 14/AX=7000h Index: installation check;4DOS|installation check;NDOS Format of 4DOS v4.0 data area: Offset Size Description (Table 03086) 00h 2 BYTEs ??? 06h WORD XMS handle for swapping ??? SeeAlso: #03087 Format of 4DOS EXEC v2.1-v3.03 record: Offset Size Description (Table 03087) 00h WORD offset of ASCIZ program name in same segment as EXEC record 02h WORD offset of DOS commandline in same segment as EXEC record 04h WORD segment of environment for child process (see INT 21/AH=26h) SeeAlso: #03086Top
INT 2F C - 4DOS v3.0+ - AWAITING USER INPUT AX = D44Eh ---4DOS v3.01+--- BX = condition 0000h 4DOS is ready to display prompt 0001h 4DOS has displayed the prompt, about to accept user input Return: the handler must preserve SI, DI, BP, SP, DS, ES, and SS Note: v3.00 only makes the call corresponding to BX=0001h, does not set BX SeeAlso: AX=D44DhTop
INT 2F - 4DOS v4.0+ - KSTACK.COM - INSTALLATION CHECK AX = D44Fh BX = 0000h Return: AX = 44DDh if installed Note: this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+, which emulate the 4DOS and NDOS keystack SeeAlso: AX=D44Dh,AX=D44Fh/BX=0001h,AX=E44Fh/BX=0000hTop
INT 2F - 4DOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK AX = D44Fh BX = 0001h CX = number of keystrokes (01h-FFh) DS:DX -> keystroke list (one word per keystroke) Return: AX = status 0000h successful nonzero failed BX,CX,DX destroyed Notes: the keystrokes are the exact values to return from subsequent calls to INT 16 with AH=00h,01h,10h, or 11h, with the following exceptions: 0000h causes subfunctions 01h and 11h to indicate an empty keyboard buffer FFFFh is followed by a word indicating the number of clock ticks to delay before the next faked keystroke v4.00 KSTACK overwrites any unread keystrokes from the previous invocation, and does not range-check CX; it will overwrite memory following the resident portion if CX is greater than 100h. this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+, which emulate the 4DOS and NDOS keystack SeeAlso: AX=D44Dh,AX=D44Fh/BX=0000h,INT 16/AH=00h,INT 21/AX=4403h"DOS"Top
INT 2F - HEART.COM - INSTALLATION CHECK AX = D600h Return: AX = 0303h (two hearts) if installed ES:DI -> buffer (see #03088) Program: HEART.COM is a CPU lock-up/critical indicator utility by Mitch Davis. Notes: Once the host program has identified the address of the data area, it can change this to indicate safe/critical, alternate colours, etc. The entries for the color table are in char/attrib form. Every two entries form a pair which is alternated between 68 times a minute. The first half of the table is for color videos, the second mono. Within each half, the first half is for the safe chars, and the second for the critical chars. Format of HEART.COM buffer: Offset Size Description (Table 03088) 00h 8 WORDs table of colors/attributes (refer to notes above) 10h BYTE flags bit 0: program is in critical section, so flash double exclamation mark bit 1: program is in safe code, so flash the heart character 11h WORD position of heartbeat on screen, normally 009Eh (last column of second line)Top
INT 2F U - VEDIT VSWAP - INSTALLATION CHECK AX = D600h Return: AL = D6h if installed Program: VSWAP is the resident portion of VEDIT's "swapper" capability; VEDIT is a programmer's text editor by Greenview Data. SeeAlso: AX=D601h,AX=D602hTop
INT 2F U - VEDIT VSWAP - ??? AX = D601h BL = subfunction number??? Return: BL = return code ??? ES = resident portion's data??? segment DX = resident portion's code segment SeeAlso: AX=D600h"VSWAP"Top
INT 2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP AX = D602h other registers set as for INT 21/AX=4B00h Return: CF set on error AL = error code 82h = failure due to ??? CF clear on success SeeAlso: AX=D600h"VSWAP",INT 21/AH=4Bh"EXEC"Top
INT 2F - Banyan VINES v4+ - GET BANV INTERRUPT NUMBER AX = D701h BX = 0000h Return: AX = 0000h if installed BX = interrupt number (60h to 66h) nonzero not present Note: if AX is nonzero, VINES 3.x or earlier may be installed, thus it is necessary to examine the four bytes preceding the handlers for INT 60 through INT 66 for the string "BANV" SeeAlso: AX=D702h,AX=D703h,AX=D704hTop
INT 2F U - Banyan VINES v4+ - PCPRINT interface AX = D702h BX = function ??? Return: ??? SeeAlso: AX=D701h,AX=D703h,INT 61/AX=0005h"Banyan"Top
INT 2F U - Banyan VINES v4+ - MAIL interface AX = D703h BX = function ??? Return: ??? SeeAlso: AX=D702h,AX=D704hTop
INT 2F U - Banyan VINES v4+ - Streettalk Directory Assistance interface AX = D704h BX = function ??? Return: ??? SeeAlso: AX=D703h,INT 61/AX=0007h/BX=0002h"Banyan",INT 61/AX=0007h/BX=0008hTop
INT 2F U - Novell NetWare Lite - CLIENT.EXE - INSTALLATION CHECK AX = D800h Return: AL = FFh if installed DX = version number (0100h for v1.0, 0101h for v1.1) BX = data segment of resident copy ES:DI -> private API entry point (see #03089) SI = segment of resident code Note: Microsoft assigned multiplex number D8h to Novell on 1991/05/21 SeeAlso: AX=7A00h,AX=D880h (Table 03089) Call CLIENT API entry point with: BX = function 0000h get ??? Return: DX = CLIENT version??? (0101h for v1.1) ES:BX -> ??? data 0001h ??? 0002h ??? 0003h ??? 0004h ??? 0005h ??? DL = ??? ??? Return: ??? 0006h get module name??? ES:DI -> 16-byte buffer Return: CX = ??? ES:DI filled with "NWLITE_CLIENT" 00h 00h 00h 0007h ??? DX:CX = ??? ??? Return: ??? 0008h ??? 0009h ??? DL = ??? ES:DI -> 16-byte buffer for ??? Return: CF clear if successful AX = 0000h CX = 0000h SI,DI destroyed CF set on error AX = error code 4903h 000Ah ??? AH = subfunction 00h get ??? 01h clear/set ??? flag AL = new state (00h cleared, 01h set) 02h set ??? DX = new value of ??? Return: DX = old value of ??? 000Bh ??? AX = ??? ??? Return: ??? 000Ch ??? AX = ??? ??? Return: ??? 000Dh ??? AX = ??? ??? Return: ??? 000Eh get original INT 17 Return: CF clear ES:BX -> original INT 17 000Fh ??? 0010h ??? AX = ??? ??? Return: ??? 0011h get ??? Return: CF clear DL = ??? 0012h get ??? AL = index of ??? ES:DI -> 10-byte buffer for ??? Return: CF clear if successful ES:DI buffer filled AX,CX destroyed CF set on error AX = error code (4907h if AL out of range) 0013h get ??? Return: CF clear DH = ??? DL = ??? 0014h ??? DL = ??? ??? Return: CF clear if successful ??? CF set on error AX = error code 8056h 0015h ??? DX = ??? Return: ES:DI -> ??? other Return: CF set AX = 0001h (invalid function)Top
INT 2F U - Novell NetWare Lite v1.1 - SERVER - "VNWLSERV_INIT" - GET ??? AX = D856h Return: AX = 0001h if supported??? BX = ??? (0004h for v1.1) CX = ??? (0F20h for v1.1) DS = segment of resident code ES = data segment of resident copy Note: this function is also supported by Personal NetWare SERVER, bundled with Novell DOS 7Top
INT 2F U - Novell NetWare Lite v1.0+ - SERVER - INSTALLATION CHECK AX = D880h Return: AL = FFh if installed DX = version number (binary, DH = major, DL = minor) BX = data segment of resident copy CL = current state (00h SERVER is disabled, 01h SERVER is active) ES:DI -> private API entry point (see #03090) SI = ??? (offset of configuration info?) AH may be destroyed Note: this function is also supported by Personal NetWare SERVER, but DI is not set; instead, ES:SI points at the API entry point SeeAlso: AX=7A00h,AX=D800h,INT 2A/AX=D852h (Table 03090) Call SERVER API entry point with: BX = function 0000h shut down server ??? Return: ??? Note: closes open files by calling INT 21/AH=3Eh 0001h get connection information DX = connection number (0001h-max connections) ES:DI -> 28-byte buffer for connection information Return: CF clear if successful ES:DI buffer filled CF set on error AX = FFFFh ---Personal NetWare only--- 0002h ??? 0003h ??? 0004h ??? 0005h ??? 0006h get server info table CX = size of buffer ES:DI -> buffer AL = mode (02h = get current status) 0007h ??? other Return: CF set AX = 0001h (invalid function)Top
INT 2F U - Novell NLCACHE,NWCACHE - INSTALLATION CHECK AX = D8C0h Return: AL = FFh if installed CL = memory type (01h NLCACHEC, 02h NLCACHEX, 03h NLCACHEM) DH = major version (01h for v1.1) DL = minor version (01h for v1.1) ES:DI -> private API entry point (see #03091) Program: NWCACHE is the disk cache included with Personal NetWare, Novell DOS 7, Caldera OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, and Caldera Thin Clients/Lineo DR-DOS 7.03. Note: This function is called by the NetWare Lite and Personal NetWare SERVER. It may also be called by future (post DR-DOS 7.03) COMMAND.COM before it returns to the prompt. BUG: Some pre-BETA 17 (1993/09/28) versions of NWCACHE returned -1,0,1 instead of 1,2,3 for the memory type in CL. SeeAlso: AX=D800h,AX=D880h (Table 03091) Call NLCACHE/NWCACHE "sideband function" API entry point with: BX = function 0000h flush request from server Return: CF clear if successful at flushing deferred writes AX = 0000h CF set on error AX = error code 0001h (NWCACHE only) get cache statistics ES:DI -> buffer for statistics (see #04122) Return: CF clear if successful AX = 0000h ES:DI buffer filled other Return: CF set AX = 0001h (invalid function) Format of NWCACHE cache statistics: Offset Size Description (Table 04122) 00h WORD version 02h BYTE memory type 03h WORD initial cache size in KB 05h WORD current cache size in KB 07h DWORD number of read requests 0Bh DWORD number of physical reads performed 0Fh DWORD number of write requests 13h DWORD number of physical writes performed 17h BYTE delay ticks for deferred write (0 if no deferral) 18h WORD maximum number of sectors in lookahead buffer 1Ah WORD number of disk errors 1Ch WORD number of cache memory errors SeeAlso: #03091Top
Top
INT 2F - ZyXEL ZFAX v1.x - INSTALLATION CHECK AX = DA00h Return: AH = enabled state (00h = enabled, 01h = disabled) AL = 5Ah installed Program: ZFAX is the bundled FAX software which comes with the ZyXEL model fax modems. Note: This function, and the other DAxxh functions, may apply only to version 1 of the software; see AX=DB00h for the version 2 installation check SeeAlso: AX=CBDCh,AX=DA01h,AX=DA02h,AX=DA03h,AX=DB00hTop
INT 2F - ZyXEL ZFAX v1.x - UNINSTALL AX = DA01h Return: AL = 00h Success 01h Failure SeeAlso: AX=DA00h,AX=DB01hTop
INT 2F - ZyXEL ZFAX v.1x - DISABLE AX = DA02h Return: AL = 00h SeeAlso: AX=DA03h,AX=DB02hTop
INT 2F - ZyXEL ZFAX v1.x - ENABLE AX = DA03h Return: AL = 00h SeeAlso: AX=DA02h,AX=DB03hTop
INT 2F U - TRAP.COM - INSTALLATION CHECK AX = DA55h DL = interrupt number DH = ??? Return: if installed AH = interrupt number AL = ??? ES:BX -> ??? Program: TRAP is an interrupt call tracer by Patrick Phillipot/Udo Chrosziel Note: a separate copy of TRAP is loaded for each interrupt to be traced; thus the interrupt number is part of the installation checkTop
INT 2F U - Beame&Whiteside BWSNMP - INSTALLATION CHECK AX = DAB2h Return: AX = 00FFh if installed BX:CX -> MIB table Program: BWSNMP is part of the BW-NFS package SeeAlso: INT 62/AH=00h"ETHDEV"Top
INT 2F - ZyXEL ZFAX v2+ - INSTALLATION CHECK AX = DB00h Return: AL = 5Bh if installed (v2.x) ES:BX -> configuration table??? AX = 00DBh if installed (v3) ES:BX -> ZFAX configuration table (see #03092) Program: ZFAX is the bundled FAX software which comes with the ZyXEL model Fax modems. SeeAlso: AX=CBDCh,AX=DA00h,AX=DB01h,AX=DB02h,AX=DB03h Format of ZFAX Configuration Table: Offset Size Description (Table 03092) 00h WORD table version number (0300h for v3.0-v4.01) 02h BYTE reserved 03h 70 BYTEs ZFAX working path 49h 128 BYTEs path to external editor C9h 128 BYTEs path to external terminal emulator 149h 128 BYTEs path to Ring Shell 1C9h 128 BYTEs path to DOS Shell 249h 128 BYTEs path to Data Shell 2C9h 70 BYTEs path to Chinese font 30Fh BYTE printer type (see #03093) 310h BYTE printer port (00h = LPT1, etc.) 311h BYTE type of graphics adapter (00h auto-detect, 01h VGA, 02h EGA, 03h CGA, 04h Hercules) 312h BYTE display type (00h auto-detect, 01h LCD, 02h color, 03h mono) 313h BYTE scan code for ZFAX hotkey (see #00006) 314h BYTE shift mask for ZFAX hotkey 315h BYTE tone/pulse dialing (00h tone, 01h pulse) 316h BYTE Caller ID (00h disabled, 01h enabled) 317h BYTE Distinctive Ring (00h disabled, 01h enabled) 318h BYTE normal ring answer type (see #03094) 319h BYTE Ring 1 answer type (see #03094) 31Ah BYTE Ring 2 answer type (see #03094) 31Bh BYTE Ring 3 answer type (see #03094) 31Ch BYTE COM port for modem 31Dh BYTE speaker volume (00h-07h) 31Eh BYTE modem dial timer, seconds 31Fh WORD user-defined COM port I/O address 321h BYTE user-defined COM port IRQ number 322h 81 BYTEs dial prefix string 373h 79 BYTEs dial postfix string 3C2h BYTE ring count until automatic answer 3C3h BYTE retry count on busy signal 3C4h BYTE redial delay in seconds 3C5h WORD system password 3C7h BYTE reserved 3C8h BYTE voice file compression format 00h CELP at 9600bps 01h two-bit ADPCM at 19200bps 02h three-bit ADPCM at 28800bps 3C9h BYTE voice system: DTMF 0 action (see #03095) 3CAh BYTE voice system: DTMF 1 action 3CBh BYTE voice system: DTMF 2 action 3CCh BYTE voice system: DTMF 3 action 3CDh BYTE voice system: DTMF 4 action 3CEh BYTE voice system: DTMF 5 action 3CFh BYTE voice system: DTMF 6 action 3D0h BYTE voice system: DTMF 7 action 3D1h BYTE voice system: DTMF 8 action 3D2h BYTE voice system: DTMF 9 action (see #03095) 3D3h WORD reserved 3D5h 25 BYTEs local FAX ID to display on page header 3EEh 20 BYTEs local FAX ID sent to remote FAX 402h BYTE FAX page size 00h A4 (210x297mm) 01h B4 (250x353mm) 02h A3 (297x420mm) 403h BYTE FAX resolution 00h normal (3.85 pixels/mm) 01h high (7.7 pixels/mm) 404h BYTE FAX coding scheme 00h 1-D, modified Huffman coding 01h 2-D, modified READ coding 405h BYTE left margin for text in millimeters 406h BYTE vertical insertion for text in mm (0-20) 407h BYTE horizontal insertion in mm (0-20) 408h BYTE maximum text lines per page 409h BYTE text type (00h ASCII, 01h WordStar-formatted) 40Ah BYTE PCX image resize (00h disabled, 01h enabled) 40Bh BYTE AutoPrint (00h disabled, 01h enabled) 40Ch BYTE cover page (00h disabled, 01h enabled) 40Dh 81 BYTEs cover page logo filename 45Eh 65 BYTEs cover page sender name 49Fh BYTE print capture (00h disabled, 01h enabled) 4A0h BYTE send immediately (00h disabled, 01h enabled) 4A1h BYTE print capture printer port 4A2h BYTE print capture timer in seconds 4A3h BYTE scan code for print capture hotkey (see #00006) 4A4h BYTE shift mask for print capture hotkey 4A5h BYTE DataShell type 00h internal Zmodem, 01h Data Shell, 02h disable 4A6h BYTE video I/O type 00h auto-detect, 01h use BIOS, 02h direct writes 4A7h BYTE call transfer digits (0-9) 4A8h WORD voice recorder maximum time in seconds (0-999) (Table 03093) Values for ZFAX printer type: 00h EPSON FX (9 pins) 01h EPSON LQ (24 pins) 02h HP Laser Jet II, letter size 03h HP Laser Jet II, legal size 04h HP Laser Jet II, A4 size 05h HP Laser Jet III, letter size 06h HP Laser Jet III, legal size 07h HP Laser Jet III, A4 size SeeAlso: #03092 (Table 03094) Values for Ring Answer Type: 00h voice system 01h FAX only 02h Data Shell 03h Ring Shell 04h DOS Shell 05h ignore SeeAlso: #03092 (Table 03095) Values for DTMF action: 00h none 01h page operator 02h FaxBack 03h announcement 04h call transfer 05h receive FAX 06h receive data 07h voice mailbox 08h DOS Shell Out 09h Data Shell Out SeeAlso: #03092Top
INT 2F U - WINGO.COM - INSTALLATION CHECK
AX = DB00h
Return: AX = FFFFh if installed
CX = 5749h ('WI') if installed
DX = 4E47h ('NG') if installed
ES = segment of resident code
Program: WINGO.COM is TSR for starting Windows programs from DOS
prompt (together with companion Windows program
WINSTART.EXE) written by Douglas Boling, contributing editor of
PC Magazine
Range: AH=DBh to AH=FFh, selected by scanning for a free multiplex number
SeeAlso: AX=DB01h"WINGO",AX=DB02h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO"
SeeAlso: AX=DB05h"WINGO",AX=DB06h"WINGO"
Top
INT 2F - ZyXEL ZFAX v2+ - UNINSTALL AX = DB01h Return: AX = status 0000h successful 0001h ZFAX is busy 0002h another program resident above ZFAX Note: this function unhooks the vectors taken by the ZFAX TSR if they have not been hooked by other TSRs and releases the TSR's memory ZFAX v2.x crashes the contributor's machine when this function is called SeeAlso: AX=DA01h,AX=DB00h"ZFAX",AX=DB02h"ZFAX"Top
INT 2F U - WINGO.COM - SET CALLBACK FUNCTION POINTER AX = DB01h CX:DX -> new callback function Return: AX = 0000h CX:DX -> end of resident code (stack ???) Desc: the callback function is used for WINGO <-> WINSTART communication SeeAlso: AX=DB00h"WINGO",AX=DB02h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO" SeeAlso: AX=DB05h"WINGO",AX=DB06h"WINGO"Top
INT 2F - ZyXEL ZFAX v2.x - DISABLE AX = DB02h Return: AL = 00h SeeAlso: AX=DA02h,AX=DB00h"ZFAX",AX=DB01h"ZFAX",AX=DB03h"ZFAX"Top
INT 2F U - WINGO.COM - RESET CALLBACK FUNCTION POINTER AX = DB02h Return: AX = 0000h Desc: the callback function is used for WINGO <-> WINSTART communication SeeAlso: AX=DB00h"WINGO",AX=DB01h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO" SeeAlso: AX=DB05h"WINGO",AX=DB06h"WINGO"Top
INT 2F - ZyXEL ZFAX v2.x - ENABLE AX = DB03h Return: AL = 00h SeeAlso: AX=DA03h,AX=DB00h"ZFAX",AX=DB02h"ZFAX"Top
INT 2F U - WINGO.COM - SET ??? FLAG AX = DB03h Return: AX = 0000h SeeAlso: AX=DB00h"WINGO",AX=DB04h"WINGO",AX=DB05h"WINGO",AX=DB06h"WINGO"Top
INT 2F U - WINGO.COM - RESET ??? FLAG AX = DB04h Return: AX = 0000h SeeAlso: AX=DB00h"WINGO",AX=DB03h"WINGO",AX=DB05h"WINGO",AX=DB06h"WINGO"Top
INT 2F U - WINGO.COM - GET ??? FLAG AX = DB05h Return: AX = 0000h DX = unknown flag - 0 or 1 Program: WINGO.COM is TSR for starting Windows programs from DOS prompt (together with companion Windows program WINSTART.EXE) written by Douglas Boling, contributing editor of PC Magazine SeeAlso: AX=DB00h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO"Top
INT 2F U - WINGO.COM - CALL CALLBACK FUNCTION AX = DB06h Return: AX = return value of INT 2F/AX=1685h Note: uses Windows service INT 2F/AX=1685h (SWITCH VMs AND CALLBACK) to call the callback function previously set by AX=DB01h used for WINGO <-> WINSTART communication SeeAlso: AX=1685h, AX=DB00h"WINGO",AX=DB01h"WINGO",AX=DB02h"WINGO", SeeAlso: AX=DB03h"WINGO",AX=DB04h"WINGO",AX=DB05h"WINGO"Top
INT 2F - ZyXEL ZFAX v3+ - EXECUTE ZFAX MAIN MENU AX = DB10h SeeAlso: AX=DB00h"ZFAX",AX=DB11h"ZFAX"Top
INT 2F - ZyXEL ZFAX v3+ - SEND FAX AX = DB11h DS:SI -> filename including path (max 128 characters) DS:BX -> remote FAX number Return: AX = status (see #03096) SeeAlso: AX=DB00h"ZFAX",AX=DB12h,AX=DB13h,AX=DB14h,AX=DB15h,AX=DB20h,AX=DB21h (Table 03096) Values for ZFAX status: 00h OK 01h invalid DOS function 02h file not found 03h path not found 04h no file handle available 05h access denied by DOS 06h invalid handle 07h disk full 10h printer error 11h no graphics font 12h no ZFAX font 20h DCD dropped while sending 21h not ZyXEL modem 22h busy 23h no response from COM port 24h no carrier 25h no dial tone 26h no answer 27h no response 28h failed to send FAX 30h user aborted 40h critical error on disk 50h parameter errorTop
INT 2F - ZyXEL ZFAX v3+ - PRINT FAX AX = DB12h DS:SI -> filename, including path (max 128 characters) Return: AX = status (see #03096) SeeAlso: AX=DB11h,AX=DB13h,AX=DB14hTop
INT 2F - ZyXEL ZFAX v3+ - CONVERT FAX AX = DB13h DS:SI -> source filename, including path (max 128 characters) DS:BX -> destination filename, including path (max 80 characters) CX = destination file format 00h FAX, 01h PCX, 02h TIFF, 03h PRN Return: AX = status (see #03096) SeeAlso: AX=DB11h,AX=DB12h,AX=DB14h,AX=DB22hTop
INT 2F - ZyXEL ZFAX v3+ - VIEW FAX AX = DB14h DS:SI -> source filename, including path (max 128 characters) Return: AX = status (see #03096) SeeAlso: AX=DB11h,AX=DB12h,AX=DB14hTop
INT 2F - ZyXEL ZFAX v4.01 - SEND FAX WITH LOGO AND SIGNATURE AX = DB15h DS:SI -> source filename, including path (max 128 characters) DS:BX -> remote FAX number DS:CX -> Logo filename DS:DX -> Signature filename Return: AX = status (see #03096) SeeAlso: AX=DB00h"ZFAX",AX=DB11hTop
INT 2F - ZyXEL ZFAX v4.01 - QUOTE PREVIOUS STATUS AX = DB16h Return: DX:AX -> previous receive state transaction log (see #03097) BX = type (00h incoming FAX, 01h incoming data, 02h incoming voice) SeeAlso: AX=DB00h"ZFAX",AX=DB11h,AX=DB17h Format of ZFAX transaction log receive state: Offset Size Description (Table 03097) 00h WORD year 02h WORD date 04h WORD time 06h WORD extension number 08h WORD type: 00h incoming FAX, 01h outgoing FAX, 02h voice message 0Ah WORD status: 00h normal, 01h remote delete 0Ch 125 BYTEs filename 89h 24 BYTEs caller ID A1h 20 BYTEs FAX number B5h 20 BYTEs remote FAX ID C9h WORD error code CBh WORD connection direction (00h transmit, 01h receive) CDh BYTE connection time minutes CEh BYTE connection time seconds CFh BYTE ??? D0h WORD connection speed (24, 48, 72, 96, 12, 144) D2h WORD connection page size (A4, B4, A3) D4h WORD connection coding scheme (1-DN, 1-DH, 2-DN, 2-DH) D6h WORD page countTop
INT 2F - ZyXEL ZFAX v4.01 - BEGIN RECEIVING INCOMING CALL AX = DB17h Return: AX = status (0000h successful, 0001h unable to start at this time) SeeAlso: AX=DB00h"ZFAX"Top
INT 2F - ZyXEL ZFAX v4.01 - SCHEDULE CALL AX = DB18h DS:SI -> schedule data (see #03097) Return: AX = status (see #03096) SeeAlso: AX=DB00h"ZFAX"Top
INT 2F - ZyXEL ZFAX v3+ - POLL FAX AX = DB20h DS:SI -> remote FAX number Return: AX = status (see #03096) SeeAlso: AX=DB11h,AX=DB21hTop
INT 2F - ZyXEL ZFAX v3+ - SEND VOICE AX = DB21h DS:SI -> filename including path (max 128 characters) DS:BX -> remote phone number Return: AX = status (see #03096) SeeAlso: AX=DB11h,AX=DB20h,AX=DB22h,AX=DB23h,AX=DB24hTop
INT 2F - ZyXEL ZFAX v3+ - CONVERT VOICE FILE AX = DB22h DS:SI -> source filename, including path (max 128 characters) DS:BX -> destination filename, including path (max 80 characters) CX = destination format 00h two-bit ADPCM, 01h three-bit ADPCM, 02h VOC Return: AX = status (see #03096) SeeAlso: AX=DB13h,AX=DB20h,AX=DB21h,AX=DB23hTop
INT 2F - ZyXEL ZFAX v3+ - RECORD VOICE FILE AX = DB23h DS:SI -> destination filename, including path (max 128 characters) CX = recording channel (0 = telephone line, 1 = microphone/speaker) DX = voice file format 00h CELP, 01h two-bit ADPCM, 02h three-bit ADPCM Return: AX = status (see #03096) SeeAlso: AX=DB21h,AX=DB22h,AX=DB24hTop
INT 2F - ZyXEL ZFAX v3+ - PLAY VOICE FILE AX = DB24h DS:SI -> name of voice file, including path (max 128 characters) CX = playback channel (0 = telephone line, 1 = microphone/speaker) Return: AX = status (see #03096) SeeAlso: AX=DB21h,AX=DB22h,AX=DB24hTop
INT 2F - ZyXEL ZFAX v3+ - ANSWER MODEM WITH VOICE SYSTEM AX = DB25h Return: AX = status (see #03096) SeeAlso: AX=DB21h,AX=DB22h,AX=DB26h,AX=DB27h,AX=DB28hTop
INT 2F - ZyXEL ZFAX v3+ - DIAL PHONE AX = DB26h DS:SI -> remote phone number Return: AX = status (see #03096) SeeAlso: AX=DB25hTop
INT 2F - ZyXEL ZFAX v3+ - RECEIVE FAX - ANSWER MODEM AND SET TO FAX MODE AX = DB27h Return: AX = status (see #03096) SeeAlso: AX=DB25h,AX=DB28hTop
INT 2F - ZyXEL ZFAX v3+ - RECEIVE FAX DATA - ANSWER MODEM IN MULTI-AUDIO MODE AX = DB28h Return: AX = status (see #03096) SeeAlso: AX=DB25h,AX=DB27h,AX=DB41hTop
INT 2F - ZyXEL ZFAX v3+ - INTERNAL TERMINAL AX = DB40h Return: AX = status (see #03096) SeeAlso: AX=DB00hTop
INT 2F - ZyXEL ZFAX v3+ - SEND DATA - DIAL NUMBER AND UPLOAD FILE WITH ZMODEM AX = DB41h DS:SI -> source file name, including path (max 128 characters) DS:BX -> remote data number Return: AX = status (see #03096) SeeAlso: AX=DB00h,AX=DB28hTop
INT 2F - GOLD.COM - INSTALLATION CHECK AX = DC00h Return: AL = state 00h not installed FFh installed Program: GOLD is a TSR by Bob Eager which makes the NumLock key return the code for F1; the purpose is to improve Kermit's VTxxx emulationTop
INT 2F - GOLD.COM - GET STATE AX = DC01h Return: AL = status 00h off 01h on SeeAlso: AX=DC00h,AX=DC02hTop
INT 2F - GOLD.COM - SET STATE AX = DC02h DL = new state 00h off 01h on Return: AL = 00h (OK) SeeAlso: AX=DC01hTop
INT 2F - CappaCom programs - API AH = DDh AL = 00h general installation check Return: AL = FFh if any CappaCom programs are resident AL = FEh get info Return: ES:BX -> TSR info list (see #03098) AL = program identifier BH = function FDh get version Return: BX = version FFh installation check Return: AL = FFh if installed BX = version ES = segment of resident code others vary by program Return: AL = status bit 7 set on error AL = 81h unknown function Note: CappaCom was originally SoftCom but changed its name due to a trademark conflict Index: installation check;SoftCom programs Index: installation check;CappaCom programs Format of CappaCom TSR info list: Offset Size Description (Table 03098) 00h 9 BYTEs blank-padded ASCIZ program name 09h BYTE program ID 0Ah WORD program's PSP segment 0Ch WORD program version (major in high byte) 0Eh DWORD pointer to next item in info list or 0000h:0000h 12h BYTE number of interrupts hooked 13h 5 BYTEs interrupt numbers hooked by program 18h 8 BYTEs reservedTop
INT 2F - MIXFIX.EXE - API
AH = DDh
AL = function
00h installation check
Return: AX = 00DDh if installed
BX = version (BH = major, BL = minor)
41h/61h get From: address
Return: AX = 0001h
ES:BX -> ASCIZ 4d address of mail sender ("1:2/3.4")
49h/69h get To: address
Return: AX = 0001h
ES:BX -> ASCIZ 4d address of recipient ("1:2/3.4")
4Ah/6Ah get subject of mail
Return: AX = 0001h
ES:BX -> ASCIZ subject of handled mail
4Dh/6Dh get mail name
Return: AX = 0001h
ES:BX -> ASCIZ full name of current mail file
4Eh/6Eh get From: field
Return: AX = 0001h
ES:BX -> ASCIZ From: field of mail (mail sender's name)
Program: MIXFIX by "KIV without Co" is a FidoNet mail robot which may execute
other programs for mail handling. The called programs may use the
services described here to retrieve information about the mail being
handled.
Index: installation check;MIXFIX.EXE
Top
INT 2F - xDISK v3.32+ - INSTALLATION CHECK
AH = DDh
BX = 7844h ('xD')
CX = 4953h ('IS')
DX = 4B3Fh ('K?')
AL = desired drive (01h-1Ah) or 00h to check for xDISK on any drive
ES:DI -> 25-byte data buffer (see #03099)
Return: AX = DDFFh if installed (on specified drive if AL nonzero on entry)
BX = 87BBh
DX = B4C0h
ES:DI buffer filled
CX,CF destroyed
SeeAlso: INT 21/AX=4404h"xDISK",INT 21/AX=4405h"xDISK"
Format of xDISK data buffer:
Offset Size Description (Table 03099)
00h DWORD pointer to ASCIZ driver signature "xDISK unit: X"
04h BYTE flag: 01h if disk linked to DOS, 00h if unlinked
05h BYTE flag: 01h if write protected, 00h if not
06h BYTE flag: 01h if root directory full, 00h if not
07h BYTE flag: 01h if free space uncompacted, 00h if compacted
08h BYTE resizing state: 00h not resizable, 01h resized, 80h resizable
09h BYTE flag: 01h inelastic resizable disk, 00h elastic
0Ah 2 BYTEs reserved
0Ch BYTE flag: 01h collapsed disk, 00h not collapsed
0Dh BYTE flag: 01h using all EMS, 00h some EMS free
0Eh BYTE flag: 01h password enabled, 00h disabled
0Fh BYTE flag: 01h password audio feedback, 00h no feedback
10h BYTE flag: 01h password video feedback, 00h no feedback
11h BYTE flag: 01h confirm changes, 00h no confirmation
12h BYTE flag: 01h terse display, 00h verbose display
13h BYTE flag: 01h click speaker on disk access, 00h no click
14h BYTE flag: 01h flash icon on disk access, 00h no icon flash
15h BYTE FAT entry size: 00h 12-bit, FFh 16-bit
16h WORD count of open files in RAM disk
18h BYTE unused
Top
INT 2F U - Novell Netware - RPRINTER, NPRINTER - INSTALLATION CHECK AX = DE00h BL = 00h Return: AL = FFh If Rprinter/Nprinter Installed BX -> Program Segment Prefix N/Rprinter.exeTop
INT 2F - DESQview v2.26+ External Device Interface - INSTALLATION CHECK
AX = DE00h
BX = 4456h ("DV")
CX = 5844h ("XD")
DX = 4931h ("I1")
Return: AL = FFh if installed (even if other registers do not match)
if BX,CX, and DX were as specified on entry,
BX = 4845h ("HE")
CX = 5245h ("RE")
DX = 4456h ("DV")
Range: AH=C0h to AH=FFh, selected by scanning AH=DEh-FFh, then AH=C0h-DDh
Note: the XDI handler should not issue any DOS or BIOS calls, nor should it
issue DESQview API calls other than those allowed from hardware ints
SeeAlso: AX=DE02h,INT 15/AX=5400h
Top
INT 2F - DESQview v2.26+ External Device Interface - DRIVER CUSTOM SUBFUNCTION AX = DE01h BX = driver ID other registers as needed by driver Notes: XDI drivers should pass this call through to previous handler if ID does not match DESQview never calls this functionTop
INT 2F U - Quarterdeck QDPMI.SYS v1.0 - INSTALLATION CHECK
AX = DE01h
BX = 4450h ("DP")
CX = 4D49h ("MI")
DX = 3039h ("09")
Return: AL = FFh if installed
BX = 4D42h ("MB")
CX = 4921h ("I!")
DX = 8F4Fh
ES:DI -> filename of DPMI host overlay
InstallCheck: test for the existence of the character device QDPMI$$$
SeeAlso: INT 2F/AX=1687h,INT 31/AX=0000h
Index: installation check;QDPMI
Top
INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, Ralf Brown's XDI drivers
AX = DE01h
BX = 5242h ("RB")
CX:DX = program identifier
656F7000h ("eop",0) for DVeop
Return: AX = 5242h ("RB") if installed
ES:BX -> data or entry point (see #03100)
CX = version number (CH = major, CL = minor)
(Table 03100)
Call DVeop entry point with:
ES:DI -> callback address or 0000h:0000h to remove callback
Return: AX = status
0000h failed (callback table full or attempted to remove non-
existent callback)
0001h successful
ES:DI -> chaining address
BX,CX,DX destroyed
Notes: the callback function is called with a simulated interrupt when the
DESQview window containing it is closed; it should perform all
necessary cleanup and then perform a FAR jump to the chaining address
or an IRET if the chaining address is 0000h:0000h
if the program wishes to remove itself before the window is closed, it
should call the DVeop entry point with the previously returned
chaining address and ignore the returned chaining address.
Top
INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVTXDI.COM
AX = DE01h
BX = 7474h
CL = function
00h installation check
Return: AL = FFh
01h get process handle
DX = keys on Open Window menu (DL = first, DH = second)
Return: AX = process handle or 0000h if not running
02h (v1.3+) set TMAN handle
DX = TMAN process handle
03h (v1.3+) set open keys to ignore on next CL=01h call
DX = keys on Open Window menu (DL = first, DH = second)
Return: BX = 4F4Bh ("OK")
DL destroyed
Note: DVTXDI is distributed as part of the shareware products DVTree (DOS
shell/DESQview process manager) and DVTMAN by Mike Weaver
Index: installation check;DVTXDI
Top
INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVSIXDI.COM AX = DE01h BX = 7575h CX = function 0000h installation check Return: AX = 00FFh if installed 0001h turn on notification (currently unused) Return: AX = 0001h 0002h turn off notification (currently unused) Return: AX = 0001h 0003h get process information Return: AX = status 0000h failed 0001h successful BX = last instantaneous time slice in 1/100s (v1.10) in 1/18s (v1.11+) CX = number of processes DX = number of "(starting)" records (v2.00+) SI = number of records in process info array (v2.00+) (always 15 for v1.x) ES:DI -> process info array (see #03101,#03102) 0004h get version Return: AH = major version AL = minor version 0005h (v1.10+) get time since DESQview started Return: DX:AX = 1/100s since DV start (v1.10) DX:AX = 1/18s since DV start (v1.11+) 0006h (v1.10+) get number of task switches Return: DX:AX = total task switches CX = task switches in last instantaneous interval Notes: DVSIXDI is part of the DVSI (DESQview System Information) package by Daniel J. Bodoh for v1.00, function 0003h allocates common memory, which the caller must deallocate after reading the process information; only the currently used records are placed in the buffer for v1.10+, function 0003h merely returns a pointer to the internal array of process information; the caller should make a copy of the array while inside a critical section (see INT 15/AX=101Bh). Only those records with bit 7 of the first byte set are valid. Index: installation check;DVSIXDI Format of DVSIXDI v1.00 information for one process: Offset Size Description (Table 03101) 00h BYTE flags bit 7: process slot is valid 01h WORD offset into DESQVIEW.DVO of program's record if started from Open Windows menu, else undefined 03h WORD Switch Windows window number 05h WORD segment of process handle 07h WORD number of tasks owned by process 09h WORD mapping context of process (see #00416 at INT 15/AX=1016h) 0Bh DWORD hook for other programs Format of DVSIXDI v1.10-v2.00 information for one process: Offset Size Description (Table 03102) 00h BYTE process flags (see #03103) 01h WORD Open Window keys 03h WORD Switch Windows number 05h WORD segment of process handle 07h WORD number of tasks for process 09h WORD process mapping context 0Bh DWORD time process started (relative to start of DESQview) 0Fh DWORD time process last got CPU (relative to start of DESQview) 13h DWORD time process last gave up CPU (relative to start of DESQview) 17h DWORD total CPU time since process started 1Bh DWORD CPU time at start of current instantaneous interval 1Fh DWORD CPU time in current instantaneous interval 23h DWORD hook for other programs Note: all times are in 1/100s for v1.10, in 1/18s for v1.11+ Bitfields for DVSIXDI process flags: Bit(s) Description (Table 03103) 7 valid record 6 (v2.00+) record is allocated; if bit 7 clear, process is "(starting)" and only offsets 01h and 09h are valid 5 (v2.00+) this app currently owns the CPU 4 reserved (0) 3 DESQview system task 2 reserved (0) 1 task has keyboard (currently unused) 0 task swapped out (currently unused)Top
INT 2F U - DESQview v2.26+ XDI - DVXMS.DVR - ???
AX = DE01h
BX = FFFEh
CX = 4D47h ("MG")
DX = 0052h (0,"R")
Return: AL = FFh
DX = 584Dh
Top
INT 2F C - DESQview v2.26+ External Dev Interface - DV INITIALIZATION COMPLETE AX = DE02h BX = mapping context of DESQview DX = handle of DESQview system task Note: driver should pass this call to previous handler after doing its work SeeAlso: AX=DE03h,AX=DE0Fh,INT 15/AX=5400hTop
INT 2F C - DESQview v2.26+ External Dev Interface - DV TERMINATION AX = DE03h BX = mapping context of DESQview DX = handle of DESQview system task Notes: driver should pass this call to previous handler before doing its work DESQview makes this call when it is exiting, but before unhooking any interrupt vectors SeeAlso: AX=DE02h,AX=DE0Fh,INT 15/AX=5407hTop
INT 2F C - DESQview v2.26+ External Dev Interface - ADD PROCESS AX = DE04h BX = mapping context of new process (see #00416 at INT 15/AX=1016h) DX = handle of process Return: nothing Notes: XMS XDI handler (installed by default) allocates a 22-byte record (see #03104) from "common" memory to control access to XMS memory all DOS, BIOS, and DV API calls are valid in handler driver should pass this call to previous handler after processing it SeeAlso: AX=DE05h,AX=DE06h,INT 15/AX=5401h Format of XMS XDI structure: Offset Size Description (Table 03104) 00h DWORD pointer to 10-byte record??? 04h DWORD pointer to next XMS XDI structure 08h WORD mapping context 0Ah BYTE ??? 0Bh 5 BYTEs XMS entry point to return for INT 2F/AX=4310h"XMS" (FAR jump to next field) 10h 6 BYTEs FAR handler for XMS driver entry point (consists of a FAR CALL followed by RETF)Top
INT 2F C - DESQview v2.26+ External Dev Interface - REMOVE PROCESS AX = DE05h BX = mapping context of process (see #00416 at INT 15/AX=1016h) DX = handle of last task in process Return: nothing Notes: XMS XDI handler releases the structure allocated by AX=DE04h driver should pass this call to previous handler before processing it all DOS, BIOS, and DV API calls except those generating a task switch are valid in handler SeeAlso: AX=DE04h,AX=DE07h,INT 15/AX=5402hTop
INT 2F C - DESQview v2.26+ External Dev Interface - CREATE TASK AX = DE06h BX = mapping context of process containing task DX = handle of new task Notes: driver should pass this call to previous handler after processing it all DOS, BIOS, and DV API calls are valid in handlerTop
INT 2F C - DESQview v2.26+ External Dev Interface - TERMINATE TASK AX = DE07h BX = mapping context of process containing task DX = handle of task Notes: driver should pass this call to previous handler before processing it all DOS, BIOS, and DV API calls except those generating a task switch are valid in handler SeeAlso: AX=DE04h,AX=DE06h,AX=DE10hTop
INT 2F C - DESQview v2.26+ External Dev Interface - SAVE STATE AX = DE08h BX = mapping context of task being switched from (see #00416 at INT 15/AX=1016h) DX = handle of task being switched from Notes: invoked prior to task swap, interrupts, etc driver should pass this call to previous handler after processing it SeeAlso: AX=DE09h,INT 15/AX=5403h,INT 15/AX=DE27hTop
INT 2F C - DESQview v2.26+ External Dev Interface - RESTORE STATE AX = DE09h BX = mapping context of task being switched to (see #00416 at INT 15/AX=1016h) DX = handle of task being switched to Notes: state is restored except for interrupts driver should pass this call to previous handler before processing it SeeAlso: AX=DE08h,INT 15/AX=5404h,INT 15/AX=DE27hTop
INT 2F C - DESQview v2.26+ External Dev Interface - CHANGE KEYBOARD FOCUS AX = DE0Ah BX = mapping context of task receiving focus DX = handle of running task Notes: driver should pass this call to previous handler before processing it this call often occurs inside a keyboard interrupt DV 2.42 does not provide this call to XDI handlers running inside a window; instead, it directly calls the INT 2F handler which was active at the time DV started SeeAlso: INT 15/AX=DE26h,INT 15/AX=DE2FhTop
INT 2F C - DESQview v2.26+ External Dev Interface - DVP PROCESSING COMPLETE AX = DE0Bh BX = mapping context of DESQview system task CX = number of system memory paragraphs required for the use of all XDI drivers (DV will add this to system memory in DVP buffer) DX = handle of DESQview system task SI = mapping context of new process if it starts ES:DI -> DVP buffer Return: CX incremented as needed Notes: once DV invokes this function, the DVP buffer contents may be changed driver should pass this call to previous handler before processing itTop
INT 2F C - DESQview v2.26+ External Dev Interface - SWAP OUT PROCESS AX = DE0Ch BX = mapping context of task being swapped out (see #00416 at INT 15/AX=1016h) DX = handle of DESQview system task Note: driver should pass this call to previous handler after processing itTop
INT 2F C - DESQview v2.26+ External Dev Interface - SWAP IN PROCESS AX = DE0Dh BX = mapping context of process just swapped in (see #00416 at INT 15/AX=1016h) DX = handle of DESQview system task Note: driver should pass this call to previous handler before processing itTop
INT 2F C - DESQview v2.26+ External Dev Interface - DVP START FAILED AX = DE0Eh BX = mapping context of DESQview system task DX = handle of DESQview system task SI = mapping context of failed process (same as for call to AX=DE0Bh) Note: driver should pass this call to previous handler after processing itTop
INT 2F C - DESQview v2.50+ External Dev Interface - INITIALIZE DV AX = DE0Fh Note: DESQview 2.50+ calls this function just before it completes its initialization. At the time of the call, DESQview has not yet changed any interrupt vectors SeeAlso: AX=DE02hTop
INT 2F C - DESQview v2.50+ External Dev Interface - FREE TASK AX = DE10h BX = mapping context of process (see #00416 at INT 15/AX=1016h) DX = task handle of process Note: DESQview 2.50+ calls this function before it frees the task; it is similar to AX=DE07h but allows the XDI handler to make calls which cause context switches SeeAlso: AX=DE06h,AX=DE07hTop
INT 2F - HyperWare programs - INSTALLATION CHECK
AX = DF00h
BX = product code (see #03105)
CX = 0000h
DX = 0000h
Return: AL = status
00h not installed
FFh multiplex number in use
CX = 5948h ('YH') if selected product installed
---HyperDisk---
BX = code segment of resident portion
DX = HyperDisk local data version
Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
Range: AH=C0h to AH=FFh, selected by scanning AH=DFh, then AH=C0h-FFh
SeeAlso: INT 13/AX=8EEDh
Index: installation check;HyperDisk|installation check;HyperStb
Index: installation check;HyperKey|installation check;HyperScreen
Index: HyperDisk;installation check|HyperStb;installation check
Index: HyperKey;installation check|HyperScreen;installation check
(Table 03105)
Values for HyperWare product code:
4248h ('BH') HyperStb
4448h ('DH') HyperDisk v4.20+
4B48h ('KH') HyperKey
5348h ('SH') HyperScreen
Top
INT 2F U - Quarterdeck TELTSR.COM - INSTALLATION CHECK
AX = DF00h
BX = 5445h ('TE')
CX = 4C54h ('LT')
DX = 5352h ('SR')
Return: BX = 5454h ('TT') if installed
CX = 494Eh ('IN') if installed
DX = 5454h ('ST') if installed
Program: TELTSR is a Telnet TSR included with Quarterdeck's DESQview/X v2.00
which provides an INT 14h interface to the network
Range: AH=DEh to AH=FFh and AH=C0h to AH=DDh, selected by scanning
SeeAlso: AX=DF01h"TELTSR",AX=DF02h"TELTSR",INT 14/AH=56h
Top
INT 2F U - MSG.COM - INSTALLATION CHECK AX = DF01h BX = 0000h Return: AX = FDFFh if installed BX = segment of resident code Program: MSG.COM is a TSR for intercepting incoming Novell broadcast messages written by Gary Dobbins (Dobbins@Arizona.Edu)Top
INT 2F - HyperDisk v4.50+ - GET CURRENT CACHE STATE
AX = DF01h
BX = 4448h ('DH')
Return: AX = 0000h if function supported
BX = number of cache buffers in use
CX = number of cache buffers which have been modified
DL = caching flags (see #03106)
Range: AH=C0h to AH=FFh, selected by scanning AH=DFh, then AH=C0h-FFh
SeeAlso: AX=DF00h,AX=DF02h
Bitfields for HyperDisk caching flags:
Bit(s) Description (Table 03106)
0 staged writes enabled for floppy disks
1 staged writes enabled for hard disks
2 writes verified on floppy disks
3 writes verified on hard disks
4 reserved (0)
5 reserved (0)
6 floppy caching enabled
7 all caching functions enabled
Top
INT 2F U - Quarterdeck TELTSR.COM - CLOSE CONNECTION AX = DF01h Return: nothing??? Note: invokes the DESQview/X socket API (see INT 15/AX=DE2Eh) function 0006h to close the socket corresponding to the file handle set with AX=DF02h; NOP if no file handle was ever set SeeAlso: AX=DF00h"TELTSR",AX=DF02h"TELTSR"Top
INT 2F - HyperDisk v4.50+ - SET CACHE STATE
AX = DF02h
BX = 4448h ('DH')
DL = new caching flags (see #03106)
Return: AX = 0000h if supported
BX = number of cache buffers in use
CX = number of cache buffers which have been modified
DL = previous caching flags (see #03106)
Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
Range: AH=C0h to AH=FFh, selected by scanning AH=DFh, then AH=C0h-FFh
SeeAlso: AX=DF00h,AX=DF01h
Top
INT 2F U - Quarterdeck TELTSR.COM - OPEN CONNECTION AX = DF02h BX = file handle for connection's socket Return: AX = status 0000h successful FFFFh no more room in TELTSR's JFT Program: TELTSR is a Telnet TSR included with Quarterdeck's DESQview/X v2.00 Notes: the indicated file handle becomes owned by TELTSR, and is closed in the caller's JFT multiple calls to this function will override the previous assignment without closing the previous file; use AX=DF01h before further calls SeeAlso: AX=DF00h"TELTSR",AX=DF01h"TELTSR"Top
INT 2F - SETDRVER.COM v2.10+ - INSTALLATION CHECK
AX = E000h
Return: AX = 4A52h ("JR") if present
Program: SETDRVER is a public domain TSR by Jacob Rieper which sets the
apparent DOS version analogously to MS-DOS SETVER
Notes: this installation check differs from the usual one of returning AL=FFh
the SETDRVER API is fully emulated by Matthias Paul's FREEVER
SeeAlso: AX=E000h/DX=4D50h,AX=E001h,INT 21/AH=52h
Top
INT 2F - KAOSHIDE - INSTALLATION CHECK
AX = E000h
Return: AL = FFh if installed
Program: KAOSHIDE ('Hidden Kaos') is a PD joke TSR which randomly capitalizes
alphabetic keys, written by Philip Maland. Although not a virus,
v2.0 uses some viral-like techniques to hide itself from
memory-reports by reducing DOS memory size.
Top
INT 2F - FREEVER v1.0+ - INSTALLATION CHECK
AX = E000h
DX = 4D50h ('MP')
Return: AL = FFh if installed
AH = AMIS INT 2Dh multiplex ID
CX = FREEVER version (CH=major, CL=minor)
DX:DI -> AMIS-compliant signature (see #02569)
(vendor ID is "M. Paul ", program name is "FREEVER ")
Program: FREEVER is an AMIS-conformant freeware DOS version-faking TSR similar
to SETVER for any DOS-compatible OS, written by Matthias Paul
Note: FREEVER emulates INT 21/AH=30h, INT 21/AX=3306h, INT 21/AX=4412h,
INT 21/AX=4452h, and SETDRVER's API on INT 2F/AX=E00xh, as well as
providing an AMIS API on INT 2Dh
SeeAlso: AX=E000h"SETDRVER",INT 21/AH=30h,INT 21/AX=3306h,INT 21/AX=4452h
Top
INT 2F - StuffIt v3.21+ - INSTALLATION CHECK
AX = E000h
DX = 5354h ("ST")
Return: AL = FFh if installed
BX = version (BH = major, BL = BCD minor)
DX = segment of resident code
Program: StuffIt is a freeware delayed keyboard stuffer by Terje Mathisen
Top
INT 2F - SETDRVER.COM v2.10+ - GET SETDRVER VERSION AX = E001h Return: AH = major version AL = minor version Note: the SETDRVER API is fully emulated by Matthias Paul's FREEVER, which returns version 2.10 for this call; use AX=E000h/DX=45D0h to get FREEVER's version number SeeAlso: AX=E000h,AX=E000h/DX=45D0hTop
INT 2F - SETDRVER.COM v2.10+ - GET ORIGINAL DOS VERSION INFO AX = E002h Return: AL = FFh if successful BH = major DOS version BL = minor DOS version CH = DOS version flag CL = OEM number DH = major DR DOS version number (FFh if unknown) DL = minor DR DOS version number (FFh if unknown) SeeAlso: AX=E003h,AX=E007h,INT 21/AH=30hTop
INT 2F - SETDRVER.COM v2.10+ - RESET INTERNAL VARIABLES AX = E003h BH = new major DOS version BL = new minor DOS version CH = new DOS version flag CL = new DOS revision number DH = new OEM number SeeAlso: AX=E002hTop
INT 2F - SETDRVER.COM v2.10+ - ENABLE TSR AX = E004h Return: AL = FFh if successful SeeAlso: AX=E000h,AX=E005h,AX=E006hTop
INT 2F - SETDRVER.COM v2.10+ - DISABLE TSR AX = E005h Return: AL = FFh if successful SeeAlso: AX=E000h,AX=E004h,AX=E006hTop
INT 2F - SETDRVER.COM v2.10+ - GET TSR STATUS AX = E006h Return: AL = FFh if successful BL = status 01h resident and active 02h resident and inactiveTop
INT 2F - SETDRVER.COM v2.10+ - GET TaskMAX STATUS AT INSTALLATION AX = E007h Return: AL = FFh if successful BL = status 00h if TaskMAX not loaded before SETDRVER FFh if TaskMAX was loaded before SETDRVER SeeAlso: AX=E003hTop
INT 2F - SETDRVER.COM - RESERVED FOR FUTURE USE AH = E0h AL = 08h-10hTop
INT 2F - Phantom2 v1.1+ - INSTALLATION CHECK AX = E100h Return: AX = 0001h if installed DS:SI -> ASCIZ hotkey name DS:DI -> ASCIZ recording filename Program: Phantom of the Keyboard II is a shareware keystroke recorder/replayer by P2 Enterprises SeeAlso: AX=E101h,AX=E102h,AX=E103h,AX=E300h Index: hotkeys;Phantom2Top
INT 2F - Phantom2 v1.1+ - FUNCTION REQUEST AX = E101h BX = function mask (see #03107) CX = code for hotkey (as returned by INT 16/AH=00h) if BX bit 6 set DS:DX -> ASCIZ filespec if BX bit 7 set SeeAlso: AX=E100h Index: hotkeys;Phantom2 Bitfields for Phantom2 function mask: Bit(s) Description (Table 03107) 0 record 1 play 2 QuickPlay 3 loop 4 mode display toggle 5 sound toggle 6 set hotkey 7 set filespecTop
INT 2F - Phantom2 v1.1+ - UNINSTALL AX = E102h Return: AX = status 0001h removal successful 0002h not installed as TSR FFFFh disabled but not removed SeeAlso: AX=E100hTop
INT 2F - Phantom2 v2.8 - SET ??? FLAG AX = E103h Return: AX = 0001h SeeAlso: AX=E100hTop
INT 2F - SecureDevice - LOGIN TO DRIVE AX = E200h DL = drive number (0 = A:) DS:SI -> 104-byte key Return: AL = status 00h unable to determine key's validity 01h key is valid FFh key is invalid Program: SecureDevice is a copylefted device driver by Max Loewenthal and Arthur Helwig which turns one or more disk files into encrypted logical drives SeeAlso: AX=E201h,AX=E203h,AX=E209hTop
INT 2F - SecureDevice - GET INFORMATION AX = E201h DX = driver index (0000h = first loaded) Return: AL = number of volumes handled by driver DL = drive number of first volume (00h = A:) SeeAlso: AX=E200h,AX=E203h,AX=E209hTop
INT 2F - SecureDevice - DESTROY PASSWORD (LOGOUT FROM DRIVE) AX = E203h DL = drive number (00h = A:) or FFh for all drives Return: nothing SeeAlso: AX=E200h,AX=E209hTop
INT 2F - SecureDevice - INSTALLATION CHECK AX = E209h DX = 0000h Return: AX = 1DEAh if installed DX = number of drivers installedTop
INT 2F - ANARKEY.COM - INSTALLATION CHECK AX = E300h Return: AL = state 00h not installed FEh if installed but suspended (v3.0+) FFh installed Program: ANARKEY.COM is a commandline recall program by Steven Calwas Range: AH=C0h to AH=FFh, selected by commandline switch SeeAlso: AX=E100h,AX=E301h,AX=E302h,AX=E303h,AX=E304h,AX=E305h,AX=E306h SeeAlso: AX=E307h,INT 66"Newkey"Top
INT 2F - Blank - INSTALLATION CHECK AX = E300h Return: AL = FFh if installed ES = resident code segment Program: Blank is a shareware screen blanker by Yonah Schmeidler Note: AH=E3h is the default, which may be reconfigured by the installation program in the registered version SeeAlso: AH=93h,AX=C050h,INT 14/AX=AA01h Index: screen saver;BlankTop
INT 2F U - ANARKEY.COM v2+ - GET ???
AX = E301h
Return: DX:BX -> ??? (see #03108,#03109)
SeeAlso: AX=E300h
Format of returned data structure for ANARKEY v2.0:
Offset Size Description (Table 03108)
-7 7 BYTEs signature ('ANARKEY')
00h WORD ??? (I see 0001h in v2.0)
02h WORD ??? (I see 0001h in v2.0)
04h WORD ??? (I see 0 in v2.0)
06h WORD PSP segment of next program loaded
Format of returned data structure for ANARKEY v3+:
Offset Size Description (Table 03109)
-1 BYTE multiplex number
00h WORD ??? (I see 0001h in v3.0-4.0)
02h WORD ??? (I see 0001h in v3.0-4.0)
04h BYTE ??? (I see 0 in v3.0-4.0)
05h WORD PSP segment of next program loaded
Top
INT 2F U - ANARKEY.COM v3+ - ??? AX = E302h BL = ??? Return: ??? SeeAlso: AX=E300hTop
INT 2F U - ANARKEY.COM v3+ - ANARKMD API AX = E303h BL = function 01h toggle insert mode 02h display contents of history buffer 03h write history buffer to file ES:DX -> file name 04h clear history buffer 05h undefine all aliases 06h show aliases 07h list programs using Unix switchar 08h jump to bottom of history buffer 09h (v4.0) add string to history buffer ES:DX -> ASCIZ string 0Ah (v4.0) ??? ES:DX -> ??? 0Bh (v4.0) copy string to edit buffer for use as next input line ES:DX -> ASCIZ string 0Ch (v4.0) ??? 0Dh (v4.0) copy ??? to ??? 0Eh (v4.0) ??? 0Fh (v4.0) ??? 10h (v4.0) set ??? flag 11h (v4.0) display error message about running in EMS under Windows Return: ??? SeeAlso: AX=E300hTop
INT 2F U - ANARKEY.COM v2+ - ??? AX = E304h BL = ??? Return: ??? SeeAlso: AX=E300hTop
INT 2F U - ANARKEY.COM v3+ - ENABLE/SUSPEND ANARKEY AX = E305h BL = new state 01h suspended 00h enabled SeeAlso: AX=E300hTop
INT 2F U - ANARKEY.COM v4.0 - GET ??? AX = E306h Return: AX = ??? SeeAlso: AX=E300hTop
INT 2F U - ANARKEY.COM v4.0 - GET ??? AX = E307h Return: AX = ??? BL = ??? SeeAlso: AX=E300hTop
INT 2F - INT16.COM - INSTALLATION CHECK AX = E337h Return: AX = 0013h if installed Program: INT16.COM is an INT16 keyboard BIOS replacement for INT 16/AH=00h-02h,10h-12h (based on K3) written by Martin Gerdes and published in c't 05/1990. SeeAlso: AX=ED58hTop
INT 2F - NDOS - API AX = E44Dh Program: NDOS is a version of 4DOS licensed to Symantec for inclusion in the Norton Utilities Note: as NDOS is a licensed version of 4DOS v3.03, the API is identical to that for 4DOS, except that AH=E4h instead of D4h and the installation check returns AX=44EEh instead of AX=44DDh SeeAlso: AX=D44Dh,AX=E44EhTop
INT 2F C - NDOS - AWAITING USER INPUT AX = E44Eh BX = condition 0000h NDOS is ready to display prompt 0001h NDOS has displayed the prompt, about to accept user input Return: handler must preserve SI, DI, BP, SP, DS, ES, and SS SeeAlso: AX=E44DhTop
INT 2F - NDOS v4.0+ - KSTACK.COM - INSTALLATION CHECK AX = E44Fh BX = 0000h Return: AX = 44EEh if installed Program: NDOS is a version of 4DOS licensed to Symantec for inclusion in the Norton Utilities Note: this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+, which emulate the 4DOS and NDOS keystack SeeAlso: AX=D44Fh/BX=0000h,AX=E44Fh/BX=0001hTop
INT 2F - NDOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK AX = E44Fh BX = 0001h CX = number of keystrokes (01h-FFh) DS:DX -> keystroke list (one word per keystroke) Return: AX = status 0000h successful nonzero failed BX,CX,DX destroyed Notes: the keystrokes are the exact values to return from subsequent calls to INT 16 with AH=00h,01h,10h, or 11h, with the following exceptions: 0000h causes subfunctions 01h and 11h to indicate an empty keyboard buffer FFFFh is followed by a word indicating the number of clock ticks to delay before the next faked keystroke v4.00 KSTACK overwrites any unread keystrokes from the previous invocation, and does not range-check CX; it will overwrite memory following the resident portion if CX is greater than 100h. this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+, which emulate the 4DOS and NDOS keystack SeeAlso: AX=E44Fh/BX=0000h,INT 16/AH=00h,INT 21/AX=4403h"DOS"Top
INT 2F - Virtual 486 - INSTALLATION CHECK AX = E600h CL = 30h BX = C0DEh Return: BX = DEC0h if installed Program: Virtual 486 is a 80486 CPU emulator for an 80386 by Solar DesignerTop
INT 2F - Multiplex - ??? - INSTALLATION CHECK???
AX = E700h
BX = 4158h ("AX")
CX = 4953h ("IS")
DX = 4845h ("HE")
Return: AL = FFh if installed
BX = 4C4Fh ("LO") if ??? installed
CX = 4F4Bh ("OK")
DX = 4F55h ("OU")
ES:DI -> ???
Range: AH=C0h to AH=FFh, selected by scanning AH=E7-FFh, then AH=C0h-E6h
Note: called by QDPMI when its Real to Protected Mode Switch Entry Point
is called
Top
INT 2F - CTDEMN - INSTALLATION CHECK
AX = E77Eh
BX = 0000h
CX = 4F4Dh ('OM')
DX = 5453h ('TS')
Return: AX = 7EE7h if installed
BX = resident code segment
CX = 6F6Dh ('om')
DX = 7473h ('ts')
Program: CTDEMN is a file daemon TSR by Simultan AG
Top
INT 2F - Phar Lap DOS EXTENDERS - INSTALLATION CHECK
AX = ED00h
BL = DOS extender ID (see #03110)
Return: AL = status
00h not installed
FFh installed
SI = 5048h ("PH")
DI = 4152h ("AR")
CH = major version number
CL = minor version number
DX = flags
bit 0: running under DPMI
bit 1: running under Phar Lap VMM
if running under DPMI:
BX = DPMI version (BH = major, BL = minor)
SeeAlso: AH=A1h,AX=F100h,AX=FBA1h
(Table 03110)
Values for Phar Lap DOS extender ID:
01h 286dosx v1.3+ (Software Development Kit)
02h 286dosx v1.3+ (Run-Time Kit)
03h 386dosx v4.0+ (SDK)
04h 386dosx v4.0+ (RTK)
Top
INT 2F R - Phar Lap 386/DOS-Extender v4.1 - GET EXTENDER ENTRY POINT AX = ED03h CX = real-mode code segment DX = real-mode data segment Return: CF clear if successful CX = protected-mode code segment selector DX = protected-mode data segment selector ES:DI -> real-mode entry point for calling protected-mode functions (see INT 21/AX=250Dh) CF set on error AX = error code 0008h unable to allocate LDT descriptorsTop
INT 2F - Pharlap DOS Extender - ??? AX = ED10h BL = 05h ES:SI -> ??? structure Return: AX = ??? SI = ??? DI = ??? SeeAlso: AX=ED00h,AX=ED11hTop
INT 2F - Pharlap DOS Extender - FATAL EXIT TO REAL MODE ??? AX = ED11h BL = 05h CX = ??? DX = ??? ES:SI -> ??? structure SS:SP = new stack ??? Return: ??? Note: called immediately prior to terminating program with INT 21/AX=4CFFh SeeAlso: AX=ED00h,AX=ED10hTop
INT 2F U - K5.COM - INSTALLATION CHECK AX = ED58h Return: AX = 000Dh if installed ES = resident code segment BX = ??? (9999h) ??? Program: K5 is an extended keyboard driver by Martin Gerdes, based on his K3 SeeAlso: AX=E337h,INT 16/AX=AF20hTop
INT 2F - Phar Lap 286|DOS Extender Lite v2.5 - ???
AX = ED80h
BL = DOS extender ID (see #03110)
SI = 5048h ("PH")
DI = 4152h ("AR")
???
Return: ???
Top
INT 2F - Novell DOS 7+ - SECURITY.BIN - INSTALLATION CHECK
AX = EDC8h ('EDC' = Novell European Development Centre)
BX = 0000h
CX = 0000h
DX = 1234h
Return: ???
Note: called by Novell DOS 7 LOCK command during installation
(Table 04107)
Call Novell DOS SECURITY.BIN API with:
AX??? = function
0000h get status
0001h authenticate password hash
0002h get / change encrypted master key password???
0003h ??? Set encrypted master key password
0004h ??? Get logged-in user ID
0005h ??? Set logged-in user ID
0006h Get device restriction mask
0007h Set device restriction mask
0008h Disable PNW DB access
0009h Enable PNW DB access
000Ah Get user name
000Bh Set user name
000Ch Change user password hash
000Dh Get last function
000Eh Get Encoded ASCII password
000Fh Set Encoded ASCII password
0010h Get user seed
0011h Set user seed
!!! more info to follow
Top
INT 2F - GRIDLOC.EXE - INSTALLATION CHECK AX = EE00h Return: AL = FFh if installed Program: GRIDLOC is a PC security program by Intelligent Security Systems, Inc. SeeAlso: INT 21/AH=40h"NB.SYS"Top
INT 2F - XVIEW - INSTALLATION CHECK AX = EE00h Return: AX = 00FFh if installed Program: XVIEW is a hypertext viewer by Flambeaux Software, Inc.Top
INT 2F - WEB v4.02 - INSTALLATION CHECK AX = EE00h Return: AL = status 00h not installed FFh installed Program: WEB is an IPX-based peer-to-peer network by Webcorp. SeeAlso: AH=EEh"WEB",AX=EEF0hTop
INT 2F - XVIEW - POP UP GIVING TOPIC SEARCH KEYWORD AX = EE01h DS:DX -> ASCIZ string containing case-insensitive keyword to look up Return: AX = status (see #03111) Note: the specified keyword should be a hyperlink in the _IndexPage of some database; the current database is searched first SeeAlso: AX=EE00h"XVIEW",AX=EE02h,AX=EE03h,AX=EE04h,AX=EE06h (Table 03111) Values for XVIEW function status: 0000h successful 00F1h unknown subfunction 00F2h unable to pop upTop
INT 2F - XVIEW - POP UP GIVING A PAGE NUMBER AX = EE02h DX = physical page number or anchor page number (see #03112) Return: AX = status (see #03111) Note: physical page numbers are assigned by the hypertext compiler, and will change if a page is inserted in the middle SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE05h,AX=EE06h (Table 03112) Values for XVIEW anchor page number: FFEAh _Credits FFECh _SearchTopics FFEDh _SearchText FFF0h _ManualList FFF5h _HelpOnHelp FFF8h _HomePage FFF9h _IndexPageTop
INT 2F - XVIEW - POP UP GIVING FILENAME AND SEARCH TOPIC OR PAGE NUMBER AX = EE03h DS:DX -> data packet (see #03113) Return: AX = status (see #03111) SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE02h,AX=EE06h Format of XVIEW data packet: Offset Size Description (Table 03113) 00h DWORD -> ASCIZ database filespec (0000h:0000h for current database) 04h DWORD -> ASCIZ text to look up or 0000h:0000h 08h WORD page number (0000h if keyword used) 0Ah 6 BYTEs reservedTop
INT 2F - XVIEW - POP UP AND READ SCREEN FOR SEARCH TOPIC KEYWORD AX = EE04h Return: AX = status (see #03111) Note: equivalent to the action taken when the user presses the Alt-L hotkey SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE03h,AX=EE06hTop
INT 2F - XVIEW - POP UP TO MOST-RECENTLY VIEWED PAGE AX = EE05h Return: AX = status (see #03111) Note: equivalent to the action taken when the user presses the Alt-H hotkey SeeAlso: AX=EE00h"XVIEW",AX=EE02h,AX=EE06hTop
INT 2F - XVIEW - WAIT FOR POP-DOWN AND GET EXIT CODE AX = EE06h Return: AX = status (see also AX=EE01h) 0001h specified filename is not an xText database 0002h no databases found 0003h bad data in file 0004h memory shortage 0005h unable to open the requested file 0007h invalid page number for file Note: although this call is not required, the exit code can alert the caller to problems; if the call is not made, the program should enforce a delay of about 1/2 second to allow the viewer to pop up, and should not get keyboard input or attempt disk accesses during the delay SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE02h,AX=EE03h,AX=EE04h,AX=EE05hTop
INT 2F - WEB v4.02 - WEB MODULE INSTALLATION CHECK AH = EEh AL = module ID (see #03114) Return: AX = 0000h if installed ES:DI -> far entry point for module-specific API calls (see #03115,#03116,#03117,#03118,#03119) Program: WEB is an IPX-based peer-to-peer network by Webcorp. SeeAlso: AX=EE00h"WEB" (Table 03114) Values for WEB module ID: 10h server module (SERVER.EXE) 20h client module (CLIENT.EXE) 30h mail module (MAIL.EXE) 40h spooler (PCSPOOL.EXE) 50h kernel module (KERNEL.EXE) 60h SAP module (KERNEL.EXE) 70h resident station manager (SM.EXE) 90h router module (ROUTER.EXE) (Table 03115) Call server module entry point with: BX = function 0000h remove server module Return: AX = status (0000h if successful, else WEB error code) 0001h create SYSINFO file Note: the SYSINFO file is used by the station manager when displaying info for a particular station 0002h get server object table Return: CX = number of server objects ES:DI -> server object table Note: server objects include drives and devices that the server module controls 0003h get server variables Return: ES:DI -> server variables (Table 03116) Call client module entry point with: BX = function 0000h remove client module Return: AX = status (0000h if successful, else WEB error code) 0001h decrement client-only flag 0002h increment client-only flag 0005h set device capture Note: decrements DeviceOutput flag, telling the spooler that it may trap device output again 0006h clear device capture Note: increments DeviceOutput flag, telling the spooler that it should not trap device output (this is used internally by the spooler to prevent it from trapping its own output) 0007h get client debug pointer Return: ES:DI -> client debug data structure (see #03120) 0008h get root drive Return: AL = WEB startup drive 0009h get maximum possible drive/device redirections Return: AL = maximum drive redirections CH = maximum LPTx redirections CL = maximum COMx redirections 000Ah suspend client Return: AX = previous value of Suspend flag 000Bh resume client Return: AX = previous value of Suspend flag 000Ch get instance data CX = maximum number of structures in array ES:DI -> buffer for array of WIN_INSTANCE_DATA structures (see #03121) Return: CX = number of structures actually returned Note: used internally by WEB4WIN (Table 03117) Call mail module entry point with: BX = function 0000h remove mail module Return: AX = status (0000h successful, else WEB error code) 0001h set mail poll Note: schedules the WEB mail module 0002h set mail notify Note: sets the Notify flag, which determines whether the user will be notified when mail is received 0003h clear mail notify Note: clears the Notify flag, which determines whether the user will be notified when mail is received 0004h check whether new mail has arrived Return: AL = new mail status 00h no new mail since last call else new mail has arrived Note: also clears the new-mail flag after retrieving it 0005h send notify ES:DI -> name of WEB user to be notified 0006h get post office Return: ES:DI -> full network path of Post Office subdirectory (Table 03118) Call spooler entry point with: BX = function 0000h remove PCSpool module Return: AX = status (0000h successful, else WEB error code) 0001h set spooler poll Note: schedules the WEB spooler 0002h check spooler changed Return: AX = 0000h Note: this call is a NOP in current versions of WEB (Table 03119) Call kernel entry point with: BX = function 0000h remove kernel module Return: AX = status (0000h successful, else WEB error code) 0001h set kernel ^S filter DL = new state (00h don't filter ^S, nonzero do filter) 0002h get kernel data area Return: ES:DI -> kernel data area 0003h display dialog box CL = dialog box type 00h password 01h E-Note received notification 02h Novell login 03h general notification DL = number of rows to display ES:SI -> array of far pointers to rows to be displayed ES:DI -> Pascal-style input buffer Return: AX = status (0000h successful, else error code) 0004h kernel service events 0005h get kernel's in-critical-section flag Return: ES:DI -> kernel InCriticalSection flag 0006h schedule DOS event AL = directive 00h do not ignore WEB ExtraBusy flag 01h ignore ExtraBusy flag 02h (WEB4WIN) check that current Windows VM is foregrnd VM ES:SI -> WEB AES Event Control Block (ECB) (see #03122) Notes: the WEB Asynchronous Event Scheduler is similar to the one used by IPX; this call schedules a special ECB to be executed at a later time. Unlike IPX ECBs, the timeout must be set explicitly by the caller this function also calls function 0004h 0007h check busy AL = directive 00h do not ignore WEB ExtraBusy flag 01h ignore ExtraBusy flag 02h (WEB4WIN) check that current Windows VM is foregrnd VM Return: AX = status (0000h not busy, else busy) 0008h set keyboard intercept Note: currently a NOP which returns immediately 0009h get keyboard intercept Note: currently a NOP which returns immediately 000Ah get dialog flags Return: ES:DI -> kernel dialog flags (see #03123) 000Bh get network path Return: ES:DI -> fully-qualified network path of file where the screen is stored on Dialog calls 000Ch kernel alternate dialog CL = dialog box type 00h password 01h E-Note received notification 02h Novell login 03h general notification DL = number of rows to display ES:SI -> array of far pointers to rows to be displayed ES:DI -> Pascal-style input buffer Return: AX = status (0000h successful, else error code) Note: this function is identical to function 0003h except that it does not notify WEB4WIN of the impending dialog request 000Dh get machine/operating system type Return: AX = machine/operating system type 01h IBM PC, MS-DOS 02h IBM PC, DOSV (Japanese) 03h NEC PC-9800, JDOS (Japanese) 04h IBM PC, Korean DBC DOS Format of client debug data structure: Offset Size Description (Table 03120) 00h WORD total files 02h WORD files free 04h WORD no files 06h WORD minimum files 08h WORD total FCBs 0Ah WORD total safe FCBs 0Ch WORD FCBs in use 0Eh WORD wrong FCB 10h WORD compressed 12h WORD retransmits Format of WIN_INSTANCE_DATA structure: Offset Size Description (Table 03121) 00h DWORD real-mode pointer to data to be instanced 04h WORD size of data to be instanced Format of WEB AES Event Control Block: Offset Size Description (Table 03122) 00h DWORD link address 04h WORD ESR address 08h BYTE InUse flag 09h BYTE completion code 0Ah 3 BYTEs reserved 0Dh WORD timeout 0Fh BYTE IgnoreExtra flag 10h WORD PSP 12h DWORD DTA 16h WORD AX value for DOS critical information 18h WORD BX value for DOS critical information 1Ah WORD CX value for DOS critical information 1Ch WORD DX value for DOS critical information (Table 03123) Values for kernel dialog flags: 01h dialog will timeout 02h display stars instead of entered keystrokesTop
INT 2F - WEB v4.02 - WEB GENERAL NOTIFICATION AX = EEF0h BX = notification function ID (see #03124) Return: varies by notification function Program: WEB is an IPX-based peer-to-peer network by Webcorp. Note: the notification functions are used internally by WEB modules to notify other modules and external programs of actions or event, and should never be called by an application SeeAlso: AX=EE00h"WEB" (Table 03124) Values for WEB Notification Function ID: 00h node added 01h node deleted 02h dial attempt 03h dial failed 04h file close 05h close connection 07h check Windows mode 20h link up 21h link downTop
INT 2F U - 4MAP - INSTALLATION CHECK AX = F000h Return: AX = 00FFh Program: 4MAP is a keybinding program for 4DOS (see AX=D44Dh) by Ho-Ping Tseng Note: returns AX=00FFh for any value of AL not listed here SeeAlso: AX=D44Dh,AX=F001h,AX=F002hTop
INT 2F U - 4MAP - GET KEY MAPPINGS AX = F001h Return: ES:BX -> key mappings SeeAlso: AX=F000hTop
INT 2F U - 4MAP - INSERT CHARACTER INTO ??? AX = F002h BL = character to insert Return: AX = status 0000h successful 0001h buffer full SeeAlso: AX=F000h,AX=F003hTop
INT 2F U - 4MAP - INSERT CHARACTER INTO ??? AX = F003h BL = character to insert Return: AX = status 0000h successful 0001h buffer full Program: 4MAP is a keybinding program for 4DOS (see AX=D44Dh) by Ho-Ping Tseng SeeAlso: AX=F000h,AX=F002hTop
INT 2F U - MIN-MEM v2.11 - INSTALLATION CHECK AH = F1h AL <> F1h Return: AL = F1h if installed Program: MIN-MEM is a shareware TSR manager by Biologic which permits up to 24 popup TSRs to be loaded but swapped out to disk, EMS, or XMS. One TSR at a time is brought back into memory at the user's request.Top
INT 2F - DOS EXTENDER INSTALLATION CHECK
AX = F100h
Return: AL = FFh if DOS extender present
SI = 444Fh ("DO")
DI = 5358h ("SX")
Note: supported or soon to be supported by Phar Lap, Rational, Ergo, and IGC
SeeAlso: AH=A1h,AX=ED00h,AX=FBA1h/BX=0081h,INT 15/AX=BF02h
Top
INT 2F U - RTKernel v4.0 - INSTALLATION CHECK AH = F1h AL = 00h Return: AX = FFFFh if present CX = 00F1h Program: RTKernel is a DOS preemptive multitasking library for C/Pascal by On Time Informatik GmbHTop
INT 2F - WINX - INSTALLATION CHECK AX = F200h Return: AX = 00FFh if installed Program: WINX is a DOS/Windows utilities by Al Williams which can be used to launch Windows applications from a DOS Box; it was published in "DOS and Windows Protected Mode-Programming with DOS Extenders" (Addison-Wesley) and should not be confused with the Windows driver of the same name which is part of the DESQview/X packageTop
INT 2F - WINX - RETURN ADDRESS OF SERVER BUFFER AX = F201h Return: AX = status FFFFh if WINX is busy processing a different request 0000h if successful BX:CX = address of server buffer (see #03125) Format of WINX server buffer: Offset Size Description (Table 03125) 00h BYTE command/status 00h buffer available 01h buffer contains result 02h change directory 03h execute program FFh terminate windows portion of WINX 01h ? BYTEs command (03h) or directory (02h) or 01h DWORD result (01h)Top
INT 2F - WINX - SET SERVER'S WORKING DIRECTORY AX = F202h BX:CX -> directory Return: AX = status FFFFh if WINX is busy processing a different request 0000h if successful SeeAlso: AX=F200h,AX=F203hTop
INT 2F - WINX - EXECUTE COMMAND AX = F203h BX:CX -> command Return: AX = status 0000h if successful FFFFh if WINX is busy processing a different request SeeAlso: AX=F200h,AX=F202hTop
INT 2F - FINDIRQ.COM - INSTALLATION CHECK AX = F400h Return: AL = 01h if installed Program: FINDIRQ is a program by Rick Knoblaugh published in the 9/28/93 issue of PC Magazine; when run as a TSR it can determine which IRQs are used only when a device is active SeeAlso: AX=F401hTop
INT 2F - PowerLAN - INSTALLATION CHECK??? AX = F400h ??? Return: ??? Note: this function is called by PowerLAN's NET.EXE just prior to calling AX=F401h (get version) SeeAlso: AX=F401h"PowerLAN"Top
INT 2F - PowerLAN - GET VERSION AX = F401h Return: ES:BX -> WORD containing 100*version (in decimal) Program: PowerLAN is a networking product by Performance Technology SeeAlso: AX=F400h"PowerLAN",AX=F483h"PowerLAN"Top
INT 2F - FINDIRQ.COM - GET HOOKED INTERRUPTS
AX = F401h
CX = 5121h ('Q!')
Return: AX:DX -> hooked interrupt table (see #03126)
SeeAlso: AX=F400h
Format of FINDIRQ hooked interrupt table:
Offset Size Description (Table 03126)
00h BYTE 1Ch
01h DWORD FINDIRQ's INT 1C handler
05h DWORD original INT 1C handler
09h BYTE 28h
0Ah DWORD FINDIRQ's INT 28 handler
0Eh DWORD original INT 28 handler
12h BYTE 2Fh
13h DWORD FINDIRQ's INT 2F handler
17h DWORD original INT 2F handler
Top
INT 2F - PowerLAN - ??? AX = F483h ??? Return: ??? SeeAlso: AX=F400h"PowerLAN",AX=F401h"PowerLAN"Top
INT 2F - AUTOPARK.COM - INSTALLATION CHECK AX = F700h Return: AL = state 00h not installed FFh installed Program: AUTOPARK.COM is a resident hard disk parker by Alan D. JonesTop
INT 2F - AUTOPARK.COM - SET PARKING DELAY AX = F701h BX:CX = 32-bit count of 55ms timer ticksTop
INT 2F U - SuperStor PRO 2XON.COM - INSTALLATION CHECK
AX = F800h
CX = 4455h ("DU")
DL = 45h ("E")
Return: AL = FFh if installed
ES:BX -> ASCII signature "Universal Data Exchange"
Program: SuperStor is a disk-compression program by Addstor.
Note: returns AX=0001h if AL is not 00h or 01h
SeeAlso: AX=1001h,AX=F801h
Top
INT 2F U - SuperStor PRO 2XON.COM - UNINSTALL
AX = F801h
CX = 4455h ("DU")
DL = 45h ("E")
ES:BX = return address if successful
Return: at specified address if successfully removed from memory
else
AL = error code
???
Program: SuperStor is a disk-compression program by Addstor.
Note: returns AX=0001h if AL is not 00h or 01h
SeeAlso: AX=1001h,AX=F800h
Top
INT 2F - Multiplex - ??? - INSTALLATION CHECK??? AX = FA00h BX = ??? (0408h) CX = ??? (001Fh) DX = ??? (0102h) SI = ??? (5ACCh) DI = ??? (0632h) Return: ??? Note: called by WinEmacs at startupTop
INT 2F - Multiplex - ??? - INSTALLATION CHECK??? AX = FA00h BX = ??? (03FCh) CX = ??? (003Fh) DX = ??? (00FFh) SI = ??? (5AA6h) DI = ??? (0620h) Return: ??? Note: called by Matlab at startupTop
INT 2F - Multiplex - RESERVED BY BORLAND INTERNATIONAL AH = FBh SeeAlso: AX=FB42h/BX=0001hTop
INT 2F U - Conner Backup Exec AUTORES - API AH = FBh BL = function number (00h-07h) ??? Return: ??? Program: AUTORES is a resident program launcher for unattended backupsTop
INT 2F U - AutoBraille v1.1A - INSTALLATION CHECK AX = FB00h Return: AX = 00FFh if installed Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc. SeeAlso: INT 10/AX=3800h,INT 14/AX=F0F1hTop
INT 2F U - Jot-It! v1.50 - INSTALLATION CHECK AX = FB00h Return: AX = FFFFh if installed BX = version (BCD, BH=major, BL=minor) SeeAlso: AX=FB03h"Jot-It",AX=FB01h"Jot-It"Top
INT 2F U - AutoBraille v1.1A - ??? AX = FB01h ??? Return: ???Top
INT 2F U - Jot-It! v1.50 - GET USER NAME AX = FB01h Return: DX:BX -> ASCIZ user name SeeAlso: AX=FB02h"Jot-It"Top
INT 2F U - AutoBraille v1.1A - ??? AX = FB02h Return: AH = ??? AL = ???Top
INT 2F U - Jot-It! v1.50 - GET MESSAGE DIRECTORY AX = FB02h Return: DX:BX -> ASCIZ name of directory in which messages are stored SeeAlso: AX=FB01h"Jot-It"Top
INT 2F U - AutoBraille v1.1A - GET NEXT ??? AX = FB03h Return: AX = ???Top
INT 2F U - Jot-It! v1.50 - UNINSTALL AX = FB03h Return: resident code removed from memory Note: CAUTION: NO checks are performed to ensure that the interrupt vectors being unhooked (08h,09h,28h,2Fh) actually point at the Jot-It! code SeeAlso: AX=FB00h"Jot-It"Top
INT 2F U - AutoBraille v1.1A - SET ??? AH = FBh AL = 04h-08h Return: AX = 0000hTop
INT 2F U - AutoBraille v1.1A - SET ??? AH = FBh AL = 09h-0Fh (???, 0Eh = COM1, 0Fh = COM2) Return: ??? Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.Top
INT 2F U - AutoBraille v1.1A - SET ??? AH = FBh AL = 10h-1Fh ??? Return: ???Top
INT 2F U - AutoBraille v1.1A - SET ??? FLAGS AX = FB20h BL = flags to set SeeAlso: AX=FB21h"AutoBraille"Top
INT 2F U - AutoBraille v1.1A - CLEAR ??? FLAGS AX = FB21h BL = flags to clear SeeAlso: AX=FB20h"AutoBraille"Top
INT 2F U - AutoBraille v1.1A - SET ??? AX = FB22h BL = ??? Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.Top
INT 2F U - AutoBraille v1.1A - ??? AX = FB28h BX = ??? ??? Return: ??? SeeAlso: AX=FB29h"AutoBraille"Top
INT 2F U - AutoBraille v1.1A - ??? AX = FB29h BX = ??? ??? Return: ??? SeeAlso: AX=FB28h"AutoBraille"Top
INT 2F U - AutoBraille v1.1A - SET ??? AH = FBh AL = 2Bh-34h BX = ???Top
INT 2F U - AutoBraille v1.1A - SET ??? AX = FB35h BL = ???Top
INT 2F U - AutoBraille v1.1A - SET ??? AX = FB36h BL = ???Top
INT 2F U - AutoBraille v1.1A - SET ??? AX = FB37h BL = ??? Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.Top
INT 2F PU - Borland C++ DPMILOAD.EXE - INSTALLATION CHECK??? AX = FB42h BX = 0001h Return: AX = version number??? (AL=major, AH=minor) CX = next-selector increment ---BC2.0--- ES:BX -> 80-byte buffer for ??? DX = DPMI version ---BC3.0--- BX = ??? (0000h) DX = ??? ES:SI -> list of valid selectors ??? Notes: The version of DPMILOAD distributed with BC++ v2.0 identifies itself as version 1.000, while the version distributed with BC++ 3.0 identifies itself as version 1.0; the former is 10864 bytes, the latter 22180 bytes. The BC2.0 version is a DPMI loader, while the BC3.0 version also adds a DPMI host and DOS extender the BC++ 2.0 version displays an error message if called with BX values other than 0001h-0008h SeeAlso: AX=1687h,AX=FB42h/BX=1001h,AX=FB43hTop
INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ALLOCATE MEMORY AX = FB42h BX = 0002h CX = size in bytes DX = bit flags bit 2: set to allocate DOS memory, clear for DPMI memory SI = selector of descriptor to be modified to access allocated memory DI = selector of a second descriptor to be modified Return: AX = ??? or 0000h on error CX:DX = linear base address of DPMI memory block SI:DI = handle for DPMI memory block or FFFFh:FFFFh ??? Note: two segment descriptors may be set if a code and an aliased data segment are required; if only one descriptor is needed, SI should equal DI on entry BUG: when allocating DOS memory, the code computes the linear address by multiplying the segment number by 4 rather than shifting by 4 SeeAlso: AX=FB42h/BX=0003h,AX=FB42h/BX=0008h,INT 31/AX=0501hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ALLOCATE MEMORY AX = FB42h BX = 0002h ES:SI -> memory block info (see #03127) Return: ??? Note: The version of DPMILOAD distributed with BC++ v2.0 identifies itself as version 1.000, while the version distributed with BC++ 3.0 identifies itself as version 1.0; the former is 10864 bytes, the latter 22180 bytes. SeeAlso: AX=FB42h/BX=0003h,AX=FB42h/BX=0008h,INT 31/AX=0501h Format of DPMILOAD memory block info: Offset Size Description (Table 03127) 00h WORD flags (see #03128) 02h DWORD block size in bytes ---DPMI memory block--- 06h DWORD DPMI memory block handle ---DOS memory block--- 06h WORD real-mode segment of memory block 08h WORD selector of memory block --- 0Ah DWORD linear address of memory 0Eh WORD memory operation error code 0008h no more free LDT descriptors ---if flags bit 0 clear--- 10h WORD code segment selector for memory block or 0000h or FFFFh 12h WORD data alias selector for memory block or 0000h or FFFFh ---if flags bit 0 set--- 10h WORD data segment selector for memory block or 0000h or FFFFh 12h WORD unused??? Bitfields for DPMILOAD memory block flags: Bit(s) Description (Table 03128) 0 set if data segment rather than code segment 1 information valid 2 set if DOS memory block rather than DPMI memory block 4 ??? 15 set if no LDT selectors for memory block??? SeeAlso: #03127Top
INT 2F PU - Borland C++ DPMILOAD.EXE - GET AVAILABLE MEMORY AX = FB42h BX = 0003h Return: DX:AX = size of largest free block in paragraphs 0000h:0000h on error (BC3.0 version only) Note: AX and DX are destroyed on error, but no other error indicator is returned, under the BC++ 2.0 version of DPMILOAD SeeAlso: AX=FB42h/BX=0002hTop
INT 2F PU - Borland C++ DPMILOAD.EXE - LOAD PROTECTED-MODE EXECUTABLE??? AX = FB42h BX = 0004h DS:DX -> ASCIZ filename of protected-mode executable Return: CX = selector of ??? or 0000h ---BC3.0--- DX = status (0000h,FFF4h,others???) (see #03129) Note: the filename may also be terminated by a CR rather than a NUL under the BC++ 3.0 version of DPMILOAD (Table 03129) Values for DPMILOAD function status: 0000h successful 0001h ??? failure 0002h invalid selector 0004h unknown error 0008h no more LDT descriptors available??? FFDEh unable to set descriptor FFDFh unable to get segment base address FFE0h ??? FFF2h invalid parameter value FFF4h component of filename too long (name not in 8.3 format) FFF5h pathname too long (>79 chars) FFF6h ??? FFF8h ??? FFF9h index out of range FFFAh ??? FFFCh invalid access to code segment??? FFFEh ??? FFFFh general errorTop
INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NAME AX = FB42h BX = 0005h CX = selector of DPMILOAD data (see #03130) DS:DX -> ASCIZ or CR-terminated name of ??? (case ignored) Return: DX = status (see #03129) 0000h successful AX:BX -> ??? FAR function (called with two words on top of stk) else BX destroyed SeeAlso: AX=FB42h/BX=0006h,AX=FB42h/BX=000Eh Format of DPMILOAD data: Offset Size Description (Table 03130) 00h 12 BYTEs ??? 0Ch WORD ??? bit flags 0Eh 14 BYTEs ??? 1Ch WORD number of memory control records (see #03133) 1Eh 25 BYTEs ??? 37h BYTE ??? bit flags bit 4: data valid??? 38h 4 BYTEs ??? 3Ch WORD ??? 3Eh 12 BYTEs ??? 46h BYTE ??? counter 47h BYTE ??? 48h BYTE ??? 49h BYTE ??? 4Ah WORD ??? 4Ch 2 BYTEs ??? 4Eh WORD offset of array of 64-byte memory control records 52h WORD offset of name list (see #03131) 54h 4 BYTEs ??? 58h WORD offset of array of 6-byte objects (see #03132) 5Ah 8 BYTEs ??? 62h 9 BYTEs ASCIZ name for ??? 6Bh 9 BYTEs ASCIZ name for ??? ??? Format of name list entry [array]: Offset Size Description (Table 03131) 00h BYTE length of name (00h if end of array) 01h N BYTEs name N+1 WORD 1-based index into array of unknown 6-byte objects Format of 6-byte objects: Offset Size Description (Table 03132) 00h BYTE ??? 01h BYTE ??? 02h BYTE ??? 03h BYTE 1-based index of memory control record 04h WORD ??? Format of memory control record: Offset Size Description (Table 03133) 00h 20 BYTEs memory block info (see #03127) 14h 6 BYTEs ??? 1Ah BYTE ??? 1Bh 2 BYTEs ??? 1Dh BYTE ??? bit flags 1Eh 14 BYTEs ??? 2Ch DWORD pointer to ??? memory control record or 0000h:0000h 30h DWORD pointer to ??? memory control record or 0000h:0000h 34h DWORD pointer to next??? memory control record or 0000h:0000h 38h DWORD pointer to prev??? memory control record or 0000h:0000h 3Ch 4 BYTEs ??? Note: the pointers at offsets 2Ch and 30h form a doubly-linked list, as do the pointers at offsets 34h and 38hTop
INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NUMBER AX = FB42h BX = 0006h CX = selector of DPMILOAD data (see #03130) DX = 1-based index into array of ??? 6-byte objects Return: DX = status (see #03129) 0000h successful AX:BX -> ??? FAR function (called with two words on top of stk) else BX destroyed SeeAlso: AX=FB42h/BX=0005h,AX=FB42h/BX=000EhTop
INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0007h CX = selector of ??? Return: ??? Note: The version of DPMILOAD distributed with BC++ v2.0 identifies itself as version 1.000, while the version distributed with BC++ 3.0 identifies itself as version 1.0; the former is 10864 bytes, the latter 22180 bytes.Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0007h CX = selector of DPMILOAD data (see #03130) ??? Return: DX = status (see #03129) 0000h successful AX = ???Top
INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - FREE MEMORY BLOCK AX = FB42h BX = 0008h CX = bit flags bit 2: set if DPMI memory, clear if DOS memory DX = selector of DOS memory block SI:DI = handle of DPMI memory block Return: DX = 0000h on error, unchanged if succcessful Note: The version of DPMILOAD distributed with BC++ v2.0 identifies itself as version 1.000, while the version distributed with BC++ 3.0 identifies itself as version 1.0; the former is 10864 bytes, the latter 22180 bytes. SeeAlso: AX=FB42h/BX=0002hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE MEMORY BLOCK AX = FB42h BX = 0008h ES:SI -> memory block info (see #03127) Return: ??? SeeAlso: AX=FB42h/BX=0009hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - RESIZE MEMORY BLOCK AX = FB42h BX = 0009h ES:SI -> memory block info (see #03127) ??? Return: ??? SeeAlso: AX=FB42h/BX=0008h"3.0"Top
INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - INIT DPMI HOST AND SPAWN SUBSHELL AX = FB42h BX = 000Ah CX = 0001h DX = ??? SI = ??? Return: after user exits subshell Notes: this call is used by DPMIRES; unlike most of the DPMILOAD calls, this function is not available in protected mode. the BC2.0 version of DPMILOAD is purely a DPMI loader, while the BC3.0 version also adds a DPMI host and DOS extender. SeeAlso: AX=FB42h/BX=0004h,AX=FB42h/BX=0015hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - UNUSED AX = FB42h BX = 000BhTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE DESCRIPTORS FOR MEMORY BLOCK??? AX = FB42h BX = 000Ch ES:SI -> memory block info ??? (see #03127) Return: DX = status??? SeeAlso: AX=FB42h/BX=000FhTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SIMULATE REAL MODE INTERRUPT AX = FB42h BX = 000Dh CX = number of words to copy from protected-mode to real mode stack DL = interrupt number DH = flags bit 0: reset the interrupt controller and A20 line ES:DI -> real-mode call structure (see #03148 at INT 31/AX=0300h) Return: CX = status 0000h successful 0001h failed SeeAlso: INT 31/AX=0300hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ??? AX = FB42h BX = 000Eh DS:DX -> ASCIZ or CR-terminated name of ??? Return: CX = selector of DPMILOAD data (see #03130) corresponding to name, 0000h on error SeeAlso: AX=FB42h/BX=0006h,AX=FB42h/BX=001FhTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - REALLOCATE LDT DESCRPS TO MEMBLK??? AX = FB42h BX = 000Fh ES:SI -> memory block info (see #03127) Return: ??? SeeAlso: AX=FB42h/BX=000ChTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SEGMENT TO SELECTOR AX = FB42h BX = 0010h DX = segment number Return: CX = status (0000h,0008h) (see also AX=FB42h/BX=0004h) 0000h successful DX = selector number for descriptor 0008h failed SeeAlso: AX=FB42h/BX=0023hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0011h CX = selector of DPMILOAD data (see #03130) ??? Return: DX = status (0000h,0002h,FFFEh) (see also #03129) 0000h successful AX:BX -> ??? name FFFEh ??? errorTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0012h CX = selector for ??? Return: CX = selector for ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0013h CX = selector of DPMILOAD data (see #03130) DX = 1-based index of ??? Return: CX = status (0000h,0002h,FFF9h) (see also #03129) 0000h successful BX = ??? or 0000h FFF9h ??? errorTop
INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - INSTALLATION CHECK AX = FB42h BX = 0014h CX = 0001h Return: BX = 0000h if installed Note: unlike most of the DPMILOAD functions, this call is available only in real or V86 mode SeeAlso: AX=FB42h/BX=0001h,AX=FB42h/BX=000AhTop
INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - UNINSTALL AX = FB42h BX = 0015h CX = 0001h Return: ??? Note: unlike most of the DPMILOAD functions, this call is available only in real or V86 mode SeeAlso: AX=FB42h/BX=000AhTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ??? AX = FB42h BX = 0016h CX = selector of DPMILOAD data (see #03130) Return: DX = status (see also AX=FB42h/BX=0004h) 0000h successful CX = ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0017h CX = ??? DX = ??? ??? Return: DX = status (0000h,0001h) (see #03129)Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET ??? AX = FB42h BX = 0018h CX = ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0019h CX = selector for ??? ??? Return: DX = status (see also AX=FB42h/BX=0004h) 0000h successful CX = selector for ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 001Ah CX = selector for ??? ??? Return: DX = status (see also AX=FB42h/BX=0004h) 0000h successful 0004h failed CX:BX -> ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 001Bh CX = selector of DPMILOAD data (see #03130) DX = offset of ??? Return: DX = status (0000h,0002h) (see also #03129) 0000h successful BX = selector for ??? CX = selector for ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 001Ch ES = selector for DPMILOAD data (see #03130) CX = 1-based index of ??? DX = 1-based index of ??? Return: DX = status (0000h,0002h,FFF9h) (see #03129)Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ??? AX = FB42h BX = 001Dh Return: CX:DX = ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 001Eh CX = ??? ??? Return: DX = status (see also AX=FB42h/BX=0004h) 0000h successful FFF7h ??? error CX:BX -> ???Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ??? AX = FB42h BX = 001Fh DS:DX -> 8-character name of ??? ??? Return: CX = selector of DPMILOAD data (see #03130) for ??? 0000h on error SeeAlso: AX=FB42h/BX=000EhTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION??? AX = FB42h BX = 0020h Return: DX = ??? (always 0000h)Top
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROCESSOR EXCEPTION HANDLER VECT AX = FB42h BX = 0021h CL = exception number (00h-1Fh) Return: DX = status (see also AX=FB42h/BX=0004h) 0000h successful AX:BX = selector:offset of handler FFF2h unable to get exception handler vector SeeAlso: AX=FB42h/BX=0022h,AX=FB42h/BX=0024h,INT 31/AX=0202hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROCESSOR EXCEPTION HANDLER VECT AX = FB42h BX = 0022h CL = exception number (00h-1Fh) SI:DX = selector:offset of new handler Return: DX = status (0000h,0004h,FFF2h) (see #03129) SeeAlso: AX=FB42h/BX=0021h,AX=FB42h/BX=0025h,INT 31/AX=0203hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SELECTOR TO SEGMENT NUMBER AX = FB42h BX = 0023h CX = selector Return: DX = status (see also AX=FB42h/BX=0004h) 0000h successful CX = real-mode segment number FFF2h descriptor has invalid base address for real-mode segment SeeAlso: AX=FB42h/BX=0010hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROTECTED-MODE INTERRUPT VECTOR AX = FB42h BX = 0024h CL = interrupt number Return: DX = status (0000h) (see also AX=FB42h/BX=0004h) AX:BX = selector:offset of handler SeeAlso: AX=FB42h/BX=0025h,INT 31/AX=0204hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROTECTED-MODE INTERRUPT VECTOR AX = FB42h BX = 0025h CL = interrupt number SI:DX = selector:offset of new handler Return: DX = status (0000h,0004h,FFF2h) (see #03129) SeeAlso: AX=FB42h/BX=0024h,INT 31/AX=0205hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ??? AX = FB42h BX = 0026h CX = selector of DPMILOAD data (see #03130) DX = 1-based index of ??? ??? Return: DX = status (0000h,0002h,FFF9h) (see #03129) 0000h successful BX = offset of ??? within data structureTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ??? AX = FB42h BX = 0027h CX = selector of DPMILOAD data (see #03130) DX = offset of ??? Return: DX = status (see also AX=FB42h/BX=0004h) 0000h successful BX = ???Top
INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE AX = FB42h BX = 0080h ??? Return: AX = ??? ???Top
INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE AX = FB42h BX = 0081h ??? Return: AX = ??? ???Top
INT 2F U - Borland RTM.EXE 1.0 - INSTALLATION CHECK??? AX = FB42h BX = 1001h Return: BX = 0000h SeeAlso: AX=FB42h/BX=0001h,AX=FB42h/BX=1002h,AX=FB42h/BX=1003hTop
INT 2F U - Borland RTM.EXE 1.0 - EXECUTE COMPILED PROGRAM AX = FB42h BX = 1002h DX = 0014h ??? ??? Return: AX = nonzero if successful AH = child program exit method??? (usually 4Ch) AL = child program exit code (Errorlevel) AX = 0000h on load error DX = error code (0000h-0027h) (see #03134) SeeAlso: AX=FB42h/BX=1001h (Table 03134) Values for RTM.EXE error code: 01h out of memory 02h out of selectors 03h out of internal tables 10h internal error 18h internal error 1Ah internal error 1Bh internal error 1Ch internal error 20h invalid dynamic link 21h internal error 22h unable to open file 23h invalid .EXE format 24h wrong version 25h unable to initialize 26h DLL initialization error other unrecognized errorTop
INT 2F U - Borland RTM.EXE 1.0 - ??? AX = FB42h BX = 1003h ??? Return: ??? SeeAlso: AX=FB42h/BX=1001hTop
INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION AX = FB43h BX = subfunction (at least 0000h-000Eh) Notes: this function is only present in protected mode; it does nothing but an immediate IRET DPMILOAD.EXE itself calls various subfunctions: subfunction 0004h is called with CX=selector of ???, DI=selector of DPMILOAD data subfunction 0008h is called with CX=selector of DPMILOAD data SeeAlso: AX=FB42h/BX=0001hTop
INT 2F PU - Borland TDX - INSTALLATION CHECK AX = FB43h BX = 0100h Return: BX = FB43h if loaded Program: TDX is Borland's Turbo Debugger variant for DPMI programs Note: Borland Pascal 7 DPMI programs use this call to check whether they should install their own stack and general protection exception handlers, or allow TDX to handle those exceptionsTop
INT 2F U - AutoBraille v1.1A - GET ??? AX = FB64h Return: AX = ??? (0006h seen) Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.Top
INT 2F U - TKERNEL (Borland DOS extender) - INSTALLATION CHECK AX = FBA1h BX = 0081h ES:DI -> 16-byte buffer Return: if installed, first four bytes of ES:DI buffer are "IABH" Program: TKERNEL is a licensed version of AI Architects/Ergo's OS/x86. Note: TKERNEL was present only in Borland C++ 2.0; with version 3.0, the DOS extender was moved into DPMILOAD. SeeAlso: AH=A1h,AX=F100h,AX=FBA1h/BX=0082h,AX=FBA1h/BX=0084h,INT 15/AX=BF02h SeeAlso: INT 21/AX=4403h"AI Architects"Top
INT 2F U - TKERNEL (Borland DOS extender) - GET ENTRY POINT AX = FBA1h BX = 0082h ES:DI -> response buffer (see #03135) Return: ES:DI buffer filled SeeAlso: AX=FBA1h/BX=0081h,AX=FBA1h/BX=0084h Format of TKERNEL response buffer: Offset Size Description (Table 03135) 00h 4 BYTEs signature "IABH" 04h DWORD pointer to FAR extender entry point (see #03136) (Table 03136) Call TKERNEL entry point with: AX = function number 0000h initialize??? STACK: WORD ??? Return: AX = status??? STACK unchanged 0001h get version??? Return: AX = 0200h for v2.0.34 0002h get ??? Return: AX = ??? (011Eh or 0182h seen) 0003h load protected-mode executable STACK: DWORD -> ASCIZ filename of executable DWORD ??? DWORD -> program arguments (counted string plus CR) DWORD -> environment for protected-mode executable (terminated with two consecutive NULs) DWORD -> WORD buffer for ??? Return: AX = status??? STACK unchanged 0004h get descriptor STACK: WORD selector for which to get descriptor WORD segment number (when running in real mode) DWORD -> buffer for descriptor Return: CF clear if successful buffer filled CF set on error AX destroyed??? STACK unchanged 0005h ??? STACK: WORD selector for ??? WORD subfunction number??? 0000h run previously-loaded program??? 0001h ??? (similar to 0000h) 0002h 0003h 0005h ??? (similar to 0000h and 0001h) Return: AX = status??? STACK unchanged 0006h ??? STACK: WORD ??? DWORD -> WORD (call) max iterations of ??? (ret) remaining iterations Return: AX = ??? STACK unchanged 0007h unused Return: AX = 0001h 0008h unused Return: AX = 0001h 0009h copy protected-mode memory into conventional memory STACK: WORD selector for source segment WORD segment of source if in real mode??? DWORD offset of source WORD number of bytes to copy DWORD -> low-memory destination Return: AX = status STACK unchanged 000Ah copy conventional memory into protected-mode memory STACK: WORD selector for destination segment WORD segment of destination if in real mode??? DWORD offset of destination WORD number of bytes to copy DWORD -> low-memory source Return: AX = status STACK unchanged 000Bh get ??? pointers STACK: WORD desired pointer 0000h get ??? 0002h get protected-mode CR3 0003h get 4K page table buffer pointer else Return: DX:AX = FFFFh:FFFFh Return: DX:AX = requested pointer STACK unchanged 000Ch set ??? pointers STACK: WORD desired pointer 0000h set ??? 0002h set protected-mode CR3 0003h set 4K page table buffer pointer else ignore DWORD new value for pointer Return: STACK unchanged 000Dh get ??? pointers STACK: WORD desired pointer 0000h get ??? 0001h get ??? 0002h get ??? 0003h get ??? 0004h get ??? 0005h get ??? 0006h get ??? 0007h get ??? else Return: DX:AX = FFFFh:FFFFh Return: DX:AX = desired pointer STACK unchanged 000Eh set ??? pointer STACK: WORD desired pointer 0000h set ??? 0001h set ??? 0002h set ??? 0003h set ??? 0004h set ??? 0005h set ??? 0006h set ??? 0007h set ??? else Return: DX:AX = FFFFh:FFFFh Return: STACK unchanged 000Fh get ??? Return: AX = ??? (seen 0008h) 0010h get ??? Return: AX = ??? 0011h determine whether selector is valid STACK: WORD possible selector Return: AX = selector or 0000h if invalid STACK unchanged 0012h get physical address STACK: WORD selector for desired segment WORD segment number if in real mode DWORD offset within segment Return: DX:AX = 32-bit physical address or 00000000h on error BX destroyed STACK unchanged 0013h ??? Note: normally jumps to code for function 0012h 0014h copy protected-mode memory to conventional memory, with ??? STACK: WORD selector for source segment WORD segment of source if in real mode??? DWORD offset of source WORD number of bytes to copy DWORD -> low-memory destination Return: AX = status??? STACK unchanged 0015h copy conventional memory to protected-mode memory, with ??? STACK: WORD selector for destination segment WORD segment of destination if in real mode??? DWORD offset of destination WORD number of bytes to copy DWORD -> low-memory source Return: AX = status??? STACK unchanged 0016h set ??? pointer STACK: WORD unused DWORD -> ??? or 0000h:0000h Return: AX = 0000h STACK unchanged 0017h allocate real-mode procedure??? STACK: DWORD ASCIZ name of procedure DWORD ??? DWORD address of subroutine to invoke Return: AX = status 0032h procedure by that name exists 0033h no more real-mode procedures available DX destroyed STACK unchanged 0018h unused Return: AX = 0001h 0019h get parameter block Return: DX:AX -> parameter block (format unknown at this time, but 92h bytes) (preceded by signature "!!PARAM-BLOCK!!") 001Ah get ??? Return: AX = ??? (0148h seen) 001Bh free real-mode procedure??? STACK: DWORD -> ASCIZ name of procedure Return: ??? STACK unchanged 001Ch check whether packets from protected mode task pending Return: AX = 0001h if packets pending, 0000h if not 001Dh set ??? STACK: DWORD ??? or 0000h:0000h Return: AX,BX destroyed STACK unchanged 001Eh ??? STACK: WORD ??? (high byte ignored) DWORD -> data structure (below) Return: AX,BX,CX,DX destroyed data structure updated STACK unchanged Format of data structure: Offset Size Description 00h 2 BYTEs unused 02h WORD ??? 04h WORD ??? 06h WORD ??? 08h 2 BYTEs unused 0Ah WORD ??? 0Ch WORD (call) ??? (ret) offset of this data structure (BUG?) 001Fh set ??? STACK: WORD ??? (set to 0001h if zero) Return: AX destroyed STACK unchanged 0020h ??? STACK: DWORD -> ??? (8 bytes of data) Return: AX = ??? STACK unchanged 0021h ??? STACK: DWORD -> ??? (8 bytes of data) WORD ??? WORD ??? Return: AX = ??? STACK unchanged 0022h ??? STACK: DWORD -> ??? (8 bytes of data) DWORD -> 4-byte buffer for results Return: AX = ??? STACK unchanged 0023h ??? STACK: DWORD -> ??? (8 bytes of data) Return: AX = ??? STACK unchanged 0024h set ??? STACK: WORD ??? Return: AX destroyed STACK unchanged 0025h get ??? Return: AX = ??? (value set with func 0024h) 0026h BUG: jumps to hyperspace due to fencepost error FFFFh set DOS memory management functions BX:SI -> FAR routine for allocating DOS memory (called with AH=48h,BX=number of paragraphs to alloc; returns CF clear, AX=segment of allocated memory, or CF set on error) CX:DI -> FAR routine for freeing DOS memory (called with AH=49h,ES=segment of block to free; returns CF set on error, AX=error code) Note: each of these pointers normally points at INT 21/RETF other Return: AX = 0001h Note: BX may be destroyed by any of the API callsTop
INT 2F U - TKERNEL (Borland DOS extender) - UNINSTALL AX = FBA1h BX = 0084h ES:DI -> response buffer (see #03137) Return: ES:DI buffer filled SeeAlso: AX=FBA1h/BX=0081h,AX=FBA1h/BX=0084h Format of TKERNEL response buffer: Offset Size Description (Table 03137) 00h 4 BYTEs signature "IABH" 04h WORD success indicator 0001h failed (INT 2F hooked by another program) unchanged if successful 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 2F U - SoundBlaster speech driver - INSTALLATION CHECK AX = FBFBh ES = 0000h Return: ES nonzero if installed ES:BX -> entry point data structure (see #03138) SeeAlso: INT 80/BX=0000h,INT F3"SoundBlaster" Format of SoundBlaster entry point data structure: Offset Size Description (Table 03138) 00h 3 BYTEs signature "FB " 03h BYTE driver major version number??? 04h DWORD speech driver entry point (see #03139) 08h 24 BYTEs ??? 20h ? BYTEs data buffer for calling speech driver (can be 117 bytes or more) (Table 03139) Call SoundBlaster speech driver entry point with: AL = function 07h speak a string data buffer (see #03138) contains: BYTE length of string N BYTEs string to speakTop
INT 2F - KS/KEYSTKCT.EXE - INSTALLATION CHECK AX = FD12h Return: AX = 0093h if installed ES = resident code segment ES:CX -> internal "putbuf" routine Program: KS/KEYSTKCT.EXE is a key stacking utility (4DOS KEYSTACK.SYS look-alike) by Martin Gerdes, published in c't 11/1991, which can be loaded as a device driver or as a TSR. It does not emulate 4DOS KSTACK API Note: the default buffer size is 128 keysTop
INT 2F - PC-NFS ??? - INSTALLATION CHECK
AX = FE00h
BX = 4454h ("DT")
CX = 4B52h ("KR")
DX = 4E4Dh ("NM")
Return: AL = FFh if installed
BX = 524Eh ("RM")
CX = 4D44h ("MD")
DX = 544Bh ("TK")
Note: DV/X 1.10 DVPCNFS.DVR searches AH=FEh,FFh,C0h-FDh for a valid response
SeeAlso: AX=FE08h
Top
INT 2F - PC-NFS ??? - INSTALLATION CHECK
AX = FE00h
BX = 4454h ("DT")
CX = 4B52h ("KR")
DX = 544Dh ("TM")
Return: AL = FFh if installed
BX = 5254h ("RT")
CX = 4D44h ("MD")
DX = 544Bh ("TK")
Note: DV/X 1.10 DVPCNFS.DVR searches AH=FEh,FFh,C0h-FDh for a valid response
SeeAlso: AX=FE08h
Top
INT 2F U - NORTON UTILITIES 5.0+ TSRs - INSTALLATION CHECK/STATUS REPORT
AX = FE00h
DI = 4E55h ("NU")
SI = TSR identifier (see #03140)
Return: SI = TSR reply
lowercase version of SI on entry (i.e. SI ORed with 2020h)
execpt SMARTCAN v8.0, which returns SI=6673h ('fs')
AH = status
00h installed but disabled internally
01h installed and enabled
AL = installed product
00h NCACHE-x or DISKREET
01h SPEEDRV / FILESAVE / EP / DISKMON v6+ installed
02h NCACHE2 / SMARTCAN
45h DISKMON v5 installed
BX = length of *.INI file (DISKMON and FILESAVE/EP/SMARTCAN only)
(see #03141,#03142)
CX = segment of resident portion
FFFFh if completely loaded high (NCACHE)
DI may be destroyed
---FILESAVE/EP---
DL = ??? (apparently always 00h)
---DISKMON---
DX = ??? (apparently always 1AE6h [v5] / 1B86h [v6] / 1C26h [v7])
Notes: the value returned in CX is incorrect for NCACHE 6.00
all Norton Caches install as SMARTAAR drivers like SMARTDRV v3
NCACHE2 and SPEEDRV both support the SMARTDRV v4+ installation check
to detect Diskreet NDisk drives use CDS/DPB (see INT 21/AH=52h)
SeeAlso: AX=4A10h/BX=0000h,AX=FE01h,AX=FE02h,AX=FE03h,AX=FE04h,AX=FE05h
SeeAlso: INT 21/AX=4402h"SMARTDRV"
(Table 03140)
Values for Norton Utilities TSR identifier:
4346h ("CF") NCACHE-F (v5) / NCACHE (v6) / NCACHE2 (v7+) / SPEEDRV
4353h ("CS") NCACHE-S (v5 only)
4443h ("DC") DISKREET
444Dh ("DM") DISKMON
4653h ("FS") FILESAVE (v5) / EP (v6) / SMARTCAN (v7+)
Format of DISKMON.INI file:
Offset Size Description (Table 03141)
-6Ch 108 BYTEs (in memory copy only)
list of filenames which are always protected:
IBMBIO.COM/IBMDOS.COM, IO.SYS/MSDOS.SYS, TBIOS.SYS/TDOS.SYS,
MIO.SYS/IO.BIN, COMMAND.COM
00h BYTE ??? always 01h
01h BYTE disk light (00h off, 01h on)
02h BYTE disk protection (00h off, 01h on)
03h BYTE protected areas
01h system area
02h files
03h system area and files
04h entire disk
04h BYTE floppy access (00h not allowed, 01h allowed)
05h 27 BYTEs filename extension list (9 entries)
(lowercase, blank padded or = 000000h)
20h 240 BYTEs filename list (20 entries)
(lowercase, name and extension blank padded, with '.')
Note: CX:0508h -> copy in installed TSR (v5)
CX:052Fh -> copy in installed TSR (v6)
CX:04E0h -> copy in installed TSR (v7-v8)
Format of FILESAVE.INI / EP.INI / SMARTCAN.INI file:
Offset Size Description (Table 03142)
00h 26 BITs drive list (bit set: file protection on, cleared: off):
00h BYTE drives A: - H:
01h BYTE drives I: - P:
02h BYTE drives Q: - X:
03h BYTE drives Y: - Z:
04h BYTE which files to protect
00h all files
01h all files with extension in list
02h all files except those with extension in list
05h 27 BYTEs filename extension list (9 entries, uppercase, ASCIZ)
20h BYTE include files with archive bit clear (00h no, 01h yes)
21h WORD number of days after which files are purged (0 = never)
23h WORD max kilobytes of erased file space to hold (0 = all)
Note: CX:03D2h -> copy in installed TSR (v5)
CX:03F5h -> copy in installed TSR (v6)
CX:0434h -> copy in installed TSR (v7-v8)
Top
INT 2F - GO! v3.22+ - API
AX = FE00h
DX = 474Fh ('GO')
SI = function number
0063h (BCD for '?') installation check
0078h (BCD for 'N') non-registered search (two levels only)
0082h (BCD for 'R') reserved for registered version
0083h (BCD for 'S') reserved for registered version
0085h (BCD for 'U') uninstall
BX:CX -> buffer (for search functions)
buffer filled with search spec, i.e. "APL" to get first
directory containing the substring APL, ":\APL" to find
the first top-level directory beginning with the letters
APL
Return: BX:CX buffer filled with result (search functions only)
result is counted ASCIZ directory name, empty string if
no matches (i.e. first byte is length of name, followed by
name)
Program: GO! is a shareware directory locator TSR by Steve Ryckman
Note: the application-supplied buffer for the requests and results which
BX:CX points at must lie outside the conventional (low-640K)
memory, since the TSR swaps memory on pop-up; a common location is
the last 96 bytes of the video memory or a UMB
Top
INT 2F U - NORTON UTILITIES 5.0+ TSRs - ENABLE
AX = FE01h
DI = 4E55h ("NU")
SI = TSR identifier (see #03140)
Return: SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
AX = status
0002h successful (DISKMON, FILESAVE, EP)
FE00h successful (NCACHE-x, DISKREET)
Notes: if the enable/disable calls are used on DISKMON or NCACHE-x, the status
report generated by the programs still indicates the previous state,
and DISKMON.INI is not updated
apparently has no effect on DISKREET
SeeAlso: AX=FE00h,AX=FE02h
Top
INT 2F U - NORTON UTILITIES 5.0+ TSRs - DISABLE
AX = FE02h
DI = 4E55h ("NU")
SI = TSR identifier (see #03140)
Return: SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
AX = status
0004h successful (DISKMON, FILESAVE)
FE00h successful (NCACHE-x, DISKREET)
Notes: (see also AX=FE01h)
this function appears to be unsafe, as the cache buffers are not
flushed
SeeAlso: AX=FE00h,AX=FE01h
Top
INT 2F U - NORTON UTILITIES 5.0+ TSRs - FLUSH BUFFERS
AX = FE03h
DI = 4E55h ("NU")
SI = TSR identifier (see #03140)
Return: SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
AX = status
0006h successful???
Notes: only supported by DISKMON, FILESAVE, and NCACHE-x
useful for flushing NCACHE before rebooting
SeeAlso: AX=FE00h,AX=FE10h
Top
INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???
AX = FE04h
DI = 4E55h ("NU")
SI = TSR identifier (see #03140)
Return: SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
AX = status
0008h successful???
SeeAlso: AX=FE00h
Top
INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???
AX = FE05h
DI = 4E55h ("NU")
SI = TSR identifier (see #03140)
Return: SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
AX = status
000Ah successful???
Note: reportedly dangerous
SeeAlso: AX=FE00h
Top
INT 2F - PC-NFS ??? - GET ??? AX = FE08h Return: ES:BX -> ??? Notes: DV/X 1.10 DVPCNFS.DVR searches AH=FEh,FFh,C0h-FDh for a valid response both the driver responding to AX=FE00h/DX=4E4Dh and the one responding to AX=FE00h/DX=544Dh support this function SeeAlso: AX=FE00h/BX=4454hTop
INT 2F U - NORTON UTILITIES 6.0 NCACHE - REBOOT
AX = FE10h
DI = 4E55h ("NU")
SI = TSR identifier (see #03140)
Return: SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
AX = status
Note: probably used to flush NCACHE buffers and reboot when Ctrl-Alt-Del is
detected
SeeAlso: AX=FE03h
Top
INT 2F - RTS Control TSR - INSTALLATION CHECK AX = FEEFh Return: AX = EFFEh if installed BX = port address Program: RTS Control TSR is a utility by Michal Szokolo to lower the RTS signal on a COM port during disk accesses to avoid losing incoming dataTop
INT 2F - Topware Network Operating System - INSTALLATION CHECK AX = FF00h Return: AL = status 00h not installed, OK to install 01h not installed, not OK to install FFh installed SeeAlso: AX=FF01h,AX=FF02h,AX=FF10h,INT 21/AX=FF00h"Topware",INT 7A"Topware"Top
INT 2F - Topware Network Operating System - GET VERSION AX = FF01h Return: AX = version SeeAlso: AX=FF00h,AX=FF02hTop
INT 2F - TopWare Network OS v5.10+ - GET TopNet VERSION STRING AX = FF02h Return: ES:BX -> version string SeeAlso: AX=FF00h,AX=FF01hTop
INT 2F - TopWare Network OS v5.10+ - TopTerm - INSTALLATION CHECK AX = FF10h Return: AL = status (00h not installed, 01h installed) SeeAlso: AX=FF00h,AX=FF11h,AX=FF12h,AX=FF13hTop
INT 2F - TopWare Network OS v5.10+ - TopTerm - ENABLE KEYBOARD SERVICE AX = FF11h Note: this function is only available on workstations, not on the server SeeAlso: AX=FF10h,AX=FF12hTop
INT 2F - TopWare Network OS v5.10+ - TopTerm - DISABLE KEYBOARD SERVICE AX = FF12h Note: this function is only available on workstations, not on the server SeeAlso: AX=FF10h,AX=FF11hTop
INT 2F - TopWare Network OS v5.10+ - TopTerm - SET INSTALLATION FLAG AX = FF13h CL = new state (00h off, 01h on) SeeAlso: AX=FF10hTop
INT 2F - TopWare Network OS v5.10+ - START BACKGROUND RECEIVE VIDEO DATA AX = FF14h Note: this function is only available on workstations, not on the server SeeAlso: AX=FF10h,AX=FF15hTop
INT 2F - TopWare Network OS v5.10+ - END BACKGROUND RECEIVE VIDEO DATA AX = FF15h Note: this function is only available on workstations, not on the server SeeAlso: AX=FF10h,AX=FF14hTop
INT 2F - TopWare Network OS v5.10+ - SET CONTROL NUMBER OF "SHOW" SCREEN AX = FF16h BL = which to set (00h TopShow, FFh TopTerm) CX = destination screen 0000h all stations 0000h-00FFh (TopTerm only) send to group CL 8001h-80FEh send to station CL SeeAlso: AX=FF18hTop
INT 2F - TopWare Network OS v5.10+ - SEND FULL SCREEN OF DATA FOR TopShow AX = FF18h SeeAlso: AX=FF00h,AX=FF16h,AX=FF27hTop
INT 2F - TopWare Network OS v5.10+ - CLOSE SPOOL FILES AND START PRINTING AX = FF23h SeeAlso: AX=FF00hTop
INT 2F - TopWare Network OS v5.10+ - GET "SHOW" TYPE AX = FF27h Return: AL = type (00h complete version, 01h simple version) BL = "show" functions flag (00h disabled, 01h enabled) SeeAlso: AX=FF16h,AX=FF18hTop
INT 30 - (NOT A VECTOR!) - DOS 1+ - FAR JMP instruction for CP/M-style calls the CALL 5 entry point does a FAR jump to here Note: under DOS 2+, the instruction at PSP:0005 points two bytes too low in memory SeeAlso: INT 21/AH=26hTop
INT 30 - QRIP/TSR - USED BY GRAPHICS LIBRARY Program: QRIP/TSR is a shareware TSR by Shane Hathaway implementing the Remote Imaging Protocol (RIP, RIPscrip) used by several BBS systems to provide a graphical user interface SeeAlso: INT 2F/AX=ACF0hTop
INT 30 P - MS Windows 3.1+ - PROTECTED-MODE CALLBACK SeeAlso: INT 20"Windows"Top
INT 31 - overwritten by CP/M jump instruction in INT 30Top
INT 31 - VIRUS - "Vacsina" series - INSTALLATION CHECK (NOT A VECTOR!) Note: if one of the Vacsina viruses is resident, the low byte of this interrupt still contains the last byte of the INT 30 CP/M JMP instruction, but the remaining three bytes are 7Fh 39h followed by the Vacsina version number SeeAlso: INT 21/AX=FFFFh"VIRUS",INT 32"VIRUS"Top
INT 31 P - DPMI 0.9+ - ALLOCATE LDT DESCRIPTORS AX = 0000h CX = number of descriptors to allocate Return: CF clear if successful AX = base selector CF set on error AX = error code (DPMI 1.0+) (see #03143) Notes: DPMI is the DOS Protected-Mode Interface the base and limit of the returned descriptors will be 0, and the type will be "data" add the value returned by INT 31/AX=0003h to move to subsequent descriptors if multiple descriptors were allocated not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0001h,AX=000Dh,INT 21/AX=3501h (Table 03143) Values for DPMI 1.0 error code: 0000h-7FFFh DOS error passed through by DPMI 8001h unsupported function 8002h object in wrong state for function 8003h system integrity would be endangered 8004h deadlock detected 8005h pending serialization request cancelled 8010h out of DPMI internal resources 8011h descriptor unavailable 8012h linear memory unavailable 8013h physical memory unavailable 8014h backing store unavailable 8015h callback unavailable 8016h handle unavailable 8017h maximum lock count exceeded 8018h shared memory already serialized exclusively by another 8019h shared memory already serialized shared by another client 8021h invalid value for numeric or flag parameter 8022h invalid segment selector 8023h invalid handle 8024h invalid callback 8025h invalid linear address 8026h request not supported by hardwareTop
INT 31 P - DPMI 0.9+ - FREE LDT DESCRIPTOR AX = 0001h BX = selector to free Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8022h) (see #03143) Notes: only one descriptor is freed per call the program's initial CS, DS, and SS descriptors may be freed (DPMI 1.0+) any segment registers containing the freed selector are set to 0000h not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0000h,AX=000Ah,AX=000Dh,INT 21/AX=3502hTop
INT 31 P - DPMI 0.9+ - SEGMENT TO DESCRIPTOR AX = 0002h BX = real mode segment Return: CF clear if successful AX = selector corresponding to real mode segment (64K limit) CF set on error AX = error code (DPMI 1.0+) (8011h) (see #03143) Notes: multiple calls for the same real mode segment return the same selector the returned descriptor can never be modified or freed not supported by MS Windows 3.0 in Standard modeTop
INT 31 P - DPMI 0.9+ - GET NEXT SELECTOR INCREMENT VALUE AX = 0003h Return: CF clear AX = value to add to get next sequential selector Notes: the increment will be a power of two not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0000hTop
INT 31 P - DPMI 0.9+ - LOCK SELECTOR AX = 0004h BX = selector to lock (prevent paging) Return: ??? Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI specification, this function is called by MS Windows TASKMAN, PROGMAN, and KERNEL SeeAlso: AX=0005h,AX=0600hTop
INT 31 P - DPMI 0.9+ - UNLOCK SELECTOR AX = 0005h BX = selector to unlock (permit paging) Return: ??? Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI specification, this function is called by MS Windows TASKMAN, PROGMAN, and KERNEL SeeAlso: AX=0004h,AX=0601hTop
INT 31 P - DPMI 0.9+ - GET SEGMENT BASE ADDRESS AX = 0006h BX = selector Return: CF clear if successful CX:DX = linear base address of segment CF set on error AX = error code (DPMI 1.0+) (8022h) (see #03143) Note: not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0007h,INT 21/AX=3504hTop
INT 31 P - DPMI 0.9+ - SET SEGMENT BASE ADDRESS AX = 0007h BX = selector CX:DX = linear base address Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8022h,8025h) (see #03143) Notes: only modify descriptors allocated with INT 31/AX=0000h only the low 24 bits of the address will be used by 16-bit DPMI implementations even on a 386 or higher DPMI 1.0+ automatically reloads any segment registers containing the selector being modified not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000Ch,INT 21/AX=3503h SeeAlso: INT 21/AH=E9h"OS/286",INT 2C/AX=0002hTop
INT 31 P - DPMI 0.9+ - SET SEGMENT LIMIT AX = 0008h BX = selector CX:DX = segment limit Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see #03143) Notes: CX must be zero for 16-bit DPMI implementations limits greater than 1MB must be page aligned (low 12 bits set) only modify descriptors allocated with INT 31/AX=0000h DPMI 1.0+ automatically reloads any segment registers containing the selector being modified not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0007h,AX=0009h,AX=000Ch,INT 21/AX=3505h,INT 21/AH=E9h"OS/286" SeeAlso: INT 2C/AX=0003h,#00501 at INT 15/AH=89hTop
INT 31 P - DPMI 0.9+ - SET DESCRIPTOR ACCESS RIGHTS AX = 0009h BX = selector CL = access rights/type byte (see #00502 at INT 15/AH=89h) CH = 80386 extended rights/type byte (see #00505 at INT 15/AH=89h) (32-bit DPMI implementations only) Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see #03143) Notes: if the Present bit is clear, CL bits 0-3 may have any value DPMI 1.0+ automatically reloads any segment registers containing the selector being modified not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0007h,AX=0008h,AX=000Ch,INT 21/AX=2514h,INT 2C/AX=0004h SeeAlso: INT 2C/AX=0005hTop
INT 31 P - DPMI 0.9+ - CREATE ALIAS DESCRIPTOR AX = 000Ah BX = selector Return: CF clear if successful AX = new data selector CF set on error AX = error code (DPMI 1.0+) (8011h,8022h) (see #03143) Notes: fails if selector in BX is not a code segment or is invalid use INT 31/AX=0001h to free new selector future changes to the original selector will not be reflected in the returned alias selector not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0001hTop
INT 31 P - DPMI 0.9+ - GET DESCRIPTOR AX = 000Bh BX = LDT selector ES:(E)DI -> 8-byte buffer for copy of descriptor Return: CF clear if successful buffer filled CF set on error AX = error code (DPMI 1.0+) (8022h) (see #03143) Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=000ChTop
INT 31 P - DPMI 0.9+ - SET DESCRIPTOR AX = 000Ch BX = LDT selector ES:(E)DI -> 8-byte buffer containing descriptor Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see #03143) Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI only modify descriptors allocated with INT 31/AX=0000h DPMI 1.0+ automatically reloads any segment registers containing the selector being modified not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=000BhTop
INT 31 P - DPMI 0.9+ - ALLOCATE SPECIFIC LDT DESCRIPTOR AX = 000Dh BX = LDT selector Return: CF clear if successful descriptor allocated CF set on error AX = error code (DPMI 1.0+) (8011h,8022h) (see #03143) Notes: free descriptor with INT 31/AX=0001h the first 16 descriptors (04h-7Ch) are reserved for this function, but some may already be in use by other applications under DPMI 0.9; DPMI 1.0 guarantees 16 descriptors per client not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0000h,AX=0001hTop
INT 31 P - DPMI 1.0+ - GET MULTIPLE DESCRIPTORS AX = 000Eh CX = number of descriptors to copy ES:(E)DI -> descriptor buffer (see #03144) Return: CF clear if successful descriptors copied CF set on error AX = error code (8022h) (see #03143) CX = number of descriptors successfully copied Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI if the function fails, the first CX descriptors are valid; the remainder are not modified SeeAlso: AX=000Bh,AX=000Fh Format of DPMI descriptor buffer entry (one per descriptor to get): Offset Size Description (Table 03144) 00h WORD selector (set by client) 02h QWORD descriptor (set by host)Top
INT 31 P - DPMI 1.0+ - SET MULTIPLE DESCRIPTORS AX = 000Fh CX = number of descriptors to copy ES:(E)DI -> descriptor buffer (see #03145) Return: CF clear if successful descriptors copied CF set on error AX = error code (8021h,8022h,8025h) (see #03143) CX = number of descriptors successfully copied Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI if the function fails, the first CX descriptors are valid; the remainder are not modified DPMI 1.0+ automatically reloads any segment registers containing a selector being modified SeeAlso: AX=000Ch,AX=000Eh Format of DPMI descriptor buffer entry (one per descriptor to set): Offset Size Description (Table 03145) 00h WORD selector 02h QWORD descriptorTop
INT 31 P - DPMI 0.9+ - ALLOCATE DOS MEMORY BLOCK AX = 0100h BX = number of paragraphs to allocate Return: CF clear if successful AX = real mode segment of allocated block DX = first selector for allocated block CF set on error AX = DOS error code (07h,08h) (see #01680 at INT 21/AH=59h/BX=0000h) (DPMI 1.0+) DPMI error code (8011h) (see #03143) BX = size (in paragraphs) of largest available block Notes: multiple contiguous selectors are allocated for blocks of more than 64K if the caller is a 16-bit program never modify or deallocate returned descriptors not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0101h,AX=0501hTop
INT 31 P - DPMI 0.9+ - FREE DOS MEMORY BLOCK AX = 0101h DX = selector of block Return: CF set if successful CF set on error AX = DOS error code (07h,09h) (see #01680 at INT 21/AH=59h/BX=0000h) Notes: all descriptors allocated for the block are automatically freed DPMI 1.0+ automatically zeros any segment registers containing a selector freed by this function not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0100h,AX=0102h,AX=0502hTop
INT 31 P - DPMI 0.9+ - RESIZE DOS MEMORY BLOCK AX = 0102h BX = new block size in paragraphs DX = selector of block Return: CF clear if successful CF set on error AX = DOS error code (07h,08h,09h) (see #01680 at INT 21/AH=59h/BX=0000h) (DPMI 1.0+) DPMI error code (8011h,8022h) (see #03143) BX = maximum block size (in paragraphs) possible Notes: increasing the size of a block past a 64K boundary will fail if the next descriptor in the LDT is already in use shrinking a block past a 64K boundary will cause some selectors to be freed; DPMI 1.0+ automatically zeros any segment registers containing a selector freed by this function not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0100hTop
INT 31 P - DPMI 0.9+ - GET REAL MODE INTERRUPT VECTOR AX = 0200h BL = interrupt number Return: CF clear CX:DX = segment:offset of real mode interrupt handler Note: the DPMI implementation is required to support all 256 vectors SeeAlso: AX=0201h,AX=0204h,INT 21/AX=2503hTop
INT 31 P - DPMI 0.9+ - SET REAL MODE INTERRUPT VECTOR AX = 0201h BL = interrupt number CX:DX = segment:offset of real mode handler Return: CF clear Note: all memory that may be touched by a hardware interrupt handler must be locked down with INT 31/AX=0600h SeeAlso: AX=0200h,AX=0205h,AX=0600h,INT 21/AX=2505hTop
INT 31 P - DPMI 0.9+ - GET PROCESSOR EXCEPTION HANDLER VECTOR AX = 0202h BL = exception number (00h-1Fh) Return: CF clear if successful CX:(E)DX = selector:offset of handler CF set on error AX = error code (DPMI 1.0+) (8021h) (see #03143) Notes: 16-bit programs receive the pointer in CX:DX, 32-bit programs in CX:EDX DPMI 1.0+ supports this function only for backward compatibility; use AX=0210h or AX=0211h instead not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0203h,AX=0210h,AX=0211h,INT 2F/AX=FB42h/BX=0021hTop
INT 31 P - DPMI 0.9+ - SET PROCESSOR EXCEPTION HANDLER VECTOR AX = 0203h BL = exception number (00h-1Fh) CX:(E)DX = selector:offset of handler Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8021h,8022h) (see #03143) Notes: 32-bit programs must supply an offset in EDX and use a 32-bit interrupt stack frame on chaining to the next exception handler the handler should return using a FAR return all fault stack frames contain an error code, but it is only valid for exceptions 08h and 0Ah-0Eh handlers will only be called if the exception occurs in protected mode, and the DPMI host does not transparently handle the exception the handler may change certain values on the stack frame (see #03146,#03147) DPMI 1.0+ supports this function only for backward compatibility; use AX=0212h or AX=0213h instead not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0202h,AX=0212h,AX=0213h,INT 2F/AX=FB42h/BX=0022h Format of stack frame for 16-bit programs: (offset from SS:SP) Offset Size Description (Table 03146) 00h DWORD return CS:IP (do not change) 04h WORD error code 06h DWORD CS:IP of exception 0Ah WORD flags 0Ch DWORD SS:SP Format of stack frame for 32-bit programs: (offset from SS:ESP) Offset Size Description (Table 03147) 00h DWORD return EIP (do not change) 04h WORD return CS selector (do not change) 06h WORD reserved (do not change) 08h DWORD error code 0Ch DWORD EIP of exception 10h WORD CS selector of exception 12h WORD reserved (do not change) 14h DWORD EFLAGS 18h DWORD ESP 1Ch WORD SS 1Eh WORD reserved (do not change)Top
INT 31 P - DPMI 0.9+ - GET PROTECTED MODE INTERRUPT VECTOR AX = 0204h BL = interrupt number Return: CF clear CX:(E)DX = selector:offset of handler Notes: 16-bit programs use CX:DX, 32-bit programs use CX:EDX DPMI implementations are required to support all 256 vectors not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0200h,AX=0205h,INT 21/AX=2502h,INT 2C/AX=0006h SeeAlso: INT 2F/AX=FB42h/BX=0024hTop
INT 31 P - DPMI 0.9+ - SET PROTECTED MODE INTERRUPT VECTOR AX = 0205h BL = interrupt number CX:(E)DX = selector:offset of handler Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8022h) (see #03143) Notes: 16-bit programs use CX:DX, 32-bit programs use CX:EDX 32-bit programs must use a 32-bit interrupt stack frame when chaining to the next handler DPMI implementations are required to support all 256 vectors hardware interrupts are reflected to the virtual machine's primary client, software interrupts to the current client not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0201h,AX=0204h,INT 21/AX=2504h,INT 2C/AX=0007h SeeAlso: INT 2F/AX=FB42h/BX=0025hTop
INT 31 P - DPMI 1.0+ - GET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER AX = 0210h BL = exception number (00h-1Fh) Return: CF clear if successful CX:(E)DX = selector:offset of exception handler CF set on error AX = error code (8021h) (see #03143) Note: DPMI host reflects exception to current client's handler SeeAlso: AX=0202h,AX=0211h,AX=0212hTop
INT 31 P - DPMI 1.0+ - GET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER AX = 0211h BL = exception number (00h-1Fh) Return: CF clear if successful CX:(E)DX = selector:offset of exception handler CF set on error AX = error code (8021h) (see #03143) Notes: returns address of protected-mode handler for real-mode exception DPMI host performs a switch to protected mode, reflects the exception to the virtual machine's primary client, and returns to real mode on the handler's completion SeeAlso: AX=0202h,AX=0210h,AX=0213hTop
INT 31 P - DPMI 1.0+ - SET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER AX = 0212h BL = exception or fault number (00h-1Fh) CX:(E)DX = exception handler selector:offset Return: CF clear if successful CF set on error AX = error code (8021h,8022h) (see #03143) Note: DPMI host sends exception to current client's handler SeeAlso: AX=0203h,AX=0210h,AX=0213hTop
INT 31 P - DPMI 1.0+ - SET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER AX = 0213h BL = exception or fault number (00h-1Fh) CX:(E)DX = exception handler selector:offset Return: CF clear if successful CF set on error AX = error code (8021h,8022h) (see #03143) Notes: specifies address of protected-mode handler for real-mode exception DPMI host performs a switch to protected mode, reflects the exception to the virtual machine's primary client, and returns to real mode on the handler's completion SeeAlso: AX=0203h,AX=0211h,AX=0212hTop
INT 31 P - DPMI 0.9+ - SIMULATE REAL MODE INTERRUPT AX = 0300h BL = interrupt number BH = flags bit 0: reset the interrupt controller and A20 line (DPMI 0.9) reserved, must be 0 (DPMI 1.0+) others: reserved, must be 0 CX = number of words to copy from protected mode to real mode stack ES:(E)DI = selector:offset of real mode call structure (see #03148) Return: CF clear if successful real mode call structure modified (all fields except SS:SP, CS:IP filled with return values from real mode interrupt) CF set on error AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see #03143) protected mode stack unchanged Notes: 16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI CS:IP in the real mode call structure is ignored for this call, instead, the indicated interrupt vector is used for the address the flags in the call structure are pushed on the real mode stack to form an interrupt stack frame, and the trace and interrupt flags are clear on entry to the handler DPMI will provide a small (30 words) real mode stack if SS:SP is zero the real mode handler must return with the stack in the same state as it was on being called SeeAlso: AX=0302h,AX=FF01h,INT 21/AX=2511h,INT 21/AH=E3h"OS/286" SeeAlso: INT 2C/AX=0026h,INT 2F/AX=FB42h/BX=000Dh Format of DPMI real mode call structure: Offset Size Description (Table 03148) 00h DWORD EDI 04h DWORD ESI 08h DWORD EBP 0Ch DWORD reserved (00h) 10h DWORD EBX 14h DWORD EDX 18h DWORD ECX 1Ch DWORD EAX 20h WORD flags 22h WORD ES 24h WORD DS 26h WORD FS 28h WORD GS 2Ah WORD IP 2Ch WORD CS 2Eh WORD SP 30h WORD SSTop
INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH FAR RETURN FRAME AX = 0301h BH = flags bit 0: reset the interrupt controller and A20 line (DPMI 0.9) reserved, must be 0 (DPMI 1.0+) others: reserved must be 0 CX = number of words to copy from protected mode to real mode stack ES:(E)DI = selector:offset of real mode call structure (see #03148 at INT 31/AX=0300h) Return: CF clear if successful real mode call structure modified (all fields except SS:SP, CS:IP filled with return values from real mode interrupt) CF set on error AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see #03143) protected mode stack unchanged Notes: 16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI the real mode procedure must exit with a FAR return DPMI will provide a small (30 words) real mode stack if SS:SP is zero the real mode handler must return with the stack in the same state as it was on being called SeeAlso: AX=0300h,AX=0302h,AX=FF02h,INT 21/AX=250Eh,INT 21/AH=E1h"OS/286" SeeAlso: INT 2C/AX=0025hTop
INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH IRET FRAME AX = 0302h BH = flags bit 0: reset the interrupt controller and A20 line (DPMI 0.9) reserved, must be 0 (DPMI 1.0+) others: reserved, must be 0 CX = number of words to copy from protected mode to real mode stack ES:(E)DI = selector:offset of real mode call structure (see #03148 at INT 31/AX=0300h) Return: CF clear if successful real mode call structure modified (all fields except SS:SP, CS:IP filled with return values from real mode interrupt) CF set on error AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see #03143) protected mode stack unchanged Notes: 16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI the flags in the call structure are pushed on the real mode stack to form an interrupt stack frame, and the trace and interrupt flags are clear on entry to the handler the real mode procedure must exit with an IRET DPMI will provide a small (30 words) real mode stack if SS:SP is zero the real mode handler must return with the stack in the same state as it was on being called SeeAlso: AX=0300hTop
INT 31 P - DPMI 0.9+ - ALLOCATE REAL MODE CALLBACK ADDRESS AX = 0303h DS:(E)SI = selector:offset of procedure to call ES:(E)DI = selector:offset of real mode call structure (see #03148) Return: CF clear if successful CX:DX = segment:offset of real mode call address (see #03149) CF set on error AX = error code (DPMI 1.0+) (8015h) (see #03143) Notes: the real mode call structure is static, causing reentrancy problems; its contents are only valid at the time of a callback the called procedure must modify the real mode CS:IP before returning values are returned to real mode by modifying the real mode call struc DPMI hosts must provide at least 16 callbacks per client the limited DPMI host built into Phar Lap's 286|DOS-Extender v2.5 does not support this function BUG: Windows NT 4.0 either ignores or clears the high 16 bits of EDI, causing an illegal instruction error if the real mode call structure's offset in ES is greater than 64K SeeAlso: AX=0304h,AX=0C00h (Table 03149) Values DPMI real-mode callback procedure is called with: DS:(E)SI = selector:offset of real mode SS:SP ES:(E)DI = selector:offset of real mode call structure SS:(E)SP = locked protected mode API stack interrupts disabled Return: (with IRET) ES:(E)DI = selector:offset of real mode call structure to restoreTop
INT 31 P - DPMI 0.9+ - FREE REAL MODE CALLBACK ADDRESS AX = 0304h CX:DX = real mode callback address Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8024h) (see #03143) Note: the limited DPMI host built into Phar Lap's 286|DOS-Extender v2.5 does not support this function SeeAlso: AX=0303hTop
INT 31 P - DPMI 0.9+ - GET STATE SAVE/RESTORE ADDRESSES AX = 0305h Return: CF clear AX = size in bytes of state buffer BX:CX = real mode address of procedure to save/restore state SI:(E)DI = protected mode procedure to save/restore state (see #03150) Notes: the buffer size will be zero if it is not necessary to preserve state 16-bit programs should call SI:DI, 32-bit programs should call SI:EDI this function is only needed if using the raw mode switch service SeeAlso: AX=0306h (Table 03150) Call DPMI state-save procedures with: AL = direction 00h save state 01h restore state ES:(E)DI -> state buffer Return: all registers preservedTop
INT 31 P - DPMI 0.9+ - GET RAW MODE SWITCH ADDRESSES AX = 0306h Return: CF clear BX:CX -> procedure to switch from real to protected mode (see #03151) SI:(E)DI -> procedure to switch from protected to real mode Notes: 16-bit programs should jump to SI:DI, 32-bit programs should use SI:EDI the caller must save and restore the state of the task with AX=0305h not supported by MS Windows 3.0 in Standard mode SeeAlso: AX=0305h (Table 03151) Values to JUMP at mode-switch procedures with: AX = new DS CX = new ES DX = new SS (E)BX = new (E)SP SI:(E)DI = new CS:(E)IP Notes: BP/EBP is preserved across the call, but AX/EAX, BX/EBX, CX/ECX, DX/EDX, SI/ESI, and DI/EDI will be undefined; FS and GS will be 0000h interrupts will stay disabled during the entire mode switch if they are disabled on entry to the mode-switch procedureTop
INT 31 P - DPMI 0.9+ - GET DPMI VERSION AX = 0400h Return: CF clear AH = major version of DPMI spec supported AL = two-digit minor version of DPMI spec supported BX = DPMI host flags (see #03152) CL = processor type (02h=80286, 03h=80386, 04h=80486) DH = curr value of virtual master interrupt controller base interrupt DL = curr value of virtual slave interrupt controller base interrupt BUG: Windows NT versions from the March 1993 beta to at least the Final release with fixes to CSD002 report version 0090h (0.144); this has reportedly been corrected in the Windows NT 3.5 beta SeeAlso: AX=0401h,INT 21/AX=250Ch,INT 2F/AX=1687h,INT 4B/AX=8102h/DX=0000h SeeAlso: INT 67/AX=DE0Ah Bitfields for DPMI host flags: Bit(s) Description (Table 03152) 0 running under an 80386 (32-bit) implementation 1 processor returns to real mode for reflected interrupts instead of V86 mode 2 virtual memory supported 3 reserved (undefined) 4-15 reserved (zero)Top
INT 31 P - DPMI 1.0+ - GET DPMI CAPABILITIES AX = 0401h ES:(E)DI -> 128-byte buffer for host description (see #03153) Return: CF clear if successful AX = capabilities (see #03154) CX = reserved (00h) DX = reserved (00h) buffer filled CF set on error (DPMI 0.9 only) SeeAlso: AX=0400h Format of DPMI host description: Offset Size Description (Table 03153) 00h BYTE host major version number 01h BYTE host minor version number 02h 126 BYTEs ASCIZ host vendor name Bitfields for DPMI capabilities: Bit(s) Description (Table 03154) 0 paged accessed/dirty supported (see AX=0506h,AX=0507h) 1 exceptions restartability supported 2 device mapping supported (see AX=0508h) 3 conventional memory mapping supported (see AX=0509h) 4 demand zero-fill supported 5 write-protect client capability supported 6 write-protect host capability supported 7-15 reservedTop
INT 31 P - DPMI 0.9+ - GET FREE MEMORY INFORMATION AX = 0500h ES:(E)DI -> buffer for memory information (see #03155) Return: CF clear Notes: 16-bit programs use ES:DI, 32-bit programs use ES:EDI this function must be considered advisory because other applications may affect the results at any time after the call fields not supported by the DPMI implementation are filled with FFFFFFFFh DPMI 1.0+ supports this function solely for backward compatibility; use AX=050Bh instead the limited DPMI host built into Phar Lap's 286|DOS-Extender v2.5 only returns the first field in the memory information record SeeAlso: AX=0501h,AX=050Bh,AX=0604h Format of DPMI memory information: Offset Size Description (Table 03155) 00h DWORD largest available block in bytes 04h DWORD maximum unlocked page allocation 08h DWORD maximum locked page allocation 0Ch DWORD total linear address space in pages 10h DWORD total unlocked pages 14h DWORD free pages 18h DWORD total physical pages 1Ch DWORD free linear address space in pages 20h DWORD size of paging file/partition in pages 24h 12 BYTEs reservedTop
INT 31 P - DPMI 0.9+ - ALLOCATE MEMORY BLOCK AX = 0501h BX:CX = size in bytes Return: CF clear if successful BX:CX = linear address of block SI:DI = memory block handle for resizing and freeing block CF set on error AX = error code (DPMI 1.0+) (8012h-8014h,8016h,8021h)(see #03143) Notes: no selectors are allocated the memory block is allocated unlocked (can be locked with AX=0600h) allocations are often page granular (see AX=0604h) under MS Windows 3.10 Enhanced mode with paging enabled, it is possible for this function to fail even if AX=0500h indicates that enough memory is available SeeAlso: AX=0000h,AX=0100h,AX=0500h,AX=0502h,AX=0503h,AX=0504h,AX=0D00h SeeAlso: INT 2F/AX=FB42h/BX=0002hTop
INT 31 P - DPMI 0.9+ - FREE MEMORY BLOCK AX = 0502h SI:DI = handle of memory block Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8023h) (see #03143) Note: any selectors allocated for the memory block must also be freed, preferably before freeing the memory block SeeAlso: AX=0001h,AX=0101h,AX=0501h,AX=0D01hTop
INT 31 P - DPMI 0.9+ - RESIZE MEMORY BLOCK AX = 0503h BX:CX = new size in bytes (nonzero) SI:DI = handle of memory block Return: CF clear if successful BX:CX = new linear address SI:DI = new handle of memory block CF set on error AX = error code (DPMI 1.0+) (8012h-8014h,8016h,8021h,8023h) (see #03143) Notes: any selectors pointing at the block must be updated the previous memory block handle becomes invalid an error is returned if the new size is 0 SeeAlso: AX=0102h,AX=0501h,AX=0505hTop
INT 31 P - DPMI 1.0+ - ALLOCATE LINEAR MEMORY BLOCK AX = 0504h EBX = page-aligned linear address of memory block (00000000h if any address is acceptable) ECX = size in bytes (nonzero) EDX = flags bit 0: set to create committed pages instead of uncommitted pages bits 1-31 reserved (0) Return: CF clear if successful EBX = linear address of memory block ESI = memory block handle CF set on error AX = error code (8001h,8012h-8014h,8016h,8021h,8025h)(see #03143) Note: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients SeeAlso: AX=0501h,AX=0505hTop
INT 31 P - DPMI 1.0+ - RESIZE LINEAR MEMORY BLOCK AX = 0505h ESI = memory block handle ECX = new size in bytes (nonzero) EDX = flags bit 0: create committed pages rather than uncommitted pages bit 1: segment descriptor update required ES:EBX -> buffer containing array of WORDs with selectors EDI = number of selectors in array bits 2-31 reserved (0) Return: CF clear if successful EBX = new linear base address ESI = new memory block handle CF set on error AX = error code (8001h,8012h-8014h,8016h,8021h,8023h)(see #03143) Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients the old memory block handle becomes invalid if EDX bit 1 set and the block's base address is changed, DPMI updates all descriptors for selectors in the update buffer which fall within the memory block SeeAlso: AX=0503h,AX=0504hTop
INT 31 P - DPMI 1.0+ - GET PAGE ATTRIBUTES AX = 0506h ESI = memory block handle EBX = offset in memory block of first page ECX = number of pages ES:EDX -> array of WORDs to hold page attributes (see #03156) Return: CF clear if successful buffer filled CF set on error AX = error code (8001h,8023h,8025h) (see #03143) Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients if EBX is not page-aligned, it will be rounded down SeeAlso: AX=0504h,AX=0507h,INT 21/AX=251Dh,INT 21/AX=EB00h Bitfields for DPMI page attribute word: Bit(s) Description (Table 03156) 0-2 page type 000 uncommitted 001 committed 010 mapped (see AX=0508h,AX=0509h) other currently unused 3 page is read/write rather than read-only 4 accessed/dirty bits supplied in bits 5 and 6 5 page has been accessed (only valid if bit 4 set) 6 page has been written (only valid if bit 4 set) 7-15 reserved (0)Top
INT 31 P - DPMI 1.0+ - MODIFY PAGE ATTRIBUTES AX = 0507h ESI = memory block handle EBX = offset in memory block of first page ECX = number of pages ES:EDX -> array of WORDs with new page attributes (see #03156) Return: CF clear if successful CF set on error AX = error code (8001h,8002h,8013h,8014h,8021h,8023h,8025h) (see #03143) ECX = number of pages which have been set Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients if EBX is not page-aligned, it will be rounded down SeeAlso: AX=0504h,AX=0506h,INT 21/AX=251EhTop
INT 31 P - DPMI 1.0+ - MAP DEVICE IN MEMORY BLOCK AX = 0508h ESI = memory block handle EBX = page-aligned offset within memory block of page(s) to be mapped ECX = number of pages to map EDX = page-aligned physical address of device Return: CF clear if successful CF set on error AX = error code (8001h,8003h,8023h,8025h) (see #03143) Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients support of this function is optional; hosts are also allowed to support the function for some devices but not others SeeAlso: AX=0504h,AX=0509h,AX=0800h,AX=0801hTop
INT 31 P - DPMI 1.0+ - MAP CONVENTIONAL MEMORY IN MEMORY BLOCK AX = 0509h ESI = memory block handle EBX = page-aligned offset within memory block of page(s) to map ECX = number of pages to map EDX = page-aligned linear address of conventional (below 1M) memory Return: CF clear if successful CF set on error AX = error code (8001h,8003h,8023h,8025h) (see #03143) Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients support of this function is optional SeeAlso: AX=0504h,AX=0508h,AX=0801hTop
INT 31 P - DPMI 1.0+ - GET MEMORY BLOCK SIZE AND BASE AX = 050Ah SI:DI = memory block handle Return: CF clear if successful SI:DI = size in bytes BX:CX = base address CF set on error AX = error code (8023h) (see #03143) SeeAlso: AX=0501h,AX=0504hTop
INT 31 P - DPMI 1.0+ - GET MEMORY INFORMATION AX = 050Bh ES:(E)DI -> 128-byte buffer for memory information (see #03157) Return: CF clear if successful CF set on error (DPMI 0.9 only) Note: 16-bit programs use ES:DI, 32-bit programs must use ES:EDI SeeAlso: AX=0500h Format of DPMI memory information: Offset Size Description (Table 03157) 00h DWORD total allocated bytes of physical memory controlled by host 04h DWORD total allocated bytes of virtual memory controlled by host 08h DWORD total available bytes of virtual memory controlled by host 0Ch DWORD total allocated bytes of virtual memory for curr virtual mach 10h DWORD total available bytes of virtual memory for curr virtual mach 14h DWORD total allocated bytes of virtual memory for current client 18h DWORD total available bytes of virtual memory for current client 1Ch DWORD total locked bytes for current client 20h DWORD maximum locked bytes for current client 24h DWORD highest linear address available to current client 28h DWORD largest available memory block in bytes 2Ch DWORD minimum allocation unit in bytes 30h DWORD allocation alignment unit size in bytes 34h 76 BYTEs reserved (00h)Top
INT 31 P - DPMI 0.9+ - LOCK LINEAR REGION AX = 0600h BX:CX = starting linear address SI:DI = size of region in bytes Return: CF clear if successful CF set on error none of the memory is locked AX = error code (DPMI 1.0+) (8013h,8017h,8025h) (see #03143) Notes: pages at beginning and end will be locked if the region overlaps them may be called multiple times for a given page; the DPMI host keeps a lock count for each page SeeAlso: AX=0004h,AX=0601h,INT 21/AX=251Ah,INT 21/AX=EB06hTop
INT 31 P - DPMI 0.9+ - UNLOCK LINEAR REGION AX = 0601h BX:CX = starting linear address SI:DI = size of region in bytes Return: CF clear if successful CF set on error none of the memory is unlocked AX = error code (DPMI 1.0+) (8002h,8025h) (see #03143) Notes: pages at beginning and end will be unlocked if the region overlaps them memory whose lock count has not reached zero remains locked SeeAlso: AX=0005h,AX=0600h,INT 21/AX=251Bh,INT 21/AX=EB07hTop
INT 31 P - DPMI 0.9+ - MARK REAL MODE REGION AS PAGEABLE AX = 0602h BX:CX = starting linear address SI:DI = size of region in bytes Return: CF clear if successful CF set on error none of the memory is made pageable AX = error code (DPMI 1.0+) (8002h,8025h) (see #03143) Notes: must relock all unlocked real mode memory before terminating process for DPMI 0.9; DPMI 1.0+ automatically relocks real mode memory pages at beginning and end will be unlocked if the region overlaps them pageability of real mode pages is binary, not a count SeeAlso: AX=0600h,AX=0603hTop
INT 31 P - DPMI 0.9+ - RELOCK REAL MODE REGION AX = 0603h BX:CX = starting linear address SI:DI = size of region in bytes Return: CF clear if successful CF set on error none of the memory is relocked AX = error code (DPMI 1.0+) (8002h,8013h,8025h) (see #03143) Notes: pages at beginning and end will be relocked if the region overlaps them pageability of real mode pages is binary, not a count SeeAlso: AX=0602hTop
INT 31 P - DPMI 0.9+ - GET PAGE SIZE AX = 0604h Return: CF clear if successful BX:CX = page size in bytes CF set on error AX = error code (DPMI 1.0+) (see also #03143) 8001h unsupported, 16-bit host BUG: the Borland C++ 3.1 DPMILOAD returns with CF clear but BX and CX unchangedTop
INT 31 Pu - DPMI 0.9+ - MARK PAGES AS PAGING CANDIDATES AX = 0700h BX:CX = starting linear page number SI:DI = number of pages to mark as paging candidates Return: ??? Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI specification, this function is called by MS Windows TASKMAN, PROGMAN, and KERNEL SeeAlso: AX=0701h,AX=0702hTop
INT 31 Pu - DPMI 0.9+ - DISCARD PAGES AX = 0701h BX:CX = starting linear page number SI:DI = number of pages to discard Return: ??? Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI specification, this function is called by MS Windows TASKMAN, PROGMAN, and KERNEL SeeAlso: AX=0700h,AX=0703hTop
INT 31 P - DPMI 0.9+ - MARK PAGE AS DEMAND PAGING CANDIDATE AX = 0702h BX:CX = starting linear address SI:DI = number of bytes to mark as paging candidates Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8025h) (see #03143) Notes: this function is advisory, and does not force immediate paging partial pages will not be discarded SeeAlso: AX=0700h,AX=0703hTop
INT 31 P - DPMI 0.9+ - DISCARD PAGE CONTENTS AX = 0703h BX:CX = starting linear address SI:DI = number of bytes to mark as discarded Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8025h) (see #03143) Notes: this function is advisory, and may be ignored by DPMI implementations partial pages will not be discarded SeeAlso: AX=0701h,AX=0702hTop
INT 31 P - DPMI 0.9+ - PHYSICAL ADDRESS MAPPING AX = 0800h BX:CX = physical address (should be above 1 MB) SI:DI = size in bytes Return: CF clear if successful BX:CX = linear address which maps the requested physical memory CF set on error AX = error code (DPMI 1.0+) (8003h,8021h) (see #03143) Notes: implementations may refuse this call because it can circumvent protects the caller must build an appropriate selector for the memory do not use for memory mapped in the first megabyte SeeAlso: AX=0002h,AX=0508h,AX=0509h,AX=0801h,INT 21/AX=250Ah,INT 21/AX=EB05hTop
INT 31 P - DPMI 1.0+ - FREE PHYSICAL ADDRESS MAPPING AX = 0801h BX:CX = linear address returned by AX=0800h Return: CF clear if successful CF set on error AX = error code (8025h) (see #03143) Note: should be called at end of access to device mapped with AX=0800h SeeAlso: AX=0508h,AX=0509h,AX=0800h,INT 21/AX=EB03hTop
INT 31 P - DPMI 0.9+ - GET AND DISABLE VIRTUAL INTERRUPT STATE AX = 0900h Return: CF clear virtual interrupts disabled AL = previous interrupt state (00h disabled, 01h enabled) AH preserved Notes: the previous state may be restored simply by executing another INT 31 a CLI instruction may be used if the previous state is unimportant, but should be assumed to be very slow due to trapping by the host SeeAlso: AX=0901h,AX=0902hTop
INT 31 P - DPMI 0.9+ - GET AND ENABLE VIRTUAL INTERRUPT STATE AX = 0901h Return: CF clear virtual interrupts enabled AL = previous interrupt state (00h disabled, 01h enabled) AH preserved Notes: the previous state may be restored simply by executing another INT 31 a STI instruction may be used if the previous state is unimportant, but should be assumed to be very slow due to trapping by the host SeeAlso: AX=0900h,AX=0902hTop
INT 31 P - DPMI 0.9+ - GET VIRTUAL INTERRUPT STATE AX = 0902h Return: CF clear AL = current interrupt state (00h disabled, 01h enabled) Note: should be used rather than PUSHF because that instruction yields the physical interrupt state rather than the per-client virtualized interrupt flag SeeAlso: AX=0900h,AX=0901hTop
INT 31 P - DPMI 0.9+ - GET VENDOR SPECIFIC API ENTRY POINT AX = 0A00h DS:(E)SI -> case-sensitive ASCIZ vendor name or identifier Return: CF clear if successful ES:(E)DI -> FAR extended API entry point DS, FS, GS, EAX, EBX, ECX, EDX, ESI, EBP destroyed CF set on error AX = error code (DPMI 1.0+) (8001h) (see #03143) Notes: extended API parameters are vendor-specific DPMI 1.0+ supports this function solely for backward compatibility; use INT 2F/AX=168Ah instead this function is not supported by MS Windows 3.10, BC++ 3.1 DPMILOAD, or QDPMI v1.0x; use INT 2F/AX=168Ah instead. It is supported by 386MAX v7.01. SeeAlso: INT 2F/AX=168AhTop
INT 31 P - DPMI 0.9+ - SET DEBUG WATCHPOINT AX = 0B00h BX:CX = linear address DL = size (1,2,4 bytes) DH = type (00h execute, 01h write, 02h read/write) Return: CF clear if successful BX = watchpoint handle CF set on error AX = error code (DPMI 1.0+) (8016h,8021h,8025h) (see #03143) SeeAlso: AX=0212h,AX=0601hTop
INT 31 P - DPMI 0.9+ - CLEAR DEBUG WATCHPOINT AX = 0B01h BX = watchpoint handle Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8023h) (see #03143) Note: the watchpoint handle is freed SeeAlso: AX=0B00hTop
INT 31 P - DPMI 0.9+ - GET STATE OF DEBUG WATCHPOINT AX = 0B02h BX = watchpoint handle Return: CF clear if successful AX = status flags bit 0: watch point has been executed since AX=0B00h or AX=0B03h CF set on error AX = error code (DPMI 1.0+) (8023h) (see #03143) SeeAlso: AX=0B00h,AX=0B03hTop
INT 31 P - DPMI 0.9+ - RESET DEBUG WATCHPOINT AX = 0B03h BX = watchpoint handle Return: CF clear if successful CF set on error AX = error code (DPMI 1.0+) (8023h) (see #03143) SeeAlso: AX=0B02hTop
INT 31 P - DPMI 1.0+ - INSTALL RESIDENT HANDLER INIT CALLBACK AX = 0C00h ES:(E)DI -> resident service provider structure (see #03158) Return: CF clear if successful CF set on error AX = error code (8015h,8021h,8025h) (see #03143 at AX=0000h) Note: calling this function declares an intent to provide resident protected mode services after terminating with AX=0C01h SeeAlso: AX=0303h,AX=0C01h Format of DPMI resident service provider structure: Offset Size Description (Table 03158) 00h QWORD descriptor for 16-bit data segment 08h QWORD descriptor for 16-bit code segment (zeros if not supported) 10h WORD offset of 16-bit callback procedure 12h 2 BYTEs reserved 14h QWORD descriptor for 32-bit data segment 1Ch QWORD descriptor for 32-bit code segment (zeros if not supported) 24h DWORD offset of 32-bit callback procedureTop
INT 31 P - DPMI 1.0+ - TERMINATE AND STAY RESIDENT AX = 0C01h BL = return code DX = number of paragraphs of DOS memory to reserve (0 or >= 6) Return: never Notes: should only be used if the program will only provide services to other DPMI programs any protected mode memory remains allocated to the program unless explicitly freed before this call must first call AX=0C00h or program will simply be terminated SeeAlso: AX=0C00h,INT 21/AH=31hTop
INT 31 P - DPMI 1.0+ - ALLOCATE SHARED MEMORY AX = 0D00h ES:(E)DI -> shared memory allocation request structure (see #03159) Return: CF clear if successful request structure updated CF set on error AX = error code (8012h,8013h,8014h,8016h,8021h) (see #03143) Note: first 16 bytes of memory block will be initialized to zeros on the first allocation SeeAlso: AX=0501h,AX=0D01h,AX=0D02h Format of DPMI shared memory allocation request structure: Offset Size Description (Table 03159) 00h DWORD requested length of shared memory block in bytes 04h DWORD (ret) allocated length of block 08h DWORD (ret) shared memory handle 0Ch DWORD (ret) linear address of memory block 10h PWORD selector:offset32 of ASCIZ name for memory block (name max 128 bytes) 16h 2 BYTEs reserved 18h 4 BYTEs reserved (00h)Top
INT 31 P - DPMI 1.0+ - FREE SHARED MEMORY AX = 0D01h SI:DI = shared memory block handle Return: CF clear if successful CF set on error AX = error code (8023h) (see #03143) Notes: handle becomes invalid after this call DPMI maintains separate global and virtual machine use counts for each shared memory block; when the global use counts reaches zero, the block is finally destroyed SeeAlso: AX=0502h,AX=0D00hTop
INT 31 P - DPMI 1.0+ - SERIALIZE SHARED MEMORY AX = 0D02h SI:DI = shared memory block handle DX = flags bit 0: return immediately rather than suspending if serialization unavailable bit 1: shared rather than exclusive serialization bits 2-15 reserved (0) Return: CF clear if successful CF set on error AX = error code (8004h,8005h,8017h-8019h,8023h) (see #03143) Notes: an exclusive serialization blocks any other serialization attempts for the same block by another virtual machine; a shared serialization blocks attempts at exclusive serialization by another virtual machine hosts are not required to detect deadlock a client's interrupt handler can cancel a serialization call which caused it to block by calling AX=0D03h SeeAlso: AX=0D00h,AX=0D03hTop
INT 31 P - DPMI 1.0+ - FREE SERIALIZATION ON SHARED MEMORY AX = 0D03h SI:DI = shared memory block handle DX = flags bit 0: release shared serialization rather than exclusive serialztn bit 1: free pending serialization bits 2-15 reserved (0) Return: CF clear if successful CF set on error AX = error code (8002h,8023h) (see #03143 at AX=0000h) SeeAlso: AX=0D00h,AX=0D02hTop
INT 31 P - DPMI 1.0+ - GET COPROCESSOR STATUS AX = 0E00h Return: CF clear AX = coprocessor status (see #03160) Note: supported by 386MAX v6.01, which otherwise only supports DPMI 0.9 SeeAlso: AX=0E01h Bitfields for DPMI coprocessor status: Bit(s) Description (Table 03160) 0 numeric coprocessor enabled for current client 1 client is emulating coprocessor 2 numeric coprocessor is present 3 host is emulating coprocessor instructions 4-7 coprocessor type 0000 none 0010 80287 0011 80387 0100 80486 with numeric coprocessor other reserved 8-15 not usedTop
INT 31 P - DPMI 1.0+ - SET EMULATION AX = 0E01h BX = coprocessor flag bits (see #03161) Return: CF clear if successful CF set on error AX = error code (8026h) (see #03143 at AX=0000h) Note: supported by 386MAX v6.01, which otherwise only supports DPMI 0.9 SeeAlso: AX=0E00h Bitfields for DPMI coprocessor flags: Bit(s) Description (Table 03161) 0 enable numeric coprocessor for current client 1 client will emulate coprocessor 2-15 not usedTop
INT 31 - Netroom3 DPMI.EXE v3.00 - ??? AH = 57h AL = subfunction (at least 02h,03h,04h,05h,07h,08h,09h,0Ah) ??? Return: ??? SeeAlso: INT 2C/AX=0000h"Cloaking"Top
INT 31 - Netroom3 DPMI.EXE v3.00 - SWITCH TO PROTECTED MODE AX = 5702h DX = PSP segment of caller STACK: WORD ??? WORD flags (bit 0 set if 32-bit program) Return: as for DPMI mode-switch entry point (see #02718 at INT 2F/AX=1687h) Note: this function is called by the real-mode DPMI mode-switch entry point SeeAlso: INT 2F/AX=1687hTop
INT 31 - DOS32 v3.0+ - GET DOS32 VERSION AND SELECTOR VALUES AX = EE00h Return: AL = minor version (BCD) AH = major version (BCD) DL = system type (1=raw DOS, 2=XMS, 4=VCPI, 8=DPMI) BX = selector of 4GB data segment with zero base address Program: DOS32 is a 32 bit DOS extender by Adam Seychell. SeeAlso: AX=EE02hTop
INT 31 - DOS32 v3.0+ - GET DOS32 ADDRESS INFORMATION AX = EE02h Return: AX = real-mode segment of temporary 8K buffer (v3.1+) EBX = 32bit linear address of the program segment EDX = Total size in bytes of the programs .EXE file after linking. ESI = offset address of PSP EDI = offset address of program environment ECX = offset address of the program's .EXE ASCIZ file name and path SeeAlso: AX=EE00h,AX=EE20hTop
INT 31 - DOS32 v3.2+ - SET UP A DOS32 LOADABLE LIBRARY AX = EE10h EDX -> library ASCIZ path\filename EBX = number of bytes to seek from beginning of file Return: CF clear if successful EAX = size of memory block required to store library EBX = size of library file CF set on error AL = error code. 01h error opening or reading file 02h bad DOS32 library file SeeAlso: AX=EE00h,AX=EE11hTop
INT 31 - DOS32 v3.2+ - LOAD LIBRARY FILE AX = EE11h EDX -> near pointer of memory block to store library Return: CF clear if successful EDX = near pointer to the dynamic library public CF set on error Note: must first successfuly call function AX=EE10h before calling this function SeeAlso: AX=EE00h,AX=EE10hTop
INT 31 - DOS32 v3.0+ - GET REAL MODE CALL BACK ADDRESS WITH RETF STACK FRAME AX = EE20h ESI = offset of the real mode call back function Return: CF clear if successful CX:DX = real mode address to call up to the protected mode procedure CF set on error SeeAlso: AX=EE00h,AX=EE02h,AX=EE21hTop
INT 31 - DOS32 v3.0+ - GET REAL MODE CALL BACK ADDRESS WITH IRET STACK FRAME AX = EE21h ESI = offset of the real mode call back function Return: CF clear if successful CX:DX = real mode address to call up to the protected mode procedure CF set on error SeeAlso: AX=EE20hTop
INT 31 - DOS32 v3.0+ - TERMINATE AND STAY RESIDENT AX = EE30h SeeAlso: AX=EE21h,AX=EE40h,INT 21/AH=31hTop
INT 31 - DOS32 v3.0+ - UNDO PREVIOUS MEMORY ALLOCATION or DMA BUFFER AX = EE40h Return: CF clear if successful CF set on error SeeAlso: AX=EE41h,AX=EE42hTop
INT 31 - DOS32 v3.0+ - ALLOCATE 16KB DMA BLOCK AX = EE41h Return: CF clear if successful EBX -> 16KB DMA block (physical address) EDX -> 16KB DMA block (offset address) CF set on error SeeAlso: AX=EE40h,AX=EE42hTop
INT 31 - DOS32 v3.0+ - ALLOCATE MEMORY BLOCK AX = EE42h EDX = size in bytes Return: CF clear if successful EAX = size in bytes EDX -> memory block CF set on error Note: size is rounded off to the next 4KB boundary SeeAlso: AX=EE40h,AX=EE41hTop
INT 31 P - CauseWay - "Info" - GET SYSTEM SELECTORS/FLAGS AX = FF00h Return: AX = selector for flag address space (base 00000000h, limit 4GB) BX = selector for current PSP segment (limit 0100h) (E)CX = size of DOS transfer buffer (max 64K) DX = real-mode segment address of DOS transfer buffer ES:(E)SI = protected-mode address of DOS transfer buffer EDI = system flags (see #03162) Program: CauseWay is a 386 DOS extender by Michael Devore and John Wildsmith for use with Watcom C++ or assembly language programs Notes: the entire transfer buffer can be addressed with a 16-bit offset in protected mode CauseWay always maps selector 0040h to the BIOS data segment at real-mode segment 0040h; when not running under a DPMI host, CauseWay also provides selectors A000h, B000h, and B800h mapped to video memory SeeAlso: AX=FF25h Bitfields for CauseWay system flags: Bit(s) Description (Table 03162) 0 32-bit code 1 virtual memory manage enabled 3-2 mode: 00 raw extended memory, 01 VCPI, 10 DPMI 4 DPMI available 5 VCPI available 6 no memory managers 7 application descriptor table type: 0 = GDT, 1 = LDT 14-8 reserved 15 debugging engine presentTop
INT 31 P - CauseWay - "IntXX" - SIMULATE REAL-MODE INTERRUPT AX = FF01h BL = interrupt number ES:(E)DI -> real-mode register list (see #03148 at AX=0300h) Return: register list updated Note: CauseWay fills in the values for SS, SP, and FLAGS itself, and ignores the values specified for CS and IP SeeAlso: AX=0300h,AX=FF02hTop
INT 31 P - CauseWay - "FarCallReal" - SIMULATE REAL-MODE FAR CALL AX = FF02h ES:(E)DI -> real-mode register list (see #03148 at AX=0300h) Return: register list updated SeeAlso: AX=0301h,AX=FF01hTop
INT 31 P - CauseWay - "GetSel" - ALLOCATE NEW SELECTOR AX = FF03h Return: CF clear if successful BX = new selector CF set on error Note: the new selector is initialized with a base address of 000000h, a limit of 0000h, and attributes read/write expand-up data SeeAlso: AX=FF04h,AX=FF05h,AX=FF06hTop
INT 31 P - CauseWay - "RelSel" - RELEASE A SELECTOR AX = FF04h BX = selector Return: CF clear if successful CF set on error SeeAlso: AX=FF03h,AX=FF06hTop
INT 31 P - CauseWay - "CodeSel" - CONVERT SELECTOR TO EXECUTABLE CODE SELECTOR AX = FF05h BX = selector CL = default operation size (00h = 16-bit, 01h = 32-bit) Return: CF clear if successful CF set on error SeeAlso: AX=FF03hTop
INT 31 P - CauseWay - "AliasSel" - CREATE READ/WRITE DATA ALIAS SELECTOR AX = FF06h BX = original selector Return: CF clear if successful AX = new data selector aliasing original selector CF set on error SeeAlso: AX=FF03h,AX=FF04hTop
INT 31 P - CauseWay - "GetSelDet" - GET SELECTOR BASE AND LIMIT AX = FF07h BX = selector Return: CF clear if successful CX:DX = base address SI:DI = limit (bytes) CF set on error SeeAlso: AX=FF08h,AX=FF09hTop
INT 31 P - CauseWay - "GetSelDet32" - GET SELECTOR BASE AND LIMIT (32-bit) AX = FF08h Return: CF clear if successful EDX = base address ECX = limit (bytes) CF set on error SeeAlso: AX=FF07h,AX=FF0AhTop
INT 31 P - CauseWay - "SetSelDet" - SET SELECTOR BASE AND LIMIT AX = FF09h BX = selector CX:DX = new base address SI:DI = new byte-granular limit Return: CF clear if successful CF set on error SeeAlso: AX=FF07h,AX=FF0AhTop
INT 31 P - CauseWay - "SetSelDet32" - SET SELECTOR BASE AND LIMIT (32-bit) AX = FF0Ah BX = selector EDX = new base address ECX = new byte-granular limit Return: CF clear if successful CF set on error SeeAlso: AX=FF08h,AX=FF09hTop
INT 31 P - CauseWay - "GetMem" - ALLOCATE BLOCK OF MEMORY AX = FF0Bh CX:DX = size in bytes (FFFFh:FFFFh to get size of largest available) Return: CF clear if successful BX = selector for accessing block if requested size not FFFFh:FFFFh CX:DX = size of largest available block if requested FFFFh:FFFFh CF set on error SeeAlso: AX=FF0Ch,AX=FF0Dh,AX=FF0Fh,AX=FF10h,AX=FF2ChTop
INT 31 P - CauseWay - "GetMem32" - ALLOCATE BLOCK OF MEMORY (32-bit) AX = FF0Ch ECX = size in bytes (FFFFFFFFh to get size of largest available block) Return: CF clear if successful BX = selector for accessing block if requested size not FFFFh:FFFFh ECX = size of largest available block if requested FFFFh:FFFFh CF set on error SeeAlso: AX=FF0Bh,AX=FF0Eh,AX=FF0Fh,AX=FF11hTop
INT 31 P - CauseWay - "ResMem" - RESIZE MEMORY BLOCK AX = FF0Dh BX = selector for block to be resized CX:DX = new size in bytes Return: CF clear if successful CF set on error Note: the memory block may have to be copied to another location in order to satisfy the requested new size, in which case the base address of the selector is updated SeeAlso: AX=FF0Bh,AX=FF0Eh,AX=FF12hTop
INT 31 P - CauseWay - "ResMem32" - RESIZE MEMORY BLOCK (32-bit) AX = FF0Eh BX = selector for block to be resized ECX = new size in bytes Return: CF clear if successful CF set on error Note: the memory block may have to be copied to another location in order to satisfy the requested new size, in which case the base address of the selector is updated SeeAlso: AX=FF0Ch,AX=FF0Dh,AX=FF13hTop
INT 31 P - CauseWay - "RelMem" - RELEASE PREVIOUSLY ALLOCATED MEMORY AX = FF0Fh BX = selector for block to be released Return: CF clear if successful CF set on error SeeAlso: AX=FF0Bh,AX=FF0Ch,AX=FF14hTop
INT 31 P - CauseWay - "GetMemLinear" - ALLOCATE MEMORY WITHOUT SELECTOR AX = FF10h CX:DX = size of block in bytes Return: CF clear if successful SI:DI = linear address of allocated block CF set on error Note: this function may return addresses above 16M SeeAlso: AX=FF0Bh,AX=FF11h,AX=FF12h,AX=FF14hTop
INT 31 P - CauseWay - "GetMemLinear32" - ALLOCATE MEMORY WITHOUT SELECTOR AX = FF11h ECX = size of block in bytes Return: CF clear if successful ESI = linear address of allocated block CF set on error Note: this function may return addresses above 16M SeeAlso: AX=FF0Ch,AX=FF10h,AX=FF13h,AX=FF14hTop
INT 31 P - CauseWay - "ResMemLinear" - RESIZE LINEAR MEMORY BLOCK AX = FF12h CX:DX = new size in bytes SI:DI = linear address of block to be resized Return: CF clear if successful SI:DI = new linear address of block CF set on error SeeAlso: AX=FF0Dh,AX=FF10h,AX=FF13hTop
INT 31 P - CauseWay - "ResMemLinear32" - RESIZE LINEAR MEMORY BLOCK (32-bit) AX = FF13h ECX = new size in bytes ESI = linear address of block to be resized Return: CF clear if successful ESI = new linear address of block CF set on error SeeAlso: AX=FF0Eh,AX=FF11h,AX=FF12hTop
INT 31 P - CauseWay - "RelMemLinear" - RELEASE LINEAR MEMORY BLOCK AX = FF14h SI:DI = linear address of block to be released Return: CF clear if successful CF set on error SeeAlso: AX=FF0Fh,AX=FF10h,AX=FF15hTop
INT 31 P - CauseWay - "RelMemLinear32" - RELEASE LINEAR MEMORY BLOCK (32-bit) AX = FF15h ESI = linear address of block to be released Return: CF clear if successful CF set on error SeeAlso: AX=FF0Fh,AX=FF11h,AX=FF15hTop
INT 31 P - CauseWay - "GetMemNear" - ALLOCATE APPLICATION-RELATIVE MEMORY AX = FF16h EBX = size in bytes of block to allocate Return: CF clear if successful ESI = application-relative linear address of allocated block CF set on error SeeAlso: AX=FF17h,AX=FF18h,AX=FF19hTop
INT 31 P - CauseWay - "ResMemNear" - RESIZE APPLICATION-RELATIVE MEMORY BLOCK AX = FF17h EBX = size in bytes of block to allocate ESI = application-relative linear address of block Return: CF clear if successful ESI = new application-relative linear address of block CF set on error SeeAlso: AX=FF16h,AX=FF18h,AX=FF19hTop
INT 31 P - CauseWay - "RelMemNear" - RELEASE APPLICATION-RELATIVE MEMORY BLOCK AX = FF18h ESI = application-relative linear address of block Return: CF clear if successful CF set on error SeeAlso: AX=FF16h,AX=FF17h,AX=FF19hTop
INT 31 P - CauseWay - "Linear2Near" - CONVERT LINEAR TO APP-RELATIVE ADDRESS AX = FF19h ESI = linear address Return: ESI = application-relative linear address SeeAlso: AX=FF1AhTop
INT 31 P - CauseWay - "Near2Linear" - CONVERT APP-RELATIVE TO LINEAR ADDRESS AX = FF1Ah ESI = application-relative linear address Return: ESI = linear address SeeAlso: AX=FF19hTop
INT 31 P - CauseWay - "LockMem" - LOCK REGION OF MEMORY AX = FF1Bh BX:CX = starting linear address SI:DI = size of region in bytes Return: CF clear if successful CF set on error Desc: prevent memory from being swapped out by the virtual memory manager Note: locks are applied on 4K page boundaries, so memory above and below the specified region may be locked as well SeeAlso: AX=FF1Ch,AX=FF1DhTop
INT 31 P - CauseWay - "LockMem32" - LOCK REGION OF MEMORY (32-bit) AX = FF1Ch ESI = starting linear address ECX = size of region in bytes Return: CF clear if successful CF set on error Desc: prevent memory from being swapped out by the virtual memory manager Note: locks are applied on 4K page boundaries, so memory above and below the specified region may be locked as well SeeAlso: AX=FF1Bh,AX=FF1Eh,AX=FF1FhTop
INT 31 P - CauseWay - "UnLockMem" - UNLOCK REGION OF MEMORY AX = FF1Dh BX:CX = starting linear address SI:DI = size of region in bytes Return: CF clear if successful CF set on error Desc: allow memory to be swapped out by the virtual memory manager Note: locks are applied on 4K page boundaries, so memory above and below the specified region may be unlocked as well SeeAlso: AX=FF1Bh,AX=FF1EhTop
INT 31 P - CauseWay - "UnLockMem32" - UNLOCK REGION OF MEMORY (32-bit) AX = FF1Eh ESI = starting linear address ECX = size of region in bytes Return: CF clear if successful CF set on error Desc: allow memory to be swapped out by the virtual memory manager Note: locks are applied on 4K page boundaries, so memory above and below the specified region may be unlocked as well SeeAlso: AX=FF1Ch,AX=FF1Dh,AX=FF20hTop
INT 31 P - CauseWay - "LockMemNear" - LOCK APPLICATION-RELATIVE MEMORY REGION AX = FF1Fh ESI = starting application-relative linear address EBX = size of region in bytes Return: CF clear if successful CF set on error Desc: prevent memory from being swapped out by the virtual memory manager Note: locks are applied on 4K page boundaries, so memory above and below the specified region may be locked as well SeeAlso: AX=FF1Ch,AX=FF20hTop
INT 31 P - CauseWay - "UnLockMemNear" - UNLOCK APP-RELATIVE MEMORY REGION AX = FF20h ESI = starting application-relative linear address ECX = size of region in bytes Return: CF clear if successful CF set on error Desc: allow memory to be swapped out by the virtual memory manager Note: locks are applied on 4K page boundaries, so memory above and below the specified region may be unlocked as well SeeAlso: AX=FF1Eh,AX=FF1FhTop
INT 31 P - CauseWay - "GetMemDOS" - ALLOCATE CONVENTIONAL MEMORY AX = FF21h BX = number of paragraphs to allocate Return: CF clear if successful AX = real-mode segment of allocated block DX = initial selector for block CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) BX = size of largest available block Note: if the requested size is greater than 64K, contiguous selectors will be allocated, one for each 64K; for 32-bit applications, the first selector's limit will be set to the size of the entire block, while that selector will have a limit of 64K for 16-bit applications. All selectors after the first one have a limit of 64K except the final one SeeAlso: AX=FF22h,AX=FF23h,INT 21/AH=48hTop
INT 31 P - CauseWay - "ResMemDOS" - RESIZE CONVENTIONAL MEMORY BLOCK AX = FF22h BX = new size in paragraphs DX = initial selector for block Return: CF clear if successful CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) BX = maximum number of paragraphs available Note: this function will also fail if the block is expanded past a 64K boundary and the next selector is already in use SeeAlso: AX=FF21h,AX=FF23h,INT 21/AH=49hTop
INT 31 P - CauseWay - "RelMemDOS" - RELEASE CONVENTIONAL MEMORY BLOCK AX = FF23h DX = initial selector for block Return: CF clear if successful CF set on error AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h) Note: all descriptors allocated for the block are freed SeeAlso: AX=FF21h,AX=FF22h,INT 21/AH=4AhTop
INT 31 P - CauseWay - "ExecOverlay" - LOAD AND OPTIONALLY EXECUTE APP CODE AX = FF24h EBX = flags bit 0: don't execute (overlay only) bit 1: don't preserve relocation information ES:EDX -> filename (see also #03163) FS:ESI -> commandline (ESI = 00000000h if no commandline) GS:EDI -> name (CW's /o option) Return: CF clear if successful ---EBX bit 0 set--- CX:EDX = program entry point (CS:EIP) SI = segment of PSP ---EBX bit 1 set--- BX:EAX = initial SS:ESP EDI high word = base segment EDI low word = number of segments EBP = start of segment definitions CF set on error AX = error code 0001h DOS file access error 0002h not a CuaseWay 3P file 0003h not enough memory SeeAlso: AX=FF2Ah,INT 21/AH=4Bh Format of CauseWay executable: Offset Size Description (Table 03163) 00h 2 BYTEs signature "3P" 02h DWORD size of header data in bytes 06h DWORD size of EXE image data in bytes 0Ah DWORD number of bytes of program memory required 0Eh WORD number of segment definitions (see #03165) 10h DWORD number of relocation table entries 14h DWORD offset of program entry point 18h WORD segment list entry number for entry point's CS 1Ah DWORD initial ESP 1Eh WORD segment list entry number for initial SS 20h DWORD control flags (see #03164) 24h DWORD automatic stack size in bytes if ESP entry = 00000000h 28h BYTE length of name (name follows program image) 29h 23 BYTEs reserved SeeAlso: #01594,#01609 at INT 21/AH=4Bh Bitfields for CauseWay executable control flags: Bit(s) Description (Table 03164) 0 16-bit interrupt stack frame 7 descriptor table type (0 = GDT, 1 = LDT) 14 16-bit default data size 31 compressed EXE image Note: bits 0 and 14 should always be equal SeeAlso: #03163 Format of CauseWay segment definition [array]: Offset Size Description (Table 03165) 00h DWORD start offset within program image 04h DWORD length and type bits 0-19: length bit 20: granularity (if set, length is in 4K pages) bits 21-24: type 0000 code 0001 read/write data 0010 stack 0011 read-only data bit 25: force segment descriptor's D bit to 0 bit 26: force segmetn descriptor's D bit to 1 SeeAlso: #03163Top
INT 31 P - CauseWay - "GetDOSTrans" - GET DOS TRANSFER BUFFER AX = FF25h Return: BX = real-mode segment of transfer buffer ECX = transfer buffer size DX = protected-mode selector for transfer buffer Note: the default buffer size of 8K is sufficient for most applications, but an application performing large amounts of file I/O may benefit from allocating its own, larger buffer SeeAlso: AX=FF00h,AX=FF26hTop
INT 31 P - CauseWay - "SetDOSTrans" - SET DOS TRANSFER BUFFER AX = FF26h BX = real-mode segment of new transfer buffer ECX = new transfer buffer size DX = protected-mode selector for new transfer buffer Return: nothing Note: the specific buffer must be located in conventional memory; only the first 64K will be used SeeAlso: AX=FF25hTop
INT 31 P - CauseWay v1.3 - "GetMCBSize" - GET CURRENT MCB ALLOCATION BLOCK SIZE AX = FF27h Return: ECX = current threshold Desc: determine the memory allocation size below which CauseWay will use internal MCB chains rather than allocating full 4K pages via DPMI SeeAlso: AX=FF00h,AX=FF28hTop
INT 31 P - CauseWay v1.3 - "SetMCBSize" - SET MCB MEMORY ALLOCATION BLOCK SIZE AX = FF28h ECX = new threshold (0000000h to disable MCB memory allocation system) Return: CF clear if successful threshold unchanged (default 16K) CF set on error (threshold > 64K) Desc: specify the memory allocation size below which CauseWay will use internal MCB chains rather than allocating full 4K pages via DPMI Note: the specified threshold will be rounded up to the next higher multiple of 4K SeeAlso: AX=FF00h,AX=FF27hTop
INT 31 P - CauseWay v1.3 - "GetSels" - ALLOCATE MULTIPLE SELECTORS AX = FF29h CX = number of selectors to allocate Return: BX = base selector Desc: allocate multiple contiguous selectors, initializing each to have a base address and limit of zero SeeAlso: AX=FF00h,AX=FF04hTop
INT 31 P - CauseWay v1.3 - "cwLoad" - LOAD ANOTHER CAUSEWAY PROGRAM AS OVERLAY AX = FF2Ah DS:EDX -> filename Return: CF clear if successful CX:EDX = CS:EIP of entry point BX:EAX = initial SS:ESP for program SI = PSP for overlay program CF set on error AX = error code (01h file error, 02h not a 3P file, 03h no memory) Note: the returned PSP can be given to "RelMem" (AX=FF0Fh) to release the overlay's memory and selectors; only selectors and memory allocated during loading will be freed by RelMem unless one switches PSPs with INT 21/AH=50h SeeAlso: AX=FF00h,AX=FF24hTop
INT 31 P - CauseWay v1.3 - "cwcInfo" - VALIDATE AND GET SIZE OF CWC FILE AX = FF2Bh BX = file handle for CWC-compressed file Return: CF clear if successful ECX = expanded file size CF set on error (not a CWC-compressed file) SeeAlso: AX=FF00h,AX=FFFBhTop
INT 31 P - CauseWay v1.3 - "GetMemSO" - ALLOCATE MEMORY AND RETURN SEL:OFFSET AX = FF2Ch CX:DX = block size in bytes Return: CF clear if successful SI:DI = selector:offset of allocated memory CF set on error Note: unlike "GetMem" (AX=FF0Bh), this function will reuse selectors until a segment is full, rather than allocating a new selector for each memory block SeeAlso: AX=FF00h,AX=FF2Dh,AX=FF2EhTop
INT 31 P - CauseWay v1.3 - "ResMemSO" - RESIZE SELECTOR:OFFSET MEMORY BLOCK AX = FF2Dh SI:DI = selector:offset for memory block CX:DX = new size of block Return: CF clear if successful SI:DI = new selector:offset for memory block CF set on error SeeAlso: AX=FF00h,AX=FF2Ch,AX=FF2EhTop
INT 31 P - CauseWay v1.3 - "RelMemSO" - RELEASE SELECTOR:OFFSET MEMORY BLOCK AX = FF2Eh SI:DI = selector:offset for memory block SeeAlso: AX=FF00hTop
INT 31 P - Causeway v1.3 - "cwcLoad" - LOAD/EXPAND CWC-COMPRESSED FILE AX = FFFBh BX = source file handle ES:EDI -> memory buffer into which to expand file Return: CF clear if successful ECX = expanded data length CF set on error EAX = error code (01h file error, 02h bad data, 03h not CWC file) Note: the provided file may consist of the concatenation of several CWC files; the one beginning at the current file position will be expanded SeeAlso: AX=FF2BhTop
INT 32 - VIRUS - "Tiny" Viruses - ORIGINAL INT 21h VECTOR SeeAlso: INT 21/AX=FFFFh"VIRUS",INT 31"VIRUS",INT 44"VIRUS"Top
INT 32 - VIRUS - "Plovdiv 1.3"/"Damage 1.3" - ORIGINAL INT 21h VECTOR SeeAlso: INT 31"VIRUS",INT 9E"VIRUS"Top
INT 32 - NOISE.SYS 0.53 - API AH = 6Eh (function ID) AL = subfunction (see INT 32/AX=6E00h) Return: CF set on error AL = error code (see #03166) CF clear if successful Notes: INT 32 is only a proposed interface for NOISE.SYS. Use the IOCTL READ from the RANDOM device to determine the interrupt and function ID used by the driver, since future versions may use the Alternate Multiplex Interrupt (AMIS) at INT 2Dh. the beta v0.51 had a substantially different API on INT 32/AH=6Eh (Table 03166) Values for NOISE.SYS error codes: 00h subfunction not supported FBh random pool is empty FCh quality of sample is too low FDh too many processes using the API or driver FEh subfunction is disabled in the current build FFh successfulTop
INT 32 - NOISE.SYS v0.53+ - INSTALLATION CHECK AX = 6E00h Return: AL = installation status 00h not installed FFh installed CX = version (ie, 0123h = Version 1.2.3) DX:DI -> signature stringTop
INT 32 - NOISE.SYS v0.53+ - GET ENTRY POINT AX = 6E01h Return: AL = FFh DX:DI -> far call hookTop
INT 32 - NOISE.SYS v0.55+ - GET INTERRUPT HOOK LIST AX = 6E04h Return: AL = status 00h = unimplemented 04h = DX:BX -> interrupt hook list FEh = subfunction disabled Note: the hook list array ends with API interrupt (usually 32h, although it will differ if the API is installed at another interrupt)Top
INT 32 - NOISE.SYS v0.55+ - GET DEVICE DRIVER HEADER AX = 6E06h Return: AL = number of device drivers in NOISE.SYS chain 02h = default (for RANDOM and URANDOM devices) AH = AMIS device driver flags (set to 00h for now) DX:BX -> first device in chain (see #01646) SeeAlso: INT 2D/AL=06hTop
INT 32 - NOISE.SYS v0.53+ - STATUS CHECK AX = 6E10h Return: CF set on error AL = error code (FDh) (see #03166) CF clear if successful AL = status FFh successful BH = number of processes using the API CX = number of random bytes waiting DX = maximum possible bytes waiting (if CX=DX, the pool is full) Note: this subfunction is a convenient way to check the driver if any fresh bytes are waiting in the output pool. SeeAlso: INT 32/AH=6Eh,AX=6E00h,AX=6E11hTop
INT 32 - NOISE.SYS v0.53+ - GET ENTROPY ESTIMATE AX = 6E11h Return: CF set on error AL = error code (00h,FDh,FEh) (see #03166) CF clear if successful EBX = estimated bit count (refer to note below) CL = FRACBITS (number of fractional bits) EDX = low 32-bits of total number of samples added Note: the estimated number of fresh random bits is equal to (EAX >> FRACBITS) + ((EAX & ((1 << FRACBITS)-1) / (1 << FRACBITS)) SeeAlso: AH=6Eh,AX=6E00hTop
INT 32 - NOISE.SYS v0.53+ - ADD SAMPLE FROM FAST TIMER AX = 6E12h Return: CF set on error AL = error code (FCh,FDh,FEh) (see #03166) CF clear if successful CX = number of random bytes waiting Note: subfunctions 12h and 13h are meant for applications or devices which are able to gather entropy from other sources which are not polled by NOISE.SYS (for example, a communications driver could use this call to sample packet arrival times). SeeAlso: AX=6E00h,AX=6E10h,AX=6E13hTop
INT 32 - NOISE.SYS v0.53+ - ADD 16-BIT SAMPLE TO RANDOM POOL AX = 6E13h DX = sample Return: CF set on error AL = error code (FCh,FEh) (see #03166) CF clear if successful CX = number of random bytes waiting SeeAlso: AX=6E00h,AX=6E11hTop
INT 32 - NOISE.SYS v0.53+ - GET FLAGS AX = 6E14h Return: BX = flags (see #03167) CX = mask of settable flags in BX SeeAlso: AX=6E00h,AX=6E15h Bitfields for NOISE.SYS flags: Bit(s) Description (Table 03167) 0 MS Windows active 1-5 reserved 6 clock drift sampling 7 video retrace drift sampling 8 network access sampling (not implemented yet in 0.53) 9 CD-ROM access sampling (not implemented yet in 0.53) 10 DOS spinner 11 DOS process start/end and miscellaneous process activity sampling 12 mouse movement/button sampling 13 disk sampling (INT 13) 14 keystroke timings 15 reserved for hardware RNGTop
INT 32 - NOISE.SYS v0.53+ - SET FLAGS AX = 6E15h BX = flags (see #03167) Return: BX = new flags Note: flags which AX=6E14h indicates are not settable should be masked off by ANDing with the CX returned by AX=6E14h SeeAlso: AX=6E00h,AX=6E14hTop
INT 32 - NOISE.SYS v0.53+ - READ URANDOM BYTES AX = 6E16h CX = number of bytes ES:DI -> buffer Return: CF set on error AL = error code (FDh,FEh) (see #03166) CF clear if successful CX = number of random bytes read SeeAlso: AX=6E00h,AX=6E12h,AX=6E17hTop
INT 32 - NOISE.SYS v0.53+ - READ RANDOM BYTES AX = 6E17h CX = number of bytes ES:DI -> buffer Return: CF set on error AL = error code (FBh,FDh,FEh) (see #03166) CF clear if successful CX = number of random bytes read SeeAlso: AX=6E00h,AX=6E16hTop
INT 32 - NOISE.SYS v0.6+ - READ CONTROL RECORD AX = 6E18h CX = buffer size ES:DI -> buffer Return: AL = status 00h unimplemented (before v0.6) FEh subfunction is disabled FFh successful CX = number of bytes read Note: the control record corresponds to the IOCTL Read record for the RANDOM deviceTop
INT 32 - NOISE.SYS - RESERVED FOR FUTURE USE AH = 6Eh AL = 19h to 3Fh Return: AL = 00h Note: these functions are reserved for future use; user additions to the the driver should use subfunctions 40h to FFh.Top
INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS AX = 0000h Return: AX = status 0000h hardware/driver not installed FFFFh hardware/driver installed BX = number of buttons 0000h other than two 0002h two buttons (many drivers) 0003h Mouse Systems/Logitech three-button mouse FFFFh two buttons Notes: since INT 33 might be uninitialized on old machines, the caller should first check that INT 33 is neither 0000h:0000h nor points at an IRET instruction (BYTE CFh) before calling this API to use mouse on a Hercules-compatible monographics card in graphics mode, you must first set 0040h:0049h to 6 for page 0 or 5 for page 1, and then call this function. Logitech drivers v5.01 and v6.00 reportedly do not correctly use Hercules graphics in dual-monitor systems, while version 4.10 does. the Logitech mouse driver contains the signature string "LOGITECH" three bytes past the interrupt handler; many of the Logitech mouse utilities check for this signature. Logitech MouseWare v6.30 reportedly does not support CGA video modes if no CGA is present when it is started and the video board is later switched into CGA emulation SeeAlso: AX=0011h,AX=0021h,AX=002Fh,INT 62/AX=007Ah,INT 74Top
INT 33 - MS MOUSE v1.0+ - SHOW MOUSE CURSOR AX = 0001h SeeAlso: AX=0002h,INT 16/AX=FFFEh,INT 62/AX=007Bh,INT 6F/AH=06h"F_TRACK_ON"Top
INT 33 - MS MOUSE v1.0+ - HIDE MOUSE CURSOR AX = 0002h Note: multiple calls to hide the cursor will require multiple calls to function 01h to unhide it. SeeAlso: AX=0001h,AX=0010h,INT 16/AX=FFFFh,INT 62/AX=007Bh SeeAlso: INT 6F/AH=08h"F_TRACK_OFF"Top
INT 33 - MS MOUSE v1.0+ - RETURN POSITION AND BUTTON STATUS AX = 0003h Return: BX = button status (see #03168) CX = column DX = row Note: in text modes, all coordinates are specified as multiples of the cell size, typically 8x8 pixels SeeAlso: AX=0004h,AX=000Bh,INT 2F/AX=D000h"ZWmous" Bitfields for mouse button status: Bit(s) Description (Table 03168) 0 left button pressed if 1 1 right button pressed if 1 2 middle button pressed if 1 (Mouse Systems/Logitech/Genius)Top
INT 33 - MS MOUSE v1.0+ - POSITION MOUSE CURSOR AX = 0004h CX = column DX = row Note: the row and column are truncated to the next lower multiple of the cell size (typically 8x8 in text modes); however, some versions of the Microsoft documentation incorrectly state that the coordinates are rounded SeeAlso: AX=0003h,INT 62/AX=0081h,INT 6F/AH=10h"F_PUT_SPRITE"Top
INT 33 - MS MOUSE v1.0+ - RETURN BUTTON PRESS DATA AX = 0005h BX = button number (see #03169) Return: AX = button states (see #03168) BX = number of times specified button has been pressed since last call CX = column at time specified button was last pressed DX = row at time specified button was last pressed Note: at least for the Genius mouse driver, the number of button presses returned is limited to 7FFFh SeeAlso: AX=0006h,INT 62/AX=007Ch (Table 03169) Values for mouse button number: 0000h left 0001h right 0002h middle (Mouse Systems/Logitech/Genius mouse)Top
INT 33 - MS MOUSE v1.0+ - RETURN BUTTON RELEASE DATA AX = 0006h BX = button number (see #03169) Return: AX = button states (see #03168) BX = number of times specified button has been released since last call CX = column at time specified button was last released DX = row at time specified button was last released Note: at least for the Genius mouse driver, the number of button releases returned is limited to 7FFFh SeeAlso: AX=0005h,INT 62/AX=007ChTop
INT 33 - MS MOUSE v1.0+ - DEFINE HORIZONTAL CURSOR RANGE AX = 0007h CX = minimum column DX = maximum column Note: in text modes, the minimum and maximum columns are truncated to the next lower multiple of the cell size, typically 8x8 pixels SeeAlso: AX=0008h,AX=0010h,AX=0031h,INT 62/AX=0080h SeeAlso: INT 6F/AH=0Ch"F_SET_LIMITS_X"Top
INT 33 - MS MOUSE v1.0+ - DEFINE VERTICAL CURSOR RANGE AX = 0008h CX = minimum row DX = maximum row Note: in text modes, the minimum and maximum rows are truncated to the next lower multiple of the cell size, typically 8x8 pixels SeeAlso: AX=0007h,AX=0010h,AX=0031h,INT 62/AX=0080h SeeAlso: INT 6F/AH=0Eh"F_SET_LIMITS_Y"Top
INT 33 - MS MOUSE v3.0+ - DEFINE GRAPHICS CURSOR AX = 0009h BX = column of cursor hot spot in bitmap (-16 to 16) CX = row of cursor hot spot (-16 to 16) ES:DX -> mask bitmap (see #03170) Notes: in graphics modes, the screen contents around the current mouse cursor position are ANDed with the screen mask and then XORed with the cursor mask the Microsoft mouse driver v7.04 and v8.20 uses only BL and CL, so the hot spot row/column should be limited to -128..127 Microsoft KnowledgeBase article Q19850 states that the high bit is right-most, but that statement is contradicted by all other available documentation SeeAlso: AX=000Ah,AX=0012h,AX=002Ah,INT 62/AX=007Fh,INT 6F/AH=0Ah"F_DEF_MASKS" Format of mouse mask bitmap: Offset Size Description (Table 03170) 00h 16 WORDs screen mask 10h 16 WORDs cursor mask Note: each word defines the sixteen pixels of a row, low bit rightmostTop
INT 33 - MS MOUSE v3.0+ - DEFINE TEXT CURSOR AX = 000Ah BX = hardware/software text cursor 0000h software CX = screen mask DX = cursor mask 0001h hardware CX = start scan line DX = end scan line Note: when the software cursor is selected, the character/attribute data at the current screen position is ANDed with the screen mask and then XORed with the cursor mask SeeAlso: AX=0009h,INT 62/AX=007EhTop
INT 33 - MS MOUSE v1.0+ - READ MOTION COUNTERS AX = 000Bh Return: CX = number of mickeys mouse moved horizontally since last call DX = number of mickeys mouse moved vertically Notes: a mickey is the smallest increment the mouse can sense positive values indicate down/right SeeAlso: AX=0003h,AX=001Bh,AX=0027hTop
INT 33 - MS MOUSE v1.0+ - DEFINE INTERRUPT SUBROUTINE PARAMETERS AX = 000Ch CX = call mask (see #03171) ES:DX -> FAR routine (see #03172) SeeAlso: AX=0018h Bitfields for mouse call mask: Bit(s) Description (Table 03171) 0 call if mouse moves 1 call if left button pressed 2 call if left button released 3 call if right button pressed 4 call if right button released 5 call if middle button pressed (Mouse Systems/Logitech/Genius mouse) 6 call if middle button released (Mouse Systems/Logitech/Genius mouse) 7-15 unused Note: some versions of the Microsoft documentation incorrectly state that CX bit 0 means call if mouse cursor moves (Table 03172) Values interrupt routine is called with: AX = condition mask (same bit assignments as call mask) BX = button state CX = cursor column DX = cursor row SI = horizontal mickey count DI = vertical mickey count Notes: some versions of the Microsoft documentation erroneously swap the meanings of SI and DI in text modes, the row and column will be reported as a multiple of the character cell size, typically 8x8 pixelsTop
INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION ON AX = 000Dh SeeAlso: AX=000Eh,INT 10/AH=04hTop
INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION OFF AX = 000Eh SeeAlso: AX=000DhTop
INT 33 - MS MOUSE v1.0+ - DEFINE MICKEY/PIXEL RATIO AX = 000Fh CX = number of mickeys per 8 pixels horizontally (default 8) DX = number of mickeys per 8 pixels vertically (default 16) SeeAlso: AX=0013h,AX=001Ah,INT 62/AX=0082hTop
INT 33 - MS MOUSE v1.0+ - DEFINE SCREEN REGION FOR UPDATING AX = 0010h CX,DX = X,Y coordinates of upper left corner SI,DI = X,Y coordinates of lower right corner Note: mouse cursor is hidden in the specified region, and needs to be explicitly turned on again SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"Genius MOUSE",AX=0031hTop
INT 33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING AX = 0010h ES:DX -> update region list (see #03173) Notes: mouse cursor is hidden in the specified region, and needs to be explicitly turned on again this version of the call is described in an August 1988 version of the Genius Mouse programmer's reference; it has been changed to conform to the Microsoft version shown above by version 9.06 (and possibly earlier versions) SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"MS MOUSE" Format of Genius Mouse update region list: Offset Size Description (Table 03173) 00h WORD left-most column 02h WORD top-most row 04h WORD right-most column 06h WORD bottom-most rowTop
INT 33 - Genius Mouse 9.06 - GET NUMBER OF BUTTONS AX = 0011h Return: AX = FFFFh BX = number of buttons SeeAlso: AX=0000hTop
INT 33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK AX = 0012h BH = cursor width in words CH = rows in cursor BL = horizontal hot spot (-16 to 16) CL = vertical hot spot (-16 to 16) ES:DX -> bit map of screen and cursor maps Return: AX = FFFFh if successful SeeAlso: AX=0009h,AX=002Ah,AX=0035hTop
INT 33 - MS MOUSE v5.0+ - DEFINE DOUBLE-SPEED THRESHOLD AX = 0013h DX = threshold speed in mickeys/second, 0000h = default of 64/second Note: if speed exceeds threshold, the cursor's on-screen motion is doubled SeeAlso: AX=000Fh,AX=001Bh,AX=002ChTop
INT 33 - MS MOUSE v3.0+ - EXCHANGE INTERRUPT SUBROUTINES AX = 0014h CX = call mask (see #03171) ES:DX -> FAR routine Return: CX = call mask of previous interrupt routine ES:DX = FAR address of previous interrupt routine SeeAlso: AX=000Ch,AX=0018hTop
INT 33 - MS MOUSE v6.0+ - RETURN DRIVER STORAGE REQUIREMENTS AX = 0015h Return: BX = size of buffer needed to store driver state SeeAlso: AX=0016h,AX=0017h,AX=0042hTop
INT 33 - MS MOUSE v6.0+ - SAVE DRIVER STATE AX = 0016h BX = size of buffer (see AX=0015h) ES:DX -> buffer for driver state Note: although not documented (since the Microsoft driver does not use it), many drivers appear to require BX on input SeeAlso: AX=0015h,AX=0017hTop
INT 33 - MS MOUSE v6.0+ - RESTORE DRIVER STATE AX = 0017h BX = size of buffer (see AX=0015h) ES:DX -> buffer containing saved state Notes: although not documented (since the Microsoft driver does not use it), many drivers appear to require BX on input some mouse drivers range-check the values in the saved state based on the current video mode; thus, the video mode should be restored before the mouse driver's state is restored SeeAlso: AX=0015h,AX=0016hTop
INT 33 - MS MOUSE v6.0+ - SET ALTERNATE MOUSE USER HANDLER AX = 0018h CX = call mask (see #03174) ES:DX -> FAR routine to be invoked on mouse events (see #03175) Return: AX = status 0018h if successful FFFFh on error Notes: up to three handlers can be defined by separate calls to this function, each with a different combination of shift states in the call mask; calling this function again with a call mask of 0000h undefines the specified handler (official documentation); specifying the same call mask and an address of 0000h:0000h undefines the handler (real life) some versions of the documentation erroneously reverse the order of the bits in the call mask SeeAlso: AX=000Ch,AX=0014h,AX=0019h Bitfields for mouse call mask: Bit(s) Description (Table 03174) 0 call if mouse moves 1 call if left button pressed 2 call if left button released 3 call if right button pressed 4 call if right button released 5 call if shift button pressed during event 6 call if ctrl key pressed during event 7 call if alt key pressed during event Note: at least one of 5-7 must be set (Table 03175) Values user handler is called with: AX = condition mask (same bit assignments as call mask) BX = button state CX = cursor column DX = cursor row SI = horizontal mickey count DI = vertical mickey count Return: registers preserved Note: in text modes, the row and column will be reported as a multiple of the cell size, typically 8x8 pixelsTop
INT 33 - MS MOUSE v6.0+ - RETURN USER ALTERNATE INTERRUPT VECTOR AX = 0019h CX = call mask (see #03174) Return: BX:DX = user interrupt vector CX = call mask (0000h if not found) Note: attempts to find a user event handler (defined by function 18h) whose call mask matches CX SeeAlso: AX=0018hTop
INT 33 - MS MOUSE v6.0+ - SET MOUSE SENSITIVITY AX = 001Ah BX = horizontal speed \ CX = vertical speed / (see AX=000Fh) DX = double speed threshold (see AX=0013h) SeeAlso: AX=0013h,AX=001Bh,INT 62/AX=0082hTop
INT 33 - MS MOUSE v6.0+ - RETURN MOUSE SENSITIVITY AX = 001Bh Return: BX = horizontal speed CX = vertical speed DX = double speed threshold SeeAlso: AX=000Bh,AX=001AhTop
INT 33 - MS MOUSE v6.0+ - SET INTERRUPT RATE AX = 001Ch BX = rate (see #03176) Notes: only available on InPort mouse values greater than 4 may cause unpredictable driver behavior (Table 03176) Values for mouse interrupt rate: 00h no interrupts allowed 01h 30 per second 02h 50 per second 03h 100 per second 04h 200 per secondTop
INT 33 - MS MOUSE v6.0+ - DEFINE DISPLAY PAGE NUMBER AX = 001Dh BX = display page number Note: the cursor will be displayed on the specified page SeeAlso: AX=001EhTop
INT 33 - MS MOUSE v6.0+ - RETURN DISPLAY PAGE NUMBER AX = 001Eh Return: BX = display page number SeeAlso: AX=001DhTop
INT 33 - MS MOUSE v6.0+ - DISABLE MOUSE DRIVER AX = 001Fh Return: AX = status 001Fh successful ES:BX = INT 33 vector before mouse driver was first installed FFFFh unsuccessful Notes: restores vectors for INT 10 and INT 71 (8086) or INT 74 (286/386) if you restore INT 33 to ES:BX, driver will be completely disabled many drivers return AX=001Fh even though the driver has been disabled SeeAlso: AX=0020hTop
INT 33 - MS MOUSE v6.0+ - ENABLE MOUSE DRIVER AX = 0020h Return: AX = status 0020h successful FFFFh unsuccessful Notes: restores vectors for INT 10h and INT 71h (8086) or INT 74h (286/386) which were removed by function 1Fh Microsoft's documentation states that no value is returned SeeAlso: AX=001FhTop
INT 33 - MS MOUSE v6.0+ - SOFTWARE RESET AX = 0021h Return: AX = status FFFFh if mouse driver installed BX = number of buttons (FFFFh = two buttons) 0021h if mouse driver not installed Note: this call is identical to funtion 00h, but does not reset the mouse SeeAlso: AX=0000hTop
INT 33 - MS MOUSE v6.0+ - SET LANGUAGE FOR MESSAGES AX = 0022h BX = language (see #03177) Note: only available on international versions of the driver; US versions ignore this call SeeAlso: AX=0023h (Table 03177) Values for mouse driver language: 00h English 01h French 02h Dutch 03h German 04h Swedish 05h Finnish 06h Spanish 07h Portugese 08h ItalianTop
INT 33 - MS MOUSE v6.0+ - GET LANGUAGE FOR MESSAGES AX = 0023h Return: BX = language (see #03177) Note: the US version of the driver always returns zero SeeAlso: AX=0022hTop
INT 33 - MS MOUSE v6.26+ - GET SOFTWARE VERSION, MOUSE TYPE, AND IRQ NUMBER AX = 0024h BX = 0000h to check for function's existence Return: AX = FFFFh on error otherwise, BH = major version BL = minor version CH = type (1=bus, 2=serial, 3=InPort, 4=PS/2, 5=HP) CL = interrupt (0=PS/2, 2=IRQ2, 3=IRQ3,...,7=IRQ7,...,0Fh=IRQ15) Note: although current Microsoft documentation states that this function was introduced in v6.26, it appears to have been present as early as v6.02 (for earlier versions, use INT 33/AX=006Dh) SeeAlso: AX=004Dh,AX=006DhTop
INT 33 - MS MOUSE v6.26+ - GET GENERAL DRIVER INFORMATION AX = 0025h Return: AX = general information (see #03178) BX = cursor lock flag for OS/2 to prevent reentrancy problems CX = mouse code active flag (for OS/2) DX = mouse driver busy flag (for OS/2) Bitfields for general mouse driver information: Bit(s) Description (Table 03178) 15 driver loaded as device driver rather than TSR 14 driver is newer integrated type 13,12 current cursor type 00 software text cursor 01 hardware text cursor (CRT Controller's cursor) 1X graphics cursor 11-8 interrupt rate (see #03176) 7-0 count of currently-active Mouse Display Drivers (MDD), the newer integrated driver typeTop
INT 33 - MS MOUSE v6.26+ - GET MAXIMUM VIRTUAL COORDINATES AX = 0026h Return: BX = mouse-disabled flag (0000h mouse enabled, nonzero disabled) CX = maximum virtual X (for current video mode) DX = maximum virtual Y Note: for driver versions before 7.05, this call returns the currently-set maximum coordinates; v7.05+ returns the absolute maximum coordinates SeeAlso: AX=0031hTop
INT 33 - Genius Mouse 9.06 - ??? AX = 0026h Return: CX = 0204h if CX was 0105h on entry, else unchangedTop
INT 33 - MS MOUSE v7.01+ - GET SCREEN/CURSOR MASKS AND MICKEY COUNTS AX = 0027h Return: AX = screen-mask value (or hardware cursor scan-line start for v7.02+) BX = cursor-mask value (or hardware cursor scan-line stop for v7.02+) CX = horizontal mickeys moved since last call DX = vertical mickeys moved since last call SeeAlso: AX=000BhTop
INT 33 - MS MOUSE v7.0+ - SET VIDEO MODE AX = 0028h CX = new video mode (call is NOP if 0000h) DH = Y font size (00h = default) DL = X font size (00h = default) Return: CL = status (00h = successful) Notes: DX is ignored unless the selected video mode supports font size control when CX=0000h, an internal flag that had been set by a previous call is cleared; this is required before a mouse reset SeeAlso: AX=0029h,INT 10/AH=00hTop
INT 33 - MS MOUSE v7.0+ - ENUMERATE VIDEO MODES AX = 0029h CX = previous video mode 0000h get first supported video mode other get next supported mode after mode CX Return: CX = first/next video mode (0000h = no more video modes) DS:DX -> description of video mode or 0000h:0000h if none Notes: the enumerated video modes may be in any order and may repeat the description string (if available) is terminated by '$' followed by a NUL byte SeeAlso: AX=0028hTop
INT 33 - MS MOUSE v7.02+ - GET CURSOR HOT SPOT AX = 002Ah Return: AX = internal counter controlling cursor visibility BX = cursor hot spot column CX = cursor hot spot row DX = mouse type (see #03179) Note: the hot spot location is relative to the upper left corner of the cursor block and may range from -128 to +127 both horizontally and vertically SeeAlso: AX=0009h,AX=0012h,AX=0035h (Table 03179) Values for mouse type: 00h none 01h bus 02h serial 03h InPort 04h IBM 05h Hewlett-PackardTop
INT 33 - MS MOUSE v7.0+ - LOAD ACCELERATION PROFILES AX = 002Bh BX = active acceleration profile 0001h-0004h or FFFFh to restore default curves ES:SI -> buffer containing acceleration profile data (see #03180) Return: AX = success flag SeeAlso: AX=002Ch,AX=002Dh,AX=0033h Format of acceleration profile data: Offset Size Description (Table 03180) 00h BYTE length of acceleration profile 1 01h BYTE length of acceleration profile 2 02h BYTE length of acceleration profile 3 03h BYTE length of acceleration profile 4 04h 32 BYTEs threshold speeds for acceleration profile 1 24h 32 BYTEs threshold speeds for acceleration profile 2 44h 32 BYTEs threshold speeds for acceleration profile 3 64h 32 BYTEs threshold speeds for acceleration profile 4 84h 32 BYTEs speedup factor for acceleration profile 1 (10h = 1.0, 14h = 1.25, 20h = 2.0, etc) A4h 32 BYTEs speedup factor for acceleration profile 2 (10h = 1.0, 14h = 1.25, 20h = 2.0, etc) C4h 32 BYTEs speedup factor for acceleration profile 3 (10h = 1.0, 14h = 1.25, 20h = 2.0, etc) E4h 32 BYTEs speedup factor for acceleration profile 4 (10h = 1.0, 14h = 1.25, 20h = 2.0, etc) 104h 16 BYTEs name of acceleration profile 1 (blank-padded) 114h 16 BYTEs name of acceleration profile 2 (blank-padded) 124h 16 BYTEs name of acceleration profile 3 (blank-padded) 134h 16 BYTEs name of acceleration profile 4 (blank-padded) Note: unused bytes in the threshold speed fields are filled with 7Fh and unused bytes in the speedup factor fields are filled with 10hTop
INT 33 - MS MOUSE v7.0+ - GET ACCELERATION PROFILES AX = 002Ch Return: AX = status (0000h success) BX = currently-active acceleration profile ES:SI -> acceleration profile data (see #03180) SeeAlso: AX=002Bh,AX=002Dh,AX=0033hTop
INT 33 - MS MOUSE v7.0+ - SELECT ACCELERATION PROFILE AX = 002Dh BX = acceleration level 0001h-0004h to set profile, or FFFFh to get current profile Return: AX = status 0000h successful ES:SI -> 16-byte blank-padded name of acceleration profile FFFEh invalid acceleration curve number ES:SI destroyed BX = active acceleration curve number SeeAlso: AX=0013h,AX=002Bh,AX=002Ch,AX=002EhTop
INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES AX = 002Eh BL = flag (if nonzero, fill ES:SI buffer with default names on return) ES:SI -> 64-byte buffer containing profile names (16 bytes per name) Return: AX = status (0000h success) FFFEh error for ATI Mouse driver ES:SI buffer filled with default names if BL nonzero on entry Notes: not supported by Logitech driver v6.10 supported by ATI Mouse driver v7.04 SeeAlso: AX=002Ch,AX=002Dh,AX=012Eh,AX=022EhTop
INT 33 - MS MOUSE v7.02+ - MOUSE HARDWARE RESET AX = 002Fh Return: AX = status Note: invoked by mouse driver v8.20 on being called with INT 2F/AX=530Bh SeeAlso: INT 2F/AH=53hTop
INT 33 - MS MOUSE v7.04+ - GET/SET BallPoint INFORMATION AX = 0030h CX = command 0000h get status of BallPoint device other set rotation angle and masks BX = rotation angle (-32768 to 32767 degrees) CH = primary button mask CL = secondary button mask Return: AX = button status (FFFFh if no BallPoint) (see #03181) BX = rotation angle (0-360 degrees) CH = primary button mask CL = secondary button mask Note: not supported by the ATI Mouse driver which calls itself v7.04 Bitfields for BallPoint mouse button status: Bit(s) Description (Table 03181) 5 button 1 4 button 2 3 button 3 2 button 4 other zeroTop
INT 33 - MS MOUSE v7.05+ - GET CURRENT MINIMUM/MAXIMUM VIRTUAL COORDINATES AX = 0031h Return: AX = virtual X minimum BX = virtual Y minimum CX = virtual X maximum DX = virtual Y maximum Note: the minimum and maximum values are those set by AX=0007h and AX=0008h; the default is minimum = 0 and maximum = absolute maximum (see AX=0026h) SeeAlso: AX=0007h,AX=0008h,AX=0010h,AX=0026hTop
INT 33 - MS MOUSE v7.05+ - GET ACTIVE ADVANCED FUNCTIONS AX = 0032h Return: AX = active function flags (FFFFh for v8.10) bit 15: function 0025h supported bit 14: function 0026h supported ... bit 0: function 0034h supported BX = ??? (0000h) officially unused CX = ??? (E000h) officially unused DX = ??? (0000h) officially unused Note: the Italian version of MS MOUSE v8.20 reportedly indicates that functions 0033h and 0034h are not supported even though they areTop
INT 33 - MS MOUSE v7.05+ - GET SWITCH SETTINGS AND ACCELERATION PROFILE DATA AX = 0033h CX = size of buffer 0000h get required buffer size Return: AX = 0000h CX = required size (0154h for Logitech v6.10, 0159h for MS v8.10-8.20) other ES:DX -> buffer of CX bytes for mouse settings Return: AX = 0000h CX = number of bytes returned ES:DX buffer filled (see #03182) SeeAlso: AX=002Bh Format of mouse settings data buffer: Offset Size Description (Table 03182) 00h BYTE mouse type 01h BYTE current language 02h BYTE horizontal sensitivity (00h-64h) 03h BYTE vertical sensitivity (00h-64h) 04h BYTE double-speed threshold (00h-64h) 05h BYTE ballistic curve (01h-04h) 06h BYTE interrupt rate (01h-04h) 07h BYTE cursor override mask 08h BYTE laptop adjustment 09h BYTE memory type (00h-02h) 0Ah BYTE SuperVGA support (00h,01h) 0Bh BYTE rotation angle 0Ch BYTE ??? 0Dh BYTE primary button (01h-04h) 0Eh BYTE secondary button (01h-04h) 0Fh BYTE click lock enabled (00h,01h) 10h 324 BYTEs acceleration profile data (see #03180) 154h 5 BYTEs ??? (Microsoft driver, but not Logitech)Top
INT 33 - MS MOUSE v8.0+ - GET INITIALIZATION FILE AX = 0034h Return: AX = status (0000h successful) ES:DX -> ASCIZ initialization (.INI) file nameTop
INT 33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT
AX = 0035h
BX = function
FFFFh get current settings
Return: AX = 0000h
BH = style (see #03183)
BL = size (see #03184)
CH = threshold (00h-64h)
CL = active flag (00h disabled, 01h enabled)
DX = delay
other
BH = pointer style (see #03183)
BL = size (see #03184)
CH = threshold (00h-64h)
CL = active flag (00h disable size change, 01h enable)
DX = delay (0000h-0064h)
Return: AX = 0000h
Note: not supported by Logitech driver v6.10
SeeAlso: AX=0012h,AX=002Ah
(Table 03183)
Values for pointer style:
00h normal
01h reverse
02h transparent
SeeAlso: #03184
(Table 03184)
Values for pointer size:
00h small ("1")
01h medium ("1.5")
02h large ("2")
SeeAlso: #03183
Top
INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS AX = 0042h Return: AX = status 0000h MSMOUSE not installed 0042h functions 42h, 50h, and 52h not supported FFFFh successful BX = buffer size in bytes for functions 50h and 52h Note: this function is also supported by the Genius Mouse 9.06 driver SeeAlso: AX=0015h,AX=0050h,AX=0052hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CONFIGURE MOUSE??? AX = 0043h CX:BX -> configuration buffer (see #03185) DL = ??? Return: ??? Notes: also calls routines for INT 33/AX=0053h and INT 33/AX=004Fh this function is also supported by the Genius Mouse 9.06 driver Format of Mouse Systems configuration buffer: Offset Size Description (Table 03185) 00h WORD I/O port address 02h BYTE ??? 03h BYTE interrupt number 04h BYTE interrupt mask for interrupt controller 05h 5 BYTEs ???Top
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE IGNORE ACCELERATION CMDS AX = 0044h CX = CDEFh Return: AX = new state of "Ignore Application Acceleration Commands" flag Note: this function is also supported by the Genius Mouse 9.06 driver SeeAlso: AX=0045hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE RESOLUTION DOUBLING AX = 0045h CX = CDEFh Return: AX = new state of resolution doubling flag Note: this function is also supported by the Genius Mouse 9.06 driver SeeAlso: AX=0044hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET BUTTON ASSIGNMENTS AX = 0047h ES:BX -> button assignments (3 bytes, combinations of "L", "M", "R") Return: ??? Note: also supported by Genius Mouse 9.06 driver SeeAlso: AX=0067hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET ??? AX = 0048h BX = CDEFh Return: CX = ??? BH = ??? BL = ??? (if 50h, driver is using PS/2 pointing device BIOS interface) Note: also supported by Genius Mouse 9.06 driverTop
INT 33 - LCS/Telegraphics MOUSE DRIVERS - INSTALLATION CHECK / GET VERSION AX = 004Bh Return: ES:DI -> ASCIZ signature/description string if installed (see #03186) (Table 03186) Values for LCS/Telegraphics mouse driver OEM signature/description string: "Primax Generic;Universal Mouse Driver;IMOUSE;v8.20i" "Synaptics;TouchPad Driver;SYNTOUCH;v2.26" "Z-NIX;BUS,AUX,Serial 3-byte and 5-byte Mouse Driver;ZMOUSE;v7.04d" Note: the string consists of OEM, driver description, driver name, and version numberTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ??? FLAG AX = 004Ch BX = CDEFh Note: also supported by Genius Mouse 9.06 SeeAlso: AX=006ChTop
INT 33 - MS MOUSE - RETURN POINTER TO COPYRIGHT STRING AX = 004Dh Return: ES:DI -> copyright message "*** This is Copyright 1983 Microsoft" or "Copyright 19XX...." Notes: also supported by Logitech, Kraft, Genius Mouse, and Mouse Systems mouse drivers in the Genius Mouse 9.06 driver, the ASCIZ signature "KYE" immediately follows the above copyright message (KYE Corp. manufactures the driver) SeeAlso: AX=0024h,AX=006Dh,AX=0666hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ENABLE MOUSE AX = 004Fh Return: nothing Note: also supported by Genius Mouse 9.06 SeeAlso: AX=0043h,AX=0053hTop
INT 33 - PCMOUSE - SAVE MSMOUSE STATE AX = 0050h BX = buffer size (ignored by some driver versions) ES:DX -> buffer Return: AX = FFFFh if successful Notes: the buffer must be large enough to hold the entire state, or following data will be overwritten by state data in versions which ignore BX; use INT 33/AX=0042h to get the required size this function is also supported by the Genius Mouse 9.06 driver SeeAlso: AX=0042h,AX=0052hTop
INT 33 - PCMOUSE - RESTORE MSMOUSE STATE AX = 0052h BX = buffer size (ignored by some driver versions) ES:DX -> buffer Return: AX = FFFFh if successful Note: also supported by Genius Mouse 9.06 driver SeeAlso: AX=0050hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - DISABLE MOUSE AX = 0053h Return: nothing Note: also supported by Genius Mouse 9.06 SeeAlso: AX=0043h,AX=004FhTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SELECT ULTRARES ACCELERATION LEVEL AX = 0054h CX = CDEFh BX = new acceleration level (0-9) Return: ??? Note: this function is also supported by the Genius Mouse 9.06 driver SeeAlso: AX=005AhTop
INT 33 - Kraft Mouse - GET ??? AX = 0055h Return: CX = ??? DX = ??? ES = ???Top
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ??? AX = 0058h Return: AX = CS of driver CX:BX = original INT 33 vector DX = ??? Note: this function is also supported by the Genius Mouse 9.06 driverTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ULTRARES ACCELERATIONS AX = 005Ah CX = number of WORDs to copy (max 0014h, but not range-checked) DX:SI -> buffer containing thresholds??? (CX words) DX:BX -> buffer containing acceleration values??? (9*14h words, only first CX of each 14h used) ??? Return: CF clear ??? Note: this function is also supported by Genius Mouse 9.06 SeeAlso: AX=0054hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ??? AX = 0061h BX = CDEFh Return: CX = ??? Note: also supported by Genius Mouse 9.06Top
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET MOUSE BUTTONS??? AX = 0067h Return: BL = number of buttons??? Note: also supported by Genius Mouse 9.06 SeeAlso: AX=0047hTop
INT 33 U - ATI Mouse - INSTALLATION CHECK AX = 006Ah Return: AL = AAh AH = ??? BH = ??? BL = ??? CL = ??? CH = ??? Program: ATI's MOUSE.COM and MOUSE.SYS are drivers for the mouse port found on some of ATI's video adapters SeeAlso: AX=006DhTop
INT 33 U - TRUEDOX Mouse driver v4.01 - GET/SET HARDWARE PARAMETERS AX = 006Ch BX = new IRQ (0003h or 0004h), or 0000h to get current values only CL = new IRQmask (sent to 8259) DX = new base I/O port Return: BX = current IRQ DX = light pen state??? Note: this is the mouse driver for the Dell Dimension series of computers, by TRUEDOX Technology Corporation SeeAlso: AX=00A1h,AX=0666hTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CLEAR ??? FLAG AX = 006Ch BX = CDEFh Note: also supported by Genius Mouse 9.06 SeeAlso: AX=004ChTop
INT 33 - MS MOUSE - GET VERSION STRING AX = 006Dh 'm' Return: ES:DI -> Microsoft version number of resident driver (see #03187) Notes: also supported by Logitech, Mouse Systems, Kraft, and Genius mouse drivers the Mouse Systems 7.01 and Genius Mouse 9.06 drivers report their Microsoft version as 7.00 even though they do not support any of the functions from 0025h through 002Dh supported by the MS 7.00 driver (the Genius Mouse driver supports function 0026h, but it differs from the Microsoft function) the TRUEDOX 4.01 driver reports its version as 6.26 through this call, but as 6.24 through AX=0024h There seems to be no reliable method to distinguish MS MOUSE before 3.00 from mouse drivers of other vendors. Some releases of the MS MOUSE 6.00 erroneously return 6.01 instead of their true version number. In this case, a DI value of 01ABh can be used to still detect a 6.00 driver. For returned versions 6.02+, INT 33/AX=0024h should be used to retrieve more accurate version data. True MS MOUSE drivers can also be identified by magic numbers in their copyright message, stored in the driver's segment (ES). These can be found by scanning the first 2 Kb of the mouse driver's segment for a string like: [new since 7.00+] "** This is Copyright 1983[-19xx] Microsoft ***" with the magic number stored one byte after the signature string. SeeAlso: AX=0024h,AX=004Dh,AX=006Ah,AX=266Ch Format of Microsoft version number: Offset Size Description (Table 03187) 00h BYTE major version 01h BYTE minor version (BCD) (Table 04087) Values for Microsoft MOUSE copyright string magic numbers: 5564h version 3.00..6.00 (for reported versions up to 5.03, and 6.00) 557Ch version 6.01Z..6.24 (for reported versions 6.01..6.24) E806h version 6.25 (for reported version 6.25) EB02h version 6.26..7.04 (for reported version 6.26..7.04) 0800h Integrated driver 1.0+ (for reported version 9.x+) Note: Versions above 7.04 (except for integrated mouse drivers) have a magic number representing their version number, e.g. 0507h for version 7.05Top
INT 33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK AX = 0070h BX = ABCDh Return: AX = ABCDh if installed BX:CX -> data structure (see #03188) Notes: this function is also supported by the Genius Mouse 9.06 driver the v7.01 POPUP.COM and menu drivers also check for the signature CDh ABh BAh DCh at offset -2Ch from the interrupt handler if POPUP is not loaded, the returned data structure contains the proper signature at offset 00h, but not at offset 08h Format of Mouse Systems POPUP.COM data structure: Offset Size Description (Table 03188) 00h WORD signature ABCDh 02h DWORD pointer to info structure??? (see #03189) 06h 2 BYTEs ??? 08h WORD signature ABCDh Format of Mouse Systems POPUP.COM info structure: Offset Size Description (Table 03189) 00h WORD driver version 02h 8 BYTEs ??? 0Ah WORD segment of ??? ???Top
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ??? AX = 0072h BX = ABCDh Return: ??? Note: this function is also supported by the Genius Mouse 9.06 driverTop
INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET BUTTON ASSIGNMENTS AX = 0073h BX = CDEFh ES:DX -> 3-byte buffer for button assignments Return: CX = number of buttons??? ES:DX buffer filled (default is "LMR") Note: also supported by Genius Mouse 9.06 SeeAlso: AX=0067hTop
INT 33 U - TRUEDOX Mouse driver - SET HARDWARE PC MODE (3 button) AX = 00A0h Return: nothing Note: this function is only available if the mouse mode is switchable through the power pins SeeAlso: AX=006Ch"TRUEDOX",AX=00A1h"TRUEDOX"Top
INT 33 U - TRUEDOX Mouse driver - SET HARDWARE MS MODE (2 button) AX = 00A1h Return: nothing Notes: this function is only available if the mouse mode is switchable through the power pins this is the mouse driver for the Dell Dimension series of computers, by TRUEDOX Technology Corporation SeeAlso: AX=006Ch"TRUEDOX",AX=00A0h"TRUEDOX",AX=00A6h,AX=0666hTop
INT 33 U - TRUEDOX Mouse driver - SET RESOLUTION AX = 00A6h BX = new software resolution 0001h 50-200 dpi 0002h 200-400 dpi 0003h 400-800 dpi Note: this is the mouse driver for the Dell Dimension series of computers, by TRUEDOX Technology Corporation SeeAlso: AX=00A0h,AX=00A1h,AX=0666hTop
INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ??? AX = 00B0h ??? Return: ???Top
INT 33 - Twiddler TWMOUSE - GET BUTTON/TILT STATE AX = 00D6h Return: AX = current button bitmap BX = current X tilt (approximately -200..+200 = -90degrees..+90deg.) CX = current Y tilt Program: the Twiddler is a chording keyboard/mouse combination by Handykey CorporationTop
INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ??? AX = 00F0h ??? Return: ???Top
INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ??? AX = 00F1h ??? Return: ???Top
INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ??? AX = 00F2h ??? Return: ???Top
INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ??? AX = 00F3h ??? Return: ???Top
INT 33 - GRTMOUSE v1.00+ - INSTALLATION CHECK
AX = 0100h
CX = 4752h ('GR')
DX = 544Dh ('TM')
Return: AX = 474Dh ('GM') if installed
CX = version number (CH = major, CL = minor)
Program: GRTMOUSE is a graphical-cursor driver for textmode by Tommer Leyvand
SeeAlso: AX=0101h,AX=0102h,AX=0103h,AX=0104h
Top
INT 33 - GRTMOUSE v1.00+ - SET MOUSE CURSOR SHAPE AX = 0101h DS:SI -> 16-byte cursor pattern Return: CF clear if successful SeeAlso: AX=0100h,AX=0102hTop
INT 33 - GRTMOUSE v1.00+ - GET MOUSE CURSOR SHAPE AX = 0102h ES:DI -> 16-byte buffer for cursor pattern SeeAlso: AX=0100h,AX=0101hTop
INT 33 - GRTMOUSE v1.00+ - SET ACTIVE CHARACTERS AX = 0103h CH,CL,DH,DL = ASCII codes to be remapped to display mouse pointer Note: the default active characters are D0h,D1h,D6h,D8h; the active characters should be in the range C0h to DFh SeeAlso: AX=0100h,AX=0104hTop
INT 33 - GRTMOUSE v1.00+ - GET ACTIVE CHARACTERS AX = 0104h Return: CH,CL,DH,DL = ASCII codes for the active characters SeeAlso: AX=0100h,AX=0103hTop
INT 33 - MS MOUSE v8.10+ - ??? AX = 012Eh BL = ??? Return: AX = 0000h (MS) AX = FFFFh (ATI Mouse v7.04) Note: not supported by Logitech driver v6.10 SeeAlso: AX=002Eh,AX=022EhTop
INT 33 - MS MOUSE v8.10+ - ??? AX = 022Eh BL = ??? Return: AX = 0000h (MS) AX = FFFFh (ATI Mouse v7.04) Note: not supported by Logitech driver v6.10 SeeAlso: AX=002Eh,AX=012EhTop
INT 33 U - TRUEDOX Mouse driver v4.01 - GET COPYRIGHT STRING AX = 0666h Return: DX:AX -> ASCII "Copyright 1987-1992 TRUEDOX Technology Corporation" Note: this is the mouse driver for the Dell Dimension series of computers, by TRUEDOX Technology Corporation SeeAlso: AX=004Dh,AX=00A6h,AX=0666hTop
INT 33 - LOGITECH MOUSE v6.10+ - ??? AX = 136Ch BX = ??? Return: AX = ??? BX = ???Top
INT 33 - LOGITECH MOUSE v6.10+ - GET/SET ??? AX = 146Ch BL = function 00h set ??? BH = new value (zero/nonzero to clear/set) else get ??? Return: ???Top
INT 33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS AX = 156Ch Return: ES:DI -> signature "LOGITECH MOUSE DRIVER" ES:SI -> version string, terminated with CRLFTop
INT 33 - LOGITECH MOUSE v6.10+ - ??? AX = 166Ch BL = ??? 00h ??? 01h ??? other ??? BH = new value of ??? Return: AX = FFFFhTop
INT 33 - LOGITECH MOUSE v6.10+ - ??? AX = 176Ch ??? Return: ???Top
INT 33 - LOGITECH MOUSE v6.10+ - ??? AX = 186Ch ??? Return: ???Top
INT 33 - LOGITECH MOUSE v6.10+ - ??? AX = 196Ch ??? Return: ???Top
INT 33 - LOGITECH MOUSE v6.10+ - GET ??? AX = 1A6Ch Return: AX = FFFFh BX = ??? CX = ??? SeeAlso: AX=1B6ChTop
INT 33 - LOGITECH MOUSE v6.10+ - SET ??? AX = 1B6Ch BX = new value for ??? (0000h-0003h) Return: AX = FFFFh SeeAlso: AX=1A6ChTop
INT 33 - LOGITECH MOUSE v6.10+ - ??? AX = 1C6Ch BX = ??? <42h ??? =42h ??? >42h ??? ES:DI -> ??? Return: AX = ???Top
INT 33 - LOGITECH MOUSE - GET COMPASS PARAMETER AX = 1D6Ch Return: BX = direction (0=north, 1=south, 2=east, 3=west) SeeAlso: AX=1E6ChTop
INT 33 - LOGITECH MOUSE - SET COMPASS PARAMETER AX = 1E6Ch BX = direction (0=north, 1=south, 2=east, 3=west) SeeAlso: AX=1D6ChTop
INT 33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION AX = 1F6Ch Return: BX = 0=off, 1=on CX = 1=low, 2=high SeeAlso: AX=002Ch,AX=236ChTop
INT 33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER AX = 206Ch BX = parameter (00h = right, FFh = left) SeeAlso: AX=216ChTop
INT 33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER AX = 216Ch Return: BX = parameter (00h = right, FFh = left) SeeAlso: AX=206ChTop
INT 33 - LOGITECH MOUSE - REMOVE DRIVER FROM MEMORY AX = 226Ch Note: this only frees memory; does not restore hooked interruptsTop
INT 33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION AX = 236Ch BX = 0=off, 1=on CX = 1=low, 2=high SeeAlso: AX=002Ch,AX=1F6ChTop
INT 33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE AX = 246Ch ES:DX -> parameter table buffer (see #03190) Return: AX = FFFFh if driver installed for serial mouse SeeAlso: AX=0000h,AX=256Ch/BX=0000h,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h Format of Logitech Mouse parameter table: Offset Size Description (Table 03190) 00h WORD baud rate divided by 100 (serial mouse only) 02h WORD emulation (serial mouse only) 04h WORD report rate (serial mouse only) 06h WORD firmware revision (serial mouse only) 08h WORD 00h (serial mouse only) 0Ah WORD port (serial mouse only) 0Ch WORD physical buttons 0Eh WORD logical buttonsTop
INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET BAUD RATE (SERIAL MOUSE ONLY) AX = 256Ch BX = 0000h CX = rate (0=1200, 1=2400, 2=4800, 3=9600) Return: AX = FFFFh if driver installed for serial mouse SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0002h,AX=276ChTop
INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET EMULATION (SERIAL MOUSE ONLY) AX = 256Ch BX = 0001h CX = emulation type (see #03191) Return: AX = FFFFh if driver installed for serial mouse SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0003h,AX=276Ch (Table 03191) Values for Logitech mouse emulation type: 00h 5 byte packed binary 01h 3 byte packed binary 02h hexadecimal 03h relative bit pad 04h not supported 05h MM Series 06h not supported 07h MicrosoftTop
INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET REPORT RATE (SERIAL MOUSE ONLY) AX = 256Ch BX = 0002h CX = rate (0=10, 1=20, 2=35, 3=50, 4=70, 5=100, 6=150) Return: AX = FFFFh if driver installed for serial mouse SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h,AX=276ChTop
INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE PORT (SERIAL MOUSE ONLY) AX = 256Ch BX = 0003h CX = port (1, 2) Return: AX = FFFFh if driver installed for serial mouse SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0004h,AX=276ChTop
INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE LOGICAL BUTTONS AX = 256Ch BX = 0004h CX = buttons (2, 3) Return: AX = FFFFh if driver installed for serial mouse SeeAlso: AX=246Ch,AX=276ChTop
INT 33 - LOGITECH MOUSE - GET VERSION??? AX = 266Ch Return: BX = 'SS' CH = '4' major version number CL = '1' minor version number SeeAlso: AX=006DhTop
INT 33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400 AX = 276Ch SeeAlso: AX=256ChTop
INT 33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK AX = 3000h Return: AX = FFFFh if installed BX = version number (BH = major, BL = minor) Program: SMD is a programmer's library by Andy Hakim which provides a graphics-style mouse cursor in text mode. PrecisePoint is an SMD-based TSR which replaces the block mouse cursor in text applications. SeeAlso: AX=0000h,AX=3001h,AX=3003hTop
INT 33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE AX = 3001h Return: AX = status (0000h = disabled, 0001h = enabled) Note: SMD remains disabled if running under Desqview or in graphics mode SeeAlso: AX=0001h,AX=0002h,AX=3002hTop
INT 33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE AX = 3002h Return: AX = status (0000h = disabled, 0001h = enabled) SeeAlso: AX=0001h,AX=0002h,AX=3000h,AX=3001hTop
INT 33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION AX = 3003h BL = data structure selector 00h Primary Bitmap (used for 25 line mode) (see #03192) 01h Secondary Bitmap (used for 43/50 line modes) (see #03192) 02h Sacrifice Character Map (see #03193) 03h Program Information (see #03194) Return: ES:DX -> selected data structure SeeAlso: AX=3000h Format of Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]: Offset Size Description (Table 03192) 00h BYTE vertical size of bitmap (00h - 10h) 01h BYTE horizontal size of bitmap (00h - 10h) 02h BYTE vertical hotspot position (00h - 10h) 03h BYTE horizontal hotspot position (00h - 10h) 04h 16 WORDs cursor bitmap data 14h 16 WORDs screen bitmap data Format of Sacrifice Character Map [SMD_SMAP_STRUCT]: Offset Size Description (Table 03193) 00h BYTE bytes are character values (00h-FFh) used in place of the 01h BYTE actual character for the corresponding position on the screen 02h BYTE +--------------+ occupied by part or all of the mouse 03h BYTE | 0h | 1h | 2h | cursor 04h BYTE |----+----+----| 05h BYTE | 3h | 4h | 5h | 06h BYTE |----+----+----| 07h BYTE | 6h | 7h | 8h | 08h BYTE +--------------+ Format of Program Information [SMD_INFO_STRUCT]: Offset Size Description (Table 03194) 00h WORD segment of old interrupt 33h handler 02h WORD offset of old interrupt 33h handler 04h WORD PSP of SMD 06h BYTE ENABLE/DISABLE manual setting status 07h BYTE ENABLE/DISABLE internal usage statusTop
INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION AX = 3004h SeeAlso: AX=3000hTop
INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION AX = 3005h SeeAlso: AX=3000hTop
INT 33 - LOGITECH MOUSE v6.10+ - GET ??? AX = 4F00h Return: AX = 004Fh if supported BX = ??? ES:DI -> ??? SeeAlso: AX=4F01hTop
INT 33 - LOGITECH MOUSE v6.10+ - ??? AX = 4F01h ES = ??? Return: AX = 004Fh if supported ES:DI -> ??? SeeAlso: AX=4F00hTop
INT 33 - Hewlett Packard - HP MOUSE DRIVER INSTALLATION CHECK
AX = 6F00h
BX <> 4850h
Return: BX = 4850h ('HP') if mouse driver written by Hewlett Packard
SeeAlso: INT 10/AX=6F00h,INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h
Top
INT 33 U - InfoTrack IMOUSE.COM - UNHOOK MOUSE IRQ AX = 8800h BX <> FFFFh Note: the code is written to expect a subfunction number in AL, but only function 00h has been implemented SeeAlso: AX=8800h/BX=FFFFhTop
INT 33 U - InfoTrack IMOUSE.COM - GET ACTIVE IRQ AX = 8800h BX = FFFFh Return: BL = number of IRQ being used by the mouse SeeAlso: AX=8800hTop
INT 33 - Switch-It v3.23 - GET ??? PROGRAM AX = FFE6h CX = length of buffer ES:DI -> buffer for program name Return: ES:DI buffer filled Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFE7h Return: AX = ???Top
INT 33 - Switch-It v3.23 - ??? AX = FFE8h CX = length of name including terminating NUL DS:SI -> ASCIZ program pathnameTop
INT 33 - Switch-It v3.23 - SET ??? AX = FFE9h BX = ???Top
INT 33 - Switch-It v3.23 - SET ??? AX = FFEAh BL = ???Top
INT 33 - Switch-It v3.23 - SET ??? FLAG AX = FFEBhTop
INT 33 - Switch-It v3.23 - SET ??? AX = FFECh BL = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFEDh Return: AX = ??? (0001h) BX = ??? Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFEEh Return: AX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFEFh Return: BX:AX -> ???Top
INT 33 - Switch-It v3.23 - SET ??? AX = FFF0h BL = ???Top
INT 33 - Switch-It v3.23 - GET CONFIGURATION FILE AX = FFF1h Return: BX:AX -> ASCIZ pathname of configuration file Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - SET ??? FLAG AX = FFF2h Return: AL = 01hTop
INT 33 - Switch-It v3.23 - GET ??? AX = FFF3h Return: AX = ???Top
INT 33 - Switch-It v3.23 - SET ??? AX = FFF4h BX = ??? CX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFF5h Return: AX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFF6h Return: AX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFF7h BX = index of ??? Return: AX = ???Top
INT 33 - Switch-It v3.23 - ??? AX = FFF8h BX = ??? CX = length of program name, including terminating NUL DS:SI -> ASCIZ program pathname Return: ??? Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - NOP AX = FFF9hTop
INT 33 - Switch-It v3.23 - SET ??? AX = FFFAh BX = index of program SeeAlso: AX=FFFBh,AX=FFFChTop
INT 33 - Switch-It v3.23 - GET ??? AX = FFFBh BX = index of program Return: AX = ??? (0000h or 0001h) SeeAlso: AX=FFFAh,AX=FFFChTop
INT 33 - Switch-It v3.23 - CLEAR ??? AX = FFFCh BX = index of program SeeAlso: AX=FFFAh,AX=FFFChTop
INT 33 - Switch-It v3.23 - GET MEMORY ADDRESSES??? AX = FFFDh Return: AX = first available segment??? BX = paragraph of top of conventional memory DX = PSP segment of SI.EXETop
INT 33 - Switch-It v3.23 - INSTALLATION CHECK
AX = FFFEh
Return: BX = ???
DX = 5349h ("SI")
Top
INT 33 - Switch-It v3.23 - ??? AX = FFFFh BX = ??? Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 34 - FLOATING POINT EMULATION - OPCODE D8h Desc: this interrupt is used to emulate floating-point instructions with an opcode of D8h Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 35,INT 3ETop
INT 35 - FLOATING POINT EMULATION - OPCODE D9h Desc: this interrupt is used to emulate floating-point instructions with an opcode of D9h Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 34,INT 36Top
INT 36 - FLOATING POINT EMULATION - OPCODE DAh Desc: this interrupt is used to emulate floating-point instructions with an opcode of DAh Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 35,INT 37Top
INT 37 - FLOATING POINT EMULATION - OPCODE DBh Desc: this interrupt is used to emulate floating-point instructions with an opcode of DBh Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 36,INT 38Top
INT 38 - FLOATING POINT EMULATION - OPCODE DCh Desc: this interrupt is used to emulate floating-point instructions with an opcode of DCh Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 37,INT 39Top
INT 38 - PC-MOS/386 v3.0 - API Note: this API was been moved to INT D4h sometime between versions 3.0 and 5.01; v3.0 supported at least functions 02h,04h,0703h,10h,11h, and 12h SeeAlso: INT D4/AH=02h,INT D4/AH=04h,INT D4/AH=07h,INT D4/AH=10h,INT D4/AH=11hTop
INT 39 - FLOATING POINT EMULATION - OPCODE DDh Desc: this interrupt is used to emulate floating-point instructions with an opcode of DDh Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 38,INT 3ATop
INT 3A - FLOATING POINT EMULATION - OPCODE DEh Desc: this interrupt is used to emulate floating-point instructions with an opcode of DEh Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 39,INT 3BTop
INT 3B - FLOATING POINT EMULATION - OPCODE DFh Desc: this interrupt is used to emulate floating-point instructions with an opcode of DFh Note: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt SeeAlso: INT 3A,INT 3CTop
INT 3C - FLOATING POINT EMULATION - INSTRUCTIONS WITH SEGMENT OVERRIDE Notes: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt the generated code is CD 3C xy mm .... where xy is a modified ESC instruction and mm is the modR/M byte. The xy byte appears to be encoded as s s 0 1 1 x x x or s s 0 0 0 x x x where "ss" specifies the segment override: 00 -> DS: 01 -> SS: 10 -> CS: 11 -> ES: SeeAlso: INT 3B,INT 3DTop
INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT Notes: the floating-point emulators in Borland and Microsoft languages and Lahey FORTRAN use this interrupt this vector is modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 3C,INT 3ETop
INT 3E - FLOATING POINT EMULATION - Borland LANGUAGES "SHORTCUT" CALL Notes: the two bytes following the INT 3E instruction are the subcode (see #03195) and a NOP (90h), except for subcodes DCh and DEh, where the second byte is a register count (01h-08h) this vector is modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 3D (Table 03195) Values for Borland floating-point shortcut subcode: Subcode Function DCh load 8086 stack with 8087 registers; overwrites the 10*N bytes at the top of the stack prior to the INT 3E with the 8087 register contents DEh load 8087 registers from top of 8086 stack; ST0 is furthest from top of 8086 stack E0h round TOS and R1 to single precision, compare, pop twice returns AX=8087 status word, FLAGS=8087 condition bits E2h round TOS and R1 to double precision, compare, pop twice returns AX=8087 status word, FLAGS=8087 condition bits Note: buggy in TPas5.5, because it sets the 8087 precision control field to the undocumented value 01h; this results in actually rounding to single precision E4h compare TOS/R1 with two POP's returns FLAGS=8087 condition bits E6h compare TOS/R1 with POP returns FLAGS=8087 condition bits E8h FTST (check TOS value) returns FLAGS=8087 condition bits EAh FXAM (check TOS value) returns AX=8087 status word ECh sine(ST0) EEh cosine(ST0) F0h tangent(ST0) F2h arctangent(ST0) F4h ST0 = ln(ST0) F6h ST0 = log2(ST0) F8h ST0 = log10(ST0) FAh ST0 = e**ST0 FCh ST0 = 2**ST0 FEh ST0 = 10**ST0Top
INT 3F - Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM) Notes: INT 3F is the default, and may be overridden while linking this vector is modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT FE"OVERLAY"Top
INT 3F - Microsoft Dynamic Link Library manager SeeAlso: INT 21/AH=4BhTop
INT 40 - DISKETTE - ROM BIOS DISKETTE HANDLER RELOCATED BY HARD DISK BIOS SeeAlso: INT 13/AH=00h,INT 13/AH=02h,INT 47"SuperBIOS",INT 63"Adaptec"Top
INT 40 - Z100 - Master 8259 - Parity error or S100 error SeeAlso: INT 41"Z100",INT FF"Z100"Top
INT 40 - Acorn BBC Master 512 - "OSFIND" - OPEN FILE AL = operation 00h close file 40h open file for reading 80h open file for writing C0h open file for random access DS:BX -> CR-terminated filename Return: AL = file handle (00h if file closed or could not be opened) Note: the Acorn BBC Master 512 is an 80186-based add-on board for the 6502-based Master 128 which uses the original CPU as an I/O processor SeeAlso: INT 41"Acorn",INT 42"Acorn",INT 43"Acorn",INT 44"Acorn",INT 4C"Acorn"Top
INT 40 - TI Professional PC - IRQ0 Note: on the TI Pro, IRQ0 is connected to the same pin on the expansion bus that IBM connects to IRQ2 SeeAlso: INT 0A"IRQ2",INT 41"TI Professional"Top
INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!] Notes: the default parameter table array is located at F000h:E401h in 100% compatible BIOSes; the pointer may be overridden by the hard disk controller's BIOS to support drive formats unknown to the ROM BIOS not used by some PS/2 models BIOSes which support four hard drives may store the parameter tables for drives 81h-83h immediately following the parameter table pointed at by INT 41, with a separate copy of the drive 81h table for INT 46. The check for such an arrangement is to test whether INT 46 points somewhere other than exactly 16 bytes past INT 41, and the sixteen bytes starting at offset 10h from INT 41 are identical to the sixteen bytes pointed at by INT 46 another arrangement for BIOSes which support four IDE drives is to have four tables pointed at by INT 41 in the order primary master, primary slave, secondary master, and secondary slave, in which case (for example) a system with only primary master and secondary master will have valid tables at offsets 00h and 20h, with garbage (but sectors-per-track = 00h) at offsets 10h and 30h SeeAlso: #03196,INT 13/AH=09h,INT 1E,INT 46"HARD DISK 1",INT 60"Adaptec" SeeAlso: INT C0"AMI" Format of fixed disk parameters: Offset Size Description (Table 03196) 00h WORD number of cylinders 02h BYTE number of heads 03h WORD starting reduced write current cylinder (XT only, 0 for others) 05h WORD starting write precompensation cylinder number 07h BYTE maximum ECC burst length (XT only) 08h BYTE control byte (see #03197,#03198) 09h BYTE standard timeout (XT only, 0 for others) 0Ah BYTE formatting timeout (XT and WD1002 only, 0 for others) 0Bh BYTE timeout for checking drive (XT and WD1002 only, 0 for others) 0Ch WORD cylinder number of landing zone (AT and later only) 0Eh BYTE number of sectors per track (AT and later only) 0Fh BYTE reserved SeeAlso: #00273,#00277 Bitfields for XT fixed disk control byte: Bit(s) Description (Table 03197) 2-0 drive step speed 000 3ms 100 200ms 101 70ms (default) 110 3ms 111 3ms 5-3 unused 6 disable ECC retries 7 disable access retries Bitfields for AT fixed disk control byte: Bit(s) Description (Table 03198) 0 unused 1 reserved (0) (disable IRQ) 2 reserved (0) (no reset) 3 set if more than 8 heads 4 always 0 5 set if manufacturer's defect map on max cylinder+1 (AT and later only) 6 disable ECC retries 7 disable access retriesTop
INT 41 - Z100 - Master 8259 - Processor Swap SeeAlso: INT 40"Z100",INT 42"Z100"Top
INT 41 - TI Professional PC - IRQ1 Note: on the TI Pro, IRQ1 is connected to the same pin on the expansion bus that IBM connects to IRQ3 SeeAlso: INT 0B"IRQ3",INT 40"TI Professional",INT 42"TI Professional"Top
INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT AL = function 01h put bytes sequentially 02h put bytes, ignoring sequential pointer 03h get bytes sequentially 04h get bytes, ignoring sequential pointer 05h get media title and boot option 06h get current device and directory 07h get current library and device 08h search directory DS:BX -> control block (see #03199) Return: CF clear if successful CF set on error AL = 00h if operation attempted AL unchanged if unsupported function SeeAlso: INT 40"Acorn",INT 42"Acorn",INT 43"Acorn" Format of BBC Master control block: Offset Size Description (Table 03199) 00h BYTE file handle 01h DWORD pointer to data in either I/O processor or Tube processor 05h DWORD number of bytes to be transferred 09h DWORD transfer addressTop
INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER AX = 0000h DS:DX -> character Note: the kernel calls this function when it wants the user program to output a character SeeAlso: AX=0001hTop
INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER AX = 0001h Return: AL = character Note: the kernel calls this function when it needs to input a character SeeAlso: AX=0000hTop
INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT AX = 000Dh SeeAlso: AX=000EhTop
INT 41 CPU - MS Windows debugging kernel - TASK COMING IN AX = 000Eh SeeAlso: AX=000DhTop
INT 41 CPU - MS Windows debugging kernel - "OutputDebugString" AX = 0012h DS:SI -> string (Windows 3.0) ES:SI -> string (Windows 3.1) Return: nothing??? Note: this function is called by the kernel when it wants to output a string through the debugger SeeAlso: AX=0050h,INT 68/AH=47hTop
INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK AX = 004Fh Return: AX = F386h if debugger is present SeeAlso: INT 68/AX=4400hTop
INT 41 P - MS Windows debugging kernel - "DefineDebugSegment" AX = 0050h BX = segment number in executable (0-based) CX = selector DX = instance handle SI = segment flags (0=code, 1=data) ES:DI -> module name of owner Return: ??? SeeAlso: AX=0012h,AX=004FhTop
INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT AX = 0051h ??? Return: ??? SeeAlso: AX=0050h,AX=0052hTop
INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT AX = 0052h BX = freed selector SeeAlso: AX=0050h,AX=0051h,AX=005ChTop
INT 41 CPU - MS Windows debugging kernel - LOAD TASK AX = 0059h ???:BX = CS:IP of new task's starting pointTop
INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT AX = 005Ch BX = freed selector Note: called only when KERNEL starts, once for CS and once for the DS alias to CS SeeAlso: AX=0052hTop
INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT LOAD AX = 0060h ??? Return: ??? SeeAlso: AX=0061hTop
INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD AX = 0061h ??? Return: ??? SeeAlso: AX=0060hTop
INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING AX = 0062h STACK: BYTE exit code Return: ??? STACK unchanged??? SeeAlso: AX=0064hTop
INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq) AX = 0063hTop
INT 41 CPU - MS Windows debugging kernel - DLL LOADED AX = 0064h CX:BX = DLL entry point CS:IP SI = module handle SeeAlso: AX=0062h,AX=0065hTop
INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED AX = 0065h ES = module handle SeeAlso: AX=0064hTop
INT 41 CPU - MS Windows debugging kernel - ERROR AX = 0066h Note: called by LogError() SeeAlso: AX=0067hTop
INT 41 CPU - MS Windows debugging kernel - PARAMETER ERROR AX = 0067h Note: called by LogParamError() SeeAlso: AX=0066hTop
INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA) Desc: contains the address of the original INT 10 handler which an EGA+ video adapter replaces with its own on-board BIOS code SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 6D"VGA" Note: not used by PS/2 built-in VGA or XGATop
INT 42 - Z100 - Master 8259 - Timer SeeAlso: INT 41"Z100",INT 43"Z100"Top
INT 42 - TI Professional PC - IRQ2 Note: on the TI Pro, IRQ0 is connected to the same pin on the expansion bus that IBM connects to IRQ4 SeeAlso: INT 0C"IRQ4",INT 41"TI Professional",INT 43"TI Professional"Top
INT 42 - Western Digital WD1002 SuperBIOS - INT 40 CASCADE Note: if the second WD1002 controller in the system finds INT 40 already in use, it uses this vector to cascade to the first controller's BIOS SeeAlso: INT 40"DISKETTE",INT 47"SuperBIOS"Top
INT 42 - Acorn BBC Master 512 - "OSBPUT" - WRITE SINGLE BYTE TO FILE AL = byte to be written BH = file handle Return: flags destroyed SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"Top
INT 42 C - Chips & Technologies '65530' BIOS - MODE SET HOOK AX = 5F33h BL = current width in characters BH = curent video mode CH = active display page Return: nothing Desc: this function is called at the end of a video mode set Note: the OEM has the option of enabling or disabling this callout, as well as specifying whether the callout occurs on INT 15h or INT 42h SeeAlso: INT 15/AX=5F31h,INT 15/AX=5F35h,INT 10/AX=5F50h,INT 15/AX=5F33hTop
INT 42 U - Toshiba laptops - ??? AX = 7500h BL = ??? (00h or 01h) Return: ??? Note: used by Toshiba utility VCHAD.EXE SeeAlso: AX=7501h,AX=7503hTop
INT 42 U - Toshiba laptop - GET ??? DATA AX = 7501h DS:DI -> data area to be filled ??? Return: area filled with data ??? Note: used by Toshiba utility VCHAD.EXE SeeAlso: AX=7500h,AX=7502h,AX=7503hTop
INT 42 U - Toshiba laptops - SET ??? DATA AX = 7502h DS:DI -> data area ??? Return: ??? Note: used by Toshiba utility VCHAD.EXE SeeAlso: AX=7501h,AX=7503hTop
INT 42 - Toshiba laptops - GET DISPLAY STATUS AX = 7503h Return: AX = 7575h if supported CX = 0001h if supported BH = display type (00h color, 03h monochrome) BL = display state 01h internal LCD display is active 02h external VGA display is active 03h both displays active / DeskStation display mode enabled (not possible on all machines) Note: used by VCHAD.EXE and supported by all Toshiba VGA laptops until about 1994 (string "TOSHIBA " at F000:E010h should be checked before call) no longer supported by T21xx series, use INT 10/AX=5F50h instead INT 42 normally points to F000:F065h but may be redirected by QEMM386 SeeAlso: AX=7500h,AX=7504h,INT 10/AX=5F50h,INT 15/AH=C0hTop
INT 42 U - Toshiba laptops - ??? AX = 7504h BL = ??? Return: BH = ??? Note: used by Toshiba utility VCHAD.EXE SeeAlso: AX=7500h,AX=7503hTop
INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA) Desc: points at graphics data for characters 00h-7Fh of the current font in 8x8 dot modes, graphics data for all characters in 8x14 and 8x16 modes Note: this is not a callable vector! SeeAlso: INT 06"no-name",INT 1F"SYSTEM DATA",INT 44"VIDEO"Top
INT 43 - Z100 - Master 8259 - Slave 8259 input Note: slave runs in special fully nested mode SeeAlso: INT 42"Z100",INT 44"Z100"Top
INT 43 - TI Professional PC - IRQ3 - TIMER1 25ms INTERVAL INTERRUPT SeeAlso: INT 0B"IRQ3",INT 42"TI Professional",INT 44"TI Professional" SeeAlso: INT 58"TI Professional"Top
INT 43 - Acorn BBC Master 512 - "OSBGET" - READ SINGLE BYTE FROM FILE BH = file handle Return: CF clear if successful AL = byte read from file CF set on error SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 42"Acorn",INT 46"Acorn"Top
INT 44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr) Desc: this vector points at graphics data for current character font SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO"Top
INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE APITop
INT 44 - IBM 3270-PC High Level Language API DS:SI -> parameter control blockTop
INT 44 - Z100 - Master 8259 - Serial A SeeAlso: INT 43"Z100",INT 45"Z100"Top
INT 44 - TI Professional PC - IRQ4 Note: on the TI Pro, IRQ4 is connected to the same pin on the expansion bus that IBM connects to IRQ5 SeeAlso: INT 0D"IRQ5",INT 43"TI Professional",INT 45"TI Professional"Top
INT 44 - VIRUS - "Lehigh" - ORIGINAL INT 21h VECTOR SeeAlso: INT 32"VIRUS",INT 60"VIRUS",INT 70"VIRUS",INT 9E"VIRUS"Top
INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE AH = 00h AL = function 00h get current filing system Return: AL = filing system (see #03200) 01h get address of commandline tail Return: BX buffer filled with address of command tail in I/O processor address space (use INT 4A/AL=05h to retrieve) FFh flush all files onto secondary storage BX -> 4-byte data buffer Note: the commandline tail is terminated with a carriage return (0Dh) SeeAlso: INT 40"Acorn",INT 45"Acorn" (Table 03200) Values for BBC Master filing system: 00h none 01h 1200 bps cassette 02h 300 bps cassette 03h ROM FS 04h DFS 05h ANFS/NFS 06h TFS 08h ADFSTop
INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE AH = nonzero file handle AL = function 00h get sequential pointer for file 01h set sequential pointer for file 02h get length of file BX -> 4-byte data buffer Return: BX buffer updated if appropriate SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44/AH=00h,INT 45"Acorn",INT 4A"Acorn"Top
INT 45 - Z100 - Master 8259 - Serial B SeeAlso: INT 44"Z100",INT 46"Z100"Top
INT 45 - TI Professional PC - IRQ5 Note: on the TI Pro, IRQ5 is connected to the same pin on the expansion bus that IBM connects to IRQ6 SeeAlso: INT 0E"IRQ6",INT 44"TI Professional",INT 46"TI Professional"Top
INT 45 - Acorn BBC Master 512 - "OSFILE" - READ/WRITE FILE OR DIRECTORY INFO AL = function 00h save block of memory as file 01h update directory entry for existing file 02h set load address for existing file 03h set execution address for existing file 04h set attributes for existing file 05h read directory 06h delete file FFh load file DS:BX -> control block (see #03201) Return: FLAGS destroyed AL = file type 00h not found 01h file found 02h directory found FFh protected file SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44"Acorn",INT 46"Acorn" Format of BBC Master control block: Offset Size Description (Table 03201) 00h WORD address of CR-terminated filename 02h DWORD load address of file 06h DWORD execution address of file 0Ah DWORD start address of data to save 0Eh DWORD end address of data to save, or file attributes file attributes in low byte (see #03202) other three bytes are filing-system specific file attributes Bitfields for BBC Master file attributes: Bit(s) Description (Table 03202) 0 no owner read access 1 no owner write access 2 not executable by owner 3 not deletable by owner 4 no public read access 5 no public write access 6 not executable with public access 7 not deletable with public accessTop
INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE ADDRESS [NOT A VECTOR!] Note: not used by some PS/2 models SeeAlso: INT 13/AH=09h,INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI"Top
INT 46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen SeeAlso: INT 45"Z100",INT 47"Z100"Top
INT 46 - TI Professional PC - IRQ6 - FLOPPY DISK CONTROLLER Note: on the TI Pro, IRQ6 is connected to the same pin on the expansion bus that IBM connects to IRQ7 SeeAlso: INT 0F"IRQ7",INT 45"TI Professional",INT 47"TI Professional"Top
INT 46 - Acorn BBC Master 512 - "OSRDCH" - GET CHARACTER FROM CUR INPUT STREAM Return: CF clear if successful AL = character read CF set on error AL = error code SeeAlso: INT 40"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"Top
INT 47 - Z100 - Master 8259 - Printer SeeAlso: INT 46"Z100",INT 48"Z100"Top
INT 47 - TI Professional PC - IRQ7 - KEYBOARD USART SeeAlso: INT 09"IRQ1",INT 46"TI Professional"Top
INT 47 - Acorn BBC Master 512 - "OSWRCH" - WRITE CHARACTER TO CUR OUTPUT STREAM AL = character to be written Return: FLAGS destroyed SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 49"Acorn"Top
INT 47 - Western Digital WD1002-27X SuperBIOS - INT 40 CASCADE Desc: used by the second WD1002-27X controller to cascade to the first controller's INT 40 SeeAlso: INT 40"DISKETTE",INT 42"SuperBIOS",INT 48"SuperBIOS"Top
INT 47 - SQL Base - DATABASE ENGINE API AX = 8000h DS:BX -> parameter block, first word is function number (see #03203) Program: SQL Base is a network-oriented database engine by Gupta Technologies SeeAlso: AX=8001h (Table 03203) Values for SQL Base function number: 01h "SQLFINI" initalialize application's use of the database 02h "SQLFDON" application is done using the database 03h "SQLFCON" connect to a cursor/database 04h "SQLFDIS" disconnect from a cursor/database 05h "SQLFCOM" compile a SQL command 06h "SQLFEXE" execute a SQL command 07h "SQLFCEX" compile and execute a SQL command 08h "SQLFCMT" commit a transaction to the database 09h "SQLFDES" describe the items of a SELECT statement 0Ah "SQLFGFI" get fetch information 0Bh "SQLFFBK" fetch previous result row from SELECT statement 0Ch "SQLFFET" fetch next result row from SELECT statement 0Dh "SQLFEFB" enable fetch backwards 0Eh "SQLFPRS" position in result set 0Fh "SQLFURS" undo result set 10h "SQLFNBV" get number of bind variables 11h "SQLFBND" bind data variables 12h "SQLFBNN" bind numerics 13h "SQLFBLN" bind long number 14h "SQLFBLD" bind long data variables 15h "SQLFSRS" start restriction set processing 16h "SQLFRRS" restart restriction set processing 17h "SQLFCRS" close restriction set 18h "SQLFDRS" drop restriction set 19h "SQLFARF" apply Roll Forward journal 1Ah "SQLFERF" end Roll Forward journal 1Bh "SQLFSRF" start Roll Forward journal 1Ch "SQLFSTO" store a compiled SQL command 1Dh "SQLFRET" retrieve a compiled SQL command 1Eh "SQLFDST" drop a stored command 1Fh "SQLFCTY" get command type 20h "SQLFEPO" get error position 21h "SQLFGNR" get number of rows 22h "SQLFNSI" get number of select items 23h "SQLFRBF" get Roll Back flag 24h "SQLFRCD" get return code 25h "SQLFROW" get number of ROWs 26h "SQLFSCN" set cursor name 27h "SQLFSIL" set isolation level 28h "SQLFSLP" set log parameters 29h "SQLFSSB" set select buffer 2Ah "SQLFSSS" set sort space 2Bh "SQLFRLO" read long 2Ch "SQLFWLO" write long 2Dh "SQLFLSK" long seek 2Eh "SQLFGLS" get long size 2Fh "SQLFELO" end long operation 30h "SQLFRBK" roll back a transaction from the database 31h "SQLFERR" error message 32h "SQLFCPY" copy 33h "SQLFR01" reserved 34h "SQLFSYS" system 35h "SQLFSTA" statistics 36h "SQLFR02" reserved 37h "SQLFXAD" extra add 38h "SQLFXCN" extra character to number 39h "SQLFXDA" extra date add 3Ah "SQLFXDP" extra date picture 3Bh "SQLFXDV" extra divide 3Ch "SQLFXML" extra multiply 3Dh "SQLFXNP" extra number picture 3Eh "SQLFXPD" extra picture date 3Fh "SQLFXSB" extra subtract 40h "SQLFINS" install database 41h "SQLFDIN" deinstall database 42h "SQLFDIR" directory of databases 43h "SQLFTIO" timeout 44h "SQLFFQN" get fully qualified column name 45h "SQLFEXP" explain execution plan 46h "SQLFFER" get full error 47h "SQLFBKP" begin online backup 48h "SQLFRDC" read backup data chunk 49h "SQLFEBK" end backup 4Ah "SQLFRES" begin restore from backup 4Bh "SQLFWDC" write backup data chunk for restore 4Ch "SQLFRRD" recover restored database to consistent state 4Dh "SQLFERS" end restore 4Eh "SQLFNRR" return number of result set rows 4Fh "SQLFSTR" start restriction mode 50h "SQLFSPR" stop restriction mode 51h "SQLFCNC" connect 2 52h "SQLFCNR" connect with no recovery 53h "SQLFOMS" set output message size 54h "SQLFIMS" set input message size 55h "SQLFSCP" set cache pages 56h "SQLFDSC" describe items of a SELECT statement (external) 57h "SQLFLAB" get label info for items in SELECT statement 58h "SQLFCBV" clear bind variables 59h "SQLFGET" get database information 5Ah "SQLFSET" set database information 5Bh "SQLFTEC" translate error codeTop
INT 47 - SQL Base - GET VERSION NUMBER AX = 8001h Return: ??? Program: SQL Base is a network-oriented database engine by Gupta Technologies SeeAlso: AX=8000hTop
INT 48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr) AL = scan code??? Note: This interrupt may be un-initialized (0000h:0000h) on old machines. This should be checked before calling or hooking this vector. MS-DOS/PC DOS 3.3x-4.x KEYB hooked the INT 48h handler. For AL <= 80h it checked that either ALT and neither CTRL key was pressed, and in that case, it cleared the CTRL flag in the BIOS variable at 0040:0017h and stored its contents in an internal variable, before continuing with the previous (non-zero) INT 48h handler. SeeAlso: INT 49"PCjr"Top
INT 48 - Z100 - Slave 8259 - S100 vectored line 0 SeeAlso: INT 47"Z100",INT 49"Z100"Top
INT 48 - Watstar PC Network data pointer 1 SeeAlso: INT 49"Watstar"Top
INT 48 - Acorn BBC Master 512 - "OSNEWL" - SEND NEWLINE TO OUTPUT STREAM Return: FLAGS destroyed Note: writes a carriage return (0Dh) followed by a linefeed (0Ah) SeeAlso: INT 40"Acorn",INT 47"Acorn",INT 49"Acorn"Top
INT 48 - Western Digital WD1002-27X SuperBIOS - DRIVE DATA (NOT A VECTOR!) Note: the second WD1002-27X controller in a system uses the low byte to store the number of drives controlled by the second controller, and the high word for temporary storage during track recalculation; the first controller uses offsets 74h-77h in the BIOS data area (refer to MEMORY.LST) to store data SeeAlso: INT 47"SuperBIOS"Top
INT 48 U - Compaq UILIB.EXE - API AX = function (see #03204) BX = call type (0002h) (see #03207) ??? Return: ??? Note: returns AX=FFFFh if 1000h<=AX<=2000h and AX is not one of the functions listed below SeeAlso: AX=1A70h (Table 03204) Values for valid UILIB function number: 1000h 1160h 12D0h 1430h 1570h 1680h 17F0h 1920h 1A90h 1010h 1170h 12E0h 1440h 1578h 1690h 1800h 1930h 1AA0h 1020h 1180h 12F0h 1450h 1580h 16A0h 1810h 1940h 1030h 1190h 1300h 1460h 1590h 16B0h 1820h 1950h 1040h 11A0h 1310h 1470h 1594h 16C0h 1830h 1960h 1050h 11B0h 1320h 1480h 1598h 16D0h 1840h 1970h 1060h 11C0h 1330h 1490h 15A0h 16E0h 1848h 1980h 1070h 11D0h 1340h 14A0h 15B0h 16F0h 1850h 1990h 1080h 11E0h 1350h 14B0h 15C0h 1700h 1860h 19A0h 1090h 11F0h 1360h 14B8h 15D0h 1710h 1870h 19B0h 1095h 1200h 1370h 14BBh 15D4h 1720h 1878h 19C0h 1098h 1210h 1380h 14C0h 15D8h 1730h 1880h 19D0h 10A0h 1220h 1390h 14D0h 15E0h 1735h 1890h 19E0h 10C0h 1230h 13A0h 14E0h 15F0h 1740h 1898h 19F0h 10D0h 1240h 13B0h 14F0h 1600h 1750h 18A0h 1A00h 10E0h 1250h 13B8h 1500h 1610h 1770h 18B0h 1A10h 10F0h 1260h 13C0h 1508h 1620h 1780h 18C0h 1A20h 1100h 1270h 13D0h 1510h 1630h 1790h 18D0h 1A30h 1110h 1280h 13E0h 1520h 1640h 17A0h 18E0h 1A40h 1120h 1290h 13F0h 1530h 1650h 17B0h 18F0h 1A50h 1130h 12A0h 1400h 1540h 1660h 17C0h 1900h 1A60h 1140h 12B0h 1410h 1550h 1664h 17D0h 1909h 1A70h 1150h 12C0h 1420h 1560h 1670h 17E0h 1910h 1A80hTop
INT 48 - TI Professional PC - SPEAKER DEVICE - SOUND SPEAKER AH = 00h AL = number of 25ms ticks sound should last Return: nothing Desc: sound the speaker at the current frequency setting (see AH=02h) for the indicated duration Notes: this function returns immediately; the sound is terminated by the timer interrupt handler if a new sound is requested while one is already in progress, the previous sound is terminated immediately and the new sound takes its place SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI" SeeAlso: INT 4A/AH=00h"TI",INT 4C"TI Professional",INT 4D/AH=00hTop
INT 48 - TI Professional PC - SPEAKER DEVICE - CHECK SPEAKER STATUS AH = 01h Return: ZF clear if speaker is currently on ZF set if speaker is currently off SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - SPEAKER DEVICE - SET SPEAKER FREQUENCY AH = 02h CX = frequency divisor (freq = 1250000 / CX) Return: nothing SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - SPEAKER DEVICE - TURN ON SPEAKER AH = 03h Return: nothing Desc: turn on the speaker at the current frequency, leaving it on until explicitly turned off with AH=04h or the end of a subsequent AH=00h SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - SPEAKER DEVICE - TURN OFF SPEAKER AH = 04h Return: nothing SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - SPEAKER DEVICE - DELAY AH = 05h CX = desired delay in milliseconds Return: after delay expires Note: the delay is only approximate, and may be longer than requested SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - CALCULATE CRC AH = 06h ES:BX -> memory block for which to calculate CRC BP = size of block in bytes Return: DX = CRC for block ZF set if DX = 0000h Note: if the CRC of a memory block is appended to the block, then the CRC of the block plus CRC should equal 0000h SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - PRINT ROM MESSAGE AH = 07h SI = offset of ASCIZ message string within segment F400h Return: nothing SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - DISPLAY SYSTEM ERROR MESSAGE AH = 08h BX = error number Return: nothing Desc: displays the error message " ** System Error ** - xxxx" where xxxx is the hexadecimal value in BX SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - GET SYSTEM CONFIGURATION DATA AH = 09h Return: ES:BX -> system configuration word (see #03227) SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0BhTop
INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFO ADDRESS AH = 0Ah Return: ES:BX -> configuration information (see #03205) SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Bh Format of TI Professional PC extra system configuration information: Offset Size Description (Table 03205) -3 WORD memory size in paragraphs 00h BYTE drive type byte (see #03206) 01h WORD extra system configuration word 1 bit 0: 8087 is present bits 15-1: reserved (0) 03h WORD extra system configuration word 2 bits 15-0: reserved (0) Bitfields for TI Professional PC drive type byte: Bit(s) Description (Table 03206) 0 drive A is double-sided 1 drive A has 80 tracks instead of 40 2 drive B is double-sided 3 drive B has 80 tracks instead of 40 4 drive C is double-sided 5 drive C has 80 tracks instead of 40 6 drive D is double-sided 7 drive D has 80 tracks instead of 40 Note: the type for drive A is determined by motherboard switches; the remaining drives' types are set from a table in IO.SYS SeeAlso: #03205Top
INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFORMATION AH = 0Bh Return: AL = drive type byte (see #03206) BX = extra system configuration word 1 (see #03205) CX = extra system configuration word 2 (see #03205) AH destroyed SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0AhTop
INT 48 U - Compaq UILIB.EXE - INSTALLATION CHECK
AX = 1A70h
BX = call type (see #03207)
Return: CX = 5649h ('VI') if installed
DX = 4557h ('EW') if installed
AX = version??? (0106h)
(Table 03207)
Values for UILIB call type:
0000h near
0001h far
0002h INT (only valid call type when using INT 48)
0003h near
Top
INT 49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr) SeeAlso: #03208,INT 48"PCjr" Format of PCjr scan-code translation table: Offset Size Description (Table 03208) 00h BYTE number of non-keyboard scancodes in the table 01h N WORDs high byte 00h (NUL) byte scancode with low order byte representing the scancode mapped values relative to their input values within the range of 56h through 7EhTop
INT 49 - Z100 - Slave 8259 - S100 vectored line 1 SeeAlso: INT 48"Z100",INT 4A"Z100"Top
INT 49 - Watstar PC Network data pointer 2 SeeAlso: INT 48"Watstar"Top
INT 49 - Acorn BBC Master 512 - "OSASCI" - WRITE CHARACTER TO CUR OUTPUT STREAM AL = character to be written Return: FLAGS destroyed Note: converts carriage return (0Dh) into CRLF sequence (0Dh 0Ah) SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 47"Acorn",INT 48"Acorn"Top
INT 49 - Tandy 2000 - BOOTSTRAP LOADER Note: this interrupt is identical to INT 19 SeeAlso: INT 19,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 51"Tandy 2000"Top
INT 49 - MAGic v1.16+ - TURN ON MAGNIFICATION AX = 0001h Return: AX = status (see #03209) BX,CX,DX destroyed Program: MAGic (MAGnification In Color) is a TSR by Microsystems Software, Inc. providing 2x2 text and graphics magnification on VGA, XGA, and SVGA Note: INT 49 is the default, but may be overridden on the commandline. The actual interrupt in use may be found by searching for the signature "MAGic" or "xMAGic" (for the deluxe version) immediately preceding the interrupt handler (this is also the installation check). MAGic uses CodeRunneR, which places the signature "RT" at offset 0000h in the interrupt handler's segment, followed by MAGic's TSR ID of "VMAG". SeeAlso: AX=0002h,AX=0003h,AX=0004h,AX=0008h Index: installation check;MAGic (Table 03209) Values for MAGic status: 0000h cannot magnify current video mode 0002h magnified (text mode) 0003h magnified (graphics mode) FFFDh function works only in magnified mode FFFFh MAGic busy, retry laterTop
INT 49 - MAGic v1.16+ - TURN OFF MAGNIFICATION AX = 0002h Return: AX = status (see #03209) BX,CX,DX destroyed SeeAlso: AX=0001hTop
INT 49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION AX = 0003h BX = vertical position (character row [text] or pixel row [graphics]) DX = horizontal position (char column [text] or 8-pixel units [gr]) Return: AX = status 0000h successful FFFFh MAGic busy, retry later BX,CX,DX destroyed Note: window is not moved if the position is inside the current window SeeAlso: AX=0001h,AX=0004h,AX=0005hTop
INT 49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW AX = 0004h BX = vertical position of upper left corner DX = horizontal position Return: AX = status (see AX=0003h) BX,CX,DX destroyed SeeAlso: AX=0001h,AX=0003h,AX=0005hTop
INT 49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW AX = 0005h Return: AX = status 0000h successful BX = vertical position (char row or pixel row) DX = horizontal position (char column or 8-pixel units) FFFFh MAGic busy, retry later BX,DX destroyed CX destroyed SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0006h,AX=0007hTop
INT 49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN AX = 0006h Return: AX = status 0000h successful BX = vertical size (char rows or pixel rows) DX = horizontal size (char cols or 8-pixel units) FFFFh MAGic busy, retry later BX,DX destroyed CX destroyed SeeAlso: AX=0001h,AX=0005h,AX=0007hTop
INT 49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW AX = 0007h Return: AX = status 0000h successful BX = vertical size (char rows or pixel rows) DX = horizontal size (char cols or 8-pixel units) FFFEh invalid function FFFFh MAGic busy, retry later BX,DX destroyed CX destroyed BUG: in v1.16 and v1.17, this function is not recognized as valid, but AX=0000h is accepted and will branch into hyperspace SeeAlso: AX=0001h,AX=0006hTop
INT 49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE AX = 0008h BX = scaling factor (01h=1.4 times, 02h, 04h, 06h, 08h, 09h=12 times) Return: AX = status 0000h successful FFFBh scaling factor only available in MAGic Deluxe FFFCh already in magnified state, can't set size Notes: this call specifies the amount a subsequent call to AX=0001h should magnify the display scaling factors greater than 2 are only available in MAGic Deluxe SeeAlso: AX=0001hTop
INT 49 - TI Professional PC - CRT - SET CURSOR SIZE AND TYPE AH = 01h CH = cursor start line (bits 3-0) and status (bits 6-5) status bits: 00 non-blinking cursor 01 no cursor 10 fast-blinking cursor 11 slow-blinking cursor CL = cursor end line Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=02h,AH=03h,INT 40"TI Professional",INT 48/AH=00h"TI Professional" SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h SeeAlso: INT 57"TI Professional"Top
INT 49 - TI Professional PC - CRT - SET CURSOR POSITION AH = 02h DH = column DL = row Return: DX destroyed Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs the TI swaps the row and column compared to the equivalent IBM call SeeAlso: AH=01h,AH=03hTop
INT 49 - TI Professional PC - CRT - GET CURSOR POSTION AND TYPE AH = 03h Return: CH = cursor start and status (see AH=01h) CL = cursor end line DH = cursor column DL = cursor row Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02hTop
INT 49 - TI Professional PC - CRT - SCROLL UP/COPY WINDOW AH = 06h AL = source blanking 00h blank source region (move/scroll) nonzero do not blank source region (copy) DH,DL = source start column,row BH,BL = destination start column,row CH = width of region to move/copy CL = height of region to move/copy Return: nothing Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs the specified region may be wider than the screen, but reliable operation then requires that the height be exactly one row SeeAlso: AH=01h,AH=02h,AH=07h,AH=13h,AH=14hTop
INT 49 - TI Professional PC - CRT - SCROLL DOWN/COPY WINDOW AH = 07h AL = source blanking 00h blank source region (move/scroll) nonzero do not blank source region (copy) DH,DL = source start column,row BH,BL = destination start column,row CH = width of region to move/copy CL = height of region to move/copy Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h,AH=14hTop
INT 49 - TI Professional PC - CRT - GET CHARACTER AND ATTRIBUTE AT POSITION AH = 08h Return: AL = character at current cursor position AH = attribute Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=09h,AH=0Ah,AH=0Eh,INT 10/AH=08hTop
INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH ATTRIBUTE AH = 09h AL = character to write BL = attribute to use (becomes new current attribute) CX = number of times to write character Return: nothing Desc: write CX copies of the character in AL beginning at the current cursor position Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=08h,AH=0Ah,AH=0Eh,INT 10/AH=09hTop
INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH CURRENT ATTRIBUTE AH = 0Ah AL = character to write CX = number of times to write character Return: nothing Desc: write CX copies of the character in AL beginning at the current cursor position Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Eh,INT 10/AH=0AhTop
INT 49 - TI Professional PC - CRT - TTY OUTPUT AH = 0Eh AL = character to write Return: nothing Desc: write the character in AL at the current cursor position, advancing the cursor, and interpreting CR, LF, TAB, and BEL characters Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Ah,INT 10/AH=0EhTop
INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH ATTRIBUTE AH = 10h AL = attribute (becomes new current attribute) DX:BX -> string of characters to write CX = length of string Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs BUG: CX must not be 0000h on entry, or the system will crash SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=11hTop
INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH CURR ATTRIB AH = 11h DX:BX -> string of characters to write CX = length of string Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs BUG: CX must not be 0000h on entry, or the system will crash SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=10hTop
INT 49 - TI Professional PC - CRT - FILL ENTIRE SCREEN WITH ATTRIBUTE AH = 12h AL = attribute (see #03210) Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02h Bitfields for TI Professional PC screen attribute: Bit(s) Description (Table 03210) 7 alternate character set (requires user-supplied ROM) 6 blink 5 underline 4 reverse video 3 character enable 2 green (color) or 58% intensity (gray-scale) 1 red (color) or 27.5% intensity 0 blue (color) or 14.5% intensityTop
INT 49 - TI Professional PC - CRT - CLEAR ENTIRE TEXT SCREEN AND HOME CURSOR AH = 13h Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02h,AH=06h,AH=14hTop
INT 49 - TI Professional PC - CRT - CLEAR ENTIRE GRAPHICS SCREEN AH = 14h Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02h,AH=06h,AH=13hTop
INT 49 - TI Professional PC - CRT - SET PROTECTED STATUS AREA AH = 15h CL = row at which to start status area, or 00h to cancel CH = 00h Return: nothing Desc: set a protected area of the screen which will not be affected by TTY writes or the scrolls they may generate Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs the current cursor position must be above the status area in order to set the protected area SeeAlso: AH=01h,AH=02hTop
INT 49 - TI Professional PC - CRT - SET ATTRIBUTE LATCH AH = 16h BL = new attribute (see #03210) Return: nothing Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02hTop
INT 49 - TI Professional PC - CRT - GET START-OF-DISPLAY POINTER AH = 17h Return: DX = current offset at which display starts Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs SeeAlso: AH=01h,AH=02h,INT 10/AH=FEhTop
INT 49 - TI Professional PC - CRT - PRINT TTY STRING AH = 18h CS:BX -> counted string (count byte with length followed by string) Return: nothing Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs the string must be located in the caller's code segment; any TSRs which want to hook INT 49 must check for this function and emulate it, because the BIOS retrieves the caller's CS from the stack SeeAlso: AH=01h,AH=02h,AH=0EhTop
INT 4A C - SYSTEM - USER ALARM HANDLER Desc: This interrupt is invoked by the BIOS when a real-time clock alarm occurs; an application may use it to perform an action at a predetermined time. Note: this interrupt is called from within a hardware interrupt handler, so all usual precautions against reentering DOS must be taken SeeAlso: INT 1A/AH=06hTop
INT 4A - Z100 - Slave 8259 - S100 vectored line 2 SeeAlso: INT 49"Z100",INT 4B"Z100"Top
INT 4A - Tandy 2000 - PRINT SCREEN Note: this interrupt is identical to INT 05 SeeAlso: INT 05"PRINT SCREEN"Top
INT 4A - Acorn BBC Master 512 - "OSWORD" - MISC FUNCTIONS USING CONTROL BLOCK AL = function code FAh transfer data between 80186 and 65C12 I/O processor DS:BX -> control block (see #03211) Return: FLAGS destroyed control block updated Note: there are more functions than are listed here, but details are not available SeeAlso: INT 40"Acorn",INT 4B"Acorn",INT 4C"Acorn" Format of BBC Master control block for function FAh: Offset Size Description (Table 03211) 00h BYTE number of parameters sent to I/O processor (0Dh,0Eh) 01h BYTE number of parameters read from I/O processor (01h) 02h DWORD I/O processor address 06h DWORD 80186 segment:offset address 0Ah WORD number of bytes to transfer 0Ch BYTE operation type 00h write to 65C12 at 24 us/byte 01h read from 65C12 at 24 us/byte 02h write to 65C12 at 26 us/word 03h read from 65C12 at 26 us/word 04h write to 65C12 at 10 us/byte using 256-byte blocks 05h read from 65C12 at 10 us/byte using 256-byte blocks 0Dh BYTE 65C12 memory access control (only used if offset 00h = 0Eh) (see #03212) Bitfields for 65C12 memory access control: Bit(s) Description (Table 03212) 7 unused 6 always use main screen memory if I/O addr 3000h-7FFFh (overrides bit 5) 5 use shadow screen memory if screen address specified 4 use current ROM rather than ROM selected by bits 3-0 (only if I/O address between 8000h and BFFFh) 3-0 paged ROM numberTop
INT 4A - TI Professional PC - KEYBOARD - GET KEYPRESS AH = 00h Return: AX = keystroke (AH=00h for ASCII keys -- no scan code) SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=00h SeeAlso: INT 47"TI Professional",INT 48/AH=00h"TI Professional" SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h SeeAlso: INT 5B"TI Professional"Top
INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD STATUS AH = 01h Return: ZF set if no keystroke available ZF clear if keystrokes in buffer AX = next keystroke (AH=00h for ASCII keys -- no scan code) SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=01hTop
INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD MODE AH = 02h Return: AL = shift states (see #03213) SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=02h Bitfields for TI Professional PC keyboard shift states: Bit(s) Description (Table 03213) 0 Ctrl key pressed 1 Alt key pressed 2 either Shift key pressed 3-6 0 7 CapsLock is ONTop
INT 4A - TI Professional PC - KEYBOARD - FLUSH KEYBOARD BUFFER AH = 03h Return: nothing SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05hTop
INT 4A - TI Professional PC - KEYBOARD - SEND COMMAND TO KEYBOARD AH = 04h AL = command 00h reset to default states 01h enable auto-repeat (default) 02h disable auto-repeat 03h lock keyboard 04h unlock keyboard (default) 05h enable keyclick (requires hardware modification to work) 06h disable keyclick (default) Return: nothing SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05hTop
INT 4A - TI Professional PC - KEYBOARD - INSERT CHARACTER INTO KEYBOARD BUFFER
AH = 05h
BX = character code (BH=00h if ASCII character, BL=00h/BH nonzero for
extended codes) (see #03214)
Return: ZF set if keyboard buffer was already full
ZF clear if keystroke inserted into buffer
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 5B"TI"
(Table 03214)
Values for TI Professional PC scan/character codes:
Scan Key Normal Shift Ctrl Alt Notes
00h -- unused
01h F5 3F00h 5800h 6200h 6C00h
02h F6 4000h 5900h 6300h 6D00h
03h F7 4100h 5A00h 6400h 6E00h
04h F8 4200h 5B00h 6500h 6F00h
05h F9 4300h 5C00h 6600h 7000h
06h F10 4400h 5D00h 6700h 7100h
07h F11 4500h 0800h 0A00h 0C00h
08h F12 4600h 0900h 0B00h 0D00h
09h 1 ! 0031h 0021h ---- 7800h
0Ah 2 @ 0032h 0040h 0300h 7900h
0Bh 3 # 0033h 0023h ---- 7A00h
0Ch 4 $ 0034h 0024h ---- 7B00h
0Dh 5 % 0035h 0025h ---- 7C00h
0Eh 6 ^ 0036h 005Eh 001Eh 7D00h
0Fh 7 & 0037h 0026h ---- 7E00h
10h 8 * 0038h 002Ah ---- 7F00h
11h 9 ( 0039h 0028h ---- 8000h
12h 0 ) 0030h 0029h ---- 8100h
13h - _ 002Dh 005Fh 001Fh 8200h
14h = + 003Dh 002Bh ---- 8300h
15h BACK SPACE 0008h 0008h 007Fh ----
16h ` ~ 0060h 007Eh ---- ----
17h NUM = 003Dh 003Dh 003Dh 8C00h
18h NUM + 002Bh 002Bh 002Bh 8D00h
19h NUM SPAC 0020h 0020h 0020h 8E00h
1Ah NUM TAB 0009h 0F00h 0009h 8F00h
1Bh NUM 1 0031h 0031h 0031h (alt-###) [Note 5]
1Ch (unused)
1Dh NUM 0 0030h 0030h 0030h (alt-###) [Note 5]
1Eh NUM ENTER 000Dh 000Dh 000Dh ----
1Fh NUM 4 0034h 0034h 0034h (alt-###) [Note 5]
20h NUM 5 0035h 0035h 0035h (alt-###) [Note 5]
21h NUM 9 0039h 0039h 0039h (alt-###) [Note 5]
22h NUM - 002Dh 002Dh 002Dh ----
23h NUM 2 0032h 0032h 0032h (alt-###) [Note 5]
24h-26h -- unused
27h NUM 7 0037h 0037h 0037h (alt-###) [Note 5]
28h NUM 8 0038h 0038h 0038h (alt-###) [Note 5]
29h NUM 6 0036h 0036h 0036h (alt-###) [Note 5]
2Ah NUM , 002Ch 002Ch 002Ch ----
2Bh NUM 3 0033h 0033h 0033h (alt-###) [Note 5]
2Ch NUM . 002Eh 002Eh 002Eh ----
2Dh PRINT 7200h [Note2] ---- ---- [Notes 1,2]
2Eh RtArrow 4D00h 8A00h 7400h 4E00h
2Fh INS 5200h 2800h 2900h 2A00h [Note 1]
30h DEL 5300h 3800h 3900h 3A00h [Note 1]
31h TAB 0009h 0F00h 0009h ----
32h Q 0071h 0051h 0011h 1000h
33h W 0077h 0057h 0017h 1100h
34h E 0065h 0045h 0005h 1200h
35h R 0072h 0052h 0012h 1300h
36h T 0074h 0054h 0014h 1400h
37h Y 0079h 0059h 0019h 1500h
38h U 0075h 0055h 0015h 1600h
39h I 0069h 0049h 0009h 1700h
3Ah O 006Fh 004Fh 000Fh 1800h
3Bh P 0070h 0050h 0010h 1900h
3Ch [ { 005Bh 007Bh 001Bh ----
3Dh ] } 005Dh 007Dh 001Dh ----
3Eh LINE FEED 000Ah 000Ah 7500h 4F00h
3Fh BRK/PAUS [Note3] [Note4] ---- ---- [Notes 1,3,4]
40h UpArrow 4800h 8800h 8400h 4900h
41h ESC 001Bh 001Bh 001Bh ----
42h A 0061h 0041h 0001h 1E00h
43h S 0073h 0053h 0013h 1F00h
44h D 0064h 0044h 0004h 2000h
45h F 0066h 0046h 0006h 2100h
46h G 0067h 0047h 0007h 2200h
47h H 0068h 0048h 0008h 2300h
48h J 006Ah 004Ah 000Ah 2400h
49h K 006Bh 004Bh 000Bh 2500h
4Ah L 006Ch 004Ch 000Ch 2600h
4Bh ; : 003Bh 003Ah ---- ----
4Ch ' " 0027h 0022h ---- ----
4Dh RETURN 000Dh 000Dh 000Dh ----
4Eh \ | 005Ch 007Ch 001Ch ----
4Fh LeftArrow 4B00h 8B00h 7300h 4C00h
50h HOME 4700h 8600h 7700h 8500h
51h Space Bar 0020h 0020h 0020h 0020h
52h Z 007Ah 005Ah 001Ah 2C00h
53h X 0078h 0058h 0018h 2D00h
54h C 0063h 0043h 0003h 2E00h
55h V 0076h 0056h 0016h 2F00h
56h B 0062h 0042h 0002h 3000h
57h N 006Eh 004Eh 000Eh 3100h
58h M 006Dh 004Dh 000Dh 3200h
59h , < 002Ch 003Ch ---- ----
5Ah PRINT 7200h [Note2] ---- ---- [Notes 1,2]
5Bh . > 002Eh 003Eh ---- ----
5Ch / ? 002Fh 003Fh ---- ----
5Dh (unused)
5Eh DEL 5300h 3800h 3900h 3A00h [Note 1]
5Fh INS 5200h 2800h 2900h 2A00h [Note 1]
60h DownArrow 5000h 8900h 7600h 5100h
61h-63h -- unused
64h BRK/PAUS [Note3] [Note4] ---- ---- [Notes 1,3,4]
65h F1 3B00h 5400h 5E00h 6800h
66h F2 3C00h 5500h 5F00h 6900h
67h F3 3D00h 5600h 6000h 6A00h
68h F4 3E00h 5700h 6100h 6B00h
69h-6Fh -- unused
Notes: [1] four of the keys can have differing scan codes, depending on the
actual keyboard; the BIOS accepts either scan code ("normal": 2Fh,
30h, 5Ah, 64h; "alternate": 2Dh,3Fh,5Eh,5Fh) for any of these keys
[2] Shift-Print invokes INT 5E for a screen dump; the PRTSCRN.DEV
device driver also supports Alt-Print, Ctrl-Print, Shift-Alt-Print,
and Shift-Ctrl-Print for dumping graphics in various permutations
[3] BRK/PAUS invokes INT 5C for a pause, then stuffs 0100h into the
keyboard buffer
[4] Shift-BRK/PAUS invokes INT 5D for the Break, then stuffs 0000h
into the keyboard buffer; MS-DOS hooks INT 5D to keep the 0000h from
appearing in the keyboard buffer
[5] on the TI Pro, one enters an arbitrary character slightly
differently than on a standard PC: exactly three numberpad digits
must be pressed (using leading zeros for codes less than 100), and
the key for the requested code is inserted into the keyboard buffer
immediately on pressing the third key. The Alt key may be released
and re-pressed arbitrarily often between digits without affecting
the Alt-digit-digit-digit sequence.
scan codes with bit 7 set are not key releases, but rather
auto-repeated keystrokes, which the BIOS only places into the
keyboard buffer if the buffer is empty at the time (thus avoiding
typeahead of repeated keystrokes faster than they can be processed)
SeeAlso: #00006 at INT 09
Top
INT 4B - Z100 - Slave 8259 - S100 vectored line 3 SeeAlso: INT 4A"Z100",INT 4C"Z100"Top
INT 4B - Common Access Method SCSI interface (draft revision 1.9) ES:DI -> CAM Control Block (see #03229 at INT 4F/AX=8100h) InstallCheck: test for the string "SCSI_CAM" eight bytes past the INT 4Bh handler Notes: the CAM committee moved the interface to INT 4F after revision 1.9 to avoid conflicting with the IBM SCSI interface and the Virtual DMA specification the only driver to date reported to use the CAM interface on INT 4B instead of INT 4F is from Future Domain (which has drivers for CAM on either interrupt) SeeAlso: INT 4F/AX=8100h Index: installation check;Common Access Method SCSI interfaceTop
INT 4B - Tandy 2000 - EQUIPMENT DETERMINATION Return: AX = BIOS equipment list word (see #03215) Note: this interrupt is identical to INT 11 on the Tandy 2000 SeeAlso: INT 11"EQUIPMENT",INT 4A"Tandy 2000",INT 4C"Tandy 2000" Bitfields for Tandy 2000 BIOS equipment list: Bit(s) Description (Table 03215) 0 reserved 1 monochrome graphics installed 2 graphics with color option installed 3 floppy disk drive 1 installed 4 floppy disk drive 2 installed 5 hard disk drive 1 installed 6 hard disk drive 2 installed 7 unused 8 black and white monitor 9 color monitor 12-10 reserved 13 printer installed 14 reserved 15 unused SeeAlso: #00226 at INT 11Top
INT 4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS AL = function code BL = first parameter BH = second parameter (if needed) Return: BL = first return parameter BH = second return parameter CF depends on function SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4C"Acorn"Top
INT 4B - TI Professional PC - PARALLEL PORT - OUTPUT CHARACTER AH = 00h DL = printer number (00h) AL = character to print Return: AH = printer status (see #03216) Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the TI hook INT 4B and handle requests for DL<>00h SeeAlso: AH=01h,AH=02h,INT 17/AH=00h SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional" SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h Bitfields for TI Professional PC printer status: Bit(s) Description (Table 03216) 0 timeout (function 00h only) 3-1 unused 4 busy 5 paper out 6 on-line (selected) 7 faultTop
INT 4B - TI Professional PC - PARALLEL PORT - INITIALIZE PRINTER AH = 01h DL = printer number (00h) Return: AH = printer status (see #03216) Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the TI hook INT 4B and handle requests for DL<>00h SeeAlso: AH=00h,AH=02h,INT 17/AH=01hTop
INT 4B - TI Professional PC - PARALLEL PORT - GET PRINTER STATUS AH = 02h DL = printer number (00h) Return: AH = printer status (see #03216) Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the TI hook INT 4B and handle requests for DL<>00h SeeAlso: AH=00h,AH=01h,INT 17/AH=02hTop
INT 4B - IBM SCSI interface AH = 80h AL = 00h-10h (Corel PowerSCSI INT4BCAM.SYS) further details not yet availableTop
INT 4B - Virtual DMA Specification (VDS) - GET VERSION
AX = 8102h
DX = 0000h
Return: CF clear if successful
AH = major version number
AL = minor version number
BX = product number (see #03217)
CX = product revision number
always 0000h for QMAPS and HPMM.SYS
always 0001h for Microsoft's EMM386.EXE v4.20-4.41
DX = flags (see #03219)
SI:DI = maximum DMA buffer size
CF set on error
AL = error code (see #03218)
Note: bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is
apparently not always the case
SeeAlso: INT 2C/AX=002Bh,INT 31/AX=0400h,MEM 0040h:007Bh"4Bh"
Index: installation check;Virtual DMA Specification
(Table 03217)
Values for VDS product number:
0000h for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS
0001h for Microsoft's EMM386.EXE
0003h for Windows 3.x WIN386.EXE
0300h OS/2 (all versions to date)
0EDCh for DR DOS 6.0 EMM386.SYS
4560h ("E`") for Qualitas' 386MAX
4D43h ("MC") for V Communications' Memory Commander
5145h ("QE") for Quarterdeck's QEMM-386
524Dh ("RM") for Helix's Netroom RM386
(Table 03218)
Values for VDS error code:
01h region not in contiguous memory
02h region crossed a physical alignment boundary
03h unable to lock pages
04h no buffer available
05h region too large for buffer
06h buffer currently in use
07h invalid memory region
08h region was not locked
09h number of physical pages greater than table length
0Ah invalid buffer ID
0Bh copy out of buffer range
0Ch invalid DMA channel number
0Dh disable count overflow
0Eh disable count underflow
0Fh function not supported
10h reserved flag bits set in DX
Bitfields for VDS flags:
Bit(s) Description (Table 03219)
0 PC/XT bus (DMA in first megabyte only)
1 physical buffer/remap region in first megabyte
2 automatic remap enabled
3 all memory is physically contiguous
4-15 reserved (zero)
Top
INT 4B - Virtual DMA Specification - LOCK DMA REGION AX = 8103h DX = flags (see #03220) ES:DI -> DMA descriptor structure (see #03221,#03222,#03223) Return: CF clear if successful DDS physical address field filled in DDS buffer ID field filled (0000h if no buffer allocated) CF set on error AL = error code (see #03218) DDS region size field filled wth maximum contiguous length in bytes BUGS: Windows 3.0 does not correctly support automatic remapping or copying in enhanced mode Windows 3.0 in enhanced mode does not return a correct code on error SeeAlso: AX=8104h,AX=8105h Bitfields for VDS flags: Bit(s) Description (Table 03220) 0 reserved (zero) 1 data should be copied into buffer (ignored if 2 set) 2 buffer should not be allocated if region noncontiguous or crosses physical alignment boundary specified by 4-5 3 don't attempt automatic remap 4 region must not cross 64K physical alignment boundary 5 region must not cross 128K physical alignment boundary 6-15 reserved (zero) Format of DMA descriptor structure (DDS): Offset Size Description (Table 03221) 00h DWORD region size 04h DWORD offset 08h WORD segment/selector 0Ah WORD buffer ID 0Ch DWORD physical address Format of Extended DMA descriptor structure (EDDS): Offset Size Description (Table 03222) 00h DWORD region size 04h DWORD offset 08h WORD segment/selector 0Ah WORD reserved 0Ch WORD number available 0Eh WORD number used 10h DWORD region 0 physical address 14h DWORD region 0 size in bytes 18h DWORD region 1 physical address 1Ch DWORD region 1 size in bytes ... Format of Extended DMA descriptor structure (EDDS) with page table entries: Offset Size Description (Table 03223) 00h DWORD region size 04h DWORD offset 08h WORD segment/selector 0Ah WORD reserved 0Ch WORD number available 0Eh WORD number used 10h DWORD page table entry 0 (same as 80386 page table entry) 14h DWORD page table entry 1 ... Note: bits 1-11 of the page table entries should be zero; bit 0 set if page is present and lockedTop
INT 4B - Virtual DMA Specification - UNLOCK DMA REGION AX = 8104h DX = flags bit 0: reserved (zero) bit 1: data should be copied out of buffer bits 2-15 reserved (zero) ES:DI -> DMA descriptor structure (see #03221,#03222) with region size, physical address, and buffer ID fields set Return: CF clear if successful DDS physical address field set DDS buffer ID field set (0000h if no buffer allocated) CF set on error AL = error code (see #03218) DDS region size field filled wth maximum contiguous length in bytes Note: Windows 3.0 does not check whether the region extends beyond the end of a segment BUG: Windows 3.0 in enhanced mode does not return a correct code on error SeeAlso: AX=8103h,AX=8106hTop
INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION AX = 8105h DX = flags (see #03224) ES:DI -> Extended DMA descriptor structure (see #03222,#03223) region size, linear segment, linear offset, and number avail fields set Return: CF clear if successful EDDS number used field set if DX bit 6 set, lower 12 bits of BX = offset in first page CF set on error AL = error code (see #03218) EDDS region size field filled with max length in bytes that can be locked and described in the EDDS table BUG: Windows 3.0 in enhanced mode may return zero instead of the physical page address for pages which were originally not present SeeAlso: AX=8103h,AX=8106h Bitfields for VDS flags: Bit(s) Description (Table 03224) 0-5 reserved (zero) 6 EDDS should be returned with page table entries 7 only present pages should be locked (not-present pages receive entry of 0000h) 8-15 reserved (zero)Top
INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION AX = 8106h DX = flags (see #03225) ES:DI -> Extended DMA descriptor structure (see #03222,#03223) returned by AX=8105h Return: CF clear if successful CF set on error AL = error code (see #03218) Note: according to the Microsoft version of the VDS specification, the actual scatter/gather list is ignored, while according to the IBM version of the specification, "the result of a LOCK operation" must be provided to this function SeeAlso: AX=8104h,AX=8105h Bitfields for VDS flags: Bit(s) Description (Table 03225) 0-5 reserved (zero) 6 EDDS contains page table entries 7 EDDS may contain not-present pages (entry = 0000h) 8-15 reserved (zero)Top
INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER AX = 8107h DX = flags bit 0: reserved (zero) bit 1: data should be copied into buffer bits 2-15 reserved (zero) ES:DI -> DMA descriptor structure (see #03221) with region size set (also region offset and region segment if DX bit 1 set) Return: CF clear if successful DDS physical address and buffer ID set DDS region size filled with length of buffer CF set on error AL = error code (see #03218) SeeAlso: AX=8108hTop
INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER AX = 8108h DX = flags bit 0: reserved (zero) bit 1: data should be copied out of buffer bits 2-15 reserved (zero) ES:DI -> DMA descriptor structure (see #03221,#03222) with buffer ID set (also region size/region offset/segment if DX bit 1 set) Return: CF clear if successful CF set on error AL = error code (see #03218) BUG: under Windows 3.0 Enhanced mode, you must specify that data be copied for this function to work correctly SeeAlso: AX=8107hTop
INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER AX = 8109h DX = 0000h ES:DI -> DMA descriptor structure (see #03221,#03222) with buffer ID, region segment/offset, and region size fields set BX:CX = starting offset into DMA buffer Return: CF clear if successful CF set on error AL = error code (see #03218) BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count SeeAlso: AX=810AhTop
INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER AX = 810Ah DX = 0000h ES:DI -> DMA descriptor structure (see #03221,#03223) with buffer ID, region segment/offset, and region size fields set BX:CX = starting offset into DMA buffer Return: CF clear if successful CF set on error AL = error code (see #03218) BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count SeeAlso: AX=8109hTop
INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION AX = 810Bh BX = DMA channel number DX = 0000h Return: CF clear if successful CF set on error AL = error code (see #03218) SeeAlso: AX=810ChTop
INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION AX = 810Ch BX = DMA channel number DX = 0000h Return: CF clear if successful ZF set if disable count decremented to zero CF set on error AL = error code (see #03218) SeeAlso: AX=810BhTop
INT 4B - QEMM-386 - BUG AX = 810Dh Note: the code in QEMM v5.11 and 6.00 jumps to an invalid location on this callTop
INT 4C - Z100 - Slave 8259 - S100 vectored line 4 SeeAlso: INT 4B"Z100",INT 4D"Z100"Top
INT 4C - TI Professional PC - CLOCK/ANALOG INTERFACE no details available SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI" SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h SeeAlso: INT 58"TI Professional"Top
INT 4C - Tandy 2000 - GET MEMORY SIZE Return: AX = kilobytes of contiguous memory starting at 0 Note: this interrupt is identical to INT 12 on the Tandy 2000 SeeAlso: INT 12"BIOS",INT 4A"Tandy 2000",INT 4B"Tandy 2000",INT 51"Tandy 2000"Top
INT 4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE DS:BX -> CR-terminated command string Return: FLAGS destroyed SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4B"Acorn"Top
INT 4D - Z100 - Slave 8259 - S100 vectored line 5 SeeAlso: INT 4C"Z100",INT 4E"Z100"Top
INT 4D - IBM - M-Audio Adapter SUPPORT no details available; supposedly documented in IBM form G571-0203-01Top
INT 4D - TI Professional PC - DISK - RESET DISK SYSTEM AH = 00h DL = drive (if bit 7 is set both hard disks and floppy disks reset) Return: AH = status (see #00234 at INT 13/AH=01h) CF clear if successful (returned AH=00h) CF set on error Note: this function is the same as INT 13/AH=00h on a standard PC BIOS SeeAlso: AH=01h,AH=02h,AH=08h,AH=0Bh,INT 13/AH=00h,INT 46"TI Professional" SeeAlso: INT 48/AH=00h"TI Professional",INT 4A/AH=00h"TI"Top
INT 4D - TI Professional PC - DISK - GET STATUS OF LAST OPERATION AH = 01h DL = drive (bit 7 set for hard disk) Return: CF clear if status unchanged CF set if status changed since last call AH = 00h AL = status of previous operation (see #00234 at INT 13/AH=01h) Notes: this function is nearly the same as INT 13/AH=01h on a standard PC BIOS the TI's BIOS tranparently performs a number of retries, and an error status is only reported if all of the retries fail. To get the error status if the operation succeeded on a retry, use AH=07h instead SeeAlso: AH=00h,AH=07h,INT 13/AH=01hTop
INT 4D - TI Professional PC - DISK - READ SECTOR(S) INTO MEMORY AH = 02h AL = number of sectors to read (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> data buffer Return: CF set on error if AH = 11h (corrected ECC error), AL = burst length CF clear if successful AH = status (see #00234 at INT 13/AH=01h) AL = number of sectors transferred ES:BX -> buffer for last sector processed (including one with errors) SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,INT 13/AH=02hTop
INT 4D - TI Professional PC - DISK - WRITE SECTOR(S) FROM MEMORY AH = 03h AL = number of sectors to write (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> buffer containing data Return: CF set on error if AH = 11h (corrected ECC error), AL = burst length CF clear if successful AH = status (see #00234 at INT 13/AH=01h) AL = number of sectors transferred ES:BX -> buffer for last sector processed (including one with errors) SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=03hTop
INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR CRC(S) AH = 04h AL = number of sectors to verify (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> data buffer Return: CF set on error if AH = 11h (corrected ECC error), AL = burst length CF clear if successful AH = status (see #00234 at INT 13/AH=01h) AL = number of sectors transferred ES:BX -> buffer for last sector processed (including one with errors) Note: even though no data is transferred, ES:BX must still be valid SeeAlso: AH=00h,AH=01h,AH=02h,AH=06h,INT 13/AH=04hTop
INT 4D - TI Professional PC - DISK - NOP AH = 05h Note: on the TI Pro, FORMAT.COM contains direct port I/O commands to perform disk formatting, rather than using the BIOSTop
INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR(S) AH = 06h AL = number of sectors to verify (must be nonzero) CH = low eight bits of cylinder number CL = sector number 1-63 (bits 0-5) high two bits of cylinder (bits 6-7, hard disk only) DH = head number DL = drive number (bit 7 set for hard disk) ES:BX -> data buffer Return: CF set on error if AH = 11h (corrected ECC error), AL = burst length CF clear if successful AH = status (see #00234 at INT 13/AH=01h) AL = number of sectors transferred ES:BX -> buffer for last sector processed (including one with errors) Note: even though no data is transferred, ES:BX must still be valid because an actual comparison with disk data is performed, not just the CRC check of the standard PC BIOS or INT 4D/AH=04h SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=04hTop
INT 4D - TI Professional PC - DISK - GET RETRY STATUS OF LAST OPERATION AH = 07h DL = drive (bit 7 set for hard disk) Return: CF clear if status unchanged CF set if status changed since last call AH = 00h AL = status of previous operation (see #00234 at INT 13/AH=01h) Notes: this function is nearly the same as INT 13/AH=01h on a standard PC BIOS the TI's BIOS tranparently performs a number of retries; this function returns the error status of a failed operation even if the operation succeeded on a retry SeeAlso: AH=00h,AH=01h,INT 13/AH=01hTop
INT 4D - TI Professional PC - DISK - SET STANDARD DEVICE INTERFACE TABLE AH = 08h DL = drive number (00h-03h) AL = drive type 00h single-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector) 01h double-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector) 02h single-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector) 03h double-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector) Return: nothing??? SeeAlso: AH=00h,AH=09hTop
INT 4D - TI Professional PC - DISK - SET DEVICE INTERFACE TABLE ADDRESS AH = 09h DL = drive number (00h-07h) ES:BX -> Device Interface Table (see #03226) Return: nothing??? SeeAlso: AH=00h,AH=08h,AH=0Ah,INT 1E Format of TI Professional PC Device Interface Table: Offset Size Description (Table 03226) 00h DWORD -> entry point for disk routine 04h WORD bytes per sector 06h BYTE sectors per track 07h BYTE number of heads 08h BYTE number of cylinders 09h BYTE retry count 0Ah BYTE precompensation start SeeAlso: #01264 at INT 1ETop
INT 4D - TI Professional PC - DISK - GET DEVICE INTERFACE TABLE ADDRESS AH = 0Ah DL = drive number (00h-07h) Return: AH = status ES:BX -> Device Interface Table (see #03226) SeeAlso: AH=00h,AH=08h,AH=09h,INT 1ETop
INT 4D - TI Professional PC - DISK - TURN OFF ALL DRIVES AH = 0Bh Return: AH = 00h Note: used for diagnostics or to conserve power SeeAlso: AH=00hTop
INT 4E - Z100 - Slave 8259 - S100 vectored line 6 SeeAlso: INT 4D"Z100",INT 4F"Z100"Top
INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS DATE AH = 00h BX = number of days since January 1, 1980 Return: nothing SeeAlso: AH=01h,AH=02h SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional" SeeAlso: INT 4A/AH=00h"TI",INT 4F"TI Professional"Top
INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS TIME AH = 01h CH = hours CL = minutes DH = seconds DL = hundredths Return: nothing Note: the BIOS does not validate the data passed to this function SeeAlso: AH=00h,AH=02hTop
INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - GET BIOS DATA AND TIME AH = 02h Return: AX = number of days since January 1, 1980 CH = hours CL = minutes DH = seconds DL = hundredths SeeAlso: AH=00h,AH=01hTop
INT 4F - Z100 - Slave 8259 - S100 vectored line 7 SeeAlso: INT 4E"Z100"Top
INT 4F - TI Professional PC - SYSTEM CONFIGURATION CALL Return: AX = system configuration word (see #03227) BX = size of contiguous DOS memory in paragraphs SeeAlso: INT 11"BIOS",INT 12"BIOS",INT 40"TI Professional",INT 48/AH=09h SeeAlso: INT 49/AH=01h"TI",INT 4B"TI Professional",INT 4D/AH=00h SeeAlso: INT 4E"TI Professional" Bitfields for TI Professional PC system configuration: Bit(s) Description (Table 03227) 0 floppy drive 0 (A:, internal) installed 1 floppy drive 1 (B:, internal) installed 2 floppy drive 2 (C:, external) installed 3 floppy drive 3 (D:, external) installed 4 drive A: is 96tpi (80 tracks) 5 drive A: is double-sided 6 60 Hz power instead of 50 Hz 7 hard disk (E: or E:/F:) installed 8 serial port 1 installed 9 serial port 2 installed 10 serial port 3 installed 11 serial port 4 installed 14-12 installed graphics RAM 000 none (text-only system) 001 bank A only (graphics limited to 2 of 8 colors) 111 banks A/B/C (graphics supports 8 of 8 colors) 15 clock/analog board installedTop
INT 4F - ATA Software Programming Interface (ATASPI) - SEND ATASPI REQUEST AX = 0081h ES:BX -> ATA Request Block (see #90002) Return: AH = 00h always??? Note: this interface has probably appeared in some later revisions of ATASPI than 0.72 SeeAlso: INT 21/AX=4402h"ATASPI",INT 4F/AX=0082hTop
INT 4F - ATA Software Programming Interface (ATASPI) - INSTALLATION CHECK AX = 0082h CX = 8765h DX = CBA9h Return: AH = 00h if installed CX = 9ABCh DX = 5678h ES:DI -> "$ATAMGR$" Note: this interface has probably appeared in some later revisions of ATASPI than 0.72 SeeAlso: INT 21/AX=4402h"ATASPI",INT 4F/AX=0081hTop
INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM AX = 8100h ES:BX -> CAM Control Block (CCB) (see #03229) Return: AH = status 00h successful 01h invalid CCB address (0000h:0000h) Note: the SCSI Interface Module (SIM) may complete the requested function and invoke the completion callback function before this call returns SeeAlso: AX=8200h,INT 2F/AX=7F01h,INT 4B"Common Access Method" (Table 03228) Values for CAM function code: 00h NOP 01h execute SCSI I/O 02h get device type 03h path inquiry 04h release SIM queue 05h set async callback 06h set device type 07h-0Fh reserved 10h abort SCSI command 11h reset SCSI bus 12h reset SCSI device 13h terminate I/O process 14h-1Fh reserved 20h engine inquiry 21h execute engine request 22h-2Fh reserved 30h enable logical unit number 31h execute target I/O 32h-7Fh reserved 80h-FFh vendor-specific functions Format of CAM Control Block: Offset Size Description (Table 03229) 00h DWORD physical address of this CCB 04h WORD CAM control block length 06h BYTE function code (see #03228) 07h BYTE CAM status (see #03232) 08h BYTE SCSI status 09h BYTE path ID (FFh = XPT) 0Ah BYTE target ID 0Bh BYTE logical unit number 0Ch WORD CAM flags (see #03230) 0Eh BYTE CAM address flags (see #03231) 0Fh BYTE target-mode flags (see #03233) ---function 02h--- 10h DWORD pointer to 36-byte buffer for inquiry data or 0000h:0000h 14h BYTE peripheral device type of target logical unit number ---function 03h--- 10h BYTE version number (00h-07h prior to rev 1.7, 08h = rev 1.7, 09h-FFh = rev no, i.e. 23h = rev 2.3) 11h BYTE SCSI capabilities (see #03234) 12h BYTE target mode support bit 7: processor mode bit 6: phase-cognizant mode bit 5-0: reserved 13h BYTE miscellaneous flags bit 7: scanned high to low instead of low to high bit 6: removables not included in scan bit 5: inquiry data not kept by XPT bits 4-0: reserved 14h WORD engine count 16h 14 BYTEs vendor-specific data 24h DWORD size of private data area 28h DWORD asynchronous event capabilities (see #03235) 2Ch BYTE highest path ID assigned 2Dh BYTE SCSI device ID of initiator 2Eh 2 BYTEs reserved 30h 16 BYTEs SIM vendor ID 40h 16 BYTEs HBA (host bus adaptor) vendor ID 50h 4 BYTEs operating-system dependant usage ---functions 00h,04h,11h,12h--- no additional fields ---function 05h--- 10h DWORD asynchronous event enables (refer to function 03h above) 14h DWORD pointer to asynchronous callback routine (see #03241) 18h DWORD pointer to peripheral driver buffer 1Ch BYTE size of peripheral buffer ---function 06h--- 10h BYTE peripheral device type of target ---functions 10h,13h--- 10h DWORD pointer to CCB to be aborted ---function 20h--- 10h WORD engine number 12h BYTE engine type 00h buffer memory 01h lossless compression 02h lossy compression 03h encryption 13h BYTE engine algorithm ID 00h vendor-unique 01h LZ1 variation 1 (STAC) 02h LZ2 variation 1 (HP DCZL) 03h LZ2 variation 2 (Infochip) 14h DWORD engine memory size ---function 21h--- 10h DWORD pointer to peripheral driver 14h 4 BYTEs reserved 18h DWORD OS-dependent request-mapping info 1Ch DWORD address of completion callback routine 20h DWORD pointer to scatter/gather list or data buffer 24h DWORD length of data transfer 28h DWORD pointer to engine buffer data 2Ch 2 BYTEs reserved 2Eh WORD number of scatter/gather entries 30h DWORD maximum destination data length 34h DWORD length of destination data 38h DWORD source residual length 3Ch 12 BYTEs reserved 48h DWORD OS-dependent timeout value 4Ch 4 BYTEs reserved 50h WORD engine number 52h WORD vendor-unique flags 54h 4 BYTEs reserved 58h N BYTEs private data area for SIM ---function 30h--- 10h WORD group 6 vendor-unique CDB length 12h WORD group 7 vendor-unique CDB length 14h DWORD pointer to target CCB list 18h WORD number of target CCBs ---other functions--- 10h DWORD pointer to peripheral driver 14h DWORD pointer to next CCB 18h DWORD OS-dependent request mapping information 1Ch DWORD address of completion callback routine (see #03240) 20h DWORD pointer to scatter/gather list or data buffer 24h DWORD length of data transfer 28h DWORD pointer to sense info buffer 2Ch BYTE length of sense info buffer 2Dh BYTE CDB length 2Eh WORD number of scatter/gather entries scatter/gather list is array of 2N DWORDs, each pair specifying the address and length of a data block 30h 4 BYTEs vendor-specific data 34h BYTE (ret) SCSI status 35h BYTE (ret) auto-sense residual length 36h 2 BYTEs reserved 38h DWORD (ret) residual length 40h 12 BYTEs Command Descriptor Block (CDB) (see #03236,#03237,#03238) 44h DWORD OS-dependent timeout value 48h DWORD pointer to message buffer 4Ch WORD length of message buffer 4Eh WORD vendor-unique flags 50h BYTE tag queue action 51h 3 BYTEs reserved 54h N BYTEs private data area for SIM Bitfields for CAM flags: Bit(s) Description (Table 03230) 0 CDB is a pointer 1 tagged queue action enable 2 linked CDB 3 disable callback on completion 4 scatter/gather 5 disable autosense 7-6 direction (00 reserved, 01 in, 10 out, 11 no data transfer) 9-8 reserved 10 engine synchronize 11 SIM queue freeze 12 SIM queue priority 1 head insertion 0 tail insertion (normal) 13 disable synchronous transfers \ mutually 14 initiate synchronous transfers / exclusive 15 disable disconnect Bitfields for CAM address flags: Bit(s) Description (Table 03231) 7 SG list/data (0 = host, 1 = engine) 6 CDB pointer (6-1: 0=virtual addr, 1=phys addr) 5 SG list/data 4 sense buffer 3 message buffer 2 next CCB 1 callback on completion 0 reserved (Table 03232) Values for CAM status: 00h request in progress 01h request successful 02h host aborted request 03h unable to abort request 04h request completed with error 05h CAM is busy 06h invalid request 07h invalid path ID 08h no such SCSI device 09h unable to terminate I/O process 0Ah timeout on target selection 0Bh timeout on command 0Dh receive message rejection 0Eh sent/received SCSI bus reset 0Fh detected uncorrectable parity error 10h Autosense request failed 11h no HBA detected 12h data over/underrun 13h bus freed unexpectedly 14h target bus phase sequence failure 15h CCB too small 16h requested capability not available 17h sent bus device reset 18h terminate I/O process 38h invalid LUN 39h invalid target ID 3Ah unimplemented function 3Bh nexus not established 3Ch invalid initiator ID 3Dh received SCSI Command Descriptor Block 3Eh LUN already enabled 3Fh SCSI bus busy Note: bit 6 set to indicate frozen SIM queue bit 7 set to indicate valid autosense Bitfields for CAM target-mode flags: Bit(s) Description (Table 03233) 7 data buffer valid 6 status valid 5 message buffer valid 4 reserved 3 phase-cognizant mode 2 target CCB available 1 disable autodisconnect 0 disable autosave/restore Bitfields for SCSI capabilities: Bit(s) Description (Table 03234) 7 modify data pointers 6 wide bus (32 bits) 5 wide bus (16 bits) 4 synchronous transfers 3 linked commands 2 reserved 1 tagged queueing 0 soft reset Bitfields for CAM asynchronous event capabilities: Bit(s) Description (Table 03235) 31-24 vendor-specific 23-8 reserved 7 new devices found during rescan 6 SIM module deregistered 5 SIM module registered 4 sent bus device reset to target 3 SCSI AEN 2 reserved 1 unsolicited reselection 0 unsolicited SCSI bus reset Format of Six-Byte SCSI Command Descriptor Block (CDB): Offset Size Description (Table 03236) 00h BYTE operation code (see #03239) 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2 MSB of logical block address (bits 4-0) 02h WORD logical block address (low word) 04h BYTE transfer length 05h BYTE control byte SeeAlso: #03237,#03238 Format of Ten-Byte SCSI Command Descriptor Block (CDB): Offset Size Description (Table 03237) 00h BYTE operation code (see #03239) 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2 reserved in SCSI-3 02h DWORD logical block address (low word) 06h BYTE reserved 07h WORD transfer length 09h BYTE control byte SeeAlso: #03236,#03238 Format of Twelve-Byte SCSI Command Descriptor Block (CDB): Offset Size Description (Table 03238) 00h BYTE operation code (see #03239) 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2 reserved in SCSI-3 02h DWORD logical block address (low word) 06h DWORD transfer length 0Ah BYTE reserved 0Bh BYTE control byte SeeAlso: #03236,#03237 (Table 03239) Values for SCSI CDB operation code for direct-access devices: 00h Test Unit Ready 01h Rezero Unit 03h Request Sense 04h Format Unit 07h Reassign Blocks 08h Read (6-byte CDB) 0Ah Write (6-byte CDB) 0Bh Seek (6-byte CDB) 12h Inquiry 15h Mode Select (6-byte CDB) 16h Reserve 17h Release 18h Copy 1Ah Mode Sense (6-byte CDB) 1Bh Start/Stop Unit 1Ch Receive Diagnostic Results 1Dh Send Diagnostic 1Eh Prevent/Allow Medium Removal 25h Read Capacity 28h Read (10-byte CDB) 2Ah Write (10-byte CDB) 2Bh Seek (10-byte CDB) 2Eh Write and Verify 2Fh Verify 30h Search Data High 31h Search Data Equal 32h Search Data Low 33h Set Limits 34h Prefetch 35h Synchronize Cache 36h Lock/Unlock Cache 37h Read Defect Data 39h Compare 3Ah Copy and Verify 3Bh Write Buffer 3Ch Read Buffer 3Eh Read Long 3Fh Write Long 40h Change Definition 41h Write Same 4Ch Log Select 4Dh Log Sense 55h Mode Select (10-byte CDB) 5Ah Mode Sense (10-byte CDB) SeeAlso: #03236,#03237,#03238 (Table 03240) Values completion callback function is called with: interrupts disabled ES:BX -> completed CCB (Table 03241) Values asynchronous callback function is called with: AH = opcode AL = path ID generating callback DH = target ID causing event DL = LUN causing event CX = data byte count (if applicable) ES:BX -> data buffer (if applicable) Return: all registers preservedTop
INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK AX = 8200h CX = 8765h DX = CBA9h Return: AH = 00h if installed CX = 9ABCh DX = 5678h ES:DI -> "SCSI_CAM" SeeAlso: AX=8100h,INT 4B"Common Access Method"Top
INT 50 - TIL Xpert AIM (X.25) AH = functionTop
INT 50 - IRQ0 relocated by DESQview Range: INT 50 to INT F8, selected automatically Notes: this is the default location for older versions; DESQview v2.26+ searches for unused ranges of interrupts and uses the lowest available range in its list for relocating these IRQs and the next lowest for relocating IRQ8-IRQ15 a range of eight interrupts starting at a multiple of 8 is considered available if all vectors are identical and it has not been excluded with an /XB:nn commandline switch the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these are available, F8h and then 50h are used anyway) the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these are available, F8h and then F0h are used anyway) SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview" SeeAlso: INT D8"Screen Thief"Top
INT 50 - IRQ0 relocated by IBM 3278 emulation control program SeeAlso: INT 51"IBM 3278"Top
INT 50 - IRQ0 relocated by OS/2 v1.x SeeAlso: INT 51"OS/2"Top
INT 50 - TI Professional PC - FATAL SOFTWARE ERROR TRAP Desc: the default handler generates a System Error message and halts the computer such that only Ctrl-Alt-Del can restart operation Note: documented as "for system use only"; intended for multi-tasking software SeeAlso: INT 40"TI Professional",INT 4F"TI Professional" SeeAlso: INT 51"TI Professional",INT 53"TI Professional"Top
INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW AX = 0000h ES:BX -> name string or ES:0000h if none CH,CL = row,column of upper left corner DH,DL = row,column of lower right corner Return: AX = window handle or 0000h if not installed FFFFh on error SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"Top
INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW AX = 0001h DI = window handle SeeAlso: AX=0000hTop
INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW AX = 0002h BL = character BH = attribute DL = column DH = row DI = window handle Return: AX = status 0000h if successful FFFFh if outside window SeeAlso: AX=0000hTop
INT 50 - PC Thuis Organizer Shell - PLOT TEXT AX = 0002h ES:BX -> text string DH,DL = row,column of upper left corner DI = window handle Return: AX = status 0000h successful (text fits in window) FFFFh error Program: The PC Thuis Organizer Shell was written by John Vanderaart and published in the June/July 1990 issue of PC Thuis Power magazineTop
INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW AX = 0003h ES:BX -> text string CX = string length (0000h if ASCIZ string) DL = position (FFh centered, else flush left) DH = starting row DI = window handle Return: AX = status 0000h successful FFFFh did not fit in windowTop
INT 50 - PC Thuis Organizer Shell - WRITE FILE AX = 0003h ES:BX -> data to be written CX = number of bytes to write DS:SI -> filename Return: AX = status 0000h successful FFFFh error SeeAlso: AX=0004h"Shell"Top
INT 50 - Vanderaart TEXT WINDOWS - GET KEY AX = 0004h CH = type 00h any key 01h 'J' or 'N' (Dutch for yes/no) Return: AX = key SeeAlso: INT 16/AH=00hTop
INT 50 - PC Thuis Organizer Shell - READ FILE AX = 0004h ES:BX -> buffer for data CX = number of bytes to read or 0000h for entire file DL = file type 01h setting shell 02h setting sterm 03h INT21 file DS:SI -> filename Return: AX = status 0000h successful FFFFh error Note: file type numbers are maintained by John Vanderaart; if a new file type is needed, a type number should be requested from him through the magazine: PC Thuis BV Spaarne 55 2011 CE HAARLEM The Netherlands SeeAlso: AX=0003h"Shell"Top
INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE AX = 0005h BL = new attribute CH,CL = row,column of upper left corner DH,DL = row,column of lower right corner DI = window handleTop
INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO AX = 0005h ES:BX -> prompt string (ES:0000h if no prompt) Return: AX = key pressed 0000h "J" (Dutch "Ja" = "Yes") FFFFh "N" (Dutch "Nee" = "No") Program: The PC Thuis Organizer Shell was written by John Vanderaart and published in the June/July 1990 issue of PC Thuis Power magazine SeeAlso: AX=0008h"PC Thuis"Top
INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
AX = 0006h
ES:BX -> text string
CH = type of input (see #03242)
DH,DL = row,column of upper left corner
DI = window handle
Return: AX = key which terminated entry
0000h Enter
0001h Esc
0002h Down arrow
0003h Up arrow
0004h F10
(Table 03242)
Values for type of input to Vanderaart Text Windows:
00h everything
01h uppercase only
02h positive numbers
03h Dutch postal code ("9999 AA")
04h 'J' or 'N' (Dutch yes/no)
05h telephone or FAX number
06h positive or negative number
07h date (dd/mm/yy)
08h money
09h '1' through '8'
0Ah '1' through '4'
0Bh uppercase filenames
Top
INT 50 - PC Thuis Organizer Shell - ALERT USER AX = 0006h ES:BX -> stringTop
INT 50 - PC Thuis Organizer Shell - DO LINE AX = 0007h ES:BX -> text string CX = string length in bytes (0000h if NUL-terminated) DL = FFh to center string, else flush left DH = upper left row DI = window handle Return: AX = status 0000h successful FFFFh error Program: The PC Thuis Organizer Shell was written by John Vanderaart and published in the June/July 1990 issue of PC Thuis Power magazine SeeAlso: AX=0008hTop
INT 50 - PC Thuis Organizer Shell - DO MENU AX = 0008h ES:BX -> menu structure Return: AL = index 1 or FFh if not selected AH = index 2 or FFh if not selected BL = index 3 or FFh if not selected BH = index 4 or FFh if not selected SeeAlso: AX=0005h"PC Thuis",AX=0007h,AX=000ChTop
INT 50 - PC Thuis Organizer Shell - MESSAGE ON AX = 0009h ES:BX -> message string SeeAlso: AX=000AhTop
INT 50 - PC Thuis Organizer Shell - MESSAGE OFF AX = 000Ah SeeAlso: AX=0009hTop
INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE AX = 000Bh BL = new attribute CH,CL = row,column of upper left corner DH,DL = row,column of lower right corner DI = window handleTop
INT 50 - PC Thuis Organizer Shell - DO REQUEST AX = 000Ch ES:BX -> request structure Return: AX = status 0000h confirmed FFFFh denied SeeAlso: AX=0008hTop
INT 50 - PC Thuis Organizer Shell - EDIT LINE AX = 000Dh ES:BX -> text string CL = length CH = input type (see #03243) DH,DL = row,column of upper left corner DI = window handle Return: AX = result code Program: The PC Thuis Organizer Shell was written by John Vanderaart and published in the June/July 1990 issue of PC Thuis Power magazine Bitfields for input type: Bit(s) Description (Table 03243) 0 force uppercase 1 integer 2 no spaces allowed 3 no cursor keysTop
INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER AX = 000Eh BL = character BH = attribute DH,DL = row,column at which to plot DI = window handle Return: AX = status 0000h successful FFFFh errrorTop
INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW AX = 000Fh BL = character BH = attribute DI = window handleTop
INT 50 - PC Thuis Organizer Shell - TRACE MENU AX = 0010h ES:BX -> first menu structure CL = hotkey to look up Return: AL = index 1 or FFh if not selected AH = index 2 or FFh if not selected BL = index 3 or FFh if not selected BH = index 4 or FFh if not selected Index: hotkeys;PC Thuis Organizer ShellTop
INT 50 - PC Thuis Organizer Shell - MOVE MEMORY AX = 0011h DS:SI -> source ES:DI -> destination CX = number of bytes to move (0000h = until NUL string terminator???) SeeAlso: AX=0012hTop
INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY AX = 0012h DS:SI -> source ES:DI -> destination CX = number of bytes to compare (0000h=until NUL string terminator???) Return: AX = status 0000h same FFFFh different SeeAlso: AX=0011hTop
INT 50 - PC Thuis Organizer Shell - GET KEY AX = 0013h CH = type flags bit 0: force uppercase bit 1: integer bit 2: no spaces Return: AX = keystrokeTop
INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW AX = 0014h BL = direction 06h up 07h down BH = attribute DI = window handle SeeAlso: INT 10/AH=06h,INT 10/AH=07hTop
INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE AX = 0015h BL = handle size 00h 65536 bytes (64K) 01h 65535 bytes (64K-1) 02h 32768 bytes (32K) 03h 32767 bytes (32K-1) Return: AX = segment Program: The PC Thuis Organizer Shell was written by John Vanderaart and published in the June/July 1990 issue of PC Thuis Power magazine SeeAlso: INT 21/AH=48hTop
Top
INT 51 - IRQ1 relocated by DESQview Range: INT 51 to INT F9, selected automatically Note: this is the default location for older versions; see INT 50"DESQview" for details of interrupt relocation SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"Top
INT 51 - IRQ1 relocated by IBM 3278 emulation control program SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"Top
INT 51 - IRQ1 relocated by OS/2 v1.x SeeAlso: INT 50"OS/2",INT 54"OS/2"Top
INT 51 - TI Professional PC - RESTART TIMING EVENT AX = timer count in 25ms intervals DS:DI -> timing-event table (see #03244) Note: documented as "for system use only"; intended for multi-tasking software SeeAlso: INT 50"TI Professional",INT 52"TI Professional" Format of TI Professional PC timing event table: Offset Size Description (Table 03244) 00h WORD offset of next event table entry 02h BYTE normally unused (FFh) 03h BYTE flags: bit 7 set if timing event active bits 6-0 not used by BIOS (0), but could be used by option ROMs 04h WORD timeout count (decremented every 25ms when active) 06h WORD offset of event handler (in segment F400h) to call on event timeout; the F400h segment allows addressing both system ROMs and the first 16K of memory (due to the 1M memory wraparound)Top
INT 51 - Tandy 2000 - KEYBOARD SERVICES Note: this interrupt is identical to INT 16 on Tandy 2000 SeeAlso: INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h,INT 16/AH=04h"Tandy" SeeAlso: INT 16/AH=04h,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 52"Tandy 2000"Top
INT 52 - IRQ2 relocated by DESQview Range: INT 52 to INT FA, selected automatically Note: this is the default location for older versions; see INT 50"DESQview" for details of interrupt relocation SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"Top
INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x SeeAlso: INT 50"IBM 3278",INT 51"OS/2"Top
INT 52 - TI Professional PC - CANCEL TIMING EVENT DS:DI -> timing-event table (see #03244) Note: documented as "for system use only"; intended for multi-tasking software SeeAlso: INT 51"TI Professional",INT 53"TI Professional"Top
INT 52 - Tandy 2000 - VIDEO SERVICES Note: this interrupt is identical to INT 10 SeeAlso: INT 10/AH=00h,INT 10/AH=01h,INT 10/AH=08h,INT 10/AH=0Eh SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 53"Tandy 2000"Top
INT 53 - IRQ3 relocated by DESQview Range: INT 53 to INT FB, selected automatically Note: this is the default location for older versions; see INT 50"DESQview" for details of interrupt relocation SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"Top
INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x SeeAlso: INT 50"IBM 3278",INT 51"OS/2"Top
INT 53 - TI Professional PC - SVC INTERFACE Notes: documented as "for system use only"; intended for multi-tasking software this interrupt is not used by the BIOS; the default handler generates a system error trap (see INT 51"TI Professional") SeeAlso: INT 50"TI Professional",INT 54"TI Professional"Top
INT 53 - Tandy 2000 - SERIAL COMMUNICATIONS Note: this interrupt is identical to INT 14 on Tandy 2000 SeeAlso: INT 14/AH=00h"SERIAL",INT 14/AH=01h,INT 14/AH=02h,INT 14/AH=03h SeeAlso: INT 14/AH=04h"Tandy 2000",INT 52"Tandy 2000",INT 54"Tandy 2000"Top
INT 53 - WEB??? - API BX = function 0000h ??? AX = ??? Return: AX = ??? 0004h ??? 0009h ??? 0015h AX = ??? DX = ??? 0017h Return: ??? InstallCheck: check for the signature "WEBCO" immediately prior to the interrupt handler Note: the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h) Index: installation check;unknown|installation check;WEBCOTop
INT 54 - IRQ4 relocated by DESQview Range: INT 54 to INT FC, selected automatically Note: this is the default location for older versions; see INT 50"DESQview" for details of interrupt relocation SeeAlso: INT 50"DESQview",INT 58"DESQview"Top
INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x SeeAlso: INT 51"IBM 3278",INT 51"OS/2"Top
INT 54 - TI Professional PC - ACTIVATE TASK SUBROUTINE Notes: documented as "for system use only"; intended for multi-tasking software this interrupt is not used by the BIOS; the default handler generates a system error trap (see INT 51"TI Professional") SeeAlso: INT 50"TI Professional",INT 53"TI Professional"Top
INT 54 - Tandy 2000 - LINE PRINTER Note: this interrupt is identical to INT 17 on Tandy 2000 SeeAlso: INT 17/AH=00h,INT 17/AH=01h,INT 17/AH=02h,INT 4A"Tandy 2000" SeeAlso: INT 53"Tandy 2000",INT 55"Tandy 2000"Top
INT 54 U - Toshiba PCMCIA2 - INSTALLATION CHECK AX = 5400h Return: AX = 0054h if installed CX:DX -> INT function handlerTop
INT 55 - IRQ5 relocated by DESQview Range: INT 55 to INT FD, selected automatically Note: this is the default location for older versions; see INT 50"DESQview" for details of interrupt relocation SeeAlso: INT 50"DESQview",INT 58"DESQview"Top
INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x SeeAlso: INT 51"IBM 3278",INT 51"OS/2"Top
INT 55 - TI Professional PC - RESERVED FOR FUTURE USE Notes: documented as "for system use only"; intended for multi-tasking software this interrupt is not used by the BIOS; the default handler generates a system error trap (see INT 51"TI Professional") SeeAlso: INT 50"TI Professional",INT 56"TI Professional"Top
INT 55 - Tandy 2000 - SYSTEM CLOCK Note: this interrupt is identical to INT 1A on Tandy 2000 SeeAlso: INT 1A/AH=00h,INT 1A/AH=01h,INT 1A/AH=02h"Tandy 2000" SeeAlso: INT 1A/AH=03h"Tandy 2000",INT 54"Tandy 2000",INT 56"Tandy 2000"Top
INT 56 - IRQ6 relocated by DESQview Range: INT 56 to INT FE, selected automatically Note: this is the default location for older versions; see INT 50"DESQview" for details of interrupt relocation SeeAlso: INT 50"DESQview",INT 58"DESQview"Top
INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x SeeAlso: INT 51"IBM 3278",INT 51"OS/2"Top
INT 56 - TI Professional PC - RESERVED FOR FUTURE USE Notes: documented as "for system use only"; intended for multi-tasking software this interrupt is not used by the BIOS; the default handler generates a system error trap (see INT 51"TI Professional") SeeAlso: INT 50"TI Professional",INT 55"TI Professional"Top
INT 56 - Tandy 2000 - FLOPPY DISK SERVICES Note: this interrupt is identical to INT 13 on Tandy 2000 SeeAlso: INT 13/AH=00h,INT 13/AH=01h,INT 13/AH=02h,INT 13/AH=03h SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 55"Tandy 2000"Top
INT 57 - IRQ7 relocated by DESQview Range: INT 57 to INT FF, selected automatically Note: this is the default location for older versions; see INT 50"DESQview" for details of interrupt relocation SeeAlso: INT 50"DESQview",INT 58"DESQview"Top
INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x SeeAlso: INT 51"IBM 3278",INT 51"OS/2"Top
INT 57 C - TI Professional PC - CRT MAPPING HOOK AX/BX/CX/DX/BP/SI/DI same as on entry to CRT subroutine (e.g. INT 49) DS = BIOS system segment ES = DE00h Return: DF/IF flags must be preserved ES,DS,BP preserved AX,BX,CX,DX,SI,DI may be changed as necessary to modify the original call Desc: hooking this vector permits programs to intercept or modify all screen output, including both application calls to INT 49 and calls generated internally by the BIOS which bypass INT 49 Note: by default, this vector points at an IRET instruction SeeAlso: INT 49/AH=01h"TI",INT 50"TI Professional"Top
INT 58 - IRQ8 relocated by DESQview 2.26+ Range: INT 58 to INT F8, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 70Top
INT 58 - IRQ0 relocated by DoubleDOS SeeAlso: INT 08Top
INT 58 C - TI Professional PC - SYSTEM TIMER 25ms HOOK Desc: called from the hardware timer tick interrupt, after executing the first four BIOS timing events, updating the system clock, invoking INT 5A if required, saving registers, and switching to a temporary stack (the one reserved for IRQ3) Notes: the handler for this interrupt may destroy AX,BX,DI,ES but must preserve all other registers; 8 WORDs of stack space are available, of which at most 4 may be used if the handler enables interrupts if the handler switches stacks (because more than 4/8 WORDs are required), the original stack must be restored before chaining to the previous handler SeeAlso: INT 43"TI Professional",INT 4C"TI Professional" SeeAlso: INT 5A"TI Professional"Top
INT 59 - IRQ9 relocated by DESQview 2.26+ Range: INT 59 to INT F9, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 58"DESQview",INT 5A"DESQview",INT 71Top
INT 59 - IRQ1 relocated by DoubleDOS SeeAlso: INT 09Top
INT 59 - TI Professional PC - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR Desc: all hardware interrupts on the TI Pro jump indirectly to the handler pointed at by this interrupt vector to finish their handling of the hardware interrupt Notes: the default handler decrements the interrupt count, restores registers (including the stack pointer), sends an EOI to the interrupt controller, and finally does an IRET can be used by multitaskers which need to get control after every hardware interrupt SeeAlso: INT 40"TI Professional",INT 47"TI Professional" SeeAlso: INT 53"TI Professional"Top
INT 59 - GSS Computer Graphics Interface (GSS*CGI) DS:DX -> block of 5 array pointers Return: CF set on error AX = error code CF clear if successful AX = return code Note: INT 59 is the means by which GSS*CGI language bindings communicate with GSS*CGI device drivers and the GSS*CGI device driver controller. also used by the IBM Graphic Development ToolkitTop
INT 5A - IRQ10 relocated by DESQview 2.26+ Range: INT 5A to INT FA, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 5B"DESQview",INT 72Top
INT 5A - IRQ2 relocated by DoubleDOS SeeAlso: INT 0A"IRQ2"Top
INT 5A - PC Cluster adapter BIOS entry address ??? Return: ??? SeeAlso: INT 5B"PC Cluster"Top
INT 5A - TI Professional PC - SYSTEM TIMER 100ms HOOK Desc: called from the hardware timer tick interrupt, after executing the first four BIOS timing events, updating the system clock, saving registers, and switching to a temporary stack (the one reserved for IRQ3), but before calling INT 58 no details available Notes: this interrupt is invoked on every fourth timer interrupt the handler for this interrupt may destroy AX,BX,DI,ES but must preserve all other registers; 8 WORDs of stack space are available, of which at most 4 may be used if the handler enables interrupts if the handler switches stacks (because more than 4/8 WORDs are required), the original stack must be restored before chaining to the previous handler SeeAlso: INT 43"TI Professional",INT 4C"TI Professional" SeeAlso: INT 58"TI Professional"Top
INT 5B - IRQ11 relocated by DESQview 2.26+ Range: INT 5B to INT FB, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 5A"DESQview",INT 5C"DESQview",INT 73Top
INT 5B - IRQ3 relocated by DoubleDOS SeeAlso: INT 0BTop
INT 5B - PC cluster adapter - RELOCATED INT 19 SeeAlso: INT 19,INT 5A"PC Cluster"Top
INT 5B - AT&T Starlan Extended NetBIOS (variable length names) ES:BX -> Network Control Block (see #03245) Return: AL = status (see #03248) SeeAlso: INT 5C"NetBIOS" Format of Starlan Network Control Block: Offset Size Description (Table 03245) 00h BYTE ncb_command (see also #03250) 70h send net Break 01h BYTE ncb_retcode 02h BYTE ncb_lsn 03h BYTE ncb_num 04h DWORD -> ncb_buffer 08h WORD ncb_length 0Ah 16 BYTEs ncb_callname 1Ah 16 BYTEs ncb_name 2Ah BYTE ncb_rto 2Bh BYTE ncb_sto 2Ch DWORD -> ncb_post /* int (far *ncb_post)(); */ 30h BYTE ncb_lana_num 31h BYTE ncb_cmd_cplt 32h DWORD -> ncb_vname 36h BYTE ncb_vnamelen 37h 9 BYTEs ncb_reserve Note: fields 00h-31h are the same as for a standard NetBIOS NCB (see #03249)Top
INT 5B - Microsoft Network Transport Layer Interface Note: used by MS-NET for executing network commands SeeAlso: INT 5C"NetBIOS"Top
INT 5B - used by Alloy NTNXTop
INT 5B - ISOLAN Multi Protocol Software ES:BX -> Transfer Control Block (see #03246) Return: AL = status Note: this software interface allows multiple protocols/software packages to access a BICC 411x network card Format of ISOLAN Transfer Control Block: Offset Type Description (Table 03246) 00h BYTE command code B3h Status F2h Activate F3h Deactivate F4h Send Data 01h BYTE command identity 02h BYTE virtual circuit ID 03h WORD buffer length 05h DWORD buffer pointer 09h BYTE expedited data flag 0Ah BYTE cancelable flag 0Bh 16 BYTEs local network address 1Bh 16 BYTEs remote network address 2Bh DWORD asynchronous notification routine 30h DWORD local network number 34h DWORD remote network number 38h BYTE call timeout 39h BYTE not used 3Ah 8 BYTEs reserved 42h BYTE command code extension 43h WORD Blue Book MAC typeTop
INT 5B C - TI Professional PC - KEYBOARD MAPPING HOOK CF set AH = shift state (see #03247) AL = scan code (see #03214) Return: BX, CX, DI, ES may be destroyed various return methods are supported: IRET, AX unchanged: process keystroke normally IRET, AL = FFh: discard keystroke IRET, AX changed: process modified keystroke chain to old INT 5B: allow other handlers to look at (possibly modified) keystroke in AX RETF 2, CF clear: place returned AX into keyboard buffer without any further processing Notes: invoked by the keyboard ISR, and used to remap the keyboard if CF is clear on entry, some other handler has processed the keystroke and the current handler should not modify it, instead performing a RETF 2 or IRET (after clearing CF on the stack) when requesting that a value be placed directly into the keyboard buffer, AL and AH may not *both* be nonzero (the TI does not return scan codes as part of the key code for non-extended keys) SeeAlso: INT 15/AH=4Fh,INT 4A/AH=00h"TI",INT 59"TI Professional" SeeAlso: INT 5C"TI Professional",INT 5D"TI Professional" SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional" Bitfields for TI Professional PC keyboard mapping hook shift states: Bit(s) Description (Table 03247) 7 CAPS LOCK is on 6-4 reserved (0) 3 repeated key 2 Shift is pressed 1 Alt is pressed 0 Ctrl is pressedTop
INT 5B U - SitBack v3.02R - GET ??? AX = 5254h DL = 04h Return: ES:BX -> ??? in resident portion Program: SitBack is a background file backup utility by SitBack Technologies, Inc. which initiates backups whenever the system is idle SeeAlso: AX=8485h/DL=71h,AX=8485h/DL=72hTop
INT 5B U - SitBack v3.02R - INSTALLATION CHECK AX = 8485h DL = 70h Return: CX = 8485h if installed DX:AX -> ??? (configuration data?) Program: SitBack is a background file backup utility by SitBack Technologies, Inc. which initiates backups whenever the system is idle SeeAlso: AX=5254h/DL=04h,AX=8485h/DL=78hTop
INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS AX = 8485h DL = 71h Return: ES:BX -> FAR entry point to ??? Note: the flag which is modified is located at the address returned by AX=5254h/DL=04h SeeAlso: AX=8485h/DL=72hTop
INT 5B U - SitBack v3.02R - CLEAR ??? FLAG AX = 8485h DL = 72h Note: the flag which is modified is located at the address returned by AX=5254h/DL=04h SeeAlso: AX=8485h/DL=71hTop
INT 5B U - SitBack v3.02R - ??? AX = 8485h DL = 73h ??? Return: ???Top
INT 5B U - SitBack v3.02R - ??? AX = 8485h DL = 74h ??? Return: ???Top
INT 5B U - SitBack v3.02R - ??? AX = 8485h DL = 75h CX = ??? Return: ??? SeeAlso: AX=8485h/DL=76hTop
INT 5B U - SitBack v3.02R - ??? AX = 8485h DL = 76h CX = ??? Return: ??? Note: conditionally calls the code for AX=8485h/DL=75h SeeAlso: AX=8485h/DL=75hTop
INT 5B U - SitBack v3.02R - SET ??? FLAG AX = 8485h DL = 77hTop
INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT AX = 8485h DL = 78h Return: CX = 5342h if supported ES = AX = segment of TSR data SeeAlso: AX=8485h/DL=70h,AX=8485h/DL=79hTop
INT 5B U - SitBack v3.02R - GET DTA AX = 8485h DL = 79h Return: CX = 5342h if supported ES:BX -> DTA set by last INT 21/AH=1Ah Note: this function is provided by SBOS.EXE rather than SB.EXE SeeAlso: INT 21/AH=1AhTop
INT 5B U - SitBack v3.02R - TOGGLE ??? AX = 8485h DL = 7Ah Return: CX = 5342h if supported AL = new value of ??? (00h or 01h)Top
INT 5C - NetBIOS INTERFACE ES:BX -> network control block (NCB) (see #03249) Return: AL = status (see #03248) Program: NetBIOS was developed by Sytek, Inc. in 1984 as a high-level programming interface to the IBM PC Network; the first implementation was a ROM BIOS extension on Sytek's PCnet LAN adapter card, but many current networks support NetBIOS as the session layer. Notes: The Sytek PCnet card uses DMA 3. On some machines this vector is not initialized (e.g. Epson machines). Hence this interrupt should only be called or hooked if the vector does not point to 0000h:0000h. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B"Extended NetBIOS" (Table 03248) Values for NetBIOS status: 00h successful 01h bad buffer size 03h invalid NETBIOS command 05h timeout 06h receive buffer too small 07h No-ACK command failed 08h bad session number 09h LAN card out of memory 0Ah session closed 0Bh command has been cancelled 0Dh name already exists 0Eh local name table full 0Fh name still in use, can't delete 11h local session table full 12h remote PC not listening 13h bad NCB_NUM field 14h no answer to CALL or no such remote 15h name not in local name table 16h duplicate name 17h bad delete 18h abnormal end 19h name error, multiple identical names in use 1Ah bad packet 21h network card busy 22h too many commands queued 23h bad LAN card number 24h command finished while cancelling 26h command can't be cancelled 30h name defined by another process (OS/2) 34h NetBIOS environment not defined, must issue reset (OS/2) 35h required operating system resources exhausted (OS/2) 36h maximum applications exceeded (OS/2) 37h no SAPs available for NetBIOS (OS/2) 38h requested resources not available (OS/2) 40h Lana System Error 41h Lana Remote Hot Carrier 42h Lana Local Hot Carrier 43h Lana No Carrier Detected 44h unusual network condition 45h-4Dh hardware error 4Eh token ring is broken 4Fh token ring error 50h adapter malfunction F7h error in explicit INITIALIZE F8h error in implicit OPEN F9h TOKREUI internal error FAh hardware adapter testing FBh NetBIOS emulator not found FCh OPEN or OPEN_SAP failure FDh unexpected adapter closure FFh NetBIOS busy (command pending) Format of NetBIOS Network Control Block: Offset Size Description (Table 03249) 00h BYTE command code (see #03250) 01h BYTE return code (see #03248) 02h BYTE local session number (LSN) 03h BYTE "ncb_num" datagram table entry from ADD NAME 04h DWORD -> I/O buffer 08h WORD length of data in buffer 0Ah 16 BYTEs remote system to call 1Ah 16 BYTEs network name of local machine 2Ah BYTE receive timeout in 1/2 seconds 2Bh BYTE send timeout in 1/2 seconds 2Ch DWORD -> FAR post handler /* int (far *ncb_post)(); */ 30h BYTE network adapter number on which to execute command 00h-03h IBM NetBIOS specs F0h-FFh Eicon NABios interface (see also INT 7B"Eicon") 31h BYTE command completion code (see #03248) 32h 14 BYTEs reserved for network card (Table 03250) Values for NetBIOS command code field in NCB: 10h start session with NCB_NAME name (call) 11h listen for call 12h end session with NCB_NAME name (hangup) 14h send data via NCB_LSN 15h receive data from a session 16h receive data from any session 17h send multiple data buffers 20h send unACKed message (datagram) 21h receive datagram 22h send broadcast datagram 23h receive broadcast datagram 30h add name to name table 31h delete name from name table 32h reset adapter card and tables 33h get adapter status (see #03251) 34h status of all sessions for name (see #03253) 35h cancel 36h add group name to name table 48h send data and receive data (LAN Manager NETBEUI.DOS) 70h unlink from IBM remote program (no F0h function) 71h send data without ACK 72h send multiple buffers without ACK 72h UngermannBass Register (conflicts with above function) 73h UngermannBass SendNmc 74h UngermannBass Callniu 75h UngermannBass Calladdr 76h UngermannBass Listenaddr 77h UngermannBass SendPkt 78h find name 78h UngermannBass RcvPkt (conflicts with above function) 79h token-ring protocol trace 79h UngermannBass SendAttn (conflicts with above function) 7Ah UngermannBass RcvAttn 7Bh UngermannBass Listenniu 7Ch UngermannBass RcvRaw 7Dh UngermannBass SendNmc2 7Fh Beame&Whiteside BWNB installation check (returns with return code and completion code both set to 03h, while invalid functions return only return code field set to 03h) Note: OR any of the above except 70h with 80h for non-waiting call Format of NetBIOS structure "astatus": Offset Size Description (Table 03251) 00h 6 BYTEs as_id 06h BYTE as_jumpers 07h BYTE as_post 08h BYTE as_major 09h BYTE as_minor 0Ah WORD as_interval 0Ch WORD as_crcerr 0Eh WORD as_algerr 10h WORD as_colerr 12h WORD as_abterr 14h DWORD as_tcount 18h DWORD as_rcount 1Ch WORD as_retran 1Eh WORD as_xresrc 20h 8 BYTEs as_res0 28h WORD as_ncbfree 2Ah WORD as_ncbmax 2Ch WORD as_ncbx 2Eh 4 BYTEs as_res1 32h WORD as_sespend 34h WORD as_msp 36h WORD as_sesmax 38h WORD as_bufsize 3Ah WORD as_names 3Ch 16 name structures as_name (see #03252) Note: it has been reported that the first field should be 16 bytes instead of six (shifthing all remaining fields by ten bytes) Format of NetBIOS structure "name": Offset Size Description (Table 03252) 00h 16 BYTEs "nm_name" symbolic name 10h BYTE "nm_num" number associated with name 11h BYTE nm_status Format of NetBIOS structure "sstatus": Offset Size Description (Table 03253) 00h BYTE number of sessions being reported 01h BYTE number of sessions with this name 02h BYTE number of outstanding receive datagrams 03h BYTE number of outstanding ReceiveAnys 04h var session structures (see #03254) Format of NetBIOS structure "session": Offset Size Description (Table 03254) 00h BYTE local session number 01h BYTE state 01h listen pending 02h call pending 03h session established 04h hangup pending 05h hangup done 06h session aborted 02h 16 BYTEs local name 12h 16 BYTEs remote name 22h BYTE number of outstanding receives 23h BYTE number of outstanding sends/chainsendsTop
INT 5C - IRQ12 relocated by DESQview 2.26+ Range: INT 5C to INT FC, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 5B"DESQview",INT 5D"DESQview",INT 74Top
INT 5C - IRQ4 relocated by DoubleDOS SeeAlso: INT 0CTop
INT 5C - TOPS INTERFACE ES:BX -> Network Control Block Note: TOPS card uses DMA 1, 3 or none.Top
INT 5C - ATALK.SYS - AppleTalk INTERFACE DX:BX -> control block (see #03256) Return: none InstallCheck: test for the signature "AppleTalk" 16 bytes prior to the interrupt handler Range: INT 5Ch to INT 70h Index: installation check;ATALK.SYS|installation check;AppleTalk interface (Table 03255) Values for ATALK.SYS command code: 01h "AT_INIT" initialize the driver 02h "AT_KILL" 03h "AT_GETNETINFO" get current network info incl init status 04h "AT_GETCLOCKTICKS" 05h "AT_STARTTIMER" 06h "AT_RESETTIMER" 07h "AT_CANCELTIMER" 10h "LAP_INSTALL" 11h "LAP_REMOVE" 12h "LAP_WRITE" 13h "LAP_READ" 14h "LAP_CANCEL" 20h "DDP_OPENSOCKET" 21h "DDP_CLOSESOCKET" 22h "DDP_WRITE" 23h "DDP_READ" 24h "DDP_CANCEL" 30h "NBP_REGISTER" 31h "NBP_REMOVE" 32h "NBP_LOOKUP" 33h "NBP_CONFIRM" 34h "NBP_CANCEL" 35h "ZIP_GETZONELIST" 36h "ZIP_GETMYZONE" 37h "ZIP_TAKEDOWN" 38h "ZIP_BRINGUP" 40h "ATP_OPENSOCKET" 41h "ATP_CLOSESOCKET" 42h "ATP_SENDREQUEST" 43h "ATP_GETREQUEST" 44h "ATP_SENDRESPONSE" 45h "ATP_ADDRESPONSE" 46h "ATP_CANCELTRANS" 47h "ATP_CANCELRESPONSE" 48h "ATP_CANCELREQUEST" 50h "ASP_GETPARMS" 51h "ASP_CLOSESESSION" 52h "ASP_CANCEL" 53h "ASP_INIT" 54h "ASP_KILL" 55h "ASP_GETSESSION" 56h "ASP_GETREQUEST" 57h "ASP_CMDREPLY" 58h "ASP_WRTCONTINUE" 59h "ASP_WRTREPLY" 5Ah "ASP_CLOSEREPLY" 5Bh "ASP_NEWSTATUS" 5Ch "ASP_ATTENTION" 5Dh "ASP_GETSTATUS" 5Eh "ASP_OPENSESSION" 5Fh "ASP_COMMAND" 60h "ASP_WRITE" 61h "ASP_GETATTENTION" 70h "PAP_OPEN" 71h "PAP_CLOSE" 72h "PAP_READ" 73h "PAP_WRITE" 74h "PAP_STATUS" 75h "PAP_REGNAME" 76h "PAP_REMNAME" 77h "PAP_INIT" 78h "PAP_NEWSTATUS" 79h "PAP_GETNEXTJOB" 7Ah "PAP_KILL" 7Bh "PAP_CANCEL" Format of AppleTalk control block: Offset Size Description (Table 03256) 00h WORD command code (see #03255) OR with the following flags 8000h start command then return 4000h wait for interrupt service to complete 02h WORD returned status 0000h success (already initialized if func 01h) 04h DWORD pointer to completion function 08h WORD network number 0Ah BYTE node ID ---if general func (01h,03h), control block continues: 0Bh BYTE "inf_abridge" 0Ch WORD "inf_config" 0Eh DWORD pointer to buffer 12h WORD buffer size ---if DDP function (20h-24h), control block continues: 0Bh BYTE "ddp_addr_socket" 0Ch BYTE "ddp_socket" 0Dh BYTE "ddp_type" 0Eh DWORD pointer to buffer 12h WORD buffer size 14h BYTE "ddp_chksum" ---if Name Binding Protocol (30h-34h), control block continues: 0Bh BYTE "nbp_addr_socket" 0Ch WORD "nbp_toget" 0Eh DWORD pointer to buffer (see #03257) 12h WORD buffer size 14h BYTE "nbp_interval" 15h BYTE "nbp_retry" 16h DWORD "nbp_entptr" ---if AppleTalk Transaction Protocol (42h), control block continues: 0Bh BYTE "atp_addr_socket" 0Ch WORD "atp_socket" 0Eh DWORD pointer to buffer 12h WORD buffer size 14h BYTE "atp_interval" 15h BYTE "atp_retry" 16h BYTE ATP flags bit 5: exactly one transaction 17h BYTE "atp_seqbit" 18h BYTE transaction ID 19h 4 BYTEs ATP user bytes 1Dh BYTE number of BDS buffers 1Eh BYTE number of BDS responses 1Fh DWORD pointer to BDS buffers (see #03258) Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP: Offset Size Description (Table 03257) 00h WORD "tup_address_network" 02h BYTE "tup_address_notid" 03h BYTE "tup_address_socket" 04h BYTE "tup_enum" 05h 99 BYTEs name Format of BDS entries: Offset Size Description (Table 03258) 00h DWORD pointer to buffer 04h WORD size of buffer 06h WORD BDS data size 08h 4 BYTEs "bds_userbytes"Top
INT 5C - IBM 802.2 INTERFACE (LLC) ES:BX -> CCB (see #03259) Return: none Format of IBM 802.2 CCB: Offset Size Description (Table 03259) 00h BYTE adapter 01h BYTE command code 02h BYTE return code 03h BYTE work 04h DWORD pointer to ??? 08h DWORD pointer to completion function??? 0Ch DWORD pointer to parameters???Top
INT 5C - $25 LAN - INSTALLATION CHECK Notes: current versions only check whether the vector is 0000h:0000h or not future versions are supposed to have the signature "NET" in the three bytes preceding the INT 5C handlerTop
INT 5C C - TI Professional PC - KEYBOARD PAUSE KEY VECTOR AX = 0100h CF clear Return: CF clear AX = keystroke to be placed into keyboard buffer CF set AX ignored Desc: toggle a pause flag which is checked by the CRT Device Service Routine (see INT 49/AH=01h"TI") and causes it to temporarily halt the machine on the next video-related function (until a key is pressed) SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional" SeeAlso: INT 5B"TI Professional",INT 5D"TI Professional" SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"Top
INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE AH = 04h AL = COM port (0 = default) CX = wait count in character times (should be at least 100) Return: ZF set if link aliveTop
INT 5D - IRQ13 relocated by DESQview 2.26+ Range: INT 5D to INT FD, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 5C"DESQview",INT 5E"DESQview",INT 75Top
INT 5D - IRQ5 relocated by DoubleDOS SeeAlso: INT 0D"IRQ5",INT 5C"DoubleDOS"Top
INT 5D C - TI Professional PC - KEYBOARD BREAK KEY VECTOR CF clear AX = 0000h Return: CF clear AX = keystroke to place into keyboard buffer CF set AX ignored Desc: invoked by the keyboard ISR when Shift-BrkPause is pressed Note: the default handler is a simple IRET instruction SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional" SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional" SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"Top
INT 5E - IRQ14 relocated by DESQview 2.26+ Range: INT 5E to INT FE, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 5D"DESQview",INT 5F"DESQview",INT 76Top
INT 5E - IRQ6 relocated by DoubleDOS SeeAlso: INT 0E,INT 5D"DoubleDOS"Top
INT 5E C - TI Professional PC - KEYBOARD PRINT-SCREEN VECTOR CF set Return: CF clear AX = keystroke to be placed into keyboard buffer CF set AX ignored Desc: hook to dump the screen to the printer Notes: hooked by TI MS-DOS, which provides a PRTSCRN character device which can invoke screen prints when a decimal digit (indicating the type of screen dump) is written to it the TI MS-DOS print-screen routine allows selective dumps of text only, graphics only, or text and graphics superimposed, in either normal or reverse, by pressing the appropriate keystroke combination: Shift-Print, Ctrl-Print, Alt-Print, Shift-Alt-Print, Ctrl-Alt-Print, or Shift-Ctrl-Print. the BIOS default routine for this vector is an IRET SeeAlso: INT 05"PRINT SCREEN",INT 4A/AH=00h"TI",INT 59"TI Professional" SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional" SeeAlso: INT 5D"TI Professional",INT 5F"TI Professional"Top
INT 5F - IRQ15 relocated by DESQview 2.26+ Range: INT 5F to INT FF, selected automatically Note: this is the default, but other INTs may be used (see INT 50"DESQview") SeeAlso: INT 50"DESQview",INT 5E"DESQview",INT 77Top
INT 5F - IRQ7 relocated by DoubleDOS SeeAlso: INT 0F,INT 5E"DoubleDOS"Top
INT 5F C - TI Professional PC - KEYBOARD QUEUEING VECTOR Return: all registers preserved Desc: hook for multitaskers to be informed when a keypress is placed in the keyboard buffer Note: the default handler is a simple IRET instruction SeeAlso: INT 09,INT 4A/AH=00h"TI",INT 59"TI Professional" SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional" SeeAlso: INT 5D"TI Professional",INT 5E"TI Professional"Top
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET VIDEO MODE AH = 00h AL = video mode 03h text,CGA color (100LX/200LX) 06h 640x200 CGA graphics (100LX/200LX) 07h text, system manager compliant 20h 240x128 mono graphics, system manager compliant 87h text, not system manager compliant A0h 240x128 mono graphics, not system manager compliant Notes: the defaults after setting the mode to graphics are (0,0) logical origin, full-screen clip region, (0,0) pen location, pen color 1, pixel replacement FORCE, line type and fill mask all bits set modes 03h and 06h can also be set with the standard INT 10/AH=00h SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET FILL MASK AH = 01h ES:DI -> 8-byte fill mask Note: the fill mask represents an 8x8 pixel box and is repeated as necessary when drawing filled rectangles; it is always aligned with the byte boundaries of video memory, regardless of the actual boundaries of the rectangle SeeAlso: AH=02hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFO AH = 02h ES:DI -> graphics info record (see #03260) Return: DX:AX -> filled graphics info record (for return to high-level langs) Format of HP 95LX graphics info record: Offset Size Description (Table 03260) 00h BYTE current video mode 01h BYTE default video mode 02h WORD display width in pixels 04h WORD display height in pixels 06h WORD current pen column 08h WORD current pen row 0Ah WORD current line type 0Ch WORD current replacement rule 0Eh WORD current pen color 10h WORD current leftmost column of clip region 12h WORD current rightmost column of clip region 14h WORD current topmost row of clip region 16h WORD current bottommost row of clip region 18h WORD current column of logical origin 1Ah WORD current row of logical origin 1Ch 8 BYTEs current fill maskTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN AH = 03h CX = column DX = row SeeAlso: AH=04hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET CLIP REGION AH = 04h CX = left-most column DX = top-most row SI = right-most column DI = bottom-most row SeeAlso: AH=03hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW RECTANGLE AH = 05h AL = fill type 00h outline, using current line type and color 01h solid, using current color 02h pattern, using current fill mask and color DX,CX = row,column of other corner of rectangle Note: the rectangle is drawn starting at the current pen position SeeAlso: AH=01h,AH=06h,AH=07hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW LINE AH = 06h DX,CX = row,column of end point Note: the line is drawn starting at the current pen position SeeAlso: AH=05h,AH=07hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PLOT POINT AH = 07h DX,CX = row,column of point Note: also sets pen position to the specified point SeeAlso: AH=06h,AH=08h,AH=0ChTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - MOVE PEN AH = 08h DX,CX = row,column of new pen position SeeAlso: AH=07h,AH=09hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET PEN COLOR AH = 09h AL = new color (00h = white, 01h = black) SeeAlso: AH=08h,AH=0Ah,AH=0BhTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE AH = 0Ah AL = new replacement rule 00h force 01h AND 02h OR 03h XOR ---100LX/200LX--- 04h InvForce 05h InvAND 06h InvOR 07h InvXOR 08h Txt SeeAlso: AH=01h,AH=09h,AH=0BhTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LINE TYPE AH = 0Bh CX = new line type Note: the line type specifies 16 bits which are repeated over and over while drawing the pixels of a line SeeAlso: AH=09h,AH=0AhTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET PIXEL AH = 0Ch DX,CX = row,column of pixel to read Return: AX = pixel color SeeAlso: AH=07hTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET IMAGE AH = 0Dh DX,CX = row,column of first corner BP,SI = row,column of second corner ES:DI -> image buffer (see #03261) Note: the specified corners are included in the saved image SeeAlso: AH=0Eh Format of HP 95LX image buffer: Offset Size Description (Table 03261) 00h WORD number of planes (always 01h on HP 95LX) 02h WORD number of bits/pixel (always 01h on HP 95LX) 04h WORD image width in pixels 06h WORD image height in pixels 08h N BYTEs image data requires (WIDTH+7)/8 * HEIGHT bytesTop
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PUT IMAGE AH = 0Eh AL = replacement rule (see #03262) DX,CX = row,column of top left corner ES:DI -> image buffer (see #03261) Note: if the specified image does not fit completely on the screen, this call does nothing SeeAlso: AH=0Dh Bitfields for replacement rule: Bit(s) Description (Table 03262) 2 invert image before applying rule 1-0 function (00 force, 01 AND, 10 OR, 11 XOR)Top
INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - WRITE TEXT AH = 0Fh AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise) DX,CX = row,column of first character's top left corner ES:DI -> ASCIZ textTop
INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - GET FONT POINTER AH = 10h CX = font size of desired font 0808h 8x8 small (80x25 text) 0A0Bh 11x10 medium (64x18 text) 100Ch 12x16 large (40x16 text) Return: DX:AX -> ptr to font or 0000h:fontID# if built-in font SeeAlso: AH=11hTop
INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - SET CURRENT FONT AH = 11h ES:DI -> ptr to font or 0000h:fontID# for built-in font Note: this function should be called immediately after AH=10h with the pointer supplied by that call SeeAlso: AH=10hTop
INT 60 - reserved for user interruptTop
INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK Desc: The "Zero Bug" virus hooks this vector. It considers itself installed if offset 103h of the handler's segment contains the bytes "ZE" SeeAlso: INT 32"VIRUS",INT 44"VIRUS",INT 61"SEMTEX"Top
INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA SeeAlso: INT 41"HARD DISK 0",INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec" SeeAlso: INT 64"Adaptec",INT C0"AMI",#00732 at INT 1A/AX=B102h Notes: this vector stores the first four bytes of the parameter table for hard disk 0 these vectors are used by the following Adaptec controllers: ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16 these vectors are NOT used by the following Adaptec controllers: ACB 2310, ACB 2312, ACB 2320D, ACB 2322DTop
INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!) Desc: the low word of this vector contains the segment of the RAM data area to be used by the system ROM at F400h:A000h, and the high word contains the length of the data area (see #03263) SeeAlso: INT 61"TI Professional PC",INT 66"TI Professional PC" Format of TI Professional System ROM data area: Offset Size Description (Table 03263) 00h BYTE port 00h shadow 01h BYTE port 03h shadow 02h BYTE port 04h shadow 03h WORD system configuration word (see #03266) 05h BYTE 25ms count 06h WORD offset of timing event 1 (0008h) 08h WORD (event 1) offset of timing event 2 (0010h) 0Ah BYTE (event 1) unused (FFh) 0Bh BYTE (event 1) active flag (bit 7 set if on) 0Ch WORD (event 1) count-down until end of event 0Eh WORD (event 1) event routine (in segment F400h) to call at timeout 10h WORD (event 2) offset of timing event 3 (0018h) 12h BYTE (event 2) unused (FFh) 13h BYTE (event 2) active flag (bit 7 set if on) 14h WORD (event 2) count-down until end of event 16h WORD (event 2) event routine (in segment F400h) to call at timeout 18h WORD (event 3) offset of timing event 3 (0020h) 1Ah BYTE (event 3) unused (FFh) 1Bh BYTE (event 3) active flag (bit 7 set if on) 1Ch WORD (event 3) count-down until end of event 1Eh WORD (event 3) event routine (in segment F400h) to call at timeout 20h WORD (event 4) 0000h - last event 22h BYTE (event 4) unused (FFh) 23h BYTE (event 4) active flag (bit 7 set if on) 24h WORD (event 4) count-down until end of event 26h WORD (event 4) event routine (in segment F400h) to call at timeout 28h WORD offset of start of text display within segment DE00h 2Ah WORD end of display 2Ch WORD current absolute cursor position 2Eh WORD start of current character row 30h WORD current cursor column 32h WORD cursor type and size (see #03264) 34h WORD start of protected status region on screen (0000h = none) 36h BYTE pop flag used by some ROM routines 00h pop registers before return nonzero: do not pop 37h BYTE unused (FFh) 38h BYTE PAUSE flag 00h off FFh on 39h BYTE temp: current attribute while moving characters on screen 3Ah WORD start of keyboard queue (next key at start+2 or 0042h if 0060h) 3Ch WORD end of keyboard queue (next key inserted at end+2 or 0042h) 3Eh BYTE number of characters in buffer 3Fh BYTE keyboard mode flags (see #03265) 40h BYTE Alt-digit-digit-digit accumulator 41h BYTE Alt-digit-digit-digit count of digits (mod 3) 42h 16 WORDs keyboard buffer (circular queue) 62h 8 DWORDs Drive Interface Table pointers for floppies A:-D: + four others (0000h:0000h if pointer not in use) 82h BYTE disk-error retry count (incremented on each disk error) 83h 2 BYTEs BIOS scratch space 85h 8 BYTEs current cylinder number for drives 0-7 FFh = unknown 8Dh BYTE BIOS scratch space 8Eh BYTE hard error code for last disk access 00h operation successful 8Fh 8 BYTEs save area for disk DSR parameters 97h 6 BYTEs current drive status 9Dh BYTE retry error status 9Eh BYTE BIOS scratch space 9Fh 7 BYTEs ??? A6h 2 WORDs INT 47 save area for SS,SP AAh 2 WORDs INT 46 save area for SS,SP AEh 2 WORDs INT 43 save area for SS,SP B2h 2 WORDs save area for SS,SP to be restored by common intr. exit routine B6h 24 WORDs stack for INT 47 E6h 24 WORDs stack for INT 46 116h 17 WORDs stack for INT 43 13Ah 6 BYTEs system date and time (hundredths, seconds, minutes, hours, and WORD days since 01jan1980) Note: timing event 1 is the disk I/O timeout, event 2 is the floppy disk motor timeout, event 3 is the floppy disk motor spin-up time, and event 4 is used to turn off the speaker after a delay Bitfields for TI Professional PC cursor size and type: Bit(s) Description (Table 03264) 15 reserved (0) 14-13 cursor type 00 nonblinking 01 off 10 slow blink 11 fast blink 12-8 starting scan line (0-11) 7-5 reserved (0) 4-0 ending scan line (0-11) SeeAlso: #03263 Bitfields for TI Professional PC keyboard mode flags: Bit(s) Description (Table 03265) 7 CapsLock was ON at last keypress 6-4 reserved (0) 3 repeat key 2 Shift was down at last keypress 1 Alt was down at last keypress 0 Ctrl was down at last keypress SeeAlso: #03263 Bitfields for TI Professional System Configuration Word: Bit(s) Description (Table 03266) 0 drive A: installed 1 drive B: installed 2 drive C: installed 3 drive D: installed 4 drive A: is 80-track 5 drive A: is double-sided 6 60-Hz (USA,etc.) system instead of 50-Hz (Europe) 7 hard disk installed 8 serial port 1 installed 9 serial port 2 installed 10 serial port 3 installed 11 serial port 4 installed 14-12 installed graphics planes 000 none 001 plane A 111 planes A, B, and C 15 clock installed SeeAlso: #03263Top
INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS Desc: supplies a number of subfunctions which perform such functions as drawing boxes and menus, and provide input line editing SeeAlso: INT 61/AH=00h"Atari",INT 61"EXTENDED BIOS"Top
INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK Program: Nabbit is a shareware resident screen data grabber by RSE Inc. Range: INT 60 to INT 66, selected by searching for first free vector Note: the Nabbit installation check consists of testing whether the interrupt vector points at the ASCIZ signature string "iG" (69h 47h 00h)Top
INT 60 - ATI M64VBE.COM - INSTALLATION SIGNATURE Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip InstallCheck: scan for an interrupt with the ASCIZ signature "M64VBE" three bytes past the interrupt handler Range: INT 60 to INT 66, selected by searching for first free vector SeeAlso: INT 10/AX=4FDDh"M64VBE",INT 10/AX=4FFFh/BX=364Dh"M64VBE"Top
INT 60 U - Buffit v3.0 - (NOT A VECTOR!) - INSTALLATION CHECK Program: Buffit is a shareware scrollback utility by D.T. Hamilton Range: INT 60 to INT 6F, selected by searching for first free vector Notes: the Buffit installation check consists of testing whether the interrupt vector points at the ASCII signature "Buffit " there is a private entry point (see #03267) immediately following the signature string, i.e. eight bytes beyond the address pointed at by the interrupt vector (Table 03267) Call Buffit private entry point with: AH = function 00h get information and hotkey state 01h get information and toggle hotkey state Return: AH = new hotkey state (00h enabled, 01h disabled) AL = hotkey scan code (see #00006) BH = hotkey shift states BL = ??? (01h) CX = segment of resident code DH = interrupt number used for signature pointer DL = ??? (00h) SI = INT 09 handler offset DI = INT 21 handler offset Index: hotkeys;BuffitTop
INT 60 - PC-IPC API STACK: DWORD pointer to parameter block (see #03268) Return: STACK: unchanged Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which allows communication between independent programs Range: INT 00 to INT FF, selected by commandline switch Format of PC-IPC parameter block: Offset Size Description (Table 03268) 00h WORD caller's ID 02h WORD to ID 04h WORD command code (see #03269) 06h WORD returned status (see #03270) 08h WORD returned error code (see #03271) 0Ah WORD size of data 0Ch DWORD pointer to data buffer (Table 03269) Values for PC-IPC command code: 01h "IPC_CMND_INQUIRE" inquire current status set status field, writes WORD to data buffer containing free message space in bytes, and sets the "size" field to the number of messages waiting 02h "IPC_CMND_ENABLE" reenable PC-IPC ignored unless called with the same ID that disabled PC-IPC 03h "IPC_CMND_DISABLE" disable PC-IPC 04h "IPC_CMND_INSTALL" reset PC-IPC 06h "IPC_CMND_RDATA" read data returns first message in data buffer, sets "size" to message length and "to ID" field to sender's ID if no messages available, bit 4 of status is cleared and "size" is set to zero 07h "IPC_CMND_SDATA" send data 08h "IPC_CMND_REQID" require user ID create a new recognized ID and return in "caller's ID" field 09h "IPC_CMND_DELID" cancel user ID delete caller's ID from pool of recognized IDs 0Ah "IPC_CMND_RDATAW" read data, wait if no messages available 0Bh "IPC_CMND_VERS" get PC-IPC version string representing version returned in data buffer, "size" field set to length of string Bitfields for returned status: Bit(s) Description (Table 03270) 0 unused 1 IPC enabled 2 IPC installed 3 error 4 message(s) available (Table 03271) Values for PC-IPC error code: 00h no error 01h invalid command or parameter 02h only process 0 can install/reset IPC 03h process can not install/reset IPC 04h IPC is not enabled 05h process can not disable IPC 06h invalid destination process ID 07h invalid sending process ID 08h invalid data destination 09h no more process IDs available 0Ah can not relinquish that process ID 0Bh message space is full 0Ch IPC is not installedTop
INT 60 - Tangram Arbiter - API Desc: Arbiter makes a PC disk look like a slow disk over an SNA link to an IBM mainframe Range: INT 60h to INT 66h, selected by configuration parameter Notes: identified by string "@ARB_API" immediately following a short jump at the interrupt handler addressTop
INT 60 - Excelan LAN Workplace for DOS 3.5 - API
ES:BX -> request packet (see #03272)
Return: request packet updated
InstallCheck: test for the WORD 4142h ('AB') immediately preceding the
interrupt handler
Note: this interrupt is also supported by Beame&Whiteside's BWLWP35 shim,
which was used in creating this description
BUG: because BWLWP35 range-checks only the low byte of the function number,
and has a fencepost error even in that test, functions 000Bh and
XX01h-XX0Bh (XX nonzero) branch to random locations
SeeAlso: INT 2F/AX=7A40h
Format of Excelan request packet:
Offset Size Description (Table 03272)
00h 12 BYTEs ???
0Ch WORD (ret) error code (see #03273)
0Eh DWORD -> FAR function for ???
12h WORD function number
0001h ???
0002h NOP
0003h NOP
0004h NOP
0005h ???
0006h get ??? record
0007h NOP
0008h reset ???
0009h NOP
000Ah set ???
???
---function 01h---
20h BYTE (call) subfunction (32h-3Bh)
3Bh non-blocking I/O request (will be tested every clock tick)
21h BYTE (ret) error code
00h successful
09h invalid connection number
2Ah bad connection type
45h ???
---function 01h, subfunction 32h---
3Ah WORD (call) connection type (01h stream, 02h datagram)
---function 01h, subfunction 34h---
26h WORD (call) ???
28h WORD (call) ???
2Ah WORD (call) ???
---function 01h, subfunction 35h---
1Ah WORD (call) connection number???
26h WORD (ret) ???
---function 01h, subfunction 36h---
1Ah WORD (call) connection number???
38h WORD ???
---function 01h, subfunction 37h---
24h WORD (ret) ???
26h WORD (ret) ???
---function 01h, subfunction 38h---
1Ah WORD (call) connection number???
---function 01h, subfunction 3Ah---
22h WORD (call) ???
667Eh ???
667Fh ???
24h BYTE (call 667Eh) ???
24h WORD (return 667Fh) ???
---function 01h, subfunction 3Bh---
0Eh DWORD (call) -> function to invoke for I/O or 0000h:0000h
function called with AX = 0000h
STACK: DWORD -> request packet
WORD 0000h
should return STACK unchanged
1Ah WORD (call) connection number???
21h BYTE (ret) set to 01h when I/O becomes possible
22h BYTE (call) direction (00h write, 01h read)
34h DWORD (ret) -> next pending request packet
---function 05h---
1Eh WORD (call) ???
20h WORD (call) ???
34h DWORD (call) -> ???
---function 06h---
16h DWORD (call) -> buffer for ??? record (see #03274)
1Ah WORD (call) number of bytes to copy
22h WORD (ret) number of bytes transferred
---function 08h---
14h WORD (ret) ??? (0001h)
---function 0Ah---
16h DWORD (call) -> WORD ???
1Ch WORD (call) must be 000Ah for BWLWP35
(Table 03273)
Values for Excelan error code:
0000h successful
002Dh invalid function
0050h ???
Format of ??? record:
Offset Size Description (Table 03274)
00h WORD offset of ???
02h 4 BYTEs ???
06h DWORD IP address (big-endian)
0Ah 6 BYTEs physical address (big-endian)
???
Top
INT 60 - TCPDRV 2.01 - TCP/IP Application Binary Interface (ABI) Note: The handler for the interrupt will start with a 2-byte NEAR jump instruction, followed by the ASCIZ signature string "TCP DRVR". To find the interrupt being used by the driver, an application should scan through interrupt vectors 60h to 7Fh until it finds one with the "TCP DRVR" string. This specification is being proposed by Peter R. Tattam from the University of Tasmania. Index: installation check;TCPDRVTop
INT 60 U - INTRSPY/CMDSPY v1.0 only - API Program: INTRSPY is a script-driven debugger included with the book _Undocumented_DOS_. InstallCheck: determine that a) the handler is an IRET instruction, and b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler Notes: INTRSPY will hook the first available interrupt in the range 60h-67h. If INTRSPY is installed, the DWORD immediately after the IRET stores its entry point (see #03275) INTRSPY v2.0 (included with the second edition of the book) no longer supports this API Index: installation check;INTRSPY (Table 03275) Call INTRSPY v1.0 entry point with: AH = function 00h ??? 01h set current directory (for use in reporting) ES:DI -> counted string containing directory name (max 79 char) 02h set name of script file ES:DI -> counted string containing file name (max 79 chars) 03h set script arguments ES:DI -> counted string containing arguments (max 79 chars) 04h get directory set with function 01h ES:DI -> 80-byte buffer for directory name 05h get name of script file ES:DI -> 80-byte buffer for script filename 06h get script arguments ES:DI -> 80-byte buffer for script arguments 07h get ??? CL = 00h-15h specifies what to get ES:DI -> WORD to be set with desired value on return 08h get ??? ES:DI -> WORD to be set with returned value 09h get ??? ES:DI -> WORD to be set with returned value 0Bh store code for interrupt handler??? ES:DI -> data CX = number of bytes 0Ch ??? ES:DI -> ??? 0Dh get ??? ES:DI -> BYTE to be set with returned value 0Eh set ??? flag 0Fh clear ??? flag 10h ??? Return: AL = 04h or 05h if failed 11h ??? Return: AL = 05h if failed 12h get ??? ES:DI -> buffer Return: CX = number of bytes returned in buffer 13h ??? Return: AH = 00h AL = status 00h successful 01h invalid function 02h ??? 03h ??? 04h ??? 05h ???Top
INT 60 U - PC/370 v4.2 - ??? ??? Return: ??? Program: PC/370 is an IBM 370 emulator by Donald S. Higgins Range: INT 00 to INT FF, selected by patching the executable Note: the documentation includes instructions for patching the system for another interrupt SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"Top
INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP SeeAlso: INT 61"JPI"Top
INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification Range: INT 20 to INT FF Notes: The handler for the interrupt will start with a 3-byte jump instruction, followed by the ASCIZ string "PKT DRVR" (the terminating NUL is significant). To find the interrupt being used by the driver, an application should scan through interrupt vectors 20h to FFh (60h through 80h for v1.09- of the specification) until it finds one with the "PKT DRVR" string. AH values of 80h to FFh have been reserved for user-defined additions.Top
INT 60 u - 3270-PC CONTROL PROGRAM - ???Top
INT 60 u - HP 95LX System Manager - WAIT FOR EVENT DI = 0100h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to event record (see #03277) Return: event record filled STACK unchanged Note: this call will timeout after about 500ms SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX" (Table 03276) Values for HP 95LX event type: 00h no events 01h keystroke available 02h Ctrl-Break 03h reactivation (always follows deactivation event) 04h about to deactivate (sleep) next get-event call will not return until reactivated 05h forced application termination 06h 1-2-3 bridge service request (only given to 1-2-3) 07h request to grow 08h request to shrink 09h application's alarm expired 0Ah daily chance to set an alarm 0Bh system date or time has been changed Format of HP 95LX event record: Offset Size Description (Table 03277) 00h WORD event type (see #03276) 02h WORD ASCII code page 850 translation of keystroke or grow/shrink amount in paragraphs or 0000h if error or alarm expiration data 04h BYTE scan code from BIOS 05h BYTE shift key states at time keystroke is retrieved 06h WORD LICS translation of keystroke 08h BYTE function key number (1-2-3 only) 09h DWORD pointer to 1-2-3 bridge record (see #03279) or pointer to time change structure (see #03278) Note: if the System Manager is awaiting the conclusion of a bridge service or grow/shrink call and the event type field is set to FFFFh on entry, the SysMgr will resume Format of HP 95LX time change structure: Offset Size Description (Table 03278) 00h WORD old year 02h BYTE old month 03h BYTE old date 04h BYTE old day 05h BYTE old hour 06h BYTE old minute 07h BYTE old second 08h BYTE old hundredth of a second 09h 9 BYTEs new time in same format as old timeTop
INT 60 u - HP 95LX System Manager - CHECK FOR EVENT DI = 0101h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to event record (INT 60/DI=0100h) Return: event record filled STACK unchanged Note: this call returns immediately if no event is available SeeAlso: INT 60/DI=0100hTop
INT 60 u - HP 95LX System Manager - "SH_STATUS" DI = 0102h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES DI = 0104h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to bridge record (see #03279) Return: ??? STACK unchanged Format of HP 95LX bridge record: Offset Size Description (Table 03279) 00h WORD function code (see #03280) 02h WORD return code from 1-2-3 04h 16 BYTEs ASCII range name 14h WORD start column of range 16h WORD start row of range 18h WORD end column of range 1Ah WORD end row of range 1Ch WORD order in which data is placed in buffer 1Eh WORD buffer size 20h WORD offset within bridge record's segment of buffer for cell data (Table 03280) Values for HP 95LX function code: 00h test 01h get range 02h "GETRANGE_ADDR" 03h "SETRANGE_ADDR" 04h "GETRANGE_DATA" 05h "SETRANGE_DATA" 06h recalculate 07h get cursor 08h set cursor 09h redisplay 0Ah cell type 0Bh "CALCTYPE"Top
INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER DI = 0105h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - YIELD CPU DI = 0106h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680hTop
INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST DI = 0107h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - SETUP MENU DI = 0200h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see #03281) DWORD pointer to ??? WORD number of items on menu??? WORD ??? DWORD pointer to ??? WORD ??? DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h Format of HP 95LX menu data: Offset Size Description (Table 03281) 00h 80 BYTEs first line of menu text 50h 80 BYTEs second line of menu text A0h 80 BYTEs third line of menu text F0h WORD number of keywords F2h WORD index of currently highlighted keyword or FFFFh F4h WORD single prompt on top line if nonzero F6h 20 BYTEs which line each of 20 keywords is located on 10Ah 20 BYTEs offset of each of 20 keywords within its line 11Eh 20 BYTEs length of each of 20 keywords 132h 20 BYTEs first letter of each of 20 keywords 146h 20 WORDs offsets of long prompts for each of 20 keywordsTop
INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU DI = 0201h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see #03281) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206hTop
INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU DI = 0202h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see #03281) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203hTop
INT 60 u - HP 95LX System Manager - REMOVE MENU DI = 0203h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see #03281) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208hTop
INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE DI = 0204h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see #03281) WORD keystroke DWORD pointer to WORD to receive selection number Return: buffer for selection number filled with index of selected menu item or FFFFh if no final selection yet STACK unchanged SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207hTop
INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU DI = 0205h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see #03282) DWORD pointer to edit record (see #03285 at INT 60/DI=0400h) DWORD pointer to wildcard filespec for initial file list WORD row??? WORD column??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h Format of HP 95LX file menu structure: Offset Size Description (Table 03282) 00h DWORD pointer to ASCIZ base directory name 04h DWORD pointer to ASCIZ file pattern (wildcard filespec) 08h DWORD pointer to file list workspace, at least 1024 bytes (see #03283) 0Ch WORD size of file list workspace in bytes 0Eh WORD starting row (-3 is topmost, 0 is first non-"reserved" line) 10h WORD starting column 12h WORD number of lines 14h WORD number of columns 16h WORD number of files displayed on each line ---the remaining fields are initialized by the System Manager--- 18h WORD 0000h if first edit character, else multiline 1Ah WORD number of files in file list 1Ch WORD max files workspace has room for 1Eh WORD file at top of list 20h WORD index of file to highlight 22h WORD index of file to unhighlight 24h WORD current focus (01h FMENU, 02h EDIT) Format of HP 95LX file list workspace entry: Offset Size Description (Table 03283) 00h BYTE file attributes 01h WORD file time (see #01665 at INT 21/AX=5700h) 03h WORD file date (see #01666 at INT 21/AX=5700h) 05h DWORD file size 09h 13 BYTEs ASCIZ filenameTop
INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU DI = 0206h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see #03282) DWORD pointer to edit record (see #03285 at INT 60/DI=0400h) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0205hTop
INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE DI = 0207h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see #03282) DWORD pointer to edit record (see #03285 at INT 60/DI=0400h) WORD keystroke Return: AX = status (see #03284) STACK unchanged SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h (Table 03284) Values for HP 95LX System Manager status: 0000h keystroke processed, call INT 60/DI=0206h to refresh menu 0001h redisplay application area before refreshing menu 0002h user confirmed selection, filename is in edit record's buffer 0003h user aborted menu FFFBh bad filename FFFCh bad directory FFFDh bad drive FFFEh unknown keystroke FFFFh keystroke known but invalid in current contextTop
INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU DI = 0208h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see #03282) DWORD pointer to edit record (see #03285 at INT 60/DI=0400h) Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206hTop
INT 60 u - HP 95LX System Manager - DISPLAY STRING DI = 0300h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD starting row (-3 is topmost, 0 is first user line) WORD starting column DWORD pointer to string WORD length of string WORD display style: 0000h normal, 0001h reverse video WORD "OSTYLE" Return: ??? STACK unchanged SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005hTop
INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN DI = 0301h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD starting row (-3 is topmost, 0 is first user line) WORD starting column WORD number of rows WORD number of columns Return: ??? STACK unchanged SeeAlso: INT 60/DI=0302h,INT 60/DI=1005hTop
INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN DI = 0302h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD starting row??? WORD starting column??? WORD height of scroll region??? WORD width of scroll region??? WORD number of lines to scroll region??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0301hTop
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG" DI = 0303h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ??? WORD ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR" DI = 0304h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT" DI = 0305h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV" DI = 0307h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS" DI = 0308h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE DI = 0309h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new mode Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE DI = 030Ah STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SET CURSOR POSITION DI = 030Bh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD row (-3 is topmost, 0 is first non-reserved line) WORD column Return: ??? STACK unchanged Note: cursor is hidden if the specified position is not on the physical display SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - "EDIT_INIT" DI = 0400h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see #03285) DWORD pointer to string to be edited WORD initial length of string being edited WORD maximum length of edited string WORD row of edit field WORD leftmost column of edit field Return: ??? STACK unchanged Format of HP 95LX edit record: Offset Size Description (Table 03285) 00h WORD current length of edit buffer 02h BYTE flag for special processing on first character 03h BYTE flags bit 0: tab handling 04h WORD editing in prompt window? 06h DWORD pointer to top line of prompt window message 0Ah WORD length of top line of prompt 0Ch DWORD pointer to second line of prompt window message 10h WORD length of second line of prompt 12h 80 BYTEs workspace for editing 62h 2 WORDs line array needed for multi-line editing 66h 36 BYTEs multi-line edit record (see #03286) 8Ah WORD displayable columns Format of HP 95LX multi-line edit record: Offset Size Description (Table 03286) 00h DWORD pointer to user-supplied edit buffer 04h WORD length of edit buffer 06h WORD current cursor position 08h WORD starting row of edit area (-3 is topmost, 0 is first user line) 0Ah WORD starting column of edit area 0Ch WORD height of edit area 0Eh WORD width of edit area 10h WORD current top row (-3 is topmost, 0 is first user line) 12h WORD number of rows displayable 14h BYTE cursor column 15h BYTE 01h if buffer has been modified 16h BYTE first displayable column (ticker fields only) 17h BYTE 01h if wordwrap enabled, FFh if ticker field 18h DWORD pointer to array of line starts (at least one bigger than edit area is high) 1Ch BYTE currently marking? 1Dh BYTE flag 1Eh WORD offset of mark start 20h WORD offset of mark end (inclusive) 22h WORD displayable columnsTop
INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE DI = 0401h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see #03285) DWORD pointer to string to edit WORD initial length of string being edited WORD maximum length of edited string DWORD pointer to first line of prompt WORD length of first line DWORD pointer to second line of prompt WORD length of second line Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD DI = 0402h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see #03285) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK DI = 0403h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see #03285) WORD keystroke DWORD pointer to WORD buffer for result code Return: result code buffer filled with 0001h if editing complete STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_INI" DI = 0404h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? WORD ??? WORD ??? DWORD pointer to ??? WORD ??? WORD ??? WORD ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_DIS" DI = 0405h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_KEY" DI = 0406h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_FIL" DI = 0407h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_MARK" DI = 0408h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_UNMARK" DI = 0409h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK" DI = 040Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "MDIT_INS_STR" DI = 040Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - OPEN FILE DI = 0500h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero Return: AX = status STACK unchanged SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h Format of HP 95LX file state record: Offset Size Description (Table 03287) 00h WORD DOS file handle 02h WORD state flags (see #03288) 04h DWORD current DOS physical file offset (FFFFFFFFh if unknown) 08h DWORD DOS file offset of start of buffer 0Ch DWORD effective file offset as seen by caller 10h WORD number of bytes in file buffer ---buffered I/O only--- 12h 512 BYTEs file buffer Bitfields for HP 95LX file state flags: Bit(s) Description (Table 03288) 0 buffer contents valid 1 buffer is dirty and must be written 2 unbuffered I/O 3 file is a character device SeeAlso: #03287Top
INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE DI = 0501h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero Return: AX = status STACK unchanged SeeAlso: INT 60/DI=0500hTop
INT 60 u - HP 95LX System Manager - CREATE NEW FILE DI = 0502h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero Return: AX = status STACK unchanged SeeAlso: INT 60/DI=0500h,INT 60/DI=0503hTop
INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE DI = 0503h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero Return: AX = status STACK unchanged SeeAlso: INT 60/DI=0502hTop
INT 60 u - HP 95LX System Manager - READ FROM FILE DI = 0504h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) DWORD pointer to data buffer WORD number of bytes to read DWORD pointer to WORD in which to return actual bytes read Return: ??? STACK unchanged SeeAlso: INT 60/DI=0505hTop
INT 60 - HP 95LX System Manager - WRITE TO FILE DI = 0505h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) DWORD pointer to data WORD length of data Return: AX = status STACK unchanged SeeAlso: INT 60/DI=0504hTop
INT 60 u - HP 95LX System Manager - SET FILE POSITION DI = 0506h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) 2 WORDs ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0507hTop
INT 60 u - HP 95LX System Manager - GET FILE POSITION DI = 0507h "M_TELL" STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) DWORD pointer to DWORD buffer for file position??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0506hTop
INT 60 u - HP 95LX System Manager - CLOSE FILE DI = 0508h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see #03287) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0500hTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT" DI = 0509h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH" DI = 050Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? (see #03289) DWORD pointer to ??? Return: ??? STACK unchanged Format of HP 95LX pattern match control block: Offset Size Description (Table 03289) 00h 43 BYTEs FindFirst data block (see #01626 at INT 21/AH=4Eh) 2Bh 80 BYTEs full path name 7Bh BYTE offset of last component of filename 7Ch BYTE DOS function number (4Eh or 4Fh)Top
INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT DI = 050Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ??? Return: ??? = result (see #03290) ??? STACK unchanged (Table 03290) Values returned by HP 95LX System Manager: 0000h nonexistent 0001h file 0002h directory 0003h character deviceTop
INT 60 u - HP 95LX System Manager - DELETE FILE DI = 050Ch "M_DELETE" STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - RENAME FILE DI = 050Dh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ??? WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR" DI = 050Eh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR" DI = 050Fh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME" DI = 0510h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY DI = 0511h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? Return: ??? STACK unchanged SeeAlso: INT 21/AH=39h,INT 60/DI=0512hTop
INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY DI = 0512h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? Return: ??? STACK unchanged SeeAlso: INT 21/AH=3Ah,INT 60/DI=0511hTop
INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE DI = 0513h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? buffer for current drive Return: ??? STACK unchanged SeeAlso: INT 21/AH=19h,INT 60/DI=0514hTop
INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE DI = 0514h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new drive Return: ??? STACK unchanged SeeAlso: INT 21/AH=0Eh"DOS 1+",INT 60/DI=0513hTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE" DI = 0515h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR" DI = 0516h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES DI = 0517h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ??? buffer for file's attributes??? Return: ??? STACK unchanged SeeAlso: INT 21/AX=4300h,INT 60/DI=0518hTop
INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES DI = 0518h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? WORD new attributes??? Return: ??? STACK unchanged SeeAlso: INT 21/AX=4301h,INT 60/DI=0517hTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN" DI = 0519h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ??? WORD ??? WORD ??? WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT" DI = 051Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT" DI = 051Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT" DI = 051Ch STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING DI = 0600h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"Top
INT 60 u - HP 95LX System Manager - PROCESS TERMINATION DI = 0601h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: never STACK unchanged SeeAlso: INT 21/AH=4Ch,INT 2F/AX=1122h,INT 60/DI=0600hTop
INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES DI = 0602h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 15/AX=101Bh,INT 2F/AX=1681h,INT 60/DI=0603hTop
INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES DI = 0603h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 15/AX=101Ch,INT 2F/AX=1682h,INT 60/DI=0602hTop
INT 60 u - HP 95LX System Manager - "M_SPAWN" DI = 0604h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 21/AH=4BhTop
INT 60 u - HP 95LX System Manager - "M_APPCOUNT" DI = 0605h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_REBOOT" DI = 0606h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 14/AH=17h"FOSSIL",INT 19Top
INT 60 u - HP 95LX System Manager - "M_SPAWNARG" DI = 0607h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME" DI = 0608h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_APP_NAME" DI = 0609h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: DX:AX -> ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD DI = 0700h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? = error code (see #03291) ??? STACK unchanged SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h (Table 03291) Values for HP 95LX error code: 0000h successful FFF8h transfer request out of bounds FFF9h no such representation FFFAh no representation open FFFBh a representation is already open FFFCh representation already exists FFFDh heap allocation failure FFFEh clipboard not open FFFFh clipboard access deniedTop
INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD DI = 0701h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0700h,INT 60/DI=0702hTop
INT 60 u - HP 95LX System Manager - RESET CLIPBOARD DI = 0702h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0700hTop
INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION??? DI = 0704h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707hTop
INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP" DI = 0705h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0704hTop
INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME" DI = 0706h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0704h,INT 60/DI=0707hTop
INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX" DI = 0707h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0704h,INT 60/DI=0706hTop
INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD DI = 0708h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to data to be written??? WORD length of data??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0709hTop
INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD DI = 0709h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? DWORD pointer to buffer for data??? WORD length of buffer??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0708hTop
INT 60 u - HP 95LX System Manager - BEEP DI = 0800h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803hTop
INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD" DI = 0801h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803hTop
INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN DI = 0802h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD pattern number (00h-06h) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803hTop
INT 60 u - HP 95LX System Manager - TURN OFF SOUND DI = 0803h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802hTop
INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK DI = 0900h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD size of block in bytes Return: AX -> memory block STACK unchanged Note: System Manager-compliant applications are always small-model (64K code, 64K data) SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903hTop
INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK DI = 0902h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD offset of memory block??? Return: ??? STACK unchanged Note: System Manager-compliant applications are always small-model (64K code, 64K data) SeeAlso: INT 60/DI=0900h,INT 60/DI=0904hTop
INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK DI = 0903h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD size of block in bytes??? Return: AX -> memory block??? STACK unchanged SeeAlso: INT 60/DI=0900h,INT 60/DI=0904hTop
INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK DI = 0904h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD segment of memory block??? Return: AX -> ??? STACK unchanged SeeAlso: INT 60/DI=0902h,INT 60/DI=0903hTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO" DI = 0B00h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM" DI = 0B01h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM" DI = 0B02h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM" DI = 0B03h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM" DI = 0B04h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to alarm record??? (see #03292) WORD ??? Return: ??? STACK unchanged Format of HP 95LX alarm record: Offset Size Description (Table 03292) 00h BYTE hour 01h BYTE minute 02h BYTE second 03h BYTE unused padding 04h WORD rescheduling interval, in seconds 06h BYTE are seconds significant? 07h BYTE alarm sound 08h 40 BYTEs message displayed when alarm activates 30h BYTE task ID of owner 31h BYTE application's own use for sub-class 32h 4 BYTEs application's own use for private dataTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW" DI = 0B05h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW" DI = 0B06h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW" DI = 0B07h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP DI = 0B08h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD timestamp format (see #03293) WORD row (-3 is topmost, 0 is first non-reserved line) WORD column Return: ??? STACK unchanged Bitfields for HP 95LX timestamp format: Bit(s) Description (Table 03293) 1-0 timestamp components 00 date only 01 time only 10 date and time 11 day and date 4 supply am/pm 5 supply seconds 6 show year 7 four-digit yearTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS" DI = 0B09h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? (see #03294) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh Format of HP 95LX system settings: Offset Size Description (Table 03294) 00h WORD country code 02h WORD speaker volume (00h-03h or FFh for off) 04h WORD contrast level (00h-0Fh) 06h WORD week start (00h Sunday, 01h Monday) 08h WORD punctuation format (see #03295) 0Ah WORD two-character language code (only 5355h = "US" byte-swapped) 0Ch WORD current date format (see #03296) 0Eh WORD current time format (see #03297) 10h WORD collating sequence 00h numbers first, 01h letters first, 02h ASCII 12h 80 BYTEs name of picture file 62h 30 BYTEs name 80h 30 BYTEs title 9Eh 28 BYTEs company name BAh WORD number of languages BCh 6 BYTEs available languages C2h 66 BYTEs language menu 104h 2 BYTEs ASCIZ date separator 106h 2 BYTEs ASCIZ time separator 108h BYTE date order 109h BYTE use 24 hour time? 10Ah 16 BYTEs currency string 11Ah WORD currency string position (00h prefix, 01h suffix) 11Ch WORD keyboard (see #03298) 11Eh WORD printer baud rate 00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200 120h WORD printer driver code 00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter 122h WORD printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1) 124h WORD system manager interrupt (60h by default) 126h WORD code page (01h CP850, 02h CP437) 128h WORD active exit key 12Ah WORD active menu key 12Ch WORD active CHAR key toggle 12Eh 6 BYTEs alarm (Table 03295) Values for HP 95LX punctuation format: code decimal arg thousands 00h . , , 01h , . . 02h . ; ; 03h , ; . 04h . , " " 05h , . " " 06h . ; " " 07h , ; " " (Table 03296) Values for HP 95LX current date format: 00h dd-mmm-yy 01h dd-mmm 02h mmm-yy 03h mm/dd/yy 04h dd/mm/yy 05h dd.mm.yy 06h yy-mm-dd 07h mm/dd 08h dd/mm 09h dd.mm 0Ah mm-dd (Table 03297) Values for HP 95LX current time format: 00h HH:MM:SS am/pm 01h HH:MM am/pm 02h HH:MM:SS 03h HH.MM.SS 04h HH,MM,SS 05h HHhMMmSSs 06h HH:MM 07h HH.MM 08h HH,MM 09h HHhMMm (Table 03298) Values for HP 95LX keyboard layout: 0001h Belgium 0002h French Canadian 0004h Denmark 0008h Finland 0010h French 0020h Finland 0040h Italy 0080h Netherlands 0100h Norway 0200h Portugal 0400h Spain 0800h Sweden 1000h Swiss French 2000h Swiss German 4000h United Kingdom 8000h USATop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS" DI = 0B0Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0B09hTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER" DI = 0B0Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0DhTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER" DI = 0B0Ch STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0DhTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER" DI = 0B0Dh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0ChTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME" DI = 0B0Eh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ??? DWORD pointer to ??? DWORD pointer to ??? Return: DX:AX -> ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR" DI = 0B0Fh STACK: 2 WORDs unused dummies (for calls from high level languages) Return: DX:AX -> system settings record (see #03294) STACK unchanged SeeAlso: INT 60/DI=0B09hTop
INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION DI = 0B10h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION DI = 0B11h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE DI = 0B12h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new parsing rule (see #03299) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0B13h (Table 03299) Values for HP 95LX date parsing rule: 01h day-month-year 02h month-day-year 03h year-month-day 04h "DMYO" 05h "MDYO" OR with 08h to get any yearTop
INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE DI = 0B13h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new parsing rule (see #03300) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0B12h (Table 03300) Values for HP 95LX time parsing rule: 01h HH:MM:SS (am/pm) 02h HH:MM:SS (24hr) 03h HHMM:SS (24hr) 04h HH:MM:SS.hh (24hr) 05h HH:MM (am/pm) 06h HH:MM (24hr) 07h HHMM (24hr)Top
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME" DI = 0B14h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER" DI = 0B15h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - OPEN PRINTER DI = 0C00h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03hTop
INT 60 u - HP 95LX System Manager - CLOSE PRINTER DI = 0C01h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged Note: relinquishes control of printer SeeAlso: INT 60/DI=0C00hTop
INT 60 u - HP 95LX System Manager - WRITE TO PRINTER DI = 0C02h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to data to be written WORD length of data Return: ??? STACK unchanged SeeAlso: INT 60/DI=0C00hTop
INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER DI = 0C03h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0C00hTop
INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER" DI = 0C04h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER" DI = 0C05h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT" DI = 0E00h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: #03301,INT 60/DI=0E01h,INT 60/DI=0E02h (Table 03301) Values for HP 95LX error code: 0000h successful FFF1h "E_BUSY" FFF2h timeout FFF3h framing error FFF4h parity error FFF5h overrun error FFF6h "E_EMPTY" FFF7h "E_CONECT" FFF8h not open FFF9h out of memory FFFAh buffer overflow FFFBh "E_NOFIT" FFFCh unsupported FFFDh "E_IVOPR" FFFEh "E_IVCHN" FFFFh "E_REOPEN"Top
INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL DI = 0E01h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to WORD buffer for comm channel handle WORD communications line number (01h-04h) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02hTop
INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL DI = 0E02h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle Return: ??? STACK unchanged SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01hTop
INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM" DI = 0E03h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER" DI = 0E04h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_DIAL" DI = 0E05h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL DI = 0E06h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle WORD reset options (see #03302) Return: ??? STACK unchanged Bitfields for HP 95LX reset options: Bit(s) Description (Table 03302) 0 reset line 1 flush transmit buffer 2 flush receive buffer 3 reset modem 4 reset receiver's ^S state 5 reset transmitter's ^S stateTop
INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP" DI = 0E07h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL DI = 0E08h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle DWORD pointer to data to be sent WORD option flags bit 0: send partial buffer bit 1: turn on receiver after sending DWORD pointer to WORD containing length of data to be sent Return: length WORD updated to contain number of bytes actually sent??? STACK unchanged SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0BhTop
INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE DI = 0E09h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD DWORD pointer to ??? WORD Return: ??? STACK unchanged SeeAlso: INT 60/DI=0E0AhTop
INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE DI = 0E0Ah STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle DWORD pointer to WORD to get receive buffer size DWORD pointer to WORD to get free bytes in receive buffer Return: ??? STACK unchanged SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0BhTop
INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL DI = 0E0Bh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle DWORD pointer to data buffer DWORD pointer to WORD (call) length of data buffer (ret) number of bytes received Return: ??? STACK unchanged SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0AhTop
INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD" DI = 0E0Ch STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_COMAND" DI = 0E0Dh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_BREAK" DI = 0E0Eh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON" DI = 0E0Fh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF" DI = 0E10h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR" DI = 0E11h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG" DI = 0E12h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_STATUS" DI = 0E13h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
DI = 0E14h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD comm channel handle
DWORD pointer to communications settings (see #03303)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E15h
Format of HP 95LX communications settings:
Offset Size Description (Table 03303)
00h BYTE dial type ('T' tone, 'P' pulse)
01h WORD baud rate divisor (115200/baud_rate)
03h BYTE parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
04h BYTE stop bits (00h one, 04h two)
05h BYTE data bits - 5
06h BYTE software handshake
01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
07h BYTE infrared (01h off, 02h on)
08h BYTE duplex (01h half, 02h full)
09h BYTE echo (01h echo, 02h no echo)
Top
INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS DI = 0E15h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to buffer for settings (see #03303) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0E14hTop
INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR" DI = 0E16h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ??? WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR" DI = 0E17h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - "M_ERRMSG" DI = 0F00h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD ??? DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX DI = 0F01h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ASCIZ title string Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "SHOWNAME" DI = 0F02h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX DI = 0F03h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to first line of message WORD length of first line DWORD pointer to second line of message WORD length of second line Return: ??? STACK unchanged SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09hTop
INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX DI = 0F04h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09hTop
INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR" DI = 0F05h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: DX:AX -> ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR" DI = 0F06h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: DX:AX -> ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR" DI = 0F07h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: DX:AX -> ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR" DI = 0F08h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX DI = 0F09h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to first line of message WORD length of first line DWORD pointer to second line of message WORD length of second line DWORD pointer to third line of message WORD length of third line Return: ??? STACK unchanged SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04hTop
INT 60 u - HP 95LX System Manager - DISABLE MACROS DI = 0F0Ah STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0F0BhTop
INT 60 u - HP 95LX System Manager - ENABLE MACROS DI = 0F0Bh STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 60/DI=0F0AhTop
INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS" DI = 0F0Ch STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_FORM_FT" DI = 0F0Dh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: DX:AX -> ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO" DI = 0F0Eh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: DX:AX -> ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE DI = 1005h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchanged SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301hTop
INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE" DI = 1200h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR" DI = 1201h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? Return: DX:AX -> ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR" DI = 1202h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: DX:AX -> ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "INIT_SYSMGR_RSRCS" DI = 1203h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM DI = 1300h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - DISPLAY HELP DI = 1301h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_HELP_KEY" DI = 1302h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_HELP_TERM" DI = 1303h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - "M_ColInit" DI = 1400h STACK: 2 WORDs unused dummies (for calls from high level languages) Return: AX = ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_ColCpStr" DI = 1401h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_ColLicsStr" DI = 1402h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_ColLicsChar" DI = 1403h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_ColToLower" DI = 1404h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_ColCpSearch" DI = 1405h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? DWORD pointer to ??? WORD ??? WORD ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "M_ColToUpper" DI = 1406h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - "GrDispInit" DI = 1500h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispClear" DI = 1501h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispDot" DI = 1502h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispDraw" DI = 1503h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispFill" DI = 1504h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispRead" DI = 1505h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispString" DI = 1506h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispPan" DI = 1507h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispZoom" DI = 1508h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispSave" DI = 1509h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispRestore" DI = 150Ah STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchangedTop
INT 60 u - HP 95LX System Manager - "GrDispCorner" DI = 150Bh STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 u - HP 95LX System Manager - "CP_TO_LICS" DI = 1604h STACK: 2 WORDs unused dummies (for calls from high level languages) ??? Return: ??? STACK unchanged SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"Top
INT 60 - SYS_PROF.EXE - PROFILER STATUS AH = 00h Return: AX = 0000h profiling is off otherwise profiling is on Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia Issue 47 SeeAlso: AH=01h"SYS_PROF",AH=02h"SYS_PROF"Top
INT 60 - MDEBUG - GET STATUS AH = 00h DS:SI -> password or a null byte Return: AX = return code FFFEh password is invalid FFFDh display mode is invalid else successful ES = value of the monitor register SE DI = value of the monitor register OF CH = monitor color CL = interpreter color BH = monitor start line BL = interpreter start line AH = makecode of the hotkey AL = ASCII code of the hotkey DL = status of special keys (only SHIFT, ALT, CTRL) for the hotkey (coded as for the keyboard flag at 0040h:0017h) DH = basic process number for the communication with drivers process number for the display driver, DH+1 = process number for the command driver(s) DS:SI -> MDEBUG identification table (see #03304) Program: MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer, including a memory monitor, an interpreter, and a disassembler Notes: MDEBUG uses INT 60 by default, but may be directed to any of INT 60 through INT 67; the interrupt handler is preceded by the signature "USERINT" and is not chained if DS:SI points at a null byte, MDEBUG will prompt for a password if passwords are active; enough stack space must be provided for an INT 10h call (which MDEBUG uses while prompting for the password) SeeAlso: AH=02h"MDEBUG" Index: hotkeys;MDEBUG Format of MDEBUG identification table: Offset Size Description (Table 03304) -2 WORD entry offset 00h WORD CS of MDEBUG 02h DWORD old INT 08h vector 06h DWORD old INT 09h vector 0Ah DWORD address INT 16h routine used by MDEBUG 0Eh BYTE length of version string 0Fh N BYTEs version stringTop
INT 60 - RIFS - CLIENT - INSTALLATION CHECK AX = 0000h Return: AX = 1234h if installed CF clear Program: RIFS is the Remote Installable File System by "kyle" InstallCheck: test for the signature "RIFS" immediately preceding the interrupt handler Range: INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector SeeAlso: AX=0001h,AX=0005h,AX=0007h,AX=0008h,INT 2F/AX=5600hTop
INT 60 - RIFS - CLIENT - UNINSTALL AX = 0001h Return: CF clear if successful SeeAlso: AX=0000h,AX=0009hTop
INT 60 - RIFS - CLIENT - REMAP DRIVE AX = 0002h BH = local drive number BL = remote drive number Return: CF clear if successful CF set on error SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 21/AX=5F03h,INT 21/AX=5F05h"STARLITE"Top
INT 60 - RIFS - CLIENT - UNMAP DRIVE AX = 0003h BL = drive to unmap Return: CF clear if successful CF set on error SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 21/AX=5F04h,INT 21/AX=5F06h"STARLITE"Top
INT 60 - RIFS - CLIENT - UNMAP ALL DRIVES AX = 0004h Return: CF clear if successful CF set on error SeeAlso: AX=0000h,AX=0002h,AX=0003hTop
INT 60 - RIFS - CLIENT - GET TRANSLATION TABLE AX = 0005h Return: CF clear if successful ES:BX -> translation table CF set on error SeeAlso: AX=0000h,AX=0006h,AX=0007hTop
INT 60 - RIFS - CLIENT - GET STATISTICS TABLE AX = 0006h Return: CF clear if successful ES:BX -> statistics table CF set on error SeeAlso: AX=0000h,AX=0005h,AX=0007h,AX=000AhTop
INT 60 - RIFS - CLIENT - GET PORT TRANSLATION TABLE AX = 0007h Return: CF clear if successful CX = number of entries ES:BX -> port mapping table CF set on error SeeAlso: AX=0000h,AX=0005hTop
INT 60 - RIFS - SERVER - INSTALLATION CHECK AX = 0008h Return: CF clear if successful CF set on error InstallCheck: test for the signature "RIFS" immediately preceding the interrupt handler Range: INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector SeeAlso: AX=0000h,AX=0009h,AX=000Ah,AX=000BhTop
INT 60 - RIFS - SERVER - UNINSTALL AX = 0009h Return: CF clear if successful CF set on error SeeAlso: AX=0001h,AX=0008hTop
INT 60 - RIFS - SERVER - GET STATISTICS TABLE AX = 000Ah Return: CF clear if successful ES:BX -> statistics table CF set on error SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000BhTop
INT 60 - RIFS - SERVER - RESET AX = 000Bh Return: CF clear if successful CF set on error Note: closes all open files SeeAlso: AX=0008h,AX=0009hTop
INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS AH = 01h DS:SI -> password or a null byte Return: AX = return code FFFEh password is invalid FFFDh display mode is invalid else successful ES:DI point to the help registers of MDEBUG ES:DI-02h -> R0 (WORD) ES:DI -> R1 (WORD) ES:DI+02h -> R2 (WORD) ES:DI+04h -> R3 (WORD) ... ES:DI+0Eh -> R8 (WORD)Top
INT 60 - SYS_PROF.EXE - TURN PROFILING OFF AH = 01h Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia Issue 47 SeeAlso: AH=00h"SYS_PROF",AH=02h"SYS_PROF"Top
INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
AX = 01FFh
BX = handle returned by function 02h
Return: CF set on error
DH = error code (see #03305)
CF clear if successful
BX = version
CH = network interface class (see #03306)
DX = interface type (see #03306)
CL = number
DS:SI -> name
AL = driver functions supported
01h basic
02h basic and extended
05h basic and high-performance
06h basic, high-performance, and extended
FFh not installed
Note: the handle in BX is optional for drivers written to v1.07 or later of
the packet driver specification
(Table 03305)
Values for Packet Driver error code:
01h "BAD_HANDLE" invalid handle number
02h "NO_CLASS" no interfaces of the specified class found
03h "NO_TYPE" no interfaces of the specified type found
04h "NO_NUMBER" no interfaces of the specified number found
05h "BAD_TYPE" bad packet type
06h "NO_MULTICAST" interface does not support multicast messages
07h "CANT_TERMINATE" this packet driver cannot terminate
08h "BAD_MODE" invalid receiver mode
09h "NO_SPACE" insufficient space
0Ah "TYPE_INUSE" type accessed but never released
0Bh "BAD_COMMAND" bad command
0Ch "CANT_SEND" packet could not be sent
0Dh "CANT_SET" hardware address could not be changed
0Eh "BAD_ADDRESS" hardware address has a bad length or format
0Fh "CANT_RESET" could not reset interface
(Table 03306)
Values for Packet Driver network interface classes/types:
Class 01h Ethernet/IEEE 802.3
01h 3COM 3C500/3C501
02h 3COM 3C505
03h MICOM-Interlan NI5010
04h BICC Data Networks 4110
05h BICC Data Networks 4117
06h MICOM-Interlan NP600
08h Ungermann-Bass PC-NIC
09h Univation NC-516
0Ah TRW PC-2000
0Bh MICOM-Interlan NI5210
0Ch 3COM 3C503
0Dh 3COM 3C523
0Eh Western Digital WD8003
0Fh Spider Systems S4
10h Torus Frame Level
11h 10Net Communications
12h Gateway PC-bus
13h Gateway AT-bus
14h Gateway MCA-bus
15h IMC PCnic
16h IMC PCnic II
17h IMC PCnic 8-bit
18h Tigan Communications
19h Micromatic Research
1Ah Clarkson "Multiplexor"
1Bh D-Link 8-bit
1Ch D-Link 16-bit
1Dh D-Link PS/2
1Eh Research Machines 8
1Fh Research Machines 16
20h Research Machines MCA
21h Radix Microsystems EXM1 16-bit
22h Interlan Ni9210
23h Interlan Ni6510
24h Vestra LANMASTER 16-bit
25h Vestra LANMASTER 8-bit
26h Allied Telesis PC/XT/AT
27h Allied Telesis NEC PC-98
28h Allied Telesis Fujitsu FMR
29h Ungermann-Bass NIC/PS2
2Ah Tiara LANCard/E AT
2Bh Tiara LANCard/E MC
2Ch Tiara LANCard/E TP
2Dh Spider Communications SpiderComm 8
2Eh Spider Communications SpiderComm 16
2Fh AT&T Starlan NAU
30h AT&T Starlan-10 NAU
31h AT&T Ethernet NAU
32h Intel smart card
33h Xircom Packet Adapter
34h Aquila Ethernet
35h Novell NE1000
36h Novell NE2000
37h SMC PC-510
38h AT&T Fiber NAU
39h NDIS to Packet Driver adapter
3Ah Racal-InterLan ES3210
3Bh General Systems ISDN simulated Ethernet
3Ch Hewlett-Packard
3Dh IMC EtherNic-8
3Eh IMC EtherNic-16
3Fh IMC EtherNic-MCA
40h NetWorth EtherNext
41h Dataco Scanet
42h DEC DEPCA
43h C-Net
44h Gandalf LANLine
45h Apricot built-in
46h David Systems Ether-T
47h ODI to Packet Driver adapter (see also INT 2F/AX=5100h)
48h AMD Am21110-16
49h Intel ICD Network controller family
4Ah Intel ICD PCL2
4Bh Intel ICD PCL2A
4Ch AT&T LANPacer
4Dh AT&T LANPacer+
4Eh AT&T EVB
4Fh AT&T StarStation
50h SLIP simulated ethernet
51h Racal-Interlan NIA310
52h Racal-Interlan NISE
53h Racal-Interlan NISE30
54h Racal-Interlan NI6610
55h Ethernet over IP/UDP
56h ICL EtherTeam 16
57h David Systems
58h NCR WaveLAN
59h Thomas Contrad TC5045
5Ah Russ Nelson's Parallel Port driver
5Bh Intell EtherExpress 16
5Ch IBMTOKEN
5Dh Zenith Z-Note
5Eh 3Com 3C509
5Fh Mylex LNE390
60h Madge Smart Ringnode
61h Novell NE2100
62h Allied Telesis 1500
63h Allied Telesis 1700
64h Fujitsu EtherCoupler
Class 02h ProNET-10
01h Proteon p1300
02h Proteon p1800
Class 03h IEEE 802.5/ProNet-4 (without expanded RIFs)
01h IBM Token-Ring Adapter
02h Proteon p1340
03h Proteon p1344
04h Gateway PC-bus
05h Gateway AT-bus
06h Gateway MCA-bus
07h Madge board
39h NDIS to Packet Driver adapter
47h ODI to Packet Driver adapter
Class 04h Omninet
Class 05h Appletalk
01h ATALK.SYS adapter
Class 06h Serial Line
01h Clarkson 8250-SLIP
02h Clarkson "Multiplexor"
03h Eicon Technologies
Class 07h StarLAN (subsumed by Ethernet class)
Class 08h ARCnet
01h Datapoint RIM
Class 09h AX.25
01h Ottawa PI card
02h Eicon Technologies
Class 0Ah KISS
Class 0Bh IEEE 802.3 with 802.2 headers
types same as for class 01h
Class 0Ch FDDI with 802.2 headers
01h Western Digital
02h Frontier Technology
Class 0Dh Internet X.25
01h Western Digital
02h Frontier Technology
03h Emerging Technologies
04h The Software Forge
05h Link Data Intelligent X.25
06h Eicon Technologies
Class 0Eh N.T. LANSTAR (encapsulating DIX Ethernet)
01h NT LANSTAR/8
02h NT LANSTAR/MC
Class 0Fh SLFP (MIT serial specification)
01h MERIT
Class 10h PPP (Point-to-Point Protocol)
01h 8250/16550 UART
02h Niwot Networks synch
03h Eicon Technologies
Class 11h 802.5 with expanded RIFs
types same as for class 3
Class 12h reserved for LCP/NCPs
Note: class and type numbers are cleared through FTP Software
Top
INT 60 - MDEBUG - SET STATUS
AH = 02h
DS:SI -> password or a null byte
ES = new value for the register SE
DI = new value for the register OF
CH = new monitor color if nonzero
CL = new interpreter color if nonzero
BH = new monitor start line if nonzero
BL = new interpreter start line if nonzero
AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
if nonzero
DH = if nonzero, new basic process number for communication with the
drivers (DH = multiplex number for the display driver,
DH+1 = multiplex number for the command driver or drivers)
Return: AX = return code
FFFFh call not allowed
FFFEh password is invalid
FFFDh display mode is invalid
0000h successful, status changed
else AL = error reasons (see #03307)
Note: the values of the registers SE and OF are always changed, the other
values are only changed if they are valid
SeeAlso: AH=00h"MDEBUG"
Index: hotkeys;MDEBUG
Bitfields for MDEBUG error reasons:
Bit(s) Description (Table 03307)
0 invalid monitor start line
1 invalid interpreter start line
2 invalid hotkey
3 invalid process number
4-7 reserved
Top
INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE AH = 02h AL = interface class BX = interface type DL = interface number DS:SI -> type CX = length of type (0000h for all packets) ES:DI -> receiver function (see #03308) Return: CF set on error DH = error code (see #03305) CF clear if successful AX = handle SeeAlso: AH=03h"FTP" (Table 03308) Values packet driver receiver is called with when a packet is received: AX = subfunction 00h get packet buffer CX = buffer length DX = lookahead length (v1.10+) DS:SI -> lookahead buffer if DX nonzero (v1.10+) DI = error flags (class dependent) (v1.10+) Return: ES:DI -> packet buffer 0000h:0000h means throw away packet CX = size of buffer (v1.10+), may be smaller than incoming data 01h copy completed DS:SI -> buffer CX = bytes actually copied (v1.10+) BX = handleTop
INT 60 - SYS_PROF.EXE - TURN PROFILING ON AH = 02h Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia Issue 47 SeeAlso: AH=00h"SYS_PROF",AH=01h"SYS_PROF"Top
INT 60 - MDEBUG - POP UP AH = 03h DS:SI -> password or a null byte ES -> new value for the register SE DI -> new value for the register OF Return: AX = return code (see #03309) SeeAlso: AH=04h"MDEBUG" (Table 03309) Values for MDEBUG return code: FFFFh call not allowed FFFEh password is invalid FFFDh display mode is invalid else successfulTop
INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE AH = 03h BX = handle Return: CF set on error DH = error code (see #03305) CF clear if successful SeeAlso: AH=02h"FTP"Top
INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE AH = 03h Return: ES:BX -> profiling table Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia Issue 47 SeeAlso: AH=04h"SYS_PROF"Top
INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET AH = 04h DS:SI -> buffer CX = length Return: CF set on error DH = error code (see #03305) CF clear if successful Note: the buffer may be modified immediately upon return from this call SeeAlso: AH=0BhTop
INT 60 - MDEBUG - POP UP AH = 04h DS:SI -> password or a null byte Return: AX = return code (see #03309) SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"Top
INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE AH = 04h Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia Issue 47 SeeAlso: AH=03h"SYS_PROF"Top
INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE AH = 05h BX = handle (optional for v1.10+) Return: CF set on error DH = error code (see #03305) CF clear if successfulTop
INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS AH = 05h DS:SI -> password or a null byte BL = new value for the semaphor of MDEBUG 00h enable popup of MDEBUG else disable popup of MDEBUG Return: AX = return code FFFEh password is invalid FFFDh display mode is invalid else successful BL = old value of the semaphor of MDEBUG BH = old value of the INT 08h semaphor (this semaphor is always reset after this function)Top
INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS AH = 06h BX = handle (optional for v1.10+) ES:DI -> buffer CX = length Return: CF set on error DH = error code (see #03305) CF clear if successful CX = length Note: copies the local net address associated with the handle into the bufferTop
INT 60 - MDEBUG - GET PASSWORD STATUS AH = 06h Return: AL = status 00h password inactive 01h password activeTop
INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE AH = 07h BX = handle (optional for v1.10+) Return: CF set on error DH = error code (see #03305) CF clear if successfulTop
INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG AH = 07h Return: AL = active part for the next popup session of MDEBUG: bit 0: the next popup session will start in the interpreter rather than in the monitor bit 1: the next popup session will sart in the online-help SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"Top
INT 60 - MDEBUG - UNUSED AH = 08h-FFh Return: AX = FFFChTop
INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS AH = 0Ah Return: CF set on error DH = error code (0Bh) (see #03305) CF clear if successful ES:DI -> parameter table (see #03310) Format of packet driver parameter table: Offset Size Description (Table 03310) 00h BYTE major revision of packet driver spec driver conforms to 01h BYTE minor revision of packet driver spec 02h BYTE length of this structure in bytes 03h BYTE length of a MAC-layer address 04h WORD maximum transfer unit, including MAC headers 06h WORD buffer size for multicast addr 08h WORD number of receive buffers (one less than back-to-back MTU rcvs) 0Ah WORD number of transmit buffers 0Ch WORD interrupt number to hook for post-EOI processing, 00h=noneTop
INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET AH = 0Bh DS:SI -> buffer CX = length of buffer ES:DI -> FAR function to call when buffer becomes available (see #03311) Return: CF set on error DH = error code (0Bh,0Ch) (see #03305) CF clear if successful Notes: unlike function 04h, the buffer is not available for modification as soon as the call returns; the buffer may be queued by the driver and not processed until later this function has been dropped from v1.10+ of the specification and replaced by function 0Ch SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver" (Table 03311) Values packet driver completion function is called with: AX = result 00h copy OK nonzero error ES:DI -> buffer passed to INT 60/AH=0Bh callTop
INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET AH = 0Ch ES:DI -> pointer to IOCB (see #03312) Return: CF set on error DH = error code (see #03305) CF clear if successful SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver" Format of packet driver IOCB: Offset Size Description (Table 03312) 00h DWORD pointer to buffer 04h WORD length of buffer 06h BYTE flags bit 0: packet driver is finished with IOCB bit 1: application requests upcall when driver completes 07h DWORD function address for upcall (see #03313) 0Bh 4 BYTEs future gather write 0Fh BYTE ??? 10h 8 BYTEs private driver workspace (Table 03313) Values completion function is called with: ES:DI -> IOCB passed to INT 60/AH=0ChTop
INT 60 - Banyan VINES, 3com - GET STATION ADDRESS AH = 0Ch Return: AL = status 00h successful ES:SI -> 6-byte station address 02h semaphore service is unavailableTop
INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE AH = 0Dh ES:DI -> IOCB Return: CF set on error DH = error code (see #03305) CF clear if successful SeeAlso: AH=0Ch"Packet Driver"Top
INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT AH = 11h AL = drive number or 0 DX = number of seconds to wait ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name Return: AL = status (see #03314) SeeAlso: AH=12h,AH=13h (Table 03314) Values for 3com semaphore status: 00h successful 01h timeout 02h server not responding 03h invalid semaphore name 04h semaphore list is full 05h invalid drive ID 06h invalid Ethernet address 07h not logged in 08h write to network failed 09h semaphore already logged for this CPUTop
INT 60 - 3com, 10NET, Banyan VINES - LOCK AH = 12h AL = drive number or 00h ES:SI = Ethernet address or 0000h:0000h DS:BX -> 31-byte ASCIZ semaphore name Return: AL = status (see also #03314) 01h semaphore currently locked by another PC Note: unlike function 11h, this function returns immediately SeeAlso: AH=11h,AH=13hTop
INT 60 - 3com, 10NET, Banyan VINES - UNLOCK AH = 13h AL = drive number or 00h ES:SI = Ethernet address or 0000h:0000h DS:BX -> 31-byte ASCIZ semaphore name Return: AL = status (see also #03314) 01h semaphore not locked SeeAlso: AH=11h,AH=12hTop
INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE AH = 14h BX = handle (optional for v1.10+) CX = mode (see #03315) Return: CF set on error DH = error code (01h,08h) (see #03305) CF clear if successful SeeAlso: AH=15h (Table 03315) Values for packet driver receive mode: 01h turn off receiver 02h receive only packets sent to this interface 03h mode 2 plus broadcast packets 04h mode 3 plus limited multicast packets 05h mode 3 plus all multicast packets 06h all packets 07h raw mode for serial line only (v1.10+)Top
INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE AH = 15h BX = handle (optional for v1.10+) Return: CF set on error DH = error code (01h) (see #03305) CF clear if successful AX = receive mode (see #03315) SeeAlso: AH=14hTop
INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST AH = 16h ES:DI -> multicast list CX = length of list in bytes Return: CF set on error DH = error code (06h,09h,0Eh) (see #03305) CF clear if successful SeeAlso: AH=17hTop
INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST AH = 17h Return: CF set on error DH = error code (06h,09h) (see #03305 at AX=01FFh) CF clear if successful ES:DI -> multicast addresses (do not modify) CX = bytes of multicast addresses currently in use SeeAlso: AH=16hTop
INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS AH = 18h BX = handle (optional for v1.10+) Return: CF set on error DH = error code (01h) (see #03305) CF clear if successful DS:SI -> statistics (see #03316) Format of packet driver statistics: Offset Size Description (Table 03316) 00h DWORD packets in 04h DWORD packets out 08h DWORD bytes in 0Ch DWORD bytes out 10h DWORD errors in 14h DWORD errors out 18h DWORD packets droppedTop
INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS AH = 19h ES:DI -> address CX = length of address Return: CF set on error DH = error code (0Dh,0Eh) (see #03305) CF clear if successful CX = lengthTop
INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES AH = 1Ah DS:SI -> buffer CX = length of buffer Return: CF set on error DH = error code (see #03305 at AX=01FFh) CF clear if successful SeeAlso: AH=1ChTop
INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED AH = 1Bh Return: CF set on error DH = error code (see #03305) CF clear if successful SeeAlso: AH=1ChTop
INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED AH = 1Ch DS:SI -> buffer CX = length of buffer DX = timeout in clock ticks Return: CF set on error DH = error code (see #03305 at AX=01FFh) CF clear if successful CX = number of bytes transferred to buffer SeeAlso: AH=1Ah,AH=1BhTop
INT 60 U - Agfa TTSR.EXE - API AX = 899Bh BX = function 0001h installation check Return: BX = 899Bh if installed 0002h ??? 0003h ??? ??? Return: ??? Note: TTSR.EXE is found in FotoLook 2.09 (16-bit), which is available from agfa.com; it appears to provide DOS ASPI support !!!Top
INT 60 - AccessDOS - API AH = ADh AL = function E1h ??? Return: AX = ??? E2h get configuration Return: BX:AX -> configuration data Program: AccessDOS is a public domain TSR developed at The Trace Research and Development Center which provides extensions for keyboard, mouse, and sound access by the visually, hearing, or motor-control impaired. InstallCheck: test for the signature "ACCESSv1.00" beginning three bytes past the start of the interrupt handler (this same signature is also present in v1.10) Range: INT 60 to INT 66, selected by scanning for 0000h:0000h vectorTop
INT 60 - FTP Packet Driver - Crynwr Software - AUTOSELECT TRANSCEIVER AH = E9h ??? Return: ???Top
INT 61 - reserved for user interruptTop
INT 61 - Atari Portfolio - EXTENDED BIOS Desc: provides subfunctions such as turning off the machine, accessing internal variables, and mapping memory cards SeeAlso: INT 60"Atari",AH=00h"Portfolio",AH=08h"Portfolio",AH=0Dh"Portfolio" SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio" SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio" SeeAlso: AH=30h"Portfolio"Top
INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!) Desc: the low word of this vector contains the segment of the RAM data area to be used by the expansion ROM at F400h:0000h, and the high word contains the length of the data area; this segment and size are both set to 0000h if no ROM is installed at F400h:0000h SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional" SeeAlso: INT 66"TI Professional PC"Top
INT 61 - HP 95LX System Manager - LOAD DS SeeAlso: INT 0F"HP 95LX",INT 60/DI=0102h"HP 95LX"Top
INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP SeeAlso: INT 60"JPI"Top
INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA Desc: this vector stores the second four bytes of the parameter table for hard disk 0 SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"Top
INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE BX:DX -> control block SeeAlso: INT 67"Sangoma"Top
INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE Note: the virus copies the original INT 21h vector into INT 61h SeeAlso: INT 21/AH=00h,INT 21/AH=25h,INT 60"VIRUS",INT 6B"VIRUS"Top
INT 61 - PC-Magazin - PAGE, SWAPx details not yet available Program: PAGE and SWAPx are utilities from PC-Magazin, the German edition of PC Magazine, issue 47/85, page 31 SeeAlso: INT 66"INCA"Top
INT 61 - TCPOpen kernel - API ES:BX -> request packet (see #03317) Program: TCPOpen is a TCP/IP protocol stack by Lanera Range: INT 60 to INT 7F, selected by configuration file Note: there does not appear to be an installation check, though function FFFFh can be used to verify that the software is indeed functioning Format of TCPOpen request packet: Offset Size Description (Table 03317) 00h 8 BYTEs ??? 08h WORD function number (0000h-001Ah or FFF9h-FFFFh) 0Ah WORD ??? 0Ch 2 BYTEs ??? 0Eh WORD (ret) return code 10h 2 BYTEs ??? 12h WORD ??? 14h WORD (ret) 0001h if requested function complete 16h WORD (ret) ??? 18h 6 BYTEs ??? 1Eh DWORD -> ??? 22h WORD ??? or 0000h 24h WORD (ret) ??? SeeAlso: #03318 (Table 03318) Call TCPOpen Function FFFFh: installation verification Return: offset 10h = BEEFh offset 14h = 0001h offset 24h = ??? Index: installation check;TCPOpen kernelTop
INT 61 - XFS v1.76 - XFSKRNL.EXE - API AX = function 8000h installation check??? Return: AX = 0000h 8001h ??? ES:DI -> DWORD ??? Return: AX = status??? 8002h ??? BX = ??? CX = ??? ES:DI -> ??? Return: AX = status??? 8003h ??? BX = ??? CX = ??? ES:DI -> ??? Return: AX = status??? 8004h ??? BX = ??? Return: AX = status??? 8005h wait until ??? Return: DX:AX = ??? 8006h get ??? Return: DX:AX -> ??? record 8007h set IP address??? (or htonl/ntohl) DX:BX = IP address??? Return: DX:AX = byte-swapped IP address 8008h set IP address??? (or htonl/ntohl) DX:AX = IP address??? Return: DX:AX = byte-swapped IP address 8009h ??? ES:DI -> ??? Return: DX:AX = ??? 800Ah ??? 800Bh ??? Return: DX:AX = ??? 800Ch ??? 800Dh ??? 800Eh ??? 800Fh ??? 8010h get ??? record Return: DX:AX -> ??? record 8011h ??? 8012h ??? BX = ??? Return: DX:AX = ??? 8013h get ??? record Return: DX:AX -> ??? record 8014h ??? ES:DI -> ??? Return: nothing 8015h get ??? record Return: DX:AX -> 8-byte ??? record 8016h get ??? record Return: DX:AX -> 6-byte ??? record 8017h ??? ES:DI -> ??? Return: DX:AX = ??? 8018h get ??? record Return: DX:AX -> ??? record 8019h get ??? record Return: DX:AX -> 14-byte ??? record 801Ah get ??? record Return: DX:AX -> ??? record (max 98 bytes) 801Bh get ??? record Return: DX:AX -> ??? record 801Ch ??? Return: nothing 801Dh get ??? Return: AL = ??? 801Eh ??? Return: AX = ??? 801Fh uninstall Return: AX = status 0000h successful other interrupt which could not be released AX = other Return: AX:BX = ??? (0000h:0000h by default) Program: XFS is a shareware Network File System client by Robert Juhasz Range: INT 60 to INT 65, selected by scanning for two consecutive free vectors and hooking the first SeeAlso: INT 62"XFS"Top
INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface AH = system call number (also see entries below) 01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+) 02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+) Return: CF clear if successful CF set on error AL = basic error (see #03319) AH = suberror number (see #03320,#03321) InstallCheck: test for the signature "TCPTSR" three bytes beyond the start of the interrupt handler Range: INT 20h to INT E0h, selected by configuration BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values greater than 54h in AH may crash the system. Other kernels may have this bug as well. SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h Index: installation check;PC/TCP (Table 03319) Values for PC/TCP error code: 00h "NET_NOERR" successful 01h "NET_ERR_INUSE" protocol or socket already in use 02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH) 03h "NET_ERR_NOMEM" out of memory 04h "NET_ERR_NOTNETCONN" not a network descriptor 05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor 06h "NET_ERR_BADPKT" illegal or corrupted packet 07h "NET_ERR_NOHOST" no host bound to specified connection 08h "NET_ERR_CANTOPEN" unable to open file 09h "NET_ERR_NET_UNREACHABLE" network is unreachable 0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see #03320) 0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable 0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable 0Dh "NET_ERR_TIMEOUT" operation timed out 0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name 0Fh "NET_ERR_NOSERVERS" no name servers configured 10h "NET_ERR_SERVER_ERR" bad reply from name server Subcodes: 0= no error, 1 = Host unreachable 11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address structure is zero 12h "NET_ERR_BADARG" invalid argument 13h "NET_ERR_EOF" foreign host closed its end of connection 14h "NET_ERR_RESET" connection has been reset 15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection with no data available 16h "NET_ERR_UNBOUND" insufficient resources to do operation 17h "NET_ERR_NODESC" could not allocate network descriptor 18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call 19h "NET_ERR_CANTBROADCAST" unable to broadcast 1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established 1Bh kernel busy, try again later 1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams) (see #03321) ---v2.1+--- 1Dh "NET_ERR_TERMINATING" internal kernel fatal error 1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config) 1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified 20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration 21h "NET_ERR_EMM" expanded memory error 22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running) 23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt 24h "NET_ERR_NOQIOS" ran out of resources; try again later 25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set (Table 03320) Values for subcodes of PC/TCP error 0Ah "NET_ERR_HOST_UNREACHABLE": 00h no error 01h host unreachable 02h ARP failed 03h hardware failure 04h link failure 05h no route 06h gateway down SeeAlso: #03319,#03321 (Table 03321) Values for subcodes of PC/TCP error 1Ch "NET_ERR_ICMPMESG": 07h unrecognised 08h can't fragment 09h srcr_fail 0Ah source quench 0Bh time exceeded 0Ch parameter problem 0Dh admin_prohib. see also code 0Ah SeeAlso: #03319,#03320Top
INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION AH = 00h DS:SI -> 216-byte buffer for network debugging information (see #03322) Return: CF clear AX = 0000h buffer filled Notes: this call is not documented by FTP, Inc. for any version most of the information returned by this call is available via the documented get_kernel_info or net_info commands. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=2Ah"PC/TCP" Format of network debugging information: Offset Size Description (Table 03322) 00h DWORD number of interrupts 04h DWORD receive buffer low-water mark 08h DWORD transmit buffer low-water mark 0Ch DWORD number of packets received 10h DWORD number of packets transmitted 14h DWORD total receive errors 18h DWORD total transmit errors 1Ch 4 BYTEs ??? 20h DWORD receive resets 24h DWORD transmit resets 28h DWORD number of "runts" received 2Ch DWORD number of alignment errors on received packets 30h DWORD number of CRC errors on received packets 34h DWORD number of parity errors on received packets 38h DWORD number of receive overflow errors 3Ch DWORD number of oversized packets received 40h DWORD number of packets lost due to lack of buffers 44h DWORD receive timeouts 48h 32 BYTEs ??? 68h DWORD number of transmit collisions 6Ch DWORD number of transmit timeouts 70h DWORD number of transmit underflows 74h DWORD number of lost "crs" on transmit 78h DWORD number of times heartbeat failed on transmit 7Ch 24 BYTEs ??? 94h WORD free packet buffers 96h WORD total packet buffers 98h WORD minimum number of packet buffers free since kernel started 9Ah 24 BYTEs ??? B2h DWORD pointer to TCP connection list??? B6h DWORD pointer to IP routing table??? BAh 30 BYTEs ???Top
INT 61 - Banyan VINES - CALL A SERVICE
AH = 00h
AL = service ID (1..16)
other registers vary by service
Return: AX = status (see #03325)
Desc: Calls an adapter driver or redirector service. The service handler
pointers are stored at offset 0010h in the code segment of the
BANV interrupt handler (see #03323).
Note: Banyan can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four
bytes immediately preceding the interrupt handler
SeeAlso: AH=01h,AH=03h
Format of the BANV code segment (revision 5.53):
Offset Size Description (Table 03323)
00h 16 BYTEs reserved
10h 16 DWORDs far pointers to the service handlers (0 = not installed)
50h DWORD far pointer to last called service
54h WORD VINES revision
56h DWORD VINES revision long
5Ah WORD VINES revision (lower bound)
5Ch DWORD VINES revision (lower bound) long
60h WORD VINES revision (upper bound)
62h DWORD VINES revision (upper bound) long
66h WORD end of PCCONFIG area
68h WORD start of PCCONFIG area
6Ah 4 BYTEs BANV interrupt identifier ("BANV")
6Eh N BYTEs BANV interrupt service
SeeAlso: #03324
Top
INT 61 - Atari Portfolio - SERVICE INITIALIZATION AH = 00h Return: nothing Note: applications using any Portfolio INT 61 calls should call this function exactly once at startup SeeAlso: AH=07h"Portfolio",AH=09h"Portfolio",AH=0Dh"Portfolio" SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio" SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio" SeeAlso: AH=30h"Portfolio"Top
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY AX = 0000h BX = zoom factor (0-7) Desc: zooms the display based on the given zoom factor Notes: INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0001h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA" SeeAlso: INT 16/AH=FFh"OPTIMA"Top
INT 61 - Banyan VINES - INTERNAL VINES SOCKET API (NEAR DATA) AX = 0001h DS = 0001h (to distinguish from alternate AX=0001h socket interface) CX:BX -> internal communications control block (see #03324) DX = caller's data segment Return: AX = status 0000h successful 0099h invalid operation 00A5h resource not available Desc: StreetTalk access with session handles Range: INT 60 to INT 66 Notes: This service is handled by the adapter driver The request dispatch table contains dummy entries for subfunctions 06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h (invalid operation) in the request block's result buffer in recent VINES releases, this interface is superseded by the AX=000Fh interface, which allows FAR parameter block pointers (refer to that function's entries for more details on individual subfunctions) some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for VINES 5.53) ignore the value in CX and use the value from DX instead SeeAlso: AX=000Fh Format of internal communications control block: Offset Size Description (Table 03324) 00h WORD subfunction number 02h WORD magic number (FEFEh) 04h WORD (ret) result, should be set to 0 before calling 06h WORD reserved (will be set to client DS) 08h WORD caller's code segment if function 000Bh, 0 else 0Ah WORD pointer to parameter block 0Ch WORD reserved (segment of parameter block; will be set to client DS) 0Eh WORD StreetTalk handle SeeAlso: #03323,#03444 at INT 61/AX=000FhTop
INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET AX = 0001h subfn 0001h DS:DX -> communications control block (function 0001h) (see #03326) Return: AX = status (0000h-0002h,0098h,009Eh-00A2h) (see #03325) Range: INT 60h to INT 66h Note: The Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh (Table 03325) Values for VINES status: 0000h successful 0001h service not installed 0002h invalid service ID 0003h invalid function 0004h-000Ah reserved for BANV interface errors 0097h invalid socket identifier 0098h resource already in use 009Bh destination node unreachable 009Ch message overflow 009Dh destination socket nonexistent 009Eh address family does not exist 009Fh socket type does not exist 00A0h protocol does not exist 00A1h no more sockets available 00A2h no more buffer space available 00A3h timeout 00A5h resource not available 00A6h internal communication failure 00B1h resource disconnect Format of VINES control block to open socket: Offset Size Description (Table 03326) 00h WORD 0001h 02h WORD pointer to argument block 04h WORD error return code 06h 4 BYTEs reserved SeeAlso: #03327 Format of VINES argument block for opening socket: Offset Size Description (Table 03327) 00h WORD pointer to 2-byte buffer for socket identifier 02h WORD address family 0003h Banyan 04h WORD socket type in address family 0003h 0001h IPC socket 0002h SPP socket 06h WORD protocol number FFFFh default 08h WORD pointer to 16-byte buffer for socket address (see #03328) 0Ah WORD local port number 0000h if service should assign transient port number 0001h to 01FFh well-known port number (assigned by Banyan) SeeAlso: #03326 Format of Banyan VINES IPC port: Offset Size Description (Table 03328) 00h WORD address family (always 0003h for Banyan ports) 04h 4 BYTEs network number (server's serial number) 06h WORD subnet number (0001h = server, 8000h-FFFEh = PC) 08h WORD port ID (0001h-01FFh for "well-known" ports) 0Ah BYTE hop count 0Bh 5 BYTEs filler SeeAlso: #03333Top
INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT AX = 0001h subfn 0002h DS:DX -> communications control block (function 0002h) (see #03329) Return: AX = status (0000h-0002h,0097h,009Bh-009Dh,00A2h,00A3h,00B1h) (see #03325) Range: INT 60h to INT 66h Note: The Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h Format of VINES control block for subfunction 0002h: Offset Size Description (Table 03329) 00h WORD 0002h 02h WORD pointer to argument block (see #03330) 04h WORD error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h) (see #03325) 06h 4 BYTEs reserved SeeAlso: #03334 Format of VINES argument block for subfunction 0002h: Offset Size Description (Table 03330) 00h WORD routine metric 02h WORD error return code 04h WORD socket identifier 06h WORD pointer to send buffer (see #03332) 08h WORD length of send buffer 0Ah WORD message request flags (see #03331) 0Ch 16 BYTEs socket address (see #03333) 1Ch WORD timeout value in multiples of 200ms 1Eh WORD connection identifier 20h WORD type of request 0001h send message 0002h establish a virtual connection 0003h terminate a virtual connection SeeAlso: #03329,#03335 Bitfields for message request flags: Bit(s) Description (Table 03331) 0 async request 1 reliable message 2 flush receive buffer on overflow 3 end of user message received 4 vectored request (if set, send buffer contains buffer descriptors) 5 connection-specific receive 6 change to connection-specific receive mode SeeAlso: #03330,#03335 Format of buffer descriptor: Offset Size Description (Table 03332) 00h WORD data segment 02h WORD buffer pointer 04h WORD buffer length 06h WORD character count SeeAlso: #03330 Format of VINES socket address for unreliable datagrams: Offset Size Description (Table 03333) 00h WORD 0003h address family 02h DWORD FFFFFFFFh network number 06h WORD FFFFh subnet number 08h WORD local port number 0Ah BYTE 00h-0Fh hop count 0Bh 5 BYTEs 0000h filler SeeAlso: #03328Top
INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION AX = 0001h subfn 0003h DS:DX -> communications control block (function 0003h) (see #03334) Return: AX = status (00-0Ah,97h,A2h,A3h) (see #03325) Range: INT 60h to INT 66h Note: The Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler SeeAlso: AX=0001h/SF=0002h Format of VINES control block for subfunction 0003h: Offset Size Description (Table 03334) 00h WORD 0003h 02h WORD pointer to argument block (see #03335) 04h WORD error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h) (see #03325) 06h 4 BYTEs reserved SeeAlso: #03329,#03335,#03337 Format of VINES argument block for subfunction 0003h: Offset Size Description (Table 03335) 00h WORD character count 02h WORD error return code 04h WORD socket identifier 06h WORD pointer to receive buffer (see #03336) 08h WORD length of receive buffer 0Ah WORD message request flags (see #03331) 0Ch 16 BYTEs socket address (see #03328) 1Ch WORD timeout value in multiples of 200ms 1Eh WORD connection identifier 20h WORD type of response 0001h message received 0002h virtual connection established 0003h virtual connection terminated SeeAlso: #03334,#03338 Format of buffer descriptor: Offset Size Description (Table 03336) 00h WORD data segment 02h WORD buffer pointer 04h WORD buffer length 06h WORD character count SeeAlso: #03335Top
INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET AX = 0001h subfn 0004h DS:DX -> communications control block (function 0004h) (see #03337) Return: AX = status (0000h-000Ah,0097h) (see #03325) Range: INT 60h to INT 66h Note: The Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh Format of VINES control block to close socket: Offset Size Description (Table 03337) 00h WORD 0004h 02h WORD pointer to argument block (see #03338) 04h WORD error return code (see #03325) 06h 4 BYTEs reserved SeeAlso: #03334,#03340 Format of VINES argument block for closing socket: Offset Size Description (Table 03338) 00h WORD socket identifier SeeAlso: #03335,#03337,#03341Top
INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION AX = 0001h subfn 0005h DS:DX -> communications control block (see #03340) Return: AX = status (0000h-000Ah,00A2h,00A3h) (see #03339) Desc: returns results for all asynchronous operations invoked from the data segment used for this call Range: INT 60h to INT 66h Notes: The Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h (Table 03339) Values for VINES function status: 0000h successful 0001h service not installed 0002h invalid service ID 0003h-000Ah reserved for BANV interface errors 00A2h no more buffer space available 00A3h timeout event Format of VINES control block for subfunction 0005h: Offset Size Description (Table 03340) 00h WORD 0005h 02h WORD pointer to argument block (see #03341) 04h WORD error return code 06h 4 BYTEs reserved SeeAlso: #03337,#03342 Format of VINES argument block for subfunction 0005h: Offset Size Description (Table 03341) 00h WORD pointer to WORD event pointer 02h WORD timeout in multiples of 200ms, FFFFh = infinite SeeAlso: #03338,#03340Top
INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE AX = 0001h subfn 0008h DS:DX -> communications control block (function 0008h) (see #03342) Return: AX = status 0000h successful 00A2h no more buffer space available Range: INT 60h to INT 66h Note: The Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h Format of VINES control block for subfunction 0006h: Offset Size Description (Table 03342) 00h WORD 0008h 02h WORD process type 0001h transient process 0002h resident process 04h WORD error return code 06h 4 BYTEs reserved SeeAlso: #03340,#03343Top
INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION AX = 0001h subfn 000Bh DS:DX -> communications control block (function 000Bh) (see #03343) Return: AX = status (00h-0Ah,A2h) (see #03339) Range: INT 60h to INT 66h Note: The Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h Format of VINES control block for subfunction 000Bh: Offset Size Description (Table 03343) 00h WORD 000Bh 02h WORD pointer to argument block (see #03344) 04h WORD error return code (see #03325) 06h 2 BYTEs reserved 08h WORD user CS register SeeAlso: #03342 Format of VINES argument block for subfunction 000Bh: Offset Size Description (Table 03344) 00h WORD pointer to user interrupt function (see #03345) 02h WORD pointer to user stack 04h WORD initial timeout value in multiples of 200ms, FFFFh = infinite SeeAlso: #03344 (Table 03345) Values FAR user function is invoked with: SS = DS = ES = segment of control block STACK: DWORD return address WORD argument pointer (sosend or sorec argument block) WORD error return code 0000h argument pointer is valid 00A3h timeoutTop
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW AX = 0001h BX = X coordinate to center CX = Y coordinate to center Desc: Positions the zoom window such that the specified window-relative coordinates appear as close as possible to the center of the display. Useful for scrolling and panning. Range: unknown Notes: INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA" SeeAlso: INT 16/AH=FFh"OPTIMA"Top
INT 61 - Banyan VINES - 3270 INTERFACE
AX = 0002h
BH = function number (see #03346)
DS:CX -> argument block (except BH=00h,1Ah) (see #03348)
Return: AX = status (see #03347)
Notes: Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
which is loaded first. The other interface will use AX=000Ah
Status codes greater than 63h indicate an inconsistency in the 3270/SNA
or 3270/BSC resident driver, which must be reloaded by the user
(Table 03346)
Values for VINES 3270 interface function number:
00h "pi2reset" reset 3270/SNA or 3270/BSC driver
02h "pi2bsc" (3270/BSC only)
03h "pi2get" get information stored in 3270 resident driver
04h "pi2put" store information in 3270 resident driver
05h "pi2gcur" get current screen position
07h "pi2sdat" send data keystroke
08h "pi2scom" send command keystroke
0Ah "pi2field" get field info for arbitrary screen positions
0Fh "pi2stat" get logical unit/device status
12h "pi2nlus" determine logical unit/device assignment
13h "pi2gate" specifies comm port address to gateway service
14h "pi2attach" attach a logical unit/device
15h "pi2sdev" save logical unit/device info in resident driver
(not supported in >3.0)
16h "pi2gdev" get device information (not supported in >3.0)
17h "pi2luinfo" get info about specific logical unit/device
18h "pi2gerr" get finer error detail
19h "pi2dhold" (3270/SNA only) holds a 3270 device
1Ah "pi2shut" release memory-resident module
1Ch "pi2sprof" save profile info in res driver (not supp in >3.0)
1Dh "pi2gprof" get prevsly stored profile info (not supp in >3.0)
(Table 03347)
Values for VINES 3270 status:
0000h successful
000Bh invalid parameter or data does not fit data area
000Ch another code path currently active in resident driver
000Dh operation currently not allowed
0032h encountered connection disconnect error
0033h encountered "sosend" completion error
0034h encountered "sosend" communication error
0035h attach request refused. extended error info via "pi2gerr":
01h resource unavailable
02h invalid type
03h version mismatch
04h invalid logical unit number
05h error during ARL processing
06h no access for user
0071h encountered "sosock" error
0072h encountered unrecognizable error
0073h encountered "sowait" error (extended info via "pi2gerr")
0074h encountered invalid type-of-request on "sowait"
0075h encountered "sorec" error (extended info via "pi2gerr")
0076h encountered "sorec" completion error (ext info via "pi2gerr")
0077h encountered connection request
0078h encountered unrecognizable data
0079h encountered unknown connection ID (ext info via "pi2gerr")
SeeAlso: #03325
Format of argument block for BH=03h,04h:
Offset Size Description (Table 03348)
00h WORD size of data area (max 256)
02h N BYTEs data area
SeeAlso: #03349,#03350,#03351
Format of argument block for BH=05h:
Offset Size Description (Table 03349)
00h WORD logical unit/device number
02h WORD pointer to WORD buffer for cursor index
04h WORD pointer to BYTE buffer for current field attribute
SeeAlso: #03348,#03350,#03351
Format of argument block for BH=07h:
Offset Size Description (Table 03350)
00h WORD logical unit/device number
02h WORD ASCII data byte
04h WORD pointer to WORD count of characters which will need updating
SeeAlso: #03348,#03349,#03351
Format of argument block for BH=08h:
Offset Size Description (Table 03351)
00h WORD logical unit/device number
02h WORD 3270 keystroke (see #03352)
SeeAlso: #03348,#03349,#03350,#03353
(Table 03352)
Values for 3270 keystroke:
0000h Enter
0001h Clear
0002h PA1
0003h PA2
0004h PA3
0005h PF1
...
001Ch PF24
001Dh CSELECT (cursor select)
001Eh Insert
001Fh Delete
0020h EOField
0021h EINPUT (erase input)
0022h Reset
0023h Attention
0024h SysReq
0025h Duplicate
0026h Fieldmark
0027h Home
0028h NextLine
0029h Tab
002Ah BackTab
002Bh cursor up
002Ch cursor down
002Dh cursor right
002Eh cursor left
002Fh double cursor right
0030h double cursor left
0031h PRINT
0032h CANCEL
0033h Backspace
Format of argument block for BH=0Ah:
Offset Size Description (Table 03353)
00h WORD logical unit/device number
02h WORD screen index
04h WORD pointer to WORD buffer for field length
06h WORD pointer to WORD buffer for offset in screen of field start
SeeAlso: #03351,#03354
Format of argument block for BH=0Fh:
Offset Size Description (Table 03354)
00h WORD logical unit/device number
02h WORD clear mask (clear these bits of status after returning status)
04h WORD pointer to WORD buffer for device status (see #03355)
SeeAlso: #03353,#03356
Bitfields for Banyan 3270 device status:
Bit(s) Description (Table 03355)
10 status modified
9 buffer modified
8 set cursor
5 sound alarm
1-0 size of print line for printer logical units
00 unformatted line
01 40-character line
10 64-character line
11 80-character line
Format of argument block for BH=12h:
Offset Size Description (Table 03356)
00h WORD pointer to WORD buffer for number of logical units or devices
02h WORD pointer to WORD buffer for version number
04h WORD pointer to 64-byte buffer for logical unit/device list
SeeAlso: #03354,#03357
Format of argument block for BH=13h:
Offset Size Description (Table 03357)
00h 16 BYTEs communications port address (see #03328)
SeeAlso: #03356,#03358
Format of argument block for BH=14h:
Offset Size Description (Table 03358)
00h WORD logical unit/device number
0000h attach any free device of the specified type
02h WORD logical unit/device type
(3270/SNA) 01h, 02h, or 03h
(3270/BSC) 02h display
(3270/BSC) 03h printer
04h WORD pointer to WORD buffer for attached logical unit/device number
SeeAlso: #03357,#03359
Format of argument block for BH=16h:
Offset Size Description (Table 03359)
00h WORD pointer to 18-byte buffer for device block (see #03364)
first WORD must be set to desired logical unit/device number
SeeAlso: #03358,#03360
Format of argument block for BH=17h:
Offset Size Description (Table 03360)
00h WORD logical unit/device number
02h WORD pointer to information block in caller's DS (see #03365)
SeeAlso: #03359,#03361
Format of argument block for BH=18h:
Offset Size Description (Table 03361)
00h WORD pointer to WORD buffer for major error code
02h WORD pointer to WORD buffer for minor error code
SeeAlso: #03360,#03362
Format of argument block for BH=19h:
Offset Size Description (Table 03362)
00h WORD logical unit/device number
SeeAlso: #03361,#03363
Format of argument block for BH=1Ch,1Dh:
Offset Size Description (Table 03363)
00h WORD pointer to profile block in caller's DS (see #03368)
SeeAlso: #03348,#03362
Format of device block, argument block for BH=15h:
Offset Size Description (Table 03364)
00h WORD logical unit/device number
02h WORD logical unit/device type
04h WORD display model number
06h WORD numeric checking
08h WORD status line
0Ah BYTE unprotected normal field attribute
0Bh BYTE unprotected intensified field attribute
0Ch BYTE protected normal field attribute
0Dh BYTE protected intensified field attribute
0Eh WORD reserved
10h WORD printer port number
Format of information block:
Offset Size Description (Table 03365)
00h WORD device model number
02h DWORD screen buffer pointer
06h DWORD status line pointer (see #03366)
0Ah DWORD reserved
Format of Banyan VINES 3270 status line:
Offset Size Description (Table 03366)
00h BYTE comm line status
00h inactive
01h active
01h BYTE activation level
01h physical unit activated
02h logical unit also activated
03h session is bound
02h BYTE data traffic state
00h inactive
01h active
03h BYTE screen ownership
00h SLU->PLU session owns screen
01h SLU->SSCP session owns screen
04h BYTE keyboard status (see #03367)
05h BYTE insert mode
01h if in insert mode
06h BYTE numeric
01h if current screen buffer is numeric only
07h BYTE printer status
00h printer not assigned
01h printer is inactive
02h printer error
03h currently printing
04h printer is busy
05h printer is very busy
08h BYTE printer assignment
09h BYTE maximum size of network name
0Ah N BYTEs ASCIZ network name
BYTE maximum size of message window
M BYTEs null-terminated message window
BYTE code set
00h EBCDIC
01h ASCII
M BYTEs extended attributes
01h extended attributes are in effect (stored at screen+1920)
each extended attribute specifies
bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
bits 2-4: 000=default,001=blue,010=red,011=pink,
100=green,101=turquoise,110=yellow,111=white
BYTE extended color
01h other than base color is in effect
(Table 03367)
Values for Banyan VINES 3270 keyboard status:
00h UNLOCK - ready to accept data
01h TIME - aid was struck
02h SYSTEM - received response no restore
03h FUNCTION - unavailable keyboard function
04h INPUT - not currently used
05h ENDFIELD - field filled in insert mode
06h PROTECTED - attempt to enter in protected field
07h NUMERIC - attempt to enter in numeric field
08h PROGRAM - error in outbound data stream
Format of Banyan VINES 3270 profile block:
Offset Size Description (Table 03368)
00h 64 BYTEs gateway service name
40h 16 BYTEs gateway comm port address
50h WORD primary logical unit number
52h WORD secondary logical unit type
54h WORD secondary logical unit number
56h WORD printer assignment
58h 50 BYTEs keyboard definitions filename
Top
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM AX = 0002h Desc: switches off zoom and returns window to its original state Range: unknown Notes: INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",INT 16/AH=FFh"OPTIMA"Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
AX = 0003h subfn 00h
DS:BX -> argument block (see #03370)
Return: AX = status (see #03369)
SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh
(Table 03369)
Values for VINES function status:
0000h successful
000Bh invalid session ID
000Ch session not active
000Dh invalid request type
000Eh invalid parameters
000Fh out of heap space
0010h timeout on send
0011h Banyan communications error
0012h session not waiting for host
0013h session is active
0014h duplicate suspend session request
0015h no session suspended
0016h ring data buffer full
0017h printer error encountered
0018h Banyan communications error
0019h unable to make connection
001Ah no ring buffer specified at startup
001Bh service is down
001Ch invalid service name
001Dh service is closed
001Eh invalid connection name
001Fh max session limit reached for service
0020h access rights list for connection/dialout does not include this user
0021h service not responding
0022h missing telephone number
SeeAlso: #03325,#03373
Format of VINES argument block:
Offset Size Description (Table 03370)
00h BYTE session ID (00h)
01h BYTE 00h (func "initialize user buffer pointer information area")
02h WORD -> user buffer ptr info area in caller's current DS (see #03371)
Format of user buffer ptr info area:
Offset Size Description (Table 03371)
00h WORD flags
0000h don't read interface's data buffer
0001h read data buffer
02h DWORD pointer to ring buffer
06h WORD length of ring buffer
08h WORD ring buffer offset to last byte read by caller
0Ah DWORD pointer to WORD containing offset of last byte
in ring buffer filled
0Eh DWORD pointer to screen buffer
12h DWORD pointer to field containing cursor position
16h DWORD pointer to terminal status area (see #03372)
Format of VINES terminal status area:
Offset Size Description (Table 03372)
00h BYTE status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
01h BYTE terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
02h BYTE current keypad mode (VT100,VT52 only)
4Eh ("N") numeric mode
41h ("A") application mode
03h 4 BYTEs current state of LEDs (VT100 only)
00h off
01h on
07h WORD line error count
09h WORD primary error code (see #03373)
0Bh WORD secondary error code
(Table 03373)
Values for VINES primary error code:
0000h no error
0001h unable to make connection
0002h communications error, restart session
0003h async terminal emulation service unavailable
0004h lost carrier
0005h all matching lines busy
0006h no lines defined for connection name
0007h no dial lines available on server
0008h no matching dial lines available
0009h out of heap space
000Ah service error encountered
000Bh timed out waiting to connect
000Ch communications error
000Dh communications error
000Eh host wants file transferred to/from PC
000Fh host software changed session parameter
0010h host software changed tap settings
0011h host software changed LED indicator
0012h host software changed display background (secondary error code 00h for
white on black, 01h for black on white)
0013h host software changed display option (secondary error code 00h for off,
01h for on)
0014h communications error
0015h communications error
0016h unable to make connection
0017h unable to make connection
SeeAlso: #03369
Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST AX = 0003h subfn 01h DS:BX -> argument block (see #03374) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h Format of VINES argument block for Function 0003h subfunction 01h: Offset Size Description (Table 03374) 00h BYTE session ID (00h) 01h BYTE 01h (function "send to host") 02h BYTE type 00h ASCII byte 01h ASCII string 02h terminal function code 03h up arrow 04h down arrow 05h left arrow 06h right arrow 07h break 03h N BYTEs type-specific info (see #03375) Format of type-specific info: Offset Size Description (Table 03375) ---ASCII byte--- 03h BYTE byte to send to host ---ASCII string--- 03h WORD length of string 05h WORD pointer to string ---terminal function code (VT52/VT100)--- 03h BYTE function code 00h keypad 0 01h keypad 1 ... 09h keypad 9 0Ah keypad - 0Bh keypad , 0Ch keypad . 0Dh keypad ENTER 0Eh PF1 0Fh PF2 10h PF3 11h PF4 ---terminal function code (IBM3101)--- 03h BYTE function code 00h PF1 ... 07h PF8 08h Home SeeAlso: #03374Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR" AX = 0003h subfn 02h DS:BX -> argument block (see #03376) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h Format of VINES argument block for Function 0003h subfunction 02h: Offset Size Description (Table 03376) 00h BYTE session ID (00h) 01h BYTE 02h (function "control monitor") 02h BYTE display flag 00h don't display data received from host 01h display dataTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA" AX = 0003h subfn 03h DS:BX -> argument block (see #03377) Return: AX = status (see #03369) Desc: this function permits the caller to freeze/unfreeze the display and the ring buffer SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h Format of VINES argument block for Function 0003h subfunction 03h: Offset Size Description (Table 03377) 00h BYTE session ID (00h) 01h BYTE 03h (function "flow control data") 02h BYTE flow control flag 00h allow characters to be put into display or ring buffer 01h don't place any more characters into display or ring bufferTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION AX = 0003h subfn 04h DS:BX -> argument block (see #03378) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh Format of VINES argument block for ending active session: Offset Size Description (Table 03378) 00h BYTE session ID (00h) 01h BYTE 04h (function "end active session")Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER AX = 0003h subfn 05h DS:BX -> argument block (see #03379) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h Format of VINES argument block for setting session parameters: Offset Size Description (Table 03379) 00h BYTE session ID (00h) 01h BYTE 05h (function "set session parameter") 02h BYTE parameter number (see #03380) 03h BYTE new parameter value (Table 03380) Values for parameter number: 00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150, 05h=300, 06h=600, 07h=1200, 08h=2400, 09h=4800, 0Ah=9600) 01h parity (00h=none, 01h=odd, 02h=even) 02h duplex (00h=full, 01h=half) 03h character size (00h=7 bits, 01h=8 bits) 04h stop bits (00h=1, 01h=2) 05h XON/XOFF flow control (00h=no, 01h=yes) 07h intercharacter delay in tenths of a second 08h interline delay in tenths of a second 09h auto linefeed (00h=no, 01h=yes) 0Ah filter control characters (00h=no, 01h=yes) 0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101) 0Ch auto wrap (00h=no, 01h=yes) 0Dh cursor shape (00h=underscore, 01h=block) 0Eh character set (00h=UK, 01h=US ASCII) 0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3) SeeAlso: #03379Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER AX = 0003h subfn 06h DS:BX -> argument block (see #03381) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h Format of VINES argument block for getting session parameters: Offset Size Description (Table 03381) 00h BYTE session ID (00h) 01h BYTE 06h (function "get session parameter") 02h BYTE parameter number (see #03380) 03h BYTE (ret) current parameter valueTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS AX = 0003h subfn 07h DS:BX -> argument block (see #03382) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h Format of VINES argument block for setting tab settings: Offset Size Description (Table 03382) 00h BYTE session ID (00h) 01h BYTE 07h (function "set tab settings") 02h WORD pointer to 80-byte buffer in caller's current DS each byte = 00h if no tab, 01h if tab at that positionTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS AX = 0003h subfn 08h DS:BX -> argument block (see #03383) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h Format of VINES argument block for getting tab settings: Offset Size Description (Table 03383) 00h BYTE session ID (00h) 01h BYTE 08h (function "get tab settings") 02h WORD pointer to 80-byte buffer in caller's current DS each byte set to 00h if no tab, 01h if tab at that positionTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN AX = 0003h subfn 09h DS:BX -> argument block (see #03384) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh Format of VINES argument block for Function 0003h subfunction 09h: Offset Size Description (Table 03384) 00h BYTE session ID (00h) 01h BYTE 09h (function "refresh emulation screen")Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY AX = 0003h subfn 0Ah DS:BX -> argument block (see #03385) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh Format of VINES argument block: Offset Size Description (Table 03385) 00h BYTE session ID (00h) 01h BYTE 0Ah (function "suspend session temporarily") 02h WORD size of session information to be saved 04h WORD pointer to buffer in caller's DSTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION AX = 0003h subfn 0Bh DS:BX -> argument block (see #03386) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah Format of VINES argument block: Offset Size Description (Table 03386) 00h BYTE session ID (00h) 01h BYTE 0Bh (function "restore previously suspended session") 02h WORD size of buffer into which session info is restored 04h WORD pointer to buffer in caller's DSTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING AX = 0003h subfn 0Ch DS:BX -> argument block (see #03387) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h Format of VINES argument block: Offset Size Description (Table 03387) 00h BYTE session ID (00h) 01h BYTE 0Ch (function "set state of scroll lock checking") 02h BYTE check_scroll_lock flag 00h off 01h on (display of host data stopped while ScrollLock on)Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION AX = 0003h subfn 0Dh DS:BX -> argument block (see #03388) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah Format of VINES argument block: Offset Size Description (Table 03388) 00h BYTE session ID (00h) 01h BYTE 0Dh (function "exit emulation")Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST AX = 0003h subfn 0Eh DS:BX -> argument block (see #03389) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h Format of VINES argument block: Offset Size Description (Table 03389) 00h BYTE session ID (00h) 01h BYTE 0Eh (function "interrupt on character from host") 02h DWORD pointer to routine to be called (0000h:0000h = don't call) 06h DWORD stack pointer to use when call is madeTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION AX = 0003h subfn 0Fh DS:BX -> argument block (see #03390) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh Format of VINES argument block: Offset Size Description (Table 03390) 00h BYTE session ID (00h) 01h BYTE 0Fh (function "start a session") 02h WORD pointer to information area in caller's current DS (see #03391) Format of VINES information area: Offset Size Description (Table 03391) 00h WORD length of service name 02h WORD pointer to service name in caller's DS 04h BYTE type of connection (00h=connection name, 01h=dialout) 05h WORD length of connection name/telephone number 07h WORD pointer to connection name/telephone numberTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING AX = 0003h subfn 10h DS:BX -> argument block (see #03392) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h Format of VINES argument block: Offset Size Description (Table 03392) 00h BYTE session ID (00h) 01h BYTE 10h (function "start/stop printing of data received from host") 02h WORD print capture flag (00h=off, 01h=on)Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS AX = 0003h subfn 11h DS:BX -> argument block (see #03393) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h Format of VINES argument block: Offset Size Description (Table 03393) 00h BYTE session ID (00h) 01h BYTE 11h (function "get file transfer parameters") 02h WORD pointer to info area in caller's current DS (see #03394) Format of VINES info area: Offset Size Description (Table 03394) 00h BYTE protocol flag (00h none, 01h Kermit) 01h BYTE direction flag (00h send, 01h receive) 02h BYTE length of null-terminated PC filename 03h DWORD pointer to null-terminated PC filename 07h BYTE length of null-terminated host filename 08h DWORD pointer to null-terminated host filenameTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION AX = 0003h subfn 12h DS:BX -> argument block (see #03395) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h Format of VINES argument block: Offset Size Description (Table 03395) 00h BYTE session ID (00h) 01h BYTE 12h (function "get connection information") 02h WORD offset of buffer for connection information (see #03396) Format of VINES connection information: Offset Size Description (Table 03396) 00h WORD length of service name (returned) 02h WORD pointer to 64-byte buffer for service name 04h BYTE type of connection 00h connection name 01h dialout 05h WORD length of connection name/telephone number 07h WORD pointer to 64-byte buffer for name/telno 09h BYTE server line number being used (returned)Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC AX = 0003h subfn 13h DS:BX -> argument block (see #03397) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh Format of VINES argument block: Offset Size Description (Table 03397) 00h BYTE session ID (00h) 01h BYTE 13h (function "start/stop tracing data traffic in session") 02h BYTE trace flag (00h=off, 01h=on)Top
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE AX = 0003h subfn 14h DS:BX -> argument block (see #03398) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=0Eh Format of VINES argument block: Offset Size Description (Table 03398) 00h BYTE session ID (00h) 01h BYTE 14h (function "interrupt on message from host") 02h DWORD pointer to routine to be called (0000h:0000h = don't call) 06h DWORD stack pointer to use when call is madeTop
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR AX = 0003h subfn 15h DS:BX -> argument block (see #03399) Return: AX = status (see #03369) SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h Format of VINES argument block: Offset Size Description (Table 03399) 00h BYTE session ID (00h) 01h BYTE 15h (function "reset error")Top
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR AX = 0003h Return: AX = zoom factor Desc: returns the current zoom factor Range: unknown Notes: INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",AX=0005h"OPTIMA",INT 16/AH=FFh"OPTIMA"Top
INT 61 - Banyan VINES - FILE SERVICE CONTROL AX = 0004h DS:DX -> request block (see #03401) Return: AX = status (see #03400) Notes: This service is handled by the redirector The request dispatch table contains dummy entries for requests 0Ah, 0Dh, 15h, 19h, and 1Ah, which always return error 0033h (invalid request ID) (Table 03400) Values for Banyan VINES file service control status code: 0000h successful 0002h file not found 0003h path not found 000Fh invalid drive 0015h drive not ready 0033h invalid request ID 0034h drive not connected 0037h drive number out of range 0038h drive number not available 003Ah invalid operation 0055h drive already connected 0057h invalid number of entries Format of Banyan VINES file service request block: Offset Size Description (Table 03401) 00h WORD request ID (1..28) 02h n BYTES additional parameters and result bufferTop
INT 61 - Banyan VINES - SET DRIVE CONNECTION AX = 0004h subfn 0001h DS:DX -> request block (see #03402) Return: AX = status (0000h,0037h,0038h,0055h) (see #03400) Desc: Maps the specified file service to a DOS drive letter Note: If an empty service name is specified, an existing connection will be removed SeeAlso: AX=0004h/SF=0002h Format of VINES Function 0004h/Subfunction 0001h request block: Offset Size Description (Table 03402) 00h WORD 0001h 02h BYTE drive number (0=default, 1=A, ...) 03h 16 BYTEs reserved 13h 64 BYTEs null-terminated file service name 53h 5 BYTEs reservedTop
INT 61 - Banyan VINES - GET DRIVE CONNECTION AX = 0004h subfn 0002h DS:DX -> request block (see #03403) Return: AX = status (0000h,0034h,0037h) (see #03400) Desc: Returns the StreetTalk name of the associated file service SeeAlso: AX=0004h/SF=0001h,AX=0004h/SF=0003h Format of VINES Function 0004h/Subfunction 0002h request block: Offset Size Description (Table 03403) 00h WORD 0002h 02h BYTE drive number (0=default, 1=A, ...) 03h 16 BYTEs reserved 13h 64 BYTEs buffer for null-terminated file service name 53h 5 BYTEs reservedTop
INT 61 - Banyan VINES - GET NETWORK DRIVE MAP AX = 0004h subfn 0003h DS:DX -> request block (see #03404) Return: AX = status 0000h drive map returned in request block Desc: Returns a bit map indicating which drive numbers are connected to a file service Note: Only bits 0-25 are significant SeeAlso: AX=0004h/SF=0002h Format of VINES Function 0004h/Subfunction 0003h request block: Offset Size Description (Table 03404) 00h WORD 0003h 02h DWORD buffer for drive map (bit0=A, bit1=B, ...)Top
INT 61 - Banyan VINES - SET USER NAME AX = 0004h subfn 0004h DS:DX -> request block (see #03405) Return: AX = status (0000h) (see #03400) Notes: Other side effects, if any, not known SeeAlso: AX=0004h/SF=0005h,#03431 [ID 0004h],AX=0007h/BX=0005h Format of VINES Function 0004h/Subfunction 0004h request block: Offset Size Description (Table 03405) 00h WORD 0004h 02h 64 BYTE null-terminated user nameTop
INT 61 - Banyan VINES - GET USER NAME AX = 0004h subfn 0005h DS:DX -> request block (see #03406) Return: AX = status (see also #03400) 0000h user name returned in request block Desc: Returns the StreetTalk name of the currently logged in user SeeAlso: AX=0004h/SF=0004h,#03431 [ID 0004h],AX=0007h/BX=0005h SeeAlso: AX=0004h/SF=0004h Format of VINES Function 0004h/Subfunction 0005h request block: Offset Size Description (Table 03406) 00h WORD 0005h (subfunction "Get User Name") 02h 64 BYTE buffer for null-terminated user nameTop
INT 61 - Banyan VINES - TEST DRIVE CONNECTION AX = 0004h subfn 0006h DS:DX -> request block (see #03407) Return: AX = status (see also #03400) 0000h connection flag returned in request block Desc: Returns a flag indicating if the drive is connected to a file service SeeAlso: AX=0004h/SF=0007h Format of VINES Function 0004h/Subfunction 0006h request block: Offset Size Description (Table 03407) 00h WORD 0006h (subfunction "Test Drive Connection") 02h BYTE buffer for connection flag (1 = not connected, 2 = connected)Top
INT 61 - Banyan VINES - GET CONNECTION DATA STRUCTURES AX = 0004h subfn 0007h DS:DX -> request block (see #03408) Return: AX = status (see also #03400) 0000h pointer returned in request block 0033h invalid request ID Desc: Returns pointers to various internal data structures Format of VINES Function 0004h/Subfunction 0007h request block: Offset Size Description (Table 03408) 00h WORD 0007h 02h BYTE request ID (0..7) (see #03409) 03h WORD buffer for pointer segment 05h WORD buffer for pointer offset SeeAlso: #03410,#03411 (Table 03409) Values for VINES pointer ID: 00h job file table ??? 01h drive handle table 02h drive connection table 03h IPC port of drive Z: 04h end of drive connection table 05h ??? 06h ??? 07h redirector data segment (offset=0) SeeAlso: #03408 Format of VINES drive handle table: Offset Size Description (Table 03410) 00h BYTE handle to default drive (0 = not connected) 01h BYTE handle to drive A: (0 = not connected) ... 1Ah BYTE handle to drive Z: (0 = not connected) SeeAlso: #03411 Format of VINES drive connection table: Offset Size Description (Table 03411) 00h WORD file service type (?) (0001h if drive Z:, 0000h else) 02h 16 BYTEs IPC port (contains the server serial number) 12h 46 BYTEs ??? 40h 64 BYTEs null-terminated StreetTalk name of associated file service 80h 64 BYTEs null-terminated root directory (/ROOT: parameter of SETDRIVE) SeeAlso: #03410Top
INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER AX = 0004h subfn 0008h DS:DX -> request block (see #03412) Return: AX = status (0000h,000Fh,0015h) (see #03400) Notes: The server ID is extracted from the IPC port address of the associated file service stored in the drive connection table The server serial number and the server subnet number are returned in big-endian (Motorola) format (i.e. MSB first) SeeAlso: AX=0004h/SF=0005h Format of VINES request block for getting server serial number: Offset Size Description (Table 03412) 00h WORD 0008h 02h WORD drive number (0=default, 1=A, ...) 04h DWORD buffer for server serial number 08h WORD buffer for server subnet number (always 0001h)Top
INT 61 - Banyan VINES - SET ??? PARAMETER AX = 0004h subfn 0009h DS:DX -> request block (see #03413) Return: AX = status (0000h) (see #03400) Notes: The specified WORD parameter is copied to offset 1702h of the redirector code segment (revision 5.53) SeeAlso: AX=0004h/SF=000Bh Format of VINES Function 0004h/Subfunction 0009h request block: Offset Size Description (Table 03413) 00h WORD 0009h 02h WORD parameterTop
INT 61 - Banyan VINES - GET ??? DRIVE PARAMETER AX = 0004h subfn 000Bh DS:DX -> request block (see #03414) Return: AX = status (0000h,0034h,0037h) (see #03400) Notes: This request returns a WORD value from the drive connection table read from offset 0012h of the specified drive's entry (usually 0037h) SeeAlso: AX=0004h/SF=0009h Format of VINES Function 0004h/Subfunction 000Bh request block: Offset Size Description (Table 03414) 00h WORD 000Bh 02h BYTE drive number (0=default, 1=A, ...) 03h WORD buffer for parameterTop
INT 61 - Banyan VINES - LOGOUT FROM VINES AX = 0004h subfn 000Ch DS:DX -> request block (see #03415) Return: AX = status 0000h (see #03400) Desc: Terminates a running VINES session and clears all session specific buffers SeeAlso: AX=0004h/SF=0008h Format of VINES Function 0004h/Subfunction 000Ch request block: Offset Size Description (Table 03415) 00h WORD 000ChTop
INT 61 - Banyan VINES - GET ACCESS RIGHTS LIST (ARL) AX = 0004h subfn 000Eh DS:DX -> request block (see #03416) Return: AX = status (see also #03400) 0000h request has been processed Desc: Returns the owner, group, and extended access rights for the specified file or directory Note: A status of 0000h does not necessarily indicate a successful request; check the status word at offset 000Eh of the request block too SeeAlso: AX=0004h/SF=000Fh Format of VINES Function 0004h/Subfunction 000Eh request block: Offset Size Description (Table 03416) 00h WORD 000Eh (subfunction "Get Access Rights List") 02h BYTE drive number (0=default, 1=A, ...) 03h BYTE reserved 04h DWORD pointer to path specification (drive letter ignored) 08h DWORD pointer to ARL control block (see #03417) 0Ch WORD buffer for number of ARL entries (1..5) 0Eh WORD buffer for status (see #03418) Format of ARL control block: Offset Size Description (Table 03417) 00h 64 BYTEs 1st StreetTalk name (user, list, or service) 40h WORD 1st ARL 42h 64 BYTEs 2nd StreetTalk name (user, list, or service) 82h WORD 2nd ARL 84h 64 BYTEs 3rd StreetTalk name (user, list, or service) C4h WORD 3rd ARL C6h 64 BYTEs 4th StreetTalk name (user, list, or service) 106h WORD 4th ARL 108h 64 BYTEs 5th StreetTalk name (user, list, or service) 148h WORD 5th ARL (Table 03418) Values for VINES Get/Set Access Rights List status: 0000h successful 0002h file not found 0003h path not found 003Ah invalid operation 0057h invalid number of entriesTop
INT 61 - Banyan VINES - SET ACCESS RIGHTS LIST (ARL) AX = 0004h subfn 000Fh DS:DX -> request block (see #03419) Return: AX = status (see also #03400) 0000h request has been processed Desc: Sets the owner, group, and extended access rights for the specified file or directory Note: A status of 0000h does not necessarily indicate a successful request; check the status word at offset 000Eh of the request block too If the number of ARL entries is less than 1 or greater than 5, error 0057h (invalid number of entries) is returned SeeAlso: AX=0004h/SF=000Eh Format of VINES Function 0004h/Subfunction 000Fh request block: Offset Size Description (Table 03419) 00h WORD 000Fh 02h BYTE drive number (0=default, 1=A, ...) 03h BYTE reserved 04h DWORD pointer to path specification (drive letter ignored) 08h DWORD pointer to ARL control block (see #03417) 0Ch WORD number of ARL entries (1..5) 0Eh WORD buffer for status (see #03418)Top
INT 61 - Banyan VINES - FILE SERVICE CONTROL - ??? AX = 0004h subfn 0010h DS:DX -> request block (see #03420) Return: AX = status (see also #03400) 0000h request has been processed SeeAlso: AX=0004h/SF=000Fh Format of VINES Function 0004h/Subfunction 0010h request block: Offset Size Description (Table 03420) 00h WORD 0010h 02h BYTE drive number (0=default, 1=A, ...) 03h BYTE reserved 04h 64 BYTEs ??? 44h 16 BYTEs IPC port (see #03328 at AX=0001h"Sosock")Top
INT 61 - Banyan VINES - GET VALUE OF GLOBAL VARIABLE AX = 0004h subfn 0013h DS:DX -> request block (see #03421) Return: AX = status (see also #03400) 0000h successful 0033h invalid request ID (returned if variable index out of range) Desc: Returns the value of the specified global variable Note: The data will be truncated if the specified buffer is not large enough. Check the length word in the request block to find out how many bytes should have been copied. SeeAlso: AX=0004h/SF=0014h,AX=0006h Format of request block: Offset Size Description (Table 03421) 00h WORD 0013h 02h WORD variable index (0000h-001Fh) (see #03422) 04h WORD buffer length (on exit set to # of bytes actually needed) 06h DWORD far pointer to result buffer SeeAlso: #03423 (Table 03422) Values for variable indices: Index Length Description 0000h 1 ??? 0001h 16 StreetTalk port 0002h 4 StreetTalk session handle 0003h 6 colors 0004h 64 StreetTalk name of currently logged in user 0005h 0 old clear text password (not applicable) 0006h 0 default group (not applicable) 0007h 1 number of messages in message queue 0008h 1 message flag 0009h 16 TalkPort 000Ah 2 TalkPort socket 000Bh 64 StreetTalk name of mail service 000Ch 2 message timeout 000Dh 2 next message place 000Eh 246 message queue (3 times 80 characters + 2 flag bytes) 000Fh 14 system nonce 0010h 2 failed login count 0011h 1 new mail message received 0012h 8 mail service capabilities 0013h 3 printer port diverted 0014h 32 international location 0015h 16 IPC port of drive Z: 0016h 1024 pointer to current directory table 0017h 2 maximum number of file volume mappings 0018h 24 routine to call back for messages (6 far pointers) 0019h 4 current virtual machine 001Ah 20 DOS redirector message bell tones 001Bh 2 various flags used for internal communication 001Ch 0 OS/2 client configuration (not applicable) 001Dh 8 redirector/IFS file version 001Eh 0 reserved (not applicable) 001Fh 4 address of VVINESD.386 dispatchTop
INT 61 - Banyan VINES - SET VALUE OF GLOBAL VARIABLE AX = 0004h subfn 0014h DS:DX -> request block (see #03423) Return: AX = status 0000h successful 0033h invalid request ID (returned if variable index out of range) Desc: Assigns a new value to the specified global variable Note: If the specified number of bytes to copy exceeds the size of the destination variable, nothing will be copied. SeeAlso: AX=0004h/SF=0013h,AX=0006h Format of request block: Offset Size Description (Table 03423) 00h WORD 0014h 02h WORD variable index (0000h-001Fh) (see #03422) 04h WORD number of bytes to copy 06h DWORD far pointer to new value SeeAlso: #03421Top
INT 61 - Banyan VINES - GET NUMBER OF OPEN FILES ON REMOTE DRIVE AX = 0004h subfn 0016h DS:DX -> request block (see #03424) Return: AX = status 0000h open file count returned in request block Desc: Counts the number of open files on the specified remote drive. Note: No error is returned if the specified drive number is invalid or points to a local drive. Use AX=0004h/SF=0006h to test if a given drive number is assigned to a remote drive. SeeAlso: AX=0004h/SF=0006h Format of request block: Offset Size Description (Table 03424) 00h WORD 0016h 02h BYTE drive number (0=default, 1=A:, ...) 03h BYTE reserved 04h WORD buffer for open file count SeeAlso: #03426Top
INT 61 - Banyan VINES - SET UNIDENTIFIED INTERNAL FLAG AX = 0004h subfn 0018h DS:DX -> request block (see #03425) Return: AX = status 0000h success Desc: Sets an unidentified BYTE variable in the redirector data segment to 1. Note: In the VINES 5.53 "REDIR4" redirector, this variable is located at DS:0B53. Format of request block: Offset Size Description (Table 03425) 00h WORD 0018h SeeAlso: #03426Top
INT 61 - Banyan VINES - UNIDENTIFIED DRIVE SPECIFIC FUNCTION AX = 0004h subfn 001Bh DS:DX -> request block (see #03426) Return: AX = status 0000h success 0034h drive not connected 0037h drive number out of range Desc: The purpose of this function is not known. Format of request block: Offset Size Description (Table 03426) 00h WORD 001Bh 02h BYTE drive number (0=default, 1=A:, ...) 03h BYTE ??? 04h WORD ??? 06h DWORD far pointer to data area 0Ah WORD ??? 0Ch DWORD far pointer to data area 10h WORD buffer for result SeeAlso: #03424,#03426Top
INT 61 - Banyan VINES - UNIDENTIFIED FUNCTION AX = 0004h subfn 001Ch DS:DX -> request block (see #03427) Return: AX = status 0000h success 0057h invalid number of entries Desc: The purpose of this function is not known. Format of request block: Offset Size Description (Table 03427) 00h WORD 001Ch 02h WORD ??? 04h WORD ??? 06h WORD ??? 08h WORD ??? 0Ah DWORD far pointer to data area (14 bytes)Top
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE AX = 0004h Range: unknown Notes: Specify Mode is enabled by hot key (seeAlso below), and allows panning and zooming via the numeric keypad. INT 61 is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",AX=0007h"OPTIMA",INT 16/AH=FFh"OPTIMA"Top
INT 61 - Banyan VINES - PRINT SERVICE CONTROL AX = 0005h DS:DX -> request block (see #03428) Return: AX = status 0000h successful 0001h network software not installed or incompatible Notes: This service is handled by the redirector The size of the request/result block depends on the selected function and the value at offset 04h. SeeAlso: INT 2F/AX=D702h Format of VINES request/result block for printer control: Offset Size Description (Table 03428) 00h WORD function 0201h "endspool" all data for a print job has been sent (no bytes returned) 0202h "deassign" the virtual printer port Before the printer port is deassigned all data sent to it is endspooled. (no bytes returned) 0205h "get_active" get currently active printer port (1 byte required for result) Returns: - the currently active printer port (1-3) (0 if there is none) 0207h ??? purpose unknown; called periodically every second 020Ch "get_bannertitle" gets the title which is printed on the banner page of a print job sent to the virtual port (16 bytes required for result) Returns: - the null-terminated banner title 020Eh "get_servicename" gets the name of the print service assigned to the virtual port (64 bytes required for result) Returns: - the null-terminated print service name assigned to the virtual port 0210h "set_bannertitle" sets the title which is printed on the banner page of a print job sent to the virtual port (16 bytes required for input) Input: - the null-terminated banner title (max 16 chars) 0212h "set_servicename" sets the name of the print service assigned to the virtual port (64 bytes required for input) Input: - the null-terminated print service name (max 64 chars) 0216h "get_job_paper_format" gets the paper format for subsequent print jobs (16 bytes required for result) Returns: - the null-terminated paper format 0217h "set_job_paper_format" sets the paper format for subsequent print jobs (16 bytes required for input) Input: - the null-terminated paper format (max 16 chars) 02h WORD number of active virtual port (1-3) (0 for function 0205h) 04h WORD Offset into the request block from which additional input is to be read and/or at which the result is to be copied (if there is any). Therefore the smallest block size for a function which returns a result is this offset + the maximum number of returned bytes - 1 06h WORD 0000hTop
INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW AX = 0005h BX:CX -> buffer for window parameters (see #03429) Range: unknown Notes: INT 61 is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",AX=0003h"OPTIMA",AX=0006h"OPTIMA" SeeAlso: INT 16/AH=FFh"OPTIMA" Format of Optima 1024 window parameters: Offset Size Description (Table 03429) 00h WORD X start of zoom window 02h WORD Y start of zoom window 04h WORD X end of zoom window 06h WORD Y end of zoom window 08h WORD current zoom factor 0Ah WORD zoom offset start X 0Ch WORD zoom offset start YTop
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW AX = 0006h BX:CX -> zoom window description (see #03430) Range: unknown Notes: width of zoom window must be a multiple of the pixel replication (zoom) factor INT 61 is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0005h"OPTIMA",AX=0008h"OPTIMA" SeeAlso: INT 16/AH=FFh"OPTIMA" Format of Optima 1024 zoom window description: Offset Size Description (Table 03430) 00h WORD X start of zoom window 02h WORD Y start of zoom window 04h WORD X end of zoom window 06h WORD Y end of zoom windowTop
INT 61 - Banyan VINES - GET ADDRESS OF GLOBAL VARIABLE AX = 0006h BX = bits 14..0: request ID (see #03431) bit 15: result destination flag (0 for ES:BX, 1 for AX:BX) Return: AX = status 0000h successful 000Bh invalid request ES:BX -> internal variable (bit 15 of BX was not set) AX:BX -> internal variable (bit 15 of BX was set) Note: This service is handled by the redirector SeeAlso: AX=0004h/SF=0013h,AX=0004h/SF=0014h (Table 03431) Values for request IDs: Request Length Description 0000h 1 ??? 0001h 16 StreetTalk port 0002h 4 StreetTalk session handle 0003h 6 colors 0004h 64 StreetTalk name of currently logged in user 0005h 0 old clear text password (always returns error code 000Bh) 0006h 0 default group (not applicable) 0007h 1 message queue count 0008h 1 message flag 0009h 16 TalkPort 000Ah 2 TalkPort socket 000Bh 64 StreetTalk name of mail service 000Ch 2 message timeout 000Dh 2 next message place 000Eh 246 message queue 000Fh 14 system nonce 0010h 2 failed login count 0011h 1 new mail message received 0012h 8 mail capabilities 0013h 3 printer port diverted 0014h 32 international location 0015h 16 IPC port of drive Z: 0016h 1024 pointer to current directory table 0017h 2 maximum number of file volume mappings 0018h 24 routine to call back for messages 0019h 4 current virtual machine 001Ah 20 DOS redirector message bell tones 001Bh 2 various flags used for internal communication 001Ch 0 OS/2 client configuration (always returns error code 000Bh) 001Dh 8 redirector/IFS file version 001Eh 0 reserved (always returns error code 000Bh) 001Fh 4 address of VVINESD.386 dispatchTop
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY AX = 0007h Return: AX = current state (0000h/0001h) Desc: returns the current toggle state of the application (END) key in specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD calls INT 61/AX=0001h every time the crosshair cursor moves. Notes: In specify mode, the END key has been reserved for applications. INT 61 is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0004h"OPTIMA" SeeAlso: INT 16/AH=FFh"OPTIMA",INT 7A/AX=0001h"AutoCAD"Top
INT 61 - Banyan VINES - RECONNECT TO STREETTALK AX = 0007h BX = 0000h Return: AX = status (see #03432) SeeAlso: AX=0007h/BX=0002h (Table 03432) Values for VINES function status: 0000h successful 0001h requested handler not installed or incompatible 000Bh service busy 000Ch invalid request ID 03E9h incorrect name syntax 03EAh organization name too long 03EBh group name too long 03ECh item name too long 03EDh StreetTalk name too long 03F3h organization not found 03F4h group not found 03F5h StreetTalk name not found 03F8h not a StreetTalk name 0409h modify access denied 040Dh appropriate StreetTalk name unavailable 0411h all matching names have been returned 0412h some groups unavailable, all available matches returnedTop
INT 61 - Banyan VINES - GET MM PORT FOR A SERVICE AX = 0007h BX = 0001h DS:DX -> StreetTalk service name (64 bytes) DS:DI -> 16-byte buffer for IPC port (see #03328 at AX=0001h"Sosock") Return: AX = status (see #03432) Notes: This function calls AX=0007/BX=0002h with the port count set to 1 and the port type set to 00h SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=000AhTop
INT 61 - Banyan VINES - GET PORTS FOR A SERVICE AX = 0007h BX = 0002h DS:DX -> StreetTalk service name DS:DI -> port record block (see #03433) Return: AX = status (see #03432) Note: if the requested number of ports is greater than five, it will be reset to five SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0003h,AX=0007h/BX=0004h SeeAlso: AX=0007h/BX=000Ah Format of VINES port record block: Offset Size Description (Table 03433) 00h WORD (call) number of 17-byte elements (01h-05h) to be filled 02h BYTE (call) port type for first port 03h 16 BYTEs (ret) port (see #03328) 13h BYTE (call) port type for second port 14h 16 BYTEs (ret) port (see #03328) 24h BYTE (call) port type for third port 25h 16 BYTEs (ret) port (see #03328) 35h BYTE (call) port type for fourth port 36h 16 BYTEs (ret) port (see #03328) 46h BYTE (call) port type for fifth port 47h 16 BYTEs (ret) port (see #03328) 57h BYTE reserved SeeAlso: #03435Top
INT 61 - Banyan VINES - FIND A SERVICE AX = 0007h BX = 0003h DS:DX -> port control block (see #03434) Return: AX = status (see AX=0007h/BX=0000h) SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=0005h Format of port control block: Offset Size Description (Table 03434) 00h WORD ??? 02h WORD ??? 04h 16 BYTEs IPC port (see #03328 at AX=0001h"Sosock") 14h 5 WORDs ??? SeeAlso: #03440Top
INT 61 - Banyan VINES - SET PORTS FOR A SERVICE AX = 0007h BX = 0004h DS:DX -> StreetTalk name of service (max 64 bytes) DS:DI -> port record block (see #03435) Return: AX = status (see #03432) SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0003h,AX=0007h/BX=000Ah Format of VINES port record block: Offset Size Description (Table 03435) 00h WORD number of 17-byte elements 02h BYTE port type for first port 03h 16 BYTEs first IPC port (see #03328) 13h BYTE port type for second port 14h 16 BYTEs second IPC port (see #03328) 24h BYTE port type for third port 25h 16 BYTEs third IPC port (see #03328) 35h BYTE port type for fourth port 36h 16 BYTEs fourth IPC port (see #03328) 46h BYTE port type for fifth port 47h 16 BYTEs fifth IPC port (see #03328) 57h BYTE reserved SeeAlso: #03433Top
INT 61 - Banyan VINES - GET USER NAME AX = 0007h BX = 0005h DS:DX -> 64-byte buffer for user's StreetTalk name Return: AX = status (see also #03432) 0000h successful 0001h network software not installed or incompatible Note: if no user logged in, first byte of returned name will be 00h SeeAlso: AX=0007h/BX=0007hTop
INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING AX = 0007h BX = 0006h SI = error code (>100) DS:DX -> 80-byte buffer for error text Return: AX = status (see also #03432) 0000h successful 0001h network software not installed or incompatibleTop
INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM AX = 0007h BX = 0007h DS:DX -> NiceName block (see #03436) Return: AX = status (see #03432) SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h Format of VINES NiceName block: Offset Size Description (Table 03436) 00h WORD type of name 0064h (100) organization 00C8h (200) group 012Ch (300) item 02h WORD pointer to ASCIZ input name 04h WORD pointer to 64-byte buffer for output name SeeAlso: #03437Top
INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES AX = 0007h BX = 0008h DS:DX -> enumerate block (see #03437) Return: AX = status (see also #03432) 0000h successful 0411h all matching names have been returned 0412h some groups unavailable, all available matches returned Note: each program using this call should continue until a nonzero status is returned; otherwise, some resources will not be freed for several hours SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0007h,AX=0007h/BX=0009h Format of VINES enumerate block: Offset Size Description (Table 03437) 00h WORD return code 02h WORD pointer to pattern string 04h WORD enumerate type 0064h (100) organization 00C8h (200) group 012Ch (300) item 06h WORD enumerate class 0000h unspecified (return all matching items) 0001h user names 0002h service names 0003h list names 0004h nicknames 08h WORD pointer to category criteria block (see #03438) or 0 0Ah WORD pointer to array of 64-byte returned names 0Ch WORD number of names returned 0Eh 6 BYTEs reserved for subsequent enumerated calls (set to zeros on first call) SeeAlso: #03436 Format of category criteria block: Offset Size Description (Table 03438) 00h WORD exclude flag 0000h return only items with the specified categories 0001h return all items except those with the given categories 02h WORD number of categories (max 5, 0000h = match all categories) 04h WORD category 1 value (see #03439) 06h WORD category 2 value 08h WORD category 3 value 0Ah WORD category 4 value 0Ch WORD category 5 value SeeAlso: #03437 (Table 03439) Values for common VINES service categories: 0001h server service 0002h file service 0003h print service 0004h mail service 0005h StreetTalk 0006h time service 0007h FTP service 0008h semaphore service 0009h 3270/SNA service 000Ah terminal emulation service 000Bh asynchronous terminal service 000Ch NETBIOS service 000Dh PC-based service 000Eh BSC service 000Fh APPC service 0010h NM service 0011h VS service 0012h POP service 0013h AFP service 0014h VCS service 0015h EMS service 0016h LN service 0017h BS service 0023h RIPL service 0064h ADM service SeeAlso: #03438Top
INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING (SELECTED PORT) AX = 0007h BX = 0009h SI = error code DS:DX -> 80-byte buffer for error text DS:DI -> IPC port (16 bytes; see AX=0001h#"Sosock" for port format) Return: AX = status (see AX=0007h/BX=0000h) Note: Same as AX=0007h/BX=0006h, except IPC port is specified explicitly SeeAlso: AX=0007h/BX=0006hTop
INT 61 - Banyan VINES - internal, OS/2 only - GET MANY PORTS FOR SERVICE AX = 0007h BX = 000Ah DS:DX -> port control block (see #03440) Return: AX = status (see AX=0007h/BX=0000h) Note: This function cannot be called from applications, as the DS register is checked against the redirector data segment address (status code 0001h will be returned if DS doesn't match) SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0002h,AX=0007h/BX=0004h Format of port control block: Offset Size Description (Table 03440) 00h WORD ??? 02h WORD ??? 04h 16 BYTEs IPC port (see #03328 at AX=0001h"Sosock") 14h 14 WORDs ??? SeeAlso: #03434Top
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET AX = 0008h BX = X start of zoom offset CX = Y start of zoom offset Desc: specifies the first byte of video memory to appear in the zoom window Range: unknown Notes: INT 61 is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh not all vendors include the Tseng TSR which supports these functions SeeAlso: AX=0000h"OPTIMA",AX=0006h"OPTIMA",INT 16/AH=FFh"OPTIMA"Top
INT 61 - Banyan VINES - TALKPORT SERVICE - GET HANDLER ADDRESS AX = 0008h BX = 0000h Return: AX = status 0000h successful ES:DX = far pointer to handler Desc: The TalkPort is a facility to display event messages (e.g. mail received, printing on a local printer, ...) on the screen Note: This service is handled by the redirector SeeAlso: AX=0008h/BX=0001h,AX=0008h/BX=0002hTop
INT 61 - Banyan VINES - TALKPORT SERVICE - SET HANDLER ADDRESS AX = 0008h BX = 0001h ES:DX -> new handler Return: AX = status 0000h successful SeeAlso: AX=0008h/BX=0000hTop
INT 61 - Banyan VINES - TALKPORT SERVICE - POST MESSAGE ON LOCAL DISPLAY AX = 0008h BX = 0002h CX = message display flags (see #03441) DS:DX -> ASCIZ string to display (only first 80 chars used) Return: AX = status 0000h successful 000Bh message display function currently busy 000Ch message queue full Notes: queues up to three messages to be displayed on the bottom line This service is handled by the redirector In a DOS session, TalkPort messages are displayed on display line 25; in a Windows session, TalkPort messages are displayed in dialog boxes SeeAlso: AX=0008h/BX=0000h,AX=0008h/BX=0003h Bitfields for VINES message display flags: Bit(s) Description (Table 03441) 0 message will remain on screen until user presses ^X 1 ring bell after displaying message 2 blinkTop
INT 61 - Banyan VINES - TALKPORT SERVICE - INTERCEPT VINES 25th-LINE MESSAGES AX = 0008h BX = 0003h DS:DX -> request block (see #03442) Return: AX = status 0000h successful 0001h network software not installed or incompatible Notes: message handler should not call BIOS or DOS functions, and should either call next handler or simply return to stop intercepting messages, set prev and next request blocks to point at each other SeeAlso: AX=0008h/BX=0002h Format of VINES request block for 25-th line messages: Offset Size Description (Table 03442) 00h DWORD pointer to user-written message handler 04h DWORD pointer to next request block (filled in by VINES) 08h DWORD pointer to previous request block (filled in by VINES) 0Ch DWORD pointer to message storage area (filled by VINES) (see #03443) Format of message storage area: Offset Size Description (Table 03443) 00h 16 BYTEs IPC port of message sender (see #03328) 10h BYTE message flags 11h WORD reserved 13h BYTE length of message 14h 80 BYTEs message text SeeAlso: #03442Top
INT 61 - Banyan VINES - NETBIOS CLIENT SERVICE AX = 0009h other parameters, if any, unknownTop
INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE AX = 000Ah Note: either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on which is loaded second. The first interface loaded will use AX=0002h SeeAlso: INT 61/AX=0002hTop
INT 61 - Banyan VINES - SEMAPHORE SERVICE AX = 000Bh other parameters, if any, unknownTop
INT 61 - Banyan VINES - 3270 KEYBOARD HANDLER AX = 000Ch other parameters, if any, unknownTop
INT 61 - Banyan VINES - T3270 SERVICE FUNCTION AX = 000Dh other parameters, if any, unknownTop
INT 61 - Banyan VINES - ENHANCED 3270 SERVICE AX = 000Eh other parameters, if any, unknownTop
INT 61 - Banyan VINES - VINES SOCKET API (FAR DATA) AX = 000Fh CX:BX -> request block (see #03444) DX = application's data segment (should be = CX) ES = DS Return: AX = status 0000h successful 0099h invalid operation 00A5h resource not available Desc: StreetTalk access with session handles Notes: This service is handled by the adapter driver The request dispatch table contains dummy entries for subfunctions 06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h (invalid operation) in the request block's result buffer This interface does the same as the corresponding AX=0001h interface, but with a slightly modified request block structure (i.e it allows FAR parameter block pointers) and without expecting DS=0001h Some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for VINES 5.53) ignore the value in CX and use the value from DX instead SeeAlso: AX=0001h/SF=0001h,AX=000Fh/SF=0001h Format of VINES Socket request block: Offset Size Description (Table 03444) 00h WORD subfunction number (01h-16h) 02h WORD magic number (FEFEh) 04h WORD buffer for return code (set to 0 before calling) 06h WORD reserved (will be set to client DS) 08h WORD reserved (obviously not used; set to 0 before calling) 0Ah DWORD far pointer to parameter block 0Eh WORD StreetTalk handle SeeAlso: #03324 at INT 61/AX=0001hTop
INT 61 - Banyan VINES - OPEN SOCKET AX = 000Fh subfn 0001h CX:BX -> request block (see #03445) DX = application's data segment (should be = CX) ES = DS Return: AX = status 0000h successful 00A5h resource not available Desc: Opens a socket and returns a socket handle Format of request block: Offset Size Description (Table 03445) 00h WORD 0001h 02h WORD magic number (FEFEh) 04h WORD buffer for return code (set to 0 before calling) 06h WORD reserved (will be set to client DS) 08h WORD reserved (obviously not used; set to 0 before calling) 0Ah DWORD far pointer to parameter block (see #03446) 0Eh WORD process handle (see AX=000Fh/SF=0008h) Format of parameter block: Offset Size Description (Table 03446) 00h WORD reserved 02h WORD address family (0003h = VINES) 04h WORD socket type (0001h = IPC, 0002h = SPP) 06h WORD protocol number (FFFFh = default protocol) 08h WORD reserved 0Ah WORD local port number (0 = transient, 1..1FFh = well-known port) 0Ch DWORD far pointer to socket handle buffer (2 bytes) 10h DWORD far pointer to IPC port buffer (16 bytes) SeeAlso: #03445Top
INT 61 - Banyan VINES - SEND MESSAGE ON A SOCKET AX = 000Fh subfn 0002h CX:BX -> request block (see #03447) DX = application's data segment (should be = CX) ES = DS Return: AX = status 0000h successful 00A5h resource not available Desc: send data to a socket identified by its socket handle Format of request block: Offset Size Description (Table 03447) 00h WORD 0002h 02h WORD magic number (FEFEh) 04h WORD buffer for return code (set to 0 before calling) 06h WORD reserved (will be set to client DS) 08h WORD reserved (obviously not used; set to 0 before calling) 0Ah DWORD far pointer to parameter block (see #03448) 0Eh WORD process handle (see AX=000Fh/SF=0008h) Format of parameter block: Offset Size Description (Table 03448) 00h WORD buffer for estimated communication cost in 220 msec ticks 02h WORD buffer for return code (set to 0 before calling) 04h WORD socket handle 06h DWORD far pointer to IPC/SPP message buffer 0Ah WORD length of IPC/SPP message buffer 0Ch WORD option flags bit 0: asynchronous communication bit 1: reliable message bit 3: end of message bit 4: vectored I/O 0Eh 16 BYTEs socket address (IPC port of source) 1Eh WORD not used (set to 0 before calling) 20h WORD SPP connection id (0 for IPC messages) 22h WORD request type (1 = data, 2 = connect SPP, 3 = disconnect SPP) SeeAlso: #03447Top
INT 61 - Banyan VINES - CLOSE SOCKET AX = 000Fh subfn 0004h CX:BX -> request block (see #03449) DX = application's data segment (should be = CX) ES = DS Return: AX = status 0000h successful 00A5h resource not available Desc: Closes a socket identified by its socket handle Format of request block: Offset Size Description (Table 03449) 00h WORD 0004h 02h WORD magic number (FEFEh) 04h WORD buffer for return code (set to 0 before calling) 06h WORD reserved (will be set to client DS) 08h WORD reserved (obviously not used; set to 0 before calling) 0Ah DWORD far pointer to socket handle (2 bytes) 0Eh WORD process handle (see AX=000Fh/SF=0008h)Top
INT 61 - Banyan VINES - GET PROCESS HANDLE AX = 000Fh subfn 0008h CX:BX -> request block (see #03450) DX = application's data segment (should be = CX) ES = DS Return: AX = status 0000h successful 00A5h resource not available Desc: Returns a process handle to be used in other request blocks Notes: This function is a prerequisite to all AX=000Fh subfunctions which expect a process handle in the request block Although subsequent calls from the same application return different process handles, there seem to be no restrictions on how many times an application may call this function (in fact, the code in the VINES toolkit library always calls it before issueing other AX=000Fh calls) Format of request block: Offset Size Description (Table 03450) 00h WORD 0008h 02h WORD magic number (FEFEh) 04h WORD buffer for return code (set to 0 before calling) 06h WORD reserved 08h WORD reserved (obviously not used; set to 0 before calling) 0Ah DWORD process type (1 = transient, 2 = resident; destroyed on exit) 0Eh WORD buffer for process handleTop
INT 61 - Banyan VINES - INTERFACE TO NBNS AX = 0010h other parameters, if any, unknownTop
INT 61 - Banyan VINES - CHECK SERVICE AH = 01h AL = service ID (see #03451) Return: AX = status 0000h installed 0001h not installed 0002h invalid ID 0003h invalid function Note: Only the offset part of the service pointer is checked for a nonzero value SeeAlso: AH=00h,AH=02h"VINES",AH=03h"VINES" (Table 03451) Values for VINES service ID: 01h communications 02h primary 3270 emulation 03h async terminal emulation 04h file deflection 05h print service control 06h get address of something 07h StreetTalk access service 08h environment 09h NETBIOS client service 0Ah secondary 3270 emulation 0Bh semaphore service 0Ch 3270 emulation active status 0Dh T3270 keyboard interrupt simulator 0Eh enhanced 3270 service 0Fh comm Windows entry point 10h interface to NBNSTop
INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL AH = 01h BX = 0000h DH = tag number DL = device number DS:SI -> buffer to send to kernel ES:DI -> integer containing size of buffer Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Range: INT 20 to INT E0, selected by configuration Notes: there are a large number of tags available; the items returned all refer to local kernel configuration, and are not needed in normal use. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=02h"PC/TCP"Top
INT 61 - Banyan VINES - GET REVISION NUMBER AH = 02h DS:DX -> 2-byte buffer for result Return: AX = 0000h installed DS:DX buffer contains revision number as 10000d * major_ver + 100d * minor_ver + patch_revision SeeAlso: AH=01h"VINES",AH=04h"VINES",AH=07h"VINES"Top
INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO AH = 02h BX = 0000h DH = tag number DL = device number DS:SI -> buffer for result (up to 48 bytes for version <= 2.2) ES:DI -> integer containing size of buffer Return: CF clear if successful Data loaded into specified buffer, and size value altered CF set on error AX = error code (see #03319 at INT 61"FTP Software") Range: INT 20 to INT E0, selected by configuration Notes: there are a large number of tags available; the items returned all refer to local kernel configuration, and are not needed in normal use. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"Top
INT 61 - Banyan VINES - INSTALL SERVICE HANDLER AH = 03h AL = service ID (see #03451) DS:DX -> new service handler Return: AX = 0000h successful SeeAlso: AH=00h,AH=01h"VINES",AH=02h"VINES",AH=05h"VINES"Top
INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE AH = 04h DS:DX -> 2-byte buffer containing the VINES revision number DS:DX buffer contains revision number as 10000d * major_ver + 100d * minor_ver + patch_revision Return: AX = status 0000h valid version 0004h out of range Note: For Revision 5.53, the valid range is 4.10(0) to 6.19(99) SeeAlso: AH=02h"VINES",AH=07h"VINES",AH=08h"VINES"Top
INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR AH = 05h BX = network descriptor Return: CF clear if successful DX:AX = Internet address of ND CF set on error AX = error code (see #03319 at INT 61"FTP Software") InstallCheck: test for the signature "TCPTSR" three bytes beyond the start of the interrupt handler Range: INT 20 to INT E0, selected by configuration SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP" SeeAlso: INT 63/AH=25h"BW-TCP"Top
INT 61 - Banyan VINES - READ PCCONFIG BYTES AH = 05h CX = number of bytes to copy (max. 0175h for VINES 4.00, max. 017Fh for VINES 4.10+) SI = offset of area to be copied (see #03452,#03453) Return: AX = status 0000h successful 0004h out of range Notes: The PCCONFIG area is located in the code segment of the BANV handler To find out which PCCONFIG structure applies, call this function first with CX=0006h to get the VINES revision number SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=06h"VINES",AH=0Bh"VINES" Format of PCCONFIG area (VINES 4.00): Offset Size Description (Table 03452) 00h 6 BYTEs VINES revision (ASCII, zero-padded) 06h 2 BYTEs NEWREV-number (ASCII, two digits) 08h WORD hardware interrupt level 0Ah WORD DMA channel 0Ch WORD I/O address 0Eh DWORD adapter ROM address (linear) 12h DWORD adapter RAM address (linear) 16h WORD BANV interrupt 18h 32 BYTEs default login group #1 38h 32 BYTEs default login group #2 58h 32 BYTEs default login group #3 78h WORD semaphore locking support flag 7Ah WORD extended StreetTalk flag 7Ch WORD maximum number of file volumes 7Eh WORD NetBIOS flag 80h 60 BYTEs default network adapter BCh 60 BYTEs default communications driver F8h WORD maximum number of SPP connections FAh WORD maximum number of open sockets FCh WORD communications buffer size (10..60 KB) FEh 20 BYTEs location directory on drive Z: 112h 33 BYTEs auxiliary configuration area #1 (see #03454) 133h 33 BYTEs auxiliary configuration area #2 154h 33 BYTEs auxiliary configuration area #3 SeeAlso: #03453 Format of PCCONFIG area (VINES 4.10+): Offset Size Description (Table 03453) 00h 6 BYTEs VINES revision (ASCII, zero-padded) 06h 2 BYTEs NEWREV-number (ASCII, two digits) 08h WORD hardware interrupt level 0Ah WORD DMA channel 0Ch WORD I/O address 0Eh DWORD adapter ROM address (linear) 12h DWORD adapter RAM address (linear) 16h WORD BANV interrupt 18h 32 BYTEs default login group #1 38h 32 BYTEs default login group #2 58h 32 BYTEs default login group #3 78h WORD semaphore locking support flag 7Ah WORD extended StreetTalk flag 7Ch WORD named pipes support flag 7Eh WORD maximum number of file volumes 80h WORD NetBIOS flag 82h 60 BYTEs default network adapter BEh 60 BYTEs default communications driver FAh WORD maximum number of SPP connections FCh WORD maximum number of open sockets FEh WORD communications buffer size (10..60 KB) 100h WORD number of mailslots 102h WORD maximum number of open files 104h WORD maximum number of NetBIOS sessions 106h WORD maximum number of NetBIOS commands 108h 20 BYTEs location directory on drive Z: 11Ch 33 BYTEs auxiliary configuration area #1 (see #03454) 13Dh 33 BYTEs auxiliary configuration area #2 15Eh 33 BYTEs auxiliary configuration area #3 Format of auxiliary configuration area: Offset Size Description (Table 03454) 00h 16 BYTEs item name (no zero terminator if length = 16) 10h BYTE item value type (1=text, else numeric) 11h 16 BYTEs item value (string if type 1, else DWORD) SeeAlso: #03452,#03453Top
INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS AH = 06h BX = network descriptor (must be allocated and open) DS:SI -> 38-byte buffer for interface statistics (see #03455) Return: CF clear if successful buffer filled CF set on error AX = error code (see #03319) Desc: returns the statistics relevant to the particular network interface used by the specified network descriptor Range: INT 20 to INT E0, selected by configuration SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP" Format of PC/TCP interface statistics: Offset Size Description (Table 03455) 00h WORD interface class (e.g. 802.3) 02h WORD type (manufacturer) of interface 04h WORD interface number 06h DWORD (big-endian) IP address of interface 0Ah DWORD subnet mask 0Eh WORD 0001h if interface is up 10h DWORD total packets received 14h DWORD total packets sent 18h DWORD receive errors 1Ch DWORD send errors 20h WORD length of local net address (e.g. 0006h for Ethernet) 22h DWORD pointer to local net addressTop
INT 61 - Banyan VINES - GET PCCONFIG BASE ADDRESS AH = 06h DS:DX -> 4-byte buffer for far pointer to PCCONFIG area Return: AX = 0000h successful Note: The PCCONFIG area is located in the code segment of the BANV handler SeeAlso: AH=05h"VINES",AH=0Bh"VINES"Top
INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL AH = 07h BX = local network descriptor Return: CF clear if successful AX = global network descriptor CF set on error AX = error code (see #03319) Notes: the new network descriptor can be accessed from all processes and is independent of DOS this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP" SeeAlso: INT 61/AH=29hTop
INT 61 - Banyan VINES - GET VINES REVISION NUMBER (LONG) AH = 07h DS:DX -> 4-byte buffer for result Return: AX = 0000h successful DS:DX buffer contains revision number as 10000d * major_ver + 100d * minor_ver + patch_revision SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=08h"VINES"Top
INT 61 - Atari Portfolio - FORMAT CREDIT CARD MEMORY AH = 07h AL = drive number (00h = A:,01h = B:) Return: CF clear if successful CF set on error AH = error code (see #00234 at INT 13/AH=01h) Note: do not use this function to format the internal disk (drive number 02h) SeeAlso: AH=00h"Portfolio",AH=08h"Portfolio",AH=09h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR AH = 08h BX = network descriptor Return: CF clear if successful AX = 0000h (BWPCTCP shim) CF set on error AX = error code (see #03319) Range: INT 20 to INT E0, selected by configuration Note: the descriptor will be closed and resources released. If a stream descriptor, the protocol (FIN etc) is completed unless the non-blocking option has been set. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP" SeeAlso: INT 63/AH=0Eh"BW-TCP"Top
INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE (LONG) AH = 08h DS:DX -> 4-byte buffer containing the VINES revision number DS:DX buffer contains revision number as 10000d * major_ver + 100d * minor_ver + patch_revision Return: AX = status 0000h valid version 0004h out of range Note: For Revision 5.53, the valid range is 4.10(0) to 6.19(99) SeeAlso: AH=04h"VINES",AH=07h"VINES"Top
INT 61 - Atari Portfolio - GET SIZE OF INTERNAL DISK AH = 08h Return: AX = segment address of RAMdisk BX = size in KB SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=09h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS AH = 09h Return: CF clear Range: INT 20 to INT E0, selected by configuration Notes: this call performs function 08h on every non-global network descriptor. Global descriptors must be released individually. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP" SeeAlso: INT 63/AH=0Eh"BW-TCP"Top
INT 61 - Banyan VINES - GET VALUE OF AN OS/2 BACKEND VARIABLE AH = 09h other parameters, if any, unknown SeeAlso: AH=0Ah"VINES"Top
INT 61 - Atari Portfolio - FORMAT INTERNAL DISK AH = 09h BX = desired size of disk in KB Return: CF clear if successful CF set on error BX = maximum possible size in KB Desc: resize and erase the internal RAMdisk, then reboot the system SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=08h"Portfolio" SeeAlso: AH=0Bh"Portfolio"Top
INT 61 - PC/TCP kernel v2.05 - "net_send" - ??? AH = 0Ah ??? Return: ??? Notes: this function is described as "unused" in the v2.05 and v2.2 documentation this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: AH=0BhTop
INT 61 - Banyan VINES - SET VALUE OF AN OS/2 BACKEND VARIABLE AH = 0Ah other parameters, if any, unknown SeeAlso: AH=09h"VINES"Top
INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ??? AH = 0Bh ??? Return: ??? Range: INT 20 to INT E0, selected by configuration Notes: this function is described as "unused" in the v2.05 and v2.2 documentation this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: AH=0AhTop
INT 61 - Banyan VINES - SET PCCONFIG IN BACKEND AH = 0Bh other parameters, if any, unknown SeeAlso: AH=05h"VINES",AH=06h"VINES"Top
INT 61 - Atari Portfolio - DETERMINE CCM VALIDITY AH = 0Bh AL = drive number (00h = A:,01h = B:) Return: CF clear if successful (card present and correct) CF set on error AH = error code (see #00234 at INT 13/AH=01h) SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=0Dh"Portfolio"Top
INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
AH = 0Ch
BX = network descriptor or one of the following:
FFFCh for kernel ICMP statistics (see #03459)
FFFDh for kernel UDP statistics (see #03458)
FFFEh for kernel IP statistics (see #03457)
FFFFh for kernel TCP statistics (see #03456)
DS:DX -> 64-byte buffer
Return: CF clear if successful
buffer filled
CF set on error
AX = error code (see #03319)
Notes: the fields filled in for a network descriptor depend on the protocol
family used by that descriptor's connection
this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
Format of PC/TCP kernel TCP statistics:
Offset Size Description (Table 03456)
00h 16 BYTEs unused
10h DWORD bytes sent
14h DWORD bytes received
18h 8 BYTEs unused
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad checksums
2Ch DWORD count of window ignored by remote
30h DWORD timeouts
34h DWORD resets
38h DWORD duplicate packets
3Ch DWORD retransmits
SeeAlso: #03457,#03458,#03459
Format of PC/TCP kernel IP statistics:
Offset Size Description (Table 03457)
00h 8 BYTEs unused
08h DWORD invalid IP header length errors
0Ch DWORD protocol errors (unwanted packets)
10h DWORD duplicate fragments received
14h DWORD bad fragments received
18h DWORD security errors
1Ch DWORD count of bad IP addresses received
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad checksums received
2Ch DWORD total IP protocol errors
30h DWORD fragmentation errors
34h DWORD IP packets discarded + bad security + bad fragments
38h DWORD fragments received
3Ch 4 BYTEs unused
SeeAlso: #03456,#03458,#03459
Format of PC/TCP kernel UDP statistics:
Offset Size Description (Table 03458)
00h 28 BYTEs unused
1Ch DWORD packets dropped for lack of buffers
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad checksums
2Ch DWORD port not listening errors
30h 4 BYTEs unused
34h DWORD truncated receives
38h 8 BYTEs unused
SeeAlso: #03456,#03457,#03459
Format of PC/TCP kernel ICMP statistics:
Offset Size Description (Table 03459)
00h DWORD "TimeEx" sent
04h DWORD "TimeEx" received
08h DWORD "ParamProb" sent
0Ch DWORD "ParamProb" received
10h DWORD redirects received
14h DWORD source quenches received
18h DWORD ICMP Echo Requests ("ping") sent
1Ch DWORD ICMP Echo Requests received
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad packets received
2Ch DWORD "DestUn" received
30h DWORD packet send errors
34h DWORD "DestUn" sent
38h DWORD ICMP Echo replies received
3Ch DWORD ICMP Echo replies sent
SeeAlso: #03456,#03457,#03458
Top
INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID AH = 0Dh BX = possible network descriptor Return: CF clear if valid CF set on error AX = error code (see #03319 at INT 61"FTP Software") SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP" SeeAlso: INT 61/AH=22hTop
INT 61 - Atari Portfolio - GET SCREEN SIZE AH = 0Dh Return: AX = physical screen size (AH=rows, AL=columns) DX = logical screen size (DH=rows, DL=columns) SeeAlso: AH=00h"Portfolio",AH=0Bh"Portfolio",AH=0Eh"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK AH = 0Eh BX = maximum value of network descriptor for which to return info DS:DX -> 32-bit (max) array of bit flags for read readiness ES:DI -> 32-bit (max) array of bit flags for write readiness Return: CF clear InstallCheck: test for the signature "TCPTSR" three bytes beyond the start of the interrupt handler Range: INT 20 to INT E0, selected by configuration Notes: bits in the DS:DX buffer are set if the corresponding network descriptor may be read without blocking; bits in the ES:DI buffer are set if the corresponding network descriptor may be written without blocking. This implies that the network descriptor has opened correctly and the protocol initialized. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - GET/SET SCREEN MODE AH = 0Eh AL = function 00h get mode 01h set mode DL = new mode (see #03460) Return: DL = current/old mode Note: if changing the mode places the cursor position or virtual screen origin outside the displayed area, the screen origin will be reset to (0,0), the screen cleared, and the cursor position set to (0,0) SeeAlso: AH=00h"Portfolio",AH=0Dh"Portfolio",AH=0Fh"Portfolio",INT 10/AH=00h Bitfields for Atari Portfolio screen mode: Bit(s) Description (Table 03460) 0 40x8 mode instead of 80x25 1 tracked mode 7 graphics Note: the above bits are mutually exclusiveTop
INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION AH = 0Fh Return: CF clear AX = version (AH = major, AL = minor) BX = patch level Notes: patch levels are no longer used starting with version 2.10; instead, the minor version level is incremented. Beame&Whiteside's BWPCTCP v3.0a shim reports version 2.05, but does not set BX SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - GET/SET CURSOR MODE AH = 0Fh AL = function 00h get mode 01h set mode BL = new cursor mode 00h cursor off 01h underline 02h block 02h force mode (set size to reflect NumLock state) Return: BL = current/old cursor mode SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=10h"Portfolio",INT 10/AH=01hTop
INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL AH = 10h Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Range: INT 20 to INT E0, selected by configuration Note: this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - GET/SET VIRTUAL SCREEN POSITION AH = 10h AL = function 00h get position Return: DH,DL = current row,column 01h set position DH = row DL = column Desc: get or specify the upper-left corner of the 40x8 window into the logical screen SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=0Fh"Portfolio" SeeAlso: AH=11h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS AH = 11h Return: CF clear AX = previous state 0000h async calls were already disabled else async calls were enabled SeeAlso: INT 61"FTP Software",INT 61/AH=12hTop
INT 61 - Atari Portfolio - MOVE VIRTUAL SCREEN ORIGIN AH = 11h AL = number of lines to move DL = direction of move (1=up, 2=down, 3=left, 4=right) SeeAlso: AH=00h"Portfolio",AH=10h"Portfolio",AH=12h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS AH = 12h Return: CF clear AX = previous state 0000h async calls were disabled else async calls were already enabled SeeAlso: INT 61"FTP Software",INT 61/AH=11hTop
INT 61 - Atari Portfolio - SCREEN REFRESH AH = 12h Return: nothing Desc: copy contents of video RAM to LCD controller SeeAlso: AH=10h"Portfolio",AH=11h"Portfolio",AH=15h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION AH = 13h BX = network descriptor (FFFFh for automatic net_getdesc) DX = protocol (see #03461) DS:SI -> buffer for "addr" structure (see #03462) Return: CF clear if successful AX = network descriptor used or allocated CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: resets the connection with AH=19h in various cases will wait for protocol on stream connections unless non-blocking was set with AH=20h SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h SeeAlso: INT 63/AH=14h"BW-TCP" (Table 03461) Values for PC/TCP protocol: 0001h raw net (undocumented) 0002h raw IP 0003h datagram (UDP) 0004h stream (TCP) 0005h raw ICMP Format of structure "addr": Offset Size Description (Table 03462) 00h DWORD Internet address (network order) 04h WORD remote socket number (network order) 06h WORD local socket number (network order) 0000h means "you choose" 08h BYTE protocol (see #03461)Top
INT 61 Ou - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED AH = 14h BX = network descriptor Return: CF set AX = 0018h (see #03319 at INT 61"FTP Software") Notes: displays error message "Illegal system call! Please upgrade your PCserver software" to standard output this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15hTop
INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ??? AH = 15h ??? Return: ??? Notes: this function is described as "unused" in the v2.2 documentation this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61/AH=0Bh,INT 61/AH=14hTop
INT 61 - Atari Portfolio - SOUND GENERATION AH = 15h AL = function 00h key click 01h beep 02h alarm Return: nothing SeeAlso: AH=00h"Portfolio",AH=12h"Portfolio",AH=16h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER AH = 16h BX = network descriptor DS:DX -> 9-byte buffer for "addr" structure (see #03462) Return: CF clear if successful buffer filled CF set on error AX = error code (see #03319 at INT 61"FTP Software") Range: INT 20 to INT E0, selected by configuration SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - MELODY TONE GENERATOR AH = 16h CX = length of tones in 1/100 sec DL = tone code (see #03463) SeeAlso: AH=15h"Portfolio",AH=17h"Portfolio" (Table 03463) Values for Atari Portfolio tone code: 04h A6#01864.7 Hz 05h B6 1975.5 Hz 06h D7 2348.3 Hz 07h D7# 2489.0 Hz 0Eh F6# 1480.0 Hz 25h C7 2093.0 Hz 29h D6 1174.7 Hz 2Ch G6# 1661.2 Hz 2Fh C7# 2217.5 Hz 30h D5# 622.3 Hz 31h E5 659.3 Hz 32h F5 698.5 Hz 33h F5# 740.0 Hz 34h G5 784.0 Hz 35h G5# 830.6 Hz 36h A5 880.6 Hz 37h A5# 932.3 Hz 38h B5 987.8 Hz 39h C6 1046.5 Hz 3Ah C6# 1108.7 Hz 3Bh D6# 1244.5 Hz 3Ch E6 1318.5 Hz 3Dh F6 1396.9 Hz 3Eh G6 1568.9 Hz 3Fh A6 1760.0 HzTop
INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION AH = 17h Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: this routine is deprecated in v2.1+ and will eventually be withdrawn; in v2.1+, this function calls AH=01h which should be used instead this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"Top
INT 61 - Atari Portfolio - DIAL NUMBER AH = 17h DS:SI -> ASCII string containing number to dial CX = length of string Note: valid characters for string are "0123456789ABCD*#" SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=16h"Portfolio" SeeAlso: AH=18h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION AH = 18h BX = network descriptor Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: a TCP "FIN" command is sent and no further data may be transmitted, although the connection remains open SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP" SeeAlso: INT 63/AH=0Eh"BW-TCP"Top
INT 61 - Atari Portfolio - MUTE STATES
AH = 18h
AL = function
00h get mute state
01h set mute state
02h get key click state
03h set key click state
04h get beep state
05h set beep state
06h get alarm state
07h set alarm state
08h get DTMF duration
09h set DTMF duration
DL = new state ("set" functions) (00h off [muted], 01h on)
Return: DL = current state ("get" functions) (00h off [muted], 01h on)
SeeAlso: AH=15h"Portfolio",AH=16h"Portfolio",AH=17h"Portfolio"
SeeAlso: AH=19h"Portfolio"
Top
INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION AH = 19h BX = network descriptor Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Desc: immediately destroys the specified connection Note: send a TCP "RST" command if a stream connection is open SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=24hTop
INT 61 - Atari Portfolio - GET SERIAL PORT PARAMETERS AH = 19h DX = serial port number Return: AH = status 00h successful AL = composite parameters (see #00300 at INT 14/AH=00h"SERIAL") other error SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=1Ah"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK AH = 1Ah BX = network descriptor CX = number of bytes to transmit (0000h allowed) DX = send options (see #03464) DS:SI -> data to be written Return: CF clear if successful AX = number of bytes actually written DX = ??? CF set on error AX = error code (see #03319 at INT 61"FTP Software") InstallCheck: test for the signature "TCPTSR" three bytes beyond the start of the interrupt handler Range: INT 20h to INT E0h, selected by configuration SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch SeeAlso: INT 63/AH=19h"BW-TCP",INT 63/AH=1Bh"BW-TCP" Bitfields for PC/TCP send options: Bit(s) Description (Table 03464) 0 signal "URG"ent data 3 attempt rerouting on non-stream calls if first attempt fails 4 send data with PUSH flag (no override of Nagle) 5 fail rather than truncating datagram 6 fail rather than blocking 7 broadcast packetTop
INT 61 - Atari Portfolio - GET PERIPHERAL ID BYTE AH = 1Ah Return: AH = peripheral ID byte AL = 00h if no peripheral installed Desc: get the ID code for the current terminating peripheral SeeAlso: AH=00h"Portfolio",AH=18h"Portfolio",AH=1Bh"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK AH = 1Bh BX = network descriptor CX = maximum number of bytes to read DX = receive options (see #03465) DS:SI -> buffer for data ES:DI -> "addr" structure (see #03462) for remote from which to read 0000h:0000h for any Return: CF clear if successful AX = number of bytes actually read DX = ??? CF set on error AX = error code (see #03319 at INT 61"FTP Software") SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh Bitfields for PC/TCP receive options: Bit(s) Description (Table 03465) 1 do not remove data from queue, just copy it 2 do not copy data, just remove it from queue 5 fail if datagram would be truncated 6 do not block, return error if no data available Note: special case for UDP: if both 1 and 2 set, return number of datagramsTop
INT 61 - Atari Portfolio - SET PERIPHERAL ID BYTE AH = 1Bh AL = which peripheral to set 00h serial 01h parallel DL = peripheral ID Return: nothing Desc: specify that a peripheral is compatible with the BIOS serial or parallel services SeeAlso: AH=1Ah"Portfolio",AH=1Ch"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM AH = 1Ch BX = network descriptor CX = number of bytes to transmit (0000h allowed) DX = send options (see #03464) DS:SI -> data to be written ES:DI -> "addr" structure (see #03462) Return: CF clear if successful AX = number of bytes actually written DX = ??? CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: this function differs from AH=1Ah in that the address and socket numbers can be overridden SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh SeeAlso: INT 63/AH=21h"BW-TCP"Top
INT 61 - Atari Portfolio - PRESET/GET PERIPHERAL DATA AH = 1Ch AL = function 00h preset data values BL = data value DX = I/O address 01h get data values BH = table entry number (04h-09h) Return: if function 01h BL = data value DX = I/O address Desc: preset peripheral I/O data in a table mapping I/O addresses to data values; function 00h additionally outputs the data value to the I/O port SeeAlso: AH=1Ah"Portfolio",AH=1Bh"Portfolio",AH=1Eh"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM AH = 1Dh BX = network descriptor CX = maximum number of bytes to read DX = receive options (see #03464) DS:SI -> buffer for received data ES:DI -> 9-byte buffer containing "addr" structure (see #03462) Return: CF clear if successful AX = number of bytes read DX = ??? CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: this function can read from any host or a designated host depending on settings in the "addr" structure only for use with datagram or Raw descriptors SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1ChTop
INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA AH = 1Eh BX = network descriptor Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Range: INT 20 to INT E0, selected by configuration Notes: bufferred data is transmitted immediately, overriding Nagle's algorithm if necessary this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - GET/SET CLOCK TICK SPEED AH = 1Eh AL = function 00h get speed 01h set speed BX = clock tick speed 0000h tick every 128 seconds 0001h tick every second Return: if function 00h BX = clock tick speed Note: the faster tick speed also uses more power SeeAlso: AH=00h"Portfolio",AH=1Ch"Portfolio",AH=1Fh"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK AH = 1Fh BX = network descriptor CX = event type (see #03466) DS:SI -> event handler routine (see #03467) ES:DI = 32-bit hint passed to handler Return: CF clear if successful DS:DX -> previous handler CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: ICMP messages do not trigger events on stream connections SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP" (Table 03466) Values for PC/TCP event type: 00h alarm 01h open (successfully opened stream connection) 02h receive (data available) 03h transmit (ACK received on stream connection) 04h transmit flush??? 05h foreign close (remote host closed data connection) 06h close (local host closed connection and protocol is complete) 07h error (error code passed to handler as arg) (Table 03467) Values PC/TCP user event handler is called with: BX = network descriptor CX = event type (see #03466) DS:DX -> arg ES:DI = 32-bit hint value STACK: small stack, possibly the DOS stackTop
INT 61 - Atari Portfolio - GET KEY/NMI-INVOKED SCREEN REFRESH AH = 1Fh AL = function 00h get state 01h set state DH = new refresh-on-NMI state (00h disabled, 01h enabled, bit 7 set = don't change) DL = new refresh-on-key state Return: DH,DL = current/old states SeeAlso: AH=00h"Portfolio",AH=1Eh"Portfolio",AH=20h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR AH = 20h BX = network descriptor CX = length of buffer (usually 04h) DS:DX -> buffer containing option SI = (ignored by v2.2-) DI = option to set (see #03468) Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: Beame&Whiteside's BWPCTCP shim only supports options 01h and 0Bh; all others return CF clear v2.11 reportedly stores the actual 32-bit value of an option in DS:DX rather than using a buffer in memory SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=21h (Table 03468) Values for PC/TCP option to get or set: 01h set non-blocking mode if non-zero 02h timeout of call in milliseconds 03h user-defined 4-byte magic cookie (not used by kernel) 04h TCP window or UDP buffer count (WORD, unsigned) 06h do TCP keep-alives if non-zero 09h (v2.1+) set IP precedence 0Ah (v2.1+) set IP type of service 0Bh use a privileged port if port = 0 0Ch turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah) Note: use "C" true or false values for boolean optionsTop
INT 61 - Atari Portfolio - GET/SET INT 09 REVECTORING AH = 20h AL = function 00h get INT 09 revectoring state 01h set state DL = new state (00h disable, 01h enable) Return: if function 00h DL = new state (00h disabled, 01h enabled) Desc: specify whether INT 09 is automatically revectored to the BIOS, preventing applications from using their own INT 09 handler on the incompatible keyboard hardware SeeAlso: AH=1Eh"Portfolio",AH=1Fh"Portfolio",AH=24h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR AH = 21h BX = network descriptor CX = length of buffer DS:DX -> buffer for return values SI = 0004h (ignored by v2.2-) DI = option (see #03468) Return: CF clear if successful DS:DX -> value (usually 32 bits) returned by selected option CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim v2.11 reportedly stores the actual 32-bit value of an option in DS:DX rather than using a buffer in memory SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=20hTop
INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR AH = 22h Return: CF clear if successful AX = network descriptor CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: the descriptor will be an integer in the range 00h-1Fh, and a DOS call is made to allocate this as a file descriptor. Hence a number may not refer to a PC/TCP network descriptor and a DOS file handle simultaneously. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29hTop
INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS AH = 23h BX = network descriptor or FFFFh to allocate descriptor DX = type of service DS:SI -> "addr" structure (see #03462) Return: CF clear if successful AX = network descriptor CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: type of service and "addr" structure are as for AH=13h any of the address structure can be zero; normally local socket number is filled in prior to call SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h SeeAlso: INT 63/AH=12h"BW-TCP"Top
INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS AH = 24h Return: always successful Note: performs "net_abort" (AH=19h) on all open non-global descriptors SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=19hTop
INT 61 - Atari Portfolio - GET/SET ROM/CCM SPACE STATE AH = 24h AL = function 00h get state 01h set state DL = new ROM state (see #03469) DH = new CCM state (see #03470) Return: CF clear if successful DL = current/old ROM state DH = current/old CCM state CF set on error (invalid option or other error) Desc: control whether memory cards or an extension ROM are visible in the range 000C0000h to 000DFFFFh SeeAlso: AH=00h"Portfolio",AH=20h"Portfolio",AH=26h"Portfolio" (Table 03469) Values for Atari Portfolio ROM space state: 00h normal application ROM 01h CCM drive A: 02h CCM drive B: 03h expansion ROM SeeAlso: #03470 (Table 03470) Values for Atari Portfolio CCM space state: 00h CCM drives disabled 01h CCM drive A: permanently enabled 02h CCM drive B: permanently enabled SeeAlso: #03469Top
INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS AH = 25h DX,BX = IP address in network order CX = length of buffer for name DS:SI -> buffer for host name Return: CF clear if successful buffer filled with ASCIZ host name CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: this function will use the host table and or DNS to resolve the address, depending on kernel configuration. Use this call for the normal gethostbyaddr function. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27hTop
INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE AH = 26h DX,BX = IP address in network order CX = length of buffer DS:SI -> buffer for host name Return: CF clear if successful buffer filled with ASCIZ host name CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: normally one would use AH=25h instead of this function this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27hTop
INT 61 - Atari Portfolio - GET/SET POWER CONTROL AH = 26h AL = function 00h get state 01h set state DL = new state 00h normal power-down on low battery 01h no power-down, but display warning 02h no power-down, no warning on low battery Return: AL = current/old state SeeAlso: AH=00h"Portfolio",AH=24h"Portfolio",AH=28h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS AH = 27h DX,BX = IP address in network order CX = length of buffer DS:SI -> buffer for host name Return: CF clear if successful buffer filled with ASCIZ host name CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: normally one would use AH=25h instead of this function SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26hTop
INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS AH = 28h BX = network descriptor 1 CX = network descriptor 2 Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: the two descriptors will exchange places; both must be local or both global SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - GET/SET TEXT/KEYBOARD LANGUAGE AH = 28h AL = function 00h get languages 01h set languages DH = new text language (set bit 7 to leave unchanged) DL = new keyboard language (set bit 7 to leave unchanged) 03h get language table pointers Return: if function 00h or 01h: DH = current/old text language DL = current/old keyboard language if function 03h ES:CX -> keyboard table (see #03471) ES:DX -> language table (see #03471) SeeAlso: AH=24h"Portfolio",AH=26h"Portfolio",AH=2Ch"Portfolio" Format of Atari Portfolio language table: Offset Size Description (Table 03471) 00h BYTE number of languages supported 01h N BYTEs supported languages 00h English 01h French 02h German 03h Spanish 04h Italian 05h Swedish 06h DanishTop
INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR AH = 29h Return: CF clear if successful AX = network descriptor CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: use this function rather than AH=22h to avoid a DOS call by the PC/TCP kernel; the returned descriptor will be >= 40h and cannot be used with "net_select" (AH=0Eh) SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP" SeeAlso: INT 61/AH=22hTop
INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION AH = 2Ah DS:SI -> 26-byte buffer for configuration information (see #03472) Return: CF clear AX = 0000h buffer filled Notes: size of buffer may vary with kernel version; 26 bytes is the size for versions 2.05 through 2.2 this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP" Format of PC/TCP configuration information: Offset Size Description (Table 03472) 00h BYTE maximum TCP connections available 01h BYTE maximum UDP connections available 02h BYTE maximum IP connections available 03h BYTE maximum Raw Net connections available 04h BYTE number of TCP connections currently in use 05h BYTE number of UDP connections currently in use 06h BYTE number of IP connections currently in use 07h BYTE number of Raw Net connections currently in use 08h WORD number of local network descriptors active 0Ah WORD number of global network descriptors active 0Ch BYTE maximum header size on network 0Dh BYTE maximum trailer size on network 0Eh WORD size of large packet buffer 10h WORD number of network interfaces attached 12h DWORD milliseconds since kernel started 16h DWORD IP broadcast addressTop
INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT AH = 2Bh BX = network descriptor CX,DX = time before alarm in milliseconds DS:SI -> handler which will receive call (see #03467 at INT 61/AH=1Fh) ES:DI = 32-bit cookie passed to handler Return: CF clear if successful CF set on error AX = error code (see #03319 at INT 61"FTP Software") Notes: this function will cause a NET_AS_ALARM to be generated; it is intended for TSRs, etc. to regain control periodically this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - GET VERSION
AH = 2Ch
Return: DS:BX -> BIOS version string ('$'-terminated)
SeeAlso: AH=28h"Portfolio",AH=2Dh"Portfolio"
Top
INT 61 - Atari Portfolio - TURN SYSTEM OFF AH = 2Dh Return: nothing SeeAlso: AH=00h"Portfolio",AH=2Ch"Portfolio",AH=2Eh"Portfolio"Top
INT 61 - Atari Portfolio - ENABLE/DISABLE SYSTEM STATUS LINE AH = 2Eh AL = new state 00h disabled 01h enabled DH,DL = row,column at which to display Return: nothing SeeAlso: AH=00h"Portfolio",AH=2Dh"Portfolio",AH=30h"Portfolio"Top
INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING) AH = 30h BX,DX = IP address of host CX = length of data to send Return: CF clear if successful (i.e. reply received) CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"Top
INT 61 - Atari Portfolio - FILE TRANSFER SERVICES AH = 30h AL = function 00h transmit block CX = number of bytes to send 01h receive block CX = buffer size 02h open ports 03h close ports 04h wait 500ms DS:DX -> start of data buffer Return: DL = status 00h successful 01h buffer too small 02h transmission timeout 03h checksum failure 04h invalid subfunction 05h peripheral not installed if function 01h: CX = number of bytes received SeeAlso: AH=00h"Portfolio",AH=2Eh"Portfolio"Top
INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel AH = function 31h "net_add_route" 32h "net_del_route" 33h "net_dump_routes" Notes: these functions are described as "unused" in the v2.2 documentation router configuration can be altered using INT 61/AH=01h this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shimTop
INT 61 U - PC/TCP kernel v2.3 - GET ??? AH = 32h Return: AX = ??? Note: this function is fully re-entrant, and may be called even when another PC/TCP kernel call is already in progressTop
INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ??? AH = 34h ??? Return: ??? Notes: this function is described as "reserved" in the v2.2 documentation this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shimTop
INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS AH = 50h DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars) Return: CF clear if successful DX:AX -> IP address CF set on error AX = error code (see #03319 at INT 61"FTP Software") Range: INT 20 to INT E0, selected by configuration SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54hTop
INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE AH = 51h CX = size of destination buffer DS:DX -> ASCIZ host name (max 127 chars) ES:DI -> destination buffer or 0000h:0000h Return: CF clear if successful DX:AX -> IP address of host destination buffer filled with canonical host name CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: this function calls DOS, and can fail if the DOS call fails SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54hTop
INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS AH = 52h CX = size of destination buffer DS:DX -> ASCIZ host name (max 127 chars) ES:DI -> destination buffer or 0000h:0000h Return: CF clear if successful DX:AX -> IP address of host destination buffer filled with canonical host name CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: this function will poll all configured domain name servers if necessary SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54hTop
INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116 AH = 53h DS:DX -> ASCIZ name to be resolved (max 127 chars) Return: CF clear if successful DX:AX -> IP address of host CF set on error AX = error code (see #03319 at INT 61"FTP Software") Range: INT 20 to INT E0, selected by configuration Note: this function is not supported by v2.10+ SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54hTop
INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME AH = 54h CX = size of destination buffer DS:DX -> ASCIZ host name (max 127 chars) ES:DI -> destination buffer or 0000h:0000h Return: CF clear if successful DX:AX -> IP address of host destination buffer filled with canonical host name CF set on error AX = error code (see #03319 at INT 61"FTP Software") Note: this function uses all configured methods in turn to resolve the name (numerical, then host table, then DNS, then IEN116) BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values greater than 54h in AH may crash the system. Other kernels may have this bug as well; it has been fixed in the v2.2 SLIPDRV kernel. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h SeeAlso: INT 61/AH=52h,INT 61/AH=53hTop
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 55h ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 56h ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 57h ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 58h ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 59h ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 5Ah ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 5Bh ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 5Ch ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 5Dh ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 5Eh ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
INT 61 U - PC/TCP kernel v2.3 - ??? AH = 5Fh ??? Return: ??? SeeAlso: INT 61"FTP Software"Top
Top
INT 62 - reserved for user interruptTop
INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA Notes: this vector stores the third four bytes of the parameter table for hard disk 0 SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"Top
INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!) Desc: the low word of this vector contains the segment of the RAM data area to be used by the expansion ROM at F400h:2000h, and the high word contains the length of the data area; this segment and size are both set to 0000h if no ROM is installed at F400h:2000h SeeAlso: INT 61"TI Professional PC",INT 63"TI Professional" SeeAlso: INT 66"TI Professional PC"Top
INT 62 - HP 95LX - USED BY CALCULATOR SeeAlso: INT 60/DI=0104h"HP 95LX"Top
INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ??? AH = function (00h to 07h) CX = FFFEh DX = FFFFh ??? Return: ??? InstallCheck: test for the string "DBLIBRARY" two bytes past the interrupt handler SeeAlso: AH=08h"SQL" Index: installation check;MS SQL Server|installation check;Sybase DBLIBRARYTop
INT 62 - MPAUSE - ??? details not yet avialable Program: MPAUSE is a program by Manfred Michael which appeared in the German _EGA-Handbuch_ from m&t-VerlagTop
INT 62 - XFS v1.76 - FILTERED PACKET DRIVER API Program: XFS is a shareware Network File System client by Robert Juhasz Desc: XFS requires a packet driver to operate. Since it does redirections, etc., it provides its own packet driver entry point, changing the signature string of the original packet driver to "XKT DRVR" so that it will no longer be found by the packet driver installation check InstallCheck: scan for the signature string "PKT DRVR" three bytes past the interrupt handler (the same as that for the packet driver specification) Range: INT 61 to INT 66, selected by scanning for two consecutive free vectors and hooking the second SeeAlso: INT 60"Packet Driver Specification",INT 61"XFS"Top
INT 62 - PC-DRAFT - PRIMARY DISPLAY DRIVER ??? Return: ??? Program: PC-DRAFT is a powerful CAD environment by rhv. SeeAlso: INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET PHYSICAL HARDWARE ADDRESS AH = 00h DS:DX -> 6-byte buffer for address Return: AX = length of hardware address??? Range: INT 4C to INT FB, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=01h"ETHDEV",AH=04h"ETHDEV",AH=09h"ETHDEV",AH=0Eh"ETHDEV" SeeAlso: AH=14h"ETHDEV",AH=18h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP" SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"Top
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE AX = 0000h BX = page number (0000h-003Fh) Return: AX = status (0000h,0001h,0007h,0008h) (see #03473) Program: FGDRIVER is the external video driver for the shareware Fastgraph/Light by Ted Gruber Software InstallCheck: test for the signature "FG" ten bytes beyond the start of the interrupt handler Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) The amount of memory required by the virtual video page depends on the current video mode SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0038h Index: installation check;Fastgraph/Light (Table 03473) Values for FGDRIVER status: 0000h successful 0001h specified page is a physical or logical page 0007h virtual page created/released, but memory control blocks corrupted 0008h not enough memory 0009h attempt to free a page which was never created FFFCh insufficient memory FFFDh page already created, or exists as physical or virtual page FFFEh invalid page number FFFFh memory manager not initialized SeeAlso: #03474 (Table 03474) Values for FGDRIVER functions (by driver version): Name v1.10 v3.03 v4.02 FG_ALLOCATE 0042h 0000h 0000h FG_ALLOCCMS 009Dh 0001h 0001h FG_ALLOCEMS 009Eh 0002h 0002h FG_ALLOCXMS 009Fh 0003h 0003h FG_AUTOMODE 0004h 0004h 0004h FG_BESTMODE 0003h 0005h 0005h FG_BOX 00A2h 0006h 0006h FG_BOXDEPTH 00A3h 0007h 0007h FG_BOXX -- 0008h 0008h FG_BUTTON 0078h 0009h 0009h FG_CAPSLOCK 0070h 000Ah 000Ah FG_CHGATTR 0035h 000Bh 000Bh FG_CHGTEXT 0036h 000Ch 000Ch FG_CIRCLE 0030h 000Dh 000Dh FG_CIRCLEF -- 000Eh 000Eh FG_CLIPMAP -- -- 000Fh FG_CLIPMASK 0052h 000Fh 0010h FG_CLPIMAGE 004Ah 0010h 0011h FG_CLPRECT 002Bh 0011h 0012h FG_COLORS -- -- 0013h FG_COPYPAGE 005Fh 0012h 0014h FG_CURSOR 0007h 0013h 0015h FG_DASH 0027h 0014h 0016h FG_DASHREL 0028h 0015h 0017h FG_DEFCOLOR 0014h 0016h 0018h FG_DEFPAGES -- 0017h 0019h FG_DISPFILE 004Fh 0018h 001Ah FG_DISPLAY 004Dh 0019h 001Bh FG_DISPLAYP 004Eh 001Ah 001Ch FG_DISPPCX 0060h -- -- FG_DRAW 0025h 001Bh 001Dh FG_DRAWMAP 0047h 001Ch 001Eh FG_DRAWMASK 0051h 001Dh 001Fh FG_DRAWREL 0026h 001Eh 0020h FG_DRAWRELX -- 001Fh 0021h FG_DRAWX -- 0020h 0022h FG_DRECT 002Ch 0021h 0023h FG_DRWIMAGE 0049h 0022h 0024h FG_EGACHECK 0005h 0023h 0025h FG_ELLIPSE 002Dh 0024h 0026h FG_ELLIPSEF -- 0025h 0027h FG_ERASE 001Eh 0026h 0028h FG_FADEIN 0064h 0027h 0029h FG_FADEOUT 0065h 0028h 002Ah FG_FILLPAGE -- 0029h 002Bh FG_FINDPAGE -- -- 002Ch FG_FLICDONE -- -- 002Dh FG_FLICHEAD -- -- 002Eh FG_FLICMODE -- -- 002Fh FG_FLICOPEN -- -- 0030h FG_FLICPLAY -- -- 0031h FG_FLICSIZE -- -- 0032h FG_FLICSKIP -- -- 0033h FG_FLIPMASK 0054h 002Ah 0034h FG_FLOOD -- 002Bh 0035h FG_FLPIMAGE 004Ch 002Ch 0036h FG_FONTSIZE -- 002Dh 0037h FG_FREEPAGE 0043h 002Eh 0038h FG_GETADDR 0044h 002Fh 0039h FG_GETATTR 0037h 0030h 003Ah FG_GETBANKS -- -- 003Bh FG_GETBLOCK -- 0031h 003Ch FG_GETCHAR 0038h 0032h 003Dh FG_GETCLIP -- -- 003Eh FG_GETCLOCK 0099h 0033h 003Fh FG_GETCOLOR 0015h 0034h 0040h FG_GETDACS 00A4h 0035h 0041h FG_GETENTRY -- 0036h 0042h FG_GETHPAGE 0040h 0037h 0043h FG_GETIMAGE 0048h 0038h 0044h FG_GETINDEX 0016h 0039h 0045h FG_GETKEY 006Eh 003Ah 0046h FG_GETLINES 0010h 003Bh 0047h FG_GETMAP 0046h 003Ch 0048h FG_GETMAXX 000Ah 003Dh 0049h FG_GETMAXY 000Bh 003Eh 004Ah FG_GETMODE 0000h 003Fh 004Bh FG_GETPAGE 003Ch 0040h 004Ch FG_GETPIXEL 0020h 0041h 004Dh FG_GETRGB 001Ch 0042h 004Eh FG_GETVIEW -- -- 004Fh FG_GETVPAGE 003Eh 0043h 0050h FG_GETXBOX -- -- 0051h FG_GETXJOY 0076h 0044h 0052h FG_GETXJUST -- -- 0053h FG_GETXPOS 0021h 0045h 0054h FG_GETYBOX -- -- 0055h FG_GETYJOY 0077h 0046h 0056h FG_GETYJUST -- -- 0057h FG_GETYPOS 0022h 0047h 0058h FG_HUSH 008Eh 0048h 0059h FG_HUSHNEXT 008Fh 0049h 005Ah FG_IMAGEBUF -- 004Ah 005Bh FG_IMAGESIZ 0062h 004Bh 005Ch FG_INITEMS 00A0h 004Ch 005Dh FG_INITJOY 0075h 004Dh 005Eh FG_INITPM -- -- 005Fh??? (NOP in v4.02) FG_INITXMS 00A1h 004Eh 0060h FG_INSIDE -- 004Fh 0061h FG_INTJOY 0079h 0050h 0062h FG_INTKEY 006Fh 0051h 0063h FG_INVERT -- -- 0064h FG_JUSTIFY -- 0052h 0065h FG_KBINIT -- 0053h 0066h FG_KBLAST -- -- 0067h FG_KBRESET -- -- 0068h FG_KBTEST -- 0054h 0069h FG_LOADPCX -- -- 006Ah FG_LOCATE 0033h 0055h 006Bh FG_MAKEPCX 0061h 0057h 006Ch FG_MAKEPPR -- 0058h 006Dh FG_MAKESPR -- 0059h 006Eh FG_MAPRGB 001Dh 005Ah 006Fh FG_MEASURE 0098h 005Bh 0070h FG_MEMAVAIL 009Bh 005Ch 0071h FG_MEMORY -- 005Dh 0072h FG_MOUSE256 -- -- 0073h FG_MOUSEBUT 007Ch 005Eh 0074h FG_MOUSECUR 007Eh 005Fh 0075h FG_MOUSEFIN -- 0060h 0076h FG_MOUSEINI 007Ah 0061h 0077h FG_MOUSELIM 0080h 0062h 0078h FG_MOUSEMOV 0081h 0063h 0079h FG_MOUSEPOS 007Dh 0064h 007Ah FG_MOUSEPTR 007Fh 0065h 007Bh FG_MOUSESPD 0082h 0066h 007Ch FG_MOUSEVIS 007Bh 0067h 007Dh FG_MOVE 0023h 0068h 007Eh FG_MOVEREL 0024h 0069h 007Fh FG_MUSIC 008Ch 006Ah 0080h FG_MUSICB 008Dh 006Bh 0081h FG_NUMLOCK 0072h 006Ch 0082h FG_PACK -- -- 0083h FG_PAGESIZE -- 006Dh 0084h FG_PAINT 002Fh 006Eh 0085h FG_PALETTE 0017h 006Fh 0086h FG_PALETTES 0018h 0070h 0087h FG_PAN 0066h 0071h 0088h FG_PATTERN 0050h 0072h 0089h FG_PCXHEAD -- 0073h 008Ah FG_PCXMODE -- 0074h 008Bh FG_PCXPAL -- -- 008Ch FG_PCXRANGE -- -- 008Dh FG_PLAYING 0091h 0075h 008Eh FG_POINT 001Fh 0076h 008Fh FG_POINTX -- 0077h 0090h FG_POLYEDGE -- -- 0091h FG_POLYFILL -- 0078h 0092h FG_POLYGON 002Eh 0079h 0093h FG_POLYLINE -- 007Ah 0094h FG_POLYOFF -- 007Bh 0095h FG_PRINT -- 007Ch 0096h FG_PRINTC -- -- 0097h FG_PUTBLOCK -- 007Dh 0098h FG_PUTIMAGE -- 007Eh 0099h FG_QUIET 0090h 007Fh 009Ah FG_RECT 002Ah 0080h 009Bh FG_RESET 0006h 0081h 009Ch FG_RESIZE 0045h 0082h 009Dh FG_RESTORE 005Bh 0083h 009Eh FG_RESUME 0092h 0084h 009Fh FG_REVIMAGE 004Bh 0085h 00A0h FG_REVMASK 0053h 0086h 00A1h FG_SAVE -- 0087h 00A2h FG_SCALE -- -- 00A3h FG_SCRLOCK 0074h 0088h 00A4h FG_SCROLL 0067h 0089h 00A5h FG_SETATTR 0019h 008Ah 00A6h FG_SETBANKS -- -- 00A7h FG_SETCAPS 0071h 008Bh 00A8h FG_SETCLIP 0029h 008Ch 00A9h FG_SETCOLOR 001Ah 008Dh 00AAh FG_SETDACS 00A5h 008Eh 00ABh FG_SETENTRY -- 008Fh 00ACh FG_SETFUNC 009Ch 0090h 00ADh FG_SETHPAGE 0041h 0091h 00AEh FG_SETLINES 0011h 0092h 00AFh FG_SETMODE 0001h 0093h 00B0h FG_SETNUM 0073h 0094h 00B1h FG_SETPAGE 003Dh 0095h 00B2h FG_SETRGB 001Bh 0096h 00B3h FG_SETVIEW -- -- 00B5h FG_SETVPAGE 003Fh 0098h 00B6h FG_SHEAR -- -- 00B7h FG_SHOWFLIC -- -- 00B8h FG_SHOWPCX -- 009Ah 00B9h FG_SHOWPPR -- 009Bh 00BAh FG_SHOWSPR -- 009Ch 00BBh FG_SOUND 0088h 009Dh 00BCh FG_SOUNDS 0089h 009Eh 00BDh FG_SPLIT -- -- 00BEh FG_STALL 0097h 009Fh 00BFh FG_SUSPEND 0093h 00A0h 00C0h FG_SVGAINIT -- 00A1h 00C1h FG_SVGASTAT -- 00A2h 00C2h FG_SVGAVER -- 00A3h 00C3h FG_TCDEFINE -- 00A4h 00C4h FG_TCMASK 005Eh 00A5h 00C5h FG_TCXFER 005Dh 00A6h 00C6h FG_TESTMODE 0002h 00A7h 00C7h FG_TEXT 0032h 00A8h 00C8h FG_TEXTC -- -- 00C9h FG_TRANSFER 005Ch 00A9h 00CAh FG_UNPACK -- -- 00CBh FG_VBADDR -- -- 00CCh FG_VBALLOC -- -- 00CDh FG_VBCLOSE -- -- 00CEh FG_VBCOPY -- -- 00CFh FG_VBCUT -- -- 00D0h FG_VBDEFINE -- -- 00D1h FG_VBFREE -- -- 00D2h FG_VBHANDLE -- -- 00D3h FG_VBINIT -- -- 00D4h FG_VBOPEN -- -- 00D5h FG_VBPASTE -- -- 00D6h FG_VBTCCOPY -- -- 00D7h FG_VBTCXFER -- -- 00D8h FG_VBUNDEF -- -- 00D9h FG_VGASTATE -- -- 00DAh FG_VOICE 008Ah 00AAh 00DBh FG_VOICES 008Bh 00ABh 00DCh FG_WAITFOR 0096h 00ACh 00DDh FG_WAITKEY 006Dh 00ADh 00DEh FG_WAITVR -- 00AEh 00DFh FG_WHERE 0034h 00AFh 00E0h FG_XALPHA 000Ch 00B0h 00E1h FG_XCONVERT 000Eh 00B1h 00E2h FG_XVIEW -- -- 00E3h FG_YALPHA 000Dh 00B2h 00E4h FG_YCONVERT 000Fh 00B3h 00E5h FG_YVIEW -- -- 00E6h SeeAlso: #03473Top
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONV) AX = 0001h BX = page number (0001h-003Fh) Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #03473) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) The only operation which is allowed on logical pages is "FG_COPYPAGE" (see AX=0014h) SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0014h,AX=0038hTop
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS) AX = 0002h BX = page number (0001h-003Fh) Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #03473) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) You must first call "FG_INITEMS" (see AX=005Dh) before using this function The only operation which is allowed on logical pages is "FG_COPYPAGE" (see AX=0014h) SeeAlso: AX=0000h,AX=0001h,AX=0003h,AX=0014h,AX=0038h,AX=005DhTop
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS) AX = 0003h BX = page number (0001h-003Fh) Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #03473) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) You must first call "FG_INITXMS" (see AX=0060h) before using this function The only operation which is allowed on logical pages is "FG_COPYPAGE" (see AX=0014h) SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0014h,AX=0038h,AX=0060hTop
INT 62 u - FGDRIVER 1.10,3.03+ - "FG_AUTOMODE" - GET VIDEO MODE W/MOST FEATURES AX = 0004h Return: AX = proposed video mode number (see #03500 at AX=00B0h) Program: FGDRIVER is the external video driver for the shareware Fastgraph/Light by Ted Gruber Software Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=0005h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7hTop
INT 62 u - FGDRIVER v3.03+ - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN AX = 0005h BX = horizontal resolution CX = vertical resolution DX = number of video pages required (both physical and virtual) Return: AX = proposed video mode number or FFFFh if no matching video mode Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) You must first call "FG_SVGAINIT" (see AX=00C1h) to get SVGA video modes SeeAlso: AX=0004h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7hTop
INT 62 u - FGDRIVER v3.03+ - "FG_BOX" - DRAW UNFILLED RECTANGLE AX = 0006h BX = left column CX = right column DX = top row SI = bottom row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) The rectangle is drawn in screen space, respecting the clipping region, with edges of the width specified with "FG_BOXDEPTH" (see AX=0007h) (default = 1 is set by "FG_SETMODE") This function has no effect in text modes SeeAlso: AX=0007h,AX=0008h,AX=000Ch,AX=0016h,AX=001Dh,AX=0026h,AX=0051h SeeAlso: AX=0055h,AX=008FhTop
INT 62 u - FGDRIVER v3.03+ - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH AX = 0007h BX = width of left and right edges in pixels (> 0) CX = width of top and bottom edges in pixels (> 0) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=0006h,AX=0008h,AX=0051h,AX=0055hTop
INT 62 u - FGDRIVER v3.03+ - "FG_BOXX" - XOR HOLLOW RECTANGLE AX = 0008h BX = left column CX = right column DX = top row SI = bottom row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) The rectangle is XORed into screen space, respecting the clipping region, with edges of the width specified with "FG_BOXDEPTH" (see AX=0007h) (default = 1 is set by "FG_SETMODE") This function has no effect in text modes SeeAlso: AX=0006h,AX=0007h,AX=0021h,AX=0022h,AX=0051h,AX=0055h,AX=0090hTop
INT 62 u - FGDRIVER v3.03+ - "FG_BUTTON" - GET JOYSTICK BUTTON STATE AX = 0009h BX = joystick number (0001h or 0002h) Return: AX = button states bit 0: top button pressed bit 1: bottom button pressed Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=0052h,AX=0056h,AX=005Eh,AX=0062h,AX=0077hTop
INT 62 u - FGDRIVER v3.03+ - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY AX = 000Ah Return: AX = CapsLock state (0000h off, 0001h on) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=0082h,AX=00A4h,AX=00A8h,AX=00B1hTop
INT 62 u - FGDRIVER v3.03+ - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS AX = 000Bh BX = number of characters to recolor Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in graphics modes Starting at the current text cursor position, the specified number of characters have their attributes to the current text attribute SeeAlso: AX=000Ch,AX=003Ah,AX=00A6hTop
INT 62 u - FGDRIVER v3.03+ - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION AX = 000Ch CX = length of string ES:BX -> string to be displayed Return: text cursor updated Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in graphics modes SeeAlso: AX=000Bh,AX=0096hTop
INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLE" - DRAW UNFILLED CIRCLE AX = 000Dh BX = radius in horizontal screen space units (> 0) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) The circle is drawn in screen space, centered at the current graphics cursor position This call is ignored in text modes SeeAlso: AX=0006h,AX=0008h,AX=000Eh,AX=0026h,AX=0093hTop
INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLEF" - DRAW FILLED CIRCLE AX = 000Eh BX = radius in horizontal screen space units (> 0) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=0008h,AX=000Dh,AX=0027h,AX=0092hTop
INT 62 u - FGDRIVER v4.02 - "FG_CLIPMAP" - DISPLAY CLIPPED IMAGE (MODE-INDEP) AX = 000Fh ES:BX -> bitmap CX = width DX = height Desc: display a mode-independent bitmap, showing only the portion within the current clipping limits Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes and in native EGA and VGA graphics modes The image is drawn with its lower left corner at the current graphics cursor position SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=0086h,AX=00A9h,AX=00C5hTop
INT 62 u - FGDRIVER v4.02 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP) AX = 0010h ES:BX -> array containing image stored as a masking map (see #03475) CX = number of pixel runs in masking map DX = width of masking map in pixels Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes and in native EGA and VGA graphics modes The image is drawn with its lower left corner at the current graphics cursor position SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=00A1h,AX=00A9h,AX=00C5hTop
INT 62 u - FGDRIVER v4.02 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP) AX = 0011h ES:BX -> mode-specific bitmap CX = width of bit map in bytes DX = height of bit map in pixel rows Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes The image is drawn with its lower left corner at the current graphics cursor position The current clipping region is used, extended to a byte boundary SeeAlso: AX=0010h,AX=0024h,AX=0036h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9hTop
INT 62 u - FGDRIVER v4.02 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE AX = 0012h BX = screen space column of left edge CX = screen space column of right edge DX = screen space row of top edge SI = screen space row of bottom edge Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes SeeAlso: AX=0006h,AX=0010h,AX=0011h,AX=0023h,AX=009Bh,AX=00A9hTop
INT 62 u - FGDRIVER v4.02 - "FG_COLORS" - GET SIMULTANEOUSLY-AVAILABLE COLORS AX = 0013h Return: AX = number of colors available at one time Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474)Top
INT 62 u - FGDRIVER v4.02 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS AX = 0014h BX = source page number (0000h-003Fh) CX = destination page number (0000h-003Fh) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) If both source and destination pages are logical pages, they must both be located in the same type (conventional, EMS, XMS) of memory SeeAlso: AX=009Eh,AX=00A2h,AX=00C6h,AX=00CAhTop
INT 62 u - FGDRIVER v4.02 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE AX = 0015h BX = new state (0000h invisible, 0001h visible) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes SeeAlso: AX=000Ch,AX=0054h,AX=0058h,AX=006Bh,AX=0075h,AX=0079h,AX=007Eh SeeAlso: AX=00E0hTop
INT 62 u - FGDRIVER v4.02 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION AX = 0016h BX = endpoint column CX = endpoint row DX = dash pattern (set bits cause drawn pixels) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes The starting point is the current graphics cursor position; the cursor position is updated SeeAlso: AX=0017h,AX=001Dh,AX=008FhTop
INT 62 u - FGDRIVER v4.02 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION AX = 0017h BX = endpoint column offset CX = endpoint row offset DX = dash pattern (set bits cause drawn pixels) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes The starting point is the current graphics cursor position; the cursor position is updated SeeAlso: AX=0016h,AX=001Eh,AX=008FhTop
INT 62 u - FGDRIVER v4.02 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX AX = 0018h BX = color index (0000h-00FFh) CX = new color value (0 to maximum color value for current video mode) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes and 256-color graphics modes SeeAlso: AX=0040h,AX=0045h,AX=00AAhTop
INT 62 u - FGDRIVER v4.02 - "FG_DEFPAGES" - DEF SRC/DEST PAGES FOR BLOCK XFERS AX = 0019h BX = source page CX = destination page Desc: specify the source and destination SVGA banks for block transfers on extended video pages Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This function is ignored if the video controller does not support extended pages or the current video mode does not allow them SeeAlso: AX=0014h,AX=00CAhTop
INT 62 u - FGDRIVER v4.02 - "FG_DISPFILE" - DISPLAY STORED IMAGE AX = 001Ah ES:BX -> ASCIZ filename CX = image width in pixels (> 0) DX = image format 0000h Fastgraph standard pixel run format 0001h packed pixel run format Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes The image is displayed with its lower left corner at the current graphics cursor position SeeAlso: AX=001Bh,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT) AX = 001Bh ES:BX -> pixel run map (pairs of bytes: color index, count) CX = number of pixel runs to display DX = width of image in pixels (> 0) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes The image is displayed with its lower left corner at the current graphics cursor position SeeAlso: AX=001Ah,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_DISPLAYP" - DISPLAY IMAGE (PACKED PIXEL RUNS) AX = 001Ch ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors contains the color for the first run in its high nybble and the color for the second run in its low nybble) CX = number of pixel runs to display DX = width of image in pixels (> 0) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes The image is displayed with its lower left corner at the current graphics cursor position SeeAlso: AX=001Ah,AX=001Bh,AX=00B9h,AX=00BAh,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION AX = 001Dh BX = endpoint column CX = endpoint row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes The starting point is the current graphics cursor position; the cursor position is updated SeeAlso: AX=0016h,AX=0020h,AX=0021h,AX=0026h,AX=008Fh,AX=0090hTop
INT 62 u - FGDRIVER v4.02 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP AX = 001Eh ES:BX -> bitmap (each set bit is pixel drawn in current color) CX = width of bitmap in bytes DX = height of bitmap in pixel rows Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0099h,AX=00A0hTop
INT 62 u - FGDRIVER v4.02 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP) AX = 001Fh ES:BX -> array containing image stored as a masking map (see #03475) CX = number of pixel runs in masking map DX = width of masking map in pixels Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) This call is ignored in text modes and in native EGA and VGA graphics modes The image is drawn with its lower left corner at the current graphics cursor position SeeAlso: AX=0010h,AX=001Fh,AX=00A1h,AX=00A9h Format of FGDRIVER masking map: Offset Size Description (Table 03475) 00h BYTE length of first "protect" run (pixels remain unchanged) 01h BYTE length of first "zero" run (pixels set to background color) 02h BYTE length of second "protect" run 03h BYTE length of second "zero" run ...Top
INT 62 u - FGDRIVER v4.02 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION AX = 0020h BX = endpoint column offset CX = endpoint row offset Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The starting point is the current graphics cursor position; the cursor position is updated SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0021h,AX=0026h,AX=008FhTop
INT 62 u - FGDRIVER v4.02 - "FG_DRAWRELX" - XOR SOLID LINE TO RELATIVE POSITION AX = 0021h BX = endpoint column offset CX = endpoint row offset Desc: draw a solid line, XORing each pixel onto the screen Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The starting point is the current graphics cursor position; the cursor position is updated SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0020h,AX=0026h,AX=0090hTop
INT 62 u - FGDRIVER v4.02 - "FG_DRAWX" - XOR SOLID LINE TO ABSOLUTE POSITION AX = 0022h BX = endpoint column CX = endpoint row Desc: draw a solid line, XORing each pixel onto the screen Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The starting point is the current graphics cursor position; the cursor position is updated SeeAlso: AX=001Dh,AX=0021h,AX=008FhTop
INT 62 u - FGDRIVER v4.02 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE AX = 0023h BX = screen space column of left edge CX = screen space column of right edge DX = screen space row of top edge SI = screen space row of bottom edge ES:DI -> dithering matrix (video-mode dependent) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=0006h,AX=0008h,AX=0013h,AX=003Ch,AX=0089h,AX=009BhTop
INT 62 u - FGDRIVER v4.02 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE AX = 0024h ES:BX -> video mode-specific bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The image will be drawn with its lower left corner at the current cursor position (either text or graphics) SeeAlso: AX=0011h,AX=0036h,AX=0044h,AX=0099h,AX=00A0hTop
INT 62 u - FGDRIVER v4.02 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY AX = 0025h Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA without an Enhanced Color Display Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00C2hTop
INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE AX = 0026h BX = horizontal semi-axis length in screen space units CX = vertical semi-axis length in screen space units Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The ellipse is centered at the current graphics cursor position SeeAlso: AX=0006h,AX=000Dh,AX=0027h,AX=008Fh,AX=0093hTop
INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSEF" - DRAW FILLED ELLIPSE IN SCREEN SPACE AX = 0027h BX = horizontal semi-axis length in screen space units CX = vertical semi-axis length in screen space units Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The ellipse is centered at the current graphics cursor position SeeAlso: AX=0006h,AX=000Eh,AX=0026h,AX=008Fh,AX=0092hTop
INT 62 u - FGDRIVER v4.02 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE AX = 0028h Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function sets each pixel to 0 in graphics modes, each character cell to a blank with a gray foreground attribute in text modes SeeAlso: AX=0029h,AX=002Bh,AX=0035hTop
INT 62 u - FGDRIVER v4.02 - "FG_FADEIN" - FADE IN HIDDEN PAGE AX = 0029h BX = delay (0000h = fastest possible fade-in) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The current hidden page is copied to the current visible page in small random sections to produce a fade-in effect This call is ignored in text modes SeeAlso: AX=0028h,AX=002Ah,AX=002BhTop
INT 62 u - FGDRIVER v4.02 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR AX = 002Ah BX = delay (0000h = fastest possible fade-out) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The current visible page is filled with pixels of the current color in small random sections to give a fade-out effect This call is ignored in text modes SeeAlso: AX=0028h,AX=0029h,AX=002BhTop
INT 62 u - FGDRIVER v4.02 - "FG_FILLPAGE" - FILL THE ACTIVE VIDEO PAGE AX = 002Bh Desc: fill the active video page with pixels of the current color (graphics modes) or the block character DBh with the current character attributes (text modes) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0028h,AX=0029h,AX=002AhTop
INT 62 u - FGDRIVER v4.02 - "FG_FINDPAGE" - FIND AVAILABLE VIRTUAL/LOGICAL PAGE AX = 002Ch Return: AX = first available page number (virtual or logical page) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0028hTop
INT 62 u - FGDRIVER v4.02 - "FG_FLICDONE" - CLOSE FLIC FILE AX = 002Dh ES:BX -> context descriptor (see AX=0030h) Return: nothing Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=002Eh,AX=0030hTop
INT 62 u - FGDRIVER v4.02 - "FG_FLICHEAD" - READ FLI/FLC FILE HEADER AX = 002Eh ES:BX -> FLICHEAD variable pointer record (see #03477) Return: AX = status (see #03476) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=002Dh,AX=002Fh,AX=0030h,AX=0032h (Table 03476) Values for FGDRIVER FLIC processing status: 0000h successful FFFEh not an FLI or FLC file FFFFh file not found Format of FGDRIVER FLICHEAD variable pointer record: Offset Size Description (Table 03477) 00h WORD segment of ASCIZ FLI/FLC file name 02h WORD offset of ASCIZ FLI/FLC file name 04h WORD segment of buffer for 128-byte file header 06h WORD offset of buffer for 128-byte file headerTop
INT 62 u - FGDRIVER v4.02 - "FG_FLICMODE" - GET OPTIMAL VIDEO MODE FOR FLI/FLC AX = 002Fh ES:BX -> 128-byte buffer containing FLI/FLC file header (see AX=002Eh) Return: AX = optimal 256-color graphics mode number FFFFh if invalid file header Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=002Eh,AX=0030hTop
INT 62 u - FGDRIVER v4.02 - "FG_FLICOPEN" - OPEN FLI/FLC FILE AX = 0030h ES:BX -> FLICOPEN variable pointer record (see #03478) Return: AX = status (see #03476) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=002Dh,AX=002Eh,AX=002Fh,AX=0030h,AX=0031h,AX=0032h Format of FGDRIVER FLICOPEN variable pointer record: Offset Size Description (Table 03478) 00h WORD segment of ASCIZ FLI/FLC file name 02h WORD offset of ASCIZ FLI/FLC file name 04h WORD segment of buffer for 16-byte file context descriptor 06h WORD offset of buffer for 16-byte file context descriptorTop
INT 62 u - FGDRIVER v4.02 - "FG_FLICPLAY" - DISPLAY NEXT FRAME(S) IN FLI/FLC AX = 0031h ES:BX -> context descriptor (see AX=0030h) CX = number of frames to display starting at current frame DX = control flags (see #03479) Return: AX = number of frames displayed Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0030h,AX=0033h,AX=00B8h Bitfields for FGDRIVER FLI/FLC control flags: Bit(s) Description (Table 03479) 0 skip inter-frame delay specified in FLI/FLC header 1 display relative to current graphics position 2 dipslay image from the FG_IMAGEBUF buffer instead of fileTop
INT 62 u - FGDRIVER v4.02 - "FG_FLICSIZE" - GET IMAGE SIZE AX = 0032h ES:BX -> FLICSIZE variable pointer record (see #03480) Return: image height/width buffers updated; height is set to FFFFh on error Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=002Eh,AX=0030h Format of FGDRIVER FLICSIZE variable pointer record: Offset Size Description (Table 03480) 00h WORD segment of buffer for 128-byte FLI/FLC file header 02h WORD offset of buffer for 128-byte FLI/FLC file header 04h WORD segment of WORD buffer for image width in pixels 06h WORD offset of WORD buffer for image width in pixels 08h WORD segment of WORD buffer for image height in pixels 0Ah WORD offset of WORD buffer for image height in pixelsTop
INT 62 u - FGDRIVER v4.02 - "FG_FLICSKIP" - SKIP FRAME(S) IN FLI/FLC FILE AX = 0033h ES:BX -> context descriptor (see AX=0030h) CX = number of frames to skip reset to first frame if skip count is negative Return: AX = number of frames skipped (may be less than requested if EOF) 0000h if resetting to first frame Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0030h,AX=0031hTop
INT 62 u - FGDRIVER v4.02 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP) AX = 0034h ES:BX -> array containing image stored as a masking map (see #03475) CX = number of pixel runs in masking map DX = width of masking map in pixels Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes and in native EGA and VGA graphics modes The image is drawn with its lower left corner at the current graphics cursor position SeeAlso: AX=000Fh,AX=001Fh,AX=0036h,AX=00A1h,AX=00A5h,AX=00C5hTop
INT 62 u - FGDRIVER v4.02 - "FG_FLOOD" - FLOOD FILL ARBITRARY CLOSED REGION AX = 0035h BX = starting column CX = starting row Desc: fill the bounded region around the specified point (respecting clipping region) with the currrent color Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is ignored in text modes SeeAlso: AX=0028h,AX=0085hTop
INT 62 u - FGDRIVER v4.02 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP) AX = 0036h ES:BX -> mode-specific bitmap CX = width of bit map in bytes DX = height of bit map in pixel rows Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The image is drawn with its lower left corner at the current graphics cursor position The current clipping region is used, extended to a byte boundary SeeAlso: AX=0011h,AX=0024h,AX=0034h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9hTop
INT 62 u - FGDRIVER v4.02 - "FG_FONTSIZE" - SPECIFY FONT SIZE FOR TEXT OUTPUT AX = 0037h BX = desired character height in scan lines (8, 14, 16) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored if the current mode is not a VGA or SVGA graphics mode, or the specified character height is not 8, 14, or 16 SeeAlso: AX=0096hTop
INT 62 u - FGDRIVER v4.02 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE AX = 0038h BX = page number (0000h-003Fh) Return: AX = status (0000h,0001h,0007h,0009h) (see #03473) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0003hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE AX = 0039h Return: AX = segment of active video page Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0042h,AX=00AChTop
INT 62 u - FGDRIVER v4.02 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION AX = 003Ah BX = row CX = column Return: AX = character attribute at specified location on active video page Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in graphics modes SeeAlso: AX=000Bh,AX=003Dh,AX=0040h,AX=00A6hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETBANKS" - GET SVGA READ AND WRITE BANKS AX = 003Bh ES:BX -> GETBANKS variable pointer record (see #03481) Return: nothing Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00A7h Format of FGDRIVER GETBANKS variable pointer record: Offset Size Description (Table 03481) 00h WORD segment of WORD buffer for read bank number 02h WORD offset of WORD buffer for read bank number 04h WORD segment of WORD buffer for write bank number 06h WORD offset of WORD buffer for write bank numberTop
INT 62 u - FGDRIVER v4.02 - "FG_GETBLOCK" - GRAB RECTANGLE OF DISPLAY AX = 003Ch ES:BX -> buffer for screen contents CX = leftmost column DX = rightmost column SI = top row DI = bottom row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) In text modes, coordinates are character positions; in graphics modes, they are defined in screen space, and the left and right edges are adjusted to a byte boundary if necessary Use "FG_IMAGESIZ" (see AX=005Ch) to determine the required buffer size SeeAlso: AX=0044h,AX=005Ch,AX=0098hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION AX = 003Dh BX = row CX = column Return: AX = character at specified location on active video page Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in graphics modes SeeAlso: AX=000Bh,AX=003Ah,AX=0096h,AX=00A6h,AX=00C8hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETCLIP" - GET CLIPPING REGION IN SCREEN SPACE AX = 003Eh ES:BX -> GETCLIP variable pointer record (see #03482) Return: variables specifed by GETCLIP structure updated Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00CAh Format of FGDRIVER GETCLIP variable pointer record: Offset Size Description (Table 03482) 00h WORD segment of WORD buffer for minimum X coordinate (left edge) 02h WORD offset of WORD buffer for minimum X coordinate (left edge) 04h WORD segment of WORD buffer for maximum X coordinate (right edge) 06h WORD offset of WORD buffer for maximum X coordinate (right edge) 08h WORD segment of WORD buffer for minimum Y coordinate (top edge) 0Ah WORD offset of WORD buffer for minimum Y coordinate (top edge) 0Ch WORD segment of WORD buffer for maximum Y coordinate (bottom edge) 0Eh WORD offset of WORD buffer for maximum Y coordinate (bottom edge)Top
INT 62 u - FGDRIVER v4.02 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT AX = 003Fh Return: DX:AX = number of clock ticks since midnight Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: INT 1A/AH=00hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE AX = 0040h Return: AX = current text attribute or color index (graphics modes) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Bh,AX=003Ah,AX=00A6hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETDACS" - GET VIDEO DAC CONTENTS AX = 0041h CX = number of DAC registers to return (0001h to 0100h) DX = starting DAC register number (0000h to 00FFh) ES:BX -> buffer for DAC red/green/blue triples Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The register number wraps back to zero after FFh SeeAlso: AX=004Eh,AX=0086h,AX=00ABhTop
INT 62 u - FGDRIVER v4.02 - "FG_GETENTRY" - GET PAGE TYPE AND ADDRESS AX = 0042h ES:BX -> variable pointer record (see #03483) CX = page number (00h-3Fh) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) Page addresses are segments for pages stored in conventional memory (including physical and virtual pages), and EMS or XMS handles for pages stored in EMS or XMS SeeAlso: AX=0000h,AX=00ACh Format of FGDRIVER GETENTRY variable pointer record: Offset Size Description (Table 03483) 00h WORD segment of WORD buffer for page address 02h WORD offset of WORD buffer for page address 04h WORD segment of WORD buffer for page type (se #03484) 06h WORD offset of WORD buffer for page type (Table 03484) Values for FGDRIVER page type: 0000h unallocated 0001h physical 0002h virtual 0003h logical page, stored in expanded memory (EMS) 0004h logical page, stored in extended memory (XMS) 0005h logical page, stored in conventional memoryTop
INT 62 u - FGDRIVER v4.02 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM AX = 0043h Return: AX = current hidden video page number (0000h-003Fh) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=004Ch,AX=0050h,AX=00AEhTop
INT 62 u - FGDRIVER v4.02 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP AX = 0044h ES:BX -> buffer for video mode-specific bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0099h,AX=00A0hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX AX = 0045h BX = color index (0000h to 00FFh) Return: AX = color value for specified color index Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call returns the value passed to it in text and 256-color graphics modes SeeAlso: AX=0018h,AX=0040hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETKEY" - GET NEXT KEYSTROKE AX = 0046h ES:BX -> variable pointer record (see #03485) Return: (after next keystroke if no typeahead) variables updated Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Ah,AX=0063h,AX=0069h,AX=00DEh,INT 16/AH=00h Format of FGDRIVER GETKEY variable pointer record: Offset Size Description (Table 03485) 00h WORD segment of BYTE buffer for ASCII keycode 02h WORD offset of BYTE buffer for ASCII keycode 04h WORD segment of BYTE buffer for extended keycode 06h WORD offset of BYTE buffer for extended keycodeTop
INT 62 u - FGDRIVER v4.02 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE AX = 0047h Return: AX = number of text rows on screen in current video mode Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00AFh,AX=00C2hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP AX = 0048h ES:BX -> buffer for video mode-independent bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows Return: each bit in bitmap is set if corresponding pixel is of the current color, cleared otherwise Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=0011h,AX=001Eh,AX=0024hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE AX = 0049h Return: AX = maximum X coordinate in screen space (or character space if in text mode) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=004Ah,AX=00C1hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE AX = 004Ah Return: AX = maximum Y coordinate in screen space (or character space if in text mode) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0049h,AX=00C1hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER AX = 004Bh ES:BX -> WORD ??? Return: AX = current video mode number Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00B0hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER AX = 004Ch Return: AX = active video page (0000h-003Fh) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=00B2hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL AX = 004Dh BX = column in screen space CX = row in screen space Return: AX = color value of pixel (0 to num_colors-1) 0000h in text modes Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=003Ah,AX=003Dh,AX=008Fh,AX=0090hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS AX = 004Eh ES:BX -> variable pointer record (see #03486) CX = DAC register number Return: variables updated Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes and CGA/EGA video modes (since they do not use DAC registers) SeeAlso: AX=0041h,AX=0086h,AX=00ABh Format of FGDRIVER GETRGB variable pointer record: Offset Size Description (Table 03486) 00h WORD segment of WORD buffer for red component of DAC register 02h WORD offset of WORD buffer for red component 04h WORD segment of WORD buffer for green component of DAC register 06h WORD offset of WORD buffer for green component 08h WORD segment of WORD buffer for blue component of DAC register 0Ah WORD offset of WORD buffer for blue componentTop
INT 62 u - FGDRIVER v4.02 - "FG_GETVIEW" - GET VIEWPORT EXTREME LIMITS AX = 004Fh ES:BX -> variable pointer record (see #03487) Return: indicated variables updated Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00B5h Format of FGDRIVER GETVIEW variable pointer record: Offset Size Description (Table 03487) 00h WORD segment of WORD buffer for viewport left edge (viewport units) 02h WORD offset of WORD buffer for viewport left edge (viewport units) 04h WORD segment of WORD buffer for viewport right edge (viewport units) 06h WORD offset of WORD buffer for viewport right edge (viewport units) 08h WORD segment of WORD buffer for viewport top edge (viewport units) 0Ah WORD offset of WORD buffer for viewport top edge (viewport units) 0Ch WORD segment of WORD buffer for viewport bottom edge (viewp. units) 0Eh WORD offset of WORD buffer for viewport bottom edge (viewp. units) 10h WORD segment of WORD buffer for viewport left edge (screen space) 12h WORD offset of WORD buffer for viewport left edge (screen space) 14h WORD segment of WORD buffer for viewport right edge (screen space) 16h WORD offset of WORD buffer for viewport right edge (screen space) 18h WORD segment of WORD buffer for viewport top edge (screen space) 1Ah WORD offset of WORD buffer for viewport top edge (screen space) 1Ch WORD segment of WORD buffer for viewport bottom edge (screen space) 1Eh WORD offset of WORD buffer for viewport bottom edge (screen space)Top
INT 62 u - FGDRIVER v4.02 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER AX = 0050h Return: AX = visible video page (0000h-003Fh) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0043h,AX=004Ch,AX=00B6hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETXBOX" - GET WIDTH OF VERTICAL BOX LINES AX = 0051h Return: AX = width (in pixels) of left and right edges of rectangles Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=006BhTop
INT 62 u - FGDRIVER v4.02 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK AX = 0052h BX = joystick number (0001h or 0002h) Return: AX = horizontal position of joystick FFFFh if joystick uninitialized or not present Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The actual coordinates are processor- and joystick-dependent You must call "FG_INITJOY" (AX=005Eh) before using this function SeeAlso: AX=0009h,AX=0056h,AX=005Eh,AX=0062h,AX=0077hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETXJUST" - GET HORIZONTAL JUSTIFICATION AX = 0053h Return: AX = string justification 0000h strings are centered around current graphics X position 0001h strings are right-justified at current graphics X position FFFFh strings are left-justified at current graphics X position Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=006Ch,AX=007BhTop
INT 62 u - FGDRIVER v4.02 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN AX = 0054h Return: AX = screen space X coordinate of graphics cursor position Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0058h,AX=007Eh,AX=007FhTop
INT 62 u - FGDRIVER v4.02 - "FG_GETYBOX" - GET WIDTH OF HORIZONTAL BOX LINES AX = 0055h Return: AX = width (in pixels) of top and bottom edges of rectangles Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=0063hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK AX = 0056h BX = joystick number (0001h or 0002h) Return: AX = vertical position of joystick FFFFh if joystick uninitialized or not present Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The actual coordinates are processor- and joystick-dependent You must call "FG_INITJOY" (AX=005Eh) before using this function SeeAlso: AX=0009h,AX=0052h,AX=005Eh,AX=0062h,AX=0077hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETYJUST" - GET VERTICAL JUSTIFICATION AX = 0057h Return: AX = string justification 0000h strings are centered around current graphics Y position 0001h strings have top edge at current graphics Y position FFFFh strings have bottom edge at current graphics Y position Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0053h,AX=0065hTop
INT 62 u - FGDRIVER v4.02 - "FG_GETYPOS" - GET GRAPHICS CURSOR ROW AX = 0058h Return: AX = screen space Y coordinate of graphics cursor position Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0054h,AX=007Eh,AX=007FhTop
INT 62 u - FGDRIVER v4.02 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY AX = 0059h Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function immediately stops any sounds started with "FG_MUSICB", "FG_SOUNDS", or "FG_VOICES"; it is ignored if no asynchronous sound is playing SeeAlso: AX=005Ah,AX=0081h,AX=00BDh,AX=00DChTop
INT 62 u - FGDRIVER v4.02 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND AX = 005Ah Program: FGDRIVER is the external video driver for the shareware Fastgraph/Light by Ted Gruber Software Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function stops any sounds started with "FG_MUSICB", "FG_SOUNDS", or "FG_VOICES" after the current repetition completes; it is ignored unless asynchronous sound is continuous SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DChTop
INT 62 u - FGDRIVER v4.02 - "FG_IMAGEBUF" - SPECIFY TEMPORARY IMAGE BUFFER AX = 005Bh ES:BX -> buffer to be used when creating or displaying GIF/PCX/PPR/SPR images CX = size of buffer in bytes or 0000h to use internal buffer Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) Fastgraph's internal buffer is 4096 bytes; this function allows the application to define a larger buffer which will typically speed processing SeeAlso: AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT AX = 005Ch BX = image width in pixels CX = image height in pixels Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) Return: DX:AX = size in bytes of mode-specific bitmap for current video mode SeeAlso: AX=003Ch,AX=0098hTop
INT 62 u - FGDRIVER v4.02 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE AX = 005Dh Return: AX = status 0000h successful FFFFh expanded memory manager inaccessible or not installed Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0002h,AX=0060h"v4.02"Top
INT 62 u - FGDRIVER v4.02 - "FG_INITJOY" - INITIALIZE JOYSTICK USE AX = 005Eh BX = joystick number (0001h or 0002h) Return: AX = status 0000h successful FFFFh joystick not connected or no game port Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) Fastgraph assumes that the requested joystick is centered at the time this function is called SeeAlso: AX=0009h,AX=0052h,AX=0056h,AX=0062h,AX=0077hTop
INT 62 u - FGDRIVER v4.02 - "FG_INITPM"??? - (NOT IMPLEMENTED) AX = 005Fh ??? Return: ??? Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h)Top
INT 62 u - FGDRIVER v1.10 only - "FG_DISPPCX" - DISPLAY PCX FILE AX = 0060h ES:BX -> ASCIZ filename CX = flags bit 0: use current palette rather than PCX file's palette bits 1-15 reserved (0) Return: AX = status 0000h success 0001h file not found 0002h file is not a valid PCX file Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes and Hercules low-resolution graphics The image is displayed with its upper left corner at the current graphics cursor position SeeAlso: AX=00B9hTop
INT 62 u - FGDRIVER v4.02 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE AX = 0060h Return: AX = status 0000h successful FFFFh extended memory manager inaccessible or not installed Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0003h,AX=005DhTop
INT 62 u - FGDRIVER v4.02 - "FG_INSIDE" - CHECK IF POINT INSIDE CONVEX POLYGON AX = 0061h ES:BX -> vertex array CX = number of vertices DX = screen space column of point to test SI = screen space row of point to test Return: AX = result 0000h point is outside polygon 0001h point is inside polygon undefined if not a convex polygon Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0092h,AX=0093h,AX=0094hTop
INT 62 u - FGDRIVER v4.02 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS AX = 0062h CX = joystick number (0001h or 0002h) ES:BX -> variable pointer record (see #03488) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) If the indicated joystick has not been initialized with AX=008Eh, both the button code and joystick position will be set to 00h If either button is pressed, a button code of 0Dh is returned; otherwise, a button code of 00h is returned SeeAlso: AX=0009h,AX=0052h,AX=0046h,AX=005Eh,AX=0077h Format of FGDRIVER INTJOY variable pointer record: Offset Size Description (Table 03488) 00h WORD segment of BYTE buffer for button code 02h WORD offset of BYTE buffer for button code 04h WORD segment of BYTE buffer for joystick position 06h WORD offset of BYTE buffer for joystick positionTop
INT 62 u - FGDRIVER v4.02 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT AX = 0063h ES:BX -> variable pointer record (see #03489) Return: variables updated Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) If the keyboard buffer is empty, both the ASCII and extended keycodes are set to 00h SeeAlso: AX=000Ah,AX=0046h,AX=0069h,AX=00DEh,INT 16/AH=01h Format of FGDRIVER INTKEY variable pointer record: Offset Size Description (Table 03489) 00h WORD segment of BYTE buffer for ASCII keycode 02h WORD offset of BYTE buffer for ASCII keycode 04h WORD segment of BYTE buffer for extended keycode 06h WORD offset of BYTE buffer for extended keycodeTop
INT 62 u - FGDRIVER v4.02 - "FG_INVERT" - INVERT ORIENTATION OF BITMAP AX = 0064h ES:BX -> bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows Return: nothing Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h)Top
INT 62 u - FGDRIVER v4.02 - "FG_JUSTIFY" - SET TEXT OUTPUT JUSTIFICATION AX = 0065h BX = horizontal justification (00h centered, 01h right-justified, FFh left-justified) CX = vertical justification (00h centered, 01h top of characters, FFh bottom of chars) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Ch,AX=0037h,AX=0053h,AX=0057h,AX=0096hTop
INT 62 u - FGDRIVER v4.02 - "FG_KBINIT" - ENABLE/DISABLE LOW-LEVEL KBD HANDLER AX = 0066h BX = new state (0000h disabled, 0001h enabled) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) When the low-level handler is enabled, "FG_GETKEY", "FG_INTKEY", "FG_WAITKEY", and all other functions calling DOS or BIOS keyboard services become unavailable SeeAlso: AX=0067h,AX=0068h,AX=0069hTop
INT 62 u - FGDRIVER v4.02 - "FG_KBLAST" - GET MOST RECENT SCANCODE PROCESSED AX = 0067h Return: AX = scancode for keypress most recently processed by FastGraph's low-level keyboard handler, or 0000h if no keys since FG_KBINIT Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0066h,AX=0068h,AX=0069hTop
INT 62 u - FGDRIVER v4.02 - "FG_KBRESET" - RESET LOW-LEVEL KEYBOARD HANDLER AX = 0068h Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0066h,AX=0067h,AX=0069hTop
INT 62 u - FGDRIVER v4.02 - "FG_KBTEST" - CHECK WHETHER SPECIFIED KEY PRESSED AX = 0069h BX = scan code of desired key Return: AX = state 0000h key is not pressed 0001h key is currently pressed Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The low-level keyboard handler must have been enabled with AX=0066h SeeAlso: AX=0066h,AX=0067h,INT 16/AH=01hTop
INT 62 u - FGDRIVER v4.02 - "FG_LOADPCX" - LOAD .PCX INTO ACTIVE VIRTUAL BUFFER AX = 006Ah ES:BX -> ASCIZ filename for PCX image CX = control flags bit 0: use current palette, overriding stored .PCX palette bit 1: load at current graphics position, not stored position bit 2: load image from FG_IMAGEBUF buffer instead of .PCX file Return: AX = status 0000h successful 0001h file not found 0002h not a .PCX file Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=006Ch,AX=00B9h,AX=00D5hTop
INT 62 u - FGDRIVER v4.02 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION AX = 006Bh BX = row CX = column Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) There are only eight text cursors shared by successive groups of eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ... share the second, etc) SeeAlso: AX=0054h,AX=0058h,AX=007Eh,AX=00E0hTop
INT 62 u - FGDRIVER v4.02 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW AX = 006Ch BX = left edge in screen space units CX = right edge in screen space units DX = top edge in screen space units SI = bottom edge in screen space units ES:DI -> ASCIZ filename of PCX file to create Return: AX = status 0000h successful 0001h file not created Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The PCX file is created from the specified region of the active video page; the left and right edges are adjusted to a byte boundary if necessary If the specified file already exists, it is overwritten This call is ignored in text and Hercules low-resolution graphics modes SeeAlso: AX=005Bh,AX=006Dh,AX=006Ah,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_MAKEPPR" - CREATE PACKED PIXEL RUN FILE AX = 006Dh BX = left edge in screen space units CX = right edge in screen space units DX = top edge in screen space units SI = bottom edge in screen space units ES:DI -> ASCIZ filename of PPR file to create Return: AX = status 0000h successful 0001h file not created Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The PPR file is created from the specified region of the active video page; the left and right edges are adjusted to byte boundaries if necessary If the specified file already exists, it is overwritten This call is ignored in text modes SeeAlso: AX=005Bh,AX=006Ch,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_MAKESPR" - CREATE STANDARD PIXEL RUN FILE AX = 006Eh BX = left edge in screen space units CX = right edge in screen space units DX = top edge in screen space units SI = bottom edge in screen space units ES:DI -> ASCIZ filename of SPR file to create Return: AX = status 0000h successful 0001h file not created Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The SPR file is created from the specified region of the active video page; the left and right edges are adjusted to byte boundaries if necessary If the specified file already exists, it is overwritten This call is ignored in text modes SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=00B9h,AX=00BAh,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL AX = 006Fh BX = red component CX = green component DX = blue component Return: AX = mode-specific palette value corresponding to specified components Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is only meaningful in 16-color graphics modes SeeAlso: AX=004Eh,AX=00B3hTop
INT 62 u - FGDRIVER v4.02 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK AX = 0070h Return: AX = delay units per clock tick (processor-dependent) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) These delay units are used by "FG_STALL" (see AX=00BFh) SeeAlso: AX=00BFhTop
INT 62 u - FGDRIVER v4.02 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY AX = 0071h Return: DX:AX = number of bytes of conventional memory available Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=005Dh,AX=0072hTop
INT 62 u - FGDRIVER v4.02 - "FG_MEMORY" - GET SIZE OF VIDEO MEMORY AX = 0072h Return: AX = size of video memory in KB Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) You must first call "FG_SVGAINIT" (see AX=00C1h) before using this function SeeAlso: AX=0071hTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSE256" - DEFINE 256-COLOR MOUSE CURSOR AX = 0073h ES:BX -> 512-byte cursor definition CX = X offset of hot-spot within mouse cursor DX = Y offset of hot-spot within mouse cursor Return: nothing Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) the cursor definition array consists of 256 bytes defining the 16x16 screen mask, followed by another 256 bytes definining the 16x16 cursor mask SeeAlso: AX=0074h,AX=0075h,AX=007BhTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS AX = 0074h CX = mouse button (1 = left press, 2 = right press, 3 = middle press, -1=left release, -2=right release, -3=middle release) ES:BX -> variable pointer record (see #03490) Return: variables updated Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function returns the count of presses or releases since the last call to this function; if the count is zero, row and column will also be zero SeeAlso: AX=0075h,AX=0077h,AX=007Ah Format of FGDRIVER MOUSEBUT variable pointer record: Offset Size Description (Table 03490) 00h WORD segment of WORD buffer for press/release count 02h WORD offset of WORD buffer for press/release count 04h WORD segment of WORD buffer for screen space col of last press/rls 06h WORD offset of WORD buffer for screen space col of last press/rels 08h WORD segment of WORD buffer for screen space row of last press/rls 0Ah WORD offset of WORD buffer for screen space row of last press/rlsTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR AX = 0075h BX = screen mask CX = cursor mask Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in graphics modes SeeAlso: AX=007Bh,AX=007DhTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEFIN" - UNHOOK FASTGRAPH MOUSE HANDLER AX = 0076h Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function should be called before switching back to text mode if "FG_MOUSEINI" was called while in an SVGA graphics mode SeeAlso: AX=0077hTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT AX = 0077h Return: AX = status 0002h two-button mouse 0003h three-button mouse FFFFh initialization failed Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) After this call, the mouse cursor is invisible SeeAlso: AX=0076h,AX=0078h,AX=007ChTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS AX = 0078h BX = left-most position allowed for mouse cursor CX = right-most position allowed DX = top-most position allowed SI = bottom-most position allowed Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0077h,AX=0079h,INT 33/AX=0007h,INT 33/AX=0008hTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION AX = 0079h BX = new column CX = new row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function will not move the mouse cursor outside the bounding box specified with AX=009Bh SeeAlso: AX=0078h,AX=007Ah,INT 33/AX=0004hTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION AX = 007Ah ES:BX -> variable pointer record (see #03491) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0079h Format of FGDRIVER MOUSEPOS variable pointer record: Offset Size Description (Table 03491) 00h WORD segment of WORD buffer for mouse column 02h WORD offset of WORD buffer for mouse column 04h WORD segment of WORD buffer for mouse row 06h WORD offset of WORD buffer for mouse row 08h WORD segment of WORD buffer for button status 0Ah WORD offset of WORD buffer for button status Note: button status: bit 0 = left button, bit 1 = right, bit 2 = middleTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR AX = 007Bh ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask) CX = X offset of hot spot from upper left corner DX = Y offset of hot spot from upper left corner Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=0073h,AX=0075h,INT 33/AX=0009hTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED AX = 007Ch BX = horizontal mickeys per eight pixels of movement (default 16) CX = vertical mickeys per eight pixels of movement (default 16) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: INT 33/AX=000Fh,INT 33/AX=001AhTop
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY AX = 007Dh BX = new state (0000h invisible, 0001h visible) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0077h,INT 33/AX=0001h,INT 33/AX=0002hTop
INT 62 u - FGDRIVER v4.02 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION AX = 007Eh BX = new column CX = new row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=0079h,AX=007Fh,AX=00E0hTop
INT 62 u - FGDRIVER v4.02 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION AX = 007Fh BX = column offset CX = row offset Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=0054h,AX=0058h,AX=007EhTop
INT 62 u - FGDRIVER v4.02 - "FG_MUSIC" - PLAY SERIES OF NOTES AX = 0080h ES:BX -> '$'-terminated music string in BASIC PLAY format Return: after music completed Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h, AX=00AAh) is already in progress SeeAlso: AX=0081h,AX=00BCh,AX=00DBhTop
INT 62 u - FGDRIVER v4.02 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND AX = 0081h CX = number of repetitions (negative = continuous play) ES:BX -> '$'-terminated music string in BASIC PLAY format Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h, AX=00AAh) is already in progress SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DChTop
INT 62 u - FGDRIVER v4.02 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY AX = 0082h Return: AX = NumLock state (0000h off, 0001h on) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Ah,AX=00A4h,AX=00A8h,AX=00B1hTop
INT 62 u - FGDRIVER v4.02 - "FG_PACK" - CONVERT PIXEL-PER-BYTE TO PACKED BITMAP AX = 0083h ES:BX -> variable pointer record (see #03492) CX = width of bitmap in pixels DX = height of bitmap in pixels Return: result bitmap buffer updated SeeAlso: AX=00CBh Format of FGDRIVER PACK variable pointer record: Offset Size Description (Table 03492) 00h WORD segment of source (mode-independent) bitmap 02h WORD offset of source (mode-independent) bitmap 04h WORD segment of buffer for result (mode-specific) bitmap 06h WORD offset of buffer for result (mode-specific) bitmapTop
INT 62 u - FGDRIVER v4.02 - "FG_PAGESIZE" - GET VIDEO PAGE SIZE FOR CURR MODE AX = 0084h Return: DX:AX = page size in bytes Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0072hTop
INT 62 u - FGDRIVER v4.02 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR AX = 0085h BX = column CX = row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function fills an arbitrary closed region around the specified point with the current color; the screen edges are not considered region boundaries This call is ignored in text modes SeeAlso: AX=0035hTop
INT 62 u - FGDRIVER v4.02 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER AX = 0086h ---CGA 4-color graphics--- BX = CGA paletee number CX = background color ---CGA 2-color graphics--- BX ignored CX = foreground color ---16-color graphics--- BX = palette register number CX = palette value ---256-color graphics--- BX = DAC register number CX = DAC value Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is ignored in text modes and Hercules graphics modes Few EGA/VGA adapters correctly set the foreground color in CGA mode 6 SeeAlso: AX=0041h,AX=004Eh,AX=0087h,AX=00ABhTop
INT 62 u - FGDRIVER v4.02 - "FG_PALETTES" - SET ALL PALETTE REGISTERS AX = 0087h ES:BX -> array of 16 WORDs containing values for palette registers (or first 16 DAC registers in 256-color modes) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is ignored in text modes, CGA and Hercules graphics modes SeeAlso: AX=0041h,AX=004Eh,AX=0086h,AX=00ABhTop
INT 62 u - FGDRIVER v4.02 - "FG_PAN" - SET SCREEN ORIGIN AX = 0088h BX = new column for screen origin CX = new row for screen origin Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00B2hTop
INT 62 u - FGDRIVER v4.02 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR AX = 0089h BX = index of pattern to define CX = number of predefined display pattern Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) When displaying a pixel run map, Fastgraph uses the pattern associated with each color index rather than displaying the actual color This call has no effect in text and 256-color graphics modes SeeAlso: AX=0023h,AX=0045hTop
INT 62 u - FGDRIVER v4.02 - "FG_PCXHEAD" - GET PCX FILE HEADER AX = 008Ah ES:BX -> variable pointer record (see #03493) Return: AX = status 0000h successful FFFEh not a PCX file FFFFh file does not exist Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=008Bh,AX=00B9h Format of FGDRIVER PCXHEAD variable pointer record: Offset Size Description (Table 03493) 00h WORD segment of ASCIZ filename 02h WORD offset of ASCIZ filename 04h WORD segment of 128-byte buffer for PCX header 06h WORD offset of 128-byte buffer for PCX headerTop
INT 62 u - FGDRIVER v4.02 - "FG_PCXMODE" - GET OPTIMAL VIDEO MODE FOR DISPLAY AX = 008Bh ES:BX -> PCX header (see AX=008Ah) Return: AX = optimal video mode for PCX file FFFEh not a valid PCX header FFFFh unable to determine compatible video mode Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=008Ah,AX=00B9hTop
INT 62 u - FGDRIVER v4.02 - "FG_PCXPAL" - GET PALETTE STORED IN PCX FILE AX = 008Ch ES:BX -> variable pointer record (see #03494) Return: AX = number of colors in palette (16 or 256) or FFFEh not a valid PCX file FFFFh file not found Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=008Dh Format of FGDRIVER PCXPAL variable pointer record: Offset Size Description (Table 03494) 00h WORD segment of ASCIZ .PCX filename 02h WORD offset of ASCIZ .PCX filename 04h WORD segment of buffer for .PCX palette RGB triples 06h WORD offset of buffer for .PCX palette RGB triples Note: the buffer for the palette must hold at least three times as many bytes as there are colors in the palette SeeAlso: #03495Top
INT 62 u - FGDRIVER v4.02 - "FG_PCXRANGE" - GET EXTENT OF PCX IMAGE AX = 008Dh ES:BX -> variable pointer record (see #03495) Return: indicated variables updated; if the indicated header is not valid, all of the coordinate variables are set to FFFFh Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=008Ch Format of FGDRIVER PCXRANGE variable pointer record: Offset Size Description (Table 03495) 00h WORD segment of 128-byte PCX file header 02h WORD offset of 128-byte PCX file header 04h WORD segment of WORD buffer for X coordinate of image's left edge 04h WORD offset of WORD buffer for X coordinate of image's left edge 08h WORD segment of WORD buffer for X coordinate of image's right edge 0Ah WORD offset of WORD buffer for X coordinate of image's right edge 0Ch WORD segment of WORD buffer for Y coordinate of image's top edge 0Eh WORD offset of WORD buffer for Y coordinate of image's top edge 10h WORD segment of WORD buffer for X coordinate of image's bottom edge 12h WORD offset of WORD buffer for X coordinate of image's bottom edge SeeAlso: #03494Top
INT 62 u - FGDRIVER v4.02 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE AX = 008Eh Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DChTop
INT 62 u - FGDRIVER v4.02 - "FG_POINT" - DISPLAY A PIXEL AX = 008Fh BX = column CX = row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=0006h,AX=001Dh,AX=004Dh,AX=0090hTop
INT 62 u - FGDRIVER v4.02 - "FG_POINTX" - DISPLAY A PIXEL IN XOR MODE AX = 0090h BX = column CX = row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=004Dh,AX=008FhTop
INT 62 u - FGDRIVER v4.02 - "FG_POLYEDGE" - SPECIFY INCLUSION OF FINAL PIXELS AX = 0091h BX = edge flag 0000h include right- and bottom-edge pixels when drawing polygons with FG_POLYFILL 0001h (default) exclue right- and bottom-edge pixels SeeAlso: AX=0092hTop
INT 62 u - FGDRIVER v4.02 - "FG_POLYFILL" - DRAW A FILLED CONVEX POLYGON AX = 0092h CX = number of vertices ES:BX -> variable pointer record (see #03496) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The vertex array consists of pairs of words specifying the X and Y coordinates of each vertex; the work array is used internally and must contain at least four times as many bytes as the polygon is high in pixels This function is ignored in text modes If the polygon is non-convex, only a portion of it may be filled SeeAlso: AX=000Eh,AX=0027h,AX=0091h,AX=0093h,AX=0094h,AX=0095h Format of FGDRIVER POLYFILL variable pointer record: Offset Size Description (Table 03496) 00h WORD segment of vertex array (see #03498) 02h WORD offset of vertex array 04h WORD segment of work array 06h WORD offset of work array SeeAlso: #03497Top
INT 62 u - FGDRIVER v4.02 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON AX = 0093h CX = number of vertices in polygon ES:BX -> variable pointer record (see #03497) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes SeeAlso: AX=0091h,AX=0092h,AX=0094h,AX=0095h Format of FGDRIVER POLYGON variable pointer record: Offset Size Description (Table 03497) 00h WORD segment of WORD array containing vertex columns 02h WORD offset of WORD array containing vertex columns 04h WORD segment of WORD array containing vertex rows 06h WORD offset of WORD array containing vertex rows SeeAlso: #03496Top
INT 62 u - FGDRIVER v4.02 - "FG_POLYLINE" - DRAW AN UNFILLED POLYGON AX = 0094h CX = number of vertices in polygon ES:BX -> vertex array (see #03498) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is equivalent to "FG_POLYGON", but uses only a single array to define the vertices This call is ignored in text modes SeeAlso: AX=008Fh,AX=0092h,AX=0093h,AX=0095h Format of FGDRIVER POLYFILL/POLYLINE vertex array element: Offset Size Description (Table 03498) 00h WORD column 02h WORD row SeeAlso: #03497Top
INT 62 u - FGDRIVER v4.02 - "FG_POLYOFF" - DEFINE POLYGON DRAWING OFFSET AX = 0095h BX = horizontal offset (default 0) CX = vertical offset (default 0) Desc: define the offsets applied to all vertices of polygons drawn with "FG_POLYFILL" or "FG_POLYLINE" Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0092h,AX=0094hTop
INT 62 u - FGDRIVER v4.02 - "FG_PRINT" - DISPLAY STRING OF HARDWARE CHARACTERS AX = 0096h CX = length of string ES:BX -> string to display Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The string is displayed in the current color, and the graphics cursor is updated to be just to the right of the last displayed character This function is ignored in text modes SeeAlso: AX=000Ch,AX=0037h,AX=0065h,AX=0097hTop
INT 62 u - FGDRIVER v4.02 - "FG_PRINTC" - DISPLAY STRING OF HW CHARS (CLIPPED) AX = 0097h CX = length of string ES:BX -> string to display Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The string is displayed in the current color, and the graphics cursor is updated to be just to the right of the last displayed character; only the portion of the string that lies within the current clipping area is displayed This function is ignored in text modes SeeAlso: AX=0096hTop
INT 62 u - FGDRIVER v4.02 - "FG_PUTBLOCK" - RESTORE RECTANGLE OF DISPLAY AX = 0098h ES:BX -> buffer containing previously-saved image CX = left edge DX = right edge SI = top edge DI = bottom edge Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) In text modes, coordinates are character positions; in graphics modes, they are defined in screen space, and the left and right edges are adjusted to a byte boundary if necessary SeeAlso: AX=003Ch,AX=0099hTop
INT 62 u - FGDRIVER v4.02 - "FG_PUTIMAGE" - DISPLAY MODE-SPECIFIC BITMAP IMAGE AX = 0099h ES:BX -> buffer containing mode-specific bitmap CX = width in bytes DX = height in pixel rows Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The bitmap is displayed with its lower left corner at the graphics cursor position; color 0 is NOT treated as transparent SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0098hTop
INT 62 u - FGDRIVER v4.02 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND AX = 009Ah Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call has no effect if there is no continuous sound playing SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00DChTop
INT 62 u - FGDRIVER v4.02 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE AX = 009Bh BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0006h,AX=0012h,AX=0023h,AX=003ChTop
INT 62 u - FGDRIVER v4.02 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR AX = 009Ch Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in graphics modes The screen attributes are only restored if ANSI.SYS is loaded SeeAlso: AX=0028h,AX=00B0hTop
INT 62 u - FGDRIVER v4.02 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE AX = 009Dh BX = new page width in pixels CX = new page height in pixels Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The visible page must be set to 0000h before making this call The mouse, joysticks, expanded memory, and extended memory must be reinitialized after this call SeeAlso: AX=0084h,AX=00AChTop
INT 62 u - FGDRIVER v4.02 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE AX = 009Eh BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The left and right edges are adjusted to byte boundaries if necessary SeeAlso: AX=00A2h,AX=00C6hTop
INT 62 u - FGDRIVER v4.02 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND AX = 009Fh Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00BDh,AX=00C0hTop
INT 62 u - FGDRIVER v4.02 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP) AX = 00A0h ES:BX -> mode-specific bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The image is drawn with its lower left corner at the current graphics cursor position SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=00A1h,AX=00A9h,AX=00B9hTop
INT 62 u - FGDRIVER v4.02 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP) AX = 00A1h ES:BX -> array containing image stored as a masking map (see #03475) CX = number of pixel runs in masking map DX = width of masking map in pixels Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes and in native EGA and VGA graphics modes The image is drawn with its lower left corner at the current graphics cursor position SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=00A0h,AX=00A9h,AX=00C5hTop
INT 62 u - FGDRIVER v4.02 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE AX = 00A2h BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The left and right edges are adjusted to byte boundaries if necessary SeeAlso: AX=009Eh,AX=00C6hTop
INT 62 u - FGDRIVER v4.02 - "FG_SCALE" - SCALE BITMAP AX = 00A3h ES:BX -> variable pointer record (see #03499) CX = width of source bitmap in pixels (0 < width <= 1024) DX = height of source bitmap in pixels (0 < height <= 1024) SI = desired width of scaled bitmap (0 < width <= 1024) DI = desired height of scaled bitmap (0 < height <= 1024) Return: nothing SeeAlso: AX=00B7h Format of FGDRIVER SCALE variable pointer record: Offset Size Description (Table 03499) 00h WORD segment of source bitmap (one pixel per byte) 02h WORD offset of source bitmap 04h WORD segment of buffer for resulting scaled bitmap 06h WORD offset of buffer for resulting scaled bitmapTop
INT 62 u - FGDRIVER v4.02 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY AX = 00A4h Return: AX = ScrollLock state (0000h off, 0001h on) Program: FGDRIVER is the external video driver for the shareware Fastgraph/Light by Ted Gruber Software Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Ah,AX=0082h,AX=00A8h,AX=00B1hTop
INT 62 u - FGDRIVER v4.02 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION AX = 00A5h BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row DI = number of pixels by which to scroll (positive scrolls up, negative scrolls down) ES = type of scroll 0000h circular (rows scrolled off are copied to vacated rows) else vacated rows are filled with the current color Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) In graphics modes, the left and right edges are adjusted to byte boundaries if necessary Circular scrolling uses part of the hidden page as a workspace SeeAlso: AX=0088h,AX=00B2hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE AX = 00A6h BX = foreground CX = background DX = blink (0000h nonblinking, 0001h blink) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in graphics modes SeeAlso: AX=000Bh,AX=003Ah,AX=0048hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETBANKS" - SET SVGA READ AND WRITE BANKS AX = 00A7h BX = memory bank from which to read (FFFFh leave unchanged) CX = memory bank to which to write (FFFFh leave unchanged) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=003BhTop
INT 62 u - FGDRIVER v4.02 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY AX = 00A8h BX = new state (0000h off, 0001h on) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00B1hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETCLIP" - SET CLIPPING REGION AX = 00A9h BX = left edge of clipping region CX = right edge of clipping region DX = top edge of clipping region SI = bottom edge of clipping region Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=003Eh,AX=00A1h,AX=00C5hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETCOLOR" - SET CURRENT COLOR AX = 00AAh BX = new color index (or text attribute in text modes) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0018h,AX=0040h,AX=0045hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETDACS" - SET VIDEO DAC CONTENTS AX = 00ABh CX = number of DAC registers to set (0001h to 0100h) DX = starting DAC register number (0000h to 00FFh) ES:BX -> buffer containing DAC red/green/blue triples Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The register number wraps back to zero after reaching FFh This call has no effect in text modes or graphics modes below 11h SeeAlso: AX=0041h,AX=004Eh,AX=0086h,INT 10/AX=1012hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETENTRY" - SET TYPE AND ADDRESS OF VIDEO PAGE AX = 00ACh BX = page number (00h-3Fh) CX = page address DX = page type (see #03484 at AX=0042h) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0038h,AX=0042h,AX=00B0hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS AX = 00ADh BX = operation 0000h replacement 0001h AND 0002h OR 0003h XOR Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is only available in native EGA/VGA graphics modes (0Dh to 12h) SeeAlso: AX=001Eh,AX=008FhTop
INT 62 u - FGDRIVER v4.02 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE AX = 00AEh BX = new hidden page (0000h to 003Fh) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The specified page must be a physical page or a virtual page SeeAlso: AX=0043h,AX=00B2h,AX=00B6hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN AX = 00AFh BX = new screen size (25, 43, 50) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0047hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE AX = 00B0h BX = new video mode or FFFFh for current mode (see #03500) ES:DX -> WORD shareware splash screen flag Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call resets the active video page to page 0000h, the clipping region to the entire screen, text rows to 25, etc. in the shareware version, FGDRIVER sets the word pointed at by ES:DX to 9090h after it shows the shareware announcement to the user SeeAlso: AX=004Bh,INT 10/AH=00h (Table 03500) Values for FGDRIVER video mode: 00h-07h standard BIOS modes 09h PCjr/Tandy1000 320x200x16 0Bh Hercules graphics 720x348 0Ch Hercules graphics 320x200 0Dh-13h standard BIOS modes 14h VGA graphics 320x200x256 15h VGA graphics 320x400x256 16h VGA graphics 320x240x256 17h VGA graphics 320x480x256 18h SVGA graphics 640x400x256 19h SVGA graphics 640x480x256 1Ah SVGA graphics 800x600x256 1Bh SVGA graphics 1024x768x256 1Ch SVGA graphics 800x600x16 1Dh SVGA graphics 1024x768x16Top
INT 62 u - FGDRIVER v4.02 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY AX = 00B1h BX = new state (0000h off, 0001h on) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00A8hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE AX = 00B2h BX = new video page (0000h to 003Fh) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The specified page must be a physical or virtual page SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=0088hTop
INT 62 u - FGDRIVER v4.02 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS AX = 00B3h BX = palette or DAC register number CX = red color component DX = green component SI = blue component Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The register number may be negative for Tandy, PCjr, and 200-line EGA graphics modes to specify an intense color This call has no effect in text, CGA graphics, and Hercules graphics modes SeeAlso: AX=004EhTop
INT 62 u - FGDRIVER v4.02 - UNUSED AX = 00B4h Return: AX = 0000h Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h)Top
INT 62 u - FGDRIVER v4.02 - "FG_SETVIEW" - DEFINE VIEWPORT AX = 00B5h ES:BX -> variable record (see #03501) CX = viewport's top edge in screen space DX = viewport's bottom edge in screen space Return: nothing Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=004Fh Format of FGDRIVER SETVIEW variable record: Offset Size Description (Table 03501) 00h WORD viewport's left edge in viewport units 02h WORD viewport's right edge in viewport units 04h WORD viewport's top edge in viewport units 06h WORD viewport's bottom edge in viewport units 08h WORD viewport's left edge in screen space 0Ah WORD viewport's right edge in screen spaceTop
INT 62 u - FGDRIVER v4.02 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE AX = 00B6h BX = new video page (0000h to 003Fh) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The specified page must be a physical or virtual page SeeAlso: AX=0043h,AX=00AEh,AX=00B2hTop
INT 62 u - FGDRIVER v4.02 - "FG_SHEAR" - SHEAR UNPACKED BITMAP AX = 00B7h ES:BX -> variable pointer record (see #03502) CX = bitmap width (0 < width <= 1024) DX = bitmap height (0 < height <= 1024) SI = size of resulting image (width for horiz. shear, height for vert.) DI = shear type 0000h horizontal shear to left 0001h horizontal shear to right 0002h vertical shear to left (left edge stretched up) 0003h vertical shear to right (right edge stretched up) Return: nothing Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00A3h Format of FGDRIVER SHEAR variable pointer record: Offset Size Description (Table 03502) 00h WORD segment of source bitmap 02h WORD offset of source bitmap 04h WORD segment of buffer for resulting bitmap 06h WORD offset of buffer for resulting bitmapTop
INT 62 u - FGDRIVER v4.02 - "FG_SHOWFLIC" - DISPLAY IMAGE FROM FLI/FLC FILE AX = 00B8h ES:BX -> ASCIZ filename for FLI/FLC file CX = number of times to display image file (0000h = continuously) DX = control flags (see #03479 at AX=0031h) Return: AX = status 0000h successful 0001h file not found 0002h not a valid FLI/FLC file Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) the FLI/FLC display may be stopped by the user by pressing Esc SeeAlso: AX=0030h,AX=0031h,AX=00B9hTop
INT 62 u - FGDRIVER v4.02 - "FG_SHOWPCX" - DISPLAY IMAGE FROM PCX FILE AX = 00B9h ES:BX -> ASCIZ filename of PCX image CX = flags (see #03503) Return: AX = status 0000h success 0001h file not found 0002h not a PCX file Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is ignored in text modes and Hercules low-res graphics SeeAlso: AX=005Bh,AX=0060h"1.10",AX=006Ch,AX=006Dh,AX=006Eh,AX=00B8h,AX=00BAh SeeAlso: AX=00BBh Bitfields for FGDRIVER flags: Bit(s) Description (Table 03503) 0 use current palette rather than PCX file's palette 1 display image at cursor position instead of position in PCX header 2-15 reservedTop
INT 62 u - FGDRIVER v4.02 - "FG_SHOWPPR" - DISPLAY IMAGE FROM PPR FILE AX = 00BAh ES:BX -> ASCIZ filename of packed pixel run image CX = width in pixels (nonzero) Return: AX = status 0000h successful 0001h file not found Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The image is displayed with its lower left corner at the current graphics cursor position This function is ignored in text modes and 256-color graphics modes SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BBhTop
INT 62 u - FGDRIVER v4.02 - "FG_SHOWSPR" - DISPLAY IMAGE FROM SPR FILE AX = 00BBh ES:BX -> ASCIZ filename of standard pixel run image CX = width in pixels (nonzero) Return: AX = status 0000h successful 0001h file not found Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The image is displayed with its lower left corner at the current graphics cursor position This function is ignored in text modes SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAhTop
INT 62 u - FGDRIVER v4.02 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION AX = 00BCh BX = frequency in Hertz (18-32767) CX = duration in clock ticks (0000h or negative for continuous sound) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h, AX=00AAh) is already in progress SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBhTop
INT 62 u - FGDRIVER v4.02 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND AX = 00BDh CX = number of times to cycle through sound list ES:BX -> sounds array (see #03504) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h, AX=00AAh) is already in progress SeeAlso: AX=0059h,AX=0081h,AX=00BCh,AX=00C0h,AX=00DCh Format of FGDRIVER sounds array element: Offset Size Description (Table 03504) 00h WORD frequency of sound in Hertz (0000h ends array) 02h WORD duration of sound in clock ticksTop
INT 62 u - FGDRIVER v4.02 - "FG_SPLIT" - ENABLE/DISABLE SPLIT SCREEN ENVIRONMNT AX = 00BEh BX = beginning row for bottom half of split-screen Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474)Top
INT 62 u - FGDRIVER v4.02 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION AX = 00BFh BX = duration in processor-dependent delay units (see AX=0070h) Return: after delay elapses Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0070h,INT 2F/AX=1224hTop
INT 62 u - FGDRIVER v4.02 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND AX = 00C0h Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call has no effect if there is no asynchronous sound in progress The program must not exit while sound is suspended SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBhTop
INT 62 u - FGDRIVER v4.02 - "FG_SVGAINIT" - INITIALIZE FASTGRAPH SVGA KERNEL AX = 00C1h BX = method (see #03505) Return: AX = status 0000h no VESA BIOS or supported SVGA chipset 0001h using VESA BIOS 0002h-0016h specific chipset being used (same as "method" below) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function must be called before attempting to set SVGA graphics modes (18h to 1Dh) or using "FG_BESTMODE", "FG_TESTMODE", or "FG_MEMORY" SeeAlso: AX=0025h,AX=00C2h,AX=00C3h (Table 03505) Values for FGDRIVER SVGA method: 0000h autodetect, give chipset-specific code priority over VESA 0001h autodetect, give VESA priority over chipset-specific code 0002h Ahead type "A" 0003h Ahead type "B" 0004h ATI 18800 0005h ATI 18800-1 0006h ATI 28800 0007h Chips & Technologies 82c451/455/456 0008h C&T 82c452 0009h C&T 82c453 000Ah Genoa 6000 series 000Bh Oak OTI-067 000Ch Paradise PVGA1a 000Dh Paradise WD90C00/WD90C10 000Eh Paradise WD90C11/WD90C30/WD90C31 000Fh Trident 8800 0010h Trident 8900 0011h Tseng ET3000 0012h Tseng ET4000 0013h Video7 0014h Cirrus Logic 5400 series 0015h S3 0016h Trident 8900B/8900C/9000Top
INT 62 u - FGDRIVER v4.02 - "FG_SVGASTAT" - GET SVGA CHIPSET INFORMATION AX = 00C2h Return: AX = chipset information (see #03506) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0025h,AX=00C1h,AX=00C3h Bitfields for FGDRIVER chipset information: Bit(s) Description (Table 03506) 0 SVGA kernel initialized 1 VESA support enabled 2 extended video pages available in modes 13-23 3 SVGA chipset has separate read and write banks 4-15 reserved (0)Top
INT 62 u - FGDRIVER v4.02 - "FG_SVGAVER" - GET FASTGRAPH SVGA KERNEL VERSION AX = 00C3h ES:BX -> variable pointer record (see #03507) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00C1h,AX=00C2h Format of FGDRIVER variable pointer record: Offset Size Description (Table 03507) 00h WORD segment of WORD buffer for major version 02h WORD offset of WORD buffer for major version 04h WORD segment of WORD buffer for minor version (hundredths) 06h WORD offset of WORD buffer for minor versionTop
INT 62 u - FGDRIVER v4.02 - "FG_TCDEFINE" - DEFINE TRANSPARENCY OF COLOR INDEX AX = 00C4h BX = color index CX = transparency (00h opaque, other transparent) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is ignored in text modes SeeAlso: AX=00C5h,AX=00C6hTop
INT 62 u - FGDRIVER v4.02 - "FG_TCMASK" - SET TRANSPARENT COLORS AX = 00C5h BX = colors to consider transparent (bit 0 = color 0, etc) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This call is ignored in text modes The specified colors are considered transparent by "FG_TCXFER" SeeAlso: AX=00C4h,AX=00C6hTop
INT 62 u - FGDRIVER v4.02 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT AX = 00C6h CX = source video page DX = destination video page ES:BX -> copy record (see #03508) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) Pixels which are in any of the colors defined as transparent with "FG_TCMASK" (see AX=00C5h) are left unchanged in the destination region The source and destination regions must not overlap if they are located on the same page This call is ignored in text modes SeeAlso: AX=00C4h,AX=00C5h,AX=00CAhTop
INT 62 u - FGDRIVER v4.02 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE AX = 00C7h BX = desired video mode (00h-17h, also 18h-1Dh after "FG_SVGAINIT") CX = required number of video pages (ignore memory size if <= 0) Return: AX = status 0000h mode not available with requested number of pages 0001h mode is available Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0005h,AX=00B0hTop
INT 62 u - FGDRIVER v4.02 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS AX = 00C8h CX = length of string ES:BX -> string Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The string is displayed starting at the text cursor position using the current text attribute (text modes) or color index (graphics modes) The text cursor position is updated after this call SeeAlso: AX=000Ch,AX=0096h,AX=00C9hTop
INT 62 u - FGDRIVER v4.02 - "FG_TEXTC" - DISPLAY STRING OF CHARACTERS (CLIPPED) AX = 00C9h CX = length of string ES:BX -> string Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) The string is displayed starting at the text cursor position using the current text attribute (text modes) or color index (graphics modes), showing only the portion within the current clipping window The text cursor position is updated after this call SeeAlso: AX=00C8hTop
INT 62 u - FGDRIVER v4.02 - "FG_TRANSFER" - COPY REGION AX = 00CAh CX = source video page DX = destination video page ES:BX -> copy record (see #03508) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) The source and destination regions must not overlap if they are located on the same page SeeAlso: AX=009Eh,AX=00A2h,AX=00A5h,AX=00C6h Format of FGDRIVER copy record: Offset Size Description (Table 03508) 00h WORD left edge column of source region 02h WORD right edge column of source region 04h WORD top edge row of source region 06h WORD bottom edge row of source region 08h WORD left edge of destination 0Ah WORD bottom edge of destinationTop
INT 62 u - FGDRIVER v4.02 - "FG_UNPACK" - EXPAND MODE-SPECIFIC BITMAP AX = 00CBh ES:BX -> variable pointer record (see #03509) CX = size of source bitmap in bytes Return: result buffer filled Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=0083h Format of FGDRIVER UNPACK variable pointer record: Offset Size Description (Table 03509) 00h WORD segment of source bitmap 02h WORD offset of source bitmap 04h WORD segment of buffer for resulting bitmap 06h WORD offset of buffer for resulting bitmapTop
INT 62 u - FGDRIVER v4.02 - "FG_VBADDR" - GET ADDRESS OF VIRTUAL BUFFER AX = 00CCh BX = virtual buffer handle (0000h-001Fh) Return: DX:AX -> virtual buffer Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00CDh,AX=00CEh,AX=00CFh,AX=00D3hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBALLOC" - CREATE VIRTUAL BUFFER AX = 00CDh BX = width of virtual buffer in pixels CX = height in pixels Return: AX = handle for virtual buffer, or FFFEh out of memory FFFFh virtual buffer table full Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00CCh,AX=00CEh,AX=00D0h,AX=00D1h,AX=00D2h,AX=00D4hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBCLOSE" - CLOSE ACTIVE VIRTUAL BUFFER AX = 00CEh Desc: close the active virtual buffer and direct further graphics to the active video page Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00CCh,AX=00D1h,AX=00D4h,AX=00D5h,AX=00D9hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBCOPY" - COPY RECT BETWEEN VIRTUAL BUFFERS AX = 00CFh ES:BX -> variable record (see #03510) CX = handle for source virtual buffer DX = handle for destination virtual buffer Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) if the destination buffer is the same as the source buffer, the regions must not overlap SeeAlso: AX=00D0h,AX=00D1h,AX=00D4h,AX=00D6h,AX=00D7h Format of FGDRIVER VBCOPY variable record: Offset Size Description (Table 03510) 00h WORD source region's left edge 02h WORD source region's right edge 04h WORD source region's top edge 06h WORD source region's bottom edge 08h WORD X coordinate of destination's upper left corner 0Ah WORD Y coordinate of destination's upper left cornerTop
INT 62 u - FGDRIVER v4.02 - "FG_VBCUT" - COPY RECT FROM VIDEO TO VIRTUAL BUFFER AX = 00D0h BX = source region's left edge CX = source region's right edge DX = source region's top edge SI = source region's bottom edge DI = X coordinate of destination's upper left corner ES = Y coordinate of destination's upper left corner Desc: copy a rectangle from the active video page to the active virtual buffer Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00CDh,AX=00CFh,AX=00D4h,AX=00D6hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBDEFINE" - CREATE VIRTUAL BUFFER AX = 00D1h ES:BX -> memory block for virtual buffer CX = buffer width in pixels DX = buffer height in pixels Return: AX = virtual buffer handle FFFFh on error Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) the application-provided buffer must be large enough to hold CX*DX bytes SeeAlso: AX=00CCh,AX=00CDh,AX=00CEh,AX=00D2h,AX=00D4h,AX=00D5hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBFREE" - RELEASE VIRTUAL BUFFER AX = 00D2h BX = virtual buffer handle Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) this function should be used only for buffers created with FG_VBALLOC SeeAlso: AX=00CDh,AX=00D4h,AX=00D5hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBHANDLE" - GET ACTIVE VIRTUAL BUFFER'S HANDLE AX = 00D3h Return: AX = handle for active virtual buffer Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00CCh,AX=00D4hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBINIT" - INITIALIZE VIRTUAL BUFFER ENVIRONMENT AX = 00D4h Return: nothing Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) this function must be called before any other virtual buffer functions are used SeeAlso: AX=00CDh,AX=00D5hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBOPEN" - MAKE VIRTUAL BUFFER ACTIVE AX = 00D5h BX = virtual buffer handle Return: AX = status 0000h successful FFFEh no buffer defined for specified handle FFFFh invalid buffer handle Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00CDh,AX=00CEh,AX=00D1h,AX=00D4h,AX=00D9hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBPASTE" - COPY RECT FROM VIRTUAL BUF TO VIDEO AX = 00D6h BX = source region's left edge CX = source region's right edge DX = source region's top edge SI = source region's bottom edge DI = X coordinate of destination's upper left corner ES = Y coordinate of destination's upper left corner Desc: copy a rectangle from the active virtual buffer to the active video page Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00CFh,AX=00D0h,AX=00D4h,AX=00D7hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBTCCOPY" - COPY RECTANGLE BETWEEN VIRTUAL BUFS AX = 00D7h ES:BX -> variable record (see #03511) CX = source virtual buffer's handle DX = destination virtual buffer's handle Desc: copy rectangle from one virtual buffer to another with transparent colors Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) if the destination buffer is the same as the source buffer, the regions must not overlap SeeAlso: AX=00CFh,AX=00D0h,AX=00D6h,AX=00D8h Format of FGDRIVER VBTCCOPY variable record: Offset Size Description (Table 03511) 00h WORD source region's left edge 02h WORD source region's right edge 04h WORD source region's top edge 06h WORD source region's bottom edge 08h WORD X coordinate of destination region's upper left corner 0Ah WORD Y coordinate of destination region's upper left cornerTop
INT 62 u - FGDRIVER v4.02 - "FG_VBTCXFER" - COPY RECTANGLE TO ACTIVE VIDEO PAGE AX = 00D8h BX = source region's left edge CX = source region's right edge DX = source region's top edge SI = source region's bottom edge DI = X coordinate of destination's upper left corner ES = Y coordinate of destination's upper left corner Desc: copy a rectangle from the active virtual buffer to the active video page, with transparent colors Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) SeeAlso: AX=00D6h,AX=00D7hTop
INT 62 u - FGDRIVER v4.02 - "FG_VBUNDEF" - RELEASE HANDLE FOR VIRTUAL BUFFER AX = 00D9h BX = virtual buffer handle Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) the specified handle must not reference the currently-active virtual buffer SeeAlso: AX=00D1h,AX=00D5hTop
INT 62 u - FGDRIVER v4.02 - "FG_VGASTATE" - SAVE/RESTORE VGA CONTROLLER STATE AX = 00DAh BX = direction (0000h save, else restore) Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474) this function is only meaningful in modes 0Dh and aboveTop
INT 62 u - FGDRIVER v4.02 - "FG_VOICE" - START SOUND AX = 00DBh BX = channel on TI sound chip 1-3 = channels 1-3, 4 = channel 4 with periodic noise, 5 = channel 4 with white noise CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz, 2=2048 Hz for channels 4 and 5) DX = volume SI = duration in clock ticks (continuous if <= 0) Program: FGDRIVER is the external video driver for the shareware Fastgraph/Light by Ted Gruber Software Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is only available on the PCjr and Tandy 1000 machines SeeAlso: AX=0080h,AX=00BCh,AX=00DChTop
INT 62 u - FGDRIVER v4.02 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND AX = 00DCh ES:BX -> tone array (see #03512) CX = number of times to repeat tone array Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) This function is only available on the PCjr and Tandy 1000 machines SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DBh Format of FGDRIVER tone array element: Offset Size Description (Table 03512) 00h WORD channel number (0000h terminates array) 02h WORD frequency 04h WORD volume 06h WORD duration in 1/72.8 secondsTop
INT 62 u - FGDRIVER v4.02 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION AX = 00DDh BX = duration in clock ticks Return: after delay elapses Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00BFh,INT 1A/AX=FF01hTop
INT 62 u - FGDRIVER v4.02 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY AX = 00DEh Return: after next key pressed Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=000Ah,AX=0046h,AX=0063h,AX=0069h,INT 16/AH=00hTop
INT 62 u - FGDRIVER v4.02 - "FG_WAITVR" - ENABLE/DISABLE VERTICAL RETRACE WAIT AX = 00DFh BX = new state (0000h disabled, 0001h enabled) Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h)Top
INT 62 u - FGDRIVER v4.02 - "FG_WHERE" - GET CURRENT CURSOR POSITION AX = 00E0h ES:BX -> variable pointers (see #03513) Return: indicated variables filled with cursor row and column for active display Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=007Eh Format of FGDRIVER variable pointers: Offset Size Description (Table 03513) 00h WORD segment of WORD buffer for cursor row 02h WORD offset of WORD buffer for cursor row 04h WORD segment WORD buffer for cursor column 06h WORD offset WORD buffer for cursor columnTop
INT 62 u - FGDRIVER v4.02 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN AX = 00E1h BX = screen space column Return: AX = character space column containing specified coordinate Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00E2h,AX=00E4hTop
INT 62 u - FGDRIVER v4.02 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL AX = 00E2h BX = character space column Return: AX = screen space column of leftmost pixel in specified character col Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00E2h,AX=00E5hTop
INT 62 u - FGDRIVER v4.02 - "FG_XVIEW" - CONVERT VIEWPORT COORDINATE AX = 00E3h BX = horizontal viewport coordinate Return: AX = screen space X coordinate corresponding to supplied coordinate Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) if no viewport has been defined, the returned coordinate will be the same as the viewport coordinate SeeAlso: AX=00E2h,AX=00E6hTop
INT 62 u - FGDRIVER v4.02 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW AX = 00E4h BX = screen space row Return: AX = character space row containing specified coordinate Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00E1h,AX=00E5hTop
INT 62 u - FGDRIVER v4.02 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW AX = 00E5h BX = character space row Return: AX = screen space row of topmost pixel in specified character row Note: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) SeeAlso: AX=00E2h,AX=00E4h,AX=00E6hTop
INT 62 u - FGDRIVER v4.02 - "FG_YVIEW" - TRANSLATE VERTICAL VIEWPORT COORDINATE AX = 00E6h BX = viewport Y coordinate Return: AX = screen space row for viewport coordinate Program: FGDRIVER is the external video driver for the shareware Fastgraph/Light by Ted Gruber Software Notes: the FGDRIVER functions are rearranged with each major release, but their parameters do not change (see #03474 at AX=0000h) if no viewport has been defined, the returned coordinate will be the same as the viewport coordinate SeeAlso: AX=00E3h,AX=00E5hTop
INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE AH = 01h Program: Cswitch is a set of multitasking functions by Herb Rose SeeAlso: AH=05h"Cswitch",AH=06h"Cswitch",INT 15/AX=1000h,INT 2F/AX=1680hTop
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI AH = 01h Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - WAIT FOR SEMAPHORE AH = 02h DX = semaphore number (0-63) Return: AX = FFFFh bad semaphore number else success SeeAlso: AH=03h"Cswitch",AH=04h"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - INITIALIZE AH = 02h Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=00h"ETHDEV",AH=03h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP" SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - CHECK SEMAPHORE AH = 03h DX = semaphore number (0-63) Return: AX = status FFFFh not owned else owned SeeAlso: AH=02h,AH=04hTop
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET REAL IP ADDRESS AH = 03h DS:SI -> DWORD buffer for IP address Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - TRIGGER SEMAPHORE AH = 04h DX = semaphore number (0-63) Return: AX = status FFFFh bad semaphore number else success SeeAlso: AH=02h"Cswitch",AH=03h"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ??? AH = 04h BX = ??? ES:SI -> FAR routine for ??? Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - SLEEP AH = 05h BX = seconds to sleep SeeAlso: AH=01h"Cswitch",AH=06h"Cswitch",AH=08h"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 05h ??? Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - SUSPEND AH = 06h SeeAlso: AH=05h"Cswitch",AH=08h"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 06h ??? Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - SPAWN AH = 07h ES:BX -> function address to start executing at CX = priority (1-10) Return: AX = result/status FFFDh no free memory control blocks FFFEh no free task control blocks FFFFh not enough memory to create new task stack >0 the tcb number of the new task, indicating no error SeeAlso: AH=0Fh"Cswitch",AH=10h"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 07h DS:SI -> ??? Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - WAKE UP TASK AH = 08h BX = tcb identifier SeeAlso: AH=05h,AH=06hTop
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 08h CX = ??? ES:SI -> ??? buffer (see #03514) Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS" Format of BW-TCP ??? buffer: Offset Size Description (Table 03514) 00h 6 BYTEs hardware address??? 06h 6 BYTEs ??? 0Ch WORD ??? 0Eh WORD ???Top
INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR AH = 08h CX = FFFEh DX = FFFFh Return: AX = PSP address of resident DBLIBRARY Note: this call does not free the memory allocated to the TSR; the calling code must do the deallocation. SeeAlso: INT 62"DBLIBRARY"Top
INT 62 - Cswitch - SET PRIORITY AH = 09h BX = new base priority (1-10) Note: the lower the priority is numerically, the more often the task will runTop
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - HOOK TIMER INTERRUPT AH = 09h Return: CF clear if successful AX = handler ID CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=0Ah"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - TEST MESSAGE QUEUE AH = 0Ah DX = queue number (0-63) Return: AX = result/message size 0000h nothing on queue FFFFh bad queue number else number of bytes in first message in queue SeeAlso: AH=0Bh"Cswitch",AH=0Ch"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - UNHOOK TIMER INTERRUPT AH = 0Ah DX = handler ID Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=09h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - SEND MESSAGE AH = 0Bh CX = number of bytes to write DS:SI -> buffer DX = queue number (0-63) Return: AX = result/message size 0000h no message was on queue FFFEh triggered by something arriving, redo the call FFFFh bad queue number else number of bytes in message SeeAlso: AH=0Ah"Cswitch",AH=0Ch"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ADD ??? AH = 0Bh AL = ??? DX = ??? BP = ??? ES:SI -> ??? Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=0Ch"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - READ MESSAGE AH = 0Ch CX = number of bytes to read DS:SI -> buffer DX = queue number (0-63) Return: AX = status FFFFh bad queue number else number of bytes transferred SeeAlso: AH=0Ah,AH=0BhTop
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - REMOVE ??? AH = 0Ch DX = ??? BP = ??? Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=0Bh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT AH = 0Dh SeeAlso: AH=0Eh"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI AH = 0Dh Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT AH = 0Eh SeeAlso: AH=0Dh"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - BEGIN CRITICAL SECTION AH = 0Eh Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=0Fh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP" SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK AH = 0Fh ES:BX -> command line CX = priority (1-10) DX = background flag (nonzero allows loading to EMS) Return: AX = status 0000h task loader queue is full 0001h no error SeeAlso: AH=07h"Cswitch",AH=10h"Cswitch",AH=13h"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - END CRITICAL SECTION AH = 0Fh Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=0Eh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP" SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM AH = 10h SeeAlso: AH=07h"Cswitch",AH=0Fh"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - QUERY CRITICAL SECTION AH = 10h Return: CF clear if no critical section active CF set if in critical section SeeAlso: AH=0Eh"ETHDEV",AH=0Fh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP" SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - GET TCB INFORMATION AH = 11h ES:BX -> a pointer which will be set to the tcb address Return: AX = tcb indentifier SeeAlso: AH=12hTop
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ??? AH = 11h ES:SI -> ??? Return: CF clear SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - GET TCB ADDRESS AH = 12h ES:BX -> a pointer which will be set to the tcb table address Return: AX = tcb indentifier SeeAlso: AH=11h"Cswitch"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET SOCKET NUMBER??? AH = 12h Return: CF clear if successful AX = socket number??? (memory variable incremented after reading) CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK AH = 13h Return: AX = result FFFCh no Memory Control Blocks available FFFDh no TCBs available FFFEh insufficient memory FFFFh cannot open file 0000h load in progress (not done yet) else tcb indentifier SeeAlso: AH=0FhTop
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 13h CX = ??? Return: CF clear if successful AL = 00h CF set on error AL = error code SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 14h ES:SI -> ??? Return: CF clear if successful AL = 00h CF set on error AL = error code SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET ??? AH = 15h Return: CF clear if successful AX = ??? (destroyed???) CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Notes: call this function after reading the "ETHDEV27" device the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" INT 64/AH=01h"BW-NFS"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 16h ??? Return: CF clear if successful CF set on error AL = error code SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ??? AH = 17h DX = segment of ??? Return: CF clear SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP" SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ALLOCATE AND MAP EMS FOR DRIVER AH = 18h Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Notes: calls function 17h after EMS allocated and mapped the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=03h"BW-TCP",INT 63/AH=24h SeeAlso: INT 64/AH=01h"BW-NFS"Top
INT 62 - PC Tools v7 COMMUTE - ??? AH = 47h AL = subfunction (00h-31h) ??? CF set Return: ??? Program: COMMUTE is a remote-control program bundled with Central Point Software's PC ToolsTop
INT 62 - PC Tools v7 COMMUTE - ??? AH = 48h AL = ??? ??? CF set Return: ???Top
INT 62 - PC Tools v7 COMMUTE - ??? AH = 49h ??? CF set Return: ??? Note: may be the same as AH=4ChTop
INT 62 - PC Tools v7 COMMUTE - ??? AH = 4Ah AL = subfunction (00h-46h) ??? CF set Return: ???Top
INT 62 - PC Tools v7 COMMUTE - ??? AH = 4Bh BX = 1234h CX = 1234h ES = ??? CF set Return: ??? Program: COMMUTE is a remote-control program bundled with Central Point Software's PC ToolsTop
INT 62 - PC Tools v7 COMMUTE - ??? AH = 4Ch BL = subfunction 00h ??? 02h ??? Return: CF clear if successful CF set on errorTop
INT 62 - PC Tools v7 COMMUTE - INSTALLATION CHECK AX = 6262h CF set Return: AX = 0000h BX = segment of resident code's PSP Program: COMMUTE is a remote-control program bundled with Central Point Software's PC ToolsTop
INT 62 U - GWBTSR - API AH = C0h AL = function 00h installation check Return: AX = 00FFh if installed 01h ??? Program: GWBTSR is a huge (48K) resident mixer controller for the Gateway 2000 sound card (OEM version of Aztech Sound Galaxy) Index: installation check;GWBTSRTop
INT 62 - BW-TCP - ETHDRV.SYS - MAP EMS PAGE FRAME AH = FEh AL = direction 00h map in driver's memory block 01h map out driver's memory block Return: CF clear if successful CF set on error AL = error code Range: INT 4C to INT FB, selected by configuration Notes: this function is supported by at least the SLIP and ODI versions of ETHDEV.SYS the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=00h"ETHDEV",INT 62/AH=18h"ETHDEV" SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h,INT 64/AH=FEhTop
INT 63 - reserved for user interruptTop
INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA Desc: this vector stores the last four bytes of the parameter table for hard disk 0 SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"Top
INT 63 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!) Desc: the low word of this vector contains the segment of the RAM data area to be used by the expansion ROM at F400h:4000h, and the high word contains the length of the data area; this segment and size are both set to 0000h if no ROM is installed at F400h:4000h SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional" SeeAlso: INT 64"TI Professional PC"Top
INT 63 - Oracle SQL Protected Mode Executive - ???Top
INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40 Desc: the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13 has been moved there) and places the old value hereTop
INT 63 - Kofax KF9X00 image manipulation card interfaceTop
INT 63 - DESQview/X - SOCKET API InstallCheck: test for the string "dvxunix" (yes, lowercase) at offset 9 from the interrupt handler start (see #03515) Notes: parameters are passed by patching (!) data field immediately following the entry point, as detailed below (see #03515); the preferred method for calling the socket API is via INT 15/AX=DE2Eh SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview" Index: installation check;DESQview/X socket interface Format of DESQview/X socket interrupt handler entry: Offset Size Description (Table 03515) 00h 3 BYTEs near jump or short jump + NOP to actual interrupt handler 03h WORD offset from following pointer for initial top of local stack 05h DWORD pointer to argument/stack block (see INT 15/AX=DE2Eh) 09h 7 BYTEs signature "dvxunix"Top
INT 63 - HP 100LX - MAP HIGH MEMORY AH = 00h AL = physical page (00h seg C000, 01h seg C400h, ...) BX = zero-based logical page CX = page number DX = device ID (00h system ROM, 05h plugin, etc.) Return: ??? SeeAlso: AH=01hTop
INT 63 - BW-TCP - TCPIP.SYS - SET IP ADDRESS??? AH = 00h DS:BX -> DWORD containing IP address (big-endian) Return: CF clear if successful CF set on error AX destroyed Range: INT 4D to INT FC, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=01h"BW-TCP",AH=02h"BW-TCP"Top
INT 63 - HP 100LX - SAVE/RESTORE MEMORY MAP AH = 01h AL = function (00h save, 01h restore) ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 01h ES:BX -> ??? ??? Return: ??? Range: INT 4D to INT FC, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=00h"BW-TCP",AH=02h"BW-TCP"Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 02h ??? Return: ??? SeeAlso: AH=00h"BW-TCP",AH=01h"BW-TCP"Top
INT 63 - BW-TCP - TCPIP.SYS - GET IP ADDRESS AH = 03h DS:SI -> buffer for DWORD IP address (big-endian) Return: AX destroyed CF clear if successful CF set on error Note: this call may use ARP or RARP to determine the addressTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 04h ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 05h DS:BX -> ??? ES:SI -> ??? Return: ??? Range: INT 4D to INT FC, selected by configurationTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 06h ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 07h ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - SET DEFAULT ??? HANDLER AH = 08h DS:BX -> DWORD containing IP address Return: CF clear if successful CF set on error ???Top
INT 63 - BW-TCP - TCPIP.SYS - INSTALL ??? HANDLERS AH = 09h BL = handler type ES:SI -> FAR handler of specified type Return: ??? SeeAlso: AH=0Ah,AH=0DhTop
INT 63 - BW-TCP - TCPIP.SYS - DELETE ??? HANDLERS AH = 0Ah BL = handler type Return: CF clear if successful CF set on error (no handler of specified type installed) SeeAlso: AH=09hTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 0Bh AL = ??? DL = ??? DS:BX -> ??? ES:SI -> ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 0Ch ??? Return: ??? Range: INT 4D to INT FC, selected by configurationTop
INT 63 - BW-TCP - TCPIP.SYS - INSTALL DEFAULT ??? HANDLER AH = 0Dh ??? Return: ??? Note: if not already installed, installs a type 06h handler with AH=09h SeeAlso: AH=09hTop
INT 63 - BW-TCP - TCPIP.SYS - CLOSE NETWORK DESCRIPTOR AH = 0Eh ??? Return: ??? SeeAlso: INT 61/AH=08h"PC/TCP",INT 61/AH=09h"PC/TCP",INT 61/AH=18hTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 0Fh AL = ??? SI = ??? DS:DI -> ??? ??? Return: ??? Range: INT 4D to INT FC, selected by configurationTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 10h DS:DI -> ??? ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 11h ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - LISTEN FOR INCOMING CONNECTIONS AH = 12h DS:SI -> ??? ES:BP -> ??? Return: ??? SeeAlso: AH=14h,INT 61/AH=23hTop
INT 63 - BW-TCP - TCPIP.SYS - NOP AH = 13h Return: nothing Range: INT 4D to INT FC, selected by configurationTop
INT 63 - BW-TCP - TCPIP.SYS - OPEN NETWORK CONNECTION AH = 14h BX = network descriptor??? DS:SI -> ??? ES:BP -> ??? Return: ??? SeeAlso: AH=12h,AH=16h,AH=19h,INT 61/AH=13h"PC/TCP",INT 62/AH=13h"ETHDEV"Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 15h DS:DI -> ??? ??? Return: ??? Range: INT 4D to INT FC, selected by configurationTop
INT 63 - BW-TCP - TCPIP.SYS - RESET NETWORK CONNECTION AH = 16h DS:DI -> ??? Return: ??? Note: calls AH=17h after preprocessing SeeAlso: AH=17h,INT 61/AH=19h"PC/TCP"Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 17h DS:DI -> ??? ??? Return: ??? Range: INT 4D to INT FC, selected by configuration SeeAlso: AH=18hTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 18h DS:DI -> ??? ??? Return: ??? Note: same as AH=17h, except performed with interrupts disabled SeeAlso: AH=17hTop
INT 63 - BW-TCP - TCPIP.SYS - WRITE TO THE NETWORK AH = 19h DS:DI -> ??? ??? Return: BX = number of bytes NOT written ??? Range: INT 4D to INT FC, selected by configuration Note: calls AH=17h with interrupts disabled and ??? set to 01h SeeAlso: AH=14h,AH=1Ah,AH=1Bh,INT 61/AH=1Ah"PC/TCP"Top
INT 63 - BW-TCP - TCPIP.SYS - READ FROM THE NETWORK AH = 1Ah CX = maximum number of bytes to read ES:BP -> ??? ??? Return: CX = number of bytes actually read ??? SeeAlso: AH=12h,AH=14h,AH=19h,INT 61/AH=1Bh"PC/TCP"Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 1Bh CX = ??? ES:BP -> ??? Return: DX = ??? ??? Range: INT 4D to INT FC, selected by configurationTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 1Ch DS:DI -> ??? ??? Return: ??? Note: calls AH=17h with ??? SeeAlso: AH=17hTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 1Dh ??? Return: ??? Range: INT 4D to INT FC, selected by configurationTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 1Eh DS:BX -> DWORD containing IP address (big-endian) ??? Return: CF clear if successful CF set on error ???Top
INT 63 - BW-TCP - TCPIP.SYS - SET SOCKET ??? HANDLER AH = 1Fh BX = socket number ES:SI -> FAR function for ??? Return: CF clear if successful CF set on error (out of slots) SeeAlso: AH=20hTop
INT 63 - BW-TCP - TCPIP.SYS - REMOVE SOCKET ??? HANDLER AH = 20h BX = socket number Return: CF clear if successful CF set on error (not set) Range: INT 4D to INT FC, selected by configuration SeeAlso: AH=1FhTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 21h ES:SI -> ??? Return: ??? SeeAlso: INT 61/AH=1Ch"PC/TCP"Top
INT 63 - BW-TCP - TCPIP.SYS - REMOVE ??? HANDLER AH = 22h Return: CF clear Range: INT 4D to INT FC, selected by configuration Note: decrements a counter if not already zero, and calls AH=0Ah with BL=11h if the counter reaches zeroTop
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 23h DS:BX -> ??? ES:SI -> 6-byte buffer for ??? Return: CF clear if successful CF set on errorTop
INT 63 - BW-TCP - TCPIP.SYS - GET SOCKET AH = 24h Return: AX = socket number (0400h-FFFFh) Range: INT 4D to INT FC, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loaded SeeAlso: AH=12h,AH=14h,INT 62/AH=12h"ETHDEV",INT 64/AH=01h"BW-NFS"Top
INT 63 - BW-TCP - TCPIP.SYS - GET INTERNET ADDRESS AH = 25h Return: CL:CH:DL:DH = caller's Internet address SeeAlso: AH=03h,AH=26h,INT 61/AH=05h"PC/TCP"Top
INT 63 - BW-TCP - TCPIP.SYS - SET INTERNET ADDRESS??? AH = 26h CL:CH:DL:DH = Internet address Return: nothing Range: INT 4D to INT FC, selected by configuration Note: this function sets a different variable than AH=25h returns SeeAlso: AH=03h,AH=25hTop
INT 63 - BW-TCP - TCPIP.SYS - SET ??? AH = 27h BX = ??? ES:SI -> ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 28h ??? Return: ???Top
INT 63 - BW-TCP - TCPIP.SYS - ??? AH = 29h ??? Return: ??? Range: INT 4D to INT FC, selected by configuration Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive interrupts (62h and 63h by default); the BW-NFS client uses a third consecutive interrupt (64h by default) if it is loadedTop
INT 64 - reserved for user interruptTop
INT 64 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the first four bytes of the parameter table for hard disk 1 Notes: these vectors are used by the following Adaptec controllers: ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16 these vectors are NOT used by the following Adaptec controllers: ACB 2310, ACB 2312, ACB 2320D, ACB 2322D SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"Top
INT 64 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!) Desc: the low word of this vector contains the segment of the RAM data area to be used by the expansion ROM at F400h:6000h, and the high word contains the length of the data area; this segment and size are both set to 0000h if no ROM is installed at F400h:6000h SeeAlso: INT 60"TI Professional PC",INT 63"TI Professional" SeeAlso: INT 65"TI Professional PC"Top
INT 64 - Oracle SQL Protected Mode Executive - ???Top
INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API Note: equivalent to INT 7A for NetWare versions through 2.0a only; later versions do not use this interrupt for IPX/SPX access, instead getting an entry point from INT 2F/AX=7A00h SeeAlso: INT 2F/AX=7A00h,INT 7A"LOW-LEVEL API"Top
INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE SeeAlso: INT 65"DG10",INT 66"DG10"Top
INT 64 - Extended Batch Language v3.14+ AH = function 00h to 5Fh chained to previous handler 60h to 6Ch reserved, return immediately 80h to FFh chained to previous handler 6Dh (v4.01+) insert tone in queue AL = ??? CX = frequency in Hertz DL = duration in clock ticks Return: AL = 00h if note stored = 01h if no room to store 6Eh clear ??? counter/flag 6Fh return counter/flag that AH=6Eh clears 70h ??? AL = ??? 71h ??? AL = ??? 72h ??? 73h insert byte at end of keyboard buffer AL = byte to insert Return: AL = 00h if byte inserted = 01h if no room to store 74h insert byte at front of keyboard buffer AL = byte to insert Return: AL = 00h if byte inserted = 01h if no room to store 75h ??? 76h get keyboard "stack" status AL = 'K' if kbd read will read physical keyboard 'S' if it will read EBL internal keyboard buffer AH = ??? 77h clear internal keyboard buffer 78h ??? AL = ??? 79h ??? 7Ah ??? AL = ??? 7Bh ??? AL = ??? 7Ch ??? AL = ??? 7Dh ??? AL = ??? 7Eh clear buffer for ??? 7Fh installation check Return: CX = version in BCD DI = segment of ??? BX = segment of next program's PSP??? Program: Extended Batch Language is a batch-file enhancer by Seaware Notes: the chaining does not check whether the interrupt had been hooked before, so if you try to chain when the previous vector was 0000h:0000h, you'll be in trouble functions 72h and 7Ah-7Dh appear to be interfaces to the optional floating-point and extended function packages Index: installation check;EBL|installation check;Extended Batch LanguageTop
INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information Note: This vector is overwritten by Pdisk to install custom harddrive types. It can either destroy 4 vectors and take no memory or TSR and take up some memory. SeeAlso: INT 65"Pdisk"Top
INT 64 - PC-DRAFT - ASYNCHRONOUS DRIVER ??? Return: ??? Program: PC-DRAFT is a powerful CAD environment by rhv. SeeAlso: INT 62"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"Top
INT 64 U - BW-NFS - BWRPC - ???
AH = 01h
ES:BX -> ??? (at least 8 bytes)
ES:BP -> DWORD ???
???
Return: CF clear if successful
???
CF set on error
CX = 0000h
Range: INT 4E to INT FD, selected by configuration
Notes: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
interrupts (62h and 63h by default); the BW-NFS client uses a third
consecutive interrupt (64h by default) if it is loaded
the BWRPC installation check consists of determining the interrupt
vector assigned to it (two more than the value returned by reading
the ETHDEV27 device), and testing whether the word immediately
preceding the interrupt handler is 4257h ('BW')
SeeAlso: INT 62/AH=00h"ETHDEV",INT 63/AH=03h"BW-TCP",INT 63/AH=24h
Index: installation checks;BWRPC
Top
INT 64 U - BW-NFS - BWRPC - ??? AH = 02h DS:DI -> ??? Return: ??? Note: this call is passed directly through to INT 62/AH=07h SeeAlso: INT 62/AH=07h"ETHDEV"Top
INT 64 U - BW-NFS - BWRPC - ADD ??? AH = 03h AL = ??? BP = ??? ES:SI -> ??? Return: ??? Note: this call is passed directly through to INT 62/AH=0Bh SeeAlso: AH=04h,INT 62/AH=0Bh"ETHDEV"Top
INT 64 U - BW-NFS - BWRPC - REMOVE ??? AH = 04h BP = ??? Return: ??? Range: INT 4E to INT FD, selected by configuration Note: this call is passed directly through to INT 62/AH=0Ch SeeAlso: AH=03h,INT 62/AH=0Ch"ETHDEV"Top
INT 64 U - BW-NFS - BWRPC - ??? AH = 05h CX = ??? Return: ??? Note: this call is passed directly through to INT 62/AH=13h SeeAlso: INT 62/AH=13h"ETHDEV"Top
INT 64 U - BW-NFS - BWRPC - ??? AH = 06h ES:SI -> ??? Return: AL = 00h if CF clear Range: INT 4E to INT FD, selected by configuration Note: this call is passed directly through to INT 62/AH=14h SeeAlso: INT 62/AH=14h"ETHDEV"Top
INT 64 U - BW-NFS - BWRPC - GET IP ADDRESS AH = 07h Return: CX:DX = IP addressTop
INT 64 U - BW-NFS - BWRPC - CALL ETHDEV.SYS AH = 10h AL = ETHDEV function number other registers as appropriate for ETHDEV call Return: as returned by ETHDEV Note: this call is passed directly through to INT 62 SeeAlso: INT 62/AH=00h"ETHDEV"Top
INT 64 U - BW-NFS - BWRPC - NOP??? AH = 11h Return: CF clear Range: INT 4E to INT FD, selected by configurationTop
INT 64 - BW-NFS - BWRPC - MAP EMS PAGE FRAME AH = FEh AL = direction 00h map in driver's memory block 01h map out driver's memory block Return: CF clear if successful CF set on error AL = error code Range: INT 4E to INT FD, selected by configuration Note: this call is passed through directly to ETHDEV.SYS (see INT 62/AH=FEh) SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=FEh,INT 63/AH=03h"BW-TCP" SeeAlso: INT 63/AH=24hTop
INT 65 - reserved for user interruptTop
INT 65 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the second four bytes of the parameter table for hard disk 1 SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"Top
INT 65 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!) Desc: the low word of this vector contains the segment of the RAM data area to be used by the expansion ROM at F400h:8000h, and the high word contains the length of the data area; this segment and size are both set to 0000h if no ROM is installed at F400h:8000h SeeAlso: INT 60"TI Professional PC",INT 64"TI Professional" SeeAlso: INT 66"TI Professional PC"Top
INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE SeeAlso: INT 64"DG10",INT 66"DG10"Top
INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPTTop
INT 65 - SD.COM v6.2 Desc: The unregistered version of SD62.COM uses the low byte of this vector to count the number of invocations, displaying a registration reminder each time after the 20th use.Top
INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64"Pdisk",INT 66"Pdisk"Top
INT 65 - PC-DRAFT - SECONDARY DISPLAY DRIVER ??? Return: ??? Program: PC-DRAFT is a powerful CAD environment by rhv. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"Top
INT 65 - Ad Lib SOUND.COM - INTERFACE SI = function number (also see separate entries below) 0000h Init 0002h RelTimeStart 0003h SetState 0004h GetState 0005h Flush 0006h SetMode 0007h GetMode 0008h SetRelVolume 0009h SetTempo 000Ah SetTranspose 000Bh GetTranspose 000Ch SetActVoice 000Dh GetActVoice 000Eh PlayNoteDel 000Fh PlayNote 0010h SetTimbre 0011h SetPitch 0012h SetTickBeat 0013h NoteOn 0014h NoteOff 0015h Timbre 0016h SetPitchBend 0017h WaveForm ES:BX -> arguments InstallCheck: test for the signature block immediately preceding the interrupt handler (see #03516) SeeAlso: SI=8000h Index: installation check;Ad Lib SOUND.COM Format of AdLib signature block: Offset Size Description (Table 03516) 00h WORD version number 02h 19 BYTEs "SOUND-DRIVER-AD-LIB" 15h BYTE 01h 16h BYTE 01h 17h BYTE 00hTop
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API DX = 4147h BH = 01h BL = function number (00h-2Ah) ??? Return: CF clear if successful AX = ??? CF set on error AX = error code (0001h=invalid function/subfunction) Range: INT ?? to INT ??, selected by configuration option; actual interrupt number and function number may be retrieved via INT 2A/AX=4147h Note: this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and ROUTER.COM SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API DX = 4147h BH = 02h BL = function number (00h-05h) ??? Return: CF clear if successful AX = ??? CF set on error AX = error code (0001h=invalid function/subfunction) Range: INT ?? to INT ??, selected by configuration option; actual interrupt number and function number may be retrieved via INT 2A/AX=4147h Note: this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and ROUTER.COM SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API DX = 4147h BH = 03h BL = function number (00h-03h) (00h-04h for ROUTER.COM) ??? Return: CF clear if successful AX = ??? CF set on error AX = error code Range: INT ?? to INT ??, selected by configuration option; actual interrupt number and function number may be retrieved via INT 2A/AX=4147h Note: this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and ROUTER.COM SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API DX = 4147h BH = 04h BL = function number (00h-07h) ??? Return: CF clear if successful AX = ??? CF set on error AX = error code Range: INT ?? to INT ??, selected by configuration option; actual interrupt number and function number may be retrieved via INT 2A/AX=4147h Note: this API is supported by CLIENT.COM, SERVER.COM, and DOSNET.COM SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API DX = 4147h BH = 07h BL = function number (00h-08h) ??? Return: CF clear if successful AX = ??? CF set on error AX = error code (0001h=invalid function/subfunction) Range: INT ?? to INT ??, selected by configuration option; actual interrupt number and function number may be retrieved via INT 2A/AX=4147h Note: this API is supported by CLIENT.COM, SERVER.COM, and DOSNET.COM SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK??? DX = 4147h BH = 80h Return: CF set AX = 0001h Range: INT ?? to INT ??, selected by configuration option; actual interrupt number and function number may be retrieved via INT 2A/AX=4147h Note: this call is supported by CLIENT.COM, SERVER.COM, and ROUTER.COM SeeAlso: DX=4147h,INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER - ??? DX = 4741h BH = 01h AL = 02h BL = function number (0Eh,0Fh) AH = subfunction number ??? Return: ??? Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ??? DX = 4741h BH = 01h AL = 03h BL = function number (0Eh,0Fh) AH = subfunction number ??? Return: ??? Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ??? DX = 4741h BH = 01h AL = 04h BL = function number (0Eh,0Fh) AH = subfunction number ??? Return: ??? Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - NETBIOS - ??? DX = 4741h BH = 01h AL = 07h BL = function number (0Eh,0Fh) AH = subfunction number ??? Return: ??? Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - MACTEST - ??? DX = 4741h BH = 01h AL = 08h BL = function number (0Eh,0Fh) AH = subfunction number ??? Return: ??? Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - Physical Layer - ??? DX = 4741h BH = 02h BL = function number (01h-04h) ??? Return: ??? ---function 02h--- DS:SI -> ??? data area Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h Note: this API is supported by PARALLEL.COM, SERIAL.COM, ARCNET.COM, ETHERNET.COM, NDIS.COM, ODI.COM, SMC.COM, and FTP.COM SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER.COM - ??? DX = 4741h BH = 05h BL = function number (00h,01h) Return: CF clear AL = status code (00h=successful) Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR.COM - ??? DX = 4741h BH = 06h BL = function number (00h-04h) ??? Return: ??? Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - COMREDIR.COM - ??? DX = 4741h BH = 08h BL = function number (00h-01h) ??? Return: ??? Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 U - NetSoft DOS-NET v1.20+ - FTP.COM - ??? DX = 4741h BX = 8010h AL = instance number??? Return: AX = 0008h if AL matches internal variable (call chained otherwise) Range: INT ?? to INT ??, selected by configuration option; actual interrupt number may be retrieved via INT 2A/AX=4147h SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147hTop
INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET) SI = 0000hTop
INT 65 - Ad Lib SOUND.COM - SET STATE SI = 0003h ES:BX -> WORD new state (0000h disabled, 0001h enabled) SeeAlso: SI=0004hTop
INT 65 - Ad Lib SOUND.COM - GET STATE SI = 0004h Return: AX = status 0000h all done playing sounds else still playing sounds SeeAlso: SI=0003hTop
INT 65 - Ad Lib SOUND.COM - SET MODE SI = 0006h ES:BX -> WORD new mode (0000h melodic, 0001h percussive) SeeAlso: SI=0007hTop
INT 65 - Ad Lib SOUND.COM - GET MODE SI = 0007h Return: AX = mode 0000h melodic 0001h percussive SeeAlso: SI=0006hTop
INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE SI = 000Ch ES:BX -> WORD voice = 0000h to 0008h SeeAlso: SI=000DhTop
INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE SI = 000Dh Return: AX = voice (0000h to 0008h) SeeAlso: SI=000ChTop
INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES SI = 8000h Return: DX:AX -> internal data structures Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's Pro Audio Spectrum sound boards SeeAlso: SI=8001hTop
INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT SI = 8001h Return: AX = ??? DX = number of voices??? (09h or 0Bh) SeeAlso: SI=8000hTop
INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS SI = 8002h SeeAlso: SI=8003hTop
INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS SI = 8003h SeeAlso: SI=8002hTop
INT 65 U - Media Vision FM.COM v4.1a+ - GET ??? SI = 8004h Return: AX = ??? (0280h) DX = ??? (01A0h)Top
INT 65 U - Media Vision FM.COM v4.1a+ - ??? SI = 8005h ??? Return: ??? SeeAlso: SI=8000hTop
INT 65 U - EZRECV v1.0 - API AX = function 0000h ??? Return: AX = ??? or FFFFh 0001h ??? Return: AX = status (0000h or 0001h) 0002h ??? Return: AX = status (0000h or 0001h) 0003h set ??? to 0001h Return: AX = 0000h 0004h ??? Return: AX = ??? Return: BH = COM port being used BL = speed??? CH = ??? CL = ??? DX = ??? DS = ??? ES = EZRECV data segment Program: EZRECV is a background Zmodem file receiver by Express ConsultingTop
INT 66 - reserved for user interruptTop
INT 66 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the third four bytes of the parameter table for hard disk 1 SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"Top
INT 66 - TI Professional PC - SYSTEM INFORMATION (NOT A VECTOR!) Desc: the low word of this vector contains the system memory size in paragraphs; the third byte contains the number of outstanding interrupt requests, and the fourth byte contains a description of the installed drive types (see #03517) SeeAlso: INT 60"TI Professional PC",INT 67"TI Professional" Bitfields for TI Professional drive type information: Bit(s) Description (Table 03517) 7 floppy drive D: has 80 tracks 6 floppy drive D: is double-sided 5 floppy drive C: has 80 tracks 4 floppy drive C: is double-sided 3 floppy drive B: has 80 tracks 2 floppy drive B: is double-sided 1 floppy drive A: has 80 tracks 0 floppy drive A: is double-sidedTop
INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE SeeAlso: INT 64"DG10"Top
INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ??? Program: TurboNET is a NetBIOS-based file redirector and server Note: hooked but not used (IRET) by both redirector and server; called from server's INT 28 handler SeeAlso: INT 2F/AX=8100hTop
INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64"Pdisk",INT 67"Pdisk"Top
INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer Note: This Windows 3.x Virtual Device Driver implements a virtual timer which will expire and call INT 66. This timer can be used to calculate elapsed execution time etc.Top
INT 66 - Newkey v5.4 - INSTALLATION VECTOR Return: immediately (IRET) Program: Newkey is a shareware keyboard macro program by Frank A. Bell InstallCheck: test for the signature bytes FDh FCh FFh FEh at offset 03h in the interrupt handlers segment Range: INT 60h to INT 67h, selected by scanning for highest unused vector BUG: the code obviously intends to use INT F0-FE, INT 70-77, and INT 68-6F before falling back to INT 60-67, but only uses the last of these ranges in v5.4 SeeAlso: INT 2F/AX=E300h Index: installation checks;Newkey|Newkey;installation checkTop
INT 66 - PC-DRAFT - TABLET/DIGITIZER DRIVER ??? Return: ??? Program: PC-DRAFT is a powerful CAD environment by rhv. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 67"PC-DRAFT"Top
INT 66 - PC-Magazin - INCA details not yet availble Program: INCA is a utility from PC-Magazin (the German edition of PC Magazine) issue 51-52/85. SeeAlso: INT 61"SWAPx"Top
INT 66 - BitFax Scheduler - SET MODE??? AH = 01h SeeAlso: AH=02hTop
INT 66 - BitFax Scheduler - SET MODE??? AH = 02h SeeAlso: AH=01hTop
INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS AH = 03h ??? Return: ??? SeeAlso: AH=05hTop
INT 66 - BitFax Scheduler - GET STATUS??? AH = 04h Return: AX = ??? (0000h or 0001h) DX = BitSched version??? (for versions >= 3.00) 9796h (ver. 3.00) 97E6h (ver. 3.02) 92D0h (ver. 3.04.06) 9510h (ver. 3.06.02) SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"Top
INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX AH = 05h BX:CX -> command block (see #03518) ??? Return: ??? SeeAlso: AH=03h Format of BitFax command block: Offset Size Description (Table 03518) 00h 18 BYTEs configuration bytes??? 12h BYTEs ASCIZ temporary file name to place converted fax 52h BYTEs ASCIZ directory containing BitFax executables 92h BYTEs ASCIZ telephone number C2h BYTE cover page control (00h don't send, 01h do send cover page) C3h 15 BYTEs configuration bytes??? E2h BYTEs ASCIZ path of BITFAX.TRA file (containing additional configuration information???) 122h BYTEs configuration bytes??? 12Ch BYTE 00h don't send cover page 01h send cover page 12Dh 7 BYTEs configuration bytes??? 134h BYTEs ASCIZ path of file to send 174h BYTEs more configuration bytes??? ???Top
INT 66 - BitFax Scheduler - SET MODE??? AH = 06h Return: DX = BitSched version??? (same as AH=04h) SeeAlso: AH=04hTop
INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND AX = 0688h DS:SI -> SNDSTRUC (see #03519) Return: ??? Program: The IBMSND driver is part of John W. Ratcliff's The IBM Digitized Sound Package DIGPAK is a set of digitized sound drivers written by John W. Ratcliff, The Audio Solution, Inc. InstallCheck: test for a valid signature string six bytes prior to the interrupt handler; this string may be either "KERN" or "MIDI" (in the latter case, call AX=0701h to determine whether IBMSND is installed) SeeAlso: AX=068Bh,AX=068Fh,AX=0701h Format of IBMSND driver SNDSTRUC: Offset Size Description (Table 03519) 00h DWORD -> audio data 04h WORD length of audio data in bytes 06h DWORD -> playback status flag 0Ah WORD playback frequencyTop
INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS AX = 0689h Return: AX = status 0000h no sound playing 0001h sound effect is currently playing ---DIGPAK--- BX = version number (v3.1+) DX = looping status 0000h no sound looping 0001h sound effect is currently looping SeeAlso: AX=0688h,AX=068Bh,AX=068Ch Index: version check;DIGPAKTop
INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND AX = 068Ah DS:SI -> SNDSTRUC (see #03519) Desc: convert audio data into output hardware format SeeAlso: AX=068BhTop
INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND AX = 068Bh DS:SI -> SNDSTRUC (see #03519) Return: AX = ??? SeeAlso: AX=0688h,AX=068Ah,AX=068FhTop
INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES AX = 068Ch Return: AX = capabilities (see #03520) DX = playback rate if fixed-frequency playback ---DIGPAK--- BX:CX -> ASCIZ ID string SeeAlso: AX=0689h,AX=068Dh Bitfields for IBMSND driver capabilities: Bit(s) Description (Table 03520) 0 can play audio in background 1 data is massaged for output device 2 driver plays at fixed frequency, resampling input data to fit 3 driver uses timer interrupt ---DIGPAK--- 4 device supports timer sharing 5 supports looped sounds and pending 6 supports stereo panning 7 supports 8-bit PCM stereo playback 8 supports audio recording 9 supports DMA bakcfillingTop
INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS AX = 068Dh Return: AX = current playback address Desc: determine what point in the audio data the playback has reached, for synchronization with video or animation effects Notes: this function applies to background playback only the reported address may be an approximation rather than the exact address SeeAlso: AX=068Ch,AX=0691hTop
INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS AX = 068Eh BX:DX -> callback function 0000h:0000h to disable callback DS = value to load into DS when calling the callback function Desc: specify the function to be called when playback of a sound effect is completed Note: the callback function will typically be called during a hardware interrupt, so all the usual precautions should be taken except for preserving registers SeeAlso: AX=0691hTop
INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND AX = 068Fh Desc: cause any currently-playing sound effect to be terminated SeeAlso: AX=0688h,AX=068BhTop
INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO AX = 0690h BX = IRQ CX = base address DX = other setup value (device-dependent???)Top
INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS AX = 0691h Return: AX:DX -> current callback function BX = original caller's DS register Program: The IBMSND driver is part of John W. Ratcliff's The IBM Digitized Sound Package DIGPAK is a set of digitized sound drivers written by John W. Ratcliff, The Audio Solution, Inc. SeeAlso: AX=068EhTop
INT 66 - DIGPAK - SET TIMER DIVISOR RATE AX = 0693h DX = rate Program: DIGPAK is a set of digitized sound drivers written by John W. Ratcliff, The Audio Solution, Inc.Top
INT 66 - DIGPAK - PLAY PREFORMATTED DATA AX = 0694h DS:SI -> Sound Data structure (see #03519) Return: AX = status???Top
INT 66 - DIGPAK - POST AUDIO PENDING AX = 0695h DS:SI -> Sound Data structure (***) Return: AX = status 0000h sound started playing 0001h sound was posted as pending to play 0002h sound effect already pending, this one not posted SeeAlso: AX=0696hTop
INT 66 - DIGPAK - GET AUDIO PENDING STATUS AX = 0696h Return: AX = status 0000h no sound is playing 0001h sound playing, and a sound is pending 0002h sound playing, no sound pending SeeAlso: AX=0695hTop
INT 66 - DIGPAK - SET STEREO PANNING AX = 0697h DX = panning position (0 = right, 127 = left) Return: AX = status 0000h command ignored (not supported) 0001h panning setTop
INT 66 - DIGPAK - SET PLAY MODE AX = 0698h DX = playback mode 0000h 8-bit PCM 0001h 8-bit stereo PCM 0002h 16-bit PCM 0003h 16-bit stereo PCM Return: AX = status 0000h command ignored 0001h mode setTop
INT 66 - DIGPAK - GET ADDRESSES AX = 0699h Return: AX = pending address BX = semaphore addressTop
INT 66 - DIGPAK - SET RECORD MODE AX = 069Ah DX = recording mode 0000h turn audio recording on 0001h turn audio recording off Return: AX = status 0000h command ignored 0001h audio recording mode setTop
INT 66 - DIGPAK - STOP NEXT LOOP AX = 069BhTop
INT 66 - DIGPAK - SET DMA BACKFILL MODE AX = 069Ch DX = mode 0000h turn backfill mode on 0001h turn backfill mode off Return: AX = status 0000h command ignored 0001h backfill mode set SeeAlso: AX=069Dh,AX=069EhTop
INT 66 - DIGPAK - REPORT DMA COUNTER AX = 069Dh Return: AX = DMA counter SeeAlso: AX=069EhTop
INT 66 - DIGPAK - VERIFY DMA BLOCK AX = 069Eh CX = length of buffer ES:BX -> buffer containing sound data Return: AX = status 0000h block crosses 64K bounadary 0001h block is OK SeeAlso: AX=069DhTop
INT 66 - DIGPAK - SET PCM VOLUME AX = 069Fh BX = left channel volume (0-100) CX = right channel volume (0-100) Return: AX = status 0000h command ignored 0001h volume setTop
INT 66 - DIGPAK - SET DPMI MODE AX = 06A0h DX = mode 0000h 32-bit register addressing on 0001h 32-bit register addressing off SeeAlso: INT 31/AX=0400hTop
INT 66 - MIDPAK - UNINSTALL AX = 0700h Note: this function should NOT be called by applications Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design Incorporated.Top
INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL AX = 0701h Return: AX = digitized sound capabilities 0000h if digitized sound driver (functions 06xxh) not available InstallCheck: test for the signature "MIDI" six bytes before the interrupt handler Note: also supported by MIDPAK, the successor to the Digitized Sound Package's MIDI driver SeeAlso: AX=0688hTop
INT 66 - MIDPAK - PLAY SEQUENCE AX = 0702h BX = Sequence number Return: AX = status 0000h Sequence is being played 0001h Sequence not available SeeAlso: AX=0703h,AX=0705hTop
INT 66 - MIDPAK - SEGUE SEQUENCE AX = 0703h BX = sequence number CX = activation code (FFFFh is next trigger) Return: ???Top
INT 66 - MIDPAK - REGISTER XMIDI AX = 0704h CX:BX -> XMIDI sequence data DI:SI = length of XMIDI data Return: AX = status 0000h unable to register XMIDI data 0001h XMIDI file registered resident 0002h XMIDI file was registered to the applicationTop
INT 66 - MIDPAK - STOP MIDI AX = 0705h SeeAlso: AX=0702h,AX=0709hTop
INT 66 O - MIDPAK - REMAP CHANNEL AX = 0706h BX = sequence CX = physicalTop
INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER AX = 0707h Return: AX = count of number of callbacks since last reset DX = ID SeeAlso: AX=0708h,AX=0713hTop
INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER AX = 0708h SeeAlso: AX=0707h,AX=0713hTop
INT 66 O - MIDPAK - MIDI SLEEP AX = 0709h SeeAlso: AX=070AhTop
INT 66 O - MIDPAK - MIDI AWAKE AX = 070Ah SeeAlso: AX=0709hTop
INT 66 - MIDPAK - RESUME PLAYING AX = 070Bh SeeAlso: AX=070ChTop
INT 66 - MIDPAK - GET SEQUENCE STATUS AX = 070Ch Return: AX = status 0000h sequence stopped 0001h sequence playing 0002h sequence done SeeAlso: AX=070BhTop
INT 66 - MIDPAK - REGISTER XMIDI FILE AX = 070Dh CX:BX -> ASCII filename SeeAlso: AX=0704h,AX=0710hTop
INT 66 - MIDPAK - GET RELATIVE VOLUME AX = 070Eh Return: AX = current volume SeeAlso: AX=070FhTop
INT 66 - MIDPAK - SET RELATIVE VOLUME AX = 070Fh BX = new volume CX = time SeeAlso: AX=070EhTop
INT 66 - MIDPAK - LOAD MIDPAK DRIVER AX = 0710h BX = segment of .ADV driver CX = 0000h (offset must be zero) DX:SI -> .AD driver SeeAlso: AX=070DhTop
INT 66 - MIDPAK - POLL MIDPAK AX = 0711h Return: AX = ??? ??? SeeAlso: AX=0712hTop
INT 66 - MIDPAK - GET MIDI CLOCK AX = 0712h Return: AX:DX = clock counter CX:BX = clock address SeeAlso: AX=0711h,AX=0713hTop
INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS AX = 0713h Return: AX:DX -> trigger counter address SeeAlso: AX=0707h,AX=0712h,AX=0714hTop
INT 66 - MIDPAK - GET EVENT ID ADDRESS AX = 0714h Return: AX:DX -> event ID SeeAlso: AX=0713h,AX=0716hTop
INT 66 - MIDPAK - REPORT SEQUENCE NUMBER AX = 0716h Return: AX = current sequence number SeeAlso: AX=0702h Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design Incorporated.Top
INT 66 - PenDOS - TDMOUSE.EXE - GET ??? AH = 10h Return: CF clear AX = 0000h BX = ??? (0012h) DX:CX -> TDMOUSE INT 33 handler (IRET to hide mouse from other apps) Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate a touchpad; PenDOS is a set of programs by Communication Intelligence Corporation which makes applications pen-awareTop
INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER AH = 11h DX:BX -> new handler for ??? Return: CF clear AX = 0000h DX:BX -> old handler for ??? (points at RETF by default)Top
INT 66 - PenDOS - TDMOUSE.EXE - INITIALIZE AH = 12h Return: CF clear AX = 0000h Note: this function calls the old mouse handler with functions 0000h, 0002h, 0007h, 0008h, 000Fh, 0004h, and 000Ch (in that order) SeeAlso: AH=13hTop
INT 66 - PenDOS - TDMOUSE.EXE - SHUTDOWN??? AH = 13h Return: CF clear other register as returned by INT 33/AX=0000h SeeAlso: AH=12hTop
INT 66 - PenDOS - TDMOUSE.EXE - ??? AH = 14h BX = ??? CX = ??? Return: CF clear AX = 0000hTop
INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER AH = 15h DX:BX -> new handler for ??? Return: CF clear AX = 0000h DX:BX -> old handler (points at RETF by default)Top
INT 66 - PenDOS - TDMOUSE.EXE - UNUSED FUNCTIONS AH = 16h to 1Fh Return: CF set Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate a touchpad; PenDOS is a set of programs by Communication Intelligence Corporation which makes applications pen-awareTop
INT 66 - PenDOS - PINK - ??? AH = 21h Return: CF clear if successful CF set on error Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFhTop
INT 66 - PenDOS - PINK - ??? AH = 22h DX:BX -> ??? CL = ??? Return: CF clear if successful CF set on error ??? SeeAlso: AH=24hTop
INT 66 - PenDOS - PINK - ??? AH = 23h ??? Return: CF clear if successful CF set on error ???Top
INT 66 - PenDOS - PINK - ??? AH = 24h DX:BX -> ??? CL = ??? Return: CF clear if successful CF set on error ??? SeeAlso: AH=22hTop
INT 66 - PenDOS - PINK - ??? AH = 25h CL = ??? (NOP if 00h) ??? Return: CF clear if successful CF set on error ???Top
INT 66 - PenDOS - PINK - ??? AH = 27h BL = ??? BH = ??? CL = ??? (0-3) DL = ??? (> BL) DH = ??? (> BH) Return: ???Top
INT 66 - PenDOS - PINK - ??? AH = 28h ??? Return: CF clear if successful CF set on error ??? Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFhTop
INT 66 - PenDOS - PINK - ??? AH = 29h ??? Return: ??? Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFhTop
INT 66 - PenDOS - PINK - ??? AH = 2Ah DL = ??? (nonzero) DH = ??? (nonzero) Return: CF clear if successful CF set on error ???Top
INT 66 - PenDOS - PINK - ??? AH = 2Bh ??? Return: CF clear if successful CF set on error ???Top
INT 66 - PenDOS - PINK - INITIALIZE AH = 2Fh ??? Return: AX = status 0000h failed FFFFh successful ??? Note: this function sets ??? flag or counter to FFFFh and hooks INT 1ChTop
INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY AX = 3345h Return: AX = FFFFh error removing TSR InstallCheck: test for the signature "BitFax Scheduler" beginning two bytes past the interrupt handler SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h Index: installation check;BitFax SchedulerTop
INT 66 - PenDOS - PKEYUS - GET VERSION AH = 40h Return: CF clear AX = 0000h BH = major version (02h for version bundled with IBM DOS 6.1) BL = minor version (00h for version bundled with IBM DOS 6.1) DL = ??? (4Eh) DH = ??? (0Eh)Top
INT 66 - PenDOS - PKEYUS - SET ??? AH = 41h BX = ??? CL = ??? (08h-20h) DL = screen column??? (<= 50h) DH = screen row??? (<= 3Ch) Return: AX = status (0000h successful, 0001h error) Note: this function also sets an internal flag SeeAlso: AH=42h,AH=43hTop
INT 66 - PenDOS - PKEYUS - ??? AH = 42h Return: CF clear AX = 0000h Note: this function also clears the flag set by AH=41h SeeAlso: AH=41hTop
INT 66 - PenDOS - PKEYUS - ??? AH = 43h BX = ??? DX = ??? Return: AX = status 0000h if AH=41h flag set else AH = ??? AL = ??? BX = ??? DX = ??? SeeAlso: AH=41hTop
INT 66 - PenDOS - PKEYUS - UNUSED FUNCTIONS AH = 44h to 4Fh Return: CF setTop
INT 66 - PenDOS - PMOUSE - SET ??? AH = 50h BX = ??? CH = ??? DX = ??? Return: CF clear AX = 0000hTop
INT 66 - PenDOS - PMOUSE - NOP AH = 51h Return: CF setTop
INT 66 - PenDOS - PMOUSE - ??? AH = 52h BX = ??? CL = ??? DX = ??? Return: ???Top
INT 66 - PenDOS - PMOUSE - UNUSED FUNCTIONS AH = 53h to 57h Return: CF setTop
INT 66 - PenDOS - PMOUSE - ALTERNATE API AH = function (58h-5Fh) Note: these functions exactly duplicate AH=50h-57hTop
INT 66 - HelpTSR v2.10 - INSTALLATION CHECK AX = AA02h Return: ES:DI -> 7 byte signature "HelpTSR" if resident Program: HelpTSR is a resident viewer by David Jurgens for HelpPCTop
INT 66 - PenDOS - VLOAD - API AH = C5h ??? Return: ???Top
INT 66 - MicroHelp Stay-Res Plus - ??? AX = FFFBh BX = FFFBh ??? Return: ??? SeeAlso: AX=FFFEh,INT 2D"AMIS"Top
INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL AX = FFFEh BX = FFFEh Return: only if unsuccessful InstallCheck: test whether the interrupt handler begins with the bytes FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) appears at offset 0005h (older versions) or the offset returned by AX=FFFFh/BX=FFF0h in the interrupt handler segment Note: Programs which use Stay-Res include ThesPlus (program name "THESPLUS") and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman. SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS" Index: installation check;MicroHelp Stay-Res|installation check;ThesPlus Index: installation check;Personal Calendar|installation check;CALTop
INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME AX = FFFFh BX = FFF0h Return: DI = offset of program name in interrupt handler segment SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"Top
INT 67 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the last four bytes of the parameter table for hard disk 1 SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 66"Adaptec"Top
INT 67 - TI Professional PC - SYSTEM DATA (NOT A VECTOR!) Desc: this vector contains the TI Pro's system configuration words (see #03521) SeeAlso: INT 66"TI Professional PC" Bitfields for TI Professional PC System Configuration doubleword: Bit(s) Description (Table 03521) 0 8087 present 31-1 reserved (0)Top
INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64"Pdisk",INT 66"Pdisk"Top
INT 67 - Sangoma CCPOP 3270 resident module SeeAlso: INT 61"Sangoma",INT 68"Sangoma"Top
INT 67 - CUCKOO.COM - INSTALLATION CHECK
Program: CUCKOO is a resident on-screen clock with optional hourly chime or
cuckoo by an unknown author with revisions by Thomas A. Lundin
Note: this is not a vector; when loaded for the first time, CUCKOO.COM uses
the last unused (0000h:0000h) vector in the range 60h-67h to store
the signature value 434Ch:4F4Bh ('CLOK')
Top
INT 67 - PC-DRAFT - KEYBOARD DRIVER ??? Return: ??? Program: PC-DRAFT is a powerful CAD environment by rhv. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT"Top
INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT AH = 00h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03522) AH = semaphore owner if status=02h SeeAlso: AH=01h,AH=02h"PC-NET",INT 7F/AH=00h (Table 03522) Values for PC-NET semaphore function status: 00h successful 01h invalid function 02h semaphore already locked 03h unable to lock semaphore 04h semaphore space exhaustedTop
INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AH = 01h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03522) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=02h"PC-NET",INT 7F/AH=01h"Alloy"Top
INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE AH = 02h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03522) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=01h"PC-NET",INT 7F/AH=02hTop
INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - INSTALLATION CHECK AH = 1Eh Return: AH = 00h if installed AL destroyed ES:DI -> ASCII signature "MemLimit" SeeAlso: AH=1Fh,INT 21/AX=4402h"386MAX"Top
INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - API AH = 1Fh DS:SI -> request packet (see #03523) Return: AH = status (00h successful, 84h invalid function code, etc.) SeeAlso: AH=1Eh Format of 386MAX MEMLIMIT request packet: Offset Size Description (Table 03523) 00h WORD function code (00h-0Fh) 02h WORD return code (see #03524) 04h 4 BYTEs ??? 08h WORD ??? ??? (Table 03524) Values for 386MAX MEMLIMIT return code: 00h unknown request 01h invalid parameter for VCPI limit 02h VCPI limit set 03h invalid parameter for EMS limit 04h EMS limit set 05h DPMI disabled 06h XMS disabled 07h XMS limit set 08h unable to uninstall 09h unloadedTop
INT 67 - VIDEMS.SYS v1.31+ - INSTALLATION CHECK AX = 2763h CL = 01h BX = signature AAFFh Return: AH = 00h if VIDEMS is installed CH = 00h if optimization for 80286 is used, 01h otherwise CL = internal revision number (typically 00h to 03h) DX = driver version (DH=major, DL=minor; not a BCD!) AH = 84h if not installed but EMS manager is present Program: VIDEMS is an expanded memory manager from Conea Software Corp. It converts video adapter RAM to LIM 3.2 EMS. SeeAlso: AX=2763h/CL=02h,AX=2763h/CL=03hTop
INT 67 - VIDEMS.SYS v1.31+ - FLUSH EMS TO VIDEO RAM AX = 2763h CL = 02h BX = signature AAFFh Return: AH = 00h if successful Notes: This call is normally used by Conea products only. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=03hTop
INT 67 - VIDEMS.SYS v1.31+ - RELOAD EMS FROM VIDEO RAM AX = 2763h CL = 03h BX = signature AAFFh Return: AH = 00h if successful Notes: This call is normally used by Conea products only. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=03hTop
INT 67 - VIDEMS.SYS v1.31+ - RETURN HIDDEN BLOCK SIZE AX = 2763h CL = 04h BX = signature AAFFh Return: AH = 00h if successful DX = block size in kilobytes Desc: Returns the amount of EMS which can be safely used at any time, and can't be destroyed by writing anything to the B800:0000 buffer. Note: this function normally returns 184K, while the driver provides up to 240K of EMS. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=02hTop
INT 67 - VIDEMS.SYS v1.31+ - RETURN PHYSICAL PAGE SIZE AX = 2763h CL = 05h BX = signature AAFFh Return: AH = 00h DX = size in bytes Desc: Used by Conea products to determine if addressing mode has changed. Normally, all VIDEMS versions beginning from 1.15 use 4K "physical" pages. Notes: this function will probably become raw page size in future releases of VIDEMS, which will support the LIM 4.0 standard. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=02hTop
INT 67 - VIDEMS.SYS v1.50+ - RETURN VIDEO RAM SIZE AX = 2763h CL = 06h BX = signature AAFFh Return: AH = 00h DX = total amount of video RAM Desc: beginning with version 1.50, VIDEMS can use more adapter memory on some chipsets, and is no longer limited to the first 240K. Notes: this call is not officially documented, and Conea programmers use it mainly for debugging purposes.Top
INT 67 - Q87 v4+ - PREPARE TO UNLOAD AND GET XMS HANDLE FOR Q87 MEMORY AX = 2833h EAX = 29482833h (entire EAX value required) Return: EAX = XMS handle for memory allocated when Q87 was installed EBX = status 00000000h Q87 is in demo mode (countdown running); Q87 remains active 00000001h Q87 is in registered mode; memory manager's IDT, GDT, and optionally CR0 (if BL <> 5Fh on entry) have been restored 00000002h Q87 is in demo mode (demo time has expired); Q87 remains active Note: this call is used by UNLOAD87 to release the memory used by Q87 BUG: v4.00-v4.03 will hang on most machines when run under bare DOS with no memory manager, because neither Q87 nor UNLOAD87 checks whether there is a valid INT 67 handler before performing an installation check via INT 67 SeeAlso: AX=4321h,INT 21/AX=4321h/BX=0000hTop
INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK
AH = 3Fh
CX = 5145h ("QE")
DX = 4D4Dh ("MM")
Return: AH = 00h if installed
ES:DI -> QEMM API entry point (see #03525,#03528,#03640)
Notes: if no other program has hooked INT 67, an alternate installation
check is to test for the string
"QUARTERDECK EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
handler's segment; the word at offset 12h contains the offset in
the handler's segment of the API entry point
although this function is still undocumented, Quarterdeck has recently
documented two alternate methods for determining the QEMM API entry
point, as well as several of the API functions
MICEMM (Micronics Expanded Memory Manager) versions 2.0C and 4D support
the alternate QEMM installation check and entry point functions 00h,
02h, and 03h; version 4D only provides the signature string if the
commandline argument "DV" is provided
386MAX v6.01 responds to this call, but DESQview 2.42 does not
recognize the returned entry point as providing QEMM's capabilities
because a) only functions 0Ch (different from QEMM 0Ch) and
1000h-1009h are supported,
b) status is returned as for EMS functions, not QEMM funcs
c) the protected-mode entry point returned by function 1000h
only supports functions 0Ch, 1004h, 1005h, and 100Ah
the string check mentioned above is not supported by 386MAX
SeeAlso: AX=5BF0h,AH=DDh,AX=FFA5h,INT 15/AX=11DEh,INT 21/AX=4402h/SF=01h
SeeAlso: INT 21/AX=4402h"QEMM",INT 21/AX=4402h"386MAX",INT 2F/AX=D201h/BX=5145h
(Table 03525)
Values for calling QEMM "QPI_GetStatus" function:
AH = 00h get QEMM state
Return: CF clear
AL = QEMM state
bit 0 set if QEMM turned OFF
bit 1 set if in "Auto" mode
Note: this function is officially documented
SeeAlso: #03526,#03527,#03528,#03640
(Table 03526)
Values for calling QEMM "QPI_SetStatus" function:
AH = 01h set QEMM state
AL = new state
bit 0 set: place QEMM in OFF state
Return: CF clear if successful
CF set on error
Note: this function is officially documented
SeeAlso: #03525
(Table 03527)
Values for calling QEMM QPI function 02h:
AH = 02h get ???
Return: CF clear
AX = segment of ??? data structure
Data Structure
Offset Size Description
00h DWORD page table entry for ???
???
SeeAlso: #03528
(Table 03528)
Values for calling QEMM "QPI_GetVersion" function:
AH = 03h get QEMM version
Return: CF clear
AX = BX = version in BCD
Notes: this function is officially documented. The most recent official docs
state that the version is returned in both AX and BX; older
documentation only mentions BX
MICEMM returns AX=0001h, BX unchanged
SeeAlso: #03525,#03529
(Table 03529)
Values for calling QEMM QPI function 04h:
AH = 04h allocate 4K page and set AUTO/ON mode
Return: CF clear if successful
DX = page number of a 4K page
CF set if unable to allocate page
Note: QEMM mode unchanged if not AUTO/OFF
SeeAlso: #03530
(Table 03530)
Values for calling QEMM QPI function 05h:
AH = 05h free 4K page and turn QEMM off
DX = page number returned by function 04h
Return: CF clear
Note: QEMM mode unchanged if not AUTO/ON
SeeAlso: #03529,#03531
(Table 03531)
Values for calling QEMM QPI function 06h:
AH = 06h make new mapping context???
DX = page number of 4K page to hold page table
Return: CF clear
Note: copies page table into given page and then sets ??? page table entry
to point at copy
SeeAlso: #03532,#03533
(Table 03532)
Values for calling QEMM QPI function 07h:
AH = 07h get mapping context
Return: CF clear
DX = page number of page table for current mapping context
SeeAlso: #03528,#03531,#03533
(Table 03533)
Values for calling QEMM QPI function 08h:
AH = 08h set mapping context???
DX = linear page number of page table
Return: CF clear
SeeAlso: #03528,#03531,#03532,#03534,#03536
(Table 03534)
Values for calling QEMM QPI function 09h:
AH = 09h get linear page number for page table entry
CX = page table index
Return: CF clear
DX = linear page number
SeeAlso: #03535
(Table 03535)
Values for calling QEMM QPI function 0Ah:
AH = 0Ah set linear page number for page table entry
CX = page table index
DX = linear page number
Return: CF clear
SeeAlso: #03534
(Table 03536)
Values for calling QEMM QPI function 0Bh:
AH = 0Bh map 4K pages
BX = number of pages
CX = first page number (must be 0100h to allocate HMA)
DX = EMS handle (memory belonging to EMS handle will be mapped
into the address space beginning with the first page
allocated to the handle)
Return: AH = 00h
SeeAlso: #03533,#03537
(Table 03537)
Values for calling QEMM QPI function 0Ch:
AH = 0Ch get available memory
Return: CF clear
BX = 0001h
CX = total 4K pages???
DX = number of 4K pages free
SeeAlso: #03536,#03538
(Table 03538)
Values for calling QEMM QPI function 0Dh:
AH = 0Dh CRT controller I/O port trapping
AL = mode
00h only trap on I/O ports 03C0h-03C5h, 03C7h, 03CAh-03CFh
01h trap on ports 03B4h, 03B5h, 03B8h, 03C6h, 03C8h, 03C9h,
03D4h, and 03D5h
02h only trap on I/O ports 03C6h, 03C8h, and 03C9h
Return: CF clear
(Table 03539)
Values for calling QEMM QPI function 0Eh:
AH = 0Eh set cursor virtualization callbacks
DS:BX -> FAR routine for getting hardware cursor address
ES:DX -> FAR routine for setting hardware cursor address
Return: CF clear
Note: both callbacks are invoked with CL indicating which
CRT controller register to access (0Eh for high
byte of cursor address, 0Fh for low byte)
the DS:BX callback should return BX=cursor address;
ES:DX is called with BL or BH (depending on CL)
set to the appropriate half of the cursor's address
(Table 03540)
Values for calling QEMM QPI function 0Fh:
AH = 0Fh unmap 4K pages
CX = first page number
DX = number of pages
Return: CF clear
AL = 00h/01h if ???
Note: if CX=0100h and DX=0010h, the HMA is remapped to
simulate a disabled A20
(Table 03541)
Values for calling QEMM QPI function 1000h:
AX = 1000h get protected-mode interface
DS:SI -> 16-byte buffer for two GDT entries
ES:DI -> buffer for 4K page table
Return: CF clear
EAX = offset of protected-mode API entry point
DS:SI buffer filled with two GDT descriptors
first is QEMM code segment, second is data???
ES:DI buffer filled with 4K page table
DI points to first unused page table entry
SeeAlso: INT 67/AX=DE01h
(Table 03542)
Values for calling QEMM QPI function 1001h:
AX = 1001h get CPU debug registers
ES:DI -> buffer for debug registers (8 DWORDs)
Return: CF clear
BL = INT01 handling (see #03543)
ES:DI buffer filled
(Table 03543)
Values for calling QEMM QPI function 1002h:
AX = 1002h set CPU debug registers
BL = INT01 handling
00h reflect all debugging exceptions as V86-mode INT 01's
else convert debugging exceptions other than single-step
into V86-mode INT 03's, single-step to INT 01's
ES:DI -> buffer containing debug registers (8 DWORDs)
Return: CF clear
Notes: identical to INT 67/AX=DE09h if BL=01h
the INT01 handling flag is set to 01h by the general-protection
violation handler for certain privileged instructions
SeeAlso: #03542
(Table 03544)
Values for calling QEMM QPI function 1003h:
AX = 1003h get machine status word CR0
Return: CF clear
EAX = contents of CR0
SeeAlso: INT 67/AX=DE07h
(Table 03545)
Values for calling QEMM QPI function 1004h:
AX = 1004h allocate a 4K page
Return: CF clear if successful
EDX = linear address of allocated page
CF set on error
SeeAlso: INT 67/AX=DE04h
(Table 03546)
Values for calling QEMM QPI function 1005h:
AX = 1005h free 4K page
EDX = linear address of page to free
Return: CF clear
SeeAlso: INT 67/AX=DE05h
(Table 03547)
Values for calling QEMM QPI function 1006h:
AX = 1006h NOP
Return: CF set
(Table 03548)
Values for calling QEMM QPI function 1007h:
AX = 1007h get maximum physical memory address
Return: CF clear
EDX = physical address of highest 4K memory page
SeeAlso: INT 67/AX=DE02h
(Table 03549)
Values for calling QEMM QPI function 1008h:
AX = 1008h get physical address of page in first megabyte
CX = page number (linear address shifted right 12 bits)
Return: CF clear
EDX = linear address of page
SeeAlso: #03548,#03624,#03625
(Table 03550)
Values for calling QEMM QPI function 1009h:
AX = 1009h switch to protected mode
ESI = linear address in first megabyte of system reg values
(see INT 67/AX=DE0Ch)
interrupts disabled
Return: interrupts disabled
GDTR, IDTR, LDTR, TR loaded
SS:ESP must have at least 16 bytes space, and the
entry point is required to set up a new stack
before enabling interrupts
EAX, ESI, DS, ES, FS, GS destroyed
(Table 03551)
Values for calling QEMM QPI function 100Ah:
AX = 100Ah switch back to virtual-86 mode
DS = selector for data segment from function 1000h
SS:ESP in first megabyte of linear memory
interrupts disabled
STACK: QWORD return address from FAR call to 32-bit segment
DWORD EIP
DWORD CS
DWORD reserved for EFLAGS
DWORD ESP
DWORD SS
DWORD ES
DWORD DS
DWORD FS
DWORD GS
will switch to virtual86 mode with interrupts disabled, all
segment registers loaded, and EAX destroyed.
(Table 03552)
Values for calling QEMM QPI function 11h:
AH = 11h get memory type map
AL = zero/nonzero ??? (set by QEMM.COM but apparently ignored
by QEMM 6.00)
ES:DI -> 256-byte buffer for memory types
Return: CF clear
BL = ???
ES:DI buffer filled
Note: each byte of the buffer corresponds to a 4K page, and
contains the type of that page: 00h = mappable,
02h = mapped ROM, 03h = high RAM, 04h = excluded,
05h = video, 06h = ROM, 07h = adapter ROM,
08h = split ROM, 09h = page frame, 0Ah = RAMmable,
0Bh = conventional, 83h = high RAM under MS Windows
(Table 03553)
Values for calling QEMM QPI function 12h:
AH = 12h get HIRAM chain
Return: CF clear
BX = segment of first MCB in high memory
0000h if no high memory
(Table 03554)
Values for calling QEMM QPI function 1300h:
AX = 1300h VIDRAMEGA???
BL = 00h copy ???
nonzero copy ??? (reverse)
Return: CF clear
AL = status
00h if all pages clean
01h if any page dirty
(Table 03555)
Values for calling QEMM QPI function 1301h:
AX = 1301h check if pages modified
DX:DI = start address of range to check
CX = length of range in paragraphs
Return: CF clear
CX = status
0000h none of the indicated pages is dirty
DI destroyed
1000h one or more pages is dirty
DI = low word of first dirty page's linear addr
(Table 03556)
Values for calling QEMM QPI function 1302h:
AX = 1302h ???
BL = ???
BH = ???
CX = ???
SI = offset of ???
DI = offset of ???
???
Return: CF clear
???
Note: disables certain interrupts at the two 8259 PICs during
execution; also modifies CRT controller during
execution under certain circumstances
(Table 03557)
Values for calling QEMM QPI function 1303h:
AX = 1303h initialize EGA graphics virtualization
BX = number of pages (less 1) of EMS to allocate
Return: CF clear if successful
DX = EMS handle
CF set on error
(Table 03558)
Values for calling QEMM QPI function 1304h:
AX = 1304h shutdown EGA graphics virtualization
DX = EMS handle being used for virtualization
Return: CF clear
(Table 03559)
Values for calling QEMM QPI function 1305h:
AX = 1305h select portion of EGA graphics to virtualize???
(related to graphics virtualization, changes memory mappings)
CX = start offset within A000h segment of virtualized mem???
Return: CF clear
Note: disables certain interrupts at the two 8259 PICs during
execution (see #03566) and runs inside a QEMM
critical section
(Table 03560)
Values for calling QEMM QPI function 1306h:
AX = 1306h set DESQview critical section counter address
ES:BX -> WORD DESQview critical section counter or 0000h:0000h
Return: CF clear
Note: also sets a pointer in the low-memory part of QEMM to
the current value of INT 15 if ES:BX not 0000h:0000h
(Table 03561)
Values for calling QEMM QPI function 1307h:
AX = 1307h ??? (changes memory mappings for entire A000h segment)
Return: CF clear
Note: disables certain interrupts at the two 8259 PICs during
execution (see #03566) and runs inside a QEMM
critical section
(Table 03562)
Values for calling QEMM QPI function 1308h:
AX = 1308h start/reset CRT controller I/O trapping
BL = subfunction
00h restore CRTC I/O port trapping to previous state
else start trapping all accesses to I/O ports 03B0-03DF
Return: CF clear
Note: if called more than once in a row with BL nonzero, the
original state of the I/O port trapping will be lost
(Table 03563)
Values for calling QEMM QPI function 1309h:
AX = 1309h Hercules mode-change support
ES:BX -> new address for Hercules mode-change callback
Return: CF clear
Note: the callback function is called whenever the CRTC mode
register is written, with AL set to the value written
(Table 03564)
Values for calling QEMM QPI function 130Ah:
AX = 130Ah virtualize EGA/VGA DAC registers (I/O ports 03C8h/03C9h)
CX:DX -> DAC register virtualization buffer (see #03647)
or 0000h:0000h to disable
Return: CF clear
(Table 03565)
Values for calling QEMM QPI function 130Bh:
AX = 130Bh ???
BL = ??? (??? or 00h)
Return: CF clear
???
Note: calls AX=130Eh in some cases
(Table 03566)
Values for calling QEMM QPI function 130Ch:
AX = 130Ch set interrupts to mask
BX = interrupts to mask out during AX=1302h,AX=1307h,AX=1308h,
AX=130Dh,AX=1310h (BL = master PIC, BH = slave PIC)
Return: CF clear
(Table 03567)
Values for calling QEMM QPI function 130Dh:
AX = 130Dh map EGA memory at A0000h
???
Return: CF clear
Note: disables certain interrupts at the two 8259 PICs during execution
(see #03566) and runs inside a QEMM critical section
calls AX=1307h (see #03561)
(Table 03568)
Values for calling QEMM QPI function 130Eh:
AX = 130Eh ??? (modifies CRT controller setup)
???
Return: CF clear
(Table 03569)
Values for calling QEMM QPI function 130Fh:
AX = 130Fh reset ???
Return: CF clear
(Table 03570)
Values for calling QEMM QPI function 1310h:
AX = 1310h copy modified pages to physical video RAM???
???
Return: CF clear
Note: disables certain interrupts at the two 8259 PICs during execution
(see #03566) and runs inside a QEMM critical section
also calls AX=130Dh (see #03567)
(Table 03571)
Values for calling QEMM QPI function 1311h:
AX = 1311h set ???
BL = zero/nonzero???
Return: CF clear
Note: certain operations will be performed with interrupts
(as set by AX=130Ch) enabled rather than disabled if
called with BL nonzero
(Table 03572)
Values for calling QEMM QPI function 1312h:
AX = 1312h (v6.02) NOP???
Note: called by DV 2.42, but appears to be a NOP in QEMM 6.02
(Table 03573)
Values for calling QEMM QPI function 1400h:
AX = 1400h initialize DESQview "protection level" support
ES:DI -> protection level configuration (at least 24 bytes)
(see #03641)
BL = highest ??? to return (one less than number of words)
Return: CF clear
AX = ??? (4204h for v6.00)
Note: QEMM also sets the protected mode INT 02 and INT 06
vectors to alternate handlers in certain cases
(Table 03574)
Values for calling QEMM QPI function 1401h:
AX = 1401h turn off DESQview protection level support
Return: CF clear
???
Notes: clears the DV critical-section flag address set with
function 1306h
QEMM also sets the protected mode INT 02 and INT 06
vectors to the default handlers if they had been
revectored by function 1400h
(Table 03575)
Values for calling QEMM QPI function 1402h:
AX = 1402h set protection level???
BL = protection level???
00h NOP
01h ???
02h ???
other (03h) ???
ES:DI -> ???
Return: CF clear
???
Format of Data structure:
Offset Size Description
00h WORD segment of ??? (X, word at X:0136h set to X)
02h WORD segment of ??? (word at X:0124h set to this)
04h WORD number of paragraphs of ???
06h 3 WORDs ??? (copied to X:0000h)
0Ch WORD ???
(Table 03576)
Values for calling QEMM QPI function 1403h:
AX = 1403h add ??? to end of list and ??? (execute func 1406h)
ES:DI -> ??? structure added to end of ??? list
(at least 31 bytes, DWORD at offset 06h used for
storing pointer to next struc, WORD at offset 00h
seems to be a key or index)
Return: CF clear
(Table 03577)
Values for calling QEMM QPI function 1404h:
AX = 1404h NOP
Return: CF clear
(Table 03578)
Values for calling QEMM QPI function 1405h:
AX = 1405h remove ??? from ??? list
BX = key???
Return: CF clear
(Table 03579)
Values for calling QEMM QPI function 1406h:
AX = 1406h ???
???
Return: CF clear
???
Notes: this function is a NOP unless protection level 2 or 3
is active
when not a NOP, one of the actions is to write-protect
certain memory pages
(Table 03580)
Values for calling QEMM QPI function 1407h:
AX = 1407h ???
???
Return: CF clear
???
Note: same as function 1406h, but only does anything if
protection level 2 is active
(Table 03581)
Values for calling QEMM QPI function 1408h:
AX = 1408h unprotect???
???
Return: CF clear
???
(Table 03582)
Values for calling QEMM QPI function 1409h:
AX = 1409h abort program causing protection violation???
???
Return: CF clear
???
(Table 03583)
Values for calling QEMM QPI function 140Ah:
AX = 140Ah set ???
BX = index of ???
Return: CF clear
???
Notes: no range checking is performed on BX
this function is a NOP unless protection level 3 active
(Table 03584)
Values for calling QEMM QPI function 140Bh:
AX = 140Bh get ???
BX = index of ???
SI = 0000h
Return: CF clear
SI = segment of 256-byte buffer??? or 0000h
Notes: no range checking is performed on BX
this function is a NOP unless protection level 3 active
(Table 03585)
Values for calling QEMM QPI function 15h:
AH = 15h set timer channel 0 virtualization buffer
ES:BX -> WORD buffer for timer channel 0 divisor
0000h:0000h to disable virtualization
Return: CF clear
(Table 03586)
Values for calling QEMM v5.00+ QPI function 1600h:
AX = 1600h get memory access status
ES:DI -> 256-byte buffer
Return: ES:DI buffer filled
Note: each byte of the buffer indicates the status of a 4K
page (bit 0 set if read, bit 1 set if written)
(Table 03587)
Values for calling QEMM v5.00+ QPI function 1601h:
AX = 1601h set memory access status
ES:DI -> 256-byte buffer containing access statuses (see #03586)
(Table 03588)
Values for calling QEMM v5.00+ QPI function 17h:
AH = 17h get memory usage statistics
ES:DI -> 81-byte buffer for memory statistics (see #03645)
Return: CF clear
(Table 03589)
Values for calling QEMM v5.11+ QPI function 18h:
AH = 18h check whether conventional memory mapped into address range
ES:BX = starting address
CX = number of 4K pages
Return: CF clear
AL = 00h one or more pages is remapped
01h all pages in range are conventional memory
(physical address == virtual address)
(Table 03590)
Values for calling QEMM v5.11+ QPI function 19h:
AH = 19h NOP
Return: CF set
(Table 03591)
Values for calling QEMM v5.11+ "QPI_UntrappedIORead" function:
AX = 1A00h get byte from I/O port
DX = port number
Return: CF clear
BL = port value
Note: this function was officially documented with the release of QEMM 7.50
(Table 03592)
Values for calling QEMM v5.11+ "QPI_UntrappedIOWrite" function:
AX = 1A01h send byte to I/O port
BL = value to send
DX = port number
Return: CF clear
Note: this function was officially documented with the release of QEMM 7.50
(Table 03593)
Values for calling QEMM v5.11+ "QPI_UntrappedIOReadIndexed" function:
AX = 1A02h
BH = index value to send
DX = base port number
Return: CF clear
BL = value read from I/O port (DX+1)
Note: this function was officially documented with the release of QEMM 7.50
(Table 03594)
Values for calling QEMM v5.11+ "QPI_UntrappedIOWriteIndexed" function:
AX = 1A03h send bytes to two consecutive I/O ports
BH = value for first I/O port (DX)
BL = value for second I/O port (DX+1)
DX = base port number
Return: CF clear
Note: this function was officially documented with the release of QEMM 7.50
(Table 03595)
Values for calling QEMM v7.03+ "QPI_UntrappedIO" function:
AX = 1A04h
BX = value to write to port
CX = direction and size
bit 2: output instead of input
bit 3: word instead of byte
DX = I/O port to be accessed
Return: CF clear
BX = value read (if CX indicates read)
Note: this function was officially documented with the release of QEMM 7.50
(Table 03596)
Values for calling QEMM v7.03+ function 1A05h
AX = 1A05h
???
Return: ???
(Table 03597)
Values for calling QEMM v7.03+ "QPI_GetIOCallback" function:
AX = 1A06h
Return: CF clear
ES:DI -> current I/O callback function (see #03599)
Note: this function was officially documented with the release of QEMM 7.50
(Table 03598)
Values for calling QEMM v7.03+ "QPI_SetIOCallback" function:
AX = 1A07h
ES:DI -> new I/O callback function (see #03599)
Return: CF clear
Note: this function was officially documented with the release of QEMM 7.50
(Table 03599)
Values QEMM v7.03+ I/O callback function is called with:
AL/AX = data to/from trapped port
CL = I/O direction (00h = IN instruction, else OUT instruction)
DX = I/O port address
Return: CF clear if port handled by callback function
CF set if not handled
all other registers returned to application executing the IN or OUT
instruction (allowing arbitrary changes to port address, data value,
etc.)
SeeAlso: #03597,#03598
(Table 03600)
Values for calling QEMM v7.03+ "QPI_GetPortTrap" function:
AX = 1A08h
DX = I/O port number
Return: CF clear
BL = trapping state (00h not being trapped, 01h trap installed)
Note: this function was officially documented with the release of QEMM 7.50
(Table 03601)
Values for calling QEMM v7.03+ "QPI_SetPortTrap" function:
AX = 1A09h
DX = I/O port number
Return: CF clear
Note: this function was officially documented with the release of QEMM 7.50
(Table 03602)
Values for calling QEMM v7.03+ "QPI_ClearPortTrap" function:
AX = 1A0Ah
DX = I/O port number
Return: CF clear
Note: this function was officially documented with the release of QEMM 7.50
(Table 03603)
Values for calling QEMM v5.11+ QPI function 1B00h:
AX = 1B00h get EMM Import Structure address
ES:DI -> buffer for EMM import data structure (see #03643)
Return: CF set on error
CF clear if successful
SeeAlso: INT 21/AX=4402h/SF=01h
(Table 03604)
Values for calling QEMM v5.11+ QPI function 1B01h:
AX = 1B01h disable V86 mode
Return: CF set on error
(i.e. no Global EMM Import rec. allocated)
CF clear if successful
Note: shuts down EMS and initializes Global EMM Import record; this function
is invoked from the callback supplied by INT 2F/AX=1605h
(Table 03605)
Values for calling QEMM v5.11+ QPI function 1B02h:
AX = 1B02h enable V86 mode
Return: CF set on error
CF clear if successful
Note: restarts EMS and frees Global EMM Import record; this function is
invoked from the callback supplied by INT 2F/AX=1605h
(Table 03606)
Values for calling QEMM v5.11+ QPI function 1B03h:
AX = 1B03h MS Windows initializing
CX = segment from which Windows init broadcast made???
DX = Windows startup flags
DI = Windows version number (major in upper byte)
Return: CF clear if successful
DS:SI -> V86 mode enable/disable callback
(see #02634 at INT 2F/AX=1605h)
ES:BX -> startup info structure (see #02631 at INT 2F/AX=1605h)
CF set on error (unable to start Windows)
SeeAlso: INT 2F/AX=1605h
(Table 03607)
Values for calling QEMM v5.11+ QPI function 1B04h:
AX = 1B04h MS Windows terminating
Return: CF clear
(Table 03608)
Values for calling QEMM v5.11+ QPI function 1B05h:
AX = 1B05h determine whether program is driver
DS:DX -> ASCIZ filename
Return: CF clear
AL = status
01h if string ends in ".DRV"
FFh if string ends in "GDI.EXE"
00h otherwise
Note: when MS Windows 3.0 standard mode starts, QEMM patches all drivers
until GDI.EXE is loaded
(Table 03609)
Values for calling QEMM v5.11+ QPI function 1B06h:
AX = 1B06h patch protected-mode check in Windows driver
CX = length of data pointed at by DS:DX
DS:DX -> buffer containing Windows driver code
Return: CF clear
Note: patches all SMSW x/TEST x,1 instruction sequences into MOV x,CS/VERW x
sequences, which has the effect that the protected-mode check will
only indicate protected mode in native protected mode and not in V86
mode
(Table 03610)
Values for calling QEMM v5.11+ QPI function 1B07h:
AX = 1B07h
BUG: QEMM 6.00-7.01 accept this and branch randomly
(Table 03611)
Values for calling QEMM v5.11+ QPI function 1Bxxh:
AX = 1B08h to 1BFFh
Return: CF set
(Table 03612)
Values for calling QEMM v5.11+ QPI function 1C00h:
AX = 1C00h disable IRQ0-7 calldowns
Return: CF clear
(Table 03613)
Values for calling QEMM v5.11+ QPI function 1C01h:
AX = 1C01h set V86-mode IRQ0-7 handlers
ES:DI -> 8 DWORDs containing V86-mode handler addresses
Return: CF clear
(Table 03614)
Values for calling QEMM v5.11+ QPI function 1C02h:
AX = 1C02h disable IRQ8-15 handlers
Return: CF clear
(Table 03615)
Values for calling QEMM v5.11+ QPI function 1C03h:
AX = 1C03h set V86-mode IRQ8-15 handlers
ES:DI -> 8 DWORDs containing V86-mode handler addresses
BUG: although the jump table only contains four entries, QEMM 6.00 will
attempt to use it for any value of AL between 00h and 2Ah, thus
branching unpredictably for AL=04h-2Ah; QEMM v7.01 behaves
similarly for AL=04h-1Bh
Note: when enabled, the appropriate IRQs are reflected back to the specified
handlers in virtual-86 mode after the CPU automatically invokes the
protected-mode handler inside QEMM
(Table 03616)
Values for calling QEMM v7.03+ "QPI_SimulateHWInt" function:
AX = 1C04h
BX = number of interrupt to simulate
Return: ???
Notes: this function will allow proper simulation of a hardware interrupt
under DESQview and DESQview/X, where the correct interrupt handler
may be in a different process with a completely different address
space
this function was officially documented with the release of QEMM v7.50
(Table 03617)
Values for calling QEMM v6.0x only QPI function 1D00h:
AX = 1D00h switch to pre-Stealth interrupt vector table
Return: CF clear if supported (QEMM v6.x)
CF set if not supported (QEMM v7+)
Notes: also switches VGA Save table pointer (0040h:00A8h) and overwrites the
vectors currently assigned for use by the two interrupt controllers
(see INT 67/AX=DE0Ah) with the vectors for INT 08-0F and 70-77 (to
avoid crashing the system).
functions 1Dxxh are not supported by QEMM v7.01, and always return CF
set
(Table 03618)
Values for calling QEMM v6.0x only QPI function 1D01h:
AX = 1D01h restore user interrupt vector table
Return: CF clear if supported (QEMM v6.x)
CF set if not supported (QEMM v7+)
Notes: interrupts should be disabled around the AX=1D00h and AX=1D01h calls
because QEMM does not modify the memory maps to map in ROM, so
an interrupt could be disastrous
clears any pending IRQ7 at end of function
functions 1Dxxh are not supported by QEMM v7.01, and always return CF
set
(Table 03619)
Values for calling QEMM v6.00+ QPI function 1Dxxh:
AX = 1D02h to 1DFFh
Return: CF set
(Table 03620)
Values for calling QEMM v6.00+ "QEMM_GET_INFO"/"QPI_GetInfo" function:
AX = 1E00h get Stealth configuration
Return: CF clear
BL = memory configuration flags (documented as "reserved") (see #03644)
BH = (v7.00+) disk buffer flags
bit 0: DISKBUFFRAME buffer instead of DISKBUF buffer
bit 1: buffer has already been used
CL = stealth type (00h none, 46h Frame, 4Dh Map, 50h Protect)
CH = suspend/resume interrupt (00h none)
DL = (v7.00+) size of QEMM disk buffer in KB (00h none)
DH = reserved (always 00h for v6.00)
SI = reserved (always 0000h for v6.00)
DI = reserved (always 0000h for v6.00)
Note: this function is officially documented
(Table 03621)
Values for calling QEMM v6.00+ "QPI_GetStealthCount" function:
AX = 1E01h get number of Stealth'ed ROMs
Return: CF clear
BX = number of Stealth'ed ROMs
Note: this function is officially documented
(Table 03622)
Values for calling QEMM v6.00+ "QPI_GetStealthList" function:
AX = 1E02h
ES:DI -> buffer for Stealth ROM info (see #03646)
Return: CF clear
BX = number of Stealth'ed ROMs
ES:DI buffer filled
Note: this function is officially documented
(Table 03623)
Values for unimplemented Stealth information functions:
AX = 1E03h to 1EFFh
Return: CF set
(Table 03624)
Values for calling QEMM v6.00+ "QEMM_GET_PTE"/"QPI_GetPTE" function:
AX = 1F00h get page table entry
CX = page number (0000h-010Fh)
Return: CF clear
EDX = page table entry
Note: this function is officially documented
(Table 03625)
Values for calling QEMM v6.00+ "QEMM_SET_PTE"/"QPI_SetPTE" function:
AX = 1F01h set page table entry
CX = page number (0000h-010Fh)
EDX = new page table entry
Return: CF clear
Note: this function is officially documented
SeeAlso: #03549
(Table 03626)
Values for calling QEMM v6.00+ QPI function 1Fxxh:
AX = 1F02h to 1FFFh
Return: CF set
(Table 03627)
Values for calling QEMM v6.00+ "QEMM_GET_VHI_INFO"/"QPI_GetVHIInfo" function:
AX = 2000h "QEMM_GET_VHI_INFO" get VirtualHDIRQ information
Return: CF clear
BL = flags
bit 7: VirtualHDIRQ setting respected
(set if Stealth active)
bits 6-1 reserved
bit 0: VirtualHDIRQ currently enabled
(INT 15/AH=90h suppressed when enabled)
Note: this function is officially documented
SeeAlso: #03628
(Table 03628)
Values for calling QEMM v6.00+ "QEMM_SET_VHI_INFO"/"QPI_SetVHIInfo" function:
AX = 2001h set VirtualHDIRQ state
BL bit 0 = new VirtualHDIRQ state
Return: CF clear
BL = old VHI setting (bits 0 and 7, see #03627)
Note: this function is officially documented
SeeAlso: #03627
(Table 03629)
Values for calling QEMM v6.00+ QPI function 20xxh:
AX = 2002h to 20FFh
Return: CF set
(Table 03630)
Values for calling QEMM v6.00+ "QEMM_COPY_STEALTH_ROMS"/"QPI_CopyStealthRoms":
AX = 2100h copy data from Stealthed address space
DS:SI -> start address of hidden memory to copy
ES:DI -> buffer for copied data
ECX = number of bytes to copy
Return: CF clear if successful
CF set on error (no Stealth or DS:SI < C000h:0000h or DS:SI + ECX > 1M)
Note: this function was officially documented with the release of QEMM 7.50
(Table 03631)
Values for calling QEMM v6.00+ QPI function 21xxh:
AX = 2101h to 21FFh
Return: CF set
(Table 03632)
Values for calling QEMM v6.03+ QPI function 2200h:
AX = 2200h DESQview/X support -- get ???
Return: CF clear
ES:DI -> ???
(Table 03633)
Values for calling QEMM v6.03+ QPI function 2201h:
AX = 2201h DESQview/X support -- set ???
ES:DI -> ??? or 0000h:0000h
Return: CF clear if successful
CF set on error
(Table 03634)
Values for calling QEMM v6.04+ QPI function 2300h:
AX = 2300h get ???
BX = which ??? to get (must be 0000h for v6.04)
Return: CF clear if successful
ES:DI -> ???
CF set on error
(Table 03635)
Values for calling QEMM v6.04+ QPI function 2301h:
AX = 2301h set ???
BX = which ??? to set (must be 0000h for v6.04)
ES:DI -> ???
Return: CF clear if successful
CF set on error
(Table 03636)
Values for calling QEMM v6.04+ QPI function 2302h:
AX = 2302h clear specified ???
BX = which ??? to clear (must be 0000h for v6.04)
Return: CF clear if successful
CF set on error
(Table 03637)
Values for calling QEMM v6.04+ QPI function 23FFh:
AX = 23FFh clear all ???
Return: CF clear if successful
CF set on error
(Table 03638)
Values for calling QEMM v6.04+ QPI function 23xxh:
AX = 2303h to 23FEh
Return: CF set
(Table 03639)
Values for calling QEMM v7.01+ QPI function 24h:
AH = 24h ST-DBL support
AL = subfunction
00h set ???
EDX -> information table (EDX = segment SHL 16 + offset)
01h ???
Return: CF clear if successful
CF set on error
(Table 03640)
Values for calling QEMM unimplemented QPI functions:
AH = 25h to FFh
Return: CF set
Format of QEMM protection level configuration:
Offset Size Description (Table 03641)
00h WORD segment of 128 breakpoint (INT 3) instructions for use in
DESQview protection level 3 interrupt vector checking, or
0000h to disable; in pl3, INTs 00-7F are pointed at these
breakpoints
02h DWORD -> array of actual interrupt handler addresses for INT 00-7F
when interrupt vectors are pointed at protection level 3
breakpoints
06h DWORD far pointer to ??? region list (see #03642)
0Ah DWORD far pointer to buffer for returned ???
0Eh DWORD seg:ofs of function to call on protection violation???
12h WORD segment of ???
14h DWORD far pointer to DWORD containing number of paragraphs of
??? for segment at offset 12h
???
Format of protection level Region List:
Offset Size Description (Table 03642)
00h WORD number of PAIRS of pointers to follow
02h 2N DWORDs start/end seg:ofs addresses of ??? regions
Note: QEMM converts the segmented addresses into linear addresses in place
Format of EMM Import structure:
Offset Size Description (Table 03643)
00h DWORD physical address of EMM import struct
04h BYTE major version (v6.00 sets to 01h)
05h BYTE minor version (v6.00 sets to 00h/0Bh)
SeeAlso: INT 21/AX=4402h/SF=01h
Bitfields for memory configuration flags:
Bit(s) Description (Table 03644)
0 conventional memory sorted
1 conventional memory filled
2 ???
3 ???
4 expanded memory is in use
5 ???
Format of QEMM 6.0 memory statistics:
Offset Size Description (Table 03645)
00h BYTE 01h if Shadow RAM found, 00h otherwise
01h DWORD initial conventional memory in bytes
05h DWORD initial extended memory in bytes
09h DWORD initial expanded memory in bytes
0Dh DWORD initial "top" or "shadow" memory in bytes
11h DWORD Unavailable conventional memory in bytes
15h DWORD Unavailable extended memory in bytes
19h DWORD Unavailable expanded memory in bytes
1Dh DWORD Unavailable "top" or "shadow" memory in bytes
Add to offset 49h for Total unavailable top/shadow.
21h DWORD QEMM code size in bytes
25h DWORD QEMM data size in bytes
29h DWORD bytes used for TASKS=
2Dh DWORD DMA buffer size
31h DWORD bytes used for MAPS=
35h DWORD bytes of high RAM
39h DWORD bytes used by mapped ROMs
3Dh DWORD bytes of conventional memory provided by QEMM
41h DWORD bytes of extended memory NOT converted by QEMM (EXT=xxx)
45h DWORD bytes of EMS/XMS pool memory provided by QEMM
49h DWORD Unavailable "top" or "shadow" memory in bytes
Add to offset 1Dh for Total unavailable top/shadow.
4Dh DWORD conventional memory overhead in bytes
(set to 0 by QEMM.COM prior to call)
Format of Stealth ROM info [array]:
Offset Size Description (Table 03646)
00h WORD starting segment of ROM
02h WORD length of ROM in paragraphs
Format of QEMM EGA/VGA DAC register virtualization buffer:
Offset Size Description (Table 03647)
00h BYTE (temp) current color register number
01h BYTE (temp) number of bytes written so far for current color reg
02h 768 BYTEs three bytes per color register
Top
INT 67 - LIM EMS - GET MANAGER STATUS AH = 40h Return: AH = status (00h,80h,81h,84h) (see #03648) Note: this call can be used only after establishing that the EMS driver is in fact present SeeAlso: AH=3Fh,AX=FFA5h,@xxxxh:xxxxh"PMM" (Table 03648) Values for EMS function status: 00h successful 80h internal error 81h hardware malfunction 82h busy -- retry later 83h invalid handle 84h undefined function requested by application 85h no more handles available 86h error in save or restore of mapping context 87h insufficient memory pages in system 88h insufficient memory pages available 89h zero pages requested 8Ah invalid logical page number encountered 8Bh invalid physical page number encountered 8Ch page-mapping hardware state save area is full 8Dh save of mapping context failed 8Eh restore of mapping context failed 8Fh undefined subfunction 90h undefined attribute type 91h feature not supported 92h successful, but a portion of the source region has been overwritten 93h length of source or destination region exceeds length of region allocated to either source or destination handle 94h conventional and expanded memory regions overlap 95h offset within logical page exceeds size of logical page 96h region length exceeds 1M 97h source and destination EMS regions have same handle and overlap 98h memory source or destination type undefined 9Ah specified alternate map register or DMA register set not supported 9Bh all alternate map register or DMA register sets currently allocated 9Ch alternate map register or DMA register sets not supported 9Dh undefined or unallocated alternate map register or DMA register set 9Eh dedicated DMA channels not supported 9Fh specified dedicated DMA channel not supported A0h no such handle name A1h a handle found had no name, or duplicate handle name A2h attempted to wrap around 1M conventional address space A3h source array corrupted A4h operating system denied accessTop
INT 67 - LIM EMS - GET PAGE FRAME SEGMENT AH = 41h Return: AH = status (see also AH=40h) 00h function successful BX = segment of page frame SeeAlso: AH=58h,AH=68hTop
INT 67 - LIM EMS - GET NUMBER OF PAGES AH = 42h Return: AH = status (see also AH=40h) 00h function successful BX = number of unallocated pages DX = total number of pages BUG: DOS 6.0 EMM386.EXE causes a system lock-up or reboot if in AUTO mode when this call is made; use AH=46h to ensure that EMM386 is ON before making this call SeeAlso: INT 2F/AX=2702hTop
INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY AH = 43h BX = number of logical pages to allocate Return: AH = status (00h,80h,81h,84h,85h,87h,88h,89h) (see #03648) DX = handle if AH=00h SeeAlso: AH=45hTop
INT 67 - Q87 v4+ - INSTALLATION CHECK AX = 4321h EAX = 87654321h (entire EAX value required) Return: EAX = 12345678h if Q87 is installed Note: this call requires that VCPI services be available; if they are not, this call will not be recognized BUG: v4.00-v4.03 will hang on most machines when run under bare DOS with no memory manager, because neither Q87 nor UNLOAD87 checks whether there is a valid INT 67 handler before performing an installation check via INT 67 SeeAlso: AX=2833h,INT 21/AX=4321hTop
INT 67 - LIM EMS - MAP MEMORY AH = 44h AL = physical page number (0-3) BX = logical page number or FFFFh to unmap (QEMM) DX = handle Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh) (see #03648) SeeAlso: AH=69hTop
INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY AH = 45h DX = EMM handle Return: AH = status (00h,80h,81h,83h,84h,86h) (see #03648) SeeAlso: AH=43hTop
INT 67 - LIM EMS - GET EMM VERSION AH = 46h Return: AH = status (00h,80h,81h,84h) (see #03648) AL = EMM version number if AH=00hTop
INT 67 - LIM EMS - SAVE MAPPING CONTEXT AH = 47h DX = handle Return: AH = status (00h,80h,81h,83h,84h,8Ch-8Eh) (see #03648) SeeAlso: AH=48hTop
INT 67 - LIM EMS - RESTORE MAPPING CONTEXT AH = 48h DX = handle Return: AH = status (00h,80h,81h,83h,84h,8Eh) (see #03648) SeeAlso: AH=47hTop
INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES AH = 49h Note: defined in EMS 3.0, but undocumented in EMS 3.2Top
INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY AH = 4Ah Note: defined in EMS 3.0, but undocumented in EMS 3.2Top
INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES AH = 4Bh Return: AH = status (00h,80h,81h,83h,84h) (see #03648) BX = number of EMM handles if AH=00hTop
INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE AH = 4Ch DX = EMM handle Return: AH = status (see #02785) BX = number of logical pages if AH=00h SeeAlso: AH=4DhTop
INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES AH = 4Dh ES:DI -> array to receive information Return: AH = status (00h,80h,81h,84h) (see #03648) ---if AH=00h--- BX = number of active EMM handles array filled with 2-word entries, consisting of a handle and the number of pages allocated to that handle SeeAlso: AH=4ChTop
INT 67 - LIM EMS - GET OR SET PAGE MAP AH = 4Eh AL = subfunction 00h get mapping registers 01h set mapping registers 02h get and set mapping registers at once 03h get size of page-mapping array DS:SI -> array holding information (AL=01h/02h) ES:DI -> array to receive information (AL=00h/02h) Return: AH = status (00h,80h,81h,84h,8Fh,A3h) (see also AH=40h) 00h successful AL = bytes in page-mapping array (AL=03h only) array pointed to by ES:DI receives mapping info (AL=00h/02h) Notes: this function was designed to be used by multitasking operating systems and should not ordinarily be used by appplication software. MD386 returns the size of the page-mapping array in AX instead of AL SeeAlso: AH=4FhTop
INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP AH = 4Fh AL = subfunction 00h get partial page map DS:SI -> structure containing list of segments whose mapping contexts are to be saved ES:DI -> array to receive page map 01h set partial page map DS:SI -> structure containing saved partial page map 02h get size of partial page map BX = number of mappable segments in the partial map to be saved Return: AH = status (00h,80h,81h,84h,8Bh,8Fh,A3h) (see also AH=40h) 8Bh one of the specified segments is not mappable A3h contents of partial page map corrupted or count of mappable segments exceeds total number of mappable segments in system AL = size of partial page map for subfunction 02h SeeAlso: AH=4EhTop
INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES AH = 50h AL = subfunction 00h use physical page numbers 01h use segment addresses DX = handle CX = number of entries in array DS:SI -> mapping array (see #03649) Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #03648) SeeAlso: AH=40h Format of EMS mapping array entry: Offset Size Description (Table 03649) 00h WORD logical page number or FFFFh to unmap physical page 02h WORD physical page number or segment addressTop
INT 67 - LIM EMS 4.0 - REALLOCATE PAGES AH = 51h DX = handle BX = number of pages to be allocated to handle Return: AH = status (00h,80h,81h,83h,84h,87h,88h) (see #03650) BX = actual number of pages allocated to handle (Table 03650) Values for EMS function status: 00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 87h more pages requested than present in system 88h more pages requested than currently available 8Ah invalid logical page number encountered 8Bh invalid physical page number encountered 8Fh undefined subfunction 90h undefined attribute type 91h feature not supported A0h no such handle name A1h duplicate handle nameTop
INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES AH = 52h AL = subfunction 00h get handle attributes Return: AL = attribute 00h handle is volatile 01h handle is nonvolatile 01h set handle attributes BL = new attribute 00h handle is volatile 01h handle is nonvolatile 02h get attribute capability Return: AL = attribute capability 00h only volatile handles supported 01h both volatile and non-volatile supported DX = handle Return: AH = status (00h,80h,81h,83h,84h,8Fh-91h) (see #03648) SeeAlso: AH=53hTop
INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME AH = 53h AL = subfunction 00h get handle name ES:DI -> 8-byte buffer for handle name 01h set handle name DS:SI -> 8-byte handle name DX = handle Return: AH = status (00h,80h,81h,83h,84h,8Fh,A1h) (see #03648) SeeAlso: AH=52hTop
INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY AH = 54h AL = subfunction 00h get handle directory ES:DI -> buffer for handle directory (see #03651) 01h search for named handle DS:SI -> 8-byte name 02h get total number of handles Return: AL = number of entries in handle directory (subfunction 00h) DX = value of named handle (subfunction 01h) BX = total number of handles (subfunction 02h) AH = status (00h,80h,81h,84h,8Fh,A0h,A1h) (see also #03650) A1h a handle found had no name Format of EMS handle directory entry: Offset Size Description (Table 03651) 00h WORD handle 02h 8 BYTEs handle's nameTop
INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP AH = 55h AL = subfunction 00h physical page numbers provided by caller 01h segment addresses provided by caller DX = handle DS:SI -> structure containing map and jump address Return: (at target address unless error) AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #03648) SeeAlso: AH=56hTop
INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL AH = 56h AL = subfunction 00h physical page numbers provided by caller DX = handle DS:SI -> structure containing page map and call address 01h segment addresses provided by caller DX = handle DS:SI -> structure containing page map and call address 02h get page map stack space required Return: BX = stack space required Return: (if successful, the target address is called. Use a RETF to return and restore mapping context) AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #03648) SeeAlso: AH=55hTop
INT 67 - RM386 v6.00 - ??? AX = 56FFh DS:SI -> ??? ??? Return: ???Top
INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION AH = 57h AL = subfunction 00h move memory region 01h exchange memory region DS:SI -> structure describing source and destination (see #03653) Return: AH = status (see #03652) Note: source and destination may overlap for a move, in which case the copy direction is chosen such that the destination receives an intact copy of the source region (Table 03652) Values for EMS function status: 00h successful 80h internal error 81h hardware failure 83h invalid handle 84h undefined function requested 8Ah invalid logical page number encountered 8Fh undefined subfunction 92h successful, but a portion of the source region has been overwritten 93h length of source or destination region exceeds length of region allocated to either source or destination handle 94h conventional and expanded memory regions overlap 95h offset within logical page exceeds size of logical page 96h region length exceeds 1M 97h source and destination EMS regions have same handle and overlap 98h memory source or destination type undefined A2h attempted to wrap around 1M conventional address space Format of EMS copy data: Offset Size Description (Table 03653) 00h DWORD region length in bytes 04h BYTE source memory type 00h conventional 01h expanded 05h WORD source handle (0000h if conventional memory) 07h WORD source initial offset (within page if EMS, segment if convent) 09h WORD source initial segment (conv mem) or logical page (EMS) 0Bh BYTE destination memory type 00h conventional 01h expanded 0Ch WORD destination handle 0Eh WORD destination initial offset 10h WORD destination initial segment or pageTop
INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY AH = 58h AL = subfunction 00h get mappable physical address array ES:DI -> buffer to be filled with array (see #03654) 01h get number of entries in m.p.a. array Return: CX = number of entries in array AH = status (00h,80h,81h,84h,8Fh) (see #03652) Note: the returned array for subfunction 00h is filled in physical segment address order Format of EMS mappable physical address entry: Offset Size Description (Table 03654) 00h WORD physical page segment 02h WORD physical page numberTop
INT 67 U - NETROOM??? - ??? AX = 5857h BX = function??? (0057h,0059h,0159h seen) ??? Return: ??? Note: BX=0059h appears to be analogous to AX=5800h and BX=0159h appears to be analogous to AX=5801h; BX=0057h appears to indicate whether AX=580xh or AX=5857h/BX=0x59h should be used SeeAlso: AX=5BF0hTop
INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION AH = 59h AL = subfunction 00h get hardware configuration array ES:DI -> buffer to be filled with array (see #03655) 01h get unallocated raw page count Return: BX = unallocated raw pages DX = total raw pages Return: AH = status (see also AH=58h"EMS 4.0") A4h access denied by operating system Note: subfunction 00h is for use by operating systems only, and can be enabled or disabled at any time by the operating system Format of EMS hardware configuration array: Offset Size Description (Table 03655) 00h WORD size of raw EMM pages in paragraphs 02h WORD number of alternate register sets 04h WORD size of mapping-context save area in bytes 06h WORD number of register sets assignable to DMA 08h WORD DMA operation type 0000h DMA with alternate register sets 0001h only one DMA register setTop
INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES AH = 5Ah AL = subfunction 00h allocate standard pages 01h allocate raw pages BX = number of pages to allocate Return: DX = handle AH = status (00h,80h,81h,84h,85h,87h,88h,8Fh) (see #03648)Top
INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET AH = 5Bh AL = subfunction 00h get alternate map register set Return: BL = current active alternate map register set number ES:DI -> map register context save area if BL=00h 01h set alternate map register set BL = new alternate map register set number ES:DI -> map register context save area if BL=0 02h get alternate map save array size Return: DX = array size in bytes 03h allocate alternate map register set Return: BL = number of map register set; 00h = not supported 04h deallocate alternate map register set BL = number of alternate map register set Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Dh,A3h,A4h) (see #03656) Note: this function is for use by operating systems only, and can be enabled or disabled at any time by the operating system (Table 03656) Values for EMS function status: 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction 9Ah specified alternate map register or DMA register set not supported 9Bh all alternate map register or DMA register sets currently allocated 9Ch alternate map register or DMA register sets not supported 9Dh undefined or unallocated alternate map register/DMA register set 9Eh dedicated DMA channels not supported 9Fh specified dedicated DMA channel not supported A3h source array corrupted A4h operating system denied accessTop
INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS AH = 5Bh AL = subfunction 05h allocate DMA register set Return: BL = DMA register set number, 00h if not supported 06h enable DMA on alternate map register set BL = DMA register set number DL = DMA channel number 07h disable DMA on alternate map register set BL = DMA register set number 08h deallocate DMA register set BL = DMA register set number Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Fh,A3h,A4h) (see #03656) Note: this function is for use by operating systems only, and can be enabled or disabled at any time by the operating systemTop
INT 67 - MICEMM v4D, RM386 - GET LINEAR ADDRESS OF MEMORY AX = 5BE0h ES:BX -> memory for which to get linear address Return: AH = 00h CX:DX = linear address of physical memory corresponding to ES:BX Program: RAM-MAN/386 is the memory manager included with Helix's Netroom; MICEMM is a memory manager for some Micronics motherboards Note: this has been superceded by AX=DE06h, which should be used instead SeeAlso: AX=5BF0h,AX=5BF1h,AX=DE06hTop
INT 67 - RM386 v6.00+ - GET MEMORY MANAGER SIZE AX = 5BE1h Return: AH = 00h CX = code and data size in bytes DX:BX = physical address of RM386 code DI:SI = total size of RM386 area including handle tables BP = number of additional pages (high DOS, etc.) SeeAlso: AX=5BE0h,AX=5BE2hTop
INT 67 - RM386 v6.00+ - GET INTERRUPT VECTORS AX = 5BE2h Return: DS:SI -> V86-mode table (see #03657) ES:BX -> ??? (undoc, middle of device driver interrupt routine!) SeeAlso: AX=5BE0h,AX=5BE1h Format of RM386 V86-mode table: Offset Size Description (Table 03657) 00h DWORD original INT 13 vector 04h DWORD original INT 15 vector 08h DWORD original INT 19 vector 0Ch DWORD original INT 21 vector 10h DWORD original INT 4B vector 14h DWORD original INT 67 vectorTop
INT 67 - MICEMM v4D, RM386 - INSTALLATION CHECK AX = 5BF0h Return: AH = 00h if MICEMM or RM386 present BX = code segment of driver Program: MICEMM is the Micronics Expanded Memory Manager; RM386 is the memory manager included in Helix Software's Netroom SeeAlso: AH=3Fh,AX=5BE0h,AX=5BF1hTop
INT 67 - MICEMM v4D, RM386 - GET ADDRESS MAP AX = 5BF1h ES:BX -> 256-byte (MICEMM) or 512-byte (RM386) buffer for memory types Return: AH = 00h ES:BX buffer filled (see #03658) Note: each byte in the buffer specifies the type of a 4K page of memory SeeAlso: AX=5BE0h,AX=5BF0h (Table 03658) Values for MICEMM/RM386 memory type: 00h unused (MICEMM), RAM/available (RM386) 02h DOS extension (XMS UMB) 04h shadowed ROM 08h mappable EMS 10h page frame 20h ROM 40h reserved (video memory, etc) 80h RAM (MICEMM), Windows UMB (RM386)Top
INT 67 - RM386 - GET RM386 INTERNAL DATA AX = 5BF2h CX = size of buffer DS:SI -> buffer for internal data (documentation says ES:BX -> buffer, SI = offset within RM386) Return: buffer filled Note: the data returned by this function is release-specific SeeAlso: AX=5BF0hTop
INT 67 - RM386 - RETURN TO REAL MODE AX = 5BF3h Return: nothing Note: use AX=5DE0h instead of this functin SeeAlso: AX=5BF0h,AX=5DE0hTop
INT 67 - RM386 v6.00 - GET RM386 GLOBAL FLAGS AX = 5BF4h Return: AH = 00h BX = global flags 1 (see #03659) CX = global flags 2 (see #03660) DX = global flags 3 (see #03661) SI = global flags 4 (see #03662) SeeAlso: AX=5BF0h Bitfields for RM386 global flags 1: Bit(s) Description (Table 03659) 0-3 reserved 4 V86 mode 5 reserved 6 80386 or higher CPU 7,8 reserved 9 A20 enabled at startup 10 "HIGH_IO" 11 ROM 12 large frame 13,14 reserved 15 PS/2-style A20 control Bitfields for RM386 global flags 2: Bit(s) Description (Table 03660) 0 HMA in use 1 XMS present 2 using XMS driver memory 3 HIGH (NEAT only) 4-7 reserved 8 NOBKTRAP 9 NORESET 10 ALTMAP 11 NOFRAME 12-15 reserved Bitfields for RM386 global flags 3: Bit(s) Description (Table 03661) 0 NOTEST 1 NOEBDA 2 Windows3 support 3 system board mouse 4 DISKBUF 5 EBDALOW 6 A20 global enable flag 7 A20 flag 8 EBDA moved to stub 9 VXD file was found 10 reserved 11 NOBOOTMAP 12 AUTO 13 PS/2 machine 14 Compaq ROM merge active 15 NOHMA set Bitfields for RM386 global flags 4: Bit(s) Description (Table 03662) 0 "NOV8259" don't virtualize interrupt controller 1 NOSCSI 2 NOSCAN 3 NOTR 4 ALTBOOT 5 NOCOMPQ 6 KB2TRAP 7 DESHADOW 8 Video 7 VGA detected 9 reserved 10 NOVGA 11 NOPS2 12 DEBUG 13 NOVKB 14,15 reservedTop
INT 67 - RM386 v6.00 - GET RM386 EMS HANDLE COUNT AX = 5BF5h Return: AH = status 00h successful BX = current number of allocated EMS handles 84h function not available SeeAlso: AX=5BF0hTop
INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT AH = 5Ch Return: AH = status (see #03663) Note: when MS-DOS v6.xx EMM386 is loaded and the keyboard driver supports INT 15/AH=4Fh (keyboard intercept) calls, the system may hang instead of booting if this function is called just prior to a jump to F000h:FFF0h (Table 03663) Values for EMS function status: 00h successful 80h internal error 81h hardware malfunction 84h undefined function requestedTop
INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS AH = 5Dh AL = subfunction 00h enable OS Function Set 01h disable OS Function Set 02h return access key (resets memory manager, returns access key at next invocation) BX,CX = access key returned by first invocation Return: BX,CX = access key, returned only on first invocation of function AH = status (see also AH=5Ch) 8Fh undefined subfunction A4h operating system denied accessTop
INT 67 u - Nanosoft MD386 - INTERNAL INITIALIZATION AX = 5D03h ??? Return: ??? Program: MD386 is a subset EMS memory manager by Nanosoft specifically designed for use with the MultiDOS Plus multitasker SeeAlso: AX=5D04h,AX=5E00hTop
INT 67 - Nanosoft MD386 - GET ALTERNATE MAP STRUCTURE AX = 5D04h BX = alternate register set number ES:DI -> 1024-byte buffer for map structure Return: AH = status (see #03648) buffer filled if AH=00h Note: used for debugging purposes SeeAlso: AX=5D05hTop
INT 67 - Nanosoft MD386 - GET INTERNAL HANDLE TABLE AX = 5D05h BX = handle number ES:DI -> 1024-byte buffer for handle table Return: AH = status (see #03648) buffer filled if AH=00h Note: used for debugging purposes SeeAlso: AX=5D04hTop
INT 67 - RM386 - DISABLE RM386 AX = 5DE0h Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE1hTop
INT 67 - RM386 - ENABLE RM386 AX = 5DE1h Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE0hTop
INT 67 - RM386 - GET PAGE TABLE AX = 5DE2h ES:DI -> 1088-byte buffer for page table Return: ES:DI buffer filled Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE3hTop
INT 67 - RM386 - SET PAGE TABLE AX = 5DE3h ES:DI -> 1088-byte buffer containing page table Notes: only the access bits of the page table are used, the remainder is ignored RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE2hTop
INT 67 - RM386 - SET WRITE-PROTECTION FOR PAGE IN FIRST MEGABYTE AX = 5DE4h BL = page number BH = access (00h read-only, 01h read-write) Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interruptTop
INT 67 - RM386 - MAP PHYSICAL PAGE TO PHYSICAL SEGMENT AX = 5DE5h EBX = physical page number DX = page number in first megabyte to be remapped (linear-addr SHR 12) Return: AH = status 00h successful 8Bh invalid destination page (not in first megabyte) Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE6hTop
INT 67 - RM386 - MAP LOGICAL 4K PAGE TO PHYSICAL SEGMENT AX = 5DE6h BX = logical page number in 4K pages from beginning of memory for EMS handle CX = segment in first megabyte to be remapped DX = previously-allocated EMS handle Return: AH = status 00h successful 83h invalid handle 8Ah invalid logical page (out of handle's range) 8Bh invalid destination page (not in first megabyte) Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE5hTop
INT 67 - RM386 - SET PAGE TABLE BITS FOR RANGE OF PAGES AX = 5DE7h BL = page table bits to be set (bits 2-0 = U/S, R/W, P) CX = number of pages to set DX = first page number to set (in first megabyte) Return: AH = status 00h successful 8Bh invalid destination page (not in first megabyte) A5h invalid page bits A6h invalid page count (overflows first megabyte) Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interruptTop
INT 67 - RM386 - GET PARTIAL PAGE TABLE AX = 5DE8h BX = starting page number in first megabyte+HMA (0000h-010Fh) CX = number of page table entries to get ES:DI -> buffer for DWORD page table entries Return: AH = status (00h successful, 8Bh invalid page) Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE9hTop
INT 67 - RM386 - SET PARTIAL PAGE TABLE AX = 5DE9h BX = starting page number in first megabyte+HMA (0000h-010Fh) CX = number of page table entries to get DS:SI -> buffer of DWORD page table entries Return: AH = status (00h successful, 8Bh invalid destination page) Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DE8hTop
INT 67 - RM386 - V86-MODE I/O PORT TRAPPING CONTROL AX = 5DEAh BX = function 00h globally disable V86-mode trapping 01h globally enable V86-mode trapping CL = interrupt to use for trapping 02h get I/O trapping state Return: AH = status 00h successful BX = current trapping state (function 02h) 0000h disabled, 0001h enabled CX = interrupt used as trap interrupt (functions 00h and 02h) Notes: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt when I/O trapping is enabled and I/O port access occurs, RM386 simulates an INT instruction for the specified interrupt; the interrupt handler is responsible for decoding the trapped instruction and performing the appropriate action. INT 2C/AX=002Dh provides a similar but more-easily used interface. SeeAlso: AX=5DEBh,AH=EFh"RM386",INT 2C/AX=002DhTop
INT 67 - RM386 - V86-MODE I/O TRAPPING PORT CONTROL AX = 5DEBh BX = function 00h disable V86-mode trapping for specified port 01h enable V86-mode trapping for specified port 02h get V86-mode trapping state for specified port DX = port for which to enable/disable/query trapping Return: AH = status 00h successful BX = current trapping state (00h off, 01h on) (function 02) A7h invalid port ID A8h reserved port--cannot trap/untrap (DMA/INT/KBD controllers) Notes: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DEAhTop
INT 67 U - RM386 v6.00 - ??? AX = 5DFDh ??? Return: ??? Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DFEhTop
INT 67 U - RM386 v6.00 - ??? AX = 5DFEh ??? Return: ??? Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DFDhTop
INT 67 U - RM386 v6.00 - ??? AX = 5DFFh ??? Return: ??? Note: RM386 traps this function on the initial transition to protected mode caused by the INT instruction, which means it can not be overridden simply by hooking the interrupt SeeAlso: AX=5DFDh,AX=5DFEhTop
INT 67 - Nanosoft MD386 - SET HARDWARE BREAKPOINT AX = 5E00h DH = breakpoint number (0-3) DL = breakpoint attributes (used to set DR7) CX:BX = linear address of breakpoint SeeAlso: AX=5D03h,AX=5E01hTop
INT 67 - Nanosoft MD386 - GET HARDWARE DEBUG REGISTER AX = 5E01h BL = register number (0-3,7) Return: CX:BX = value of specified DRx register SeeAlso: AX=5E00hTop
INT 67 - Nanosoft MD386 - SET DEBUG EXCEPTION HANDLER AX = 5E02h CX:BX -> exception handler Note: the specified exception handler is called with a simulated interrupt whenever a debug exception occurs which was caused by a hardware breakpoint set with the debug registers SeeAlso: AX=5E04h,AX=5E05hTop
INT 67 - Nanosoft MD386 - ENABLE/DISABLE MEMORY WRITE PROTECTION AX = 5E03h BL = register map set number BH = new state (00h read-only, else read-write) CX = linear page number (linear address SHR 12) Note: setting write protection in map set 0 will cause the setting to become the default for newly-allocated map setsTop
INT 67 - Nanosoft MD386 - GET DEBUG EXCEPTION AX = 5E04h Return: BL = debug exception (low byte of DR6 register) SeeAlso: AX=5E02h,AX=5E05hTop
INT 67 - Nanosoft MD386 - IGNORE NEXT DEBUG EXCEPTION AX = 5E05h Note: may be required when using AX=5E02h for handling instruction breakpoints SeeAlso: AX=5E02h,AX=5E04hTop
INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY AH = 60h ES:DI -> buffer Return: AH = status (see also AH=40h) AL = number of entries buffer at ES:DI filledTop
INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT AH = 61h ??? Return: ??? Note: can be used by accelerator card manufacturer to flush RAM cache, ensuring that the cache accurately reflects what the processor would see without the cache.Top
INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - INSTALLATION CHECK??? AX = 6100h Return: AH = status (00h if installed???) Note: STB's RAPIDMAP.SYS EMS driver calls this function and AX=6101h if the signature "GACXXX" is found at offset 0Ah in the INT 67 handler's segment (i.e. a device driver named GACXXX?? has hooked INT 67) SeeAlso: AX=6101h,INT 02/SI=0714hTop
INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - GET ??? ENTRY POINT AX = 6101h Return: AH = status ---if AH=00h--- ES:BX -> ??? entry point SeeAlso: AX=6100hTop
INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM AH = 68h ES:DI -> buffer Return: AH = status (see also AH=40h) AL = number of entries buffer at ES:DI filled Note: equivalent to LIM 4.0 function 58hTop
INT 67 - EEMS - MAP PAGE INTO FRAME AH = 69h AL = frame number BX = page number DX = handle Return: AH = status (see also AH=40h) Note: similar to EMS function 44h SeeAlso: AH=44h,AH=50h,AH=6AhTop
INT 67 - EEMS - PAGE MAPPING AH = 6Ah AL = subfunction 00h save partial page map CH = first page frame CL = number of frames ES:DI -> buffer which is to be filled 01h restore partial page map CH = first page frame CL = number of frames DI:SI -> previously saved page map 02h save and restore partial page map CH = first page frame CL = number of frames ES:DI = buffer for current page map DI:SI = new page map 03h get size of save array CH = first page frame CL = number of frames Return: AL = size of array in bytes 04h switch to standard map register setting 05h switch to alternate map register setting 06h deallocate pages mapped to frames in conventional memory CH = first page frame CL = number of frames Return: AH = status (see #03648) Note: similar to EMS function 4Eh, except that a subrange of pages can be specified SeeAlso: AH=69hTop
INT 67 - DESQview 2.42-2.53 - BUG AH = 6Bh Note: the EMM.DVR portion of DESQview branches to a random location on this function due to a fencepost errorTop
INT 67 - Quadtel QMAPS - API AH = DDh AL = function ??? Return: ??? Notes: details are not yet available Hewlett-Packard's HPMM.SYS is a licensed version of QMAPS, and thus supports this API SeeAlso: AH=3Fh,AX=FFA5hTop
INT 67 - Virtual Control Program Interface - INSTALLATION CHECK AX = DE00h Return: AH = status 00h VCPI is present BH = major version number BL = minor version number nonzero VCPI not present BUG: MS Windows 3.00 is reported to "object violently" to this call. SeeAlso: INT 2F/AX=1687hTop
INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE AX = DE01h ES:DI -> 4K page table buffer DS:SI -> three descriptor table entries in GDT first becomes code segment descriptor, other two for use by main control program Return: AH = 00h successful DI -> first unused page table entry in buffer EBX -> protected mode entry point in code segment (see #03664) AH = nonzero failed Note: protected mode entry point may be called with AX=DE00h-DE05h and AX=DE0Ch (in each case, all other registers as appropriate for the function) SeeAlso: INT 2F/AX=1687h,INT 67/AH=3Fh (Table 03664) Call QEMM v6.03 protected mode entry point additionally with: AX = DF00h ??? ??? Return: ??? AX = DF01h ??? ??? Return: ???Top
INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS AX = DE02h Return: AH = 00h successful EDX = physical address of highest 4K memory page AH nonzero: failed SeeAlso: AH=3FhTop
INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES AX = DE03h Return: AH = 00h successful EDX = number of free 4K pages AH nonzero: failed Notes: returns total number of pages available to ALL tasks in system also available in protected mode by calling the protected-mode VCPI entry point (see AX=DE01h,#03664) SeeAlso: AX=DE04hTop
INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE AX = DE04h Return: AH = 00h successful EDX = physical address of allocated page AH nonzero: failed Notes: the client program is responsible for freeing all memory allocated with this call before terminating also available in protected mode by calling the protected-mode VCPI entry point (see AX=DE01h,#03664) SeeAlso: AH=3Fh,AX=DE03h,AX=DE05hTop
INT 67 - Virtual Control Program Interface - FREE 4K PAGE AX = DE05h EDX = physical address of 4K page Return: AH = status 00h successful nonzero failed Note: also available in protected mode by calling the protected-mode VCPI entry point (see AX=DE01h,#03664) SeeAlso: AH=3Fh,AX=DE04hTop
INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB AX = DE06h CX = page number (linear address shifted right 12 bits) Return: AH = status 00h successful EDX = physical address of page nonzero invalid page number (AH = 8Bh recommended) SeeAlso: AX=5BE0hTop
INT 67 - Virtual Control Program Interface - READ CR0 AX = DE07h Return: AH = 00h EBX = value of Control Register 0 SeeAlso: AH=3Fh,AX=DE07hTop
INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS AX = DE08h ES:DI -> array of 8 DWORDs Return: AH = 00h buffer filled with DR0 first, DR7 last, DR4 and DR5 unused SeeAlso: AH=3Fh,AX=DE09hTop
INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS AX = DE09h ES:DI -> array of 8 DWORDs holding new values of debug registers Return: AH = 00h Note: values for DR4 and DR5 ignored SeeAlso: AH=3Fh,AX=DE08hTop
INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS AX = DE0Ah Return: AH = 00h successful BX = first vector used by master 8259 (IRQ0) CX = first vector used by slave 8259 (IRQ8) AH nonzero: failed Note: CX is undefined in systems without a slave 8259 SeeAlso: AX=DE0Bh,INT 21/AX=250Ch,INT 31/AX=0400hTop
INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS AX = DE0Bh BX = first vector used by master 8259 CX = first vector used by slave 8259 interrupts disabled Return: AH = 00h successful AH nonzero: failed Notes: This call merely informs the server that the client has changed the interrupt mappings. The client may not change the mappings if they have already been changed by the server or another client, and is responsible for restoring the original mappings before terminating. SeeAlso: AX=DE0Ah,INT 2C/AX=002AhTop
INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE AX = DE0Ch ESI = linear address in first megabyte of values for system registers (see #03665) interrupts disabled Return: interrupts disabled GDTR, IDTR, LDTR, TR loaded SS:ESP must have at least 16 bytes space, and the entry point is required to set up a new stack before enabling interrupts EAX, ESI, DS, ES, FS, GS destroyed Note: in protected mode, calling the protected-mode VCPI entry point with AX = DE0Ch DS = segment selector mapping entire linear address space obtained via AX=DE01h SS:ESP in first megabyte of linear memory STACK:QWORD return address from FAR call to 32-bit segment DWORD EIP DWORD CS DWORD reserved for EFLAGS DWORD ESP DWORD SS DWORD ES DWORD DS DWORD FS DWORD GS and interrupts disabled, will switch to virtual86 mode with interrupts disabled, all segment registers loaded, and EAX destroyed. SeeAlso: AH=3Fh,INT 15/AH=89h,INT D4/AH=10h Format of system register values for switch to protected mode: Offset Size Description (Table 03665) 00h DWORD value for CR3 04h DWORD linear address in first megabyte of value for GDTR 08h DWORD linear address in first megabyte of value for IDTR 0Ch WORD value for LDTR 0Eh WORD value for TR 10h PWORD CS:EIP of protected mode entry-pointTop
INT 67 - Netroom3 - ??? AX = DE0Fh ??? Return: ??? Note: called by Netroom's DPMI.EXETop
INT 67 - "SB Live!" Sound Blaster 16 Emulation Driver - INSTALLATION CHECK AX = DEE1h BX = 0C55h Return: BL = AAh if installedTop
INT 67 - RM386 v6.00+ - EXECUTE XMS FUNCTION AH = EFh AL = function (00h-12h,80h-8Fh) other register as appropriate for XMS function Return: varies by function (see INT 2F/AX=4310h"XMS") Note: these functions appear to be equivalent to the XMS functions with the same numbers SeeAlso: AX=5DFFh"RM386",INT 2F/AX=4310h"XMS"Top
INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK
AX = FFA5h
Return: AX = 845Ah/84A5h if loaded
BX:CX -> API entry point (see #03666)
Notes: this call is available even if EMM386 is not providing EMS
the returned AX is 845Ah inside of MSWindows, 84A5h under bare DOS
if no other program has hooked INT 67, an alternate installation
check is to test for the string
"MICROSOFT EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
handler's segment; the word immediately preceding this string
contains the offset of the API entry point
SeeAlso: AH=3Fh,AX=FFA5h/BX=4345h,INT 21/AX=4402h"EMM386.EXE"
(Table 03666)
Call EMM386.EXE API entry point with:
AH = 00h get memory manager's status
Return: AH = status
bit 0: not active (OFF)
bit 1: in "Auto" mode
AH = 01h set memory manager's state
AL = new state (00h ON, 01h OFF, 02h AUTO)
AH = 02h Weitek coprocessor support
AL = subfunction
00h get Weitek support state
Return: AL = status
bit 0: Weitek coprocessor is present
bit 1: Weitek support is enabled
01h turn on Weitek support
02h turn off Weitek support
--- v4.20-4.41 only ---
AH = 03h Windows support???
AL = subfunction (00h, 01h)
AH = 04h print copyright notice to standard output
(using INT 21/AH=09h)
AH = 05h print available report
(the one shown when running EMM386 from the DOS prompt)
SeeAlso: #01513 at INT 21/AX=4402h/SF=02h,#02617 at INT 2F/AX=12FFh/BX=0106h
Top
INT 67 U - Compaq CEMM v5.10+ - PRIVATE API
AX = FFA5h
BX = 4345h ("CE")
DX = subfunction
0000h unshadow video ROM???
0001h shadow video ROM???
0002h map pages
CX = number of pages (00h=one)
ESI = linear address of first page to map into address space
EDI = linear starting address at which pages are to be visible
0003h get ???
Return: DX = ??? (0-2)
0004h BUG: crashes system due to fencepost error
Return: AH = 84h
AL = status (84h = error, FFh = success)
Note: if BX <> 4345h or DX > 0004h on entry, CEMM behaves identically to
Microsoft's EMM386 (see AX=FFA5h"EMM386")
SeeAlso: AX=FFA5h"EMM386",#01513 at INT 21/AX=4402h/SF=02h,#03666
Top
INT 68 - Sangoma CCPOP 3270 resident module SeeAlso: INT 67"Sangoma",INT 92"Sangoma"Top
INT 68 - Novell NetWare LU6.2 InstallCheck: test for the signature string "APPC/PC" nine bytes before the interrupt handler SeeAlso: AH=01h/SF=1B00h,AH=FAhTop
INT 68 C - HP Vectra AT - IRQ16 - 8041 SERVICE REQUEST SeeAlso: INT 08"IRQ0",INT 69"HP Vectra",INT 6F/AH=00h"HP"Top
INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DISPLAY AH = 01h subfn 1B00h DS:DX -> control block (see #03667) Return: control block updated SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2B00h,INT 68"Novell" Format of APPC/PC "DISPLAY" control block: Offset Size Description (Table 03667) 00h 12 BYTEs reserved 0Ch WORD 1B00h (verb "DISPLAY") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h WORD 00h 1Ah 8 BYTEs (big-endian) logical unit ID 22h 8 BYTEs (big-endian) partner logical unit name 2Ah 8 BYTEs (big-endian) mode name 32h BYTE logical unit session limit 33h BYTE partner logical unit session limit 34h BYTE node maximum negotiable session limit 35h BYTE current session limit 36h BYTE minimum negotiated winner limit 37h BYTE maximum negotiated loser limit 38h BYTE active session count 39h BYTE active CONWINNER session count 3Ah BYTE active CONLOSER session count 3Bh BYTE session termination count 3Ch BYTE bit 7: SESSION_TERMINATION_TARGET_DRAIN bit 6: SESSION_TERMINATION_SOURCE_DRAIN (Table 03668) Values for APPC/PC return code: 0000h successful 0001h BAD_TP_ID 0002h BAD_CONV_ID 0003h bad logical unit ID 0008h no physical unit attached 0110h bad state 01B1h BAD_PART_LUNAME 01B2h bad mode name 0201h physical unit already active 0211h logical unit already active 0212h BAD_PART_SESS 0213h BAD_RU_SIZES 0214h BAD_MODE_SESS 0216h BAD_PACING_CNT 0219h EXTREME_RUS 021Ah SNASVCMG_1 0223h SSCP_CONNECTED_LU 0230h invalid change 0243h too many TPs 0272h adapter close failure 0281h GET_ALLOC_BAD_TYPE 0282h unsuccessful 0283h DLC failure 0284h unrecognized DLC 0286h duplicate DLC 0301h SSCP_PU_SESSION_NOT_ACTIVE 0302h data exceeds RU size 0401h invalid direction 0402h invalid type 0403h segment overlap 0404h invalid first character 0405h table error 0406h conversion error F0010000h APPC disabled F0020000h APPC busy F0030000h APPC abended F0040000h incompleteTop
INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH PHYSICAL UNIT AH = 01h subfn 2000h DS:DX -> control block (see #03669) Return: control block updated SeeAlso: AH=01h/SF=2100h,AH=01h/SF=2B00h Format of APPC/PC "Attach Physical Unit" control block: Offset Size Description (Table 03669) 00h 12 BYTEs reserved 0Ch WORD 2000h (verb "Attach Physical Unit") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h WORD 00h 1Ah BYTE version 1Bh BYTE release 1Ch 8 BYTEs (big-endian) net name 24h 8 BYTEs (big-endian) physical unit name 2Ch 8 BYTEs 00h 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors (see also AH=01h/SF=2100h) 38h DWORD 00h 3Ch BYTE 00h RETURN_CONTROL: COMPLETE 01h RETURN_CONTROL: INCOMPLETETop
INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH LOGICAL UNIT AH = 01h subfn 2100h DS:DX -> control block (see #03670) Return: control block updated SeeAlso: #03673,#03674,#03676,AH=01h/SF=2000h,AH=01h/SF=2200h,AH=01h/SF=2B00h Format of APPC/PC "Attach Logical Unit" control block: Offset Size Description (Table 03670) 00h 12 BYTEs reserved 0Ch WORD 2100h (verb "Attach Logical Unit") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h WORD 70 offset to partner logical unit record 1Ah 8 BYTEs (big-endian) logical unit name 22h 8 BYTEs (big-endian) logical unit ID 2Ah BYTE logical unit local address 2Bh BYTE logical unit session limit 2Ch DWORD pointer to CREATE_TP_EXIT routine, FFFFFFFFh = reject incoming ALLOCATEs 00000000h = queue ALLOCATEs 30h DWORD 00h 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors 38h DWORD 00h 3Ch BYTE maximum TPs 3Dh BYTE queue depth 3Eh DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit 42h DWORD 00h 46h WORD total length of partner records 48h var array of partner logical unit records (see #03671) SeeAlso: #03673,#03674,#03676 Format of APPC/PC partner logical unit record: Offset Size Description (Table 03671) 00h WORD length of this partner logical unit record 02h WORD 42 offset to mode records 04h 8 BYTEs (big-endian) partner logical unit name 0Ch BYTE partner logical unit security capabilities bit 7: already verified bit 6: conversation level security bit 5: session level security 0Dh BYTE partner logical unit session limit 0Eh WORD partner logical unit maximum MC_SEND_LL 10h 8 BYTEs (big-endian) partner logical unit DLC name 18h BYTE partner logical unit adapter number 19h 17 BYTEs (counted string) partner logical unit adapter address 2Ah WORD total length of mode records 2Ch 16N BYTEs array of mode records (see #03672) Format of mode record: Offset Size Description (Table 03672) 00h WORD 16 length of this mode record 02h 8 BYTEs (big-endian) mode name 0Ah WORD RU_SIZE high bound 0Ch WORD RU_SIZE low bound 0Eh BYTE mode maximum negotiable session limit 0Fh BYTE pacing size for receive Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT pointers are called by pushing the DWORD pointer to the verb on the stack and then performing a FAR call. Format of ACCESS_LU_LU_PW verb: Offset Size Description (Table 03673) 00h 12 BYTEs reserved 0Ch WORD 1900h (verb "ACCESS_LU_LU_PW") 0Eh 8 BYTEs (big-endian) logical unit ID 16h 8 BYTEs (big-endian) logical unit name 1Eh 8 BYTEs (big-endian) partner logical unit name 26h 17 BYTEs (counted string) partner fully qualified logical unit name 37h BYTE password available (0=no, 1=yes) 38h 8 BYTEs password SeeAlso: #03670,#03674,#03676 Format of CREATE_TP verb: Offset Size Description (Table 03674) 00h 12 BYTEs reserved 0Ch WORD 2300h (verb "CREATE_TP") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) sense code (see #03675) 18h 8 BYTEs (big-endian) TP ID 20h 8 BYTEs (big-endian) logical unit ID 28h DWORD (big-endian) conversation ID 2Ch BYTE 0 basic conversation, 1 mapped conversation 2Dh BYTE 0 no sync level, 1 confirm 2Eh BYTE reserved 2Fh 65 BYTEs (counted string) transaction program name 70h 6 BYTEs 00h 76h WORD length of ERROR_LOG_DATA to return 78h DWORD pointer to ERROR_LOG_DATA buffer 7Ch 8 BYTEs (big-endian) partner logical unit name 84h 18 BYTEs (counted string) partner fully qualified logical unit name 96h 8 BYTEs (big-endian) mode name 9Eh 12 BYTEs 00h AAh 11 BYTEs (counted string) password B5h 11 BYTEs (counted string) user ID C0h BYTE 0 verification should be performed 1 already verified SeeAlso: #03673,#03676 (Table 03675) Values for APPC/PC sense code: 00000000h Ok 080F6051h SECURITY_NOT_VALID 084B6031h TP_NOT_AVAIL_RETRY 084C0000h TP_NOT_AVAIL_NO_RETRY 10086021h TP_NAME_NOT_RECOGNIZED 10086034h CONVERSATION_TYPE_MISMATCH 10086041h SYNC_LEVEL_NOT_SUPPORTED Format of SYSLOG verb: Offset Size Description (Table 03676) 00h 12 BYTEs reserved 0Ch WORD 2600h (verb "SYSLOG") 0Eh 10 BYTEs 00h 18h WORD (big-endian) type 1Ah DWORD (big-endian) subtype 1Eh DWORD pointer to ADDITIONAL_INFO 22h DWORD (big-endian) conversation ID 26h 8 BYTEs (big-endian) TP ID 2Eh 8 BYTEs (big-endian) physical unit or logical unit name 36h WORD length of data 38h DWORD pointer to data 3Ch BYTE 00h SeeAlso: #03673,#03674Top
INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH LOGICAL UNIT AH = 01h subfn 2200h DS:DX -> control block (see #03677) Return: control block updated SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2700h Format of APPC/PC "Detach Logical Unit" control block: Offset Size Description (Table 03677) 00h 12 BYTEs reserved 0Ch WORD 2200h (verb "Detach Logical Unit") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h 8 BYTEs (big-endian) logical unit ID 20h BYTE 00hTop
INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH PHYSICAL UNIT AH = 01h subfn 2700h DS:DX -> control block (see #03678) Return: control block updated SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2200h Format of APPC/PC "Detach Physical Unit" control block: Offset Size Description (Table 03678) 00h 12 BYTEs reserved 0Ch WORD 2700h (verb "Detach Physical Unit") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h BYTE 00h type: hard 01h type: softTop
INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ACTIVATE DLC AH = 01h subfn 2B00h DS:DX -> control block (see #03679) Return: control block updated SeeAlso: AH=01h/SF=1B00h,AH=01h/SF=2000h Format of APPC/PC "Activate DLC" control block: Offset Size Description (Table 03679) 00h 12 BYTEs reserved 0Ch WORD 2B00h (verb "Activate DLC") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h 8 BYTEs (big-endian) DLC name 20h BYTE adapter numberTop
INT 68 - APPC/PC - CONNECTION CONTROL - ALLOCATE AH = 02h subfn 0100h DS:DX -> control block (see #03680) Return: control block updated SeeAlso: AH=02h/SF=0500h Format of APPC/PC "Allocate" control block: Offset Size Description (Table 03680) 00h 12 BYTEs reserved 0Ch WORD 0100h (verb "Allocate" or "MC_Allocate") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE (MC_Allocate only) conversation type 0 basic conversation 1 mapped conversation 27h BYTE SYNC_LEVEL (00h none, 01h confirm) 28h WORD 0000h 2Ah BYTE RETURN_CONTROL 00h when session allocated 01h immediate 02h when session free 2Bh 8 BYTEs 00h 33h 8 BYTEs (big-endian) partner logical unit name 3Bh 8 BYTEs (big-endian) mode name 43h 65 BYTEs (counted string) TP name 84h BYTE security (00h none, 01h same, 02h pgm) 85h 11 BYTEs 00h 90h 11 BYTEs (counted string) password 9Bh 11 BYTEs (counted string) user ID A6h WORD PIP_DATA length A8h DWORD pointer to PIP_DATA (Table 03681) Values for APPC/PC primary return code: 0000h successful 0001h parameter check 0002h state check 0003h allocation error 0005h deallocate abended 0006h deallocate abended program 0007h deallocate abended SVC 0008h deallocate abended timer 0009h deallocate normal return 000Ah data posting blocked 000Bh posting not active 000Ch PROG_ERROR_NO_TRUNC 000Dh PROG_ERROR_TRUNC 000Eh PROG_ERROR_PURGING 000Fh CONV_FAILURE_RETRY 0010h CONV_FAILURE_NO_RETRY 0011h SVC_ERROR_NO_TRUNC 0012h SVC_ERROR_TRUNC 0013h SVC_ERROR_PURGING 0014h unsuccessful 0018h CNOS partner logical unit reject 0019h conversation type mixed F001h APPC disabled F002h APPC busy F003h APPC abended F004h incomplete (Table 03682) Values for APPC/PC error code: 0001h bad TP ID 0002h bad conversation ID 0004h allocation error, no retry 0005h allocation error, retry 0006h data area crosses segment boundary 0010h bad TPN length 0011h bad CONV length 0012h bad SYNC level 0013h bad security selection 0014h bad return control 0015h SEC_TOKENS too big 0016h PIP_LEN incorrect 0017h no use of SNASVCMG 0018h unknown partner mode 0031h confirm: SYNC_NONE 0032h confirm: bad state 0033h confirm: NOT_LL_BDY 0041h confirmed: bad state 0051h deallocate: bad type 0052h deallocate: flush bad state 0053h deallocate: confirm bad state 0055h deallocate: NOT_LL_BDY 0057h deallocate: log LL_WRONG 0061h flush: not send state 0091h post on receipt: invalid length 0092h post on receipt: not in receive state 0093h post on receipt: bad fill 00A1h prepare to receive:invalid type 00A2h prepare to receive: unfinished LL 00A3h prepare to receive: not in send state 00B1h receive and wait: bad state 00B2h receive and wait: NOT_LL_BDY 00B5h receive and wait: bad fill 00C1h receive immediate: not in receive state 00C4h receive immediate: bad fill 00E1h request to send: not in receive state 00F1h send data: bad LL 00F2h send data: not in send state 0102h send error: log LL wrong 0103h send error: bad type 0121h test: invalid type 0122h test: not in receive stateTop
INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRM AH = 02h subfn 0300h DS:DX -> control block (see #03683) Return: control block updated SeeAlso: AH=02h/SF=0400h Format of APPC/PC "Confirm" control block: Offset Size Description (Table 03683) 00h 12 BYTEs reserved 0Ch WORD 0300h (verb "Confirm" or "MC_Confirm") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE request to send received (0=no, 1=yes)Top
INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRMED AH = 02h subfn 0400h DS:DX -> control block (see #03684) Return: control block updated SeeAlso: AH=02h/SF=0300h Format of APPC/PC "Confirmed" control block: Offset Size Description (Table 03684) 00h 12 BYTEs reserved 0Ch WORD 0400h (verb "Confirmed" or "MC_Confirmed") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation IDTop
INT 68 - APPC/PC - CONNECTION CONTROL - DEALLOCATE AH = 02h subfn 0500h DS:DX -> control block (see #03685) Return: control block updated SeeAlso: AH=02h/SF=0100h,AH=02h/SF=0300h Format of APPC/PC "Deallocate" control block: Offset Size Description (Table 03685) 00h 12 BYTEs reserved 0Ch WORD 0500h (verb "Deallocate" or "MC_Deallocate") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE 00h 27h BYTE type 00h SYNC_LEVEL 01h FLUSH 02h ABEND_PROC 03h ABEND_SVC 04h ABEND_TIMER 05h ABEND 28h WORD (MC_Deallocate only) length of error log data 2Ah DWORD (MC_Deallocate only) pointer to error log dataTop
INT 68 - APPC/PC - CONNECTION CONTROL - FLUSH AH = 02h subfn 0600h DS:DX -> control block (see #03686) Return: control block updated SeeAlso: AH=02h/SF=0300h Format of APPC/PC "Flush" control block: Offset Size Description (Table 03686) 00h 12 BYTEs reserved 0Ch WORD 0600h (verb "Flush" or "MC_Flush") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation IDTop
INT 68 - APPC/PC - CONNECTION CONTROL - GET ATTRIBUTES AH = 02h subfn 0700h DS:DX -> control block (see #03687) Return: control block updated SeeAlso: AH=02h/SF=0300h Format of APPC/PC "Get_Attributes" control block: Offset Size Description (Table 03687) 00h 12 BYTEs reserved 0Ch WORD 0700h (verb "Get_Attributes" or "MC_Get_Attributes") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h 8 BYTEs (big-endian) logical unit ID 2Eh BYTE 00h 2Fh BYTE SYNC_LEVEL (0=none, 1=confirm) 30h 8 BYTEs (big-endian) mode name 38h 8 BYTEs (big-endian) own net name 40h 8 BYTEs (big-endian) own logical unit name 48h 8 BYTEs (big-endian) partner logical unit name 50h 18 BYTEs (counted string) partner's fully qualified logical unit name 62h BYTE 00h 63h 11 BYTEs (counted string) user IDTop
INT 68 - APPC/PC - CONNECTION CONTROL - GET CONVERSATION TYPE AH = 02h subfn 0800h DS:DX -> control block (see #03688) Return: control block updated SeeAlso: AH=02h/SF=0300h Format of APPC/PC "Get_Type" control block: Offset Size Description (Table 03688) 00h 12 BYTEs reserved 0Ch WORD 0800h (verb "Get_Type") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE (ret) type (0=basic conversation, 1=mapped conversation)Top
INT 68 - APPC/PC - CONNECTION CONTROL - POST ON RECEIPT AH = 02h subfn 0900h DS:DX -> control block (see #03689) Return: control block updated SeeAlso: AH=02h/SF=0A00h Format of APPC/PC "Post_on_Receipt" control block: Offset Size Description (Table 03689) 00h 12 BYTEs reserved 0Ch WORD 0900h (verb "Post_on_Receipt") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h WORD maximum length 28h BYTE fill (0=buffer, 1=LL)Top
INT 68 - APPC/PC - CONNECTION CONTROL - PREPARE TO RECEIVE AH = 02h subfn 0A00h DS:DX -> control block (see #03690) Return: control block updated SeeAlso: AH=02h/SF=0900h,AH=02h/SF=0B00h Format of APPC/PC "Prepare_to_Receive" control block: Offset Size Description (Table 03690) 00h 12 BYTEs reserved 0Ch WORD 0A00h (verb "Prepare_to_Receive" or "MC_Prepare_to_Receive") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE type (0=SYNC_LEVEL, 1=FLUSH) 27h BYTE locks (0=short, 1=long)Top
INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE AND WAIT AH = 02h subfn 0B00h DS:DX -> control block (see #03691) Return: control block updated SeeAlso: AH=02h/SF=0C00h,AH=02h/SF=0F00h Format of APPC/PC "Receive_and_Wait" control block: Offset Size Description (Table 03691) 00h 12 BYTEs reserved 0Ch WORD 0B00h (verb "Receive_and_Wait" or "MC_Receive_and_Wait") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE type of information received (see #03692) 27h BYTE (MC_Receive_and_Wait only) fill (0=buffer, 1=LL) 28h BYTE Request_to_Send_Received (0=no, 1=yes) 29h WORD maximum length 2Bh WORD data length 2Dh DWORD pointer to data (Table 03692) Values for type of information received: 00h data 01h data complete 02h data incomplete 03h confirm 04h confirm send 05h confirm deallocate 06h sendTop
INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE IMMEDIATE AH = 02h subfn 0C00h DS:DX -> control block (see #03693) Return: control block updated SeeAlso: AH=02h/SF=0B00h,AH=02h/SF=0F00h Format of APPC/PC "Receive_Immediate" control block: Offset Size Description (Table 03693) 00h 12 BYTEs reserved 0Ch WORD 0C00h (verb "Receive_Immediate" or "MC_Receive_Immediate") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE type of information received (see #03692) 27h BYTE (MC_Receive_Immediate only) fill (0=buffer, 1=LL) 28h BYTE Request_to_Send_Received (0=no, 1=yes) 29h WORD maximum length 2Bh WORD data length 2Dh DWORD pointer to dataTop
INT 68 - APPC/PC - CONNECTION CONTROL - REQUEST TO SEND AH = 02h subfn 0E00h DS:DX -> control block (see #03694) Return: control block updated SeeAlso: AH=02h/SF=0F00h,AH=02h/SF=1000h Format of APPC/PC "Request_to_Send" control block: Offset Size Description (Table 03694) 00h 12 BYTEs reserved 0Ch WORD 0E00h (verb "Request_to_Send" or "MC_Request_to_Send") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation IDTop
INT 68 - APPC/PC - CONNECTION CONTROL - SEND DATA AH = 02h subfn 0F00h DS:DX -> control block (see #03695) Return: control block updated SeeAlso: AH=02h/SF=0E00h,AH=02h/SF=1000h Format of APPC/PC "Send_Data" control block: Offset Size Description (Table 03695) 00h 12 BYTEs reserved 0Ch WORD 0F00h (verb "Send_Data" or "MC_Send_Data") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE request to send received (0=no, 1=yes) 27h BYTE 00h 28h WORD data length 2Ah DWORD pointer to dataTop
INT 68 - APPC/PC - CONNECTION CONTROL - SEND ERROR AH = 02h subfn 1000h DS:DX -> control block (see #03696) Return: control block updated SeeAlso: AH=02h/SF=0F00h Format of APPC/PC "Send_Error" control block: Offset Size Description (Table 03696) 00h 12 BYTEs reserved 0Ch WORD 1000h (verb "Send_Error" or "MC_Send_Error") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE request to send received (0=no, 1=yes) 27h BYTE type (0=program, 1=SVC) 28h DWORD 00h 2Ch WORD (MC_Send_Error only) LOG_DATA length 2Eh DWORD (MC_Send_Error only) pointer to LOG_DATATop
INT 68 - APPC/PC - CONNECTION CONTROL - TEST AH = 02h subfn 1200h DS:DX -> control block (see #03697) Return: control block updated SeeAlso: AH=02h/SF=1300h Format of APPC/PC "Test" control block: Offset Size Description (Table 03697) 00h 12 BYTEs reserved 0Ch WORD 1200h (verb "Test" or "MC_Test") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE (MC_Test only) test (0=posted, 1=request_to_send received) Note: error code has different interpretations for: 0 posted data 1 posted not data (primary return code = 0) 1 bad TP_ID (primary return code = 1)Top
INT 68 - APPC/PC - CONNECTION CONTROL - WAIT AH = 02h subfn 1300h DS:DX -> control block (see #03698) Return: control block updated SeeAlso: AH=02h/SF=1200h Format of APPC/PC "Wait" control block: Offset Size Description (Table 03698) 00h 12 BYTEs reserved 0Ch WORD 1300h (verb "Wait") 0Eh BYTE 1 if MC_ (mapped conversation) form of verb 0 if basic verb 0Fh 5 BYTEs reserved (0) 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) error code (see #03682,#03697) 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD (big-endian) conversation ID 26h BYTE number of conversations to wait on Note: error codes have interpretations as for AH=02h/SF=1200hTop
INT 68 - APPC/PC - TP STARTED AH = 03h subfn 2400h DS:DX -> control block (see #03699) Return: control block updated Format of APPC/PC "TP Started" control block: Offset Size Description (Table 03699) 00h 12 BYTEs reserved 0Ch WORD 2400h (verb "TP Started") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h WORD 00h 1Ah 8 BYTEs (big-endian) logical unit ID 22h 8 BYTEs (big-endian) TP IDTop
INT 68 - APPC/PC - GET ALLOCATE AH = 03h subfn 2800h DS:DX -> control block (see #03700) Return: control block updated Format of APPC/PC "Get ALLOCATE" control block: Offset Size Description (Table 03700) 00h 12 BYTEs reserved 0Ch WORD 2800h (verb "Get ALLOCATE") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h WORD 00h 1Ah 8 BYTEs (big-endian) logical unit ID 22h BYTE type (00h dequeue, 01h test) 23h DWORD pointer to CREATE_TP recordTop
INT 68 - APPC/PC - CHANGE LOGICAL UNIT AH = 03h subfn 2A00h DS:DX -> control block (see #03701) Return: control block updated Format of APPC/PC "Change Logical Unit" control block: Offset Size Description (Table 03701) 00h 12 BYTEs reserved 0Ch WORD 2A00h (verb "Change Logical Unit") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h WORD 00h 1Ah 8 BYTEs (big-endian) logical unit ID 22h DWORD pointer to CREATE_TP_EXIT routine 00000000h queue ALLOCATEs FFFFFFFFh reject incoming ALLOCATEs 26h DWORD 00000000h 2Ah DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors 2Eh DWORD 00000000h 32h BYTE maximum TPs 33h BYTE 00h stop QUEUE_ALLOCATEs 01h resume QUEUE_ALLOCATEs 34h DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit 38h DWORD 00000000hTop
INT 68 - APPC/PC - TRANSACTION PROCESSING AH = 04h DS:DX -> control block (see #03702) Return: control block updated Format of APPC/PC control block: Offset Size Description (Table 03702) 00h 12 BYTEs reserved 0Ch WORD verb (action) 2500h TP_ENDED 2900h TP_VALID 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h WORD 00h 1Ah 8 BYTEs (big-endian) TP_ID 22h DWORD -> CREATE_TP record (only if verb = 2900h)Top
INT 68 - APPC/PC - TRANSFER MESSAGE DATA AH = 05h DS:DX -> control block (see #03703) Return: control block updated Format of APPC/PC "Transfer Message Data" control block: Offset Size Description (Table 03703) 00h 12 BYTEs reserved 0Ch WORD 1C00h (verb "Transfer Message Data") 0Eh BYTE data type 00h user defined 01h NMVT 02h alert subvectors 03h PDSTATS subvectors 0Fh 5 BYTEs 00h 14h DWORD (big-endian) return code (see #03668) 18h 12 BYTEs 00h 24h BYTE flags (see #03704) 25h BYTE 00h 26h WORD length of data 28h N BYTEs data Bitfields for APPC/PC message transfer flags: Bit(s) Description (Table 03704) 0 don't add correlation subvector 1 don't add product set ID subvector 2 don't do SYSLOG 3 don't send SSCP_PU_SESSION SeeAlso: #03703Top
INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS AH = 06h DS:DX -> control block (see #03705) Return: control block updated Format of APPC/PC "Change Number of Sessions" control block: Offset Size Description (Table 03705) 00h 12 BYTEs reserved 0Ch WORD 1500h (verb "Change Number of Sessions") 0Eh 6 BYTEs 00h 14h WORD (big-endian) primary return code (see #03681) 16h DWORD (big-endian) secondary return code (see #03668,#03706) 1Ah 8 BYTEs (big-endian) logical unit ID 22h 8 BYTEs blanks 2Ah 8 BYTEs (big-endian) partner logical unit name 32h 8 BYTEs (big-endian) mode name 3Ah BYTE bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME bit 6: set negotiable values 3Bh BYTE partner logical unit mode session limit 3Ch BYTE minimum CONWINNERS_SOURCE 3Dh BYTE maximum CONWINNERS_TARGET 3Eh BYTE automatic activation 3Fh BYTE 00h 40h BYTE flags bit 7: drain target bit 6: drain source bit 5: target responsible, not source (Table 03706) Values for secondary return code (see also AH=01h/SF=1B00h): 0000h accepted 0001h negotiated 0003h bad logical unit ID 0004h allocation failure, no retry 0005h allocation failure, retry 0151h can't raise limits 0153h all modes must reset 0154h bad SNASVCMG limits 0155h minimum greater than total 0156h mode closed (primary return code = 1) CNOS mode closed (primary return code = 18h) 0157h bad mode name (primary return code = 1) CNOS bad mode name (primary return code = 18h) 0159h reset SNA drains 015Ah single not SRC response 015Bh bad partner logical unit 015Ch exceeds maximum allowed 015Dh change SRC drains 015Eh logical unit detached 015Fh CNOS command race rejectTop
INT 68 - APPC/PC - PASSTHROUGH AH = 07h DS:DX -> control block (format depends on application subsystem) Return: control block updated SeeAlso: AH=FFhTop
INT 68 U - ??? - INSTALLATION CHECK??? AX = 4300h Return: AX = F386h if ??? ??? Note: called by Novell DOS 7.0 EMM386.EXE SeeAlso: AX=4400h,INT 41/AX=004FhTop
INT 68 U - ??? AX = 4400h BX = ??? CX = ??? DX = ??? DS:SI = real-mode address of protected-mode GDT ES:DI = real-mode address of protected-mode IDT Return: ??? Note: called by Novell DOS 7.0 EMM386.EXE if AX=4300h returns AX=F386h SeeAlso: AX=4300hTop
INT 68 - MS Windows debugging kernel - OUTPUT STRING AH = 47h ES:SI -> string Notes: output a string (to inform a debugger of some events) KERNEL outputs "Windows Kernel Entry\r\n" on startup SeeAlso: INT 41/AX=0012hTop
INT 68 - APPC/PC - ENABLE/DISABLE APPC AH = FAh AL bit 0 = new state (0 enable, 1 disable) SeeAlso: AH=FDh,INT 68"Novell"Top
INT 68 - APPC/PC - CONVERT AH = FBh DS:DX -> control block (see #03707) Return: control block updated Format of APPC/PC "CONVERT" control block: Offset Size Description (Table 03707) 00h 12 BYTEs reserved 0Ch WORD 1A00h (verb "CONVERT") 0Eh 6 BYTEs 00h 14h DWORD (big-endian) return code 18h BYTE conversion 00h ASCII to EBCDIC 01h EBCDIC to ASCII 19h BYTE character set 00h AE 01h A 02h G 1Ah WORD length of string to convert 1Ch DWORD pointer to source 20h DWORD pointer to targetTop
INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING AH = FCh AL = new state 00h disable tracing 01h enable tracing DX = number of bytes to keep (0=all) SeeAlso: AH=FDh,AH=FEhTop
INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING AH = FDh AL = new tracing state (00h disabled, 01h enabled) SeeAlso: AH=FAh,AH=FCh,AH=FEhTop
INT 68 - APPC/PC - SET TRACE DESTINATION AH = FEh AL = trace destinations (see #03708) DS:DX -> trace stats record if AL bit 0 set (see #03709) SeeAlso: AH=FCh,AH=FDh Bitfields for trace destinations: Bit(s) Description (Table 03708) 0 storage (DS:DX -> trace stats record) 1 display 2 file (trace written to file OUTPUT.PC) 3 printer Format of APPC/PC Trace Statistics Record: Offset Size Description (Table 03709) 00h DWORD pointer to storage trace buffer 04h WORD max number of 80-byte records in trace 06h WORD (high-order byte first!) current record number (must init to 0) 08h DWORD (high-order byte first!) number of records written (init to 0) 0Ch DWORD reserved Note: do not move record while trace is activeTop
INT 68 - APPC/PC - SET PASSTHROUGH AH = FFh DS:DX -> passthrough exit routine SeeAlso: AH=07h,INT 68"Novell"Top
INT 69 - Zenith AT BIOS - ??? Note: called by INT 09 handlerTop
INT 69 C - HP Vectra AT - IRQ17 - KEYBOARD OUTPUT-BUFFER-FULL SERVICE ROUTINE SeeAlso: INT 09"IRQ1",INT 68"HP Vectra",INT 6A"HP Vectra"Top
INT 69 - DECnet DOS CTERM - INSTALLATION CHECK AX = 0100h Return: AL = FFh if present SeeAlso: AX=010FhTop
INT 69 - DECnet DOS CTERM - SEND BYTE AX = 0101h BL = character DX = session handle Return: AH >= 80h on error SeeAlso: AX=0102hTop
INT 69 - DECnet DOS CTERM - READ BYTE AX = 0102h DX = session handle Return: AH >= 80h on error AH < 80h if successful AL = character SeeAlso: AX=0101hTop
INT 69 - DECnet DOS CTERM - STATUS AX = 0103h DX = session handle Return: AH status flags (see #03710) AL = reason code if DECnet error (see #03711) SeeAlso: AX=0104h Bitfields for DECnet DOS CTERM status flags: Bit(s) Description (Table 03710) 7 session has been aborted 6 DECnet error 1 trace data available 0 receive data available (Table 03711) Values for reason code: 00h normal disconnect 01h unknown message from host 02h protocol violation from host 03h could not process the initiate message 04h error receiving message from host 05h error sending message to host 06h error checking for message from host 07h remote system does not support CTERM 08h remote system does not support correct protocol version 09h did not receive BIND message from host 0Ah could not send BIND message to host 0Bh no more sessions available 0Ch session does not exist 0Dh not enough memory to complete operation 0Eh connection has broken Index: error codes;DECnet DOS CTERM|DECnet DOS CTERM;error codesTop
INT 69 - DECnet DOS CTERM - DECnet STATUS AX = 0104h DX = session handle Return: AX = reason code (see #03711) Note: use this call when AX=0103h returns a DECnet error SeeAlso: AX=0103hTop
INT 69 - DECnet DOS CTERM - OPEN SESSION AX = 0105h DS:BX -> ASCIZ node name ES:DX -> buffer for session control block (see #03727 at INT 6A/AH=D0h) Return: AX <= 0 on error AX > 0 session handle SeeAlso: AX=0103h,AX=0106h,AX=010AhTop
INT 69 - DECnet DOS CTERM - CLOSE SESSION AX = 0106h DX = session handle Return: AH = status 00h good close other error code (see #03711) SeeAlso: AX=0103h,AX=0105hTop
INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE AX = 010Ah Return: AX = length of session control block in bytes SeeAlso: AX=0105hTop
INT 69 - DECnet DOS CTERM - GET DECnet SOCKET AX = 010Bh DX = session handle Return: AX > 0 DECnet socket for the session AX = 0 no match for handleTop
INT 69 - DECnet DOS CTERM - DEINSTALL CTERM AX = 010Fh Return: AH = status 00h successful uninstall other error code (see #03711) Note: CTERM must have been the last TSR loaded in order to deinstall it SeeAlso: AX=0100h Index: uninstall;DECnet DOS CTERMTop
INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER AH = 0Ah AL = function number (see #03712) ES:BX -> Datalink Communication Block (see #03714) Return: AX = status (see #03713) SeeAlso: INT 6D"DECnet" (Table 03712) Values for DECnet DOS Data Link Layer function: 00h initialize 01h open portal 02h close portal 03h enable multicast address 04h disable multicast address 05h transmit 06h request transmit buffer 07h deallocate transmit buffer 08h read channel status 09h read datalink portal list 0Ah read information about a datalink portal 0Bh read and/or clear counters 0Ch request to boot from a network server 0Dh enable Ethernet channel 0Eh disable Ethernet channel 0Fh start MOP/send a System ID message 10h stop MOP 11h get DECPARM 12h set DECPARM 13h external loopback (Table 03713) Values for DECnet DOS Data Link Layer status: 00h successful 01h hardware failed to initialize 02h channel state was not off (must be off to execute that command) 03h channel state is off (must be on to execute that command) 04h address not set 05h hardware missing 06h buffer too small 07h no more buffers available 08h no more resources available 09h promiscuous receiver active 0Ah non exclusive 0Bh unrecognized portal 0Ch protocol type in use 0Dh not a valid Multicast address 0Eh outstanding calls 0Fh hardware doesn't support receiving bad frames 10h none outstanding 11h no events 12h broken 13h buffer quota exceeded 14h already initialized 15h loopback failure Index: error codes;DECnet DOS|DECnet DOS;error codes Format of Datalink Communication Block: Offset Size Description (Table 03714) 00h WORD portal ID 02h 6 BYTEs source address 08h 6 BYTEs destination address 0Eh DWORD buffer pointer 12h WORD buffer length 14h WORD operation 16h BYTE pad flag (used on open) 00h no pad 01h pad 17h BYTE mode flag (used on open) 00h 802.3 01h Ethernet 02h promiscuous 18h DWORD line status change function 1Ch DWORD received data function 20h DWORD transmitted data function 24h BYTE maximum outstanding transmits/receives 25h 2 BYTEs protocol type 27h WORD buffers lostTop
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AX = 4001h Return: CF clear AX = 0000h ES:SI -> ??? InstallCheck: test for the signature "SYSV" immediately before the interrupt handler Range: INT 60 to INT 7F, selected by configuration SeeAlso: AX=4002h Index: installation check;10NET SYSSVCTop
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AX = 4002h ??? Return: ??? InstallCheck: test for the signature "SYSV" immediately before the interrupt handler Range: INT 60 to INT 7F, selected by configurationTop
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AX = 4101h Return: CF clear ES:SI -> ??? Range: INT 60 to INT 7F, selected by configuration SeeAlso: AX=4102h,AX=4103h,AX=4104hTop
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AX = 4102h ??? Return: ???Top
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AX = 4103h ??? Return: ???Top
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AX = 4104h ??? Return: ???Top
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AH = 42h AL = function (01h-14h) ??? Return: ??? Range: INT 60 to INT 7F, selected by configurationTop
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AH = 43h AL = function (01h-05h) ??? Return: ???Top
INT 69 - 10NET v5.0 - SYSSVC.COM - ??? AH = 44h AL = function (01h-03h) ??? Return: ??? Range: INT 60 to INT 7F, selected by configurationTop
INT 69 - 10NET v5.0 - SYSSVC.COM - BUG AH = 49h Note: due to a fencepost error, this function branches to hyperspace SeeAlso: AX=4001h,AH=FFhTop
INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER AX = 6996h DS:DX -> interrupt handler or 0000h:0000h to disable Return: AX = 9669h Program: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits a program to provide hardware interrupt handlers even while being debugged with a debugger that swaps interrupt vectors during debugging. Note: the interrupt vector which is to be reflected is set at installation time and cannot be changedTop
INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR AH = FFh Return: never??? Desc: displays "System Error" message and register dump, then halts system InstallCheck: test for the signature "SYSV" immediately before the interrupt handler Range: INT 60 to INT 7F, selected by configuration SeeAlso: AX=4001h,AH=49hTop
INT 6A - OPTHELP.COM Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM assembler Range: INT 60h to INT 7Fh, selected by configurationTop
INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM - INSTALLATION CHECK InstallCheck: test for a signature area immediately preceding the interrupt handler (see #03715) SeeAlso: AH=01h/DH=FFh,INT 6B"DECnet",INT 6D"DECnet" Index: installation check;DECnet DOS Local Area Transport Format of DECnet DOS signature area: Offset Size Description (Table 03715) -5 BYTE major version number -4 BYTE minor version number -3 3 BYTEs signature (ASCII "LAT")Top
INT 6A C - HP Vectra AT - IRQ18 - RESERVED HARDWARE INTERRUPT SeeAlso: INT 0A"IRQ2",INT 69"HP Vectra",INT 6B"HP Vectra"Top
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
AX = 0000h
Return: AX = 4357h ('CW')
Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
Note: an alternate installation check is to test for the ASCIZ signature
"FTC Super-TCP" three bytes past the interrupt handler
SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 21/AH=3Fh"BW-TCP"
SeeAlso: INT 61"FTP Software",INT 62/AH=00h"ETHDEV"
Top
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ??? AX = 0001h BH = function number 01h ??? DS:SI -> ??? 24-byte record1 (see #03717) ES:DI -> buffer containing ??? 02h ??? DS:SI -> ??? 18-byte record2 (see #03718) ES:DI -> buffer containing ??? 04h ??? BL = subfunction 01h DS:SI -> ??? 28-byte record3 (see #03719) ES:DI -> buffer containing ??? 02h DS:SI -> ??? 28-byte record3 (see #03719) ES:DI -> buffer containing ??? 03h DS:SI -> ??? 28-byte record3 (see #03719) else Return: AX = 0005h 05h ??? DS:SI -> ??? 20-byte record4 (see #03720) ES:DI -> buffer containing ??? 06h ??? BL = subfunction 01h DS:SI -> ??? 40-byte record5 (see #03721) 02h DS:SI -> ??? 20-byte record6 (see #03722) ES:DI -> ??? 03h DS:SI -> ??? 20-byte record6 (see #03722) 04h DS:SI -> ??? 46-byte record7 (see #03723) else Return: AX = 0005h 11h ??? DS:SI -> ??? 28-byte record8 (see #03724) ES:DI -> ??? Return: AX = function status (see #03716) SeeAlso: AX=0000h (Table 03716) Values for Super-TCP function status: 0000h successful 0005h unsupported function 000Ah out of memory Format of record1: Offset Size Description (Table 03717) 00h 4 BYTEs ??? 04h WORD size of ES:DI buffer 06h 18 BYTEs ??? Format of record2: Offset Size Description (Table 03718) 00h 4 BYTEs ??? 04h WORD size of ES:DI buffer 06h 12 BYTEs ??? Format of record3: Offset Size Description (Table 03719) 00h 2 BYTEs ??? 02h WORD ??? 04h WORD size of ES:DI buffer 06h WORD ??? 08h WORD operation number (for function 0401h) 0Ah DWORD -> ??? 0Eh WORD (ret) ??? 10h 12 BYTEs ??? Format of record4: Offset Size Description (Table 03720) 00h 4 BYTEs ??? 04h WORD size of ES:DI buffer 06h 14 BYTEs ??? Format of record5: Offset Size Description (Table 03721) 00h BYTE operation??? (00h-07h) 01h BYTE ??? 02h WORD (ret) ??? 04h DWORD -> ??? 08h 4 BYTEs ??? 0Ch DWORD -> ??? or 0000h:0000h 10h 16 BYTEs ??? 20h DWORD ??? 24h 4 BYTEs ??? Format of record6: Offset Size Description (Table 03722) 00h 4 BYTEs ??? 04h WORD size of ES:DI buffer 06h 14 BYTEs ??? Format of record7: Offset Size Description (Table 03723) 00h WORD ??? 02h WORD ??? 04h WORD ??? 06h 40 BYTEs ??? Format of record8: Offset Size Description (Table 03724) 00h 4 BYTEs ??? 04h WORD size of ES:DI buffer 06h 6 BYTEs ??? 0Ch WORD (ret) ??? 0Eh WORD operation??? (01h-03h) 10h 12 BYTEs ???Top
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ??? AX = 0002h BX = ??? (zero/nonzero) CX = ??? identifier (see AX=0004h) DS:SI -> 40-byte buffer for ??? or 0000h:0000h ES:DI -> buffer for ??? or 0000h:0000h Return: AX = 0000h (successful) ??? BL = ??? BH = ??? CX = ??? DX = ???Top
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA AX = 0003h Return: CX:DX -> data area (see #03725) Format of Super-TCP data area: Offset Size Description (Table 03725) 00h 2 BYTEs ??? 02h DWORD original INT 6A vector 06h 2 BYTEs ??? 08h 96 BYTEs array of 16 6-byte ??? 68h WORD number of elements of above array in use 6Ah WORD ??? ???Top
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ??? AX = 0004h CX = size in ??? Return: AX = 0000h (successful) CX = DX = ??? SeeAlso: AX=0005h,AX=000FhTop
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ??? AX = 0005h CX = ??? identifier (from AX=0004h) Return: AX = status (0000h successful, FFFFh failed) SeeAlso: AX=0004h,AX=000FhTop
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ??? AX = 000Fh Return: AX = 0000h (successful) SeeAlso: AX=0000h,AX=0004h,AX=0005hTop
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL AX = 0010h Return: AX = status 0000h successful 0002h can't uninstall, interrupt vector hooked by another program Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp. Note: if AX is not one of the values listed here on entry, Super-TCP returns AX=FFFEh SeeAlso: AX=0000hTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE AH = 01h DH = FFh AL = character DL = handle Return: AH >= 80h on error SeeAlso: AH=02hTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE AH = 02h DH = FFh DL = handle Return: AH < 80h if successful AL = character AH >= 80h on error SeeAlso: AH=01hTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS AH = 03h DH = FFh DL = handle Return: AH = status flags (see #03726) Bitfields for DECnet DOS LAT status flags: Bit(s) Description (Table 03726) 5 transmit buffer empty 3 session in start state 2 session not active 1 unable to queue transmit data 0 receive data availableTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
AH = D0h
DH = FFh
AL = password flag
FFh no password
0Fh password at ES:DI
ES:BX -> LAT session control block (see #03727)
ES:DI -> 16-byte blank-padded password (optional)
Return: AH = 00h success
DL = handle
SeeAlso: AX=D000h
Format of LAT Session Control Block:
Offset Size Description (Table 03727)
00h 18 BYTEs service name
12h 18 BYTEs node name (future use)
24h 18 BYTEs port name (future use)
36h DWORD -> session stopped post routine
3Ah DWORD -> service table overflow post routine
3Eh DWORD -> transmit post routine
42h DWORD -> receive post routine
46h WORD session status
04h circuit failure
08h stop slot received
---LAT v???---
48h WORD slot state (LAT driver use)
4Ah WORD local credits (LAT driver use)
4Ch DWORD -> VCB (LAT driver use)
50h WORD backward slot (LAT driver use)
52h WORD forward slot (LAT driver use)
54h WORD remote slot ID (LAT driver use)
56h WORD local slot ID (LAT driver use)
58h WORD slot byte count (LAT driver use)
5Ah BYTE remote credits (LAT driver use)
5Bh 255 BYTEs transmitted data slot
15Ah BYTE number of receive data slots (4 recommended)
15Bh BYTE number of occupied slots
15Ch BYTE index of next receive slot to use
15Dh BYTE index of current receive slot
15Eh WORD pointer to first received character
160h N WORDs pointers to receive slots (buffers); each is 259 bytes
259N BYTEs buffers
Note: set post routines to 0000h:0000h if polled operation will be used
---LAT v4.1.17---
48h WORD session state (LAT driver use)
4Ah BYTE local credits (LAT driver use)
4Bh DWORD -> VCB (LAT driver use)
4Fh WORD backward slot (LAT driver use)
51h WORD forward slot (LAT driver use)
53h BYTE remote slot ID (LAT driver use)
54h BYTE local slot ID (LAT driver use)
55h BYTE slot byte count (LAT driver use)
56h BYTE remote credits (LAT driver use)
57h 255 BYTEs transmitted data slot
156h BYTE number of receive data slots (4 recommended)
157h BYTE number of occupied slots
158h BYTE index of next receive slot to use
159h BYTE index of current receive slot
15Ah WORD pointer to first received character
15Ch N WORDs pointers to receive slots (buffers); each is 259 bytes
259N BYTEs buffers
Note: set post routines to 0000h:0000h if polled operation will be used
Top
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION AX = D000h DH = FFh DL = handle Return: AX = status (see #03728) SeeAlso: AH=D0h (Table 03728) Values for DECnet DOS LAT function status: 0000h successful 0001h no such session 0002h session not running, try again laterTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK AX = D100h DH = FFh DL = handle Return: AX = 0000h if successful AH bit 7 set if unable to send breakTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS AX = D300h DH = FFh SeeAlso: AX=D400hTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS AX = D400h DH = FFh CX = buffer size ES:BX -> buffer for LAT counters Return: AX = status 0000h counters copied into buffer FFFFh buffer too small SeeAlso: AX=D300hTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME AX = D500h DH = FFh ES:BX -> 17-byte buffer for name Return: AH = 00h if successful ES:BX buffer filled AX = FFFFh if end of table or no name available Notes: use this function to get the names of the hosts on the network successive calls are necessary to get all names SeeAlso: AX=D600h/DH=FFhTop
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET AX = D600h DH = FFh Return: AX = number of service table entries BX = status 0000h service table has not overflowed FFFFh service table has overflowed SeeAlso: AX=D500hTop
Top
INT 6B - DECnet DOS - PORT DRIVER InstallCheck: test for a signature area (see #03729) immediately preceding the interrupt handler SeeAlso: INT 6A"DECnet",INT 6C"DECnet" Index: installation check;DECnet DOS Port Driver Format of DECnet DOS signature area: Offset Size Description (Table 03729) -5 BYTE major version number -4 BYTE minor version number -3 3 BYTEs signature (ASCII "PDV")Top
INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"Top
INT 6B C - HP Vectra AT - IRQ19 - RESERVED HARDWARE INTERRUPT SeeAlso: INT 0B"IRQ3",INT 6A"HP Vectra",INT 6C"HP Vectra"Top
INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE AX = 0000h CX = length ES:BX -> buffer Return: CX = number of bytes written Program: NASI is Novell's NetWare Asynchronous Services Interface (purchased from Network Products Corp, who call it NCSI) which runs on workstations; NACS is the NetWare Asynchronous Communications Services module which runs on servers InstallCheck: test for the signature string "NCSI" three bytes past the interrupt handler; see also AH=02h. As of version 3.0, Novell's NASI can be distinguished from NPC's NCSI by the presence of an 'A' immediately following the signature Notes: this function is also supported by TelAPI, NPC NCSI, and Connection Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a connection ID Connection Manager returns CF set/AL=FFh if called while an INT 6B call is already in progress SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3hTop
INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ AX = 0100h CX = length of buffer ES:BX -> buffer Return: CX = number of bytes read Note: also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in AL specify a connection ID SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02hTop
INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK AH = 02h AL nonzero Return: AL = 00h if present and OK Note: this function is also supported by TelAPI and NPC NCSI SeeAlso: AX=0700hTop
INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL AX = 0600h CX = command 02h send break 04h disconnect 06h hold Return: CF clear if successful AL = 00h CF set on error AX < 0 Note: this function is also supported by TelAPI and NPC NCSITop
INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS AX = 0700h Return: CH <> 00h if connection active Notes: this function is also supported by TelAPI and NPC NCSI Novell TelAPI returns CX=FF01h and CF clear SeeAlso: AH=02h,AH=10hTop
INT 6B - TelAPI - CHECK FOR BREAK SIGNAL AH = 08h AL = circuit number Return: CF clear if no breaks AL = 00h CX = 0000h CF set if one or more breaks received Note: this function also clears ??? flag SeeAlso: INT 14/AX=FF00hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS AH = 10h AL = connection ID (Novell TELAPI.EXE) CX = ??? ES:BX -> buffer for status (see #03730) Return: CF clear if successful CL = ??? CH = ??? CF set on error ??? Notes: this function is also supported by TelAPI when shelled out to an external protocol from Novell NASI, the circuit whose status indicates that it is connected is the currently active circuit SeeAlso: AX=0700h,AH=12h,AH=1Fh Format of NASI status: Offset Size Description (Table 03730) 00h BYTE number of allocated virtual circuits 01h BYTE reserved 02h 9 BYTEs states of emulated circuits 0-8 00h idle 01h attached Telnet session, in command state 02h attached Telnet session, connected with host 03h-06h ??? (not returned by TelAPI) Note: this description is derived from the Novell TelAPI emulation of NASITop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT AH = 11h DX = 0001h AL = 00h ES:BX -> service name string (8 characters, blank-padded) Return: CF clear if successful AL = virtual circuit number allocated (01h for Novell TELAPI.EXE) CL = ??? (01h for Novell TELAPI.EXE) CH = ??? (01h for Novell TELAPI.EXE) CF set on error ??? Note: this function is also supported by TelAPI SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS AH = 12h AL = virtual circuit number (0-8) Return: CF clear if successful AL = virtual circuit number CL = virtual circuit's state 00h idle 01h Telnet session, in command state 02h Telnet session, connected to host 03h-06h ??? (not returned by TelAPI) CF set on error AL = error code E2h invalid virtual circuit number E4h specified virtual circuit not allocated Note: this function is also supported by TelAPI SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1FhTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME AH = 13h AL = virtual circuit number CL = direction (00h get, nonzero set) ES:BX -> buffer for/containing service name Return: ??? Note: this function is also supported by TelAPI SeeAlso: AH=14h,AH=15hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS AH = 14h AL = virtual circuit number ES:BX -> buffer for/containing service address Return: ??? Note: this function is also supported by TelAPI, which only supports retrieving the address SeeAlso: AH=13h,AH=15h,AH=21hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG AH = 15h AL = virtual circuit number CL = direction (00h get, nonzero set) ES:BX -> buffer for/containing virtual circuit config (see #03731) Return: ES:BX buffer filled Note: this function is also supported by TelAPI SeeAlso: AH=13h"NCSI",AH=14h"NCSI" Format of virtual circuit configuration: Offset Size Description (Table 03731) 00h WORD buffer length 02h WORD port ID 04h WORD receive rate 06h WORD receive word length 08h WORD receive stop bits 0Ah WORD receive parity 0Ch WORD transmit rate 0Eh WORD transmit word length 10h WORD transmit stop bits 12h WORD transmit parity 14h WORD DTR 16h WORD RTSTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT AH = 16h AL = virtual circuit number CL = ??? switch (00h, ???) Return: CF clear if successful AL = virtual circuit number CF set on error ??? Note: this function is also supported by TelAPI, which always returns CF clear and AL=00h SeeAlso: AH=11h,AH=12h,AH=17hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT AH = 17h AL = virtual circuit number Return: CF clear if successful CF set on error ??? Note: this function is also supported by TelAPI, which always returns CF clear and AL=00h SeeAlso: AH=11h,AH=16hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT AH = 18h AL = virtual circuit number CX = number of characters to send ES:BX -> buffer containing characters to be sent Return: CF clear if successful CF set on error ??? Note: this function is also supported by TelAPI, which always returns CF clear and AL=30h SeeAlso: AX=0000h,AH=12h,AH=19hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT AH = 19h AL = virtual circuit number CX = number of characters to read ES:BX -> buffer for received characters Return: CX = 0000h if failed CX = nonzero (possibly number of characters received) if successful Note: this function is also supported by TelAPI SeeAlso: AX=0100h,AH=12h,AH=18hTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS AH = 1Ah ??? Return: ??? SeeAlso: AH=12h,AH=1BhTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS AH = 1Bh ??? Return: ??? SeeAlso: AH=12h,AH=1AhTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER AH = 1Ch AL = circuit number Return: nothing SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"Top
INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL AH = 1Dh ??? Return: ??? SeeAlso: AH=1Ch,AH=1EhTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST AH = 1Eh ??? Return: ??? SeeAlso: AH=1Ch,AH=1DhTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS AH = 1Fh ??? Return: ??? SeeAlso: AH=10h,AH=12hTop
INT 6B - Connection Manager CLIENT.EXE - ??? AH = 20h ??? Return: ??? Program: Connection Manager by Softwarehouse Corp. permits the sharing of serial ports over an IPX or NetBIOS-based network Note: CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entryTop
INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE AH = 21h AL = virtual circuit number CL = ??? (00h or 01h) ES:BX -> buffer for service name structure (see #03732) Return: CF clear if successful ES:BX buffer filled CF set on error Notes: a program should call this function after allocating a virtual circuit and check that the general name matches the requested service prior to version 3.0, Novell's NASI returned the first available port; v3.0+ returns the first port found--check the returned status to determine whether the port is available SeeAlso: AH=14h"NCSI" Format of NCSI service name structure: Offset Size Description (Table 03732) 00h WORD buffer length 02h 8 BYTEs service name 0Ah 8 BYTEs general name 12h 8 BYTEs specific name 1Ah 4 BYTEs ??? ---Novell NASI v3.0+ --- 1Eh BYTE port number 1Fh BYTE port status 00h idle (available) 01h allocated (available) 02h connected 03h on holdTop
INT 6B - Tandy SCHOOLMATE PLUS - API AH = 6Bh AL = E0h to FFh Note: details not yet availableTop
INT 6C - system resume vector (CONVERTIBLE)Top
INT 6C - DOS 3.2 Realtime Clock updateTop
INT 6C - DECnet DOS network scheduler InstallCheck: test for a signature area immediately preceding the interrupt handler (see #03733) Note: this function is also supported by DEC Pathworks for DOS SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet" Index: installation check;DECnet DOS scheduler Format of DECnet DOS signature area: Offset Size Description (Table 03733) -5 BYTE major version number -4 BYTE minor version number -3 3 BYTEs signature (ASCII "SCH")Top
INT 6C C - HP Vectra AT - IRQ20 - HP-HIL CONTROLLER INTERRUPT SeeAlso: INT 0C"IRQ4",INT 6B"HP Vectra",INT 6D"HP Vectra"Top
INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT Desc: points at the original INT 10 entry point set up by the VGA BIOS Notes: used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others the Diamond Stealth64 BIOS uses this vector to store the INT 42 vector of the inactive video (see INT 10/AH=12h/BL=35h) SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 10/AH=12h/BL=10hTop
INT 6D - Trident SVGA - VIDEO BIOS HANDLER Note: the BIOS INT 10 handler on various Trident VGA cards consists merely of a call to INT 6D followed by an IRET.Top
INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM AH = function ??? Return: ??? InstallCheck: test for a signature area immediately preceding the interrupt handler (see #03734) SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet" Index: installation check;DECnet DOS Data Link Layer Format of DECnet DOS signature area: Offset Size Description (Table 03734) -5 BYTE major version number -4 BYTE minor version number -3 3 BYTEs signature (ASCII "DLL")Top
INT 6D C - HP Vectra AT - IRQ21 - RESERVED HARDWARE INTERRUPT SeeAlso: INT 0D"IRQ5",INT 6C"HP Vectra",INT 6E"HP Vectra"Top
INT 6D U - Matrox Multiple Monitor Support v1.0 - ??? AX = BD60h DS:SI -> buffer containing ??? (see #03735) ??? Return: AX = 00BDh if function executed ???:SI -> 22-byte buffer (inside TSR) filled with ??? (see #03735) AX unchanged if function disabled Note: this function is a NOP if AX=BD6Fh/BL=01h was called SeeAlso: AX=BD61h,AX=BD6Fh,AX=BDFFh Format of Matrox ??? buffer: Offset Size Description (Table 03735) 00h 4 BYTEs ??? 04h WORD video mode width in pixels 06h WORD video mode height in pixels 08h BYTE ??? 09h BYTE ??? 0Ah BYTE ??? 0Bh BYTE flags bit 1: ??? bit 4: ??? (corresponds to bit 14 for AX=BD61h) bit 5: ??? (corresponds to bit 15 for AX=BD61h) 0Ch DWORD -> ??? buffer 10h WORD ??? bit 4: ??? (corresponds to bit 14 for AX=BD61h) bit 5: ??? (corresponds to bit 15 for AX=BD61h) 12h 4 BYTEs ??? SeeAlso: #03736Top
INT 6D U - Matrox Multiple Monitor Support v1.0 - GET VIDEO MODE INFORMATION AX = BD61h BX = width in pixels (bits 13-0) bit 14: ??? bit 15: ??? CX = height in pixels Return: AL = BDh if function supported AH = status 00h successful 01h failed (resolution/flags not supported) CX:BX -> video mode data structure (see #03736) (first word is FFFFh if unsupported resolution) EAX high word cleared SeeAlso: AX=BD60h,AX=BD6Fh,AX=BDFFh Format of Matrox video mode information (VCE structure): Offset Size Description (Table 03736) 00h WORD width in pixels 02h WORD height in pixels 04h WORD ??? 06h DWORD dot clock frequency 0Ah 25 BYTEs ??? SeeAlso: #03735Top
INT 6D U - Matrox Multiple Monitor Support v1.0 - INSTALLATION CHECK AX = BD6Fh BL = subfunction 00h installation check 01h disable TSR 02h enable TSR (see AX=BD60h) Return: AX = 00BDh if installed SeeAlso: AX=BD60h,AX=BD61h,AX=BDFFhTop
INT 6D U - Matrox Multiple Monitor Support v1.0 - UNHOOK INTERRUPT (UNINSTALL) AX = BDFFh Return: AX = 00BDh if supported Note: this function revectors INT 6D without checking that it points at the TSR, and does not release the memory occupied by the TSR SeeAlso: AX=BD60h,AX=BD61h,AX=BD6FhTop
INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
InstallCheck: test for the signature/data area (see #03737) immediately prior
to the interrupt handler
Note: this is the main DECnet DOS access, and is described in Digital manual
AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
Index: installation check;DECnet DOS
Format of DECnet DOS signature area:
Offset Size Description (Table 03737)
-5 BYTE major version number
-4 BYTE minor version number
-3 3 BYTEs signature (ASCII "DNP")
Top
INT 6E C - HP Vectra AT - IRQ22 - RESERVED HARDWARE INTERRUPT SeeAlso: INT 0E"IRQ6",INT 6D"HP Vectra",INT 6F/AH=00h"HP Vectra"Top
INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface) AX = function 0000h enter terminal mode Return: AX = status 0000h no action requested 0001h screen save 0001h reset interface and set configuration parameters DX = bitfields bits 2-0: model number bits 4-3: I/O address bits 6-5: DMA channel Return: nothing 0002h set display parameters DX = bitfields bits 1-0: OIA mode bits 4-2: monitor support Return: nothing 0003h read status Return: AX = status word (see #03738) 0004h read cursor position Return: AX = cursor position 0005h get character from device buffer DX = cursor position Return: AH = type (00h data, 01h attribute) AL = data or attribute character 0006h send character DH = type (00h ASCII, 01h extended code) DL = ASCII character or extended code Return: nothing 0007h set timeout DX = timeout in seconds Return: nothing 0008h wait for location to be modified DX = cursor position Return: AX = status (0000h modified, nonzero timeout) 0009h NOP 000Ah restore display Return: nothing 000Bh update device buffer Return: AX = cursor positoin 000Ch write string to add information area DS:DX -> string Return: nothing 000Dh maintenance operations DX = maintenance operation code Return: AX = operation status 000Eh get control program version Return: AH = release number (major version) AL = level number (minor version) 000Fh get microcode version Return: AH = release number (major version) AL = level number (minor version) 0010h save or display graphics BX = length of data buffer CX = subfunction request code DS:DX -> data buffer Return: AX = return code CX = length of PIF data 0011h perform structured field operation CX = request number DS:DX -> parameter list Return: AX = status word (see #03738) CX = error number 0012h set cursor position for direct write buffer DX = new cursor position Return: AX = status word (see #03738) 0013h write direct to buffer DL = character to be written DH = translation option Return: AX = status word (see #03738) 0014h write direct to buffer without echo DL = character to be written DH = translation option Return: AX = status word (see #03738) 0015h set direct write string length DX = string value Return: nothing 0016h write string direct to buffer DS:DX -> string Return: AX = status word (see #03738) 0017h write string direct to buffer, untranslated DS:DX -> string Return: AX = status word (see #03738) 0018h get direct-write cursor position Return: AX = cursor position 0019h convert row/column to cursor position DH = display row (1-43) DL = display column (1-132) Return: AX = cursor position 001Ah convert cursor position to row/column DX = cursor position Return: AH = display row AL = display column 001Bh find next field DX = initial cursor position Return: AX = field cursor position 001Ch find previous field DX = initial cursor position Return: AX = field cursor position 001Dh find next unprotected field DX = initial cursor position Return: AX = field cursor position 001Eh find previous unprotected field DX = initial cursor position Return: AX = field cursor position 001Fh find next protected field DX = initial cursor position Return: AX = field cursor position 0020h find previous protected field DX = initial cursor position Return: AX = field cursor position 0021h masked search forward DH = mask DL = search pattern Return: AX = cursor position or 0000h 0022h masked search backward DH = mask DL = search pattern Return: AX = cursor position or 0FFFh 0023h find field length DX = cursor position Return: AX = field length 0024h read field DS:DX -> buffer for field contents Return: AX = status word (see #03738) 0025h read screen DS:DX -> buffer for screen contents Return: AX = status word (see #03738) 0026h read buffer untranslated DX = cursor position Return: AX = buffer code CX:BX -> 3278/79 device buffer image 0027h enable/disable keyboard DL = new state of keyboard breaks (00h enabled, 01h disabled) Return: nothing 0028h select host session DL = session short name Return: AX = session information 0029h retrieve host session name AX = short name (DFT) or 0000h (not available, CUT mode) 002Ah get current device buffer size Return: AX = device buffer size CX = segment of EAB 002Bh arm modified location trigger DX = cursor position Return: AX = status (0000h not available, 0001h successful) Bitfields for PCOX status word: Bit(s) Description (Table 03738) 0,1 cursor type 2 cursor inhibited 3 display inhibited 4 feature step inhibited 5 480-character format code 6,7 unused 8-10 model number (2-5) 11 unit has been reset by controller (cleared after status returned) 12 buffer has been written into (cleared after status returned) 13 alarm has been sounded (cleared after status returned) 14-15 monitor type (01 mono, 10 color, 11 hybrid)Top
INT 6F - 10NET - LOGIN AH = 00h DS:DX -> login record (see #03739) Return: CL = security level AX = status (see #03740) SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR" Format of 10NET login record: Offset Size Description (Table 03739) 00h 8 BYTEs user name 08h 8 BYTEs password 10h 12 BYTEs name of SuperStation (Table 03740) Values for 10NET status: 0000h successful 01FFh "RTO_NERR" transmit interrupt lost (time out on response) 02FFh "NET_NERR" network (hardware) error 03FFh "PAS_NERR" invalid password 04FFh "LRN_NERR" local resource not available 05FFh "SRN_NERR" server resource not available 06FFh "LNM_NERR" already logged in under different name 07FFh "LSF_NERR" login security failure (node) 08FFh "NLI_NERR" not logged in 09FFh "DIVZ_NERR" position calc error 0AFFh "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write) 0BFFh "RFNC_NERR" request function not in range 0CFFh "NSFH_NERR" no more server file handle entries left 0DFFh "NFTAB_NERR" no more shared file table entries left 0EFFh "NUFH_NERR" no more user file handle entries left 0FFFh "CHAT_NERR" chat permit not on 10FFh "NSRV_NERR" not a server on request 11FFh "NOBD_NERR" no transporter board error 12FFh "STO_NERR" time out on send 13FFh "INF_NERR" item not found (spool item not on queue) 14FFh "DACS_NERR" DOS access incompatible 15FFh "RLOCK_NERR" record already locked 16FFh "IVP_NERR" invalid parameter 17FFh "RLTO_NERR" record lock time out error 18FFh "CSPL_NERR" currently spooling to named device 19FFh "DRP_NERR" dropped receive message (throttle) 1AFFh "SOPV_NERR" open sharing violation 1BFFh "NTUF_NERR" no more tuf entries left 1CFFh "NOWN_NERR" not file owner on open 1DFFh "RSEC_NERR" read security not passed 1EFFh "WSEC_NERR" write security not passed 1FFFh "GSEC_NERR" group security not passed 20FFh "SEC1_NERR" security file failure 21FFh "ACT1_NERR" activity file failure 22FFh "SPL1_NERR" spool control file failure 23FFh "NMT_NERR" device not mounted (spooling) 24FFh "RSPL_NERR" spool file has not been terminated 25FFh "DNSH_NERR" device not mounted or is not being shared 26FFh "DUP_NERR" duplicate node ID 27FFh "FNF_NERR" file not found error 28FFh "NMF_NERR" no more files 29FFh "UN_NERR" unknown internal system error 2AFFh "QCP_NERR" print queue is full or corrupted 2BFFh "IFNC_NERR" invalid function 2CFFh "IVH_NERR" invalid handle 2DFFh "TOF_NERR" too many files opened 2EFFh "PNF_NERR" path not found 2FFFh "SACT_NERR" named file is active ---10NET v5.0+ --- 30FFh "NAK_NERR" received NAK on send (destination out of buffers) 31FFh "RENT_NERR" reentrancy in driver F_SEND 32FFh "RECV_NERR" driver could not be put in receive mode 33FFh "NRLT_NERR" no more RLTAB entries left 34FFh "DIAL_NERR" function requires an unsupported dialect 35FFh "IVD_NERR" invalid device 36FFh "NALV_NERR" netname access level violated 37FFh "NPIDNF_NERR" network path not found 38FFh "SP_NERR" server is paused 39FFh "TMNM_NERR" too many remote user names 3AFFh "DUPD_NERR" duplicate network device 3BFFh "DIU_NERR" shared device in use, can't delete 3CFFh "NNWD_NERR" network name was deleted 3DFFh "NPFS_NERR" not enough space for print file 3EFFh "NNNF_NERR" network name not found (can't find the call name) 3FFFh "NB_NERR" network busy 40FFh "NDNLE_NERR" network device no longer exists 41FFh "NBCLE_NERR" NetBIOS command limit exceeded 42FFh "FINT24_NERR" Fail on INT 24h 43FFh "PEXP_NERR" password expired 44FFh "NPUP_NERR" new password error 45FFh "MAXS_NERR" maximum allowed disk space exceeded 46FFh "TDOW_NERR" time-of-day/day-of-week error SeeAlso: #03767 Index: error codes;10Net|10Net;error codesTop
INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR AH = 00h BP = ID for driver (see #03741) DH = data type (see #03742) DL = physical device driver's index (driver ID / 6) BX,CX = data ES:0000h -> physical device's Describe Record (see #03749) ---keypress event data--- BH = keyboard state (only if bit 5 of DH set) (see #03743) BL = scancode (if bit 4 of DH clear) CX = number of scancodes in list (if bit 4 of DH set) ES:SI -> scancode list (if bit 4 of DH set) ---motion event data--- BX = new X position (abs device) or X increment (relative device) CX = new Y position (abs device) or Y increment (relative device) ---button event data BL = button information bits 15-8 reserved bit 7: button state (0 = down, 1 = up) bits 6-0: button number (0-7) BH = reserved Return: AH = status (see #03744) BP,DS destroyed ---if device is keyboard translator--- BL = translated scancode BH = new keyboard state (if DH bit 5 set) (see #03743) DH = new scancode type (see #03742) Notes: INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is unavailable because of its use as a BIOS extension software interrupt the INT 6F handler consists of an instruction to load DS with the driver's data segment followed by an indexed far jump using BP to select the destination vector; since the interrupt handler is located immediately following the dispatch table, the HP_VECTOR_TABLE may be found by looking at offset 0000h in the INT 6F segment, and its size is equal to the offset of the interrupt handler each entry in the HP_VECTOR table consists of a DWORD for the driver's entry point address and a WORD for the driver's data segment this function is not user-callable, as it is a response to a physical event, and assumes that the caller has already handled the physical interrupt and updated the Describe Record (see #03749) to reflect the event SeeAlso: INT 6C"HP Vectra",INT 6F/AX=0200h"HP Vectra" (Table 03741) Values for HP Vectra EX-BIOS driver ID: 0000h V_SCOPY (null driver, but DS value points at system copyright string) 0006h V_DOLITTLE (null driver) 000Ch V_PNULL (null driver) 0012h V_SYSTEM 0018h reserved 001Eh V_S8259 0024h reserved 002Ah V_SINPUT 0030h reserved 0036h V_QWERTY (keyboard translator) 003Ch V_SOFTKEY (keyboard translator) 0042h V_FUNCTION (keyboard translator) 0048h V_NUMPAD (keyboard translator) 004Eh V_CCP (keyboard translator) 0054h V_SVIDEO 005Ah V_STRACK 0060h V_EVENT_TOUCH 0066h V_EVENT_TABLET 006Ch V_EVENT_POINTER 0072h reserved 0078h reserved 007Eh reserved 0084h reserved 008Ah V_CCPCUR (keyboard translator) 0090h V_RAW (keyboard translator) 0096h V_CCPNUM (keyboard translator) 009Ch V_OFF (keyboard translator) 00A2h V_CCPGID (translator: cursor control pad keys to GID data) 00A8h V_SKEY2FKEY (keyboard translator) 00AEh V_8041 00B4h V_PGID_CCP 00BAh C_LTABLET 00C0h V_LPOINTER (pointing device: mouse, etc.) 00C6h V_LTOUCH (touch screen) 00CCh V_LHPMOUSE 00D2h ??? ... 0102h ??? 0108h V_LNULL 010Eh reserved 0114h V_HPHIL 011Ah-01C2h reserved 016Eh V_SCANDOOR (scancode management chip driver) (ES/QS/RS only) 01C8h-0228h available (Table 03742) Values for HP Vectra EX-BIOS ISR data type: 00h reserved "T_KC_R0" 01h reserved "T_KC_R1" 02h ASCII data 03h reserved "T_KC_R3" 04h HP150 keyboard (ITF) scancode 05h reserved "T_KC_R5" 06h device-definable type 07h HP Vectra keyboard set 08h IBM AT scancode set 09h button data 0Ah IBM PC scancode set 0Bh Softkey keypad (F1-F8) 0Ch function key keypad (F1-F10) 0Dh HP Cursor Control Pad keypad 0Eh Qwerty keypad 0Fh Numeric keypad 1xh bit 4 set: string of CX scancode of type 0xh at ES:SI 2xh bit 5 set: BH contains current keyboard state 40h signed 8-bit relative data 41h signed 16-bit relative data 42h unsigned 8-bit absolute data 43h unsigned 16-bit absolute data 45h specially-formed data (80x25) generated by V_LTOUCH 46h specially-formed data (640x200) generated by V_LTABLET 47h specially-formed data (640x200) generated by V_LPOINTER Bitfields for HP Vectra EX-BIOS keyboard state: Bit(s) Description (Table 03743) 0 Alt pressed 1 Left Shift pressed 2 Right Shift pressed 3 Ctrl pressed 4 CapsLock active 5 NumLock active 6 Right unlabeled key pressed (some international keyboards) 7 Left unlabeled key pressed (some international keyboards) SeeAlso: #00582 (Table 03744) Values for HP Vectra EX-BIOS status: 00h successful 02h unsupported function 04h not serviced 06h done (no further processing should be performed on the ISR event) F2h device is out of paper F4h device is offline F6h no more space for more drivers F8h driver is busy FAh bad parameter FEh operation failed Note: status codes are always even; negative values (>= 80h) indicate errors while positive values indicate exceptional conditions Format of HP EX-BIOS driver header data: Offset Size Description (Table 03745) 00h WORD driver attributes (see #03746) 02h WORD string index of driver's name 04h WORD driver's default logical device vector (see #03741) 06h WORD driver's parent class (bitset) (see #03747) 08h WORD driver's child class (bitset) 0Ah WORD driver's parent vector 0Ch WORD driver's child vector 0Eh BYTE major subaddress 0Fh BYTE minor subaddress Notes: this structure is located at offset 0 in the driver's data segment, which in turn may be read from the HP_VECTOR_TABLE (refer to note in main entry) only the first WORD is required, and everything from offset 6 onward is only required if the device wishes to perform device mapping SeeAlso: #03748,#03749 Bitfields for HP EX-BIOS driver header attributes: Bit(s) Description (Table 03746) 15 this is a complete driver header 14 "ATR_DEVCFG" reserved 13 driver can be mapped with the parent vector at offset 0Ah 12 driver can be mapped with the child vector at offset 0Ch 11-9 driver type 000 reserved vector 001 free vector 010 EX-BIOS service 011 logical driver (mapped from parent to child) 100 mappable driver (cannot be last in driver chain) 101 mappable driver that is last in driver chain 110 input driver (mappable) 111 reserved 8 "ATR_STRING" reserved 7 call SF_START whenever driver is remapped 6-5 addressing requirements 00 no subaddresses required 01 requires major address be stored at offset 0Eh 10 requires minor address be stored at offset 0Fh 11 required major,minor, and mid addresses (minor in low nybble of offset 0Fh, mid address in high nybble of 0Fh) 4 driver can be shared between several parent drivers 3 driver can be shared between several child drivers 2 this driver header is in ROM 1 "ATR_YIELD" reserved 0 reserved SeeAlso: #03745,#03747 Bitfields for HP EX-BIOS driver class: Bit(s) Description (Table 03747) 15 maps F1 to F8 softkeys 14 keyboard 13 cursor pad 12 console device 11 serial output device (may be capable of limited input) 10 "CL_COMM" reserved 9 interfaces multiple resources transparent to operating system 8 serial output device filter (can be mapped between logical and physical driver to perform translations) 7 addressed block device 6 priority boot device 5 logical graphics input device 4 physical graphics input device (can map to child of another driver) 3 "CL_GID" can map to an event 2 physical touch device 1 reserved 0 class extension bit Note: special values: FFFFh maps to all other devices (V_PNULL), and 0000h maps to no other driver SeeAlso: #03745 Format of HP EX-BIOS global data area: Offset Size Description (Table 03748) 00h 20 BYTEs reserved 14h BYTE sound driver status 15h BYTE number of pending key clicks (max 4) (see AH=34h/BP=0012h) 16h BYTE current tick duration scaling factor 17h BYTE current key click volume 18h WORD current beep period (10 us increments) (see AH=3Ch/BP=0012h) 1Ah WORD current beep duration (10 us increments) 1Ch BYTE number of pending beep functions (max 4) (see AH=3Ah/BP=0012h) 1Dh BYTE reserved 1Eh WORD next unused string index number 20h ... reserved SeeAlso: #03745 Format of HP EX-BIOS Driver Describe Record: Offset Size Description (Table 03749) 00h 16 BYTEs EX-BIOS driver header data (see #03745) 10h BYTE device GID type bits 7-4: device type bits 3-0: physical device link address 11h BYTE physical device ID (see #03751) 12h WORD logical device status bits (see #03750) 14h BYTE physical device vector number (driver ID / 6) 15h BYTE maximum number of axes reported (0-2) 16h BYTE device class bits 7-4: current class bits 3-0: default class 17h BYTE number of buttons/prompts bits 7-4: number of prompts bits 3-0: number of buttons 18h BYTE reserved 19h BYTE (physical devices only) maximum output burst length 1Ah BYTE (physical devices only) number of write registers 1Bh BYTE (physical devices only) number of read registers 1Ch BYTE button transition flags (bit 0 = button0, etc.) 1Dh BYTE current button states (bit 0 = button0, etc.) 1Eh WORD device resolution 20h WORD maximum x-axis count 22h WORD maximum y-axis count 24h WORD X position data for absolute devices 26h WORD Y position data for absolute devices 28h WORD X delta for relative devices 2Ah WORD Y delta for relative devices 2Ch WORD (logical devices only) X-axis scaling accumulator (fraction of one logical unit) 2Eh WORD (logical devices only) Y-axis scaling accumulator (fraction of one logical unit) Bitfields for HP logical device status flags: Bit(s) Description (Table 03750) 15-5 reserved 4 event enabled 3 tracking enabled 2 clipping enabled 1 button error occurred 0 interrupt in progress SeeAlso: #03749 (Table 03751) Values for HP-HIL device ID: 00h-02h reserved 03h Swiss-French keyboard 04h-06h reserved 07h Canadian-English keyboard 08h-0Ah reserved 0Bh Italian keyboard 0Ch reserved 0Dh Dutch keyboard 0Eh Swedish keyboard 0Fh German keyboard 10h-12h reserved 13h Spanish keyboard 14h reserved 15h Belgian (Flemish) keyboard 16h Finnish keyboard 17h UK keyboard 18h French-Canadian keyboard 19h Swiss-German keyboard 1Ah Nerwegian keyboard 1Bh Frensh keyboard 1Ch Danish keyboard 1Dh Katakana keyboard 1Eh Latin American-Spanish keyboard 1Fh US-American keyboard 20h-2Bh reserved 2Ch-2Fh tone generator 30h-3Fh reserved 40h-5Bh reserved (character entry) 5Ch-5Fh barcode reader 60h-67h reserved (relative positions) 68h-6Bh mouse 6Ch-6Fh trackball 70h-7Fh reserved (relative positions) 80h-87h reserved (absolute positions) 88h-8Bh touchpad 8Ch-8Fh touch screen 90h-97h graphics tablet 98h-9Fh reserved (absolute positions) A0h-BFh compressed keyboard (91-93 keys) C0h-DFh extended keyboard (107-109 keys) E0h-FFh standard keyboard (85-87 keys)Top
INT 6F - 10NET - LOGOFF AH = 01h DS:DX -> superstation ID or nulls (12 bytes) Return: CX = number of files closed AX = status (see also #03740) 08FFh superstation ID not already logged in SeeAlso: AH=00h"10NET",AH=81hTop
INT 6F - 10NET - STATUS OF NODE AH = 02h DS:DX -> 512-byte status record (see #03753) Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: INT 21/AX=5E01h"10NET" (Table 03752) Values for 10NET station type: 00h workstation 01h superstation 02h gateway station 03h gateway active 04h logged into multiple superstations 05h reserved Format of 10NET node status record: Offset Size Description (Table 03753) 00h 8 BYTEs user name (0 if none) 08h BYTE station type (see #03752) 09h 24 BYTEs list of superstations logged into more than one superstation 21h 12 BYTEs node ID 2Dh WORD message count for this station (send for user node, receive for superstations) ---for superstations only--- 2Fh WORD drives allocated (bit 0=A:, bit 1=B:,...) 31h BYTE user service flags (see #03754) 32h BYTE printers allocated (bit 0=LPT1,...) 33h BYTE number of unprinted spool files 34h BYTE number of opened files 35h BYTE number of logged on nodes 36h BYTE primary drive (1=A:) 37h BYTE reserved 38h N BYTEs list of logged on node IDs (each 12 bytes, max 37 IDs) 1F4h 3 BYTEs time: sec/min/hrs 1F7h 3 BYTEs date: day/mon/year-1980 Bitfields for 10NET user service flags: Bit(s) Description (Table 03754) 7 gate 6 print permit on 4 SUBMIT is on 3 mail waiting for node 2 calendar waiting for you 1 news waiting for you 0 mail waiting for youTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER AX = 0200h BP = driver ID (see #03741) BX = "last-used DS" value from HP global data area (see #03748) Return: AH = status (see #03744) BX = new "last-used DS" value BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0202h,AH=0Ch"F_INS_FIXOWNDS"Top
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ. AX = 0202h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra"Top
INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK AX = 0204h Return: AX = status 0000h switch is allowed other switch not allowed Note: intercepting this call will allow a DOS application to ensure that Windows will not switch away from it.Top
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE AX = 0204h BP = driver ID (see #03741) Return: AH = status (see #03744) DX = device state from Logical Describe Record (see #03749,#03755) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0206h"HP Vectra" Bitfields for HP Vectra V_HPHIL driver state: Bit(s) Description (Table 03755) 0 link configuration in progress 1 reserved 2 no devices attached 3 general failure 4,5 reserved 6 HP-HIL driver open 7 reserved 8 link has been reconfigured 9 error during output request 10 reserved 11 output request complete 12 timeout 13-15 reservedTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION AX = 0206h BP = driver ID (see #03741) Return: AH = status (see #03744) BX = driver release date code (BL = BCD years since 1960, BH = BCD week number within year) CX = length of version string ES:DI -> version string BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra",AX=0208hTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR AX = 0208h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=020Ah,AX=020ChTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES AX = 020Ah BP = driver ID (see #03741) Return: AH = status (see #03744) BX,CX = current attributes BP,DS destroyed ---for V_LTOUCH, V_LPOINTER--- BX = logical width CX = logical height SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020ChTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES AX = 020Ch BP = driver ID (see #03741) BX,CX = new attributes ---for V_LTOUCH, V_LPOINTER--- BX = new logical width CX = new logical height Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020AhTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS AX = 020Eh BP = driver ID (see #03741) for V_HPHIL, others Return: AH = status (see #03744) BP,DS destroyed Desc: place device in open state, which allows output to the device SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=0210hTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER AX = 0210h BP = driver ID (see #03741) for V_HPHIL, others Return: AH = status (see #03744) BP,DS destroyed Desc: place device in closed state, which disallows output to the device SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020EhTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT AX = 0212h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed Desc: report to driver that a previously-requested timeout interval has expired SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0214h,AX=0216hTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED AX = 0214h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed Desc: report to driver that a previously-requested 60 Hz interval has expired SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0216hTop
INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST AX = 0216h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed ---on failure--- CX = length of reason string ES:DI -> string describing error SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0214hTop
INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE AH = 03h DS:DI -> node ID (optional) Return: ES:BX -> configuration table (see #03756) SeeAlso: AH=13h,INT 21/AX=5E01h"10NET" Format of 10NET configuration table: Offset Size Description (Table 03756) -41 WORD local device table address -39 WORD extended network error mapping table address -37 WORD shared device table address -35 WORD mounted device table address -33 BYTE receive buffer counter -32 BYTE collect buffer counter -31 WORD TUF address -29 BYTE enable flag -28 BYTE FCB keep flag -27 WORD reserved ---up to here, 10NET v3.3--- -25 WORD count of dropped Send6F -23 WORD buffer start address -21 WORD comm driver base address -19 WORD send/receive retry count -17 BYTE number of 550ms loops before timeout -16 WORD UFH address -14 WORD CDIR address -12 WORD LTAB address -10 WORD SFH address -8 WORD FTAB address -6 WORD RLTAB address -4 WORD SMI address -2 WORD NTAB address 00h WORD address of first CT_DRV 02h BYTE number of DRV entries 03h 8 BYTEs login name 0Bh 12 BYTEs node ID (blank-padded) 17h 6 BYTEs node address 1Dh BYTE flag 1Eh BYTE CT_CFLG (chat permit) bit 1: sound bell bit 0: CHAT permit 1Fh BYTE CT_PSFLG (see #03757) 20h BYTE in 10Net flag 21h WORD receive message count 23h WORD send message count 25h WORD retry count 27h WORD failed count 29h WORD driver errors 2Bh WORD dropped responses/CHATs 2Dh 9 BYTEs LIST ID/NTAB address (3 entries--LPT1-3) 36h 6 BYTEs AUX ID/NTAB address (2 entries--COM1-2) 3Ch BYTE active CB channel 3Dh BYTE received 6F messages on queue 3Eh 9 BYTEs activity counters for channels 1-9 ---beyond here, 10NET v3.3--- 47h BYTE bit 0: RS232 gate bit 1: Send6F gate (user set) 48h DWORD pointer into gate (user set) 4Ch DWORD pointer into 10Net send 50h N WORDs addresses of timer blocks Bitfields for CT_PSFLG: Bit(s) Description (Table 03757) 5 PRINT permit 4 KB initiated 3 CHAT called FOXPTRM 2 SUBMIT active 1 SUBMIT received 0 SUBMIT permitTop
INT 6F - 10NET - SEND AH = 04h DS:BX -> send record (see #03758) DS:DX -> data (max 1024 bytes) Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AH=05h"10NET",AH=09h"10NET",AH=0Ah"10NET" Format of 10NET send record: Offset Size Description (Table 03758) 00h 12 BYTEs receiving node's ID if first byte has high-order bit set, message is directed to the CT_RGATE vector at the receiver if second byte is 00h, first byte is taken as a CB channel number and delivered to all nodes on same channel 0Ch WORD length of data at DXTop
INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS AH = 04h BP = 0012h (driver ID for V_SYSTEM) Return: AH = status (see #03744) ES = segment of HP_VECTOR_TABLE (see also AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=06h"F_INS_XCHGFIX",AH=08h"F_INS_XCHGRSVD"Top
INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS AH = 04h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=08h"F_TRACK_OFF" SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES AX = 0400h BP = driver ID (see #03741) DH,DL = major,minor address (optional) Return: AH = status (see #03744) BP,DS destroyed Desc: reserve specified sub-addresses on an already-allocated driver for exclusive access Note: this function is documented as present but unsupported in the drivers V_LTABLET, V_LPOINTER, and V_LTOUCH SeeAlso: AX=0200h"HP Vectra",AX=0402h"SF_UNLOCK"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT AX = 0400h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD" SeeAlso: AX=0408h"SF_ENABLE_HPHIL"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS AX = 0400h BP = 002Ah (driver ID for V_SINPUT) Return: AH = status (see #03744) BP,DS destroyed Desc: set the parent vectors in the physical device driver headers to their system defaults SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=002Ah,AX=0404h/BP=002Ah SeeAlso: AH=06h"F_INQUIRE"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK
AX = 0400h
BP = 0054h (driver ID for V_SVIDEO)
???
Return: AH = status (see #03744)
BX = 4850h ('BP')
BP,DS destroyed
???
Note: only partially documented
SeeAlso: AX=0402h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER AX = 0400h BP = 00CCh (driver ID for V_LHPMOUSE) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=00CChTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES AX = 0402h BP = driver ID (see #03741) DH,DL = major,minor address (optional) Return: AH = status (see #03744) BP,DS destroyed Desc: release specified sub-addresses from exclusive access Note: this function is documented as present but unsupported in the drivers V_LTABLET, V_LPOINTER, and VLTOUCH SeeAlso: AX=0200h"HP Vectra",AX=0400h"SF_LOCK"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT AX = 0402h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0406h/BP=001Eh SeeAlso: AX=040Ah/BP=001EhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS AX = 0402h BP = 002Ah (driver ID for V_SINPUT) ES:SI -> buffer for link table (see #03759) Return: AH = status (see #03744) ES:SI buffer filled BP,DS destroyed Desc: get the parent and child vectors for the seven supported physical device drivers SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0404h"SF_SET_LINKS" SeeAlso: AH=06h"F_INQUIRE" Format of HP Vectra EX-BIOS driver link table: Offset Size Description (Table 03759) 00h BYTE vector number of HP-HIL device #1's child 01h BYTE vector number of HP-HIL device #1's parent ... 0Ch BYTE vector number of HP-HIL device #7's child 0Dh BYTE vector number of HP-HIL device #7's parentTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO AX = 0402h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT AX = 0402h BP = 00CCh (driver ID for V_LHPMOUSE) Return: AH = status (see #03744) BP,DS destroyed Desc: set up INT 33 even if no mouse is installed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=00CChTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON AX = 0404h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: enables graphics cursor tracking of the logical device's movement SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT AX = 0404h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_ENABLE_SVC",AX=0406h"SF_DISABLE_KBD" SeeAlso: AX=0408h"SF_ENABLE_HPHIL"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS AX = 0404h BP = 002Ah (driver ID for V_SINPUT) ES:SI -> buffer containing link table (see #03759) Return: AH = status (see #03744) BP,DS destroyed Desc: specify the parent and child vectors for the seven supported physical device drivers SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0402h"SF_GET_LINKS" SeeAlso: AH=06h"F_INQUIRE"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO AX = 0404h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0406h/BP=0054h SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF AX = 0406h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: disables graphics cursor tracking of the logical device's movement SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0404h"SF_TRACK_ON" SeeAlso: AX=0408h"SF_CREATE_EVENT"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT AX = 0406h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD" SeeAlso: AX=040Ah"SF_DISABLE_HPHIL"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG AX = 0406h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK AX = 0406h BP = 0114h (driver ID for V_HPHIL) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0408h"SF_CRV_WR_PROMPTS" SeeAlso: AX=0410h"SF_CRV_SELF_TEST"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER AX = 0408h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET ES:SI -> new event handler (see AH=00h"HP Vectra") DX = new handler's DS Return: AH = status (see #03744) ES:SI -> old event handler DX = old handler's DS BP,DS destroyed Desc: specify routine to be called on logical device events Note: when events occur, the event handler is called with the same registers as the "F_ISR" function on AH=00h"HP Vectra" SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF" SeeAlso: AX=040Ah"SF_EVENT_ON",AX=040Ch"SF_EVENT_OFF",AH=06h"F_SAMPLE"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT AX = 0408h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0404h/BP=001Eh SeeAlso: AX=040Ah/BP=001EhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN AX = 0408h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h SeeAlso: AX=0406h/BP=0054h,AX=040Ah/BP=0054hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT AX = 0408h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address DL = prompt number Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0406h/BP=0114h,AX=040Ah/BP=0114h Bitfields for HP Vectra V_HPHIL device address indicator: Bit(s) Description (Table 03760) 15-14 reserved 13 address in DH is valid (must be set, clear is reserved) 12 valid value in DL 11-0 reservedTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER AX = 040Ah BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ch"SF_EVENT_OFF" SeeAlso: AX=040Eh"SF_CLIPPING_ON"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT AX = 040Ah BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=001Eh,AX=0406h/BP=001Eh SeeAlso: AX=0408h/BP=001EhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE AX = 040Ah BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h SeeAlso: AX=0406h/BP=0054h,AX=0408h/BP=0054hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY AX = 040Ah BP = 00AEh (driver ID for V_8041) BH = vector number of driver to be called regularly (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: add a driver to the list (max eight) of drivers which will be called by the HP's 8041 at 60 Hz Note: the newly added entry will not be called until enabled with AX=040Eh/BP=00AEh SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE AX = 040Ah BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address DL = acknowledge number (specific if 01h-07h, generic otherwise) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0406h/BP=0114h,AX=040Ch/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER AX = 040Ch BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ah"SF_EVENT_ON"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY AX = 040Ch BP = 00AEh (driver ID for V_8041) BH = vector number of driver to be removed (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: remove a driver to the list (max eight) of drivers which will be called by the HP's 8041 at 60 Hz SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE AX = 040Ch BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address DL = repeat rate (00h = 30 Hz, 01h = 60 Hz) Return: AH = status (see #03744) BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=0114h,AX=040Eh/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING AX = 040Eh BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: causes the physical device's motion to be clipped to prevent overflow or underflow of the logical position SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=0410h"SF_CLIPPING_OFF"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE AX = 040Eh BP = 00AEh (driver ID for V_8041) BH = vector number of driver to be called regularly (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: enable 60 Hz calling of a driver previously added to the list of drivers to be called by the HP's 8041 SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF AX = 040Eh BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address Return: AH = status (see #03744) BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0410h/BP=0114h SeeAlso: AX=0416h/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING AX = 0410h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: disables clipping of the physical device's motion, which may cause overflow or underflow of the logical position SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"Top
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE AX = 0410h BP = 00AEh (driver ID for V_8041) BH = vector number of driver (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: disable 60 Hz interval calls to the specified driver SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST AX = 0410h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address ES:SI -> buffer for result Return: AH = status (see #03744) CX = number of bytes in buffer BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0412h/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041 AX = 0412h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: sets a flag in the 8041 indicating that a second 256K bank of RAM on the motherboard is enabled SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS AX = 0412h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address ES:SI -> 15-byte buffer for status Return: AH = status (see #03744) CX = number of bytes returned in buffer BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=0410h/BP=0114h,AX=0414h/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH AX = 0414h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: clears a flag in the 8041 indicating that a second 256K bank of RAM on the motherboard is enabled, causing the second bank to be disabled Note: this function should normally never be called SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME AX = 0414h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address ES:SI -> 15-byte buffer for name Return: AH = status (see #03744) CX = number of bytes returned in buffer BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=0412h/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE AX = 0416h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: sets a flag in the 8041 indicating that the primary display is the Multimode graphics adapter (default) SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC AX = 0416h BP = 0114h (driver ID for V_HPHIL) BH = what to set (00h typematic rate, 01h delay, 02h both) BL = flag (00h = non-CCP keypad, 01h = Cursor Control Pad only) DL = rate bits 7-4: delay value bits 3-0: typematic rate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0418h/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME AX = 0418h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: clears a flag in the 8041, indicating that the primary display is the monochrome adapter SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEhTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS AX = 0418h BP = 0114h (driver ID for V_HPHIL) BL = new LED states bit 0: scroll lock bit 1: NumLock bit 2: CapsLock Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0416h/BP=0114hTop
INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041 AX = 041Ah BP = 00AEh (driver ID for V_8041) BL = byte to send to 8041 Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=040Eh/BP=00AEhTop
INT 6F - 10NET - RECEIVE AH = 05h CX = number of seconds before timeout DS:DX -> receive buffer (see #03761) Return: CF clear if successful AH = FEh if dequeued message is a CB message CF set on error AX = error code (see #03740) SeeAlso: AH=04h"10NET" Format of 10NET receive buffer: Offset Size Description (Table 03761) 00h 12 BYTEs sending node's ID 0Ch WORD length of message 0Eh N BYTEs message (maximum 1024 bytes)Top
INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE AH = 06h BP = driver ID (see #03741) for V_HPHIL, others AL = value to output ---if driver is V_HPHIL--- BX = device address indicator (see #03760) DH = HP HIL device major address DL = HP-HIL device register (00h-7Fh) Return: AH = status (see #03744) BP,DS destroyed Desc: output a byte to a specific HP-HIL device register Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=04h"HP Vectra",AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER"Top
INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION AH = 06h BP = driver ID (see #03741) for V_LTOUCH, V_LPOINTER, V_LTABLET, etc. Return: AH = status (see #03744) BX = current logical X position CX = current logical Y position DL = button transitions (bit N = button N state has changed) DH = current button states (bit N = current button N state) ES:0000h -> logical device's Describe Record (see #03749) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"Top
INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR AH = 06h BP = 0012h (driver ID for V_SYSTEM) BX = vector address DX = new value for DS ES:DI -> new CS:IP entry point Return: AH = status (see #03744) DX = old value for DS ES:DI -> old CS:IP entry point BP,DS destroyed Desc: replace an existing EX-BIOS driver at a fixed HPVT location without initialization SeeAlso: AH=00h"HP Vectra",AH=04h"F_INS_BASEHPVT",AH=08h"F_INS_XCHGRSVD" SeeAlso: AH=0Ah"F_INS_XCHGFREE",AH=0Ch"F_INS_FIXOWNDS"Top
INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD AH = 06h BP = 002Ah (driver ID for V_SINPUT) AL = HP-HIL physical device number (01h-07h) Return: AH = status (see #03744) ES:SI -> physical describe record for driver BP,DS destroyed Note: the returned physical describe record must not be modified SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=08h/BP=002Ah,AH=0Ah/BP=002Ah SeeAlso: AH=0Ch/BP=002AhTop
INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING AH = 06h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF" SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"Top
INT 6F - 10NET - LOCK HANDLE AH = 07h BX = file handle CX:DX = starting offset in file SI = record length Return: CF clear if successful CF set on error AX = error code (see also AH=00h) 0002h file not found SeeAlso: AH=08h"10NET",AH=0Fh,INT 21/AH=5ChTop
INT 6F - 10NET - UNLOCK HANDLE AH = 08h BX = file handle AL = mode 00h unlock all 01h unlock record at CX:DX Return: CF clear if successful CF set on error AX = error code (see also AH=00h) 0002h file not found SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5ChTop
INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE AH = 08h BP = driver ID (see #03741) for V_HPHIL (0114h), others ---if device is V_HPHIL--- BX = device address indicator (see #03760) DH = HP HIL device major address DL = HP-HIL device register (00h-7Fh) Return: AH = status (see #03744) AL = value read from device BP,DS destroyed Desc: generic read-byte function; for driver V_HPHIL, retrieves the value of a specific HP-HIL device register Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"Top
INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR AH = 08h BP = 0012h (driver ID for V_SYSTEM) DX = new value for DS ES:DI -> new CS:IP entry point Return: AH = status (00h,F6h) (see also #03744) 00h successful BX = vector address used DX = old value for DS ES:DI -> old CS:IP entry point BP,DS destroyed Desc: exchange the supplied entry point and DS with the values in the next reserved entry in the HP_VECTOR_TABLE Note: returns AH=F6h if no more reserved vectors are available SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ah/BP=0012h SeeAlso: AH=0Ch/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE AH = 08h BP = 002Ah (driver ID for V_SINPUT) ES:SI -> buffer for device status table (see #03762) Return: AH = status (see #03744) ES:SI buffer filled BP,DS destroyed Note: the returned physical describe record must not be modified SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=0Ah/BP=002Ah SeeAlso: AH=0Ch/BP=002Ah Format of HP Vectra HP-HIL physical device status table: Offset Size Description (Table 03762) 00h BYTE status for HP-HIL device #1 bit 0: device present bits 7-2 reserved 01h BYTE device ID for HP-HIL device #1 ... 0Ch BYTE status for HP-HIL device #7 0Dh BYTE device ID for HP-HIL device #7Top
INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING AH = 08h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed Note: also removes the graphics cursor sprite from the screen SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=06h"F_TRACK_ON" SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"Top
INT 6F - 10NET - SUBMIT AH = 09h DS:BX -> submit record (see #03763) SeeAlso: AH=04h"10NET" Format of 10NET submit record: Offset Size Description (Table 03763) 00h 12 BYTEs destination node ID (must be logged in) 0Ch WORD length+2 of following 'command line' text 0Eh N BYTEs command line text (<=100 bytes), system adds CRTop
INT 6F - 10NET - CHAT AH = 0Ah DS:BX -> control parameters (see #03764) DS:DX -> chat message (see #03765) SeeAlso: AH=04h"10NET",AH=8Ah Format of 10NET chat control parameters: Offset Size Description (Table 03764) 00h 8 BYTEs sender ID, defaults to node's userID if nulls 08h 8 BYTEs destination user ID, 'EVERYONE' may be used 10h 12 BYTEs destination node ID Format of 10NET chat message: Offset Size Description (Table 03765) 00h WORD length+2 of following text 02h N BYTEs text, max 101 bytesTop
INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE AH = 0Ah BP = driver ID (see #03741) for V_HPHIL (0114h), others CX = number of bytes to write ES:DI -> buffer containing data ---if driver is V_HPHIL--- BX = device address indicator (see #03760) DH = HP HIL device major address DL = HP-HIL device register (00h-7Fh) Return: AH = status (see #03744) CX = number of unwritten bytes left in buffer BP,DS destroyed SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER" SeeAlso: AH=0Eh"F_PUT_WORD"Top
INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE AH = 0Ah BP = driver ID (see #03741) for block device DH = device major number DL = device minor number ES:DI -> command block (see #03766) Return: AH = status (see #03744) BX = operation status BP,DS destroyed SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER" SeeAlso: AH=0Eh"F_PUT_WORD" Format of HP Vectra F_PUT_BLOCK/F_GET_BLOCK command block: Offset Size Description (Table 03766) 00h DWORD data transfer address 04h WORD number of blocks 06h DWORD block address (some devices only use low word)Top
INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR AH = 0Ah BP = 0012h (driver ID for V_SYSTEM) DX = new value for DS ES:DI -> new CS:IP entry point Return: AH = status (00h,F6h) (see also #03744) 00h successful BX = vector address used DX = old value for DS ES:DI -> old CS:IP entry point BP,DS destroyed Desc: exchange the supplied entry point and DS with the values in the next free entry in the HP_VECTOR_TABLE Note: returns AH=F6h if no more reserved vectors are available SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h SeeAlso: AH=0Ch/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR AH = 0Ah BP = 002Ah (driver ID for V_SINPUT) Return: AH = status (see #03744) BX = vector address for first HP-HIL device BP,DS destroyed Note: all seven HP-HIL devices use consecutive vectors in the HP_VECTOR_TABLE SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah SeeAlso: AH=0Ch/BP=002AhTop
INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS AH = 0Ah BP = 005Ah (driver ID for V_STRACK) BH = width of save area in bytes BL = hot-spot X coordinate CH = height in scan lines CL = hot-spot Y coordinate ES:SI -> sprite mask (screen mask followed by XOR sprite mask) Return: AH = status (see #03744) BP,DS destroyed Note: the save area is one byte wider than the actual sprite mask; the total size of the sprite is at most 144 bytes SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF" SeeAlso: AH=0Ch"F_SET_LIMITS_X",AH=10h"F_PUT_SPRITE",AH=12h"F_REMOVE_SPRITE"Top
INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY AH = 0Bh AL = drive number or 0 ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name Return: AL = status (see #03767) Note: same as INT 60/AH=12h SeeAlso: AH=0Ch"10NET",INT 60/AH=12h (Table 03767) Values for 10NET status: 00h successful 01h semaphore currently locked 02h server not responding 03h invalid semaphore name 04h semaphore list is full 05h invalid drive ID 06h invalid Ethernet address 07h not logged in 08h write to network failed 09h semaphore already logged in this CPU SeeAlso: #03740 Index: error codes;10-Net|10-Net;error codesTop
INT 6F - 10NET - UNLOCK SEMAPHORE AH = 0Ch AL = drive number or 0 ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name Return: AL = status (see also #03767) 01h semaphore not locked Note: same as INT 60/AH=13h SeeAlso: AH=0Bh,INT 60/AH=13hTop
INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE AH = 0Ch BP = driver ID (see #03741) for V_HPHIL (0114h), others CX = number of bytes or blocks to read DS:SI -> buffer for received data Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BLOCK" SeeAlso: AH=10h"F_GET_WORD"Top
INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE AH = 0Ch BP = driver ID (see #03741) DH = device major number DL = device minor number ES:DI -> command block (see #03766) Return: AH = status (see #03744 at AH=00h"HP Vectra") BX = operation status BP,DS destroyed SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER" SeeAlso: AH=10h"F_GET_WORD"Top
INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR AH = 0Ch BP = 0012h (driver ID for V_SYSTEM) BX = vector address used ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), which should return the routine's DS in BX. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h SeeAlso: AH=0Eh/BP=0012h,AH=12h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT AH = 0Ch BP = 002Ah (driver ID for V_SINPUT) Return: AH = status (see #03744) ES:BX -> physical GID driver CS:IP BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah SeeAlso: AH=0Ah/BP=002AhTop
INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS AH = 0Ch BP = 005Ah (driver ID for V_STRACK) CX = minimum X coordinate DX = maximum X coordinate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Eh/BP=005Ah SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0007hTop
INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK AH = 0Dh AL = type code 01h return superstations only 02h return non-superstations only otherwise return all CX = length of data buffer DS:DX -> array of records to be filled (see #03768) Return: CL = number of records returned (responding stations) SeeAlso: AH=16h,AH=8Dh Format of station record: Offset Size Description (Table 03768) 00h 12 BYTEs node ID 0Ch BYTE station flags (see #03769) ---if AL = 01h--- 0Dh BYTE version number 0Eh WORD level number of 10Net software in responding node ---if AL = 02h--- 0Dh 8 BYTEs user ID 15h BYTE version number 16h WORD level number Bitfields for station flags: Bit(s) Description (Table 03769) 1 workstation 2 superstation 3 xgate 4 active gateTop
INT 6F - 10NET - SPOOL/PRINT AH = 0Eh DS:DX -> spool/print record (see #03771) Return: CF clear if successful CF set on error AX = error code (see also #03740) 17FFh device not mounted 18FFh already spooling to named device (Table 03770) Values for 10NET spooler operation code: 0000h initiate spool 0001h abort print 0002h close spool 0003h delete spool 0004h print 0005h get report info 0006h set chat template 0007h queue 0008h return queue 0009h queue non-spooled file for printing Format of 10NET Spool/Print record: Offset Size Description (Table 03771) 00h WORD operation code (see #03770) 02h 11 BYTEs file name in FCB format ---if operation code = 00h or 06h--- 0Dh BYTE notification flags (see #03772) 0Eh BYTE days to keep (FFh=forever) 0Fh BYTE bits 0,1: device (1=LPT1) bits 4-7: remote drive to store spool file (1=A,...) 10h WORD length of following data area 12h N BYTEs up to 64 bytes of description ---if operation code = 03h--- 0Dh 8 BYTEs user ID to associate with filename ---if operation code = 04h--- 0Dh WORD block number 0Fh 8 BYTEs user ID to associate with filename ---if operation code = 05h--- 0Dh BYTE RRN to start retrieve 0Eh BYTE bits 0,1: local print device (LPTx) bit 3: if set, return entries for all users 0Fh WORD length of following area 11h N BYTEs up to 1500 bytes to receive $SCNTL records returned ---if operation code = 07h--- 0Dh BYTE queue number 0Eh BYTE bits 0,1: local print device (LPTx) 0Fh WORD number of bytes of test print to be done 11h BYTE code: 01h print device 02h test print count 03h prn ---if operation code = 08h--- 0Dh BYTE queue location or $SCNTL location to start access returns next item for access: 00h-7Fh queued items 80h-FEh non-queued, non-printed items FFh no more items 0Eh WORD unused 10h WORD length of following area 12h N BYTEs up to 64 bytes to receive $SCNTL records (see #03773) ---if operation code = 09h--- 0Dh 3 BYTEs unused 10h N BYTEs path to non-spooled file to be queued for printing Bitfields for notification flags: Bit(s) Description (Table 03772) 7 queue to top 6 do ID page 5 no form feed 4 reserved 3 explicit queuing only 2 notify at print completion 1 notify server operator, with reply 0 notify at print start Format of 10NET $SCNTL record: Offset Size Description (Table 03773) 00h 8 BYTEs user ID 08h 11 BYTEs filename in FCB format 13h 6 BYTEs node ID 19h 3 BYTEs creation date 1Ch BYTE notification flags (see #03772) 1Dh BYTE retention time in days 1Eh BYTE printing device (LPTx) 1Fh 3 BYTEs date last printed (0 = never) 22h BYTE device containing spoolfile 23h WORD bytes to print for test print 25h WORD block number to start print 27h BYTE reservedTop
INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE AH = 0Eh BP = driver ID (see #03741) DX = data word Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=10h"F_GET_WORD"Top
INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA AH = 0Eh BP = driver ID (see #03741) ??? details not yet available Return: ??? SeeAlso: AH=06h"HP Vectra",AH=0Ah"HP Vectra",AH=10h"HP Vectra"Top
INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR AH = 0Eh BP = 0012h (driver ID for V_SYSTEM) BX = vector address used ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX; the routine should adjust BX and return the new value. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ch/BP=0012h SeeAlso: AH=10h/BP=0012h,AH=14h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS AH = 0Eh BP = 005Ah (driver ID for V_STRACK) CX = minimum Y coordinate DX = maximum Y coordinate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Ch/BP=005Ah SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0008hTop
INT 6F - 10NET v5.0 - "RM LOCK" - ??? AH = 0Fh ??? Return: ??? SeeAlso: AH=07h,AH=08h"10NET"Top
INT 6F - 10NET - ATTACH/DETACH PRINTER AH = 10h AL = subfunction 00h initiate spooling if LPT1 is mounted 01h terminate spooling if LPT1 is mounted SeeAlso: INT 21/AX=5D08hTop
INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE AH = 10h BP = driver ID (see #03741) Return: AH = status (see #03744 at AH=00h"HP Vectra") DX = data word BP,DS destroyed SeeAlso: AH=08h"F_GET_BYTE",AH=0Ch"F_GET_BUFFER",AH=0Eh"F_PUT_WORD"Top
INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR AH = 10h BP = 0012h (driver ID for V_SYSTEM) BX = vector address used ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global data area. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h SeeAlso: AH=0Ch/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h,AH=16h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE AH = 10h BP = 005Ah (driver ID for V_STRACK) BX = X coordinate CX = Y coordinate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF" SeeAlso: AH=12h"F_REMOVE_SPRITE",INT 33/AX=0004hTop
INT 6F - 10NET - LOCK FCB AH = 11h AL = mode 01h sequential 02h random 03h random block CX = number of records DS:DX -> FCB (see #01345 at INT 21/AH=0Fh) Return: CF clear if successful CF set on error AX = error code (see also #03740) 0002h file not found SeeAlso: AH=12h,INT 21/AH=0FhTop
INT 6F - 10NET - UNLOCK FCB AH = 12h AL = mode 00h sequential 01h random 02h random block CX = number of records DS:DX -> FCB (see #01345 at INT 21/AH=0Fh) Return: CF clear if successful CF set on error AX = error code (see also #03740) 0002h file not found SeeAlso: AH=11hTop
INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR AH = 12h BP = 0012h (driver ID for V_SYSTEM) ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), which should return the routine's DS in BX. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=14h/BP=0012h SeeAlso: AH=16h/BP=0012h,AH=18h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE AH = 12h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=10h"F_PUT_SPRITE"Top
INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS AH = 13h DS:DX -> node ID, 12 bytes blank-padded Return: CF clear if successful ES:BX = configuration table address on given machine CF set on error AX = error code (see #03740) SeeAlso: AH=03hTop
INT 6F - 10NET v3.3+ - GET REMOTE MEMORY AH = 14h BX:SI = address of remote memory CX = length (<=1024 bytes) DS:DX -> node ID, 12 bytes blank-padded DS:DI -> area to receive remote memory image Return: CF clear if successful CX = amount of memory copied to DS:SI CF set on error AX = error code (see #03740)Top
INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR AH = 14h BP = 0012h (driver ID for V_SYSTEM) ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX; the routine should adjust BX and return the new value. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h SeeAlso: AH=16h/BP=0012hTop
INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY AX = 1501h BX = zero-based index DS:SI -> node ID, 12 bytes blank-padded ES:DI -> 85-byte buffer for shared device table entry (see #03774) Return: CF clear if successful ES:DI buffer contains shared device table entry of BXth device CF set on error AX = error code (see #03740) SeeAlso: AX=1502h,AX=1503h,AX=9501h Format of 10NET shared device table entry: Offset Size Description (Table 03774) 00h 8 BYTEs device 08h 8 BYTEs alias 10h 64 BYTEs path 50h 8 BYTEs password 58h BYTE access 59h 4 BYTEs maskTop
INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY AX = 1502h DS:SI -> node ID, 12 bytes blank-padded ES:DI -> valid shared device table entry Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AX=1501h,AX=1503h,AX=9502hTop
INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY AX = 1503h BX = zero-based index DS:SI -> node ID, 12 bytes blank-padded Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AX=1501h,AX=1502h,AX=9503hTop
INT 6F - 10NET v5.0 - "GL WHO" - ??? AH = 16h ??? Return: ??? SeeAlso: AH=0DhTop
INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR AH = 16h BP = 0012h (driver ID for V_SYSTEM) ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra") BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global data area. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=10h/BP=0012h,AH=12h/BP=0012h SeeAlso: AH=14h/BP=0012h,AH=18h/BP=0012hTop
INT 6F - 10NET v3.3+ - MOUNT AH = 17h AL = local drive number (0=A:) BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx DS:DX -> node ID, 12 bytes blank-padded Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AH=18hTop
INT 6F - 10NET v3.3+ - UNMOUNT AH = 18h AL = local drive number (0=A:) BL = type 00h disk 01h-03h LPTn 04h,05h COMx Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AH=17hTop
INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES AH = 18h BP = 0012h (driver ID for V_SYSTEM) AL = sense of test (00h equal, 02h non-equal) BX = AND mask DX = pattern SI = first vector address to search DI = offset in HP header of field to test Return: AH = status (00h,FEh) (see #03744 at INT 6F/AH=00h"HP Vectra") BP,DS destroyed ---if AH=00h--- SI = first matching vector address Desc: compare successive drivers' header fields starting at address SI until the header field AND BX is either equal or non-equal to DX SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=10h/BP=0012h SeeAlso: AH=12h/BP=0012h,AH=16h/BP=0012hTop
INT 6F U - 10NET v5.0 - AUDIT AH = 19h ??? Return: ??? SeeAlso: AH=99hTop
INT 6F U - 10NET v5.0 - "BULL" - ??? AH = 1Ah ??? Return: ???Top
INT 6F U - 10NET v5.0 - "GMOUNT" - ??? AH = 1Bh ??? Return: ???Top
INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST AH = 1Ch ??? Return: ???Top
INT 6F U - 10NET v5.0 - "TABDATA" - ??? AH = 1Dh ??? Return: ???Top
INT 6F U - 10NET v5.0 - "SCHED" - ??? AH = 1Eh ??? Return: ???Top
INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA AH = 1Eh BP = 0012h (driver ID for V_SYSTEM) Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra") BX = last-used DS DX = maximum DS BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=20h/BP=0012h,AH=22h/BP=0012hTop
INT 6F U - 10NET v5.0 - "WHOAMI" - ??? AH = 1Fh ??? Return: ???Top
INT 6F U - 10NET v5.0 - ??? AH = 20h ??? Return: ???Top
INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY AH = 20h BP = 0012h (driver ID for V_SYSTEM) BX = new value for "last-used DS" DX = new value for "maximum DS" Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra") BP,DS destroyed Note: the F_INS_FIXGETDS and F_INS_FREEGETDS functions (see AH=0Eh/BP=0012h,AH=14h/BP=0012h) also modify the values returned by this call, requiring care if both methods are used to allocate memory SeeAlso: AH=00h"HP Vectra",AH=0Eh/BP=0012h,AH=14h/BP=0012h,AH=1Eh/BP=0012hTop
INT 6F U - 10NET v5.0 - ??? AH = 21h ??? Return: ???Top
INT 6F U - 10NET v5.0 - ??? AH = 22h ??? Return: ???Top
INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY AH = 22h BP = 0012h (driver ID of V_SYSTEM) BL = address of CMOS byte to read Return: AH = status (see #03744 at AH=00h"HP Vectra") AL = byte read BP,DS destroyed Note: supported by ES, QS, and RS series HP Vectras SeeAlso: AH=00h"HP Vectra",AH=1Eh/BP=0012h,AH=24h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY AH = 24h BP = 0012h (driver ID of V_SYSTEM) BL = address of CMOS byte to write AL = new value Return: AH = status (see #03744) BP,DS destroyed Note: updates the CMOS checksum fields (both IBM-standard and HP checksums) SeeAlso: AH=00h"HP Vectra",AH=22h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS AH = 2Ah BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed Note: this is a hook for multitasking systems SeeAlso: AH=00h"HP Vectra",INT 15/AX=1000h,INT 2F/AX=1680hTop
INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS AH = 30h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed Desc: enables keyclicks and flushes any pending keyclicks SeeAlso: AH=32h/BP=0012h,AH=34h/BP=0012h,AH=36h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS AH = 32h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed Desc: disables keyclicks and flushes any pending keyclicks SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=38h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK AH = 34h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed Desc: generate a keyclick if fewer than four clicks are already pending Note: if keyclicks are already pending, the remaining click count is incremented and the function returns immediately SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=36h/BP=0012h,AH=3Ah/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS AH = 36h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=34h/BP=0012h,AH=38h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS AH = 38h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=32h/BP=0012h,AH=36h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES AH = 3Ah BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed Desc: make a sound of the frequency and duration defined in the EX-BIOS global data area (see #03748) SeeAlso: AH=00h"HP Vectra",AH=34h/BP=0012h,AH=36h/BP=0012h,AH=38h/BP=0012h SeeAlso: AH=3Ch/BP=0012h,AH=3Eh/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION AH = 3Ch BP = 0012h (driver ID of V_SYSTEM) BX = frequency in Hz (1-25000, 0 = off) DX = duration in 10-microsecond increments Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Eh/BP=0012h,#03748Top
INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION AH = 3Eh BP = 0012h (driver ID of V_SYSTEM) BX = frequency in Hz (1-25000, 0 = off) DX = duration in 10-microsecond increments Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Ch/BP=0012h,AH=40h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX AH = 40h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BX = next free string index BP,DS destroyed Desc: get the next string index available to user programs SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=44h/BP=0012h,AH=46h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST AH = 42h BP = 0012h (driver ID of V_SYSTEM) ES:DI -> bucket header (see #03775) Return: AH = status (00h,FEh) (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=44h/BP=0012h Format of HP Vectra EX-BIOS bucket header: Offset Size Description (Table 03775) 00h DWORD pointer to next bucket header (FFFFh:FFFFh if last) 04h WORD upper bound on string index 06h WORD lower bound on string index 08h DWORD pointer to array of string offset pointers 0Ch WORD segment of strings Note: the strings pointed at by the offset pointers are byte-counted ASCIZ stringsTop
INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST AH = 44h BP = 0012h (driver ID of V_SYSTEM) ES:DI -> bucket header (see #03775) Return: AH = status (00h) (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=46h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST AH = 46h BP = 0012h (driver ID of V_SYSTEM) BX = string index Return: AH = status (00h,other) (see #03744) BP,DS destroyed ---if successful--- CX = length of string (excluding count byte and terminating NUL) DS:SI -> header for string ES:DI -> found string SeeAlso: AH=00h"HP Vectra",AH=44h/BP=0012h,AH=48h/BP=0012hTop
INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING AH = 48h BP = 0012h (driver ID of V_SYSTEM) ES:DI -> ASCIZ string Return: AH = status (00h,other) (see #03744 at AH=00h"HP Vectra") BP,DS destroyed ---if successful--- BX = index for the given string SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=46h/BP=0012hTop
INT 6F - Clara Empricost - TSR Version - INSTALLATION CHECK
AX = 636Fh ('co')
BX = 6D70h ('mp')
CX = 696Eh ('in')
SS:DX -> WORD to set if installed
Return: SS:DX word set to 636Fh if installed
Program: Condition List Action Rejection Algorithm for the Evaluation
of Music at Pseudo-Random Idea COnstruction STage
(CLARA EMPRICOST) is an experimental program by Silas Brown
SeeAlso: AX=636Fh/BX=6D70h"UNINSTALL"
Top
INT 6F - Clara Empricost - TSR Version - UNINSTALL
AX = 636Fh ('co')
BX = 6D70h ('mp')
CX = 6F73h ('os')
Return: nothing -- call installation check to determine whether successful
Program: Condition List Action Rejection Algorithm for the Evaluation
of Music at Pseudo-Random Idea COnstruction STage
(CLARA EMPRICOST) is an experimental program by Silas Brown
Notes: Saves any unfinished task and prevents processing of
new tasks, even if can't uninstall
If INT 28h or INT 6Fh have been chained since installation,
returns without changing interrupts or freeing memory
do not call while DOS is active (i.e. InDOS flag is nonzero or INT 28
is active and InDOS > 1)
SeeAlso: AX=636Fh/BX=6D70h"INSTALLATION CHECK"
Top
INT 6F - 10NET v5.0 - LOGIN AH = 80h DS:DX -> login record (see #03776) Return: CF clear if successful BL = number of days until password expires (00h = never) CL = security level CF set on error AX = status (see #03740) SeeAlso: AH=00h,AH=81h Format of 10NET login record: Offset Size Description (Table 03776) 00h 8 BYTEs user name 08h 8 BYTEs password 10h 15 BYTEs server node ID 1Fh 8 BYTEs new password 27h BYTE invoke mode (00h command line, 01h interactive)Top
INT 6F - 10NET v5.0 - LOGOUT AH = 81h DS:DX -> server node ID (DX=0000h for universal logout) Return: AX = status (see #03740) SeeAlso: AH=01h,AH=80hTop
INT 6F - 10NET v5.0 - CHAT AH = 8Ah DS:BX -> chat parameters (see #03777) DS:DX -> chat message (see #03778) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AH=0Ah"10NET" Format of 10NET chat parameters: Offset Size Description (Table 03777) 00h 8 BYTEs sender's user name 08h 8 BYTEs destination user name 10h 15 BYTEs destination node (0 if broadcast-style chat) Format of 10NET chat message: Offset Size Description (Table 03778) 00h WORD message length 02h N BYTEs chat message contentsTop
INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK AH = 8Dh BX = service mask (see #03779) CX = length of buffer DS:DX -> buffer for array of Who data structures (see #03780) Return: CF clear if successful CX = number of nodes matching service mask DS:DX buffer filled CF set on error AX = status (see #03740) SeeAlso: AH=0Dh Bitfields for 10NET service mask: Bit(s) Description (Table 03779) 0 workstation 1 file server 2 print server 3 de-spool server Format of 10NET Who data structure: Offset Size Description (Table 03780) 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 service mask (see #03779) 1Dh DWORD serial number 21h BYTE maximum concurrent users with same serial number allowed on net 22h BYTE chat mask (see #03781) 23h BYTE internal system bits (see #03782) 24h 9 BYTEs version number in format MM.mm.xxx 2Dh BYTE number of shared directories 2Eh BYTE number of shared printer queues Bitfields for 10NET chat mask: Bit(s) Description (Table 03781) 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 03782) 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 inputTop
INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY AX = 9501h BX = zero-based index DS:SI -> server's node ID ES:DI -> buffer for shared device structure (see #03783) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h Format of 10NET shared device structure: Offset Size Description (Table 03783) 00h 8 BYTEs alias 08h BYTE type (02h modem, 03h print queue, 04h directory) 09h BYTE access rights bit 0: read bit 1: write bit 2: create 0Ah 8 BYTEs password 12h 32 BYTEs comment ---directory--- 32h 64 BYTEs pathname of shared directory ---print queue--- 32h BYTE notification bit mask (see #03784) 33h BYTE job control bit mask (see #03785) 34h WORD number of days to retain file 36h WORD test print length 38h BYTE number of copies to print 39h BYTE compression algorithm 3Ah BYTE tab width (00h = don't expand) 3Bh BYTE priority 3Ch WORD time to open queue (FFFFh = always) 3Eh WORD time to close queue 40h WORD pause following queue switch, in clock ticks 42h WORD pause between print jobs, in clock ticks 44h BYTE associate queue file existence mask bit 0: queue switch file exists bit 1: initiate file exists bit 2: abort file exists 45h 6 BYTEs character sequence for page eject 4Bh BYTE status of print queue bit 0: queue is closed 4Ch WORD number of jobs on queue 4Eh WORD offset of next print job to be dispatched (FFFFh = none) 50h BYTE number of print devices in printer pool 51h WORD offset of first print device structure (FFFFh if empty) Bitfields for notification flags: Bit(s) Description (Table 03784) 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 03785) 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 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY AX = 9502h DS:SI -> server's node ID ES:DI -> shared device structure (see #03783) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504hTop
INT 6F - 10NET v5.0 - DELETE SHARED DEVICE AX = 9503h BX = zero-based index DS:SI -> server's node ID Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504hTop
INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE AX = 9504h BX = zero-based shared device index CX = zero-based user index DS:SI -> server's node ID Return: CF clear if successful ES:DI -> node ID of the CX'th user of the BX'th device CF set on error AX = status (see #03740) SeeAlso: AX=9501h,AX=9502h,AX=9503hTop
INT 6F - 10NET v5.0 - AUDIT AH = 99h DS:SI -> server's node ID ES:DI -> data to be appended to audit trail file (max 106 bytes) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AH=19h,AH=9ChTop
INT 6F - 10NET v5.0 - GET LOGIN LIST AH = 9Ch BX = zero-based index Return: CF clear if successful DS:DI -> BX'th node ID that caller's machine is logged into CF set on error AX = status (see #03740)Top
INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK Desc: this interrupt is called when the real-time clock chip generates an alarm or periodic interrupt, among others (see CMOS 0Bh). The periodic interrupt by default occurs 1024 times per second. Notes: many BIOSes turn off the periodic interrupt in the INT 70h handler unless in an event wait (see INT 15/AH=83h,INT 15/AH=86h). may be masked by setting bit 0 on I/O port A1h SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview",MEM FEE00320h SeeAlso: MEM 0040h:006BhTop
INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR Note: the virus sets this interrupt to be the same as INT 21, and then performs only INT 70 calls; since INT 70 is also generated by the real-time clock on the PC/AT and higher, this could cause random actions on an infected system SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"Top
INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS Notes: may be masked by setting bit 1 on I/O port A1h the default BIOS handler invokes INT 0A for compatibility, since the pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the AT expansion bus. under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process SeeAlso: INT 0A"IRQ2",INT 59"IRQ9",MEM 0040h:006BhTop
INT 72 C - IRQ10 - RESERVED Notes: may be masked by setting bit 2 on I/O port A1h DOS 3.3+ revectors IRQ10 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5A"IRQ10",MEM 0040h:006BhTop
INT 73 C - IRQ11 - RESERVED Notes: may be masked by setting bit 3 on I/O port A1h DOS 3.3+ revectors IRQ11 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5B"IRQ11",MEM 0040h:006BhTop
INT 74 C - IRQ12 - POINTING DEVICE (PS) Notes: may be masked by setting bit 4 on I/O port A1h DOS 3.3+ revectors IRQ12 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process SeeAlso: INT 33/AX=0000h,INT 33/AX=0024h,INT 5C"NetBIOS",MEM 0040h:006BhTop
INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up) Desc: redirected to INT 02 by the BIOS, for compatibility with the PC Notes: may be masked by setting bit 5 on I/O port A1h not all clones wire the coprocessor to generate this IRQ; some systems generate an NMI (see INT 02) or assert the -ERROR pin on the CPU (see INT 10"COPROCESSOR") under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process SeeAlso: INT 10"COPROCESSOR",INT 5D"IRQ13",MEM 0040h:006BhTop
INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later) Notes: may be masked by setting bit 6 on I/O port A1h DOS 3.3+ revectors IRQ14 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ on the PS/2, this interrupt is designed to be shared with other devices that produce an operation-complete interrupt, though the only current user is the hard disk SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E"IRQ14",MEM 0040h:006BhTop
INT 77 C - IRQ15 - RESERVED (AT,PS) Notes: may be masked by setting bit 7 on I/O port A1h DOS 3.3+ revectors IRQ15 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5F"IRQ15",MEM 0040h:006BhTop
INT 77 C - IRQ15 - SECONDARY IDE CONTROLLER - OPERATION COMPLETE Notes: may be masked by setting bit 7 on I/O port A1h DOS 3.3+ revectors IRQ15 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5F"IRQ15",MEM 0040h:006BhTop
INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286) Note: may be masked by setting bit 7 on I/O port A1h SeeAlso: INT 15/AX=4600h,INT 5F"IRQ15"Top
INT 78 - UofSalford DBOS DOS extender - API AH = function 00h (PB) display 32-bit memory specified by command argument 01h (PT) display 32-bit instruction(s) specified by command arg 02h specify offset to subsequent PB and PT commands 03h switch to protected mode DWORD following INT instruction point to map; protected-mode entry point is immediately following the DWORD Return: never Note: if bit 31 of the map address is set, only a stub was loaded by DOS and DBOS will load the entire program 04h specify that subsequent load (AH=03h) should leave program in memory 05h release program from memory 06h set break point at address and option count from commandline 07h resume program execution 08h single-step program 09h set read/write breakpoint using 386 debug registers 0Ah set write breakpoint using 386 debug register 0Bh set memory byte to new value 0Ch display CPU registers 0Dh run until specified program address reached 0Fh print trace from program map 10h specify an offset using a map symbol 14h print memory without any offset 18h switch DBOS into/out of test mode (ON/OFF commandline args) 1Dh get address of real/protected-mode communication buffer Return: ES:BP -> comm buffer 1Eh set real-mode memory size (specify how much real-mode memory to leave free when running FTN77 programs) 22h uninstall DBOS 24h force DBOS to emulate coprocessor instructions 26h set named DBOS switches from commandline 27h reset named DBOS switched from commandline 2Ah set list of dynamic link libraries to contents of commandline file 35h specify that subsequent load (AH=03h) should stop at first instruction Return: ??? Notes: DBOS supports functions 00h through 50h; many of these functions provide a low-level debugging interface command arguments are read from the calling program's PSP SeeAlso: INT 79"DBOS" Index: uninstall;DBOS DOS extenderTop
INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0 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 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"Top
INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND AX = function 0001h begin plot BX = file level 0000h ASCII file 0001h binary file 0002h AutoCAD DXB file 0003h installed ADI driver 0002h end plot (close plotter) 0003h move (pen up) BX = new X position CX = new Y position 0004h move (pen down) BX = new X position CX = new Y position 0005h select pen BX = pen number 0006h select drawing speed BX = drawing speed N 0007h select line style BX = line style N 0008h raise pen 0009h abort plot Return: AX = 0000h (may be used for driver status in future releases) SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"Top
INT 78 - ADP-60 IDE controller - ORIGINAL INT 13 SeeAlso: INT 79"ADP-60"Top
INT 78 - ULTRAMID - API AX = function --- digital functions --- 0000h start digital ES:DI -> Sound Structure Return: AX = voice used 0001h play next buffer ES:DI -> Sound Structure 0002h set panning BX = pan CX = voice 0003h set volume BX = volume CX = voice 0004h set rate (not yet implemented) 0005h pause digital CX = voice 0006h restart digital CX = voice 0007h stop digital CX = voice 0008h get digital position CX = voice Return: AX:DX -> position in PC buffer 0009h get voice status (not yet implemented) --- MIDI functions --- 000Ah load MIDI patches ES:DI -> MIDI track just after the Mtrk header BX:DX = length of MIDI track 000Bh load XMIDI patches ES:DI -> event buffer including the EVNT header 000Ch load patch CX = MIDI number of patch 000Dh unload patch CX = MIDI number of patch 000Eh start sequence 000Fh unload all patches 0010h MIDI out byte CX = MIDI byte 0011h MIDI out string CX = length ES:DI -> string of MIDI data 0012h all notes off --- resource functions --- 0013h allocate memory BX:DX = size of GUS memory needed Return: AX:DX = address of memory, or 0000:0000 if not avaiable 0014h free memory BX:DX = address of memory to be freed 0015h uninstall 0016h sem enter 0017h sem leave 0018h add external semaphore BX:DX -> external semaphore 0019h clear external semaphore BX:DX -> external semaphore 001Ah application start 001Bh application end --- v1.12 --- 001Ch ??? 001Dh ??? 001Eh ??? 001Fh ??? Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data through the Gravis UltraSound (GUS) InstallCheck: test for the signature "ULTRAMID" at offset 0103h in the interrupt handler's segment Range: INT 78 to INT 7F SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E/AH=00h"SBOS",INT 7E/AX=00FEh"SBOS" Index: uninstall;UltraMIDTop
INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT AH = 00h DX = interface board I/O port Return: CF set on error AL = error code (see #03786) InstallCheck: (used by TARGA.DEV) test for the string "SCSI" at offset 03h into the interrupt handler Note: if this routine is not called, the port is the driver's default (usually 0280h or 0300h) SeeAlso: AH=01h,AH=02h Index: installation check;TARGA.DEV (Table 03786) Values for TARGA.DEV error code: 00h illegal command given to SCSI code 01h invalid I/O port specified (must be from 100H to 3F8H, and must be on an 8-port boundary) 02h invalid DMA channel specified (must be from 1 to 3) 03h invalid SCSI board number specified (must be from 0 to 7) 04h error from data register test during self-test 05h SCSI input signals not all 0 when SCSI RST activated 06h SCSI input signals not all 0 before selecting a SCSI device 07h BSY signal is active; SCSI bus is busy 08h SCSI board not selected, BSY signal did not come on in response to raising SEL 09h time-out waiting for status state, signifying end of DMA transferTop
INT 78 - HugeRealMode Driver - INSTALLATION CHECK AX = 0000h Return: AX = DBCAh if installed Program: the HugeRealMode driver was published in the German DOS Extra Nr. 20 (1992), and makes a 4G flat address space (for both data and code) available to real-mode DOS programs SeeAlso: AX=0001hTop
INT 78 - HugeRealMode Driver - GET ENTRY POINT AX = 0001h Return: ES:BX -> far call entry point (see #03788,#03803) SeeAlso: AX=0000h (Table 03787) Values for HugeRealMode Server error code: 00h successful 01h unknown function 02h A20 disabled 03h A20 enabled 04h memory allocation error 05h memory not fixeable (LOCK) 06h memory not deallocaable 07h memory not moveable (UNLOCK) 08h change in memory allocation size not possible 09h file error (with .XMF-file) 0Ah memory error (with .XMF-file) 0Bh unknown procedure (currently Turbo Pascal unit only) (Table 03788) Call HugeRealMode Server "Enable A20" function with: AL = 00h Return: AX = error code (see #03787) Note: The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded before HUGEREAL (for XMS-memory allocation and A20 control). It utilizes some undocumented 386+ features to enable 4G code and data segments (flat memory model) in the CPUs real-mode. It is not compatible with V86-mode (as with most EMM386). For maximum speed and compatibility with DOS it uses a two stage interrupt model (see #03791) SeeAlso: #03789,#03790,#03791 (Table 03789) Call HugeRealMode Server "Disable A20" function with: AL = 01h Return: AX = error code (see #03787) SeeAlso: #03788,#03790 (Table 03790) Call HugeRealMode Server "Query A20 State" function with: AL = 02h Return: AX = A20 state (0000h disabled, 0001h enabled) SeeAlso: #03788,#03789 (Table 03791) Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with: AL = 03h Return: AX = error code (see #03787) Notes: If the two stage interrupt model is disabled, the IP must stay below 1MB, because the high word of EIP is not saved correctly by the standard interrupt management in real mode. Routines in extended memory may only be called with interrupts disabled (only usable for very short routines). If the two stage interupt model is enabled, these conventions are not required. The outer (transparent) ISRs save the higher word of EIP in the high word of CR3 (possible modification: in memory, if this is not safe) and then invoke the standard ISRs. Because of this handling, one should use pseudo segmented code even in extended memory (64K blocks located on 64K boundaries) to avoid the misalignment of the saved EIP (in CR3). Another way is to track and realign CR3 each time when jumping over a 64K boundary in extended memory SeeAlso: #03788,#03792 (Table 03792) Call HugeRealMode Server "Disable Two-Stage Interrupt Model" function with: AL = 04h Return: AX = error code (see #03787) SeeAlso: #03788,#03791 (Table 03793) Call HugeRealMode Server "Get Segment Address Of Server-Management Range" with: AL = 05h Return: AX = error code (see #03787) ES = segment address SeeAlso: #03803 (Table 03794) Call HugeRealMode Server "Allocate Memory" function with: AL = 06h DX = length in KB Return: AX = error code (see #03787) DX = handle EBX = start address of allocated block SeeAlso: #03795,#03796 (Table 03795) Call HugeRealMode Server "Deallocate Memory" function with: AL = 07h DX = handle Return: AX = error code (see #03787) SeeAlso: #03794,#03796 (Table 03796) Call HugeRealMode Server "Modify Allocated Memory Size" function with: AL = 08h DX = handle BX = new size in KB Return: AX = error code (see #03787) EBX = new address SeeAlso: #03794,#03795 (Table 03797) Call HugeRealMode Server "Load .XMF-file" function with: AL = 09h ES:BX -> filename (see #03798) Return: AX = error code (see #03787) ECX = target address Notes: memory must be allocated before loading .XMF file format (eXtended Memory executable File format) is supported by the HugeRealMode server for easier handling of XMS-code. The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to .XMF-format SeeAlso: #03794 Format of .XMF program file header: Offset Size Description (Table 03798) 00h DWORD signature "XMF_" 04h WORD length of programs code 06h WORD count of 32bit addresses to relocate 08h WORD offset to code start (releative to file start) (see #03799) 0Ah WORD relocation table Note: each word contains a 16bit address, where a relocation has to be performed SeeAlso: #03797,#03799 Format of .XMF-file code header: Offset Size Description (Table 03799) 00h WORD count of exported functions 02h N PWORDs 48bit pointers (16bit segment+32bit offset) to each function (16bit segment is always zero) var start of program's code SeeAlso: #03797,#03798 (Table 03800) Call HugeRealMode Server "Set Segment Limits" function with: AL = 0Ah BL = segment limits (see #03801) Return: AX = error code (see #03787) SeeAlso: #03793 Bitfields for HugeRealMode Server segment limits: Bit(s) Description (Table 03801) 7 CS size: 1=4GB, 0=64KB 6-5 not used 4 SS size: 1=4GB, 0=64KB 3 GS size 2 FS size 1 ES size 0 DS size SeeAlso: #03800 (Table 03802) Call HugeRealMode Server "Transfer Memory From DOS To XMS" function with: AL = 0Bh ES:SI = source address EDI = target address ECX = length Return: AX = error code SeeAlso: #03803 (Table 03803) Call HugeRealMode Server "Transfer Memory From XMS To DOS" function with: AL = 0Ch ESI = source address ES:DI = target address ECX = length Return: AX = error code SeeAlso: #03802Top
INT 78 - TARGA.DEV - GET I/O PORT AH = 01h Return: DX = current interface board I/O port SeeAlso: AH=00h,AH=03h"TARGA"Top
INT 78 - TARGA.DEV - SET DMA CHANNEL AH = 02h AL = interface board DMA channel Return: CF set on error AL = error code (see #03786) Note: if this routine is not called, the DMA channel is the driver's default (usually 3) SeeAlso: AH=00h,AH=03h"TARGA"Top
INT 78 - TARGA.DEV - GET DMA CHANNEL AH = 03h Return: AL = current interface board DMA channel SeeAlso: AH=01h,AH=02hTop
INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER AH = 04h AL = SCSI device number Return: CF set on error AL = error code (see #03786) Note: if this routine is not called, the device number used is the driver's default (usually 0) SeeAlso: AH=02h,AH=05hTop
INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER AH = 05h Return: AL = current SCSI device number SeeAlso: AH=03h"TARGA",AH=04hTop
INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE AH = 06h AL = new state 00h clear early return mode 01h set early return mode Note: if early return mode is set then SCSI will return with no errors when the last DMA transfer is started in a call with AH=13h or AH=14h if this routine is not called, early return mode is cleared SeeAlso: AH=13h,AH=14h,AH=15hTop
INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST AH = 08h Return: CF set on error AL = error code (see #03786) Note: the SCSI bus is also reset SeeAlso: AH=09hTop
INT 78 - TARGA.DEV - RESET SCSI BUS AH = 09h Return: AL = error code if carry set (see #03786) SeeAlso: AH=08hTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND AH = 10h DS:SI -> command bytes (see #03804) Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) SeeAlso: AH=11h,INT 21/AX=4403h"ST-01" Format of SCSI Command: Offset Size Description (Table 03804) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O) AH = 11h DS:SI -> command bytes (see #03805) ES:BX -> data storage area CX = number of data bytes to transfer Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: this command receives data internally one byte at a time SeeAlso: AH=10h,AH=13h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03805) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O) AH = 12h DS:SI -> command bytes (see #03806) ES:BX -> data storage area CX = number of data bytes to transfer Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: this command sends data internally one byte at a time SeeAlso: AH=14h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03806) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA) AH = 13h DS:SI -> command bytes (see #03807) ES:BX -> data storage area DX:CX = number of data bytes to transfer Return: AH = SCSI status byte (if early return mode is clear) CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see #03786) Note: this command receives data using DMA SeeAlso: AH=11h,AH=12h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03807) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA) AH = 14h DS:SI -> command bytes (see #03808) ES:BX -> data storage area DX:CX = number of data bytes to transfer Return: AH = SCSI status byte (if early return mode is clear) CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see #03786) Note: this command sends data using DMA SeeAlso: AH=12h,AH=13h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03808) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA) AH = 15h Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: if AH=06h was previously called to set the early return mode, this function finishes a command AH=13h or AH=14h which returned before the last DMA transfer was finished SeeAlso: AH=06h,AH=13h,AH=14hTop
INT 79 - AVATAR.SYS - FAST GET KEYSTROKE Return: CF set if no keystroke available AX = FFFFh CF clear if key pressed AX = keystroke Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets AVATAR command codes just as ANSI.SYS interprets ANSI commands Note: if a keystroke is available, it is removed from the keyboard buffer before being returned SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156hTop
INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"Top
INT 79 U - ADP-60 IDE adapter - ??? SeeAlso: INT 78"ADP-60"Top
INT 79 - DBOS DOS Extender details not available Desc: this interrupt is used by an MS Windows virtual device driver with which the DBOS extender communicates when run inside a Windows Enhanced Mode DOS box SeeAlso: INT 78"DBOS"Top
INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE AX = 0001h BX = interface level (0001h) Return: AX = status (0000h initialization failed, 0001h init successful) BX = digitizer type 0000h relative pointing device (mouse, etc.) 0001h digitizing tablet CX = digitizer dataflow type 0000h continuous 0001h pauses between packets SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"Top
INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE AX = 0002h SeeAlso: AX=0001h,AX=0003hTop
INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS AX = 0003h Return: AX = status 0000h nothing 0002h tracking point (no button pressed) BX = X coordinate CX = Y coordinate 0003h picked point (button 0,A,B,C,D pressed) BX = X coordinate CX = Y coordinate 0004h button pick BX = button number 0005h button and coordinates BX = button number CX = X coordinate DX = Y coordinate SeeAlso: AX=0001h,AX=0002hTop
INT 7A U - Topware Network Operating System - ??? AL = ??? ??? Return: ??? SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00hTop
INT 7A - X.PC Packet software interface ES:BX -> parameter block SeeAlso: INT 60/AX=01FFhTop
INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2 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 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0A"IRQ2",INT 79"GO32",INT 7B"GO32"Top
INT 7A O - PRINDIR - API (moved to INT 7C, then INT 2F/AX=7F00h) SeeAlso: INT 7C"PRINDIR",INT 2F/AX=7F00h"PRINDIR"Top
INT 7A - Novell NetWare - LOW-LEVEL API - Notes Note: this interrupt is used for IPX/SPX access in NetWare versions through 2.0a; in later versions, you should use INT 2F/AX=7A00h to get an entry point even though INT 7A still exists. For both INT 7A and the FAR entry point, BX contains the function number; IPX is sometimes called internally with BX bit 15 set, which causes the handler to bypass some initial checks and an optional call to the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h (see #02926) SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000hTop
INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET BX = 0000h AL = socket longevity 00h open until close or terminate FFh open until close DX = socket number (high byte in DL) 0000h dynamic allocation else socket to open (see #03809) Return: AL = return code 00h success DX = socket number FEh socket table full FFh socket already open Notes: TSRs which need to use sockets should set AL to FFh, non-resident programs should normally use AL=00h IPX can be configured to support up to 150 open sockets on a workstation, and defaults to 20 this function is supported by Advanced NetWare 1.02+ SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h (Table 03809) Values for IPX socket number: 0451h File Service (NetWare Core Protocol) 0452h Service Advertising Protocol (SAP) (see #03817) 0453h Routing Information Packet (see #03820) 0455h NetBIOS Packet 0456h diagnostics 0457h server serial numbers (labeled "Copy Protection" by Lanalyzer) 2222h NetWare Core Protocol 4000h-7FFFh used for dynamic allocation 4000h \ seem to be used by IPX internally 4001h / 4444h Brightwork Development's SiteLock server 5555h Brightwork Development's SiteLock client (workstation) 8000h-FFFFh assigned by Novell 869Ch ID Software's DOOM 901Fh Lancheck 9023h Server info (NetWare "Slurpee", NetWare Lite, Personal NetWare) 9024h Client info (NetWare "Slurpee", NetWare Lite, Personal NetWare) 9025h Serial socket (NetWare "Slurpee", NetWare Lite, Personal NetWare) 9026h Extension info (NetWare Lite, Personal NetWare???) Notes: SiteLock is an application metering product using IPX to communicate between the application and the license server IPX socket numbers should be registered with the Novell Development Products Division SeeAlso: INT 7A/BX=0001hTop
INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET BX = 0001h DX = socket number (high byte in DL) (see #03809) Notes: also cancels events set by any Event Control Blocks for the socket the program must close all open sockets before terminating this function is supported by Advanced NetWare 1.02+ When the NetWare-specific release of the DR DOS command processor does a NetWare shutdown sequence on exit, it will close all user sockets except for socket numbers 4000 and 4001, which seem to be used by IPX internally. SeeAlso: BX=0000hTop
INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET BX = 0002h ES:SI -> target internetwork address (see #03824 at INT 7A/BX=000Bh) ES:DI -> 6-byte buffer for local target Return: AL = return code 00h success CX = expected one-way transfer time (clock ticks) for a 576-byte packet ES:DI -> local target FAh unsuccessful (no path to destination) Notes: the internetwork address consists of a 4-byte network address followed by a 6-byte node address. The local target is only a 6-byte node address. If the target is in the same network, the local target is just the node address of target; otherwise, the local target is the node address of the bridge that leads to the target. this function may be called from inside IPX and AES Event Service Routines, but not from other interrupt handlers this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0009hTop
INT 7A - Novell NetWare - IPX Driver - SEND PACKET BX = 0003h ES:SI -> Event Control Block (see #03810,#03811) Notes: returns immediately; IPX attempts to send the packet in the background this function is supported by Advanced NetWare 1.02+ this function is nearly identical to BX=000Fh, except that it always copies the source address into the IPX header assumed to be at the beginning of the first fragment SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell" Format of IPX Event Control Block: Offset Size Description (Table 03810) 00h DWORD Link 04h DWORD -> Event Service Routine (00000000h if none) (see #03814) 08h BYTE in use flag (see #03812) 09h BYTE completion code (see #03813) 0Ah WORD (big-endian) socket number (see #03809) 0Ch 4 BYTEs IPX workspace 10h 12 BYTEs driver workspace 1Ch 6 BYTEs immediate local node address 22h WORD fragment count 24h var fragment descriptors Offset Size Description 00h DWORD -> fragment data 04h WORD size of fragment in bytes. Notes: ESR is a far procedure that is called when the ECB has been handled. On call, the in use flag is zero if the ECB has been handled, non-zero otherwise. If the flag is zero, the completion code holds the result of the event. the first fragment should start with an IPX header (see #03815) all fragments are concatenated and sent in one piece node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes SeeAlso: #03811 Format of AES-ECB: Offset Size Description (Table 03811) 00h DWORD Link 04h DWORD ESR (Event Service Routine) address (see #03814) 08h BYTE in use flag (see #03812) 09h 5 BYTEs AES workspace SeeAlso: #03810 (Table 03812) Values for ECB in use flag: 00h available E0h AES temporary F6h \ special IPX/SPX processing for v3.02+ F7h / F8h IPX in critical section F9h SPX listening FAh processing FBh holding FCh AES waiting FDh AES couting down delay time FEh awaiting packet reception FFh sending packet SeeAlso: #03810,#03811,#03813 (Table 03813) Values for ECB completion code: 00h success ECh remote terminated connection without acknowledging packet EDh abnormal connection termination EEh invalid connection ID EFh SPX connection table full F9h event should not be cancelled FAh cannot establish connection with specified destination FCh cancelled FDh malformed packet FEh packet undeliverable FFh physical error SeeAlso: #03810,#03812 (Table 03814) Values Event Service Routine is called with: AL = caller's identity (00h = AES, FFh = IPX) ES:SI -> event control block interrupts disabled Return: all registers preserved SeeAlso: #03810,#03815 Format of IPX header: Offset Size Description (Table 03815) 00h WORD (big-endian) checksum 02h WORD (big-endian) length in bytes of total packet 04h BYTE transport control 05h BYTE packet type (see #03816) 06h 10 BYTEs destination internetwork address 10h WORD (big-endian) destination socket 12h 10 BYTEs source internetwork address 1Ch WORD (big-endian) source socket Notes: an IPX packet has the identical format as a Xerox Network Standard (XNS) packet the application must set packet type, destination address, and destination socket; IPX/SPX set the remaining fields SeeAlso: #03810,#03826 (Table 03816) Values for IPX packet type: 00h unknown packet type 01h routing information packet 02h echo packet 03h error packet 04h packet exchange packet (always use this one for data) 05h SPX packet (see #03826) 11h NetWare Core Protocol (also used by Service Advertising Protocol) 14h Propagated Packet (for NetWare), NetBIOS name packet 15h-1Eh experimental protocols Note: undocumented packet type 14h will cross up to 16 networks deep in all directions; as Aaron Martin of Origin Systems discovered, the first 64 bytes of the IPX data in such packets should be considered reserved, as IPX places the traversed server nodes there. Format of Service Advertising Protocol Service Query Packet: Offset Size Description (Table 03817) 00h 30 BYTEs IPX header 1Eh WORD (big-endian) query type 0001h general find service 0003h find nearest server 20h WORD (big-endian) server type (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL") SeeAlso: #03818 Format of Service Advertising Protocol Server Identification Packet: Offset Size Description (Table 03818) 00h 30 BYTEs IPX header 1Eh WORD (big-endian) response type 0002h general service 0004h nearest service 20h 64N BYTEs server entries (1-7) (see #03819) SeeAlso: #03817,#03820 Format of SAP server entry: Offset Size Description (Table 03819) 00h WORD (big-endian) server type (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL") 02h 48 BYTEs ASCIZ server name 32h 2 WORDs (big-endian) network number 34h 3 WORDs (big-endian) node number 3Ch WORD (big-endian) socket number 3Eh WORD (big-endian) number of hops between caller and server 10h = Server Shutdown Advertising Packet SeeAlso: #03818 Format of IPX Routing Information packet: Offset Size Description (Table 03820) 00h 30 BYTEs IPX header 1Eh WORD operation (0001h request, 0002h response) 20h 8N BYTEs network entries (1-50) (see #03821) SeeAlso: #03818 Format of RIP network entry: Offset Size Description (Table 03821) 00h DWORD network number (FFFFFFFFh = general request) 04h WORD (response) number of hops 06h WORD (response) number of clock ticks to reach destinationTop
INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET BX = 0004h ES:SI -> Event Control Block (see BX=0003h) Return: AL = status 00h successful FFh no listening socket for packet Desc: this function provides IPX with an ECB for receiving an IPX packet, but does not wait for a packet to arrive Notes: the application must open a socket and initialize the ECB's ESR address, socket number, fragment count, and fragment descriptor fields before invoking this function there is no limit on the number of ECBs which may simultaneously be listening on a socket this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0000h,BX=0003hTop
INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT BX = 0005h AX = delay time in clock ticks ES:SI -> Event Control Block (see BX=0003h) Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0006h,BX=0007h,BX=0008hTop
INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT BX = 0006h ES:SI -> Event Control Block (see BX=0003h) Return: AL = return code (see #03822) Notes: cannot cancel packets which the node's driver has already sent this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0005h (Table 03822) Values for IPX return code: 00h success F9h event in use FCh event cancelled FFh unsuccessful, event not in use, or unrecognized ECB flagTop
INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT BX = 0007h AX = delay time ES:SI -> Event Control Block (see BX=0003h) Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0006hTop
INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER BX = 0008h Return: AX = interval marker in clock ticks (big-endian???) Notes: may be used to measure the time elapsed between two events, up to one hour this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0005hTop
INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS BX = 0009h ES:SI -> buffer for own internetwork address (see #03823) Return: ES:SI buffer filled SI destroyed Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0002h,BX=000Bh Format of IPX internetwork address: Offset Size Description (Table 03823) 00h 4 BYTEs (big-endian) network number 04h 6 BYTEs (big-endian) node number within networkTop
INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL BX = 000Ah Desc: this call indicates that the application is idle and permits the IPX driver to do some work Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680hTop
INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET BX = 000Bh ES:SI -> internetwork address (see #03824) Return: nothing Notes: this function permits the network software on the remote machine to remove any virtual connection with the calling machine only use in point-to-point networks should never be called from within an Event Service Routine this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0002h,BX=0009h Format of IPX internetwork address: Offset Size Description (Table 03824) 00h 4 BYTEs (big-endian) destination network 04h 6 BYTEs (big-endian) destination node 0Ah 2 BYTEs (big-endian) destination socketTop
INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS BX = 000Ch CX:DX = global network address (see INT 7A/BX=0002h) ES:DI -> "OSINCRITICALSECTION" flag DS:SI -> current mode for socket Note: the address cannot be changed once it has been initialized SeeAlso: INT 7A/BX=0024hTop
INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE BX = 000Dh Return: AX = maximum packet size CX = retry count SeeAlso: BX=001AhTop
INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS BX = 000Eh Return: nothing Notes: this function terminates all sockets opened with the current mode; this may be intended for future enhancements as the socket mode never changes in v2.15 called by the NetWare shell if a program terminatesTop
INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET BX = 000Fh ES:SI -> Event Control Block (see #03810 at BX=0003h) IPX header's checksum field must be set to FFFFh (see #03815) IPX header's total-length field must be set Note: nearly identical to function 0003h, but does not copy address into the first fragment, and bypasses normal error checking SeeAlso: BX=0003hTop
INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK BX = 0010h AL = 00h Return: AL = status 00h if SPX not installed F0h if IPX not installed FFh if SPX loaded BH = SPX major version BL = SPX minor version CX = maximum SPX connections DX = SPX connections available Notes: this function is supported by Advanced NetWare 2.1+ this interrupt is used for IPX/SPX access in NetWare versions through 2.0a; in later versions, you should use INT 2F/AX=7A00h to get an entry point even though INT 7A still exists. For both INT 7A and the FAR entry point, BX contains the function number IPX is sometimes called internally with BX bit 15 set, which causes the entry point handler to bypass some checks and an optional call to the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h (see #02926) SeeAlso: BX=0015hTop
INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION BX = 0011h AL = retry count AH = watchdog flag ES:SI -> Event Control Block (see #03810 at BX=0003h) Return: AL = status (00h,EFh,FDh,FFh) (see #03825) DX = assigned connection ID number Desc: attempt to establish a connection with a listening socket Notes: there should always be at least two SPX ECB's listening to a socket, so that NetWare can perform its internal packet exchanges the first fragment should start with a SPX header (see #03826). Fill in all destination addresses. this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h (Table 03825) Values for SPX function status: 00h attempting to contact destination socket EEh no such connection EFh local connection table full FDh buffer size not 42 or fragment count not 1 FFh sending socket not open Format of SPX header: Offset Size Description (Table 03826) 00h WORD (big-endian) checksum 02h WORD (big-endian) length in bytes of total packet 04h BYTE transport control 05h BYTE packet type (see #03816 at INT 7A/BX=0003h) 06h 10 BYTEs destination internet address 10h WORD (big-endian) destination socket 12h 10 BYTEs source internet address 1Ch WORD (big-endian) source socket 1Eh BYTE connection control (see #03827) 1Fh BYTE datastream type FEh terminate connection request packet FFh terminate connection acknowledgement packet other user-defined, ignored by SPX 20h WORD (big-endian) source connection ID 22h WORD (big-endian) destination connection ID 24h WORD (big-endian) sequence number 26h WORD (big-endian) acknowledge number 28h WORD (big-endian) allocation number SeeAlso: #03815 Bitfields for SPX connection control: Bit(s) Description (Table 03827) 3-0 unused??? 4 end of message 5 reserved 6 acknowledgement required 7 system packetTop
INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION BX = 0012h AH = watchdog flag (00h disabled, 01h enabled) AL = retry count (00h = default) ES:SI -> Event Control Block (see #03810 at BX=0003h) Return: nothing Notes: there should always be at least two SPX ECB's listening to a socket, so that NetWare can perform its internal packet exchanges this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0011h,BX=0013h,BX=0014hTop
INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION BX = 0013h DX = connection ID to terminate ES:SI -> Event Control Block (see #03810 at BX=0003h) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0011h,BX=0012h,BX=0014hTop
INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION BX = 0014h DX = connection ID to terminate Return: nothing Notes: this function is supported by Advanced NetWare 2.1+ this function does not tell the other side that the connection has been terminated also aborts any outstanding Establish Connection, Terminate Connection, and Send Sequenced Packet commands SeeAlso: BX=0011h,BX=0013hTop
INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS BX = 0015h DX = connection ID ES:SI -> status buffer (see #03828) Return: AL = return code (00h,EEh) (see also #03825) 00h connection still valid ES:SI -> status buffer filled Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0010h,BX=0011h Format of SPX status buffer: Offset Size Description (Table 03828) 00h BYTE connection state 01h waiting to establish connection 02h starting (attempting to create connection) 03h connection established 04h terminating 01h BYTE watchdog flag bit 0: used internally by SPX bit 1: SPX watchdog is monitoring connection bits 2-7 used internally by SPX 02h WORD (big-endian) source connection ID 04h WORD (big-endian) destination connection ID 06h WORD (big-endian) sequence number of next packet sent 08h WORD (big-endian) acknowledge number, expected sequence number of next received packet 0Ah WORD (big-endian) maximum sequence number remote SPX may send without ACK from local SPX 0Ch WORD (big-endian) remote acknowledge number, next sequence number remote SPX expects to receive 0Eh WORD (big-endian) remote allocation number, maximum sequence number local SPX may send 10h WORD (big-endian) connection socket 12h 6 BYTEs immediate node address--bridge on local network to destination 18h 10 BYTEs destination internetwork address (see #03824 at INT 7A/BX=000Bh) 22h WORD (big-endian) retransmit count 24h WORD (big-endian) estimated roundtrip delay 26h WORD (big-endian) retransmitted packets 28h WORD (big-endian) suppressed packets 2Ah 12 BYTEs ??? (v2.15)Top
INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET BX = 0016h DX = connection ID ES:SI -> Event Control Block (see BX=0003h) Notes: this function is supported by Advanced NetWare 2.1+ CX may need to be 0001h ??? SeeAlso: BX=0011h,BX=0017hTop
INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET BX = 0017h DX = connection ID (unused in v2.15) ES:SI -> Event Control Block (see BX=0003h) Notes: this function is supported by Advanced NetWare 2.1+ CX may need to be 0001h ??? SeeAlso: BX=0011h,BX=0016hTop
INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT BX = 0018h ES:SI -> diagnostic element (see #03829) to be added to Diagnostic Queue Note: this function is supported on file servers only under v2.15; v3.02 also supports it on workstations SeeAlso: BX=0019h Format of IPX diagnostic element: Offset Size Description (Table 03829) 00h DWORD pointer to next diagnostic element 04h DWORD pointer to function for ??? 08h DWORD pointer to function for ???Top
INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT BX = 0019h ES:SI -> diagnostic element (see BX=0018h) to be removed Note: this function is supported on file servers only under v2.15; v3.02 also supports it on workstations SeeAlso: BX=0018hTop
INT 7A - Novell NetWare - IPX Driver - GET DRIVER MAXIMUM PACKET SIZE BX = 001Ah Return: AX = maximum packet size with preamble (at least 576 bytes) CX = IPX retry count DS,FLAGS preserved SeeAlso: BX=000DhTop
INT 7A U - Novell NetWare - IPX Driver - INTERNAL BX = 001Bh ??? Return: ??? Notes: this function is supported on file servers only under v2.15; v3.02 also supports it on workstations used by NetWare Access Server, which may call INT 15/AX=1117h with BX=0000h in some cases (it uses a modified DESQview)Top
INT 7A U - Novell NetWare - NetWare Access Server - GET ??? BX = 001Ch Return: AX = length of ??? ES:BX -> ??? Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12 SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001EhTop
INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET BX = 001Dh Return: DX = socket number chosen by IPX ES:SI -> ECB in IPX's code segment (will be listening) BX corrupted Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12 SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001EhTop
INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB BX = 001Eh Return: ES:SI -> ECB BX corrupted Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12 SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001DhTop
INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX INFORMATION BX = 001Fh DX = 0000h Return: AX = ??? BX:CX -> ??? entry point (see #03830) (undocumented) DX = feature flags bit 0: IPXODI rather than dedicated IPX bit 1: checksumming functions 0020h-0022h supported ES:SI -> array of words containing used socket number (undocumented); 0000h ends array all other registers except DS and FLAGS may be destroyed Note: IPXODI v2.12 is distributed as part of the Personal NetWare system bundled with Novell DOS 7 SeeAlso: BX=0020h,INT 2F/AX=7A2Fh (Table 03830) Call IPXODI entry point with: ES:SI -> ECB??? (offset 24h is far pointer to ??? data)Top
INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM BX = 0020h ES:SI -> ECB (see #03810 at INT 7A/BX=0003h) Return: DS,FLAGS preserved BX,BP corrupted (documented as potentially destroying all other regs) Desc: generate a checksum for the packet data and store it in the IPX checksum field before transmitting the packet SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2FhTop
INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM BX = 0021h ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h) Return: ES,DS,SI preserved BX,BP corrupted, all other registers potentially destroyed Notes: the checksum and TransportControl fields of the IPX packet are updated this function enables interrupts and is fully reentrant SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2FhTop
INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM BX = 0022h ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h) Return: AX = status (0000h checksum matches) DS,ES,SI preserved BX,BP corrupted, all other registers potentially destroyed Note: this function enables interrupts and is fully reentrant SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2FhTop
INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET BX = 0023h DX = socket number (0000h for dynamic allocation) ES:SI -> Look Ahead handler (see #03831) BP = desired lookahead size (0000h-0080h) Return: AL = status 00h successful DX = assigned socket number (big-endian) FEh maximum number of sockets already open FFh specific socket already opened by another application DS,FLAGS preserved all other registers may be destroyed Notes: the socket will always be long-lived, and must thus be explicitly closed with INT 7A/BX=0001h before the Look Ahead handler code is removed from memory (i.e. the program terminates) this function is only supported if INT 2F/AX=7A00h returns ES:BX pointing at an IPX version greater than 3.30 the desired lookahead size is the smallest-size packet (including IPX header) that should be passed to the lookahead handler when it arrives SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h (Table 03831) Call IPX Look-Ahead handler with: AX = packet's destination socket DS:SI -> look-ahead structure (see #03010 at INT 2F/AX=C000h"LSL") DF clear interrupt disabled (must remain disabled) Return: AX = packet use 0000h application want packet ES:SI -> ODI ECB (see #03011 at INT 2F/AX=C000h"LSL") 8001h application does not want packet ZF set if AX=0000h DS,DI,BP,SS,SP preserved interrupts disabledTop
INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS BX = 0024h ES:SI -> buffer containing internetwork address (see #03824) Return: BX,CX,SI,DI,ES destroyed Note: this function differs from INT 7A/BX=000Ch in that it unconditionally sets the address SeeAlso: INT 7A/BX=000ChTop
INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1) AX = 0001h BX = configuration CX = interface level (0001h) Return: AX = status 0000h initialization failed 0001h pre-v4.0 driver initialized successfully 0003h post-v3.1 driver initialized successfully (driver truncates excessivly long packets) BX = width of graphics area in pixels, or 0000h if using packet communication DX:CX -> packet-mode entry point (see #03832) SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD" SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade" (Table 03832) Call packet-mode entry point with: STACK: DWORD pointer to request packet (see #03833) WORD length of packet Format of request packet: Offset Size Description (Table 03833) 00h WORD function number (00h-45h for Compaq VGADI41.EXE)Top
INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP) AX = 0200h BX = 0000h CX = interface level (0001h) Return: BX = 0000h (driver uses packet communication) DX:CX -> packet-mode entry point (see #03832) SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"Top
INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE AH = 04h ??? Return: ??? SeeAlso: AH=06hTop
INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE AH = 06h ??? Return: ??? SeeAlso: AH=04hTop
INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT AX = 07D0h Return: AX = ??? (0003h) BX = 0000h DX:CX -> ADI entry point (see AX=0001h) SeeAlso: AX=0001hTop
INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES AH = 09h BX = 8020h (synchronous request) CX = 0000h DX = ID of session manager (SESSMGR) AL = service (see #03834) ES:DI -> control block Return: ??? (Table 03834) Values for service: 01h get session ID 02h get session info 04h dettach from session 05h attach to session 06h get list of windows available 07h get environment of window 08h get 'PIF' (program information file) info 0Ah get base window ID 0Bh get cursor infoTop
INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES AH = 09h BX = 8020h (synchronous request) CX = 0000h DX = ID of keyboard manager AL = service number (see #03835) ES:DI -> control block Return: ??? (Table 03835) Values for 3270 Workstation Program keyboard service: 01h connect to keyboard 02h disconnect from keyboard 03h read from keyboard 04h send keystroke to session 05h disable input 06h enable input 07h update status codeTop
INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES AH = 09h BX = 8020h (synchronous request) CX = 00FFh DX = ID of window service controller (WSCTRL) AL = service number (see #03836) ES:DI -> control block Return: ??? (Table 03836) Values for 3270 Workstation Program window service: 01h connect to WS control 02h disconnect from WS control 03h add a window 04h change window's position on screen 05h change window's size 06h change window's color 07h change window's position in the presentation space 08h hide/unhide toggle 09h enlarge/reduce toggle 0Ah change screen background color 0Bh get window's position on screen 0Ch get window's size 0Dh get window's color 0Eh get window's position in the presentation space 0Fh determine whether hidden 10h determine whether enlarged 11h get background color 12h get window names 13h delete all windows from profile 14h pick active window 15h redraw screen 16h redraw window 17h delete a window from profile 18h get active window 19h get active screen 1Ah get window data 1Bh change window data 1Ch select active screenTop
INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES AH = 09h BX = 8020h CX = 00FFh DX = ID of PCPSM AL = service 01h define presentation space 02h delete presentation space 03h display presentation space 04h position cursor in presentation space 05h change default presentation space ES:DI -> control block Return: ???Top
INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION AH = 09h BX = 8020h CX = 00FFh DX = ID of 3270EML AL = service 01h connect 02h disconnect ES:DI -> control block Return: ???Top
INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA AH = 09h BX = 8020h CX = 00FFh DX = ID of OIAM AL = service 01h read Operator Information Area 02h read OIA subset ES:DI -> control block Return: ??? Note: the OIA is the 25th line on the Host sessionTop
INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA AH = 09h BX = 8020h CX = 00FFh DX = ID of XLATE AL = service 01h translate from host characters to ASCII and vice versa (determined by control block byte 11) ES:DI -> control block Return: ???Top
INT 7A - IBM 3270 Workstation Program API - COPY SERVICE AH = 09h BX = 8020h CX = 00FFh DX = ID of copy service AL = service 01h copy string from one presentation space to another 02h copy block from one presentation space to another 03h connect to PC session for copy 04h disconnect PC session from copy ES:DI -> control block Return: ???Top
INT 7A - IBM 3270 Workstation Program API - Multi-DOS AH = 09h BX = 8020h CX = 00FFh ES:DI -> control block DX = ID of INDJQRY get environment size = ID of INDJASY request DOS functions from workstation = ID of MEMORY AL = function 01h allocate memory 02h deallocate memory 03h modify allocated size Return: ???Top
INT 7A - IBM 3270 Workstation Program API - HOST SERVICES AH = 09h BX = request type (4000h async, 8028h synchronous) CX = 0000h DX = ID of MFIC AL = service (see #03837) ES:DI -> control block (Table 03837) Values for 3270 Workstation Program host service: 01h connect to host 02h disconnect from host 03h read DFT structured data from host 04h write DFT structured data to host 05h create a host bufferTop
INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE AH = 13h ??? Return: ???Top
INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE AH = 7Ah ??? Return: AX = status 0000h success 000Eh undefined function code Range: unknown, selected by device driver commandline argumentsTop
INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME AH = 81h ES:DI -> 8-char blank-padded gate name (see #03838) Return: DX = gate ID (Table 03838) Values for 3270 Workstation Program gate name: "SESSMGR " "KEYBOARD" "WSCTRL " "MFIC " "PCPSM " "3270EML " "COPY " "XLATE " "OIAM " "MEMORY " "INDJQRY " "INDJASY "Top
INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS AH = 83h ??? Return: ???Top
INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK AX = FDCBh Return: DX:AX -> PCS/3270 signature block if loaded (see #03839) Format of Personal Communications/3270 signature block: Offset Size Description (Table 03839) 04h WORD PCS/3270 signature (5741h) 06h WORD version (0501h = PCS/3270 v1.0)Top
INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION AX = FE01h ??? Return: ??? SeeAlso: AX=FE02hTop
INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION AX = FE02h ??? Return: ??? SeeAlso: AX=FE01hTop
INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION AX = FF01h ES:DI -> API function handler routine Return: CX = 1200h SeeAlso: AX=FF02h,AX=FF03hTop
INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION AX = FF02h Return: CX = 1200h SeeAlso: AX=FF01hTop
INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION AX = FF03h ES:DI -> send/receive function handler routine Return: CX = 1200h SeeAlso: AX=FF01hTop
INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ??? AX = FF04h ES:DI -> ??? Return: CX = 1200hTop
INT 7B - Btrieve API (single user) DS:DX -> 38-byte parameter record (see #03840) Return: return code field set Note: Btrieve sets low byte of vector to 33h; this serves as the installation check SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h Format of Btrieve parameter record: Offset Size Description (Table 03840) 00h DWORD pointer to data buffer 04h WORD data buffer length 06h DWORD pointer to 90-byte record containing positioning info (should be same for all calls for same file) 0Ah DWORD pointer to 38-byte FCB info buffer (should be same for all calls for same file) 0Eh WORD function code (see #03841) 10h DWORD pointer to file name/key buffer 14h BYTE key length 15h BYTE key number 16h DWORD pointer to status code (see #03842) 1Ah WORD interface code (version specific) 6176h version 5.10 (Table 03841) Values for function code: 00h open 01h close 02h insert 03h update 04h delete 05h get_equal 06h get_next 07h get_prev 08h get_greater 09h get_gr_eql 0Ah get_less 0Bh get_less_eq 0Ch get_first 0Dh get_last 0Eh create 0Fh stat 10h extend 11h set_dir: set directory information 12h get_dir: get directory information 13h begin_trans 14h end_trans 15h abort_trans 16h get_pos: get record position number 17h get_direct: get data by sending record position 18h step_next 19h stop 1Ah version 1Bh unlock 1Ch reset 1Dh set owner 1Eh clear owner 1Fh create supplemental index 20h drop supplemental index 21h step first 22h step last 23h step previous 24h get next extended: get multiple records using a filter 25h get previous extended: get multiple records using a filter 26h step next extended: get multiple records using a filter 27h step previous extended: get multiple records using a filter 28h insert extended: insert one or more records 31h ??? Notes: add 50 (32h) to any "get" operation to just return the key data add 100 (64h) for a single-record wait lock (automatically released on next get) add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h or 55h if record already locked) add 300 (12Ch) for a multiple-record wait lock (not released until unlock called) add 400 (190h) for a multiple-record nowait lock (nowait lock returns error 54h or 55h if record already locked) (Table 03842) Values for Btrieve status code: 00h successful 01h invalid operation 02h I/O error 03h file not open 04h key value not found 05h duplicate key value 06h invalid key number 07h different key number 08h invalid positioning 09h end of file 0Ah modifiable key value error 0Bh invalid file name 0Ch file not found 0Dh extended file error 0Eh pre-image open error 0Fh pre-image I/O error 10h expansion error 11h close error 12h disk full 13h unrecoverable error 14h record manager inactive 15h key buffer too short 16h data buffer length overrun 17h position block length 18h page size error 19h create I/O error 1Ah number of keys 1Bh invalid key position 1Ch invalid record length 1Dh invalid key length 1Eh not a Btrieve file 1Fh file already extended 20h extended I/O error 22h invalid extension name 23h directory error 24h transaction error 25h transaction is active 26h transaction control file I/O error 27h end/abort transaction error 28h transaction max files 29h operation not allowed 2Ah incomplete accelerated access 2Bh invalid record address 2Ch null key path 2Dh inconsistent key flags 2Eh access to file denied 2Fh maximum open files 30h invalid alternate sequence definition 31h key type error 32h owner already set 33h invalid owner 34h error writing cache 35h invalid interface 36h variable page error 37h autoincrement error 38h incomplete index 39h expanded memory error 3Ah compression buffer too short 3Bh file already exists 3Ch reject count reached 3Dh work space too small 3Eh incorrect descriptor 3Fh invalid extended insert 40h filter limit reached 41h incorrect field offset 4Ah automatic transaction abort 4Dh Btrieve engine busy or resource locked by another user 4Eh deadlock detected 50h conflict 51h lock error 52h lost position 53h read outside transaction 54h record in use 55h file in use 56h file table full 57h handle table full 58h incompatible open mode 5Ah redirected device table full 5Bh server error 5Ch transaction table full 5Dh incompatible lock type 5Eh permission error 5Fh session no longer valid 60h communications environment error 61h data message too small 62h internal transaction errorTop
INT 7B - Eicon Access API (3270/5250 gateways) SeeAlso: INT 5C"NetBIOS"Top
INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"Top
INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA AX = data length (0000h-7FFFh) CX:BX -> data to be plotted DX = vertical position of line on page Return: nothing Notes: This interrupt is called by AutoCAD to perform its output A data length of 0000h indicates that a blank line is to be output SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"Top
INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ??? Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its communication driverTop
INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API DS:DX -> parameter block (see #03844) Return: parameter block updated (Table 03843) Values for Novell XQL function number: 00h log in 01h log out 02h "tNewFcn" 03h "tFreeFcn" 04h "tMoveFldFcn" 05h "tFieldFcn" 06h "tDescribeFcn" 07h "tFetchFcn" 08h "tComputeFcn" 09h "tOrderFcn" 0Ah "tRestrictFcn" 0Bh "tJoinFcn" 0Ch "tInsertFcn" 0Dh "tUpdateFcn" 0Eh "tUpdallFcn" 0Fh "tRemoveFcn" 10h "tRemallFcn" 11h "tResetFcn" 12h "tTransFcn" 13h "tStatFcn" 14h "tDDCreFcn" 15h "tStoreFcn" 16h "tRecallFcn" 17h "tStopFcn" 18h "tDDFileFcn" 19h "tDDFieldFcn" 1Ah "tDDIndexFcn" 1Bh "tDDModFcn" 1Ch "tDDViewFcn" 1Dh "tDDDrpFcn" 1Eh "tDDPathFcn" 1Fh "tDDAttrFcn" 20h "tDDFcn" 21h "tSecurFcn" 22h "tUserFcn" 23h "tAccessFcn" 24h "tPswdFcn" 25h "tCharFcn" 26h "tVersionFcn" 27h "tCnvFcn" 28h "tValFcn" 29h "tMaskFcn" SeeAlso: #03844 Format of XQL parameter block: Offset Size Description (Table 03844) 00h 4 BYTEs signature "XQLP" 04h WORD function number (see #03843) 06h WORD handle 08h WORD status 0Ah WORD session ID 0Ch var data record (varies by function) ---function 00h--- 0Ch DWORD -> user name 10h DWORD -> password 14h DWORD -> dictionary 18h DWORD -> filepath 1Ch DWORD -> machine name 20h WORD process ID ---function 01h--- no additional fields??? ---function 02h--- 0Ch DWORD -> filename 10h DWORD -> owner name 14h WORD open mode ---function 03h--- no additional fields??? ---function 04h--- 0Ch WORD "frompos" 0Eh WORD "topos" ---function 05h--- 0Ch WORD subfunction 0Eh WORD position 10h WORD count 12h DWORD -> field list ---function 06h--- 0Ch WORD subfunction 0Eh WORD length of description 10h WORD position 12h WORD count 14h DWORD pointer to description list ---function 07h--- 0Ch WORD data length 0Eh WORD "op" 10h DWORD "select" 14h DWORD "reject" 18h DWORD pointer to data buffer ---function 08h--- 0Ch DWORD -> field name 10h WORD field type 12h WORD field size 14h WORD "flddec" 16h WORD "explen" 18h DWORD pointer to "expbuf" ---function 09h--- 0Ch WORD count 0Eh DWORD -> field list ---function 0Ah--- 0Ch WORD "newexp" 0Eh WORD "explen" 10h DWORD -> "expbuf" ---function 0Bh--- 0Ch DWORD -> filename 10h DWORD -> owner name 14h WORD type of join 16h WORD "pCount" 18h DWORD -> "pNames" 1Ch WORD "sCount" 1Eh DWORD -> "sNames" ---functions 0Ch, 0Dh, 0Fh--- 0Ch WORD file count 0Eh DWORD -> file list 12h DWORD count 16h DWORD -> buffer ---function 0Eh--- 0Ch WORD file count 0Eh DWORD -> file list 12h WORD "op" 14h DWORD "select" 18h DWORD "reject" 1Ch WORD count 1Eh DWORD -> "res" 22h DWORD -> "comp" ---function 10h--- 0Ch WORD file count 0Eh DWORD -> file list 12h WORD "op" 14h DWORD "select" 18h DWORD "reject" ---function 11h--- 0Ch DWORD machine name ---function 12h--- 0Ch WORD option ---function 13h--- 0Ch WORD subfunction 0Eh WORD length of buffer 10h DWORD -> buffer ---function 14h--- 0Ch WORD subfunction 0Eh DWORD -> filename 12h WORD "create" 14h DWORD -> pathname 18h DWORD -> owner name 1Ch WORD owner access restrictions 1Eh WORD number of fields 20h DWORD -> field list 24h WORD number of keys 28h DWORD -> key list 2Ch WORD "buflen" 2Eh DWORD -> create parameters ---function 15h--- 0Ch DWORD -> "StoreName" 10h WORD length of buffer 12h DWORD -> buffer ---function 16h--- 0Ch DWORD -> "RecallName" 10h WORD owner number 12h DWORD -> owner list 16h WORD open mode 18h WORD length of buffer 1Ah DWORD -> buffer ---function 17h--- no additional fields??? ---function 18h--- 0Ch WORD "rtype" 0Eh WORD count 10h DWORD -> "filebuf" 14h WORD length of following buffer 16h DWORD -> output buffer ---functions 19h, 1Ah--- 0Ch WORD "rtype" 0Eh WORD count 10h DWORD -> field buffer 14h WORD length of following buffer 16h DWORD -> output buffer ---function 1Bh--- 0Ch WORD subfunction 0Eh DWORD -> filename 12h WORD "create" 14h DWORD -> pathname 18h DWORD -> owner name 1Ch WORD owner access restrictions 1Eh WORD field count 20h DWORD -> field list 24h WORD number of keys 26h DWORD -> list of keys ---function 1Ch--- 0Ch WORD count 0Eh DWORD -> view name 12h WORD length of following buffer 14h DWORD -> output buffer ---function 1Dh--- 0Ch DWORD -> filename 10h WORD file type 12h WORD "deletepath" ---function 1Eh--- 0Ch WORD "dirtype" 0Eh DWORD -> pathname ---function 1Fh--- 0Ch WORD function 0Eh DWORD -> field name 12h WORD attribute 14h WORD size of buffer 16h DWORD -> buffer for attributes ---function 20h--- 0Ch DWORD -> directory path 10h WORD function ---function 21h--- 0Ch DWORD -> master password 10h WORD "securityflag" ---function 22h--- 0Ch DWORD -> master password 10h WORD function (add/modify/remove) 12h DWORD -> user name 16h DWORD -> password 1Ah WORD global rights 1Ch WORD count 1Eh WORD length of following buffer 20h DWORD -> "userbuf" ---function 23h--- 0Ch DWORD -> master password 10h DWORD -> user name 14h WORD function (allow/deny/getrights) 16h WORD rights 18h DWORD -> filename 1Ch WORD number of field names in following buffer 1Eh DWORD -> field names 22h WORD maximum buffer length 24h DWORD -> output buffer ---function 24h--- 0Ch DWORD -> user name 10h DWORD -> password ---function 25h--- 0Ch WORD "charFcn" 0Eh WORD "charType" 10h WORD "charValue" ---function 26h--- 0Ch DWORD -> buffer ---function 27h--- 0Ch WORD option 0Eh WORD type 10h WORD size 12h WORD "dec" 14h WORD "dsize" 16h DWORD -> value 1Ah DWORD -> "retval" 1Eh DWORD -> mask 22h WORD "justify" ---function 28h--- 0Ch DWORD -> field name 10h WORD length of buffer 12h DWORD -> buffer for data ---function 29h--- 0Ch WORD option 0Eh WORD type 10h WORD size 12h WORD "dec" 14h WORD length of mask 16h DWORD -> maskTop
INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT AX = 8001h BX = file level 0000h binary file 0001h CAD/camera image file 0002h installed ADI driver CX = horizontal size in pixels DX = vertical size in pixels Return: AX = status (0000h initialization failed, 0001h init successful) BX = allowed output format 0000h monochrome 0001h color (4 bits per pixel) SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"Top
INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT AX = 8002h SeeAlso: AX=8001h,AX=8003hTop
INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT AX = 8003h SeeAlso: AX=8001h,AX=8002hTop
INT 7C U - IBM REXX88PC command language ???Top
INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4 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 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"Top
INT 7C - PRINDIR v8.02-8.xx - API AH = function 00h set output to Invisible mode 01h set output to LPT1 02h set output to LPT2 03h set output to LPT3 04h set output to COM1 05h set output to COM2 06h set output to COM3 07h set output to COM4 08h set output to screen 09h set output to file 0Ah change file path ES:DI -> new path CX = length of path (max 41, but not range-checked) 0Bh change file name ES:DI -> new filename CX = length of new name (max 41, but not range-checked) 0Ch set redirected device (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4) 0Dh force buffer dump 0Eh set display color AL = new color attribute (see #00014 at INT 10/AH=08h) 0Fh set popup hotkey AL = hotkey scancode 10h toggle byte display AL = new state (00h off, 01h on) 11h change buffer flush delay AL = timer ticks before flush Return: AX = status 0000h successful 0001h invalid function or nothing in buffer to be dumped (documented as "nonzero = error") Program: PRINDIR is a shareware printer-redirection program by J.M. Allen Creations InstallCheck: test for the ASCIZ signature "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond the start of the interrupt handler Note: prior versions of PRINDIR used INT 7A instead of INT 7C SeeAlso: INT 7A"PRINDIR",INT 2F/AX=7F00h"PRINDIR" Index: hotkeys;PRINDIRTop
INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER Note: this is the default interrupt vector for rendering hardcopy drivers instead of INT 7A used by AutoCAD drivers SeeAlso: INT 7A/AX=0001h"AutoCAD"Top
INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of it Data Link Interface, allowing the use of any of several network transport layers; this product is called SK-PASSPORT in the USA. InstallCheck: test for the ASCII signature string "UPPS_DLI" immediately preceding the interrupt handler Notes: To find the service interrupt being used by the driver, an application should scan through the interrupt table until it finds an interrupt vector with the "UPPS_DLI" string. There may be more than one DLI loaded, each having its own service interrupt. SeeAlso: AX=0000h,AX=0002h,AX=000Fh Index: installation check;SK-UPPSTop
INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
AX = 0000h
Return: AH = major DLI version
AL = minor DLI version
DX = OEM signature (see #03845)
CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
(Table 03845)
Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
0001h experimental
3343h ('3C') 3COM
4942h ('IB') IBM
4943h ('IC') Intellicom
494Eh ('IN') Intel
4B4Fh ('KO') Kodiak
4D41h ('MA') Madge
4E45h ('NE') Novell
4F43h ('OC') Olicom
5349h ('SI') Siemens
534Bh ('SK') Schneider & Koch (SysKonnect)
5744h ('WD') Western Digital
Top
INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER AX = 0001h Return: AX = completion code (see #03846) Note: the DLI will refuse to unload if there are any protocols (see AX=0007h) or clients (see AX=0010h) active. Index: uninstall;SK-UPPS Data Link Interface (Table 03846) Values for SK-UPPS completion code: 0000h SUCCESS 0005h INVALID_MULTICAST 0006h BUFFER_TOO_SMALL 0007h NO_BUFFERS_LEFT 0008h NO_RESOURCES_LEFT 000Bh ILLEGAL_PROTOCOL_ID 000Ch PROTOCOL_IN_USE 000Dh NO_MULTICAST_ADDRESS 000Fh PROTOCOLS_ACTIVE 0010h CLIENTS_ACTIVE 001Bh INVALID_MODE 001Ch MODE_NOT_SUPPORTED FFFFh UNKNOWN_SERVICETop
INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS AX = 0002h ES:DI -> Status Information Block (SIB) (see #03858) Return: AX = completion code (see #03846) Note: GET DRIVER INFO (AX=000Eh) should be used instead. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000EhTop
INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS AX = 0003h ES:DI -> new node address (6 bytes) Return: AX = completion code (see #03846) Note: the DLI will refuse to change the address if any protocols (see AX=0007h) are active SeeAlso: AX=0001h,AX=000EhTop
INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER AX = 0004h DX = protocol ID (see AX=0007h,#03849) Return: AX = completion code (see also #03846) 0000h successful ES:BX -> Memory Buffer (Mbuf) (see #03847) Note: if the DLI has no free Mbufs, it will set an internal flag for the protocol and later call the protocol's Event Upcall with EV_BUFFER_AVAILABLE (see #03853,#03854) as soon as an Mbuf becomes available. There will only be one "buffer available" Upcall, even if this function has been called several times before. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h Format of SK-UPPS Memory Buffer (Mbuf): Offset Size Description (Table 03847) 00h DWORD -> NEXT Mbuf (linked list) 04h WORD OFFSET of actual data within DATA area 06h 2 BYTEs reserved (currently unused) 08h WORD LENGTH of actual data found in DATA area starting at OFFSET 0Ah 2 BYTEs reserved (currently unused) 0Ch DWORD -> DATA area (size can be obtained via AX=000Eh call) 10h WORD PROTOCOL ID of protocol currently "owning" the Mbuf 12h BYTE IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h) 13h BYTE RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)Top
INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER AX = 0005h ES:BX -> Mbuf (see #03847) Return: nothing SeeAlso: AX=0004hTop
INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME AX = 0006h ES:BX -> Mbuf (see #03847) Return: nothing Notes: The DLI will send LENGTH bytes found in the Mbuf's DATA area starting at OFFSET. A complete and valid frame must be stored there. The DLI will only copy the current node address (see AX=0003h) to the source node field of the frame's MAC header. On Ethernet, the DLI will always send a minimum of 60 bytes, regardless of the value found in the LENGTH field. This function returns immediately; the DLI will call the protocol's Transmit Upcall (see #03848) when the frame has been sent. The Mbuf's IN USE field will be non-zero until the DLI calls the Transmit Upcall. SeeAlso: AX=0002h,AX=0004h,AX=0013h (Table 03848) Values SK-UPPS Transmit Upcall is called with: ES:BX -> Mbuf (NEXT field destroyed) interrupts disabled Note: On FDDI the bytes of the source and destination node fields in the MAC header have been bit-swapped to physical address format.Top
INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL AX = 0007h ES:BX -> Protocol Control Block (see #03849) Return: AX = completion code (see #03846) Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers SeeAlso: AX=0008h,AX=000Bh Format of SK-UPPS Protocol Control Block (PCB): Offset Size Description (Table 03849) 00h WORD (big-endian) protocol type 02h WORD protocol mode (see #03850) 04h DWORD -> Receive Upcall routine (see #03851) 08h DWORD -> Transmit Upcall routine 0Ch DWORD -> Event Upcall routine (see #03853) 10h DWORD -> ASCIZ protocol name (zero if none) 14h WORD protocol ID will be returned here (always non-zero) Bitfields for SK-UPPS protocol mode: Bit(s) Description (Table 03850) 0 promiscuous mode; protocol receives all frames regardless of their destination (PROTOCOL TYPE must be FFFFh) 1 if set, protocol's Event Upcall will be called on entry and exit of the DLI's Interrupt Service Routine (see #03854) 2 DLI 2.2+ hook mode; protocol receives all directed frames destined for this station (PROTOCOL TYPE must be FFFFh) 3 DLI 2.3+ receive error frames (only valid in promiscuous mode (0)) 4-5 DLI 2.5+ frame type: 00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low) 01 IEEE 802.2; specify Service Access Point (SAP) in MSB (offset 0) of PROCOTOL TYPE field; LSB must be zero 10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE field (high-low) 11 reserved (currently unused) 6 DLI 2.5+ if set, protocol's Event Upcall will be called with event code EV_BUFFER_WANTED, when DLI runs out of Mbufs 7 DLI 2.7+ chain mode; if set, client allows the specified frame type to be shared with other clients 8 DLI 2.8+ receive non-LLC frames rather than LLC frames 9 DLI 2.8+ receive all multicast frames (see also AX=0009h) 10-15 reserved (currently unused; must be zero) Notes: If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook" mode is set, the protocol receives all frames that did not match any registered frame type (demultiplexor mode). Protocols using "promiscuous", "hook" or "chain" mode should always return from the Receive Upcall with the received Mbuf in ES:BX and the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK BUFFER function (see AX=000Fh). Some DLIs do not support all or even any of the "promiscuous", "receive non-LLC" and "receive all multicasts" mode bits. SeeAlso: #03849 (Table 03851) Values SK-UPPS Receive Upcall is called with: ES:BX -> Mbuf AX = receive status (see #03852) (also stored in Mbuf's RECEIVE STATUS field) interrupts disabled Return: nothing SeeAlso: #03853 Bitfields for SK-UPPS receive status: Bit(s) Description (Table 03852) 0-2 reserved (0), currently unused 3 frame check sequence (FCS) error 4 overflow (frame too long) 5 framing error 6 reserved (0), currently unused 7 non-LLC frame (see #03850 [bit 8]) 8-15 reserved (0), currently unused Notes: The protocol's Receive Upcall routine will be called whenever a frame matching the specified frame type is received. A received frame is passed to the protocol in the Mbuf's DATA area at OFFSET and its size is LENGTH bytes. The receive status passed to the Receive Upcall in register AL is always zero, except for protocols using "non-LLC" mode (8 of PCB's protocol mode field) or "promiscuous" mode together with "receive error frames" (0 & 3). Upcalls are FAR routines and must return with a RET FAR. If the Carry Flag is set on return from a Receive or Transmit Upcall, then ES:BX must point to an Mbuf, which the DLI will then pass to the RELEASE BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE. (Table 03853) Values SK-UPPS Event Upcall is called with: AX = event code (see #03854) Return: nothing Note: All Event Upcalls may be ignored by the protocol. SeeAlso: #03851 (Table 03854) Values for SK-UPPS Event Upcall event code: 00h EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h) 01h EV_ISR_START start of Interrupt Service Routine 02h EV_ISR_END end of ISR (see #03850 [bit 1]) 03h EV_BUFFER_WANTED DLI temporarily out of Mbufs 04h EV_NETWORK_STATUS DLI 2.8+ network status -- DX=status (see #03855) 05h EV_IO_CONTROL DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h) SeeAlso: #03853 Bitfields for EV_NETWORK_STATUS in register DX: Bit(s) Description (Table 03855) Token-Ring FDDI 15 SIGNAL_LOSS SIGNAL_LOSS 14 HARD_ERROR HARD_ERROR 13 SOFT_ERROR SOFT_ERROR 12 TRANSMIT_BEACON TRANSMIT_BEACON 11 LOBE_WIRE_FAULT PATH_TEST_FAILED 10 AUTO_REMOVAL SELF_TEST_REQUIRED 9 reserved reserved 8 REMOVE_RECEIVED REMOTE_DISCONNECT 7 COUNTER_OVERFLOW reserved 6 SINGLE_STATION DUPLICATE_ADDRESS 5 RING_RECOVERY NO_RING_OP_STATUS 4 reserved VERSION_MISMATCH 3 reserved STUCK_BYPASS 2 reserved FDDI_EVENT 1 reserved RING_OP_CHANGE 0 reserved reserved Note: EV_NETWORK_STATUS is not supported on EthernetTop
INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL AX = 0008h BX = protocol ID (see #03849) Return: AX = completion code (see #03846) Note: the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if they had been given to TRANSMIT FRAME RELEASE (AX=0013h). all multicast addresses registered for this protocol will be disabled. after this function returns, the protocol's Upcall routines will no longer be called. SeeAlso: AX=0007h,AX=000BhTop
INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST AX = 0009h BX = protocol ID (see #03849) ES:DI -> multicast address (6 bytes) Return: AX = completion code (see #03846) Notes: The broadcast address is always enabled. Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call (AX=0007h) to receive all multicast frames. SeeAlso: AX=000Ah,AX=0014hTop
INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST AX = 000Ah BX = protocol ID (see #03849) ES:DI -> multicast address (6 bytes) Return: AX = completion code (see #03846) SeeAlso: AX=0009h,AX=0014hTop
INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST AX = 000Bh ES:DI -> protocol ID buffer CX = number of 2-byte protocol IDs that may be stored in buffer Return: AX = completion code (see #03846) CX = number of active protocols (regardless of value returned in AX) protocol ID buffer filled with active protocol IDs Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers Note: If the buffer supplied is too small, CX still contains the total number of active protocols and the buffer has been filled until full. SeeAlso: AX=000Ch,AX=0014hTop
INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS AX = 000Ch BX = protocol ID (see #03849,AX=000Bh) ES:DI -> Protocol Status Block (see #03856) Return: AX = completion code (see #03846) SeeAlso: AX=000Bh,AX=0014h Format of SK-UPPS Protocol Status Block (PSB): Offset Size Description (Table 03856) 00h DWORD -> ASCIZ protocol name 04h WORD protocol mode (see #03850) 06h WORD protocol type (see AX=0007h) 08h WORD number of registered multicasts (see AX=0009h,AX=0014h)Top
INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS AX = 000Dh BX = flag: 0=don't clear statistics, 1=clear statistics ES:DI -> Statistics Data Block (see #03857) Return: AX = completion code (see #03846) SeeAlso: AX=0002h,AX=0015h Format of SK-UPPS Statistics Data Block (SDB): Offset Size Description (Table 03857) 00h DWORD node uptime in ticks (1/18.21 sec.) 04h DWORD bytes received 08h DWORD bytes transmitted 0Ch DWORD frames received 10h DWORD frames transmitted 14h DWORD multicast bytes received 18h DWORD multicast frames received 1Ch DWORD unrecognized frames 20h WORD missed frames 22h WORD frame check sequence (FCS) errors 24h WORD framing errors 26h WORD babbling errors 28h WORD late collision errors 2Ah WORD loss of carrier errors 2Ch WORD 16 retries failed errors 2Eh WORD overflow errors Note: fields 26h through 2Ch are always zero, except in some very old versions of the DLI. Use GET MEDIA STATISTICS (AX=0015h) to get more detailed information.Top
INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO AX = 000Eh ES:DI -> Driver Information Block (see #03858) BX = offset of 1st field within DIB to be returned CX = number of bytes to be returned Return: AX = completion code (see #03846) CX = number of bytes copied (regardless of value returned in AX) Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h Format of SK-UPPS Driver Information Block (DIB): Offset Size Description (Table 03858) 00h 6 BYTEs physical node address (from adapter's ROM) 06h 6 BYTEs current node address (see AX=0003h) 0Ch BYTE adapter id (defined by OEM) 0Dh BYTE IRQ line (FFh if none) 0Eh DWORD -> shared memory (zero if none) 12h DWORD size of shared memory (zero if none) 16h WORD base I/O port (zero if none) 18h BYTE DMA line (FFh if none) 19h BYTE DLI 2.4+ topology (see AX=0000h) 1Ah WORD size of an Mbuf's DATA area (see #03847) 1Ch 2 BYTEs reserved (currently unused) 1Eh WORD total number of Mbufs the DLI has 20h WORD maximum number of Mbufs that can be allocated via REQUEST BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h) ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h) 22h DWORD -> ASCIZ adapter name 26h WORD number of I/O ports used (zero if none) 28h DWORD line speed in bits/sec.Top
INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER AX = 000Fh ES:BX -> Mbuf (see #03847) Return: nothing Notes: A protocol may call this function instead of returning the Mbuf directly from the Receive Upcall if it is running in "promiscuous", "hook" or "chain" mode. SeeAlso: AX=0007hTop
INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK AX = 0010h Return: nothing Notes: An application having no active protocols may call this function to prevent the DLI from unloading. SeeAlso: AX=0001h,AX=0011hTop
INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK AX = 0011h Return: nothing Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers SeeAlso: AX=0010hTop
INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER AX = 0012h DX = protocol ID (see #03849) Return: AX = completion code (see #03846) if AX=0000h: ES:BX -> Mbuf (see #03847) Note: If the protocol wants to be informed when an Mbuf becomes available, REQUEST BUFFER (AX=0004h) should be used instead. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013hTop
INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE AX = 0013h ES:BX -> Mbuf (see #03847) Return: nothing Notes: Returns immediately; The protocol's Transmit Upcall will NOT be called. The Mbuf may no more be used by the protocol in any way (i.e. the Mbuf's IN USE field may not be polled). SeeAlso: AX=0004h,AX=0013hTop
INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST AX = 0014h BX = protocol ID (see #03849,AX=000Bh) ES:DI -> multicast address buffer CX = number of 6-byte multicast addresses that may be stored in buffer Return: AX = completion code (see #03846) CX = number of registered multicast addresses for this protocol (regardless of value returned in AX) multicast address buffer filled with multicast addresses registered for this protocol Note: If the buffer supplied is too small, CX still contains the total number of registered multicast addresses for this protocol and the buffer has been completely filled SeeAlso: AX=000Bh,AX=0009h,AX=000ChTop
INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS AX = 0015h ES:DI -> media-specific statistics buffer (see #03859,#03860,#03861) BX = offset of 1st field within MSS to be returned CX = number of bytes to be returned Return: AX = completion code (see #03846) CX = number of bytes copied (regardless of value returned in AX) Note: not supported by all DLIs (will return AX=FFFFh if not supported). SeeAlso: AX=0000h,AX=000Dh Format of SK-UPPS media-specific statistics for Ethernet: Offset Size Description (Table 03859) 00h DWORD alignment errors 04h DWORD frame check sequence (FCS) errors 08h DWORD single collision frames 0Ch DWORD multiple collision frames 10h DWORD signal quality error (SQE) test errors 14h DWORD deferred transmissions 18h DWORD late collisions 1Ch DWORD excessive collisions 20h DWORD internal MAC transmit errors 24h DWORD carrier sense errors 28h DWORD excessive deferrals 2Ch DWORD frame too longs 30h DWORD in range length errors 34h DWORD out of range length fields 38h DWORD internal MAC receive errors Format of SK-UPPS media-specific statistics for FDDI: Offset Size Description (Table 03860) 00h DWORD SMT operating version id (refer to ANSI 7.1.2.2) 04h DWORD SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B, 5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3) 08h DWORD SMT frames sent 0Ch DWORD SMT frames received 10h DWORD SMT ring up count 14h 6 BYTEs MAC upstream neighbour 1Ah 6 BYTEs MAC downstream neighbour 20h DWORD MAC frame counter (refer to ANSI MAC 2.2.1) 24h DWORD MAC error counter ( " ) 28h DWORD MAC lost counter ( " ) 2Ch BYTE port 1 link error estimate (ranges from 10**-4 to 10**-15 and is reported as the absolute value of the exponent) 2Dh BYTE port 2 link error estimate ( " ) 2Eh 2 BYTEs reserved (currently unused) 30h DWORD attachment class: 1=single-attachment (S PORT), 2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs) 34h DWORD attachment optical bypass present: 1=true, 2=false Format of SK-UPPS media-specific statistics for Token-Ring: Offset Size Description (Table 03861) 00h 6 BYTEs upstream neighbour 06h WORD local ring number 08h DWORD ring up count 0Ch DWORD signal loss errors 10h DWORD lobe wire faults 14h DWORD ring recovery count 18h DWORD line errors 1Ch DWORD burst errors 20h DWORD ARI/FCI errors 24h DWORD lost frame errors 28h DWORD receive congestion errors 2Ch DWORD frame copied errors 30h DWORD token errors 34h DWORD DMA bus errors 38h DWORD DMA parity errors 3Ch DWORD receive overflow errorsTop
INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL AX = 0016h DX = subfunction; bits 14-15 specify direction of I/O: 00 no data at all (ES:BX undefined) 01 driver -> application (GET) 10 application -> driver (SET) 11 both directions (GET/SET) ES:BX -> I/O buffer (optional) CX = size of buffer (if ES:BX valid) Return: AX = completion code; defined by OEM Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers Notes: not supported by all DLIs (will return AX=FFFFh if not supported) subfunction codes are defined by OEMs SeeAlso: AX=0001hTop
INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST AX = 0017h Return: AX = completion code (see #03846) Notes: not supported by all DLIs (will return AX=FFFFh, if not supported). must be called with interrupts disabled; when the client re-enables interrupts, an interrupt will be generated and reported to the client through an Event Upcall (see #03853 [EV_ISR_START/EV_ISR_END]) SeeAlso: AX=0007hTop
INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT Note: this interface has been moved to INT 2D; there are no known implementations on INT 7D SeeAlso: INT 2D"AMIS",INT 2F"NOTES"Top
INT 7D U - YTERM 1.4 - CLOCK SUPPORT SeeAlso: INT 7E"YTERM"Top
INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0D"IRQ5",INT 7C"GO32",INT 7E"GO32"Top
INT 7D - HyperPAD v2.2 - API ACCESS Note: this vector is hooked but immediately passed on (without checking whether the previous handler was 0000h:0000h). The sole purpose of this vector is to provide the address of the data area described below (see #03862). Format of HyperPAD data area: Offset Size Description (Table 03862) -16h DWORD pointer to ??? FAR function -12h DWORD pointer to callback setting function [C calling conventions, (*callback)(int (_loadds far *)()) ] -0Eh 6 BYTEs signature "BRC001" -08h DWORD pointer to previous INT 7D handler -04h DWORD pointer to ??? data 00h HyperPAD INT 7D handlerTop
INT 7D - IBM DOS 6.1 E.EXE - ??? Note: E.EXE checks whether this interrupt is in use (not 0000h:0000h), and if it is used, attempts to load E55VGA.EX instead of the default E.EX overlay. However, E55VGA.EX is not included in IBM DOS 6.1.Top
INT 7D - SCSILink - RESET SCSI BUS AH = 00h Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted cross assemblers and similar products to communicate with Cross Products hardware debuggers Desc: reset all devices on the SCSI bus InstallCheck: test for the signature "SCSILINK" immediately prior to the interrupt handler Index: installation check;SCSILinkTop
INT 7D - SCSILink - CONNECT TO TARGET AH = 01h AL = target ID Return: CF clear if successful CF set on error AL = initiator error AH = target error Desc: arbitrate the use of the bus and select the specified target deviceTop
INT 7D - SCSILink - SEND COMMAND AH = 02h ES:BX -> parameter block (see #03863) Return: CF clear if successful CF set on error AL = initiator error AH = target error Desc: send the specified command block to the target device and perform any related I/O Format of SCSILink parameter block: Offset Size Description (Table 03863) 00h DWORD size of command block 04h DWORD address of command block (see #03864) 08h DWORD size of buffer 0Ch DWORD address of buffer Format of SCSILink command block: Offset Size Description (Table 03864) 00h info not yet availableTop
INT 7D - SCSILink - SET TIMEOUT AH = 03h AL = timeout selector (see #03865) BX = new value in 55ms ticks Desc: change an internal timeout value to allow communication with very slow targets (Table 03865) Values for SCSILink timeout selector: 00h time to wait for bus (default 18) 01h time to wait for new phase (default 5) 02h maximum time to send/receive block (default 18) 03h time to wait for reselect (default 180)Top
INT 7D - SCSILink - GET ERROR STRING AH = 04h AL = error number Return: ES:BX -> ASCIZ error string for error numberTop
INT 7D - SCSILink - GET ADDRESS AH = 05h Return: AL = DMA channel AH = initiator ID BX = card address Desc: determine the current hardware configurationTop
INT 7D - SCSILink - PUT DATA AH = 06h CX = number of bytes to store (0001h-0100h) ES:BX -> data to be saved Return: CF clear if successful CF set on error AL = error code (01h = too much data) Note: the specified data is stored in SCSILink's PSP SeeAlso: AH=07hTop
INT 7D - SCSILink - GET DATA AH = 07h CX = number of bytes to retrieve (0001h-0100h) ES:BX -> buffer for data Return: CF clear if successful CF set on error AL = error code (01h = too much data) Note: retrieve data previously stored with AH=06h SeeAlso: AH=06hTop
INT 7D - SCSILink - TERMINATE SESSION AH = 08h Desc: indicate to any other programs that intercept INT 7D that the program has finished with the link Note: the program should call this function even if a SCSI error caused its terminationTop
INT 7D - SCSILink - POLL REQUEST AH = 09h AL = target ID Return: AL = status FEh resident driver experienced SCSI error FFh resident driver handleded event Desc: give any drivers chained onto INT 7D a chance to handle an exception not specifically handled by the calling program Notes: this service exists so that resident disk servers, etc. can continue running even while debuggers and profilers are active the resident driver assumes that a connection has been established and attempts to leave the target connectedTop
INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARYTop
INT 7E U - YTERM 1.4 - ??? SeeAlso: INT 7D"YTERM",INT 7F"YTERM"Top
INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6 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 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0E"IRQ6",INT 7D"GO32",INT 7F"GO32"Top
INT 7E - MaxSBOS v0.21 - GET ??? AH = 00h Return: DX:AX -> ??? SeeAlso: AH=01h,AH=02h,AH=03hTop
INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE AX = 0001h DX = game device handle BL = MIDI byte to send??? ??? Return: EAX = status 00000000h if successful FFFFFFFFh on error (function disabled) Program: IWSBSDRV is the resident portion of the InterWave SBOS sound card emulator for the Gravis UltraSound Plug-and-Play Note: this function is only supported if the MIDISIMPLE device has been opened via the InterWave Game API (see INT 2F/AX=CD21h) SeeAlso: AX=0002h,INT 2F/AX=CD21h,#03074Top
INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING AX = 0002h DX = game device handle ES:EDI -> buffer containing MIDI string to be sent ECX = length of buffer in bytes Return: EAX = status 00000000h if successful FFFFFFFFh on error (function disabled) Note: this function is only supported if the MIDISIMPLE device has been opened via the InterWave Game API (see INT 2F/AX=CD21h) SeeAlso: AX=0001h,INT 2F/AX=CD21h,#03074Top
INT 7E - SBOS v3.82 - SET ??? AX = 00F6h BL = ??? (max. 20h, value will be set to 20h if BL greater) Return: AX=00F9h,AX=00FEhTop
INT 7E - SBOS v3.82 - GET ??? AX = 00F7h Return: AX = status 0000h failed 0001h successful BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh) CH = ??? CL = ??? SeeAlso: AX=00F6h,AX=00FDh,AX=00FFhTop
INT 7E - SBOS v3.82 - SET ??? AX = 00F9h BX = ??? SeeAlso: AX=00F6h,AX=00FBh,AX=00FDhTop
INT 7E - SBOS v3.82 - SET ??? AX = 00FBh BL = ??? SeeAlso: AX=00F6h,AX=00FDh,AX=00FFhTop
INT 7E - SBOS v3.82 - SET ??? AX = 00FDh BL = ??? (max. 20h, value will be set to 20h if BL greater) SeeAlso: AX=00F9h,AX=00FEhTop
INT 7E - SBOS v3.82 - UNINSTALL AX = 00FEh Return: AX = status 0000h successful 00FCh unable to unhook INT 21 00FDh unable to unhook INT 09 00FEh unable to release memory Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound InstallCheck: test for the ASCII signature "SBOS" at offset 0Ah in the interrupt handler's segment (similar to one of the possible EMS installation checks) Range: SBOS may use INT 78-INT 7F Note: this function may not be called if any SBOS vectors have been hooked SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"Top
INT 7E - SBOS v3.82 - SET INTERRUPT FOR ??? AX = 00FFh BL = new interrupt vector to hook Return: BX = 03CDh if supported Desc: unhooks the current interrupt handler for ???, and reconnects it to the specified new interrupt number SeeAlso: AX=00F7h,AX=00F9h,AX=00FEhTop
INT 7E - MaxSBOS v0.21 - ??? AH = 01h ??? Return: ??? Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis UltraSound MAX Range: INT 78-INT 7F, selected by commandline parameter Note: the installation check is the same as for 'regular' SBOS (see AX=00FEh) although the API in v0.21 does not provide the functions present in the older SBOS SeeAlso: AX=00FEh,AH=02h,AH=03hTop
INT 7E - MaxSBOS v0.21 - ??? AH = 02h Return: AX = FFFFh SeeAlso: AX=00FEh,AH=01h,AH=03hTop
INT 7E - MaxSBOS v0.21 - NOP AH = 03h Return: nothing SeeAlso: AX=00FEh,AH=01h,AH=02hTop
INT 7E - XLOAD - INSTALLATION CHECK AX = 5857h BL = 57h Return: AX = 0000h if installed Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5BhTop
INT 7E - XLOAD - GET ??? AX = 5857h BL = 5Ah Return: AX = 0000h CX = ??? DS:SI -> ??? SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5BhTop
INT 7E - XLOAD - GET XLOAD MEMORY SIZE AX = 5857h BL = 5Bh Return: AX = 0000h CX = segment of XLOAD TSR DX = size of memory block in which XLOAD TSR is located SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5AhTop
INT 7E - IWSBSDRV v1.41 - GET ??? AL = 80h Return: DX:AX -> ??? SeeAlso: AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87hTop
INT 7E - IWSBSDRV v1.41 - ??? AL = 81h ??? Return: ??? SeeAlso: AL=80h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87hTop
INT 7E - IWSBSDRV v1.41 - GET ??? AL = 82h Return: AX = ??? (FFFFh) SeeAlso: AL=80h,AL=81h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87hTop
INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD) AL = 83h ??? Return: ??? SeeAlso: AL=80h,AL=81h,AL=82h,AL=84h,AL=85h,AL=86h,AL=87h SeeAlso: INT 2F/AX=1684h/BX=38DAh"VIWD"Top
INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM??? AL = 84h Return: AL = status 00h successful else failed SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=85h,AL=86h,AL=87h SeeAlso: INT 2F/AX=CD04h"InterWave"Top
INT 7E - IWSBSDRV v1.41 - SET ??? FLAG AL = 85h Return: nothing SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=86h,AL=87hTop
INT 7E - IWSBSDRV v1.41 - HOOK INT 21 AL = 86h Return: AX,BX,DX,ES destroyed SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=87hTop
INT 7E - IWSBSDRV v1.41 - RESTORE INT 21 AL = 87h Return: AX,DX destroyed SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86hTop
INT 7F - Halo88 - API BX = function number (see #03866) additional parameters on stack Return: ??? Program: Halo88 is a suite of graphics routines Note: according to Stuart Kemp, the code appears to make no provisions for chaining (Table 03866) Values for Halo88 API function: 64h arc 65h bar 66h box 67h circle 68h clr 69h default hatch style 6Ah default line style 6Bh delhcur 6Ch delln / deltcur 6Dh ellipse 6Eh fill 6Fh flood 70h flood2 71h init graphics 72h init hcur 73h init marker 74h init tcur 75h inqarc 76h inqbknd 77h inqclr 78h inqerr 79h inqgcur 7Ah inqhcur 7Bh inqmarker 7Dh inqtcur 7Eh inqtext 7Fh lnabs 80h lnrel 81h markerabs 82h markerrel 83h moveabs 84h movehcurabs 85h movehcurrel 86h moverel 87h movetcurabs 88h movetcurrel 89h movefrom 8Ah moveto 8Bh pie 8Ch polylnabs 8Dh polylnrel 8Eh ptabs 8Fh ptrel 91h setasp 92h set color 93h set font 94h set hatch style 95h set line style 97h settext 98h set text color 99h btext 9Ah setseg 9Bh display 9Ch setscreen 9Eh close graphics 9Fh ftinit A0h ftlocate A1h ftext A5h set viewport A6h set window A7h set world AAh ftcolor ACh initlp ADh inqasp AEh inqdev AFh inqdisplay B0h inqft B1h inqftcolor B2h inqinterlace B3h inqlpa B4h inqlpg B5h inqmode B6h inqscreen B7h inqversion B8h roam B9h scroll BAh setieee BBh set interlace BCh shift BDh start graphics BEh vpan CBh gwrite CCh gread CDh setxor CEh rbox CFh rcir D0h rlnabs D1h rlnrel D2h delbox D3h delcir D5h setseg2 DCh worldoff DDh mapwtod DEh mapdtow DFh mapwton E0h mapntow E1h mapdton E2h mapntod E3h inqworld E4h inqviewport E5h set line width E6h lnjoint E7h set locator E8h read locator E9h setdev EBh setstext ECh setstclr EDh setstang EEh stext EFh inqstext F0h setdegree F1h inqstsize F2h polyfabs F3h polyfrel F4h inqdrange F5h inqstang F6h orglocator F7h inqlocator F8h inqarea F9h setipal FAh setborder FBh inqcrange FEh setclip FFh fcir 100h setcrange 101h setdrange 102h setlattr 103h polycabs 104h polycrel 108h memcom 109h memexp 10Ah memmov 10Eh movefx 10Fh movetx 110h inqrgb 111h save image 112h restore image 113h setapal 114h setxpal 118h inqtsize 12Eh gprint 130h setprn 131h setpattr 133h setbattr 135h pexpand 136h ptnorm 137h pfnorm 13Bh inqprn 13Ch lopen 13Dh lclose 13Eh lappend 13Fh lrecord 140h lswitch 142h inqfun 15Dh lsetup 15Eh lrest 15Fh lsaveTop
INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
AL = request ID
01h "Request"/"RequestDirect"
ES:BX -> pRq
DX ignored
04h "Wait"
ES:BX -> ppMsgRet
DX = exchange
05h "AllocExch"
ES:BX -> pExchRet
06h "DeAllocExch"
DX = exchange
07h "Check"
ES:BX -> ppMsgRet
DX = exchange
CX = 4354h ('CT')
Return: AX = status
0000h successful
Top
INT 7F - Telebit ACS SERIAL I/O ES:SI-> parameter block (see #03867) Return: CF set on error CF clear on success InstallCheck: test for the signature "PDGATEWRKSTNIF" just prior to the interrupt handler Index: installation check;Telebit ACS Serial I/O Format of Telebit ACS parameter block: Offset Size Description (Table 03867) 00h BYTE command (see #03868) 01h BYTE gateway number 02h BYTE reserved 03h BYTE port 04h 17 BYTEs auxiliary buffer 15h BYTE session 16h WORD count of bytes passed to API 18h DWORD buffer pointer passed to/from API 1Ch WORD count of bytes passed from API 1Eh BYTE return code (see #03869) (Table 03868) Values for Telebit ACS command: 3Ch status 3Dh connect 3Eh disconnect 3Fh read 40h data/command write 41h clear receive buffer 42h get configuration 43h get receiver status 44h raw write 45h search servers 46h set transmit buffer size (Table 03869) Values for Telebit ACS return code: 00h success 01h invalid session 05h servername invalid 06h NetWare fileserver bindery is locked 07h communication server not active 08h general failure in NetWare fileserver 09h not logged into a fileserver 10h connection table full 11h no response from communication server 12h connection attempt terminated abnormally 13h connection refused - no sessions available 14h gateway number/port already in use 15h invalid connection response 16h port invalid 17h incorrect version in server response 18h gateway number/port combination not configured 19h initialization has not been completed 20h no more sockets are available 21h no active poolname 23h FATAL internal interface error 24h registration of host workstation failed - name is already in use 25h registration of host workstation failed - workstation name table full 26h registration of host workstation failed - only one session may be registered for dial-in FFh Telebit ACS API is busy - retry laterTop
INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE InstallCheck: test for the signature "Lynn" in the four bytes preceding the interrupt handler; if present, the current program is running as a DOS task on a non-dedicated NetWare 2.x file server. Note: Before placing the server into "console" mode, it is recommended that NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h. SeeAlso: INT 21/AH=DEh/DL=04h Index: installation check;non-dedicated NetWare serverTop
INT 7F U - YTERM - ??? SeeAlso: INT 7E"YTERM"Top
INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the DOS extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0F"IRQ7",INT 7E"GO32"Top
INT 7F - Canon IXHND2 Scanner InterfaceTop
INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT DS:SI -> WinRun control block (WCB) (see #03870) Return: WinRun receiver status returned in WCB Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start Windows applications from a virtual DOS machine under Windows Note: The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need to be up and running Format of the WinRun control block (WCB): Offset Size Description (Table 03870) 00h DWORD pointer to ASCIZ command string 04h WORD (ret) WinRun receiver status 0000h-001Fh WinExec() error 0020h-FFFEh WinExec() instance handle FFFFh Windows not running or WinRun receiver not installedTop
INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX) Notes: the words at C800h:0000h and C800h:0002h will both be 584Eh if the MW386 multitasking system is present (i.e. signature "NXNX") NTNX allows its API to be placed on a different interrupt than 7Fh at load time. To determine the actual vector used, open the device "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will be the actual interrupt number being used; the other interrupts may be found with INT 7F/AH=09h/CL=03hTop
INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK Note: a program may determine that it is running on an ANSK Slave by checking the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this address is RAM, and should not be written. However, the above check will not work on Slaves with <1MB RAM or those using the SLIM.SYS device driverTop
INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT AH = 00h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03871) AH = semaphore owner if status=02h SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h (Table 03871) Values for Alloy function status: 00h successful 01h invalid function 02h semaphore already locked 03h unable to lock/unlock semaphore 04h semaphore space exhausted 05h host/target PC did not respond (NTNX)Top
INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE AH = 00h BX = resource identifier AL = wait flag Return: AL = status 00h successful 01h resource not available 02h user error InstallCheck: ensure that the interrupt vector is not pointing at segment 0000h, then test whether the byte at offset 0000h in the interrupt handler's segment is E9h Notes: function will not return until the resource is available if AL is nonzero on entry a maximum of 100 resources may be enqueued at once SeeAlso: AH=01h"MultiLink"Top
INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
AH = 00h
ES:SI -> buffer for "USERS" text string
Return: AX = 4250h ('BP') if installed
BX = 5120h ('Q ') if installed
DX = version number (DH = major, DL = minor)
CX = length of returned string
Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
John Wiseman which allows a PC to act as a node in an AX.25 network
SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
Top
INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AH = 01h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03871) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=02h,AH=41hTop
INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE AH = 01h BX = resource identifier Return: AL = status 00h successful 02h user error Note: the indicated resource may be dequeued even if it was enqueued by another task SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"Top
INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS AH = 01h Return: BX = 1234h if installed DX:AX -> array of FAR entry points CH = driver major version CL = driver minor version Note: TIGACD 2.05 returns CF set on unrecognized functions in AX SeeAlso: AX=1234h,AX=4321hTop
INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK AH = 01h AL = stream number (01h-40h) CL = new application flags bit 7: monitored frames available via AH=0Bh"G8BPQ" DL = new application mask Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network Range: INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+ (earlier versions were hard-wired for INT 7F) SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"Top
INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API) AX = 0104h (HLLAPI gate ID) BX = 0000h DS:SI -> parameter control block (see #03872) Return: parameter control block updated InstallCheck: for the Novell HLLAPI TSR, test for the signature "CXI" (for the company Novell bought) immediately prior to the interrupt handler SeeAlso: AX=0105h,AX=ABCDh Format of HLLAPI parameter control block: Offset Size Description (Table 03872) 00h 3 BYTEs signature = 'PCB' 03h BYTE function number (see #03873,#03874) 04h WORD segment of control string 06h WORD offset of control string 08h WORD length of control string, unless explicit end-of-str char set 0Ah BYTE unused (IBM) ControlString[0] (Rabbit) 0Bh WORD return code (see #03876) 0Dh WORD maximum length of control string (IBM) unused (Rabbit) (Table 03873) Values for HLLAPI function number: 00h OEM function (Query system for Attachmate implementation) 01h Connect presentation space 02h Disconnect presentation space 03h Send string of keystrokes as if typed from keyboard 04h Wait ~60s, returns status of presentation space 05h Copy current presentation space into a user-defined buffer 06h Search presentation space for first occurrence of a specified string 07h Query cursor location in current presentation space 08h Copy part or all of current presentation space into user buffer 09h Set session parameters; parameters vary by vendor (see #03875) 0Ah Get info on sessions currently connected 0Bh Lock current presentation space 0Ch Unlock previously locked presentation space 0Dh Return copy of operator info area (OIA) of current presentation space 0Eh get attribute byte for given position in the current presentation space 0Fh copy string of characters to the current presentation space 10h workstation control functions 11h storage manager functions, intended primarily for BASIC applications (not implemented by Rabbit) 12h set delay period in half-second intervals 14h get info on level of workstation support used 15h reset session parameters to default values 16h get detailed info on the current session 17h start host notification to application on presentation sp or OIA update 18h check host update when host notification enabled 19h stop host notification 1Eh search field within current presentation space for string 1Fh get first positionof a selected field in the current presentation space 20h get length of specified field 21h copy string into a specified field 22h copy specified field into a user-defined buffer 23h create alternate presentation space (IBM only), don't use with BASIC 24h switch to alternate presentation space (IBM only), not with BASIC 25h display cursor in specified area (IBM only), don't use with BASIC 26h display alternate presentation space (IBM only), don't use with BASIC 27h delete alternate presentation space (IBM only), don't use with BASIC 28h set cursor 29h start Close Intercept 2Ah query Close Intercept 2Bh stop Close Intercept 32h start intercepting keystrokes to allow filtering 33h get keystrokes after turning on interception 34h notify operator when keystroke rejected by filter subroutine 35h stop intercepting keystrokes 5Ah send file 5Bh receive file 5Ch run a program (not implemented by Rabbit) 5Dh execute DOS command (not implemented by Rabbit) 63h change presentation space position to PC display row/col or vice versa 65h connect to Window Services 66h disconnect from Window Services 67h set/query window coordinates 68h set/query window status 69h change presentation space name 78h connect Structured Fields 79h disconnect Structured Fields 7Ah query size of communications buffer 7Bh allocate communications buffer 7Ch free communications buffer 7Dh get request completion state 7Eh read Structured Fields 7Fh write Structured Fields FFh Get info on DCA implementation (Table 03874) Values for LLAPI function number: 80h initialize LLAPI (internal call) 83h set Session ID (one-character ID) 84h read Session ID (one-character ID) 85h lock 327x keyboard 86h unlock 327x keyboard 87h wait for Clear to Send 88h type ASCII character 89h type 327x key 8Ah read keyboard lock state 8Fh force screen update 90h view session 91h relinquish (suspend foreground until background becomes idle) 92h poke screen character 93h poke translated character 94h peek screen character 95h peek translated character 96h set cursor position 97h send scan code (Rabbit only) 98h synchronize (returns after keystroke queue empty) 99h type PC key (Rabbit only) (Table 03875) Values for HLLAPI Function 09h Session Parameters: ASCII ??? (Rabbit only) ATTRIB return attributes in hex NOATTRIB return attributes as blanks CONPHYS make physical connection CONLOG only make logical connection EAB copy extended attribute bytes along with data NOEAB copy data only ESC=n set escape character to "n" (default '@') EOT=n set end of string character (default 00h) FPAUSE full-duration pause FTNOWAIT return immediately from functions 5Ah and 5Bh (Rabbit only) FTWAIT wait for file transfer to complete (Rabbit only) IPAUSE interruptable pause RABESC ??? (Rabbit only) NORABESC ??? (Rabbit only) SCANCODE ??? (Rabbit only) STRLEN use explicit string lengths STREOT use terminated strings SRCHALL search entire presentation space SRCHFROM search from specified offset SRCHFRWD search forward from position 1 SRCHBKWD search backward from last position in presentation space TIMEOUT=n ??? (Rabbit only) TWAIT wait specified time for keyboard ready LWAIT wait until keyboard ready NWAIT no wait TRON enable tracing TROFF disable tracing AUTORESET send reset before sending keys with function 03h NORESET don't send reset QUIET don't display messages sent with INT 21/AH=09h NOQUIET allow messages to be displayed TIMEOUT=n set timeout in 30-second intervals, 0 = wait until ^Break XLATE translate extended attribute bytes NOXLATE don't translate NEWRET use HLLAPI v3.0 return code conventions OLDRET use HLLAPI v2.0 return code conventions (Table 03876) Values for Windows HLLAPI return code: 00h successful 01h Presentation Space not connected/requested size unavailable 02h invalid function or parameter error/invalid block ID 03h file transfer complete 04h file transfer complete (segmented)/Presentation Space busy 05h inhibited or keyboard locked 06h data truncated 07h invalid Presentation Space position 08h operation not available 09h system error 0Ah blocking error 0Bh resource not available 0Ch session stopped 14h undefined key combination 15h OIA updated 16h Presentation Space updated 17h both Presentation Space and OIA updated 18h no such field 19h no keystrokes available 1Ah Presentation Space or Operator Information Area changed 1Bh file transfer aborted 1Ch zero-length field 1Eh cursor type invalid 1Fh keystroke overflow 20h another application is already connected 22h message sent to host cancelled 23h transmission from host cancelled 24h lost contact with host 25h function successful 26h function incomplete 27h a DDM session is already connected 28h disconnected, but asynchronous requests still pending 29h buffer already in use 2Ah no matching request found 12Dh invalid function number 12Eh file not found 131h access denied 134h out of memory 136h environment invalid 137h format invalid 270Eh (9998) invalid Presentation Space ID 270Fh (9999) invalid row or column code ---Windows HLLAPI extensions--- F000h asynchronous call already in progress F001h invalid asynchronous task ID F002h blocking call cancelled F003h underlying subsystem not started F004h unsupported application versionTop
INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE) AX = 0105h Return: CF set on error CF clear if successful CX:DX -> array of FAR pointers to entry points (see #03877) Note: most functions are invoked by pushing the DWORD parameter block pointer and then performing a FAR call via the appropriate vector of the entry point array, placing the FAR address of the function's parameter block on the top of the stack SeeAlso: AX=0104h,AX=0106h,AX=ABCDh (Table 03877) Values for HDILOAD function number: (do FAR call via entry_points+4*function) 08h HOPEN Open Adapter (see #03909) 09h HSMX Set Mix (see #03938) 10h HINT Interrupt (see #03905) 13h HLDPAL Load Palette (see #03906) 15h HBBW BitBLT Write Image Data (see #03892) 17h HBBR BitBLT Read Image Data (see #03893) 18h HBBCHN Chained Data Go (see #03891) 19h HBBC BitBLT Copy Data (see #03890) 1Dh HQMODE Get Current Mode (see #03915) 20h HRECT Fill Rectangle (see #03917) 22h HCLOSE Close Adapter and place in quiescent state (see #03898) 30h HINIT Initialize State (see #03904) 31h HSYNC Synchronize Adapter (see #03943) 39h HSPAL Save Palette (see #03940) 3Ah HRPAL Restore Palette (see #03920) ??? HSGQ Set Graphics Quality (see #03929) ??? HSCOORD Set Coordinate Type (see #03926) ??? HESC Escape, Terminate Processing (see #03903) ??? HSBCOL Set Background Color (see #03921) ??? HSBP Set Bit Plane Controls (see #03922) ??? HSCMP Set Color Comparison Register (see #03924) ??? HSCOL Set Color (see #03925) ??? HSHS Set Scissors (clipping rectangle) (see #03930) ??? HXLATE Assign Text Color (see #03944) ??? HQMODES Get Adapter Modes (see #03916) ??? HQDPS Get Drawing Process State Size (see #03914) ??? HQDFPAL Get Default Palette (see #03913) ??? HQCOORD Get Coordinate Type (see #03911) ??? HQCP Get Current Position (see #03912) ??? HSMODE Change Mode (see #03936) ??? HLINE Draw Line at Given Position (see #03907) ??? HCLINE Draw Line at Current Position (see #03897) ??? HRLINE Draw Line Relative from Given Position (see #03918) ??? HCRLINE Draw Line Relative at Current Position (see #03900) ??? HSLT Set Line Type (see #03933) ??? HSLW Set Line Width (see #03935) ??? HSLPC Save Line Pattern Count (see #03932) ??? HRLPC Restore Line Pattern Count (see #03919) ??? HCBBW BitBLT Write Image Data at Current Position (see #03894) ??? HBAR Begin Area (see #03889) ??? HEAR End Area (see #03901) ??? HSPATT Set Pattern (see #03941) ??? HSPATTO Set Pattern Reference Point (see #03942) ??? HEGS Erase Graphics Screen (see #03902) ??? HSCP Set Current Position (see #03927) ??? HMRK Set Marker (see #03908) ??? HCMRK Set Marker at Current Position (see #03899) ??? HSMARK Set Marker Shape (see #03937) ??? HSCS Set Character Set (see #03928) ??? HCHST Write Character String at Given Position (see #03896) ??? HCCHST Write Character String at Current Position (see #03895) ??? HSCELL Set Cell Size for Alphanumeric Text (see #03923) ??? ABLOCKMFI Write Character/Attribute Block MFI (see #03880) ??? ABLOCKCGA Write Character Block CGA (see #03878) ??? AERASE Erase Rectangle (see #03883) ??? ASCROLL Scroll Rectangle (see #03884) ??? ACURSOR Set Alphanumerics Cursor Position (see #03882) ??? ASCUR Set Alphanumeric Cursor Shape (see #03885) ??? ASFONT Set Font (see #03886) ??? AXLATE Assign Alphanumeric Color (see #03888) Format of ABLOCKCGA parameter block: Offset Size Description (Table 03878) 00h WORD 000Ah (length of following data) 02h WORD top-left coordinate of character block 04h WORD width of block 06h DWORD -> block of WORDs describing characters (see #03879) 0Ah BYTE length of block in characters 0Bh BYTE highlight attribute bit 4: transparent background bit 5: overstrike bit 6: reverse video bit 7: underscore SeeAlso: #03880 Bitfields for one character in ABLOCKCGA character block: Bit(s) Description (Table 03879) 3-0 foreground attribute 7-4 background attribute 15-8 character code Format of ABLOCKMFI parameter block: Offset Size Description (Table 03880) 00h WORD 0009h (length of following data) 02h WORD top-left coordinate of character block 04h WORD width of block 06h DWORD -> block of DWORDs describing characters (see #03881) 0Ah BYTE length of block in characters SeeAlso: #03878 Bitfields for one character in ABLOCKMFI character block: Bit(s) Description (Table 03881) 7-0 reserved 9-8 low two bits of font number 12 transparent background 13 overstrike 14 reverse video 15 underscore 19-16 foreground color attribute 23-20 background color attribute 31-24 character code Format of ACURSOR parameter block: Offset Size Description (Table 03882) 00h WORD 0002h (length of following data) 02h BYTE column (0-based) 03h BYTE row (0-based) SeeAlso: #03885 Format of AERASE parameter block: Offset Size Description (Table 03883) 00h WORD 0005h (length of following data) 02h BYTE left-most column (0-based) 03h BYTE top-most row (0-based) 04h BYTE rectangle's width in character cells 05h BYTE rectangle's height in character cells 06h BYTE background color (bits 7-4) SeeAlso: #03884 Format of ASCROLL parameter block: Offset Size Description (Table 03884) 00h WORD 0006h (length of following data) 02h BYTE left-most column (0-based) of source 03h BYTE top-most row (0-based) of source 04h BYTE rectangle's width in character cells 05h BYTE rectangle's height in character cells 06h BYTE left-most column (0-based) of destination 07h BYTE top-most row (0-based) of destination SeeAlso: #03883 Format of ASCUR parameter block: Offset Size Description (Table 03885) 00h WORD 0003h (length of following data) 02h BYTE cursor start line (00h = top of cell, FFh = keep current shape) 03h BYTE cursor stop line 04h BYTE cursor attribute 00h normal 01h hidden 02h left-arrow (requires start = 2 and stop = bottom of cell) 03h right-arrow (requires start = 2 and stop = bottom of cell) Notes: no cursor is shown if the start line is greater than the stop line the alphanumeric cursor is hidden after each mode change SeeAlso: #03882,INT 10/AH=01h Format of ASFONT parameter block: Offset Size Description (Table 03886) 00h WORD 0005h (length of following data) 02h BYTE font number (0-3) 03h DWORD -> character set definition block (see #03887) Format of 8514/A character set definition block: Offset Size Description (Table 03887) 00h BYTE reserved 01h BYTE type of character set 00h bitmapped, 01h&02h reserved, 03h short-stroke font 02h BYTE reserved 03h DWORD reserved 07h BYTE cell width in pixels 08h BYTE cell height in pixels 09h BYTE reserved 0Ah WORD cell size in bytes 0Ch WORD flags bit 15: reserved (0) bit 14: color bitmap bit 13: proportional spacing 0Eh DWORD -> index table 12h DWORD -> character width table 16h BYTE initial code point 17h BYTE final code point 18h DWORD -> character definition table 1Ch WORD reserved 1Eh DWORD -> second character definition table 22h WORD reserved 24h DWORD -> third character definition table Format of AXLATE parameter block: Offset Size Description (Table 03888) 00h WORD 0080h (length of following data) 02h 64 BYTEs character foreground translation table 42h 64 BYTEs character background translation table Format of HBAR parameter block: Offset Size Description (Table 03889) 00h WORD 0000h (no data following) SeeAlso: #03901 Format of HBBC parameter block: Offset Size Description (Table 03890) 00h WORD 0010h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h BYTE source bit plane number (across-the-plane copies only) 09h BYTE reserved 0Ah 2 WORDs X,Y coordinates of source's upper-left corner in display memory 0Eh 2 WORDs X,Y coordinates of destination's upper-left corner in display memory Note: copies data from one location in video memory to another SeeAlso: #03891 Format of HBBCHN parameter block: Offset Size Description (Table 03891) 00h WORD 0006h (length of following data) 02h DWORD -> data buffer in system memory 06h WORD number of bytes to transfer Note: this function performs the actual data transfer for a bitBLT set up with HBBR, HBBW, or HCBBW SeeAlso: #03890,#03892,#03893,#03894 Format of HBBR parameter block: Offset Size Description (Table 03892) 00h WORD 000Ch or 0014h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h BYTE source bit plane number 09h BYTE reserved 0Ah 2 WORDs X,Y coordinates of destination's upper-left corner in display memory ---optional--- 0Eh WORD sub-rectangle left margin in pixels 10h WORD sub-rectangle top margin in pixels 12h WORD sub-rectangle width 14h WORD sub-rectangle height SeeAlso: #03891,#03892,#03894 Format of HBBW parameter block: Offset Size Description (Table 03893) 00h WORD 000Ah or 0012h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h 2 WORDs X,Y coordinates of destination in display memory ---optional--- 0Ch WORD sub-rectangle left margin in pixels 0Eh WORD sub-rectangle top margin in pixels 10h WORD sub-rectangle width 12h WORD sub-rectangle height SeeAlso: #03891,#03893,#03894 Format of HCBBW parameter block: Offset Size Description (Table 03894) 00h WORD 0006h or 000Eh (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height ---optional--- 08h WORD sub-rectangle left margin in pixels 0Ah WORD sub-rectangle top margin in pixels 0Ch WORD sub-rectangle width 0Eh WORD sub-rectangle height SeeAlso: #03891,#03892,#03893 Format of HCCHST parameter block: Offset Size Description (Table 03895) 00h WORD length of following data 02h N BYTEs ASCII string to display (length given by 'length' field above) SeeAlso: #03896 Format of HCHST parameter block: Offset Size Description (Table 03896) 00h WORD length of following data 02h 2 WORDs X,Y of left-bottom corner of string on screen 06h N BYTEs ASCII string to display (length given by 'length' field above) SeeAlso: #03895 Format of HCLINE parameter block: Offset Size Description (Table 03897) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates for each of N points in polyline Notes: the first line segment is drawn beginning at the current position on completion, the current position is set to the last point drawn SeeAlso: #03907,#03918,#03900 Format of HCLOSE parameter block: Offset Size Description (Table 03898) 00h WORD 0001h (length of following data) 01h BYTE (ret) return code SeeAlso: #03909 Format of HCMRK parameter block: Offset Size Description (Table 03899) 00h WORD length of following data 02h 2N WORDs X,Y of N points Note: draws N+1 marker symbols, the first one at the current position SeeAlso: #03908 Format of HCRLINE parameter block: Offset Size Description (Table 03900) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates relative to the position of the previous point (current position for first point) for each of N points in polyline Notes: the first line segment is drawn beginning at the current position on completion, the current position is set to the last point drawn SeeAlso: #03907,#03897,#03918 Format of HEAR parameter block: Offset Size Description (Table 03901) 00h WORD 0001h (length of following data) 02h BYTE area definition flags bits 7-6: End Area type 00 complete, perform fill 01 suspend definition 10 complete, but don't fill SeeAlso: #03889 Format of HEGS parameter block: Offset Size Description (Table 03902) 00h WORD 0000h (no data following) Format of HESC parameter block: Offset Size Description (Table 03903) 00h WORD 0000h (no data following) Format of HINIT parameter block: Offset Size Description (Table 03904) 00h WORD 0002h (length of following data) 02h WORD segment of task buffer SeeAlso: #03943 Format of HINT parameter block: Offset Size Description (Table 03905) 00h WORD 0004h (length of following data) 02h DWORD interrupt/event identifier bit 31: vertical blanking Format of HLDPAL parameter block: Offset Size Description (Table 03906) 00h WORD 000Ah (length of following data) 02h BYTE palette ID (00h = user, 01h = default) 03h BYTE reserved 04h WORD number of first palette entry 06h WORD number of entries 08h DWORD -> palette entries SeeAlso: #03940 Format of HLINE parameter block: Offset Size Description (Table 03907) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates for each of N points in polyline Note: on completion, the current position is set to the last point drawn SeeAlso: #03897,#03918,#03900 Format of HMRK parameter block: Offset Size Description (Table 03908) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y for N points SeeAlso: #03899 Format of HOPEN parameter block: Offset Size Description (Table 03909) 00h WORD 0003h (length of following data) 01h BYTE initialization flags bit 6: don't load default palette bit 7: clear bitplanes 02h BYTE mode type (see #03910) 03h BYTE (ret) return code bit 7: no adapter (hardware mismatch) SeeAlso: #03898 (Table 03910) Values for 8514/A display mode: 0000h 12x20 characters, 1024x768 0001h 8x14 characters, 640x480 0002h 8x14 characters, 1024x768 0003h 7x15 characters, 1024x768 Format of HQCOORD parameter block: Offset Size Description (Table 03911) 00h WORD 0004h (length of following data) 02h BYTE (ret) coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 03h BYTE (ret) relative coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 04h BYTE (ret) number of dimensions (2-4) 05h BYTE (ret) test results bit 7: coordinate format not supported bit 6: relative coordinate format not supported bit 5: specified dimension not supported Format of HQCP parameter block: Offset Size Description (Table 03912) 00h WORD 0004h (length of following data) 02h WORD (ret) current X position 04h WORD (ret) current Y position Format of HQDFPAL parameter block: Offset Size Description (Table 03913) 00h WORD 0040h (length of following data) 02h 16 DWORDs (ret) color index values Note: the default palette is set to match the default EGA/VGA 16-color palettes Format of HQDPS parameter block: Offset Size Description (Table 03914) 00h WORD 0006h (length of following data) 02h WORD (ret) size of data buffer in bytes 04h WORD (ret) stack size in bytes 06h WORD (ret) size of palette save buffer in bytes Format of HQMODE parameter block: Offset Size Description (Table 03915) 00h WORD 0012h (length of following data) 02h BYTE current video mode (see #03910) 03h WORD driver version bit 6: 80286/8086 CPU bit 5: 8 bit planes instead of 4 planes bits 4-0: hardware release number 05h BYTE adapter type 03h 8514/A 04h XGA 06h BYTE reserved (display type) 07h BYTE character cell width 08h BYTE character cell height 09h BYTE number of bit planes 0Ah WORD screen width (pixels) 0Ch WORD screen height (pixels) 0Eh WORD horizontal resolution (pixels/inch) 10h WORD vertical resolution (pixels/inch) 12h BYTE flag: 00h = monochrome, FFh = color 13h BYTE intensity levels SeeAlso: #03916 Format of HQMODES parameter block: Offset Size Description (Table 03916) 00h WORD 0021h (length of following data) 02h BYTE (ret) adapter type 03h 32 BYTEs (ret) available display modes (FFh byte marks end of data) SeeAlso: #03915 Format of HRECT parameter block: Offset Size Description (Table 03917) 00h WORD 0008h (legth of following data) 02h 2 WORDs X,Y coordinates of top left corner or rectangle 06h WORD rectangle's width 08h WORD rectangle's height Note: the rectangle is filled using the current pattern, color, and mix Format of HRLINE parameter block: Offset Size Description (Table 03918) 00h WORD length of following data (multiple of 4) 02h 2 WORDs X,Y coordinates of starting point 06h 2N WORDs X,Y coordinates relative to the position of the previous point for each of N points in polyline Note: on completion, the current position is set to the last point drawn SeeAlso: #03907,#03897,#03900 Format of HRLPC parameter block: Offset Size Description (Table 03919) 00h WORD 0000h (no data following) Note: used for continuity of lines crossing scissors boundaries SeeAlso: #03932 Format of HRPAL parameter block: Offset Size Description (Table 03920) 00h WORD 0300h (length of following data) 02h 768 BYTEs buffer containing previously-saved palette table SeeAlso: #03940 Format of HSBCOL parameter block: Offset Size Description (Table 03921) 00h WORD 0004h (length of following data) 02h DWORD color index for new background color SeeAlso: #03925 Format of HSBP parameter block: Offset Size Description (Table 03922) 00h WORD 000Ch (length of following data) 02h DWORD bitmask for graphics updates 06h DWORD bitmask for alphanumeric updates 0Ah DWORD display bitmask Format of HSCELL parameter block: Offset Size Description (Table 03923) 00h Format of HSCMP parameter block: Offset Size Description (Table 03924) 00h WORD 0005h (length of following data) 02h DWORD comparison color 06h BYTE logical operation 00h True 01h pel > testcolor 02h pel == testcolor 03h pel < testcolor 04h False 05h pel >= testcolor 06h pel <> testcolor 07h pel <= testcolor Format of HSCOL parameter block: Offset Size Description (Table 03925) 00h WORD 0004h (length of following data) 02h DWORD color index for new foreground color SeeAlso: #03921 Format of HSCOORD parameter block: Offset Size Description (Table 03926) 00h WORD 0003h (length of following data) 02h BYTE coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 03h BYTE relative coordinates format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 04h BYTE number of dimensions (2-4) Format of HSCP parameter block: Offset Size Description (Table 03927) 00h WORD 0004h (length of following data) 02h 2 WORDs X,Y or coordinate for new current position Format of HSCS parameter block: Offset Size Description (Table 03928) 00h WORD 0004h (length of following data) 02h DWORD -> character set definition Format of HSGQ parameter block: Offset Size Description (Table 03929) 00h WORD 0002h (length of following data) 02h WORD quality settings (see #03931) Format of HSHS parameter block: Offset Size Description (Table 03930) 00h WORD 0008h (length of following data) 02h WORD left edge of clipping rectangle (-2048 to +6143) 04h WORD right edge 06h WORD top edge 08h WORD bottom edget Bitfields for 8514/A quality settings: Bit(s) Description (Table 03931) 15 reserved 14 high precision 13 reserved 12-11 pel code 00 not drawn 01 drawn 02 conditional on overpainting/mixes 10 don't close areas to be filed 9-0 reserved Format of HSLPC parameter block: Offset Size Description (Table 03932) 00h WORD 0000h (no data following) Note: used for continuity of lines crossing scissors boundaries SeeAlso: #03919 Format of HSLT parameter block: Offset Size Description (Table 03933) 00h WORD 0006h (length of following data) 02h BYTE line type (see #03934) 03h BYTE reserved 04h DWORD -> user line-type definition (if user type) SeeAlso: #03935 (Table 03934) Values for 8514/A line type: 00h user line type 01h dotted 02h short dashes 03h dash-dot 04h double dotted 05h dashed 06h dash double dot 07h solid 08h invisible SeeAlso: #03933 Format of HSLW parameter block: Offset Size Description (Table 03935) 00h WORD 0001h (length of following data) 02h BYTE width of line in pixels SeeAlso: #03933 Format of HSMODE parameter block: Offset Size Description (Table 03936) 00h WORD 0001h (length of following data) 02h BYTE new display mode number (see #03910) Format of HSMRK paramter block: Offset Size Description (Table 03937) 00h WORD 000Eh (length of following data) 02h BYTE cell width 03h BYTE cell height 04h BYTE flags 05h BYTE reserved 06h WORD length of marker symbol 08h DWORD -> image definition data 0Ch DWORD -> color definition data SeeAlso: #03941 Format of HSMX parameter block: Offset Size Description (Table 03938) 00h WORD 0002h (length of following data) 02h BYTE foreground mix (see #03939) 03h BYTE background mix (see #03939) (Table 03939) Values for 8514/A mix: 00h retain previous mix 01h source OR destination 02h source 04h source XOR destination 05h leave as-is 06h max(source,destination) 07h min(source,destination) 08h source+destination (clipped) 09h destination-source (clipped to zero) 0Ah source-destination (clipped to zero) 0Bh average source and destination 10h zero destination 11h source AND destination 12h source AND NOT destination 13h source 14h NOT source AND destination 15h leave as-is 16h source XOR destination 17h source OR destination 18h NOT source AND NOT destination 19h NOT (source XOR destination) 1Ah NOT destination 1Bh source OR NOT destination 1Ch NOT source 1Dh NOT source OR destination 1Eh NOT source OR NOT destination 1Fh set all bits of destination Format of HSPAL parameter block: Offset Size Description (Table 03940) 00h WORD 0300h (length of following data) 02h 768 BYTEs buffer for palette table SeeAlso: #03906,#03920 Format of HSPATT parameter block: Offset Size Description (Table 03941) 00h WORD 000Eh (length of following data) 02h BYTE cell width 03h BYTE cell height 04h BYTE flags 05h BYTE reserved 06h WORD length of marker symbol 08h DWORD -> image definition data 0Ch DWORD -> color definition data SeeAlso: #03937,#03942 Format of HSPATTO parameter block: Offset Size Description (Table 03942) 00h WORD 0004h (length of following data) 02h 2 WORDs X,Y of pattern reference point (origin) SeeAlso: #03941 Format of HSYNC parameter block: Offset Size Description (Table 03943) 00h WORD 0002h (length of following data) 02h WORD segment of task state buffer SeeAlso: #03904 Format of HXLATE parameter block: Offset Size Description (Table 03944) 00h WORD 0020h (length of following data) 02h 32 BYTEs color index tableTop
INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS) AX = 0105h Return: CF set on error CF clear if successful CX:DX -> array of FAR pointers to entry points (see #03877) Note: this API is a superset of the 8514/A Adapter Interface (see AX=0105h"HDILOAD")Top
INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL AX = 0106h Return: AX = 0105h if successfully unloaded SeeAlso: AX=0105hTop
INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE AH = 02h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03871) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=01h,AH=42hTop
INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU AH = 02h Return: ??? Desc: yields CPU to other tasks SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000hTop
INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME AH = 02h AL = stream number (01h-40h) CX = length of frame ES:SI -> frame to be sent SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"Top
INT 7F - Btrieve Multi-User - GIVE UP TIME??? AX = 0200h SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"Top
INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER AH = 03h Return: AL = user number AH = machine number (MW386) Note: this function call is the recommended method for a CPU-bound process to prevent its priority from being lowered SeeAlso: AH=04h,AH=05h,AH=A1hTop
INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME AH = 03h AL = stream number (01h-40h) ES:DI -> buffer for frame (must be large enough for a full frame; 350 bytes is usually sufficient) Return: BX = number of pending frames (0000h if returned frame was last avail) CX = length of received frame SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"Top
INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS AH = 04h Return: AL = total number of users on currrent machine (MW386) AL = number of slaves on system (NTNX) SeeAlso: AH=03hTop
INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS AH = 04h AL = stream number (01h-40h) Return: CX = state (0000h disconnected, 0001h connected) DX = delta state (0000h no change, 0001h changed since last check) SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"Top
INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL AH = 05h AL = function 00h lock system (disable slave services) 01h unlock system 02h enable spooler 03h disable spooler 04h enable slave timer update 05h disable slave timer update 06h enable form feeds 07h disable form feeds SeeAlso: INT 17/AH=A4hTop
INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS AH = 05h DX:DI -> buffer for user information record (see #03945) Notes: MW386 provides this function for backward compatibility only, and sets many of the fields to zero because they are meaningless under MW386 this function has no effect when called by the host (user 0) SeeAlso: AH=03h Format of Alloy user information record: Offset Size Description (Table 03945) 00h WORD segment of video RAM 02h WORD segment of secondary copy of video RAM 04h WORD offset of screen update flag (see INT 10/AH=8Bh) flag nonzero if update needed 06h WORD video NMI enable port (not used by MW386, set to 0000h) 08h WORD video NMI disable port (not used by MW386, set to 0000h) 0Ah BYTE processor type 00h 8088 01h V20 02h 8086 03h V30 06h 80386 0Bh WORD multitasking flag (00h = single tasking, 01h = multitasking) (not used by MW386, set to 0000h) 0Dh WORD offset of terminal driver (not used by MW386, set to 0000h) 0Fh BYTE port for console I/O (not used by MW386, set to 0000h) 10h WORD offset of processor communication busy flag bit 7 set when slave communicating with host 12h WORD pointer to FAR NX system call (not used by MW386, set to 0000h) 14h WORD offset of 16-byte user configuration record (see AH=38h) 16h WORD offset of command/status word 18h WORD offset of screen valid flag (see INT 10/AH=93h) nonzero if screen must be repainted 1Ah WORD offset of screen repaint flag 1Ch WORD pointer to NEAR NX system call (not used by MW386, set to 0000h) 1Eh WORD offset for intercept flags (not used by MW386, set to 0000h) intercept flag = FFh if MS-DOS intercepts should be disabled 20h WORD offset of terminal lock flag (see INT 10/AH=92h) lock flag = FFh if backgrnd screen updates should be suspended 22h 26 BYTEs reservedTop
INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE AH = 05h AL = stream number (01h-40h) Note: this function must be called in order to receive a report of another status change SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"Top
INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO AH = 06h AL = drive number (1=A:, 2=B:, etc) ES:DI -> drive info record (see #03946) Return: AX = status 0000h successful ES:DI buffer filled 0001h not shared drive Format of Alloy drive info record: Offset Size Description (Table 03946) 00h WORD segment of drive IO-REQUEST structure (MS-DOS DPB) 02h WORD segment of allocation map (owner table) one byte per FAT entry, containing user ID owning that entry 04h WORD segment of master FAT for drive (copy of FAT on disk) 06h WORD pointer to configuration file 08h WORD total number of clusters 0Ah WORD bytes per sector 0Ch WORD sectors per cluster 0Eh BYTE FAT type (0Ch = 12-bit, 10h = 16-bit)Top
INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE AH = 06h DL = drive number (1=A:,2=B:,etc) CX = number of clusters to allocate Return: AH = status 00h successful CX = number of clusters still free 10h invalid shared drive request CL = first and second shared drives 11h invalid cluster count (must be 01h-FFh)Top
INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL AH = 06h AL = stream number (01h-40h) CX = subfunction 0000h connect to node DL bit 0: use BBS callsign instead of Node Call 0001h connect to node use BBS Call if APPLMASK=1 0002h disconnect 0003h return user to node SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"Top
INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES AH = 07h Return: ES:DI -> shared drive list (see #03947) Note: MW386 considers all fixed disks to be shared drives; only C and D will be returned as shared Format of Alloy shared drive list: Offset Size Description (Table 03947) 00h BYTE string length 01h BYTE number of shared drives 02h N BYTEs one byte per shared driveTop
INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM AH = 07h AL = stream number (01h-40h) Return: BX = number of pending receive frames CX = number of unacknowledged sent frames DX = number of buffers available SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"Top
INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS AH = 08h CL = function 00h get original interrupt vector 01h get Network Executive interrrupt AL = interrupt number DX:SI -> DWORD to hold interrupt vector Return: AL = status 00h successful 01h interrupt vector not used by network executive 02h invalid subfunction Note: the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h, 1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh SeeAlso: AH=09h/CL=03h,INT 21/AH=35hTop
INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT AH = 08h CL = 02h DX = timeout in seconds Return: AL = status 00h successful 02h invalid subfunctionTop
INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION AH = 08h AL = stream number (01h-40h) Return: ES:DI -> 10-byte buffer containing blank-padded callsign ---v4.05+ --- AL = radio port to which channel is connected (level 2) AH = session type (see #03948) BX = L2 paclen for session CX = maximum frame size DX = L4 window size or 0000h if not L4 circuit Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ" Bitfields for G8BPQ session type: Bit(s) Description (Table 03948) 0 L2LINK 1 SESSION 2 UPLINK 3 DOWNLIND 5 BPQHOSTTop
INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY AH = 09h AL = priority (0-7) Return: nothing InstallCheck: ensure that the interrupt vector is not pointing at segment 0000h, then test whether the byte at offset 0000h in the interrupt handler's segment is E9h Index: installation check;MultiLink Advanced SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"Top
INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS AH = 09h AL = application 00h node 01h BBS 02h HOST 03h SYSOP BL = what to get (00h callsign, 01h application name) ES:SI -> buffer for callsign/name string Return: CX = length of returned string SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"Top
INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING AH = 09h CL = function 00h enable checking of RTNX.MUD file 01h disable RTNX.MUD checkingTop
INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE AH = 09h CL = 02h Note: in dedicated mode, the host will only poll for I/O requests from the slave processors, and not provide workstation servicesTop
INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT AH = 09h CL = 03h AL = default interrupt number (67h,7Fh,etc) Return: CL = actual interrupt which handles specified interrupt's calls SeeAlso: AH=08hTop
INT 7F - Alloy NTNX - GET SYSTEM FLAGS AH = 0Ah CL = 00h ES:DI -> buffer for system flags (see #03949) Return: ES:DI buffer filled Notes: on a slave, only the NX_Busy flag is returned all three flags are at fixed positions, so this function only needs to be called once an interrupt handler should only perform DOS or device accesses when all three flags are 00h Format of Alloy system flags: Offset Size Description (Table 03949) 00h DWORD pointer to NX_Busy flag (nonzero when communicating with users) 04h DWORD pointer to device driver busy flag 08h DWORD pointer to InTimer flagTop
INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME AH = 0Ah AL = radio port ES:SI -> buffer containing data to be sent CX = number of bytes to send SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"Top
INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS AH = 0Ah AL = task-switch status 00h normal (disable task when it repeatedly polls keyboard) 01h disable task until keyboard input available FFh never disable task Return: ??? SeeAlso: AH=09h"MultiLink"Top
INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE AH = 0Bh CL = 02h AL = slave ID number CH = DOS to activate 00h graphics DOS 01h character DOS Return: AL = status 00h successful 01h nothing done, proper DOS type already loadedTop
INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME AH = 0Bh ES:DI -> buffer for received data (see #03950) Return: CX = number of bytes received Note: the specified buffer must be large enough to receive a full frame SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ" Format of G8BPQ received data: Offset Size Description (Table 03950) 00h WORD internal control information 02h BYTE port number (bit 7 set if transmitted frame) 03h WORD frame length including this header 05h var user dataTop
INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION AH = 0Ch DX = function 0001h update beacon text CX = length of data ES:SI -> data to be sent in beacons 0002h (v4.07+) initiate NODES broadcast SeeAlso: AH=09h"G8BPQ"Top
INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM AX = 0D00h Return: AL = first available stream number, or FFh if none free SeeAlso: AH=00h"G8BPQ",AH=0DhTop
INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM AH = 0Dh AL = stream number (01h-FFh) CL = function 01h allocate stream Return: CX = status (0000h successful, else already in use) 02h deallocate stream SeeAlso: AX=0D00hTop
INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER AH = 0Fh Return: AX = time marker (clock ticks modulo 64K) Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL AH = 10h CL = 00h AL = channel number DX:DI -> channel buffer Return: AL = status (00h-03h,0Dh) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h (Table 03951) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open 0Ch channel already locked 0Dh unable to openTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL AH = 10h CL = 01h AL = channel number Return: AL = status (00h-03h,0Ah) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=00h,AH=10h/CL=05hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL AH = 10h CL = 02h AL = channel number Return: AL = status (00h-03h,0Ah,0Ch) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL AH = 10h CL = 03h AL = channel number Return: AL = status (00h-03h,0Ah) (see #03951) Notes: should only be used on channels locked with AH=10h/CL=02h, not on those locked by receipt of a datagram may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER AH = 10h CL = 04h AL = channel number Return: AL = status (00h-03h) (see #03951) Notes: unlocks buffer after received datagram has been processed may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=00hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS AH = 10h CL = 05h Return: AL = status (00h-03h) (see #03951) Notes: clears all pending datagrams and clears buffer pointers before closing the channels may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=01hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS AH = 10h CL = 06h Return: AL = status (00h-03h) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=08hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS AH = 10h CL = 07h Return: AL = status (00h-03h) (see #03951) Notes: unlocks all locked channels which have no pending datagrams may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=09hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS AH = 10h CL = 08h DX = maximum channel number to lock Return: AL = status (00h-03h) (see #03951) Notes: locks channels numbered 00h through the value in DX may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09hTop
INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS AH = 10h CL = 09h DX = maximum channel number to unlock Return: AL = status (00h-03h) (see #03951) Notes: unlocks channels numbered 00h through the value in DX may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08hTop
INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM AH = 11h DX:SI -> request block (see #03953) Return: AL = status (see #03952) Note: if wildcard channel FFh used, actual channel number will be filled in SeeAlso: AH=12h (Table 03952) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah packet too large (or <2 bytes if NTNX) 0Bh can't send packet to itself 0Ch invalid number of destinations 0Dh destination channel number out of range 0Eh destination user is busy 0Fh destination user has locked channel 10h channel not open 11h no datagram server on destination (NTNX) Format of Alloy request block: Offset Size Description (Table 03953) 00h DWORD pointer to packet to send 04h WORD packet size in bytes (1-4096) 06h BYTE number of destinations for packet (max 1Fh) 07h 31 BYTEs destination user IDs (FFh = broadcast to all except sender) 26h 31 BYTEs destination channels (FFh = first available channel) 45h 31 BYTEs return destination statusesTop
INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM AH = 12h AL = channel number being acknowledged DI:DX = 32-bit status to return to sender Return: AL = status (see #03954) Note: also unlocks the channel, allowing the next datagram to be received SeeAlso: AH=11h,AH=15h/CL=04h (Table 03954) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open 0Bh no message in channel 0Ch destination slave busy--retry (NTNX) 0Dh destination user not active 0Eh destination slave not active (NTNX) 0Fh destination disabled datagram serviceTop
INT 7F - TIGA Communications Driver v2.05 - UNINSTALL AX = 1234h SeeAlso: AX=4321hTop
INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS AH = 13h CL = 00h Note: clears all pending datagrams and removes all channels opened in NTNX compatibility modeTop
INT 7F - Alloy NTNX, MW386 - SET RECEIVE ISR AH = 14h CL = 00h DX:DI -> application FAR receive service routine (see #03955) Return: AL = status (00h-03h) (see #03954) SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h (Table 03955) Values Alloy receive service routine is called with: DH = sender ID DL = channel with datagram interrupts disabled Return: AL = response code 00h leave buffer locked, set channel status, and repeat call later 01h release channel buffer 02h change buffer pointer to DX:DI AH,CX,DX,DI,SI may be destroyedTop
INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR AH = 14h CL = 01h DX:DI -> application FAR acknowledge service routine (see #03956) Return: AL = status (00h-03h) (see #03954) Note: the service routine will be called as soon as an acknowledgment arrives SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h (Table 03956) Values Alloy acknowledge service routine is called with: DS:SI -> acknowledge structure (see #03960) Return: AL = response code 00h application busy, network executive should call again later 01h acknowledge accepted AH,DX,SI may be destroyedTop
INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER AH = 14h CL = 02h AL = channel number DX:DI -> receive buffer Return: AL = status (00h-03h) (see #03954) Note: may be called from within a receive ISR or when a datagram is pending SeeAlso: AH=10h/CL=00h,AH=14h/CL=00hTop
INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR AH = 14h CL = 03h Return: DX:DI -> current receive ISR SeeAlso: AH=14h/CL=00h,AH=14h/CL=04hTop
INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR AH = 14h CL = 04h Return: DX:DI -> current acknowledge ISR SeeAlso: AH=14h/CL=01h,AH=14h/CL=03hTop
INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER AH = 14h CL = 05h DX:DI -> buffer for busy structure (see #03957) Return: DX:DI buffer filled Format of Alloy busy structure: Offset Size Description (Table 03957) 00h DWORD pointer to busy flag byte 04h WORD fixed port address (FF00h)Top
INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS AH = 15h CL = 00h AL = channel number DX:DI -> status structure (see #03958) Return: AL = status (00h-03h) (see #03954) SeeAlso: AH=15h/CL=01h Format of Alloy channel status structure: Offset Size Description (Table 03958) 00h BYTE channel status bit 0: channel open bit 1: channel buffer contains received data bit 7: channel locked 01h BYTE sender IDTop
INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL AH = 15h CL = 01h DX:DI -> full-channel structure (see #03959) Return: AL = status 00h successful 01h busy 0Ah no datagrams available Note: MW386 v1.0 returns the lowest channel with a datagram; newer versions and NTNX return the oldest datagram SeeAlso: AH=15h/CL=00h Format of Alloy full-channel structure: Offset Size Description (Table 03959) 00h BYTE number of channel with oldest datagram 01h BYTE sender IDTop
INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS AH = 15h CL = 02h Return: AH = number of channels available (40h for MW386) Note: the application may always assume at least 32 channels available SeeAlso: AH=15h/CL=03hTop
INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE AH = 15h CL = 03h DX:DI -> WORD for return value Return: buffer WORD filled with maximum packet size (4096 for MW386) SeeAlso: AH=15h/CL=02hTop
INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS AH = 15h CL = 04h DX:DI -> status structure (see #03960) Return: AL = status 00h successful DX:DI structure filled 01h busy 0Ah no acknowledgement has arrived SeeAlso: AH=12h,AH=14h/CL=01h Format of Alloy status structure: Offset Size Description (Table 03960) 00h BYTE sender ID 01h BYTE channel number 02h 4 BYTEs receiver status (see #03954)Top
INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER AH = 16h DX:SI -> transfer structure (see #03961) Return: AL = status 00h successful 0Ah source or destination out of range 0Bh transfer kernel busy--try again Notes: this call transfers memory contents directly between users; both source and destination user IDs may differ from the caller's ID no segment wrap is allowed Format of Alloy transfer structure: Offset Size Description (Table 03961) 00h WORD bytes to transfer 02h BYTE source ID FEh = caller 03h DWORD source address 07h BYTE destination ID FFh = all slaves except caller FEh = caller 08h DWORD destination addressTop
INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S) AH = 21h AL = sender's user ID DS:DX -> control packet (see #03962) Note: messages or commands are ignored if disabled by the destination user SeeAlso: AH=22h Format of Alloy control packet: Offset Size Description (Table 03962) 00h BYTE packet type 00h message 01h NTNX command 02h MW386 command 01h BYTE destination user ID or 'A' for all users 02h 62 BYTEs ASCIZ message (packet type 00h) BIOS keycodes terminated by NUL byte (type 01h) or word (02h) Note: a maximum of 16 keycodes will be processed for NTNX and MW386 commandsTop
INT 7F - Alloy NTNX - GET MESSAGE AH = 22h Return: pending messages displayed on user's screen SeeAlso: AH=21hTop
INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS AH = 24h CL = function 00h attach 01h release CH = drive (0=A:,1=B:,etc) Return: AX = status (see #03963) Note: only drives on the current machine may be attached (Table 03963) Values for Alloy function status: 00h successful 01h invalid request 02h already attached 03h not attached 04h lock table fullTop
INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR AH = 24h CL = function 02h attach host 03h release host Return: AX = status (see #03963) Note: the host processor may be attached in order to perform I/O via the hostTop
INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION AH = 25h CL = 00h Return: AH = version suffix letter CH = major version number CL = minor version number SeeAlso: AH=25h/CL=01hTop
INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE AH = 25h CL = 01h Return: CL = executive type (see #03964) SeeAlso: AH=25h/CL=00h (Table 03964) Values for Alloy network executive type: 00h RTNX 01h ATNX 02h NTNX 03h BTNX 04h MW386 05h ANSKTop
INT 7F - TIGA Communications Driver v2.05 - ??? AX = 2525h BX = ??? Return: ??? SeeAlso: AX=4321h,AX=5555hTop
INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE AH = 26h CL = 00h Return: AX = file mode bits (see #03965) Note: MW386 does not support file modes, and always returns AX=001Fh SeeAlso: AH=26h,AH=26h/CL=06h Bitfields for Alloy file mode bits: Bit(s) Description (Table 03965) 0 directory protection enabled 1 extended open enabled 2 flush on every disk write 3 flush on every disk write in locked interval 4 flush on reads from simultaneously opened fileTop
INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL AH = 26h CL = check type to set/reset 01h directory protection 02h extended open 03h flush on every disk write 04h flush on disk write if any lock set during write 05h flush on all reads if file written AL = new state (00h off, 01h on) SeeAlso: AH=26h/CL=00h,AH=26h/CL=06hTop
INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE AH = 26h CL = 06h Note: cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h SeeAlso: AH=26h/CL=00hTop
INT 7F - Alloy MW386 - GET PORT INFORMATION AH = 30h CX = MW386 port number Return: AL = result FFh if port not found else driver unit number BL = port mode BH = port type 02h remote DH = owner's machine ID DL = owner's user ID SeeAlso: INT 17/AH=8BhTop
INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT AH = 31h ??? Return: ???Top
INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE AH = 37h Return: ES:AX -> semaphore tableTop
INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL AH = 37h DS:DX -> ASCIZ string to display Note: if the string is empty, a terminal update will be forcedTop
INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER AH = 38h AL = new terminal driver number FFh dummy driver FEh current driver FDh load new driver DS:SI -> new driver SeeAlso: AH=39hTop
INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER AH = 39h AL = new terminal driver number FFh dummy driver FEh current driver FDh load new driver DS:SI -> new driver DL = user number (FFh = caller) DH = machine number if DL <> FFh Return: CF set if invalid user number CF clear if successful Notes: only available to supervisors the new driver number will not take effect until the user is rebooted SeeAlso: AH=38hTop
INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS AH = 3Ah DL = user number (FFh = caller) DH = machine number Return: CF clear if successful AH = terminal driver number AL = baud rate (00h = 38400, 01h = 19200, etc) CL = parity (00h none, 01h even, 02h odd) CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) CF set if invalid user number SeeAlso: AH=3BhTop
INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS AH = 3Bh AL = baud rate (00h = 38400, 01h = 19200, etc) CL = parity (00h none, 01h even, 02h odd) CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) DL = user number (FFh = caller) DH = machine number for user Return: CF set if invalid user number Notes: only available to supervisors the new parameters will take effect immediately if the user's terminal has not been started, else AH=3Dh must be called to post the changes SeeAlso: AH=3Ah,AH=3DhTop
INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT AH = 3Ch AL = new state (00h disabled, 01h enabled) DL = user number (FFh = caller) DH = machine number for user Return: CF set if invalid user number Note: only available to supervisors SeeAlso: AH=3DhTop
INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES AH = 3Dh Note: should be called whenever a program changes the terminal type or its parameters SeeAlso: AH=3BhTop
INT 7F - Alloy NTNX - LOCK FILE FOR USER AH = 41h AL = user ID DS:DX -> ASCIZ filename Return: AL = status (see #03966) Note: requests exclusive read/write access to file SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX" (Table 03966) Values for Alloy function status: 00h successful 01h invalid function 02h already locked 03h unable to lock 04h lock table full or semaphore space exhaustedTop
INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER AH = 41h AL = user ID DS:DX -> ASCIZ semaphore name Return: AL = status (see #03966) SeeAlso: AH=00h,AH=42h"MW386"Top
INT 7F U - Voyetra - AAPISG - API
AX = 4150h ('AP')
BH = C1h
BL = function (00h-13h)
00h initialize (fails except first time called)
???
Return: AX = status???
0000h successful
0001h failed
Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
BUG: the function range check uses JL instead of JB, so it will cause a
crash if BL >= 80h on entry
SeeAlso: AX=4331h,AX=564Dh,AX=5658h
Top
INT 7F - Alloy NTNX - UNLOCK FILE FOR USER AH = 42h AL = user ID DS:DX -> ASCIZ filename Return: AL = status (see #03966) SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"Top
INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER AH = 42h AL = user ID DS:DX -> ASCIZ semaphore name Return: AL = status 00h successful 01h invalid function 03h unable to unlock semaphore SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"Top
INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK AX = 4321h Return: AX = 0000h if installed Note: INT 7F is the default, but may be overridden SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555hTop
INT 7F U - Voyetra - VAPISG - API
AX = 4331h ('C1')
BH = C1h
BL = function (00h-7Ah)
???
Return: ???
Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
sound board
SeeAlso: AX=4150h,AX=564Dh,AX=5658h
Top
INT 7F - Alloy MW386 v2+ - SET ERROR MODE
AH = 4Eh
AL = error mode flags
bit 0: display critical disk errors
bit 1: display sharing errors
DX = 4E58h ("NX")
Return: AL = status
00h successful
SeeAlso: AH=4Fh
Top
INT 7F - Alloy MW386 v2+ - SET FCB MODE
AH = 4Fh
AL = FCB mode
02h read/write compatibility
42h read/write shared
DX = 4E58h ("NX")
Return: AL = status
00h successful
Top
INT 7F - TIGA Communications Driver v2.05 - ??? AX = 5555h BX = ??? Return: ??? SeeAlso: AX=4321hTop
INT 7F U - Voyetra Multimedia Player - VMP.EXE API
AX = 564Dh ('VM')
BH = C1h
BL = function (00h-1Bh)
00h ???
Return: CF clear
AX = 0000h
???
Return: AX = FFFFh if invalid function
???
SeeAlso: AX=4331h,AX=5658h
Top
INT 7F U - Voyetra - VAPISG - API
AX = 5658h ('VX')
BH = C1h
BL = function (00h-1Bh)
???
Return: ???
Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
sound board
SeeAlso: AX=4331h,AX=564Dh
Top
INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER AH = 81h AL = user ID DS:DX -> ASCIZ device name SeeAlso: AH=82hTop
INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER AH = 82h AL = user ID DS:DX -> ASCIZ device name SeeAlso: AH=81hTop
INT 7F - Alloy MW386 - GET USER NAME AH = A0h DL = user number (FFh = caller) DH = machine number for user ES:DI -> 17-byte buffer for ASCIZ user name Return: CF set if invalid user number SeeAlso: AH=03h,AH=A1hTop
INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER AH = A1h Return: AL = process number DL = user number DH = machine number SeeAlso: AH=03h,AH=A0h,AH=A2hTop
INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL AH = A2h DL = user number (FFh = caller) DH = machine number for user Return: CF clear if successful AL = privilege level 00h supervisor 01h high 02h medium 03h low CF set if invalid user number SeeAlso: AH=A1h,AH=A3hTop
INT 7F - Alloy MW386 - GET USER LOGIN STATE AH = A3h DL = user number DH = machine number for user Return: CF clear if successful AL = login state 00h never logged in 01h currently logged out 03h currently logged in CF set if invalid user number or user not active SeeAlso: AH=A2hTop
INT 7F - Alloy MW386 - VERIFY USER PASSWORD AH = A4h DS:DX -> ASCIZ password (null-padded to 16 bytes) Return: AL = status 00h accepted else invalid passwordTop
INT 7F - Alloy MW386 - GET USER STATUS AX = A500h DI = machine number and user number Return: CF clear if successful BX = user flags bit 5: allow messages CL = scan code for task manager hotkey CH = scan code for spooler hotkey DL = scan code for task swapper hotkey DH = modifier key status CF set if invalid user number SeeAlso: AX=A501h Index: hotkeys;Alloy MW386Top
INT 7F - Alloy MW386 - SET USER STATUS AX = A501h BX = user flags (see AX=A500h) CL = scan code for task manager hotkey CH = scan code for spooler hotkey DL = scan code for task swapper hotkey DH = modifier key status DI = machine number and user number Return: CF set if invalid user number Note: must have supervisor privilege to set another user's status SeeAlso: AX=A500h Index: hotkeys;Alloy MW386Top
INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY AX = ABCDh BX = 0000h Return: AX = total number of functions available ES:BX -> entry point array (see #03967) SeeAlso: AX=0104h,AX=0105h (Table 03967) Values for 8516 Touch Screen function number: 00h check initialization and reset (see #03968) 14h set user-defined subroutine (see #03969) Notes: each driver function takes two stack parameters using Pascal calling conventions: address of parameter block and address of results buffer all pointers are FAR pointers on return, AX contains the status of the call: AX = 0000h successful 0001h invalid input 0002h interface error 0003h unable to perform function Format of 8516 Touch Screen Function 00h parameter block: Offset Size Description (Table 03968) 00h WORD 0000h (function number) Note: this function should be called before any other device driver functions Format of 8516 Touch Screen Function 00h results buffer: Offset Size Description (Table 03969) 00h WORD touch screen status 0000h unavailable 0001h uncalibrated FFFFh available 02h WORD aux mouse status (0000h not present, FFFFh present) Notes: the following driver parameters will have been reset to zero: touchdown counter, liftoff counter, position at last touch, position at last lift, int call mask, select on count, select off count, pos select on count, pos select off count. the following driver parameters will have been reset as listed: mouse emulation mode: left on thresholds: 46 on screen, 96 push harder, 80 push release x, y hysteresis: 400 data repeat rate: 40/sec select mechanism: push-harder - first-touch coordinate origin: upper left corner filter frequency: medium data block mask: all enabled click lock: onTop
INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER AH = B0h AL = user number DS = code segment Note: MW386 ignores AL and DS; it releases all semaphores locked using INT 67 or INT 7F locking functions SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4hTop
INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER AH = B1h subfn 00h AL = (bits 7-5) 000 (bits 4-0) user ID Note: MW386 ignores AL; it releases all semaphores locked using INT 67 or INT 7F locking functions SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4hTop
INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER AH = B2h subfn 01h AL = (bits 7-5) 001 (bits 4-0) user ID SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4hTop
INT 7F - Alloy NTNX - RELEASE FILES FOR USER AH = B3h subfn 02h AL = (bits 7-5) 010 (bits 4-0) user ID SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4hTop
INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER AH = B4h AL = user ID SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3hTop
INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT AH = C3h AL = byte to write Return: CF clear if successful CF set on error SeeAlso: AH=C6hTop
INT 7F - Alloy MW386 - CHANGE CONSOLE MODE AH = C5h AL = new console mode 00h keyboard indirect 01h keyboard direct 02h data handshake enforced 03h no data handshake Return: CF clear if successful AL = prior console mode CF set on error (caller is not remote user) Note: modes 2 and 3 may be used for input through the console port; no video output should be performed in these modesTop
INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT AH = C6h AL = byte to write Return: CF clear if successful CF set on error (caller is not remote user) Note: any terminal driver data translation will be bypassed SeeAlso: AH=C3h,AH=C7hTop
INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE AH = C7h Return: CF clear if successful AL = byte read CF set on error (no data available or caller is not remote user) Note: used to read data after placing console in mode 2 or 3 (see AH=C5h) SeeAlso: AH=C5h,AH=C6h,AH=C8hTop
INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER AH = C8h AL = maximum bytes to read ES:DI -> buffer for console data Return: CF clear if successful CX = number of bytes read CF set on error (caller is not remote user) SeeAlso: AH=C7hTop
INT 7F - Alloy NTNX - REBOOT USER PROCESSOR AH = CFh DS:DX -> ASCIZ string containing user number to be reset SeeAlso: AH=D6hTop
INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE AH = D6h DS:DX -> reset packet (see #03970) Return: never if successful Note: all users will be shut down immediately if successful SeeAlso: AH=CFh Format of Alloy MW386 reset packet: Offset Size Description (Table 03970) 00h DWORD reset code (60606060h) 04h 16 BYTEs ASCIZ supervisor password padded with nullsTop
INT 7F - Alloy MW386 - POST EVENT AH = D7h AL = user number (if local event) DX = event numberTop
INT 7F - Alloy MW386 - FLUSH DISK BUFFERS AH = D8h Return: CF set on error Note: forces all disk buffers to be written out immediately SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120hTop
INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE AH = DBh Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)Top
INT 7F - Alloy MW386 - CREATE DOS TASK AH = E0h AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) DS:DX -> ASCIZ task name (max 16 bytes) Return: CF clear if successful AL = task create ID CF set on error Note: only foreground DOS tasks can use this function SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7hTop
INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID AH = E1h AL = create ID (from AH=E0h) Return: AL = DOS process number CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) Note: this function should not be called immediately after creating a new DOS task, since the new task is being initialized by a concurrent process SeeAlso: AH=E0h,AH=E2hTop
INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK AH = E2h AL = DOS process number (from AH=E1h) Return: CF set on error (invalid process number or caller not foreground task) Notes: specified task becomes the foreground task and current task is placed in the background may only be called by a foreground task SeeAlso: AH=E0h,AH=E1hTop
INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK AH = E3h DS:DX -> ASCIZ task name ---v1.x--- AL = user number ---v2+--- BH = user number BL = task number Return: CF clear if successful CF set on error (invalid process number) SeeAlso: AH=E0h,AH=E4h,AH=E5hTop
INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER AH = E4h ES:DI -> buffer for task name ---v1.x--- AL = user number ---v2+--- BH = user number BL = task number Return: CF clear if successful CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) DX = task flags bit 7: MS-DOS process ES:DI buffer filled CF set on error (invalid process number) SeeAlso: AH=E3h,AH=E5hTop
INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME AH = E5h DS:DX -> ASCIZ task name BH = user number Return: CF clear if successful AL = DOS process number CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) CF set on error (no match for name) SeeAlso: AH=E3h,AH=E4hTop
INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS AH = E6h Return: AX = number of processes available to current user SeeAlso: AH=E0hTop
INT 7F - Alloy MW386 - REMOVE DOS TASK AH = E7h AL = DOS process number Return: CF clear if successful CF set on error (invalid process number or first process) Note: can only be called by a foreground task SeeAlso: AH=E0hTop
INT 7F - Alloy MW386 - DOS TASK DELAY AH = E8h CX = delay time in milliseconds Note: a delay of 0 may be used to surrender the current time slice SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS" SeeAlso: INT 2F/AX=1680hTop
INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP AH = F0h AL = group number DS:DX -> ASCIZ directory name Return: CF clear if successful AX = status 0002h directory not found 0003h directory not found 0005h directory in use, cannot be restricted 02xxh restricted to group xxh CF set on error Note: the restriction on the directory may be removed by calling this function with group 0, then using AH=F1h to assign the directory to group 0 SeeAlso: AH=F1h,AH=F2h,AH=F3hTop
INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP AH = F1h AL = group number DS:DX -> ASCIZ directory name Notes: performs permanent assignment to a group; no immediate action is taken unless the directory has been restricted with AH=F0h may be used to restrict a nonexistent directory SeeAlso: AH=F0hTop
INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY AH = F2h CX = entry number ES:DI -> 64-byte buffer Return: CF clear if successful buffer filled with 63-byte directory info and 1-byte group number CF set on error (invalid entry) SeeAlso: AH=F0h,AH=F3hTop
INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP AH = F3h AL = group number CX = entry number ES:DI -> 64-byte buffer Return: CF clear if successful CX = next entry number buffer filled with 63-byte directory info and 1-byte group number CF set on error (no more matching entries) Note: like AH=F2h, but only returns directories belonging to the specified group SeeAlso: AH=F2hTop
INT 7F - Alloy MW386 - ASSIGN USER TO GROUP AH = F8h AL = group number DL = user number DH = machine number (currently 00h) Return: CF clear if successful CF set on error (user already in maximum number of groups) Note: each user is allowed eight group assignments SeeAlso: AH=F9h,AH=FAhTop
INT 7F - Alloy MW386 - REMOVE USER FROM GROUP AH = F9h AL = group number DL = user number DH = machine number (currently 00h) Return: CF clear if successful CF set if failed SeeAlso: AH=F8h,AH=FAhTop
INT 7F - Alloy MW386 - GET USER GROUP LIST AH = FAh DL = user number DH = machine number (currently 00h) ES:DI -> 16-byte buffer for group list Return: CX = number of groups ES:DI buffer filled with group numbers SeeAlso: AH=F8h,AH=F9hTop
INT 7F - Alloy MW386 - ASSIGN GROUP NAME AH = FBh CL = group number ES:DI -> ASCIZ group name (max 17 bytes) SeeAlso: AH=FChTop
INT 7F - Alloy MW386 - GET GROUP NAME AH = FCh CL = group number ES:DI -> 17-byte buffer for ASCIZ name Return: ES:DI buffer filled Note: if the group has not been named, "(unnamed)" is returned SeeAlso: AH=FBhTop
INT 80 - Q-PRO4 - ???Top
INT 80 - reserved for BASIC Note: this vector and INT 81 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"Top
INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN Note: the extender relocates INT 05 to here by default, but can be told to leave INT 05 alone with the commandline (or DOSX= environment variable) flag -PRIVEC 5 SeeAlso: INT 05"PRINT SCREEN"Top
INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!) Note: the factory-default location for the eight bytes of scratchpad RAM needed by the SCSI adapter is 0000h:0200h, which is interrupt vectors 80h and 81h SeeAlso: INT 81"BusLogic"Top
INT 80 - Linux - SYSTEM CALLS parameters in registers (Table 04086) Values for system call number: 00h ??? 01h exit 02h fork 03h read 04h write 05h open 06h close 07h waitpid 08h creat 09h link 0Ah unlink 0Bh execve 0Ch chdir 0Dh time 0Eh mknod 0Fh chmod 10h lchown 11h break 12h oldstat (obsolete) 13h lseek 14h getpid 15h mount 16h umount 17h setuid 18h getuid 19h stime 1Ah ptrace 1Bh alarm 1Ch oldfstat 1Dh pause 1Eh utime 1Fh stty 20h gtty 21h access 22h nice 23h ftime 24h sync 25h kill 26h rename 27h mkdir 28h rmdir 29h dup 2Ah pipe 2Bh times 2Ch prof 2Dh brk 2Eh setgid 2Fh getgid 30h signal 31h geteuid 32h getegid 33h acct 34h umount2 35h lock 36h ioctl 37h fcntl 38h mpx 39h setpgid 3Ah ulimit 3Bh oldolduname (obsolete) 3Ch umask 3Dh chroot 3Eh ustat 3Fh dup2 40h getppid 41h getpgrp 42h setsid 43h sigaction 44h sgetmask 45h ssetmask 46h setreuid 47h setregid 48h sigsuspend 49h sigpending 4Ah sethostname 4Bh setrlimit 4Ch getrlimit 4Dh getrusage 4Eh gettimeofday 4Fh settimeofday 50h getgroups 51h setgroups 52h select 53h symlink 54h oldlstat (obsolete) 55h readlink 56h uselib 57h swapon 58h reboot 59h readdir 5Ah mmap 5Bh munmap 5Ch truncate 5Dh ftruncate 5Eh fchmod 5Fh fchown 60h getpriority 61h setpriority 62h profil 63h statfs 64h fstatfs 65h ioperm 66h socketcall 67h syslog 68h setitimer 69h getitimer 6Ah stat 6Bh lstat 6Ch fstat 6Dh olduname (obsolete) 6Eh iopl 6Fh vhangup 70h idle 71h vm86old 72h wait4 73h swapoff 74h sysinfo 75h ipc 76h fsunc 77h sigreturn 78h clone 79h setdomainname 7Ah uname 7Bh modify_ldt 7Ch adjtimex 7Dh mprotect 7Eh sigprocmask 7Fh create_module 80h init_module 81h delete_module 82h get_kernel_syms 83h quotactl 84h getpgid 85h fchdir 86h bdflush 87h sysfs 88h personality 89h afs_syscall 8Ah setfsuid 8Bh setfsgid 8Ch llseek 8Dh getdents 8Eh newselect 8Fh flock 90h msync 91h readv 92h writev 93h getsid 94h fdatasync 95h sysctl 96h mlock 97h munlock 98h mlockall 99h munlockall !!! http://home.snafu.de/phpr/lhpsysc0.htmlTop
INT 80 - FreeBSD - SYSTEM CALLS parameters on stackTop
INT 80 U - AMI BIOS v1.00.12.AX1T - internal - BIOS SUBSYSTEM SELECTION AH = function 00h install and initialize BIOS subsystem AL = ??? (00h,01h,03h) CX:BX = subsystem ID (see #03971) ESI = address from which to load, or 00000000h for default for subsystem EDI = physical address at which to install, or 0 for default Note: if CX=0000h on entry, this call is applied to all subsystems whose ID has low word BX 01h get BIOS subsystem information CX:BX = subsystem ID (see #03971) Return: AL = ??? AH = ??? EDX = uncompressed size of subsystem in bytes SI = offset within subsystem of initialization routine, or FFFFh if none EDI = physical address of default location or 0 02h get matching subsystem identifier AL = index into subsystem list (return ALth occurrence matching BX) BX = low word of subsystem identifier (0001h,0002h,0004h,0005h,000Bh,FFFFh) Return: CF clear if successful CX = high word of ALth matching subsystem CF set on error Note: the system is halted if AL=00h on entry 03h set up "big real" mode (4G segment limits) 04h turn off "big real" mode (restore 64K segment limits) 05h remove BIOS subsystem CX:BX = subsystem ID to leave out Note: the system is halted if an invalid (not installed) subsystem ID is specified 06h get installed subsystem info CX:BX = subsystem ID (see #03971) Return: CF clear EDX = length of ??? EDI = linear address of start of ??? Note: the system is halted if an invalid (not installed) subsystem ID is specified Return: CF clear if successful CF set on non-fatal error Note: this interrupt vector is cleared to 0000h:0000h near the end of the BIOS startup sequence (Table 03971) Values for AMI BIOS subsystem ID: 00010001h ROM BIOS @F000-FFFF 00010002h setup??? (loaded @6000-68FF) 00010005h APM code 0001000Bh language-specific error message set (English) 00020002h PnP/PCI ACFG code (loaded @F000-F1FF) 0001FFFFh 0002FFFFh recovery code 00030004h 0003FFFFh BIOS decompression code 0004000Bh 00060004h 0100FFFFh ACFG data 10000000h ROM @C000 (64K) 10000001h HMA (48K) 10000002h RAM @7A00 (24K) 10000003h RAM @8000-BFFF 10000004h 10000005h real-mode address space (0-1M) 1000000Bh installed language-specific message set???Top
INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER BL = 00h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = initialization result (see #03972) Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM" SeeAlso: INT 80/BX=0000h"SBSIM" (Table 03972) Values for SBSIM error code: 01h busy--currently in use 02h bad driver specified 03h invalid function 04h voice process already active 05h couldn't start CT-VOICE 06h couldn't start CTVDSK 07h invalid SBSIM handle 08h buffer not initialized yet 09h bad filename 0Ah bad file handle 0Bh driver not started yet 0Ch XMS driver not installed 0Dh no free SBSIM handles 0Eh bad file type 0Fh couldn't free XMS block 10h invalid source selected 11h get pan position failed 12h set pan position failed 13h set volume failed 14h couldn't start fade/pan 15h couldn't stop fade/pan 16h couldn't pause fade/pan 17h not a fade/pan operation 18h bad mode for fade/pan 19h couldn't start fade/pan 1Ah source not fading/panning 1Bh FM or MIDI already playing 1Ch bad MIDI mapper formatTop
INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER BL = 01h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = result (see #03972) SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"Top
INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER BL = 02h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"Top
INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER BL = 03h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM" SeeAlso: INT 80/BL=05hTop
INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER BL = 04h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"Top
INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS BL = 05h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = status SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"Top
INT 80 - SoundBlaster SBFM driver - GET VERSION BX = 0000h Return: ??? Note: SBFM installs at a free interrupt in the range 80h through BFh SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh/ES=0000hTop
INT 80 - SBSIM - "QUERYVERSION" - GET VERSION BX = 0000h Return: AX = version (AH = major, AL = minor) Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS" SeeAlso: INT 80/BL=00h"SBSIM" Index: installation check;SBSIM|installation check;SoundBlasterTop
INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS BX = 0001h DX:AX -> music status byte SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"Top
INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED BX = 0001h Return: AX = bit flags for loaded drivers (see #03973) SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM" Bitfields for SBSIM loaded drivers: Bit(s) Description (Table 03973) 0 FM 1 double disk-buffered voice driver (DDBV) 2 memory voice driver 3 auxiliary driver (mixer) 4 MIDITop
INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE BX = 0002h CX = number of instruments DX:AX -> instrument table SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"Top
INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT BX = 0002h AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI) Return: CF clear if successful DX:AX -> entry point CF set on error SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"Top
INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE BX = 0003h AX = clock rate divisor (1193180 / desired frequency in Hertz) FFFFh to restore to 18.2 Hz SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"Top
INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE BX = 0004h AX = driver clock rate divisor (1193180 / frequency in Hertz) Note: default frequency is 96 Hz SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"Top
INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC BX = 0005h AX = semi-tone offset SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"Top
INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS BX = 0005h AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI) Return: CF clear if successful DX:AX -> buffer CX = buffer size in K CF set on error Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"Top
INT 80 - SoundBlaster SBFM driver - PLAY MUSIC BX = 0006h DX:AX -> music block Return: AX = status 0000h successful 0001h music already active SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04hTop
INT 80 - SoundBlaster SBFM driver - STOP MUSIC BX = 0007h Return: AX = status 0000h successful 0001h music not active SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05hTop
INT 80 - SoundBlaster SBFM driver - RESET DRIVER BX = 0008h Return: AX = status 0000h successful 0001h music is active SeeAlso: BX=0000h"SBFM"Top
INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC BX = 0009h Return: AX = status 0000h successful 0001h no music active SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01hTop
INT 80 - SoundBlaster SBFM driver - RESUME MUSIC BX = 000Ah Return: AX = status 0000h successful 0001h no music paused SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"Top
INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS BX = 000Bh DX:AX -> trap routine SeeAlso: BX=0000h"SBFM"Top
INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME BX = 0400h AX = sound source (see #03974) Return: CF clear if successful AX = volume CF set on error AX = error code (see #03972 at INT 80/BL=00h) SeeAlso: BX=0401h"SBSIM" (Table 03974) Values for SBSIM sound source: 00h master volume 01h voice 02h FM 03h CD 04h line in 05h microphoneTop
INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME BX = 0401h AX = sound source (see #03974) DX = new volume Return: AX = result (0000h = success) (see also INT 80/BL=00h) SeeAlso: BX=0400h"SBSIM"Top
INT 80 - QPC Software PKTINT.COM - INITIALIZE AH = 01h Return: AX = 0000h CX = FFFFh DX = FFFFh Notes: this interrupt is the WinQVTNet protected mode interface to Windows 3.0 all buffer pointers are reset back to 0Top
INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES AH = 02h BX = extra bytes to allocate per packet Return: AX = segment address of 10K buffer (for receives???) BX = segment address of 2K buffer (for sends???) SeeAlso: AH=05hTop
INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT AH = 03h Return: CX:DX -> receive call address Note: the returned address can be used in the packet driver calls since it will be a valid address in all DOS boxes SeeAlso: AH=06hTop
INT 80 - QPC Software PKTINT.COM - ENABLE??? AH = 04h BX = ??? Return: ??? SeeAlso: AH=01hTop
INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS AH = 05h Return: AX = amount of buffer currently in use BX = current offset in buffer CX = number of times receive has been called SeeAlso: AH=02hTop
INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET AH = 06h Return: BX = next packet offset CX = number of bytes still buffered DX = size of packet released back into buffer pool SeeAlso: AH=03hTop
INT 81 - reserved for BASIC Note: this vector is modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 80"BASIC",INT 82"BASIC"Top
INT 81 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"Top
INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!) Note: the factory-default location for the eight bytes of scratchpad RAM needed by the SCSI adapter is 0000h:0200h, which is interrupt vectors 80h and 81h SeeAlso: INT 80"BusLogic"Top
INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION Notes: used by WinBIOS with core version of July 1994 or later QEMM 7.5 began using this interrupt internally after the QPAT3 maintenance release when searching for "ROM holes", causing a lengthy delay during bootup. Adding the QEMM parameter RH:N will avoid the QEMM call to INT 81 and speed up the boot processTop
INT 81 - Paragon Technology PTS/DOS 6.5x, S/DOS 1.0 - APITop
INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE AX = 0200h BX = PSP segment SI = ??? (data area) Return: AX = status (see #03975) BL = emulation state bit 1 Emulation is on bit 2 Emulation is off Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32 emulator for the Gravis UltraSound Range: INT 81 to INT FF (see INT 21/AX=FD12h), selected by scanning for an interrupt with vector 0000h:0000h SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h (Table 03975) Values for MegaEm status: 0000h successful 0001h invalid command line optie 0002h display options 0003h ??? 0004h invalid number of voices specified 0005h could not load enough patches to provide acceptable emulation 0006h to many warnings on patch loading 0007h ??? (not used anymore) 0008h /CO and SCSI don't work together 0009h invalid music volume 000Ah invalid master volume 000Bh /SC switch is no longer valid 0100h ??? (some error on patch loading)Top
INT 81 - Gravis UltraSound - MegaEm - ??? AX = 0202h Return: AX = ??? SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457hTop
INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ??? AX = 0300h Return: AX = ??? SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457hTop
INT 81 - Gravis UltraSound - MegaEm - ??? AX = 0400h BX = ??? (segment) Return: AX = ??? BX = ??? Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32 emulator for the Gravis UltraSound SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457hTop
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT AX = 2010h ??? Return: ??? Note: MegaEm calls this function from its INT 78 handler, and then immediately returns (via RETF in v3.10, thus leaving the flags on the stack); this permits it to operate while hooking only one interrupt through the memory manager in protected mode SeeAlso: AX=2011h,AX=2012hTop
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT AX = 2011h ??? Return: ??? Note: MegaEm calls this function from its NMI (INT 02) handler, and then immediately returns; this permits it to operate while hooking only one interrupt through the memory manager in protected mode SeeAlso: AX=2010h,AX=2012hTop
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT AX = 2012h ??? Return: ??? Note: MegaEm calls this function from its GUS IRQ handler, and then immediately returns; this permits it to operate while hooking only one interrupt through the memory manager in protected mode SeeAlso: AX=2010h,AX=2011hTop
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ??? AX = 2015h ??? Return: ???Top
INT 82 - reserved for BASIC SeeAlso: INT 81"BASIC",INT 83"BASIC"Top
INT 82 - IBM TOKEN RING ADAPTER - ??? AH = function 00h display message??? DS:BX -> string ??? Return: ??? SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"Top
INT 83 - reserved for BASIC SeeAlso: INT 82"BASIC",INT 84"BASIC"Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 00h ??? Return: CF clear (successful) AX = ??? (0302h) Program: JM Pro Tracker is a public-domain resident .MOD (digital music) player by Josha Munnik (Table 03976) Values for JM Pro Tracker error code: 000Ah ??? 000Bh ??? 0014h ??? 001Eh some required parameters have not yet been set 001Fh already playing??? FExxh busy (API call already in progress) FFxxh invalid function numberTop
INT 83 - JM Pro Tracker v5.0 - ??? AH = 01h DX = ??? or FFFFh ??? Return: CF clear if successful CF set on error AX = error code (see #03976)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 02h BX = ??? ??? Return: CF clear if successful AX = ??? BX = ??? CX = ??? DX = ??? SI = ??? CF set on error AX = error code (000Ah,000Bh,other) (see #03976)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 03h BX = ??? (only low four bits, must be nonzero) CX = ??? ??? Return: CF clear if successful CF set on error AX = error code (0014h) (see #03976)Top
INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER??? AH = 04h CX = number of bytes in suggested buffer ES:DI -> suggested buffer for DMA transfers??? Return: CF clear if successful ES:AX -> actual buffer (filled with bytes of 80h) CX = actual length (multiple of 4) CF set on error AX = error code (see #03976) Note: the buffer must not cross a 64K DMA page boundaryTop
INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER AH = 05h CX = length of buffer ES:DI -> buffer for/containing ??? Return: CF clear (successful) SeeAlso: AH=06h,AH=07h,AH=18hTop
INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER AH = 06h CX = length of buffer ES:DI -> buffer for/containing ??? Return: CF clear (successful) SeeAlso: AH=05h,AH=07h,AH=18hTop
INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER AH = 07h BX = ??? CX = length of buffer ES:DI -> buffer for/containing ??? Return: CF clear (successful) SeeAlso: AH=05h,AH=06h,AH=18hTop
INT 83 - JM Pro Tracker v5.0 - START PLAYING??? AH = 08h ??? Return: CF clear if successful ??? CF set on error AX = error code (001Eh,001Fh) (see #03976) SeeAlso: AH=09h,AH=0AhTop
INT 83 - JM Pro Tracker v5.0 - PAUSE??? AH = 09h ??? Return: CF clear if successful CF set on error AX = error code (see #03976) SeeAlso: AH=08h,AH=0AhTop
INT 83 - JM Pro Tracker v5.0 - RESUME??? AH = 0Ah ??? Return: CF clear if successful CF set on error AX = error code (001Fh) (see #03976) SeeAlso: AH=08h,AH=09hTop
INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Bh BX = ??? ??? Return: CF clear if successful CF set on errorTop
INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Ch DX bit 5 = ??? ??? Return: CF clear if successful BX = ??? (FFFFh) CX = ??? (0000h) DX = ??? CF set on error AX = error code (see #03976)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Dh BX = ??? ??? Return: CF clear (successful)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Eh BX = ??? (ignored if ES:DI = 0000h:0000h) ES:DI -> ??? or 0000h:0000h Return: CF clear (successful)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Fh ??? Return: CF clear if successful AX = ??? CF set on error AX = error code (see #03976)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 10h BL = subfunction??? CX = ??? DX = ??? ??? Return: CF clear if successful CX = DX = ??? CF set on error AX = error code (see #03976) SeeAlso: AH=18hTop
INT 83 - JM Pro Tracker v5.0 - ??? AH = 11h BL = ??? CX = ??? Return: CF clear (successful)Top
INT 83 - JM Pro Tracker v5.0 - CLEAR ??? AH = 12h Return: nothingTop
INT 83 - JM Pro Tracker v5.0 - ??? AH = 13h BX = ??? Return: CF clear (successful)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 14h ??? Return: CF clear (successful) BX = ???Top
INT 83 - JM Pro Tracker v5.0 - GET ??? AH = 15h BX = what to get (zero/nonzero) Return: CF clear if successful BX = ??? DX = ??? CF set on error AX = error code (see #03976)Top
INT 83 - JM Pro Tracker v5.0 - ??? AH = 16h AL = subfunction 00h ??? Return: BX = ??? CX = ??? DX = ??? ES:DI -> ??? CF indicates ??? 01h ??? Return: BX = ??? CX = ??? DX = ??? Return: CF clear if successful CF set on error AX = error code (FFxxh) (see #03976)Top
INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT AH = 17h Return: CF clear if successful CF set on error (hooked by another program)Top
INT 83 - JM Pro Tracker v5.0 - SET BUFFERS AH = 18h ES:DI -> buffer-pointer structure (see #03977) Return: nothing SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h Format of JM Pro Tracker buffer-pointer structure: Offset Size Description (Table 03977) 00h WORD length of ??? buffer (see AH=05h) 02h DWORD -> ??? buffer (see AH=05h) 06h WORD length of ??? buffer (see AH=06h) 08h DWORD -> ??? buffer (see AH=06h) 0Ch WORD length of ??? buffer (see AH=07h) 0Eh DWORD -> ??? buffer (see AH=07h) 12h WORD ??? (see AH=07h) 14h WORD ??? (see AH=10h) (subfunction 01h) 16h WORD ??? (see AH=10h) (subfunction 01h) 18h WORD ??? (see AH=10h) (subfunction 00h) 1Ah WORD ??? (see AH=10h) (subfunction 01h)Top
INT 84 - reserved for BASIC SeeAlso: INT 83"BASIC",INT 85"BASIC"Top
INT 85 - reserved for BASIC Note: INT 80 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 84"BASIC",INT 86"BASIC"Top
INT 86 - NetBIOS - ORIGINAL INT 18 Note: some implementations of NetBIOS reportedly relocate INT 18 here SeeAlso: INT 18"BOOT HOOK"Top
INT 86 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 85"BASIC",INT 87"BASIC"Top
INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS SeeAlso: INT 21/AH=4Ch,INT 87"APL"Top
INT 87 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 86"BASIC",INT 88"BASIC"Top
INT 87 - APL*PLUS/PC - ??? SeeAlso: INT 86"APL",INT 88/AL=00hTop
INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!) Note: the ZeroHunt virus copies its resident code down to 0000h:021Ch and following SeeAlso: INT 8B"VIRUS"Top
INT 88 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 87"BASIC",INT 89"BASIC"Top
INT 88h - WANG PC - GET CONFIGURATION AL = get info type 01h Get System Console Return: ES:BX -> Configuration structure (see #04089) else: ??? SeeAlso: PORT 1010h"Wang",MEM F000h:0000h,MEM FC00h:3FC2h,INT 21/AX=4402h Format of Wang PC System Console configuration structure: Offset Size Description (Table 04089) 00h WORD version 02h WORD memory size 04h 2 WORDs reserved 08h WORD number of screens (1..4) 0Ah 4 WORDs offset of console screen info structure 1..4 within configuration structure's segment (ES) (see #04090) Format of Wang PC Screen Info structure: Offset Size Description (Table 04090) 00h BYTE state (bit 7 set appears to indicate the active console that is currently attached to the screen) 01h BYTE scanoff 02h WORD buffer segment 04h BYTE colors 05h BYTE row 06h BYTE column 07h BYTE attribute 00h = ??? 02h = ??? 0Fh = white on black 08h BYTE auxiliary mode 09h BYTE auxiliary mode 2 SeeAlso: #04089Top
INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE AL = 00h BX = STPTR of the variable to be assigned ES:SI -> model of type, rank, and shape (see #03978) Return: ES:DI -> first data byte of object DX:CX = number of elements in the object SeeAlso: INT 88/AL=01h,INT 88/AL=08h,INT C8"APL" Format of APL*PLUS/PC shape model: Offset Size Description (Table 03978) 00h BYTE type 01h character (2-byte dimension sizes) 02h integer (2-byte dimension sizes) 08h floating point (2-byte dimension sizes) 11h character (4-byte dimension sizes) 12h integer (4-byte dimension sizes) 18h floating point (4-byte dimension sizes) 01h BYTE rank 02h (D)WORD first dimension of shape N (D)WORD second dimension of shape ...Top
INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 01h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=00h,AL=02h,AL=08h,INT C8"APL"Top
INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 02h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=01h,AL=08h,INT C8"APL"Top
INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 08h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=01h,AL=02h,INT C8"APL"Top
INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL AL = F5h BX = STPTR of object SeeAlso: INT C8"APL"Top
INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING AL = F6h BX = STPTR of object SeeAlso: AL=F7h,AL=F8h,INT C8"APL"Top
INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING AL = F7h BX = STPTR of object SeeAlso: AL=F6h,AL=F8h,INT C8"APL"Top
INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING AL = F8h BX = STPTR of object Return: BX = name's outswapping status 0000h eligible 0001h not eligible SeeAlso: AL=F6h,AL=F7h,INT C8"APL"Top
INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS AL = F9h ES:SI -> name CX = length of name Return: CF set if name ill-formed or already in use BX = STPTR if already in symbol table CF clear if name is available for use BX = 0000h Note: does not force the name into the workspace SeeAlso: AL=FEh,AL=FFh,INT C8"APL"Top
INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION AL = FCh BX = amount of memory needed (paragraphs) Return: CF clear if memory available CF set if a workspace compaction is required SeeAlso: AL=FDh,INT C8"APL"Top
INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY AL = FDh Return: BX = number of paragraphs available in workspace SeeAlso: AL=FCh,INT C8"APL"Top
INT 88 - APL*PLUS/PC - CREATE NAME AL = FEh ES:SI -> name CX = length of name Return: BX = STPTR of name DX = interpreter's data segment SeeAlso: AL=F9h,AL=FFh,INT C8"APL"Top
INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS AL = FFh ES:SI -> name CX = length of name Return: CF set if name ill-formed or already in use BX = STPTR if already in symbol table CF clear if name is available for use BX = 0000h Note: forces the name into the workspace and makes it immune from outswapping SeeAlso: AL=F9h,AL=FEh,INT C8"APL"Top
INT 89 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 88"BASIC",INT 8A"BASIC"Top
INT 89 - APL*PLUS/PC - ??? Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT C9"APL"Top
INT 8A - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 89"BASIC",INT 8B"BASIC"Top
INT 8A - APL*PLUS/PC - PRINT SCREEN Note: same as INT 05 SeeAlso: INT 05"PRINT SCREEN",INT 8C"APL",INT CA"APL"Top
INT 8B - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8A"BASIC",INT 8C"BASIC"Top
INT 8B - APL*PLUS/PC - BEEP Note: same as printing a ^G via INT 21/AH=02h SeeAlso: INT 21/AH=02h,INT CB"APL"Top
INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!) Note: if the ZeroHunt virus is resident, this vector will contain either EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415) SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"Top
INT 8C - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8B"BASIC",INT 8DTop
INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY AX = flag 0000h do not save display attributes 0001h save attributes SeeAlso: INT CC"APL"Top
INT 8D - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8C,INT 8ETop
INT 8E - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8D,INT 8FTop
INT 8F - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8E,INT 90Top
INT 90 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8F,INT 91Top
INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVERTop
INT 91 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 90,INT 92Top
INT 91 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"Top
Top
INT 92 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 92 - Sangoma X.25 INTERFACE PROGRAM BX:DX -> control block SeeAlso: INT 68"Sangoma"Top
INT 92 - Da Vinci eMail Dispatcher INTERFACE AH = E1h AL = function BX = stack count (number of words to push) CX:DX -> stack data (in word-reversed order ready to push) Return: AX = status (see #03979) Note: preserves BP, DS, SI, DI; other registers may be destroyed (Table 03979) Values for Da Vinci eMail function status: 0001h success FF97h "ERS_NOT_AVAILABLE" FF99h "ERS_TOO_MANY_NAMES" FF9Ah "ERS_BAD_NAME_PASSWORD" FFE3h "ERS_NAME_NOT_FOUND" FFF8h "ERS_USE_STRING" (call NetGetError to get error string) FFFFh "ERS_NO_SUCH_FILE"Top
INT 92 - Da Vinci eMail Dispatcher - "NetInitStart" AX = E100h BX = size of parameter block in words (000Ah) CX:DX -> parameter block (see #03980) Return: AX = 0001h success Desc: this function is used to initialize the dispatcher SeeAlso: AX=E101h,AX=E103h Format of Da Vinci eMail "NetInitStart" parameter block: Offset Size Description (Table 03980) 00h WORD segment of ??? 02h WORD offset of ??? 04h WORD high part of long ??? 06h WORD low part of long ??? 08h WORD high part of long ??? 0Ah WORD low part of long ??? 0Ch WORD high part of long ??? 0Eh WORD low part of long ??? 10h WORD high part of long ??? 12h WORD low part of long ???Top
INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck" AX = E101h BX = 0000h CX:DX ignored Return: AX = 0001h success SeeAlso: AX=E100h,AX=E180hTop
INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver" AX = E102h BX = 0000h CX:DX ignored Return: AX = 0001h success Desc: this function is used to determine if the dispatcher is loaded SeeAlso: AX=E10Bh,AX=E180hTop
INT 92 - Da Vinci eMail Dispatcher - "NetTerminate" AX = E103h BX = 0000h CX:DX ignored Return: AX = status (see #03979) SeeAlso: AX=E100hTop
INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs" AX = E104h BX = size of parameter block in words (0006h) CX:DX -> parameter block (see #03981) Return: AX = status (see #03979) Desc: this function is used to verify node address for usernames SeeAlso: AX=E180h Format of Da Vinci eMail "NetWhereIs" parameter block: Offset Size Description (Table 03981) 00h WORD segment of node address buffer 02h WORD offset of node address buffer 04h WORD segment of uppercase username 06h WORD offset of uppercase username 08h WORD segment of "DVSEMAIL" 0Ah WORD offset of "DVSEMAIL"Top
INT 92 - Da Vinci eMail Dispatcher - "NetOpen" AX = E105h BX = size of parameter block in words (0007h) CX:DX -> parameter block (see #03982) Return: AX = 0000h Error AX = handle Desc: this function is used to open a submission channel SeeAlso: AX=E10Ah,AX=E106h,AX=E108h Format of Da Vinci eMail "NetOpen" parameter block: Offset Size Description (Table 03982) 00h WORD operation (1 = read, 2 = write) 02h WORD segment of uppercase To: username 04h WORD offset of uppercase To: username 06h WORD segment of "DVSEMAIL" 08h WORD offset of "DVSEMAIL" 0Ah WORD segment of node address 0Ch WORD offset of node addressTop
INT 92 - Da Vinci eMail Dispatcher - "NetRead" AX = E106h BX = 0004h CX:DX -> parameter block Return: AX = 0001h SeeAlso: AX=E108hTop
INT 92 - Da Vinci eMail Dispatcher - "NetGetError" AX = E107h BX = 0002h CX:DX -> parameter block Return: AX = 0001h SeeAlso: AX=E109h,AX=E180hTop
INT 92 - Da Vinci eMail Dispatcher - "NetWrite" AX = E108h BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #03983) Return: AX = amount written Desc: This function is used to write transactions to the dispatcher. The command block is written first and then another call is used to write the associated data. SeeAlso: AX=E106h Format of Da Vinci eMail "NetWrite" parameter block: Offset Size Description (Table 03983) 00h WORD buffer count (see #03985) 02h WORD segment of command buffer (see #03984) 04h WORD offset of command buffer 06h WORD handle from NetOpen Format of Da Vinci eMail command buffer: Offset Size Description (Table 03984) 00h BYTE command 21h '!' Protocol commands for remote control 41h 'A' Authorization protocol element 42h 'B' Return(back) routing information Associated data is the From: username 43h 'C' Carbon Copy list Associated data is a comma delimitted list of usernames 44h 'D' Distribution list Associated data is a comma delimitted list of usernames 45h 'E' Mail end marker No associated data 48h 'H' Mail message header Associated data is a message header buffer 4Dh 'M' Mail message Associated data is the body of the message 4Fh 'O' Object 50h 'P' Paperclip attachment 52h 'R' Routing information Associated data is the To: username 53h 'S' Subject Associated data is the subject of the message 54h 'T' Trail of Reply/Forwards 01h BYTE subcommand 02h DWORD length of associated data Format of Da Vinci eMail message header buffer: Offset Size Description (Table 03985) 00h 30 BYTEs subject line 1Eh 24 BYTEs To 36h 24 BYTEs From 4Eh DWORD Time BYTE 00h BYTE hour BYTE minute BYTE second 52h DWORD Date BYTE 00h BYTE year BYTE month BYTE day 56h DWORD serial number (00000000h) 5Ah WORD mail types (see #03986) 5Ch WORD special types (0) Bitfields for Da Vinci eMail mail types: Bit(s) Description (Table 03986) 7 blind carbon copy 6 carbon copy 5 priority 4 confidential 3 certified 2 bulk 1-0 class (first, second, third, bulk)Top
INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED) AX = E109h BX = size of parameter block in words (0001h) CX:DX -> parameter block (see #03987) Return: AX = FF97h (ERS_NOT_AVAILABLE) SeeAlso: AX=E107h,AX=E180h Format of Da Vinci eMail "NetErrorFix" parameter block: Offset Size Description (Table 03987) 00h WORD ???Top
INT 92 - Da Vinci eMail Dispatcher - "NetClose" AX = E10Ah BX = size of parameter block in words (0001h) CX:DX -> parameter block (see #03988) Return: AX = 0001h Desc: this function is used to close a dispatcher handle SeeAlso: AX=E105h Format of Da Vinci eMail "NetClose" parameter block: Offset Size Description (Table 03988) 00h WORD handle from NetOpenTop
INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue" AX = E10Bh BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #03989) Return: AX = 0001h SeeAlso: AX=E102h,AX=E10Ch Format of Da Vinci eMail "NetCheckQueue" parameter block: Offset Size Description (Table 03989) 00h WORD segment of 24-byte username buffer 02h WORD offset of 24-byte username buffer 04h WORD segment of 24-byte protocol buffer 06h WORD offset of 24-byte protocol bufferTop
INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue" AX = E10Ch BX = size of parameter block in words (0002h) CX:DX -> parameter block (see #03990) Return: AX = 0001h SeeAlso: AX=E10Bh Format of Da Vinci eMail "NetReadQueue" parameter block: Offset Size Description (Table 03990) 00h WORD Segment of 128 byte node address buffer 02h WORD Offset of 128 byte node address bufferTop
INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName" AX = E10Dh BX = size of parameter block in words (0006h) CX:DX -> parameter block (see #03991) Return: AX = status (see #03979) Desc: this function is used to verify username/password SeeAlso: AX=E10Eh Format of Da Vinci eMail "NetSubmitName" parameter block: Offset Size Description (Table 03991) 00h WORD segment of uppercase password string 02h WORD offset of uppercase password string 04h WORD segment of uppercase username string 06h WORD offset of uppercase username string 08h WORD segment of "DVSEMAIL" 0Ah WORD offset of "DVSEMAIL"Top
INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName" AX = E10Eh BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #03992) Return: AX = 0001h Desc: this function is used to remove a username SeeAlso: AX=E10Dh Format of Da Vinci eMail "NetRemoveName" parameter block: Offset Type Description (Table 03992) 00h WORD segment of uppercase username 02h WORD offset of uppercase username 04h WORD segment of "DVSEMAIL" 06h WORD offset of "DVSEMAIL"Top
INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY AX = E10Fh BX = 0000h CX:DX ignored Return: AX = 0001h SeeAlso: AX=E180hTop
INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute" AX = E110h BX = size of parameter block in words (0006h) CX:DX -> parameter block (see #03993) Return: AX = 0001h SeeAlso: AX=E111h,AX=E113h Format of Da Vinci eMail "NetGetAltRoute" parameter block: Offset Size Description (Table 03993) 00h 6 WORDs ???Top
INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes" AX = E111h BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #03994) Return: AX = 0001h SeeAlso: AX=E110h,AX=E113h Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block: Offset Size Description (Table 03994) 00h 4 WORDs ???Top
INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword" AX = E112h BX = size of parameter block in words (0008h) CX:DX -> parameter block (see #03995) Return: AX = 0001h SeeAlso: AX=E180h Format of Da Vinci eMail "NetChangePassword" parameter block: Offset Size Description (Table 03995) 00h 8 WORDs ???Top
INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute" AX = E113h BX = size of parameter block in words (0008h) CX:DX -> parameter block (see #03996) Return: AX = 0001h SeeAlso: AX=E110h,AX=E111h Format of Da Vinci eMail "NetSetAltRoute" parameter block: Offset Size Description (Table 03996) 00h 8 WORDs ???Top
INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR AX = E175h Return: AX = 0012h BX = PSP SeeAlso: AX=E180hTop
INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK AX = E180h Return: AX = 0012h if installed ES:DX -> '$'-terminated driver information string SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175hTop
INT 93 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 93 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"Top
INT 94 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 94 u - PCM driver - INITIALIZE SOUND SI = 0000h ES:BX -> parameters Return: ??? Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum sound boards InstallCheck: test for the signature string "PCMDRIVER" immediately preceding the interrupt handler; the word preceding the signature gives the PCM driver's version SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah Index: installation check;PCM driver|PCM.COM;installation check Index: PCM driver;installation checkTop
INT 94 u - PCM driver - INITIALIZE PCM SI = 0001h ES:BX -> parameters Return: ??? SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000AhTop
INT 94 u - PCM driver - INITIALIZE PCM INFO SI = 0002h ES:BX -> parameters (see #03997) Return: ??? SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah Format of PCM driver function 0002h parameters: Offset Size Description (Table 03997) 00h DWORD rate 04h WORD channel number 06h WORD "comp" 08h WORD "dsize"Top
INT 94 u - PCM driver - INITIALIZE DMA BUFFER SI = 0003h ES:BX -> parameters (see #03998) Return: ??? SeeAlso: SI=0000h,SI=000Ah,SI=000Bh Format of PCM driver function 0003h parameters: Offset Size Description (Table 03998) 00h DWORD -> DMA buffer 04h WORD size of DMA buffer 06h WORD number of divisionsTop
INT 94 u - PCM driver - INITIALIZE USER FUNCTION SI = 0004h ES:BX -> parameters (see #03999) Return: ??? SeeAlso: SI=0000h,SI=0001h Format of PCM driver function 0004h parameters: Offset Size Description (Table 03999) 00h DWORD -> user functionTop
INT 94 u - PCM driver - BEGIN AUDIO PLAY SI = 0005h Return: ??? SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009hTop
INT 94 u - PCM driver - BEGIN AUDIO RECORD SI = 0006h Return: ??? SeeAlso: SI=0005h,SI=0007h,SI=0009hTop
INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD SI = 0007h Return: ??? SeeAlso: SI=0005h,SI=0006h,SI=0008hTop
INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD SI = 0008h Return: ??? SeeAlso: SI=0007hTop
INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD SI = 0009h Return: ??? SeeAlso: SI=0005h,SI=0006h,SI=0007hTop
INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA SI = 000Ah Return: ??? SeeAlso: SI=0000h,SI=0001h,SI=0003h Index: uninstall;PCM driverTop
INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK SI = 000Bh ES:BX -> parameters (see #04000) Return: ??? SeeAlso: SI=0003h Format of PCM driver functio 000Bh parameters: Offset Size Description (Table 04000) 00h DWORD -> memory block to contain DMA buffer 04h WORD desired size of DMA bufferTop
INT 94 u - Media Vision PCM.COM - GET STATUS SI = 000Dh Return: AX = status (0000h = waiting) (see #04001) Bitfields for PCM.COM status: Bit(s) Description (Table 04001) 0 playing 1 recording 2 SBplaying 3 SBrecording 14 SBpaused 15 pausedTop
INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS SI = 8000h Return: DX:AX -> DMA buffer Program: PCM.COM is a superset of the standard PCM driver which provides additional functions for fine control of the driver InstallCheck: for the Media Vision PCM.COM "shark" functions, test for the signature "PCM-SHARK" at offset 107h in the INT 94 handler's segment SeeAlso: SI=8001h,SI=8004h Index: installation check;Media Vision PCM.COM|PCM.COM;installation check Index: Media Vision PCM.COM;"shark" functionsTop
INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS SI = 8001h Return: AX = DMA buffer size DX = divisions SeeAlso: SI=8000hTop
INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS SI = 8002h Return: AX = status 0000h if board not at specified I/O address other if board found Note: the I/O address is specified by ORing the base I/O port shifted left four bits into SI before calling INT 94 SeeAlso: SI=8000hTop
INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER SI = 8004h Return: AX = offset of note buffer (segment = segment of internal DMA buffer) DX = size of buffer in note structures SeeAlso: SI=8000hTop
INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE SI = 8005h Return: ???Top
INT 94 u - Media Vision PCM.COM - INITIALIZE SI = 8011h ES:BX -> "iobf91" structure Return: ???Top
INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD SI = 8012h ES:BX -> "i94f92buf" structure Return: ??? SeeAlso: SI=8013h,SI=8014hTop
INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE SI = 8013h Return: AX = number of sounds used DX = maximum handlesTop
INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND SI = 8014h ES:BX -> "i94f92buf" structure to be filled in sound number field set to desired sound Return: AX = status 0000h successful FFFFh sound number out of range SeeAlso: SI=8012h,SI=8013hTop
INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER SI = 8015h ES:BX -> DMA info structure (see #04002) Return: ??? Format of PCM.COM DMA info structure: Offset Size Description (Table 04002) 00h DWORD -> DMA buffer (offset FFFFh = return current buffer info) 04h WORD DMA buffer size 06h WORD divisionsTop
INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY SI = 8016h AX = hotkey number (01h-08h) Return: ??? SeeAlso: AL=02h/SI=8017hTop
INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT AL = 01h SI = 8017h AH = new state (00h off, 01h on) Return: ??? SeeAlso: AL=02h/SI=8017hTop
INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE AL = 02h SI = 8017h AH = new state (00h off, 01h on) Return: ???Top
INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE AL = 04h SI = 8017h AH = new state 00h off 01h on CX = minimum delay DX = maximum delay Return: ???Top
INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE AL = 08h SI = 8017h AH = new state 00h off 01h on DX:CX = delay Return: ??? SeeAlso: AL=10h/SI=8017hTop
INT 94 u - Media Vision PCM.COM - TIMER CONTROL AL = 10h SI = 8017h AH = timer options (see #04003) DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set) Return: ??? SeeAlso: AL=08h/SI=8017h Bitfields for PCM.COM timer options: Bit(s) Description (Table 04003) 7 set timer 6 timer active (timer turned off if clear) 5-0 timer numberTop
INT 94 u - Media Vision PCM.COM - GET INFO SI = 8018h AL = what to get 00h "F92state" 01h "F92bkgd" 02h "I10timer" 03h "I08state" Return: DX:AX -> desired informationTop
INT 95 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 95 - APL*PLUS/PC - DETERMINE R= SPACE Note: use only when the R= option is invoked on entering APLTop
INT 96 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 96 U - KILL.COM, QKILL.COM - POP UP Program: KILL.COM is a TSR utility that allows you to terminate programs by calling INT 21/AH=4Ch or reboot the computer (author unknown); QKILL.COM is a modification of KILL.COM by Solar Designer that supports QEMM's Quick Boot feature Notes: This interrupt is intercepted but not chained by KILL.COM; it is never called by KILL.COM itself. It points into the middle of KILL.COM's INT 09 handler and assumes specific values have been placed on the stack (thus it can't be called as an interrupt). To invoke KILL, use the following code: pushf push cs push offset $+0Dh push ax push es push 0 pop es jmp dword ptr es:[96h*4]Top
INT 97 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 98 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 99 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT 9A - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 99,INT 9BTop
INT 9B - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"Top
INT 9C - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"Top
INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"Top
INT 9D - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"Top
INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT Note: this vector is used by the virus to store the result of a call to INT 2F/AH=13h SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"Top
INT 9E - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"Top
INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"Top
INT 9F - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"Top
INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR Note: while it is infecting a file, the INT13 virus grabs INT 13 and uses this interrupt to store the existing INT 13 vector for later restoration SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS",INT D3"VIRUS"Top
INT A0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"Top
INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE SeeAlso: INT 59"GSS"Top
INT A1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"Top
INT A2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"Top
INT A3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"Top
INT A4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"Top
INT A4 U - Right Hand Man - API AH = function number (v3.3 supports functions 00h-52h) Return: CF set on error CF clear if successful Program: Right Hand Man is a TSR desk-top utility originally by Red E Products which has evolved into Futurus Team Note: this interrupt is only hooked while popped up SeeAlso: INT 2F/AX=A4E0hTop
INT A5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"Top
INT A6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"Top
INT A7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT A8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT A9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT AA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT AB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT AC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT AD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT AE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT AF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT B0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT B1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT B2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT B3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT B3 - ZIPKEY - GET VERSION AH = 70h Return: AH = major version AL = minor version CL = number of states and territories in current database DH = year of current database - 1900 DL = month of current database's file date Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson Note: if installed, the string "ZIPKEY" is present at offset 75h in the interrupt handler's segment, and the byte at 7Bh contains the API version number (00h for v1.x, 01h for v2.0)Top
INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE AH = 71h BX = abbreviation, in either case (first letter in BL) Return: CF set on error AL = FFh CF clear if successful AL = ZIPKEY state code SeeAlso: AH=72hTop
INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION AH = 72h BL = ZIPKEY state code Return: CF set on error AX destroyed CF clear if successful AX = abbreviation, in upper case SeeAlso: AH=71h,AH=73hTop
INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME AH = 73h BL = ZIPKEY state code ES:DI -> buffer for name Return: CF set on error AX destroyed CF clear if successful ES:DI points one byte beyond end of name SeeAlso: AH=72hTop
INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS AH = 74h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) ES:DI -> buffer Return: CF set on error AX destroyed CF clear if successful ES:DI points one byte beyond end of digit stringTop
INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE AH = 75h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) Return: CF set on error (zipcode not found) AL = suggested state code, FFh if none CF clear if successful AL = ZIPKEY state code BX = area code (v2.0+) SeeAlso: AH=76h,AH=79hTop
INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE AH = 76h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) ES:DI -> buffer for name Return: CF set on error AL = suggested state code, FFh if none ES:DI buffer filled with suggested city name CF clear if successful AL = ZIPKEY state code BX = area code (v2.0+) ES:DI points one byte beyond end of name SeeAlso: AH=75h,AH=78h,AH=7EhTop
INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE AH = 77h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key Return: CF set on error AX destroyed CF clear if successful zipcode specification as defined by the BX keystroke is placed in keyboard buffer, as if the user had popped up ZIPKEY and exited by pressing the key specified by BXTop
INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY AH = 78h BL = ZIPKEY state code DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix Return: BH = number of matching entries (set to 51 if more than 50) DX = zipcode region of first match (0-999) CL = last two digits of first zipcode in the range (0-99) CH = last two digits of last zipcode in the range (0-99) AX destroyed SeeAlso: AH=79h,AH=7AhTop
INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY AH = 79h BL = ZIPKEY state code of first state to search DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix Return: AL = ZIPKEY state code of first matching state BH = number of matching entries (set to 51 if more than 50) DX = zipcode region of first match (0-999) CL = last two digits of first zipcode in first range (0-99) CH = last two digits of last zipcode in first range (0-99) Note: to find all matching cities, repeat search with BL set to one more than the returned AL SeeAlso: AH=78h,AH=7AhTop
INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP AH = 7Ah BL = case number (0 to one less than value returned in BH by lookup) Return: AL = ZIPKEY state code DX = zipcode region (0-999) CL = last two digits of first zipcode in the range (0-99) CH = last two digits of last zipcode in the range (0-99) SeeAlso: AH=78h,AH=79hTop
INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT AH = 7Bh Return: BL = maximum number of characters for a city name BH = ZIPKEY state code for last city-name search, or FFh if none CX:DX = internal code identifying last city search AX destroyed SeeAlso: AH=7ChTop
INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT AH = 7Ch BL = maximum number of characters for a city name BH = ZIPKEY state code for last city-name search, or FFh if none CX:DX = internal code returned by AH=7Bh Return: CF set on error CF clear if successful AX destroyed SeeAlso: AH=7BhTop
INT B3 - ZIPKEY - REQUEST POP UP AH = 7Dh BL = index number to simulate pressing a hotkey FFh for immediate popup with no playback on return Return: CF set on error AL = error code FDh already busy with another request FEh illegal function CF clear if successful AX destroyed window popped up and was closed by the user SeeAlso: AH=70hTop
INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION AH = 7Eh DX = zipcode region (0-999) ES:DI -> buffer for name Return: CF set on error AL = FFh region does not exist CF clear if successful AL = ZIPKEY state code ES:DI points one byte beyond end of name SeeAlso: AH=76hTop
INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS AH = 7Fh BL = function 00h turn off hotkeys 01h turn on hotkeys 02h return hotkey status 03h toggle hotkey status Return: AL = hotkey status 00h off 01h onTop
INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE AH = 80h BX = telephone area code (decimal) Return: CF clear if successful AL = ZIPKEY state code DX = first ZIP region for state (03E8h if Canada) CX = number of ZIP regions in state CF set on error AL = FFh DX = 03E9hTop
INT B4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT B4 - StackMan - REQUEST NEW STACK Return: SS:SP -> new stack Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V. which functions as a replacement for the DOS STACK= command as well as permitting multiple TSRs to share a pool of stack space InstallCheck: test for the string "STACKXXX" at offset 0Ah from the interrupt handler SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN" Index: installation check;STACKMANTop
INT B5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"Top
INT B5 - StackMan - RESTORE ORIGINAL STACK SS:SP -> stack returned by INT B4 Return: SS:SP restored to value before INT B4 SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"Top
INT B5 U - Netroom NETSWAP4 - ??? ??? Return: ??? SeeAlso: INT 31/AH=57hTop
INT B6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"Top
INT B6 - (NOT A VECTOR!) - USED BY TBFENCE Program: TBFence is a security program by ESaSS B.V. which transparently encrypts floppies and optionally allows only encrypted diskettes to be accessed Note: the low word of this vector (0000h:02D8h) contains the segment of the TBFence INT 13h code, which starts with the signature word E487h; this forms the installation check the highest byte of this vector contains the start of a FAR JMP instruction to ??? SeeAlso: INT B7"TBFENCE" Index: installation check;TBFenceTop
INT B7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"Top
INT B7 - TBFENCE - ??? SeeAlso: INT B6"TBFENCE"Top
INT B8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"Top
INT B9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT BA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT BB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT BC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT BD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT BE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"Top
INT BE - DESQview/X - ??? Note: points at an IRET SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"Top
INT BF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"Top
INT C0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"Top
INT C0 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the first four bytes of the hard disk parameter table SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C1"AMI",INT C2"AMI" SeeAlso: INT C3"AMI",INT C4"AMI"Top
INT C1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"Top
INT C1 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the second four bytes of the hard disk parameter table SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI",INT C2"AMI" SeeAlso: INT C3"AMI"Top
INT C2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"Top
INT C2 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the third four bytes of the hard disk parameter table SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"Top
INT C3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"Top
INT C3 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the final four bytes of the hard disk parameter table SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"Top
INT C4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"Top
INT C4 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the first four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C5"AMI" SeeAlso: INT C6"AMI",INT C7"AMI"Top
INT C5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"Top
INT C5 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the second four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI" SeeAlso: INT C6"AMI",INT C7"AMI"Top
INT C6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"Top
INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86 Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 86"APL"Top
INT C6 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the third four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI" SeeAlso: INT C5"AMI",INT C7"AMI"Top
INT C7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"Top
INT C7 - APL*PLUS/PC - ??? Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 87"APL"Top
INT C7 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the final four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI" SeeAlso: INT C5"AMI",INT C6"AMI"Top
INT C8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"Top
INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88 Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 88/AL=00h"APL",INT 88/AL=08h"APL"Top
INT C9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"Top
INT C9 - APL*PLUS/PC - ??? Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 89"APL"Top
INT CA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"Top
INT CA - APL*PLUS/PC - PRINT SCREEN Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 8A"APL"Top
INT CB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"Top
INT CB - APL*PLUS/PC - BEEP Notes: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts same as printing a ^G via INT 21/AH=02h SeeAlso: INT 8B"APL"Top
INT CC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"Top
INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY AX = flag 0000h do not save display attributes 0001h save attributes Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 8C"APL"Top
INT CD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"Top
INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT CE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"Top
INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT CF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"Top
INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION SeeAlso: INT E0"APL"Top
INT D0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"Top
INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty James" Blaszczak Note: if NJFRERAM is installed, this vector points at the signature "NJ" Index: installation check;NJFRERAMTop
INT D1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"Top
INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"Top
INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"Top
INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D3 - VIRUS - "Antiexe" - RELOCATED INT 13 SeeAlso: INT 9F"VIRUS"Top
INT D4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"Top
INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS AH = 00h and 01h Return: nothing Desc: PC-MOS/386 v5.01 reports that these functions are no longer supported and enters an endless loop Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc.Top
INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER AH = 02h Return: AX = 0000h ES:BX -> System Control Block in V86 mode (see #04004) ES:EBX -> System Control Block in native mode (see #04004) Note: superseded by AH=26h SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38 Format of PC-MOS/386 System Control Block: Offset Size Description (Table 04004) 00h WORD pointer to first TCB in chain 02h 17 BYTEs reserved 13h WORD pointer to current task's TCB 15h WORD pointer to TCB of visible (console) taskTop
INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
AH = 03h
AL = subfunction (00h get, 01h set)
DS:(E)DX -> pathname
ES:(E)BX -> 10-byte buffer for directory information (see #04005)
Return: CF clear if successful
AL = permitted access level for file (00h-03h)
ES:(E)BX -> modified buffer (AL=01h on entry)
CF set on error
AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
Notes: BX/DX are used in V86 mode, EBX/EDX in native mode
the file class cannot be changed for files because it affects the
encryption method, but directories can have their classes changed
Format of PC-MOS/386 directory information:
Offset Size Description (Table 04005)
00h BYTE reserved (0)
01h BYTE file class ('A'-'Z' or 00h)
02h DWORD user ID of file creator
06h WORD file creation time (see #01665 at INT 21/AX=5700h)
08h WORD file creation date (see #01666 at INT 21/AX=5700h)
Top
INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK AH = 04h BX = task ID or FFFFh for calling task Return: CF clear if successful ES = segment of Task Control Block (TCB) (see #04006) CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Note: superseded by AH=27h SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38 Format of PC-MOS/386 Task Control Block: Offset Size Description (Table 04006) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "T" = TCB 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---TCB--- 10h WORD TCB task ID 12h WORD native context save area 14h WORD start address of task 16h WORD end address of task 18h BYTE task priority 19h BYTE task time slice 1Ah BYTE "TCBWAIT" run status of task 1Bh BYTE "TCBSTAT" what the task is waiting for 1Ch DWORD address of polling routine 20h BYTE error code from last function call 21h 11 BYTEs name of currently executing task 2Ch 4 BYTEs ??? 30h BYTE keyboard disabled if bit 1 set 31h BYTE current shift state and toggles 32h 2 BYTEs ??? 34h BYTE current video mode 35h BYTE current video page 36h BYTE number of text columns per screen 37h BYTE number of text rows per screen 38h WORD length of video buffer 3Ah WORD video page length 3Ch WORD apge start address in video RAM 3Eh 4 WORDs current cursor positions for four screen pages 46h 8 BYTEs ??? 4Eh WORD current cursor type 50h BYTE current palette setting 51h BYTE original video mode 52h BYTE start CRT row (00h or 01h) 53h BYTE video RAM in task active 54h WORD handle of video save area 56h WORD page count of video save area 58h WORD segment address of video save area 5Ah WORD poitner to first Task File Block (see #04009) 5Ch WORD pointer to first Current Directory Block (see #04012) 5Eh WORD pointer to active Current Directory Block (see #04012) 60h BYTE number of drives 61h BYTE current drive (0=A:, etc.) 62h DWORD disk transfer address 66h 4 BYTEs ??? 6Ah BYTE verify flag (nonzero = on) 6Bh BYTE break flag (nonzero = on) 6Ch WORD share/lock retry count 6Eh WORD ticks between share/lock retries 70h BYTE remote printer flags (see #04007) 71h BYTE ETX/ACK delay count 72h WORD spooler segment address 74h 2 BYTEs ??? 76h 3 BYTEs remote printer redirection for LPT1 through LPT3 (see #04008) 79h 2 BYTEs ??? 7Bh DWORD offset of username in TCB 7Fh BYTE current output class 80h 7 BYTEs protection access rights, 2 bits per class (writeable!) 87h 122 BYTEs ??? 101h BYTE TCB sleep downcounter value 102h 20 BYTEs ??? 116h BYTE last scan code ... 5D0h DWORD far pointer to Device Driver Terminal's entry point 5D4h WORD offset of logical screen 5D6h WORD segment of logical screen 5D8h WORD cursor offset within page 5DAh BYTE screen columns 5DBh WORD async port number (0000h = none) 5DDh DWORD physical baudrate 5E1h 19 BYTEs reserved for Device Driver Terminal (DDT) ... 7A6h DWORD far pointer to unregister calling chain Bitfields for PC-MOS/386 remote printer flags: Bit(s) Description (Table 04007) 0 LPT1 to terminal 1 LPT2 to terminal 2 LPT3 to terminal 3 escape to printer pending 4 use XON/XOFF 5 use ETX/ACK 6 waiting for ACK or XON 7 transparent printing on (Table 04008) Values for PC-MOS/386 remote printer redirection: 00h not redirected 01h redirected to COM1 ... 18h redirected to COM24 51h redirected to LPT1 52h redirected to LPT2 53h redirected to LPT3 Format of PC-MOS/386 Task File Block: Offset Size Description (Table 04009) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "F" = task file block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---TFB--- 10h WORD segment address of next TFB 12h WORD segment address of previous TFB 14h WORD segment address of TFB's Global File Block (see #04011) 16h WORD segment address of owner's PSP 18h WORD file handle 1Ah 3 BYTEs ??? 1Dh DWORD file position 21h 4 BYTEs ??? 25h BYTE IOCTL flags (see #04010) 26h 2 BYTEs ??? Bitfields for PC-MOS/386 IOCTL flags: Bit(s) Description (Table 04010) 0 stdin 1 stdout 2 null device 3 clock device 4 reserved 5 ASCII mode instead of binary 6 EOF encountered on input 7 device rather than file Format of PC-MOS/386 Global File Block: Offset Size Description (Table 04011) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "G" = global file block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---GFB--- 10h 10 BYTEs ??? 1Ah WORD file attribute 1Ch BYTE ??? 1Dh DWORD address of device driver 21h WORD first cluster 23h WORD time of last modification 25h WORD date of last modification 27h DWORD size of file in bytes 2Bh 11 BYTEs ??? 36h 11 BYTEs device name or FCB-format filename 41h WORD segment address of TFB list 43h WORD segment address of first RLB (see #04014) (0000h = none) 45h BYTE flag: nonzero if GFB refers to character device 46h WORD address of Block Device Block (see #04013) 48h WORD sector of file's directory entry (see #01352) 4Ah WORD high word of file's directory entry 4Ch WORD ofsset of directory entry within sector Format of PC-MOS/386 Current Directory Block: Offset Size Description (Table 04012) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "C" = current directory block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---CDB--- 10h BYTE drive number 11h BYTE ??? 12h 64 BYTEs directory name 52h WORD first directory cluster (0000h = root) Format of PC-MOS/386 Block Device Block: Offset Size Description (Table 04013) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "B" = block device block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---BDB--- 10h BYTE logical drive 11h BYTE unit passed to driver 12h WORD sector size 14h BYTE cluster mask 15h BYTE cluster shift count 16h WORD starting sector of first FAT 18h BYTE number of FATs 19h WORD number of root directories 1Bh WORD sector number of first data sector (cluster 0002h) 1Dh WORD number of clusters + 1 (number of highest data cluster) 1Fh BYTE number of sectors in FAT 20h WORD beginning root directory sector number 22h DWORD device driver address 26h BYTE media descriptor byte 27h 5 BYTEs ??? 2Ch BYTE flag: volume > 32MB 2Dh BYTE ??? 2Eh BYTE number of sectors per cluster 2Fh WORD number of clusters on device 31h WORD number of free clusters (FFFFh = unknown) 33h WORD root directory cluster number 35h WORD pointer to alias/subst string 37h WORD TCB segment address of owner (0000h = none) Format of PC-MOS/386 Record Lock Block: Offset Size Description (Table 04014) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "R" = record lock block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---RLB--- 10h WORD segment address of owner's PSP 12h WORD segment address of Global File Block (see #04011) 14h WORD segment address of owner's Task File Block (see #04009) 16h DWORD file offset of locked region start 1Ah DWORD length of locked region 1Eh WORD owner's handle for fileTop
INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT AH = 07h AL = events to monitor (see #04015) BX = number of timer ticks until timeout if AL bit 1 set CX = bitmap of IRQs to monitor if AL bit 2 set (bit 0 = IRQ0 .. bit 15 = IRQ15) DX = port to monitor if AL bit 3 set Return: CF clear if successful AL = type of event which woke up task (see #04015) CX = IRQ (if any) which awakened task DX = port (if any) which awakened task CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Note: a device driver may make this call with AL=00h, which indicates that the driver is responsible for setting and clearing the TCBWAIT field in the TCB. To put task to sleep, set TCBWAIT bits 2-0 to 001; to reawaken it, set bit 1 (leaving other bits unchanged) SeeAlso: AH=04h,INT 16/AH=00h,INT 38 Bitfields for PC-MOS/386 events to monitor: Bit(s) Description (Table 04015) 0 keystroke 1 timeout 2 IRQ 3 port access 7 return status of user poll routine (other ignored if set)Top
INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE AH = 10h AL = direction (00h return to V86 mode, 01h enter native mode) CX = length in bytes of Native Context Area ( >=1024 ) DX = segment of Native Context Area Return: CF clear if successful running in desired mode at instruction following INT D4 call all segment registers converted to appropriate selectors/segments CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Note: MS-DOS calls are available in protected mode SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38Top
INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK AH = 11h EBX = block length in bytes Return: CF clear if successful EBX = number of bytes actually allocated ES = selector for allocated block CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. Note: the memory must be released before the program terminates SeeAlso: AH=10h,AH=12h,INT 38Top
INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK AH = 12h ES = selector for block to free Return: CF clear if successful CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) SeeAlso: AH=10h,AH=11h,AH=13h,INT 38Top
INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY) AH = 13h AL = type of alias selector (00h data, 01h stack, 02h code) BX = selector Return: CF clear if successful AX = new selector or 0000h if BX selector not found CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) SeeAlso: AH=11h,AH=12hTop
INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION AH = 16h AL = function (00h clear, 01h set reservation) CX = IRQ number Return: AX = status (0000h successful, 0001h currently reserved by another task) SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"Top
INT D4 - PC-MOS/386 v5.01 - GET TASK ID AH = 19h Return: BX = caller's task ID Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=1Dh,AH=1EhTop
INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY AH = 1Ah AL = subfunction (00h read, 01h set, 02h get and set) BX = task ID (FFFFh for current task) CL = new priority value Return: CF clear if successful CL = current priority value CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) SeeAlso: AH=1Bh,AH=1ChTop
INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE AH = 1Bh AL = subfunction (00h read, 01h set, 02h get and set) BX = task ID (FFFFh for current task) (see AH=19h) CL = new time slice value Return: CF clear if successful CL = current time slice value CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) SeeAlso: AH=1Ah,AH=1ChTop
INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE AH = 1Ch AL = subfunction (00h enable, 01h disable, 02h get mode) BX = task ID (FFFFh for current task) Return: CF clear if successful CL = current keyboard state CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=1Ah,AH=1BhTop
INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME AH = 1Dh BX = task ID (FFFFh for current task) (see AH=19h) ES:DI -> buffer for program name (see #04016) Return: CF clear if successful ES:DI buffer filled CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) SeeAlso: AH=19h,AH=1Eh Format of PC-MOS/386 program name buffer: Offset Size Description (Table 04016) 00h 8 BYTEs filename 08h 3 BYTEs extensionTop
INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
AH = 1Eh
BX = task ID (FFFFh for current task)
ES:DI -> 4-byte buffer for username
Return: CF clear if successful
CL = security class
20h (' ') none
41h-5Ah ('A'-'Z') security level
ES:DI buffer filled
CF set on error
AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
SeeAlso: AH=19h,AH=1Dh
Top
INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION AH = 1Fh BX = task ID (FFFFh for current task) (see AH=19h) Return: CF clear if successful CX = start segment of task DX = ending segment of task CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=2DhTop
INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION AH = 20h BX = task ID (FFFFh for current task) (see AH=19h) Return: CF clear if successful CX = port number (0000h if none) DI:SI = baudrate (if CX nonzero) CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) SeeAlso: INT 14/AH=0Ch"FOSSIL"Top
INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK AH = 21h BX = task ID (FFFFh for current task) (see AH=19h) Return: CF clear if successful AX = ASCII percentage of System Memory Pool used (AH = tens digit, AL = ones digit) DS,SI destroyed CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=22hTop
INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
AH = 22h
DS:SI -> addtask data structure (see #04018)
Return: CF clear if successful
ES = segment address of the new task's TCB data structure
CF set on error
AX = error code (see #04017)
SeeAlso: AH=21h
(Table 04017)
Values for PC-MOS/386 error code:
08h insufficient memory
0Bh invalid addtask structure format
12h insufficient available space in system memory pool
1Fh general failure
55h already allocated
57h if task already in use or invalid parameter
Format of PC-MOS/386 addtask data structure:
Offset Size Description (Table 04018)
00h WORD task size in KB (min 16KB)
02h WORD task ID (0000h for automatic selection)
04h BYTE task class (' ' or 'A'-'Z')
05h DWORD -> ASCIZ name of task startup batchfile
09h DWORD -> task's terminal driver (0000000h = background task)
0Dh WORD task port
0Fh DWORD task baud rate
13h DWORD (ret) total extended memory
17h DWORD (ret) number of 4K extended memory pages allocated
1Bh WORD (ret) paragraphs of system memory pool allocated
1Dh WORD (ret) system memory pool size in paragraphs
1Fh WORD (ret) ASCII task percentage of system memory pool
21h 3 BYTEs reserved
Top
INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER AH = 23h BX = task ID (FFFFh for current task) DS:SI -> entry point of the new Device Driver Terminal Return: CF clear if successful CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)Top
INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER AH = 24h Return: DS:DX -> '$'-terminated string containing the serial numberTop
INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION AH = 25h DX = driver's CS value Return: AX = segment address of driver in system memory pool (0000h if the driver is not within the system memory pool) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc.Top
INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR AH = 26h Return: DX = segment/selector of the System Control Block (see #04004) Note: this function supersedes AH=02h SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2AhTop
INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR AH = 27h BX = task ID (FFFFh if current task) (see AH=19h) Return: CF clear if successful DX = segment/selector for the Task Control Block (see #04006) CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) Note: this function supersedes AH=04h SeeAlso: AH=26h,AH=28h,AH=29h,AH=2AhTop
INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB AH = 28h BX = offset into control block at which to start reading CX = number of bytes to read DX = segment/selector of control block obtained via AH=26h or AH=27h ES:DI -> buffer for data Return: CF clear if successful CF set on error AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h) 05h access denied due to an invalid segment/selector SeeAlso: AH=26h,AH=27h,AH=29h,AH=2AhTop
INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB AH = 29h BX = offset into control block at which to start writing CX = number of bytes to write DX = segment/selector of control block obtained via AH=26h or AH=27h DS:SI -> buffer containing data to be written Return: CF clear if successful CF set on errro AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h) 05h access denied due to an invalid segment/selector Note: this function performs no bounds checking Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2AhTop
INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB AH = 2Ah BX = offset into control block at which to start swap CX = number of bytes to swap DX = segment/selector of control block obtained via AH=26h or AH=27h DS:SI -> buffer containing new data and to receive current data Return: CF clear if successful CF set on error AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h) 05h access denied due to an invalid segment/selector Note: the interrupts are disabled during the swap to prevent corruption SeeAlso: AH=26h,AH=27h,AH=28h,AH=29hTop
INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS AH = 2Ch AL = function 00h set spooler timeout CX = timout value in seconds 01h get spooler timeout Return: CX = current timeout in seconds 02h get spooler parameters Return: CH = priority (00h-09h) CL = disposition (d, h, i, n, s) SI = class (a - z) 03h set spooler parameters CH = priority (00h-09h) CL = disposition (d, h, i, n, s) SI = class (a - z) BX = task ID (FFFFh for current task) DX = LPT number Return: CF clear if successful CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) SeeAlso: AH=00h,AH=02h,AH=03hTop
INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE AH = 2Dh Return: DX = maximum task size in paragraphs BX = start address of task space Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=1Fh,AH=22hTop
INT D5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"Top
INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"Top
INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"Top
INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"Top
INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D8 - Screen Thief v1.00 - RELOCATED IRQ0 Range: INT 78h to INT E0h, selected by commandline switch Note: Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default, but may be directed via a commandline switch to use any range starting at a multiple of 8 between 78h and E0h SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview" SeeAlso: INT D9"Screen Thief"Top
INT D9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"Top
INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT D9 - Screen Thief v1.00 - RELOCATED IRQ1 Range: INT 79h to INT E1h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"Top
INT DA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"Top
INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT DA - Screen Thief v1.00 - RELOCATED IRQ2 Range: INT 7Ah to INT E2h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"Top
INT DB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"Top
INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT DB - Screen Thief v1.00 - RELOCATED IRQ3 Range: INT 7Bh to INT E3h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"Top
INT DC - PC/370 v4.1- - API SeeAlso: INT 60"PC/370"Top
INT DC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"Top
INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASESTop
INT DC - Screen Thief v1.00 - RELOCATED IRQ4 Range: INT 7Ch to INT E4h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"Top
INT DD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"Top
INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER BX = where to place keystrokes FFFFh insert before current buffer contents 0000h replace current contents 0001h insert after current contents CX = number of keystroke events to insert ES:SI -> data to be placed into buffer (list of WORD key codes) 4000h + N = normal ASCII keystroke N (N = 00h to FFh) 4100h + N = extended ASCII keystroke N (N = 03h to 84h) Return: nothing SeeAlso: INT 16/AH=05hTop
INT DD - Screen Thief v1.00 - RELOCATED IRQ5 Range: INT 7Dh to INT E5h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"Top
INT DE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"Top
INT DE - APL*PLUS/PC - ??? Note: appears to be the same as INT 16Top
INT DE - Screen Thief v1.00 - RELOCATED IRQ6 Range: INT 7Eh to INT E6h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"Top
INT DF - Victor 9000/Sirius 1 - SuperBIOS SeeAlso: INT 21/AH=EAh"NetWare"Top
INT DF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"Top
INT DF - APL*PLUS/PC - SAME AS INT 10 SeeAlso: INT 10/AH=00h,INT 10/AH=0EhTop
INT DF - Screen Thief v1.00 - RELOCATED IRQ7 Range: INT 7Fh to INT E7h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"Top
INT E0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"Top
INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION SeeAlso: INT CF"APL"Top
INT E0 - VIRUS - "Micro-128" - ??? Note: Micro-128 also overwrites the upper half of the interrupt table SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"Top
INT E0 - DeskMate (Tandy) - DESK EXECUTIVE API AX = function code (numerous) parameters passed in BX, DX, ES, DI, and/or BP Return: AX = return from function Program: DeskMate is a proprietary GUI from Tandy distributed with several models of the Tandy 1000's, 2500's, 3000's, and laptops. Retail and runtime versions also exist. Some Tandy's are designed to boot directly into DeskMate. SeeAlso: INT 15/AX=7002h,INT E1"DeskMate"Top
INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
CL = function number (see #04019,#04020)
DS,DX contain parameter(s):
DL = byte parameter
DX = word parameter
DS:DX -> structure
Return: as appropriate for function:
AL = byte result
AX = word
ES:AX -> structure (and BX=ES)
CX is often the error code (see #04021)
Notes: several functions are covered in more detail in following entries
most of these calls are also supported by Digital Research's DOS Plus
v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus",INT E6"CP/M-86"
(Table 04019)
Values for CP/M-86,DR Multiuser DOS function number:
00h terminate calling process (see INT E0/CL=00h)
01h read a character (see INT E0/CL=01h)
02h write character to default console (see INT E0/CL=02h)
03h read character from default AUX (see INT E0/CL=03h)
04h write character to default AUX (see INT E0/CL=04h)
05h write character to default list device (see INT E0/CL=05h)
06h perform raw I/O on default console (see INT E0/CL=06h)
07h return default AUX input status (see INT E0/CL=07h)
08h return default AUX output status (see INT E0/CL=08h)
09h write string to default console (see INT E0/CL=09h)
0Ah read string from default console (see INT E0/CL=0Ah)
0Bh return default console input status (see INT E0/CL=0Bh)
0Ch get BDOS release ID (see INT E0/CL=0Ch)
0Dh reset all disk drives (see also INT 21/AH=0Dh)
0Eh set default drive (see also INT 21/AH=0Eh"DOS 1+")
0Fh open file via FCB (see also INT 21/AH=0Fh,#01345)
10h close file via FCB (see also INT 21/AH=10h)
11h search for first matching file with FCB (see also INT 21/AH=11h)
12h search for next matching file with FCB (see also INT 21/AH=12h)
13h delete file via FCB (see also INT 21/AH=13h)
14h sequential read via FCB (see also INT 21/AH=14h)
15h sequential write via FCB (see also INT 21/AH=15h)
16h create file via FCB (see also INT 21/AH=16h)
17h rename file via FCB (see also INT 21/AH=17h)
18h get bit map of logged drives
19h get default drive (see also INT 21/AH=19h)
1Ah set DMA address offset
1Bh get default disk allocation vector (see also INT 21/AH=1Bh)
1Ch set default drive to read-only
1Dh get bit map of read-only drives
1Eh set file attributes via FCB (see also INT 21/AX=4301h)
1Fh get address of disk parameter block (see also INT 21/AH=1Fh)
20h get/set default user number
21h read random record via FCB (see also INT 21/AH=21h)
22h write random record via FCB (see also INT 21/AH=22h)
23h compute file size with FCB (see also INT 21/AH=23h)
24h get FCB random record number (see also INT 21/AH=24h)
25h reset specified drives
26h access specified drives (not in DR DOS Plus v2.1)
27h free specified drives
28h write random with FCB, zero fill (see also INT 21/AH=28h)
2Ah lock records in FCB file (see also INT 21/AH=5Ch)
2Bh unlock records in FCB file (see also INT 21/AH=5Ch)
2Ch set BDOS multisector count
2Dh set BDOS error mode
2Eh get free space on disk
2Fh load, initialize, and jump to process ("chain process")
(see INT E0/CL=2Fh,INT 21/AH=4Bh)
30h flush write-deferred buffers
31h get/set system variable (DOS Plus v2.1)
32h call BIOS (XIOS) character routine (see #04020)
33h set DMA address segment
34h get DMA buffer address
35h CP/M-86 allocate maximum memory (see INT E0/CL=35h)
36h allocate maximum memory at specified segment (see INT E0/CL=36h)
37h CP/M-86 allocate memory segment (see INT E0/CL=37h,INT 21/AH=48h)
38h allocate memory at specified segment (see INT E0/CL=38h)
39h CP/M-86 free specified memory segment (see INT E0/CL=39h,INT 21/AH=49h)
3Ah CP/M-86 free all memory (not in DOS Plus v2.1) (see INT E0/CL=3Ah)
3Bh load .CMD file into memory (see INT E0/CL=3Bh)
3Ch (DOS Plus v2.1) call RSX program
40h (DR-NET, REAL/32) log on a server (see INT E0/CL=40h)
41h (DR-NET, REAL/32) log off a server (see INT E0/CL=41h)
42h (DR-NET) send a message
43h (DR-NET) receive a message
44h (DR-NET, REAL/32) get network status (see INT E0/CL=44h)
45h (DR-NET, REAL/32) get requestor config table (see INT E0/CL=45h)
46h (DR-NET) set compatibility attributes
47h (DR-NET, REAL/32) get server configuration table (see INT E0/CL=47h)
48h (DR-NET, REAL/32) set network error mode (see INT E0/CL=48h)
49h (DR-NET, REAL/32) attach network
4Ah (DR-NET, REAL/32) detach network
4Bh (DR-NET, REAL/32) set default password
4Ch (DR-NET, REAL/32) get-set long timeout
4Dh (DR-NET, REAL/32) get parameter table
4Fh (REAL/32) get extended network error
50h (DR-NET, REAL/32) get network information
53h get current time (see also INT 21/AH=2Ch)
54h set current time (see also INT 21/AH=2Dh)
55h get binary system date (see also INT 21/AH=2Ah)
56h set system date (see also INT 21/AH=2Bh"DATE")
57h allocate system flag
58h deallocate system flag
59h reserve memory in global area (see INT E0/CL=59h)
5Ah lock physical drive
5Bh unlock physical drive
5Ch search path for executable file (see INT E0/CL=5Ch)
5Dh load and execute command (see INT E0/CL=5Dh)
5Eh get/set process exit code (see INT E0/CL=5Eh)
5Fh set country information
60h get country information
63h truncate FCB file (see also INT 21/AH=28h)
64h create/update directory label
65h get directory label
66h get FCB date stamp and password mode
67h write extended FCB
68h set system date and time
69h get system date and time in binary
6Ah establish password for file access
6Bh get OS serial number (see INT E0/CL=6Bh)
6Ch (DOS Plus v2.1) get/set program return code
6Dh get/set console mode (see INT E0/CL=6Dh)
6Eh get/set string delimiter (see INT E0/CL=6Eh)
6Fh write block to default console (see INT E0/CL=6Fh)
70h write block to default list device (see INT E0/CL=70h)
71h execute DOS-compatible function (see INT E0/CL=71h)
74h set FCB time and date stamps
80h allocate memory (see INT E0/CL=80h)
82h deallocate memory (see INT E0/CL=81h)
83h poll I/O device
84h wait on system flag (see INT E0/CL=84h)
85h set system flag (see INT E0/CL=85h)
86h create message queue (see INT E0/CL=86h)
87h open message queue (see INT E0/CL=87h)
88h delete message queue (see INT E0/CL=88h)
89h read from message queue (see INT E0/CL=89h)
8Ah conditionally read from message queue (see INT E0/CL=8Ah)
8Bh write to message queue (see INT E0/CL=8Bh)
8Ch conditionally write to message queue (see INT E0/CL=8Ch)
8Dh delay calling process (see INT E0/CL=8Dh)
8Eh call process dispatcher (yield CPU) (see INT E0/CL=8Eh)
8Fh terminate calling process (same as func 00h) (see INT E0/CL=8Fh)
90h create a process (see INT E0/CL=90h)
91h set calling process' priority (see INT E0/CL=91h)
92h attach to default console (see INT E0/CL=92h)
93h detach from default console (see INT E0/CL=93h)
94h (REAL/32) set the process' default console (see INT E0/CL=94h)
95h assign default console to process (see INT E0/CL=95h)
96h interpret and execute commandline (see INT E0/CL=96h)
97h resident procedure library
98h parse ASCII string into FCB (see also INT 21/AH=29h)
99h return default console (see INT E0/CL=99h)
9Ah get address of system data (SYSDAT) (see INT E0/CL=9Ah)
9Bh get system time and date
9Ch return calling process' descriptor (see INT E0/CL=9Ch)
9Dh terminate process by name or PD address (see INT E0/CL=9Dh)
9Eh attach to default list device (see INT E0/CL=9Eh)
9Fh detach from default list device (see INT E0/CL=9Fh)
A0h select default list device (see INT E0/CL=A0h)
A1h conditionally attach to default list device (see INT E0/CL=A1h)
A2h conditionally attach to default console (see INT E0/CL=A2h)
A3h get OS version number (see INT E0/CL=A3h)
A4h get default list device (see INT E0/CL=A4h)
A5h attach to default AUX (see INT E0/CL=A5h)
A6h detach from default AUX (see INT E0/CL=A6h)
A7h conditionally attach to default AUX (see INT E0/CL=A7h)
A8h set default AUX (see INT E0/CL=A8h)
A9h return default AUX (see INT E0/CL=A9h)
ACh read block from default AUX (see INT E0/CL=ACh)
ADh (DOS Plus v2.1) write block to default AUX (see INT E0/CL=ADh)
B0h configure default AUX (see INT E0/CL=B0h)
B1h get/set device control parameters (see INT E0/CL=B1h)
B2h send Break through default AUX (see INT E0/CL=B2h)
B3h allocate physical memory (see INT E0/CL=B3h)
B4h free physical memory (see INT E0/CL=B4h)
B5h map physical memory (see INT E0/CL=B5h)
B6h nondestructive conditional message queue read (see INT E0/CL=B6h)
B7h timed wait on system flag (see INT E0/CL=B7h)
B8h get/set I/O port mapping (see INT E0/CL=B8h)
B9h set list device timeout (see INT E0/CL=B9h)
BAh set AUX timeout value (see INT E0/CL=BAh)
BBh execute XIOS service
BDh (DR Multiuser DOS) delay (see INT E0/CL=BDh)
FFh return 80386 to native mode
SeeAlso: #04020,#04021
(Table 04020)
Values for DOS Plus v2.1 XIOS functions:
00h terminate program
01h ???
02h check for console input status
03h read character from console
04h write character to console
05h write character to list device
06h write character to auxiliary device
07h read character from auxiliary device
0Fh get list device status
10h-14h reserved
15h device initialization
16h check console output status
17h-7Fh reserved
---BBC Acorn---
80h get XIOS version
81h get Tube semaphore
82h release Tube semaphore
83h select text/graphics
84h update B&W graphics rectangle
85h update color graphics rectangle
86h get/release/update mouse
87h get system error info
88h entry in CLOCK called by WatchDog RSP
89h BBC OSBYTE function
8Ah BBC OSWORD function
SeeAlso: #04019
(Table 04021)
Values for DR Multiuser DOS Error Return Code:
00h no error
01h system call not implemented
02h illegal system call number
03h cannot find memory
04h illegal flag number
05h flag overrun
06h flag underrun
07h no unused Queue Descriptors
08h no free queue buffer
09h cannot find queue
0Ah queue in use
0Ch no free Process Descriptors
0Dh no queue access
0Eh empty queue
0Fh full queue
10h CLI queue missing
11h no 8087 in system
12h no unused Memory Descriptors
13h illegal console number
14h no Process Descriptor match
15h no console match
16h no CLI process
17h illegal disk number
18h illegal filename
19h illegal filetype
1Ah character not ready
1Bh illegal Memory Descriptor
1Ch bad return from BDOS load
1Dh bad return from BDOS read
1Eh bad return from BDOS open
1Fh null command
20h not owner of resource
21h no CSEG in load file
22h process Descriptor exists on Thread Root
23h could not terminate process
24h cannot attach to process
25h illegal list device number
26h illegal password
28h external termination occurred
29h fixup error upon load
2Ah flag set ignored
2Bh illegal auxilliary device number
SeeAlso: #04019
Top
INT E0 - REAL/32 - "P_TERMCPM" - TERMINATE CALLING PROCESS CL = 00h Return: AX = error code FFFFh on failure may destroy SI,DI??? Program: REAL/32 is the descendant of IMS Multiuser DOS, which in turn is derived from DR Multiuser DOS and its predecessors (Concurrent DOS, etc.) Notes: sets the exit code (ERRORLEVEL) to 00h INT E0h is officially reserved for Digital Research by Intel. Apparently some Borland products also used this interrupt, which forced Digital Research to indirect calls through other interrupt entry points. This is also supported by IMS Multiuser DOS and IMS REAL/32. SeeAlso: INT 21/AH=00hTop
INT E0 - REAL/32 - "C_READ" - FETCH CHARACTER FROM THE DEFAULT CONSOLE CL = 01h Return: AX = character may destroy SI,DI??? Notes: this function echos the character to the screen, expanding Tab characters to the next multiple of eight columns; Ctrl-C is ignored if the calling process can not terminate the calling process is suspended until a character is available; if the caller does not own the console, it is suspended until it can attach to the console SeeAlso: INT E0/CL=02h,INT E0/CL=06h,INT 21/AH=01hTop
INT E0 - REAL/32 - "C_WRITE" - WRITE CHARACTER TO DEFAULT CONSOLE CL = 02h DX = character Return: nothing may destroy SI,DI??? Note: Tab characters are expanded to blanks up to the next multiple of eight columns SeeAlso: INT E0/CL=01h,INT E0/CL=06h,INT 21/AH=02hTop
INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM DEFAULT AUX DEVICE CL = 03h Return: AL = ASCII character may destroy SI,DI??? Notes: A_READ reads the next 8-bit character from the logical auxilliary input device (AUXn:); control is not returned to the calling process until a character has been read. if another process owns AUX, this call blocks until the device becomes available this function is also supported by REAL/32 SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=AChTop
INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO DEFAULT AUX DEVICE CL = 04h DL = BYTE to write Return: nothing may destroy SI,DI,DH??? Note: if another process owns AUX, this call blocks until the device becomes available SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADhTop
INT E0 - REAL/32 - "L_WRITE" - WRITE CHARACTER TO DEFAULT LIST DEVICE CL = 05h DL = char to write Return: nothing may destroy SI,DI??? Note: if another process owns the list device, this call blocks until the device becomes available SeeAlso: INT 21/AH=05hTop
INT E0 - REAL/32 - "C_RAWIO" - PERFORM RAW I/O WITH DEFAULT CONSOLE CL = 06h DL = mode describing the operation to be performed FFh get console input/status FEh get console status FDh get console input (blocking) else output DL to the console as a character Return: AX = returned value for DL = FFh, the character or 00h if none available for DL = FEh, 00h if no characters available, FFh if any available for DL = FDh, the character read from the console else AX = 0000h may destroy SI,DI??? Notes: during raw I/O, the special characters ^C, ^O, ^P, and ^S are not interpreted, but are passed through if the virtual console is in ^S mode and the owning process calls this function, the ^S state is cleared SeeAlso: INT E0/CL=01h,INT E0/CL=02h,INT 21/AH=06hTop
INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE CL = 07h Return: AL = status 00h not ready FFh character available Desc: determine whether the current AUX device has input available SeeAlso: INT E0/CL=03h,INT E0/CL=08hTop
INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE CL = 08h Return: AL = status 00h not ready FFh ready for output Desc: determine whether the current AUX device is able to accept more output SeeAlso: INT E0/CL=04h,INT E0/CL=07hTop
INT E0 - REAL/32 - "C_WRITESTR" - WRITE STRING TO DEFAULT CONSOLE CL = 09h DS:DX -> string Return: nothing may destroy SI,DI,DS??? Note: the string terminated with a '$' character (24h) by default; the terminator may be changed with C_DELIMIT tabs are expanded to the next multiple of eight columns SeeAlso: INT E0/CL=6EhTop
INT E0 - REAL/32 - "C_READSTR" - READ STRING FROM DEFAULT CONSOLE CL = 0Ah DS:DX -> buffer for string (see #04022) Return: nothing Format of REAL/32 "C_READSTR" buffer: Offset Size Description (Table 04022) 00h BYTE maximum number of characters buffer can hold 01h BYTE actual number of buffers read 02h N BYTEs input lineTop
INT E0 - REAL/32 - "C_STAT" - RETURN DEFAULT CONSOLE INPUT STATUS CL = 0Bh Return: AX = status 0000h no characters ready 0001h character available may destroy SI,DI??? Note: after setting bit 0 of the console mode word with C_MODE, this function will only return AX=0001h when the user presses Ctrl-C.Top
INT E0 - REAL/32 - "S_BDOSVER" - GET BDOS VERSION CL = 0Ch Return: AX = version (see #04023) may destroy SI,DI??? SeeAlso: INT E0/CL=A3h,INT 21/AX=4451h (Table 04023) Values for REAL/32 BDOS version: 1432h - DR Concurrent PC DOS Version 3.2 1441h - DR Concurrent DOS Version 4.1 1450h - DR Concurrent DOS/XM Version 5.0 1463h - DR Multiuser DOS Release 5.0 1465h - DR Multiuser DOS Release 5.01 1466h - DR Multiuser DOS Release 5.1, IMS Multiuser DOS Enhanced Release 5.1 1467h - IMS Multiuser DOS Version 7.0, 7.1 1468h - IMS REAL/32 Version 7.50, 7.51 1469h - IMS REAL/32 Version 7.52, 7.53 14??h - IMS REAL/32 Version 7.6 SeeAlso: #01579,#01580,#01581Top
INT E0 - REAL/32 - "P_CHAIN" - CHAIN PROCESS CL = 2Fh [DTA] = ASCIZ command line for process to start Return: AX = return code 0000h successful FFFFh failed may destroy SI,DI???Top
INT E0 R - REAL/32 - "MC_MAX" - CP-M/86 ALLOCATE MAXIMUM MEMORY CL = 35h DS:DX -> MCB (see #04024) Return: AX = status may destroy SI,DI,DS??? SeeAlso: INT E0/CL=39h Format of REAL/32 MCB (Memory Control Block): Offset Size Description (Table 04024) 00h WORD segment address of memory block 02h WORD length of block in paragraphs 04h BYTE reserved (0)Top
INT E0 R - REAL/32 - "MC_ABSMAX" - ALLOCATE MAXIMUM MEMORY SEGMENT ABSOLUTE CL = 36h DS:DX -> MCB (see #04024) Return: AX = status may destroy SI,DI,DS??? SeeAlso: INT E0/CL=39hTop
INT E0 R - REAL/32 - "MC_ALLOC" - CP-M/86 ALLOCATE MEMORY SEGMENT CL = 37h DS:DX -> MCB (see #04024) Return: AX = status may destroy SI,DI,DS??? SeeAlso: INT E0/CL=39hTop
INT E0 R - REAL/32 - "MC_ABSALLOC" - ALLOCATE MEMORY SEGMENT ABSOLUTE CL = 38h DS:DX -> MCB (see #04024) Return: AX = status may destroy SI,DI,DS??? SeeAlso: INT E0/CL=39hTop
INT E0 R - REAL/32 - "MC_FREE" - CP-M/86 FREE SPECIFIED MEMORY SEGMENT CL = 39h DS:DX -> MCB (see #04024) Return: AX = status may destroy SI,DI,DS??? SeeAlso: INT E0/CL=3AhTop
INT E0 R - REAL/32 - "MC_ALLFREE" - CP-M/86 FREE ALL MEMORY CL = 3Ah Return: nothing??? Desc: release all of the calling process's memory except the User Data Area SeeAlso: INT E0/CL=39hTop
INT E0 u - REAL/32 - "P_LOAD" - LOAD .CMD FILE INTO MEMORY CL = 3Bh ??? Return: ??? Note: IMS does not document the details of this call because .CMD files are supported for backward compatibility onlyTop
INT E0 - REAL/32 - "N_LOGON" - LOG ONTO A SERVER CL = 40h DS:DX -> LPB (see #04025) Return: AX = status (0000h,00FFh,07FFh,0DFFh,0EFFh,FFFFh) (see #04030) may destroy SI,DI,DS??? SeeAlso: INT E0/CL=41h Format of REAL/32 Logon/Logoff Parameter Block: Offset Size Description (Table 04025) 00h BYTE node ID 01h 8 BYTEs password for server access 09h DWORD -> process descriptor of process to be logged on (see #04026) Format of REAL/32 Process Descriptor: Offset Size Description (Table 04026) 00h WORD offset of next entry in current descriptor list 02h WORD offset of thread list 04h BYTE current processor status (see #04027) 05h BYTE priority 06h WORD runtime flags (see #04028) 08h 8 BYTEs process name 10h WORD segment of User Data Area (UDA) (256 or 352 bytes) 12h BYTE current default disk drive 13h BYTE drive from which process was loaded 14h WORD reserved (0) 16h WORD offset of memory descriptor list for memory owned by process 18h 6 BYTEs reserved 1Eh WORD offset of process descriptor for parent process 0000h if parent has already terminated 20h BYTE number of default console 21h BYTE number of default AUX device 22h 2 BYTEs reserved 24h BYTE number of default list device 25h BYTE reserved 26h WORD flags (see #04029) 28h 12 BYTEs reserved 34h WORD offset of memory page allocation root 36h 22 BYTEs reserved Note: At least offset 10h (UDA) is also supported by MDOS 5.00, 5.01, 5.10, as the DR DOS MEM utility retrieves this UDA segment through INT E0/CL=9Ah when INT 21/AX=4451h returns 1463h, 1465h, or 1466h. SeeAlso: #04025 (Table 04027) Values for REAL/32 processor status: 00h process is ready to run 01h process is polling a device 02h delaying for a number of ticks 03h in swap list 04h terminating 05h asleep 06h waiting to read a message from a queue 07h waiting to write a message 08h waiting on system flag or semaphore 09h waiting to attach to an I/O device 0Ah waiting on sync block 0Bh waiting for system flag or semaphore with timeout 0Ch forced dispatch SeeAlso: #04026 Bitfields for REAL/32 process flags: Bit(s) Description (Table 04028) 0 system process 1 do not terminate 2 special rsp process 3 from process descriptor table 14-4 unused??? 15 uses math coprocessor SeeAlso: #04026,#04029 Bitfields for REAL/32 secondary flags: Bit(s) Description (Table 04029) 0 suspend when in background 1 ??? 2 in foreground 3 enable APPEND processing on file opens 4 Ctrl-C was typed 5 Ctrl-C will reset disk system 6 OK to read locked record 7 ??? 8 do not perform banking SeeAlso: #04026,#04028 (Table 04030) Values for REAL/32 "N_LOGON" status: 0000h successful 00FFh server could not create shadow process 07FFh incorrect password 0CFFh not logged into specified server 0DFFh process already logged onto 16 servers, LPB process not attached to network 0EFFh physical transmission prevented message or response from getting thru network error during logoff FFFFh calling process not attached to networkTop
INT E0 - REAL/32 - "N_LOGON" - LOG OFF A SERVER CL = 41h DS:DX -> LPB (see #04025) Return: AX = status (0000h,0CFFh,0DFFh,0EFFh,FFFFh) (see #04030) may destroy SI,DI,DS??? SeeAlso: INT E0/CL=40hTop
INT E0 - REAL/32 - "N_STAT" - GET NETWORK STATUS CL = 44h Return: AX = network status or 0FFFh on error bit 8: calling process is attached to network may destroy SI,DI???Top
INT E0 - REAL/32 - "N_RCT" - GET REQUESTOR CONFIGURATION TABLE CL = 45h DS:DX -> RCT Control Block (see #04031,#04032) Return: AX = status or error code (see #04033,#04030) may destroy SI,DI,DS??? SeeAlso: INT E0/CL=47h Format of REAL/32 RCT Control Block for Drives: Offset Size Description (Table 04031) 00h BYTE command byte 00h map disk drive 02h map list device 01h BYTE local resource ID 02h BYTE remote resource ID 03h BYTE server node ID number Note: the RCT Control Block is a union of two possible structures; this variant is used when mapping disk drives and list devices SeeAlso: #04032 Format of REAL/32 RCT Control Block for Queues: Offset Size Description (Table 04032) 00h BYTE command byte 03h map local queue to server 04h unmap queue 01h 8 BYTEs local queue name (case-sensitive) 09h 8 BYTEs remote queue name (case-sensitive) 11h BYTE server node ID number Note: the RCT Control Block is a union of two possible structures; this variant is used when mapping queues SeeAlso: #04031 (Table 04033) Values for REAL/32 "N_RCT" status: 0000h successful 0001h invalid local device 0002h invalid remote device 0003h no queue entry spaceTop
INT E0 - REAL/32 - "N_SCT" - GET SERVER CONFIGURATION TABLE CL = 47h DS:DX -> 112-byte buffer for Server Configuration Table (see #04034) Return: AX = status (0000h successful, else error code) may destroy SI,DI,DS??? Note: the first byte of the SCT buffer is set to the desired server number prior to calling this function SeeAlso: INT E0/CL=45h Format of REAL/32 Server Configuration Table: Offset Size Description (Table 04034) 00h BYTE server's default physical drive ID 01h BYTE network status 02h BYTE server node ID number 03h BYTE maximum number of requesters supported by server 04h BYTE current number of shadow processes 05h 108 BYTEs six logon structures, each: Offset Size Description 00h WORD bit vector of logged-in nodes 02h 16 BYTEs list of requester node IDsTop
INT E0 - REAL/32 - "N_ERRMODE" - SET NETWORK ERROR MODE CL = 48h DL = new error mode FFh return error in registers AX,BX,CX FEh display message and return error FDh display message and abort (default) Return: CX = error code (0000h successful, FFFFh failed) may destroy SI,DI??? Desc: specify how the REAL/32 Net Server responds to error numbers 0CFFh, 0DFFh, and 0EFFh (see #04030)Top
INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA CL = 59h DX = size in bytes Return: AX = status FFFFh failed other successful ES:BX -> reserved memoryTop
INT E0 - REAL/32 - "P_PATH" - SCAN PATH FOR EXECUTABLE FILE CL = 5Ch DS:DX -> Exec Parameter Block (EPB) (see #04035) Return: AX = status FFFEh file not found FFFDh path not found FFFCh too many handles open FFFBh access denied FFF6h invalid environment FFDCh sharing conflict FFAAh invalid password EPB updated (if successful) may destroy SI,DI,DS SeeAlso: INT E0/CL=5Dh,INT E0/CL=5Eh,INT 21/AH=4Bh Format of REAL/32 Exec Parameter Block (EPB): Offset Size Description (Table 04035) 00h DWORD -> ASCIZ command to be executed 04h BYTE type of exec 00h .CMD 01h .COM 02h .EXE 03h .BAT 04h RSP-type queue 05h BYTE flags bit 0: overlay existing program bit 1: don't assign console to child bit 2: allocate memory for .CMD within parent's memory space bit 3: make full banked window available while loading child 06h DWORD 32-bit offset to ASCIZ command line 0Ah WORD selector for ASCIZ command lineTop
INT E0 - REAL/32 - "P_EXEC" - EXECUTE CHILD PROCESS CL = 5Dh DS:DX -> Exec Parameter Block (EPB) (see #04035) Return: AX = status FFFEh file not found FFFDh path not found FFFCh too many handles open FFFBh access denied FFF6h invalid environment FFDCh sharing conflict FFAAh invalid password EPB updated (if successful) may destroy SI,DI,DS SeeAlso: INT E0/CL=5Ch,INT E0/CL=5Eh,INT 21/AH=4BhTop
INT E0 - REAL/32 - "P_EXITCODE" - GET/SET PROCESS EXIT CODE CL = 5Eh DX = exit code or FFFFh to get DH ignored when setting code DL = process exit code Return: AX = status (FFFFh on error) if getting: AH = termination reason 00h normal 01h external termination via Ctrl-C or P_ABORT 02h hardware (critical) error abort 03h child did not terminate FFh illegal request (no child, or exit code already retrieved) AL = process exit code SeeAlso: INT E0/CL=5Dh,INT 21/AH=4ChTop
INT E0 - REAL/32 - "S_SERIAL" - GET OS SERIAL NUMBER CL = 6Bh DS:DX -> 6-byte buffer for ASCII serial number Return: nothing???Top
INT E0 - REAL/32 - "C_MODE" - GET/SET CONSOLE MODE CL = 6Dh DX = new console mode (see #04036), or FFFFh to get current mode Return: AX = status if setting (0000h = success) AX = current console mode if DX=FFFFh on entry Bitfields for REAL/32 console mode: Bit(s) Description (Table 04036) 0 C_STAT function will return 01h only when Ctrl-C is pressed 1 disable support for stop/start scroll (Ctrl-S/Ctrl-Q) 2 raw console output (no tab expansion, no printer echo) 3 disable program termination on Ctrl-C 7 disable Ctrl-O console bit-bucket 10 enable Esc as end-of-line characterTop
INT E0 - REAL/32 - "C_DELIMIT" - GET/SET STRING DELIMITER CL = 6Eh DX = new delimiter, or FFFFh to get current string delimiter Return: AX = status (0000h success) if setting AX = current string delimiter (default is 24h '$' at process start) SeeAlso: INT E0/CL=09hTop
INT E0 - REAL/32 - "C_WRITEBLK" - WRITE BLOCK TO DEFAULT CONSOLE CL = 6Fh DS:DX -> Character Control Block (see #04051,#04052) Return: nothing??? SeeAlso: INT E0/CL=70hTop
INT E0 - REAL/32 - "L_WRITEBLK" - WRITE BLOCK TO DEFAULT LIST (PRINTER) DEVICE CL = 70h DS:DX -> Character Control Block (see #04051,#04052) Return: nothing??? SeeAlso: INT E0/CL=6FhTop
INT E0 R - ConcCP/M,DR Multiuser DOS - EXECUTE DOS-COMPATIBLE FUNCTIONS CL = 71h DS:DX -> parameter block (see #04038) Return: AX = status (0000h successful, else error code) may destroy SI,DI,DS (Table 04037) Values for DR "execute DOS-compatible function" function number: 00h "fd_getdpb" get disk information (see also INT 21/AH=32h) 01h "fd_mkdir" create directory (see also INT 21/AH=39h) 02h "fd_rmdir" remove directory (see also INT 21/AH=3Ah) 03h "fd_chdir" change directory (see also INT 21/AH=3Bh) 04h "fd_creat" create file (see also INT 21/AH=3Ch) 05h "fd_open" open existing file (see also INT 21/AH=3Dh) 06h "fd_close" close file (see also INT 21/AH=3Eh) 07h "fd_read" read from file (see also INT 21/AH=3Fh) 08h "fd_write" write to file (see also INT 21/AH=40h) 09h "fd_delete" delete file (see also INT 21/AH=41h) 0Ah "fd_lseek" get/set file position (see also INT 21/AH=42h) 0Bh "fd_chmod" get/set file attributes (see also INT 21/AH=43h) 0Ch "fd_curdir" get current directory (see also INT 21/AH=47h) 0Dh "fd_sfirst" find first matching file (see also INT 21/AH=4Eh) 0Eh "fd_snext" find next matching file (see also INT 21/AH=4Fh) 0Fh "fd_rename" rename file (see also INT 21/AH=56h) 10h "fd_gsfdate" get/set file date (see also INT 21/AX=5700h) 11h "fd_mktemp" make temporary file (see also INT 21/AH=5Ah) 12h "fd_mknew" create new file (see also INT 21/AH=5Bh) 13h "fd_lock" lock/unlock file data (see also INT 21/AH=5Ch) 14h "fd_dup" duplicate file handle (see also INT 21/AH=45h) 15h "fd_dup2" force duplicate file handle (see also INT 21/AH=46h) 16h-19h ??? 1Ah "fd_ioctl" I/O control emulation 1Bh "fd_commit" commit file to disk (see also INT 21/AH=68h) 1Ch "fd_expand" expand file name (see also INT 21/AH=60h) 1Dh ??? 1Eh ??? 1Fh "fd_sethandles" set number of handles for calling process SeeAlso: #04038 Format of DR "execute DOS-compatible function" parameter block: Offset Size Description (Table 04038) 00h WORD function number (see #04037) ---function 00h--- 02h WORD drive 04h DWORD -> DPB (see #04039) ---function 01h,02h,03h--- 02h DWORD -> ASCIZ directory name ---function 04h--- 02h DWORD -> ASCIZ filename 06h WORD file attributes ---function 05h--- 02h DWORD -> ASCIZ filename 06h WORD open mode (see INT 21/AH=3Dh) ---function 06h--- 02h WORD file handle ---function 07h,08h--- 02h WORD file handle 04h DWORD -> buffer 08h WORD number of bytes to read or write ---function 09h--- 02h DWORD -> ASCIZ filename ---function 0Ah--- 02h WORD file handle 04h DWORD (call) desired offset (ret) new file position if function is successful 08h WORD seek origin (offset is calculated from specified position) 00h start of file 01h current position 02h end of file ---function 0Bh--- 02h DWORD -> ASCIZ filename 06h WORD (call) new file attributes or new file owner (ret) current/new file attributes, depending on function 08h WORD subfunction 00h get attribute 01h set attribute 02h get extended attributes 03h set extended attributes (and password) 04h get encrypted password 05h set extended attributes (and encrypted password) 06h get file owner 07h set file owner Note: the password is taken from the first 8 bytes of the DTA ---function 0Ch--- 02h WORD drive 04h DWORD -> 64-byte buffer for ASCIZ current directory path ---function 0Dh--- 02h DWORD -> ASCIZ filespec 06h WORD file attributes 08h WORD (call) size of buffer pointed at by current DTA (ret) number of matching files returned??? Note: if the volume label attribute is specified, the root directory will be searched if the buffer is at least 47 bytes, multiple matching entries will be stored in the DTA (at 21 bytes per entry) ---function 0Eh--- 02h WORD number of additional matches to store in DTA (normally set to 0, but if DTA is at least 47 bytes, can be set to (DTAsize-21)/26 to return multiple matches) ---function 0Fh--- 02h DWORD -> ASCIZ filename 06h DWORD -> ASCIZ new name ---function 10h--- 02h WORD file handle 04h WORD subfunction 00h get date and time 01h set date and time 06h WORD file date 08h WORD file time ---function 11h--- 02h DWORD -> ASCIZ pathname + 13 extra bytes for generated filename (if pathname does not end in backslash, one will be appended) 06h WORD file attributes ---function 12h--- 02h DWORD -> ASCIZ filename 06h WORD file attributes ---function 13h--- 02h WORD file handle 04h DWORD offset of start of region 08h DWORD length of region to lock/unlock 0Ch WORD subfunction (00h = lock, 01h = unlock) ---function 14h--- 02h WORD file handle to be duplicated (new file handle is returned as function return value) ---function 15h--- 02h WORD file handle to be duplicated 04h WORD file handle which is to become the duplicate ---function 1Ah, form 1--- 02h WORD file handle 04h WORD IOCTL function number (00h,01h,06h,07h,0Ah) 06h WORD (ret) status ---function 1Ah, form 2--- 02h WORD drive number 04h WORD IOCTL function number (08h,09h,0Eh,0Fh) 06h WORD (ret) status ---function 1Ah, form 3--- 02h WORD file handle 04h WORD IOCTL function number (02h,03h,54h) 06h DWORD -> buffer 0Ah WORD (call) size of buffer in bytes (ret) size of returned data ---function 1Ah, form 4--- 02h WORD drive number 04h WORD IOCTL function number (04h,05h) 06h DWORD -> buffer 0Ah WORD (call) size of buffer in bytes (ret) size of returned data ---function 1Bh--- 02h WORD file handle of file to be committed to disk ---function 1Ch--- 02h DWORD -> ASCIZ relative filename 06h DWORD -> buffer for absolute filename ---function 1Fh--- 02h WORD desired number of file handles for process Format of DR Multiuser DOS Disk Parameter Block (DPB): Offset Size Description (Table 04039) 00h BYTE drive number (00h = A:) 01h BYTE relative unit number 02h WORD sector size in bytes 04h BYTE sectors per cluster - 1 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 number of clusterse on disk 0Fh BYTE number of sectors per FAT 10h WORD sector number of first directory sector 12h 4 BYTEs reserved 16h BYTE media ID byte (see #01356) 17h BYTE 00h if disk accessed, FFh if not 18h 6 BYTEs reserved 1Eh WORD number of free clusters on drive Note: this structure is a subset of the MS-DOS 3.x Drive Parameter Block SeeAlso: #04038,#01357 at INT 21/AH=1Fh,#01395 at INT 21/AH=32hTop
INT E0 - GSX-86, GEM/1, GEM/2 - API CL = 73h CH = 04h DS:DX -> parameter blockTop
INT E0 - REAL/32 - "M_ALLOC" - ALLOCATE MEMORY CL = 80h DS:DX -> Memory Parameter Block (MPB) (see #04040) Return: AX = status (0000h success, else error code) SeeAlso: INT E0/CL=81h Format of REAL/32 Memory Parameter Block (MPB): Offset Size Description (Table 04040) 00h WORD (call) desired starting paragraph of block, or 0000h for anywhere (ret) starting paragraph of allocated block 02h WORD (call) minimum number of paragraphs required (ret) actual number of paragraphs allocated 04h WORD (call) maximum number of paragraphs to allocate (ret) actual number of paragraphs allocated 06h WORD process descriptor (see #04026) of memory's owner or 0000h 08h WORD flags (normally set to 0000h on call) SeeAlso: #04041Top
INT E0 - REAL/32 - "M_FREE" - DEALLOCATE MEMORY CL = 81h DS:DX -> Memory Free Parameter Block (MFPB) (see #04041) Return: AX = status (0000h success, else error code) SeeAlso: INT E0/CL=81h Format of REAL/32 Memory Free Parameter Block (MFPB) : Offset Size Description (Table 04041) 00h WORD starting segment of block to be freed 02h WORD reserved (0) SeeAlso: #04040Top
INT E0 - REAL/32 - "DEV_WAITFLAG" - WAIT ON SYSTEM FLAG CL = 84h DX = system flag ID Return: AX = status (0000h success, else error code) if successful, this function does not return until the system flag has been set by an interrupt handler (see INT E0/CL=85h); if the flag was already set, this call returns immediately SeeAlso: INT E0/CL=85h,INT E0/CL=B7hTop
INT E0 - REAL/32 - "DEV_SETFLAG" - SET SYSTEM FLAG CL = 85h DX = system flag ID Return: AX = status (0000h success, else error code) Note: REAL/32 returns an error if the flag was already set, which indicates that a previous logical interrupt has not yet been serviced SeeAlso: INT E0/CL=84hTop
INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE CL = 86h DS:DX -> queue descriptor (see #04042) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #04021) Note: also supported by REAL/32 SeeAlso: INT E0/CL=87h Format of DR Multiuser DOS queue descriptor: Offset Size Description (Table 04042) 00h 2 WORDs internal use, initialize to zeros 04h WORD queue flags (see #04043) 06h 8 BYTEs queue name 0Eh WORD length of message 10h WORD number of messages 12h 4 WORDs internal use, initialize to zeros 1Ah WORD offset in system area of buffer for messages Bitfields for REAL/32 queue flags: Bit(s) Description (Table 04043) 0 mutual exclusion queue 1 can not be deleted 2 restricted to system processes 3 RSP message queue 4 reserved for internal use 5 RPL address queue 7-6 reserved for internal use 15-8 reserved for future use SeeAlso: #04042Top
INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE CL = 87h DS:DX -> queue parameter block (QPB) (see #04044,#04045) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #04021) Note: also supported by REAL/32 SeeAlso: INT E0/CL=86h,INT E0/CL=88h,INT E0/CL=89h Format of DR Multiuser DOS queue parameter block: Offset Size Description (Table 04044) 00h WORD internal use, initialize to zero 02h WORD queue ID (set by INT E0/CL=87h) 04h WORD internal use, initialize to zero 06h WORD offset of queue message buffer (REAL/32) if FFFFh, then full address of buffer is stored at offest 10h 08h 8 BYTEs queue name ---REAL/32 only---- 10h DWORD segment:offset of queue message buffer SeeAlso: #04045 Format of protected-mode REAL/32 Queue Parameter Block (QPB): Offset Size Description (Table 04045) 00h WORD internal use 02h WORD queue ID 04h WORD internal use 06h DWORD 32-bit offset to buffer 0Ah WORD selector for buffer 0Ch 8 BYTEs queue name SeeAlso: #04044Top
INT E0 - REAL/32 - "Q_DELETE" - DELETE SYSTEM QUEUE CL = 88h DS:DX -> queue parameter block (QPB) (see #04044,#04045) Return: AX = status (0000h success, FFFFh failure) SeeAlso: INT E0/CL=87hTop
INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE CL = 89h DS:DX -> queue parameter block (QPB) (see #04044,#04045) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #04021) Note: also supported by REAL/32 SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh,INT E0/CL=B6hTop
INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE CL = 8Ah DS:DX -> queue parameter block (QPB) (see #04044,#04045) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #04021) Note: also supported by REAL/32 SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch,INT E0/CL=B6hTop
INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE CL = 8Bh DS:DX -> queue parameter block (QPB) (see #04044,#04045) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #04021) Note: also supported by REAL/32 SeeAlso: INT E0/CL=89h,INT E0/CL=8ChTop
INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE CL = 8Ch DS:DX -> queue parameter block (QPB) (see #04044,#04045) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #04021) Note: also supported by REAL/32 SeeAlso: INT E0/CL=8Ah,INT E0/CL=8BhTop
INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER CL = 8Eh DX = FFFFh (optional) to force dispatch Return: nothing Desc: allow other processes of the same or higher priority to run if they are ready Notes: if DX=FFFFh, a dispatch is forced even if no other process is ready also supported by REAL/32 SeeAlso: INT E0/CL=91h,INT 15/AX=1000h,INT 2F/AX=1680hTop
INT E0 - REAL/32 - "P_TERM" - TERMINATE CALLING PROCESS CL = 8Fh DX = termination code Return: never if successful AX = FFFFh on failure Note: this function can not terminate processes whose KEEP flag is set if the termination code is FFh, this function can terminate the process even if its SYSTEM flag is on; otherwise, only user processes can terminate themselves SeeAlso: INT E0/CL=90h,INT 21/AH=4ChTop
INT E0 - REAL/32 - "P_CREATE" - CREATE A PROCESS CL = 90h DS:DX -> process descriptor in calling process' system memory area (see #04026) Return: AX = status Notes: this call can create more than one process if the specied process descriptor's link (next-process) field is nonzero all reserved and unused fields in the process descriptor should be filled with zeros; passing an invalid descriptor or pointer may crash the system because the descriptor is not checked by the OS the newly-created process(es) is always a native process, which can not make DOS calls SeeAlso: INT E0/CL=8FhTop
INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY CL = 91h DL = new priority (00h highest to FFh lowest) Return: nothing Notes: sets priority of calling process; transient processes are initialized to priority C8h also supported by REAL/32 SeeAlso: INT E0/CL=8EhTop
INT E0 - ConcCP/M,DR Multiuser DOS - "C_ATTACH" - ATTACH TO DEFAULT CONSOLE CL = 92h Return: AX = status Notes: also supported by REAL/32 if the console is currently owned by another process, this function waits until the console is available SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=9Eh,INT E0/CL=A2hTop
INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE CL = 93h Return: AX = status 0000h successfully detached FFFFh detach failed Note: also supported by REAL/32 SeeAlso: INT E0/CL=92h,INT E0/CL=A6hTop
INT E0 - REAL/32 - "C_SET" - SET PROCESS'S DEFAULT CONSOLE CL = 94h DX = console ID Return: AX = status (0000h success, else error code) SeeAlso: INT E0/CL=92h,INT E0/CL=95h,INT E0/CL=99hTop
INT E0 - REAL/32 - "C_ASSIGN" - ASSIGN DEFAULT CONSOLE TO ANOTHER PROCESS CL = 95h DS:DX -> Assign Control Parameter Block (ACPB) (see #04046) Return: AX = status SeeAlso: INT E0/CL=94h,INT E0/CL=99h Format of REAL/32 Assign Control Parameter Block (ACPB): Offset Size Description (Table 04046) 00h BYTE ID of console to assign 01h BYTE flag: if FFh, new process must have CNS as console for this call to succeed 02h DWORD -> process descriptor (see #04026) or 00000000h 06h 8 BYTEs name of process to search for if descriptor field above is zeroTop
INT E0 - REAL/32 - "P_CLI" - RUN COMMAND LINE INTERFACE CL = 96h DS:DX -> Command Line Buffer (CLBUF) (see #04047) Return: AX = status Desc: execute the indicated command concurrently with the calling process; system queue commands, .BAT, .CMD, .COM, and .EXE files can be executed Note: the calling process will lose its virtual console and must reattach it before attempting any I/O SeeAlso: INT E0/CL=92h Format of REAL/32 Command Line Buffer (CLBUF): Offset Size Description (Table 04047) 00h BYTE reserved (0) 01h 128 BYTEs ASCIZ command line 81h BYTE (0)Top
INT E0 - REAL/32 - "C_GET" - GET DEFAULT CONSOLE CL = 99h Return: AX = default console ID SeeAlso: INT E0/CL=94hTop
INT E0 - REAL/32 - "S_SYSDAT" - GET SYSTEM DATA AREA CL = 9Ah Return: ES:AX -> system data area (see #04048) may destroy SI,DI Format of REAL/32 system data area: Offset Size Description (Table 04048) 00h DWORD address of supervisor entry point 04h 36 BYTEs reserved 28h DWORD address of XIOS entry point 2Ch DWORD address of XIOS initialization point 30h 8 BYTEs reserved 38h DWORD address of IRET dispatcher entry point 3Ch DWORD address of RETF dispatcher entry point 40h WORD segment of operating system code 42h WORD paragraph address of first Resident System Process (RSP) 44h WORD paragraph after OS system area 46h BYTE reserved 47h BYTE number of system console devices 48h BYTE number of system list (printer) devices 49h BYTE number of Character Control blocks 4Ah BYTE number of system flags 4Bh BYTE current search disk 4Ch WORD maximum memory per process 4Eh BYTE reserved 4Fh BYTE "dayfile" (flag, true if FFh) 50h BYTE default disk for temporary files 51h BYTE system ticks per second (typically 60) 52h WORD offset of Locked Unused list 54h WORD offset of CCB table 56h WORD offset of system flag table 58h WORD offset of root of Memory Descriptor Unused list 5Ah WORD offset of Memory Free list 5Ch WORD offset of Process Unused list 5Eh WORD offset of Queue Unused list 60h 4 WORDs (no longer used) QMAU 68h WORD offset of root of Ready List 6Ah WORD offset of root of Delay List 6Ch WORD offset of Dispatcher Ready list 6Eh WORD offset of root of Poll List 70h WORD reserved 72h WORD offset of root of Thread List 74h WORD offset of root of Queue List 76h WORD offset of Memory Allocation list 78h WORD segment of version string 7Ah WORD BDOS version number 7Ch WORD OS version number 7Eh WORD number of days since 1978/01/01 80h BYTE current time: hour 81h BYTE current time: minute 82h BYTE current time: second 83h BYTE number of XIOS consoles 84h BYTE number of XIOS list (printer) devices 85h BYTE total number of character devices 86h WORD offset of LCB table 88h WORD bitmap of open files 8Ah BYTE maximum locked records per process 8Bh BYTE maximum open files per process 8Ch WORD offset of process descriptor for math coprocessor's owner 8Eh WORD offset of Auxiliary Control Block 90h 8 BYTEs reserved 98h WORD offset of root Memory Window Descriptor 9Ah WORD reserved 9Ch BYTE number of Auxiliary Control Blocks 9Dh BYTE default search disk 9Eh BYTE reserved 9Fh BYTE number of physical consoles A0h DWORD address of 8087 interrupt handler A4h DWORD address of default 8087 exception handler ... reserved C00h 82 BYTEs XIOS header structure (see #04049) Format of REAL/32 XIOS header structure: Offset Size Description (Table 04049) 00h 3 BYTEs XIOS initialization entry point 03h 3 BYTEs XIOS service entry point 06h WORD segment address of system data 08h DWORD address of supervisor entry point 0Ch BYTE set tick flag 0Dh BYTE ticks per second 0Eh BYTE global Door Open interrupt flag 0Fh BYTE number of Auxiliary Control Blocks 10h BYTE number of physical consoles 11h BYTE number of virtual consoles 12h BYTE number of logical consoles 13h BYTE number of list control blocks 14h WORD offset of CCB table 16h WORD offset of LCB table 18h 16 WORDs offsets into DPH for drives A-P 38h WORD buffer size in paragraphs 3Ah WORD offset of ACB table 3Ch WORD used by OEM 3Eh WORD offset of CCB pointer array 40h WORD offset of LCB pointer array 42h WORD offset of ACB pointer array 44h BYTE 'first' flag 45h BYTE unused 46h WORD offset of print device support table 48h WORD offset of aux device support table 4Ah WORD XIOS extra segment 4Ch WORD segment of save end address for debug 4Eh WORD segment of save start address for debug 50h BYTE number of main virtual console 51h WORD segment of XIOS code SeeAlso: #04048Top
INT E0 - REAL/32 - "P_PDADR" - GET ADDRESS OF PROCESS DESCRIPTOR CL = 9Ch Return: ES:AX -> caller's process descriptor (see #04026) may destroy SI,DI Note: This function is also called by the DR DOS MEM utility when INT 21/AX=4451h returns either 1463h (MDOS 5.00), 1465h (MDOS 5.01), or 1466h (MDOS 5.10). SeeAlso: INT E0/CL=8Fh,INT E0/CL=90hTop
INT E0 - REAL/32 - "P_ABORT" - ABORT PROCESS BY NAME OR DESCRIPTOR CL = 9Dh DS:DX -> Abort Parameter Block (see #04050) Return: AX = status may destroy SI,DI,DS SeeAlso: INT E0/CL=8Fh,INT E0/CL=9Ch Format of REAL/32 Abort Parameter Block: Offset Size Description (Table 04050) 00h WORD process descriptor of process to abort, or 0000h 02h WORD termination code 04h BYTE default console number 05h BYTE reserved (0) 06h 8 BYTEs name of process to abort, if descriptor at offset 00h is 0000hTop
INT E0 - REAL/32 - "L_ATTACH" - ATTACH TO DEFAULT LIST DEVICE CL = 9Eh Return: AX = status may destroy SI,DI SeeAlso: INT E0/CL=92h,INT E0/CL=9Fh,INT E0/CL=A0h,INT E0/CL=A1hTop
INT E0 - REAL/32 - "L_DETACH" - DETACH FROM DEFAULT LIST DEVICE CL = 9Fh Return: AX = status may destroy SI,DI SeeAlso: INT E0/CL=92h,INT E0/CL=9EhTop
INT E0 - REAL/32 - "L_SET" - SET DEFAULT LIST DEVICE CL = A0h DX = ID of list (printer) device Return: AX = status (0000h success, FFFFh if invalid printer number) may destroy SI,DI SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A4hTop
INT E0 - REAL/32 - "L_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT LIST DEVICE CL = A1h Return: AX = status (00h = successful, FFh = unable to attach) may destroy SI,DI Desc: attach the default list device to the calling process only if it is currently available SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A0hTop
INT E0 - REAL/32 - "C_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT CONSOLE CL = A2h Return: AL = status (FFh = console attached to another process) Note: if the console is currently owned by another process, this function will return an error code instead of attaching or waiting SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=92hTop
INT E0 - ConcCP/M,DR Multiuser DOS,REAL/32 - "S_OSVER" - GET OS VERSION CL = A3h Return: AX = operating system version (see #04023) (see also INT 21/AX=4451h) SeeAlso: INT E0/CL=0Ch,INT 21/AX=4451hTop
INT E0 - REAL/32 - "L_GET" - GET DEFAULT LIST (PRINTER) DEVICE CL = A4h Return: AL = number of default list device SeeAlso: INT E0/CL=A0hTop
INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE CL = A5h Return: nothing (DR) AX = status (REAL/32) Desc: attaches the default auxiliary device to the calling process unless it is already attached to another process, in which case the call blocks until the device becomes available Notes: this call should be used before attempting to read or write from the AUX device; however, the I/O calls internally call this function to ensure device ownership also supported by REAL/32 SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0hTop
INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE CL = A6h Return: AX = status 0000h successfully detached FFFFh detach failed CX = error code Note: also supported by REAL/32 SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7hTop
INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE CL = A7h Return: AX = status 0000h attached FFFFh unable to attach Desc: attaches the default auxiliary device to the calling process if it is available Notes: does not block if the device is already in use also supported by REAL/32 SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0hTop
INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER CL = A8h DL = auxiliary device number Return: AX = status 0000h successful FFFFh failed CX = error code Desc: specify which physical device will become AUX SeeAlso: INT E0/CL=A5h,INT E0/CL=A9hTop
INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER CL = A9h Return: AL = current default auxiliary device number Desc: determine which physical device is currently AUX SeeAlso: INT E0/CL=A8hTop
INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE CL = ACh DS:DX -> character control block (CHCB) (see #04051,#04052) Return: AX = number of characters read Desc: read characters from the default auxiliary (AUXn:) device into a buffer until the buffer is full or the device is no longer ready Notes: if the device is initially not ready, blocks until at least one character has been read if another process owns AUX, this call blocks until the device becomes available also supported by REAL/32 SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh Format of DR Multiuser DOS character control block (CHCB): Offset Size Description (Table 04051) 00h DWORD pointer to character buffer 04h WORD length of character buffer Note: this version of the structure is used by REAL/32 in real mode SeeAlso: #04059 Format of REAL/32 protected-mode Character Control Block (CHCB): Offset Size Description (Table 04052) 00h DWORD 32-bit offset of character buffer 04h WORD selector for character buffer 06h WORD length of character buffer SeeAlso: #04051Top
INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE CL = ADh DS:DX -> character control block (see #04051,#04052) Return: AX = number of characters written Notes: does not return until at least one character has been written also supported by REAL/32 SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=AChTop
INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS CL = B0h DX:DX -> AUX device parameter block (see #04053) Return: AX = status 0000h successful parameter block updated FFFFh failed CX = error code Note: also supported by REAL/32 SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h Format of DR Multiuser DOS AUX device parameter block: Offset Size Description (Table 04053) 00h BYTE function (00h get, 01h set) 01h BYTE baud rate (see #04055) FFh = don't change/unknown 02h BYTE parity (see #04054) 03h BYTE stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change) 04h BYTE data bits (05h-08h or FFh unknown/don't change) 05h BYTE handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF, FFh unknown/don't change) 06h BYTE XON character, FFh unknown/don't change 07h BYTE XOFF character, FFh unknown/don't change (Table 04054) Values for DR Multiuser DOS AUX parity: 00h none 01h odd 02h none 03h even 04h stick parity bit FFh don't change/unknown SeeAlso: #04053,#04055 (Table 04055) Values for DR Multiuser DOS AUX baud rate: 00h 50 baud 01h 62.5 baud 02h 75 baud 03h 110 baud 04h 134.5 baud 05h 150 baud 06h 200 baud 07h 300 baud 08h 600 baud 09h 1200 baud 0Ah 1800 baud 0Bh 2000 baud 0Ch 2400 baud 0Dh 3600 baud 0Eh 4800 baud 0Fh 7200 baud 10h 9600 baud 11h 19200 baud 12h 38400 baud 13h 56000 baud 14h 76800 baud 15h 115200 baud SeeAlso: #04053,#04054Top
INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS CL = B1h DS:DX -> AUX device control block (see #04056) Return: AX = status 0000h successful control block updated FFFFh failed CX = error code Note: also supported by REAL/32 SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h Format of DR Multiuser DOS AUX device control block: Offset Size Description (Table 04056) 00h BYTE function (00h get, 01h set) 01h BYTE DTR state (00h low, 01h high, FFh unknown/don't change) 02h BYTE RTS state (00h low, 01h high, FFh unknown/don't change) 03h BYTE DSR state (00h low, 01h high, FFh unknown/don't change) 04h BYTE CTS state (00h low, 01h high, FFh unknown/don't change) 05h BYTE DCD state (00h low, 01h high, FFh unknown/don't change) 06h BYTE RI state (00h inactive, 01h active, FFh unknown/don't change)Top
INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE CL = B2h DX = duration of break in system ticks (0001h-FFFFh) Return: AX = status 0000h successful break signal completed FFFFh failed CX = error code Notes: if the AUX device is currently owned by another process, this call will block until the device becomes available also supported by REAL/32 SeeAlso: INT E0/CL=A5h,INT E0/CL=B1hTop
INT E0 R - REAL/32 - "MP_ALLOC" - ALLOCATE PHYSICAL MEMORY CL = B3h DX = number of 4K pages to allocate Return: AX = number of first 4K page allocated, or FFFFh on error Note: memory allocated with this function is not automatically freed when the process terminates SeeAlso: INT E0/CL=B4h,INT E0/CL=B5hTop
INT E0 R - REAL/32 - "MP_FREE" - DEALLOCATE PHYSICAL MEMORY CL = B4h DX = number of the physical page to free Return: AX = status (0000h successful, FFFFh error) SeeAlso: INT E0/CL=B3hTop
INT E0 R - REAL/32 - "MP_MAP" - MAP PHYSICAL MEMORY CL = B5h DS:DX -> Memory Physical Parameter Block (see #04057) Return: AX = status (0000h successful, FFFFh error) may destroy SI,DI,DS SeeAlso: INT E0/CL=B3h Format of REAL/32 Memory Physical Parameter Block: Offset Size Description (Table 04057) 00h WORD 4K page number in first megabyte to be mapped 02h WORD number of page to map into above page, or 0000h to unmap 04h WORD window number (0000h, as only one window currently supported) 06h WORD reserved Note: all users of the system share the window, so applications should not use it for arguments to system calls, attempt to read/write to/from files via the window, etc.Top
INT E0 - REAL/32 - "Q_NCREAD" - CONDITIONALLY NONDESTRUCTIVELY READ QUEUE CL = B6h DS:DX -> Queue Parameter Block (QPB) (see #04045,#04044) Return: AX = status SeeAlso: INT E0/CL=89h,INT E0/CL=8AhTop
INT E0 - REAL/32 - "DEV_TWAITFLAG" - TIMED WAIT ON SYSTEM FLAG CL = B7h DS:DX -> Flag Parameter Block (FPB) (see #04058) Return: AX = status may destroy SI,DI,DS Note: if the flag was already set, this function returns immediately SeeAlso: INT E0/CL=84h,INT E0/CL=85h Format of REAL/32 Flag Parameter Block (FPB): Offset Size Description (Table 04058) 00h WORD number of system flag on which to wait 02h WORD maximum number of system ticks (see INT E0/CL=9Ah) to waitTop
INT E0 - REAL/32 - "DEV_MAP" - GET/SET SERIAL/PARALLEL PORT MAPPINGS CL = B8h DS:DX -> Device Map Parameter Block (DEVPB) (see #04059) Return: nothing??? may destroy SI,DI,DS Format of REAL/32 Device Map Parameter Block (DEVPB): Offset Size Description (Table 04059) 00h WORD direction (00h = get current mapping, 01h = set new mapping) 02h 4 BYTEs physical device IDs which map into LPT1 - LPT4 06h 4 BYTEs physical device IDs which map into COM1 - COM4 Note: LPT4 and COM3/COM4 are reserved on early versions of Multiuser DOS, but are supported from at least CCI Multiuser DOS v7.22 onwardTop
INT E0 - REAL/32 - "L_TIMEOUT" - SET LIST DEVICE TIMEOUT CL = B9h DX = timeout value in system ticks (see #04048) 0000h-FFEFh = new number of system ticks FFFDh = get current value without changing FFFEh = start timeout count FFFFh = never timeout Return: AX = status, or current timeout value if DX=FFFDh on entry may destroy SI,DI SeeAlso: INT E0/CL=BAhTop
INT E0 - REAL/32 - "A_TIMEOUT" - SET AUX DEVICE TIMEOUT CL = BAh DX = timeout value in system ticks (see #04048) 0000h-FFEFh = new number of system ticks FFFDh = get current value without changing FFFEh = start timeout count FFFFh = never timeout Return: AX = status, or current timeout value if DX=FFFDh on entry may destroy SI,DI SeeAlso: INT E0/CL=B9hTop
INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION CL = BDh DX = delay in system ticks (typically 16.6 ms/tick) Return: after the delay elapses no results Notes: the length of a system tick is installation-dependent (typically 1/50 or 1/60 second); the length may be determined by reading the TICKSPERSEC value from the system data segment the actual delay before the process is rescheduled to run may be up to one tick longer than requested; the delay between rescheduling and actual execution cannot be predicted if higher-priority processes are awaiting a turn at the CPU SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096hTop
INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN AX = 0000h Return: nothing Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in which specially-written .COM or .EXE programs form robots battling each other in a user-defined arenaTop
INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING AX = 0001h BX = speed (0-maximum for robot) CX = direction (0-359 degrees) Return: nothing Notes: the speed will change to the specified value at the maximum acceleration the robot is capable of; if the robot is already moving faster than its maximum maneuverability speed, it will not be able to change direction this call also terminates the current robot's turn SeeAlso: AX=0000h,AX=0002h,AX=0003hTop
INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION AX = 0002h BX = direction (0-359 degrees) CX = resolution (0-45 degrees) Return: AX = status FFFFh if nothing detected else robot ID (0-19) BX = range to detected robot Notes: the scan searches within CX degrees to either side of the specified direction the scanner will see right through walls, but shells will not pass through walls this call also terminates the current robot's turn SeeAlso: AX=0000h,AX=0001h,AX=0003hTop
INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT AX = 0003h BX = direction (0-359 degrees) CX = range (0-700) Return: AX = status (0000h not fired, else ID of shell fired) Notes: up to seven shells may be in flight for a robot at one time; the cannon takes 50 ticks to reload this call also terminates the current robot's turn SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002ChTop
INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION AX = 0010h Return: BX = current X coordinate (0-999) CX = current Y coordinate (0-999)Top
INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT AX = 0011h BX = target robot ID CX = data to be sent Return: AX = status (0000h data could not be sent, 0001h data sent) Note: this call costs one unit of battery powerTop
INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS AX = 0012h Return: AX = status 0000h no data available 0001h data retrieved BX = sender's ID CX = data Note: each robot has a 20-word receive FIFO; if the FIFO is full, other robots will be unable to send more data until some is readTop
INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED AX = 0013h Return: BX = damage status Note: the initial value depends on configuration, but is typically 100; as the robot is damaged, it decreasesTop
INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING AX = 0014h Return: BX = current speedTop
INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT AX = 0015h Return: BX = current battery charge Note: the battery starts off with 1000 units of charge, and is constantly being charged by solar panels and constantly discharged by motion; the battery is charged at 4 units per turn and discharged at 0.1*speed units per turn.Top
INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED AX = 0016h Return: BX:CX = number of game ticks elapsed (not related to real time)Top
INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE AX = 0017h BX = angle (0-359 degrees) Return: BX:CX = 100000*sine of angle SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001BhTop
INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE AX = 0018h BX = angle (0-359 degrees) Return: BX:CX = 100000*cosine of angle SeeAlso: AX=0017h,AX=0019h,AX=001AhTop
INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE AX = 0019h BX = angle (0-359 degrees) Return: BX:CX = 100000*tangent of angle SeeAlso: AX=0017h,AX=0018h,AX=001AhTop
INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT AX = 001Ah BX:CX = 100000*tangent of an angle Return: AX = angle (-90 to +90 degrees) SeeAlso: AX=0017h,AX=0018h,AX=0019hTop
INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER AX = 001Bh BX:CX = value Return: BX:CX = square root SeeAlso: AX=0017hTop
INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE AX = 001Ch BX:CX -> pattern array Return: nothing Note: the pattern array consists of five bytes, the low five bits of each specifying the bit pattern for one line of the robot's screen displayTop
INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME AX = 001Dh BX = flag number (0 or 1) CX = new value (0 reset, 1 set) Return: nothing Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in which specially-written .COM or .EXE programs form robots battling each other in a user-defined arena Note: the two flag markers may be used for any purpose, typically for debugging to provide a visual display of progressTop
INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT AX = 001Eh BX = number of armor units to buy (negative to sell) Return: nothing Note: each armor unit is worth 50 battery units; the robot's armor rating will not go above its initial rating, so attempts to purchase more will waste battery units SeeAlso: AX=001FhTop
INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS AX = 001Fh BX = number of shells to buy Return: nothing Note: each shell costs ten battery units SeeAlso: AX=001Eh,AX=0020hTop
INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS AX = 0020h Return: BX = number of shells remaining SeeAlso: AX=001FhTop
INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP" AX = 0021h BX:CX -> 81-byte buffer for map (see #04060) Return: buffer filled with 9x9 area of map centered on robot's position (Table 04060) Values for PCROBOTS map squares: 2Eh '.' empty square 44h 'D' damaging trap 52h 'R' refueling point 58h 'X' wallTop
INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE AX = 0022h BX = new state (0000h become visible, 0001h become invisible) Return: nothing Notes: this function has no effect if the robot is not capable of invisibility the robot can only stay invisible for 100 turns, after which it will automatically become visible; it must also be remain visible for as many turns as it was invisible before it can turn invisible again SeeAlso: AX=0024h,AX=0080hTop
INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL AX = 0023h Return: BX = status of last shell to land 0000h missed completely 0001h hit a wall 0002h hit a robot within 50-square radius 0003h hit a robot within 25-square radius 0004h hit a robot within 5-square radiusTop
INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE AX = 0024h Return: BX = visibility (0000h visible, 0001h invisible) SeeAlso: AX=0022h,AX=0080hTop
INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT AX = 0025h BX = Y CX = X Return: AX = angle (arctangent of Y/X)Top
INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER AX = 0026h Return: AX = robot IDTop
INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING AX = 0027h BX:CX = ASCIZ IFF string Return: nothing Note: the IFF string may only be set once SeeAlso: AX=0028h,AX=0029hTop
INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING AX = 0028h BX = robot ID to test Return: AX = status 0000h IFF strings match 0001h IFF strings differ or invalid robot ID SeeAlso: AX=0027hTop
INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME AX = 0029h BX:CX -> ASCIZ name string Return: nothing Note: the name may only be set once SeeAlso: AX=0027h,AX=002AhTop
INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME AX = 002Ah BX:CX -> ASCIZ name string DX = first ID to check Return: AX = robot ID or FFFFh if no robot with specified name SeeAlso: AX=0028h,AX=0029h,AX=002BhTop
INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT AX = 002Bh Return: AX = team ID (0-2) or FFFFh if 'loner' SeeAlso: AX=0029hTop
INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL AX = 002Ch BX = shell ID Return: AX = status 0000h missed completely 0001h hit a wall 0002h hit a robot within a 50-square radius 0003h hit a robot within a 25-square radius 0004h hit a robot within a 5-square radius 0005h shell not known (too old or not yet fired) 0006h shell still in flight SeeAlso: AX=0003hTop
INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES AX = 002Dh BX:CX -> X word variable Return: AX = status (0001h OK, 0000h problem with address) Note: after this call, PCROBOTS will automatically update the specified word whenever the robot moves SeeAlso: AX=002EhTop
INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES AX = 002Eh BX:CX -> Y word variable Return: AX = status (0001h OK, 0000h problem with address) Note: after this call, PCROBOTS will automatically update the specified word whenever the robot moves SeeAlso: AX=002DhTop
INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT AX = 0080h BX = basic configuration (see #04061) CX = advanced configuration (see #04062) Return: AX = status (0001h OK, 0000h not first call in program) Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in which specially-written .COM or .EXE programs form robots battling each other in a user-defined arena Notes: a maximum of ten points may be allocated to the robot; if you attempt to allocate more, some items will be given a value of zero. If this function is not called, each attribute is set to the default value of 2. if the invisibility option is chosen, the robot will start with only 900 cannon shells instead of the default 1000 Bitfields for PCROBOTS basic configuration: Bit(s) Description (Table 04061) 0-3 maximum speed (0-4 = 50,75,100,150,200) 4-7 maneuverability (0-4 = 20%,35%,50%,75%,100%) 8-11 cannon range (0-4 = 300,500,700,1000,1500) 12-15 robot armor (0-4 = 50,75,100,150,200) Bitfields for PCROBOTS advanced configuration: Bit(s) Description (Table 04062) 0-2 robot acceleration (0-4 = 5,7,10,15,20) 3 capable of invisibilityTop
INT E1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!) Desc: points at a data table SeeAlso: INT E2Top
INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS CL = function number (see #04019,#04020) DS,DX = parameters Return: as appropriate for function CX is often the error code (see #04021) Desc: used by some applications which alter CP/M functions while running a child program, to store the original INT E0 vector before intercepting INT E0 Notes: This is the debugger entry to the operating system. This function is also supported by IMS Multiuser DOS and IMS REAL/32. SeeAlso: #04019 at INT E0"CP/M"Top
INT E1 - DeskMate (Tandy) - TASK DATA SEGMENTS (NOT A VECTOR!) Desc: used to store data; the low word of the vector is the data segment for the first task; the high word is the data segment of the second task (DeskMate supports 2-way task switching between small- or medium-model applications) Program: DeskMate is a proprietary GUI from Tandy distributed with several models of the Tandy 1000's, 2500's, 3000's, and laptops. Retail and runtime versions also exist. Some Tandy's are designed to boot directly into DeskMate. SeeAlso: INT E0"DeskMate"Top
INT E2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E2 - PC Cluster Program - RELOCATED INT 1C SeeAlso: INT 1CTop
INT E3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E4 - Logitech Modula v2.0 - MonitorEntry AX = 0005h BX = priority Return: nothing SeeAlso: AX=0006hTop
INT E4 - Logitech Modula v2.0 - MonitorExit AX = 0006h Return: nothing SeeAlso: AX=0005hTop
INT E4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E4 - DIGITAL RESEARCH - FLAG INTERRUPT Note: This interrupt corresponds with Concurrent CP/M-86 and is to get an unused flag. SeeAlso: INT E5"DIGITAL RESEARCH"Top
INT E5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E5 - DIGITAL RESEARCH - FIDDS INTERRUPT Note: This interrupt corresponds with Concurrent CP/M-86 and is for "attachamatic" drives SeeAlso: INT E4"DIGITAL RESEARCH",INT E6"CP/M"Top
INT E6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E6 C - CP/M-86 v1.1 - XIOS INTERRUPT / UNKNOWN DISK DRIVE AX = function which accessed drive 0000h SELDSK 0001h READ 0002h WRITE 0003h HOME DX:BX -> parameter block (see #04063) Return: AX = return value Desc: called by CP/M-86 kernel when an unknown disk drive is used, which permits an application to provide access services Note: This was labelled "XIOS interrupt" in later Digital Research documentation (CCP/M-86) and "for the version 1.0 back door". Format of CP/M-86 unknown-drive paramter block: Offset Size Description (Table 04063) 00h BYTE drive number (00h = first unknown drive, etc.) 01h BYTE deblocking flag (00h = normal write, 01h = directory write) 02h WORD track number 04h WORD sector number 06h DWORD data transfer address 0Ah BYTE verify flag (nonzero to verify writes) Note: in CP/M-86 v1.1, this is actually a portion of a BIOS disk data table which starts one byte before the address given to the INT E6 handler; that extra byte is the current logical drive numberTop
INT E6 - Linux DOSEMU - INSTALLATION CHECK AH = 00h Return: AX = AA55h if installed BH = major version number BL = minor version number CX = patchlevel Notes: check for the BIOS date string "02/25/93" at F000:FFF5 before calling this function. In addition, the segment address of this vector should be F000h (for existing versions of DOSemu, the vector is F000h:0E60h) SeeAlso: AH=FFhTop
INT E6 - Linux DOSEMU - REGISTER DUMP AH = 01h Return: nothing SeeAlso: AH=00hTop
INT E6 - Linux DOSEMU - SET I/O PORT PERMISSIONS AH = 02h BX = base I/O port address CX = number of consecutive I/O ports CF set to allow DOS to use ports CF clear if DOS should not be allowed to use ports Return: nothing SeeAlso: AH=00hTop
INT E6 - Linux DOSEMU - STARTUP BANNER AH = 05h Return: nothing SeeAlso: AH=00hTop
INT E6 - Linux DOSEMU - SET "HOGTHRESHOLD" AH = 12h BX = new "hogthreshold" (00h-99h) Return: nothing Desc: specify how much CPU time DOSEMU may use SeeAlso: AH=00hTop
INT E6 - Linux DOSEMU - GET EMS STATUS AH = 22h Return: ??? SeeAlso: AH=00hTop
INT E6 - Linux DOSEMU - SET BOOTDISK FLAG AH = 30h BX = new flag state (0 = false, 1 = true) Return: nothing SeeAlso: AH=00hTop
INT E6 - Linux DOSEMU - EXECUTE UNIX COMMAND AH = 50h ES:DX -> ASCIZ Unix command SeeAlso: AH=00h,AH=51hTop
INT E6 - Linux DOSEMU - EXECUTE DOS COMMAND FROM UNIX AH = 51h ES:DX -> ASCIZ DOS command SeeAlso: AH=00h,AH=50hTop
INT E6 - Linux DOSEMU - GET CURRENT UNIX DIRECTORY AH = 80h Return: ES:DX -> current Unix directory AX = length of current directory name SeeAlso: AH=00h,AH=81hTop
INT E6 - Linux DOSEMU - CHANGE CURRENT UNIX DIRECTORY AH = 81h ES:DX -> ASCIZ directory name Return: nothing SeeAlso: AH=00h,AH=80hTop
INT E6 - Linux DOSEMU - TERMINATE AH = FFh SeeAlso: AH=00hTop
INT E7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT E9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT EA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT EB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT EC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on terminationTop
INT EC - used by Alloy NTNXTop
INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR AX = function number (0000h to 0140h) STACK: DWORD address to return to any arguments required by function Return: STACK: return address popped, but otherwise unchanged Desc: this is the interface from applications to the runtime system by Exact Automatisering B.V. of the Netherlands. By using this interrupt, it can provide DLL-style capabilities under MS-DOS. Note: the interrupt handler removes the return address and flags placed on the stack by the INT EC, then jumps to the appropriate functionTop
INT ED - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination INT 80 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT EC"BASIC",INT EE"BASIC"Top
INT EE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT ED"BASIC",INT EE"BASIC"Top
INT EF - BASIC - ORIGINAL INT 09 VECTOR Note: BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT EE"BASIC",INT F0"BASIC"Top
INT EF - GEM - AES INTERFACE CX = 00C8h DX = 0000h ES:BX -> AES parameter block (see #04064) SeeAlso: INT EF/CX=00C9h,INT EF/CX=0473h Format of AES parameter block: Offset Size Description (Table 04064) 00h DWORD -> control array (see #04065) 04h DWORD -> global variables (15 WORDs) 08h DWORD -> integer input parameters 0Ch DWORS -> buffer for integer results 10h DWORD -> address (DWORD) input parameters 14h DWORD -> buffer for address (DWORD) results SeeAlso: #04066 Format of AES control array: Offset Size Description (Table 04065) 00h WORD function number (000Ah-0084h) 02h WORD number of words of integer input parameters 04h WORD number of words available for integer results 06h WORD number of words of address input parameters 08h WORD number of words available for address results SeeAlso: #04064Top
INT EF - GEM - AES INTERFACE CX = 00C9h DX = 0000h ES:BX -> AES parameter block (see #04064) SeeAlso: INT EF/CX=00C8h,INT EF/CX=0473hTop
INT EF - GEM - VDI INTERFACE
CX = 0473h
DS:DX -> GEM VDI parameter block (see #04066)
Note: if installed, one of the following ASCII signatures will appear two
bytes after the INT EF entry point:
"GEMVDI" GEM VDI (but not AES) is present
"GEMAES" GEM/ViewMAX VDI and AES are both present
"ViewMAX" ViewMAX VDI (only) is present
each of the above is followed by an ASCIZ number indicating the
version ("10" for GEM/1 AES and VDI; "20" for GEM/2,GEM/3,ViewMAX
AES and GEM/2 VDI; "23" for GEM/3 VDI; and "1" for ViewMAX VDIs)
SeeAlso: INT EF/CX=00C8h,INT EF/CX=00C9h
Index: installation check;GEM
Format of VDI parameter block:
Offset Size Description (Table 04066)
00h DWORD -> control array (see #04067)
08h DWORD -> integer parameters
0Ch DWORD -> (x,y) pair parameters
10h DWORD -> integer results
14h DWORD -> (x,y) pair results
SeeAlso: #04064
Format of VDI control array:
Offset Size Description (Table 04067)
00h WORD (call) function number (0001h-0084h)
02h WORD (call) number of words of pair parameters
04h WORD (ret) number of words of pair results
06h WORD (call) number of words of integer parameters
08h WORD (ret) number of words of integer results
0Ah WORD subfunction number
0Ch WORD graphics handle
0Eh DWORD (call) -> pointer parameter
12h DWORD (ret) -> pointer result
SeeAlso: #04066
Top
INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR Note: BASICA.COM does not restore vector on termination SeeAlso: INT EF"BASIC"Top
INT F1 - reserved for user interruptTop
INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH DS:BX -> '$'-terminated text string Return: nothing Program: SPEECH.COM is a resident text-to-speech converter by Douglas SiscoTop
INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM SeeAlso: INT F2"SPEECH"Top
INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS Return: AX:BX -> data area Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1 and COM2 in software Note: The installation check consists of testing for the following signature immediately preceding the interrupt handler: "JWBtvv" where 't' is either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit version number Index: installation check;AQUEDUCT|installation check;PIPELINETop
INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
Note: if this vector contains the value 5774654Eh ("NetW"), the remote boot
BIOS extension is active, and access to the floppy disk is redirected
to an image file in the server's SYS:LOGIN directory
SeeAlso: INT F2"NetWare",INT F3"NetWare",INT F4"NetWare"
Top
INT F1 - VIRUS - "Violetta" - ??? Note: used but not chained by virus SeeAlso: INT E0"VIRUS",INT FF"VIRUS"Top
INT F1 - Common ISDN API (CAPI) v1.1 - "API-REGISTER" - INITIALIZE CAPI AH = 01h ES:BX -> buffer for CAPI's use (refer to note below) CX = minimum number of pending messages DX = maximum simultaneous Level 3 connections SI = maximum concurrent received B3 data blocks DI = maximum B3 data block size Return: AX = CAPI-assigned application ID 0000h on error BX = error number 1001h registration error Range: INT 00 to INT FF, selectable by program parameter Notes: the caller is required to provide at least 512 bytes of stack space the CAPI interrupt handler begins with a header which is nearly identical to the IBM Interrupt Sharing Protocol header (see #02568 at INT 2D"AMIS"), except that the short jump instruction to a hardware reset handler at offset 09h is replaced by the signature bytes "IA" the maximum length of a message is fixed at 180 bytes; the standard document suggests using CX=10, DI=1, SI=7, and DI=130 for applications which use only a single connection and standard protocols the total size of the application-provided buffer must be at least 180*CX + DX*SI*DI bytes SeeAlso: AH=02h,INT F1/AL=01h Index: installation check;Common ISDN APITop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_REGISTER" - INITIALIZE CAPI
AL = 01h
AH = CAPI version number * 10 (14h for v2.0)
ES:BX -> buffer for CAPI's use (refer to note below)
CX = number of bytes for message buffer
DX = maximum simultaneous logical (Level 3) connections
SI = maximum concurrent received B3 data blocks (min. 2)
DI = maximum B3 data block size (up to 2048 bytes)
Return: AX = CAPI-assigned application ID
0000h on error
BX = error number
1001h registration error
Range: INT 00 to INT FF, selectable by program parameter
Notes: the caller is required to provide at least 512 bytes of stack space
the CAPI interrupt handler begins with a header (see #04068) which is
nearly identical to the IBM Interrupt Sharing Protocol header
(see #02568 at INT 2D"AMIS"), except that the short jump instruction
to a hardware reset handler at offset 09h is zeroed out and the
entire header is inexplicably shortened by one byte
the standard document suggests using 1024 + (1024*DX) bytes for the
message buffer for typical applications
the total size of the application-provided buffer must be at least
CX + DX*SI*DI bytes
SeeAlso: AH=01h,INT F1/AL=02h
Index: installation check;Common ISDN API
Format of CAPI v2.0 interrupt handler entry point:
Offset Size Description (Table 04068)
00h 2 BYTEs short jump to actual start of interrupt handler, immediately
following this data block (EBh 0Fh)
02h DWORD address of next handler in chain
06h WORD signature 424Bh
08h BYTE EOI flag (80h)
80h primary hardware interrupt handler (will issue EOI)
09h 2 BYTEs reserved (0)
(is short jump to hardware reset routine in ISP header)
0Bh 4 BYTEs signature "CAPI"
0Fh 2 BYTEs two-digit CAPI version number in ASCII ('20')
SeeAlso: #02568 at INT 2D
Top
INT F1 - Common ISDN API (CAPI) v1.1 - "API-RELEASE" - UNREGISTER FROM CAPI AH = 02h DX = application ID (see AH=01h) Return: AX = status (0000h,1002h) (see #04069) Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=01h,INT F1/AL=02h (Table 04069) Values for CAPI v1.1 error code: 0000h successful 1001h registration error 1002h invalid application ID 1003h message too small or incorrectly coded message number 1004h invalid command or subcommand 1005h message queue full 1006h message queue empty 1007h message(s) lost due to queue overflow 1008h error uninstalling SeeAlso: #04070Top
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_RELEASE" - UNREGISTER FROM CAPI AL = 02h AH = CAPI version number * 10 (14h for v2.0) DX = application ID (see INT F1/AL=01h) Return: AX = status (0000h,11xxh) (see #04070) Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=02h,INT F1/AL=01h,INT F1/AL=03h (Table 04070) Values for CAPI v2.0 error code: 0000h successful 1001h too many applications 1002h logical block size too small (must be at least 128 bytes) 1003h buffer > 64K 1004h message buffer too small (minimum 1024 bytes) 1005h too many logical connections requested 1006h reserved 1007h could not register because CAPI busy, try again 1008h OS resource unavailable (out of memory, etc.) 1009h COMMON-ISDN-API not installed 100Ah controller does not support external equipment 100Bh controller supports only external equipment 1101h invalid application ID 1102h illegal command or subcommand, or message too short 1103h message queue full 1104h queue empty 1105h queue overflowed (message lost) 1106h unknown notification parameter 1107h could not accept message because CAPI busy, try again 1108h OS resource unavailable (out of memory, etc.) 1109h COMMON-ISDN-API not installed 110Ah controller does not support external equipment 110Bh controller supports only external equipment 2001h message not supported in current state 2002h illegal controller/PLCI/NCCI 2003h out of PLCI 2004h out of NCCI 2005h out of LISTEN 2006h out of FAX resources (T.30 protocol) 2007h illegal message parameter coding 3001h unsupported B1 protocol 3002h unsupported B2 protocol 3003h unsupported B3 protocol 3004h unsupported B1 protocol parameter 3005h unsupported B2 protocol parameter 3006h unsupported B3 protocol parameter 3007h unsupported B protocol combination 3008h NCPI not supported 3009h unknown CIP value 300Ah unsupported flags (reserved bits set) 300Bh unsupported facility 300Ch data length not supported by current protocol 300Dh reset procedure not supported by current protocol SeeAlso: #04069Top
INT F1 - Common ISDN API (CAPI) v1.1 - "API-PUT-MESSAGE" AH = 03h DX = application ID (see AH=01h) ES:BX -> message to be sent (see #04071) Return: AX = status (0000h,1002h,1003h,1004h,1005h) (see #04069) Notes: the caller is required to provide at least 512 bytes of stack space the message buffer may be reused as soon as this call returns SeeAlso: AH=01h,AH=04h,INT F1/AL=03h Format of CAPI message: Offset Size Description (Table 04071) 00h WORD total message length, including header 02h WORD application ID (see AH=01h) 04h BYTE command (see #04072,#04073) 05h BYTE subcommand (see #04072,#04073) 06h WORD message sequence number 0000h-7FFFh messages from application to CAPI (and replies) 8000h-FFFFh messages from CAPI to application (and replies) 08h var message data (max 172 bytes for v1.1 only) (Table 04072) Values for CAPI v1.1 message command/subcommand: Cmd/SubCmd Name Description 01h/00h RESET-B3-REQ request resetting of a Level 3 connection 01h/01h RESET-B3-CONF confirm Level 3 connection reset 01h/02h RESET-B3-IND indication from CAPI that Level 3 conn. reset 01h/03h RESET-B3-RESP confirm receipt of RESET-B3-IND 02h/00h CONNECT-REQ establish B-channel connection 02h/01h CONNECT-CONF confirm start of connection establishment 02h/02h CONNECT-IND indication from CAPI of incoming connection 02h/03h CONNECT-RESP accept incoming connection 03h/02h CONNECT-ACTIVE-IND indication that B-channel connection complete 03h/03h CONNECT-ACTIVE-RESP confirm connection-complete indication 04h/00h DISCONNECT-REQ request shutdown of B-channel connection 04h/01h DISCONNECT-CONF confirm shutdown of B-channel connection 04h/02h DISCONNECT-IND indication that B-channel is shutting down 04h/03h DISCONNECT-RESP confirm that application knows of shutdown 05h/00h LISTEN-REQ enable indication of incoming connections 05h/01h LISTEN-CONF confirm enabling of incoming conn. indication 06h/00h GET-PARAMS-REQ request B-channel parameters 06h/01h GET-PARAMS-CONF return B-channel parameters 07h/00h INFO-REQ set B-channel info to be signalled to app 07h/01h INFO-CONF confirm B-channel info signalling 07h/02h INFO-IND signal B-channel events to application 07h/03h INFO-CONF confirm receipt of INFO-IND 08h/00h DATA-REQ send D-channel data 08h/01h DATA-CONF confirm receipt of DATA-REQ 08h/02h DATA-IND receive D-channel data 08h/03h DATA-RESP confirm receipt fo DATA-IND 09h/00h CONNECT-INFO-REQ request connection information 09h/01h CONNECT-INFO-CONF return connection information 40h/00h SELECT-B2-PROTOCOL-REQ select Level 2 protocol 40h/01h SELECT-B2-PROTOCOL-CONF confirm receipt of SELECT-B2-PROTOCOL-REQ 80h/00h SELECT-B3-PROTOCOL-REQ select Level 3 protocol 80h/01h SELECT-B3-PROTOCOL-CONF confirm receipt of SELECT-B3-PROTOCOL-REQ 81h/00h LISTEN-B3-REQ enable notification of incoming Level 3 calls 81h/01h LISTEN-B3-CONF confirm receipt of LISTEN-B3-REQ 82h/00h CONNECT-B3-REQ establish Level 3 connection 82h/01h CONNECT-B3-CONF confirm start of connection establishment 82h/02h CONNECT-B3-IND indication of incoming Level 3 connection 82h/03h CONNECT-B3-RESP accept incoming connection 83h/02h CONNECT-B3-ACTIVE-IND indication that Level 3 connection complete 83h/03h CONNECT-B3-ACTIVE-RESP confirm connection-complete indication 84h/00h DISCONNECT-B3-REQ request shutdown of Level 3 connection 84h/01h DISCONNECT-B3-CONF confirm shutdown of Level 3 connection 84h/02h DISCONNECT-B3-IND indication that Level 3 is shutting down 84h/03h DISCONNECT-B3-RESP confirm that application knows of shutdown 85h/00h GET-B3-PARAMS-REQ request Level 3 parameters 85h/01h GET-B3-PARAMS-CONF return Level 3 parameters 86h/00h DATA-B3-REQ send data on Level 3 86h/01h DATA-B3-CONF confirm sending of Level 3 data 86h/02h DATA-B3-IND indication of incoming Level 3 data 86h/03h DATA-B3-RESP confirm receipt of Level 3 data 87h/02h HANDSET-IND indication of Handset events 87h/03h HANDSET-RESP confirm receipt of Handset event FFh/00h MANUFACTURER-REQ vendor-specific request FFh/01h MANUFACTURER-CONF vendor-specific request confirmation FFh/02h MANUFACTURER-IND vendor-specific notification FFh/03h MANUFACTURER-RESP vendor-specific notification confirmation SeeAlso: #04071,#04073Top
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_PUT_MESSAGE" AL = 03h AH = CAPI version number * 10 (14h for v2.0) DX = application ID (see INT F1/AL=01h) ES:BX -> message to be sent (see #04071) Return: AX = status (0000h,11xxh) (see #04070) Notes: the caller is required to provide at least 512 bytes of stack space the message buffer may be reused as soon as this call returns SeeAlso: AH=03h,INT F1/AL=01h,INT F1/AL=04h (Table 04073) Values for CAPI v2.0 message command/subcommand: Cmd/SubCmd Name Description 01h/80h ALERT_REQ indicate compatibility with incoming calls 01h/81h ALERT_CONF confirm receipt of ALERT_REQ 02h/80h CONNECT_REQ establish B-channel connection 02h/81h CONNECT_CONF confirm start of connection establishment 02h/82h CONNECT_IND indication from CAPI of incoming connection 02h/83h CONNECT_RESP accept incoming connection 03h/82h CONNECT_ACTIVE_IND indication that B-channel connection complete 03h/83h CONNECT_ACTIVE_RESP confirm connection-complete indication 04h/80h DISCONNECT_REQ request shutdown of B-channel connection 04h/81h DISCONNECT_CONF confirm shutdown of B-channel connection 04h/82h DISCONNECT_IND indication that B-channel is shutting down 04h/83h DISCONNECT_RESP confirm that application knows of shutdown 05h/80h LISTEN_REQ enable signalling on incoming events 05h/81h LISTEN_CONF confirm enabling of incoming event signalling 08h/80h INFO_REQ send protocol information for physical connect 08h/81h INFO_CONF confirm INFO_REQ 08h/82h INFO_IND indicate event for physical connection 08h/83h INFO_CONF confirm receipt of INFO_IND 41h/80h SELECT_B_PROTOCOL_REQ change protocol on already-active connect 41h/81h SELECT_B_PROTOCOL_CONF confirm receipt of SELECT_B_PROTOCOL_REQ 80h/80h FACILITY_REQ control optional facilities 80h/81h FACILITY_CONF confirm acceptance of FACILITY_REQ 80h/82h FACILITY_IND indicate facility-dependent event 80h/83h FACILITY_RESP confirm receipt of FACILITY_IND 82h/80h CONNECT_B3_REQ establish Level 3 connection 82h/81h CONNECT_B3_CONF confirm start of connection establishment 82h/82h CONNECT_B3_IND indication of incoming Level 3 connection 82h/83h CONNECT_B3_RESP accept incoming connection 83h/82h CONNECT_B3_ACTIVE_IND indication that Level 3 connection complete 83h/83h CONNECT_B3_ACTIVE_RESP confirm connection-complete indication 84h/80h DISCONNECT_B3_REQ request shutdown of Level 3 connection 84h/81h DISCONNECT_B3_CONF confirm shutdown of Level 3 connection 84h/82h DISCONNECT_B3_IND indication that Level 3 is shutting down 84h/83h DISCONNECT_B3_RESP confirm that application knows of shutdown 85h/80h GET_B3_PARAMS_REQ request Level 3 parameters 85h/81h GET_B3_PARAMS_CONF return Level 3 parameters 86h/80h DATA_B3_REQ send data on Level 3 86h/81h DATA_B3_CONF confirm sending of Level 3 data 86h/82h DATA_B3_IND indication of incoming Level 3 data 86h/83h DATA_B3_RESP confirm receipt of Level 3 data 87h/80h RESET_B3_REQ request resetting of a logical connection 87h/81h RESET_B3_CONF confirm logical connection reset 87h/82h RESET_B3_IND indication from CAPI that logical conn. reset 87h/83h RESET_B3_RESP confirm receipt of RESET_B3_IND 88h/82h CONNECT_B3_T90_ACTIVE_IND indicate switch from T.70 to T.90 88h/83h CONNECT_B3_T90_ACTIVE_RESP confirm receipt of T90_ACTIVE_IND FFh/80h MANUFACTURER_REQ vendor-specific request FFh/81h MANUFACTURER_CONF vendor-specific request confirmation FFh/82h MANUFACTURER_IND vendor-specific notification FFh/83h MANUFACTURER_RESP vendor-specific notification confirmation SeeAlso: #04071,#04072Top
INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MESSAGE" AH = 04h DX = application ID (see AH=01h) Return: AX = status (0000h,1002h,1006h,1007h) (see #04069) ES:BX -> message if successful (see #04071) Range: INT 00 to INT FF, selectable by program parameter Notes: the caller is required to provide at least 512 bytes of stack space the returned message may be overwritten by the next call to this function SeeAlso: AH=03hTop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MESSAGE" AL = 04h AH = CAPI version number * 10 (14h for v2.0) DX = application ID (see AH=01h) Return: AX = status (0000h,11xxh) (see #04070) ES:BX -> message if successful (see #04071) Range: INT 00 to INT FF, selectable by program parameter Notes: the caller is required to provide at least 512 bytes of stack space the returned message may be overwritten by the next call to this function SeeAlso: AH=04h,INT F1/AL=03hTop
INT F1 - Common ISDN API (CAPI) v1.1 - "API-SET-SIGNAL" - SIGNAL HANDLING AH = 05h DX = application ID (see AH=01h) ES:BX -> signal handler or 0000h:0000h to disable Return: AX = status (0000h,1002h) (see #04069) Notes: the caller is required to provide at least 512 bytes of stack space the signal handler is called as though it were an interrupt, with interrupts disabled; the handler must preserve all registers and return with an IRET SeeAlso: AH=01hTop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_SET_SIGNAL" - SIGNAL HANDLING AL = 05h AH = CAPI version number * 10 (14h for v2.0) DX = application ID (see AH=01h) ES:BX -> signal handler or 0000h:0000h to disable SI:DI = parameter to pass to signal handler Return: AX = status (0000h,11xxh) (see #04070) Notes: the caller is required to provide at least 512 bytes of stack space the signal handler is called as though it were an interrupt, with interrupts disabled and DX,SI,DI set as they were when this function was called; the handler must preserve all registers and return with an IRET the signal handler may call CAPI_PUT_MESSAGE, CAPI_GET_MESSAGE, and CAPI_SET_SIGNAL SeeAlso: INT F1/AL=01hTop
INT F1 - Common ISDN API (CAPI) v1.1 - "API-DEINSTALL" - UNINSTALL AH = 06h BX = force flag 0000h normal uninstall 0001h forced uninstall Return: AX = status (0000h,1008h) (see #04069) Desc: reset ISDN controller, close all ISDN Level 1 connections except for telephone connections Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: INT F1/AL=01h,INT F1/AH=01hTop
INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MANUFACTURER" AH = F0h ES:BX -> 64-byte buffer for manufacturer identification information Return: ES:BX buffer filled with ASCIZ idnetification string Range: INT 00 to INT FF, selectable by program parameter Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=01h,AH=F1h,AH=F2h,AH=FFh,INT F1/AL=F0hTop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MANUFACTURER" AL = F0h AH = CAPI version number * 10 (14h for v2.0) ES:BX -> 64-byte buffer for manufacturer identification information Return: ES:BX buffer filled with ASCIZ idnetification string Range: INT 00 to INT FF, selectable by program parameter Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=F0h,INT F1/AL=01h,INT F1/AL=F1h,INT F1/AL=F2h,INT F1/AL=FFhTop
INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-VERSION" AH = F1h ES:BX -> 64-byte buffer for CAPI version number Return: ES:BX buffer filled with ASCIZ version string Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=01h,AH=F0h,AH=F2h,AH=FFhTop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_VERSION" AL = F1h AH = CAPI version number * 10 (14h for v2.0) Return: AH = CAPI major version number AL = CAPI minor version number DH = vendor-specific major version DL = vendor-specific minor version Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=F1h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AL=FFhTop
INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-SERIAL-NUMBER" AH = F2h ES:BX -> 64-byte buffer for CAPI serial number Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty string if no serial number Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=FFhTop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_SERIAL_NUMBER" AL = F2h AH = CAPI version number * 10 (14h for v2.0) ES:BX -> 64-byte buffer for CAPI serial number Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty string if no serial number Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=F2h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F3hTop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_PROFILE" - GET CAPABILITIES AL = F3h AH = CAPI version number * 10 (14h for v2.0) ES:BX -> 64-byte buffer for CAPI capabilities (see #04074) CX = controller number (01h-06h) or 0000h to get number of controllers Return: AX = status (0000h,11xxh) (see #04070) ES:BX buffer filled if successful Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AH=FFh Format of CAPI v2.0 capabilities: Offset Size Description (Table 04074) 00h WORD number of installed controllers 02h WORD number of supported B channels 04h DWORD global options (see #04075) 08h DWORD B1 protocol support flags (see #04076) 0Ch DWORD B2 protocol support flags (see #04077) 10h DWORD B3 protocol support flags (see #04078) 14h 24 BYTEs reserved for CAPI use 2Ch 20 BYTEs vendor-specific information Bitfields for CAPI v2.0 global options: Bit(s) Description (Table 04075) 0 internal controller supported 1 external controller supported 2 handset supported (only if bit 1 also set) 3 DTMF supported 4-31 reserved (0) SeeAlso: #04074 Bitfields for CAPI v2.0 B1 protocol support: Bit(s) Description (Table 04076) 0 64k bps with HDLC framing (required, always set) 1 64k bps bit-transparent operation with network byte framing 2 V.110 asynchronous with start/stop byte framing 3 V.110 synchronous with HDLC framing 4 T.30 modem for group 3 FAX 5 64k bps inverted with HDLC framing 6 56k bps bit-transparent operation with network byte framing 7-31 reserved (0) SeeAlso: #04074 Bitfields for CAPI v2.0 B2 protocol support: Bit(s) Description (Table 04077) 0 ISO 7776 (X.75 SLP) (required, always set) 1 transparent 2 SDLC 3 Q.921 LAPD (D-channel X.25) 4 T.30 for group 3 FAX 5 point-to-point protocol (PPP) 6 transparent (ignoring B1 framing errors) 7-31 reserved (0) SeeAlso: #04074 Bitfields for CAPI v2.0 B3 protocol support: Bit(s) Description (Table 04078) 0 transparent (required, always set) 1 T.90NL with T.70NL compatibility 2 ISO 8208 (X.25 DTE-DTE) 3 X.25 DCE 4 T.30 for group 3 FAX 5-31 reserved (0) SeeAlso: #04074Top
INT F1 - Common ISDN API (CAPI) v1.1 - "API-MANUFACTURER" - VENDOR-SPECIFIC AH = FFh other registers vendor-specific Return: registers vendor-specific Range: INT 00 to INT FF, selectable by program parameter Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=F2h,INT F1/AH=FFhTop
INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_MANUFACTURER" - VENDOR-SPECIFIC AL = FFh AH = CAPI version number * 10 (14h for v2.0) other registers vendor-specific Return: registers vendor-specific Range: INT 00 to INT FF, selectable by program parameter Notes: the caller is required to provide at least 512 bytes of stack space SeeAlso: AH=FFh,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F2hTop
INT F2 - reserved for user interruptTop
INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM SeeAlso: INT F1"SPEECH"Top
INT F2 - NetWare Remote Boot - ORIGINAL INT 13 SeeAlso: INT F1"NetWare",INT F3"NetWare",INT F4"NetWare"Top
INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API AH = function number (see #04079) ??? Return: ??? Program: ImageCapture is a product of International Computers SeeAlso: INT F3"ICCTSR" (Table 04079) Values for ImageCapture function: 01h power up 02h power down 03h set controls 04h capture image 05h display image 06h read file 07h write file 08h write array 09h read pixel 0Ah write pixel 0Bh check if VGA present 0Ch set video mode 0Dh check for keystroke 0Eh delayTop
INT F3 - reserved for user interrupt SeeAlso: INT F2"user",INT F4"user"Top
INT F3 - SoundBlaster - POINTER TO ECHO VALUE Note: this is not a vector, but a pointer to a DWORD containing the echo value selected with SET-ECHO.EXE SeeAlso: INT 2F/AX=FBFBh/ES=0000hTop
INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR Program: ImageCapture is a product of International Computers SeeAlso: INT F2"ICCTSR"Top
INT F3 - NetWare Remote Boot - BOOT ROM'S INT 13 HANDLER SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F4"NetWare"Top
INT F4 - reserved for user interrupt SeeAlso: INT F3"user",INT F5"user"Top
INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F5"DoubleDOS",INT FE"DoubleDOS"Top
INT F4 - NetWare Remote Boot - ??? SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F3"NetWare"Top
INT F5 - reserved for user interrupt SeeAlso: INT F4"user",INT F6"user"Top
INT F5 - DoubleDOS - ??? SeeAlso: INT F4"DoubleDOS",INT F6"DoubleDOS"Top
INT F6 - reserved for user interrupt SeeAlso: INT F5"user",INT F7"user"Top
INT F6 - DoubleDOS - ??? SeeAlso: INT F5"DoubleDOS",INT F7"DoubleDOS"Top
INT F7 - reserved for user interrupt SeeAlso: INT F6"user"Top
INT F7 - DoubleDOS - ??? SeeAlso: INT F6"DoubleDOS"Top
INT F7 - FSBBS 2.0 - CONFIGURATION RECORD AH = 00h AL = function 00h get configuration record Return: DS:DX -> configuration record 01h set configuration record Return: nothing 02h get path for option DS:DX -> option name Return: DS:DX -> path 03h determine whether configuration record set Return: AX = status 0000h set 0001h not yet set 04h get link state Return: AX = state 0000h unlinked 0001h linked Notes: this information is preliminary and still subject to change all of the INT F7 calls for FSBBS are used for interprogram communication between the BBS kernel and the programs it spawns SeeAlso: AH=01hTop
INT F7 - FSBBS 2.0 - USER RECORD AH = 01h AL = function 00h get user record for user currently online Return: DS:DX -> user record 01h set user record DS:DX -> user record Return: nothing SeeAlso: AH=00h,AH=02hTop
INT F7 - FSBBS 2.0 - GET ACCOUNT NAME AH = 02h Return: DS:DX -> 8-character blank-padded account name SeeAlso: AH=01hTop
INT F7 - FSBBS 2.0 - TERMINAL NUMBER AH = 03h AL = function 00h get terminal index number Return: DX = index number 01h set terminal index number DX = terminal index Return: nothingTop
INT F7 - FSBBS 2.0 - PASSDATA BUFFER AH = 04h AL = function 00h get PassData buffer contents DS:DX -> buffer for PassData contents Return: DS:DX buffer filled 01h set PassData contents DS:DX -> buffer containing new PassData CH = length of data in buffer Return: nothingTop
INT F7 - FSBBS 2.0 - TIMER FUNCTIONS AH = 05h AL = function 00h get time remaining Return: DX = number of minutes remaining 01h get current time Return: DS:DX -> 8-character time string 02h increment time DX = number of additional minutes 03h decrement time DX = number of minutes SeeAlso: AH=06hTop
INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY AH = 06h AL = function 00h determine whether function is available DX = index of function 01h set function availability DX = index of function ??? Return: nothing SeeAlso: AH=05h,AH=07hTop
INT F7 - FSBBS 2.0 - DUMP FUNCTIONS AH = 07h AL = function 00h get current dump mode Return: DL = mode 01h set dump mode DL = mode SeeAlso: AH=06hTop
INT F8 - reserved for user interruptTop
INT F8 - Sanyo MBC-550/555 - IRQ0 - 100 HZ INTERRUPT Note: normally masked off at 8259 interrupt controller SeeAlso: INT 08"IRQ0",INT F9"Sanyo",INT FA"Sanyo"Top
INT F8 - DoubleDOS - ???Top
INT F9 - reserved for user interruptTop
INT F9 - DoubleDOS - ???Top
INT F9 - Sanyo MBC-550/555 - IRQ1 - ??? Note: documented as "for system use only"; normally enabled at the 8259 SeeAlso: INT 09"IRQ1",INT F8"Sanyo",INT FA"Sanyo"Top
INT FA - reserved for user interruptTop
INT FA - Sanyo MBC-550/555 - IRQ2 - SERIAL PORT USART INTERRUPT Note: this vector is not used on the Tandy 1000TL SeeAlso: INT 0A"IRQ2",INT F9"Sanyo",INT FB"Sanyo"Top
INT FA - DoubleDOS - TURN OFF TIMESHARING SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"Top
INT FA P - ASM Edit - INSTALLATION CHECK Program: ASM Edit is a shareware programmer's editor Note: ASM Edit hooks this vector in protected mode to allow DPMI programs to detect whether they were run while shelled to DOS from ASM Edit Format of ASM Edit signature block: Offset Size Description (Table 04080) 00h BYTE CFh (IRET) 01h 8 BYTEs signature "ASM Edit" (no trailing NUL)Top
INT FB - reserved for user interruptTop
INT FB - Sanyo MBC-550/555 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT SeeAlso: INT 0B"IRQ3",INT FA"Sanyo",INT FC"Sanyo"Top
INT FB - DoubleDOS - TURN ON TIMESHARING SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"Top
INT FC - reserved for user interruptTop
INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS Return: ES = segment of display buffer Desc: determine the address of the virtual screen to which the program should write instead of the actual video memory, so that the multitasked programs do not interfere with each other's output Note: the display buffer may be moved if multitasking is enabled SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"Top
INT FC - Sanyo MBC-550/555 - IRQ4 - PRINTER READY INTERRUPT Note: normally masked off at the 8259 interrupt controller SeeAlso: INT 0C"IRQ4",INT FB"Sanyo",INT FD"Sanyo"Top
INT FD - reserved for user interruptTop
INT FD - DoubleDOS - ???Top
INT FD - Sanyo MBC-550/555 - IRQ5 - FLOPPY DISK CONTROLLER SeeAlso: INT 0D"IRQ5",INT FC"Sanyo",INT FE"Sanyo"Top
INT FD - TFPCX - INSTALLATION CHECK AH = function (also see separate entries below) Program: TFPCX is an interface between modem and terminal program for packet- radio communications InstallCheck: test for the string "N5NX" three bytes beyond the interrupt handler Range: INT FD is the default, but may be changed, so the full installation check consists of scanning for the signature Note: TFPCX returns AX=FFFFh on any unsupported function call SeeAlso: AH=01h,AH=03h,AH=FEhTop
INT FD - TFPCX - TEST FOR CHARACTER WAITING AH = 01h Return: AX = status 0000h no characters waiting 0001h character available for input Program: TFPCX is an interface between modem and terminal program for packet- radio communications SeeAlso: AH=02hTop
INT FD - TFPCX - GET CHARACTER AH = 02h Return: AL = character Notes: this call is only allowed if AH=01h indicated that a character is available all available characters should be read before sending any additional characters SeeAlso: AH=01h,AH=03hTop
INT FD - TFPCX - OUTPUT CHARACTER AH = 03h AL = character to send Return: nothing SeeAlso: AH=02hTop
INT FD - TFPCX - GET VERSION AH = FEh Return: AH = major version AL = minor version Program: TFPCX is an interface between modem and terminal program for packet- radio communications SeeAlso: AH=01h,AH=03hTop
INT FE - AT/XT286/PS50+ - destroyed by return from protected mode Note: the ROM BIOS uses 0030h:0100h as the initial stack on startup, which is the last fourth of the interrupt vector table. If the processor is returned to real mode via a hardware reset (the only possibility on an 80286, though there are a number of ways of generating one), then the BIOS startup code stacks three words on its scratch stack before determining that a return to real mode has been requested. As a result, INT FE and INT FF are corrupted. SeeAlso: INT FF"XT286"Top
INT FE - DoubleDOS - GIVE UP TIME AL = number of 55ms time slices to give away Return: after other program (if active) has run SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"Top
INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER SeeAlso: INT 3FTop
INT FE - Sanyo MBC-550/555 - IRQ6 - 8087 COPROCESSOR INTERRUPT Note: normally masked off at the 8259 interrupt controller SeeAlso: INT 0E"IRQ6",INT FD"Sanyo",INT FF"Sanyo"Top
INT FF - AT/XT286/PS50+ - destroyed by return from protected mode Note: (see INT FE"XT286") SeeAlso: INT FE"XT286"Top
INT FF - Z100 - WARM BOOT SeeAlso: INT 40"Z100"Top
INT FF - Sanyo MBC-550/555 - IRQ7 - USER INTERRUPT FOR EXTERNAL INTERRUPT Note: normally masked off at the 8259 interrupt controller SeeAlso: INT 0F"IRQ7",INT FE"Sanyo"Top
INT FF U - QEMM-386.SYS v6.0+ - internal Notes: requires that a byte in the conventional-memory stub be set to the desired function number (00h through 0Ch) SeeAlso: #04081 (Table 04081) Values for QEMM internal functions: 00h reflect back to Virtual86-mode interrupt handler (default) 01h ??? 02h access DR7??? 03h QPI upcall (see INT 67/AH=3Fh) 04h ??? 05h ??? 06h INT 15/AH=87h 07h EMS services (see INT 67/AH=40h,INT 67/AH=5Dh) 08h ??? 09h QEMM exception handler 0Ah XMS services (see INT 2F/AX=4310h"XMS") 0Bh Virtual DMA Services (see INT 4B/AX=8102h) 0Ch ???Top
INT FF - VIRUS - "Violetta" - ??? Note: used but not chained by virus SeeAlso: INT E0"VIRUS",INT F1"VIRUS"Top
INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE BX = 0000h DS:SI -> FORTH program counter SS:BP -> FORTH parameter stack SS:SP -> FORTH return stack DS:DX -> FORTH video parameter area Desc: called to inform graphics driver of any status changes such as video mode changes, character color changes, graphics XOR mode turned on or off, etc.; also used as an installation check Index: installation check;PC/FORTHTop
INT FF - PC/FORTH - GRAPHICS API BX = function number 0001h function REDRAW 0002h function !PEL 0003h function @PEL 0004h function LINE 0005h function ARC 0006h function @BLOCK 0007h function !BLOCK 0008h function FLOOD DS:SI -> FORTH program counter SS:BP -> FORTH parameter stack SS:SP -> FORTH return stack details of parameters not available Return: AX,BX,CX,DX,ES,DI may be destroyed Note: these functions all display an error message if the graphics routines are not residentTop
Highest Table Number = 04122Top
Please redistribute all of the files comprising the interrupt list (listed at the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a quartet of archives named INTER61A through INTER61D (preferably the original authenticated PKZIP archives), the utility programs in a fifth archive called INTER61E.ZIP and the hypertext conversion programs in a sixth archive named INTER61F.ZIP. Copyright (c) 1989-1999,2000 Ralf BrownTop
E-mail: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)Top