You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9839 lines
343 KiB
9839 lines
343 KiB
Interrupt List, part 2 of 18
|
|
Copyright (c) 1989-1999,2000 Ralf Brown
|
|
--------V-10BF--CX0000-----------------------
|
|
INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
|
|
AH = BFh
|
|
CX = 0000h (???)
|
|
Return: CX = 0202h
|
|
DL = ??? (internal data, possibly version number)
|
|
--------b-10BF00-----------------------------
|
|
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=35h
|
|
--------b-10BF01-----------------------------
|
|
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=35h
|
|
--------b-10BF02-----------------------------
|
|
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=BF03h
|
|
--------b-10BF03BX0000-----------------------
|
|
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 VGA
|
|
--------b-10BF04-----------------------------
|
|
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=BF05h
|
|
--------b-10BF05-----------------------------
|
|
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=BF04h
|
|
--------b-10BF06-----------------------------
|
|
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=BF07h
|
|
--------b-10BF07-----------------------------
|
|
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=BF08h
|
|
--------b-10BF08-----------------------------
|
|
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=BF07h
|
|
--------b-10BF09-----------------------------
|
|
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=BF0Bh
|
|
--------b-10BF0A-----------------------------
|
|
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=BF0Bh
|
|
--------b-10BF0B-----------------------------
|
|
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=BF0Ah
|
|
--------b-10BF0C-----------------------------
|
|
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=BF0Eh
|
|
--------b-10BF0D-----------------------------
|
|
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=BF0Eh
|
|
--------b-10BF0E-----------------------------
|
|
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=BF0Dh
|
|
--------b-10BF0F-----------------------------
|
|
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=BF10h
|
|
--------b-10BF10-----------------------------
|
|
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=BF0Fh
|
|
--------b-10BF11-----------------------------
|
|
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 reserved
|
|
--------b-10BF12-----------------------------
|
|
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 monitor
|
|
--------b-10BF13-----------------------------
|
|
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: #00733
|
|
--------V-10BFA0BXADAD-----------------------
|
|
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;ADAPT
|
|
--------V-10BFA1-----------------------------
|
|
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=BFA2h
|
|
--------V-10BFA2-----------------------------
|
|
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=BFA1h
|
|
--------A-10C0-------------------------------
|
|
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=C4h
|
|
--------V-10C000-----------------------------
|
|
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"
|
|
--------V-10C001-----------------------------
|
|
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: #00222
|
|
--------V-10C002-----------------------------
|
|
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"
|
|
--------V-10C003-----------------------------
|
|
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"
|
|
--------V-10C004-----------------------------
|
|
INT 10 - S3 SpeedUp v3.10+ - RESERVED FUNCTIONS
|
|
AX = C004h-C0FFh
|
|
Return: AX = 5555h
|
|
SeeAlso: AX=C000h
|
|
--------A-10C1-------------------------------
|
|
INT 10 - CU Writer v1.4 - OUTPUT TEXT
|
|
AH = C1h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
|
|
--------A-10C2-------------------------------
|
|
INT 10 - CU Writer v1.4 - REVERSE TEXT
|
|
AH = C2h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
|
|
--------A-10C3-------------------------------
|
|
INT 10 - CU Writer v1.4 - TEXT BAR
|
|
AH = C3h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AH=C0h,AH=C1h,AH=C4h
|
|
--------A-10C4-------------------------------
|
|
INT 10 - CU Writer v1.4 - TEXT MENU
|
|
AH = C4h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
|
|
--------V-10CB00-----------------------------
|
|
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=CBFFh
|
|
--------V-10CB01-----------------------------
|
|
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=CBFFh
|
|
--------V-10CB02-----------------------------
|
|
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=CB04h
|
|
--------V-10CB03-----------------------------
|
|
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=CB04h
|
|
--------V-10CB04-----------------------------
|
|
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=CB05h
|
|
--------V-10CB05-----------------------------
|
|
INT 10 - UNCHAIN - SAVE PALETTE
|
|
AX = CB05h
|
|
Return: nothing
|
|
SeeAlso: AX=CB00h,AX=CB06h
|
|
--------V-10CB06-----------------------------
|
|
INT 10 - UNCHAIN - RESTORE VGA REGISTERS
|
|
AX = CB06h
|
|
Return: nothing
|
|
SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
|
|
--------V-10CBFF-----------------------------
|
|
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=CB06h
|
|
--------V-10CC00-----------------------------
|
|
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
|
|
--------V-10CC01-----------------------------
|
|
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=CC02h
|
|
--------V-10CC02-----------------------------
|
|
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=CC01h
|
|
--------U-10CCAB-----------------------------
|
|
INT 10 - HiFont - INSTALLATION CHECK
|
|
AX = CCABh
|
|
Return: AX = ABCCh
|
|
Program: HiFont is a 8x19 font driver for standard VGA by Solar Designer
|
|
--------V-10CD00-----------------------------
|
|
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=CD02h
|
|
--------V-10CD01-----------------------------
|
|
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=CD03h
|
|
--------V-10CD02-----------------------------
|
|
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 font
|
|
--------V-10CD03-----------------------------
|
|
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=CD01h
|
|
--------V-10CD04-----------------------------
|
|
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;UltraVision
|
|
--------V-10CD05-----------------------------
|
|
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=CD06h
|
|
--------V-10CD06-----------------------------
|
|
INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
|
|
AX = CD06h
|
|
Return: CL = type
|
|
00h line cursor
|
|
FFh box cursor
|
|
SeeAlso: AH=03h,AX=CD05h
|
|
--------V-10CD07-----------------------------
|
|
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 characters
|
|
--------V-10CD08-----------------------------
|
|
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=CD07h
|
|
--------V-10CD0F-----------------------------
|
|
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=1103h
|
|
--------V-10CD10-----------------------------
|
|
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=1103h
|
|
--------V-10CD-------------------------------
|
|
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=CD04h
|
|
--------A-10D0-------------------------------
|
|
INT 10 - CU Writer v1.4 - LOAD PICTURE
|
|
AH = D0h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AH=B0h"CU Writer",AH=C4h
|
|
--------V-10D0-------------------------------
|
|
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=D4h
|
|
--------V-10D000-----------------------------
|
|
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"
|
|
--------V-10D001-----------------------------
|
|
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: #00216
|
|
--------V-10D002-----------------------------
|
|
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"
|
|
--------V-10D003-----------------------------
|
|
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"
|
|
--------V-10D004-----------------------------
|
|
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"
|
|
--------V-10D005-----------------------------
|
|
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"
|
|
--------V-10D1-------------------------------
|
|
INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
|
|
AH = D1h
|
|
AL = 01h
|
|
Return: ???
|
|
Note: called by AH=D0h
|
|
SeeAlso: AH=D0h,AH=D4h
|
|
--------V-10D4-------------------------------
|
|
INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
|
|
AH = D4h
|
|
AL = 29h
|
|
Return: ???
|
|
Note: called by AH=D0h
|
|
SeeAlso: AH=D0h,AH=D1h
|
|
--------V-10D5-------------------------------
|
|
INT 10 - Netroom SCRNCLK - ???
|
|
AH = D5h
|
|
???
|
|
Return: ???
|
|
Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
|
|
--------t-10DAAD-----------------------------
|
|
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 Sofer
|
|
--------V-10DFA5-----------------------------
|
|
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=BFA0h
|
|
--------V-10EE-------------------------------
|
|
INT 10 - VIDEO - IBM "Private" Function
|
|
AH = EEh
|
|
SeeAlso: INT 13/AH=FFh"IBM"
|
|
--------V-10EF-------------------------------
|
|
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;MSHERC
|
|
--------V-10F0-------------------------------
|
|
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 3CAh
|
|
--------V-10F0-------------------------------
|
|
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"
|
|
--------V-10F1-------------------------------
|
|
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"
|
|
--------V-10F1-------------------------------
|
|
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"
|
|
--------V-10F2-------------------------------
|
|
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"
|
|
--------V-10F2-------------------------------
|
|
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"
|
|
--------V-10F3-------------------------------
|
|
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"
|
|
--------V-10F3-------------------------------
|
|
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"
|
|
--------V-10F4-------------------------------
|
|
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 value
|
|
--------V-10F4-------------------------------
|
|
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"
|
|
--------V-10F5-------------------------------
|
|
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"
|
|
--------V-10F5-------------------------------
|
|
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"
|
|
--------V-10F6-------------------------------
|
|
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"
|
|
--------V-10F6-------------------------------
|
|
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.SYS
|
|
--------V-10F7-------------------------------
|
|
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"
|
|
--------V-10FA--BX0000-----------------------
|
|
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=BC00h
|
|
--------K-10FA-------------------------------
|
|
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;FASTBUFF
|
|
--------V-10FE-------------------------------
|
|
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"
|
|
--------V-10FF-------------------------------
|
|
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=FEh
|
|
--------E-10FF-------------------------------
|
|
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;GO32
|
|
--------V-10FF-------------------------------
|
|
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
|
|
--------R-10FF00-----------------------------
|
|
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=FF02h
|
|
--------R-10FF01-----------------------------
|
|
INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
|
|
AX = FF01h
|
|
Return: nothing
|
|
SeeAlso: AX=FF00h,AX=FF02h
|
|
--------R-10FF02-----------------------------
|
|
INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
|
|
AX = FF02h
|
|
Return: ES:DI -> ASCIZ phone number
|
|
SeeAlso: AX=FF00h,AX=FF01h
|
|
--------C-11---------------------------------
|
|
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"
|
|
--------B-11---------------------------------
|
|
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"
|
|
--------d-11----SI6A6A-----------------------
|
|
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)
|
|
--------V-110225BX6900-----------------------
|
|
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-It
|
|
--------V-110225BX6901-----------------------
|
|
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-It
|
|
--------V-110225BX6902-----------------------
|
|
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-It
|
|
--------V-110225BX6903-----------------------
|
|
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-It
|
|
--------V-110225BX6904-----------------------
|
|
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-It
|
|
--------V-110225BX6905-----------------------
|
|
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-It
|
|
--------V-110225BX6906-----------------------
|
|
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-It
|
|
--------V-110225BX6907-----------------------
|
|
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-It
|
|
--------V-110225BX6908-----------------------
|
|
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-It
|
|
--------V-110225BX6909-----------------------
|
|
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: #00006
|
|
--------G-1105D7-----------------------------
|
|
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++ IDE
|
|
--------F-1177-------------------------------
|
|
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;SFENGINE
|
|
--------F-1178-------------------------------
|
|
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=7Ch
|
|
--------F-1179-------------------------------
|
|
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=7Ch
|
|
--------F-117A-------------------------------
|
|
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=7Ch
|
|
--------F-117C01-----------------------------
|
|
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=7C03h
|
|
--------F-117C02-----------------------------
|
|
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=7C03h
|
|
--------F-117C03-----------------------------
|
|
INT 11 - RainbowFAX v1.3 - SFENGINE API - UNSUPPORTED FUNCTIONS
|
|
AX = 7C03h-7CFFh
|
|
Return: AX = FFFFh
|
|
SeeAlso: AH=77h,AX=7C01h,AX=7C02h
|
|
--------S-11BC--DX1954-----------------------
|
|
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"
|
|
--------d-11FF--SI6A6A-----------------------
|
|
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 otherwise
|
|
--------T-11FFFECXFFFE-----------------------
|
|
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&FORTH
|
|
--------B-12---------------------------------
|
|
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:0013h
|
|
--------C-12---------------------------------
|
|
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 0000017Ah
|
|
--------K-12----CX1806-----------------------
|
|
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;KEYBUI
|
|
--------d-12----CX1807-----------------------
|
|
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
|
|
Zwiekhorst
|
|
--------G-1205D7BX05D7-----------------------
|
|
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=05D7h
|
|
--------v-124350BX4920-----------------------
|
|
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=0B56h
|
|
--------T-12FFFECXFFFE-----------------------
|
|
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,#00232
|
|
--------B-1300-------------------------------
|
|
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:003Eh
|
|
--------B-1301-------------------------------
|
|
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: #M0022
|
|
--------B-1302-------------------------------
|
|
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=02h
|
|
--------B-1303-------------------------------
|
|
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=03h
|
|
--------B-1304-------------------------------
|
|
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=06h
|
|
--------B-1305-------------------------------
|
|
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)
|
|
--------B-1305-------------------------------
|
|
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=1Ah
|
|
--------d-1305-------------------------------
|
|
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)
|
|
--------d-13057FSI324D-----------------------
|
|
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"
|
|
--------B-1306-------------------------------
|
|
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"
|
|
--------d-1306-------------------------------
|
|
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 index
|
|
--------d-1306-------------------------------
|
|
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=B102h
|
|
--------d-1306-------------------------------
|
|
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"
|
|
--------B-1307-------------------------------
|
|
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=1Ah
|
|
--------d-1307-------------------------------
|
|
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"
|
|
--------d-1307-------------------------------
|
|
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"
|
|
--------B-1308-------------------------------
|
|
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 Device
|
|
--------d-1308-------------------------------
|
|
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"
|
|
--------y-130800DLF0-------------------------
|
|
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.
|
|
--------B-1309-------------------------------
|
|
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"
|
|
--------B-130A-------------------------------
|
|
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:0074h
|
|
--------B-130B-------------------------------
|
|
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:0074h
|
|
--------B-130C-------------------------------
|
|
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=47h
|
|
--------B-130D-------------------------------
|
|
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=0Dh
|
|
--------B-130E-------------------------------
|
|
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=0Ah
|
|
--------B-130F-------------------------------
|
|
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=0Bh
|
|
--------B-1310-------------------------------
|
|
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=11h
|
|
--------B-1311-------------------------------
|
|
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:003Eh
|
|
--------B-1312-------------------------------
|
|
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=14h
|
|
--------d-1312-------------------------------
|
|
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)
|
|
--------d-1312-------------------------------
|
|
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"
|
|
--------B-1313-------------------------------
|
|
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"
|
|
--------d-1313-------------------------------
|
|
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"
|
|
--------B-1314-------------------------------
|
|
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=13h
|
|
--------B-1315-------------------------------
|
|
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:0075h
|
|
--------B-1316-------------------------------
|
|
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=49h
|
|
--------B-1317-------------------------------
|
|
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=18h
|
|
--------d-131700-----------------------------
|
|
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 supported
|
|
--------B-1318-------------------------------
|
|
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 1E
|
|
--------d-1318-------------------------------
|
|
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)
|
|
--------d-1318--CX5055-----------------------
|
|
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"
|
|
--------d-1318--CXD2C9-----------------------
|
|
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.
|
|
--------B-1319-------------------------------
|
|
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=11h
|
|
--------d-1319-------------------------------
|
|
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=8100h
|
|
--------d-131A-------------------------------
|
|
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 cylinder
|
|
--------d-131A-------------------------------
|
|
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"
|
|
--------d-131B-------------------------------
|
|
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 map
|
|
--------d-131B-------------------------------
|
|
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 present
|
|
--------d-131C-------------------------------
|
|
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"
|
|
--------d-131C-------------------------------
|
|
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"
|
|
--------d-131C08-----------------------------
|
|
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: #00257
|
|
--------d-131C09-----------------------------
|
|
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 codes
|
|
--------d-131C0A-----------------------------
|
|
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 track
|
|
--------d-131C0B-----------------------------
|
|
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)
|
|
--------d-131C0C-----------------------------
|
|
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)
|
|
--------d-131C0D-----------------------------
|
|
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"
|
|
--------d-131C0E-----------------------------
|
|
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"
|
|
--------d-131C0F-----------------------------
|
|
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"
|
|
--------d-131C12-----------------------------
|
|
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"
|
|
--------c-131D-------------------------------
|
|
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 error
|
|
--------d-131F-------------------------------
|
|
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"
|
|
--------d-1320-------------------------------
|
|
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 cases
|
|
--------b-1320-------------------------------
|
|
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 Device
|
|
--------c-1320-------------------------------
|
|
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=28h
|
|
--------d-1321-------------------------------
|
|
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"
|
|
--------c-1321-------------------------------
|
|
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=2Fh
|
|
--------d-1322-------------------------------
|
|
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"
|
|
--------c-1322-------------------------------
|
|
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=A4h
|
|
--------d-1323-------------------------------
|
|
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: #P0535
|
|
--------c-1323-------------------------------
|
|
INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
|
|
AH = 23h
|
|
Return: AX = status (0000h successful)
|
|
ES = segment of ??? data
|
|
--------d-1324-------------------------------
|
|
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"
|
|
--------c-1324-------------------------------
|
|
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=36h
|
|
--------d-1325-------------------------------
|
|
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)
|
|
--------c-1325-------------------------------
|
|
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=2Eh
|
|
--------c-1326-------------------------------
|
|
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=27h
|
|
--------c-1327--BX0000-----------------------
|
|
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=1111h
|
|
--------c-1328-------------------------------
|
|
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"
|
|
--------c-1329-------------------------------
|
|
INT 13 U - QUICKCACHE II v4.20 - NOP
|
|
AH = 29h
|
|
Return: AX = 0000h
|
|
--------c-132A-------------------------------
|
|
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=3Ah
|
|
--------c-132B-------------------------------
|
|
INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
|
|
AH = 2Bh
|
|
AL = new state (00h disabled, 01h enabled)
|
|
Return: AX = status (0000h successful)
|
|
--------c-132C-------------------------------
|
|
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=38h
|
|
--------c-132D-------------------------------
|
|
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=37h
|
|
--------c-132E-------------------------------
|
|
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=2Ch
|
|
--------c-132F-------------------------------
|
|
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"
|
|
--------c-1330-------------------------------
|
|
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: #00269
|
|
--------c-1331-------------------------------
|
|
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)
|
|
--------c-1332-------------------------------
|
|
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=33h
|
|
--------c-1333-------------------------------
|
|
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=32h
|
|
--------c-1334-------------------------------
|
|
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=35h
|
|
--------c-1335-------------------------------
|
|
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=34h
|
|
--------c-1336-------------------------------
|
|
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"
|
|
--------c-1337-------------------------------
|
|
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=38h
|
|
--------c-1338-------------------------------
|
|
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=37h
|
|
--------c-1339-------------------------------
|
|
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=3Ah
|
|
--------c-133A-------------------------------
|
|
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=39h
|
|
--------c-133B-------------------------------
|
|
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=3Ch
|
|
--------c-133C-------------------------------
|
|
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=3Bh
|
|
--------c-133D-------------------------------
|
|
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)
|
|
--------c-133E-------------------------------
|
|
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 longer
|
|
--------c-133F-------------------------------
|
|
INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
|
|
AH = 3Fh
|
|
AL = new value for bonus threshold
|
|
Return: AX = status (0000h successful)
|
|
--------c-1340-------------------------------
|
|
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"
|
|
--------d-1341--BX55AA-----------------------
|
|
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)
|
|
--------c-1341-------------------------------
|
|
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"
|
|
--------d-1342-------------------------------
|
|
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:FFFFh
|
|
--------N-134257DX1234-----------------------
|
|
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"
|
|
--------d-1343-------------------------------
|
|
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=44h
|
|
--------d-1344-------------------------------
|
|
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=47h
|
|
--------d-1345-------------------------------
|
|
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"
|
|
--------d-1346-------------------------------
|
|
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"
|
|
--------d-1347-------------------------------
|
|
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"
|
|
--------d-1348-------------------------------
|
|
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
|
|
--------d-1349-------------------------------
|
|
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=46h
|
|
--------d-134A-------------------------------
|
|
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: #00281
|
|
--------d-134B00-----------------------------
|
|
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=4Dh
|
|
--------d-134B01-----------------------------
|
|
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=4Dh
|
|
--------d-134C-------------------------------
|
|
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=4Dh
|
|
--------d-134D00-----------------------------
|
|
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: #00281
|
|
--------d-134E-------------------------------
|
|
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"
|
|
--------d-135001-----------------------------
|
|
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 data
|
|
--------v-135001------------------------
|
|
INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK
|
|
AX = 5001h
|
|
Return: AX = 0150h if resident
|
|
SeeAlso: AX=FD50h"VIRUS",INT 21/AX=0B56h
|
|
--------v-135342CX0001-----------------------
|
|
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
|
|
--------d-135501-----------------------------
|
|
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 command
|
|
--------d-135502-----------------------------
|
|
INT 13 - Seagate ST01/ST02 - RESERVED
|
|
AX = 5502h
|
|
--------d-135503-----------------------------
|
|
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 present
|
|
--------d-135504-----------------------------
|
|
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=5514h
|
|
--------d-135504-----------------------------
|
|
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)
|
|
--------d-135505-----------------------------
|
|
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=5515h
|
|
--------d-135505-----------------------------
|
|
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: nothing
|
|
--------d-135506-----------------------------
|
|
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 enabled
|
|
--------d-135507-----------------------------
|
|
INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
|
|
AX = 5507h to 550Dh
|
|
Note: officially listed as "reserved"
|
|
--------d-135514-----------------------------
|
|
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=5515h
|
|
--------d-135515-----------------------------
|
|
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=5505h
|
|
--------d-1359-------------------------------
|
|
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: #00286
|
|
--------d-1370-------------------------------
|
|
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=ADh
|
|
----------1375-------------------------------
|
|
INT 13 - ???
|
|
AH = 75h
|
|
???
|
|
Return: AH = ???
|
|
???
|
|
Note: intercepted by PC-Cache (v5.1 only)
|
|
----------1376-------------------------------
|
|
INT 13 - ???
|
|
AH = 76h
|
|
???
|
|
Return: AH = ???
|
|
???
|
|
Note: intercepted by PC-Cache (v5.1 only)
|
|
--------c-137B00-----------------------------
|
|
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 ???
|
|
--------c-137B01-----------------------------
|
|
INT 13 - NOW! v3.05 - ???
|
|
AX = 7B01h
|
|
Return: DX = segment of ???
|
|
SeeAlso: AX=7B00h
|
|
--------c-137B02-----------------------------
|
|
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=7B00h
|
|
--------c-137B03-----------------------------
|
|
INT 13 - NOW! v3.05 - ???
|
|
AX = 7B03h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AX=7B00h,AX=7B04h
|
|
--------c-137B04-----------------------------
|
|
INT 13 - NOW! v3.05 - ???
|
|
AX = 7B04h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AX=7B03h
|
|
--------c-137B05-----------------------------
|
|
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=7B06h
|
|
--------c-137B06-----------------------------
|
|
INT 13 - NOW! v3.05 - GET ???
|
|
AX = 7B06h
|
|
BX = ???
|
|
Return: AX = 0000h
|
|
BX = ???
|
|
SeeAlso: AX=7B05h,AX=7B07h
|
|
--------c-137B07-----------------------------
|
|
INT 13 - NOW! v3.05 - GET ???
|
|
AX = 7B07h
|
|
Return: AX = ???
|
|
BX = ???
|
|
CX = ???
|
|
DX = ???
|
|
SeeAlso: AX=7B06h
|
|
--------c-137B08-----------------------------
|
|
INT 13 - NOW! v3.05 - ???
|
|
AX = 7B08h
|
|
CX = ??? (default 00h)
|
|
Return: ???
|
|
SeeAlso: AX=7B00h
|
|
--------c-1380--CX6572-----------------------
|
|
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 15h
|
|
--------c-138001CX6572-----------------------
|
|
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 ???
|
|
--------c-138006CX6572-----------------------
|
|
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)
|
|
--------c-138007CX6572-----------------------
|
|
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)
|
|
--------c-1381--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1382--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1383--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1384--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1385--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1386--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1387--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1388--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-1389--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 89h
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-138A--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 8Ah
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-138EED-----------------------------
|
|
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=DF00h
|
|
--------c-138EEE-----------------------------
|
|
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=EEh
|
|
--------c-138EEF-----------------------------
|
|
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=EEh
|
|
--------c-1392--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 92h
|
|
SI = 4358h
|
|
???
|
|
Return: AH = status??? (00h)
|
|
DL = ???
|
|
SeeAlso: AH=93h
|
|
--------c-1393--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 93h
|
|
SI = 4358h
|
|
???
|
|
Return: AH = status??? (00h)
|
|
AL = ???
|
|
SeeAlso: AH=92h
|
|
--------c-1394--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 94h
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-1395--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 95h
|
|
SI = 4358h
|
|
???
|
|
Return: AH = status??? (00h)
|
|
DX = ???
|
|
--------c-1396--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 96h
|
|
SI = 4358h
|
|
AL = ??? (01h)
|
|
BX = ??? (0790h)
|
|
DL = ???
|
|
Return: AH = status??? (00h)
|
|
DX = ???
|
|
--------c-1397--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 97h
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-1398--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 98h
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-1399--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 99h
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-139A--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 9Ah
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-139B--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 9Bh
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-139C--SI4358-----------------------
|
|
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 progress
|
|
--------c-139D--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = 9Dh
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-13A0--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-13A1--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-13A2--SI4358-----------------------
|
|
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 Qcache
|
|
--------c-13A3--SI4358-----------------------
|
|
INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
|
|
AH = A3h
|
|
SI = 4358h
|
|
Return: CF clear
|
|
SeeAlso: AH=A4h
|
|
--------c-13A4--SI4358-----------------------
|
|
INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
|
|
AH = A4h
|
|
SI = 4358h
|
|
Return: CF clear
|
|
SeeAlso: AH=A3h
|
|
--------c-13A5--SI4358-----------------------
|
|
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=4Ch
|
|
--------c-13A6--SI4358-----------------------
|
|
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=4Bh
|
|
--------c-13A7--SI4358-----------------------
|
|
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=A8h
|
|
--------v-13A759-----------------------------
|
|
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=ADh
|
|
--------c-13A8--SI4358-----------------------
|
|
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=A7h
|
|
--------c-13A9--SI4358-----------------------
|
|
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=4Dh
|
|
--------c-13AA--SI4358-----------------------
|
|
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 call
|
|
--------c-13AB--SI4358-----------------------
|
|
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 call
|
|
--------c-13AC--SI4358-----------------------
|
|
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 call
|
|
--------d-13AD-------------------------------
|
|
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=70h
|
|
--------c-13AD--SI4358-----------------------
|
|
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 call
|
|
--------c-13AE--SI4358-----------------------
|
|
INT 13 - Super PC-Kwik v5.10+ - ???
|
|
AH = AEh
|
|
SI = 4358h
|
|
???
|
|
Return: ???
|
|
--------c-13B0--SI4358-----------------------
|
|
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-Cache
|
|
----------13BF00-----------------------------
|
|
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 8Fh
|
|
--------d-13E000-----------------------------
|
|
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: #00298
|
|
--------v-13EC00-----------------------------
|
|
INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK
|
|
AX = EC00h
|
|
Return: CF clear if installed
|
|
SeeAlso: AH=F2h,INT 12/AX=4350h/BX=4920h
|
|
--------d-13EE-------------------------------
|
|
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 Manager
|
|
--------c-13EF-------------------------------
|
|
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=7B00h
|
|
--------v-13F2-------------------------------
|
|
INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK
|
|
AH = F2h
|
|
Return: CF ??? if installed
|
|
SeeAlso: AX=EC00h,INT 12/AX=4350h/BX=4920h,INT 21/AX=0B56h
|
|
--------d-13F9-------------------------------
|
|
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 Manager
|
|
--------v-13FA--DX5945-----------------------
|
|
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=FA00h
|
|
--------v-13FD50------------------------
|
|
INT 13 - VIRUS - "Predator" - INSTALLATION CHECK
|
|
AX = FD50h
|
|
Return: AX = 50FDh if resident
|
|
SeeAlso: AX=5001h"VIRUS",INT 16/AH=DDh"VIRUS"
|
|
--------d-13FE-------------------------------
|
|
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=EEh
|
|
----------13FF-------------------------------
|
|
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"
|
|
--------B-13FF-------------------------------
|
|
INT 13 - IBM SurePath BIOS - Officially "Private" Function
|
|
AH = FFh
|
|
--------U-13FFFFBHAA-------------------------
|
|
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 Utility
|
|
--------S-14---------------------------------
|
|
INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
|
|
InstallCheck: determine whether the "~DOSXAM~" character device exists
|
|
Index: installation check;Digiboard DigiCHANNEL
|
|
--------S-1400-------------------------------
|
|
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,#00309
|
|
--------S-1400-------------------------------
|
|
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 empty
|
|
--------S-1400-------------------------------
|
|
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"
|
|
--------S-1400-------------------------------
|
|
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: #00300
|
|
--------N-1400--DXFFFF-----------------------
|
|
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 available
|
|
--------S-1401-------------------------------
|
|
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:007Ch
|
|
--------N-1401--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-1402-------------------------------
|
|
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=FCh
|
|
--------S-1402-------------------------------
|
|
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"
|
|
--------N-1402--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-1403-------------------------------
|
|
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 send
|
|
--------N-1403--DXFFFF-----------------------
|
|
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)
|
|
--------S-1404-------------------------------
|
|
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,#02923
|
|
--------S-1404-------------------------------
|
|
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"
|
|
--------S-1404-------------------------------
|
|
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;FOSSIL
|
|
--------S-1404-------------------------------
|
|
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"
|
|
--------S-1404-------------------------------
|
|
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,#00308
|
|
--------S-1404-------------------------------
|
|
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"
|
|
--------N-1404--DXFFFF-----------------------
|
|
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: #00313
|
|
--------S-140400-----------------------------
|
|
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INSTALLATION CHECK
|
|
AX = 0400h
|
|
Return: AX = 0FF0h
|
|
SeeAlso: AX=0401h,AX=0408h
|
|
--------S-140401-----------------------------
|
|
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INITIALIZE MODE
|
|
AX = 0401h
|
|
CX = mode
|
|
Return: nothing
|
|
SeeAlso: AX=0400h,AX=0402h
|
|
--------S-140402-----------------------------
|
|
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE
|
|
AX = 0402h
|
|
CL = parameters
|
|
Return: nothing
|
|
SeeAlso: AX=0400h,AX=0401h
|
|
--------S-140403-----------------------------
|
|
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT
|
|
AX = 0403h
|
|
CX = timeout
|
|
Return: nothing
|
|
SeeAlso: AX=0400h
|
|
--------S-140404-----------------------------
|
|
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER
|
|
AX = 0404h
|
|
Return: nothing
|
|
SeeAlso: AX=0400h,AX=0405h,AX=0406h
|
|
--------S-140405-----------------------------
|
|
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=0407h
|
|
--------S-140406-----------------------------
|
|
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE TRANSMIT BUFFER
|
|
AX = 0406h
|
|
Return: nothing
|
|
SeeAlso: AX=0400h,AX=0404h,AX=0407h
|
|
--------S-140407-----------------------------
|
|
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=0406h
|
|
--------S-140408-----------------------------
|
|
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - UNINSTALL
|
|
AX = 0408h
|
|
Return: nothing
|
|
SeeAlso: AX=0400h
|
|
--------S-1405-------------------------------
|
|
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 reserved
|
|
--------S-1405-------------------------------
|
|
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=8Dh
|
|
--------S-1405-------------------------------
|
|
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"
|
|
--------S-1405-------------------------------
|
|
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/XOFF
|
|
--------S-1405-------------------------------
|
|
INT 14 - MBBIOS - DROP DTR AND RTS
|
|
AH = 05h
|
|
DX = port number
|
|
Return: none
|
|
SeeAlso: AH=00h"MBBIOS",AH=06h"MBBIOS",AH=06h"FOSSIL"
|
|
--------S-1405-------------------------------
|
|
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/CTS
|
|
----------1405-------------------------------
|
|
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
|
|
--------N-1405--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-1406-------------------------------
|
|
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=1Ah
|
|
--------S-1406-------------------------------
|
|
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"
|
|
--------S-1406-------------------------------
|
|
INT 14 - MBBIOS - RAISE DTR AND RTS
|
|
AH = 06h
|
|
DX = port number
|
|
Return: none
|
|
SeeAlso: AH=05h"MBBIOS",AH=07h"MBBIOS"
|
|
--------S-1406-------------------------------
|
|
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"
|
|
--------N-1406-------------------------------
|
|
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"
|
|
----------1406-------------------------------
|
|
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=E909h
|
|
--------N-1406--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-1407-------------------------------
|
|
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=16h
|
|
--------S-1407-------------------------------
|
|
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"
|
|
--------S-1407-------------------------------
|
|
INT 14 - MBBIOS - SEND BREAK
|
|
AH = 07h
|
|
DX = port number
|
|
Return: none
|
|
SeeAlso: AH=06h"MBBIOS",AH=FAh"EBIOS"
|
|
--------S-1407-------------------------------
|
|
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: nothing
|
|
--------N-1407-------------------------------
|
|
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"
|
|
--------N-1407--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-1408-------------------------------
|
|
INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE
|
|
AH = 08h
|
|
DX = port number
|
|
Return: nothing
|
|
SeeAlso: AH=09h"FOSSIL"
|
|
--------S-1408-------------------------------
|
|
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"
|
|
--------S-1408-------------------------------
|
|
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"
|
|
--------S-1408-------------------------------
|
|
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"
|
|
--------S-1408-------------------------------
|
|
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 dequeued
|
|
--------N-1408--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-1409-------------------------------
|
|
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=88h
|
|
--------S-1409-------------------------------
|
|
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"
|
|
--------S-1409-------------------------------
|
|
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"
|
|
--------S-1409-------------------------------
|
|
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 reserved
|
|
--------S-1409-------------------------------
|
|
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"
|
|
--------N-1409--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-140A-------------------------------
|
|
INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT
|
|
AH = 0Ah
|
|
DX = port number
|
|
Return: nothing
|
|
SeeAlso: AH=09h"FOSSIL",AH=85h
|
|
--------S-140A-------------------------------
|
|
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"
|
|
--------S-140A-------------------------------
|
|
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 buffer
|
|
--------N-140A--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-140B-------------------------------
|
|
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=01h
|
|
--------S-140B-------------------------------
|
|
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"
|
|
--------N-140B--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-140C-------------------------------
|
|
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"
|
|
--------S-140C-------------------------------
|
|
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"
|
|
--------N-140C--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-140D-------------------------------
|
|
INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
|
|
AH = 0Dh
|
|
Return: AX = result
|
|
FFFFh character not available
|
|
xxyyh standard IBM-style scan code
|
|
SeeAlso: AH=0Eh
|
|
--------S-140D-------------------------------
|
|
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 available
|
|
--------S-140D-------------------------------
|
|
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"
|
|
--------N-140D--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-140D00-----------------------------
|
|
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"
|
|
--------S-140D01-----------------------------
|
|
INT 14 - MBBIOS - LOWER ALL MODEM CONTROL SIGNALS
|
|
AX = 0D01h
|
|
Return: nothing
|
|
Note: this function lowers DTR, RTS, etc.
|
|
SeeAlso: AX=0D02h
|
|
--------S-140D02-----------------------------
|
|
INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS
|
|
AX = 0D02h
|
|
Return: nothing
|
|
Note: this function raises DTR, RTS, etc.
|
|
SeeAlso: AX=0D01h
|
|
--------S-140D03-----------------------------
|
|
INT 14 - MBBIOS - SET HANDSHAKE BYTE
|
|
AX = 0D03h
|
|
CL = new handshake byte
|
|
Return: CL = previous handshake byte
|
|
Note: this function lowers DTR, RTS, etc.
|
|
--------S-140E-------------------------------
|
|
INT 14 - FOSSIL - KEYBOARD READ WITH WAIT
|
|
AH = 0Eh
|
|
Return: AX = xxyyh standard IBM-style scan code
|
|
SeeAlso: AH=0Dh"FOSSIL"
|
|
--------S-140E-------------------------------
|
|
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"
|
|
--------S-140E-------------------------------
|
|
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"
|
|
--------N-140E--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-140F-------------------------------
|
|
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 1
|
|
--------S-140F-------------------------------
|
|
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"
|
|
--------S-140F-------------------------------
|
|
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"
|
|
--------N-140F--DXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-1410-------------------------------
|
|
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"
|
|
--------S-1410-------------------------------
|
|
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"
|
|
--------S-1410-------------------------------
|
|
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"
|
|
--------N-1410--DXFFFF-----------------------
|
|
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 character
|
|
--------S-1411-------------------------------
|
|
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"
|
|
--------S-1411-------------------------------
|
|
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"
|
|
--------S-1411-------------------------------
|
|
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"
|
|
--------S-1412-------------------------------
|
|
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"
|
|
--------S-1412-------------------------------
|
|
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"
|
|
--------S-1412-------------------------------
|
|
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 none
|
|
--------S-1413-------------------------------
|
|
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=15h
|
|
--------S-1413-------------------------------
|
|
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"
|
|
--------S-1414-------------------------------
|
|
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"
|
|
--------S-1414-------------------------------
|
|
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"
|
|
--------S-1414-------------------------------
|
|
INT 14 - Digiboard - GET NUMBER OF BOARDS INSTALLED
|
|
AH = 14h
|
|
Return: AX = number of boards installed
|
|
SeeAlso: AH=08h"Digiboard",AH=15h"Digiboard"
|
|
--------S-1415-------------------------------
|
|
INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES
|
|
AH = 15h
|
|
AL = character
|
|
Return: nothing
|
|
SeeAlso: AH=13h"FOSSIL"
|
|
--------S-1415-------------------------------
|
|
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"
|
|
--------S-1415-------------------------------
|
|
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"
|
|
--------S-1416-------------------------------
|
|
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"
|
|
--------S-1416-------------------------------
|
|
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.
|
|
--------S-1416-------------------------------
|
|
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 Enable
|
|
--------S-141646-----------------------------
|
|
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=1647h
|
|
--------S-141647-----------------------------
|
|
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=1649h
|
|
--------S-141649-----------------------------
|
|
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=1647h
|
|
--------S-14164A-----------------------------
|
|
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=164Bh
|
|
--------S-14164B-----------------------------
|
|
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=164Ch
|
|
--------S-14164C-----------------------------
|
|
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=164Dh
|
|
--------S-14164D-----------------------------
|
|
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=164Fh
|
|
--------S-14164E-----------------------------
|
|
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=164Dh
|
|
--------S-14164F-----------------------------
|
|
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=164Dh
|
|
--------S-141653-----------------------------
|
|
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=1646h
|
|
--------S-1417-------------------------------
|
|
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=0606h
|
|
--------S-1417-------------------------------
|
|
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: nothing
|
|
--------S-1418-------------------------------
|
|
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=0100h
|
|
--------S-1418-------------------------------
|
|
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"
|
|
--------S-1418-------------------------------
|
|
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"
|
|
--------S-1419-------------------------------
|
|
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=0000h
|
|
--------S-1419-------------------------------
|
|
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"
|
|
--------S-1419-------------------------------
|
|
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"
|
|
--------S-141A-------------------------------
|
|
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=FAh
|
|
--------S-141A-------------------------------
|
|
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 character
|
|
--------S-141B-------------------------------
|
|
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
|
|
--------S-141C-------------------------------
|
|
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=1Dh
|
|
--------S-141D-------------------------------
|
|
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=1Ch
|
|
--------S-141E-------------------------------
|
|
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,#00345
|
|
--------S-141E------------------------------------
|
|
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 enabled
|
|
--------S-141F-------------------------------
|
|
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 reserved
|
|
--------S-1420-------------------------------
|
|
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"
|
|
--------S-1420-------------------------------
|
|
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"
|
|
--------S-1420-------------------------------
|
|
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"
|
|
--------S-1420-------------------------------
|
|
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"
|
|
--------S-1420------------------------------------
|
|
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"
|
|
--------S-1421-------------------------------
|
|
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"
|
|
--------S-1421-------------------------------
|
|
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"
|
|
--------S-1421-------------------------------
|
|
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 out
|
|
--------S-1421-------------------------------
|
|
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"
|
|
--------S-1421------------------------------------
|
|
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"
|
|
--------S-1422-------------------------------
|
|
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"
|
|
--------S-1422-------------------------------
|
|
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=27h
|
|
--------S-1422-------------------------------
|
|
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"
|
|
--------S-1422------------------------------------
|
|
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"
|
|
--------S-1423-------------------------------
|
|
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 free
|
|
--------S-1423-------------------------------
|
|
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"
|
|
--------S-1423-------------------------------
|
|
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"
|
|
--------S-1423------------------------------------
|
|
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"
|
|
--------S-1424-------------------------------
|
|
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: #00309
|
|
--------S-1424-------------------------------
|
|
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=25h
|
|
--------S-1424-------------------------------
|
|
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.
|
|
--------S-1424------------------------------------
|
|
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"
|
|
--------S-1425-------------------------------
|
|
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"
|
|
--------S-1425------------------------------------
|
|
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"
|
|
--------S-1426------------------------------------
|
|
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 Hunter
|
|
--------S-1427-------------------------------
|
|
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 buffer
|
|
--------S-1427------------------------------------
|
|
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"
|
|
--------S-1428------------------------------------
|
|
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"
|
|
--------S-1429------------------------------------
|
|
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"
|
|
--------S-142A------------------------------------
|
|
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"
|
|
--------S-142B------------------------------------
|
|
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"
|
|
--------S-142C00----------------------------------
|
|
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"
|
|
--------S-142C------------------------------------
|
|
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=2C00h
|
|
--------N-1436-------------------------------
|
|
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
|
|
--------t-144000-----------------------------
|
|
INT 14 - I1541 - INSTALLATION CHECK
|
|
AX = 4000h
|
|
Return: AX = 1541h if installed
|
|
BH = I1541 major version (BCD)
|
|
BL = I1541 minor version (BCD)
|
|
CX = 0000h
|
|
--------t-144001-----------------------------
|
|
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=4000h
|
|
--------t-144002-----------------------------
|
|
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=4001h
|
|
--------t-144003-----------------------------
|
|
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=4004h
|
|
--------t-144004-----------------------------
|
|
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 error
|
|
--------t-144005-----------------------------
|
|
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 number
|
|
--------t-144006-----------------------------
|
|
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=4005h
|
|
--------t-144007-----------------------------
|
|
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=4009h
|
|
--------t-144008-----------------------------
|
|
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=4009h
|
|
--------t-144009-----------------------------
|
|
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=4008h
|
|
--------t-14400A-----------------------------
|
|
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=400Bh
|
|
--------t-14400B-----------------------------
|
|
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=400Ah
|
|
--------t-14400C-----------------------------
|
|
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=400Dh
|
|
--------t-14400D-----------------------------
|
|
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=400Ch
|
|
--------t-14400E-----------------------------
|
|
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=4000h
|
|
--------S-1456-------------------------------
|
|
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=5445h
|
|
--------S-1457-------------------------------
|
|
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=58h
|
|
--------S-1458-------------------------------
|
|
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=57h
|
|
--------N-146F--BXFFFE-----------------------
|
|
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 network
|
|
--------N-146F--BXFFFF-----------------------
|
|
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=FFFFh
|
|
--------S-146F00-----------------------------
|
|
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
|
|
--------S-146F01-----------------------------
|
|
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 undefined
|
|
--------S-146F02-----------------------------
|
|
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=6F02h
|
|
--------S-146F03-----------------------------
|
|
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=6F04h
|
|
--------S-146F04-----------------------------
|
|
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=6F03h
|
|
--------U-147000-----------------------------
|
|
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
|
|
--------S-147E-------------------------------
|
|
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"
|
|
--------S-147F-------------------------------
|
|
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=7Eh
|
|
--------S-1480-------------------------------
|
|
INT 14 - COMMUNICATIONS FOSSIL
|
|
AH = 80h
|
|
SeeAlso: AH=7Eh
|
|
--------S-1480-------------------------------
|
|
INT 14 - COURIERS.COM - INSTALLATION CHECK
|
|
AH = 80h
|
|
Return: AH = E8h if loaded
|
|
Program: COURIERS is a TSR utility by PC Magazine
|
|
--------S-148000-----------------------------
|
|
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=8002h
|
|
--------S-148000-----------------------------
|
|
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)
|
|
--------S-148001-----------------------------
|
|
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;ARTICOM
|
|
--------S-148001-----------------------------
|
|
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"
|
|
--------S-148002-----------------------------
|
|
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 found
|
|
--------S-148002-----------------------------
|
|
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"
|
|
--------S-148003-----------------------------
|
|
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"
|
|
--------S-148003-----------------------------
|
|
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"
|
|
--------S-148004-----------------------------
|
|
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)
|
|
--------S-148005-----------------------------
|
|
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=8004h
|
|
--------S-148006-----------------------------
|
|
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 modem
|
|
--------S-148007-----------------------------
|
|
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: #00309
|
|
--------S-148008-----------------------------
|
|
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 found
|
|
--------S-148009-----------------------------
|
|
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=800Ah
|
|
--------S-14800A-----------------------------
|
|
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=8009h
|
|
--------S-148025-----------------------------
|
|
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)
|
|
--------S-148035-----------------------------
|
|
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=35h
|
|
--------S-1481-------------------------------
|
|
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=8Dh
|
|
--------S-1481-------------------------------
|
|
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 spares
|
|
--------V-148100-----------------------------
|
|
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 supported
|
|
--------V-148101-----------------------------
|
|
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 screen
|
|
--------V-148102-----------------------------
|
|
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=8103h
|
|
--------V-148103-----------------------------
|
|
INT 14 - VIDEO FOSSIL - UNINSTALL
|
|
AX = 8103h
|
|
Return: AX = 1954h
|
|
Note: this is an extension to the VFOSSIL spec by Bob Hartman's VFOS_IBM
|
|
--------K-1482-------------------------------
|
|
INT 14 - KEYBOARD FOSSIL
|
|
AH = 82h
|
|
SeeAlso: AH=7Eh
|
|
--------S-1482-------------------------------
|
|
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"
|
|
--------S-1482-------------------------------
|
|
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"
|
|
----------1483-------------------------------
|
|
INT 14 - SYSTEM FOSSIL
|
|
AH = 83h
|
|
SeeAlso: AH=7Eh
|
|
--------S-1483-------------------------------
|
|
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"
|
|
--------S-1483-------------------------------
|
|
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"
|
|
--------S-1484-------------------------------
|
|
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=89h
|
|
--------S-1484-------------------------------
|
|
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"
|
|
--------S-1485-------------------------------
|
|
INT 14 - COURIERS.COM - FLUSH PENDING INPUT
|
|
AH = 85h
|
|
Return: nothing
|
|
SeeAlso: AH=0Ah,AH=88h"COURIERS"
|
|
--------S-1485-------------------------------
|
|
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"
|
|
--------S-1486-------------------------------
|
|
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"
|
|
--------S-1486-------------------------------
|
|
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"
|
|
--------S-1487-------------------------------
|
|
INT 14 - COURIERS.COM - OUTPUT STATUS
|
|
AH = 87h
|
|
Return: AX = number of unsent characters
|
|
SeeAlso: AH=88h"COURIERS"
|
|
--------S-1487-------------------------------
|
|
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"
|
|
--------S-1488-------------------------------
|
|
INT 14 - COURIERS.COM - ABORT OUTPUT
|
|
AH = 88h
|
|
SeeAlso: AH=09h"FOSSIL",AH=85h"COURIERS"
|
|
--------S-1488-------------------------------
|
|
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"
|
|
--------S-1489-------------------------------
|
|
INT 14 - COURIERS.COM - SEND SINGLE CHARACTER
|
|
AH = 89h
|
|
CL = character to send
|
|
Return: nothing
|
|
SeeAlso: AH=01h,AH=84h"COURIERS"
|
|
--------S-1489-------------------------------
|
|
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"
|
|
--------S-148A-------------------------------
|
|
INT 14 - COURIERS.COM - SEND BREAK
|
|
AH = 8Ah
|
|
Return: nothing
|
|
SeeAlso: AH=89h"COURIERS",AH=FAh
|
|
--------S-148A-------------------------------
|
|
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"
|
|
--------S-148B-------------------------------
|
|
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 error
|
|
--------S-148C-------------------------------
|
|
INT 14 - COURIERS.COM - SET SPEED
|
|
AH = 8Ch
|
|
BX = speed in bps
|
|
Return: nothing
|
|
SeeAlso: AH=00h,AH=82h"COURIERS"
|
|
--------S-148C-------------------------------
|
|
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"
|
|
--------S-148D-------------------------------
|
|
INT 14 - COURIERS.COM - DECONFIGURE PORT
|
|
AH = 8Dh
|
|
Return: nothing
|
|
SeeAlso: AH=82h"COURIERS"
|
|
--------S-148D-------------------------------
|
|
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"
|
|
--------S-148E-------------------------------
|
|
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"
|
|
--------S-14A0-------------------------------
|
|
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 address
|
|
--------S-14A0--CXFFFF-----------------------
|
|
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"
|
|
--------S-14A1-------------------------------
|
|
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"
|
|
--------S-14A1-------------------------------
|
|
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 name
|
|
--------S-14A2-------------------------------
|
|
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"
|
|
--------S-14A2-------------------------------
|
|
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"
|
|
--------S-14A3-------------------------------
|
|
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"
|
|
--------S-14A3-------------------------------
|
|
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"
|
|
--------S-14A4-------------------------------
|
|
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"
|
|
--------S-14A4-------------------------------
|
|
INT 14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION
|
|
AH = A4h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AH=A3h"TES",AH=A5h"TES"
|
|
--------S-14A5-------------------------------
|
|
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=FF02h
|
|
--------S-14A5-------------------------------
|
|
INT 14 - Interconnections Inc. TES - RESUME A SESSION
|
|
AH = A5h
|
|
AL = session number
|
|
Return: ???
|
|
SeeAlso: AH=A4h"TES",AH=A6h"TES"
|
|
--------S-14A6-------------------------------
|
|
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"
|
|
--------S-14A6-------------------------------
|
|
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"
|
|
--------S-14A7-------------------------------
|
|
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"
|
|
--------S-14A7-------------------------------
|
|
INT 14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION
|
|
AH = A7h
|
|
???
|
|
Return: ???
|
|
SeeAlso: AH=A3h"TES",AH=A5h"TES"
|
|
--------S-14A8-------------------------------
|
|
INT 14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER
|
|
AH = A8h
|
|
AL = 00h no visible response
|
|
ES:SI -> ASCIZ command
|
|
Return: ???
|
|
--------N-14A8-------------------------------
|
|
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"
|
|
--------N-14A9-------------------------------
|
|
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=0600h
|
|
--------V-14AA01-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA02-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA03-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA04-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA05-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA06-----------------------------
|
|
INT 14 - DimVGA v2.0+ - DISABLE
|
|
AX = AA06h
|
|
Return: AX = FFFFh
|
|
SeeAlso: AX=AA01h,AX=AA07h,AX=AA0Ah
|
|
Index: screen saver;DimVGA
|
|
--------V-14AA07-----------------------------
|
|
INT 14 - DimVGA v2.0+ - ENABLE
|
|
AX = AA07h
|
|
Return: AX = FFFFh
|
|
SeeAlso: AX=AA01h,AX=AA06h,AX=AA0Ah
|
|
Index: screen saver;DimVGA
|
|
--------V-14AA08-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA09-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA0A-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA0B-----------------------------
|
|
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 pressed
|
|
--------V-14AA0C-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA0D-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA0E-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA0F-----------------------------
|
|
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;DimVGA
|
|
--------V-14AA10-----------------------------
|
|
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;DimVGA
|
|
----------14AD-------------------------------
|
|
INT 14 - IBM SurePath BIOS - Officially "Private" Function
|
|
AH = ADh
|
|
SeeAlso: AH=AEh"IBM",AH=AFh"IBM"
|
|
----------14AE-------------------------------
|
|
INT 14 - IBM SurePath BIOS - Officially "Private" Function
|
|
AH = AEh
|
|
SeeAlso: AH=ADh"IBM",AH=AFh"IBM"
|
|
----------14AF-------------------------------
|
|
INT 14 - IBM SurePath BIOS - Officially "Private" Function
|
|
AH = AFh
|
|
SeeAlso: AH=ADh"IBM",AH=AEh"IBM"
|
|
--------S-14AF00BXAAAA-----------------------
|
|
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"
|
|
--------S-14B0-------------------------------
|
|
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=B2h
|
|
--------S-14B1-------------------------------
|
|
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=B2h
|
|
--------S-14B2-------------------------------
|
|
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=B1h
|
|
--------S-14B3-------------------------------
|
|
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=B2h
|
|
--------N-14E0-------------------------------
|
|
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 block
|
|
--------S-14E000-----------------------------
|
|
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 speed
|
|
--------S-14E001-----------------------------
|
|
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=E006h
|
|
--------S-14E002-----------------------------
|
|
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=E006h
|
|
--------S-14E003-----------------------------
|
|
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=E006h
|
|
--------S-14E004-----------------------------
|
|
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=E006h
|
|
--------S-14E005-----------------------------
|
|
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=E006h
|
|
--------S-14E006BX0000-----------------------
|
|
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
|
|
--------S-14E007-----------------------------
|
|
INT 14 - MX5 Extended FOSSIL - WAIT SPECIFIED NUMBER OF TICKS
|
|
AX = E007h
|
|
CX = number of ticks to wait
|
|
Return: nothing
|
|
SeeAlso: AX=E006h
|
|
--------N-14E1-------------------------------
|
|
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=FF00h
|
|
--------N-14E2-------------------------------
|
|
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=01h
|
|
--------N-14E3-------------------------------
|
|
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=00h
|
|
--------N-14E4-------------------------------
|
|
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: #00399
|
|
--------N-14E5-------------------------------
|
|
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=FF00h
|
|
--------N-14E6-------------------------------
|
|
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=10h
|
|
--------N-14E7-------------------------------
|
|
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=FF00h
|
|
--------N-14E8-------------------------------
|
|
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=FF00h
|
|
--------N-14E9-------------------------------
|
|
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=FF00h
|
|
--------N-14EA-------------------------------
|
|
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: #00402
|
|
--------N-14EB-------------------------------
|
|
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: #00401
|
|
--------N-14EC-------------------------------
|
|
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=FF00h
|
|
--------N-14ED-------------------------------
|
|
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=FF00h
|
|
--------a-14F0F0-----------------------------
|
|
INT 14 - ASAP v1.0 - ???
|
|
AX = F0F0h
|
|
DX = ???
|
|
???
|
|
Return: ???
|
|
Program: ASAP (Automatic Screen Access Program) is a shareware screen reader
|
|
by MicroTalk
|
|
SeeAlso: AX=F0F1h
|
|
--------a-14F0F1DX0000-----------------------
|
|
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=3800h
|
|
--------S-14F4FF-----------------------------
|
|
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=FCh
|
|
--------S-14F9-------------------------------
|
|
INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL
|
|
AH = F9h
|
|
DX = port (00h-03h)
|
|
Return: nothing
|
|
SeeAlso: AX=F4FFh
|
|
--------S-14FA-------------------------------
|
|
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=8Ah
|
|
--------S-14FB-------------------------------
|
|
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"
|
|
--------S-14FC-------------------------------
|
|
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=FF02h
|
|
--------S-14FD02-----------------------------
|
|
INT 14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS
|
|
AX = FD02h
|
|
Return: CX = number of characters available
|
|
--------N-14FF00-----------------------------
|
|
INT 14 - TelAPI - "telcheck" - INSTALLATION CHECK
|
|
AX = FF00h
|
|
Return: AX = 00FFh if installed
|
|
BX = version number * 100 (decimal)
|
|
SeeAlso: AH=E6h,AX=F4FFh
|
|
--------S-14FF01-----------------------------
|
|
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=FF02h
|
|
--------S-14FF02-----------------------------
|
|
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=FF01h
|
|
--------S-14FFF8-----------------------------
|
|
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"
|
|
--------S-14FFFB-----------------------------
|
|
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 number
|
|
--------S-14FFFC-----------------------------
|
|
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 driver
|
|
--------S-14FFFD-----------------------------
|
|
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=FFFCh
|
|
--------S-14FFFE-----------------------------
|
|
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 successful
|
|
--------S-14FFFF-----------------------------
|
|
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 vector
|
|
--------t-15---------------------------------
|
|
INT 15 - Microsoft TSR Specification
|
|
No additional information available at this time.
|
|
--------B-1500-------------------------------
|
|
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"
|
|
--------M-1500-------------------------------
|
|
INT 15 - Amstrad PC1512 - GET AND RESET MOUSE COUNTS
|
|
AH = 00h
|
|
Return: CX = signed X count
|
|
DX = signed Y count
|
|
--------O-1500-------------------------------
|
|
INT 15 - VMiX v2+ - INSTALLATION CHECK
|
|
AH = 00h
|
|
Return: DX = 0798h if installed
|
|
AX = version (AH = major, AL = minor)
|
|
--------T-1500-------------------------------
|
|
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=1000h
|
|
--------B-1501-------------------------------
|
|
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"
|
|
--------b-1501-------------------------------
|
|
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: #00405
|
|
--------O-1501-------------------------------
|
|
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"
|
|
--------T-1501-------------------------------
|
|
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"
|
|
--------B-1502-------------------------------
|
|
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 present
|
|
--------b-1502-------------------------------
|
|
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"
|
|
--------O-1502-------------------------------
|
|
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"
|
|
--------T-1502-------------------------------
|
|
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"
|
|
--------B-1503-------------------------------
|
|
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"
|
|
--------V-1503-------------------------------
|
|
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"
|
|
--------O-1503-------------------------------
|
|
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"
|
|
--------T-1503-------------------------------
|
|
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"
|
|
--------B-1504-------------------------------
|
|
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 table
|
|
--------V-1504-------------------------------
|
|
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"
|
|
--------O-1504-------------------------------
|
|
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"
|
|
--------T-1504-------------------------------
|
|
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"
|
|
--------B-1505-------------------------------
|
|
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 password
|
|
--------V-1505-------------------------------
|
|
INT 15 - Amstrad PC1512 - WRITE VDU GRAPHICS BORDER REGISTER
|
|
AH = 05h
|
|
AL = value (I,R,G,B bits)
|
|
Return: nothing
|
|
SeeAlso: AH=04h"Amstrad"
|
|
--------O-1505-------------------------------
|
|
INT 15 - VMiX - "sys_getpid" - GET PROCESS ID OF CURRENT PROCESS
|
|
AH = 05h
|
|
Return: AX = process ID
|
|
SeeAlso: AH=06h"VMiX",AH=0Bh"VMiX"
|
|
--------T-1505-------------------------------
|
|
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"
|
|
--------b-1506-------------------------------
|
|
INT 15 - Amstrad PC1512 - GET ROS VERSION NUMBER
|
|
AH = 06h
|
|
Return: BX = version number
|
|
--------O-1506-------------------------------
|
|
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"
|
|
--------T-1506-------------------------------
|
|
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"
|
|
--------O-1507-------------------------------
|
|
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"
|
|
----------1507-------------------------------
|
|
INT 15 - IBM SurePath BIOS - Officially "Private" Function
|
|
AH = 07h
|
|
SeeAlso: AH=08h"IBM"
|
|
--------T-1507-------------------------------
|
|
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"
|
|
--------O-1508-------------------------------
|
|
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"
|
|
--------B-1508-------------------------------
|
|
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=86h
|
|
--------T-1508-------------------------------
|
|
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"
|
|
--------O-1509-------------------------------
|
|
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"
|
|
----------1509-------------------------------
|
|
INT 15 - IBM BIOS - RESERVED FOR PCMCIA SYSTEM RESOURCE TABLE ACCESS
|
|
AH = 09h
|
|
no further details available
|
|
SeeAlso: AH=08h"IBM"
|
|
--------T-1509-------------------------------
|
|
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"
|
|
--------O-150A-------------------------------
|
|
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"
|
|
--------T-150A-------------------------------
|
|
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"
|
|
--------O-150B-------------------------------
|
|
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"
|
|
--------T-150B-------------------------------
|
|
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"
|
|
--------O-150C-------------------------------
|
|
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"
|
|
--------T-150C-------------------------------
|
|
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"
|
|
--------O-150D-------------------------------
|
|
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=4Bh
|
|
--------T-150D-------------------------------
|
|
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"
|
|
--------O-150E-------------------------------
|
|
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"
|
|
--------T-150E-------------------------------
|
|
INT 15 - MultiDOS Plus - ENABLE MULTITASKING
|
|
AH = 0Eh
|
|
Return: nothing
|
|
SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AH=20h"MultiDOS"
|
|
--------d-150F-------------------------------
|
|
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=1Ah
|
|
--------O-150F-------------------------------
|
|
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"
|
|
--------T-150F-------------------------------
|
|
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 buffer
|
|
--------!---Section--------------------------
|