9840 lines
352 KiB
Plaintext
9840 lines
352 KiB
Plaintext
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<72>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--------------------------
|