|
Interrupt List
Interrupt List Release 45 Last change 3/26/95
This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
--------!---CONTACT_INFO---------------------
If you notice any mistakes or omissions, please let me know! It is only with
YOUR help that the list can continue to grow at the current rate. Please send
all changes to me rather than distributing a modified version of the list.
Please read the file INTERRUP.1ST before asking me any questions. You may find
that they have already been addressed.
Ralf Brown
Internet: ralf@telerama.lm.com
UUCP: {uunet,harvard}!telerama.lm.com!ralf
FIDO: Ralf Brown 1:129/26.1
or post a message to me in the DR_DEBUG echo (I probably won't see it
unless you address it to me)
CIS: >INTERNET:ralf@telerama.lm.com
I reply to all e-mail submissions and inquiries, but some of my replies bounce
because of bad return paths. If you don't get a response from me within a
reasonable period of time, send it again with a better return path (starting at
harvard or ucbvax for UUCP, from the Internet for others).
--------!------------------------------------
See INTERRUP.1ST for the key to system abbreviations and a list of the
trademarks mentioned here.
--------!---DISCLAIMER-----------------------
DISCLAIMER: THIS MATERIAL IS PROVIDED "AS IS". I verify the information
contained in this list to the best of my ability, but I cannot be held
responsible for any problems caused by use or misuse of the information,
especially for those functions not officially documented. If it is marked
"internal" or undocumented, you should check it carefully to make sure it
works the same way in your version of the software (and please let me know
whether or not it works the same way). Information marked with "???" is
known to be incomplete or guesswork.
--------!---FLAGS----------------------------
The use of -> instead of = signifies that the indicated register or register
pair contains a pointer to the specified item, rather than the item itself.
One or more letters may follow the interrupt number; they have the following
meanings: U - undocumented function, u - partially documented function,
P - available only in protected mode, R - available only in real or V86 mode,
C - callout or callback (usually hooked rather than called),
O - obsolete (no longer present in current versions)
--------!---CATEGORIES-----------------------
The ninth column of the divider line preceding an entry usually contains a
classification code (the entry has not been classified if that character is
a dash). The codes currently in use are:
A - applications, a - access software (screen readers, etc),
B - BIOS, b - vendor-specific BIOS extensions,
C - CPU-generated, c - caches/spoolers,
D - DOS kernel, d - disk I/O enhancements,
E - DOS extenders, e - electronic mail, F - FAX,
f - file manipulation, G - debuggers/debugging tools, g - games,
H - hardware, h - vendor-specific hardware,
I - IBM workstation/terminal emulators, i - system info/monitoring
J - Japanese, j - joke programs,
K - keyboard enhancers, k - file/disk compression,
l - shells/command interpreters,
M - mouse/pointing device, m - memory management,
N - network, n - non-traditional input devices,
O - other operating systems,
P - printer enhancements, p - power management,
Q - DESQview/TopView and Quarterdeck programs,
R - remote control/file access, r - runtime support,
S - serial I/O, s - sound/speech,
T - DOS-based task switchers/multitaskers, t - TSR libraries
U - resident utilities, u - emulators,
V - video, v - virus/antivirus,
W - MS Windows, X - expansion bus BIOSes,
y - security, * - reserved (and not otherwise classified)
--------C-00---------------------------------
INT 00 C - CPU-generated - DIVIDE ERROR
Desc: generated if the divisor of a DIV or IDIV instruction is zero or the
quotient overflows the result register; DX and AX will be unchanged.
Notes: on an 8086/8088, the return address points to the following instruction
on an 80286+, the return address points to the divide instruction
an 8086/8088 will generate this interrupt if the result of a division
is 80h (byte) or 8000h (word)
SeeAlso: INT 04
--------G-00---------------------------------
INT 00 - Zenith - ROM DEBUGGER
Desc: invokes the ROM Debugger when at the BIOS level; equivalent to
pressing Ctrl-Alt-Ins on booting.
Note: since DOS revectors INT 00, it is necessary to restore this vector to
its original ROM BIOS value in order to invoke the debugger once DOS
loads
SeeAlso: INT 03"Columbia"
--------C-01---------------------------------
INT 01 C - CPU-generated - SINGLE STEP
Desc: generated after each instruction if TF (trap flag) is set; TF is
cleared on invoking the single-step interrupt handler
Notes: interrupts are prioritized such that external interrupts are invoked
after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
first instruction of the handler executes
used by debuggers for single-instruction execution tracing, such as
MS-DOS DEBUG's T command
SeeAlso: INT 03
--------C-01---------------------------------
INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
Desc: generated by the CPU on various occurrences which may be of interest
to a debugger program
Note: events which may trigger the interrupt:
Instruction address breakpoint fault - will return to execute inst
Data address breakpoint trap - will return to following instruction
General detect fault, debug registers in use
Task-switch breakpoint trap
undocumented 386/486 opcode F1h - will return to following instruc
SeeAlso: INT 03
--------H-02---------------------------------
INT 02 C - external hardware - NON-MASKABLE INTERRUPT
Desc: generated by the CPU when the input to the NMI pin is asserted
Notes: return address points to start of interrupted instruction on 80286+
on the 80286+, further NMIs are disabled until the next IRET
instruction, but one additional NMI is remembered by the hardware
and will be serviced after the IRET instruction reenables NMIs
maskable interrupts may interrupt the NMI handler if interrupts are
enabled
although the Intel documentation states that this interrupt is
typically used for power-failure procedures, it has many other uses
on IBM-compatible machines:
Memory parity error: all except Jr, CONV, and some machines
without memory parity
Breakout switch on hardware debuggers
Coprocessor interrupt: all except Jr and CONV
Keyboard interrupt: Jr, CONV
I/O channel check: CONV, PS50+
Disk-controller power-on request: CONV
System suspend: CONV
Real-time clock: CONV
System watch-dog timer, time-out interrupt: PS50+
DMA timer time-out interrupt: PS50+
Low battery: HP 95LX
Module pulled: HP 95LX
--------C-03---------------------------------
INT 03 C - CPU-generated - BREAKPOINT
Desc: generated by the one-byte breakpoint instruction (opcode CCh)
Notes: used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
command
also used by Turbo Pascal versions 1,2,3 when {$U+} specified
return address points to byte following the breakpoint instruction
SeeAlso: INT 01
--------G-03---------------------------------
INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
Desc: invokes the ROM Debugger if INT 03 has not been revectored; equivalent
to pressing Esc on booting.
SeeAlso: INT 00"Zenith",INT 03"Realia"
--------G-03---------------------------------
INT 03 - Realia COBOL - DEBUGGER SUPPORT
Note: Realia COBOL checks for a signature eight bytes prior to the interrupt
handler when it starts up
BUG: if the offset of the INT 03 vector is less than 8, the compiler and
all executables generated by it will crash the system
SeeAlso: INT 03"Columbia"
--------G-03---------------------------------
INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
STACK: DWORD selector
DWORD offset of ASCIZ message to display
Notes: the INT 03h instruction which invokes the debugger must be followed by
a JMP SHORT and the signature string "WVIDEO"
to check whether this interface is available, define a public byte
variable named ___WD_Present, which the debugger will set to 01h
before running the program
SeeAlso: AX=0910h
--------G-030910-----------------------------
INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
AX = 0910h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
SeeAlso: INT 03"WVIDEO"
--------G-030911-----------------------------
INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
AX = 0911h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
--------G-030912-----------------------------
INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
AX = 0912h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
Return: BH = entry number of last breakpoint set
BL = type of last breakpoint set (see #0001)
DH = entry number of last breakpoint to be triggered
DL = type of last triggered breakpoint (see #0001)
Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
SeeAlso: AX=0913h,AX=0914h
(Table 0001)
Values for Soft-ICE breakpoint type:
00h BPM (breakpoint register types)
01h I/O
02h INTerrupt
03h BPX (INT 03h-style breakpoint)
04h reserved
05h range
--------G-030913-----------------------------
INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
AX = 0913h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
DS:DX -> breakpoint structure (see #0002)
Return: AX = status
00h successful
BX = breakpoint number
03h breakpoint table full
06h memory limit error
07h I/O limit error
09h range limit error
16h duplicate breakpoint
SeeAlso: AX=0912h,AX=0914h
Format of Soft-ICE breakpoint structure:
Offset Size Description (Table 0002)
00h BYTE breakpoint type (see #0003)
01h DWORD breakpoint address 1
(lower range limit for memory BPs,
interrupt number for interrupt BPs,
address of BP for execution BPs,
I/O address (only word) for I/O BPs)
05h DWORD breakpoint address 2
(upper range limit for memory BPs,
optional value to check for for interrupt BPs,
overlay number (0 = root) for execution BPs)
09h DWORD breakpoint address 3
0Dh BYTE breakpoint mode 1 (see #0004)
(for interrupt BPs = register to check
00h no value checking
01h check AL
02h check AH
03h check AX)
0Eh BYTE breakpoint mode 2 (see #0004)
0Fh BYTE breakpoint size (00h byte, 01h word, 03h dword)
10h BYTE breakpoint pass count before program stop
11h BYTE breakpoint state
Note: all unused fields should contain zeros
(Table 0003)
Values for Soft-ICE breakpoint type:
00h memory location
01h memory range
03h I/O
04h interrupt
05h execution break
(Table 0004)
Values for Soft-ICE breakpoint mode:
01h read
02h write
04h execution
--------G-030914-----------------------------
INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
AX = 0914h
SI = magic value 4647h ('FG')
DI = magic value 4A4Dh ('JM')
BX = breakpoint number (returned by AX=0913h)
Return: BX = ???
Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
SeeAlso: AX=0912h,AX=0913h
--------C-04---------------------------------
INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
Desc: the INTO instruction will generate this interrupt if OF (Overflow Flag)
is set; otherwise, INTO is effectively a NOP
Note: may be used for convenient overflow testing (to prevent errors from
propagating) instead of JO or a JNO/JMP combination
SeeAlso: INT 00
--------B-05---------------------------------
INT 05 - PRINT SCREEN
Desc: dump the current text screen to the first printer
Notes: normally invoked by the INT 09 handler when PrtSc key is pressed, but
may be invoked directly by applications
byte at 0050h:0000h contains status used by default handler
00h not active
01h PrtSc in progress
FFh last PrtSc encountered error
default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
BUG: some old BIOSes/applications appear to destroy BP on return
SeeAlso: INT 10/AH=12h/BL=20h,INT 5E"TI Professional",INT 80"Phar Lap"
--------C-05---------------------------------
INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
Desc: generated by BOUND instruction when the value to be tested is less than
the indicated lower bound or greater than the indicated upper bound.
Note: returning from this interrupt re-executes the failing BOUND instruction
--------P-05454A-----------------------------
INT 05 U - PSPS v2.01 - EJECT PAGE
AX = 454Ah ('EJ')
Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
Technologies
Note: sends a ^D to the current printer
SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
--------P-054E57-----------------------------
INT 05 U - PSPS v2.01 - SET PARAMETERS
AX = 4E57h ('NW')
ES:SI -> 11-byte buffer containing new settings
Return: buffer filled
SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
--------P-055053-----------------------------
INT 05 U - PSPS v2.01 - GET PARAMETERS
AX = 5053h ('PS')
ES:SI -> 11-byte buffer for settings
Return: buffer filled
SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
--------P-05554E-----------------------------
INT 05 U - PSPS v2.01 - UNINSTALL
AX = 554Eh ('UN')
Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
Technologies
SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
--------C-06---------------------------------
INT 06 C - CPU-generated (80286+) - INVALID OPCODE
Desc: this interrupt is generated when the CPU attempts to execute an
invalid opcode (most protected-mode instructions are considered
invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
which specifies a register rather than a memory address
Notes: return address points to beginning of invalid instruction
with proper programming, this interrupt may be used to emulate
instructions which do not exist; many 386 BIOSes emulate the 80286
undocumented LOADALL instruction which was removed from the 80386+
generated by the 80386+ when the LOCK prefix is used with instructions
other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
not accessing memory.
SeeAlso: INT 0C"CPU",INT 0D"CPU"
--------b-06---------------------------------
INT 06 C - HP 95LX - SLEEP/WAKEUP
Desc: this interrupt is called just before going into light or deep
(shutdown) sleep and just after returning from light or deep sleep
SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
--------V-06---------------------------------
INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
Desc: points at graphics data for characters 00h-7Fh of the current font
SeeAlso: INT 43"EGA",INT 44"VIDEO"
--------C-07---------------------------------
INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
Desc: this interrupt is automatically called if a coprocessor instruction is
encountered when no coprocessor is installed
Note: can be used to emulate a numeric coprocessor in software
SeeAlso: INT 09"MATH UNIT PROTECTION"
--------H-08---------------------------------
INT 08 C - IRQ0 - SYSTEM TIMER
Desc: generated 18.2 times per second by channel 0 of the 8254 system timer,
this interrupt is used to keep the time-of-day clock updated
Notes: programs which need to be invoked regularly should use INT 1C unless
they need to reprogram the timer while still keeping the time-of-day
clock running at the proper rate
default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
may be masked by setting bit 0 on I/O port 21h
SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
SeeAlso: INT D8"Screen Thief"
--------C-08---------------------------------
INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
Desc: called when multiple exceptions occur on one instruction, or an
exception occurs in an exception handler
Notes: called in protected mode if an interrupt above the defined limit of
the interrupt vector table occurs
return address points at beginning of instruction with errors or the
beginning of the instruction which was about to execute when the
external interrupt caused the exception
if an exception occurs in the double fault handler, the CPU goes into
SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
this "triple fault" is a faster way of returning to real mode on
many 80286 machines than the standard keyboard controller reset
--------H-09---------------------------------
INT 09 C - IRQ1 - KEYBOARD DATA READY
Desc: this interrupt is generated when data is received from the keyboard.
This is normally a scan code (from either a keypress *or* a key
release), but may also be an ACK or NAK of a command on AT-class
keyboards.
Notes: this IRQ may be masked by setting bit 1 on I/O port 21h
if the BIOS supports an enhanced (101/102-key) keyboard, it calls
INT 15/AH=4Fh after reading the scan code (see #0005) from the
keyboard and before further processing; all further processing uses
the scan code returned from INT 15/AH=4Fh
the default interrupt handler is at F000h:E987h in 100%-compatible
BIOSes
the interrupt handler performs the following actions for certain
special keystrokes:
Ctrl-Break clear keyboard buffer, place word 0000h in buffer,
invoke INT 1B, and set flag at 0040h:0071h
SysReq invoke INT 15/AH=85h (SysReq is often labeled SysRq)
Ctrl-Numlock place system in a tight wait loop until next INT 09
Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
destination of the jump at that address)
Shift-PrtSc invoke INT 05
Ctrl-Alt-Plus (HP Vectra) enable keyclick
Ctrl-Alt-Plus (many clones) set clock speed to high
Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
Ctrl-Alt-Minus (many clones) set clock speed to low
Ctrl-Alt-SysReq (HP Vectra) generate hard reset
DRDOS hooks this interrupt to control the cursor shape (underscore/
half block) for overwrite/insert mode
DR Multiuser DOS hooks this interrupt for cursor shape control and to
control whether Ctrl-Alt-Del reboots the current session or the
entire system
SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
SeeAlso: INT 2F/AX=A901h,INT 4A"TI Professional",INT 51"DESQview"
SeeAlso: INT 59"DoubleDOS",INT 79"GO32"
(Table 0005)
Values for keyboard scan code:
01h Esc 31h N
02h 1 ! 32h M
03h 2 @ 33h , < 63h="" f16="" 04h="" 3="" #="" 34h="" .=""> 64h F17
05h 4 $ 35h / ? 65h F18
06h 5 % 36h Right Shift 66h F19
07h 6 ^ 37h Grey* 67h F20
08h 7 & 38h Alt 68h F21
09h 8 * 39h SpaceBar 69h F22
0Ah 9 ( 3Ah CapsLock 6Ah F23
0Bh 0 ) 3Bh F1 6Bh F24
0Ch - _ 3Ch F2 6Ch --
0Dh = + 3Dh F3 6Dh EraseEOF
0Eh Backspace 3Eh F4
0Fh Tab 3Fh F5 6Fh Copy/Play
10h Q 40h F6
11h W 41h F7
12h E 42h F8 72h CrSel
13h R 43h F9
14h T 44h F10 74h ExSel
15h Y 45h NumLock 75h --
16h U 46h ScrollLock 76h Clear
17h I 47h Home
18h O 48h UpArrow
19h P 49h PgUp
1Ah [ { 4Ah Grey-
1Bh ] } 4Bh LeftArrow
1Ch Enter 4Ch Keypad 5
1Dh Ctrl 4Dh RightArrow
1Eh A 4Eh Grey+
1Fh S 4Fh End
20h D 50h DownArrow
21h F 51h PgDn
22h G 52h Ins
23h H 53h Del
24h J 54h SysReq
25h K
26h L 56h left \| (102-key)
27h ; : 57h F11
28h ' " 58h F12 AAh self-test complete
29h ` ~ E0h prefix code
2Ah Left Shift 5Ah PA1 E1h prefix code
2Bh \ | 5Bh F13 EEh ECHO
2Ch Z 5Ch F14 F0h prefix code (key break)
2Dh X 5Dh F15 FAh ACK
2Eh C FDh diagnostic failure
2Fh V FEh RESEND
30h B FFh kbd error/buffer full
Notes: scan codes 56h-E1h are only available on the extended (101/102-key)
keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
are only available on the 122-key keyboard
the SysReq key is often labeled SysRq
SeeAlso: #0460
--------C-09---------------------------------
INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
Desc: called if the coprocessor attempts to access memory outside a segment
boundary; it may occur at an arbitrary time after the coprocessor
instruction was issued
Notes: until the condition is cleared or the coprocessor is reset, the only
coprocessor instruction which may be used is FNINIT; WAIT or other
coprocessor instructions will cause a deadlock because the
coprocessor is still busy waiting for data
for the 486+, a coprocessor protection error generates an INT 0D
SeeAlso: INT 07"CPU"
--------*-09---------------------------------
INT 09 P - internal hardware - RESERVED BY Intel (80486)
Note: this exception has been moved to INT 0D
SeeAlso: INT 09"MATH",INT 0D
--------H-0A---------------------------------
INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
Notes: the TOPS and PCnet adapters use this interrupt request line by default
DOS 3.2 revectors IRQ2 to a stack-switching routine
on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
connects to the slave 8259. The BIOS redirects the interrupt for
IRQ9 back here.
under DESQview, only the INT 15h vector and BASIC segment address (the
word at 0000h:0510h) may be assumed to be valid for the handler's
process
many VGA boards do not implement the vertical retrace interrupt,
including the IBM VGA Adapter where the traces are either cut or
removed
SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
--------H-0A---------------------------------
INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
Notes: this interrupt may be masked by setting bit 2 on I/O port 21h
the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
interrupt use IRQ5 for vertical retrace.
SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
--------H-0A---------------------------------
INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
Note: newer Roland cards and MIDI interfaces by other manufacturers use
a jumper-selectable IRQ, but software and hardware generally defaults
to IRQ2
SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
--------C-0A---------------------------------
INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
Desc: automatically called during a task switch if the new TSS specified by
the task gate is invalid for any of the following reasons:
TSS limit is less than 43 (80286) or 103 (80386/80486)
LDT selector invalid or segment not present
null SS selector, or SS selector outside LDT/GDT limit
stack segment is read-only
stack segment DPL differs from new CPL, or RPL <> CPL
CS selector is outside LDT/GDT limit or not code
non-conforming code segment's DPL differs from CPL
conforming code segment's DPL > CPL
DS/ES selectors outside LDT/GDT limit or not readable segments
Note: the handler must use a task gate in order to have a valid TSS under
which to execute; it must also reset the busy bit in the new TSS
SeeAlso: INT 0B"CPU"
--------H-0B---------------------------------
INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
Desc: automatically asserted by the UART when COM2 needs attention, if the
UART has been programmed to generate interrupts
Notes: the TOPS and PCnet adapters use this interrupt request line as an
alternate
on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
shares this interrupt
may be masked by setting bit 3 on I/O port 21h
SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
--------C-0B---------------------------------
INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
Desc: generated when loading a segment register if the segment descriptor
indicates that the segment is not currently in memory, unless the
segment is an LDT (see INT 0A"CPU") or stack segment (see
INT 0C"CPU") needed by a task switch
Note: may be used to implement virtual memory by loading in segments as they
are accessed, clearing the "not present" bit after loading
SeeAlso: INT 0A"CPU",INT 0E"hardware"
--------h-0B---------------------------------
INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
Desc: this is the lowest-level keyboard handler on an HP 95LX palmtop
Note: debounces key, places the keycode in I/O register 60h, and calls INT 09
SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
--------H-0C---------------------------------
INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
Desc: automatically asserted by the UART when COM1 needs attention, if the
UART has been programmed to generate interrupts
BUG: this vector is modified but not restored by Direct Access v4.0, and
may be left dangling by other programs written with the same version
of compiled BASIC
Notes: on many PC's, COM3 shares this interrupt
may be masked by setting bit 4 on I/O port 21h
SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
--------C-0C---------------------------------
INT 0C C - CPU-generated (80286+) - STACK FAULT
Desc: this interrupt is generated in protected mode on a stack overflow or
underflow, or if an inter-level transition or task switch references
a stack segment marked "not present"; it is generated in real mode
on accessing a word operand at SS:FFFFh
Note: the 80286 will shut down in real mode if SP=1 before a push. On the
PC AT and compatibles, external circuitry generates a reset on
shutdown.
SeeAlso: INT 0B"CPU",INT 0D"CPU"
--------I-0C---------------------------------
INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
Desc: the IBM System 36/38 emulator may be invoked through a private API,
whose entry point address (see #0006) is offset 100h in the segment
pointed at by this vector
(Table 0006)
Call the System 36/38 emulator API entry point with:
AH = function
03h update screen
05h select next session
AL = session number (00h-03h)
Return: AL = session type code
00h not active
01h display session
02h printer session
FEh invalid session number
DS = requested session's data segment (0 if not active)
(see #0007)
Return: ???
Format of System 36/38 emulator's data area:
Offset Size Description (Table 0007)
13Eh BYTE bit flags for status line indicators turned on since this byte
last zerod
13Fh BYTE bit flags for status line indicators turned off since this
byte last set to FFh
140h WORD offset of EBCDIC to ASCII translation
146h WORD offset of EBCDIC screen buffer
148h WORD offset of EC (engineering change) level signature
150h BYTE "KEYI"
151h BYTE 5250 key scan code to be sent to remote
15Bh BYTE "SYSAV"
15Dh BYTE 5250 cursor column
15Eh BYTE 5250 cursor row
167h BYTE "DVCTAD"
178h BYTE "FLAGS"
184h BYTE "SESSNOAD"
193h BYTE "STNAD"
198h BYTE "NSDS"
Note: offsets are from the interrupt handler's segment
--------H-0D---------------------------------
INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
Notes: under DESQview, only the INT 15h vector and BASIC segment address (the
word at 0000h:0510h) may be assumed to be valid for the handler's
process
the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
interrupt use IRQ5 for vertical retrace.
may be masked by setting bit 5 on I/O port 21h
SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
SeeAlso: INT 7D"GO32"
--------H-0D---------------------------------
INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
Desc: used to ensure that the dynamic RAM retains its contents in earlier
1000-series models; later models use normal DMA for RAM refresh
(some early models have no DMA unless it is added via an expansion
card)
SeeAlso: INT 55
--------h-0D---------------------------------
INT 0D - HP 95LX - INFRARED INTERRUPT
Desc: this interrupt is used to perform communications over the infrared
data link
SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
--------C-0D---------------------------------
INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
Desc: the CPU generates this interrupt when it detects a protection violation
which does not fit under any other category having a separate
interrupt
Notes: called in real mode when
an instruction accesses a memory operand extending beyond offset
FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
CS, DS, ES, FG, or GS
a PUSH MEM or POP MEM instruction contains an invalid bit encoding
in the second byte
an instruction exceeds the maximum length allowed (10 bytes for
80286, 15 bytes for 80386/80486)
an instruction wraps from offset FFFFh to offset 0000h
called in protected mode on protection violations not covered by INT 06
through INT 0C, including
segment limit violations
write to read-only segments
accesses using null DS or ES selectors
accesses to segments with privilege greater than CPL
wrong descriptor type
called on 80486 protected-mode floating-point protection fault
SeeAlso: INT 09"80486",INT 0C"STACK"
--------H-0E---------------------------------
INT 0E C - IRQ6 - DISKETTE CONTROLLER
Desc: this interrupt is generated by the floppy disk controller on
completion of an operation
Notes: default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
may be masked by setting bit 6 on I/O port 21h
SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
--------C-0E---------------------------------
INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
Desc: this interrupt is generated in protected and virtual-86 modes on
attempting to access a 4K memory page whose page table entry has
the "present" bit cleared
Note: used to implement virtual memory
SeeAlso: INT 0B"hardware"
--------h-0E---------------------------------
INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
--------H-0F---------------------------------
INT 0F C - IRQ7 - PARALLEL PRINTER
Desc: this interrupt is generated by the LPT1 printer adapter when the
printer becomes ready
Notes: most printer adapters do not reliably generate this interrupt
the 8259 interrupt controller generates an interrupt corresponding to
IRQ7 when an error condition occurs
SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
--------h-0F---------------------------------
INT 0F C - HP 95LX - REAL-TIME CLOCK
SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
--------C-10---------------------------------
INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
Desc: this interrupt is generated by the CPU when the -ERROR pin is asserted
by the coprocessor
Note: AT's and clones usually wire the coprocessor to use IRQ13, but not all
get it right
SeeAlso: INT 09"hardware",INT 75
--------V-1000-------------------------------
INT 10 - VIDEO - SET VIDEO MODE
AH = 00h
AL = desired video mode (see #0009)
Return: AL = video mode flag (Phoenix, AMI BIOS)
20h mode > 7
30h modes 0-5 and 7
3Fh mode 6
AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
Desc: specify the display mode for the currently active display adapter
Notes: IBM standard modes do not clear the screen if the high bit of AL is set
(EGA or higher only)
the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
Everex EV-673
the installation check for Ahead adapters is the signature "AHEAD" at
C000h:0025h
the installation check for Paradise adapters is the signature "VGA=" at
C000h:007Dh
the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
signature "OAK VGA" at C000h:0008h
the installation check for ATI adapters is the signature "761295520" at
C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
31h for 18800
32h for 18800-1
33h for 18800-2
34h for 18800-4
35h for 18800-5
the two bytes at C000h:0040h indicate the adapter type
"22" EGA Wonder
"31" VGA Wonder
"32" EGA Wonder800+
the byte at C000h:0042h contains feature flags
bit 1: mouse port present
bit 4: programmable video clock
the byte at C000h:0044h contains additional feature flags if chipset
byte > 30h (see #0008)
the installation check for Genoa video adapters is the signature
77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
and XXh is
00h for Genoa 6200/6300
11h for Genoa 6400/6600
22h for Genoa 6100
33h for Genoa 5100/5200
55h for Genoa 5300/5400
for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
"EXTMODE", indicating support for extended modes
SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
Index: installation check;Tseng ET4000|installation check;Ahead video cards
Index: installation check;Oak Technologies|installation check;ATI video cards
Index: installation check;Paradise video|installation check;Genoa video cards
Bitfields for ATI additional feature flags:
Bit(s) Description (Table 0008)
0 70 Hz non-interlaced display
1 Korean (double-byte) characters
2 45 MHz memory clock rather than 40 MHz
3 zero wait states
4 paged ROMs
6 no 8514/A monitor support
7 HiColor DAC
(Table 0009)
Values for video mode:
text/ text pixel pixel colors disply scrn system
grph resol box resolution pages addr
00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
= T 40x25 8x14 320x350 16gray 8 B800 EGA
= T 40x25 8x16 320x400 16 8 B800 MCGA
= T 40x25 9x16 360x400 16 8 B800 VGA
01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
= T 40x25 8x14 320x350 16 8 B800 EGA
= T 40x25 8x16 320x400 16 8 B800 MCGA
= T 40x25 9x16 360x400 16 8 B800 VGA
02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
= T 80x25 8x14 640x350 16gray 8 B800 EGA
= T 80x25 8x16 640x400 16 8 B800 MCGA
= T 80x25 9x16 720x400 16 8 B800 VGA
03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
= T 80x25 8x14 640x350 16/64 8 B800 EGA
= T 80x25 8x16 640x400 16 8 B800 MCGA
= T 80x25 9x16 720x400 16 8 B800 VGA
04h = G 40x25 8x8 320x200 4 . B800 CGA,PCjr,EGA,MCGA,VGA
05h = G 40x25 8x8 320x200 4gray . B800 CGA,PCjr,EGA
= G 40x25 8x8 320x200 4 . B800 MCGA,VGA
06h = G 80x25 8x8 640x200 2 . B800 CGA,PCjr,EGA,MCGA,VGA
= G 80x25 . . mono . B000 HERCULES.COM on HGC [14]
07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
= T 80x25 9x16 720x400 mono . B000 VGA
08h = T 132x25 8x8 1056x200 16 . B800 ATI EGA/VGA Wonder [2]
= T 132x25 8x8 1056x200 mono . B000 ATI EGA/VGA Wonder [2]
= G 20x25 8x8 160x200 16 . . PCjr, Tandy 1000
= G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
= G 90x45 8x8 720x360 mono . B000 Hercules + HERKULES [11]
09h = G 40x25 8x8 320x200 16 . . PCjr, Tandy 1000
0Ah = G 80x25 8x8 640x200 4 . . PCjr, Tandy 1000
0Bh = reserved (EGA BIOS internal use)
= G 80x25 8x8 640x200 16 . . Tandy 1000 SL/TL [13]
0Ch = reserved (EGA BIOS internal use)
0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
= G . . 640x350 16 . A000 256k EGA,VGA
11h = G 80x30 8x16 640x480 mono . A000 VGA,MCGA,ATI EGA,ATI VIP
12h = G 80x30 8x16 640x480 16/256K . A000 VGA,ATI VIP
= G 80x30 8x16 640x480 16/64 . A000 ATI EGA Wonder
= G . . 640x480 16 . . UltraVision+256K EGA
13h = G 40x25 8x8 320x200 256/256K . A000 VGA,MCGA,ATI VIP
14h = T 132x25 Nx16 . 16 . . XGA, IBM Enhanced VGA [3]
= T 132x25 8x16 1056x400 16/256K . . Cirrus CL-GD5420/5422/5426
= G 80x25 8x8 640x200 . . . Lava Chrome II EGA
= G . . 640x400 16 . . Tecmar VGA/AD
15h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
16h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
= G . . 800x600 16 . . Tecmar VGA/AD
17h = T 132x25 . . . . . Tecmar VGA/AD
= T 80x43 8x8 640x348 16 4 B800 Tseng ET4000 BIOS [10]
= G 80x34 8x14 640x480 . . . Lava Chrome II EGA
18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
= T 132x25 . . mono . B000 Cirrus 5320 chipset
= T 132x44 8x8 1056x352 mono . B000 Tseng Labs EVA
= T 132x44 9x8 1188x352 4gray 2 B000 Tseng ET3000 chipset
= T 132x44 8x8 1056x352 16/256 2 B000 Tseng ET4000 chipset
= G 80x34 8x14 640x480 . . . Lava Chrome II EGA
= G 1024x768 16 . . Tecmar VGA/AD
19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
= T 132x25 8x14 1056x350 mono . B000 Tseng Labs EVA
= T 132x25 9x14 1188x350 4gray 4 B000 Tseng ET3000 chipset
= T 132x25 8x14 1056x350 16/256 4 B000 Tseng ET4000 chipset
= T 132x34 . . mono . B000 Cirrus 5320 chipset
1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
= T 132x28 8x13 1056x364 mono . B000 Tseng Labs EVA
= T 132x28 9x13 1188x364 4gray 4 B000 Tseng ET3000 chipset
= T 132x28 8x13 1056x364 16/256 4 B000 Tseng ET4000 chipset
= T 132x44 . . mono . B000 Cirrus 5320 chipset
= G . . 640x350 256 . . Tecmar VGA/AD
1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
= G . . 640x400 256 . . Tecmar VGA/AD
1Ch = T 132x25 . . . . . Cirrus 5320 chipset
= T 132x30 9x16 1188x480 16 1 A000 Realtek RTVGA [12]
= G . . 640x480 256 . . Tecmar VGA/AD
1Dh = T 132x43 . . . . . Cirrus 5320 chipset
= T 132x43 9x11 1188x473 16 1 A000 Realtek RTVGA [12]
= G . . 800x600 256 . . Tecmar VGA/AD
1Eh = T 132x44 . . . . . Cirrus 5320 chipset
= T 132x60 9x8 1188x480 16 1 A000 Realtek RTVGA [12]
1Fh = G 100x75 8x8 800x600 16 1 A000 Realtek RTVGA
20h = T 132x25 . . 16 . . Avance Logic AL2101
= G 40x16 . 240x128 mono . B000 HP 95LX/100LX/200LX
= G 120x45 8x16 960x720 16 1 A000 Realtek RTVGA
21h = T 80x25 . . mono . B000 HP 200LX
= T 132x30 . . 16 . . Avance Logic AL2101
= T 132x44 9x9 1188x396 16/256K . B800 WD90C
= T 132x44 9x9 1188x396 16 . B800 Diamond Speedstar 24X
= T 132x60 . . 16 2 B800 Tseng ET4000 chipset [10]
= G 80x43 8x8 720x348 mono . B000 DESQview 2.x+Hercules [4]
= G 128x48 8x16 1024x768 16 1 A000 Realtek RTVGA [12]
22h = T 132x43 . . . . . Allstar Peacock (VGA)
= T 132x43 . . 16 . . Avance Logic AL2101
= T 132x44 8x8 1056x352 . . B800 Tseng Labs EVA
= T 132x44 9x8 1188x352 16/256K 2 B800 Tseng ET3000 chipset
= T 132x44 8x8 1056x352 16/256K 2 B800 Tseng ET4000 chipset
= T 132x44 8x8 1056x352 . . . Ahead Systems EGA2001
= T 132x44 8x8 1056x352 16 2 B800 Ahead B
= T 132x44 8x9 1056x398 16 . . STB Lightspeed ET4000/W32P
= T 132x44 . . 16 . . Orchid Prodesigner VGA
= G 80x43 8x8 720x348 mono . B800 DESQview 2.x+Hercules [4]
= G 96x64 8x16 768x1024 16 1 A000 Realtek RTVGA
23h = T 132x25 6x14 792x350 . . B800 Tseng Labs EVA
= T 132x25 9x14 1188x350 16/256K 4 B800 Tseng ET3000 chipset
= T 132x25 8x14 1056x350 16/256 4 B800 Tseng ET4000 chipset
= T 132x25 8x14 1056x350 . . . Ahead Systems EGA2001
= T 132x25 8x14 1056x350 16 4 B800 Ahead B
= T 132x25 8x8 1056x200 16 . B800 ATI EGA Wonder,ATI VIP
= T 132x25 . . . . . Cirrus 5320 chipset
= T 132x28 . . . . . Allstar Peacock (VGA)
= T 132x28 . . 16 . . Orchid Prodesigner VGA
= T 132x60 . . 16 . . Avance Logic AL2101
= G 128x48 8x16 1024x768 4 1 A000 Realtek RTVGA
24h = T 80x30 . . 16 . . Avance Logic AL2101
= T 132x25 . . . . . Allstar Peacock (VGA)
= T 132x25 . . 16 . . Orchid Prodesigner VGA
= T 132x28 6x13 792x364 . . B800 Tseng Labs EVA
= T 132x28 9x13 1188x364 16/256K 4 B800 Tseng ET3000 chipset
= T 132x28 8x12 1056x336 16 1 B800 Ahead B
= T 132x28 8x13 1056x364 16/256K 4 B800 Tseng ET4000 chipset
= T 132x28 8x14 1056x392 16 . . STB Lightspeed ET4000/W32P
= T 132x28 . . . . . Cirrus 5320 chipset
= G 64x32 8x16 512x512 256 1 A000 Realtek RTVGA
25h = T 80x43 . . 16 . . Avance Logic AL2101
= G 80x60 8x8 640x480 . . A000 Tseng Labs EVA
= G 80x60 8x8 640x480 16/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 640x480 16 . . VEGA VGA
= G 80x60 8x8 640x480 16 . A000 Orchid Prodesigner VGA
= G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
= G . . 640x480 16 . . NEC GB-1
= G . . 640x480 16 . . Cirrus 5320 chipset
= G . . 640x400 256 . . Realtek RTVGA
26h = T 80x60 8x8 640x480 . . . Tseng Labs EVA
= T 80x60 8x8 640x480 16/256K 3 B800 Tseng ET3000/4000 chipset
= T 80x60 . . . . . Allstar Peacock (VGA)
= T 80x60 . . 16 . . Orchid ProDesigner VGA
= T 80x60 . . 16 . . Avance Logic AL2101
= G 80x60 8x8 640x480 . . . Ahead Systems EGA2001
= G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
= G . . 640x480 256 . . Realtek RTVGA
27h = T 132x25 8x8 1056x200 mono . B000 ATI EGA Wonder,ATI VIP
= G . . 720x512 16 . . VEGA VGA
= G . . 720x512 16 . . Genoa
= G 100x75 8x8 800x600 256 1 A000 Realtek RTVGA [12]
= G . . 960x720 16 . . Avance Logic AL2101
28h = T ???x??? . . . . . VEGA VGA
= G . . 512x512 256 . . Avance Logic AL2101
= G . . 1024x768 256 . . Realtek RTVGA (1meg)
29h = G . . 640x400 256 . . Avance Logic AL2101
= G . . 800x600 16 . . VEGA VGA
= G 100x37 8x16 800x600 16 . A000 Orchid
= G . . 800x600 16 . A000 STB,Genoa,Sigma
= G . . 800x600 16 . . Allstar Peacock (VGA)
= G 100x37 8x16 800x600 16/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 800x600 ??? . . EIZO MDB10
= G . . 800x600 16 . . Cirrus 5320 chipset
= G NA . 800x600 16 . . Compaq QVision 1024/1280
= G . . 1024x1024 256 . . Realtek RTVGA BIOS v3.C10
2Ah = T 100x40 . . . . . Allstar Peacock (VGA)
= T 100x40 8x16 800x640 16 . . Orchid Prodesigner VGA
= T 100x40 8x15 800x600 16/256K 4 B800 Tseng ET3000/4000 chipset
= T 100x40 8x15 800x600 16 . . STB Lightspeed ET4000/W32P
= G . . 640x480 256 . . Avance Logic AL2101
= G . . 1280x1024 16 . . Realtek RTVGA
2Bh = G . . 800x600 16 . . Avance Logic AL2101
2Ch = G . . 800x600 256 . . Avance Logic AL2101
2Dh = G . . 640x350 256 . . VEGA VGA
= G . . 640x350 256/256K . A000 Orchid, Genoa, STB
= G 80x25 8x14 640x350 256/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 640x350 256 . . Cirrus 5320 chipset
= G 80x25 8x14 640x350 256 . . STB Lightspeed ET4000/W32P
= G . . 768x1024 16 . . Avance Logic AL2101
2Eh = G . . 640x480 256 . . VEGA VGA
= G 80x30 8x16 640x480 256/256K . A000 Orchid
= G . . 640x480 256/256K . A000 STB,Genoa,Sigma
= G 80x30 8x16 640x480 256/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 640x480 256/256K . . Compaq QVision 1024/1280
= G . . 768x1024 256 . . Avance Logic AL2101
2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
= G . . 720x512 256 . . VEGA VGA
= G . . 720x512 256 . . Genoa
= G 80x25 8x16 640x400 256/256K 1 A000 Tseng ET4000 chipset
= G . . 1024x768 4 . . Avance Logic AL2101
30h = G . . 800x600 256 . . VEGA VGA
= G 100x37 8x16 800x600 256/256K . A000 Orchid
= G . . 800x600 256/256K . A000 STB,Genoa,Sigma
= G . . 720x350 2 . . 3270 PC
= G . . 800x600 256 . . Cardinal
= G . . . . . B800 AT&T 6300
= G 100x37 8x16 800x600 256/256K 1 A000 Tseng ET3000/4000 chipset
= G . . 1024x768 16 . . Avance Logic AL2101
31h = G . . 1024x768 256 . . Avance Logic AL2101
32h = T 80x34 8x10 . 16 4 B800 Ahead B (Wizard/3270)
= G . . 640x480 256 . . Compaq QVision 1024/1280
33h = T 132x44 8x8 . 16 . B800 ATI EGA Wonder,ATI VIP
= T 80x34 8x8 . 16 4 B800 Ahead B (Wizard/3270)
34h = T 80x66 8x8 . 16 4 B800 Ahead B (Wizard/3270)
= G . . 800x600 256 . . Compaq QVision 1024/1280
36h = G . . 960x720 16 . . VEGA VGA, STB
= G . . 960x720 16 . A000 Tseng ET3000 only
= G . . 1280x1024 16 . . Avance Logic AL2101
37h = T 132x44 8x8 . mono . B800 ATI EGA Wonder,ATI VIP
= G . . 1024x768 16 . . VEGA VGA
= G 128x48 8x16 1024x768 16 . A000 Orchid
= G . . 1024x768 16 . A000 STB,Genoa,Sigma
= G . . 1024x768 16 . . Definicon
= G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000 chipset
= G . . 1024x768 16 . . Compaq QVision 1024/1280
= G . . 1280x1024 256 . . Avance Logic AL2101
38h = G . . 1024x768 256 . . STB VGA/EM-16 Plus (1MB)
= G 128x48 8x16 1024x768 256/256K 1 A000 Tseng ET4000 chipset
= G . . 1024x768 256 . . Orchid ProDesigner II
= G . . 1024x768 256 . . Compaq QVision 1024/1280
39h = G . . 1280x1024 16 . . Compaq QVision 1280
3Ah = G . . 1280x1024 256 . . Compaq QVision 1280
3Bh = G . . 512x480 256 . . Compaq QVision 1024/1280
3Ch = G . . 640x400 64K . . Compaq QVision 1024/1280
3Dh = G . . 1280x1024 16 . . Definicon
= G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [1,7]
3Eh = G . . 1280x961 16 . . Definicon
= G . . 640x480 64K . . Compaq QVision 1024/1280
3Fh = G . . 1280x1024 256 . . Hercules ??? (ET4000W32)
= G . . 800x600 64K . . Compaq QVision 1024/1280
40h = T 80x43 . . . . . VEGA VGA, Tecmar VGA/AD
= T 80x43 . . . . . Video7 V-RAM VGA
= T 80x43 . . . . . Tatung VGA
= T 100x30 . . 16 . . MORSE VGA
= T 100x30 . . . . . Cirrus 510/520 chipset
= T 80x25 . 720x350 mono . . Genoa SuperEGA BIOS 3.0+
= G . . 320x200 64K . . Avance Logic AL2101
= G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
= G 80x25 8x16 640x400 2 1 B800 Olivetti Quaderno
= G 80x25 8x16 640x400 2 1 B800 Compaq Portable
= G . . 1024x768 64K . . Compaq QVision 1280
41h = T 132x25 . . . . . VEGA VGA
= T 132x25 . . . . . Tatung VGA
= T 132x25 . . . . . Video7 V-RAM VGA
= T 100x50 . . 16 . . MORSE VGA
= T 100x50 . . . . . Cirrus 510/520 chipset
= T 80x34 9x14 720x476 16/256K . B800 WD90C
= T 80x34 9x14 . 16 . B800 Diamond Speedstar 24X
= G . . 512x512 64K . . Avance Logic AL2101
= G . . 640x200 16 1 . AT&T 6300
= G 80x25 . 720x348 mono . B000 Genoa SuperEGA BIOS 3.0+
42h = T 132x43 . . . . . VEGA VGA
= T 132x43 . . . . . Tatung VGA
= T 132x43 . . . . . Video7 V-RAM VGA
= T 80x34 9x10 . 4 4 B800 Ahead B (Wizard/3270)
= T 100x60 . . 16 . . MORSE VGA
= T 100x60 . . . . . Cirrus 510/520 chipset
= G 80x25 8x16 640x400 16 . . AT&T 6300, AT&T VDC600
= G . . 640x400 64K . . Avance Logic AL2101
= G 80x25 . 720x348 mono . B800 Genoa SuperEGA BIOS 3.0+
43h = T 80x60 . . . . . VEGA VGA
= T 80x60 . . . . . Tatung VGA
= T 80x60 . . . . . Video7 V-RAM VGA
= T 80x45 9x8 . 4 4 B800 Ahead B (Wizard/3270)
= T 100x75 . . 16 . . MORSE VGA
= T 80x29 . 720x348 mono . . Genoa SuperEGA BIOS 3.0+
= G . . 640x200 of 640x400 viewport AT&T 6300 (unsupported)
= G . . 640x480 64K . . Avance Logic AL2101
44h = disable VDC and DEB output . AT&T 6300
= T 100x60 . . . . . VEGA VGA
= T 100x60 . . . . . Tatung VGA
= T 100x60 . . . . . Video7 V-RAM VGA
= T 80x32 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
= G . . 800x600 64K . . Avance Logic AL2101
45h = T 132x28 . . . . . Tatung VGA
= T 132x28 . . . . . Video7 V-RAM VGA
= T 80x44 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
46h = T 132x25 8x14 . mono . . Genoa 6400
= T 132x25 9x14 . mono . . Genoa SuperEGA BIOS 3.0+
= G 100x40 8x15 800x600 2 . . AT&T VDC600
47h = T 132x29 8x12 . mono . . Genoa 6400
= T 132x29 9x12 . mono . . Genoa SuperEGA BIOS 3.0+
= T 132x28 9x16 1188x448 16/256K . B800 WD90C
= T 132x28 9x16 . 16 . B800 Diamond Speedstar 24X
= G 100x37 8x16 800x600 16 . . AT&T VDC600
48h = T 132x32 8x12 . mono . . Genoa 6400
= T 132x32 9x11 . mono . . Genoa SuperEGA BIOS 3.0+
= G 80x50 8x8 640x400 2 . B800 AT&T 6300, AT&T VDC600
= G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno
49h = T 132x44 8x8 . mono . . Genoa 6400
= T 132x44 9x8 . mono . . Genoa SuperEGA BIOS 3.0+
= G 80x30 8x16 640x480 . . . Lava Chrome II EGA
4Dh = T 120x25 . . . . . VEGA VGA
= G . . 512x480 16M . . Compaq QVision 1024/1280
4Eh = T 120x43 . . . . . VEGA VGA
= T 80x60 8x8 . 16/256K . B800 Oak OTI-067/OTI-077 [8]
= G . . 640x400 16M . . Compaq QVision 1024/1280
4Fh = T 132x25 . . . . . VEGA VGA
= T 132x60 . . . . . some Oak Tech VGA [8]
= G . . 640x480 16M . . Compaq QVision 1280
50h = T 80x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
= T 80x34 . . . . . Lava Chrome II EGA
= T 80x43 . . mono . . VEGA VGA
= T 132x25 9x14 . mono . . Ahead Systems EGA2001
= T 132x25 9x14 . 4 4 B800 Ahead B
= T 132x25 8x14 . 16 8 B800 OAK Technologies VGA-16
= T 132x25 8x14 . 16/256K . B800 Oak OTI-037/067/077 [8]
= T 132x25 8x14 1056x350 16 8 B800 UM587 chipset
= T 132x30 . . 16 . . MORSE VGA
= T 132x30 . . . . . Cirrus 510/520 chipset
= G 80x30 8x16 640x480 16 . . Paradise EGA-480
= G 80x30 8x16 640x480 16 . . NEL Electronics BIOS
= G . . 640x480 mono??? . . Taxan 565 EGA
= G 40x25 8x8 320x200 . . . Genoa SuperEGA BIOS 3.0+
51h = T 80x30 8x16 . . . . Paradise EGA-480
= T 80x30 9x16 . . . . NEL Electronics BIOS
= T 80x30 . . . . . Lava Chrome II EGA
= T 80x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x25 . . mono . . VEGA VGA
= T 132x28 9x12 . 4 4 B800 Ahead B
= T 132x43 8x8 . 16 5 B800 OAK Technologies VGA-16
= T 132x43 8x8 . 16/256K . B800 Oak OTI-037/067/077
= T 132x43 8x8 1056x344 16 5 B800 UM587 chipset
= T 132x50 . . 16 . . MORSE VGA
= T 132x50 . . . . . Cirrus 510/520 chipset
= G 80x34 8x14 640x480 16 . . ATI EGA Wonder
= G 80x25 8x8 640x200 . . . Genoa SuperEGA BIOS 3.0+
52h = T 80x60 . . . . . Lava Chrome II EGA
= T 80x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x43 . . mono . . VEGA VGA
= T 132x44 9x8 . mono . . Ahead Systems EGA2001
= T 132x44 9x8 . 4 2 B800 Ahead B
= T 132x60 . . 16 . . MORSE VGA
= T 132x60 . . . . . Cirrus 510/520 chipset
= G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji&superimpose)
= G 94x29 8x14 752x410 16 . . ATI EGA Wonder
= G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
= G 100x75 8x8 800x600 16 . A000 Oak OTI-037 chipset [8]
= G 100x37 8x16 800x600 16 . A000 Oak OTI-067/077 chips [8]
= G 100x75 8x8 800x600 16 . A000 UM587 chipset
= G 128x30 8x16 1024x480 16 . . NEL Electronics BIOS
53h = T 80x25 8x16 . . . . NEL Electronics BIOS
= T 80x60 . . 16 . . MORSE VGA
= T 80x60 . . . . . Cirrus 510/520 chipset
= T 132x25 8x14 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x43 . . . . . Lava Chrome II EGA
= G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji, no superimp.)
= G . . 640x480 256 . . Oak VGA
= G 80x30 8x16 640x480 256 . A000 Oak OTI-067/OTI-077 [8]
= G 100x40 8x14 800x560 16 . . ATI EGA Wonder,ATI VIP
= G . . . . . . AX PC
54h = T 132x25 . . . . . Lava Chrome II EGA
= T 132x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x43 8x8 . . . . Paradise EGA-480
= T 132x43 8x8 . . . . NEL Electronics BIOS
= T 132x43 7x9 . 16/256K . B800 Paradise VGA
= T 132x43 8x9 . 16/256K . B800 Paradise VGA on multisync
= T 132x43 . . . . . Taxan 565 EGA
= T 132x43 . . . . . AST VGA Plus
= T 132x43 . . . . . Hewlett-Packard D1180A
= T 132x43 7x9 . 16 . . AT&T VDC600
= T 132x43 9x9 1188x387 16/256K . B800 WD90C
= T 132x43 9x9 1188x387 16/256K . B800 Diamond Speedstar 24X
= T 132x43 9x9 1188x387 16/256K . B800 Diamond Stealth 24
= T 132x43 8x8 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
= T 132x50 8x8 . 16 . A000 NCR 77C22 [9]
= G 100x42 8x14 800x600 16 . A000 ATI EGA Wonder, VGA Wonder
= G 100x42 8x14 800x600 16 . A000 ATI Ultra 8514A, ATI XL
= G . . 800x600 256 . A000 Oak VGA
= G 100x37 8x16 800x600 256 . A000 Oak OTI-067/077 chips [8]
55h = T 80x66 8x8 . 16/256K . A000 ATI VIP
= T 132x25 8x14 . . . . Paradise EGA-480
= T 132x25 8x14 . . . . NEL Electronics BIOS
= T 132x25 7x16 . 16/256K . B800 Paradise VGA
= T 132x25 8x16 . 16/256K . B800 Paradise VGA on multisync
= T 132x25 . . . . . Taxan 565 EGA
= T 132x25 . . . . . AST VGA Plus
= T 132x25 . . . . . Hewlett-Packard D1180A
= T 132x25 7x16 . 16 . . AT&T VDC600
= T 132x25 8x16 . 16 . A000 NCR 77C22 [9]
= T 132x25 9x16 1188x400 16/256K . B800 WD90C
= T 132x25 9x16 1188x400 16/256K . B800 Diamond Speedstar 24X
= T 132x25 9x16 1188x400 16/256K . B800 Diamond Stealth 24
= T 132x25 8x14 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
= T 132x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
= G 94x29 8x14 752x410 . . . Lava Chrome II EGA
= G 128x48 8x16 1024x768 16/256K . A000 ATI VGA Wonder v4+ [5]
= G . . 1024x768 16/256K . . ATI VGA Wonder Plus
= G . . 1024x768 16/256K . . ATI Ultra 8514A,ATI XL
= G 128x48 8x16 1024x768 4 . A000 Oak OTI-067/077 chips [8]
56h = T 132x43 8x8 . 3??? 2 B000 NSI Smart EGA+
= T 132x43 7x9 . 4 . B000 Paradise VGA
= T 132x43 8x9 . 4 . B000 Paradise VGA on multisync
= T 132x43 . . mono . . Taxan 565 EGA
= T 132x43 7x9 . 2 . . AT&T VDC600
= T 132x43 9x8 . . . . NEL Electronics BIOS
= T 132x50 8x8 . 4 . A000 NCR 77C22 [9]
= T 132x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
= G . . 1024x768 16 . A000 Oak VGA
= G 128x48 8x16 1024x768 16 . A000 Oak OTI-067/077 chips [8]
57h = T 132x25 8x14 . 3??? 4 B000 NSI Smart EGA+
= T 132x25 7x16 . 4 . B000 Paradise VGA
= T 132x25 8x16 . 4 . B000 Paradise VGA on multisync
= T 132x25 9x14 . . . . NEL Electronics BIOS
= T 132x25 . . mono . . Taxan 565 EGA
= T 132x25 7x16 . 2 . . AT&T VDC600
= T 132x25 9x14 . 16/256K . B800 Trident TVGA 8800/8900
= T 132x25 8x16 . 4 . A000 NCR 77C22 [9]
= G 96x48 8x16 768x1024 16 . A000 Oak OTI-067/077 chips [8]
58h = T 80x33 8x14 . 16 . B800 ATI EGA Wonder,ATI VIP
= T 80x32 9x16 . 16 . . Genoa 6400
= T 80x43 8x8 . . . . NEL Electronics BIOS
= T 132x30 9x16 . 16/256K . B800 Trident TVGA 8800/8900
= G 100x75 8x8 800x600 16/256K . A000 Paradise VGA
= G 100x75 8x8 800x600 16 . . AT&T VDC600
= G 100x75 8x8 800x600 16 . A000 NCR 77C22 [9]
= G 100x75 8x8 800x600 16 . . Diamond Speedstar 24X
= G 100x75 8x8 800x600 16/256K . A000 Paradise VGA, WD90C
= G . . 800x600 16 . . AST VGA Plus, Compaq VGA
= G . . 800x600 16 . . Dell VGA
= G . . 800x600 16 . . Hewlett-Packard D1180A
= G . . 800x600 ??? . . ELT VGA PLUS 16
= G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
= G 160x64 8x16 1280x1024 16 . A000 Oak OTI-077 chipset [8]
59h = T 80x43 9x8 . . . . NEL Electronics BIOS
= T 80x66 8x8 . 16/256K . A000 ATI VIP
= T 132x43 9x11 . 16/256K . B800 Trident TVGA 8800/8900
= G 100x75 8x8 800x600 2 . A000 Paradise VGA
= G 100x75 8x8 800x600 2 . . AT&T VDC600
= G . . 800x600 2 . . AST VGA Plus, Compaq VGA
= G . . 800x600 2 . . Dell VGA
= G . . 800x600 2 . . Hewlett-Packard D1180A
= G 100x75 8x8 800x600 2 . A000 NCR 77C22 [9]
= G 128x48 8x16 1024x768 256 . A000 Oak OTI-077 chipset [8]
5Ah = T 80x60 8x8 . . . . NEL Electronics BIOS
= T 132x60 9x8 . 16/256K . B800 Trident TVGA 8800/8900
= G 128x48 8x16 1024x768 2 . A000 NCR 77C22 [9]
5Bh = T 80x30 8x16 . . . B800 ATI VGA Wonder (undoc)
= G . . 640x350 256 . . Genoa 6400
= G 80x25 8x16 640x400 32K . A000 Oak OTI-067/077 chips [8]
= G . . 800x600 16 . . Maxxon, SEFCO TVGA, Imtec
= G 100x75 8x8 800x600 16/256K . A000 Trident TVGA 8800, 8900
= G . . 800x600 ??? . . Vobis MVGA
= G 100x37 8x16 800x600 . . . NEL Electronics BIOS
= G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [1,9]
5Ch = T 100x37 8x16 . . . . NEL Electronics BIOS
= G . . 640x400 256 . . Logix, ATI Prism Elite
= G . . 640x400 256 . . Maxxon, SEFCO TVGA, Imtec
= G 80x25 8x16 640x400 256/256K . A000 Zymos Poach, Hi Res 512
= G 80x25 8x16 640x400 256/256K . A000 Trident TVGA 8800/8900
= G 80x30 8x16 640x480 256 . . Genoa 6400
= G 80x30 8x16 640x480 32K . A000 Oak OTI-077 chipset [8]
= G 100x75 8x8 800x600 256 . A000 NCR 77C22 [9]
= G 100x75 8x8 800x600 256/256K . A000 WD90C
= G 100x75 8x8 800x600 256/256K . A000 Diamond Speedstar 24X
= G 100x37 8x16 800x600 256/256K . A000 Cirrus CL-GD5420/5422/5426
5Dh = T 100x75 8x8 . . . . NEL Electronics BIOS
= G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
= G . . 640x480 256 . . Logix, ATI Prism Elite
= G . . 640x480 256 . . Maxxon, SEFCO TVGA, Imtec
= G 80x30 8x16 640x480 256/256K . A000 Zymos Poach, Hi Res 512
= G 80x30 8x16 640x480 256/256K . A000 Trident TVGA 8800 (512K)
= G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [9]
= G 128x48 8x16 1024x768 16/256K . A000 WD90C
= G 128x48 8x16 1024x768 16 . . Diamond Speedstar 24X
= G 128x48 8x16 1024x768 16/256K . A000 Cirrus CL-GD5420/5422/5426
5Eh = G . . 640x400 256 . . Paradise VGA,VEGA VGA
= G . . 640x400 256 . . AST VGA Plus, NCR 77C22
= G . . 640x400 256 . . Compaq VGA, Dell VGA
= G 80x25 8x16 640x400 256 . . AT&T VDC600
= G 80x25 8x16 640x400 256 . A000 NCR 77C22 [9]
= G 80x25 8x16 640x400 256/256K . A000 WD90C
= G 80x25 8x16 640x400 256/256K . A000 Diamond Speedstar 24X
= G . . 800x600 16 . . Logix, ATI Prism Elite
= G 100x37 8x16 800x600 16 . . NEL Electronics BIOS
= G 100x75 8x8 800x600 256 . . Genoa 6400
= G 100x75 8x8 800x600 256/256K . A000 Zymos Poach, Trident 8900
= G 100x75 8x8 800x600 256/256K . A000 Hi Res 512
5Fh = G 80x25 8x16 640x400 64K . . STB Lightspeed ET4000/W32P
= G . . 640x480 256 . . Paradise VGA
= G . . 640x480 256 . . AST VGA Plus, NCR 77C22
= G . . 640x480 256 . . Compaq VGA, Dell VGA
= G . . 640x480 256 . . Hewlett-Packard D1180A
= G 80x30 8x16 640x480 256 . . AT&T VDC600 (512K)
= G 80x30 8x16 640x480 256 . A000 NCR 77C22 [9]
= G 80x30 8x16 640x480 256/256K . A000 WD90C
= G 80x30 8x16 640x480 256/256K . A000 Diamond Speedstar 24X
= G 80x30 8x16 640x480 256/256K . A000 Cirrus CL-GD5420/5422/5426
= G . . 1024x768 16 . . Logix, ATI Prism Elite
= G . . 1024x768 16 . . Maxxon, Imtec
= G 128x48 8x16 1024x768 16 . . Genoa 6400
= G 128x48 8x16 1024x768 16/256K . A000 Zymos Poach, Hi Res 512
= G 128x48 8x16 1024x768 16/256K . A000 Trident TVGA 88/8900 512K
60h = T 132x25 8x14 . 16/64 8 B800 Quadram Ultra VGA
= T 132x25 8x14 . 16 . . Genoa 6400
= T 132x25 8x14 . 16 . . Genoa SuperEGA BIOS 3.0+
= T 132x25 . . . . . Cirrus 5320 chipset
= T 132x25 . . 16 . . Chips&Technologies chipset
= G 80x??? . ???x400 . . . Corona/Cordata BIOS 4.10+
= G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
= G . . 752x410 . . . VEGA VGA
= G . . 752x410 16 . . Tatung VGA
= G . . 752x410 16 . . Video7 V-RAM VGA
= G 128x48 8x16 1024x768 4/256K . A000 Trident TVGA 8900
= G 128x48 8x16 1024x768 256/256K . A000 WD90C
= G 128x48 8x16 1024x768 256/256K . A000 Diamond Speedstar 24X
= G 128x48 8x16 1024x768 256/256K . A000 Cirrus CL-GD5420/5422/5426
61h = T 132x29 8x12 . 16/64 8 B800 Quadram Ultra VGA
= T 132x29 8x8 . 16 . . Genoa 6400
= T 132x29 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
= T 132x50 . . . . . Cirrus 5320 chipset
= T 132x50 . . 16 . . Chips&Technologies chipset
= G . . ???x400 . . . Corona/Cordata BIOS 4.10+
= G 80x25 8x16 640x400 256 . A000 ATI VGA Wonder,VGA Wonder+
= G 80x25 8x16 640x400 256 . A000 ATI Ultra 8514A,ATI XL
= G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
= G . . 720x540 . . . VEGA VGA
= G . . 720x540 16 . . Tatung VGA
= G . . 720x540 16 . . Video7 V-RAM VGA
= G 96x64 8x16 768x1024 16/256K . A000 Trident TVGA 88/8900 512K
= G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [1,9]
62h = T 132x32 8x11 . 16/64 6 B800 Quadram Ultra VGA
= T 132x32 8x12 . 16 . . Genoa 6400
= T 132x32 8x11 . 16 . . Genoa SuperEGA BIOS 3.0+
= G . . 640x450 16 . . Cirrus 510/520 chipset
= G 80x30 8x16 640x480 256 . A000 ATI VGA Wonder,VGA Wonder+
= G 80x30 8x16 640x480 256 . A000 ATI Ultra 8514A,ATI XL
= G 80x30 8x16 640x480 32K . A000 WD90C
= G 80x30 8x16 640x480 32K . A000 Diamond Speedstar 24X
= G . . 800x600 . . . VEGA VGA
= G . . 800x600 16 . . Tatung VGA
= G . . 800x600 16 . . Video7 V-RAM VGA
= G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
= G 128x48 8x16 1024x768 256/256K . A000 Trident TVGA 8900, Zymos
= G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [9]
63h = T 132x44 8x8 . 16/64 5 B800 Quadram Ultra VGA
= T 132x44 8x8 . 16 . . Genoa 6400
= T 132x44 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
= G . . 720x540 16 . . MORSE VGA
= G . . 720x540 16 . . Cirrus 510/520 chipset
= G 100x42 8x14 800x600 256 . A000 ATI VGA Wonder,VGA Wonder+
= G 100x42 8x14 800x600 256 . A000 ATI Ultra 8514A,ATI XL
= G . . 800x600 32K . A000 WD90C
= G . . 800x600 32K . A000 Diamond Speedstar 24X
= G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
= G . . 1024x768 2 . . Video7 V-RAM VGA
64h = T 132x60 8x8 . 16 . . Genoa 6400
= G . . 640x480 64K . A000 Cirrus CL-GD 5422/5426
= G . . 800x600 16 . . MORSE VGA
= G . . 800x600 16 . . Cirrus 510/520 chipset
= G . . 800x600 ??? . . SAMPO-Mira VGA
= G . . 1024x768 4 . . Video7 V-RAM VGA
= G 128x48 8x16 1024x768 256 . A000 ATI VGA Wonder Plus,ATI XL
= G 160x64 8x16 1280x1024 16/256K . A000 WD90C [1]
= G 160x64 8x16 1280x1024 16/256K . A000 Diamond Speedstar 24X [1]
65h = G . . 800x600 64K . A000 Cirrus CL-GD 5422/5426
= G . . 1024x768 16 . . Video7 V-RAM VGA
= G 128x48 8x16 1024x768 16 . A000 ATI VGA Wonder
66h = T 80x50 8x8 640x400 16/256K . B800 WD90C
= T 80x50 8x8 . 16 . B800 Diamond Speedstar 24X
= G . . 640x400 256 . . Tatung VGA
= G . . 640x400 256 . . Video7 V-RAM VGA
= G . . 640x480 32K . A000 Cirrus CL-GD 5422/5426
67h = T 80x43 8x8 640x344 16/256K . B800 WD90C
= T 80x43 8x8 . 16 . B800 Diamond Speedstar 24X
= G . . 640x480 256 . . Video7 V-RAM VGA
= G . . 800x600 32K . A000 Cirrus CL-GD 5422/5426
= G 128x48 8x16 1024x768 4 . A000 ATI VGA Wonder
= G 160x64 8x16 1280x1024 16 . A000 NCR 77C22 [1,9]
69h = T 132x50 8x8 1056x400 16/256K . B800 WD90C
= T 132x50 8x8 . 16 . B800 Diamond Speedstar 24X
= G . . 720x540 256 . . Video7 V-RAM VGA
6Ah = G . . 800x600 16 . A000 VESA standard interface
= G 100x75 8x8 800x600 16 . . Genoa 6400
= G 100x75 8x8 800x600 16 . . Diamond Speedstar 24X
= G . . 800x600 16 . A000 Ahead A
= G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) (see 71h)
= G . . 800x600 16 . . Zymos Poach, Hi Res 512
= G . . 800x600 16 . . Epson LT-386SX in CRT Mode
= G . . 800x600 16 . . Compuadd 316SL in CRT Mode
= G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
= G 100x42 8x14 800x600 . . A000 ATI VGA Wonder (undoc)
= G . . 800x600 16 . . Chips&Technologies chipset
= G 160x64 8x16 1280x1024 256 . A000 NCR 77C22 [1,9]
6Bh = T 100x37 8x16 . 16 . . Genoa 6400
= T 100x37 8x16 . . . . NEL Electronics BIOS
6Ch = G 80x30 8x16 640x480 16M . A000 Trident 8900CL/BIOS C04
= G 100x75 8x8 800x600 256 . . Genoa 6400
= G 160x60 8x16 1280x960 16/256K . A000 WD90C [1]
= G 160x60 8x16 1280x960 16/256K . A000 Diamond Speedstar 24X [1]
= G 160x64 8x16 1280x1024 16/256K . A000 Cirrus CL-GD 5422/5426 [1]
6Dh = G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
= G 160x64 8x16 1280x1024 256/256K . A000 Cirrus CL-GD 5422/5426 [1]
6Eh = G 40x25 8x8 320x200 64K . A000 Cirrus CL-GD 5422/5426
6Fh = G 40x25 8x8 320x200 16M . A000 Cirrus CL-GD 5422/5426
70h = extended mode set (see AX=0070h) . Everex Micro Enhancer EGA
= T 40x25 8x8 . 16 8 B800 Quadram (CGA double scan)
= T 40x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
= G . . 360x480 256 . . Cirrus 510/520/5320 chips
= G 90x28 8x14 720x392 16 1 A000 Ahead B
= G . . 800x600 16 . . C&T chipset, Cardinal
= G . . 1024x480 256 . . Trident 8900C BIOS C3.0
71h = T 80x25 8x8 . 16 8 B800 Quadram (CGA double scan)
= T 80x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
= G . . 528x400 256 . . Cirrus 510/520 chipset
= G 80x30 8x16 640x480 16M . A000 Cirrus CL-GD 5422/5426
= G 100x35 8x16 800x600 16/64 . A000 NSI Smart EGA+
= G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
= G . . 960x720 16 . . C&T chipset, Cardinal
= G . . 1024x480 256 . . Trident 8900C BIOS C3.0
72h = T 80x60 8x8 . 16 . B800 Quadram Ultra VGA
= T 80x60 8x8 . 16 . B800 Genoa 6400
= T 80x60 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
= G . . 528x480 256 . . Cirrus 510/520 chipset
= G 80x25 8x19 640x480 16 1 A000 DOS/V w/ any VGA
= G . . 640x480 32K . A000 ATI
= G . . 640x480 16M . A000 WD90C
= G . . 640x480 16M . A000 Diamond Speedstar 24X
= G . . 1024x768 16 . . C&T chipset, Cardinal
73h = G 80x60 8x8 640x480 16 . A000 Quadram Ultra VGA
= G 80x60 8x8 640x480 16 . . Genoa 6400
= G 80x60 8x8 640x480 16 . . Genoa SuperEGA BIOS 3.0+
= T 80x25 8x19 640x475 16 1 none DOS/V, emulated in VGA graph
74h = T 80x66 8x8 . 16 . B800 Quadram Ultra VGA
= T 80x66 8x8 . 16 . B800 Genoa 6400
= T 80x66 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
= G . . 640x400 2 . B800 Toshiba 3100 AT&T mode
= G 80x30 8x16 640x480 32K . A000 Trident 8900C/BIOS C03
= G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
= G . . 1024x768 64K . A000 Cirrus CL-GD 5422/5426 [1]
75h = G 80x30 8x16 640x480 64K . A000 Trident 8900C/BIOS C03
= G 80x66 . 640x528 16??? . A000 Quadram Ultra VGA
= G 80x66 . 640x528 16 . . Genoa SuperEGA BIOS 3.0+
= G 128x48 8x16 1024x768 4 1 A000 Ahead B
76h = T 94x29 8x14 . 16 . B800 Quadram Ultra VGA
= T 94x29 8x14 . . . . Genoa SuperEGA BIOS 3.0+
= G 100x75 8x8 800x600 32K . A000 Trident 8900C/BIOS C03
= G 128x48 8x16 1024x768 2 1 A000 Ahead B
77h = G 94x29 . 752x410 16??? . A000 Quadram Ultra VGA
= G 94x29 . 752x410 16 . . Genoa SuperEGA BIOS 3.0+
= G 100x75 8x8 800x600 64K . A000 Trident 8900C/BIOS C03
78h = T 100x37 8x16 . 16 . . Genoa 6400
= T 100x75 8x8 . 16 . B800 Quadram Ultra VGA
= T 100x75 8x8 . . . . Genoa SuperEGA BIOS 3.0+
= G . . 640x400 256 . . STB VGA/EM-16 Plus
= G . . 640x400 256 . . Cardinal, C&T chipset
= G . . 640x400 256 . . Cirrus 5320 chipset
79h = G . . 640x480 256 . . Cardinal, C&T chipset
= G 100x75 . 800x600 16??? . A000 Quadram Ultra VGA
= G 100x75 8x8 800x600 16 . . Genoa SuperEGA BIOS 3.0+
= G 100x75 8x8 800x600 16 . . Genoa 6400
7Ah = T 114x60 8x8 . 16 . B800 Quadram Ultra VGA
= T 114x60 8x8 . . . . Genoa SuperEGA BIOS 3.0+
= G . . 720x540 256 . . C&T chipset, Cardinal
7Bh = G . . 800x600 256 . . C&T chipset, Cardinal
= G 114x60 . 912x480 16??? . A000 Quadram Ultra VGA
= G . . 912x480 16 . . Genoa SuperEGA BIOS 3.0+
7Ch = G . . 512x512 16 . . Genoa
= G . . 800x600 256 . . C&T 82C453 chipset
7Dh = G 64x32 8x16 512x512 256 . . Genoa
7Eh = special mode set (see AX=007Eh) . Paradise VGA, AT&T VDC600
= G 80x25 8x16 640x400 256 . . Genoa 6400
= G . . 1024x768 256 . . C&T 82C453 chipset
= G 90x43 . . mono . B000 HERCULES.COM on HGC [14]
7Fh = special function set (see AX=007Fh) . Paradise VGA, AT&T VDC600
= G 128x48 8x16 1024x768 4 . . Genoa 6400
= G 90x29 . . mono . B000 HERCULES.COM on HGC [14]
82h = T 80x25 . . B&W . . AT&T VDC overlay mode [6]
83h = T 80x25 . . . . . AT&T VDC overlay mode [6]
86h = G . . 640x200 B&W . . AT&T VDC overlay mode [6]
88h = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
C0h = G . . 640x400 2/prog palette . AT&T VDC overlay mode [6]
= G . . 640x400 2/prog palette . Olivetti Quaderno overlay
C4h = disable output . . . . AT&T VDC overlay mode [6]
C8h = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno overlay
D0h = G . . 640x400 2 . B800 DEC VAXmate AT&T mode
Notes:
[1] interlaced only
[2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
otherwise to mode 23h, thus selecting the appropriate (monochrome or
color) 132x25 character mode.
for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
resident
[3] early XGA boards support 132-column text but do not have this BIOS mode
[4] DESQview intercepts calls to change into these two modes (21h is page 0,
22h is page 1) even if there is no Hercules graphics board installed
[5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
[6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
40h, or 44h
[7] BIOS text support is broken in this undocumented mode; scrolling moves only
about 1/3 of the screen (and does even that portion incorrectly), while
screen clears only clear about 3/4.
[8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
may choose to use only partially or not at all; thus, not all Oak boards
support all "Oak" modes listed here
[9] this card uses the full 128K A000h-BFFFh range for the video buffer,
precluding the use of a monochrome adapter in the same system
[10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
09/14/90 version
[11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
installation check for HERKULES.COM is the signature "Herkules" two bytes
beyond the INT 10 handler
[12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
21h or 27h; this version of the BIOS also sets the BIOS data area
incorrectly for extended text modes, resulting in scrolling after only
24 lines (the VMODE.EXE utility does set the data area correctly)
[13] The Tandy 1000SL/TL BIOS does not actually support this mode
[14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
graphics cards by Soft Warehouse, Inc. Its installation check is to
test whether the word preceding the INT 10 handler is 4137h.
Index: video modes
Index: installation check;HERKULES|installation check;HERCULES.COM
--------V-100070-----------------------------
INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
AX = 0070h
BL = mode (see #0010)
Desc: specify a proprietary display mode on the Everex Micro Enhancer or
Viewpoint video adapters
SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
(Table 0010)
Values for Everex video mode:
text/ text pixel pixel colors disply scrn monitor adapter
grph resol box resolution pages addr
00h = G . . 640x480 16 . . multisync EGA,VGA
01h = G . . 752x410 16 . . multisync EGA,VGA
02h = G . . 800x600 16 . . multisync EGA,VGA
03h = T 80x34 . . . . . multisync EGA,VGA
04h = T 80x60 . . . . . multisync EGA,VGA
05h = T 94x29 . . . . . multisync EGA only
06h = T 94x51 . . . . . multisync EGA only
07h = T 100x43 8x14 . 16 . . . VGA only
08h = T 100x75 8x8 . 16 . . . VGA only
09h = T 80x44 . . . . . EGA EGA only
0Ah = T 132x25 . . . . . EGA EGA,VGA
0Bh = T 132x44 . . . . . EGA EGA,VGA
0Ch = T 132x25 . . . . . CGA EGA only
0Dh = T 80x44 . . . . . mono EGA only
0Eh = T 132x25 . . . . . mono
0Fh = T 132x44 . . . . . mono
10h = reserved
11h = G . . 1280x350 4 . . . EGA only
12h = G . . 1280x600 4 . . . EGA only
13h = G . . 640x350 256 . . . EGA,EV673
14h = G . . 640x400 256 . . .
15h = G . . 512x480 256 . . .
16h = T 80x30 8x16 . 256 . . . VGA only
18h = T 100x27 8x16 . 16 . . . VGA only
20h = G . . 1024x768 16 . . . Everex 629,678
. . . . . . . Everex EV-673
21h = T 160x64 8x16 1280x1024 16 . . . 1MB VGA only
30h = G . . 640x480 256 . . . Everex 629,678
. . . . . . . Everex EV-673
31h = G . . 800x600 256 . . . Everex 629,678
. . . . . . . Everex EV-673
32h = G 128x48 8x16 1024x768 256 . . . 1MB VGA only
40h = T 132x30 8x16 . 16 . . . VGA only
50h = T 132x32 8x16 . mono . . . VGA only
62h = G 40x25 8x8 320x200 32K . . . Vwpt TC (EV629)
70h = G 64x30 8x16 512x480 32K . . . Viewpoint TC
71h = G 80x30 8x16 640x480 32K . . . Viewpoint TC
76h = G 64x30 8x16 512x480 16M . . . Viewpoint TC
77h = G 80x30 8x16 640x480 16M . . . Viewpoint TC
Index: video modes;Everex
--------V-10007E-----------------------------
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
AX = 007Eh
BX = horizontal dimension of the mode desired
CX = vertical dimension of the mode desired
(both BX/CX in pixels for graphics modes, rows for alpha modes)
DX = number of colors of the mode desired (0000h for monochrome modes)
Return: BH = 7Eh if successful (Paradise VGA)
AL = 7Eh if successful (AT&T VDC600)
Desc: specify a display mode by resolution rather than mode number
SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
Index: video modes;Paradise|video modes;AT&T
--------V-10007FBH00-------------------------
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
AX = 007Fh
BH = 00h
Return: AL = 7Fh if successful (AT&T VDC600)
BH = status (Paradise/Dell)
00h invalid function
7Fh successful
SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
--------V-10007FBH01-------------------------
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
AX = 007Fh
BH = 01h
Return: AL = 7Fh if successful (AT&T VDC600)
BH = status (Paradise/Dell)
00h invalid function
7Fh successful
Note: color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
mode 7 will set non-VGA MDA/Hercules operation
SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
--------V-10007FBH02-------------------------
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
AX = 007Fh
BH = 02h
Return: AL = 7Fh if successful (AT&T VDC600)
BH = status (Paradise/Dell)
00h invalid function
7Fh successful
---if successful---
BL = 00h if operating in VGA mode, 01h if non-VGA mode
CH = total video RAM size in 64k byte units
CL = video RAM used by the current mode
Note: under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
video memory in BX
SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
--------V-10007F-----------------------------
INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
AX = 007Fh
BH = function
03h lock current mode
allows current mode (VGA or non-VGA) to survive re-boot
04h enter MDA mode
05h enter CGA mode
06h enter monochrome VGA mode (also switches to video mode 7)
07h enter color VGA mode (also switches to video mode 3)
0Ah,0Bh,0Ch,0Dh,0Eh,0Fh WRITE PARADISE REGISTERS 0,1,2,3,4,5
(port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
BL = value to set in the paradise register
1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
(port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
Return: BL = value of the paradise register
BH = 7Fh if successful
29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
Return: AL = 7Fh if successful (AT&T VDC600)
BH = status (Paradise/Dell)
00h invalid function
7Fh successful
Desc: set emulation mode or access proprietary extended data registers
SeeAlso: AX=007Eh,AH=FF"Oak"
--------V-10007FBH60-------------------------
INT 10 - Paradise VGA - ???
AX = 007Fh
BH = 60h
BL = ??? (00h-13h)
???
Return: BH = status (00h failed or not supported, 7Fh successful)
???
Note: this function is supported by the 5/14/93 ROM for the Dell 486D
--------V-10007FBH61-------------------------
INT 10 - Paradise VGA - ???
AX = 007Fh
BH = 61h
ES:DI -> buffer for list of ??? (see #0011)
Return: BH = status (00h failed or not supported, 7Fh successful)
???
Note: this function is supported by the 5/14/93 ROM for the Dell 486D
Format of Paradise VGA list entry:
Offset Size Description (Table 0011)
00h BYTE ??? or 00h if end of list
01h BYTE ???
02h WORD ???
04h WORD ???
06h WORD ???
--------V-10007FBXA500-----------------------
INT 10 - Paradise VGA - ???
AX = 007Fh
BX = A500h
???
Return: BH = status (00h failed or not supported, 7Fh successful)
???
Note: this function is supported by the 5/14/93 ROM for the Dell 486D
--------V-10007FBHA5-------------------------
INT 10 - Paradise VGA - ???
AX = 007Fh
BH = A5h
BL = ???
bits 3-0: ??? (0-4)
bits 5,4: ???
???
Return: BH = status (00h failed or not supported, 7Fh successful)
???
Note: this function is supported by the 5/14/93 ROM for the Dell 486D
--------V-10007FBHA6-------------------------
INT 10 - Paradise VGA - ???
AX = 007Fh
BH = A6h
???
Return: BH = status (00h failed or not supported, 7Fh successful)
???
Note: this function is supported by the 5/14/93 ROM for the Dell 486D
--------V-1001-------------------------------
INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
AH = 01h
CH = cursor start and options (see #0012)
CL = bottom scan line containing cursor (bits 0-4)
Desc: specify the starting and ending scan lines to be occupied by the
hardware cursor in text modes
Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
returns unmapped cursor shape
UltraVision scales size to the current font height by assuming 14-line
monochrome and 8-line color fonts; this call is not valid if cursor
emulation has been disabled
applications which wish to change the cursor by programming the
hardware directly on EGA or above should call INT 10/AX=1130h or
read 0040h:0085h first to determine the current font height
on some adapters, setting the end line greater than the number of lines
in the font will result in the cursor extending to the top of the
next character cell on the right
BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
is not equal to the current video mode
SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#2469
Bitfields for cursor start and options:
Bit(s) Description (Table 0012)
7 should be zero
6,5 cursor blink
(00=normal, 01=invisible, 10=erratic, 11=slow)
(00=normal, other=invisible on EGA/VGA)
4-0 topmost scan line containing cursor
--------V-1002-------------------------------
INT 10 - VIDEO - SET CURSOR POSITION
AH = 02h
BH = page number
0-3 in modes 2&3
0-7 in modes 0&1
0 in graphics modes
DH = row (00h is top)
DL = column (00h is left)
SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
--------V-1003-------------------------------
INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
AH = 03h
BH = page number
0-3 in modes 2&3
0-7 in modes 0&1
0 in graphics modes
Return: AX = 0000h (Phoenix BIOS)
CH = start scan line
CL = end scan line
DH = row (00h is top)
DL = column (00h is left)
Notes: a separate cursor is maintained for each of up to 8 display pages
many ROM BIOSes incorrectly return the default size for a color display
(start 06h, end 07h) when a monochrome display is attached
SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h
--------V-1004-------------------------------
INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
AH = 04h
Return: AH = light pen trigger flag
00h not down/triggered
01h down/triggered
DH,DL = row,column of character light pen is on
CH = pixel row (graphics modes 04h-06h)
CX = pixel row (graphics modes with >200 rows)
BX = pixel column
Desc: determine the current position and status of the light pen (if
present)
Notes: on a CGA, returned column numbers are always multiples of 2 (320-
column modes) or 4 (640-column modes)
returned row numbers are only accurate to two lines
--------V-1004------------------------------------
INT 10 - HUNTER 16 - GET CURSOR ADDRESS
AH = 04h
BH = page
Return: DH = row (0..24)
DL = column (0..79)
CH = cursor pixel Y-address (0..199)
CL = cursor pixel X-address (0..639)
Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
pixel coordinates are for the lower left corner of the character cell
containing the cursor
SeeAlso: AH=60h"HUNTER"
--------V-1005-------------------------------
INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
AH = 05h
AL = new page number (00h to number of pages - 1) (see #0009)
Desc: specify which of possibly multiple display pages will be visible
Note: to determine whether the requested page actually exists, use AH=0Fh
to query the current page after making this call
SeeAlso: AH=0Fh,AH=43h,AH=45h
--------V-1005-------------------------------
INT 10 - VIDEO - PCjr, Tandy 1000 - MANIPULATE CRT/CPU PAGE REGISTERS
AH = 05h
AL = subfunction
80h read CRT and CPU page registers
Return: BH = CRT page register
BL = CPU page register
81h set CPU page register
BL = CPU page
82h set CRT page register
BH = CRT page
83h set both CPU and CRT page registers
BL = CPU page
BH = CRT page
Notes: the CPU page determines which 16K block of the first 128K of physical
memory will be mapped at B800h by the hardware
the CRT page determines the start address of the memory used by the
video controller
--------V-1005-------------------------------
INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
AH = 05h
AL = function
00h set address of graphics bitmap buffer (video modes 60h,61h)
BX = segment of buffer
0Fh get address of graphics bitmap buffer (video modes 60h,61h)
Return: DX = segment of graphics bitmap buffer
--------V-1006-------------------------------
INT 10 - VIDEO - SCROLL UP WINDOW
AH = 06h
AL = number of lines by which to scroll up (00h = clear entire window)
BH = attribute used to write blank lines at bottom of window
CH,CL = row,column of window's upper left corner
DH,DL = row,column of window's lower right corner
Note: affects only the currently active page (see AH=05h)
BUGS: some implementations (including the original IBM PC) have a bug which
destroys BP
the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
scrolling in an SVGA mode (800x600 or higher)
SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
--------V-1007-------------------------------
INT 10 - VIDEO - SCROLL DOWN WINDOW
AH = 07h
AL = number of lines by which to scroll down (00h=clear entire window)
BH = attribute used to write blank lines at top of window
CH,CL = row,column of window's upper left corner
DH,DL = row,column of window's lower right corner
Note: affects only the currently active page (see AH=05h)
BUGS: some implementations (including the original IBM PC) have a bug which
destroys BP
the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
scrolling in an SVGA mode (800x600 or higher)
SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
--------V-1008-------------------------------
INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
AH = 08h
BH = page number (00h to number of pages - 1) (see #0009)
Return: AH = character's attribute (text mode only) (see #0013)
AL = character
Notes: for monochrome displays, a foreground of 1 with background 0 is
underlined
the blink bit may be reprogrammed to enable intense background colors
using AX=1003h or by programming the CRT controller
the foreground intensity bit (3) can be programmed to switch between
character sets A and B on EGA and VGA cards, thus enabling 512
simultaneous characters on screen. In this case the bit's usual
function (intensity) is regularly turned off.
in graphics modes, only characters drawn with white foreground pixels
are matched by the pattern-comparison routine
SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
Bitfields for character's display attribute:
Bit(s) Description (Table 0013)
7 foreground blink or (alternate) background bright (see also AX=1003h)
6-4 background color (see #0014)
3 foreground bright or (alternate) alternate character set (see AX=1103h)
2-0 foreground color (see #0014)
SeeAlso: #0025
(Table 0014)
Values for character color:
Normal Bright
000b black dark gray
001b blue light blue
010b green light green
011b cyan light cyan
100b red light red
101b magenta light magenta
110b brown yellow
111b light gray white
--------V-1009-------------------------------
INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
AH = 09h
AL = character to display
BH = page number (00h to number of pages - 1) (see #0009)
background color in 256-color graphics modes (ET4000)
BL = attribute (text mode) or color (graphics mode)
if bit 7 set in <256-color graphics="" mode,="" character="" is="" xor'ed="" onto="" screen="" cx="number" of="" times="" to="" write="" character="" notes:="" all="" characters="" are="" displayed,="" including="" cr,="" lf,="" and="" bs="" replication="" count="" in="" cx="" may="" produce="" an="" unpredictable="" result="" in="" graphics="" modes="" if="" it="" is="" greater="" than="" the="" number="" of="" positions="" remaining="" in="" the="" current="" row="" seealso:="" ah="08h,AH=0Ah,AH=4Bh" grafix",int"="" 17/ah="60h,INT" 1f,int="" 43,int="" 44="" --------v-100a-------------------------------="" int="" 10="" -="" video="" -="" write="" character="" only="" at="" cursor="" position="" ah="0Ah" al="character" to="" display="" bh="page" number="" (00h="" to="" number="" of="" pages="" -="" 1)="" (see="" #0009)="" background="" color="" in="" 256-color="" graphics="" modes="" (et4000)="" bl="attribute" (pcjr,="" tandy="" 1000="" only)="" or="" color="" (graphics="" mode)="" if="" bit="" 7="" set="" in="">256-color><256-color graphics="" mode,="" character="" is="" xor'ed="" onto="" screen="" cx="number" of="" times="" to="" write="" character="" notes:="" all="" characters="" are="" displayed,="" including="" cr,="" lf,="" and="" bs="" replication="" count="" in="" cx="" may="" produce="" an="" unpredictable="" result="" in="" graphics="" modes="" if="" it="" is="" greater="" than="" the="" number="" of="" positions="" remaining="" in="" the="" current="" row="" seealso:="" ah="08h,AH=09h,AH=4Bh,INT" 17/ah="60h,INT" 1f,int="" 43,int="" 44="" --------v-100b--bh00-------------------------="" int="" 10="" -="" video="" -="" set="" background/border="" color="" ah="0Bh" bh="00h" bl="background/border" color="" (border="" only="" in="" text="" modes)="" seealso:="" ah="0Bh/BH=01h" --------v-100b--bh01-------------------------="" int="" 10="" -="" video="" -="" set="" palette="" ah="0BH" bh="01h" bl="palette" id="" 00h="" background,="" green,="" red,="" and="" brown/yellow="" 01h="" background,="" cyan,="" magenta,="" and="" white="" seealso:="" ah="0Bh/BH=00h" --------v-100c-------------------------------="" int="" 10="" -="" video="" -="" write="" graphics="" pixel="" ah="0Ch" bh="page" number="" al="pixel" color="" if="" bit="" 7="" set,="" value="" is="" xor'ed="" onto="" screen="" except="" in="" 256-color="" modes="" cx="column" dx="row" desc:="" set="" a="" single="" pixel="" on="" the="" display="" in="" graphics="" modes="" notes:="" valid="" only="" in="" graphics="" modes="" bh="" is="" ignored="" if="" the="" current="" video="" mode="" supports="" only="" one="" page="" seealso:="" ah="0Dh,AH=46h" --------v-100d-------------------------------="" int="" 10="" -="" video="" -="" read="" graphics="" pixel="" ah="0Dh" bh="page" number="" cx="column" dx="row" return:="" al="pixel" color="" desc:="" determine="" the="" current="" color="" of="" the="" specified="" pixel="" in="" grahics="" modes="" notes:="" valid="" only="" in="" graphics="" modes="" bh="" is="" ignored="" if="" the="" current="" video="" mode="" supports="" only="" one="" page="" seealso:="" ah="0Ch,AH=47h" --------v-100e-------------------------------="" int="" 10="" -="" video="" -="" teletype="" output="" ah="0Eh" al="character" to="" write="" bh="page" number="" bl="foreground" color="" (graphics="" modes="" only)="" desc:="" display="" a="" character="" on="" the="" screen,="" advancing="" the="" cursor="" and="" scrolling="" the="" screen="" as="" necessary="" notes:="" characters="" 07h="" (bel),="" 08h="" (bs),="" 0ah="" (lf),="" and="" 0dh="" (cr)="" are="" interpreted="" and="" do="" the="" expected="" things="" ibm="" pc="" roms="" dated="" 4/24/81="" and="" 10/19/81="" require="" that="" bh="" be="" the="" same="" as="" the="" current="" active="" page="" seealso:="" ah="02h,AH=0Ah" --------u-100e--cxabcd-----------------------="" int="" 10="" -="" v20-xt-bios="" -="" teletype="" output="" with="" attribute="" ah="0Eh" cx="ABCDh" bp="ABCDh" al="character" to="" write="" bh="page" number="" bl="foreground" color="" (text="" modes="" as="" well="" as="" graphics="" modes)="" program:="" v20-xt-bios="" is="" a="" bios="" extension="" by="" peter="" koehlmann="" c't="" magazine="" desc:="" display="" a="" character="" on="" the="" screen,="" advancing="" the="" cursor="" and="" scrolling="" the="" screen="" as="" necessary="" notes:="" characters="" 07h="" (bel),="" 08h="" (bs),="" 0ah="" (lf),="" and="" 0dh="" (cr)="" are="" interpreted="" and="" do="" the="" expected="" things="" seealso:="" int="" 15/ah="84h" v20-xt-bios""="" --------v-100f-------------------------------="" int="" 10="" -="" video="" -="" get="" current="" video="" mode="" ah="0Fh" return:="" ah="number" of="" character="" columns="" al="display" mode="" (see="" #0009="" at="" ah="00h)" bh="active" page="" (see="" ah="05h)" notes:="" if="" mode="" was="" set="" with="" bit="" 7="" set="" ("no="" blanking"),="" the="" returned="" mode="" will="" also="" have="" bit="" 7="" set="" ega,="" vga,="" and="" ultravision="" return="" either="" al="03h" (color)="" or="" al="07h" (monochrome)="" in="" all="" extended-row="" text="" modes="" hp="" 200lx="" returns="" al="07h" (monochrome)="" if="" mode="" was="" set="" to="" al="21h" and="" always="" 80="" resp.="" 40="" columns="" in="" all="" text="" modes="" regardless="" of="" current="" zoom="" setting="" (see="" ah="D0h)" when="" using="" a="" hercules="" graphics="" card,="" additional="" checks="" are="" necessary:="" mode="" 05h:="" if="" word="" 0040h:0063h="" is="" 03b4h,="" may="" be="" in="" graphics="" page="" 1="" (as="" set="" by="" dosshell="" and="" other="" microsoft="" software)="" mode="" 06h:="" if="" word="" 0040h:0063h="" is="" 03b4h,="" may="" be="" in="" graphics="" page="" 0="" (as="" set="" by="" dosshell="" and="" other="" microsoft="" software)="" mode="" 07h:="" if="" byte="" 0040h:0065h="" bit="" 1="" is="" set,="" hercules="" card="" is="" in="" graphics="" mode,="" with="" bit="" 7="" indicating="" the="" page="" (mode="" set="" by="" hercules="" driver="" for="" borland="" turbo="" c)="" seealso:="" ah="00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h" --------v-100f56bx4756-----------------------="" int="" 10="" -="" vuimage="" display="" driver="" (v2.20="" and="" below)="" ax="0F56h" bx="4756h" cx="4944h" dl="function" 01h="" installation="" check="" return:="" ax="5649h" bx="4443h" cx="5647h" dh="01h" 02h="" get="" first="" video="" mode's="" parameters="" return:="" ax="BIOS" mode="" number="" bx="width" in="" pixels="" cx="height" in="" pixels="" dx="number" of="" colors="" 03h="" get="" next="" video="" mode's="" parameters="" return:="" as="" for="" dl="02h" 04h="" display="" line???="" es:di="" -=""> record (see #0015)
???
Return: ???
Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
Note: the use of TSR display drivers was discontinued after v2.20
Index: installation check;VUIMAGE display driver
Format of record for VUIMAGE Function 04h:
Offset Size Description (Table 0015)
00h WORD row number
02h WORD starting column???
04h WORD ending column???
???
--------V-100F--SIF123-----------------------
INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
AH = 0Fh
SI = F123h
DI = 321Fh
Return: AH = number of character columns
AL = display mode (see #0009 at AH=00h)
BH = active page (see AH=05h)
SI = DI = F345h if installed
Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
also have bit 7 set
EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
(monochrome) in all extended-row text modes
SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
--------V-1010-------------------------------
INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
AH = 10h
CH,CL = row,column of upper left corner of window
DH,DL = row,column of lower right corner of window
Return: AL = status
00h successful
01h failed
AH destroyed
Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
Note: when a window has been set, all output via AH=0Eh is restricted to
the specified window
SeeAlso: AH=11h"Window",AH=12h"Window"
--------V-1010-------------------------------
INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
AH = 10h
AL = speed
00h fast
01h slow (scrolling only moves characters during vertical retrace)
Return: AH = previous speed
--------V-101000-----------------------------
INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
AX = 1000h
BL = palette register number (00h-0Fh)
= attribute register number (undocumented) (see #0016)
BH = color or attribute register value
Notes: on MCGA, only BX = 0712h is supported
under UltraVision, the palette locking status (see AX=CD01h)
determines the outcome
SeeAlso: AX=1002h,AX=1007h,AX=CD01h
(Table 0016)
Values for attribute register number:
10h attribute mode control register (should let BIOS control this)
11h overscan color register (see also AX=1001h)
12h color plane enable register (bits 3-0 enable corresponding
text attribute bit)
13h horizontal PEL panning register
14h color select register
--------V-101001-----------------------------
INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
AX = 1001h
BH = border color (00h-3Fh)
BUG: the original IBM VGA BIOS incorrectly updates the parameter save area
and places the border color at offset 11h of the palette table
rather than offset 10h
Note: under UltraVision, the palette locking status (see AX=CD01h)
determines the outcome
SeeAlso: AX=1002h,AX=1008h,AX=CD01h
--------V-101002-----------------------------
INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
AX = 1002h
ES:DX -> palette register list (see #0017)
Note: under UltraVision, the palette locking status (see AX=CD01h)
determines the outcome
SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
Format of palette register list:
Offset Size Description (Table 0017)
00h 16 BYTEs colors for palette registers 00h through 0Fh
10h BYTE border color
--------V-101003-----------------------------
INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
AX = 1003h
BL = new state
00h background intensity enabled
01h blink enabled
BH = 00h to avoid problems on some adapters
Notes: although there is no function to get the current status on adapters
prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0037)
when configured for a monochrome display, the Boca Research Multi-EGA
with ROM v M1.1 Type D has its screen disrupted if BH is not clear
this call is reported to be "Get Cursor Position" on the Tandy
1000SL/TL
SeeAlso: AH=08h,AH=1Bh
--------V-101007-----------------------------
INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
AX = 1007h
BL = palette or attribute (undoc) register number (see #0016)
Return: BH = palette or attribute register value
Note: UltraVision v2+ supports this function even on color EGA systems in
video modes 00h-03h, 10h, and 12h; direct programming of the palette
registers will cause incorrect results because the EGA registers are
write-only. To guard against older versions or unsupported video
modes, programs which expect to use this function on EGA systems
should set BH to FFh on entry.
SeeAlso: AX=1000h,AX=1009h
--------V-101008-----------------------------
INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
AX = 1008h
Return: BH = border color (00h-3Fh)
Note: (see AX=1007h)
SeeAlso: AX=1001h
--------V-101009-----------------------------
INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
AX = 1009h
ES:DX -> 17-byte buffer for palette register list (see #0017)
Note: UltraVision v2+ supports this function even on color EGA systems in
video modes 00h-03h, 10h, and 12h; direct programming of the palette
registers will cause incorrect results because the EGA registers are
write-only. To guard against older versions or unsupported video
modes, programs which expect to use this function on EGA systems
should set the ES:DX buffer to FFh before calling.
SeeAlso: AX=1002h,AX=1007h,AX=CD02h
--------V-101010-----------------------------
INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
AX = 1010h
BX = register number
CH = new value for green (0-63)
CL = new value for blue (0-63)
DH = new value for red (0-63)
SeeAlso: AX=1012h,AX=1015h
--------V-101012-----------------------------
INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
AX = 1012h
BX = starting color register
CX = number of registers to set
ES:DX -> table of 3*CX bytes where each 3 byte group represents one
byte each of red, green and blue (0-63)
SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
--------V-101013-----------------------------
INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
AX = 1013h
BL = subfunction
00h select paging mode
BH = 00h select 4 blocks of 64
BH = 01h select 16 blocks of 16
01h select page
BH = page number (00h to 03h) or (00h to 0Fh)
Note: this function is not valid in mode 13h
SeeAlso: AX=101Ah
--------V-101015-----------------------------
INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
AX = 1015h
BL = palette register number
Return: DH = red value
CH = green value
CL = blue value
SeeAlso: AX=1010h,AX=1017h
--------V-101017-----------------------------
INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
AX = 1017h
BX = starting palette register
CX = number of palette registers to read
ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
Return: buffer filled with CX red, green and blue triples
SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
--------V-101018-----------------------------
INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
AX = 1018h
BL = new PEL value
SeeAlso: AX=1019h
--------V-101019-----------------------------
INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
AX = 1019h
Return: BL = value read
SeeAlso: AX=1018h
--------V-10101A-----------------------------
INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
AX = 101Ah
Return: BL = paging mode
00h four pages of 64
01h sixteen pages of 16
BH = current page
SeeAlso: AX=1013h
--------V-10101B-----------------------------
INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
AX = 101Bh
BX = starting palette register
CX = number of registers to convert
Desc: convert the RGB values of one or more palette registers such that the
resulting values are grays with the same intensities as the original
colors
SeeAlso: AH=12h/BL=33h
--------V-1010E0-----------------------------
INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
AX = 10E0h
BL = video mode (see also #0009 at AH=00h)
2Eh = 640x480
Return: ???
SeeAlso: AH=00h,AX=10F0h
--------V-1010F0-----------------------------
INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
AX = 10F0h
BL = video mode (see also #0009 at AH=00h)
13h = 320x200x32K
2Dh = 640x350x32K
2Eh = 640x480x32K
2Fh = 640x400x32K
30h = 800x600x32K
3Eh = 640x480x16M (Genoa 7900)
FFh Tseng 24-bit color mode
BH = mode
2Dh = 640x480
2Eh = 640x480x16M
2Fh = 640x400
30h = 800x600
38h = 1024x768??? (Tseng ET4000/W32i)
Return: AL = 10h if supported
AH = status
00h if successful
other on error
Desc: switch the display into a graphics mode with 15 or more bits per pixel
Note: the Tseng HiColor BIOS extensions are supported by:
Diamond Computer Systems SpeedStar HiColor VGA
Everex Systems HC VGA
Focus Information Systems 2theMax 4000
Cardinal Technologies VGA732
Orchid ProDesigner IIs Genoa 7900
SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
Index: video modes;Tseng Hi-Color
--------V-1010F1-----------------------------
INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
AX = 10F1h
Return: AL = 10h if supported
BL = type of digital/analog converter (see #0018)
Desc: determine which type of digital-to-analog converter is installed on the
display board
SeeAlso: AX=10F0h,AX=10F2h
(Table 0018)
Values for type of DAC:
00h normal VGA DAC
01h Sierra SC1148x HiColor DAC
---Diamond SpeedStar 24---
02h new Sierra SS24 DAC (24-bit)
---generic Tseng BIOS v8+ ---
02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
03h ATT20c490/1/2 (15/16/24-bit)
04h AcuMos ADAC1 (15/16/24-bit)
05h unknown 15/16/24-bit DAC
06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
07h Diamond SS2410 (15/24-bit)
08h unknown 15/16/24-bit DAC
09h unknown 15/16/24-bit DAC
else other HiColor DAC
--------V-1010F2-----------------------------
INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
AX = 10F2h
BL = function
00h get current HiColor mode
01h set 15-bit HiColor mode
02h set 16-bit HiColor mode
Return: AX = 0010h if supported
BL = video mode type
00h not in HiColor mode
01h 15-bit RGB mode
02h 16-bit RGB mode
03h 24-bit RGB mode
Desc: determine whether the display is in a graphics mode with 15 or more
bits per pixel color resolution
Note: set (BL=01h/02h) only works if already in a HiColor mode
SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
--------V-1011-------------------------------
INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
AH = 11h
Return: CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner
Desc: determine the portion of the display to which output is restricted
Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
SeeAlso: AH=10h"Window",AH=12h"Window"
--------V-1011-------------------------------
INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
AH = 11h
The following functions will cause a mode set, completely resetting
the video environment, but without clearing the video buffer
AL = 00h, 10h: load user-specified patterns
ES:BP -> user table
CX = count of patterns to store
DX = character offset into map 2 block
BL = block to load in map 2
BH = number of bytes per character pattern
AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
BL = block to load
AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
BL = block to load
AL = 03h: set block specifier (allows dual character sets on screen)
BL = block specifier (see #0019)
AL = 04h, 14h: load ROM 8x16 character set (VGA)
BL = block to load
Notes: The routines called with AL=1xh are designed to be called only
immediately after a mode set and are similar to the routines called
with AL=0xh, except that:
Page 0 must be active.
Bytes/character is recalculated.
Max character rows is recalculated.
CRT buffer length is recalculated.
CRTC registers are reprogrammed as follows:
R09 = bytes/char-1 ; max scan line (mode 7 only)
R0A = bytes/char-2 ; cursor start
R0B = 0 ; cursor end
R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
R14 = bytes/char ; underline loc
(*** BUG: should be 1 less ***)
the current block specifiers may be determined with INT 10/AH=1Bh,
looking at offsets 2Bh and 2Ch of the returned data (VGA only)
(see AH=1Bh,#0037)
SeeAlso: AH=1Bh,AX=CD10h
Bitfields for block specifier:
Bit(s) Description (Table 0019)
---EGA/MCGA---
0,1 block selected by characters with attribute bit 3 clear
2,3 block selected by characters with attribute bit 3 set
---VGA---
0,1,4 block selected by characters with attribute bit 3 clear
2,3,5 block selected by characters with attribute bit 3 set
--------V-1011-------------------------------
INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
AH = 11h
AL = 07h load user-specified paterns and recalculate mode parms
parameters are the same as for AL = 10h
AL = 08h load monochrome patterns (8x14) and recalculate mode parms
parameters are the same as for AL = 11h
AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
parameters are the same as for AL = 12h
AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
parameters are the same as for AL = 14h
Note: these functions should only be called under the same conditions as
AL=1xh (see entry above)
SeeAlso: AH=11h
--------V-10110F-----------------------------
INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
AX = 110Fh
ES:BP -> user table for INT 1F
Note: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
--------V-101110-----------------------------
INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
AX = 1110h
ES:BP -> user table
CX = bytes per character
BL = row specifier
00h user set
DL = number of rows
01h 14 rows
02h 25 rows
03h 43 rows
Note: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
SeeAlso: AX=110Fh,AX=1112h,AX=1121h
--------V-101111-----------------------------
INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
AX = 1111h
BL = row specifier (see AX=1121h)
Note: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
SeeAlso: AX=110Fh,AX=1110h,AX=1122h
--------V-101112-----------------------------
INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
AX = 1112h
BL = row specifier (see AX=1121h)
Note: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
--------V-101120-----------------------------
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
AX = 1120h
ES:BP -> user table for INT 1F
Note: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
--------V-101121-----------------------------
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
AX = 1121h
ES:BP -> user table
CX = bytes per character
BL = row specifier
00h user set
DL = number of rows
01h 14 rows
02h 25 rows
03h 43 rows
Note: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
--------V-101122-----------------------------
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
AX = 1122h
BL = row specifier (see AX=1121h)
Notes: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
UltraVision v2+ sets INT 43 to the appropriate font on this call
SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
--------V-101123-----------------------------
INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
AX = 1123h
BL = row specifier (see AX=1121h)
Notes: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
UltraVision v2+ sets INT 43 to the appropriate font on this call
SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
--------V-101124-----------------------------
INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
AX = 1124h
BL = row specifier (see AX=1121h)
Notes: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
UltraVision v2+ sets INT 43 to the appropriate font on this call
SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
--------V-101129-----------------------------
INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
AX = 1129h
BL = row specifier (see AX=1121h)
Notes: this function is meant to be called immediately after a mode set;
results are unpredictable at other times
UltraVision v2+ sets INT 43 to the appropriate font on this call
SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
--------V-101130-----------------------------
INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
AX = 1130h
BH = pointer specifier
00h INT 1Fh pointer
01h INT 43h pointer
02h ROM 8x14 character font pointer
03h ROM 8x8 double dot font pointer
04h ROM 8x8 double dot font (high 128 characters)
05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
06h ROM 8x16 font (MCGA, VGA)
07h ROM alternate 9x16 font (VGA only) (see #0020)
11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
Return: ES:BP = specified pointer
CX = bytes/character of on-screen font (not the requested font!)
DL = highest character row on screen
Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
8xN font at ES:BP+256N
BUG: the IBM EGA and some other EGA cards return in DL the number of rows on
screen rather than the highest row number (which is one less).
SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
Format of alternate font table [array]:
Offset Size Description (Table 0020)
00h BYTE character to be replaced (00h = end of table)
01h N BYTEs graphics data for character, one byte per scan line
--------V-101130BX4D4F-----------------------
INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
AX = 1130h
BX = 4D4Fh
Return: CX = 4F4Dh if installed
ES:BP -> M10_SCR INT 10 handler
Program: M10_SCR is a shareware extended text mode and font driver by
I.V. Morozov
SeeAlso: INT 16/AX=4D4Fh
--------V-1012-------------------------------
INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
AH = 12h
Return: BH = attribute to use on blanked lines when scrolling
Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
SeeAlso: AH=11h"Window",AH=12h"Window"
--------V-1012--BL10-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
AH = 12h
BL = 10h
Return: BH = video state
00h color mode in effect (I/O port 3Dxh)
01h mono mode in effect (I/O port 3Bxh)
BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
CH = feature connector bits (see #0021)
CL = switch settings (see #0022,#0023)
AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
Note: one possible check for the presence of an EGA or later display card
is to call this function with BH=FFh; if not present, BH will be
unchanged on return
Bitfields for feature connector bits:
Bit(s) Description (Table 0021)
0 FEAT 1 line, state 2
1 FEAT 0 line, state 2
2 FEAT 1 line, state 1
3 FEAT 0 line, state 1
4-7 unused (0)
Bitfields for switch settings:
Bit(s) Description (Table 0022)
0 switch 1 OFF
1 switch 2 OFF
2 switch 3 OFF
3 switch 4 OFF
4-7 unused
(Table 0023)
Values for switch settings on original EGA/VGA:
00h primary MDA/HGC, secondary EGA+ 40x25
01h-03h primary MDA/HGC, secondary EGA+ 80x25
04h primary CGA 40x25, secondary EGA+ 80x25 mono
05h primary CGA 80x25, secondary EGA+ 80x25 mono
06h primary EGA+ 40x25, secondary MDA/HGC (optional)
07h-09h primary EGA+ 80x25, secondary MDA/HGC (optional)
0Ah primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
0Bh primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
--------V-1012--BL11-------------------------
INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
AH = 12h
BL = 11h
Return: AL = 12h if function supported
BL = ??? (10h)
ES:BP -> BIOS info structure (see #0024)
SeeAlso: AH=12h/BL=12h"TRIDENT"
Format of Trident BIOS Info structure:
Offset Size Description (Table 0024)
00h BYTE ??? (0000h)
01h BYTE OEM Code (00h for original Trident)
02h WORD ID??? (1073h for 8800BR, 1074 for 8800CS)
04h 8 BYTEs BIOS date ('mm/dd/yy')
0Ch WORD ???
0Eh 8 BYTEs BIOS Version (' C3-128 ', ' C3-129 ')
--------V-1012--BL12-------------------------
INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
AH = 12h
BL = 12h
Return: AL = 12h if function supported
AH = number of 256K banks of RAM installed
SeeAlso: AH=12h/BL=11h"TRIDENT"
--------V-1012--BL20-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
AH = 12h
BL = 20h select alternate print screen routine
Desc: installs a PrtSc routine from the video card's BIOS to replace the
default PrtSc handler from the ROM BIOS, which usually does not
understand screen heights other than 25 lines
Note: some adapters disable print-screen instead of enhancing it
SeeAlso: INT 05
--------V-1012--BL2E-------------------------
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
AH = 12h
BL = 2Eh
Note: due to an omitted end-of-list marker, these versions of the BIOS will
crash the system on this function
--------V-1012--BL30-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
AH = 12h
BL = 30h
AL = vertical resolution
00h 200 scan lines
01h 350 scan lines
02h 400 scan lines
Return: AL = 12h if function supported
Desc: specify the number of scan lines used to display text modes
Note: the specified resolution will take effect on the next mode set
SeeAlso: AH=00h
--------V-1012--BL31-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
AH = 12h
BL = 31h
AL = new state
00h enable default palette loading
01h disable default palette loading
Return: AL = 12h if function supported
Desc: specify whether a default palette should be loaded when the display
mode is set
SeeAlso: AH=00h
--------V-1012--BL32-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
AH = 12h
BL = 32h
AL = new state
00h enable video addressing
01h disable video addressing
Return: AL = 12h if function supported
Desc: specify whether the CPU should have access to video memory and the
display adapters I/O registers
--------V-1012--BL33-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
AH = 12h
BL = 33h
AL = new state
00h enable gray scale summing
01h disable gray scale summing
Return: AL = 12h if function supported
Desc: specify whether or not colors should be converted to gray scale when
palette or color registers are loaded
SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
--------V-1012--BL34-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
AH = 12h
BL = 34h
AL = new state
00h enable alphanumeric cursor emulation
01h disable alphanumeric cursor emulation
Return: AL = 12h if function supported
Desc: specify whether the BIOS should automatically remap cursor start/end
according to the current character height in text modes
SeeAlso: AH=01h,AH=03h
--------V-1012--BL35-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
AH = 12h
BL = 35h
AL = subfunction
00h initial adapter video off
01h initial planar video on
02h switch active video off
03h switch inactive video on
80h *UNDOCUMENTED* set system board video active flag
ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
Return: AL = 12h if function supported
Desc: switch between two video adapters which may otherwise have address
conflicts
--------V-1012--BL36-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
AH = 12h
BL = 36h
AL = new state
00h enable refresh
01h disable refresh
Return: AL = 12h if function supported
Desc: specify whether the contents of video memory should be displayed on
the screen; disabling refresh effectively blanks the screen
SeeAlso: AX=BF05h
--------V-1012--BL37-------------------------
INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
AH = 12h
BL = 37h
AL = text attribute type (00h normal VGA, 01h mainframe type)
Return: AL = 12h if supported
SeeAlso: #0025,AH=08h
Bitfields for XGA mainframe type character attributes:
Bit(s) Description (Table 0025)
7 blink double rate (75% ON time) or use color 8 as background
(see AX=1003h)
6 reverse video
5 underlined
4 left-most and right-most dots of underline area inverted
3 foreground intensity/character font select
2-0 foreground color
SeeAlso: #0013,#0033
--------V-1012--BL53-------------------------
INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
AH = 12h
BL = 53h
Note: due to an omitted end-of-list marker, this version of the BIOS will
crash the system on this function
--------V-1012--BL57-------------------------
INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
AH = 12h
BL = 57h
Note: due to an omitted end-of-list marker, this version of the BIOS will
crash the system on this function
--------V-1012--BH55-------------------------
INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
AH = 12h
BH = 55h
BL = subfunction
00h disable enhanced features
01h enable enhanced features
02h get status
Return: AL = status flags (see #0026)
03h disable register trapping (CGA emulation)
04h enable register trapping
05h program video mode
ES:BP -> video mode table (see #0027)
06h get mode table
AL = video mode
Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
BP = FFFFh on error
Note: the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
the mode table for mode 03h, and then looks for a signature string
beginning within 32 bytes of the offset specified by the word at
ES:000Ch
SeeAlso: AH=FFh"Oak"
Index: installation check;ATI video adapters
Bitfields for status flags:
Bit(s) Description (Table 0026)
3 set if enhanced features enabled
7-5 monitor type
000 PS/2 mono
001 PS/2 color
010 multi-sync
011 Taxan 650 25kHz
100 RGB
101 mono
110 EGA
111 Compaq internal
Format of ATI VGA Wonder video mode table:
Offset Size Description (Table 0027)
00h BYTE number of columns
01h BYTE maximum row (number of rows - 1)
02h BYTE scan lines per row
03h WORD video buffer size in bytes
05h 4 BYTEs values for Sequencer registers 1-4
09h BYTE value for Miscellaneous Output register
0Ah 25 BYTEs values for CRTC registers 00h-18h
00h horizontal total size (chars)
01h horizontal displayed (chars)
02h horizontal sync position (chars)
03h horizontal sync width (chars)
04h vertical total size (char rows)
05h vertical total adjust (scan lines)
06h vertical displayed (char rows)
07h vertical sync position (char rows)
08h interlace mode
09h max scan line in row
0Ah cursor start scan line
0Bh cursor end scan line
0Ch screen memory start (high)
0Dh screen memory start (low)
0Eh cursor address (high)
0Fh cursor address (low)
10h light pen (high)
11h light pen (low)
23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h)
37h 9 BYTEs values for Graphics Controller registers 00h-08h
--------V-1012--BL74-------------------------
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
AH = 12h
BL = 74h
Note: due to an omitted end-of-list marker, these versions of the BIOS will
crash the system on this function
--------V-1012--BL80-------------------------
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
AH = 12h
BL = 80h
Note: due to an omitted end-of-list marker, these versions of the BIOS will
crash the system on this function
--------V-1012--BL80-------------------------
INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
AH = 12h
BL = 80h
Return: AX = controller type in bits 13-0 (see #0028)
bit 14: ???
bit 15: ???
BL = silicon revision number (bit 7 set if not available)
SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
(Table 0028)
Values for Cirrus Logic video controller type:
0000h no extended alternate select support
0002h 510/520
0003h 610/620
0004h 5320
0005h 6410
0006h 5410
0007h 6420
0008h 6412
0010h 5401
0011h 5402
0012h 5420
0013h 5422
0014h 5424
0015h 5426
0016h 5420r1
0017h 5402r1
0018h 5428
0020h 6205/15/25
0030h 5432
0031h 5434
--------V-1012--BL81-------------------------
INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
AH = 12h
BL = 81h
Return: AH = BIOS major version
AL = BIOS minor version
SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
--------V-1012--BL82-------------------------
INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
AH = 12h
BL = 82h
Return: AL = chip revision
AH = ??? (AFh for v1.01)
SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
----------1012--BL84-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
AH = 12h
BL = 84h
Return: AX = user options word (see #0029)
SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
Bitfields for Cirrus Logic user options word:
Bit(s) Description (Table 0029)
1,0 centering
00 vertical centered, 01 from bottom, 10 from top, 11 reserved
3,2 720-dot fix-up options
00 OR every 8th and 9th pixel
01 display MGA mode from left
10 display MGA mode from right
11 skip every 9th pixel
4 ???
7-5 video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
8 external monitor enabled instead of LCD panel
9 vertical expand mode enabled
10 8-bit mode instead of 16-bit mode
11 normal video rather than reverse video (for LCD)
12 attribute automap rather than attribute emulation
13 bold mode disabled (default)
14 fast bandwidth
15 ???
--------V-1012--BL85-------------------------
INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
AH = 12h
BL = 85h
Return: AL = number of 64K banks of video memory
SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
--------V-1012--BL89-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
AH = 12h
BL = 89h
AL = new state (00h enabled, 01h disabled)
SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
--------V-1012--BL8A-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
AH = 12h
BL = 8Ah
AL = new gray-scale color (00h = black to 0Fh = white)
SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
--------V-1012--BL8B-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
AH = 12h
BL = 8Bh
AL = new state (00h enabled, 01h disabled)
SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
--------V-1012--BL8C-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
AH = 12h
BL = 8Ch
AL = new state
00h enable automap
01h disable automap and emulate attributes
SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
--------V-1012--BL8F-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
AH = 12h
BL = 8Fh
AL = new state (00h enabled, 01h disabled)
Note: when expand mode is enabled, the vertical dimension is enlarged to
full screen
SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
--------V-1012--BL90-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
AH = 12h
BL = 90h
AL = new position
00h centered
01h from top
02h from bottom
03h from top
SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
--------V-1012--BL91-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
AH = 12h
BL = 91h
AL = new mode
00h display MGA mode from left of screen (default)
01h display MGA from right
02h skip every ninth pixel
03h OR every 8th and 9th pixel
SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
--------V-1012--BL92-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
AH = 12h
BL = 92h
AL = new display (00h LCD, 01h external monitor)
Note: the deselected display is disabled
SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
--------V-1012--BL93-------------------------
INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
AH = 12h
BL = 93h
AL = new I/O width (00h = 16 bits, 01h = 8 bits)
SeeAlso: AH=12h/BL=9Ah
--------V-1012--BL94-------------------------
INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
AH = 12h
BL = 94h
AL = new state (00h wake up monitor, 01h shut down display)
Note: AL=01h is reported not to work properly on the LCD panel
SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
--------V-1012--BL9A-------------------------
INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
AH = 12h
BL = 9Ah
Return: AX = options word 1 (see #0030)
CX = options word 2 (see #0031)
SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
Bitfields for Cirrus Logic options word 1:
Bit(s) Description (Table 0030)
0,1 reserved
2-4 monitor type
5-6 maximum vertical resolution
7-9 reserved
10 force 8-bit operation
11-13 reserved
14 vertical refresh frequency at 640x480
15 reserved
Bitfields for Cirrus Logic options word 2:
Bit(s) Description (Table 0031)
0-3 reserved
4-5 vertical refresh frequency at 1280x1024
6-10 reserved
11-12 vertical refresh frequency at 800x600
13-15 vertical refresh frequency at 1024x768
--------V-1012--BLA0-------------------------
INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
AH = 12h
BL = A0h
AL = video mode number (00h-7Fh)
Return: AH bit 0: video mode supported
BX = offset of BIOS subroutine to fixup standard video parameters
(call subroutine with DS:SI and ES:DI as returned by this call)
DS:SI -> standard video parameters or FFFFh:FFFFh
ES:DI -> supplemental video parameters or FFFFh:FFFFh
SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
--------V-1012--BLA1-------------------------
INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
AH = 12h
BL = A1h
Return: BH = monitor ID (see #0032)
BL = monitor type (00h color, 01h grayscale, 02h no display)
SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
(Table 0032)
Values for Cirrus Logic monitor ID:
00h-08h reserved
09h IBM 8604/8507 or equivalent
0Ah IBM 8514 or equivalent
0Bh IBM 8515 or equivalent
0Dh IBM 8503 or equivalent
0Eh IBM 8512/8513 or equivalent
0Fh no monitor
--------V-1012--BLA2-------------------------
INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
AH = 12h
BL = A2h
AL = retrace rate
00h standard VGA (31.5 kHz)
01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
02h SuperVGA (31.5-35.1 kHz)
03h extended SuperVGA (31.5-35.5 kHz)
04h multi-frequency (31.5-37.8 kHz)
05h extended multi-frequency (31.5-48.0 kHz)
06h super multi-frequency (31.5-56.0 kHz)
07h extended super multi-frequency (31.5-64.0 kHz)
SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
--------V-1012--BLA3-------------------------
INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
AH = 12h
BL = A3h
AL = refresh rate for 640x480 (00h normal, 01h high)
SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
--------V-1012--BLA4-------------------------
INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
AH = 12h
BL = A4h
AL bits 3-0 = maximum vertical resolution
(0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
AL bits 7-4 = vertical refresh at 640x480
(0 = 60Hz, 1 = 72Hz, other reserved)
BH bits 3-0 = vertical refresh at 800x600
(0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
BH bits 7-4 = vertical refresh at 1024x768
(0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
CH bits 4-7 = vertical refresh at 1280x1024
(0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
--------V-1012--BLBE-------------------------
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
AH = 12h
BL = BEh
Note: due to an omitted end-of-list marker, these versions of the BIOS will
crash the system on this function
--------V-1012--BLC6-------------------------
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
AH = 12h
BL = C6h
Note: due to an omitted end-of-list marker, these versions of the BIOS will
crash the system on this function
--------V-1012--BLF0-------------------------
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
AH = 12h
BL = F0h
Note: due to an omitted end-of-list marker, these versions of the BIOS will
crash the system on this function
--------V-1013-------------------------------
INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
AH = 13h
AL = write mode
bit 0: update cursor after writing
bit 1: string contains alternating characters and attributes
bits 2-7: reserved (0)
BH = page number
BL = attribute if string contains only characters
CX = number of characters in string
DH,DL = row,column at which to start writing
ES:BP -> string to write
Notes: recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
backspace, and CR only take place in the active page
also available PC or XT with EGA or higher
HP 95LX only supports write mode 00h
BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on
the active page rather than the requested page
SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
--------J-1013-------------------------------
INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
AH = 13h
AL = function
10h read characters and standard attributes
11h read characters and extended attributes
12h write characters and standard attributes
13h write characters and extended attributes
BH = 00h
CX = number of characters to transfer
DH,DL = row,column at which to start transfer
ES:BP -> buffer for/containing characters and attributes (see #0033)
Return: ES:BP buffer filled if reading
Program: DOS/V is a Japanese-language version of MS-DOS which can run on
standard (non-Japanese) ATs and compatible equipped with a VGA or
newer video adapter
Notes: subfunctions 11h and 13h are only valid when DOS/V is using video
mode 73h
the cursor position is not changed by these functions
extended attributes consist of three bytes; the first is the standard
character attribute byte, the second is as described below, and the
third is always zero in current versions
SeeAlso: AH=00h,AH=13h"VIDEO"
Bitfields for DOS/V second extended attribute byte:
Bit(s) Description (Table 0033)
7 underline using foreground color
6 reverse foreground/background specified in standard attribute byte
5-4 unused
3 vertical white grid line in cell
2 horizontal white grid line in cell
1-0 unused
SeeAlso: #0013,#0025
--------V-101400-----------------------------
INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
AX = 1400h
ES:DI -> character font
BH = number of bytes per character
08h or 10h (Compaq)
BL = 00h load main font (block 0)
01h load alternate font (block 1)
CX = number of characters to store
DX = character offset into RAM font area
SeeAlso: AH=11h,AX=1401h
--------V-101401-----------------------------
INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
AX = 1401h
BL = font to load
00h main font (block 0)
01h alternate font (block 1)
SeeAlso: AH=11h,AX=1400h
--------V-101402-----------------------------
INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
AX = 1402h
BL = function
00h ignore high intensity attribute
01h map high intensity to reverse video
02h map high intensity to underscore
03h map high intensity to selected alternate font
B0h half intensity (Compaq)
B1h toggle active intensity bit interpretation (CP386)
--------V-1015-------------------------------
INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
AH = 15h
Return: AX = alternate display adapter type (see #0034)
ES:DI -> parameter table (see #0035)
SeeAlso: AH=1Bh
(Table 0034)
Values for PC Convertible alternate display adapter type:
0000h none
5140h LCD
5153h CGA
5151h mono
Format of PC Convertible display parameter table:
Offset Size Description (Table 0035)
00h WORD monitor model number
02h WORD vertical pixels per meter
04h WORD horizontal pixels per meter
06h WORD total vertical pixels
08h WORD total horizontal pixels
0Ah WORD horizontal pixel separation in micrometers
(width, center-to-center)
0Ch WORD vertical pixel separation in micrometers
(height, center-to-center)
--------V-1015-------------------------------
INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
AH = 15h
AL = superimpose mode
00h show graphics screen
01h show text screen
02h show text screen superimposed on graphics screen
--------J-1018-------------------------------
INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
AH = 18h
AL = function
00h get font pattern
01h set font pattern
BX = 0000h
CL = character size in bytes (01h,02h)
CH = 00h
DH = character width in pixels
DL = character height in pixels
ES:DI -> buffer for/containing font image
Return: AL = status (00h successful, else error)
ES:DI buffer filled for function 00h if successful
Note: the supported font sizes are 8x16 single-byte, 8x19 single-byte,
16x16 double-byte, and 24x24 double-byte
SeeAlso: AH=19h,INT 16/AH=14h
--------V-1019-------------------------------
INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
AH = 19h
???
Return: ???
SeeAlso: AH=18h,INT 16/AH=14h
--------V-101A00-----------------------------
INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
AX = 1A00h
Return: AL = 1Ah if function was supported
BL = active display code (see #0036)
BH = alternate display code (see #0036)
Note: this function is supported on the ATI EGA Wonder with certain
undocumented configuration switch settings, even though the EGA
Wonder does not support VGA graphics; to distinguish this case,
call AX=1C00h with CX nonzero, which the EGA Wonder does not support
SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
(Table 0036)
Values for display combination code:
00h no display
01h monochrome adapter w/ monochrome display
02h CGA w/ color display
03h reserved
04h EGA w/ color display
05h EGA w/ monochrome display
06h PGA w/ color display
07h VGA w/ monochrome analog display
08h VGA w/ color analog display
09h reserved
0Ah MCGA w/ digital color display
0Bh MCGA w/ monochrome analog display
0Ch MCGA w/ color analog display
FFh unknown display type
--------V-101A01-----------------------------
INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
AX = 1A01h
BL = active display code (see #0036)
BH = alternate display code
Return: AL = 1Ah if function was supported
SeeAlso: AH=12h/BL=35h,AX=1A00h
--------V-101B-------------------------------
INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
AH = 1Bh
BX = implementation type
0000h return funtionality/state information
ES:DI -> 64-byte buffer for state information (see #0037)
Return: AL = 1Bh if function supported
ES:DI buffer filled with state information
BUG: Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
do not correctly set the fields at offsets 27h and 29h of the
state information
SeeAlso: AH=15h,AX=1A00h,AX=1F01h
Format of MCGA+ state information:
Offset Size Description (Table 0037)
00h DWORD address of static funtionality table (see #0040)
04h BYTE video mode in effect
05h WORD number of columns
07h WORD length of regen buffer in bytes
09h WORD starting address of regen buffer
0Bh WORD cursor position for page 0
0Dh WORD cursor position for page 1
0Fh WORD cursor position for page 2
11h WORD cursor position for page 3
13h WORD cursor position for page 4
15h WORD cursor position for page 5
17h WORD cursor position for page 6
19h WORD cursor position for page 7
1Bh WORD cursor "type" (start/stop scan lines)
1Dh BYTE active display page
1Eh WORD CRTC port address
20h BYTE current setting of register (3?8)
21h BYTE current setting of register (3?9)
22h BYTE number of rows - 1
23h WORD bytes/character
25h BYTE display combination code of active display
26h BYTE DCC of alternate display
27h WORD number of colors supported in current mode (0000h = mono)
29h BYTE number of pages supported in current mode
2Ah BYTE number of scan lines active
(0,1,2,3) = (200,350,400,480)
Tseng ET3000: (4,5,6 = 512,600,768)
2Bh BYTE primary character block
2Ch BYTE secondary character block
2Dh BYTE miscellaneous flags (see #0038)
2Eh 3 BYTEs reserved (00h)
31h BYTE video memory available
00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
32h BYTE save pointer state flags (see #0039)
33h 13 BYTEs reserved (00h)
Bitfields for miscellaneous flags:
Bit(s) Description (Table 0038)
0 all modes on all displays on
1 gray summing on
2 monochrome display attached
3 default palette loading disabled
4 cursor emulation enabled
5 0 = intensity; 1 = blinking
6 PS/2 P70 plasma display (without 9-dot wide font) active
7 unused (0)
Bitfields for save pointer state flags:
Bit(s) Description (Table 0039)
0 512 character set active
1 dynamic save area present
2 alpha font override active
3 graphics font override active
4 palette override active
5 DCC override active
6-7 unused (0)
Format of Static Functionality Table:
Offset Size Description (Table 0040)
00h BYTE modes supported 1
bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
01h BYTE modes supported 2
bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
02h BYTE modes supported 3
bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
bit 4 to bit 7 unused (0)
03h BYTE (IBM) reserved
(Tseng ET3000/4000) modes supported 4
bit 0 to bit 7 = modes 18h-1Fh supported
04h BYTE (IBM) reserved
(Tseng ET3000/4000) modes supported 5
bit 0 to bit 7 = modes 20h-27h supported
05h BYTE (IBM) reserved
(Tseng ET3000/4000) modes supported 6
bit 0 to bit 7 = modes 28h-2Fh supported
06h BYTE (IBM) reserved
(Tseng ET3000/4000) modes supported 7
bit 0 to bit 7 = modes 30h-37h supported
07h BYTE scan lines supported
bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
bits 3-7 = unused (0)
08h BYTE total number of character blocks available in text modes
09h BYTE maximum number of active character blocks in text modes
0Ah WORD miscellaneous function support flags (see #0041)
0Ch WORD reserved
0Eh BYTE save pointer function flags (see #0042)
0Fh BYTE reserved
Bitfields for miscellaneous function support flags:
Bit(s) Description (Table 0041)
0 all modes on all displays function supported
1 gray summing function supported
2 character font loading function supported
3 default palette loading enable/disable supported
4 cursor emulation function supported
5 EGA palette present
6 color palette present
7 color-register paging function supported
8 light pen supported (see AH=04h)
9 save/restore state function 1Ch supported
10 intensity/blinking function supported (see AX=1003h)
11 Display Combination Code supported (see #0036)
12-15 unused (0)
Bitfields for save pointer function flags:
Bit(s) Description (Table 0042)
0 512 character set supported
1 dynamic save area supported
2 alpha font override supported
3 graphics font override supported
4 palette override supported
5 DCC extension supported
6-7 unused (0)
--------V-101C-------------------------------
INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
AH = 1Ch
AL = function
00h return state buffer size
Return: BX = number of 64-byte blocks needed
01h save video state
ES:BX -> buffer
02h restore video state
ES:BX -> buffer containing previously saved state
CX = requested states (see #0043)
Return: AL = 1Ch if function supported
Notes: many BIOSes corrupt the video registers when saving the state, so a
program should restore the state immediately after saving it (the
saved data is uncorrupted)
the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
this function is not supported when DOS/V is running
Bitfields for requested states:
Bit(s) Description (Table 0043)
0 video hardware (see #0044)
1 BIOS data areas
2 color registers and DAC state (see #0045)
3-15 unused (0)
Format of VGA video hardware state:
Offset Size Description (Table 0044)
00h BYTE sequencer index register
01h BYTE CRTC index register
02h BYTE graphics controller index register
03h BYTE attribute controller index register
04h BYTE feature controller register
05h 4 BYTEs sequencer registers
09h BYTE sequencer register 0
0Ah 25 BYTEs CRTC registers 0-8
23h 16 BYTEs palette registers 00h-0Fh
33h 4 BYTEs attribute registers 10h-13h
37h 9 BYTEs graphics controller registers 0-8
40h BYTE CRTC base address (low)
41h BYTE CRTC base address (high)
42h BYTE plane 0 latch
43h BYTE plane 1 latch
44h BYTE plane 2 latch
45h BYTE plane 3 latch
Format of VGA DAC state:
Offset Size Description (Table 0045)
00h BYTE read/write mode DAC
01h BYTE pixel address
02h BYTE pixel mask
03h 768 BYTEs color data (256 triples)
303h BYTE color select register
--------J-101D-------------------------------
INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
AH = 1Dh
AL = function
00h enable shift status line(s)
BX = number of lines to reserve at bottom of screen (usu. 1)
01h disable shift status line
BX = number of lines reserved at bottom of screen (usually 1)
02h get number of status lines
Return: BX = number of lines reserved for shift status
SeeAlso: AH=19h
--------V-101D-------------------------------
INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
AH = 1Dh
AL = video mode
ES = caller's segment
Return: nothing
Note: the caller's segment contains at offset 5Ch (FCB field in PSP)
or 100h a table with sync parameters (see #0046) (BIOS looks at both
offsets)
Format of SpeedSTAR Plus sync table:
Offset Size Description (Table 0046)
00h 9 BYTEs ID contains string 'ey5CENTER'
09h 5 BYTEs sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
0Bh 5 BYTEs sync parameters for 800x600 modes 29h,30h,2Ah
13h 5 BYTEs sync parameters for 1024x768 modes 37h,38h
--------V-101D-------------------------------
INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
AH = 1Dh
Note: these versions of the BIOS jump to a random location on this function
due to a fencepost error
--------V-101F00-----------------------------
INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
AX = 1F00h
Return: AL = 1Fh if supported
BX = number of bytes of DMQS data
Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
and later models.
SeeAlso: AX=1F01h
--------V-101F01-----------------------------
INT 10 - VIDEO - XGA - READ DMQS DATA
AX = 1F01h
ES:DI -> user buffer for return data (call AX=1F00h for size)
Return: AL = 1Fh if function supported
user buffer filled with DMQS data (see #0047)
Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
and later models.
SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
Format of XGA DMQS buffer:
Offset Size Description (Table 0047)
00h WORD offset (in bytes) to DMQS data for next XGA instance
02h BYTE slot number
03h BYTE XGA implementation function level identifier
04h BYTE XGA implementation resolution level identifier
05h WORD vendor identifier - identifies card vendor
07h WORD vendor defined field
09h WORD XGA adapter I/O register base address
0Bh WORD XGA coprocessor register base address
(paragraph--multiply by 10h to get physical address)
0Dh WORD 1 Megabyte system video memory aperture
0000h if not allocated
(Multiply by 100000h to get physical address)
0Fh WORD 4 Megabyte system video memory aperture
0000h if not allocated
(multiply by 100000h to get physical address)
11h WORD video memory base address
(multiply by 100000h to get physical address)
13h WORD composite ID of the attached display
15h BYTE amount of video memory available, in multiples of 256K bytes
16h DWORD alternate XGA coprocessor register base address. 0 = none.
1Ah var DMQS Data for further XGA Instances (as above)
Note: "Instances" refers to the capability of having up to 8 XGA
adapters in one computer.
--------V-103000CX0000-----------------------
INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
AX = 3000h
CX = 0000h
DX = 0000h
Return: CX:DX -> 3270PC configuration table (see #0048)
CX:DX = 0000h:0000h if 3270PC Control Program not active
SeeAlso: AX=1F01h
Format of 3270 PC configuration table:
Offset Size Description (Table 0048)
00h BYTE aspect ratio X
01h BYTE aspect ratio Y
02h BYTE monitor type (see #0049)
03h BYTE reserved
04h BYTE adapter ID
00h = 5151/5272 adapter
04h = 5151/5272 with XGA adapter
30h = 3295 or 3270PC G/GX adapter
05h BYTE reserved
06h BYTE function flags 1 (see #0050)
07h BYTE function flags 2
bit 6: GPI graphics supported
08h WORD segment address of Control Program Level table (see #0051)
0Ah 10 BYTEs reserved
(Table 0049)
Values for 3270 PC monitor type:
00h 5151 (mono) or 5272 (color)
01h 3295
02h 5151 or 5272 with XGA (???) graphics adapter
03h 5279 with 3270PC G adapter
04h 5379 model C01 with 3270PC GX adapter
05h 5379 model M01 with 3270PC GX adapter
07h non-3270PC with 3270 Workstation Program
FFh 3270PC Control Program not loaded
Bitfields for 3270 PC function flags 1:
Bit(s) Description (Table 0050)
7 mono text, 1 page
6 color text, 1 page
5 color text, 4 pages
4 CGA color graphics
3 720x350 two-color graphics
2 360x350 four-color graphics
1 720x350 eight-color graphics
Format of Control Program Level table:
Offset Size Description (Table 0051)
00h WORD program version
02xxh = 3270PC Control Program v2.xx
03xxh = 3270PC Control Program v3.xx
04xxh = 3270 Workstation Program v1.xx
02h BYTE Control Program ID (00h)
03h 27 BYTEs Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
--------a-103800-----------------------------
INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
AX = 3800h
Return: ES:DI -> configuration info (see #0052)
Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
Notes: this call is also used as the installation check by verifying that the
returned ES:DI points at valid configuration info
Tinytalk v1.09f ignores AL and always returns the configuration info;
v1.10 adds several subfunctions selected with AL
SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
SeeAlso: INT 2F/FB00h"AutoBraille"
Index: installation check;Tinytalk Personal
Format of Tinytalk Personal configuration info:
Offset Size Description (Table 0052)
00h 8 BYTEs signature "TTCONFIG"
08h WORD size of configuration data, not counting signature, this WORD,
or the following byte
0Ah BYTE ???
0Bh ??? configuration data
--------a-103801-----------------------------
INT 10 - Tinytalk Personal v1.10 - ???
AX = 3801h
DL = ???
Return: ???
SeeAlso: AX=3800h,AX=3802h
--------a-103802-----------------------------
INT 10 - Tinytalk Personal v1.10 - ???
AX = 3802h
DL = ???
Return: ???
SeeAlso: AX=3800h,AX=3801h
--------a-103803-----------------------------
INT 10 - Tinytalk Personal v1.10 - GET ???
AX = 3803h
Return: AL = ???
SeeAlso: AX=3800h,AX=3804h,AX=3805h
--------a-103804-----------------------------
INT 10 - Tinytalk Personal v1.10 - GET ???
AX = 3804h
Return: AX = ???
SeeAlso: AX=3800h,AX=3803h,AX=3805h
--------a-103805-----------------------------
INT 10 - Tinytalk Personal v1.10 - GET ???
AX = 3805h
Return: AL = ???
SeeAlso: AX=3800h,AX=3803h,AX=3804h
--------a-103806-----------------------------
INT 10 - Tinytalk Personal v1.10 - ???
AX = 3806h
ES:DX -> ASCIZ ???
Return: ???
SeeAlso: AX=3800h
--------a-1039-------------------------------
INT 10 - Tinytalk Personal v1.10 - ???
AH = 39h
Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
Note: this function was a NOP in TTDEMO.EXE, but may be implemented in other
variants of Tinytalk
--------V-1040-------------------------------
INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
AH = 40h
Desc: switch the Hercules Graphics Card into graphics mode (720x348)
SeeAlso: AH=00h,AH=41h
Index: video modes;Hercules
--------V-1041-------------------------------
INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
AH = 41h
Desc: switch the Hercules Graphics Card into text mode
SeeAlso: AH=00h,AH=40h
Index: video modes;Hercules
--------V-1042-------------------------------
INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
AH = 42h
SeeAlso: AH=45h
--------V-1043-------------------------------
INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
AH = 43h
AL = page number (0,1)
Desc: specify which of the two pages of video memory is to be used for
output
SeeAlso: AH=05h,AH=44h,AH=45h
--------V-1044-------------------------------
INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
AH = 44h
AL = drawing function
00h clear pixels
01h set pixels
02h invert pixels
Desc: specify how graphics output will change the display
SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
--------V-1045-------------------------------
INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
AH = 45h
AL = page number (0,1)
Desc: specify which of the two pages of video memory is visible on screen
SeeAlso: AH=05h,AH=42h,AH=43h
--------V-1046-------------------------------
INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
AH = 46h
DI = x (0-719)
BP = y (0-347)
Note: function 44h determines operation and function 43h which page to use
SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
--------V-1047-------------------------------
INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
AH = 47h
DI = x (0-719)
BP = y (0-347)
Return: AL = 00h pixel clear
AL = 01h pixel set
Note: function 43h specifies which page is used
SeeAlso: AH=0Dh,AH=46h
--------V-1048-------------------------------
INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
AH = 48h
DI = x (0-719)
BP = y (0-347)
Desc: specify the location from which to start the next graphics output
SeeAlso: AH=49h
--------V-1049-------------------------------
INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
AH = 49h
DI = x (0-719)
BP = y (0-347)
Note: function 48h or 49h specify first point, 44h operation and 43h page to
use
SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
--------V-104A-------------------------------
INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
AH = 4Ah
DI = x coordinate of lower left corner
BP = y coordinate of lower left corner
BX = height in pixels
CX = width in pixels
Desc: draw a solid rectangle of the specified size at the given location
SeeAlso: AH=4Eh
--------V-104B-------------------------------
INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
AH = 4Bh
AL = character to display
DI = x (0-719)
BP = y (0-347)
Note: unlike the other BIOS character functions character position is
specified in pixels rather than rows and columns
SeeAlso: AH=09h,AH=0Ah
----------104B-------------------------------
INT 10 - FRIEZE - API
AH = 4Bh
CL = function
00h (v6.x-) print window
AL = mode
00h character
01h normal
02h sideways
01h load window
ES:BX -> ASCIZ filename from which to read
02h save window
ES:BX -> ASCIZ filename to which to write
03h set print width
AL = width in 1/4 inches
04h set print height
AL = height in 1/4 inches
05h reserved
06h set left margin
AL = printout margin in 1/4 inches
07h set window size
ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
08h reserved
09h set patterns
ES:BX -> 16-BYTE vector of screen->printer color correspondnces
0Ah get patterns
ES:BX -> 16-BYTE buffer for color correspondences
0Bh set mode
AL = mode
0Ch (v7.41) ???
AL = ???
00h ??? (calls original INT 05)
else ???
0Dh (v7.41) ???
AL = ???
00h ??? (calls original INT 05)
else ???
0Eh (v7.41) ???
???
0Fh get window
ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
10h set print options
ES:BX -> printer options in same format as FRIEZE cmdline
11h initialize
ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
12h (v7.41) ???
???
13h (v7.41) ???
???
14h get version
Return: AH = major version (00h if FRIEZE version before 7)
AL = minor version
15h set parameters
ES:BX -> parameter table (see #0054)
16h get parameters
ES:BX -> buffer for parameter table (see #0054)
17h get printer resolution
ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
18h (v8.0 only) reserved
50h (v7.41) get ???
Return: AX = ???
51h (v7.41) get ???
Return: ES = ??? (seen 2348h)
AX = ??? (seen 8432h)
Return: AX = status (see #0053)
SeeAlso: AH=0Fh/SI=F123h
(Table 0053)
Values for FRIEZE function status:
00h successful
01h user aborted printout with ESC
02h reserved
03h file read error
04h file write error or printer error
05h file not found
06h invalid header (not an image or wrong screen mode) or can't create file
07h file close error
08h disk error
09h (v7.0+) printer error
0Ah invalid function
0Bh (v7.0+) can't create file
0Ch (v7.0+) wrong video mode
Format of FRIEZE parameter table:
Offset Size Description (Table 0054)
00h WORD top margin (1/100 inch)
02h WORD left margin (1/100 inch)
04h WORD horizontal size (1/100 inch)
06h WORD vertical size (1/100 inch)
08h WORD quality/draft mode
00h draft mode
01h quality mode
02h use horizontal/vertical resolution for output resolution
0Ah WORD printer horizontal resolution (dots per inch)
0Ch WORD printer vertical resolution (dots per inch)
0Eh WORD reserved (FFFFh)
Note: any field which should remain unchanged may be filled with FFFFh
--------V-104C-------------------------------
INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
AH = 4Ch
AL = quadrant (1 = upper right, 2 = upper left, etc)
DI = x coordinate of center
BP = y coordinate of center
BX = radius
SeeAlso: AH=49h,AH=4Dh
--------V-104D-------------------------------
INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
AH = 4Dh
DI = x of center
BP = y of center
BX = radius
SeeAlso: AH=49h,AH=4Ch
--------V-104E-------------------------------
INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
AH = 4Eh
DI = x coordinate of an interior point
BP = y coordinate of an interior point
Desc: fill a convex polygonal area bounded by a contiguous line of the
opposite color with the border color
Note: the first fill makes the figure solid, the second erases it
SeeAlso: AH=4Ah
--------V-104E00-----------------------------
INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
AX = 4E00h
ES:DI -> 256-byte buffer for XGA information (see #0055)
Return: AL = 4Eh if function supported
AH = status
00h successful
else error code
Desc: determine whether VESA XGA extensions are present and the capabilities
supported by the display adapter
SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
Index: installation check;VESA XGA
Format of XGA information buffer:
Offset Size Description (Table 0055)
00h 4 BYTEs signature ("VESA")
04h WORD VESA version number
06h DWORD pointer to ASCIZ OEM string
0Ah DWORD environment flags (see #0056)
0Eh WORD number of XGA adapters installed (other VESA XGA functions
require a handle indicating which adapter to use)
10h 240 BYTEs reserved
Bitfields for XGA environment flags:
Bit(s) Description (Table 0056)
0-1 system bus (00 = MCA, 01 = ISA, 10 = EISA)
2 bus mastering available
3-31 reserved
--------V-104E01----------------------------
INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
AX = 4E01h
DX = XGA handle (0 to number of XGAs-1)
ES:DI -> 256-byte buffer for subsystem information (see #0057)
Return: AL = 4Eh if function supported
AH = status
00h function successful
else error code
SeeAlso: AX=4E00h,AX=4E02h
Format of XGA subsystem information:
Offset Size Description (Table 0057)
00h DWORD pointer to null-terminated board OEM string
04h DWORD capabilities (see #0058)
08h DWORD pointer to 8KB XGA ROM (or NULL)
0Ch DWORD pointer to the XGA memory mapped registers
10h WORD base address of XGA I/O registers (21x0h)
12h DWORD pointer to start of physical video memory
(A000h:0000h or B000h:0000h)
16h DWORD physical address of 4MB aperture (or NULL if none)
1Ah DWORD physical address of 1MB aperture (or NULL if none)
1Eh DWORD physical address of 64KB aperture (or NULL if not enabled)
22h DWORD physical address of OEM aperture (or NULL if none)
26h WORD size of OEM aperture in 64KByte units
28h DWORD pointer to list of video modes
The list is a series of WORDs terminated by FFFFh
2Ch WORD number of 64KB blocks on the board
2Eh DWORD XGA manufacturer ID
byte 0 POS data index 1
byte 1 is index 2
byte 2 is 21xAh index 75h
32h 206 BYTEs reserved
Bitfields for XGA capabilities:
Bit(s) Description (Table 0058)
0-1 board bus architecture: 0=MCA, 1=ISA, 3=EISA
2-3 reserved
4-6 DMA Channel assigned for acquiring bus mastership (only for ISA bus)
7 DMA Channel Status (ISA only). enabled if set
8-31 reserved
--------V-104E02-----------------------------------
INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
AX = 4E02h
CX = Video mode
DX = XGA handle
ES:DI -> 256 byte buffer for mode information (see #0059)
Return: AL = 4Eh if function supported
AH = status
00h function successful
else error code
SeeAlso: AX=4E00h,AX=4E01h
Format of XGA mode information:
Offset Size Description (Table 0059)
00h WORD attributes of the mode (see #0060)
02h WORD bytes per logical scanline
04h WORD horizontal resolution in pixels
06h WORD vertical resolution in scanlines
08h BYTE character Width in pixels
09h BYTE character Height in pixels
0Ah BYTE number of planes
0Bh BYTE bits per pixels
0Ch BYTE memory model (see #0061)
0Dh BYTE number of Image Pages
0Eh BYTE number of Red bits
0Fh BYTE bit position of Red bit field
10h BYTE number of Green bits
11h BYTE bit position of Green bit field
12h BYTE number of Blue bits
13h BYTE bit position of Blue bit field
14h BYTE number of Reserved bits
15h BYTE bit position of Reserved bit field
16h 235 BYTEs reserved
Bitfields for XGA mode attributes:
Bit(s) Description (Table 0060)
0 set if mode is supported
1 reserved
2 output is supported by the BIOS
3 reserved
4 if set this is a graphics mode (VGA registers inactive, XGA active),
if clear this is a text mode (VGA registers active, XGA inactive)
(Table 0061)
Values for XGA video memory model:
00h Text Mode
01h CGA graphics
02h Hercules graphics
03h 4-planar graphics
04h Packed Pixel
05h Non-chain 4, 256 color
06h Direct Color
07h YUV-24
--------V-104E03-----------------------------------
INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
AX = 4E03h
BX = video mode
CX = other command flags
bit 0 If clear the feature connector is set to the default state
DX = XGA handle
ES:DI -> 256 byte buffer
Return: AL = 4Eh if function supported
AH = status
00h function successful
else error code
SeeAlso: AH=00h,AX=4E04h,AX=4F02h
--------V-104E04-----------------------------------
INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
AX = 4E04h
DX = XGA handle
Return: AL = 4Eh if function supported
AH = status
00h function successful
BX??? = current mode
else error code
SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
--------V-104E05-----------------------------------
INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
AX = 4E05h
BX = Feature Connector State (see #0062)
DX = XGA handle
Return: AL = 4Eh if function supported
AH = status
00h function successful
else error code
SeeAlso: AX=4E00h,AX=4E06h
Bitfields for XGA Feature Connector State:
Bit(s) Description (Table 0062)
0 Feature Connector is enabled
1 Feature Connector is in Output Mode rather than Input Mode
2-15 reserved (0)
--------V-104E06-----------------------------------
INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
AX = 4E06h
DX = XGA handle
Return: AL = 4Eh if function supported
AH = status
00h function successful
else error code
BX = Feature Connector State (see #0062)
SeeAlso: AX=4E00h,AX=4E05h
--------V-104F00-----------------------------
INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
AX = 4F00h
ES:DI -> buffer for SuperVGA information (see #0063)
Return: AL = 4Fh if function supported
AH = status
00h successful
ES:DI buffer filled
01h failed
Desc: determine whether VESA BIOS extensions are present and the capabilities
supported by the display adapter
SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h,AX=A00Ch
Index: installation check;VESA SuperVGA
Format of SuperVGA information:
Offset Size Description (Table 0063)
00h 4 BYTEs signature ("VESA")
04h WORD VESA version number (one-digit minor version)
06h DWORD pointer to OEM name
"761295520" for ATI
0Ah DWORD capabilities flags (see #0064)
0Eh DWORD pointer to list of supported VESA and OEM video modes
(list of words terminated with FFFFh)
12h WORD total amount of video memory in 64K blocks
---VBE v1.x ---
14h 236 BYTEs reserved
---VBE v2.0 ---
14h WORD OEM software version
16h DWORD pointer to vendor name
1Ah DWORD pointer to product name
1Eh DWORD pointer to product revision string
22h 222 BYTEs reserved
100h 256 BYTEs OEM scratchpad
Notes: the list of supported video modes is stored in the reserved portion of
the SuperVGA information record by some implementations, and it may
thus be necessary to either copy the mode list or use a different
buffer for all subsequent VESA calls
the 1.1 VESA document specifies 242 reserved bytes at the end, so the
buffer should be 262 bytes to ensure that it is not overrun; for
v2.0, the buffer should be 512 bytes
Bitfields for VESA capabilities:
Bit(s) Description (Table 0064)
0 DAC can be switched into 8-bit mode
1 non-VGA controller
2 programmed DAC with blank bit
--------V-104F01-----------------------------
INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
AX = 4F01h
CX = SuperVGA video mode
ES:DI -> 256-byte buffer for mode information (see #0065)
Return: AL = 4Fh if function supported
AH = status
00h successful
ES:DI buffer filled
01h failed
Desc: determine the attributes of the specified video mode
SeeAlso: AX=4F00h,AX=4F02h
Format of VESA SuperVGA mode information:
Offset Size Description (Table 0065)
00h WORD mode attributes (see #0066)
02h BYTE window attributes, window A (see #0067)
03h BYTE window attributes, window B (see #0067)
04h WORD window granularity in KB
06h WORD window size in KB
08h WORD start segment of window A
0Ah WORD start segment of window B
0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h)
10h WORD bytes per scan line
---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
12h WORD width in pixels (graphics) or characters (text)
14h WORD height in pixels (graphics) or characters (text)
16h BYTE width of character cell in pixels
17h BYTE height of character cell in pixels
18h BYTE number of memory planes
19h BYTE number of bits per pixel
1Ah BYTE number of banks
1Bh BYTE memory model type (see #0068)
1Ch BYTE size of bank in KB
1Dh BYTE number of image pages
1Eh BYTE reserved (0)
---VBE v1.2+---
1Fh BYTE red mask size
20h BYTE red field position
21h BYTE green mask size
22h BYTE green field size
23h BYTE blue mask size
24h BYTE blue field size
25h BYTE reserved mask size
26h BYTE reserved mask position
27h BYTE direct color mode info
---VBE v2.0 ---
28h DWORD physical address of linear video buffer
2Ch DWORD pointer to start of offscreen memory
30h WORD KB of offscreen memory
32h 206 BYTEs reserved (0)
Bitfields for VESA SuperVGA mode attributes:
Bit(s) Description (Table 0066)
0 mode supported
1 optional information available
2 BIOS output supported
3 set if color, clear if monochrome
4 set if graphics mode, clear if text mode
---VBE v2.0 ---
5 mode is not VGA-compatible
6 bank-switched mode not supported
7 linear framebuffer mode supported
Bitfields for VESA SuperVGA window attributes:
Bit(s) Description (Table 0067)
0 exists
1 readable
2 writable
3-7 reserved
(Table 0068)
Values for VESA SuperVGA memory model type:
00h text
01h CGA graphics
02h HGC graphics
03h 16-color (EGA) graphics
04h packed pixel graphics
05h "sequ 256" (non-chain 4) graphics
06h direct color (HiColor, 24-bit color)
07h YUV (luminance-chrominance, also called YIQ)
08h-0Fh reserved for VESA
10h-FFh OEM memory models
--------V-104F02-----------------------------
INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
AX = 4F02h
BX = mode (see #0069,#0070)
bit 15 set means don't clear video memory
bit 14 set means enable linear framebuffer mode (VBE v2.0+)
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
(Table 0069)
Values for VESA video mode:
00h-FFh OEM video modes (see #0009 at AH=00h)
100h 640x400x256
101h 640x480x256
102h 800x600x16
103h 800x600x256
104h 1024x768x16
105h 1024x768x256
106h 1280x1024x16
107h 1280x1024x256
108h 80x60 text
109h 132x25 text
10Ah 132x43 text
10Bh 132x50 text
10Ch 132x60 text
---VBE v1.2---
10Dh 320x200x32K
10Eh 320x200x64K
10Fh 320x200x16M
110h 640x480x32K
111h 640x480x64K
112h 640x480x16M
113h 800x600x32K
114h 800x600x64K
115h 800x600x16M
116h 1024x768x32K
117h 1024x768x64K
118h 1024x768x16M
119h 1280x1024x32K
11Ah 1280x1024x64K
11Bh 1280x1024x16M
SeeAlso: #0009,#0070
Index: video modes;VESA
(Table 0070)
Values for S3 OEM video mode:
201h 640x480x256
202h 800x600x16
203h 800x600x256
204h 1024x768x16
205h 1024x768x256
206h 1280x960x16
207h 1152x864x256 (Diamond Stealth 64)
208h 1280x1024x16
20Ah 1152x864x64K (Diamond Stealth 64)
211h 640x480x64K (Diamond Stealth 24)
212h 640x480x16M (Diamond Stealth 24)
301h 640x480x32K
Note: these modes are only available on video cards using S3's VESA driver
SeeAlso: #0069
Index: video modes;S3
--------V-104F03-----------------------------
INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
AX = 4F03h
Return: AL = 4Fh if function supported
AH = status
00h successful
BX = video mode (see #0069,#0070)
01h failed
SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
--------V-104F04-----------------------------
INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
AX = 4F04h
DL = subfunction
00h get state buffer size
Return: BX = number of 64-byte blocks needed
01h save video states
ES:BX -> buffer
02h restore video states
ES:BX -> buffer
CX = states to save/restore (see #0071)
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
Bitfields for VESA SuperVGA states to save/restore:
Bit(s) Description (Table 0071)
0 video hardware state
1 video BIOS data state
2 video DAC state
3 SuperVGA state
--------V-104F05-----------------------------
INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
AX = 4F05h
BH = subfunction
00h select video memory window
DX = window address in video memory (in granularity units)
01h get video memory window
Return: DX = window address in video memory (in gran. units)
BL = window number
00h window A
01h window B
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
--------V-104F06-----------------------------
INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
AX = 4F06h
BL = function
00h set scan line length
CX = desired width in pixels
01h get scan line length
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
BX = bytes per scan line
CX = number of pixels per scan line
DX = maximum number of scan lines
Notes: if the desired width is not achievable, the next larger width will be
set
the scan line may be wider than the visible area of the screen
this function is valid in text modes, provided that pixel values are
multiplied by the character cell width/height
SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
--------V-104F06BL02-------------------------
INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
AX = 4F06h
BL = 02h
CX = desired scanline width in bytes
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
BX = bytes per scan line
CX = number of pixels per scan line
DX = maximum number of scan lines
Notes: if the desired width is not achievable, the next larger width will be
set
the scan line may be wider than the visible area of the screen
this function is valid in text modes, provided that pixel values are
multiplied by the character cell width/height
SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
--------V-104F06BL03-------------------------
INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
AX = 4F06h
BL = 03h
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
BX = maximum bytes per scan line
CX = maximum number of pixels per scan line
Notes: this function is valid in text modes, provided that pixel values are
multiplied by the character cell width/height
SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
--------V-104F07-----------------------------
INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
AX = 4F07h
BL = function
00h,80h set display start
CX = leftmost displayed pixel in scan line
DX = first displayed scan line
01h get display start
Return: BH = 00h
CX = leftmost displayed pixel in scan line
DX = first displayed scan line
BH = 00h (reserved)
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
Notes: this function is valid in text modes, provided that values are
multiplied by the character cell width/height
subfunction 80h waits until vertical retrace before changing the
display start address (VBE v2.0+)
SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
--------V-104F08-----------------------------
INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
AX = 4F08h
BL = function
00h set DAC palette width
BH = desired number of bits per primary color
01h get DAC palette width
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
BH = current number of bits per primary (06h = standard VGA)
--------V-104F09-----------------------------
INT 10 - VESA SuperVGA BIOS v2.0+ - SET PALETTE ENTRIES
AX = 4F09h
BL = function
00h set palette
80h set palette during vertical retrace
CX = number of entries to change
DX = starting palette index
ES:DI -> palette buffer (see #0072)
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
Format of VESA VBE palette entry:
Offset Size Description (Table 0072)
00h BYTE red
01h BYTE green
02h BYTE blue
03h BYTE alpha or alignment byte
--------V-104F0A-----------------------------
INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE CODE
AX = 4F0Ah
BX = function to be copied (see #0073)
Return: AL = 4Fh if function supported
AH = status
00h successful
CX = number of bytes to copy
ES:DI -> code for requested function
01h failed
(Table 0073)
Values for VESA VBE protected-mode function identifiers:
0001h set bank (see AX=4F05h)
0002h set display start (see AX=4F07h)
0003h set palette (see AX=4F09h)
--------p-104F10BL00-------------------------
INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
AX = 4F10h
BL = 00h
ES:DI = 0000h:0000h (reserved for future use)
Return: AL = 4Fh if function supported (installed)
AH = call status
00h successful
else failed
---if successful---
BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
BH = supported states (see #0074)
ES:DI unchanged
Index: installation check;VESA VBE/Power Management
SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
Bitfields for VESA VBE/PM supported power states:
Bit(s) Description (Table 0074)
0 standby
1 suspend
2 off
3 reduced on
--------p-104F10BL01-------------------------
INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
AX = 4F10h
BL = 01h
BH = new state (see #0075)
Return: AL = 4Fh if function supported
AH = call status
00h successful
else failed
SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
(Table 0075)
Values for VESA VBE/PM power state:
00h On
01h standby
02h suspend
04h Off
08h reduced On (for flat screens)
--------p-104F10BL02-------------------------
INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
AX = 4F10h
BL = 02h
Return: AL = 4Fh if function supported
AH = call status
00h successful
BH = current power state (see #0075)
else failed
SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h
--------s-104F13BX0000-----------------------
INT 10 - VESA Audio Interface - VBE/AI INSTALLATION CHECK
AX = 4F13h
BX = 0000h
Return: AL = 4Fh if function supported
AH = status
00h successful
BX = version (0010h for 1.00 -- note nonstandard value!)
01h failed
SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
--------s-104F13BX0001-----------------------
INT 10 - VESA Audio Interface - LOCATE DEVICE
AX = 4F13h
BX = 0001h
CX = 0000h ???
DX = type of device
0001h Wave device
0002h MIDI device
0003h Volume device
Return: AL = 4Fh if function supported
AH = status
00h successful
CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
--------s-104F13BX0002-----------------------
INT 10 - VESA Audio Interface - QUERY DEVICE
AX = 4F13h
BX = 0002h
CX = handle
DX = query
0001h return length of GeneralDeviceClass
0002h return copy of GeneralDeviceClass (see #0076)
0003h return length of Volume Info Structure
0004h return copy of Volume Info Structure (see #0086)
0005h return length of Volume Services Structure
0006h return copy of Volume Services Structure (see #0088)
0007h-000Fh reserved
0010h-FFFFh device-specific
SI:DI -> buffer (functions 0002h,0004h,0006h)
Return: AL = 4Fh if function supported
AH = status
00h successful
SI:DI = length (functions 1,3,5)
SI:DI buffer filled (functions 2,4,6)
01h failed
Note: functions 0003h to 0006h are only supported for the Volume device
Format of GeneralDeviceClass structure:
Offset Size Description (Table 0076)
00h 4 BYTEs name of the structure ("GENI")
04h DWORD structure length
08h WORD type of device (1=Wave, 2=MIDI)
0Ah WORD version of VESA driver support (0100h for 1.00)
10h var for CX=handle for Wave device:
Wave Info structure (see #0077)
some bytes ???
for CX=handle for MIDI device:
MIDI Info Structure (see #0082)
first 8 bytes of MIDI Service Structure ???
SeeAlso: #0086,#0088
Format of WAVE Info Structure:
Offset Size Description (Table 0077)
00h 4 BYTEs name of the structure ("WAVI")
04h DWORD structure length [0000007Eh]
08h DWORD driver software version [00000003h]
0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
2Ch 32 BYTEs vendor product name
4Ch 32 BYTEs vendor chip/hardware description
6Ch BYTE installed board number
6Dh 3 BYTEs unused data
70h DWORD feature bits (see #0078)
74h WORD user determined preference field
76h WORD memory required for driver use [0200h]
78h WORD number of timer tick callbacks per second [0000h]
7Ah WORD channels: 1 = mono, 2 = stereo
stereo is assumed to be interleaved data
7Ch WORD bitfield of max sample sizes (see #0079)
SeeAlso: #0082
Bitfields for Wave feature bits:
Bit(s) Description (Table 0078)
0 8000hz Mono Playback
1 8000hz Mono Record
2 8000hz Stereo Record
3 8000hz Stereo Playback
4 8000hz Full Duplex Play/Record
5 11025hz Mono Playback
6 11025hz Mono Record
7 11025hz Stereo Record
8 11025hz Stereo Playback
9 11025hz Full Duplex Play/Record
10 22050hz Mono Playback
11 22050hz Mono Record
12 22050hz Stereo Record
13 22050hz Stereo Playback
14 22050hz Full Duplex Play/Record
15 44100hz Mono Playback
16 44100hz Mono Record
17 44100hz Stereo Record
18 44100hz Stereo Playback
19 44100hz Full Duplex Play/Record
20-26 reserved (0)
27 driver must pre-handle the data
28 Variable Sample mono playback
29 Variable Sample stereo playback
30 Variable Sample mono record
31 Variable Sample stereo record
(Table 0079)
Values for Sample data size:
01h 8bit play
02h 16bit play
10h 8bit record
20h 16bit record
Format of WAVE Audio Services structure:
Offset Size Description (Table 0080)
00h 4 BYTEs name of the structure
04h DWORD structure length
08h 16 BYTEs for future expansion
---entry points (details???)---
18h DWORD DeviceCheck
11h compression (see also #0081)
12h driver state
13h get current pos
14h sample rate
15h set preference
16h get DMA,IRQ
17h get IO address
18h get mem address
19h get mem free
1Ah full duplex
1Bh get block size
1Ch get PCM format
1Dh enable PCM format
80h-.. vendors can add DevChks above 0x80
1Ch DWORD PCMInfo
20h DWORD PlayBlock
24h DWORD PlayCont
28h DWORD RecordBlock
2Ch DWORD RecordCont
30h DWORD PauseIO
34h DWORD ResumeIO
38h DWORD StopIO
3Ch DWORD WavePrepare
40h DWORD WaveRegister
44h DWORD GetLastError
01h unsupported feature/function
02h bad sample rate
03h bad block length
04h bad block address
05h app. missed an IRQ
06h don't understand the PCM size/format
80h-.. vendors specific errors
48h DWORD TimerTick
4Ch DWORD ApplPSyncCB: CallBack: play filled in by the app
50h DWORD ApplRSyncCB: CallBack: rec filled in by the app
SeeAlso: #0084,#0088
(Table 0081)
Values for type of compression:
01h IMA play
02h ALAW play
03h ULAW play
11h IMA record
12h ALAW record
13h ULAW record
Format of MIDI Info Structure:
Offset Size Description (Table 0082)
00h 4 BYTEs name of the structure ("MIDI")
04h DWORD structure length
08h DWORD driver software version [00000003h]
0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
2Ch 32 BYTEs vendor product name
4Ch 32 BYTEs vendor chip/hardware description
6Ch BYTE installed board number
6Dh 3 BYTEs unused data
70h 14 BYTEs the patch library file name [OPL2.BNK 00..]
7Eh DWORD feature bits (see #0083)
80h WORD user determined preference field
82h WORD memory required for driver use
84h WORD # of timer tick callbacks per second
86h WORD max # of tones (voices, partials)
SeeAlso: #0076,#0084,#0086
Bitfields for MIDI feature bits:
Bit(s) Description (Table 0083)
0-3 reserved for GM extensions
4 Transmitter/Receiver only
5 Patches preloaded
6 MIDI receive has time stamp
8 MIDI interrupt driven input supported
9 MIDI polled input supported
10 MIDI remote patches supported
Format of MIDI Service structure:
Offset Size Description (Table 0084)
00h 4 BYTEs name of the structure ("MIDS")
04h DWORD structure length
08h 16 WORDs patches loaded table bit field
28h 16 BYTEs for future expansion
---entry points (details???)---
38h DWORD device check
11h return available tones
12h return TRUE/FALSE if patch is understood
13h set preference
14h allow/disallow voice stealing
15h get FIFO sizes
16h get DMA,IRQ
17h get IO address
18h get mem address
19h get mem free
80h-.. vendors can add DevChks above 0x80
3Ch DWORD global reset
40h DWORD MIDI msg
44h DWORD poll MIDI
48h DWORD preload patch
4Ch DWORD unload patch
50h DWORD timer tick
54h DWORD get last error
01h unsupported feature/function
02h unknown patch type (see #0085)
03h all tones are used
04h messages are out of sync
05h an incoming patch was incomplete
06h an incoming patch couldn't be stored
07h had to drop an incoming byte
08h driver is failing a patch download
80h-.. vendors specific errors
58h DWORD Patch Block free callback
5Ch DWORD MIDI byte avail. callback
SeeAlso: #0080,#0088
(Table 0085)
Values for MIDI Registered Patch Types:
10h OPL2
11h OPL3
Format of Volume Info Structure:
Offset Size Description (Table 0086)
00h 4 BYTEs name of the structure ("VOLI")
04h DWORD structure length (00000092h)
08h DWORD driver software version [00000001h]
0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
2Ch 32 BYTEs vendor product name
4Ch 32 BYTEs vendor chip/hardware description
6Ch BYTE installed board number (0 for 1st/only board)
6Dh 3 BYTEs unused data (0)
70h 24 BYTEs text name of the mixer channel
88h DWORD features bits (see #0087)
8Ch WORD minimum volume setting
8Eh WORD maximum volume setting
90h WORD attenuation/gain crossover
SeeAlso: #0076,#0088
Bitfields for Volume feature bits:
Bit(s) Description (Table 0087)
0 Stereo Volume control available
2 Low Pass Filter is available
3 High Pass Filter is available
4 Parametric Tone Control is available
5 selectable output paths
8 Azimuth Field positioning supported
9 Phi Field positioning supported
10-30 unused???
31 Master Volume device
Format of Volume Services Structure:
Offset Size Description (Table 0088)
00h 4 BYTEs name of the structure ("VOLS")
04h DWORD structure length (00000038h)
08h 16 BYTEs 16 bytes for future expansion (0)
---entry points (details???)---
18h DWORD device check
0011h filter range
0012h filter setting
0013h filter current
0014h tone range
0015h tone setting
0016h tone current
0017h path
0018h get IO address
0080h-.. vendors can add DevChks above 0x80
1Ch DWORD set vol to an absolute setting
01h User master volume setting
02h application master volume setting
20h DWORD set 3D volume
24h DWORD tone control
28h DWORD filter control
2Ch DWORD output path
30h DWORD reset channel
34h DWORD get last error
01h unsupported feature/function
02h out of range parameter value
80h+ vendor-specific errors
SeeAlso: #0080,#0084
--------s-104F13BX0003-----------------------
INT 10 - VESA Audio Interface - OPEN DEVICE
AX = 4F13h
BX = 0003h
CX = handle
DX = API set (16/32-bit)
SI = segment ???
Return: AL = 4Fh if function supported
AH = status
00h successful
SI:CX -> memory ???
01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
--------s-104F13BX0004-----------------------
INT 10 - VESA Audio Interface - CLOSE DEVICE
AX = 4F13h
BX = 0004h
CX = handle
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
--------s-104F13BX0005-----------------------
INT 10 - VESA Audio Interface - UNINSTALL DRIVER
AX = 4F13h
BX = 0005h
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
--------s-104F13BX0006-----------------------
INT 10 - VESA Audio Interface - DRIVER CHAIN/UNCHAIN
AX = 4F13h
BX = 0006h
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
----------104F4D-----------------------------
INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
AX = 4F4Dh
BX = number of bytes available for VCI use
DS:0000h -> buffer for VCI
ES:DI -> VCI driver callback function
Return: AL = 4Fh if supported
AH = status
00h successful
BX = number of bytes used by VCI
ES:DI -> VCI request handler
01h failed
Desc: allow the VESA BIOS Extensions to cooperate with a pointing-device
(typically mouse) driver
--------V-104FFF-----------------------------
INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
AX = 4FFFh
DL = new state (00h off, 01h on)
Return: AX = 0000h if successful
--------V-104FFF-----------------------------
INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
AX = 4FFFh
BX = dual display mode
00h reset
01h set dual display, 32KB VGA test
02h set dual display, 64KB VGA test
Return: AX = 4F00h if successful
BX = number of scanlines off screen for test mode
--------U-1050-------------------------------
INT 10 - SCROLOCK.COM - INSTALLATION CHECK
AH = 50h
Return: BX = 1954h if installed
AL = 00h if inactive, nonzero if active
Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
SeeAlso: AH=51h
--------J-105000-----------------------------
INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
AX = 5000h
BX = country code
0001h USA (English), 0051h Japan
Return: AL = status
00h successful
01h bad country code
02h other error
SeeAlso: AX=5001h,INT 16/AX=5000h
--------J-105001-----------------------------
INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
AX = 5001h
Return: AL = status
00h successful
BX = country code
02h error
SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
--------V-105049-----------------------------
INT 10 - VIDEO - SCREENR v1.55+ - API
AX = 5049h ('PI')
BX = function
0000h installation check
0001h lock mode
0002h unlock mode
0003h lock palette
0004h unlock palette
Return: AX = 0000h if installed
BX = TSR version (BH=major,BL=minor)
CL = mode locking status
00h mode not locked
01h mode locked: INT 10/AH=00h disabled
CH = palette locking status
00h palette not locked
01h palette locked, the following functions are disabled:
AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
utility.
Index: installation check;SCREENR
--------U-1051-------------------------------
INT 10 - SCROLOCK.COM - ENABLE/DISABLE
AH = 51h
AL = state
00h disable
nonzero enable
Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
SeeAlso: AH=50h"SCROLOCK"
--------J-105100-----------------------------
INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
AX = 5100h
BH = character width in bits (10h)
BL = character height (10h)
DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
ES:BP -> character bitmap
Return: AL = status (00h successful, 01h failed)
SeeAlso: AX=5101h,INT 1F
--------J-105101-----------------------------
INT 10 - VIDEO - AX PC - READ CHARACTER
AX = 5101h
BH = character width in bits
BL = character height
DX = character code (DH = 00h if 8-bit character)
ES:BP -> buffer for character bitmap
Return: AL = status (00h successful, 01h failed)
SeeAlso: AH=09h,AX=5100h
--------J-105200-----------------------------
INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
AX = 5200h
BX = segment of buffer
SeeAlso: AX=5201h
--------J-105201-----------------------------
INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
AX = 5201h
Return: BX = segment of buffer or 0000h if failed
SeeAlso: AX=8300h,AH=FEh
----------1053-------------------------------
INT 10 - Show Partner F/X v3.6 - START PRESENTATION
AH = 53h
DS:DX -> ASCIZ name of presentation file (no path, extension forced to
.PR2)
Return: ???
SeeAlso: AH=55h
----------1055-------------------------------
INT 10 - Show Partner F/X v3.6 - UNINSTALL
AH = 55h
Return: FXSHOW.EXE removed from memory
SeeAlso: AH=53h
--------V-105555-----------------------------
INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
AX = 5555h
Return: AX = AAAAh if installed
BX:CX -> ??? routine in SMS.COM resident portion
-> data area (see #0089) in VCONFIG
Program: Super Switch (SMS.COM) is a video mode switch program supplied with
ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
Index: screen saver;ATI Wonder SMS.COM
Format of ATI Super Switch data area:
Offset Size Description (Table 0089)
00h DWORD original INT 09 vector
04h DWORD original INT 10 vector
08h DWORD original INT 1C vector
0Ch WORD screen saver state, 0=off, 1=on
0Eh WORD blanking interval in clock ticks
--------V-105F00-----------------------------
INT 10 - Chips & Technologies Extended BIOS - RETURN 82C45X CHIP INFORMATION
AX = 5F00h
Return: AL = 5Fh function supported
BL = chip type (see #0090)
BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
CX = miscellaneous information (see #0091)
SeeAlso: AX=5F01h
Bitfields for Chips&Technologies chip type:
Bit(s) Description (Table 0090)
7-4 chip type
0000: 82c451
0001: 82c452
0010: 82c455
0011: 82c453
0101: 82c456
0110: 82c457
0111: F65520
1000: F65530
3-0 revision number
Bitfields for Chips&Technologies miscellaneous information:
Bit(s) Description (Table 0091)
0 DAC size (0=6-bit, 1=8-bit)
1 system type (0=PC/AT, 1=PS/2)
2 extended text modes supported by BIOS
3 reserved
4 extended graphics modes supported by BIOS
5 reserved
6 BIOS supports graphics cursor
7 BIOS supports anti-aliased font
8 BIOS supports pre-programmed emulation
9 BIOS supports auto emulation
10 BIOS supports variable mode set at cold boot
11 BIOS supports variable mode set on warm boot
12 BIOS supports emulation mode set at cold boot
13 BIOS supports emulation mode set on warm boot
14-15 reserved
--------V-105F00-----------------------------
INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
AX = 5F00h
Return: AH = 00h, if successful
AL = chip version (the same value that VTEST.EXE reads)
00h RTG3103???
01h RTG31030/RTG3105
02h RTG3106???
3Fh non-Realtek chip
BUG: in v3.C10, AX=5F00h on return due to improper stack restoration code
SeeAlso: AX=5F01h"RTVGA"
--------V-105F01-----------------------------
INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
AX = 5F01h
BL = emulation type (see #0092)
Return: AL = 5Fh if function supported
AH = status
00h unsuccessful
01h successful
SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
(Table 0092)
Values for Chips&Technologies emulation type:
00h,01h reserved
02h CGA
03h MDA
04h Hercules
05h EGA
06h VGA
--------V-105F01-----------------------------
INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
AX = 5F01h
ES:DI -> zero-filled buffer for BIOS ID string
Return: AH = 00h if successful
ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
BUG: in v3.C10, AX=5F01h on return due to improper stack restoration code
SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
--------V-105F02-----------------------------
INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
AX = 5F02h
BL = new state of autmatic emulation (00h enabled, 01h disabled)
Return: AL = 5Fh if function supported
AH = status
00h unsuccessful
01h successful
SeeAlso: AX=5F01h,AX=5F03h
--------V-105F02-----------------------------
INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
AX = 5F02h
Return: AH = 00h, if successful
AL = on-board memory size
(00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
BUG: in v3.C10, AX=5F02h on return due to improper stack restoration code
SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
--------V-105F03-----------------------------
INT 10 - VIDEO - Realtek RTVGA - SET ???
AX = 5F03h
BL = 0-3 (???)
Return: AH = 00h if successful
BUG: in v3.C10, AX=5F03h on return due to improper stack restoration code
SeeAlso: AX=5F02h"RTVGA"
--------V-105F03-----------------------------
INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
AX = 5F03h
BL = configuration
00h power-up display mode
CL = display mode
CH = mode (see #0093)
01h power-up emulation mode
CL = emulation mode (see #0092)
CH = permanence (00h reset after next boot, 01h until changed)
Return: AL = 5Fh if function supported
AH = status
00h unsuccessful
01h successful
SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
Bitfields for Chips&Technologies display mode:
Bit(s) Description (Table 0093)
1-0 scanlines (00 = 200, 01 = 350, 10 = 400)
7 persistence (0 reset on next boot, 1 until changed)
--------V-105F03BL01-------------------------
INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
AX = 5F03h
BL = 01h
CL = emulation mode
CH = mode
bit 7 persistence (0 reset on next boot, 1 until changed)
Return: AL = 5Fh if function supported
AH = status
00h unsuccessful
01h successful
SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
--------V-105F-------------------------------
INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
AH = 5Fh
AL = subfunction
90h determine size of save buffer
91h save state
92h restore state
CX = state mask (see #0094)
ES:BX -> save buffer (subfunctions 91h,92h only)
Return: AL = 5Fh if function supported
---subfunction 90h---
BX = number of 64-byte blocks required
---subfunction 92h---
buffer at ES:BX filled
SeeAlso: AH=1Ch,AX=5F03h
Bitfields for Chips&Technologies state mask:
Bit(s) Description (Table 0094)
0 video hardware
1 BIOS data state
2 DAC state
15 type (0 all state info, 1 SuperVGA state only)
--------V-1060------------------------------------
INT 10 - HUNTER 16 - SET GRAPHICS FONT
AH = 60h
AL = new font
bit 7 output characters in reverse video
bits 0-6 font number (see #0108 at AH=77h)
Return: BH = cell width
BL = cell height
Desc: select the font to use for output in mode 6; this can be used to mix
fonts on the screen
Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
--------V-1061------------------------------------
INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
AH = 61h
CX = column
DX = row
Note: this function is only valid in graphics modes
SeeAlso: AH=62h
--------V-1062------------------------------------
INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
AH = 62h
Return: CX = column
DX = row
Note: this function is only valid in graphics modes
SeeAlso: AH=61h
--------V-1063------------------------------------
INT 10 - HUNTER 16 - SET CONTRAST
AH = 63h
AL = contrast (0..127)
Desc: set the LCD screen contrast to improve visibility
SeeAlso: AH=64h,AH=75h
--------V-1064------------------------------------
INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
AH = 64h
AL = level (0..15)
Desc: set the LCD backlight level to improve visibility in bad lighting
SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
--------V-106500----------------------------------
INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
AX = 6500h
Return: BX = timeout in seconds (0-300)
Desc: returns the time after which the backlight will turn off
SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
--------V-106501----------------------------------
INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
AX = 6501h
BX = timeout in seconds (0-300)
Desc: set the idle time after which the backlight will turn off
SeeAlso: AH=64h,AX=6500h
--------V-1066------------------------------------
INT 10 - HUNTER 16 - SPLIT DISPLAY
AH = 66h
AL = control bits (see #0095)
BH = top row of lower section of LCD (0..7)
BL = top row of lower section of the virtual screen (0..24)
Desc: split the LCD screen horizontally into two parts; each part may be
individually scrollable or fixed.
Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
a 640x200 virtual screen
Bitfields for HUNTER 16 control bits:
Bit(s) Description (Table 0095)
0-1 01: no split, 10: allow split
2 allow scrolling the upper part
3 allow scrolling the lower part
--------V-106A00BX0000-----------------------
INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
AX = 6A00h
BX = 0000h
CX = 0000h
DX = buffer length (may be 0)
ES:DI -> buffer
Return: BX = number of bytes stored in buffer
CX = bytes required for all descriptions (0 if no DGIS)
Note: buffer contains descriptions and addresses of DGIS-compatible
display(s) and printer(s)
SeeAlso: AX=6A02h
--------V-106A01CX0000-----------------------
INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
AX = 6A01h
CX = 0000h
ES:DI = address of device to send INT 10 output to
Return: CX = 0000h output could not be redirected
else INT 10h output now routed to requested display
SeeAlso: AX=6A02h
--------V-106A02-----------------------------
INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
AX = 6A02h
ES:DI = 0000h:0000h
Return: ES:DI = 0000h:0000h if current display is non-DGIS
else address of the current DGIS INT 10 display
SeeAlso: AX=6A00h,AX=6A01h
--------V-106E00-----------------------------
INT 10 - Paradise VGA internal - GET ???
AX = 6E00h
Return: BX = 5744h ('WD') if supported
DH:AH:AL = last three ASCII digits of ROM serial number
CL = ???
CH = ???
SeeAlso: AX=6E04h,AX=6E05h
--------V-106E04-----------------------------
INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
AX = 6E04h
Return: BX = screen width (columns)
CX = screen height (lines)
AH = ??? (05h or FFh)
AL = ??? (04h or video mode)
SeeAlso: AX=6E00h,AX=6E05h
--------V-106E05-----------------------------
INT 10 - Paradise VGA internal - SET MODE
AX = 6E05h
BL = mode
Note: like AH=00h, AL=BL.
SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
--------V-106F00-----------------------------
INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
AX = 6F00h
BX <> 4850h (usually set to 0000h for simplicity)
Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
AX destroyed
SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
--------V-106F00BX0000-----------------------
INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
AX = 6F00h
BX = 0000h
Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
--------V-106F01-----------------------------
INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
AX = 6F01h
Return: AL = monitor type code (HP,VEGA VGA only) (see #0096)
AH = status register information (see #0097)
CL = current value of Extended Control register (HP Ext BIOS, and only
if AL=41h) (see #0098)
Notes: bits 0-3 are the same as the EGA/VGA status register bits 0-3
supported by original HP Vectra AT and by ES/QS/RS series Vectras
(Table 0096)
Values for monitor type code (HP Extended BIOS):
00h non-HP card with ROM and possibly its own INT 10h driver
41h MultiMode video display adapter
42h-44h reserved
45h industry standard monochrome display adapter
46h industry standard color display adapter
51h reserved
Bitfields for status register information:
Bit(s) Description (Table 0097)
0 display enable
0 = display enabled
1 = vertical or horizontal retrace in progress
1 light pen flip flop set
2 light pen switch activated
3 vertical sync
4 monitor resolution
0 = high resolution (>200 lines)
1 = low resolution (<=200 lines)="" 5="" display="" type="" (0="color," 1="monochrome)" 6,7="" diagnostic="" bits="" note:="" bits="" 0-3="" are="" the="" same="" as="" the="" ega/vga="" status="" register="" bits="" 0-3="" --------v-106f02-----------------------------="" int="" 10="" -="" hp="" vectra="" ex-bios="" -="" set="" monitor="" info="" ax="6F02h" bl="new" value="" for="" extended="" control="" register="" (see="" #0098)="" return:="" ax,bl="" destroyed="" notes:="" this="" function="" is="" only="" valid="" when="" an="" hp="" multimode="" video="" display="" adapter="" is="" installed="" the="" extended="" control="" register="" is="" at="" i/o="" address="" 3ddh="" seealso:="" ax="6F01h,AX=6F03h" bitfields="" for="" hp="" vectra="" extended="" control="" register:="" bit(s)="" description="" (table="" 0098)="" 0="" screen="" resolution="" (0="200" lines,="" 1="400" lines)="" 1="" underline="" enable="" (if="" set,="" 'blue'="" of="" fg="" color="underline)" 2="" font="" (0="Standard-8," 1="HP-Roman-8)" 3="" memory="" disabled="" for="" cpu="" access="" 4="" allow="" access="" to="" full="" 32k="" memory="" instead="" of="" wrapping="" at="" 16k="" 5="" select="" second="" 16k="" page="" instead="" of="" first="" 6,7="" unused="" --------v-106f03-----------------------------="" int="" 10="" -="" hp="" vectra="" ex-bios="" -="" modify="" monitor="" info="" ax="6F03h" bh="exclude" mask="" (set="" bits="" are="" not="" modified)="" bl="new" values="" for="" bits="" indicated="" by="" bh="" (see="" #0098)="" return:="" ax="" destroyed="" notes:="" this="" function="" is="" only="" valid="" when="" an="" hp="" multimode="" video="" display="" adapter="" is="" installed="" supported="" by="" original="" hp="" vectra="" at="" and="" by="" es/qs/rs="" series="" vectras="" seealso:="" ax="6F01h,AX=6F02h" --------v-106f04-----------------------------="" int="" 10="" -="" video="" -="" video7="" vga,vega="" vga,hp="" vectra="" -="" get="" mode="" and="" screen="" resolution="" ax="6F04h" return:="" al="current" video="" mode="" (see="" #0099)="" bx="horizontal" columns="" (text)="" or="" pixels="" (graphics)="" cx="vertical" columns="" (text)="" or="" pixels="" (graphics)="" seealso:="" ax="6F05h" --------v-106f05-----------------------------="" int="" 10="" -="" video="" -="" video7="" vga,vega="" extended="" ega/vga,hp="" vectra="" -="" set="" video="" mode="" ax="6F05h" bl="mode" (see="" #0099)="" return:="" ax,bl="" destroyed="" notes:="" also="" supported="" by="" the="" hp="" vectra="" extended="" bios="" on="" the="" original="" hp="" vectra="" at="" and="" by="" es/qs/rs="" series="" vectras="" on="" the="" hp="" vectra,="" this="" function="" rather="" than="" ah="00h" must="" be="" used="" to="" return="" to="" an="" ibm-standard="" mode="" after="" setting="" an="" hp-specified="" mode="" from="" 08h="" to="" 0fh.="" seealso:="" ah="00h,AX=0070h,AX=007Eh,AX=6F04h" (table="" 0099)="" values="" for="" video7/vega="" video="" mode:="" text/="" text="" pixel="" pixel="" colors="" disply="" scrn="" system="" grph="" resol="" box="" resolution="" pages="" addr="" 00h-13h="standard" ibm="" modes="" (see="" #0009="" at="" ah="00h)" 08h="T" 80x27="" .="" .="" mono="" .="" .="" hp="" multimode="" video="" 09h="T" 80x27="" .="" .="" .="" .="" .="" hp="" multimode="" video="" 0ah="T" 40x27="" .="" .="" mono="" .="" .="" hp="" multimode="" video="" 0bh="T" 40x27="" .="" .="" .="" .="" .="" hp="" multimode="" video="" 0ch="reserved" hp="" multimode="" video="" 0dh="G" .="" .="" 640x400="" .="" .="" .="" hp="" multimode="" video="" 0eh="G" .="" .="" 320x400="" .="" .="" .="" hp="" multimode="" video="" 0fh="G" .="" .="" 320x400="" .="" .="" .="" hp="" multimode="" video="" 40h="T" 80x43="" 8x8="" .="" .="" .="" .="" video7/vega="" vga="" 41h="T" 132x25="" 8x14="" .="" .="" .="" .="" video7/vega="" vga="" 42h="T" 132x43="" 8x8="" .="" .="" .="" .="" video7/vega="" vga="" 43h="T" 80x60="" 8x8="" .="" .="" .="" .="" video7/vega="" vga="" 44h="T" 100x60="" 8x8="" .="" .="" .="" .="" video7/vega="" vga="" 45h="T" 132x28="" 8x8="" .="" .="" .="" .="" video7/vega="" vga="" 60h="G" .="" .="" 752x410="" 16="" .="" .="" video7="" vga,="" vega="" vga="" 61h="G" .="" .="" 720x540="" 16="" .="" .="" video7="" vga,="" vega="" vga="G" .="" .="" 720x540="" 16="" .="" .="" northgate,="" headland="" 1024i="" 62h="G" .="" .="" 800x600="" 16="" .="" .="" video7="" vga,="" vega="" ext="" ega="G" .="" .="" 800x600="" 16="" .="" .="" headland="" 1024i="" 63h="G" .="" .="" 1024x768="" 2="" .="" .="" video7="" vga="" 64h="G" .="" .="" 1024x768="" 4="" .="" .="" video7="" vga="" 65h="G" .="" .="" 1024x768="" 16="" .="" .="" video7="" vga,="" vega="" ext="" ega="G" .="" .="" 1024x768="" 16="" .="" .="" headland="" 1024i="" 66h="G" .="" .="" 640x400="" 256="" .="" .="" video7="" vga,="" vega="" ext="" vga="G" .="" .="" 640x400="" 256="" .="" .="" northgate,="" headland="" 1024i="" 67h="G" .="" .="" 640x480="" 256="" .="" .="" video7="" vga,="" vega="" ext="" vga="G" .="" .="" 640x480="" 256="" .="" .="" headland="" 1024i="" 68h="G" .="" .="" 720x540="" 256="" .="" .="" video7="" vga,="" vega="" ext="" vga="G" .="" .="" 720x540="" 256="" .="" .="" headland="" 1024i="" 69h="G" .="" .="" 800x600="" 256="" .="" .="" video7="" vga,="" vega="" ext="" vga="G" .="" .="" 800x600="" 256="" .="" .="" headland="" 1024i="" 70h="G" .="" .="" 752x410="" 16gray="" .="" .="" video7="" vga,="" vega="" vga="" 71h="G" .="" .="" 720x540="" 16gray="" .="" .="" video7="" vga,="" vega="" vga="" 72h="G" .="" .="" 800x600="" 16gray="" .="" .="" video7="" vga="" 73h="G" .="" .="" 1024x768="" 2gray="" .="" .="" video7="" vga="" 74h="G" .="" .="" 1024x768="" 4gray="" .="" .="" video7="" vga="" 75h="G" .="" .="" 1024x768="" 16gray="" .="" .="" video7="" vga="" 76h="G" .="" .="" 640x400="" 256gray="" .="" .="" video7="" vga="" 77h="G" .="" .="" 640x480="" 256gray="" .="" .="" video7="" vga="" 78h="G" .="" .="" 720x540="" 256gray="" .="" .="" video7="" vga="" 79h="G" .="" .="" 800x600="" 256gray="" .="" .="" (future)="" seealso:="" ah="00h,AX=0070h,AX=007Eh,AX=6F04h" index:="" video="" modes;video="" 7|video="" modes;vega|video="" modes;headland="" --------v-106f06-----------------------------="" int="" 10="" -="" video="" -="" video7="" vga,vega="" vga="" -="" select="" autoswitch="" mode="" ax="6F06h" bl="Autoswitch" mode="" select="" 00h="" select="" ega/vga-only="" modes="" 01h="" select="" autoswitched="" vga/ega/cga/mga="" modes="" 02h="" select="" 'bootup'="" cga/mga="" modes="" bh="enable/disable" (00h="" enable,="" 01h="disable" selection)="" --------v-106f07-----------------------------="" int="" 10="" -="" video="" -="" video7="" vga,vega="" vga="" -="" get="" video="" memory="" configuration="" ax="6F07h" return:="" al="6Fh" ah="memory" configuration="" bits="" 0-6="number" of="" 256k="" blocks="" of="" video="" memory="" bit="" 7="DRAM/VRAM" (0:="" dram,="" 1:="" vram)="" bh="chip" revision="" (sr8f)="" (s/c="" chip="" in="" vega="" vga)="" bl="chip" revision="" (sr8e)="" (g/a="" chip="" in="" vega="" vga)="" cx="0000h" seealso:="" ah="12h/BL=10h" --------v-1070-------------------------------="" int="" 10="" -="" video="" -="" tandy="" 2000="" only="" -="" get="" address="" of="" video="" ram="" ah="70h" return:="" ax:bx="" -=""> WORD containing green plane's offset
AX:CX -> WORD containing green plane's segment
AX:DX -> WORD containing segment of red (offset 0) and blue (offset
4000) planes
SeeAlso: AH=71h
--------V-1070------------------------------------
INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
AH = 70h
DS:BX -> control block (see #0100)
Desc: Draws a circle or ellipse. Only valid in graphics modes.
Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
SeeAlso: AH=71h"HUNTER"
Format of HUNTER 16 control block:
Offset Size Description (Table 0100)
00h WORD center X co-ordinate
02h BYTE center Y co-ordinate
03h WORD radius in pixels
05h BYTE color (00h white, 01h black, FFh invert)
06h BYTE aspect ratio x:x (1-127)
07h BYTE aspect ratio y:y (1-127)
--------V-107000BX0000-----------------------
INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
AX = 7000h
BX = 0000h
Return: AL = 70h if Trident-based Everex card
CL = monitor type (see #0101)
CH = feature bits (see #0102)
DX = video board info
bits 4-15: board ID model (see #0103)
bits 0-3: board ID revision
DI = BCD BIOS version number
SeeAlso: AX=5F01h,AH=FF"Oak"
(Table 0101)
Values for Everex monitor type:
00h mono
01h CGA
02h EGA
03h digital multifrequency
04h IBM PS/2
05h IBM 8514
06h SuperVGA
07h analog multifrequency
08h super multifrequency
Bitfields for Everex feature bits:
Bit(s) Description (Table 0102)
7-6 memory size
00 = 256K
01 = 512K
10 = 1024K
11 = 2048K
5 special oscillator present
4 VGA protect enabled
0 6845 emulation
(Table 0103)
Values for board model for Trident-based Everex cards:
0236h Ultragraphics II
0620h Vision VGA
0673h EVGA
0678h Viewpoint
--------V-107000BX0004-----------------------
INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
AX = 7000h
BX = 0004h
Return: ES:DI -> FAR paging function (call with DL = page to set)
Note: the word preceding ES:DI is the length of the function in bytes, and
the last byte of the function is a FAR return instruction.
SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
--------V-107000BX0005-----------------------
INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
AX = 7000h
BX = 0005h
CL = maximum number of modes to get info for
CH = mode type to get info for (see #0104)
DL = monitor type to get info for
ES:DI -> buffer for mode info (see #0105)
Return: CL = total number of modes fitting criteria
CH = size of each info record
SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
(Table 0104)
Values for Everex mode type:
00h all modes
01h monochrome text modes
02h color text modes
03h four-color CGA graphics modes
04h two-color CGA graphics modes
05h 16-color graphics modes
06h 256-color graphics modes
Format of Everex mode information record:
Offset Size Description (Table 0105)
00h BYTE mode number (bit 7 set if extended mode)
01h BYTE mode type (see #0104)
02h BYTE info bits (see #0106)
03h BYTE font height
04h BYTE text columns on screen
05h BYTE text rows on screen
06h WORD number of scan lines
08h BYTE color information
bits 7-4 reserved
3-0 bits per pixel
Bitfields for Everex info bits:
Bit(s) Description (Table 0106)
7,6 reserved
5 monochrome mode
4 interlaced display
3 requires special oscillator
2,1 memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
0 reserved
--------V-1071-------------------------------
INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
AH = 71h
Return: AX:BX -> WORD containing segment address of INCRAM
AX:CX -> WORD containing offset of INCRAM
SeeAlso: AH=70h"TANDY"
--------V-1071------------------------------------
INT 10 - HUNTER 16 - DRAW LINE/BOX
AH = 71h
DS:BX -> control block (see #0107)
Desc: Draws a line or box. Only valid in graphics modes.
SeeAlso: AH=70h"HUNTER"
Format of HUNTER 16 control block:
Offset Size Description (Table 0107)
00h WORD left edge X co-ordinate
02h BYTE lower edge Y co-ordinate
03h WORD right edge X co-ordinate
05h BYTE upper edge Y co-ordinate
06h BYTE color (00h white, 01h black, FFh invert)
07h BYTE type (00h line, 01h box)
08h BYTE if non-zero (and type is BOX) fill with color
--------V-1072-------------------------------
INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
AH = 72h
AL = number of columns to shift scroll area, 00h to clear entire area
BH = new attributes for blanked columns at left
CH,CL = row, column of upper left corner of scroll area
DH,DL = row, column of lower right corner of scroll area
SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
--------V-1072------------------------------------
INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
AH = 72h
AL = mechanism to use
00h do not use inverse video
01h emulate MDA. Display attribute 07h is normal video and 70h is
inverse video.
02h use inverse video if background is non-black.
03h use inverse video for high intensity text.
04h use inverse video for text with background intensity greater
than foreground intensity.
05h use inverse video for text with background color other than
black or high intensity foreground.
SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
--------V-1073-------------------------------
INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
AH = 73h
AL = number of columns to shift scroll area, 00h to clear entire area
BH = new attributes for blanked columns at right
CH,CL = row, column of upper left corner of scroll area
DH,DL = row, column of lower right corner of scroll area
SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
--------V-1073------------------------------------
INT 10 - HUNTER 16 - SELECT TEXT FONT
AH = 73h
AL = new font
00h 7x7 in a 8x8 cell
01h 5x7 in a 6x8 cell
06h 3x5 in a 4x6 cell
Retuen: BH = cell width
BL = cell height
SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
--------V-1074------------------------------------
INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
AH = 74h
DH = row (0..24)
DL = column (0..79)
Desc: set the position in the virtual screen being displayed in the LCD
screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
position for the window which has the cursor.
SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
--------V-1075------------------------------------
INT 10 - HUNTER 16 - SET ZOOM
AH = 75h
AL = new Zoom state (00h off, nonzero on)
SeeAlso: AH=74h,AH=76h
--------V-1076------------------------------------
INT 10 - HUNTER 16 - LOOKING KEYS
AH = 76h
AL = Action
00h home the window
01h move up one line
02h move down one line
03h move left one character
04h move right one character
05h flip window to other side of virtual screen
Desc: moves the displayed screen around the virtual screen
SeeAlso: AH=74h,AH=75h
--------V-1077------------------------------------
INT 10 - HUNTER 16 - GET GRAPHICS FONT
AH = 77h
Return: AL = font number (see #0108)
SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
(Table 0108)
Values for HUNTER 16 graphics font number:
00h 7x7 in a 8x8 cell
01h 5x7 in a 6x8 cell
02h 7x9 in a 8x10 cell
03h 14x9 in a 16x10 cell
04h 7x18 in a 8x20 cell
05h 14x18 in a 16x20 cell
06h 3x5 in a 4x6 cell
Note: size is X * Y
--------V-1078------------------------------------
INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
AH = 78h
AL = new state of backlight (00h on, 01h off)
SeeAlso: AH=64h,INT 15/AH=74h
--------V-107F00-----------------------------
INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
AX = 7F00h
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
ES:DI -> info structure (see #0109)
01h failed
Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
Seiko Epson Corporation intended to provided a standardized interface
to SuperVGA functionality not addressed by the VESA standard
SeeAlso: AX=4F00h
Format of SOLLEX SuperVGA info structure:
Offset Size Description (Table 0109)
00h DWORD pointer to VESA function dispatch table
04h DWORD pointer to SOLLEX function dispatch table
08h DWORD pointer to VESA SuperVGA info (see #0063 at AX=4F00h)
0Ch DWORD pointer to mode info structure table, consisting of
alternating ResInfo (see #0110) and VESA mode information
(see #0065 at AX=4F01h) blocks, terminated with an FFFFh word
10h DWORD pointer to font info structure table (see #0111)
14h WORD high resolution crystal frequency in Hz (0000h = not present)
16h DWORD pointer to ASCIZ ID string
1Ah DWORD pointer to timeout reset table
array of bytes, each a multiple of the minimum time increment
1Eh WORD minimum time increment in timer ticks
20h BYTE inverse options supported
bit 0: inverse supported
bits 1-7: reserved
21h BYTE normal color value
22h BYTE inverse color value
23h WORD port to be accessed for normal/inverse settings
25h WORD type of interface chip (currently undefined)
27h WORD program operational mode
bits 1-0: 00 no preference
01 terse (minimum detail in program messages)
10 verbose
11 use menus if supported, verbose mode otherwise
bits 7-2: reserved
29h WORD SOLLEX specification version
2Bh WORD version of VESA/SOLLEX implementation
2Dh DWORD offset to relocatable portion of SOLLEX extensions (for CONFIG)
2Eh DWORD offset to unused section of the extensions ROM
31h 16 BYTEs reserved
Note: all DWORD pointers initially require segment fixups; if the segment
is 0000h, it should be changed to the returned ES, otherwise it
may be assumed to be correct
Format of SOLLEX SuperVGA ResInfo:
Offset Size Description (Table 0110)
00h WORD 16-bit mode number
02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
04h WORD display info (see #0114)
06h DWORD pointer to video parameter table
0Ah BYTE replacement entry in master Video Parameter
0Bh BYTE mode requested for mode set by BIOS
0Ch DWORD pointer to LoadReg table
10h BYTE index into table of clock values (see #0112)
Format of SOLLEX SuperVGA font info table [array] entry:
Offset Size Description (Table 0111)
00h BYTE required font height
01h BYTE parameter to load text mode font
02h BYTE parameter to load graphics mode font
(Table 0112)
Values for SOLLEX SuperVGA clock value index:
00h 25 MHz
01h 28 MHz
02h PCLK
03h 31.5 MHz (VESA 640x480)
04h reserved
05h 16 MHz (EGA)
06h PCLK
07h 24 MHz (EGA)
08h 25 MHz
09h 28 MHz
0Ah 36 MHz
0Bh 45 MHz (for 1024x768)
0Ch 80 MHz
0Dh 40 MHz
0Eh 65 MHz
0Fh 1 MHz (for powerdown)
--------V-107F00BX4000-----------------------
INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
AX = 7F00h
BX = 4000h
Return: AX = 007Fh if supported
DX:BX -> DAC set mode routine
SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
--------V-107F00BX4001-----------------------
INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
AX = 7F00h
BX = 4001h
Return: AX = 007Fh if supported
CX = current linear address base (high word)
SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
--------V-107F00BX4002-----------------------
INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
AX = 7F00h
BX = 4002h
CX = new linear address base (high word)
Return: AX = 007Fh if supported
SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
--------V-107F01BL00-------------------------
INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
AX = 7F01h
BL = 00h
CX = adapter request (see #0113)
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
Note: initializes video hardware to a particular standard
SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
Bitfields for SOLLEX SuperVGA adapter request:
Bit(s) Description (Table 0113)
1-0 adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
2 reserved
4-3 change displays (00 none, 01 analog 10 digital 11 panel)
6-5 desired monitor sense (01 color, 10 mono, 11=8514)
7 lock override
8 alternate adapter mode
15-9 reserved
--------V-107F01BL01-------------------------
INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
AX = 7F01h
BL = 01h
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
BX = adapter type (see #0113)
DX = display type (see #0114)
SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
Bitfields for SOLLEX SuperVGA display type:
Bit(s) Description (Table 0114)
15-9 reserved
8 alternate display active
7 Enhanced Color Display monitor active
6 multi-frequency digital monitor active
5 PS/2-type monitor active
4 plasma/electroluminescent panel active
3 LCD panel active
2 multi-frequency analog monitor active
1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
--------V-107F01BL02-------------------------
INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
AX = 7F01h
BL = 02h
CX = adapter request (see #0113)
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h requested setting can successfully be made
01h requested setting not available in this configuration
SeeAlso: AX=7F00h,AX=7F01h/BL=00h
--------V-107F02BL00-------------------------
INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
AX = 7F02h
BL = 00h
CX = display output setting (see #0115)
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
SeeAlso: AX=7F00h,AX=7F02h/BL=00h
Bitfields for SOLLEX SuperVGA display output setting:
Bit(s) Description (Table 0115)
0 CRTC control in 2,1 valid
1 enable digital output
2 enable analog output
3 panel control in 5,4 valid
4 enable LCD output
5 enable plasma/EL output
6 inverse control in 7 valid
7 0=normal, 1=inverse
15-8 reserved
--------V-107F02BL01-------------------------
INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
AX = 7F02h
BL = 01h
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
BX = display output setting (see #0115)
CX = displays attached (see #0116)
01h failed
SeeAlso: AX=7F00h,AX=7F02h/BL=00h
Bitfields for SOLLEX SuperVGA displays attached:
Bit(s) Description (Table 0116)
0 PS/2 display on analog output
1 multi-frequency monitor on analog output
2 LCD panel attached
3 plasma/electroluminescent panel attached
4 multi-frequency monitor on digital output
5 Enhanced Color Display attached to digital outpt
6 alternate display
15-7 reserved
--------V-107F03BL00-------------------------
INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
AX = 7F03h
BL = 00h
CX = support type
0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
0005h-0012h reserved for SOLLEX, 0013h Hercules,
0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
CX = size of video support code
DX = segment of physical video support (0000h if no ROM)
ES = segment of active video support
ES:DI -> information block (DI = 0000h if none available)
01h failed
SeeAlso: AX=7F03h/BL=01h
--------V-107F03BL01-------------------------
INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
AX = 7F03h
BL = 01h
CX = support request
ES = segment of support code
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
Note: initializes the indicated video support by calling ES:0003h; this
function may be used to switch the active video support back to
ROM after AX=7F03h/BL=02h
SeeAlso: AX=7F03h/BL=00h
--------V-107F03BL02-------------------------
INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
AX = 7F03h
BL = 02h
CX = support request
ES = destination segment
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
SeeAlso: AX=7F00h,AX=7F03h/BL=01h
--------V-107F04BL00-------------------------
INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
AX = 7F04h
BL = 00h
CX = new power state
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
Note: higher values progressively reduce the operations available on the
video adapter while yielding increasing power savings
SeeAlso: AX=7F00h,AX=7F04h/BL=01h
--------V-107F04BL01-------------------------
INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
AX = 7F04h
BL = 01h
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
CX = current power state
DX = maximum state
01h failed
SeeAlso: AX=7F00h,AX=7F04h/BL=00h
--------V-107F04BL02-------------------------
INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
AX = 7F04h
BL = 02h
CX = timeout reset
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
SeeAlso: AX=7F00h,AX=7F04h/BL=03h
--------V-107F04BL03-------------------------
INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
AX = 7F04h
BL = 03h
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
BX = time increment
CX = current timeout reset
DX = maximum timeout reset
ES:DI -> timeout reset table (array of bytes)
01h failed
Note: the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
SeeAlso: AX=7F00h,AX=7F04h/BL=02h
--------V-107F05-----------------------------
INT 10 - SOLLEX SuperVGA - LOAD REGISTER
AX = 7F05h
ES:DI -> register value table (see #0117)
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
SeeAlso: AH=F1h,AH=F3h,AH=F5h
Format of SOLLEX SuperVGA register value table:
Offset Size Description (Table 0117)
00h WORD base I/O register (FFFFh = end of list)
02h 2N BYTEs pairs of values to be written to the base I/O register as an
index value and the following register as a data byte
2N+2 WORD FFFFh (end of data list)
... (repeats until FFFFh base address)
--------V-107F06-----------------------------
INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
AX = 7F06h
BL = subfunction
00h set multiple font state
CX = new state (00h off, 01h on)
01h get multiple font state
Return: BL = current state (00h off, 01h on)
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
SeeAlso: AH=11h
--------V-107F07-----------------------------
INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
AX = 7F07h
BL = how much to fill
00h regen size
01h all video memory
CX = pattern to write (normally 0720h for text modes and 0000h for gr)
Return: AL <> 7Fh if not supported
AL = 7Fh if supported
AH = status
00h successful
01h failed
SeeAlso: AH=06h
--------A-1080-------------------------------
INT 10 - CU Writer v1.4 - GET OPTION
AH = 80h
AL = desired option
Return: ???
Program: CU Writer is a public-domain Thai-English word processor from
Chulalongkorn University, Bangkok
SeeAlso: AH=81h"CU Writer"
--------Q-1080--DX4456-----------------------
INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
AH = 80h
DX = 4456h ('DV')
ES:DI -> FAR subroutine to be called on ???
Return: DS = segment of DESQview data structure for video buffer
Note: this function is probably meant for internal use only, due to the magic
value required in DX
the subroutine seems to be called when the DESQview menu is accessed;
on entry, AL = 03h or 04h
--------A-1081-------------------------------
INT 10 - CU Writer v1.4 - SET OPTION
AH = 81h
???
Return: ???
SeeAlso: AH=80h"CU Writer"
--------Q-1081--DX4456-----------------------
INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
AH = 81h
DX = 4456h ('DV')
Return: ES = segment of DESQview data structure for video buffer
BYTE ES:[0] = current window number in DV 2.0x
Note: this function is probably meant for internal use only, due to the magic
value required in DX
SeeAlso: AH=82h"DESQview"
--------Q-1082--DX4456-----------------------
INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
AH = 82h
DX = 4456h ('DV')
Return: DS = segment in DESQview for data structure
in DV 2.00,
BYTE DS:[0] = window number
WORD DS:[1] = segment of other data structure
WORD DS:[3] = segment of window's object handle
ES = segment of DESQview data structure for video buffer
AL = current window number
AH = ???
BL = direct screen writes
00h program does not do direct writes
01h program does direct writes, so shadow buffer not usable
BH = ???
CL = current video mode
CH = ???
Note: this function is probably meant for internal use only, due to the magic
value required in DX
SeeAlso: AH=81h"DESQview"
--------J-108200-----------------------------
INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
AX = 8200h
BL = new scroll mode or FFh to get current mode
00h dynamic, 01h software
Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
SeeAlso: AH=06h,AH=07h
--------J-108300-----------------------------
INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
AX = 8300h
Return: AX = offset of video RAM
ES:BX -> virtual text RAM buffer
SeeAlso: AX=5201h
--------N-108B-------------------------------
INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
AH = 8Bh
SeeAlso: AH=92h,AH=93h
--------N-1090-------------------------------
INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
AH = 90h
Return: AL = current video mode (see #0009 at AH=00h)
SeeAlso: AH=91h
--------N-1091-------------------------------
INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
AH = 91h
Return: AL = video adapter type (see #0118)
Note: types less than 80h do not imply that the current user is on the host
SeeAlso: AH=90h
(Table 0118)
Values for Alloy MW386 video adapter type:
00h monochrome
01h Hercules monochrome graphics
02h CGA
03h EGA
04h VGA
80h monochrome text terminal
81h Hercules graphics terminal
82h color graphics terminal
--------N-1092-------------------------------
INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
AH = 92h
Note: the terminal will be updated even when screen updates are inhibited if
TTY output is used
SeeAlso: AH=8Bh
--------N-1093-------------------------------
INT 10 - Alloy MW386 - REDRAW SCREEN
AH = 93h
SeeAlso: AH=8Bh,AH=FFh
--------A-10A0-------------------------------
INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
AH = A0h
???
Return: ???
Program: CU Writer is a public-domain Thai-English word processor from
Chulalongkorn University, Bangkok
SeeAlso: AH=80h"CU Writer",AH=B0h
--------p-10A0-------------------------------
INT 10 - ATI Mach64 BIOS - Display Power Management Signalling API???
AH = A0h
AL = function (00h-13h)
???
Return: AH = status
00h successful
01h failed
???
SeeAlso: AX=4F10h/BL=00h
--------p-10A00C-----------------------------
INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
AX = A00Ch
CL = new state
01h standby
02h suspend
03h off
Return: AH = status
00h successful
01h failed
SeeAlso: AX=4F00h,AX=4F10h/BL=01h
--------A-10B0-------------------------------
INT 10 - CU Writer v1.4 - PUT PIXEL
AH = B0h
???
Return: ???
SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
--------A-10B1-------------------------------
INT 10 - CU Writer v1.4 - MOVE TO
AH = B1h
???
Return: ???
SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
--------A-10B2-------------------------------
INT 10 - CU Writer v1.4 - DRAW LINE TO
AH = B2h
???
Return: ???
SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
--------A-10B3-------------------------------
INT 10 - CU Writer v1.4 - FLOOD FILL
AH = B3h
???
Return: ???
SeeAlso: AH=B2h,AH=B5h
--------A-10B4-------------------------------
INT 10 - CU Writer v1.4 - DRAW RECTANGLE
AH = B4h
???
Return: ???
SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
--------A-10B5-------------------------------
INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
AH = B5h
???
Return: ???
SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
--------V-10BD44-----------------------------
INT 10 U - Compaq QVision - ???
AX = BD44h
???
Return: ???
Note: called by Compaq's MTX132.COM, which places the QVision in 132-column
mode
--------b-10BF00-----------------------------
INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
AX = BF00h
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
--------b-10BF01-----------------------------
INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
AX = BF01h
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
--------b-10BF02-----------------------------
INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
AX = BF02h
BH = master mode
04h CGA
05h EGA
07h MDA
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 #0119)
CH = ASIC type and version
00h (reserved, very early Compaq VGCs)
31h if QVision VGA
CL = switchable VDU modes supported (see #0120)
DH = internal monitor type (see #0121)
DL = external monitor type (see #0121)
SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
(Table 0119)
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 0120)
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 0121)
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)
Note: the 04/08/93 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
Note: the 04/08/93 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
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
SeeAlso: AH=12h/BH=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:BX -> ASCII signature "COMPAQ"
ES:DI -> advanced functionality table (see #0122)
Notes: supported by at least the QVision board and the LTE Lite and ProSignia
ROM BIOSes
the QVision documentation (October 1993) states that the signature
pointer is in ES:DI and the table pointer in ES:SI -- can someone
check on this?
SeeAlso: AX=1A00h,AX=BF03h
Bitfields for Compaq advanced video functionality:
Bit(s) Description (Table 0122)
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 #0123)
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
Bitfields for function mask:
Bit(s) Description (Table 0123)
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
--------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
--------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
----------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
----------10CB01-----------------------------
INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
AX = CB01h
BX = offset of page 1
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
----------10CB02-----------------------------
INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
AX = CB02h
BX = offset of page 2
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
----------10CB03-----------------------------
INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
AX = CB03h
BX = offset of page 3
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
----------10CB04-----------------------------
INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
AX = CB04h
BX = offset of page 4
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
----------10CB05-----------------------------
INT 10 - UNCHAIN - SAVE PALETTE
AX = CB05h
SeeAlso: AX=CB00h,AX=CB06h
----------10CB06-----------------------------
INT 10 - UNCHAIN - RESTORE VGA REGISTERS
AX = CB06h
SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
----------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" 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" note:="" should="" be="" followed="" immediately="" by="" mode="" set="" to="" restore="" previous="" ultravision="" state="" seealso:="" ax="CC01h" --------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)
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)
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 #0124)
DS:SI -> current font names table (see #0125,#0126)
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 0124)
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 0125)
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 0126)
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 #0127)
SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
(Table 0127)
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
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 #0128)
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 0128)
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 #0128)
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-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
--------V-10CD-------------------------------
INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
AH = CDh
AL = text mode number (see #0127)
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
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-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
--------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-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
02h Hercules InColor???
DH = memory mode byte
01h "half" mode
03h "full" mode
Program: MSHERC.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
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 #0129)
Return: BL = data
Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
compatibility box, and others
SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
(Table 0129)
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-10F1-------------------------------
INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
AH = F1h
DX = group index (see #0129)
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,AH=F3h
--------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 #0129)
ES:BX -> buffer, CL bytes
Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
compatibility box, and others
SeeAlso: AH=F0h,AH=F3h
--------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 #0129)
ES:BX -> buffer, CL bytes
Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
compatibility box, and others
SeeAlso: AX=7F05h,AH=F1h,AH=F2h
--------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 #0130)
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,AH=F2h,AH=F5h
Format of EGA RIL entries in table of register records:
Offset Size Description (Table 0130)
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-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 #0130)
Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
compatibility box, and others
SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
--------V-10F6-------------------------------
INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
AH = F6h
Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
others
SeeAlso: AH=F7h
--------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
Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
compatibility box, and others
SeeAlso: AH=F6h
--------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=F6h,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
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 #0131)
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 0131)
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,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
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
--------B-11---------------------------------
INT 11 - BIOS - GET EQUIPMENT LIST
Return: (E)AX = BIOS equipment list word (see #0132)
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
Bitfields for BIOS equipment list:
Bit(s) Description (Table 0132)
0 floppy disk(s) installed (see 6-7)
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 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
SeeAlso: INT 12
--------d-11----SI6A6A-----------------------
INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
SI = 6A6Ah
AH = command (see #0133)
AL = SCSI Addressing (see #0134)
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 0133)
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 0134)
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 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 #0135)
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 0135)
Values for Blank-It hotkey scan code:
00h No hot key
1Dh Left CTRL
2Ah Left Shift
36h Right Shift
57h F11
58h F12
----------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
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
7801h set ???
BX = new state for ???
0000h ???
else ???
Return: AX = 0001h
7802h set ???
BX = ???
CX = ???
Return: AX = 0001h
7803h set ???
BX = new state for ???
0000h ???
else ???
Return: AX = 0001h
78XXh invalid subfunction
Return: AX = FFFFh
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 (see 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
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
SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
--------F-117C-------------------------------
INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
AH = 7Ch
AL = subfunction
01h set ??? flag (see also subfn 02h)
Return: AX = 0001h
02h clear ??? flag (see also subfn 01h)
Return: AX = 0001h
else
Return: AX = FFFFh
SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
--------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 #0136)
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 0136)
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,INT 2F/AX=4A06h
--------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
----------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/BX=0088h
----------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: AX=EC00h"VIRUS",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 #0138)
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 #0137,#0139)
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 0137)
00h 21 BYTEs ASCIZ task name
15h BYTE hotkey shift state (as for INT 16/AH=02h)
16h WORD hotkey scan code
18h WORD program ID
Index: hotkeys;Back&Forth
SeeAlso: #0138,#0139
Format of Back&Forth Professional BF_SPAWN record:
Offset Size Description (Table 0138)
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: #0137,#0139
Format of Back&Forth Professional BF_TASK record:
Offset Size Description (Table 0139)
00h DWORD Unix-style task start time (seconds since 1/1/1970)
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
22h DWORD time task was suspended/exited
26h WORD task handle
SeeAlso: #0137,#0138
--------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 #0140)
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"
--------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 #0140)
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
(Table 0140)
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)
BBh undefined error (hard disk)
CCh write fault (hard disk)
E0h status register error (hard disk)
FFh sense operation failed (hard disk)
--------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 #0140)
AL = number of sectors transferred
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
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
SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",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 #0140)
AL = number of sectors transferred
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
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
SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",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 11/15/85)
Return: CF set on error
CF clear if successful
AH = status (see #0140)
AL = number of sectors verified
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
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
SeeAlso: AH=02h,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 #0141)
Return: CF set on error
CF clear if successful
AH = status (see #0140)
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
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 0141)
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 #0140)
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
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 #0142)
Return: CF set on error
CF clear if successful
AH = status code (see #0140)
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 0142)
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)
--------B-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 #0140)
Program: 2M is a TSR developed by Ciriaco Garcia 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)
Notes: it is not necessary to call AH=17h/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+)
the installation check for 2M must search for a "CiriSOFT:2M:1.3" or
"CiriSOFT:2MX:3.0" or similar (recomended ":2M:" or ":2MX:"
substrings) in CiriSOFT TSR interface
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",INT 2F"CiriSOFT TSR interface"
--------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 #0140)
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 #0143)
ES:BX -> defect table A, B or C (see #0144,#0145,#0146)
Return: CF set on error
CF clear if successful
AH = status code (see #0140)
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 0143)
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 0144)
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 0145)
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 #0147)
Format of Future Domain SCSI defect table C:
Offset Size Description (Table 0146)
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 #0147)
Format of Future Domain SCSI defect list entry:
Offset Size Description (Table 0147)
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 #0140)
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
--------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 #0140)
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 #0140)
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 #0140)
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 #0140)
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)
Return: CF set on error
AH = status (07h) (see #0140)
CF clear if successful
AH = 00h
BL = drive type (AT/PS2 floppies only) (see #0148)
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
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
SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E,INT 41
(Table 0148)
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
--------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 #0140)
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 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 #0140)
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,INT 46
--------B-130A-------------------------------
INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
AH = 0Ah
AL = number of sectors
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 #0140)
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
SeeAlso: AH=02h,AH=0Bh
--------B-130B-------------------------------
INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
AH = 0Bh
AL = number of sectors
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 #0140)
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
SeeAlso: AH=03h,AH=0Ah
--------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 #0140)
SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47h
--------d-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 #0140)
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 #0140)
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 #0140)
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 #0140 at AH=01h)
--------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 #0140 at AH=01h)
Note: causes hard disk controller to seek the specified drive to cylinder 0
SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
--------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 #0140 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 #0140 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 #0140 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 #0140 at AH=01h)
CF clear if successful
AH = 00h
BL = drive type (AT/PS2 floppies only) (see #0148)
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,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 #0140 at AH=01h)
AL = 00h
SeeAlso: AH=12h,AH=13h
--------B-1315-------------------------------
INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
AH = 15h
DL = drive number (bit 7 set for hard disk)
Return: CF clear if successful
AH = type code
00h no such drive
01h floppy without change-line support
02h floppy with change-line support
03h hard disk
CX:DX = number of 512-byte sectors
CF set on error
AH = status (see #0140 at AH=01h)
Note: SyQuest can report type 01h or 02h for 'hard disks', since its media
is removable
SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
--------B-1316-------------------------------
INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
AH = 16h
DL = drive number (00h-7Fh)
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
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 #0140 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 #0149)
Return: CF clear if successful
CH = number of bytes returned in buffer???
CF set on error
AH = status code (see #0140 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="" 0149)="" 00h="" byte="" device="" type="" bits="" 0-4:="" peripheral="" device="" type="" (see="" #0150)="" bits="" 5-7:="" peripheral="" qualifier="" (see="" #0151)="" 01h="" byte="" device="" type="" modifier="" bits="" 0-6:="" device="" type="" modifier="" bit="" 7:="" removable="" medium="" 02h="" byte="" scsi="" version="" (see="" #0152)="" 03h="" byte="" data="" format/capabilities="" (see="" #0153)="" 04h="" byte="" additional="" data="" length="" (total="" remaining="" bytes)="" 05h="" 2="" bytes="" reserved="" 07h="" byte="" device="" capabilities="" (see="" #0154)="" 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="" 0150)="" 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="" 0151)="" 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="" 0152)="" 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="" 0153)="" 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="" 0154)="" 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 #0572 at INT 1E)
SeeAlso: AH=05h,AH=07h,AH=17h
--------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 #0140 at AH=01h)
CF clear if successful
AX = 4321h (magic number)
CX = controller family code (see #0155)
---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 0155)
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)="" --------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="" #0140="" 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="" #0140="" 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="" #0156)="" dl="drive" (80h,81h)="" es:bx="" -=""> defect table (see #0157), ignored if AL=00h
Return: CF set on error
CF clear if successful
AH = status (see #0140 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 0156)
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 0157)
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 #0140 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 #0140 at AH=01h)
CF clear if successful
ES:BX -> SCSI disk information block (see #0158)
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 0158)
00h BYTE drive physical information (see #0159)
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)
15h DWORD translated number of sectors on device
Bitfields for Future Domain SCSI device physical information:
Bit(s) Description (Table 0159)
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 #0140 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
--------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 #0160)
Return: CF set on error
CF clear if successful
AH = status (see #0140 at AH=01h)
SeeAlso: AX=1C09h,AX=1C0Ah
Format of ESDI Command Complete Status Block:
Offset Size Description (Table 0160)
00h BYTE 07h
01h BYTE size of block in words (07h)
02h BYTE command error code (see #0161)
03h BYTE command status code (see #0162)
04h BYTE device error code, group 1 (see #0163)
05h BYTE device error flags, group 2 (see #0164)
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 0161)
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 0162)
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 #0161)
09h abort complete
0Ah reset complete
0Bh data transfer ready (no status block)
0Ch command completed with failure (see #0163,#0164)
0Dh DMA error
0Eh command block error (see #0161)
0Fh bad attention code
(Table 0163)
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
Bitfields for ESDI device error flags, group 2:
Bit(s) Description (Table 0164)
7-5 unused
4 ready
3 selected
2 write fault
1 on track 0
0 seek/command complete
--------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 #0165)
Return: CF set on error
CF clear if successful
AH = status (see #0140 at AH=01h)
SeeAlso: AX=1C08h,AX=1C0Ah
Format of ESDI Device Status Block:
Offset Size Description (Table 0165)
00h BYTE 08h
01h BYTE number of words in block (09h)
02h BYTE error flags
03h BYTE unused
04h BYTE command error code (see #0161)
05h BYTE command status code (see #0162)
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 #0166)
Return: CF set on error
CF clear if successful
AH = status (see #0140 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 0166)
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 #0167)
Return: CF set on error
CF clear if successful
AH = status (see #0140 at AH=01h)
SeeAlso: AX=1C0Ch
Format of ESDI Controller Configuration Status Block:
Offset Size Description (Table 0167)
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 #0168)
Return: CF set on error
CF clear if successful
AH = status (see #0140 at AH=01h)
SeeAlso: AX=1C0Bh
Format of ESDI POS Information Status Block:
Offset Size Description (Table 0168)
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
--------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 #0140 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
--------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
--------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
--------c-131D-------------------------------
INT 13 - IBMCACHE.SYS - CACHE STATUS
AH = 1Dh
AL = subfunction
01h get status record
DL = drive???
Return: ES:BX -> status record (see #0169)
CF set on error
AH = error code
02h set cache status
ES:BX -> status record (see #0169)
DL = drive???
Return: CF set on error
Format of IBMCACHE.SYS status record:
Offset Size Description (Table 0169)
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 #0170)
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 0170)
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 DESKPRO/i - GET CURRENT MEDIA FORMAT
AH = 20h
DL = drive number (00h,01h)
Return: CF clear if successful
AL = media type (see #0171)
CF set on error
AH = error code
31h no such drive
32h incorrect drive type stored in CMOS
Note: this function is supported by the 3/8/93 ROM BIOS, but only partially
(AL is always 00h when successful) by the 8/3/93 version
(Table 0171)
Values for Compaq diskette media type:
03h 720K
04h 1.44M
06h 2.88M
0Ch 360K
0Dh 1.2M
0Eh ???
0Fh ??? (1024-byte sectors)
--------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 #0140 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
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 #0140 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 #0172)
DL = drive number (80h,81h)
???
Return: CF clear if successful
CF set on error
AH = status (see #0140 at AH=01h)
SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"
(Table 0172)
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
--------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 #0140 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 #0140 at AH=01h)
buffer filled with ATA/IDE-style drive information block (see #0173)
Desc: retrieves the 256 words of drive data stored on an IDE hard disk
Note: the byte at address 0040h:0074h is set to the status of the operation
SeeAlso: AH=23h"PS/1"
Format of drive information block:
Offset Size Description (Table 0173)
00h WORD general drive configuration (see #0174)
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.
Bitfields for general drive configuration:
Bit(s) Description (Table 0174)
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 #0175)
01h drive info (see #0176)
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 0175)
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)
Format of QUICKCACHE II drive info [16-element array, one element]:
Offset Size Description (Table 0176)
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"
--------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)
--------!---Section--------------------------
Interrupt List, part 2 of 12
This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
--------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 (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)
AL = internal use
CX = API subset support bitmap (see #0177)
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 0177)
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 extended drive parameter table is valid (see #0179,#0182)
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 #0178)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (see #0140)
disk address packet's block count field set to number of blocks
successfully transferred
SeeAlso: AH=41h"INT 13 Ext",AH=43h"INT 13 Ext"
Format of disk address packet:
Offset Size Description (Table 0178)
00h BYTE 10h (size of packet)
01h BYTE reserved (0)
02h WORD number of blocks to transfer
04h DWORD -> transfer buffer
08h QWORD starting absolute block number
--------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
bit 0: verify write
bits 7-1 reserved (0)
DL = drive number
DS:SI -> disk address packet (see #0178)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (see #0140)
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=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 #0178)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (see #0140)
disk address packet's block count field set to number of blocks
successfully verified
SeeAlso: 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 #0140)
Notes: this function is required to be supported for any removable drives
numbered 80h or higher
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"Phoenix"
----------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 #0140)
SeeAlso: AH=49h,INT 15/AH=52h"Phoenix"
----------1347-------------------------------
INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
AH = 47h
DL = drive number
DS:SI -> disk address packet (see #0178)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (see #0140)
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 #0179)
Return: CF clear if successful
DS:SI buffer filled
CF set on error
AH = error code (see #0140)
SeeAlso: AH=08h,AH=41h,AH=49h
Format of IBM/MS INT 13 Extensions drive parameters:
Offset Size Description (Table 0179)
00h WORD (call) size of buffer (001Ah for v1.x, 001Eh for v2.0)
(ret) size of returned data
02h WORD information flags (see #0180)
04h DWORD number of cylinders on drive
08h DWORD number of heads on drive
0Ch DWORD number of sectors per track
10h QWORD total number of sectors on drive
18h WORD bytes per sector
---v2.0---
1Ah DWORD -> configuration parameters (see #0182)
FFFFh:FFFFh if not available
SeeAlso: #0181,#1855
Bitfields for IBM/MS INT 13 Extensions information flags:
Bit(s) Description (Table 0180)
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
Format of Phoenix Enhanced Disk Drive Spec translated drive parameter table:
Offset Size Description (Table 0181)
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 #1857 at INT 41)
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: #0182,#1855
Format of Phoenix Enhanced Disk Drive Spec fixed disk param table extension:
Offset Size Description (Table 0182)
00h WORD physical I/O port base address
02h WORD disk-drive control port address
04h BYTE drive flags (see #0183)
05h BYTE proprietary information
bits 7-4 reserved (0)
bits 3-0: Phoenix proprietary (used by BIOS)
06h BYTE IRQ (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
bits 3-0: DMA channel
09h BYTE programmed I/O control
bits 7-4: reserved (0)
bits 3-0: PIO type (1,2, or 3)
0Ah WORD drive options (see #0184)
0Ch 2 BYTEs reserved (0)
0Eh BYTE extension revision level (high nybble=major, low nybble=minor)
(currently 10h)
0Fh BYTE 2's complement checksum of bytes 00h-0Eh
SeeAlso: #0181
Bitfields for Phoenix Enhanced Disk Drive Spec drive flags:
Bit(s) Description (Table 0183)
7 reserved (1)
6 LBA enabled
5 reserved (1)
4 drive is slave
3-0 reserved (0)
SeeAlso: #0182,#0184
Bitfields for Phoenix Enhanced Disk Drive Spec drive options:
Bit(s) Description (Table 0184)
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 CD-ROM
7 32-bit transfer mode
15-8 reserved
SeeAlso: #0182,#0183
--------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 #0140)
Note: unlike AH=16h, any drive number may be specified
SeeAlso: AH=16h,AH=41h"INT 13 Ext",AH=46h
--------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 #0185)
DL = drive ID (80h, 81h, ...)
Return: nothing
Bitfields for DTQ byte:
Bit(s) Description (Table 0185)
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 #0186)
Return: CF clear
AH = 95h
SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=1Fh"SyQuest"
Format of SyQuest SCSI structure:
Offset Size Description (Table 0186)
00h WORD opcode (see #0187)
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
14h DWORD -> data buffer
Note: The handler does not perform a 'Request Sense' command if there was an error
(Table 0187)
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
--------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 #0188)
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 0188)
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 #0188)
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 #0190)
AL = function number (see #0189)
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 0189)
Values for FAST! function:
01h get cache information (see separate entry)
04h disable cache
05h enable cache and reset statistics
06h installation check (see separate entry)
07h unhook interrupts (see separate entry)
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 0190)
00h DWORD pointer to 19-byte signature string (see #0191)
04h DWORD pointer to buffer for data (if needed by function)
(Table 0191)
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 #0192)
Return: AH = 00h if successful
SeeAlso: AH=80h,AX=8006h
Format of FAST! request packet:
Offset Size Description (Table 0192)
00h DWORD -> 19-byte signature string (see #0191)
04h DWORD -> buffer for cache information (see #0193)
Format of FAST! cache information (v5.00-5.03):
Offset Size Description (Table 0193)
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 #0194)
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 0194)
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 #0195)
Return: AX = 1965h if installed
SeeAlso: AH=80h,AX=8001h,AX=8007h
Format of FAST! request packet:
Offset Size Description (Table 0195)
00h DWORD -> 19-byte signature string (see #0191)
--------c-138007CX6572-----------------------
INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
AX = 8007h
CX = 6572h
DX = 1970h
ES:BX -> request packet (see #0196)
Return: AX = 1965h if installed
SeeAlso: AH=80h,AX=8006h
Index: uninstall;FAST!
Format of FAST! request packet:
Offset Size Description (Table 0196)
00h DWORD -> 19-byte signature string (see #0191)
--------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/AH=DFh
--------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)
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)
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 #0803 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
--------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/AH=DFh
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
Note: Disk Manager also supports these calls
SeeAlso: AH=EEh
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
--------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
--------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
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)
Note: the installation check for this driver is to 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 #0197)
DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
Return: AH = line status (see #0201)
FFh if error on Digiboard XAPCM232.SYS
AL = modem status (see #0202)
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 04/08/93 Compaq system ROM uses only the low two bits of DX
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
Bitfields for serial port parameters:
Bit(s) Description (Table 0197)
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: #0199,#0204,#0205,#0206
--------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 #0198)
AL = modem status bits
bit 3: always 1
bit 7: DCD - carrier detect
SeeAlso: #0197,AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS"
Bitfields for FOSSIL RS-232 status:
Bit(s) Description (Table 0198)
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 - MBBIOS - INITIALIZE PORT
AH = 00h
AL = port parameters (see #0199)
DX = port number
Return: AH = line status (see #0201)
AL = modem status (see #0202)
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 0199)
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: #0197
--------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 #0200)
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 0200)
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 #0201)
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 04/08/93 Compaq system ROM uses only the low two bits of DX
SeeAlso: AH=02h,AH=0Bh"FOSSIL",AX=8000h"ARTICOM",AH=89h
--------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 #0200)
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 #0201)
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 04/08/93 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 #0200)
BH = line status (see #0201)
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 #0201)
AL = modem status (see #0202)
AX = 9E00h if disconnected (ArtiCom)
Note: the 04/08/93 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 0201)
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 0202)
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 #0200)
BH = line status (see #0203)
BL = modem status (see #0202) (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 0203)
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 #0204)
BL = number of stop bits
00h one stop bit
01h two stop bits (1.5 if 5 bit word length)
CH = word length (see #0205)
CL = bps rate (see #0206)
DX = port number
Return: AX = port status code (see #0201,#0202)
SeeAlso: AH=00h,AH=1Eh,AX=8000h"ARTICOM"
(Table 0204)
Values for serial port parity:
00h no parity
01h odd parity
02h even parity
03h stick parity odd
04h stick parity even
SeeAlso: #0197,#0205,#0206,#0207
(Table 0205)
Values for serial port word length:
00h 5 bits
01h 6 bits
02h 7 bits
03h 8 bits
SeeAlso: #0197,#0204,#0206,#0242
(Table 0206)
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: #0197,#0204,#0206,#0243,#0250,AH=36h,#0259,#0464,#1616
--------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 #0345 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 #0207)
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 0207)
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: #0204,#0205
--------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 #0208)
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 0208)
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 #0210)
allowable subvector types are 01h-04h,17h,18h for command code
EF01h; 03h,04h for command code EF06h (see #0209)
(Table 0209)
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 0210)
00h BYTE length of subvector
01h BYTE type code (see #0209)
02h N-2 BYTEs data, which may include subvectors
SeeAlso: #0211,#0212,#0213,#0214,#0215,#0216,#0217,#0218,#0219,#0220,#0221
SeeAlso: #0222,#0223,#0225,#0226,#0227,#0228,#0229,#0230
Format of Connection ID subvector:
Offset Size Description (Table 0211)
00h BYTE 03h (length)
01h BYTE 01h (subvector "Connection ID")
02h BYTE connection ID
Format of Destination ID subvector:
Offset Size Description (Table 0212)
00h BYTE length
01h BYTE 02h (subvector "Destination ID")
02h N BYTEs subvector(s) of type 0Eh, 0Fh, or 10h
Format of Asynchronous line parameters subvector:
Offset Size Description (Table 0213)
00h BYTE length
01h BYTE 03h (subvector "Asynchronous line parameters")
02h N BYTEs subvector(s) of type 09h, 0Ah, or 19h
Format of Data transfer parameters subvector:
Offset Size Description (Table 0214)
00h BYTE length
01h BYTE 04h (subvector "Data transfer parameters")
02h N BYTEs subvector(s) of type 0Bh, 0Ch, or 0Dh
Format of Line speed subvector:
Offset Size Description (Table 0215)
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
Format of Serial coding subvector:
Offset Size Description (Table 0216)
00h BYTE length
01h BYTE 0Ah (subvector "Serial coding")
02h N BYTEs subvector(s) of type 11h, 12h, or 13h
Format of Packet size subvector:
Offset Size Description (Table 0217)
00h BYTE 04h (length)
01h BYTE 0Bh (subvector "Packet size")
02h WORD (big-endian) packet size, 1 to 1024
Format of Timers subvector:
Offset Size Description (Table 0218)
00h BYTE length
01h BYTE 0Ch (subvector "Timers")
02h 8 BYTEs subvector of type 14h or 15h
Format of Special characters subvector:
Offset Size Description (Table 0219)
00h BYTE length
01h BYTE 0Dh (subvector "Special characters")
02h N BYTEs list of ASCII characters to be used as EOM or EOB
Format of Target ID:
Offset Size Description (Table 0220)
00h BYTE length
01h BYTE 0Eh (subvector "Target ID")
02h N BYTEs target ID, 1-16 bytes
Format of Telephone number subvector:
Offset Size Description (Table 0221)
00h BYTE length
01h BYTE 0Fh (subvector "Telephone number")
02h N BYTEs telephone number
Format of ASCII destination ID subvector:
Offset Size Description (Table 0222)
00h BYTE length
01h BYTE 10h (subvector "ASCII destination ID")
02h N BYTEs destination ID
Format of Parity subvector:
Offset Size Description (Table 0223)
00h BYTE 03h (length)
01h BYTE 11h (subvector "Parity")
02h BYTE parity type (see #0224)
Bitfields for Connection Manager parity type:
Bit(s) Description (Table 0224)
7 odd
6 even
5 mark
4 space
3 none
Format of Bits per character subvector:
Offset Size Description (Table 0225)
00h BYTE 03h (length)
01h BYTE 12h (subvector "Bits per character")
02h BYTE bits per character
bit 7: seven
bit 6: eight
Format of Number of stop bits subvector:
Offset Size Description (Table 0226)
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
Format of Packet timer and Intercharacter timer subvectors:
Offset Size Description (Table 0227)
00h BYTE 04h (length)
01h BYTE subvector type
14h Packet timer
15h Intercharacter timer
02h WORD (big-endian) unit of value representing 20ms
Format of Flags subvector:
Offset Size Description (Table 0228)
00h BYTE 03h (length)
01h BYTE 17h (subvector "Flags")
02h BYTE flags
bit 7: queueing requested
Format of Parameter ranges subvector:
Offset Size Description (Table 0229)
00h BYTE length
01h BYTE 18h (subvector "Parameter ranges")
02h N BYTEs subvector(s) of type 09h, 11h, 12h, or 13h
Format of Flow control subvector:
Offset Size Description (Table 0230)
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
--------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
SeeAlso: AX=0400h,AX=0402h
--------S-140402-----------------------------
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE
AX = 0402h
CL = parameters
SeeAlso: AX=0400h,AX=0401h
--------S-140403-----------------------------
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT
AX = 0403h
CX = timeout
SeeAlso: AX=0400h
--------S-140404-----------------------------
INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER
AX = 0404h
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
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
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 #0231)
AH = status
01h write modem control register
BL = modem control register (see #0231)
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 0231)
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 #0232)
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 0232)
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 #0233)
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 0233)
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
--------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
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???
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 = ???
Note: under Novell TELAPI.EXE v4.01, this function and AH=07h are implemented
with identical code
SeeAlso: AH=07h"TelAPI",AH=E0h"TelAPI"
--------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 #0200)
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 #0202)
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 - WRITE???
AH = 07h
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 = ???
Note: under Novell TELAPI.EXE v4.01, this function and AH=06h are implemented
with identical code
SeeAlso: AH=06h"TelAPI",AH=E0h"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 #0200)
BH = line status (see #0203)
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
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 #0201)
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 #0201 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 #0201)
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 #0208)
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
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 #0234)
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 0234)
0 transmit buffering enabled
2 hardware handshaking enabled
5 high-speed option enabled (see AH=00h"MBBIOS",#0199)
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 #0200 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
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 #0235)
Return: AX = status (see #0201,#0202)
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 0235)
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 #0208)
Return: AH = return code (00h-03h,06h) (see #0200)
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 #0201) formed by ORing all statuses
on receive interrupts; bit 0 set if additional characters
available
AL = composite modem status (see #0202) 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 #0200 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 #0200 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 #0236)
SeeAlso: AH=0Ah"Digiboard"
(Table 0236)
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)
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
Note: this function lowers DTR, RTS, etc.
SeeAlso: AX=0D02h
--------S-140D02-----------------------------
INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS
AX = 0D02h
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)
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 #0200 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 #0237)
DX = port number
SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL"
Bitfields for FOSSIL requested flow control:
Bit(s) Description (Table 0237)
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
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 #0208)
Return: AH = return code (00h-02h,06h) (see #0200 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
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)
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 #0238)
Return: AH = return code (00h,01h,03h,06h) (see also #0200 at AH=00h/DX=FFFFh)
01h no (more) matching names
03h invalid request
ES:DI buffer filled with reply buffer (see #0238) 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 0238)
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
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,AH=05h,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 #0201)
AH = flow control configuration (see #0233 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
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
SeeAlso: INT 21/AH=2Bh/CX=6269h/DX=742Dh
--------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
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 #0239) (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 0239)
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 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
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 #0240)
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 0240)
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 #0241)
BL = number of stop bits
00h one stop bit
01h two stop bits (1.5 if 5 bit word length)
CH = word length (see #0242)
CL = bps rate (see #0243)
DX = port number
Return: AX = port status code (see #0201,#0202)
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 I/O"
(Table 0241)
Values for X00 FOSSIL parity:
00h no parity
01h odd parity
02h even parity
03h stick parity odd
04h stick parity even
SeeAlso: #0204,#0242,#0243
(Table 0242)
Values for X00 FOSSIL word length:
00h 5 bits
01h 6 bits
02h 7 bits
03h 8 bits
SeeAlso: #0205,#0241,#0243
(Table 0243)
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: #0206,#0241,#0242
--------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 #0244)
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 0244)
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 #0245)
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 0245)
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
AL = 00h read modem control register
Return: BL = modem control register (see #0246)
AH = status
AL = 01h write modem control register
BL = modem control register (see #0246)
Return: AX = status
DX = port number
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 I/O"
Bitfields for X00 FOSSIL modem control register:
Bit(s) Description (Table 0246)
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 #0197 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"PC-MOS"
--------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 #0244)
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
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 #0247)
Note: monitor mode must have been turned on with AH=24h before calling
SeeAlso: AH=20h"MultiDOS",AH=22h"MultiDOS",AH=24h"MultiDOS"
(Table 0247)
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)
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"PC/MOS",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 #0201 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"PC-MOS",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 #0248)
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 0248)
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 #0201 at AH=03h)
AL = modem status (see #0202 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"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)
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 #0249)
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 0249)
00h BYTE baud rate (see #0250)
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 0250)
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: #0206
--------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)
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)
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
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
----------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 #0206 at AH=04h)
SeeAlso: AH=00h,AH=04h,AX=F4FFh
--------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 #0251)
DX = port number (0-3)
Return: AH = line status (see #0201)
AL = modem status (see #0202)
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 0251)
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 #0201)
AL = modem status (see #0202)
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 #0201)
---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 #0201)
---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
--------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 = 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 = 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,AH=01h,AH=02h,AH=03h,AH=04h,AH=05h,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 #0252)
BX = number of characters in output buffer
CX = nubmer of characters in input buffer
DX = state flag (see #0253)
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 0252)
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 0253)
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 #0255)
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 #0262)
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 #0254)
Return: AX = error code, if error (see #0255)
SeeAlso: AX=8000h"ARTICOM",AX=8003h"ARTICOM"
Format of ARTICOM redirector status:
Offset Size Description (Table 0254)
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 #0262) (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 #0255)
Return: ES:DI -> ASCIZ error text or 0000h:0000h if unable to translate
SeeAlso: AX=8000h
(Table 0255)
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 #0256)
Return: AX = error code, if error (see #0255)
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 0256)
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 #0255)
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 #0257)
DS:SI -> 16 byte server name. See note.
Return: AX = error code, if error (see #0255)
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 0257)
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 #0258)
Return: CF clear if redirection info returned and port is redirected
CF set if not a redirected port
AX = error code, if error (see #0255)
SeeAlso: AX=8000h,AX=8003h,AX=8006h,AX=8008h
Format of ARTICOM port information structure:
Offset Size Description (Table 0258)
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 #0259)
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 0259)
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: #0206
--------S-148008-----------------------------
INT 14 - ARTICOM - GET AVAILABLE SERVER NAME
AX = 8008h
BX = server index (0,1,...)
ES:DI -> server name structure (see #0260)
Return: AX = error code, if error (see #0255)
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 0260)
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 #0255)
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 #0261) to call on read/write
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 0261)
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 = 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 #0262)
DX = port number
Return: AH = line status register (see #0201)
error if bit 7 set
AL = modem status register (see #0202)
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 0262)
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 #0263)
Return: AX = 1954h if installed
SeeAlso: AH=7Eh,AX=8101h
Format of VFOSSIL information:
Offset Size Description (Table 0263)
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 #0264)
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 0264)
00h DWORD -> function to query current video mode (VioGetMode)(see #0269)
04h DWORD -> function to set video mode (VioSetMode) (see #0270)
08h DWORD -> function to query hardware config (VioGetConfig) (see #0271)
0Ch DWORD -> function to write data in TTY mode (VioWrtTTY) (see #0272)
10h DWORD -> function to get current ANSI state (VioGetANSI) (see #0273)
14h DWORD -> function to set new ANSI state (VioSetANSI) (see #0274)
18h DWORD -> function to get curr cursor position (VioGetCurPos)
(see #0275)
1Ch DWORD -> function to set cursor position (VioSetCurPos) (see #0276)
20h DWORD -> function to get cursor shape (VioGetCurType) (see #0277)
24h DWORD -> function to set cursor shape (VioSetCurType) (see #0278)
28h DWORD -> function to scroll screen up (VioScrollUp) (see #0279)
2Ch DWORD -> function to scroll screen down (VioScrollDn) (see #0280)
30h DWORD -> function to read cell string from screen (VioReadCellStr)
(see #0281)
34h DWORD -> function to read char string from screen (VioReadCharStr)
(see #0282)
38h DWORD -> function to write a cell string (VioWrtCellStr)
(see #0283)
3Ch DWORD -> function to write char string, leaving attr (VioWrtCharStr)
(see #0284)
40h DWORD -> function to write char string,const attr (VioWrtCharStrAttr)
(see #0285)
44h DWORD -> function to replicate an attribute (VioWrtNAttr)
(see #0286)
48h DWORD -> function to replicate a cell (VioWrtNCell)
(see #0287)
4Ch DWORD -> function to replicate a character (VioWrtNChar)
(see #0288)
Format of VFOSSIL video mode data structure:
Offset Size Description (Table 0265)
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
Format of VFOSSIL video configuration data:
Offset Size Description (Table 0266)
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
Format of VFOSSIL cursor type record:
Offset Size Description (Table 0267)
00h WORD cursor start line
02h WORD cursor end line
04h WORD cursor width (always 01h)
06h WORD cursor attribute (FFFFh = hidden)
(Table 0268)
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 0269)
Call VioGetMode with:
STACK: WORD VIO handle (must be 00h)
DWORD pointer to video mode data structure (see #0265)
Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #0268)
SeeAlso: #0270
(Table 0270)
Call VioSetMode with:
STACK: WORD VIO handle (must be 00h)
DWORD pointer to video mode data structure (see #0265)
Return: AX = error code (00h, 74h, 163h, 17Eh, 1A5h, 1B4h) (see #0268)
SeeAlso: #0269
(Table 0271)
Call VioGetConfig with:
STACK: WORD VIO handle (must be 00h)
DWORD pointer to video configuration data buffer (see #0266)
Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #0268)
(Table 0272)
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 #0268)
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 0273)
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 #0268)
SeeAlso: #0274
(Table 0274)
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 #0268)
SeeAlso: #0273
(Table 0275)
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 #0268)
SeeAlso: #0276
(Table 0276)
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 #0268)
Note: if either coordinate is invalid, the cursor is not moved
SeeAlso: #0275
(Table 0277)
Call VioGetCurType with:
STACK: WORD VIO handle (must be 00h)
DWORD pointer to cursor type record (see #0267)
Return: AX = error code (00h, 74h, 1B4h) (see #0268)
SeeAlso: #0278
(Table 0278)
Call VioSetCurType with:
STACK: WORD VIO handle (must be 00h)
DWORD pointer to cursor type record (see #0267)
Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see #0268)
SeeAlso: #0279
(Table 0279)
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 #0268)
SeeAlso: #0280,INT 10/AH=06h
(Table 0280)
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 #0268)
SeeAlso: #0279,INT 10/AH=07h
(Table 0281)
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 #0268)
(Table 0282)
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 #0268)
(Table 0283)
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 #0268)
Note: write wraps at end of line and terminates if it reaches end of screen
(Table 0284)
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 #0268)
Note: write wraps at end of line and terminates if it reaches end of screen
(Table 0285)
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 #0268)
Note: write wraps at end of line and terminates if it reaches end of screen
(Table 0286)
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 #0268)
Note: write wraps at end of line and terminates if it reaches end of screen
(Table 0287)
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 #0268)
Note: write wraps at end of line and terminates if it reaches end of screen
(Table 0288)
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 #0268)
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)
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)
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 #0201)
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
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 #0201)
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
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: AX=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,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
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
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
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
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 #0201)
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 #0289)
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 0289)
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 #0289)
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 #0290)
SeeAlso: AH=A2h"TES",AH=A3h"TES"
Format of Interconnections TES status array entry:
Offset Size Description (Table 0290)
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 #0289)
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 #0289)
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 #0289)
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 #0289)
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 #0289)
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 #0289)
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 #0289)
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 #0289)
???
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 #0291)
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 0291)
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 #0291)
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
--------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 #0289)
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 #0289)
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 #0289)
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 #0289)
---if AL=00h---
CX = configuration item value (see above)
SeeAlso: AH=B2h
--------N-14E0-------------------------------
INT 14 - TelAPI - ???
AH = E0h
BX = ???
CX:DX = ???
DS:DI -> ???
ES:SI -> ???
Return: AX = status (0000h,FF37h,etc.)
ES:SI -> ??? if ???
???
SeeAlso: AH=ECh,AX=FF00h
--------S-14E000-----------------------------
INT 14 - MX5 Extended FOSSIL - GET MNP STATUS BLOCK
AX = E000h
DX = port number (0-3)
Return: ES:BX -> status block (see #0292)
Program: MX5 is a FOSSIL driver by MagicSoft which emulates MNP Level 5, and
ships with the MTEZ 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 0292)
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 - ???
AH = E1h
BX = connection ID
???
Return: AX = status (0000h,FFF7h,maybe others)
???
SeeAlso: AH=E6h,AX=FF00h
--------N-14E2-------------------------------
INT 14 - TelAPI - BUFFERED READ
AH = E2h
BX = connection ID
CX = length of buffer in bytes
ES:SI -> buffer for data
Return: AX = number of characters actually read??? (negative on error)
SeeAlso: AH=E6h,AX=FF00h,INT 6B/AH=01h
--------N-14E3-------------------------------
INT 14 - TelAPI - BUFFERED WRITE
AH = E3h
BX = connection ID
CX = length of buffer in bytes
ES:SI -> buffer containing data
Return: AX = number of characters actually written??? (negative on error)
SeeAlso: AH=07h"TelAPI",AH=E6h,AX=FF00h,INT 6B/AH=00h
--------N-14E4-------------------------------
INT 14 - TelAPI - CONNECTION CONTROL???
AH = E4h
BX = connection ID
CX = ???
ES:SI -> 10-byte buffer containing ???
Return: ???
SeeAlso: AH=A9h,AH=E6h,AX=FF00h,INT 6B/AX=0600h
--------N-14E5-------------------------------
INT 14 - TelAPI - ???
AH = E5h
Return: AX = status???
SeeAlso: AH=E6h,AX=FF00h
--------N-14E6-------------------------------
INT 14 - TelAPI - ???
AH = E6h
Return: AX = status???
Notes: TelAPI also supports the NASI/NACS and NCSI APIs on INT 6B
this function invokes AH=E5h internally
SeeAlso: AX=FF00h,INT 6B/AH=00h,INT 6B/AH=10h
--------N-14E7-------------------------------
INT 14 - TelAPI - GET ???
AH = E7h
ES:SI -> 20-byte buffer for ???
Return: AX = 0000h (successful)
ES:SI buffer filled
SeeAlso: AX=FF00h
--------N-14E8-------------------------------
INT 14 - TelAPI - SET ???
AH = E8h
BX = connection ID
CL = new value for ???
DX = ??? (ignored by Novell TELAPI v4.01)
Return: AX = status (0000h,FFFFh)
SeeAlso: AX=FF00h
--------N-14E9-------------------------------
INT 14 - TelAPI - ???
AH = E9h
DX = ???
Return: ???
SeeAlso: AX=FF00h
--------N-14EA-------------------------------
INT 14 - TelAPI - GET CONNECTION INFO???
AH = EAh
BX = connection ID
ES:SI -> buffer for info???
Return: AX = status (0000h,FFFFh,etc.)
SeeAlso: AX=FF00h
--------N-14EB-------------------------------
INT 14 - TelAPI - GET ???
AH = EBh
ES:SI -> buffer for ???
Return: ES:SI buffer filled
SeeAlso: AX=FF00h
--------N-14EC-------------------------------
INT 14 - TelAPI - ???
AH = ECh
BX = ???
CX:DX = ???
DS:DI -> ???
ES:SI -> ???
Return: AX = status (0000h,FF37h,etc.)
ES:SI -> ??? if ???
???
Note: this function is not supported by the Microdyne TelAPI v3.7
SeeAlso: AH=E0h"TelAPI",AX=FF00h
--------N-14ED-------------------------------
INT 14 - TelAPI - ???
AH = EDh
BX = connection ID
Return: AX = status (0000h,FFFFh,etc.)
Note: this function is not supported by the Microdyne TelAPI v3.7
SeeAlso: 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)
SeeAlso: AX=F4FFh
--------S-14FA-------------------------------
INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK
AH = FAh
DX = port (00h-03h)
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 #0231 at AH=05h)
DX = port (00h-03h)
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 #0201 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 - INSTALLATION CHECK
AX = FF00h
Return: AL = FFh if installed
AH = 00h for Novell TELAPI.EXE
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
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
SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh,AX=FF03h
--------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 #0293)
SeeAlso: AX=FFFDh
Bitfields for INT 14h flags:
Bit(s) Description (Table 0293)
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 #0293)
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 #0294)
(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 0294)
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"
--------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
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 #0295)
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 0295)
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 #0296)
0Bh BYTE RTC status register B (see #0297)
0Ch BYTE RTC status register C (read-only) (see #0298)
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 0296)
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
Bitfields for RTC status register B:
Bit(s) Description (Table 0297)
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
Bitfields for RTC status register C:
Bit(s) Description (Table 0298)
7 IRQF flag
6 PF flag
5 AF flag
4 UF flag
--------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 #0299)
SeeAlso: AH=00h"CASSETTE",AH=03h"CASSETTE"
(Table 0299)
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 vidoe 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 #0299)
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)
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 #0300)
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 0300)
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)
SeeAlso: AH=03h"Amstrad",05h"Amstrad"
--------O-1504-------------------------------
INT 15 - VMiX - "sys_vprintf" - FORMATTED OUTPUT TO STREAM
AH = 04h
STACK: DWORD control string
DWORD array of arguments
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 #0301)
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 0301)
00h WORD device ID (see #0302)
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 0302)
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)
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"
--------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"
--------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"
--------T-1509-------------------------------
INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY
AH = 09h
AL = new priority
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 #0197 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
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=00"VMiX"
--------T-150C-------------------------------
INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY
AH = 0Ch
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
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
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
--------O-1510-------------------------------
INT 15 - VMiX - "sys_virtual" - EXECUTE CONFORMING FUNCTION IN PROTECTED MODE
AH = 10h
STACK: DWORD pointer to function
N WORDs function args
Return: AX = function's return value??? (not specified in documentation)
Note: while the function is executing, the following global descriptors are
available:
20h stack segment
38h code segment of function
40h data alias for function's code segment
additional GDT descriptors can be allocated using AH=02h with
function "assign gdt"
SeeAlso: AH=02h"VMiX",AH=51h"VMiX"
--------T-1510-------------------------------
INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE
AH = 10h
AL = semaphore number (00h-3Fh)
Return: AH = status
00h semaphore not in use
01h semaphore owned by another task
02h invalid semaphore number
03h semaphore owned by caller
SeeAlso: AH=02h"MultiDOS",AH=0Dh"MultiDOS",AH=1Dh"MultiDOS"
--------Q-151000-----------------------------
INT 15 - TopView - "PAUSE" - GIVE UP CPU TIME
AX = 1000h
Return: after other processes run
Note: under DESQview, if the process issuing this call has hooked INT 08h,
the current time-slice is set to expire at the next clock tick rather
than immediately
SeeAlso: AH=00h"MultiDOS",AX=5305h,INT 21/AH=89h,INT 21/AH=EEh"DoubleDOS"
SeeAlso: INT 2F/AX=1680h,INT 60/DI=0106h,INT 62/AH=01h,INT 6F/AH=2Ah"F_YIELD"
SeeAlso: INT 7A/BX=000Ah,INT 7F/AH=02h"MultiLink",INT 7F/AH=E8h
--------Q-151001-----------------------------
INT 15 - TopView - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
AX = 1001h
BX = number of bytes to allocate
Return: ES:DI -> block of memory or 0000h:0000h (DV v2.26+)
AX = status (DV v2.42)
0000h successful
0001h failed
Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
common memory. Under DV v2.42, this call never generates a user
prompt regardless of the SETERROR value; instead, it always returns
AX=0001h and ES:DI=0000h:0000h if out of memory
SeeAlso: AX=1002h,AX=102Eh,AX=DE0Ch,AX=DE15h
--------Q-151002-----------------------------
INT 15 - TopView - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
AX = 1002h
ES:DI -> previously allocated block
Return: block freed
SeeAlso: AX=1001h,AX=DE0Dh
--------Q-151003-----------------------------
INT 15 - TopView - "PRINTC" - DISPLAY CHARACTER/ATTRIBUTE ON SCREEN
AX = 1003h
BH = attribute
BL = character
DX = segment of object handle for window
Note: BX=0 does not display anything, it only positions the hardware cursor
--------Q-1510-------------------------------
INT 15 - TopView - UNIMPLEMENTED IN DV 2.x
AH = 10h
AL = 04h thru 12h
Return: pops up "Programming error" window in DV 2.x
--------Q-151013-----------------------------
INT 15 - TopView - "GETBIT" - DEFINE A 2ND-LEVEL INTERRUPT HANDLER
AX = 1013h
ES:DI -> FAR service routine
Return: BX = bit mask indicating which bit was allocated
0000h if no more bits available
SeeAlso: AX=1014h,AX=1015h
Note: only a few TopView/DESQview API calls are allowed during a hardware
interrupt; if other calls need to be made, the interrupt handler
must schedule a 2nd-level interrupt with "SETBIT" (AX=1015h)
--------Q-151014-----------------------------
INT 15 - TopView - "FREEBIT" - UNDEFINE A 2ND-LEVEL INTERRUPT HANDLER
AX = 1014h
BX = bit mask from INT 15/AX=1013h
SeeAlso: AX=1013h,AX=1015h
--------Q-151015-----------------------------
INT 15 - TopView - "SETBIT" - SCHEDULE ONE OR MORE 2ND-LEVEL INTERRUPTS
AX = 1015h
BX = bit mask for interrupts to post
Return: indicated routines will be called: (DV 2.0x) at next task switch
(DV 2.2x) immediately on return from
hardware interrupt
SeeAlso: AX=1013h,AX=1014h
Notes: this is one of the few TopView calls which are allowed from a hardware
interrupt handler
the handler will be called with ES containing the segment of the handle
of the next task to be executed; on return, ES must be the segment of
a task handle
--------Q-151016-----------------------------
INT 15 - TopView - "ISOBJ" - VERIFY OBJECT HANDLE
AX = 1016h
ES:DI = possible object handle
Return: BX = status
FFFFh if ES:DI is a valid object handle (see #0304)
0000h if ES:DI is not
Note: under DESQview versions prior to 2.50, an object handle is always a
pointer to the object; for versions 2.50 and up, only task handles
are always pointers--other handles may consist of a unique object
number and offset into DESQview's common memory (see #0313)
SeeAlso: AX=DE14h,AX=DE2Bh,AX=DE2Ch
(Table 0303)
Values for DESQview object type:
00h window/task
01h mailbox
02h keyboard
03h timer
04h pointer
05h panel
06h objectq
Format of DESQview object:
Offset Size Description (Table 0304)
00h WORD offset in common memory of previous object of same type
02h WORD offset in common memory of next object of same type
04h WORD signature FEDCh (DV 2.42-)
signature FEDCh or object number (DV 2.50+)
06h WORD object type (see #0303)
08h DWORD object handle to return to caller
0Ch DWORD canonicalized object address (segment = common memory)
10h WORD offset in common memory of owning task
(0000h for unowned OBJECTQs)
12h WORD mapping context
offset in common memory of mapping context record (see #0306)
remainder varies by object type and DESQview version
---v2.42 keyboard object---
14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: keyboard opened
16h 4 BYTEs ???
1Ah WORD priority in OBJECTQ???
1Ch ...
25h WORD offset in common memory of ??? task
27h 4 BYTEs ???
---v2.42 objectq object---
14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: OBJECTQ opened
16h 2 BYTEs ???
18h WORD offset in common memory of ??? task
1Ah 6 BYTEs ???
---v2.42 mailbox object---
14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
bit 15: mailbox opened
1Ah WORD priority in OBJECTQ???
1Ch 6 BYTEs ???
22h WORD offset in common memory of mailbox name (counted string)
0000h if no name
<= 5="" bytes="" ---v2.22-2.42,2.52,2.60="" window/task="" object---="" 14h="" byte="" 00h="" window,="" 01h="" task="" 15h="" byte="" internal="" (not="" switch="" menu)="" window="" number???="" 16h="" byte="" internal="" (not="" switch="" menu)="" window="" number???="" 17h="" word="" segment="" of="" internal="" window="" record="" (see="" #0307)="" 19h="" 2="" bytes="" 1bh="" byte="" cursor="" row="" 1ch="" byte="" cursor="" column="" 1dh="" byte="" visible="" window="" origin,="" row="" 1eh="" byte="" visible="" window="" origin,="" column="" 1fh="" byte="" window="" height="" (logical)="" 20h="" byte="" window="" width="" (logical)="" 21h="" byte="" window="" position,="" row="" 22h="" byte="" window="" position,="" column="" 23h="" byte="" window="" height="" (visible)="" 24h="" byte="" window="" width="" (visible)="" 25h="" byte="" row="" of="" top="" of="" frame="" (or="" window="" if="" unframed)="" 26h="" byte="" column="" of="" left="" of="" frame="" (or="" window="" if="" unframed)="" 27h="" byte="" window="" height="" (physical,="" including="" frame)="" 28h="" byte="" window="" width="" (physical,="" including="" frame)="" 29h="" byte="" unzoomed="" visible="" origin,="" row="" (00h="" before="" first="" zoom)="" 2ah="" byte="" unzoomed="" visible="" origin,="" column="" (00h="" before="" first="" zoom)="" 2bh="" byte="" unzoomed="" window="" position,="" row="" (00h="" before="" first="" zoom)="" 2ch="" byte="" unzoomed="" window="" position,="" column="" (00h="" before="" first="" zoom)="" 2dh="" byte="" unzoomed="" window="" height="" (00h="" before="" first="" zoom)="" 2eh="" byte="" unzoomed="" window="" width="" (00h="" before="" first="" zoom)="" unzoomed="" parameters="" above="" are="" updated="" when="" window="" is="" zoomed="" to="" full="" screen="" 2fh="" byte="" initially="" logical="" window="" height="" 30h="" byte="" initially="" logical="" window="" width="" 31h="" 2="" bytes="" 33h="" byte="" minimum="" height="" of="" window="" 34h="" byte="" minimum="" width="" of="" window="" 35h="" byte="" maximum="" height="" of="" window="" 36h="" byte="" maximum="" width="" of="" window="" 37h="" 3="" bytes="" 3ah="" 8="" bytes="" window="" frame="" characters:="" ul,ur,ll,lr,t,b,l,r="" 42h="" 24="" bytes="" attributes???="" 5ah="" 8="" bytes="" window="" frame="" characters:="" ul,ur,ll,lr,t,b,l,r="" 62h="" 3="" bytes="" 65h="" byte="" bitflags="" 66h="" byte="" bit="" 0:="" window="" is="" zoomed="" 67h="" byte="" 68h="" word="" offset="" in="" common="" memory="" of="" window="" name="" or="" 0000h="" if="" untitled="" 6ah="" word="" length="" of="" window="" name="" 6ch="" 2="" bytes="" 6eh="" word="" offset="" of="" logical="" cursor="" in="" window="" (in="" character="" cells)="" 70h="" dword="" pointer="" to="" field="" table="" for="" window="" 74h="" byte="" 75h="" 2="" bytes="" 77h="" byte="" number="" of="" last-visited="" field="" 78h="" dword="" pointer="" to="" field="" table="" entry="" for="" last-visited="" field="" 7ch="" 3="" bytes="" 7fh="" byte="" select="" field="" marker="" character="" 80h="" byte="" bit="" flags="" bit="" 0:="" allow="" ech="" window="" stream="" opcode="" to="" change="" reverse="" logattr="" bit="" 1:="" alternate="" field="" processing="" mode="" selected="" 81h="" byte="" 82h="" dword="" notification="" function="" (manager="" stream="" opcode="" 8ah)="" no="" notification="" if="" segment="0000h" 86h="" dword="" notification="" argument="" (manager="" stream="" opcode="" 8bh)="" 8ah="" word="" offset="" in="" common="" memory="" of="" window="" object="" or="" 0000h="" 8ch="" word="" offset="" in="" common="" memory="" of="" window="" object="" or="" 0000h="" 8eh="" word="" offset="" in="" common="" memory="" of="" window="" object="" or="" 0000h="" 90h="" byte="" bitflags="" 91h="" byte="" ---task="" object="" only="" 92h="" byte="" bit="" flags="" (bits="" 0-4)="" 93h="" byte="" character="" for="" (default="" 20h)="" 94h="" byte="" flag="" 95h="" word="" offset="" in="" common="" memory="" of="" 97h="" 2="" bytes="" 99h="" word="" 9bh="" byte="" bit="" flags="" bit="" 3:="" bit="" 6:="" perform="" protected-attribute="" processing="" on="" select="" fields="" 9ch="" byte="" 9dh="" word="" offset="" in="" common="" memory="" of="" current="" register="" save="" record="" (see="" #0305).="" no="" register="" save="" record="" in="" use="" if="">=>< 01c0h="" 9fh="" word="" offset="" in="" common="" memory="" of="" task's="" keyboard="" object="" a1h="" word="" offset="" in="" common="" memory="" of="" task's="" objectq="" object="" a3h="" word="" offset="" in="" common="" memory="" of="" task's="" mailbox="" object="" a5h="" word="" semaphore:="" ffffh="" if="" on="" user="" stack,="" else="" on="" task's="" private="" stack="" a7h="" dword="" user's="" ss:sp="" abh="" word="" task's="" private="" sp="" (ss="" read="" from="" offset="" 0ah)="" adh="" 6="" bytes="" b3h="" byte="" bit="" flags="" bit="" 0:="" run="" in="" foreground="" only="" b4h="" byte="" b5h="" byte="" bitflags="" b6h="" byte="" task="" status="" (see="" #0417="" at="" ax="DE2Ch)" b7h="" 9="" bytes="" c0h="" word="" head="" pointer="" for="" keyboard="" buffer="" (wraps="" back="" to="" 00h="" after="" 80h)="" c2h="" word="" tail="" pointer="" for="" keyboard="" buffer="" (wraps="" back="" to="" 00h="" after="" 80h)="" c4h="" 2="" bytes="" (0000h)="" c6h="" word="" segment="" of="" keyboard="" buffer="" for="" task="" c8h="" word="" offset="" in="" common="" memory="" of="" keyboard="" object="" cah="" byte="" ---v2.22-2.42="" cbh="" word="" offset="" in="" common="" memory="" of="" object="" ceh="" byte="" flag="" cfh="" word="" offset="" in="" common="" memory="" of="" default="" notify="" window="" for="" task="" or="" 0000h="" if="" none="" d1h="" 4="" bytes="" d5h="" byte="" window="" number="" on="" switch="" window="" menu="" d6h="" 5="" bytes="" dbh="" word="" offset="" in="" common="" memory="" of="" object="" ddh="" 2="" bytes="" dfh="" word="" api="" level="" for="" task="" e1h="" word="" offset="" in="" common="" memory="" of="" object="" task="" is="" waiting="" on="" if="" task="" status="" is="" 'waiting',="" else="" 0000h="" e7h="" word="" segment="" of="" e9h="" 4="" bytes="" edh="" word="" ems="" handle="" of="" virtualization="" buffer,="" 0000h="" if="" no="" virtualization="" f1h="" 12="" bytes="" fbh="" word="" fdh="" byte="" ffh="" 12="" bytes="" 10bh="" dword="" pointer="" to="" process="" record="" (see="" #0308,#0309)="" 10dh="" 10="" bytes="" 119h="" dword="" ss:sp="" for="" 11dh="" 4="" bytes="" 121h="" dword="" pointer="" to="" 125h="" 25="" bytes="" 13eh="" dword="" pointer="" to="" in="" system="" memory="" ---v2.22="" 142h="" 3="" bytes="" 145h="" task's="" default="" keyboard="" object="" ---v2.42="" 142h="" dword="" pointer="" to="" first="" task="" instance="" data="" record="" in="" system="" memory="" 148h="" dword="" pointer="" to="" last="" task="" instance="" data="" record="" in="" system="" memory="" (see="" #0310)="" 14ah="" byte="" 14dh="" 42="" bytes="" task's="" default="" keyboard="" object="" 177h="" 32="" bytes="" task's="" objectq="" object="" 197h="" 41="" bytes="" task's="" default="" mailbox="" object="" 1c0h="" 24="" bytes="" first="" register="" save="" record="" 450h="" --="" default="" top="" of="" private="" stack="" ---v2.52="" (probably="" all="" dv/x)="" same="" as="" v2.60="" below="" except="" there="" is="" an="" extra="" 29="" bytes="" inserted="" somewhere="" before="" offset="" 9fh,="" but="" not="" yet="" known="" exactly="" where.="" also,="" for="" the="" wait_on="" field="" (v2.60="" offset="" e3h),="" some="" x="" apps="" (probably="" waiting="" on="" a="" socket)="" have="" 0000h="" even="" when="" waiting.="" ---v2.60="" cbh="" word="" (added="" in="" 2.50="" -="" rest="" is="" same="" as="" 2.42)="" cdh="" word="" offset="" in="" common="" memory="" of="" object="" d0h="" byte="" flag="" d1h="" word="" offset="" in="" common="" memory="" of="" default="" notify="" window="" for="" task="" or="" 0000h="" if="" none="" d3h="" 4="" bytes="" d7h="" byte="" window="" number="" on="" switch="" window="" menu="" d8h="" 5="" bytes="" ddh="" word="" offset="" in="" common="" memory="" of="" object="" dfh="" 2="" bytes="" e1h="" word="" api="" level="" for="" task="" e3h="" word="" if="" status="" at="" b6h="waiting," offset="" in="" common="" memory="" of="" object="" that="" task="" is="" waiting="" on,="" else="" 0000h.="" (task="" with="" cpu="" also="" has="" 0000h="" here)="" e9h="" word="" segment="" of="" ebh="" 4="" bytes="" efh="" word="" ems="" handle="" of="" virtualization="" buffer,="" 0="" if="" no="" virtualization="" f3h="" 12="" bytes="" fdh="" word="" ffh="" byte="" 101h="" 8="" bytes="" 109h="" dword="" pointer="" to="" process="" record="" in="" system="" memory="" 10dh="" 14="" bytes="" 11bh="" dword="" ss:sp="" for="" 11fh="" 4="" bytes="" 123h="" dword="" pointer="" to="" 127h="" 25="" bytes="" 140h="" dword="" pointer="" to="" in="" system="" memory="" 144h="" dword="" pointer="" to="" first="" task="" instance="" data="" record="" in="" system="" memory="" 148h="" dword="" pointer="" to="" last="" task="" instance="" data="" record="" in="" system="" memory="" (from="" int="" 15/ax="DE27h)" (see="" #0310)="" 14ch="" byte="" 14eh="" 42="" bytes="" task's="" default="" keyboard="" object="" 179h="" 32="" bytes="" task's="" objectq="" object="" 199h="" 41="" bytes="" task's="" default="" mailbox="" object="" 1c2h="" 24="" bytes="" first="" register="" save="" record="" 452h="" --="" default="" top="" of="" private="" stack="" format="" of="" desqview="" register="" save="" record:="" offset="" size="" description="" (table="" 0305)="" 00h="" word="" ax="" 02h="" word="" bx="" 04h="" word="" cx="" 06h="" word="" dx="" 08h="" word="" di="" 0ah="" word="" si="" 0eh="" word="" ds="" 10h="" word="" es="" 12h="" dword="" return="" address="" 16h="" word="" original="" flags="" format="" of="" desqview="" mapping="" context="" record:="" offset="" size="" description="" (table="" 0306)="" 00h="" word="" lowest="" segment="" in="" process's="" memory="" (often="" start="" of="" system="" memory="" chain)="" 02h="" word="" size="" of="" process's="" memory="" in="" paragraphs="" 04h="" byte="" flag:="" 00h="" if="" process="" swapped="" out,="" 01h="" otherwise="" 05h="" byte="" flag:="" 00h="" if="" allocated="" in="" conventional="" memory,="" 01h="" if="" ems="" 06h="" 2="" bytes="" 08h="" word="" ems="" handle="" if="" in="" ems,="" else="" 0="" 0ah="" 2="" bytes="" (nonzero="" if="" system="" memory="" resides="" in="" shared="" mem???)="" 0ch="" word="" segment="" of="" system="" memory="" block="" that="" contains="" process="" record,="" referenced="" from="" segment="" of="" start="" of="" system="" memory="" chain="" 0eh="" byte="" 0fh="" word="" size="" of="" system="" memory="" block="" that="" contains="" process="" record="" and="" dos="" memory="" in="" paragraphs="" 11h="" byte="" bit="" flags="" bit="" 0:="" swapped="" out???="" bit="" 1:="" bit="" 2:="" swapped="" out???="" 12h="" byte="" 13h="" byte="" reference="" count="" ---v2.31="" 14h="" 10="" bytes="" 1eh="" word="" segment="" of="" process="" record="" 20h="" 2="" bytes="" 22h="" word="" segment="" of="" (in="" first="" free="" system="" memory="" block???)="" 24h="" word="" segment="" of="" end="" of="" system="" memory="" chain="" 26h="" word="" segment="" of="" start="" of="" system="" memory="" chain="" 28h="" 8="" bytes="" 2ah="" dword="" pointer="" to="" (process="" record???)="" 2dh="" 10="" bytes="" 37h="" byte="" lowest="" interrupt="" vector="" to="" save="" on="" context="" switch="" 38h="" byte="" highest="" interrupt="" vector="" to="" save="" on="" context="" switch="" 39h="" word="" offset="" in="" common="" memory="" of="" main="" task="" with="" this="" context="" 3ah="" 12="" bytes="" 46h="" byte="" internal="" mapping="" context="" number="" 47h="" 12="" bytes="" ---v2.5x-2.60="" 14h="" 6="" bytes="" 1ah="" word="" segment="" of="" process="" record="" 1ch="" 2="" bytes="" 1eh="" word="" segment="" of="" first="" free="" system="" memory="" block="" 20h="" word="" segment="" of="" start="" of="" system="" memory="" chain="" 22h="" word="" segment="" of="" end="" of="" system="" memory="" chain="" 24h="" 8="" bytes="" 2ch="" dword="" pointer="" to="" (1="" segment="" into="" process="" record???)="" 30h="" 3="" bytes="" 33h="" word="" offset="" in="" common="" memory="" of="" main="" task="" with="" this="" context="" 35h="" 7="" bytes="" 3ch="" byte="" internal="" mapping="" context="" number="" 3dh="" 14="" bytes="" 4bh="" word="" first="" dos="" memory="" segment="" (first="" mcb="" segment+1)="" 4dh="" byte="" (flag???)="" ---v2.53="" (2.5x???)="" 4eh="" 12="" bytes="" ---v2.60="" 4eh="" word="" segment="" of="" script="" buffer="" (see="" #0311)="" 50h="" 6="" bytes="" format="" of="" desqview="" internal="" window="" record="" (v2.31-2.60):="" offset="" size="" description="" (table="" 0307)="" 00h="" byte="" internal="" window="" number???="" 01h="" byte="" display="" page???="" 02h="" byte="" video="" mode="" 03h="" 3="" bytes="" 06h="" byte="" logical="" window="" height="" 07h="" byte="" logical="" window="" width="" 08h="" dword="" pointer="" to="" text="" video="" buffer="" 0ch="" 116="" bytes="" format="" of="" desqview="" process="" record="" (v2.31):="" offset="" size="" description="" (table="" 0308)="" -470h="" 13="" bytes="" filename="" of="" script="" -463h="" 1117="" bytes="" (script="" buffer???)="" -6h="" 6="" bytes="" 00h="" word="" segment="" of="" parent="" psp="" in="" process="" 02h="" 5="" bytes="" 07h="" word="" segment="" of="" current="" psp="" in="" process="" 09h="" word="" segment="" of="" first="" mcb="" in="" process="" 0bh="" 13="" bytes="" 18h="" 1024="" bytes="" process's="" interrupt="" vector="" table="" 418h="" 376="" bytes="" 590h="" first="" mcb="" in="" process="" format="" of="" desqview="" process="" record="" (v2.52-v2.60)="" (probably="" also="" 2.5x):="" offset="" size="" description="" (table="" 0309)="" 00h="" 28="" bytes="" exe="" header="" of="" last="" exe,="" if="" last="" program="" run="" was="" com="" 1ch="" bytes="" overwritten="" with="" asciz="" filename="" of="" last="" program="" run="" (exe/com)="" 11ch="" word="" segment="" of="" parent="" psp="" in="" process="" 11eh="" 4="" bytes="" 122h="" word="" segment="" of="" current="" psp="" 124h="" word="" segment="" of="" current="" psp="" 126h="" word="" segment="" of="" first="" mcb="" in="" process="" 128h="" 4="" bytes="" 12ch="" dword="" pointer="" to="" first="" process="" instance="" data="" record="" in="" system="" memory="" 130h="" dword="" pointer="" to="" last="" process="" instance="" data="" record="" in="" system="" memory="" (from="" int="" 15/ax="DE27h)" (see="" #0310)="" 134h="" 8="" bytes="" 13ch="" word="" size="" of="" current="" environment="" 13eh="" word="" segment="" of="" current="" environment="" 140h="" word="" segment="" of="" current="" psp="" 142h="" dword="" entry="" point="" of="" current="" program="" 146h="" 10="" bytes="" ---v2.52="" (v2.5x???)="" 150h="" byte="" 151h="" word="" segment="" of="" parent="" psp="" in="" process="" 153h="" word="" 155h="" word="" 157h="" word="" 159h="" 4="" bytes="" 15dh="" word="" segment="" of="" current="" environment="" 15fh="" word="" segment="" of="" current="" psp="" 161h="" word="" segment="" of="" 162h="" word="" 164h="" 3="" bytes="" 168h="" 1024="" bytes="" process's="" interrupt="" vector="" table="" 568h="" 120="" bytes="" 5e0h="" first="" mcb="" in="" process="" ---v2.60="" 150h="" word="" segment="" of="" parent="" psp="" in="" process="" 152h="" word="" 154h="" word="" 156h="" word="" 158h="" 4="" bytes="" 15ch="" word="" segment="" of="" current="" environment="" 15eh="" word="" segment="" of="" current="" psp="" 160h="" word="" segment="" of="" 162h="" word="" 164h="" 1024="" bytes="" process's="" interrupt="" vector="" table="" 564h="" 108="" bytes="" 5d0h="" first="" mcb="" in="" process="" format="" of="" desqview="" task="" or="" process="" instance="" data="" record="" (v2.5x???,="" v2.60):="" offset="" size="" description="" (table="" 0310)="" 00h="" dword="" pointer="" to="" next="" record="" of="" same="" type="" or="" 00000000="" 04h="" dword="" pointer="" to="" previous="" record="" of="" same="" type="" or="" 00000000="" 08h="" dword="" pointer="" to="" source="" area="" of="" memory="" during="" restore="" state="" 0ch="" word="" number="" of="" bytes="" to="" save/restore="" 0eh="" dword="" pointer="" to="" destination="" area="" of="" memory="" during="" restore="" state="" 12h="" word="" (0)="" 14h="" n="" bytes="" source="" memory="" buffer="" during="" restore="" state="" format="" of="" desqview="" script="" buffer="" (v2.60):="" offset="" size="" description="" (table="" 0311)="" 00h="" 13="" bytes="" asciz="" script="" filename="" 0dh="" 80="" bytes="" 5eh="" n="" bytes="" script="" records="" (see="" #0312)="" format="" of="" one="" desqview="" script="" record="" (v2.60):="" offset="" size="" description="" (table="" 0312)="" 00h="" byte="" signature="" 12h="" 01h="" 18="" bytes="" blank-padded="" script="" name="" 13h="" byte="" ascii="" code="" of="" key="" attached="" to="" script="" or="" 0="" if="" non-ascii="" key="" 14h="" byte="" scan="" code="" of="" key="" attached="" to="" script="" if="" non-ascii,="" else="" 0="" 15h="" byte="" 16h="" word="" size="" of="" script="" in="" bytes="" 18h="" n="" bytes="" script="" (ascii="" code="" of="" each="" keystroke;="" if="" 0,="" next="" byte="" is="" scan="" code="" of="" non-ascii="" key)="" format="" of="" desqview="" common="" memory="" header="" (v2.31-2.60):="" offset="" size="" description="" (table="" 0313)="" 00h="" word="" offset="" of="" lowest="" used="" block="" 02h="" word="" bytes="" of="" commom="" memory,="" including="" header="" 04h="" word="" offset="" of="" first="" free="" block="" 06h="" n="" bytes="" size="" depends="" of="" dv="" version,="" (dvp="" buffer???)="" note:="" the="" above="" is="" located="" at="" the="" beginning="" of="" the="" commom="" memory="" segment="" seealso:="" #0314,#0315,#0323="" format="" of="" desqview="" free="" block="" header:="" offset="" size="" description="" (table="" 0314)="" 00h="" word="" size="" of="" block="" in="" bytes="" including="" header="" 02h="" word="" offset="" of="" next="" free="" block="" 04h="" n="" bytes="" free="" block="" seealso:="" #0313,#0315="" format="" of="" desqview="" used="" block="" header:="" offset="" size="" description="" (table="" 0315)="" 00h="" word="" size="" of="" block="" in="" bytes="" including="" header="" 02h="" n="" bytes="" used="" block="" seealso:="" #0313,#0314="" --------q-151017-----------------------------="" int="" 15="" -="" topview="" -="" unimplemented="" in="" dv="" 2.x="" ax="1017h" return:="" pops="" up="" "programming="" error"="" window="" in="" dv="" 2.x="" --------q-151018-----------------------------="" int="" 15="" -="" topview="" -="" "locate"="" -="" find="" window="" at="" a="" given="" screen="" location="" ax="1018h" bh="column" bl="row" es="segment" of="" object="" handle="" for="" window="" below="" which="" to="" search="" 0000h="start" search="" with="" topmost="" window="" return:="" es="segment" of="" object="" handle="" for="" window="" which="" is="" visible="" at="" the="" indicated="" position,="" or="" covered="" by="" indicated="" window="" 0000h="" if="" no="" window="" seealso:="" ax="1023h,AX=1024h" --------q-151019-----------------------------="" int="" 15="" -="" topview="" -="" "sound"="" -="" make="" tone="" ax="1019h" bx="frequency" in="" hertz="" (0000h="silence)" cx="duration" in="" clock="" ticks="" (18.2="" ticks/sec)="" return:="" immediately,="" tone="" continues="" to="" completion="" notes:="" if="" another="" tone="" is="" already="" playing,="" the="" new="" tone="" does="" not="" start="" until="" completion="" of="" the="" previous="" one.="" up="" to="" 32="" tones="" may="" be="" queued="" before="" the="" process="" is="" blocked="" until="" a="" note="" completes.="" in="" dv="" 2.00,="" the="" lowest="" tone="" allowed="" is="" 20="" hz="" if="" cx="0," the="" current="" note="" is="" cancelled;="" if="" bx="0" as="" well,="" all="" queued="" notes="" are="" also="" cancelled="" seealso:="" ah="82h" hunter",int"="" 16/ah="73h" --------q-15101a-----------------------------="" int="" 15="" -="" topview="" -="" "ostack"="" -="" switch="" to="" task's="" internal="" stack="" ax="101Ah" return:="" stack="" switched="" notes:="" this="" call="" may="" not="" be="" nested;="" a="" second="" call="" must="" be="" preceded="" by="" a="" call="" to="" "ustack"="" (ax="1025h)" while="" topview="" requires="" many="" api="" calls="" to="" be="" executed="" while="" on="" the="" task's="" internal="" stack,="" desqview="" allows="" those="" calls="" to="" be="" executed="" regardless="" of="" the="" current="" stack="" seealso:="" ax="1025h" --------q-15101b-----------------------------="" int="" 15="" -="" topview="" -="" "beginc"="" -="" begin="" critical="" region="" ax="101Bh" return:="" task-switching="" temporarily="" disabled="" notes:="" will="" not="" task-switch="" until="" "endc"="" (ax="101Ch)" called="" unless="" task="" voluntarily="" releases="" the="" cpu="" (upon="" regaining="" the="" cpu,="" task-switching="" will="" again="" be="" disabled)="" suspends="" the="" caller="" until="" dos="" is="" free="" seealso:="" ah="0Dh" multidos",ax="101Ch,AX=DE13h,AX=DE1Ch,INT" "="" 2f/ax="1681h" seealso:="" int="" 60/di="0602h" --------q-15101c-----------------------------="" int="" 15="" -="" topview="" -="" "endc"="" -="" end="" critical="" region="" ax="101Ch" return:="" task-switching="" enabled="" note:="" this="" api="" call="" may="" be="" made="" from="" within="" a="" hardware="" interrupt="" handler="" seealso:="" ax="101Bh,AX=DE13h,AX=DE1Bh,INT" 2f/ax="1682h,INT" 60/di="0603h" --------q-15101d-----------------------------="" int="" 15="" -="" topview="" -="" "stop"="" -="" stop="" task="" ax="101Dh" es="segment" of="" object="" handle="" for="" task="" to="" be="" stopped="" (="=" handle="" of="" main="" window="" for="" that="" task)="" return:="" indicated="" task="" will="" not="" get="" any="" cpu="" time="" until="" restarted="" with="" ax="101Eh" note:="" once="" a="" task="" has="" been="" stopped,="" additional="" "stop"s="" are="" ignored="" bug:="" in="" dv="" 2.00,="" this="" function="" is="" ignored="" unless="" the="" indicated="" task="" is="" the="" current="" task="" seealso:="" ax="101Eh,AX=102Bh,AH=12h" vmix",int"="" 21/ah="81h" --------q-15101e-----------------------------="" int="" 15="" -="" topview="" -="" "start"="" -="" start="" task="" ax="101Eh" es="segment" of="" object="" handle="" for="" task="" to="" be="" started="" (="=" handle="" of="" main="" window="" for="" that="" task)="" return:="" indicated="" task="" is="" started="" up="" again="" note:="" once="" a="" task="" has="" been="" started,="" additional="" "start"s="" are="" ignored="" seealso:="" ax="101Dh,AX=102Bh,INT" 21/ah="82h" --------q-15101f-----------------------------="" int="" 15="" -="" topview="" -="" "disperor"="" -="" pop-up="" error="" window="" ax="101Fh" bx="bit" fields="" bits="" 0-12:="" number="" of="" characters="" to="" display="" bits="" 13,14:="" which="" mouse="" button="" may="" be="" pressed="" to="" remove="" window="" 00="either" 01="left" 10="right" 11="either" bit="" 15:="" beep="" if="" 1="" es:di="" -=""> text of message
CH = width of error window (0 = default)
CL = height of error window (0 = default)
DX = segment of object handle
Return: BX = status: 1 = left button, 2 = right, 27 = ESC pressed
Note: window remains on-screen until ESC or indicated mouse button is pressed
--------Q-151020-----------------------------
INT 15 - TopView - UNIMPLEMENTED IN DV v2.00+
AX = 1020h
Return: pops up "Programming error" window in DV v2.00+
--------Q-151021-----------------------------
INT 15 - TopView - "PGMINT" - INTERRUPT ANOTHER TASK
AX = 1021h
BX = segment of object handle for task to interrupt (not self)
DX:CX -> FAR routine to jump to next time task is run
Return: nothing
Notes: the FAR routine is entered with the current ES, DS, SI, DI, and BP
values, using the task's internal stack (see AX=101Ah); only SS:SP
needs to be preserved
multiple PGMINTs to a single task are processed last-in first-out
if the other task is in a DOS or DV API call, the interruption will
occur on return from that call
--------Q-151022BX0000-----------------------
INT 15 - TopView - "GETVER" - GET VERSION
AX = 1022h
BX = 0000h
Return: BX nonzero, TopView or compatible loaded
(BL = major version, BH = minor version)
Notes: TaskView returns BX = 0001h, DESQview v2.00+ returns BX = 0A01h
--------Q-151023-----------------------------
INT 15 - TopView - "POSWIN" - POSITION WINDOW
AX = 1023h
BX = segment of object handle for parent window within which to
position the window (0 = full screen)
ES = segment of object handle for window to be positioned
DL = general window position (see #0316)
CH = number of columns to offset from position specified by DL
CL = number of rows to offset from position specified by DL
Return: nothing
Bitfields for TopView general window position:
Bit(s) Description (Table 0316)
0,1 horizontal position
00 = current, 01 = center, 10 = left, 11 = right
2,3 vertical position
00 = current, 01 = center, 10 = top, 11 = bottom
4 don't redraw screen if set
5-7 not used
--------Q-151024-----------------------------
INT 15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO
AX = 1024h
BX = segment of object handle for window
(0 = use default)
Return: ES:DI -> virtual screen
CX = size of virtual screen in bytes
DL = 00h text screen
01h graphics screen
SeeAlso: INT 10/AH=FEh,INT 21/AH=2Bh/CX=4445h
--------Q-151025-----------------------------
INT 15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK
AX = 1025h
Return: stack switched back
Notes: call only after having switched to internal stack with AX=101Ah
while TopView requires many API calls to be executed while on the
task's private stack, DESQview allows those calls to be executed
regardless of the current stack
SeeAlso: AX=101Ah
--------Q-1510-------------------------------
INT 15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x
AH = 10h
AL = 26h thru 2Ah
Return: pops up "Programming error" window in DV 2.x
--------Q-15102B-----------------------------
INT 15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK
AX = 102Bh
BX = segment of object handle for task
Return: nothing
Note: forces a task which is waiting on its objectq to continue by placing
the handle for the task on the objectq
SeeAlso: AX=101Dh,AX=101Eh,INT 21/AH=82h
--------Q-15102C-----------------------------
INT 15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS
AX = 102Ch
ES:DI -> contents of .PIF/.DVP file (see #0317)
BX = size of .PIF/.DVP info
Return: BX = segment of object handle for new task
0000h on error
SeeAlso: AX=DE24h,INT 21/AH=4Bh
Format of .PIF/.DVP file:
Offset Size Description (Table 0317)
00h BYTE reserved (0)
01h BYTE checksum of bytes 02h through 170h
02h 30 BYTEs blank-padded program title
20h WORD maximum memory to allocate to partition in KB
22h WORD minimum memory required in KB
24h 64 BYTEs ASCIZ program pathname
64h BYTE default drive letter ('A',...)
65h 64 BYTEs ASCIZ default directory name
A5h 64 BYTEs ASCIZ program parameters
E5h BYTE initial screen mode (0-7) (see also offset 189h)
E6h BYTE number of text pages used
E7h BYTE number of first interrupt to save
E8h BYTE number of last interrupt to save
E9h BYTE rows in virtual screen buffer
EAh BYTE columns in virtual screen buffer
EBh BYTE initial window position, row
ECh BYTE initial window position, column
EDh WORD system memory in KB
EFh 64 BYTEs ASCIZ shared program name
12Fh 64 BYTEs ASCIZ shared program data file
16Fh BYTE program flags 1 (see #0318)
170h BYTE flags2
bit 6: uses command-line parameters in field at A5h
bit 5: swaps interrupt vectors
---information unique to .DVP files---
171h 2 BYTEs keys to use on open menu
173h WORD size of script buffer in bytes
175h WORD automatically give up CPU after this many tests for keyboard
input in one clock tick (default 0 = never)
177h BYTE nonzero = "uses own colors"
178h BYTE nonzero if application swappable
179h 3 BYTEs reserved (0) according to Quarterdeck documentation
in actual .DVP files, frequently 01h
17Ch BYTE nonzero to automatically close on exit (see also #0320)
17Dh BYTE nonzero if copy-protect floppy is required
---information unique to DESQview 2.0+---
17Eh BYTE .DVP version number
00h DESQview v1.2+
01h DESQview v2.0+
02h DESQview v2.2+
17Fh BYTE reserved (0)
180h BYTE initial number of rows in physical window
181h BYTE initial number of columns in physical window
182h WORD maximum expanded memory to allow, in KB
184h BYTE DVP program flags 3 (see #0319)
185h BYTE keyboard conflict level (0-4 for DV<2.26, 00h-0fh="" for="" dv2.26+)="" (see="" #0321)="" 186h="" byte="" number="" of="" graphics="" pages="" used="" 187h="" word="" extra="" system="" memory="" size="" 189h="" byte="" initial="" screen="" mode="" (ffh="default)" (overrides="" offset="" e5h)="" ---information="" unique="" to="" desqview="" 2.2+---="" 18ah="" byte="" serial="" port="" usage="" ffh="" uses="" all="" serial="" ports="" 00h="" no="" serial="" ports="" 01h="" only="" com1="" 02h="" only="" com2="" 18bh="" byte="" dvp="" program="" flags="" 4="" (see="" #0320)="" 18ch="" byte="" protection="" level="" for="" 386="" machines="" 18dh="" 19="" bytes="" reserved="" (0)="" for="" regular="" desqview="" ---information="" unique="" to="" desqview/x="" 1.0---="" 18dh="" byte="" x="" flags="" bits="" 3-7:="" unused="" (0)="" bit="" 2:="" don't="" display="" wait="" message="" when="" opening="" window="" bit="" 1:="" don't="" display="" dos="" window="" bit="" 0:="" (xnewproc)="" use="" dos="" client="" layer="" (dos-to-x)="" (newproc)="" inherit="" dos="" client="" layer="" usage="" 18eh="" byte="" x="" keyboard="" behavior="" (0-3)="" 18fh="" byte="" font="" scaling="" 00h="" fixed="" fonts="" 01h="" scalable="" fonts="" 190h="" 10="" bytes="" reserved="" (0)="" 19ah="" word="" length="" of="" data="" follownig="" xdvp="" signature="" 19ch="" 4="" bytes="" signature="" "xdvp"="" 1a0h="" n="" bytes="" list="" of="" variable="" length="" records="" (see="" #0322)="" bitfields="" for="" .pif/.dvp="" program="" flags="" 1:="" bit(s)="" description="" (table="" 0318)="" 7="" writes="" text="" directly="" to="" screen="" 6="" runs="" in="" foreground="" only="" (see="" also="" offset="" 184h)="" 5="" uses="" math="" coprocessor="" 4="" accesses="" system="" keyboard="" buffer="" directly="" 3-1="" reserved="" (0)="" 0="" swappable="" seealso:="" #0317,#0319,#0320="" bitfields="" for="" .dvp="" program="" flags="" 3:="" bit(s)="" description="" (table="" 0319)="" 7="" automatically="" assign="" window="" position="" 5="" maximum="" memory="" value="" has="" been="" specified="" 4="" disallow="" "close"="" command="" 3="" foreground-only="" when="" doing="" graphics="" set="" by="" dv="" 2.3+="" when="" "runs="" in="" background"="D" (undoc)="" 2="" don't="" virtualize="" (see="" also="" #0320)="" 1="" foreground-only="" during="" dos="" calls="" set="" by="" dv="" 2.3+="" when="" "runs="" in="" background"="D" (undoc)="" seealso:="" #0317,#0318,#0320="" bitfields="" for="" .dvp="" program="" flags="" 4:="" bit(s)="" description="" (table="" 0320)="" 7="" automatically="" close="" application="" on="" exit="" if="" .com="" or="" .exe="" specified="" (see="" also="" #0317="" offset="" 17ch)="" 6="" swappable="" if="" not="" using="" serial="" ports="" 5="" start="" program="" with="" window="" hidden="" (v2.26+)="" 4="" start="" program="" in="" background="" (v2.26+)="" 3="" virtualize="" text="" (see="" also="" #0319)="" 2="" virtualize="" graphics="" (see="" also="" #0319)="" 1="" share="" cpu="" when="" foreground="" 0="" share="" ega="" when="" foreground="" and="" zoomed="" seealso:="" #0317,#0318,#0319="" bitfields="" for="" desqview="" keyboard="" conflict="" level:="" bit(s)="" description="" (table="" 0321)="" 3="" save/restore="" entire="" int="" 09="" handler="" state="" every="" taskswtch="" 2="" take="" special="" precautions="" for="" programs="" which="" read="" the="" bios="" keyboard="" buffer="" directly="" from="" memory="" 1="" never="" indicate="" keystroke="" available="" during="" scripts/xfers="" 0="" only="" indicate="" keystroke="" available="" every="" sixth="" poll="" seealso:="" #0317="" format="" of="" desqview/x="" variable="" length="" record:="" offset="" size="" description="" (table="" 0322)="" 00h="" word="" length="" of="" following="" record,="" 0000h="" if="" end="" of="" record="" list="" 02h="" byte="" record="" type="" 01h="" script="" filename,="" up="" to="" 64="" characters="" 02h="" command-line="" parameters="" (allows="">64 characters on cmdline)
03h environment inheritance
04h environment string
05h starting window position
---types 01h,02h,04h---
03h N BYTEs ASCII data
---type 03h---
03h BYTE inheritance
00h do not inherit
01h inherit environment
---type 05h---
03h N BYTEs ASCII copy of fields as typed into DVPMAN, separated by commas:
starting row, starting column, starting height, starting width
Note: if there are multiple occurrences of record types 01h, 02h, or 03h,
only the last instance of each type is used; multiple occurrences of
type 04h are concatenated
SeeAlso: #0317
--------Q-15102D-----------------------------
INT 15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL
AX = 102Dh
BL = subfunction
00h determine whether using keyboard mouse
Return: BL = 00h using real mouse
01h using keyboard mouse
01h turn keyboard mouse on
02h turn keyboard mouse off
--------Q-15102E-----------------------------
INT 15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY
AX = 102Eh
BX = number of bytes
Return: AX = status
0000h successful
ES:DI -> allocated system memory (see #0323)
0001h failed
ES:DI = 0000h:0000h
Note: under DV 2.42, this call is identical to AX=1001h
SeeAlso: AX=1001h,AX=1002h,AX=DE0Ch
Format of DESQview system memory block header:
Offset Size Description (Table 0323)
00h WORD segment of next header or 0000h
02h WORD segment of previous header or 0000h
04h WORD size of block in paragraphs, including header
06h BYTE availability flag (00h in use, 01h free)
Note: this header is located one paragraph before the memory block proper
SeeAlso: #0313
--------Q-1511-------------------------------
INT 15 - TopView commands
AH = 11h
AL = various (except 17h)
Note: in DESQview 2.x, these function calls are identical to AH=DEh, so
see those below
SeeAlso: AH=DEh
--------T-1511-------------------------------
INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS
AH = 11h
STACK: DWORD pointer to ASCIZ string containing a VMiX shell
request (max len = 127)
Return: AX = status (SYS_OK or SYS_ERROR)
SeeAlso: AH=0Ch"VMiX"
--------T-1511-------------------------------
INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE
AH = 11h
Note: disables the Alt-Z MultiDOS command/program-selection hotkey
SeeAlso: AH=12h"MultiDOS"
Index: hotkeys;MultiDOS Plus
--------Q-151117BX0000-----------------------
INT 15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
AX = 1117h
BX = 0000h get current mapping context without setting
nonzero set new mapping context
Return: BX = mapping context in effect before call
interrupts enabled
Notes: this function differs from AX = DE17h for DESQview v2.20 through 2.25
mapping contexts determine conventional-memory addressability; setting
a mapping context ensures that the associated program and data areas
are in memory for access. Usable by drivers, TSRs and shared
programs.
caller need not be running under DESQview, but must ensure that the
stack in use will not be mapped out by the call
SeeAlso: AX=DE17h,INT 2F/AX=1685h
--------m-1511DE-----------------------------
INT 15 - DESQview - QEXT.SYS - INSTALLATION CHECK
AX = 11DEh
Return: CF clear if installed
AX = segment at which QEXT.SYS is located
Desc: QEXT.SYS is Quarterdeck's HMA manager for DESQview; more recent
versions also implement the XMS standard
Note: a private entry point (see #0324) may be found by searching the
beginning of the returned segment for the signature string
"QUARTERDECK EXTENDED MEMORY MANAGER 286"; the word immediately
prior to the signature contains the QEXT version number in BCD,
and the word prior to that contains the offset within the QEXT
code segment of the private entry point
SeeAlso: INT 2F/AX=4310h,INT 67/AH=3Fh
(Table 0324)
Call QEXT.SYS private entry point with:
AH = 00h ???
AH = nonzero ???
--------T-1512-------------------------------
INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP
AH = 12h
STACK: WORD process ID
Return: AX = status (SYS_OK or SYS_ERROR)
SeeAlso: AH=03h"MultiDOS",AX=101Dh,AH=13h"VMiX"
--------T-1512-------------------------------
INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE
AH = 12h
Note: enables the Alt-Z MultiDOS command/program-selection hotkey
SeeAlso: AH=11h"MultiDOS"
Index: hotkeys;MultiDOS Plus
--------Q-1512--BH00-------------------------
INT 15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE
AH = 12h
BH = 00h
BL = which handle to return
00h handle in DWORD on top of stack
01h current task's window handle
02h given task's mailbox handle (task's handle on stack)
03h current task's mailbox handle
04h given task's keyboard handle (task's handle on stack)
05h current task's keyboard object handle
06h given task's OBJECTQ handle (task's handle on stack)
07h current task's OBJECTQ handle
08h \
thru > return 0000:0000 under DV < 2.26="" 10h="" 0ch="" (2.26+)="" task="" owning="" object="" with="" handle="" in="" dword="" on="" top="" of="" stack="" 0dh="" (2.26+)="" task="" handle="" of="" owner="" (parent)="" of="" current="" task="" return:="" dword="" on="" top="" of="" stack="" is="" object="" handle="" note:="" bl="0Ch,0Dh" returns="" 00000000h="" if="" the="" object="" is="" not="" open="" (keyboard,="" mailbox,="" panel,="" pointer,="" and="" timer="" objects)="" or="" is="" an="" orphan="" (task,="" window)="" seealso:="" ah="12h/BH=02h,AH=12h/BH=80h" --------q-1512--bh01-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "new"="" -="" create="" new="" object="" ah="12h" bh="01h" bl="object" type="" to="" create="" 00h="" (dv="" 2.0x="" only)="" handle="" is="" dword="" on="" top="" of="" stack="" 01h="" (dv="" 2.0x="" only)="" use="" task's="" window="" handle="" 02h="" (dv="" 2.0x="" only)="" given="" task's="" mailbox="" (task's="" handle="" on="" stack)="" 03h="" (dv="" 2.0x="" only)="" current="" task's="" mailbox="" 04h="" (dv="" 2.0x="" only)="" given="" task's="" keyboard="" (task's="" handle="" on="" stack)="" 05h="" (dv="" 2.0x="" only)="" current="" task's="" keyboard="" object="" 08h="" window="" class="" 09h="" mailbox="" class="" 0ah="" keyboard="" class="" 0bh="" timer="" object="" (counts="" down="" 32-bit="" time="" in="" 10ms="" increments)="" 0fh="" pointer="" object="" 10h="" panel="" object="" stack:="" (if="" window="" object="" or="" window="" class)="" dword="" address="" to="" jump="" to="" (no="" new="" task="" if="" high="" word="=" 0)="" dword="" (reserved)="" 0="non-task" window,="" ffffh="task" window="" dword="" bytes="" for="" task's="" private="" stack="" (ffffh="=" default="" of="" 0100h)="" dword="" bytes="" system="" memory="" for="" input="" buffer="" for="" read/readn="" (0="=" none,="" -1="=" default--same="" as="" logical="" window="" size)="" dword="" window="" size,="" columns="" dword="" window="" size,="" rows="" dword="" length="" of="" window="" title="" dword="" address="" of="" window="" title="" return:="" dword="" on="" top="" of="" stack="" is="" new="" object="" handle="" notes:="" if="" a="" new="" task="" is="" created,="" it="" is="" started="" with="" ax="BX" =="" si="DI" =="" bp="0" dx:cx="handle" of="" parent="" task="" ds="ES" =="" ss="segment" of="" private="" stack="" (and="" new="" task's="" handle)="" new="" windows="" are="" orphans,="" inherit="" the="" colors/hidden="" status="" of="" the="" creating="" task's="" window,="" and="" are="" placed="" in="" the="" upper="" left="" hand="" corner="" of="" the="" screen="" but="" not="" automatically="" redrawn="" new="" keyboards="" are="" closed,="" and="" have="" all="" object="" bits="" cleared="" except="" for="" the="" hardware="" cursor="" bit="" seealso:="" ah="12h/BH=02h,AH=12h/BH=81h" --------q-1512--bh02-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "free"="" -="" free="" an="" object="" ah="12h" bh="02h" bl="object" 00h="" handle="" in="" dword="" on="" top="" of="" stack="" window:="" close="" window="" and="" free="" timer:="" free="" timer="" panel:="" free="" panel="" object="" pointer:="" free="" pointer="" 01h="" task's="" window="" handle="" -="" kills="" task,="" never="" returns="" 02h="" given="" task's="" mailbox="" (task's="" handle="" on="" top="" of="" stack)="" 03h="" current="" task's="" mailbox="" 04h="" given="" task's="" keyboard="" (task's="" handle="" on="" top="" of="" stack)="" 05h="" current="" task's="" keyboard="" object="" notes:="" when="" a="" window="" is="" freed,="" its="" keyboard="" and="" pointer="" objects="" are="" freed;="" task="" windows="" also="" free="" any="" mailbox,="" objectq,="" and="" panel="" objects="" held="" by="" the="" task="" and="" any="" child="" tasks="" if="" the="" keyboard="" being="" freed="" is="" the="" default="" keyboard="" for="" a="" task,="" this="" call="" is="" equivalent="" to="" close="" panel="" and="" pointer="" objects="" are="" automatically="" closed="" if="" open="" seealso:="" ah="12h/BH=01h,AH=12h/BH=0Dh,AH=12h/BH=82h" --------q-1512--bh03-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "addr"="" -="" get="" handle="" of="" message="" sender="" ah="12h" bh="03h" bl="object" 00h="" mailbox="" handle="" in="" dword="" on="" top="" of="" stack="" 02h="" sender="" of="" last="" msg="" read="" from="" mailbox="" (task's="" handle="" on="" stack)="" 03h="" sender="" of="" last="" msg="" read="" from="" current="" task's="" mailbox="" return:="" dword="" on="" stack="" is="" task="" handle="" of="" message="" sender="" seealso:="" ah="12h/BH=00h,AH=12h/BH=83h" --------q-1512--bh03-------------------------="" int="" 15="" -="" desqview="" v2.26+="" -="" "connect"="" -="" connect="" two="" windows="" ah="12h" bh="03h" bl="window" to="" be="" connected="" 00h="" handle="" of="" window="" to="" be="" attached="" in="" dword="" on="" top="" of="" stack="" 01h="" attach="" current="" task's="" main="" window="" stack:="" dword="" handle="" of="" window="" to="" attach="" to="" or="" 00000000h="" to="" detach="" return:="" stack="" popped="" notes:="" when="" two="" windows="" are="" connected,="" both="" will="" move="" if="" the="" user="" moves="" either="" multiple="" windows="" may="" be="" attached="" to="" a="" single="" window,="" but="" each="" window="" may="" only="" be="" attached="" to="" one="" window="" at="" a="" time="" seealso:="" ah="12h/BH=83h" --------q-1512--bx0300-----------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "dir"="" -="" get="" panel="" file="" directory="" ah="12h" bx="0300h" stack:="" dword="" handle="" of="" panel="" object="" (see="" #0325)="" return:="" stack:="" dword="" length="" of="" directory="" (always="" multiple="" of="" 14="" bytes)="" dword="" address="" of="" directory="" note:="" a="" null="" string="" is="" returned="" if="" the="" object="" is="" not="" open="" seealso:="" ah="12h/BX=0400h" apply",ah="12h/BH=83h" "="" format="" of="" topview="" panel="" file:="" offset="" size="" description="" (table="" 0325)="" 00h="" 2="" bytes="" c0h="" c3h="" 02h="" byte="" number="" of="" panels="" in="" file="" 03h="" for="" each="" panel="" in="" file:="" 8="" bytes="" blank-padded="" panel="" name="" dword="" panel="" offset="" in="" file="" word="" panel="" length="" data="" for="" panels="" (each="" consists="" of="" one="" or="" more="" window/query/manager="" streams);="" first="" byte="" of="" each="" panel="" must="" be="" 1bh,="" fifth="" byte="" must="" be="" e5h="" --------q-1512--bh04-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "read"="" -="" read="" next="" logical="" line="" of="" window="" ah="12h" bh="04h" bl="window" to="" read="" from="" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" 01h="" use="" calling="" task's="" default="" window="" 0ch="" (dv="" 2.26+)="" default="" window="" of="" task="" owning="" handle="" on="" top="" of="" stack="" 0dh="" (dv="" 2.26+)="" default="" window="" of="" parent="" task="" of="" current="" task="" return:="" stack:="" dword="" number="" of="" bytes="" read="" dword="" address="" of="" buffer="" notes:="" reading="" starts="" at="" the="" current="" logical="" cursor="" position;="" the="" cursor="" is="" updated="" to="" point="" at="" the="" character="" following="" the="" last="" one="" read="" any="" translucent="" blanks="" (ffh)="" which="" are="" visible="" on="" screen="" are="" changed="" to="" the="" character="" which="" is="" seen="" through="" them="" the="" string="" produced="" by="" the="" read="" is="" placed="" in="" an="" input="" buffer="" which="" may="" be="" reused="" by="" the="" next="" read="" or="" readn="" of="" a="" window="" window="" stream="" opcodes="" d8h="" and="" d9h="" determine="" whether="" the="" read="" returns="" characters="" or="" attributes="" seealso:="" ah="12h/BH=05h" window",ah="12h/BH=12h,AH=12h/BH=84h" "="" --------q-1512--bh04-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "read"="" -="" get="" next="" record="" from="" object="" ah="12h" bh="04h" bl="object" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" mailbox:="" wait="" for="" and="" get="" next="" message="" keyboard:="" wait="" for="" and="" get="" pointer="" to="" next="" input="" buffer="" pointer:="" wait="" for="" and="" get="" next="" message="" 02h="" get="" next="" message="" from="" mailbox="" (task's="" handle="" on="" top="" of="" stack)="" 03h="" get="" next="" message="" from="" current="" task's="" mailbox="" 04h="" get="" the="" next="" input="" from="" keyboard="" (handle="" on="" top="" of="" stack)="" 05h="" get="" the="" next="" input="" from="" task's="" default="" keyboard="" 06h="" wait="" for="" input="" from="" any="" object="" in="" objectq="" (handle="" on="" stack)="" 07h="" wait="" for="" input="" from="" any="" object="" in="" task's="" default="" objectq="" return:="" stack:="" (if="" objectq)="" dword="" handle="" of="" object="" with="" input="" (otherwise)="" dword="" number="" of="" bytes="" dword="" address="" of="" pointer="" message="" (see="" #0326)="" notes:="" for="" a="" keyboard="" in="" keystroke="" mode,="" the="" input="" buffer="" is="" a="" single="" byte="" containing="" the="" character="" code="" as="" returned="" by="" the="" bios;="" the="" bios="" scan="" code="" is="" available="" via="" the="" status="" call="" if="" the="" character="" is="" zero="" for="" a="" keyboard="" in="" field="" mode,="" the="" input="" buffer="" format="" is="" determined="" by="" the="" field="" table="" header="" for="" the="" window="" the="" keyboard="" is="" attached="" to="" keyboard="" input="" buffers="" and="" mailbox="" message="" buffers="" may="" be="" invalidated="" by="" the="" next="" read,="" erase,="" close,="" or="" free="" message="" to="" the="" same="" object="" seealso:="" ah="12h/BH=05h" object",ah="12h/BH=84h" "="" format="" of="" desqview="" pointer="" message:="" offset="" size="" description="" (table="" 0326)="" 00h="" word="" row="" 02h="" word="" column="" 04h="" byte="" status="" (see="" #0327)="" 05h="" byte="" field="" number="" or="" zero="" (apilevel="">= 2.00 only)
Bitfields for DESQview pointer status:
Bit(s) Description (Table 0327)
7-2 number of clicks-1 if multiple-click mode active
7 set when press/release mode active and button pressed
6 set when press/release mode active and button released
1-0 button pressed (00=none,01=button1,10=button2)
--------Q-1512--BX0400-----------------------
INT 15 - TopView - SEND MESSAGE - "READ" - WAIT FOR TIMER TO EXPIRE
AH = 12h
BX = 0400h
STACK: DWORD timer's handle
Return: after timer expires
STACK: DWORD time in 1/100 sec after midnight when timer expired
SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=84h
--------Q-1512--BX0400-----------------------
INT 15 - TopView - SEND MESSAGE - "APPLY" - WRITE PANEL TO WINDOW
AH = 12h
BX = 0400h
STACK: DWORD handle of panel object
DWORD window's handle (or 0 for current task's window)
DWORD length of panel name
DWORD pointer to panel name
Return: STACK: DWORD handle of window which was used
DWORD handle of keyboard or 0
Notes: status of APPLY may be checked with STATUS message
panel MUST have the following format
first byte must be 1Bh (i.e. must start with a stream)
first opcode in stream must be E5h
single byte arg of opcode is interpreted thus:
bits 7,6 11 means create new window
10 means create new field table for existing window
01 means use existing window and field table
bit 5 if set, panel contains a field table
(creates a new keyboard and puts it in field mode)
bit 4 if set, panel contains input fields
bit 3 if set, panel contains select fields but no input fields
if the panel contains input or select fields, a keyboard handle is
returned; either the window's current open keyboard or a
newly-created keyboard object. The caller should read that keyboard
to obtain input from the panel.
SeeAlso: AH=12h/BH=84h
--------Q-1512--BH05------------------------
INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE TO OBJECT
AH = 12h
BH = 05h
BL = object
00h handle is DWORD on top of stack
timer: start timer to end at a specified time
keyboard: add input buffer to queue
pointer: move pointer icon to specified position
02h send message by value/status=0 to mbox (task's handle on stack)
03h send message by value/status=0 to current task's mailbox
04h add input buffer to KEYBOARD queue (handle on top of stack)
05h add input buffer to task's default KEYBOARD queue
06h add an object to OBJECTQ (handle on top of stack)
07h add an object to task's default OBJECTQ
STACK: (if mailbox) DWORD length
DWORD address
(if keyboard) DWORD status (scan code in keystroke mode)
DWORD length (should be 1 in keystroke mode)
DWORD address
(if objectq) DWORD handle of object to add
(if timer) DWORD 1/100ths seconds since midnight (actually
only accurate to 1/18 sec)
(if pointer) DWORD column relative to origin of window
DWORD row relative to origin of window
Notes: under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h)
the data and status written to a keyboard object must match the format
returned by the keyboard object in the current mode
the pointer position is scaled according to the current scaling factors
SeeAlso: AH=12h/BH=04h,AH=12h/BH=85h
--------Q-1512--BH05-------------------------
INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE STRING TO WINDOW
AH = 12h
BH = 05h
BL = window to write to
00h DWORD on top of stack is window handle
01h write string to task's default window
0Ch (DV 2.26+) default window of task owning handle on top of stack
0Dh (DV 2.26+) default window of parent of current task
STACK: DWORD object handle if handle passed on stack
DWORD total length of string (high word == 0)
DWORD address of string to display (see #0328)
Return: indicated actions performed
a. non-control characters are displayed (opcodes DEh and DFh control
whether the attributes are left or changed to the current attrib)
b. CR/LF/BS/Tab cause the usual cursor movement
c. ESC starts a data structure with additional commands if following
byte is less than 20h; otherwise, it is written to the window
STACK: DWORD handle of new window if window stream opcode E6h
else nothing
SeeAlso: AH=12h/BH=04h,AH=12h/BH=85h
Format of stream data structure:
Offset Size Description (Table 0328)
00h BYTE 1Bh magic value identifying start of stream
01h BYTE stream type (00h, 01h, 10h, 14h-1Fh legal)
(see #0329,#0335,#0336,#0337)
02h WORD length of remainder of stream in bytes
var-length fields follow, each an OPCODE followed by
zero or more args
(Table 0329)
Values for MODE 00h (set or display values) "WINDOW STREAM" opcodes:
Opcodes:args
00h display 20h blanks with the default attribute
01h-1Fh display OPCODE blanks with the default attribute
20h display char with default attribute 20h times
BYTE char to repeat
21h-3Fh display char with default attribute OPCODE-20h times
BYTE char to repeat
40h display 20h blanks with specified attribute
BYTE attribute of blanks
41h-5Fh display OPCODE-40h blanks with specified attribute
BYTE attribute of blanks
60h display next 20h characters
20h BYTEs characters to display
61h-7Fh display next OPCODE-60h characters
N BYTEs characters to display
80h-87h display N blanks with default attribute
BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
[000h means 800h]
88h-8Fh display N copies of the character
BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
[000h means 800h]
BYTE character to repeat
90h-97h display N blanks with specified attribute
BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
[000h means 800h]
BYTE attribute
98h-9Fh display string at logical cursor pos
BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
[000h means 800h]
N BYTEs string to display
A0h set logical cursor row
BYTE row number (0 is top)
A1h set logical cursor column
BYTE column number (0 is leftmost)
A2h set top edge of scrolling region
BYTE row
A3h set left edge of scrolling region
BYTE column
A4h set row of physical window position
BYTE line
A5h set column of physical window position
BYTE column
A6h set height of physical window
BYTE number of rows
A7h set width of physical window
BYTE number of columns
A8h set viewport row
BYTE row
A9h set viewport column
BYTE column
AAh set virtual screen height [contents of window unpredictable after]
BYTE rows
ABh set virtual screen width [contents of window unpredictable after]
BYTE columns
ACh-AEh unused
AFh set compatible/preferred video modes
BYTE compatibility/preference mask
bit 7 compatible with monochrome
bit 6 compatible with color text, EGA/VGA graphics
bit 5 compatible with medium-resolution CGA graphics
bit 4 compatible with high-resolution CGA graphics
bit 3 prefer monochrome
bit 2 prefer color text, EGA/VGA graphics
bit 1 prefer medium-resolution CGA graphics
bit 0 prefer high-resolution CGA graphics
B0h move logical cursor down
BYTE number of rows (signed, negative values move up)
[if rows=0 and hardware cursor owner, update hardware cursor]
B1h move logical cursor right
BYTE number of columns (signed, negative values move left)
[if cols=0 and hardware cursor owner, update hardware cursor]
B2h shift top edge of scrolling region
BYTE number of rows (signed)
B3h shift left edge of scrolling region
BYTE number of columns (signed)
B4h shift physical window down
BYTE number of lines (signed)
B5h shift physical window right
BYTE number of columns (signed)
B6h expand physical window vertically
BYTE number of lines (signed)
B7h expand physical window horizontally
BYTE number of columns (signed)
B8h adjust viewport row
BYTE number of rows (signed)
B9h adjust viewport column
BYTE number of columns (signed)
BAh adjust virtual screen height [contents of window unpredict after]
BYTE number of rows to increase (signed)
BBh adjust virtual screen width [contents of window unpredictbl after]
BYTE number of columns to increase (signed)
BCh-BFh reserved (currently unused)
C0h set logical cursor position
BYTE row number (0 is top border)
BYTE column number (0 is left border)
C1h set top left corner of scrolling region
BYTE row
BYTE column
C2h set physical window pos
BYTE upper left row (no top border if 0)
BYTE upper left column (no left border if 0)
C3h set current window size
BYTE number of rows
BYTE number of columns
C4h set upper left corner of viewport (portion of virtual screen displayed
in window)
BYTE row
BYTE column
C5h set size of virtual screen [contents unpredictable afterwards]
BYTE number of rows
BYTE number of columns
C6h unused
C7h unused
C8h set logical cursor relative to current position
BYTE number of rows to move down (signed)
BYTE number of columns to move right (signed)
[if rows=cols=0 and hardware cursor owner, update hardw cursor]
C9h shift top left corner of scrolling region
BYTE number of rows (signed)
BYTE number of columns (signed)
CAh set window pos relative to current position
BYTE number of rows to shift down (signed)
BYTE number of columns to shift right (signed)
CBh set window size relative to current size
BYTE number of rows to expand (signed)
BYTE number of cols to expand (signed)
CCh shift viewport relative to current position
BYTE rows to shift (signed)
BYTE cols to shift (signed)
CDh resize virtual screen
BYTE number of rows to expand (signed)
BYTE number of columns to expand (signed)
CEh scroll text when using E8h-EBh/F8h-FBh opcodes (default)
CFh scroll attributes when using E8h-EBh/F8h-FBh opcodes
D0h allow window frame to extend beyond screen
D1h always display a complete frame, even if window extends beyond edge of
screen
D2h allow DV to change logical colors on video mode switch (default)
D3h application changes logical attributes
D4h window is visible [must redraw to actually make visible]
D5h window is hidden [must redraw to actually remove]
D6h window has frame (default)
D7h window unframed [must redraw to actually remove frame]
D8h READ/READN will read characters from window (default)
D9h READ/READN will read attributes from window
DAh use logical attributes, which may be remapped (see #0330)
DBh use physical attributes for characters
DCh enable special actions for control characters (default)
DDh disable special control char handling, all chars displayable by BIOS TTY
call
DEh write both character and attribute (default)
DFh write character only, leave attribute untouched
E0h repeat following commands through E1h opcode
BYTE number of times to repeat (00h means 256 times)
E1h end of commands to repeat, start repeating them
E2h set current output color
BYTE color
E3h clear virtual screen from scroll origin to end using current color
E4h redraw window
E5h select menu style
BYTE style (normally 18h)
bits 5,4 = 01 use two-letter menu entries for remainder of
this stream
E5h (panel file only)
BYTE modifier
bits 7,6 = 11 panel stream creates new window
= 10 panel defines new field table for existing window
= 01 panel stream uses existing window & field table
bit 5 = 1 stream contains a field table (create kyboard object)
bit 4 = 1 stream defines input fields (create keyboard object)
bit 3 = 1 stream defines select fields but not input fields
bit 2 = 1 stream defines exclusive input window (DV 2.2)
bit 1 reserved
bit 0 reserved
E6h create new window and perform rest of manipulations in new window
BYTE number of rows
BYTE number of columns
Return: DWORD object handle of new window returned on stack at end
Note: the window is created with a physical size of 0x0 at the
same position as the window to which this stream was sent
E7h no operation
E8h scroll area up (top left corner defined by opcode C1h)
BYTE height
BYTE width
E9h scroll area down (top left corner defined by opcode C1h)
BYTE height
BYTE width
EAh scroll area left (top left corner defined by opcode C1h)
BYTE height
BYTE width
EBh scroll area right (top left corner defined by opcode C1h)
BYTE height
BYTE width
ECh set logical attributes for window contents
BYTE video modes command applies to
bit 7 monochrome
bit 6 color text, EGA/VGA graphics
bit 5 medium-resolution CGA graphics
bit 4 high-resolution CGA graphics
BYTE which attributes to set
bit 7 if set, copy single following byte to indicated attribs
bits 4-6 number of first attribute to change - 1
bits 0-3 number of consecutive attributes to change
N BYTEs new attributes
EDh set logical attributes for window frame
BYTE video modes command applies to (see opcode ECh)
BYTE which attributes to set
bit 7 if set, copy single following byte to indicated attrs
bits 4-6 number of first attribute to change - 1
bits 0-3 number of consecutive attributes to change
N BYTEs new attributes
attributes
1 = top left corner
2 = top right corner
3 = bottom left corner
4 = bottom right corner
5 = top edge
6 = bottom edge
7 = left edge
8 = right edge
EEh set characters for window frame
BYTE video modes command applies to (see opcode ECh)
BYTE which characters to set
bit 7 if set, copy single following byte to indicated chars
bits 4-6 number of first character to change - 1
bits 0-3 number of consecutive characters to change
N BYTEs new chars (same relative position as attributes above)
EFh set window name
BYTE length of name (should be in range 0 to logical screen width)
N BYTEs name
F0h clear input field to blanks
BYTE field number
F1h fill input field with character
BYTE field number
BYTE char
F2h set color of input field
BYTE field number (1-N)
BYTE attribute
F3h set initial contents of input field
BYTE field number (1-N)
N BYTEs enough chars to exactly fill field as defined by op FFh
F4h position cursor to start of specific input field
BYTE field number (1-N)
F5h change field table entry
BYTE field number
7-8 BYTEs field table entry (see opcode FFh below)
F6h set field type
BYTE field number
BYTE type
00h inactive
40h output field
80h input field
C0h deselected field
C2h selected field
F7h "broadcast write" write data to fields with program output bit set in
the field table entry, in field number order
N BYTEs (total length of all program output fields)
F8h scroll field up a line
BYTE field number
F9h scroll field down a line
BYTE field number
FAh scroll field left
BYTE field number
FBh scroll field right
BYTE field number
FCh set field table header
6 BYTEs field table header (see #0331)
FDh reset modified bit for all fields
FEh reset selected and modified bits for all fields
FFh set up input fields
6 BYTEs table header (see #0331)
7/8N BYTEs the field table entries, one for each field (see #0333)
Note: DESQview uses and updates the actual copy of the information
which is contained in the stream. Thus this info must remain
intact until after the data entry is complete.
(Table 0330)
Values for TopView logical attributes:
01h normal text
02h highlighted normal text
03h help text
04h highlighted help text
05h error message
06h highlighted error message
07h emphasized text
08h marked text
9-16 reverse video versions of 1-8
Format of TopView field table header:
Offset Size Description (Table 0331)
00h BYTE number of fields (must be <= existing="" number="" of="" fields)="" 01h="" byte="" screen="" behavior="" bits="" (see="" #0332)="" 02h="" byte="" current="" input="" field="" (updated="" by="" desqview)="" 03h="" byte="" current="" select="" field="" (updated="" by="" desqview)="" 04h="" byte="" attribute="" for="" select="" fields="" when="" they="" are="" pointed="" at="" 05h="" byte="" attribute="" for="" select="" fields="" which="" have="" been="" selected="" bitfields="" for="" topview="" screen="" behavior="" bits:="" bit(s)="" description="" (table="" 0332)="" 7="" reserved="" 6="" menu="" items="" may="" be="" selected="" via="" keyboard="" 5="" left="" mouse="" button="" in="" "status"="" mode="" (press="" anywhere="" in="" window="" immediately="" returns="" control="" to="" application)="" 4="" right="" mouse="" button="" in="" "status"="" mode="" 3="" select="" fields="" return="" contents="" or="" blanks="" rather="" than="" 'y'="" or="" 'n'="" 2="" modified="" bits="" reset="" on="" return="" to="" application="" 1-0="" type="" of="" data="" returned="" 00="" no="" data="" returned="" on="" read="" of="" keyboard="" 01="" data="" returned="" as="" array="" of="" characters="" containing="" all="" fields="" packed="" together,="" with="" no="" field="" numbers="" 10="" data="" returned="" as="" numbered="" variable-length="" records="" for="" all="" fields="" 11="" data="" returned="" as="" numbered="" variable-length="" records="" for="" the="" fields="" which="" were="" modified="" format="" of="" topview="" field="" table="" entry:="" offset="" size="" description="" (table="" 0333)="" 00h="" byte="" start="" row="" \="" 01h="" byte="" start="" column="" \="" if="" menu="" selection="" and="" start="" is="" to="" 02h="" byte="" end="" row="" right="" or="" below="" end,="" select="" from="" kbd="" only="" 03h="" byte="" end="" column="" 04h="" byte="" field="" type="" (see="" #0334)="" 05h="" byte="" modifier="" if="" type="" is="" fill-in,="" then="" bit="" flags="" to="" determine="" behavior="" bit="" 7="" automatically="" enter="" cr="" when="" field="" full="" bit="" 6="" move="" to="" next="" field="" when="" current="" field="" is="" full="" bit="" 5="" enter="" text="" from="" right="" end="" (for="" numbers)="" bit="" 4="" force="" input="" to="" uppercase="" bit="" 3="" clear="" old="" contents="" on="" first="" keystroke="" bit="" 2="" input="" returned="" when="" cursor="" moves="" out="" of="" modified="" field="" ("validate",="" api="" level="" 2.02+)="" bit="" 1="" reserved="" bit="" 0="" reserved="" if="" select="" field,="" first="" key="" to="" press="" to="" activate="" 00h="" if="" have="" to="" point-&-click="" or="" is="" an="" extended-ascii="" keystroke="" (only="" if="" two-key="" menus="" enabled)="" 06h="" byte="" (select="" field="" only)="" normal="" color="" of="" field="" 07h="" byte="" second="" key="" for="" select="" field.="" this="" byte="" is="" present="" iff="" two-letter="" menu="" entries="" selected="" with="" opcode="" e5h,="" and="" in="" that="" case="" is="" present="" regardless="" of="" field="" type="" bitfields="" for="" topview="" field="" type:="" bit(s)="" description="" (table="" 0334)="" 7,6="" field="" class="" 00="" inactive="" (non-entry)="" field="" 01="" echos="" keystrokes="" input="" to="" make="" menu="" selection="" 10="" fill-in="" field="" 11="" select="" field="" 5="" field="" can="" be="" filled="" by="" broadcast="" write="" (f7h="" opcode)="" 4="" reserved="" 3="" reserved="" 2="" reserved="" 1="" set="" if="" field="" selected="" 0="" set="" if="" field="" modified="" (table="" 0335)="" values="" for="" mode="" 01h="" "query="" stream"="" opcodes:="" (valid="" only="" for="" those="" opcodes="" listed="" here)="" a0h="" return="" logical="" cursor="" row="" in="" next="" byte="" a1h="" return="" logical="" cursor="" column="" in="" next="" byte="" a2h="" return="" top="" row="" of="" scrolling="" region="" in="" next="" byte="" a3h="" return="" left="" column="" of="" scrolling="" region="" in="" next="" byte="" a4h="" return="" row="" of="" physical="" window="" origin="" in="" next="" byte="" a5h="" return="" column="" of="" physical="" window="" origin="" in="" next="" byte="" a6h="" return="" height="" of="" physcial="" window="" in="" next="" byte="" a7h="" return="" width="" of="" physical="" window="" in="" next="" byte="" a8h="" return="" row="" of="" viewport="" origin="" in="" next="" byte="" a9h="" return="" column="" of="" viewport="" origin="" in="" next="" byte="" aah="" return="" height="" of="" virtual="" screen="" in="" next="" byte="" abh="" return="" width="" of="" virtual="" screen="" in="" next="" byte="" afh="" return="" current="" video="" mode="" in="" next="" byte="" c0h="" return="" current="" logical="" cursor="" position="" in="" next="" two="" bytes="" c1h="" return="" top="" left="" corner="" of="" scrolling="" region="" in="" next="" two="" bytes="" c2h="" return="" current="" window="" position="" in="" next="" two="" bytes="" c3h="" return="" current="" window="" size="" in="" next="" two="" bytes="" c4h="" return="" current="" viewport="" origin="" in="" next="" two="" bytes="" c5h="" return="" current="" virtual="" screen="" size="" in="" next="" two="" bytes="" d0h="" \="" overwritten="" with="" d0h="" if="" frames="" may="" fall="" off="" screen="" edge="" d1h="" d1h="" if="" frames="" always="" displayed="" entirely="" d2h="" \="" overwritten="" with="" d2h="" if="" desqview="" controls="" color="" palette="" d3h="" d3h="" if="" application="" changes="" color="" palette="" d4h="" \="" overwritten="" with="" d4h="" if="" window="" visible="" d5h="" d5h="" if="" window="" hidden="" d6h="" \="" overwritten="" with="" d6h="" if="" window="" has="" frame="" d7h="" d7h="" if="" window="" unframed="" d8h="" \="" overwritten="" with="" d8h="" if="" reading="" characters="" from="" window="" d9h="" d9h="" if="" reading="" attributes="" from="" window="" dah="" \="" overwritten="" with="" dah="" if="" using="" logical="" attributes="" dbh="" dbh="" if="" using="" physical="" attributes="" dch="" \="" overwritten="" with="" dch="" if="" tty="" control="" char="" interpretation="" on="" ddh="" ddh="" if="" tty="" control="" char="" interpretation="" off="" deh="" \="" overwritten="" with="" deh="" if="" writing="" both="" characters="" and="" attributes="" dfh="" dfh="" if="" leaving="" attributes="" untouched="" e2h="" return="" current="" color="" in="" next="" byte="" ech="" get="" logical="" attributes="" for="" window="" contents="" byte="" execute="" call="" if="" currently="" in="" specified="" video="" mode="" bit="" 7="" monochrome="" bit="" 6="" color="" text,="" ega/vga="" graphics="" bit="" 5="" medium-resolution="" cga="" graphics="" bit="" 4="" high-resolution="" cga="" graphics="" byte="" which="" attributes="" to="" get="" bit="" 7="" unused???="" bits="" 4-6="" first="" attribute="" to="" get="" -="" 1="" bits="" 0-3="" number="" of="" consecutive="" attributes="" n="" bytes="" buffer="" to="" hold="" attributes="" edh="" get="" logical="" attributes="" for="" window="" frame="" byte="" execute="" call="" if="" currently="" in="" video="" mode="" (see="" opcode="" ech)="" byte="" which="" attributes="" to="" get="" bit="" 7="" unused???="" bits="" 4-6="" first="" attribute="" to="" get="" -="" 1="" bits="" 0-3="" number="" of="" consecutive="" attributes="" n="" bytes="" buffer="" to="" hold="" attributes="" eeh="" get="" characters="" for="" window="" frame="" byte="" execute="" call="" if="" currently="" in="" video="" mode="" (see="" opcode="" ech)="" byte="" which="" attributes="" to="" get="" bit="" 7="" unused???="" bits="" 4-6="" first="" char="" to="" get="" -="" 1="" bits="" 0-3="" number="" of="" consecutive="" chars="" n="" bytes="" buffer="" to="" hold="" chars="" efh="" return="" first="" n="" characters="" of="" current="" window="" name="" byte="" max="" length="" of="" returned="" name="" n="" bytes="" buffer="" to="" hold="" window="" name="" f3h="" return="" contents="" of="" specified="" field="" byte="" field="" number="" n="" bytes="" buffer="" to="" hold="" field="" contents="" (size="" equal="" to="" field="" size)="" f5h="" get="" field="" table="" entry="" byte="" field="" number="" 7-8="" bytes="" buffer="" to="" hold="" field="" table="" entry="" (see="" #0333)="" notes:="" dv="">=>< 2.26="" always="" returns="" 7="" bytes="" dv="" 2.26+="" w/="" apilevel="">< 2.26="" returns="" 8="" bytes="" iff="" field="" table="" is="" using="" 8-byte="" entries="" and="" eighth="" byte="" after="" f5h="" is="" e7h="" (nop);="" otherwise,="" 7="" bytes="" are="" returned="" dv="" 2.26+="" w/="" apilevel=""> 2.26 returns 7 or 8 bytes depending
on the field table entry size
F6h get type of a field
BYTE field number
BYTE type
FCh get field table header
6 BYTEs buffer to store field table header (see #0331)
(Table 0336)
Values for MODE 10h "MANAGER STREAM" opcodes (valid only for those listed):
00h allow window to be moved horizontally
01h allow window to be moved vertically
02h allow window to change width
03h allow window to change height
04h allow window to be scrolled horizontally
05h allow window to be scrolled vertically
06h allow "Close Window" menu selection for application
07h allow "Hide Window" menu selection for application
08h allow application to be suspended ("Rearrange/Freeze")
0Eh allow "Scissors" menu
10h allow DESQview main menu to be popped up
11h allow "Switch Windows" menu
12h allow "Open Window" menu
13h allow "Quit" menu selection
20h-33h opposite of 00h-13h, disallow specified action
40h notify if horizontal position of window changes
41h notify if vertical position of window changes
42h notify if width of window changes
43h notify if height of window changes
44h notify if window scrolled horizontally
45h notify if window scrolled vertically
46h notify if window is closed--program has to clean up and exit itself
47h notify if window is hidden
48h notify if "?" on main menu selected
49h notify if pointer message sent to window
4Ah notify if window is placed in foreground
4Bh notify if window is placed in background
4Ch notify if video mode changes
4Dh notify if "Scissors" menu "Cut" option selected
4Eh notify if "Scissors" menu "Copy" option selected
4Fh notify if "Scissors" menu "Paste" option selected
50h notify if DESQview main menu about to pop up
51h notify if DESQview main menu popped down
60h-71h opposite of 40h-51h: don't notify on specified event
84h attach window to parent task's window (both move together)
85h detach window from parent task's window (may move independently)
86h disable background operation for application
87h enable running in background
88h set minimum size of physical window
BYTE rows
BYTE columns
89h set maximum size of physical window
BYTE rows
BYTE cols
8Ah set primary asynchronous notification routine (see #0338)
DWORD address of routine, 0000h:0000h means none (see also below)
8Bh set async notification parameter
DWORD 32-bit value passed to 8Ah async routine in DS:SI
ACh (DV2.2+) perform regular select field attribute processing
ADh (DV2.2+) protect attributes in selected field from being lost
AEh make window default notify window for owning app (API level 2.00+)
AFh set selected field marker character
BYTE character to display at left edge of selected fields
BCh set standard field processing mode
BDh set alternate field processing mode (enables cursor pad for menus)
BEh disables changing reverse logical attributes with ECh opcode
BFh enables changing reverse logical attributes with ECh opcode
C0h make current window topmost in system
C1h force current process into foreground
C2h make current window topmost in process
C3h position mouse pointer relative to origin of current field
BYTE rows below upper left corner of field
BYTE columns to right of upper left corner of field
C4h position mouse pointer relative to origin of given field
BYTE field number
BYTE rows below upper left corner of field
BYTE columns to right of upper left corner of field
C5h orphan current window (also hides it)
Note: must be last in stream; all subsequent commands ignored
C6h show all windows for this process
C7h hide all windows for this process
C8h suspend process and hide all its windows
C9h force current process into background
CAh make current window bottom-most in process
CBh cancel current window manager operation, remove DV menu, give control
to topmost application
CCh orphan window and give it to the system for use as paste data
CEh reorder windows
DWORD pointer to null-terminated list of words; each word is segment
of object handle for a window
FFh no operation
(Table 0337)
Values for MODES 14h to 1Fh "USER STREAMS":
normally NOPs, but may be defined by SETESC message to invoke FAR
routines, one for each mode number
on entry to handler,
DS:SI -> first byte of actual stream (not header)
CX = number of bytes in stream
ES:DI = window's handle
(Table 0338)
Values asynchronous notification routine defined by man.stream 8Ah called with:
ES:DI = handle of window
DS:SI is 32-bit value set by 8Bh manager stream opcode
mailbox contains message indicating event
Opcode
40h horizontal movement
DWORD object handle of window
BYTE new row
BYTE new col
41h vertical movement
DWORD object handle of window
BYTE new row
BYTE new col
42h horizontal size change
DWORD object handle of window
BYTE new rows
BYTE new cols
43h vertical size change
DWORD object handle of window
BYTE new rows
BYTE new cols
44h scrolled horizontally
DWORD object handle of window
BYTE mouse row within window
BYTE mouse column within window
BYTE field mouse is on, 0 if none
BYTE amount moved: >0 right, <0 left,="" 0="" done="" 45h="" scrolled="" vertically="" dword="" object="" hande="" of="" window="" byte="" mouse="" row="" within="" window="" byte="" mouse="" column="" within="" window="" byte="" field="" mouse="" is="" on,="" 0="" if="" none="" byte="" amount="" moved:="">0 down, <0 up,="" 0="" done="" 46h="" window="" close="" request="" dword="" object="" handle="" of="" window="" byte="" mouse="" pointer="" row="" byte="" mouse="" pointer="" column="" byte="" field="" mouse="" is="" on,="" 0="" if="" none="" 47h="" application's="" windows="" hidden="" 48h="" help="" for="" program="" selected="" dword="" object="" handle="" of="" window="" byte="" mouse="" pointer="" row="" byte="" mouse="" pointer="" column="" byte="" field="" mouse="" is="" on,="" 0="" if="" none="" 49h="" pointer="" message="" sent="" to="" window="" dword="" pointer="" handle="" which="" received="" message="" 4ah="" switched="" to="" window="" from="" another="" ("raise")="" 4bh="" switched="" away="" from="" the="" window="" ("lower")="" 4ch="" video="" mode="" changed="" byte="" new="" bios="" video="" mode="" 4dh="" scissors/cut="" selected="" dword="" object="" handle="" of="" window="" byte="" row="" of="" upper="" left="" corner="" byte="" column="" of="" upper="" left="" corner="" byte="" field="" number="" ul="" corner="" is="" in,="" 0="none" dword="" handle="" of="" orphaned="" window="" created="" with="" copy="" of="" data="" from="" specified="" region="" byte="" height="" of="" region="" byte="" width="" of="" region="" 4eh="" scissors/copy="" selected="" dword="" object="" handle="" of="" window="" byte="" row="" of="" upper="" left="" corner="" byte="" column="" of="" upper="" left="" corner="" byte="" field="" number="" ul="" corner="" is="" in,="" 0="none" dword="" handle="" of="" orphaned="" window="" created="" with="" copy="" of="" data="" from="" specified="" region="" byte="" height="" of="" region="" byte="" width="" of="" region="" 4fh="" scissors/paste="" selected="" dword="" object="" handle="" of="" window="" byte="" row="" of="" upper="" left="" corner="" byte="" column="" of="" upper="" left="" corner="" byte="" field="" number="" ul="" corner="" is="" in,="" 0="none" dword="" handle="" of="" orphaned="" window="" with="" data="" byte="" height="" of="" region="" byte="" width="" of="" region="" note:="" orphaned="" data="" window="" should="" be="" adopted="" or="" freed="" when="" done="" 50h="" main="" menu="" about="" to="" pop="" up="" 51h="" main="" menu="" popped="" down="" return:="" all="" registers="" unchanged="" --------q-1512--bh06-------------------------="" int="" 15="" -="" desqview="" 2.20+="" -="" send="" message="" -="" "setpri"="" -="" set="" priority="" within="" objectq="" ah="12h" bh="06h" bl="object" 00h="" object="" handle="" in="" dword="" on="" top="" of="" stack="" mailbox,="" keyboard,="" pointer,="" or="" timer="" (dv="" 2.50+)="" window="" 01h="" (dv="" 2.50+)="" current="" task's="" window="" 04h="" given="" task's="" keyboard="" (task's="" handle="" on="" top="" of="" stack)="" 05h="" current="" task's="" default="" keyboard="" stack:="" dword="" new="" priority="" of="" object="" in="" task's="" objectq="" (new="" priority="" of="" task="" if="" window="" handle)="" notes:="" initially="" all="" objects="" have="" the="" same="" default="" value.="" should="" only="" make="" relative="" adjustments="" to="" this="" default="" value.="" when="" changing="" priorities,="" all="" objects="" already="" on="" the="" objectq="" are="" reordered="" for="" window="" handles,="" only="" the="" non-blocked="" task(s)="" with="" the="" highest="" priority="" receive="" cpu="" time="" under="" desqview="" 2.50-2.52;="" the="" default="" priority="" is="" 0ah="" seealso:="" ah="12h/BH=07h,AH=12h/BH=87h" --------q-1512--bh07-------------------------="" int="" 15="" -="" desqview="" 2.20+="" -="" send="" message="" -="" "getpri"="" -="" get="" priority="" within="" objectq="" ah="12h" bh="07h" bl="object" 00h="" object="" handle="" in="" dword="" on="" top="" of="" stack="" mailbox,="" keyboard,="" pointer,="" or="" timer="" (dv="" 2.50+)="" window="" 01h="" (dv="" 2.50+)="" current="" task's="" window="" 04h="" given="" task's="" keyboard="" (task's="" handle="" on="" top="" of="" stack)="" 05h="" current="" task's="" default="" keyboard="" return:="" stack:="" dword="" object="" priority="" note:="" initially="" all="" objects="" have="" the="" same="" default="" value.="" should="" only="" make="" relative="" adjustments="" to="" this="" default="" value.="" seealso:="" ah="12h/BH=06h" --------q-1512--bh08-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "sizeof"="" -="" get="" object="" size="" ah="12h" bh="08h" bl="object" 00h="" handle="" in="" dword="" on="" top="" of="" stack="" window:="" total="" character="" positions="" in="" window="" timer:="" elapsed="" time="" since="" timer="" started="" pointer:="" number="" of="" messages="" queued="" to="" pointer="" object="" panel:="" number="" of="" panels="" in="" panel="" file="" keyboard:="" number="" of="" input="" buffers="" queued="" 01h="" total="" chars="" in="" current="" task's="" default="" window="" 02h="" number="" of="" messages="" in="" task's="" mailbox="" (task's="" handle="" on="" stack)="" 03h="" number="" of="" messages="" in="" current="" task's="" mailbox="" 04h="" number="" of="" input="" buffers="" queued="" in="" task's="" kbd="" (handle="" on="" stack)="" 05h="" number="" of="" input="" buffers="" queued="" for="" current="" task's="" default="" kbd="" 06h="" number="" of="" objects="" queued="" in="" objectq="" (task's="" handle="" on="" stack)="" 07h="" number="" of="" objects="" queued="" in="" current="" task's="" objectq="" 0ch="" (dv="" 2.26+)="" total="" chars="" in="" window="" owning="" handle="" on="" top="" of="" stack="" 0dh="" (dv="" 2.26+)="" total="" chars="" in="" parent="" task's="" window="" return:="" dword="" on="" top="" of="" stack="" is="" result="" note:="" for="" panel="" objects,="" a="" count="" of="" zero="" is="" returned="" if="" no="" panel="" file="" is="" open="" for="" the="" object="" seealso:="" ah="12h/BH=04h,AH=12h/BH=09h" --------q-1512--bh09-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "len"="" -="" get="" object="" length="" ah="12h" bh="09h" bl="object" 00h="" handle="" in="" dword="" on="" top="" of="" stack="" window:="" get="" chars/line="" timer:="" get="" 1/100="" seconds="" remaining="" before="" timer="" expires="" mailbox:="" (dv/x)="" get="" number="" of="" bytes="" queued="" to="" mailbox="" 01h="" get="" number="" of="" chars/line="" in="" current="" task's="" default="" window="" 0ch="" (dv="" 2.26+)="" get="" chars/line="" in="" window="" owning="" handle="" on="" top="" of="" stk="" 0dh="" (dv="" 2.26+)="" get="" chars/line="" in="" parent="" task's="" window="" return:="" dword="" on="" top="" of="" stack="" is="" length="" seealso:="" ah="12h/BH=08h" --------q-1512--bh0a-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "addto"="" -="" write="" chars="" and="" attribs="" to="" window="" ah="12h" bh="0Ah" bl="window" to="" write="" to="" 00h="" window="" handle="" is="" dword="" on="" top="" of="" stack="" 01h="" current="" task's="" default="" window="" 0ch="" (dv="" 2.26+)="" default="" window="" of="" task="" owning="" handle="" on="" top="" of="" stack="" 0dh="" (dv="" 2.26+)="" default="" window="" of="" parent="" of="" current="" task="" stack:="" dword="" count="" of="" attributes="" dword="" address="" of="" attribute="" string="" dword="" count="" of="" characters="" dword="" address="" of="" character="" string="" notes:="" if="" one="" string="" is="" longer="" than="" the="" other,="" the="" shorter="" one="" will="" be="" reused="" until="" the="" longer="" one="" is="" exhausted="" the="" cursor="" is="" left="" just="" after="" the="" last="" character="" written="" seealso:="" ah="12h/BH=0Bh" window""="" --------q-1512--bh0a-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "addto"="" -="" send="" mailbox="" message/stat="" by="" value="" ah="12h" bh="0Ah" bl="mailbox" to="" write="" to="" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" 02h="" default="" mailbox="" of="" task="" whose="" handle="" is="" on="" top="" of="" stack="" 03h="" current="" task's="" default="" mailbox="" stack:="" dword="" status="" (low="" byte)="" dword="" length="" of="" message="" dword="" address="" of="" message="" notes:="" the="" message="" is="" copied="" into="" either="" system="" or="" common="" memory="" insufficient="" memory="" normally="" causes="" the="" process="" to="" be="" aborted;="" under="" desqview="" 2.2+,="" failed="" writes="" may="" return="" cf="" set="" instead="" (see="" ax="DE15h)" seealso:="" ah="12h/BH=0Bh" mailbox""="" --------q-1512--bh0a-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "addto"="" -="" set="" object="" bits="" ah="12h" bh="0Ah" bl="object" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" timer:="" start="" timer="" for="" specified="" interval="" pointer:="" set="" control="" flags="" (see="" #0340)="" keyboard:="" set="" control="" flags="" (see="" #0339)="" 04h="" set="" control="" flags="" on="" keyboard="" object="" (handle="" on="" top="" of="" stack)="" 05h="" set="" control="" flags="" on="" task's="" default="" keyboard="" object="" stack:="" (if="" timer)="" dword="" duration="" in="" 1/100="" seconds="" (otherwise)="" dword="" bits="" to="" set="" seealso:="" ah="12h/BH=0Bh" object""="" bitfields="" for="" desqview="" keyboard="" object="" bits:="" bit(s)="" description="" (table="" 0339)="" 15="" reserved,="" can't="" be="" set="" 14="" unused="" 13="" reserved,="" can't="" be="" set="" 12-6="" unused="" 5="" (dv="" 2.2+)="" exclusive="" input="" 4="" filter="" all="" keys="" (used="" with="" handler="" established="" by="" setesc)="" if="" 0,="" only="" keys="" that="" would="" normally="" be="" displayed="" are="" filtered="" 3="" program="" continues="" executing="" while="" input="" in="" progress="" 2="" insert="" mode="" active="" for="" field="" mode="" 1="" hardware="" cursor="" displayed="" when="" task="" is="" hardware="" cursor="" owner="" must="" be="" set="" if="" keyboard="" in="" field="" mode="" and="" field="" table="" includes="" input="" fields="" 0="" keyboard="" is="" in="" field="" mode="" rather="" than="" keystroke="" mode="" bitfields="" for="" desqview="" pointer="" object="" bits:="" bit(s)="" description="" (table="" 0340)="" 15="" reserved,="" can't="" be="" set="" 14-8="" unused="" 7="" mouse="" pointer="" is="" hidden="" while="" in="" window="" 6="" get="" messages="" even="" if="" window="" not="" topmost="" 5="" get="" messages="" even="" if="" window="" not="" foreground="" 4="" multiple="" clicks="" separated="" by="" less="" than="" 1/3="" second="" are="" counted="" and="" returned="" in="" a="" single="" message="" 3="" pointer="" position="" is="" relative="" to="" screen="" origin,="" not="" window="" origin="" 2="" send="" message="" on="" button="" release="" as="" well="" as="" button="" press="" 1="" (dv="" 2.23+)="" send="" message="" with="" row="FFFFh" and="" col="FFFFh" whenever="" the="" pointer="" leaves="" the="" window="" 0="" send="" message="" only="" on="" button="" activity,="" not="" movement="" dv-specific,="" and="" int="" 15/ax="DE0Fh" must="" have="" been="" called="" first="" --------q-1512--bh0b-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "subfrom"="" -="" write="" attributes="" to="" window="" ah="12h" bh="0Bh" bl="window" to="" write="" attributes="" to="" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" 01h="" current="" task's="" default="" window="" 0ch="" (dv="" 2.26+)="" default="" window="" of="" task="" owning="" handle="" on="" top="" of="" stack="" 0dh="" (dv="" 2.26+)="" default="" window="" of="" parent="" of="" current="" task="" stack:="" dword="" number="" of="" attributes="" to="" write="" dword="" address="" of="" attributes="" note:="" the="" attributes="" are="" written="" starting="" at="" the="" current="" cursor="" position;="" the="" cursor="" is="" left="" just="" after="" the="" last="" position="" written="" seealso:="" ah="12h/BH=0Ah" window""="" --------q-1512--bh0b-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "subfrom"="" -="" send="" mailbox="" message/stat="" by="" ref="" ah="12h" bh="0Bh" bl="mailbox" to="" write="" to="" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" 02h="" default="" mailbox="" of="" task="" whose="" handle="" is="" on="" top="" of="" stack="" 03h="" current="" task's="" default="" mailbox="" stack:="" dword="" status="" (low="" byte)="" dword="" length="" of="" message="" dword="" address="" of="" message="" notes:="" only="" a="" pointer="" to="" the="" message="" is="" stored,="" but="" the="" write="" may="" still="" fail="" due="" to="" insufficient="" memory="" under="" dv="" 2.2+,="" failed="" mailbox="" writes="" may="" return="" cf="" set="" (see="" ax="DE15h)" seealso:="" ah="12h/BH=0Ah" mailbox""="" --------q-1512--bh0b-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "subfrom"="" -="" remove="" object="" from="" objectq="" ah="12h" bh="0Bh" bl="OBJECTQ" from="" which="" to="" remove="" all="" copies="" of="" a="" particular="" object="" 06h="" objectq="" of="" task="" whose="" handle="" is="" on="" top="" of="" stack="" 07h="" task's="" default="" objectq="" stack:="" dword="" handle="" of="" object="" to="" remove="" note:="" should="" be="" sent="" whenever="" an="" object="" is="" erased="" or="" closed="" --------q-1512--bh0b-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "subfrom"="" -="" reset="" object="" bits="" ah="12h" bh="0Bh" bl="object" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" pointer:="" reset="" control="" flags="" keyboard:="" reset="" control="" flags="" 04h="" clear="" control="" flags="" on="" keyboard="" object="" (handle="" on="" top="" of="" stack)="" 05h="" clear="" control="" flags="" on="" task's="" default="" keyboard="" object="" stack:="" dword="" which="" bits="" to="" clear="" (see="" #0339,#0340)="" seealso:="" ah="12h/BH=0Ah" object""="" --------q-1512--bh0c-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "open"="" -="" open="" object="" ah="12h" bh="0Ch" bl="object" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" window:="" fill="" with="" given="" character="" from="" scroll="" origin="" to="" end="" keyboard:="" attach="" to="" a="" window="" timer:="" open="" pointer:="" start="" taking="" input="" for="" window="" panel:="" associate="" with="" a="" panel="" file="" 01h="" fill="" task's="" default="" window="" with="" given="" char="" from="" scrl="" org="" to="" end="" 02h="" open="" given="" task's="" mailbox="" for="" input="" (task's="" handle="" on="" stack)="" 03h="" open="" current="" task's="" mailbox="" 04h="" attach="" a="" keyboard="" to="" a="" window="" (handle="" on="" top="" of="" stack)="" 05h="" attach="" task's="" default="" keyboard="" to="" a="" window="" 06h="" open="" a="" task's="" objectq="" (task's="" handle="" on="" top="" of="" stack)="" 07h="" open="" current="" task's="" objectq="" 0ch="" (dv="" 2.26+)="" fill="" def="" window="" of="" task="" owning="" handle="" on="" top="" of="" stck="" 0dh="" (dv="" 2.26+)="" fill="" default="" window="" of="" parent="" of="" current="" task="" stack:="" (if="" window)="" dword="" character="" to="" fill="" with="" (if="" keyboard)="" dword="" handle="" of="" window="" to="" attach="" to="" (if="" pointer)="" dword="" handle="" of="" window="" to="" attach="" to="" (if="" panel)="" dword="" length="" of="" filename="" or="" resident="" panel="" dword="" address="" of="" filename="" or="" resident="" panel="" (otherwise)="" nothing="" notes:="" if="" first="" byte="" of="" panel="" file="" name="" is="" 1bh,="" then="" the="" "name"="" is="" a="" panel="" if="" first="" two="" bytes="" of="" panel="" file="" "name"="" are="" c0hc3h,="" then="" the="" "name"="" is="" the="" panel="" file="" result="" code="" of="" open="" may="" be="" retrieved="" with="" status="" message="" logical="" cursor="" is="" left="" at="" scroll="" origin="" after="" filling="" window="" the="" task="" opening="" a="" mailbox="" becomes="" its="" owner,="" and="" the="" only="" task="" allowed="" to="" read="" the="" mailbox="" messages="" are="" only="" sent="" to="" a="" pointer="" object="" when="" the="" mouse="" is="" positioned="" in="" the="" window="" to="" which="" the="" pointer="" has="" been="" attached="" there="" is="" no="" need="" to="" explicitly="" open="" a="" timer="" object,="" as="" addto="" and="" write="" messages="" automatically="" open="" the="" timer="" seealso:="" ah="12h/BH=0Dh,AH=12h/BH=14h" lock""="" --------q-1512--bh0d-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "close"="" -="" close="" object="" ah="12h" bh="0Dh" bl="object" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" timer:="" close="" keyboard:="" detach="" from="" window="" and="" discard="" queued="" input="" pointer:="" stop="" taking="" input="" panel:="" close="" mailbox:="" close,="" unlock,="" and="" discard="" any="" pending="" messages="" 02h="" close="" given="" task's="" mailbox="" (task's="" handle="" on="" top="" of="" stack)="" 03h="" close="" task's="" default="" mailbox="" 04h="" close="" keyboard="" object="" (handle="" on="" top="" of="" stack)="" 05h="" close="" task's="" default="" keyboard="" 06h="" close="" given="" task's="" objectq="" (task's="" handle="" on="" top="" of="" stack)="" 07h="" close="" current="" task's="" objectq="" notes:="" when="" an="" objectq="" is="" closed,="" each="" object="" in="" the="" objectq="" is="" sent="" an="" erase="" message="" (ah="12h/BH=0Eh)" when="" a="" panel="" object="" is="" closed,="" the="" panel="" file="" and="" any="" panels="" currently="" in="" use="" are="" freed;="" window="" and="" keyboard="" objects="" created="" by="" apply="" are="" not="" affected,="" but="" field="" mode="" input="" ceases="" open="" but="" idle="" timer="" objects="" consume="" a="" small="" amount="" of="" cpu="" time="" seealso:="" ah="12h/BH=0Ch,AH=12h/BH=0Eh,AH=12h/BH=14h" lock""="" --------q-1512--bh0e-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "erase"="" -="" erase="" object="" ah="12h" bh="0Eh" bl="object" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" window:="" clear="" from="" scroll="" origin="" to="" end="" of="" window="" keyboard:="" discard="" input="" timer:="" cancel="" current="" interval="" pointer:="" discard="" all="" pending="" messages="" mailbox:="" discard="" all="" pending="" messages="" 01h="" clear="" task's="" default="" window="" from="" scroll="" origin="" to="" end="" 02h="" discard="" all="" queued="" messages="" in="" mailbox="" (handle="" on="" top="" of="" stack)="" 03h="" discard="" all="" queued="" messages="" in="" current="" task's="" default="" mailbox="" 04h="" discard="" all="" input="" queued="" to="" keyboard="" (handle="" on="" top="" of="" stack)="" 05h="" discard="" all="" input="" queued="" to="" task's="" default="" keyboard="" 06h="" remove="" all="" objects="" from="" objectq="" (task's="" handle="" on="" top="" of="" stack)="" 07h="" remove="" all="" objects="" from="" current="" task's="" objectq="" 0ch="" (dv="" 2.26+)="" clear="" window="" of="" task="" owning="" handle="" on="" top="" of="" stack="" 0dh="" (dv="" 2.26+)="" clear="" default="" window="" of="" parent="" of="" current="" task="" note:="" when="" an="" objectq="" is="" erased,="" each="" object="" in="" the="" objectq="" is="" also="" erased="" seealso:="" ah="12h/BH=02h" --------q-1512--bh0f-------------------------="" int="" 15="" -="" topview="" -="" send="" message="" -="" "status"="" -="" get="" object="" status="" ah="12h" bh="0Fh" bl="object" 00h="" handle="" is="" dword="" on="" top="" of="" stack="" timer:="" is="" it="" running?="" pointer:="" return="" status="" of="" last="" message="" panel:="" verify="" success="" of="" last="" open="" or="" apply="" 02h="" return="" status="" of="" last="" msg="" read="" from="" mailbox="" (handle="" on="" stack)="" 03h="" return="" status="" of="" last="" msg="" read="" from="" task's="" default="" mailbox="" 04h="" get="" stat="" of="" last="" msg="" from="" task's="" keyboard="" (task="" handle="" on="" stk)="" 05h="" get="" status="" of="" last="" msg="" from="" task's="" default="" keyboard="" 06h="" return="" whether="" objectq="" is="" open="" or="" not="" (handle="" on="" top="" of="" stack)="" 07h="" return="" whether="" task's="" default="" objectq="" is="" open="" or="" not="" return:="" dword="" on="" top="" of="" stack="" is="" status="" notes:="" if="" object="" is="" a="" panel="" object,="" the="" status="" indicates="" the="" error="" code:="" 00h="" successful="" 14h="" panel="" name="" not="" in="" panel="" directory="" 15h="" not="" enough="" memory="" to="" apply="" panel="" 16h="" invalid="" panel="" format="" 17h="" panel="" file="" already="" open="" 81h-92h="" dos="" error="" codes+80h="" \="" codes=""> 80h indicate
95h not enough memory to open panel file > that the panel was
98h null panel file name / not opened
if object is a timer, the status is:
00000000h open but not running
40000000h open and running
80000000h closed
if object is an OBJECTQ, the status is:
00000000h open
80000000h closed
if object is a keyboard in keystroke mode, the status is the extended
character code (scan code) of the last keystroke
if object is a keyboard in field mode, the status indicates the reason
for the last return from the field manager
00h Enter key pressed
01h Button 1 or keystroke selection
02h Button 2
03h validation
04h auto Enter on field
1Bh Escape pressed
46h ^Break pressed
other: extended code for key terminating input
the status of mailbox messages sent by the window manager is always 80h
the status of a pointer message is the same as the status field in the
message
SeeAlso: AH=12h/BH=04h"READ"
--------Q-1512--BH10-------------------------
INT 15 - TopView - SEND MESSAGE - "EOF" - GET OBJECT EOF STATUS
AH = 12h
BH = 10h
BL = object
00h handle is DWORD on top of stack
window: return TRUE if logical cursor past end of window
mailbox: ???
01h returns TRUE if logical cursor past end of task's def window
02h return ??? for task's mailbox (task's handle on top of stack)
03h return ??? for current task's mailbox
0Ch (DV 2.26+) check log crsr of window owning handle on top of stk
0Dh (DV 2.26+) check log cursor of window of parent task
Return: DWORD on top of stack is status
--------Q-1512--BH11-------------------------
INT 15 - TopView - SEND MESSAGE - "AT" - POSITION OBJECT CURSOR
AH = 12h
BH = 11h
BL = window for which to move cursor
00h window's handle is DWORD on top of stack
01h task's default window
0Ch (DV 2.26+) default window of task owning handle on top of stack
0Dh (DV 2.26+) default window of parent of current task
STACK: DWORD column
DWORD row
--------Q-1512--BH11-------------------------
INT 15 - TopView - SEND MESSAGE - "SETNAME" - ASSIGN NAME TO MAILBOX
AH = 12h
BH = 11h
BL = mailbox to name
00h DWORD on top of stack is mailbox handle
02h use given task's mailbox (task's handle on top of stack)
03h use current task's default mailbox
STACK: DWORD length of name
DWORD address of name
SeeAlso: AH=12h/BH=12h"GETNAME",AX=DE0Eh
--------Q-1512--BX1100-----------------------
INT 15 - TopView - SEND MESSAGE - "SETSCALE" - SET POINTER SCALE FACTOR
AH = 12h
BX = 1100h
STACK: DWORD object handle for pointer object
DWORD number of colums to scale pointer position to
DWORD number of rows to scale pointer position to
SeeAlso: AH=12h/BX=1200h
--------Q-1512--BH12-------------------------
INT 15 - TopView - SEND MESSAGE - "READN" - GET NEXT N OBJECT BYTES
AH = 12h
BH = 12h
BL = window to read from
00h handle is DWORD on top of stack
01h read next N chars or attributes on task's default window
0Ch (DV 2.26+) read window of task owning handle on top of stack
0Dh (DV 2.26+) read default window of parent of current task
STACK: DWORD count
Return: STACK: DWORD number of bytes actually read
DWORD address of buffer containing data
Notes: reading starts at the current logical cursor position; the cursor is
updated to point at the character following the last one read
any translucent blanks (FFh) which are visible on screen are changed
to the character which is seen through them
the string produced by the read is placed in an input buffer which may
be reused by the next READ or READN of a window
window stream opcodes D8h and D9h determine whether the read returns
characters or attributes
SeeAlso: AH=12h/BH=04h"WINDOW",AH=12h/BH=05h"WINDOW"
--------Q-1512--BH12-------------------------
INT 15 - DESQview 2.50+ - SEND MESSAGE - "GETNAME" - GET NAME OF MAILBOX
AH = 12h
BH = 12h
BL = mailbox for which to retrieve name
00h DWORD on top of stack is mailbox handle
02h use given task's mailbox (task's handle on top of stack)
03h use current task's default mailbox
STACK: DWORD length of buffer for name
DWORD pointer to buffer
Return: STACK: DWORD length of returned name (or size of buffer, if less)
Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x
Note: the returned name is not NUL-terminated
SeeAlso: AH=12h/BH=11h"SETNAME",AX=DE0Eh
--------Q-1512--BX1200-----------------------
INT 15 - TopView - SEND MESSAGE - "GETSCALE" - GET POINTER SCALE FACTOR
AH = 12h
BX = 1200h
STACK: DWORD object handle for pointer
Return: STACK: DWORD pointer pos scaled as if window were this many colums wide
DWORD pointer pos scaled as if window were this many rows high
SeeAlso: AH=12h/BX=1100h
--------Q-1512--BH13-------------------------
INT 15 - TopView - SEND MESSAGE - "REDRAW" - REDRAW WINDOW
AH = 12h
BH = 13h
BL = window object
00h DWORD on top of stack is handle for window to redraw
01h redraw task's default window
0Ch (DV 2.26+) redraw window of task owning handle on top of stack
0Dh (DV 2.26+) redraw default window of parent of current task
SeeAlso: AH=12h/BH=05h"WINDOW",AH=12h/BH=0Eh
--------Q-1512--BH13-------------------------
INT 15 - DESQview 2.50+ - SEND MESSAGE - "READINTO" - GET NEXT MAIL MESSAGE
AH = 12h
BH = 13h
BL = mailbox from which to read
00h DWORD on top of stack is mailbox handle
02h use given task's mailbox (task's handle on top of stack)
03h use current task's default mailbox
STACK: DWORD size of buffer in bytes
DWORD pointer to buffer
Return: STACK: DWORD number of bytes read
Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x
Notes: this call blocks if no input is available, but will return less than
the requested number of bytes if some (but insufficient) data is
available
use this call instead of AH=12h/BH=04h if the mailbox has flag bits
4 or 5 set, as common memory may be exhausted by that call when
attempting to read the next message
SeeAlso: AH=12h/BH=04h"READ",AH=12h/BH=05h,AH=12h/BH=16h
--------Q-1512--BX1300-----------------------
INT 15 - TopView - SEND MESSAGE - "SETICON" - SPECIFY POINTER ICON
AH = 12h
BX = 1300h
STACK: DWORD object handle for pointer
DWORD character to use for pointer
Return: STACK popped
--------Q-1512--BH14-------------------------
INT 15 - TopView - SEND MESSAGE - "SETESC" - SET ESCAPE ROUTINE ADDRESS
AH = 12h
BH = 14h
BL = message modifier
00h handle is DWORD on top of stack
01h define user stream
04h intercept keystrokes from KEYBOARD to window (handle on stack)
05h intercept keystrokes from task's default KEYBOARD to a window
STACK: (if window) DWORD user stream number (14h-1Fh)
DWORD address of FAR user stream handler
(if keyboard) DWORD address of FAR filter function (see #0341)
Return: STACK popped
(Table 0341)
Values keyboard filter function is called with when keyboard is in field mode:
AL = character
AH = 00h or extended ASCII code if AL = 00h
BL = field number
CH = cursor column
CL = cursor row
DL = field type modifier (sixth item in field table entry)
DH = seventh item in field table entry
ES:SI = window's handle
DS:DI -> field table entry for field containing the cursor
Return: AH = action to take
00h use keystroke
01h ignore keystroke
FFh beep and ignore keystroke
Note: the filter function is not allowed to make INT 15, DOS, or BIOS calls
--------Q-1512--BH14-------------------------
INT 15 - TopView - SEND MESSAGE - "LOCK" - REQUEST EXCLUSIVE ACCESS TO RESOURCE
AH = 12h
BH = 14h
BL = object
00h mailbox handle is DWORD on top of stack
02h use given task's mailbox (task's handle on top of stack)
03h use current task's default mailbox
Return: STACK popped if BL=00h
Note: release exclusive access by sending CLOSE message to mailbox
access may be requested multiple times, and requires multiple CLOSEs
SeeAlso: AH=12h/BH=0Dh
--------Q-1512--BH15-------------------------
INT 15 - DESQview v2.20+ - SEND MESSAGE - "SETFLAGS" - SET OBJECT FLAGS
AH = 12h
BH = 15h
BL = object
00h DWORD on top of stack
mailbox, keyboard, or pointer only
02h mailbox for task whose handle is on top of stack
03h mailbox for current task
04h keyboard for task whose handle is on top of stack
05h keyboard for current task
STACK: DWORD flags (see #0342,#0343)
Return: STACK popped
Notes: only available if the API level has been set to at least 2.20
equivalent to performing SUBFROM and ADDTO calls on the object
if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
"READ" (see AH=12h/BX=1300h"READINTO") to retrieve messages
SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=16h
Bitfields for DESQview mailbox object flags:
Bit(s) Description (Table 0342)
0 all mail messages in common memory
1 allow write even if closed
2 don't erase messages when mailbox closed
4 (DV/X) append messages with like status and sender (stream-oriented
mail)
5 (DV/X) store mail in expanded memory (pool grows as needed)
6 (DV/X) make mailbox into non-owned mailbox
Bitfields for DESQview keyboard object flags:
Bit(s) Description (Table 0343)
5 exclusive input when keyboard in use for input
--------Q-1512--BH16-------------------------
INT 15 - DESQview v2.20+ - SEND MESSAGE - "GETFLAGS" - GET OBJECT FLAGS
AH = 12h
BH = 16h
BL = object
00h DWORD on top of stack
mailbox, keyboard, or pointer only
02h mailbox for task whose handle is on top of stack
03h mailbox for current task
04h keyboard for task whose handle is on top of stack
05h keyboard for current task
Return: STACK: DWORD current control flags (see #0342,#0343)
Notes: only available if the API level has been set to at least 2.20
if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
"READ" (see AH=12h/BH=13h"READINTO") to retrieve messages
SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=13h"READINTO",AH=12h/BH=15h
--------Q-1512--BH17-------------------------
INT 15 - DESQview v2.42-2.52 - BUG
AH = 12h
BH = 17h
BL = object
00h DWORD on top of stack
mailbox, keyboard, or pointer only
02h mailbox for task whose handle is on top of stack
03h mailbox for current task
04h keyboard for task whose handle is on top of stack
05h keyboard for current task
Notes: due to a fencepost error, message 17h is accepted for mailboxes,
keyboards, and pointers, but causes a random branch
DESQview v2.50-2.52 are distributed as part of DESQview/X v1.02
--------Q-1512--BH80-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 00h WITH ERROR RECOVERY
AH = 12h
BH = 80h
Note: this function is identical to AH=12h/BH=00h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=00h
(Table 0344)
Values for DESQview error code:
00h no error
01h invalid values
02h alias invalid
03h handle valid but wrong type
04h invalid handle
--------Q-1512--BH81-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 01h WITH ERROR RECOVERY
AH = 12h
BH = 81h
Note: this function is identical to AH=12h/BH=01h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=01h
--------Q-1512--BH82-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 02h WITH ERROR RECOVERY
AH = 12h
BH = 82h
Note: this function is identical to AH=12h/BH=02h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=02h
--------Q-1512--BH83-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 03h WITH ERROR RECOVERY
AH = 12h
BH = 83h
Note: this function is identical to AH=12h/BH=03h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=03h,AH=12h/BX=0300h
--------Q-1512--BH84-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 04h WITH ERROR RECOVERY
AH = 12h
BH = 84h
Note: this function is identical to AH=12h/BH=04h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=04h,AH=12h/BX=0400h
--------Q-1512--BH85-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 05h WITH ERROR RECOVERY
AH = 12h
BH = 85h
Note: this function is identical to AH=12h/BH=05h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=05h
--------Q-1512--BH86-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 06h WITH ERROR RECOVERY
AH = 12h
BH = 86h
Note: this function is identical to AH=12h/BH=06h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=06h
--------Q-1512--BH87-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 07h WITH ERROR RECOVERY
AH = 12h
BH = 87h
Note: this function is identical to AH=12h/BH=07h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=07h
--------Q-1512--BH88-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 08h WITH ERROR RECOVERY
AH = 12h
BH = 88h
Note: this function is identical to AH=12h/BH=08h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=08h
--------Q-1512--BH89-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 09h WITH ERROR RECOVERY
AH = 12h
BH = 89h
Note: this function is identical to AH=12h/BH=09h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=09h
--------Q-1512--BH8A-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ah WITH ERROR RECOVERY
AH = 12h
BH = 8Ah
Note: this function is identical to AH=12h/BH=0Ah, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=0Ah
--------Q-1512--BH8B-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Bh WITH ERROR RECOVERY
AH = 12h
BH = 8Bh
Note: this function is identical to AH=12h/BH=0Bh, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=0Bh
--------Q-1512--BH8C-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ch WITH ERROR RECOVERY
AH = 12h
BH = 8Ch
Note: this function is identical to AH=12h/BH=0Ch, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=0Ch
--------Q-1512--BH8D-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Dh WITH ERROR RECOVERY
AH = 12h
BH = 8Dh
Note: this function is identical to AH=12h/BH=0Dh, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=0Dh
--------Q-1512--BH8E-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Eh WITH ERROR RECOVERY
AH = 12h
BH = 8Eh
Note: this function is identical to AH=12h/BH=0Eh, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=0Eh
--------Q-1512--BH8F-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 0Fh WITH ERROR RECOVERY
AH = 12h
BH = 8Fh
Note: this function is identical to AH=12h/BH=0Fh, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=0Fh
--------Q-1512--BH90-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 10h WITH ERROR RECOVERY
AH = 12h
BH = 90h
Note: this function is identical to AH=12h/BH=10h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=10h
--------Q-1512--BH91-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 11h WITH ERROR RECOVERY
AH = 12h
BH = 91h
Note: this function is identical to AH=12h/BH=11h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=11h,AH=12h/BX=1100h
--------Q-1512--BH92-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 12h WITH ERROR RECOVERY
AH = 12h
BH = 92h
Note: this function is identical to AH=12h/BH=12h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=12h,AH=12h/BX=1200h
--------Q-1512--BH93-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 13h WITH ERROR RECOVERY
AH = 12h
BH = 93h
Note: this function is identical to AH=12h/BH=13h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=13h
--------Q-1512--BH94-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 14h WITH ERROR RECOVERY
AH = 12h
BH = 94h
Note: this function is identical to AH=12h/BH=14h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=14h
--------Q-1512--BH95-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 15h WITH ERROR RECOVERY
AH = 12h
BH = 95h
Note: this function is identical to AH=12h/BH=15h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=15h
--------Q-1512--BH96-------------------------
INT 15 - DESQview v2.50+ - SEND MESSAGE 16h WITH ERROR RECOVERY
AH = 12h
BH = 96h
Note: this function is identical to AH=12h/BH=16h, except that DESQview will
not pop up a "Programming Error" window, instead returning an error
code in AL (see #0344)
SeeAlso: AH=12h/BH=16h
--------T-1513-------------------------------
INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS
AH = 13h
STACK: WORD process ID
Return: AX = status (SYS_OK or SYS_ERROR)
SeeAlso: AH=12h"VMiX"
--------T-1513-------------------------------
INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK
AH = 13h
Return: BX:AX -> task control block (see #0345)
SeeAlso: AH=15h"MultiDOS"
Format of MultiDOS Plus v4.0 task control block:
Offset Size Description (Table 0345)
00h DWORD pointer to next TCB
04h 8 BYTEs ASCIZ task name
0Ch 2 BYTEs ???
0Eh WORD task PSP segment
10h WORD abort/suspend flags
12h WORD current screen segment (see AH=0Bh,AH=0Ch)
14h WORD priority level (0000h-FFFEh)
16h WORD time slice counter
18h 2 BYTEs ???
1Ah WORD suspend timer value
1Ch WORD stack segment
1Eh WORD stack pointer
20h WORD display type
22h WORD display memory
24h 2 BYTEs ???
26h WORD termination count
28h WORD equipment flag for BIO10 driver
2Ah BYTE background CRT mode
2Bh WORD screen width in columns
2Dh WORD screen size in bytes
2Fh WORD segment of physical screen memory
31h 16 BYTEs eight cursor positions
41h WORD current cursor shape
43h BYTE active display page
44h WORD CRT controller I/O port base
46h 2 BYTEs ???
48h WORD foreground task flag
4Ah 6 BYTEs ???
50h WORD saved video segment (see AH=0Bh,AH=0Ch)
52h DWORD old INT 22
56h DWORD old INT 23
5Ah DWORD old INT 24
5Eh WORD top of memory for task
60h 4 BYTEs ???
64h WORD DTA segment (see INT 21/AH=1Ah)
66h WORD DTA offset
68h 4 BYTEs ???
6Ch BYTE current ANSI.SYS attribute
6Dh BYTE current ANSI.SYS column
6Eh BYTE current ANSI.SYS row
6Fh BYTE current ANSI.SYS display state
70h BYTE maximum ANSI.SYS columns
71h BYTE current ANSI.SYS page
72h WORD saved ANSI.SYS cursor position
74h BYTE ANSI.SYS parameter buffer index
75h BYTE current ANSI.SYS screen mode
76h BYTE ANSI.SYS wrap flag
77h 6 BYTEs ANSI.SYS parameter buffer
7Dh BYTE ANSI.SYS keyboard DSR state
7Eh 7 BYTEs ANSI.SYS keyboard DSR buffer
85h 3 BYTEs ???
88h 16 BYTEs request header for DOS driver calls
98h 14 BYTEs ???
A6h WORD segment of EMS map if EMS task
A8h WORD flag: task makes EMS calls
AAh WORD EMS handle for task
ACh WORD keyboard shift state
AEh 12 BYTEs ???
BAh WORD TCB of parent if child task
BCh WORD termination code
BEh WORD COM port number
C0h 4 BYTEs ???
C4h WORD current IRQ number
C6h 2 BYTEs ???
C8h WORD miscellaneous flag word
CAh 2 BYTEs ???
CCh DWORD old INT 10
D0h WORD EMS alternate map set number
D2h 414 BYTEs DOS current disk and directory context (optional)
--------T-1514-------------------------------
INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW
AH = 14h
STACK: WORD top left corner of window (high byte = row, low = col)
WORD bottom right corner of window (high = row, low = col)
Return: AX = status (SYS_OK)
Note: clears window to color set with "sys_setcolors" (AH=18h)
SeeAlso: AH=15h"VMiX",AH=16h"VMiX",AH=18h"VMiX",AH=1Fh"VMiX"
--------T-1514-------------------------------
INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND
AH = 14h
Return: AX = current state
0000h MultiDOS Plus command prompt is background task
0001h command prompt is foreground task
SeeAlso: AH=0Bh"MultiDOS"
--------T-1515-------------------------------
INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE
AH = 15h
STACK: DWORD pointer to ASCIZ banner message for top of screen
Return: AX = status (SYS_OK)
SeeAlso: AH=14h"VMiX",AH=16h"VMiX"
--------T-1515-------------------------------
INT 15 - MultiDOS Plus - GET SYSTEM BLOCK
AH = 15h
Return: BX:AX -> system block (see #0346)
SeeAlso: AH=13h"MultiDOS"
Format of MultiDOS Plus 4.0 system block:
Offset Size Description (Table 0346)
00h WORD segment of system control block
02h WORD redirection flag set by /NOREDIRECT
04h WORD no-INT 10 flag set by /NO10
06h DWORD old INT 10
0Ah DWORD new INT 10
0Eh DWORD pointer to WORD with current TCB offset (see #0345)
12h DWORD pointer to WORD with idle task TCB offset
16h DWORD pointer to WORD with foreground TCB offset (see #0345)
1Ah DWORD pointer to WORD with MultiDOS TCB offset (see #0345)
1Eh WORD Task Control Block size
20h WORD number of TCBs
22h WORD flag: EMS present
24h WORD EMS page frame base segment
26h WORD 16K pages in EMS page frame
28h WORD base segment for conventional memory tasks
2Ah WORD conventional memory size in paragraphs
2Ch DWORD pointer to list of queue pointers
--------T-1516-------------------------------
INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR
AH = 16h
STACK: DWORD pointer to I/O Request Packet
WORD top left corner of window (high byte = row, low = col)
WORD bottom right corner of window (high = row, low = col)
Return: AX = status (SYS_OK or SYS_ERROR)
SeeAlso: AH=14h"VMiX",AH=17h"VMiX"
--------T-1516-------------------------------
INT 15 - MultiDOS Plus - INITIALIZATION
AH = 16h
Note: used internally during initialization; any other calls will cause
unpredictable results
--------T-1517-------------------------------
INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS
AH = 17h
Return: AH = foreground color
AL = background color
SeeAlso: AH=16h"VMiX",AH=18h"VMiX"
--------T-1517-------------------------------
INT 15 - MultiDOS Plus - MAP IRQ
AH = 17h
AL = IRQ to map (01h-0Fh)
BX = offset of task control block (see #0345) to associate with IRQ
Return: AX = status
0000h successful
other invalid IRQ
Note: the EMS map of the specified TCB is associated with the given interrupt
SeeAlso: AH=18h"MultiDOS",AH=19h"MultiDOS"
--------T-1518-------------------------------
INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS
AH = 18h
STACK: WORD new background/foreground colors
bits 3-0: foreground
bits 7-4: background
bits 15-8: unused
Return: AX = color
SeeAlso: AH=14h"VMiX",AH=17h"VMiX",AH=19h"VMiX"
--------T-1518-------------------------------
INT 15 - MultiDOS Plus - UNMAP IRQ
AH = 18h
AL = IRQ to unmap (01h-0Fh)
Return: AX = status
0000h successful
0001h invalid IRQ
Note: results are unpredictable if the IRQ has not been mapped
SeeAlso: AH=17h"MultiDOS",AH=19h"MultiDOS"
--------T-1519-------------------------------
INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS
AH = 19h
STACK: WORD new background/foreground colors
bits 3-0: foreground
bits 7-4: background
bits 15-8: unused
Return: AX = color
SeeAlso: AH=18h"VMiX"
--------T-1519-------------------------------
INT 15 - MultiDOS Plus - UNMAP ALL IRQs
AH = 19h
Return: AX destroyed
Note: for MultiDOS internal use only
SeeAlso: AH=17h"MultiDOS",AH=18h"MultiDOS"
--------T-151A-------------------------------
INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT
AH = 1Ah
STACK: WORD interrupt number
DWORD pointer to register structure
Return: AX = returned flags
--------T-151A-------------------------------
INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER
AH = 1Ah
DS:SI -> 8-byte name
Return: AL = status
00h successful
AH = semaphore number (20h-3Fh)
04h out of string space
Notes: all eight bytes of the name are significant
if the name does not already exist, it is added to the name table and
associated with a free semaphore number
names cannot be destroyed
SeeAlso: AH=1Bh"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"
--------T-151B-------------------------------
INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK
AH = 1Bh
STACK: DWORD source address
DWORD destination address
WORD number of words to move
Return: nothing
--------T-151B-------------------------------
INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME
AH = 1Bh
DS:SI -> 8-byte name
Return: AH = status
00h successful
02h invalid semaphore number
03h caller already owns semaphore
04h out of string space
Notes: (see AH=01h"MultiDOS")
equivalent to AH=1Ah followed by AH=01h
SeeAlso: AH=01h"MultiDOS",AH=1Ah"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"
--------T-151C-------------------------------
INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION
AH = 1Ch
STACK: WORD AND/OR pixel with background (00h = OR, 01h = AND)
DWORD pointer to object bitmap
WORD object width in pixels
WORD object height in pixels
Return: nothing
SeeAlso: AH=1Dh"VMiX"
--------T-151C-------------------------------
INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME
AH = 1Ch
DS:SI -> 8-byte name
Return: AH = status
00h successful
01h not semaphore owner
02h invalid semaphore number
04h out of string space
Notes: (see AH=02h"MultiDOS")
equivalent to AH=1Ah followed by AH=02h
SeeAlso: AH=02h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Dh"MultiDOS"
--------T-151D-------------------------------
INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT
AH = 1Dh
Return: AX = current font number (00h-03h)
SeeAlso: AH=1Ch"VMiX",AH=1Eh"VMiX"
--------T-151D-------------------------------
INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME
AH = 1Dh
DS:SI -> 8-byte name
Return: AH = status
00h semaphore not in use
01h semaphore owned by another task
02h invalid semaphore number
03h caller owns semaphore
04h out of string space
Notes: (see AH=10h"MultiDOS")
equivalent to AH=1Ah followed by AH=10h
SeeAlso: AH=10h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Ch"MultiDOS"
--------T-151E-------------------------------
INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT
AH = 1Eh
STACK: WORD new font number (00h-03h)
Return: AX = current font number (00h-03h)
SeeAlso: AH=1Dh"VMiX"
--------T-151E00-----------------------------
INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER
AX = 1E00h
DX = event/trigger number (00h-3Fh)
Return: AH = status
00h successful
SeeAlso: AX=1E01h,AX=1E02h
--------T-151E01-----------------------------
INT 15 - MultiDOS Plus - TRIGGER EVENT
AX = 1E01h
DX = event/trigger number (00h-3Fh)
Return: AH = status
00h successful
01h invalid event/trigger number
Notes: schedules any task waiting for event; if no task is waiting, the event
counter is incremented (and will roll over if it was 65535)
may be invoked by interrupt handler
SeeAlso: AX=1E00h,AX=1E02h
--------T-151E02-----------------------------
INT 15 - MultiDOS Plus - WAIT FOR EVENT
AX = 1E02h
DX = event/trigger number (00h-3Fh)
Return: AH = status
00h successful
01h invalid event/trigger number
Note: if the event counter is zero, the task is suspended until the event is
triggered with AX=1E01h; else, the counter is decremented and the
call returns immediately
SeeAlso: AX=1E00h,AX=1E01h
--------T-151E08-----------------------------
INT 15 - MultiDOS Plus 4.01 - SET CONTEXT-SWITCH FUNCTIONS
AX = 1E08h
DX:BX -> context save handler (see #0347)
DX:CX -> context restore handler (see #0347)
Note: handlers may be removed by setting addresses to 0000h:0000h
(Table 0347)
Values MultiDOS Plus context-switch handlers are called with:
ES:BX -> task's TCB
Return: all registers preserved
--------T-151F-------------------------------
INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW
AH = 1Fh
STACK: WORD top left corner of window (high byte = row, low = col)
WORD bottom right corner of window
Return: AX = status (SYS_OK)
SeeAlso: AH=14h"VMiX",AH=18h"VMiX"
--------T-151F-------------------------------
INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS
AH = 1Fh
Return: BX = first segment of conventional memory
DX = first segment of EMS swap frame into which MultiDOS will load
programs
--------T-1520-------------------------------
INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED
AH = 20h
Return: AX = current state
0000h multitasking enabled
other TCB of task that disabled multitasking
SeeAlso: AH=0Dh"MultiDOS",AH=13h"MultiDOS"
--------c-152000-----------------------------
INT 15 U - DOS 3+ PRINT.COM - DISABLE CRITICAL REGION FLAG
AX = 2000h
Desc: stop setting user flag on entry to PRINT critical region
Note: also supported by PC Network v1.00 RECEIVER.COM
SeeAlso: AX=2001h
--------c-152001-----------------------------
INT 15 U - DOS 3+ PRINT.COM - SET CRITICAL REGION FLAG
AX = 2001h
ES:BX -> byte which is to be incremented while in a DOS call
Desc: specify a user flag which PRINT should set to let an interested
application know it is in a critical region
Note: also supported by PC Network v1.00 RECEIVER.COM
SeeAlso: AX=2000h
--------O-152010-----------------------------
INT 15 - OS HOOK - SETUP SYSREQ ROUTINE (AT,XT286,PS50+)
AX = 2010h
???
Return: ???
SeeAlso: AX=2011h
--------O-152011-----------------------------
INT 15 - OS HOOK - COMPLETION OF SYSREQ FUNCTION (AT,XT286,PS50+)
AX = 2011h
???
Return: ???
SeeAlso: AX=2010h
--------B-1521-------------------------------
INT 15 - SYSTEM - POWER-ON SELF-TEST ERROR LOG (PS50+)
AH = 21h
AL = subfunction
00h read POST log
01h write POST log
BH = device ID
BL = error code
Return: CF set on error
AH = status (00h OK, 01h list full, 80h invalid cmd, 86h unsupported)
if function 00h:
BX = number of error codes stored
ES:DI -> error log
Notes: the log is a series of words, the first byte of which identifies the
error code and the second the device.
supported by AMI PCI BIOS
--------B-1522-------------------------------
INT 15 - SYSTEM - later PS/2s - LOCATE ROM BASIC
AH = 22h
Return: CF set on error
AH = status (86h if function not supported)
CF clear on success
AH = 00h
ES:BX -> ROM BASIC
Note: if this function is not supported, ROM BASIC is at F600h:0000h
SeeAlso: INT 86"BASIC",INT F0"BASIC"
--------B-152300-----------------------------
INT 15 U - SYSTEM - PS/1s - GET ??? CMOS DATA
AX = 2300h
Return: CF clear if successful
CL = value of CMOS location 2Dh
CH = value of CMOS location 2Eh
CF set on error
AH = error code (80h,86h)
SeeAlso: AX=2301h,AX=2304h,AX=2305h
--------B-152301-----------------------------
INT 15 U - SYSTEM - PS/1s - SET ??? CMOS DATA
AX = 2301h
CL = new value for CMOS location 2Dh
CH = new value for CMOS location 2Eh
Return: CF clear if successful
CF set on error
AH = error code (80h,86h)
Note: sets the contents of CMOS locations 2Dh and 2Eh
SeeAlso: AX=2300h,AX=2304h,AX=2305h
--------B-152304-----------------------------
INT 15 U - SYSTEM - PS/1s - SYSTEM SETUP
AX = 2304h
DX = segment of 32K buffer
Return: CF clear if successful
AX = 0003h (left over from setting video mode 3)
BX,CX,DX,BP,DS,ES destroyed
CF set on error
AH = error code (80h,86h)
SeeAlso: AX=2301h,AX=2305h
----------152305-----------------------------
INT 15 U - SYSTEM - PS/1s - GET PROCESSOR SPEED
AX = 2305h
Return: CF clear if successful
AL = processor speed in MHz
CF set on error
AL = FFh (speed > 80 MHz)
AL = error code (80h,86h = unsupported function)
SeeAlso: AX=2301h,AX=2304h,AH=BCh
--------b-152400-----------------------------
INT 15 - SYSTEM - later PS/2s - DISABLE A20 GATE
AX = 2400h
Return: CF clear if successful
AH = 00h
CF set on error
AH = status
01h keyboard controller is in secure mode
86h function not supported
Note: also supported by Qualitas 386MAX v6.01+
SeeAlso: AX=2401h,AX=2402h,AX=2403h
--------b-152401-----------------------------
INT 15 - SYSTEM - later PS/2s - ENABLE A20 GATE
AX = 2401h
Return: CF clear if successful
AH = 00h
CF set on error
AH = status
01h keyboard controller is in secure mode
86h function not supported
Note: also supported by Qualitas 386MAX v6.01+
SeeAlso: AX=2400h,AX=2402h
--------b-152402-----------------------------
INT 15 - SYSTEM - later PS/2s - GET A20 GATE STATUS
AX = 2402h
Return: CF clear if successful
AH = 00h
AL = current state (00h disabled, 01h enabled)
CF set on error
AH = status
01h keyboard controller is in secure mode
86h function not supported
Note: also supported by Qualitas 386MAX v6.01+
SeeAlso: AX=2400h,AX=2401h
--------b-152403-----------------------------
INT 15 - SYSTEM - later PS/2s - QUERY A20 GATE SUPPORT
AX = 2403h
Return: CF clear if successful
AH = 00h
BX = status of A20 gate support (see #0348)
CF set on error
AH = status
01h keyboard controller is in secure mode
86h function not supported
Note: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
BUG: at one point early in processing INT 15/AH=24h, the AMI PCI BIOS
version 1.00.05.AX1 compares whether AL==03h instead of AL>=03h,
thus causing a random branch on any value of AL greater than 3.
SeeAlso: AX=2402h
Bitfields for A20 gate support status:
Bit(s) Description (Table 0348)
0 supported on keyboard controller
1 supported with bit 1 of I/O port 92h
15 additional data is available (location not yet defined)
----------153000-----------------------------
INT 15 - Object Kernel for DOS - INSTALLATION CHECK
AX = 3000h
Return: AX:BX = 4F42h:4A21h ('OBJ!') if installed
CX = resident segment
Program: the Object Kernel is a program by M.W. Pieters which is currently
under development
SeeAlso: AX=3001h,AX=3008h
----------153001-----------------------------
INT 15 - Object Kernel for DOS - GET STATUS BLOCK
AX = 3001h
Return: AX = FFFFh
ES:DI -> status block
SeeAlso: AX=3000h,AX=3008h
----------153002-----------------------------
INT 15 - Object Kernel for DOS - KILL PROCESS
AX = 3002h
(not yet implemented)
SeeAlso: AX=3000h
----------153003-----------------------------
INT 15 - Object Kernel for DOS - STOP PROCESS
AX = 3003h
(not yet implemented)
SeeAlso: AX=3000h
----------153004-----------------------------
INT 15 - Object Kernel for DOS - START PROCESS
AX = 3004h
(not yet implemented)
SeeAlso: AX=3000h
----------153005-----------------------------
INT 15 - Object Kernel for DOS - RESTART PROCESS
AX = 3005h
(not yet implemented)
SeeAlso: AX=3000h
----------153006-----------------------------
INT 15 - Object Kernel for DOS - EXECUTE PROCESS
AX = 3006h
(not yet implemented)
SeeAlso: AX=3000h
----------153007-----------------------------
INT 15 - Object Kernel for DOS - LIST PROCESSES
AX = 3007h
(not yet implemented)
SeeAlso: AX=3000h
----------153008-----------------------------
INT 15 - Object Kernel for DOS - SWITCH ObjectKernel ON/OFF
AX = 3008h
BH = new state (00h disabled, 01h enabled)
Return: AX = FFFFh
SeeAlso: AX=3000h,AX=3009h
----------153009-----------------------------
INT 15 - Object Kernel for DOS - RESERVED FOR FUTURE USE
AX = 3009h to 30FFh
SeeAlso: AX=3000h
Program: the Object Kernel is a program by M.W. Pieters which is currently
under development
--------B-1540-------------------------------
INT 15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE)
AH = 40h
AL = subfunction
00h get system profile in CX and BX
01h set system profile from CX and BX
02h get internal modem profile in BX
03h set internal modem profile from BX
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (80h = profile execution failed)
--------V-154000-----------------------------
INT 15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT
AX = 4000h
Return: AX = 4000h
CL = timeout in minutes, 00h if disabled
SeeAlso: AX=4001h,AX=4600h
--------V-154001-----------------------------
INT 15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT
AX = 4001h
CL = timeout in minutes, 00h to disable
Return: AL = status
00h timeout modified
01h timeout cannot be modified
40h timeout cannot be modified
CL = timeout in minutes, 00h if disabled
SeeAlso: AX=4000h,AX=4601h
--------B-1541-------------------------------
INT 15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE and some others)
AH = 41h
AL = condition type (see #0349)
BH = condition compare or mask value
BL = timeout value times 55 milliseconds
00h means no timeout
DX = I/O port address if AL bit 4 set
ES:DI -> user byte if AL bit 4 clear
Note: call AH=C0h and examine bit 3 of feature byte 1 to determine whether
this function is supported
SeeAlso: AH=83h,AH=86h,AH=C0h
Bitfields for external event wait condition type:
Bit(s) Description (Table 0349)
0-2 condition to wait for
0 any external event
1 compare and return if equal
2 compare and return if not equal
3 test and return if not zero
4 test and return if zero
3 reserved
4 1=port address, 0=user byte
5-7 reserved
--------B-1542-------------------------------
INT 15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX)
AH = 42h
AL = suspend type
00h to use system profile
01h to force suspend regardless of system profile
Note: the HP 95LX apparently suspends regardless of the value in AL; on
power-up, execution will resume following the instruction calling
this function
SeeAlso: AH=44h
--------b-154280-----------------------------
INT 15 - Compaq SLT/286 - ENTER STANDBY
AX = 4280h
Return: AH = 42h
CF clear if successful
CF set if unable to enter standby
SeeAlso: AX=4600h,AX=5307h/BX=0001h/CX=0001h
--------B-1543-------------------------------
INT 15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE)
AH = 43h
Return: AL = status bits (see #0350)
Bitfields for Convertible system status:
Bit(s) Description (Table 0350)
7 power low
6 external power in use
5 standby power lost
4 power activated by alarm
3 internal modem powered on
2 RS232/parallel adapter powered on
1 reserved
0 LCD detached
--------B-1544-------------------------------
INT 15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE)
AH = 44h
AL = new modem power state (00h power off, 01h power on)
SeeAlso: AH=42h
--------b-1544C0-----------------------------
INT 15 - Olivetti Quaderno - INITIALIZE DIGITAL SIGNAL PROCESSING???
AX = 44C0h
ES:DI -> new DSP procedure (exchanged with CMOS[28h])
ES:SI -> ??? buffer
Return: ES:DI -> old DSP procedure
ES:SI buffer filled with ten bytes from CMOS (addresses 14h-1Ch)
followed by 00h (addresses 15h-1Ch copied only if less than 21h)
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C1-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C1h
???
Return: ???
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C2-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C2h
DL = byte to be written to I/O port 350h
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C3h,AX=44C9h
--------b-1544C3-----------------------------
INT 15 - Olivetti Quaderno - GET ???
AX = 44C3h
Return: DH = bitfields (see #0351)
DL = value read from I/O port 350h
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C2h,AX=44C9h
Bitfields for Olivetti Quaderno ???:
Bit(s) Description (Table 0351)
5-7 5-7 read from I/O port 351h
2-4 zero
1-0 "tres complique"
--------b-1544C4-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C4h and 44C5h
???
Return: ???
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C6-----------------------------
INT 15 - Olivetti Quaderno - READ LCD
AX = 44C6h
Return: DX = FFFFh clock is displayed on LCD display
DX = other: hex number displayed in first four positions of display
BH = left alphanumeric character on display (see #0352)
BL = right alphanumeric character on display (see #0352)
CL = colon flags (see #0353)
Notes: the LCD display has the format HH:HH:AA, where H is a hex digit and A
is an alphanumeric character
this function is also supported by XBIOS.COM
SeeAlso: AX=44C7h,AX=44C9h
(Table 0352)
Values for Olivetti Quaderno LCD alphanumeric characters:
00h-0Fh hex digit
2Bh "+"
2Dh "-"
30h-39h "0" to "9"
41h-5Ah "A" to "Z"
61h-6Ah "a" to "z"
else blank
Bitfields for Olivetti Quaderno LCD colon flags:
Bit(s) Description (Table 0353)
0 left colon on
1 right colon on
2-7 unused
--------b-1544C7-----------------------------
INT 15 - Olivetti Quaderno - WRITE LCD
AX = 44C7h
DX = hex display
FFFFh display clock and "HI", "Md", or "Lo"
BH,BL,CL unused
other: display specified hex number in first four positions
BH = left alphanumeric character on display (see #0352)
BL = right alphanumeric character on display (see #0352)
CL = colon flags (see #0353)
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C6h
--------b-1544C8-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C8h
CL = ??? (00h,02h,21h)
CH = ???
???
Return: ???
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C9-----------------------------
INT 15 - Olivetti Quaderno - GET XBIOS VERSION
AX = 44C9h
Return: AL = major version
AH = minor version
Note: this function is also supported by XBIOS.COM
--------b-1546-------------------------------
INT 15 U - HP 100LX/200LX - SET POWER OFF TIMEOUT
AH = 46h
BX = timeout value in ticks
0000h inhibit auto power off
Note: the 200LX default timeout is 0CCDh = 3277 ticks = approx. 3 min.
--------b-154600-----------------------------
INT 15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION
AX = 4600h
Return: AH = modem configuration information (see #0354)
AL = power conservation status information (see #0355)
BH = default system inactivity timeout (1-21 minutes)
BL = current system inactivity timeout (1-21 minutes)
CH = default video display inactivity timeout (1-63 minutes)
CL = current video display inactivity timeout (1-63 minutes)
DH = default fixed disk drive inactivity timeout (1-21 minutes)
DL = current fixed disk drive inactivity timeout (1-21 minutes)
SeeAlso: AX=4280h,AX=4601h,INT 77
Bitfields for Compaq SLT/286 modem configuration information:
Bit(s) Description (Table 0354)
0 powerup state (0 off, 1 on)
1 modem installed
2 IRQ line assignment (0 IRQ 4, 1 IRQ 3)
3 COM port assignment (0 = COM 2, 1 = COM 1)
4 modem state (0 not assigned, 1 assigned)
5 modem is on
Bitfields for Compaq SLT/286 power conservation status:
Bit(s) Description (Table 0355)
0 power source (0 internal, 1 external)
1-2 low battery state
00 no low battery condition
01 low battery 1
10 reserved
11 low battery 2
3-4 power conservation mode
00 automatic, 01 on, 10 off, 11 reserved
--------b-154601-----------------------------
INT 15 - Compaq SLT/286 - MODIFY POWER CONSERVATION/MODEM CONFIGURATION
AX = 4601h
BL = system inactivity timeout (1-21 minutes)
FFh do not change
CL = video display inactivity timeout (1-63 minutes)
FFh do not change
DL = current fixed disk drive inactivity timeout (1-21 minutes)
FFh do not change
DH = new modem state (00h turn off, 01h turn on, FFh don't change)
Return: CF clear if successful
AH = 00h
BL = current system inactivity timeout (1-21 minutes)
CL = current video display inactivity timeout (1-63 minutes)
DL = current fixed disk drive inactivity timeout (1-21 minutes)
DH = modem state (FFh unchanged, 00h turned off, 01h turned on)
CF set on error
AH = error code
01h input is out of range
02h no modem present
SeeAlso: AX=4600h,INT 77
--------b-154604-----------------------------
INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - GET ???
AX = 4604h
Return: CF clear if successful
AL = byte read from I/O port 03F8h
CF set on error (not supported)
AH = 86h (unsupported function)
Note: also supported by 7/26/93 LTE Lite 386 ROM
--------b-154605-----------------------------
INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - ???
AX = 4605h
Return: CF clear if successful
CF set on error (not supported)
AH = 86h (unsupported function)
Note: this function is a NOP (other than clearing CF) in the 08/05/93 version
of the Contura 486/486c/486cx and "Aladdin" ROM, and the 7/26/93
LTE Lite 386 ROM
--------S-1549-------------------------------
INT 15 U - HP 100LX/200LX - SERIAL INTERFACE SELECT
AH = 49h
AL = serial interface
00h wired (COM1)
01h infrared
Note: interface should only be changed in deactivated state (see AH=4Ah)
SeeAlso: AH=4Ah"HP"
--------J-154900-----------------------------
INT 15 - Far East MS-DOS - GET BIOS TYPE
AX = 4900h
Return: CF clear if successful
AH = 00h
BL = BIOS mode
00h DOS/V
01h standard DBCS DOS (hardware DBCS support)
CF set on error
AH = 86h (function not supported)
Note: in practice, DOS/J returns AH=86h; AX DOS does not support this call
SeeAlso: AH=50h,INT 21/AH=30h
--------S-154A-------------------------------
INT 15 U - HP 100LX/200LX - SERIAL INTERFACE CONTROL
AH = 4Ah
AL = control
00h deactivate
01h activate
Note: interface selected with AH=49h will be (de)activated
SeeAlso: AH=49h"HP"
--------b-154DD4-----------------------------
INT 15 - HP 95LX/100LX/200LX - INSTALLATION CHECK
AX = 4DD4h
Return: BX = 4850h ("HP") if HP 95LX/100LX/200LX
CX = model
0101h HP 95LX
0102h HP 100LX/200LX
DH = ???
02h HP 200LX 2MB BIOS 1.01 A D german
DL = ???
00h HP 95LX
01h HP 200LX 2MB BIOS 1.01 A D german
SeeAlso: INT 0B"HP 95LX",INT 0F"HP 95LX",INT 5F/AH=00h,INT 60/DI=0100h
SeeAlso: INT 61"HP 95LX"
--------b-154E-------------------------------
INT 15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP
AH = 4Eh
AL = light sleep
00h disabled
01h enabled
Note: when light sleep is disabled, the system will continue running at full
speed; when enabled, it may automatically slow to conserve batteries
SeeAlso: INT 06"HP 95LX",INT 60/DI=0100h
--------B-154F-------------------------------
INT 15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)
AH = 4Fh
AL = hardware scan code
CF set
Return: CF set
AL = hardware scan code
CF clear
scan code should be ignored
Note: called by INT 09 handler to translate scan codes; the INT 09 code does
not examine the scan code it reads from the keyboard until after
this function returns. This permits software to rearrange the
keyboard; for example, swapping the CapsLock and Control keys, or
turning the right Shift key into Enter.
SeeAlso: INT 09,INT 15/AH=C0h
--------J-1550-------------------------------
INT 15 - DOS/V - FONT SUBSYSTEM ACCESS
AH = 50h
AL = which function address to retrieve
00h "read font" function
01h "write font" function
BL = 00h
BH = character size (00h single-byte, 01h double-byte)
DH = width of character cell
DL = height of character cell
BP = code page (see #0356)
Return: CF clear if successful
AH = 00h
ES:BX -> requested function's address
CF set on error
AH = error code (see #0357)
SeeAlso: AH=49h
(Table 0356)
Values for DOS/V code page:
0 default
437 US English
932 Japanese
934 Korea
936 China
938 Taiwan
(Table 0357)
Values for DOS/V error code:
01h invalid font type in BH
02h BL not zero
03h invalid font size
04h invalid code page
80h unsupported function (PC)
86h unsupported function (XT)
--------T-1550-------------------------------
INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE
AH = 50h
BX = segment of page directory table
CX = page number of page table
SeeAlso: AH=10h"VMiX",AH=51h"VMiX",AH=52h"VMiX"
--------T-1551-------------------------------
INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE
AH = 51h
STACK: DWORD selector:offset of function
Return: registers as returned by function
Note: executes function with privilege level 0 (highest privilege)
SeeAlso: AH=10h"VMiX",AH=52h"VMiX"
--------B-155101-----------------------------
INT 15 - SYSTEM - later PS/2s - EXPANSION UNIT, RETURN CONFIGURATION NUMBER
AX = 5101h
Return: CF set if successful
AH = 00h
AL = current configuration number
00h system unit only
FFh configuration not recognized
BX = status flag
bits 0-14: reserved
bit 15: additional data is available (location TBD)
CF clear on error
AH = status
01h expansion unit is not present
86h function not supported
Note: CF convention is the reverse of the standard convention for this
interrupt. (Perhaps a typo in the IBM BIOS Tech Ref?)
--------T-1552-------------------------------
INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT
AH = 52h
SeeAlso: AH=50h"VMiX",AH=51h"VMiX"
----------1552-------------------------------
INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT
AH = 52h
DL = drive number
Return: CF clear if OK to eject media
AH = 00h
CF set if ejection disallowed
AH = error code (B1h,B3h) (see #0140)
Note: called by the IBM/MS INT 13 Extensions driver/BIOS when an ejection
request is made
SeeAlso: INT 13/AH=46h"INT 13 Extensions"
--------p-155300-----------------------------
INT 15 - Advanced Power Management Specification - INSTALLATION CHECK
AX = 5300h
BX = device ID of system BIOS (0000h)
Return: CF clear if successful
AH = major version (BCD)
AL = minor version (BCD)
BX = 504Dh ("PM")
CX = flags (see #0358)
CF set on error
AH = error code (06h,86h) (see #0359)
Bitfields for APM flags:
Bit(s) Description (Table 0358)
0 16-bit protected mode interface supported
1 32-bit protected mode interface supported
2 CPU idle call reduces processor speed
3 BIOS power management disabled
4 BIOS power management disengaged (APM v1.1)
5-7 reserved
(Table 0359)
Values for APM error code:
01h power management functionality disabled
02h interface connection already in effect
03h interface not connected
04h real-mode interface not connected
05h 16-bit protected-mode interface already connected
06h 16-bit protected-mode interface not supported
07h 32-bit protected-mode interface already connected
08h 32-bit protected-mode interface not supported
09h unrecognized device ID
0Ah invalid parameter value in CX
0Bh-1Fh reserved for other interface and general errors
20h-3Fh reserved for CPU errors
40h-5Fh reserved for device errors
60h can't enter requested state
61h-7Fh reserved for other system errors
80h no power management events pending
81h-85h reserved for other power management event errors
86h APM not present
87h-9Fh reserved for other power management event errors
--------p-155301-----------------------------
INT 15 - Advanced Power Management Specification - CONNECT REAL-MODE INTERFACE
AX = 5301h
BX = device ID of system BIOS (0000h)
Return: CF clear if successful
CF set on error
AH = error code (02h,05h,07h,09h) (see #0359)
SeeAlso: AX=5302h,AX=5303h,AX=5304h
--------p-155302-----------------------------
INT 15 R - Advanced Power Management Spec - CONNECT 16-BIT PROTMODE INTERFACE
AX = 5302h
BX = device ID of system BIOS (0000h)
Return: CF clear if successful
AX = real-mode segment base address of protected-mode 16-bit code
segment
BX = offset of entry point
CX = real-mode segment base address of protected-mode 16-bit data
segment
---APM v1.1---
SI = APM BIOS code segment length
DI = APM BIOS data segment length
CF set on error
AH = error code (02h,05h,06h,07h,09h) (see #0359)
Notes: the caller must initialize two consecutive descriptors with the
returned segment base addresses; these descriptors must be valid
whenever the protected-mode interface is called, and will have
their limits arbitrarily set to 64K.
the protected mode interface is invoked by making a far call with the
same register values as for INT 15; it must be invoked while CPL=0,
the code segment descriptor must have a DPL of 0, the stack must be
in a 16-bit segment and have enough room for BIOS use and possible
interrupts, and the current I/O permission bit map must allow access
to the I/O ports used for power management.
functions 00h-03h are not available from protected mode
SeeAlso: AX=5301h,AX=5303h,AX=5304h
--------p-155303-----------------------------
INT 15 - Advanced Power Management Spec - CONNECT 32-BIT PROTMODE INTERFACE
AX = 5303h
BX = device ID of system BIOS (0000h)
Return: CF clear if successful
AX = real-mode segment base address of protected-mode 32-bit code
segment
EBX = offset of entry point
CX = real-mode segment base address of protected-mode 16-bit code
segment
DX = real-mode segment base address of protected-mode 16-bit data
segment
---APM v1.1---
SI = APM BIOS code segment length
DI = APM BIOS data segment length
CF set on error
AH = error code (02h,05h,07h,08h,09h) (see #0359)
Notes: the caller must initialize three consecutive descriptors with the
returned segment base addresses for 32-bit code, 16-bit code, and
16-bit data, respectively; these descriptors must be valid whenever
the protected-mode interface is called, and will have their limits
arbitrarily set to 64K.
the protected mode interface is invoked by making a far call to the
32-bit code segment with the same register values as for INT 15; it
must be invoked while CPL=0, the code segment descriptor must have a
DPL of 0, the stack must be in a 32-bit segment and have enough room
for BIOS use and possible interrupts, and the current I/O permission
bit map must allow access to the I/O ports used for power management.
functions 00h-03h are not available from protected mode
SeeAlso: AX=5301h,AX=5302h,AX=5304h
--------p-155304-----------------------------
INT 15 - Advanced Power Management Specification - DISCONNECT INTERFACE
AX = 5304h
BX = device ID of system BIOS (0000h)
Return: CF clear if successful
CF set on error
AH = error code (03h,09h) (see #0359)
SeeAlso: AX=5301h,AX=5302h,AX=5303h
--------p-155305-----------------------------
INT 15 - Advanced Power Management Specification - CPU IDLE
AX = 5305h
Return: CF clear if successful (after system leaves idle state)
CF set on error
AH = error code (03h,0Bh) (see #0359)
Notes: call when the system is idle and should be suspended until the next
system event or interrupt
should not be called from within a hardware interrupt handler to avoid
reentrance problems
if an interrupt causes the system to resume normal processing, the
interrupt may or may not have been handled when the BIOS returns
from this call; thus, the caller should allow interrupts on return
interrupt handlers may not retain control if the BIOS allows
interrupts while in idle mode even if they are able to determine
that they were called from idle mode
the caller should issue this call continuously in a loop until it needs
to perform some processing of its own
SeeAlso: AX=1000h,AX=5306h,INT 2F/AX=1680h
--------p-155306-----------------------------
INT 15 - Advanced Power Management Specification - CPU BUSY
AX = 5306h
Return: CF clear if successful
CF set on error
AH = error code (03h,0Bh) (see #0359)
Notes: called to ensure that the system runs at full speed even on systems
where the BIOS is unable to recognize increased activity (especially
if interrupts are hooked by other programs and not chained to the
BIOS)
this call may be made even when the system is already running at full
speed, but it will create unnecessary overhead
should not be called from within a hardware interrupt handler to avoid
reentrance problems
SeeAlso: AX=5305h
--------p-155307-----------------------------
INT 15 - Advanced Power Management Specification - SET POWER STATE
AX = 5307h
BX = device ID (see #0360)
CX = system state ID (see #0361)
Return: CF clear if successful
CF set on error
AH = error code (01h,03h,09h,0Ah,0Bh,60h) (see #0359)
Note: should not be called from within a hardware interrupt handler to avoid
reentrance problems
SeeAlso: AX=530Ch
(Table 0360)
Values for APM device IDs:
0000h system BIOS
0001h all devices for which the system BIOS manages power
01xxh display (01FFh for all attached display devices)
02xxh secondary storage (02FFh for all attached secondary storage devices)
03xxh parallel ports (03FFh for all attached parallel ports)
04xxh serial ports (04FFh for all attached serial ports)
---APM v1.1---
05xxh network adapters (05FFh for all attached network adapters)
06xxh PCMCIA sockets (06FFh for all)
0700h-DFFFh reserved
Exxxh OEM-defined power device IDs
F000h-FFFFh reserved
(Table 0361)
Values for system state ID:
0000h ready (not supported for device ID 0001h)
0001h stand-by
0002h suspend
0003h off (not supported for device ID 0001h)
---APM v1.1---
0004h last request processing notification (only for device ID 0001h)
0005h last request rejected (only for device ID 0001h)
0006h-001Fh reserved system states
0020h-003Fh OEM-defined system states
0040h-007Fh OEM-defined device states
0080h-FFFFh reserved device states
--------p-155307CX0001-----------------------
INT 15 - Advanced Power Management Specification - SYSTEM STAND-BY
AX = 5307h
CX = 0001h
BX = 0001h (device ID for all power-managed devices)
Return: CF clear
Notes: puts the entire system into stand-by mode; normally called in response
to a System Stand-by Request notification after any necessary
processing, but may also be invoked at the caller's discretion
should not be called from within a hardware interrupt handler to avoid
reentrance problems
the stand-by state is typically exited on an interrupt
SeeAlso: AX=4280h,AX=5307h/CX=0002h/BX=0001h,AX=530Bh
--------p-155307CX0002-----------------------
INT 15 - Advanced Power Management Specification - SUSPEND SYSTEM
AX = 5307h
CX = 0002h
BX = 0001h (device ID for all power-managed devices)
Return: after system is resumed
CF clear
Notes: puts the entire system into a low-power suspended state; normally
called in response to a Suspend System Request notification after
any necessary processing, but may also be invoked at the caller's
discretion
should not be called from within a hardware interrupt handler to avoid
reentrance problems
the caller may need to update its date and time values because the
system could have been suspended for a long period of time
SeeAlso: AX=5307h/CX=0001h/BX=0001h,AX=530Bh
--------p-155308-----------------------------
INT 15 - Advanced Power Management Spec - ENABLE/DISABLE POWER MANAGEMENT
AX = 5308h
BX = device ID for all devices power-managed by APM
0001h (APM v1.1)
FFFFh (APM v1.0)
CX = new state
0000h disabled
0001h enabled
Return: CF clear if successful
CF set on error
AH = error code (01h,03h,09h,0Ah,0Bh) (see #0359)
Notes: when power management is disabled, the system BIOS will not
automatically power down devices, enter stand-by or suspended mode,
or perform any power-saving actions in response to AX=5305h calls
should not be called from within a hardware interrupt handler to avoid
reentrance problems
SeeAlso: AX=5309h,AX=530Dh,AX=530Fh
--------p-155309-----------------------------
INT 15 - Advanced Power Management Specification - RESTORE POWER-ON DEFAULTS
AX = 5309h
BX = device ID for all devices power-managed by APM
0001h (APM v1.1)
FFFFh (APM v1.0)
Return: CF clear if successful
CF set on error
AH = error code (09h) (see #0359)
Note: should not be called from within a hardware interrupt handler to avoid
reentrance problems
SeeAlso: AX=5308h
--------p-15530ABX0001-----------------------
INT 15 - Advanced Power Management Specification - GET POWER STATUS
AX = 530Ah
BX = 0001h (device ID for all devices power-managed by APM)
Return: CF clear if successful
BH = AC line status
00h off-line
01h on-line
02h on backup power (APM v1.1)
FFh unknown
other reserved
BL = battery status (see #0362)
CH = battery flag (APM v1.1) (see #0363)
CL = remaining battery life, percentage
00h-64h (0-100) percentage of full charge
FFh unknown
DX = remaining battery life, time (APM v1.1) (see #0364)
CF set on error
AH = error code (09h) (see #0359)
Note: should not be called from within a hardware interrupt handler to avoid
reentrance problems
(Table 0362)
Values for APM v1.0+ battery status:
00h high
01h low
02h critical
03h charging
FFh unknown
other reserved
Bitfields for APM v1.1 battery flag:
Bit(s) Description (Table 0363)
0 high
1 low
2 critical
3 charging
4-6 reserved
7 no system battery
Note: all bits set (FFh) if unknown
Bitfields for APM v1.1 remaining battery life:
Bit(s) Description (Table 0364)
15 time units: 0=seconds, 1=minutes
14-0 battery life in minutes or seconds
Note: all bits set (FFFFh) if unknown
--------p-15530B-----------------------------
INT 15 - Advanced Power Management Specification - GET POWER MANAGEMENT EVENT
AX = 530Bh
Return: CF clear if successful
BX = event code (see #0365)
CF set on error
AH = error code (03h,0Bh,80h) (see #0359)
Notes: although power management events are often asynchronous, notification
will not be made until polled via this call to permit software to
only receive event notification when it is prepared to process
power management events; since these events are not very time-
critical, it should be sufficient to poll once or twice per second
the critical resume notification is made after the system resumes
from an emergency suspension; normally, the system BIOS only notifies
its partner that it wishes to suspend and relies on the partner to
actually request the suspension, but no notification is made on an
emergency suspension
should not be called from within a hardware interrupt handler to avoid
reentrance problems
SeeAlso: AX=5307h,AX=5307h/BX=0001h/CX=0001h,AX=5307h/BX=0001h/CX=0002h
(Table 0365)
Values for APM event code:
0001h system stand-by request
0002h system suspend request
0003h normal resume system notification
0004h critical resume system notification
0005h battery low notification
---APM v1.1---
0006h power status change notification
0007h update time notification
0008h critical system suspend notification
0009h user system standby request notification
000Ah user system suspend request notification
000Bh system standby resume notification
000Ch-00FFh reserved system events
01xxh reserved device events
02xxh OEM-defined APM events
0300h-FFFFh reserved
--------p-15530C-----------------------------
INT 15 - Advanced Power Management v1.1 - GET POWER STATE
AX = 530Ch
BX = device ID (see #0360)
Return: CF clear if successful
BX = system state ID (see #0361)
CF set on error
AH = error code (01h,09h) (see #0359)
SeeAlso: AX=5307h
--------p-15530D-----------------------------
INT 15 - Advanced Power Management v1.1 - EN/DISABLE DEVICE POWER MANAGEMENT
AX = 530Dh
BX = device ID (see #0360)
CX = function
0000h disable power management
0001h enable power management
Return: CF clear if successful
CF set on error
AH = error code (01h,03h,09h,0Ah,0Bh) (see #0359)
SeeAlso: AX=5308h,AX=530Fh
--------p-15530E-----------------------------
INT 15 - Advanced Power Management v1.1 - DRIVER VERSION
AX = 530Eh
BX = device ID of system BIOS (0000h)
CH = APM driver major version (BCD)
CL = APM driver minor version (BCD)
Return: CF clear if successful
AH = APM connection major version (BCD)
AL = APM connection minor version (BCD)
CF set on error
AH = error code (03h,09h,0Bh) (see #0359)
SeeAlso: AX=5300h
--------p-15530F-----------------------------
INT 15 - Advanced Power Management v1.1 - ENGAGE/DISENGAGE POWER MANAGEMENT
AX = 530Fh
BX = device ID (see #0360)
CX = function
0000h disengage power management
0001h engage power management
Return: CF clear if successful
CF set on error
AH = error code (01h,09h) (see #0359)
Note: unlike AX=5308h, this call does not affect the functioning of the APM
BIOS
SeeAlso: AX=5308h,AX=530Dh
--------p-155380BH00-------------------------
INT 15 - APM SL Enhanced v1.0 - GET SUSPEND/GLOBAL STANDBY MODE
AX = 5380h
BH = 00h
Return: CF clear if successful
AL = 82360SL Auto Power Off Timer High Count (APWR_TMRH)
BL = sustdbymode (see #0366)
SeeAlso: AX=5380h/BH=01h,AX=5380h/BH=02h,AX=5380h/BH=7Fh
Bitfields for APM SL sustdbymode:
Bit(s) Description (Table 0366)
2 ???
1 Auto Power Off Timer Enable (APWR_TMR_EN)
0 ???
--------p-155380BH01-------------------------
INT 15 - APM SL Enhanced v1.0 - SET SUSPEND/GLOBAL STANDBY MODE
AX = 5380h
BH = 01h
BL = sustdbymode (see #0366)
Return: CF clear if successful
SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
--------p-155380BH02-------------------------
INT 15 - APM SL Enhanced v1.0 - GET GLOBAL STANDBY TIMER
AX = 5380h
BH = 02h
Return: CF clear if successful
SI:DI = timer count in seconds (actually 1.024 seconds)
Desc: reads the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=03h,AX=5380h/BH=04h,AX=5380h/BH=7Fh
--------p-155380BH03-------------------------
INT 15 - APM SL Enhanced v1.0 - SET GLOBAL STANDBY TIMER
AX = 5380h
BH = 03h
SI:DI = timer count in seconds (actually 1.024 seconds)
Return: CF clear if successful
Desc: sets the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
Note: the maximum timer count is 268431 seconds
SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=7Fh
--------p-155380BH04-------------------------
INT 15 - APM SL Enhanced v1.0 - GET AUTO POWER OFF TIMER
AX = 5380h
BH = 04h
Return: CF clear if successful
SI:DI = timer count in seconds (actually 1.024 seconds)
Desc: reads the value of 82360SL APWR_TMRH & APWR_TMRL registers
SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=05h,AX=5380h/BH=06h,AX=5380h/BH=7Fh
--------p-155380BH05-------------------------
INT 15 - APM SL Enhanced v1.0 - SET AUTO POWER OFF TIMER
AX = 5380h
BH = 05h
SI:DI = timer count in seconds (actually 1.024 seconds)
Return: CF clear if successful
Desc: sets the value of 82360SL APWR_TMRH & APWR_TMRL registers
Note: the maximum timer count is 134213 seconds
SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=7Fh
--------p-155380BH06-------------------------
INT 15 - APM SL Enhanced v1.0 - GET RESUME CONDITION
AX = 5380h
BH = 06h
Return: CF clear if successful
BL = resume condition (see #0367)
Desc: reads the value of 82360SL RESUME_MASK register
SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=07h,AX=5380h/BH=08h,AX=5380h/BH=7Fh
Bitfields for APM SL resume condition:
Bit(s) Description (Table 0367)
7-2 reserved (0)
1 alarm enabled (resume on CMOS alarm)
0 ring enabled
--------p-155380BH07-------------------------
INT 15 - APM SL Enhanced v1.0 - SET RESUME CONDITION
AX = 5380h
BH = 07h
BL = resume condition (see #0367)
Return: CF clear if successful
Desc: sets the value of 82360SL RESUME_MASK register
SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=7Fh
--------p-155380BH08-------------------------
INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT TIME
AX = 5380h
BH = 08h
Return: CF clear if successful
CH = hours
CL = minutes
SI = seconds
CF set on error
AH = error code (see #0368)
Desc: gets calendar event time from CMOS ram
SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=09h,AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
(Table 0368)
Values for APM SL error code:
02h no alarm set
03h no battery
--------p-155380BH09-------------------------
INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT TIME
AX = 5380h
BH = 09h
CH = hours
CL = minutes
SI = seconds
Return: CF clear if successful
CF set on error
AH = error code (see #0368)
Desc: sets calendar event time in CMOS ram, enables Alarm resume
SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=7Fh
--------p-155380BH0A-------------------------
INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT DATE
AX = 5380h
BH = 0Ah
Return: CF clear if successful
SI = century
DI = year
CH = month
CL = day
CF set on error
AH = error code (see #0368)
Desc: reads calendar event date from Extended CMOS ram
SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=0Bh,AX=5380h/BH=0Ch,AX=5380h/BH=7Fh
--------p-155380BH0B-------------------------
INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT DATE
AX = 5380h
BH = 0Bh
SI = century
DI = year
CH = month
CL = day
Return: CF clear if successful
CF set on error
AH = error code (see #0368)
Desc: sets calendar event date in Extended CMOS ram
SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
--------p-155380BH0C-------------------------
INT 15 - APM SL Enhanced v1.0 - GET CPU SPEED MODE
AX = 5380h
BH = 0Ch
Return: CF clear if successful
CL = CPU clock divider (1,2,4 or 8)
BL = autocpumode ???
Desc: reads bits 4-5 of CPUPWRMODE register
SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=0Dh,AX=5380h/BH=7Fh
--------p-155380BH0D-------------------------
INT 15 - APM SL Enhanced v1.0 - SET CPU SPEED MODE
AX = 5380h
BH = 0Dh
CL = CPU clock divider (1,2,4 or 8)
BL = autocpumode ???
Return: CF clear if successful
Desc: writes bits 4-5 of CPUPWRMODE register
SeeAlso: AX=5380h/BH=0Ch,AX=5380h/BH=7Eh,AX=5380h/BH=7Fh
--------p-155380BH7E-------------------------
INT 15 - APM SL Enhanced v1.0 - SL HW PARAMETER
AX = 5380h
BH = 7Eh
Return: AL = ???
03h on A-Step 386SL BIOSes
12h on later steps
BX = Control port (00B0h)
SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
--------p-155380BH7F-------------------------
INT 15 - Advanced Power Management v1.1 - OEM APM INSTALLATION CHECK
AX = 5380h
BH = 7Fh
Return: CF clear if successful
BX = OEM identifier
all other registers OEM-defined
---Intel SL Enhanced Option BIOS---
BX = 534Ch ('SL')
CL = 4Fh ('O')
AL = version (10h = 1.0)
---HP APM BIOS---
BX = 4850h ('HP')
CX = version (0001h)
CF set on error
AH = error code (03h) (see #0359)
SeeAlso: AX=5380h/BH=00h
--------p-155380-----------------------------
INT 15 - Advanced Power Management v1.1 - OEM APM FUNCTIONS
AX = 5380h
BH <> 7Fh
all other registers OEM-defined
Return: OEM-defined
SeeAlso: AX=5380h/BH=7Fh
--------T-155400-----------------------------
INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION
AX = 5400h
ES:BX -> device information tables
DI:DX -> dispatcher entry point
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5407h,INT 2F/AX=DE00h
--------T-155401-----------------------------
INT 15 C - Omniview Multitasker - PROCESS CREATION
AX = 5401h
ES:BX = process handle
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5402h,INT 2F/AX=DE04h
--------T-155402-----------------------------
INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION
AX = 5402h
ES:DX = process handle
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5401h,INT 2F/AX=DE05h
--------T-155403-----------------------------
INT 15 C - Omniview Multitasker - SAVE
AX = 5403h
ES:DX = process swapping out
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5404h,INT 2F/AX=DE08h
--------T-155404-----------------------------
INT 15 C - Omniview Multitasker - RESTORE
AX = 5404h
ES:DX = process swapping in
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5403h,INT 2F/AX=DE09h
--------T-155405-----------------------------
INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND
AX = 5405h
ES:DX = process swapping in
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5406h
--------T-155406-----------------------------
INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND
AX = 5406h
ES:DX = process swapping in
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5405h
--------T-155407-----------------------------
INT 15 C - Omniview Multitasker - EXIT NOTIFICATION
AX = 5407h
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5400h,INT 2F/AX=DE03h
--------!---Section--------------------------
Interrupt List, part 3 of 12
This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
--------b-1560------------------------------------
INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED
AH = 60h
AL = new speed
00h normal (8 MHz)
01h Slow Mode 1 (4 MHz)
02h Slow Mode 2 (2 MHz)
Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
SeeAlso: AX=6301h
--------p-156000-----------------------------
INT 15 U HP 100LX/200LX - GET MAIN BATTERY LEVEL
AX = 6000h
Return: AX = battery level
Note: multiply the returned value with 1Bh and add 622h to get millivolts
SeeAlso: AX=6001h,AX=6002h,AX=6003h,AX=6004h
--------p-156001-----------------------------
INT 15 U HP 100LX/200LX - GET BACKUP BATTERY LEVEL
AX = 6001h
Return: AX = battery level
Note: multiply the returned value with 1Bh and add 622h to get millivolts
SeeAlso: AX=6000h,AX=6002h
--------p-156002-----------------------------
INT 15 U HP 100LX/200LX - GET POWER INFO
AX = 6002h
Return: AL = power settings (see #0369)
SeeAlso: AX=6000h,AX=6003h,AX=6004h
Bitfields for power settings:
Bit(s) Description (Table 0369)
0-1 unused ???
2 card battery status low (OK if bit clear)
3 battery charging off (disabled if bits 3-5 clear)
4 battery charging slow
5 battery charging fast
6 power adaptor active
7 battery type NiCad (alkaline if bit clear)
--------p-156003-----------------------------
INT 15 U HP 100LX/200LX - SET MAIN BATTERY TYPE
AX = 6003h
BL = battery type
00h alkaline
01h NiCad
SeeAlso: AX=6000h,AX=6004h
--------p-156004-----------------------------
INT 15 U HP 100LX/200LX - SET BATTERY CHARGING MODE
AX = 6004h
BL = charging
00h disabled
01h enabled
SeeAlso: AX=6000h,AX=6003h
--------b-1561------------------------------------
INT 15 - HUNTER 16 - GET POWER LEVEL
AH = 61h
Return: AH = percentage of full power left (0..100)
Desc: determine how much battery power is left
SeeAlso: AH=62h,AH=66h,AH=73h"HUNTER"
--------b-1561-------------------------------
INT 15 U HP 100LX/200LX - SET ANNOUNCIATORS POSITION
AH = 61h
AL = position (20h = left, 60h = right)
Note: The announciators are the indicator symbols for the Shift and Fn keys
in the bottom line
SeeAlso: INT 16/AH=02h
--------b-1562------------------------------------
INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD
AH = 62h
AL = level (00h 5%, 01h 10%, ... 12h 95%)
BX = interval between power low warnings in seconds (1..600)
Return: AH = Status
Desc: set the level (relative to full power) when power-low warnings begin
and the interval between the warnings
SeeAlso: AH=61h,AH=65h,AH=66h
--------b-156300----------------------------------
INT 15 - HUNTER 16 - GET IDLE TIMEOUT
AX = 6300h
Return: AH = status
BX = timeout in seconds (0-3600)
Desc: get the idle timeout value, the interval without keyboard or
communications activity before the system shuts down
SeeAlso: AX=6301h
--------b-156301----------------------------------
INT 15 - HUNTER 16 - SET IDLE TIMEOUT
AX = 6301h
BX = timeout in seconds (0-3600)
Desc: sets the idle timeout value, the interval without keyboard or
communications activity before the system shuts down
SeeAlso: AX=6300h
--------b-1564------------------------------------
INT 15 - HUNTER 16 - CONTROL RESUME MODE
AH = 64h
AL = new state
00h disable Resume mode
01h enable Resume mode
Return: AH = status
Desc: turn Resume mode on or off. In Resume mode the system starts in
the application that was running when it shut down as if nothing
had happened.
SeeAlso: AH=67h,AH=68h,AH=69h
--------b-1565------------------------------------
INT 15 - HUNTER 16 - AUTHORISE CHARGING
AH = 65h
AL = charging level
01h charging not allowed
02h charging allowed until power down
03h charging allowed until batteries changed or fail.
Ask user if charging is still allowed on next poweron
04h charging allowed indefinitely
BX = 0203h
CX = 0405h
DX = 0607h
Return: AH = status
SeeAlso: AH=66h,AH=68h
--------b-1566------------------------------------
INT 15 - HUNTER 16 - SET BATTERY LEVEL
AH = 66h
AL = level in percent of maximum (0..100)
Return: AH = status
SeeAlso: AH=61h,AH=65h
--------b-1567------------------------------------
INT 15 - HUNTER 16 - CONTROL STOP MODE
AH = 67h
AL = mode when waiting for input
00h use STOP mode (allows communication)
01h use HALT mode (disallows communication)
Return: AH = status
Desc: select the power save mode to use when waiting for input
SeeAlso: AH=69h
--------b-1568------------------------------------
INT 15 - HUNTER 16 - REQUEST POWER DOWN
AH = 68h
Desc: turns off the Hunter 16 if power down is allowed (see AH=69h)
SeeAlso: AH=69h
--------b-1569------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY
AH = 69h
AL = mode
00h inhibit power down
01h allow power down
Return: AH = status
SeeAlso: AH=67h,AH=68h,AH=6Ah
--------b-156A------------------------------------
INT 15 - HUNTER 16 - CONTROL SLOW MODE
AH = 6Ah
AL = mode
00h inhibit Slow mode
01h allow Slow mode
Return: AH = status
SeeAlso: AH=69h
--------b-156B------------------------------------
INT 15 - HUNTER 16 - GET ROM BIOS VERSION
AH = 6Bh
Return: BH = version number (ASCII)
BL = release number (ASCII)
CH = minor release number (ASCII)
CL = minor release number (ASCII)
SeeAlso: AH=6Ch
--------b-156C------------------------------------
INT 15 - HUNTER 16 - GET SERIAL NUMBER
AH = 6Ch
Return: BL:CX = BCD serial number
Note: when shipped, all Hunter 16s have the same Serial Number, but a
different number can be stored (see AH=72h)
SeeAlso: AH=6Bh,AH=72h
--------b-156D------------------------------------
INT 15 - HUNTER 16 - GET EVENT DETAIL
AH = 6Dh
Return: AH = 00h if successful
CX:BX = event flags bit 0..31 (see #0370)
Note: this function allows testing for events
SeeAlso: AH=6Eh,AH=6Fh
Bitfields for HUNTER 16 events:
Bit(s) Description (Table 0370)
6 RI received
5 RTC Alarm
4 data received on COM2
3 data received on COM1
2 error on COM2
1 error on COM1
0 PWR button pressed
--------b-156E------------------------------------
INT 15 - HUNTER 16 - ENABLE/TRAP EVENT
AH = 6Eh
AL = Software Interrupt
00h do not trap event
else trap as software interrupt number AL
BH = event number (see AH=6Dh)
BL = enable mask
00h disable event
01h enable event
Return: AH = 00h if successful
SeeAlso: AH=6Dh,AH=6Fh
--------b-156F------------------------------------
INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT
AH = 6Fh
AL = event number (see AH=6Dh)
Return: AH = 00h if successful
Desc: Acknowledges the event, so the next similar event can be detected
SeeAlso: AH=6Dh"HUNTER",AH=6Eh
----------157000-----------------------------
INT 15 - Tandy 1000SL/TL - READ FROM EEPROM
AX = 7000h
BL = number of word to read (00h-3Fh)
Return: CF clear if function supported
DX = contents of EEPROM word
Note: newer Tandy 1000-series machines use EEPROM instead of CMOS RAM in
the clock chip to store system configuration information
SeeAlso: AX=7001h
----------157001-----------------------------
INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM
AX = 7001h
BL = number of word to read (00h-3Fh)
DX = new value for EEPROM word
Return: CF clear if function supported
Note: the EEPROMs are normally written only by the system setup program;
changing the values can badly mess up a Tandy
SeeAlso: AX=7000h
--------b-1570------------------------------------
INT 15 - HUNTER 16 - CONTROL SOUND
AH = 70h
AL = new state
00h disable sound
else enable sound
Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
--------b-1571------------------------------------
INT 15 - HUNTER 16 - SELECT POWER UP KEYS
AH = 71h
BL = column
BH = row
AL = column switch (00h disable, 01h enable)
CL = row switch (00h disable, 01h enable)
Return: AH = status
SeeAlso: AH=7Bh,AH=88h
--------b-157200----------------------------------
INT 15 - HUNTER 16 - RESET SERIAL NUMBER
AX = 7200h
Return: AH = 00h if successful
Desc: reset the serial number to the default serial number present when the
Hunter 16 was shipped
SeeAlso: AH=6Ch,AH=72h
--------b-1572------------------------------------
INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER
AH = 72h
AL nonzero
DS:BX -> new serial number (6 ASCII digits)
Return: AH = 00h if successful
Desc: install a new serial number
SeeAlso: AH=6Ch,AX=7200h
--------b-1573------------------------------------
INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL
AH = 73h
AL = drive (0: A:, 1: B:)
Return: AH = status
00h successful
FFh Oracle GT drive not connected
AL = power level in percent of maximum (0..100)
Desc: get the power remaining in the Oracle GT batteries
SeeAlso: AH=61h
--------b-1574------------------------------------
INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE
AH = 74h
AL = new level
01h off
02h unchanged
03h change level
BL = desired level (00h-7Fh)
Return: AH = status
Desc: select the backlight level to use when the Hunter is next turned on
SeeAlso: AH=64h,AH=75h,INT 10/AH=64h,INT 10/AH=78h
--------b-1575------------------------------------
INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE
AH = 75h
AL = new level
01h off
02h unchanged
03h change level
BL = desired level (00h-7Fh)
Return: AH = status
Desc: select the LCD contrast level to use when the Hunter is next turned on
SeeAlso: AH=63h,AH=74h
--------b-1576------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER SAVE
AH = 76h
BX = power save control (see #0371)
SeeAlso: AH=74h
Bitfields for HUNTER 16 power save control:
Bit(s) Description (Table 0371)
0 power save enabled
1 inhibit power save when waiting for COM1 data
2 inhibit power save when waiting for COM2 data
3 inhibit power save when waiting for data from barcode wand
4 inhibit power up on timer tick
--------b-1579------------------------------------
INT 15 - HUNTER 16 - REDIRECT LPT1
AH = 79h
AL = port to which to redirect (00h COM1, 01h COM2)
--------b-157A------------------------------------
INT 15 - HUNTER 16 - INVOKE HOT KEY
AH = 7Ah
Desc: this function has the same effect as pressing the HOT key
SeeAlso: AH=7Bh
--------b-157B------------------------------------
INT 15 - HUNTER 16 - CONTROL HOT KEY
AH = 7Bh
AL = 00h prevent HOT key
else allow HOT key
Desc: Allow or prevent the HOT key function which is used to examine and
change the Hunter setup
SeeAlso: AH=71h,AH=7Ah,AH=7Ch
--------b-157C------------------------------------
INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION
AH = 7Ch
AL = 00h prevent HOT key power option
else allow HOT key power option
Desc: allow or prevent changing the power options
SeeAlso: AH=7Bh,AH=7Dh
--------b-157D------------------------------------
INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF
AH = 7Dh
AL = 00h turn off after 10 warnings
else never turn off
Desc: specify whether the Hunter 16 turns off after 10 low power warnings
SeeAlso: AH=7Ch
--------b-157E------------------------------------
INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM)
AH = 7Eh
AL = 00h do not prompt
else prompt
Desc: select whether the user is prompted for the battery state if the
battery cap has been off when the system is turned on
SeeAlso: AH=7Fh
--------b-157F------------------------------------
INT 15 - HUNTER 16 - SET BATTERY TYPE (APM)
AH = 7Fh
AL = battery type
00h non-rechargeable
else rechargeable
SeeAlso: AH=7Eh
--------B-1580-------------------------------
INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
AH = 80h
BX = device ID
CX = process ID
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0372)
Note: this function should be hooked by a multitasker which wishes to keep
track of device ownership; the default BIOS handler merely returns
successfully
SeeAlso: AH=81h,AH=82h
(Table 0372)
Values for status:
80h invalid command (PC,PCjr)
86h function not supported (XT)
--------b-1580------------------------------------
INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
AH = 80h
AL = function
00h get
Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA)
else set
BL = battery capacity (same as AL above)
SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"
--------B-1581-------------------------------
INT 15 C - OS HOOK - DEVICE CLOSE
AH = 81h
BX = device ID
CX = process ID
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0372)
Note: this function should be hooked by a multitasker which wishes to keep
track of device ownership; the default BIOS handler merely returns
successfully
SeeAlso: AH=80h,AH=82h
--------b-1581------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
AH = 81h
AL = new state of power output (00h off, nonzero on)
Desc: turn the +5V low power output on or off
SeeAlso: AH=80h"HUNTER"
--------B-1582-------------------------------
INT 15 C - OS HOOK - PROGRAM TERMINATION
AH = 82h
BX = process ID
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0372)
Notes: closes all devices opened by the given process ID with function 80h
this function should be hooked by a multitasker which wishes to keep
track of device ownership; the default BIOS handler merely returns
successfully
SeeAlso: AH=80h,AH=81h
--------b-1582------------------------------------
INT 15 - HUNTER 16 - SOUND OUTPUT
AH = 82h
DX = length (duration in seconds = DX * 666670 / frequency)
BX = pitch (see #0373)
Desc: Sound the tone specified in BX for the duration in DX
SeeAlso: AX=1019h
(Table 0373)
Values for HUNTER 16 sound pitch:
BX(dec) Note Frequency BX(dec) Note Frequency
425 G 1568.000 1515 A 440.000
451 F# 1479.503 1605 G# 415.307
477 F 1396.900 1701 G 392.000
506 E 1318.500 1802 F# 369.998
536 D# 1244.523 1909 F 349.230
568 D 1174.700 2022 E 329.630
601 C# 1108.749 2143 D# 311.127
637 C 1046.500 2270 D 293.660
675 B 958.770 2405 C# 277.183
715 A# 932.329 2548 MID C 261.630
758 A 880.000 2700 B 246.940
803 G# 830.609 2860 A# 233.081
850 G 783.990 3030 A 220.000
901 F# 739.990 3210 G# 207.654
954 F 698.460 3401 G 196.000
1011 E 659.260 3604 F# 184.996
1071 D# 622.257 3818 F 174.610
1135 D 587.330 4045 E 164.810
1203 C# 554.365 4286 D# 155.560
1274 C 523.250 4540 D 146.830
1350 B 493.880 4668 C# 142.827
1430 A# 466.162 4803 C 138.810
--------B-1583-------------------------------
INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
AH = 83h
AL = subfunction
00h set interval
CX:DX = microseconds to delay
ES:BX -> byte whose high bit is to be set at end of interval
01h cancel wait interval
Return: CF set on error or function already busy
AH = status
80h invalid command (PC,PCjr)
86h function not supported (XT and later)
CF clear if successful
Notes: the resolution of the wait period is 977 microseconds on most systems
because most BIOSes use the 1/1024 second fast interrupt from the AT
real-time clock chip which is available on INT 70
IBM AT 1/10/84 BIOS ignores AL and always performs subfunction 00h
SeeAlso: AH=41h,AH=86h,INT 70
--------b-1583------------------------------------
INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
AH = 83h
AL = state of LCD window (00h disabled, nonzero enabled)
Desc: Enable/disable the facility where the displayed window tracks the
cursor output to keep the focus visible
--------B-1584-------------------------------
INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
AH = 84h
DX = subfunction
0000h read joystick switches
Return: AL bits 7-4 = switch settings
0001h read positions of joysticks
Return: AX = X position of joystick A
BX = Y position of joystick A
CX = X position of joystick B
DX = Y position of joystick B
Return: CF set on error
AH = status (see #0372)
CF clear if successful
Notes: if no game port is installed, subfunction 0000h returns AL=00h (all
switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
a 250kOhm joystick typically returns 0000h-01A0h
SeeAlso: AH=84h"V20-XT-BIOS"
--------U-1584-------------------------------
INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT
AH = 84h
DX = subfunction
0000h read joystick switches
Return: AL bits 7-4 = switch settings
other: read positions of joysticks as indicated by bits 0-3
Return: AX = X position of joystick A (if DX bit 0 set)
BX = Y position of joystick A (if DX bit 1 set)
CX = X position of joystick B (if DX bit 2 set)
DX = Y position of joystick B (if DX bit 3 set)
Return: CF set on error
AH = status (see #0372)
CF clear if successful
Program: V20-XT-BIOS is a BIOS extension by Peter Koehlmann / c't magazine
SeeAlso: AH=84h"PS",INT 10/AH=0Eh/CX=ABCDh
--------b-158400----------------------------------
INT 15 - HUNTER 16 - GET DISKETTE PORT
AX = 8400h
BH = Drive (0: A:, 1: B:)
Return: AL = Port (0: COM1, >0: COM2)
Desc: return the COM port used for the floppy drive
SeeAlso: AX=8401h
--------b-158401----------------------------------
INT 15 - HUNTER 16 - SET DISKETTE PORT
AX = 8401h
BH = Drive (0: A:, 1: B:)
BL = Port (0: COM1, >0: COM2)
Desc: set the COM port used for the floppy drive
SeeAlso: AX=8400h
--------B-1585-------------------------------
INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
AH = 85h
AL = SysReq key action (00h pressed, 01h released)
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0372)
Notes: called by keyboard decode routine
the default handler simply returns successfully; programs which wish
to monitor the SysReq key must hook this call
the SysReq key is often labeled SysRq
SeeAlso: INT 09
--------b-158500----------------------------------
INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
AX = 8500h
Desc: restore the standard power menu
SeeAlso: AX=8501h"HUNTER"
--------b-158501----------------------------------
INT 15 - HUNTER 16 - SET POWER MENU (APM)
AX = 8501h
BL = user software interrupt number
Desc: install an alternate power menu routine
SeeAlso: AX=8500h"HUNTER"
--------B-1586-------------------------------
INT 15 - BIOS - WAIT (AT,PS)
AH = 86h
CX:DX = interval in microseconds
Return: CF clear if successful (wait interval elapsed)
CF set on error or AH=83h wait already in progress
AH = status (see #0372)
Note: the resolution of the wait period is 977 microseconds on most systems
because most BIOSes use the 1/1024 second fast interrupt from the AT
real-time clock chip which is available on INT 70
SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70
--------b-1586------------------------------------
INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
AH = 86h
AL = function (00h get, nonzero set)
BX = 1234h
DS:SI -> 256-byte Attribute buffer
Note: In text modes each character has its attribute byte XOR'd with the
corresponding byte in the attribute table. If the attribute is 15,
15 is XOR'd with Table[15]
--------B-1587-------------------------------
INT 15 - SYSTEM - COPY EXTENDED MEMORY
AH = 87h
CX = number of words to copy (max 8000h)
ES:SI -> global descriptor table (see #0375)
Return: CF set on error
CF clear if successful
AH = status (see #0374)
Notes: copy is done in protected mode with interrupts disabled by the default
BIOS handler; many 386 memory managers perform the copy with
interrupts enabled
this function is incompatible with the OS/2 compatibility box
SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h
(Table 0374)
Values for extended-memory copy status:
00h source copied into destination
01h parity error
02h interrupt error
03h address line 20 gating failed
80h invalid command (PC,PCjr)
86h unsupported function (XT,PS30)
Format of global descriptor table:
Offset Size Description (Table 0375)
00h 16 BYTEs zeros (used by BIOS)
10h WORD source segment length in bytes (2*CX-1 or greater)
12h 3 BYTEs 24-bit linear source address, low byte first
15h BYTE source segment access rights (93h)
16h WORD zero
18h WORD destination segment length in bytes (2*CX-1 or greater)
1Ah 3 BYTEs 24-bit linear destination address, low byte first
1Dh BYTE destination segment access rights (93h)
1Eh 18 BYTEs zeros (used by BIOS)
--------b-1587------------------------------------
INT 15 - HUNTER 16 - SET INT 72h VECTOR
AH = 87h
DS:DX = new service routine
Desc: set the INT 72h vector which is called in 2 cases:
- when the machine is about to turn off or reboot, INT 72h is called
with AH=0
- when the machine is powering up INT 72h is called with AH=01h
Note: the actual INT 72h vector must also be changed with INT 21/AH=25h
--------B-1588-------------------------------
INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
AH = 88h
Return: CF clear if successful
AX = number of contiguous KB starting at absolute address 100000h
CF set on error
AH = status
80h invalid command (PC,PCjr)
86h unsupported function (XT,PS30)
Notes: TSRs which wish to allocate extended memory to themselves often hook
this call, and return a reduced memory size. They are then free to
use the memory between the new and old sizes at will.
the standard BIOS only returns memory between 1MB and 16MB; use AH=C7h
for memory beyond 16MB
not all BIOSes correctly return the carry flag, making this call
unreliable unless one first checks whether it is supported through
a mechanism other than calling the function and testing CF
SeeAlso: AH=87h,AH=C7h
--------b-1588------------------------------------
INT 15 - HUNTER 16 - GET POWER UP KEYS
AH = 88h
Return: AH = 00h
BX = column
CL = row
SeeAlso: AH=71h
--------B-1589-------------------------------
INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
AH = 89h
BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
ES:SI -> GDT for protected mode (see #0376)
Return: CF set on error
AH = FFh error enabling address line 20
CF clear if successful
AH = 00h
in protected mode at specified address
Notes: BL and BH must be multiples of 8
the protected-mode CS must reference the same memory as the CS this
function is called from because execution continues with the address
following the interrupt call
SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch
Format of BIOS switch-to-protected-mode Global Descriptor Table:
Offset Size Description (Table 0376)
00h 8 BYTEs null descriptor (initialize to zeros)
08h 8 BYTEs GDT descriptor (see #0377)
10h 8 BYTEs IDT descriptor
18h 8 BYTEs DS descriptor
20h 8 BYTEs ES
28h 8 BYTEs SS
30h 8 BYTEs CS
38h 8 BYTEs uninitialized, used to build descriptor for BIOS CS
Format of segment descriptor table entry:
Offset Size Description (Table 0377)
00h WORD segment limit, low word
02h 3 BYTEs segment base address, low 24 bits
05h BYTE access mode (see #0378)
06h BYTE 386+ extended access mode (see #0379)
07h BYTE 386+ segment base address, high 8 bits
SeeAlso: #0376,INT 2C/AX=0002h,INT 31/AX=0009h
Bitfields for segment descriptor table access mode field:
Bit(s) Description (Table 0378)
3-0 segment type
4 descriptor type (1 = application, 0 = system)
6-5 descriptor privilege level
7 segment is present in RAM
SeeAlso: #0377,#0379
Bitfields for 386+ segment descriptor table extended access mode field:
Bit(s) Description (Table 0379)
3-0 high 4 bits of segment limit
4 available
5 reserved (0)
6 default operation size (1 = 32 bits, 0 = 16 bits)
7 granularity (1 = 4K, 0 = byte)
SeeAlso: #0377,#0378,#1346
--------b-158900----------------------------------
INT 15 - HUNTER 16 - GET POWER MODE
AX = 8900h
Return: AH = 00h
BL = current power mode
00h Standard Power Mode (SPM)
01h Advanced Power Mode (APM)
SeeAlso: AX=8901h
--------b-158901----------------------------------
INT 15 - HUNTER 16 - SET POWER MODE
AX = 8901h
BL = new mode
00h Standard Power Mode (SPM)
01h Advanced Power Mode (APM)
Return: AH = 00h
SeeAlso: AX=8900h
--------b-158A------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
AH = 8Ah
AL = new state of Power Input (00h disabled, nonzero enabled)
SI = 1234h
DI = 5678h
Return: AH = status
00h success
FFh failure
Desc: Enable or disable Power Input. When Power Input is disabled the AC
adaptor will neither charge the batteries nor supply power to the
Hunter 16. Disable Power Input if using Alkaline batteries.
--------b-158B------------------------------------
INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
AH = 8Bh
AL = function
00h get
Return: BH = Maximum charging temperature
Temp = -20 + (n * 0.63) degrees Centigrade
BL = Minimum charging temperature
else set
BH = maximum charging temperature (as above)
BL = minimum charging temperature (as above)
Return: AH = status
00h success
FFh failure
Desc: get/set the temperature interval within which the charger should
operate
--------b-158C------------------------------------
INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
AH = 8Ch
AL = function
00h get
Return: BX = which operations disable power save (see #0380)
else set
BX = which operations should disable power save (see #0380)
SeeAlso: AH=8Dh
Bitfields for HUNTER 16 operations disabling power save:
Bit(s) Description (Table 0380)
0 INT 10h prevents power save
1 INT 13h prevents power save
2 INT 14h prevents power save
3 INT 15h prevents power save
4 INT 1Ah prevents power save
5 INT 21h prevents power save
6 direct write to video RAM prevents power save
7 access to 8250 UART prevents power save
8 access to 8253 (Sound) prevents power save
--------b-158D------------------------------------
INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
AH = 8Dh
AL = function
00h get
Return: AL = Fast Charge state (00h prevented, else allowed)
nonzero set
BH = Fast Charge state (00h prevent, nonzero allow)
Return: AH = status
00h success
FFh failure
Desc: control whether Fast Charging (200ma rather than 70ma) is allowed
SeeAlso: AH=8Ch
--------B-1590-------------------------------
INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
AH = 90h
AL = device type (see #0381)
ES:BX -> request block for type codes 80h through BFh
CF clear
Return: CF set if wait time satisfied
CF clear if driver must perform wait
AH = 00h
Notes: type codes are allocated as follows:
00-7F non-reentrant devices; OS must arbitrate access
80-BF reentrant devices; ES:BX points to a unique control block
C0-FF wait-only calls, no complementary INT 15/AH=91h call
floppy and hard disk BIOS code uses this call to implement a timeout;
for device types 00h and 01h, a return of CF set means that the
timeout expired before the disk responded.
this function should be hooked by a multitasker to allow other tasks
to execute while the BIOS is waiting for I/O completion; the default
handler merely returns with AH=00h and CF clear
SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h
(Table 0381)
Values for device type:
00h disk
01h diskette
02h keyboard
03h PS/2 pointing device
21h waiting for keyboard input (Phoenix BIOS)
80h network
FBh digital sound (Tandy)
FCh disk reset (PS)
FDh diskette motor start
FEh printer
--------B-1591-------------------------------
INT 15 - OS HOOK - DEVICE POST (AT,PS)
AH = 91h
AL = device type (see #0381)
ES:BX -> request block for type codes 80h through BFh
CF clear
Return: AH = 00h
Note: this function should be hooked by a multitasker to allow other tasks
to execute while the BIOS is waiting for I/O completion; the default
handler merely returns with AH=00h and CF clear
SeeAlso: AH=90h
----------15A100-----------------------------
INT 15 U - AMI PCI BIOS - SET ??? FLAG
AX = A100h
Return: AX = 0000h
CF clear
Desc: sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in
locations 3Eh and 3Fh
Note: in the examined version of the BIOS, nonzero values in AL cause it to
drop through to checking the next possible value of AH, i.e. only
subfunction 00h is supported
--------n-15BA10-----------------------------
INT 15 - HP OmniShare - Pen Driver - REPORT PEN CONTROL AREA EVENT
AX = BA10h
BL = event
00h the pen left control areas
01h the pen entered the Brightness- area
02h the pen entered the Brightness+ area
03h the pen entered the Contrast- area
04h the pen entered the Contrast+ area
Return: CF clear if successfully processed
CF set on error (function not supported, ie. not an OmniShare BIOS)
Note: The pen driver is responsible for detecting when the pen enters and
leaves control areas of the OmniShare tablet, and notifying the BIOS.
The BIOS manages the events, including the autorepetition, and sets
the status LEDs.
SeeAlso: AX=BA20h,AX=BA13h
--------n-15BA11-----------------------------
INT 15 - HP OmniShare - Pen Driver - SET THE COMMUNICATION LED STATE
AX = BA11h
BL = new LED state (00h steady, 01h flashing)
Return: CF clear if successful
CF set on error
Note: this function is for use by communication software to give visual
feedback of active communications even if the display is in standby
mode.
SeeAlso: AX=BA10h,AX=BA24h
--------n-15BA12-----------------------------
INT 15 - HP OmniShare - Pen Driver - STORE PEN BATTERY CHARGE
AX = BA12h
BL = new battery state (00h good, 01h low charge)
Return: CF set on error
CF clear if successfully stored in CMOS
Note: The last report will be displayed by the Power-On Self Test the next
time the OmniShare boots. This allows something meaningful to be
reported even if the pen is not detected during the POST.
SeeAlso: AX=BA13h
--------n-15BA13-----------------------------
INT 15 - HP OmniShare - Pen Driver - GET PEN BATTERY CHARGE
AX = BA13h
Return: CF clear if successful
BL = pen battery state (00h good, 01h low charge)
CF set on error
Note: returns the last value set by AX=BA12h.
SeeAlso: AX=BA12h
--------p-15BA20-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - INSTALLATION CHECK
AX = BA20h
Return: CF clear if successful (installed)
CF set on error (not installed)
Notes: The display controller can enter a standby mode after a given timeout,
to conserve power or (for the OmniShare) to increase the life of
the backlight.
A side effect of standby mode is that the communications LED turns on
automatically when the display is in standby mode. This is done in
hardware, and is intended to show that the unit is still on.
SeeAlso: AX=BA10h,AX=BA20h,AX=BA22h,AX=BA24h,AX=BA26h
--------p-15BA21-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - SET STANDBY DURATION
AX = BA21h
BL = new timeout before standby mode in minutes (01h-0Fh)
00h to disable automatic switch to standby mode
Return: CF clear if successful
CF set on error (function not supported)
Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
instead of (N*60) seconds as documented.
SeeAlso: AX=BA20h,AX=BA22h
--------p-15BA22-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - GET STANDBY DURATION
AX = BA22h
Return: CF clear if successful
BL = standy duration in minutes (01h-0Fh), or 00h if disabled
CF set on error (function not supported)
Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
instead of (N*60) seconds as documented.
SeeAlso: AX=BA20h,AX=BA21h
--------p-15BA23-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - TURN ON THE SCREEN IMMEDIATELY
AX = BA23h
Return: CF clear if successful
CF set on error
SeeAlso: AX=BA11h,AX=BA20h,AX=BA24h
--------p-15BA24-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - TURN OFF THE SCREEN IMMEDIATELY
AX = BA24h
Return: CF clear if successful
CF set on error
Note: This function is not implemented yet. Reserved for future versions
of the OmniShare.
SeeAlso: AX=BA11h,AX=BA20h,AX=BA23h
--------p-15BA25-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - PREPARE FOR UNINSTALL
AX = BA25h
Return: CF clear if successful
AX = 25BAh
BX = PSP of STANDBY.COM resident portion
DX:CX -> previous INT 15 handler
CF set on error
Note: This function is used internally by the STANDBY.COM /u option, and
should not be used by application programs.
SeeAlso: AX=BA20h
--------p-15BA26-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - IS THE DISPLAY IN STANDBY MODE?
AX = BA26h
Return: CF clear if successful
AL = display state (00h active, 01h in standby mode)
CF set on error (function not supported)
SeeAlso: AX=BA20h,AX=BA23h
--------p-15BA27-----------------------------
INT 15 - HP OmniShare - STANDBY.COM - RESERVED FUNCTIONS
AX = BA27h to BA2Fh
Desc: reserved for future use
--------b-15BC-------------------------------
INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
AH = BCh
Return: CF clear
(Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count
(Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count
Note: this function reads system timer channel 0 twice, then does
calculations on the returned values to determine the delay loop
counter needed by the BIOS for beeps and floppy timeouts
SeeAlso: AX=2305h
--------E-15BF00-----------------------------
INT 15 - Rational Systems DOS/16M - ???
AX = BF00h
???
Return: ???
Note: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
SeeAlso: AX=BF02h
--------E-15BF01-----------------------------
INT 15 - Rational Systems DOS/16M - ???
AX = BF01h
???
Return: ???
Notes: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
called by DOS/4GW
SeeAlso: AX=BF00h,AX=BF02h
--------E-15BF02DX0000-----------------------
INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
AX = BF02h
DX = 0000h
Return: DX = nonzero if installed
DX:SI -> XBRK structure (see #0382)
Note: this function is also supported by DOS/4G
SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h
SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h
Format of DOS/16M XBRK structure:
Offset Size Description (Table 0382)
00h DWORD linear address of first available byte
04h DWORD linear address of last available byte + 1 ???
08h DWORD real-mode address of XBRK structure???
0Ch DWORD ???
10h 2 BYTEs ???
12h WORD segment of ???
14h 8 BYTEs ???
1Ch 512 BYTEs protected-mode IDT
21Ch N BYTEs protected-mode GDT
--------E-15BF03-----------------------------
INT 15 - Rational Systems DOS/4GW - UNINSTALL???
AX = BF03h
BX = PSP segment of extender
???
Return: ???
Note: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
SeeAlso: AX=BF06h
--------E-15BF04-----------------------------
INT 15 - Rational Systems DOS/4GW - ???
AX = BF04h
BX = PSP segment of extender
Return: nothing???
Notes: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h
SeeAlso: INT 2F/AX=1607h/BX=22C0h
--------E-15BF05-----------------------------
INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
AX = BF05h
BX = PSP segment of extender
Return: nothing???
Notes: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
calls INT 67/AX=DE01h if ???
--------E-15BF06-----------------------------
INT 15 - Rational Systems DOS/4GW - ???
AX = BF06h
BX = PSP segment of extender
???
Return: ???
Note: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
SeeAlso: AX=BF03h
--------E-15BFDCDX0000-----------------------
INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
AX = BFDCh
DX = 0000h
SI = 0000h
Return: DX = nonzero if installed
DX:SI -> XBRK structure (see #0382)
SeeAlso: AX=BF02h
--------E-15BFDEBX0000-----------------------
INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
AX = BFDEh
BX = 0000h
Return: AX = ??? (0003h)
BX = FFFFh
SeeAlso: AX=BF02h
--------E-15BFDEBX0001-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
AX = BFDEh
BX = 0001h
Return: BX = 0000h (success)
CX:DX -> name of process manager executable
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0002-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
AX = BFDEh
BX = 0002h
CX:DX -> ???
Return: BX = 0000h (success)
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003h
--------E-15BFDEBX0003-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0003h
Return: BX = 0000h (success)
CX:DX -> ???
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002h
--------E-15BFDEBX0004-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 0004h
CL = ???
Return: BX = 0000h (success)
CX:DX -> XBRK structure (see #0382)
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0005-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 0005h
CX = new value for ???
Return: BX = 0000h (success)
AX = old value of ???
DS:SI -> ??? (if AX nonzero on return)
ES:DI -> ??? (if AX zero on return)
Note: called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0006-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0006h
Return: BX = 0000h (success)
AH = interrupt number??? (BEh)
CX:DX = ???
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"
--------E-15BFDEBX0007-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
AX = BFDEh
BX = 0007h
CX:DX = ???
Return: BX = 0000h (success)
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006h
--------E-15BFDEBX0008-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 0008h
CX = segment of ???
DS = ???
Return: BX = status
0000h successful
AL = ??? (80h or C0h)
DX = ??? (0603h) if AL=C0h
0001h failed
AX = 0000h
Note: called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0009-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
AX = BFDEh
BX = 0009h
Return: BX = 0000h (success)
CX:DX -> full pathname to LOAD32.EXP
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX000A-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
AX = BFDEh
BX = 000Ah
Return: BX = 0000h (success)
AX = new value of ??? counter
Notes: also resets a variety of values if the counter goes negative
called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Bh
--------E-15BFDEBX000B-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
AX = BFDEh
BX = 000Bh
Return: AX = new value of ??? counter
Note: called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Ah
--------E-15BFDEBX000C-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Ch
CL = ???
00h
nonzero
Return: ???
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX000D-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Dh
???
Return: ???
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX000E-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Eh
DX:CX -> ???
Return: AX = segment of handle for calling task
BX = ??? (probably destroyed)
DX:CX -> ???
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013h
--------E-15BFDEBX000F-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Fh
Return: AX = segment of handle for calling task
BX = ??? (probably destroyed)
DX:CX -> ???
Note: identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h
SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010h
--------E-15BFDEBX0010-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
AX = BFDEh
BX = 0010h
Return: AX = segment of caller's task handle
BX destroyed
SeeAlso: AX=BFDEh/BX=000Fh
--------E-15BFDEBX0011-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0011h
Return: CX = code segment of DVDOS4GX.DVR
BX = ??? (0004h)
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0012-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0012h
Return: DX = code segment of DVDOS4GX.DVR
BX = ??? (012Ch)
CX = ??? (0006h)
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0013-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0013h
Return: DX:CX -> ???
SeeAlso: AX=BFDEh/BX=000Eh
--------E-15BFDEBX0014-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
AX = BFDEh
BX = 0014h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX,BX destroyed
SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
--------E-15BFDEBX0015-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
AX = BFDEh
BX = 0015h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX,BX destroyed
SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016h
--------E-15BFDEBX0016-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
AX = BFDEh
BX = 0016h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX = status
0000h no one owns mailbox
0001h mailbox has an owner
BX destroyed
SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
--------E-15BFDEBX0017-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
AX = BFDEh
BX = 0017h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX = segment of mailbox owner's handle
BX = segment of caller's task handle
SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016h
--------E-15BFDEBXFFFD-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = FFFDh
Return: CX:DX = ???
SeeAlso: AX=BFDEh/BX=FFFEh
--------E-15BFDEBXFFFE-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
AX = BFDEh
BX = FFFEh
CX:DX = ???
SeeAlso: AX=BFDEh/BX=FFFDh
--------E-15BFDEBXFFFF-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
AX = BFDEh
BX = FFFFh
SeeAlso: AX=BFDEh/BX=0000h
--------B-15C0-------------------------------
INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)
AH = C0h
Return: CF set if BIOS doesn't support call
CF clear on success
ES:BX -> ROM table (see #0383)
AH = status
00h successful
86h unsupported function
Notes: the 1/10/86 XT BIOS returns an incorrect value for the feature byte
the configuration table is at F000h:E6F5h in 100% compatible BIOSes
Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
and a model byte at absolute address FE845h (see #0389)
Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
a product identifier at F000h:00FAh (see #0392)
Compaq machines can be identified by the signature string "COMPAQ" at
F000h:FFEAh, and is preceded by additional information (see #0390)
Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in
the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the
first three data bytes (model/submodel/revision) in the returned
table
Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of
a laptop information record at F000h:E000h (see #0393)
some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
past the end of the configuration table
the Phoenix 386 BIOS contains a second version and date string
(presumably the last modification for that OEM version) beginning at
F000h:FFD8h, with each byte doubled (so that both ROM chips contain
the complete information)
SeeAlso: AH=C7h,AH=C9h,AH=D1h
Format of ROM configuration table:
Offset Size Description (Table 0383)
00h WORD number of bytes following
02h BYTE model (see #0388)
03h BYTE submodel (see #0388)
04h BYTE BIOS revision: 0 for first release, 1 for 2nd, etc.
05h BYTE feature byte 1 (see #0384)
06h BYTE feature byte 2 (see #0385)
07h BYTE feature byte 3 (see #0386)
08h BYTE feature byte 4 (see #0387)
09h BYTE feature byte 5:
reserved (0) (IBM)
??? (08h) (Phoenix 386 v1.10)
---AWARD BIOS---
0Ah N BYTEs AWARD copyright notice
---Phoenix BIOS---
0Ah BYTE ??? (00h)
0Bh BYTE major version
0Ch BYTE minor version (BCD)
0Dh 4 BYTEs ASCIZ string "PTL" (Phoenix Technologies Ltd)
---Quadram Quad386---
0Ah 17 BYTEs ASCII signature string "Quadram Quad386XT"
Bitfields for feature byte 1:
Bit(s) Description (Table 0384)
7 DMA channel 3 used by hard disk BIOS
6 2nd 8259 installed
5 Real-Time Clock installed
4 INT 15/AH=4Fh called upon INT 09h
3 wait for external event (INT 15/AH=41h) supported
2 extended BIOS area allocated (usually at top of RAM)
1 bus is Micro Channel instead of ISA
0 system has dual bus (Micro Channel + ISA)
SeeAlso: #0383,#0385
Bitfields for feature byte 2:
Bit(s) Description (Table 0385)
7 reserved
6 INT 16/AH=09h (keyboard functionality) supported (see #0445)
5 INT 15/AH=C6h (get POS data) supported
4 INT 15/AH=C7h (return memory map info) supported
3 INT 15/AH=C8h (en/disable CPU functions) supported
2 non-8042 keyboard controller
1 data streaming supported
0 reserved
SeeAlso: #0383,#0386,AH=C6h,AH=C7h,AH=C8h,INT 16/AH=09h
Bitfields for feature byte 3:
Bit(s) Description (Table 0386)
7-5 reserved
4 ??? (set on 1992 PS/1's, N51SX, CL57SX, 35SX?, 40SX?)
3 SCSI subsystem supported on system board
2 information panel installed
1 IML (Initial Machine Load) system
0 SCSI supported in IML
SeeAlso: #0383,#0385,#0386
Bitfields for feature byte 4:
Bit(s) Description (Table 0387)
7 ??? (set on N51SX, CL57SX)
6-4 reserved
3 ??? (set on some 1992 PS/1's, 35SX, 40SX)
2-1 reserved
0 ??? (set on N51SX, CL57SX, 57SX)
SeeAlso: #0383,#0386
(Table 0388)
Values for model/submodel/revision:
Model Submdl Rev BIOS date System
FFh * * 04/24/81 PC (original)
FFh * * 10/19/81 PC (some bugfixes)
FFh * * 10/27/82 PC (HD, 640K, EGA support)
FFh 00h rev ??? Tandy 1000SL
FFh 01h rev ??? Tandy 1000TL
FFh 46h *** ??? Olivetti M15
FEh * * 08/16/82 PC XT
FEh * * 11/08/82 PC XT and Portable
FEh * * ../..x.. Toshiba laptops up to ~1987
("x"=product ID) (see #0394)
FEh 43h *** ??? Olivetti M240
FEh A6h ??? ??? Quadram Quad386
FDh * * 06/01/83 PCjr
FCh * * 01/10/84 AT models 068,099 6 MHz 20MB
FCh 00h 00h ??? PC3270/AT
FCh 00h 01h 06/10/85 AT model 239 6 MHz 30MB
FCh 00h > 01h ??? 7531/2 Industrial AT
FCh 01h 00h 11/15/85 AT models 319,339 8 MHz, Enh Keyb, 3.5"
FCh 01h 00h 09/17/87 Tandy 3000
FCh 01h 00h ../..x.. Toshiba laptops since ~1988
("x"=product ID) (see #0394)
FCh 01h 00h 03/08/93 Compaq DESKPRO/i
FCh 01h 00h various Compaq DESKPRO, SystemPro, ProSignia
FCh 01h 00h 07/20/93 Zenith Z-Lite 425L
FCh 01h 00h 04/09/90 AMI BIOS
FCh 01h 20h 06/10/92 AST
FCh 01h 30h ??? Tandy 3000NL
FCh 01h ??? ??? Compaq 286/386
FCh 02h 00h 04/21/86 PC XT-286
FCh 02h 00h various Compaq LTE Lite
FCh 02h 00h 08/05/93 Compaq Contura 486/486c/486cx
FCh 02h 00h 08/11/88 SoftWindows 1.0.1 (Power Macintosh)
FCh 04h 00h 02/13/87 ** PS/2 Model 50 (10 MHz/1 ws 286)
FCh 04h 01h 05/09/87 PS/2 Model 50 (10 Mhz 286, LW-type 32)
FCh 04h 02h ??? PS/2 Model 50
FCh 04h 02h 01/28/88 PS/2 Model 50Z (10 Mhz 286, LW-type 33)
FCh 04h 03h 04/18/88 PS/2 Model 50Z (10 MHz/0 ws 286)
FCh 04h 04h ??? PS/2 Model 50Z
FCh 05h 00h 02/13/87 ** PS/2 Model 60 (10 MHz 286)
FCh 06h 00h ??? IBM 7552-140 "Gearbox"
FCh 06h 01h ??? IBM 7552-540 "Gearbox"
FCh 08h *** ??? Epson, unknown model
FCh 08h 00h ??? PS/2 Model 25/286
FCh 09h 00h ??? PS/2 Model 25 (10 MHz 286)
FCh 09h 00h 08/25/88 PS/2 Model 30 286 (10 Mhz, LW-type 37)
FCh 09h 02h 06/28/89 PS/2 Model 30-286
FCh 09h 02h 06/28/89 PS/2 Model 25 286 (10 Mhz, LW-type 37)
FCh 0Bh 00h 12/01/89 PS/1 (LW-Type 44)
FCh 0Bh 00h 02/16/90 PS/1 Model 2011 (10 MHz 286)
FCh 20h 00h 02/18/93 Compaq ProLinea
FCh 30h *** ??? Epson, unknown model
FCh 31h *** ??? Epson, unknown model
FCh 33h *** ??? Epson, unknown model
FCh 42h *** ??? Olivetti M280
FCh 45h *** ??? Olivetti M380 (XP 1, XP3, XP 5)
FCh 48h *** ??? Olivetti M290
FCh 4Fh *** ??? Olivetti M250
FCh 50h *** ??? Olivetti M380 (XP 7)
FCh 51h *** ??? Olivetti PCS286
FCh 52h *** ??? Olivetti M300
FCh 81h 00h 01/15/88 Phoenix 386 BIOS v1.10 10a
FCh 81h 01h ??? "OEM machine"
FCh 82h 01h ??? "OEM machine"
FCh 94h 00h ??? Zenith 386
FBh 00h 01h 01/10/86 PC XT-089, Enh Keyb, 3.5" support
FBh 00h 01h 05/13/94 HP 200LX 2MB BIOS 1.01 A D german
FBh 00h 02h 05/09/86 PC XT
FBh 00h 04h 08/19/93 HP 100LX 1MB BIOS 1.04 A
FBh 4Ch *** ??? Olivetti M200
FAh 00h 00h 09/02/86 PS/2 Model 30 (8 MHz 8086)
FAh 00h 01h 12/12/86 PS/2 Model 30
FAh 00h 02h 02/05/87 PS/2 Model 30
FAh 01h 00h 06/26/87 PS/2 Model 25/25L (8 MHz 8086)
FAh 30h 00h ??? IBM Restaurant Terminal
FAh 4Eh *** ??? Olivetti M111
FAh FEh 00h ??? IBM PCradio 9075
F9h 00h 00h 09/13/85 PC Convertible
F9h FFh 00h ??? PC Convertible
F8h 00h 00h 03/30/87 ** PS/2 Model 80 (16MHz 386)
F8h 00h 00h ??? PS/2 Model 75 486 (33Mhz 486)
F8h 01h 00h 10/07/87 PS/2 Model 80 (20MHz 386)
F8h 02h 00h ??? PS/2 Model 55-5571
F8h 04h 00h 01/29/88 PS/2 Model 70 (20 Mhz 386DX,LW-type 33)
F8h 04h 02h 04/11/88 PS/2 Model 70 20MHz, type 2 system brd
F8h 04h 03h 03/17/89 PS/2 Model 70 20MHz, type 2 system brd
F8h 05h 00h ??? IBM PC 7568
F8h 06h 00h ??? PS/2 Model 55-5571
F8h 07h 00h ??? IBM PC 7561/2
F8h 07h 01h ??? PS/2 Model 55-5551
F8h 07h 02h ??? IBM PC 7561/2
F8h 07h 03h ??? PS/2 Model 55-5551
F8h 09h 00h 01/29/88 PS/2 Model 70 16MHz 386DX, type 1 sysbd
F8h 09h 02h 04/11/88 PS/2 Model 70 some models
F8h 09h 03h 03/17/89 PS/2 Model 70 some models
F8h 09h 04h 12/15/89 PS/2 Model 70 (16 Mhz 386, LW-type 33)
F8h 0Bh 00h 01/18/89 PS/2 Model P70 (8573-121) typ 2 sys brd
F8h 0Bh 02h 12/16/89 PS/2 Model P70 ??
F8h 0Ch 00h 11/02/88 PS/2 Model 55SX (16 MHz 386SX)
F8h 0Dh 00h ??? PS/2 Model 70 25MHz, type 3 system brd
F8h 0Dh 00h 06/08/88 PS/2 Model 70 386 25MHz, type 3 sys brd
F8h 0Dh 01h 02/20/89 PS/2 Model 70 386 25MHz, type 3 sys brd
F8h 0Dh ??? 12/01/89 PS/2 Model 70 486 25Mhz, type 3 sys brd
F8h 0Eh 00h ??? PS/1 486SX
F8h 0Fh 00h ??? PS/1 486DX
F8h 10h 00h ??? PS/2 Model 55-5551
F8h 11h 00h 10/01/90 PS/2 Model 90 XP (25 MHz 486)
F8h 12h 00h ??? PS/2 Model 95 XP
F8h 13h 00h 10/01/90 PS/2 Model 90 XP (33 MHz 486)
F8h 14h 00h 10/01/90 PS/2 Model 90-AK9 (25 MHz 486), 95 XP
F8h 15h 00h ??? PS/2 Model 90 XP
F8h 16h 00h 10/01/90 PS/2 Model 90-AKD / 95XP486 (33MHz 486)
F8h 17h 00h ??? PS/2 Model 90 XP
F8h 19h 05h ??? PS/2 Model 35/35LS or 40 (20 MHz 386SX)
F8h 19h 05h 03/15/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
F8h 19h 06h 04/04/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
F8h 1Ah 00h ??? PS/2 Model 95 XP
F8h 1Bh 00h 09/29/89 PS/2 Model 70 486 (25 Mhz 386DX)
F8h 1Bh 00h 10/02/89 PS/2 Model 70-486 (25 MHz 486)
F8h 1Ch 00h 02/08/90 PS/2 Model 65-121 / 65 SX (16MHz 386SX)
F8h 1Eh 00h 02/08/90 PS/2 Model 55LS (16 MHz 386SX)
F8h 23h 00h ??? PS/2 Model L40 SX
F8h 23h 01h ??? PS/2 Model L40 SX (20 MHz 386SX)
F8h 23h 02h 02/27/91 PS/2 Model L40 SX (20Mhz386SX,LW-typ37)
F8h 25h 00h ??? PS/2 Model 57 SLC
F8h 25h 06h ??? PS/2 Model M57 (20 MHz 386SLC)
F8h 26h 00h ??? PS/2 Model 57 SX
F8h 26h 01h ??? PS/2 Model 57 (20 MHz 386SX)
F8h 26h 02h 07/03/91 PS/2 Model 57 SX (20Mhz 386SX, SCSI)
F8h 28h 00h ??? PS/2 Model 95 XP
F8h 29h 00h ??? PS/2 Model 90 XP
F8h 2Ah 00h ??? PS/2 Model 95 XP (50 MHz 486)
F8h 2Bh 00h ??? PS/2 Model 90 / 90XP486 (50 MHz 486)
F8h 2Ch 00h ??? PS/2 Model 95 XP
F8h 2Ch 01h ??? PS/2 Model 95 (20 MHz 486SX)
F8h 2Dh 00h ??? PS/2 Model 90 XP (20 MHz 486SX)
F8h 2Eh 00h ??? PS/2 Model 95 XP
F8h 2Eh 00h ??? PS/2 Model 95 XP486 (20 Mhz 486SX)
F8h 2Eh 01h ??? PS/2 Model 95 (20 MHz 486SX + 487SX)
F8h 2Fh 00h ??? PS/2 Model 90 XP (20 MHz 486SX + 487SX)
F8h 30h 00h ??? PS/1 Model 2121 (16 MHz 386SX)
F8h 33h 00h ??? PS/2 Model 30-386
F8h 34h 00h ??? PS/2 Model 25-386
F8h 36h 00h ??? PS/2 Model 95 XP
F8h 37h 00h ??? PS/2 Model 90 XP
F8h 38h 00h ??? PS/2 Model 57
F8h 39h 00h ??? PS/2 Model 95 XP
F8h 3Fh 00h ??? PS/2 Model 90 XP
F8h 40h 00h ??? PS/2 Model 95 XP
F8h 41h 00h ??? PS/2 Model 77
F8h 45h 00h ??? PS/2 Model 90 XP (Pentium)
F8h 46h 00h ??? PS/2 Model 95 XP (Pentium)
F8h 47h 00h ??? PS/2 Model 90/95 E (Pentium)
F8h 48h 00h ??? PS/2 Model 85
F8h 49h 00h ??? PS/ValuePoint 325T
F8h 4Ah 00h ??? PS/ValuePoint 425SX
F8h 4Bh 00h ??? PS/ValuePoint 433DX
F8h 4Eh 00h ??? PS/2 Model 295
F8h 50h 00h ??? PS/2 Model P70 (8573) (16 MHz 386)
F8h 50h 01h 12/16/89 PS/2 Model P70 (8570-031)
F8h 52h 00h ??? PS/2 Model P75 (33 MHz 486)
F8h 56h 00h ??? PS/2 Model CL57 SX
F8h 57h 00h ??? PS/2 Model 90 XP
F8h 58h 00h ??? PS/2 Model 95 XP
F8h 59h 00h ??? PS/2 Model 90 XP
F8h 5Ah 00h ??? PS/2 Model 95 XP
F8h 5Bh 00h ??? PS/2 Model 90 XP
F8h 5Ch 00h ??? PS/2 Model 95 XP
F8h 5Dh 00h ??? PS/2 Model N51 SLC
F8h 5Eh 00h ??? IBM ThinkPad 700
F8h 61h *** ??? Olivetti P500
F8h 62h *** ??? Olivetti P800
F8h 80h 00h ??? PS/2 Model 80 (25 MHz 386)
F8h 80h 01h 11/21/89 PS/2 Model 80-A21 (25 Mhz 386)
F8h 81h 00h ??? PS/2 Model 55-5502
F8h 87h 00h ??? PS/2 Model N33SX
F8h 88h 00h ??? PS/2 Model 55-5530T
F8h 97h 00h ??? PS/2 Model 55 Note N23SX
F8h 99h 00h ??? PS/2 Model N51 SX
F8h F2h 30h ??? Reply Model 32
F8h F6h 30h ??? Memorex Telex
F8h FDh 00h ??? IBM Processor Complex (with VPD)
F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX)
F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX)
F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX + 487SX)
F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX + 487SX)
E1h ??? ??? ??? ??? (checked for by DOS4GW.EXE)
E1h 00h 00h ??? PS/2 Model 55-5530 Laptop
9Ah * * ??? Compaq XT/Compaq Plus
30h ??? ??? ??? Sperry PC
2Dh * * ??? Compaq PC/Compaq Deskpro
??? 56h ??? ??? Olivetti, unknown model
??? 74h ??? ??? Olivetti, unknown model
Notes:
* This BIOS call is not implemented in these early versions.
Read Model byte at F000h:FFFEh and BIOS date at F000h:FFF5h.
** These BIOS versions require the DASDDRVR.SYS patches.
*** These Olivetti and Epson machines store the submodel in the byte at
F000h:FFFDh.
SeeAlso: #0383,#0389
(Table 0389)
Values for Dell model byte:
02h Dell 200
03h Dell 300
05h Dell 220
06h Dell 310
07h Dell 325
09h Dell 310A
0Ah Dell 316
0Bh Dell 220E
0Ch Dell 210
0Dh Dell 316SX
0Eh Dell 316LT
0Fh Dell 320LX
11h Dell 425E
SeeAlso: #0383,#0388
Format of Compaq product information:
Address Size Description (Table 0390)
F000h:FFE4h BYTE product family code (first byte)
F000h:FFE4h BYTE Point release number
F000h:FFE4h BYTE ROM version code
F000h:FFE4h BYTE product family code (second byte)
F000h:FFE8h WORD BIOS type code
SeeAlso: #0391,#0393
Format of Hewlett-Packard ROM ID at F000h:00F8h:
Offset Size Description (Table 0391)
00h 2 BYTEs signature "HP" (48h 50h)
02h 2 BYTEs 00h 00h
04h BYTE secondary code revision
05h BYTE primary code revision
06h BYTE date code, year-1960 (BCD)
07h BYTE date code, week of year (BCD)
SeeAlso: #0390,#0392
Bitfields for Hewlett-Packard product identifier:
Bit(s) Description (Table 0392)
4-0 machine code
0 original Vectra
1 ES/12
2 RS/20
3 Portable/CS
4 ES
5 CS
6 RS/16
other reserved
7-5 CPU type
0 = 80286
1 = 8088
2 = 8086
3 = 80386
other reserved
SeeAlso: #0391
Format of Toshiba laptop information:
Offset Size Description (Table 0393)
00h 8 BYTEs ASCII product number (e.g. "T2200SX ")
08h 8 BYTEs ASCII version number (e.g. "V1.20 ")
10h 8 BYTEs ASCII signature string "TOSHIBA "
18h 8 BYTEs always zero???
20h DWORD -> built-in BIOS setup program entry point or 0000h:0000h
Note: this record is located at F000h:E000h
SeeAlso: #0390,#0391
(Table 0394)
Values for Toshiba product ID:
model prodID version date product number /hdd
FEh 29h ../..).. Toshiba T1000LE
FEh 2Ah ../..*.. Toshiba T1000XE
FEh 2Bh ../..+.. Toshiba T1000SE
FEh 2Ch ../..,.. Toshiba T1000 -
FEh 2Dh ../..-.. Toshiba T1200F -
FEh 2Dh V4.00 12/26-87 Toshiba T1200H /20
FEh 2Eh ../..... Toshiba T1100+
FCh 22h ../..".. Toshiba T8500
FCh 26h 01/15&88 Toshiba T5200 /100
FCh 27h ../..'.. Toshiba T5100
FCh 28h ../..(.. Toshiba T2000
FCh 2Ah 12/26*89 Toshiba T1200XE
FCh 2Bh ../..+.. Toshiba T1600
FCh 2Ch ../..,.. Toshiba T3100e
FCh 2Dh ../..-.. Toshiba T3200
FCh 2Fh ../../.. Toshiba T3100
FCh 34h ../..4.. Toshiba T100X
FCh 38h ../..8.. Toshiba T2000SXe
FCh 39h V1.20 09/16991 Toshiba T2200SX /60
FCh 39h V1.40 10/01992 Toshiba T2200SX /120 (upgraded)
FCh 3Ch V1.50 01/28<91 toshiba="" t2000sx="" 0="" fch="" 3dh="" ../..=".." toshiba="" t3200sxc="" fch="" 3eh="" ../..="">.. Toshiba T3100SX
FCh 3Fh ../..?.. Toshiba T3200SX
FCh 40h ../..@.. Toshiba T4500C
FCh 41h 04/05A92 Toshiba T4500 ("T4500SXC" ?)
FCh 45h V3.20 04/14E92 Toshiba T4400SX ("C" or "SXC" on cover)
FCh 45h 01/13E93 Toshiba T4400SXC
FCh 46h * ../..F.. Toshiba T6400
FCh 46h * ../..F.. Toshiba T6400C
FCh 5Fh ../.._.. Toshiba T3300SL
FCh 69h ../..i.. Toshiba T1900C
FCh 6Ah ../..j.. Toshiba T1900
FCh 6Dh ../..m.. Toshiba T1850C
FCh 6Eh V1.00 08/19n92 Toshiba T1850
FCh 6Eh 12/25n92 Toshiba T1850
FCh 6Fh 07/17o92 Toshiba T1800
FCh 7Eh V1.30 06/17~93 Toshiba T4600C
FCh 7Fh ../..x.. Toshiba T4600
FCh 8Ah ../..x.. Toshiba T6600C
FCh 91h ../..x.. Toshiba T2400CS
FCh 91h V1.20 07/15x94 Toshiba T2400CT
FCh 92h ../..x.. Toshiba T3600CT
FCh 96h * ../..x.. Toshiba T200
FCh 96h * ../..x.. Toshiba T200CS
FCh 97h ../..x.. Toshiba T4800CT
FCh 98h * V1.10 12/22x93 Toshiba T1910 /120 /320
FCh 98h * ../..x.. Toshiba T1910CS
FCh 99h ../..x.. Toshiba T4700CS
FCh 9Bh V2.30 01/31x94 Toshiba T4700CT
FCh 9Bh V2.50 03/22x94 Toshiba T4700CT /320
FCh 9Ch V1.30 01/11x94 Toshiba T1950CT /320
FCh 9Dh * ../..x.. Toshiba T1950
FCh 9Dh * ../..x.. Toshiba T1950CS
FCh 9Eh * V1.20 12/25x93 Toshiba T3400 /120
FCh 9Eh * V1.30 03/22x94 Toshiba T3400 /250
FCh 9Eh * ../..x.. Toshiba T3400CT
FCh ??? ../.. .. Toshiba T1900S
FCh ??? ../.. .. Toshiba T1900CT
Note: BIOS version numbers and dates may vary, esp. due to harddisk and
flash BIOS upgrades
the 8-bit ASCII graphics character in the "date" column above
has been substituted by "x" because it depends on code page
[*] These models have monochrome and color versions which can only be
distinguished with INT 42/AX=7503h
SeeAlso: #0388
--------B-15C1-------------------------------
INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
AH = C1h
Return: CF set on error
CF clear if successful
ES = segment of data area
SeeAlso: AH=04h"ABIOS"
--------M-15C200-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
AX = C200h
BH = new state
00h disabled
01h enabled
Return: CF set on error
AH = status (see #0395)
(Table 0395)
Values for pointing device function status:
00h successful
01h invalid function
02h invalid input
03h interface error
04h need to resend
05h no device handler installed
--------M-15C201-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
AX = C201h
Return: CF set on error
AH = status (see #0395)
CF clear if successful
BH = device ID
BL = value returned by attached device after reset
AAh if device is a mouse
Note: after successful completion of this call, the pointing device is set
as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm,
scaling 1:1, unchanged data package size
SeeAlso: INT 33/AX=0000h
--------M-15C202-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
AX = C202h
BH = sampling rate
00h 10/second
01h 20/second
02h 40/second
03h 60/second
04h 80/second
05h 100/second
06h 200/second
Return: CF set on error
AH = status (see #0395)
SeeAlso: INT 33/AX=001Ch
--------M-15C203-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
AX = C203h
BH = resolution (see #0396)
Return: CF set on error
AH = status (see #0395)
(Table 0396)
Values for pointing device resolution:
00h one count per mm
01h two counts per mm
02h four counts per mm
03h eight counts per mm
--------M-15C204-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
AX = C204h
Return: CF set on error
AH = status (see #0395)
CF clear if successful
BH = device ID
--------M-15C205-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
AX = C205h
BH = data package size (1 - 8 bytes)
Return: CF set on error
AH = status (see #0395)
Note: the pointing device is set as follows: disabled, 100 Hz sample rate,
resolution 4 counts/mm, scaling 1:1
SeeAlso: AX=C201h
--------M-15C206-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
AX = C206h
BH = subfunction
00h return device status
Return: BL = pointing device status (see #0397)
CL = resolution (see #0396)
DL = sample rate, reports per second
01h set scaling at 1:1
02h set scaling at 2:1
Return: CF set on error
AH = status (see #0395)
Bitfields for pointing device status:
Bit(s) Description (Table 0397)
0 right button pressed
1 reserved
2 left button pressed
3 reserved
4 0 if 1:1 scaling, 1 if 2:1 scaling
5 device enabled
6 0 if stream mode, 1 if remote mode
7 reserved
--------M-15C207-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
AX = C207h
ES:BX -> FAR user device handler or 0000h:0000h to cancel
Return: CF set on error
AH = status (see #0395)
Note: when the subroutine is called, it is passed the following values on
the stack; the handler should return with a FAR return without
popping the stack:
WORD 1: status (see #0398)
WORD 2: X data (high byte = 00h)
WORD 3: Y data (high byte = 00h)
WORD 4: 0000h
SeeAlso: INT 33/AX=000Ch
Bitfields for pointing device status:
Bit(s) Description (Table 0398)
15-8 reserved (0)
7 Y data overflowed
6 X data overflowed
5 Y data is negative
4 X data is negative
3 reserved (1)
2 reserved (0)
1 right button pressed
0 left button pressed
--------B-15C3------------------------------
INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
AH = C3h
AL = function
00h disable PS/2 watchdog timer
01h enable PS/2 watchdog timer
BX = timer counter (0001h-00FFh)
02h disable Gearbox system
03h enable Gearbox system
Return: CF set on error
CF clear if successful
Note: the watchdog timer generates an NMI
SeeAlso: INT 21/AH=2Bh/CX=6269h/DX=742Dh
--------B-15C4-------------------------------
INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
AH = C4h
AL = subfunction
00h return base POS register address
01h enable selected slot for setup
BL = slot number (1 to 8)
02h disable setup for all slots (enable adapter)
Return: CF set on error
DX = base POS register address (if subfunction 00h)
SeeAlso: AH=C6h
--------B-15C5-------------------------------
INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
AH = C5h
AL = interrupt being invoked
01h INT 19
02h INT 14
03h INT 16
04h INT 40 (floppy INT 13)
05h INT 17
06h INT 10
07h INT 12
08h INT 11
09h INT 1A
Return: all registers except AX must be preserved
Notes: called as the very first action of the indicated ROM BIOS interrupt
handlers on the PS/2 Models 30/286, 50Z, and 95
default handler does nothing and returns CF clear for the above
subfunctions, CF set and AH=86h for all other subfunctions
value of AX passed to the original interrupt handler is pushed on
stack immediately prior to call
--------B-15C6-------------------------------
INT 15 U - later PS/2 models - GET POS DATA
AH = C6h
???
Return: ???
Notes: this function is referenced by name and number in some IBM BIOS manuals
IBM reports that "there are a number of problems with this call" and
does not recommend its use.
SeeAlso: AH=C4h
--------B-15C7-------------------------------
INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
AH = C7h
DS:SI -> user supplied memory map table (see #0399)
Note: call AH=C0h and examine bit 4 of feature byte 2 to check if this
function is supported
Return: CF set on error, clear if successful
SeeAlso: AH=C0h,AH=C9h,AH=D1h
Format of memory-map table structure:
Offset Size Description (Table 0399)
00h WORD length of table (excluding this word)
02h DWORD local memory between 1M and 16M, in 1K blocks
06h DWORD local memory between 16M and 4G, in 1K blocks
0Ah DWORD system memory between 1M and 16M, in 1K blocks
0Eh DWORD system memory between 16M and 4G, in 1K blocks
12h DWORD cacheable memory between 1M and 16M, in 1K blocks
16h DWORD cacheable memory between 16M and 4G, in 1K blocks
1Ah DWORD 1K blocks before start of non-system memory between 1M and 16M
1Eh DWORD 1K blocks before start of non-system memory between 16M and 4G
22h 2 DWORDs reserved
--------B-15C8-------------------------------
INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
AH = C8h
AL = function
00h disable cache or (90 and 95) disable cache L1
01h enable cache or (90 and 95) enable cache L1
---models 90 and 95 only---
02h disable cache L2
03h enable cache L2
04h disable both caches
05h enable both caches
06h return status of both caches
07h-FFh Reserved
Return: CF set on error
CF clear if successful
AH = status (see #0400)
For subfunction 06h only:
BH = status of cache L2
00h enabled
01h disabled or not installed
BL = status of cache L1 (same codes as BH)
Notes: supported by at least PS/2 70, 70/486, 80-A21, 90, 95
call AH=C0h and examine bit 3 of feature byte 2 to check if this
function is supported.
on a 486 system, any external caches must be disabled when the
on-chip cache (L1) is disabled.
SeeAlso: AH=C0h
(Table 0400)
Values for status:
00h operation successful
01h function choice (in AL) is invalid
02h NVRAM data is invalid
03h cache test error
04h (90 and 95 only) cannot perform operation requested due to state of
other cache (see note above)
05h no L2 cache is present
09h CPU in protected mode
--------B-15C9-------------------------------
INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
AH = C9h
AL = 10h (may be required on some non-PS BIOSes)
Return: CF clear if successful
AH = 00h
CH = CPU type (see #0401)
CL = mask revision (stepping level) (see #0402)
CF set on error
AH = status (80h,86h = function not supported)
Notes: the BIOS must save DX at startup in order to be able to support this
call; PS/2 Models 56, 57, 90, and 95 are known to support it
the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)
(Table 0401)
Values for CPU type:
03h 80386DX or clone
04h 80486
05h Pentium
23h 80386SX or clone
33h Intel i376
43h 80386SL or clone
A3h IBM 386SLC
A4h IBM 486SLC
(Table 0402)
Values for stepping level:
---i376 (type code 33h)---
05h A0
08h B
---80386/80386DX (type code 03h)---
03h Intel B1 to B10, Am386DX/DXL step A
05h Intel D0
08h Intel D1/D2/E1, Am386DX/DXL step B
---80386SL (type code 43h)---
05h A
1xh B
---80386SX (type code 23h)---
04h Intel A0
05h Intel B, Am386SX/SXL step A1
08h Intel C/D1, Am386SX/SXL step B
09h Intel 386CX/386EX/386SXstatic step A
---80486DX (type code 04h)---
00h Intel A0/A1
01h Intel B2 to B6
02h Intel C0
03h Intel C1
04h Intel D0
10h Intel cA2/cA3, Cx486SLC step A
11h Intel cB0/cB1
---486DX2 (type code 04h)---
02h Am486DX2 (unknown stepping)
32h Intel DX2/Overdrive steps A0 to A2
33h Intel DX2/Overdrive step B1
---486SX (type code 04h)---
20h Intel A0
22h Intel B0
27h Intel cA0
28h Intel cB0
---486SL (type code 04h)---
40h Intel A
---IntelSX2 (type code 04h)---
5xh Intel A
---IntelDX4 (type code 04h)---
8xh Intel A
---487SX (type code 04h)---
20h Intel A0
21h Intel B0
---Pentium (type code 05h)---
0xh Intel P5 steps Ax (1993)
1xh Intel P5 steps Bx (1994)
2xh Intel P54C step A
---RapidCAD (type code 03h)---
40h A
--------B-15CA-------------------------------
INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY
AH = CAh
AL = function
00h read CMOS
Return: CL = value of CMOS location
01h write CMOS
CL = new value for CMOS location
BL = CMOS location (0Eh-3Fh)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (see #0403)
Note: writes do not update the CMOS checksum
(Table 0403)
Values for CMOS read/write error code:
01h CMOS lost power or has invalid checksum
03h specified location out of range (too high)
04h specified location out of range (too low)
80h unsupported function (PC)
86h unsupported function (XT)
--------B-15CB-------------------------------
INT 15 U - PS/2 Model 95 - RESERVED
AH = CBh
???
Return: ???
--------B-15CC-------------------------------
INT 15 U - PS/2 Model 95 - RESERVED
AH = CCh
???
Return: ???
--------V-15CCCC-----------------------------
INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK
AX = CCCCh
Return: AX = ABCDh if installed
Note: supported by Toshiba VGA change display utility VCHAD.EXE ver 2.90+
older versions have the string "VCHAD" 2 bytes after the address of
the INT 15 handler which is hooked by all versions for the SysReq key
SeeAlso: AH=85h
--------B-15CD-------------------------------
INT 15 U - PS/2 Model 95 - RESERVED
AH = CDh
???
Return: ???
--------B-15CE--BL00-------------------------
INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL
AH = CEh
BL = 00h-0Eh arbitration level to be allocated
0Fh-FFh reserved
AL = option byte
bit 7-1: reserved (0)
bit 0: 0 = need DMA channel for arbitration level requested
1 = no channel required for arbitration level
Return: CF set on error
AH = status (80h,86h = function not supported)
CF clear on success
AL = channel number
00h-07h channel number allocated for the arbiration level
08h-FEh reserved
FFh no channel requested for arbitration level
AH = status (see #0404)
Notes: arbitration level 00h has the highest priority, 0Eh the lowest
to perform a DMA transfer operation, be sure to call this function
first, and call AH=CFh afterward. Failure to use this function
can cause unpredictable results.
SeeAlso: AH=CFh
(Table 0404)
Values for DMA arbitration status:
00h success
01h arbitration level not available
02h channel not available
03h invalid arbitration level passed
--------B-15CF-------------------------------
INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL
AH = CFh
BL = arbitration level to be deallocated (see AH=CEh)
Return: CF set on error
AH = status (80h,86h = function not supported)
CF clear on success
AH = status
00h success
04h arbitration level not allocated
SeeAlso: AH=CEh
--------B-15D0-------------------------------
INT 15 - later PS/2s - RESERVED
AH = D0h
???
Return: ???
--------B-15D100DX0000-----------------------
INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES
AX = D100h
DX = 0000h (reserved, must set to 0)
Return: BL = size of one DDT entry, in bytes
CX = number of DDT entries
AH = return code (see #0405)
CF set on error
CF clear on success
SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D101h,AX=D102h,AX=D103h,AX=D104h
(Table 0405)
Values for return code:
00h success
01h requested DDT entry not found
02h DDT data not valid
86h function not supported
--------B-15D101-----------------------------
INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER
AX = D101h
BX = number of requested entry (starting with 1)
DX = 0000h (reserved, must be set to 0)
ES:DI -> buffer to contain DDT entry (see #0406)
Return: AH = return code (see #0405)
CF set on error
CF clear on success
ES:DI buffer filled with DDT entry
SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D102h,AX=D104h
Format of Device Descriptor Table (DDT):
Offset Size Description (Table 0406)
00h BYTE bits 7-4: reserved (set to 0)
bits 3-0: slot of device (0 = system board)
01h BYTE bits 7-4: second interrupt for this device (0 = none)
bits 3-0: first interrupt for this device (0 = none)
02h BYTE bits 7-4: second arbitration level for this device
bits 3-0: first arbitration level for this device
03h WORD DDT indicators (see #0407)
05h BYTE reserved (0)
06h WORD device ID (0 = none)
08h WORD starting address of first I/O block (0 = none)
0Ah WORD starting address of second I/O block (0 = none)
OCh WORD starting address of third I/O block (0 = none)
OEh DWORD start of first non-system memory block (0 = none)
12h WORD size of first non-system memory block (in kilobytes)
14h DWORD start of second non-system memory block (0 = none)
18h WORD size of second non-system memory block (in kilobytes)
1Ah BYTE implementation identifier of the device
1Bh BYTE implementation revision level of the device
Note: I/O block addresses and non-system memory addresses are listed in
ascending order in each DDT entry.
Bitfields for DDT indicators:
Bit(s) Description (Table 0407)
15 reserved (0)
14 second arbitration level exists
13 first arbitration level exists
12 serial interface is RS-422
11 not address limited
10 DMA channel used
9 second arbitration level can be shared
8 first arbitration level can be shared
7-0 reserved (0)
--------B-15D102-----------------------------
INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS
AX = D102h
BX = entry number at which to start searching
CX = requested I/O port address
DX = 0000h (reserved, must be set to 0)
ES:DI -> buffer to contain DDT entry (see #0406)
Return: AH = return code (see #0405)
BX = DDT entry number where I/O port was found, or total entries
plus 1 if port was not found.
CF set on error
CF clear on success
ES:DI buffer filled with DDT entry
Desc: the DDT is searched from the specified entry for the I/O port in CX,
and the first entry in which it is found is returned
SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h,AX=D104h
--------B-15D103DX0000-----------------------
INT 15 - later PS/2s - RETURN ENTIRE DDT
AX = D103h
DX = 0000h (reserved, must be set to 0)
ES:DI -> buffer to contain DDT entry (see #0406)
Return: AH = return code (see #0405)
CF set on error
CF clear on success
ES:DI buffer filled with DDT entry
SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D104h
--------B-15D104-----------------------------
INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID
AX = D104h
BX = entry number at which to start searching
CX = requested device ID
DX = 0000h (reserved, must be set to 0)
ES:DI -> buffer to contain DDT entry (see #0406)
Return: AH = return code (see #0405)
BX = DDT entry number where device ID was found, or total entries
plus 1 if port was not found.
CF set on error
CF clear on success
ES:DI buffer filled with DDT entry
Desc: the DDT is searched from the specified entry for the device ID in CX,
and the first entry in which it is found is returned.
SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h
--------B-15D2-------------------------------
INT 15 - later PS/2s - RESERVED
AH = D2h
???
Return: ???
--------B-15D3-------------------------------
INT 15 - later PS/2s - RESERVED
AH = D3h
???
Return: ???
--------B-15D4-------------------------------
INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT)
AH = D4h
DL = logical fixed disk drive number
Return: AH = return code (see #0408)
CF set on error
CF clear on success
AL = physical fixed disk drive number
(Table 0408)
Values for return code:
00h success
01h specified logical drive number is invalid
80h function not supported (on PCjr and PC)
86h function not supported
--------B-15D5-------------------------------
INT 15 - later PS/2s - RESERVED
AH = D5h
???
Return: ???
--------B-15D600BL00-------------------------
INT 15 - later PS/2s - READ BOOT DEVICE ID
AX = D600h
BL = 00h
DX = device ID
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (86h for function not supported)
SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h,AX=D602h
--------B-15D600BL01-------------------------
INT 15 - later PS/2s - WRITE BOOT DEVICE ID
AX = D600h
BL = 01h
DX = device ID
Return: CF clear on success
AH = 00h
CF set on error
AH = status (86h for function not supported)
SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h
--------B-15D601BL00-------------------------
INT 15 - later PS/2s - READ BOOT DEVICE KEY
AX = D601h
BL = 00h
DX = device ID
Return: CF clear on success
AH = 00h
CF set on error
AH = status (86h for function not supported)
SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h,AX=D602h
--------B-15D601BL01-------------------------
INT 15 - later PS/2s - WRITE BOOT DEVICE KEY
AX = D601h
BL = 01h
DX = device ID
Return: CF clear on success
AH = 00h
CF set on error
AH = status (86h for function not supported)
SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h
--------B-15D602-----------------------------
INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION
AX = D602h
Return: CF clear on success
AH = 00h
AL = status of reference-partition boot request
00h boot not requested
01h boot requested
CF set on error
AH = status (86h for function not supported)
SeeAlso: AX=D601h/BL=00h
--------X-15D800-----------------------------
INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION
AX = D800h
CL = slot number (including embedded and virtual)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (80h,82h,83h,86h,87h)(see #0410)
AL = bit flags (see #0409)
BH = major revision level of configuration utility
BL = minor revision level of configuration utility
CX = checksum of configuration file
DH = number of device functions
DL = combined function information byte
SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
Note: call with AL=80h if using 32-bit CS addressing mode instead of 16-bit
SeeAlso: AX=D801h,AX=D804h
Bitfields for EISA AL bit flags:
Bit(s) Description (Table 0409)
7 set if duplicate IDs
6 set if product ID readable
4,5 slot type (00=expansion, 01=embedded, 10=virtual device)
0-3 duplicate ID number if bit 7 set
(Table 0410)
Values for EISA error code:
80h invalid slot number
81h invalid function number
82h EISA CMOS corrupt
83h empty slot
84h error clearing CMOS
85h EISA CMOS is full
86h invalid BIOS-FW function call
87h invalid system configuration
88h config utility version not supported
--------X-15D801-----------------------------
INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION
AX = D801h
CH = function number to read
CL = slot number (including embedded and virtual)
DS:SI -> 320-byte buffer for standard configuration data block
Return: CF clear if successful
AH = 00h
DS:SI buffer filled
CF set on error
AH = error code (80h-83h,86h,87h) (see #0410)
BX destroyed
Note: call with AL=81h if using 32-bit CS addressing mode instead of 16-bit
--------X-15D802-----------------------------
INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)
AX = D802h
BH = EISA config utility major revision level
BL = EISA config utility minor revision level
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (84h,86h,88h) (see #0410)
Note: call with AL=82h if using 32-bit CS addressing mode instead of 16-bit
SeeAlso: AX=D803h
--------X-15D803-----------------------------
INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY
AX = D803h
CX = length of data structure (0000h = empty slot)
includes two bytes for config file checksum
DS:SI -> configuration data
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (84h-86h) (see #0410)
Note: call with AL=83h if using 32-bit CS addressing mode instead of 16-bit
SeeAlso: AX=D802h
--------X-15D804-----------------------------
INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT
AX = D804h
CL = slot number (including embedded and virtual)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (80h,83h,86h) (see #0410)
SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
Note: call with AL=84h if using 32-bit CS addressing mode instead of 16-bit
SeeAlso: AX=D800h
--------b-15D820-----------------------------
INT 15 - Compaq LTE Lite - GET ???
AX = D820h
DS:SI -> 17-byte buffer for ???
Return: DS:SI buffer filled (first byte is length of remaining data, unless
it is greater than 10h, in which case the second byte is 00h and no
other data is returned)
Note: this function is also supported by Compaq's EISA System ROM, Contura
486/486c/486cx and recent DESKPRO/i ROMs
SeeAlso: AX=D821h
--------b-15D821-----------------------------
INT 15 - Compaq LTE Lite - SET ???
AX = D821h
DS:SI -> counted string (should not be more than 16 bytes)
Return: AH = 00h
Note: this function is also supported by Compaq's EISA System ROM, Contura
486/486c/486cx and recent DESKPRO/i ROMs
SeeAlso: AX=D820h
--------b-15D822BL00-------------------------
INT 15 - Compaq EISA System ROM 04/08/93 - GET ???
AX = D822h
BL = 00h
CX = size of buffer or 0000h to retrieve required buffer size
DS:SI -> buffer for ??? (if CX nonzero)
Return: CF clear if successful
AH = 00h
DH = 08h
CX = required buffer size to retrieve all data (if CX=0 on entry)
DS:SI buffer filled (if CX nonzero on entry)
CF set on error (BL nonzero)
AH = 86h
--------b-15D823-----------------------------
INT 15 - Compaq EISA System ROM 04/08/93 - ???
AX = D823h
BL = subfunction??? (00h or 80h)
BH = ???
DS:SI -> buffer for ??? (see #0411)
Return: CF clear if successful
AH = 00h
DH = 08h
DL = ???
CF set on error
AH = error code
86h BL neither 00h nor 80h
87h ???
Format of Compaq EISA buffer:
Offset Size Description (Table 0411)
00h BYTE ???
01h WORD ???
03h BYTE ???
04h WORD ???
06h WORD ???
???
----------15D824-----------------------------
INT 15 - Compaq EISA System ROM 04/08/93 - ???
AX = D824h
CX = ???
DS:SI -> ASCIZ string containing ???
Return: CF clear if successful
AH = 00h
CX = ???
CF set on error
AH = error code
87h ??? failed
88h ???
Note: these functions are only available if ??? from keyboard controller
command C0h
----------15D825-----------------------------
INT 15 - Compaq EISA System ROM 04/08/93 - ???
AX = D825h
CX = ???
SI = ???
DI = ???
???
Return: CF clear if successful
AH = 00h
CX = ???
CF set on error
AH = error code
87h ??? failed
88h ???
CX = ???
Note: these functions are only available if ??? from keyboard controller
command C0h
----------15D826-----------------------------
INT 15 - Compaq EISA System ROM 04/08/93 - ???
AX = D826h
BX = ???
CX = size of buffer in bytes
DS:SI -> buffer for ???
???
Return: CF clear if successful
AH = 00h
CX = ???
CF set on error
AH = error code
87h ??? failed
88h ???
Note: these functions are only available if ??? from keyboard controller
command C0h
--------X-15D8-------------------------------
INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS
AH = D8h
AL = 80h to 84h
other registers as appropriate for AL=00h to 04h
Return: as appropriate for AL=00h to 04h
Note: these functions are identical to AX=D800h to D804h, except that they
should be called when using 32-bit CS addressing mode (pointers use
ESI rather than SI as offset) instead of 16-bit addressing mode
SeeAlso: AX=D800h,AX=D801h,AX=D802h,AX=D803h,AX=D804h
--------b-15D8-------------------------------
INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS
AH = D8h
AL = A0h to A6h
other registers as appropriate for AL=20h to 26h
Return: as appropriate for AL=20h to 26h
Note: these functions are identical to AX=D820h to D826h, except that they
should be called when using 32-bit CS addressing mode
----------15DA-------------------------------
INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
AH = DAh
AL = function (00h-08h,12h,14h,15h,19h,88h-8Eh,92h,99h)
???
Return: ???
SeeAlso: AH=DBh
----------15DB-------------------------------
INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
AH = DBh
AL = function (00h-04h)
???
Return: ???
SeeAlso: AH=DAh
--------Q-15DE00-----------------------------
INT 15 - DESQview - GET PROGRAM NAME
AX = DE00h
Return: AX = offset into DESQVIEW.DVO of program most recently selected from
the "Switch Windows" menu (see #0412)
Note: always returns AX=0000h under DESQview/X
SeeAlso: AX=DE07h
Format of program entry in DESQVIEW.DVO:
Offset Size Description (Table 0412)
00h BYTE length of name (FFh if end of file)
01h N BYTEs name
2 BYTEs keys to invoke program (second = 00h if only one key used)
BYTE program type
00h normal program
04h divider
80h Delete a Program
81h Change a Program
WORD ??? apparently always 0000h
--------Q-15DE01-----------------------------
INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU
AX = DE01h
Return: nothing
Notes: reads DESQVIEW.DVO, disables Open menu if file not in current directory
NOP for DESQview/X
--------Q-15DE02-----------------------------
INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW
AX = DE02h
Return: nothing
Note: this call is a NOP in DV 2.x
SeeAlso: AX=DE03h
--------Q-15DE03-----------------------------
INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW
AX = DE03h
Return: AX = ??? for current window
BX = ??? for current window
Note: this call is a NOP in DV 2.x
SeeAlso: AX=DE02h
--------Q-15DE04-----------------------------
INT 15 - DESQview - GET AVAILABLE COMMON MEMORY
AX = DE04h
Return: BX = bytes of common memory available
CX = largest block available
DX = total common memory in bytes
SeeAlso: AX=DE05h,AX=DE06h
--------Q-15DE05-----------------------------
INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY
AX = DE05h
Return: BX = KB of memory available
CX = largest block available
DX = total conventional memory in KB
SeeAlso: AX=DE04h,AX=DE06h
--------Q-15DE06-----------------------------
INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY
AX = DE06h
Return: BX = KB of expanded memory available
CX = largest block available
DX = total expanded memory in KB
SeeAlso: AX=DE04h,AX=DE05h
--------Q-15DE07-----------------------------
INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER
AX = DE07h
Return: AX = number of program as it appears on the "Switch Windows" menu
Note: this API call may be made from a hardware interrupt handler
SeeAlso: AX=DE00h
--------Q-15DE08-----------------------------
INT 15 - DESQview - GET ???
AX = DE08h
Return: AX = 0000h if ??? is not set to the current task
0001h if ??? is set to the current task
--------Q-15DE09-----------------------------
INT 15 - DESQview - UNIMPLEMENTED
AX = DE09h
Return: nothing (NOP in DV 1.x and 2.x)
--------Q-15DE0A-----------------------------
INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE
AX = DE0Ah
BL = character
Return: character displayed, next call will display in next position (which
wraps back to the start of the line if off the right edge of screen)
Notes: displays character on bottom line of *physical* screen, regardless
of current size of window (even entirely hidden)
does not know about graphics display modes, just pokes the characters
into display memory
this API call may be made from a hardware interrupt handler
SeeAlso: AX=1003h
--------Q-15DE0B-----------------------------
INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED
AX = DE0Bh
BL = API level minor version number
BH = API level major version number
Return: AX = maximum API level (AH = major, AL = minor)
Notes: if the requested API level is greater than the version of DESQview, a
"You need a newer version" error window is popped up
the API level defaults to 1.00, and is inherited by child tasks
--------Q-15DE0C-----------------------------
INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
AX = DE0Ch
BX = number of bytes
Return: ES:DI -> allocated block or 0000h:0000h (DV 2.26+)
Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
system memory
SeeAlso: AX=1001h,AX=102Eh,AX=DE0Dh,AX=DE15h,AX=DE19h
--------Q-15DE0D-----------------------------
INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
AX = DE0Dh
ES:DI -> previously allocated block
Return: nothing
SeeAlso: AX=1002h,AX=DE0Ch
--------Q-15DE0E-----------------------------
INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME
AX = DE0Eh
ES:DI -> name to find (see #0413)
CX = length of name
Return: BX = 0000h not found
0001h found
DS:SI = object handle
SeeAlso: AH=12h/BH=11h,AH=12h/BX=1200h"GETNAME"
(Table 0413)
Values for special DESQview mailbox names:
"COM1" ... "COM4" RBcomm using COM1 ... COM4
"DESQview/X Help Engine"
"DESQview/X Network Server" Network Manager
"DESQview X Server0" X-Windows server
"DESQview X Server7" X-Windows printing service
"INBOX" DESQview/X LPD requests
"OUTBOX" DESQview/X LPD responses
"WAITBOX" semaphore to synchronize DESQview/X LPD communications
"_DVNM_" DV/X v1.10 network manager
--------Q-15DE0F-----------------------------
INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS
AX = DE0Fh
Return: AX and BX destroyed (seems to be bug, weren't saved&restored)
Notes: sends a manager stream with opcodes AEh, BDh, and BFh to task's window
enables an additional mouse mode
--------Q-15DE10-----------------------------
INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM
AX = DE10h
BH = scan code
BL = character
Return: nothing
Notes: a later read will get the keystroke as if it had been typed by the user
multiple pushes are read last-in first-out
if a script exists for the pushed key in the current application, the
script will be executed
early copies of DV 2.00 destroy AX, BX, ES, and DI
SeeAlso: INT 16/AH=05h
--------Q-15DE11BL00-------------------------
INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION
AX = DE11h
BL = 00h viewport will not move automatically
nonzero viewport will move to keep cursor visible (default)
Return: nothing
--------Q-15DE12BX0000-----------------------
INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET
AX = DE12h
BX = 0000h select normal style (linefeed only moves down)
nonzero select C style (linefeed moves to start of next line)
Return: nothing
Note: set on a per-task basis, and inherited from the parent task
--------Q-15DE13-----------------------------
INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT
AX = DE13h
Return: BX = number of calls to BEGINC or ENTERC
(see INT 15/AX=101Bh,INT 15/AX=DE1Ch) without matching ENDC
(see INT 15/AX=101Ch)
Note: this API call may be made from within a hardware interrupt handler
SeeAlso: AX=101Bh,AX=101Ch,AX=DE1Bh,AX=DE1Ch
--------Q-15DE14-----------------------------
INT 15 - DESQview v2.20+ - GET OBJECT TYPE
AX = DE14h
ES:DI -> object
Return: BL = 00h not an object
08h window or task
09h mailbox
0Ah keyboard
0Bh timer
0Ch objectq
0Fh pointer
10h panel
SeeAlso: AX=1016h
--------Q-15DE15-----------------------------
INT 15 - DESQview v2.20+ - SET ERROR HANDLING
AX = DE15h
BL = error handling mode
00h post system error on all error conditions
01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE
messages sent to mailboxes which fail due to lack of system
or common memory
02h (v2.26+) same as 01h, but also return null pointer for GETMEM
calls which fail due to lack of system memory
Return: nothing
SeeAlso: AX=DE0Ch,AX=DE16h
--------Q-15DE16-----------------------------
INT 15 - DESQview v2.20+ - GET ERROR HANDLING
AX = DE16h
Return: BL = current mode
00h always post system error
01h return carry flag set on failed mailbox writes
02h return CF set on failed mailbox writes and NULL on failed
GETMEM calls
SeeAlso: AX=DE15h
--------Q-15DE17-----------------------------
INT 15 - DESQview v2.20-2.25 - reserved
AX = DE17h
Return: pops up "Programming error" window
Note: AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25
SeeAlso: AX=1117h
--------Q-15DE17-----------------------------
INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
AX = DE17h
BX = function
0000h get current mapping context without setting
nonzero set new mapping context to BX
Return: BX = mapping context in effect before call
Notes: mapping contexts determine conventional-memory addressability; setting
a mapping context ensures that the associated program and data areas
are in memory for access. Usable by drivers, TSRs and shared
programs.
caller need not be running under DESQview
this API call may be made from a hardware interrupt handler
SeeAlso: AX=1016h,AX=1117h,AX=DE21h,INT 2F/AX=1685h
--------Q-15DE18-----------------------------
INT 15 - DESQview v2.20+ - internal - ???
AX = DE18h
BP = function number
high byte must be 10h
low byte is function
00h set ???
BL = ??? (00h-10h, video mode???)
BH = value to store
03h set ???
BL = ??? (stored in driver)
0Ah get ???
ES:DI -> 18-byte buffer to hold ???
Note: calls video driver (NOP for Hercules driver,probably CGA and MCGA also)
--------Q-15DE19-----------------------------
INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY
AX = DE19h
BX = number of bytes to allocate
Return: AX = 0000h successful
ES:DI -> allocated block
nonzero insufficient memory
Note: this API call may be made from within a hardware interrupt handler
SeeAlso: AX=DE0Ch,AX=DE15h,AX=DE1Ah
--------Q-15DE1A-----------------------------
INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY
AX = DE1Ah
ES:DI -> previously allocated block
Return: AX = 0000h (successful)
Note: this function may be called from within a hardware interrupt handler
SeeAlso: AX=DE0Dh,AX=DE19h
--------Q-15DE1B-----------------------------
INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT
AX = DE1Bh
Return: nothing
SeeAlso: AX=101Ch,AX=DE13h,AX=DE1Ch
--------Q-15DE1C-----------------------------
INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT
AX = DE1Ch
Return: nothing
Notes: similar to AX=101Bh, but begins the critical region without ensuring
that DOS is free
the official documentation states that this call should be paired with
"ENDC" (AX=101Ch); no mention is made of AX=DE1Bh
this API call may be made from within a hardware interrupt handler
SeeAlso: AX=101Bh,AX=101Ch,AX=DE13h,AX=DE1Bh
--------Q-15DE1D-----------------------------
INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES
AX = DE1Dh
DX = segment of handle for task to receive keystroke
BL = character
BH = scan code
Return: AX = 0000h if successful
nonzero if receiver's keyboard buffer was full
Notes: the key is treated as though the user had pressed it, ignoring any
script which may be bound to the key, and using the current field
table if the keyboard object is in field processing mode
multiple PUTKEYs are seen in the order in which they are executed
SeeAlso: AX=DE10h
--------Q-15DE1E-----------------------------
INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS
AX = DE1Eh
Return: CL = actual number of rows on screen
CH = actual number of columns on screen
BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+)
Note: this API call may be made from a hardware interrupt handler
SeeAlso: INT 10/AH=0Fh
--------Q-15DE1F-----------------------------
INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS
AX = DE1Fh
Return: BX = segment of task handle or 0000h if no tasks are using DOS
Note: this API call may be made from within a hardware interrupt handler
SeeAlso: AX=DE13h,INT 21/AH=34h
--------Q-15DE20-----------------------------
INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK
AX = DE20h
BX = segment of handle of task to interupt
DX:CX -> FAR interrupt routine
BP,SI,DI,DS,ES as required by interrupt routine
Return: nothing
Notes: unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task
making the DISPATCHINT call
multiple "DISPATCHINT" calls are processed in the order in which they
were executed
the FAR routine is entered with the current ES, DS, SI, DI, and BP
values, using the task's internal stack (see AX=101Ah); only SS:SP
needs to be preserved
this API call may be made from within a hardware interrupt handler
SeeAlso: AX=1021h,AX=DE2Ah
--------Q-15DE21-----------------------------
INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION
AX = DE21h
BX = new state
0000h turn off
nonzero turn on
Return: BX = old state of virtualization
Notes: this API call may be made from within a hardware interrupt handler
under DV 2.40 and 2.42, this call appears to have no effect and always
returns a nonzero value in BX which appears to be the offset within
the DV common memory segment of the caller's task object; it may
only have an effect within a hardware interrupt handler
SeeAlso: AX=1117h,AX=DE17h
--------Q-15DE22-----------------------------
INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS
AX = DE22h
DX = segment of task handle
Return: DX = total amount of memory in paragraphs
BX = amount of system memory in paragraphs
CX = largest block of system memory available in paragraphs
AX = memory flags (see #0414)
Notes: if the task handle is a child task, the returned values will be for the
process containing the task, rather than the task itself
if the process's system memory is swapped out, BX,CX,DX remain
unchanged, because the memory usage cannot be determined
SeeAlso: AX=DE04h,AX=DE05h,AX=DE06h
Bitfields for DESQview process memory flags:
Bit(s) Description (Table 0414)
0 system memory resides in shared memory
1 process's memory is swapped out
2 process's system memory is swapped out
--------Q-15DE23-----------------------------
INT 15 U - DESQview v2.31+ - ???
AX = DE23h
BX = ??? IRQ number on first PIC?
CX = ??? IRQ number on second PIC?
Return: ???
Note: called by QEMM 6.00+
--------Q-15DE24-----------------------------
INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION
AX = DE24h
BX = length of .DVP data
CX = length of ??? string
DS:SI -> ??? string
ES:DI -> .DVP data (see #0317 at AX=102Ch)
Return: BX = segment of task handle??? or 0000h on error
Note: this call is similar to AX=102Ch except that it can interpret the
extended DVP data
SeeAlso: AX=102Ch
--------Q-15DE25-----------------------------
INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY
AX = DE25h
ES:DI -> 67-byte buffer for ASCIZ directory name
Return: ES:DI buffer filled with directory from which DESQview was started
BUG: DV 2.42 does not place a terminating NUL at the end of the directory
name, so if the buffer is not cleared to zeros before the call,
there is no way to tell where the directory name ends. This bug
has been fixed in DV 2.52 (DV/X 1.02)
SeeAlso: AX=DE2Eh,INT 21/AH=47h
--------Q-15DE26-----------------------------
INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS
AX = DE26h
Return: BX = segment of handle for task with keyboard focus
Note: under DESQview/X, the X server always has the keyboard focus unless a
"direct" window is active
SeeAlso: AX=DE2Fh,INT 2F/AX=DE0Ah
--------Q-15DE27-----------------------------
INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA
AX = DE27h
BX = type
0000h process
0001h task
ES:DI -> list of Instance Item Structures (see #0415)
Return: CF clear if successful
AX = ???
BX = ???
CF set on error
AX = error code???
0004h invalid BX value
Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
SeeAlso: INT 2F/AX=DE08h,INT 2F/AX=DE09h
Format of DESQview Instance Item Structure [one element of list]:
Offset Size Description (Table 0415)
00h WORD length of data area DESQview should save and restore on context
switches (0000h = end of list)
02h DWORD pointer to area to be saved/restored
--------Q-15DE28-----------------------------
INT 15 U - DESQview v2.50+ - ???
AX = DE28h
BX = segment of ??? or 0000h for default
???
Return: ???
Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
SeeAlso: AX=DE2Ah
--------Q-15DE29BX0000-----------------------
INT 15 U - DESQview/X - ???
AX = DE29h
BX = 0000h
???
Return: CF clear if successful
???
CF set on error
Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
under DESQview 2.60, this function and all other subfunctions of
AX=DE29h always return CF set, as they are unique to DESQview/X
--------Q-15DE29BX0001-----------------------
INT 15 U - DESQview/X - ???
AX = DE29h
BX = 0001h
DX = segment of window handle
Return: CF clear if successful
AX = ???
DX = ???
CF set on error
Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
--------Q-15DE29BX0002-----------------------
INT 15 U - DESQview/X - ???
AX = DE29h
BX = 0002h
DX = segment of window handle
Return: CF clear if successful
AX = ???
DX = ???
CF set on error
Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
--------Q-15DE29BX0003-----------------------
INT 15 U - DESQview/X - ???
AX = DE29h
BX = 0003h
DX = segment of window handle
Return: CF clear if successful
???
CF set on error
Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
--------Q-15DE29BX0004-----------------------
INT 15 U - DESQview/X - GET DISPLAY NAME
AX = DE29h
BX = 0004h
CX = size of buffer in bytes
DX = segment of window handle
ES:DI -> buffer for display name
Return: CF clear if successful
buffer filled with ASCIZ display name (truncated if necessary) or
null string if no display
CF set on error
Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
the name ":0" refers to the local display
--------Q-15DE29BX0005-----------------------
INT 15 U - DESQview/X - ???
AX = DE29h
BX = 0005h
???
Return: CF clear if successful
???
CF set on error
Note: under DESQview 2.60, this function and all other subfunctions of
AX=DE29h always return CF set, as they are unique to DESQview/X
--------Q-15DE2A-----------------------------
INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK
AX = DE2Ah
BX = segment of handle for task to interrupt or 0000h for caller
DX:CX -> interrupt routine
BP,SI,DI,DS,ES as required by interrupt routine
Return: nothing
Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
this call is the same as AX=DE20h except that it will delay
interrupting the specified task until after it has exited DOS
SeeAlso: AX=1021h,AX=DE20h
--------Q-15DE2B-----------------------------
INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST
AX = DE2Bh
ES:DI -> starting object
0000h:0000h for first object in list???
Return: AX = status
0000h successful
ES:DI -> next object of same type (window/non-window)
0001h failed (ES:DI was not a valid handle)
Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
there are two separate lists, one for window/task objects and one
for all other objects
SeeAlso: AX=1016h,AX=DE2Ah,AX=DE2Ch
--------Q-15DE2C-----------------------------
INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION
AX = DE2Ch
DX = window information format version (0100h for DESQview 2.5x)
BX = segment of window handle or 0000h for default
ES:DI -> buffer for window information (see #0416)
Return: AX = status
0000h successful
Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
SeeAlso: AX=1000h,AX=1016h,AX=DE01h,AX=DE2Bh
Format of DESQview window information:
Offset Size Description (Table 0416)
00h BYTE task flag: 00h window, 01h task
01h BYTE process number if owner task
00h if non-owner task
02h WORD segment of owner's handle, 0000h if orphaned
04h WORD mapping context (see #0306 at AX=1016h)
06h BYTE task status (see #0417)
07h BYTE unused
08h WORD status bits (see #0418)
0Ah BYTE 01h if foreground-only window
(Table 0417)
Values for DESQview task status:
00h "Waiting" waiting for input
01h "Idle" keyboard poll limit reached
03h same as 01h
04h "Pausing" INT 15/AX=1000h pause called
04h DV/X direct: user did something to allow task switch
05h "ModeChg" video mode about to be changed
06h "ModeNtf" notify that video mode changed
07h "MoniCh" requested change to other monitor
08h "StartPgm" control relinquished to start new process
09h "MgrCan" made window manager CANCEL command
0Ah "Slicing" time slice expired
0Bh "Exit DOS" notify on DOS calls
0Ch "Enter DOS" process is re-entering DOS
0Dh "Terminate" INT 21/AH=4Ch or task freed
0Eh "BrkNxt" Control-Break pressed
0Fh "MgrCol" keyboard focus taken away
10h "PgmInt" interrupted by API call from another task
11h "BldOpen" call to INT 15/AX=DE01h
Bitfields for DESQview task status bits:
Bit(s) Description (Table 0418)
6 task is freeing another task
5 process is being created
4 user suspended process
3 process suspended itself
2 process is resized direct window (suspended)
1 process swapped out
0 DESQview process
--------Q-15DE2D-----------------------------
INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER
AX = DE2Dh
CX = direction
FFFFh set socket handler
DX:BX -> FAR function for socket interface
must be of the format described under INT 63"DESQview"
at #2121
other get socket handler
Return: DX:BX -> socket handler (see #2121)
Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
the "set" subfunction is normally called only by SOCKET.DVR
SeeAlso: AX=DE2Eh,INT 63"DESQview",#2121
--------Q-15DE2E-----------------------------
INT 15 U - DESQview v2.50+ - SOCKET API
AX = DE2Eh
DX:BX -> socket record (see #0420)
0000h:0000h to create a new socket record
Return: CX = size of socket record in bytes
DX:BX -> socket record which was used
Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
socket records are allocated from common memory
for Unix compatibility, each socket and connection on a socket is
allocated a DOS file handle (referencing an SFT for NUL) which is
used on various calls to specify which of possibly multiple
connections is to be operated upon
SeeAlso: AX=DE2Dh,INT 61/AX=0001h/SF=0001h"VINES",INT 63"DESQview"
(Table 0419)
Values for DESQview/X socket API function number:
0000h initialize socket???
0001h "gethostname"
0002h "ioctl" check for input
0003h "sleep" delay for specified period
0004h "htons" convert word to network (big-endian) byte order
0005h "select"
0006h "bsd_close"/"so_close" close socket
0007h NOP
0008h "connect" initiate connection on socket
0009h "recv"/"recvfrom" read from socket
000Ah "socket"
000Bh ???
000Ch "gethostbyname"
000Dh "send"/"sendto" write to socket
000Eh ??? (does something to all connections for process)
000Fh "getpid" get process identifier
0010h "gettimeofday"
0011h "bind" assign name to socket
0012h "listen" listen for connections on socket
0013h "accept" accept connection on socket
0014h connect to X server
0015h "gethostbyaddr" get host information for an address
0016h "getprotobyname"
0017h "getprotobynumber"
0018h "getservbyname"
0019h "getservbyport"
001Ah "getsockname" determine name bound to socket
001Bh "getpeername" get name of connected peer
001Ch "getsockopt"/"setsockopt"
001Dh "so_exit" close all sockets for calling process
001Eh "issock" determine whether file handle references socket
001Fh "so_attach" reattach previously detached socket
0020h "so_detach" temporarily detach socket
0021h "dvpath" get DESQview directory (see also AX=DE24h)
0022h "NewProc" start new application (see also AX=102Ch)
0023h "so_linkup"
0024h "CanonicalPath" canonicalize filename (see also INT 21/AH=60h)
0025h indirect INT 15h call
0026h Network Manager interface
0027h "so_unlink" close connection from "so_linkup"
0028h "raisepriority"
0029h "lowerpriority"
002Ah "so_private" ???
FFFFh "NetExit" (appears to be a NOP)
Format of DESQview/X socket record:
Offset Size Description (Table 0420)
00h WORD signature F0ADh
02h WORD function number (see #0419)
04h WORD returned error code (see #0440)
06h WORD maximum message size??? (usually 0400h)
08h WORD PSP segment to use or 0000h if socket not valid
0Ah WORD scratch space (JFT size)
0Ch DWORD scratch space (JFT address)
10h DWORD mailbox handle (initialized by function 0000h)
14h DWORD timer object handle (initialized by function 0000h)
---function 0000h---
18h WORD (ret) ???
---function 0001h---
18h WORD (ret) status???
1Ah 128 BYTEs (ret) ASCIZ hostname (empty string if not on network)
9Ah WORD maximum length of hostname to return
---function 0002h---
18h WORD (ret) status
1Ah WORD socket's file handle
1Ch WORD IOCTL function
05h "FIONREAD" determine available input
06h "FIONBIO" set blocking state of socket
1Eh WORD (return, subfn 05h) number of bytes available for reading
(call, subfn 06h) 0000h blocking, nonzero nonblocking
---function 0003h---
18h 2 BYTEs unused
1Ah WORD delay time in seconds
---function 0004h---
18h WORD (ret) result in network (big-endian) byte order
1Ah WORD value to convert to network byte order
---function 0005h---
18h WORD (ret) number of handles meeting the specified conditions???
1Ah WORD number of file handles in each bitset
1Ch DWORD bitset of socket handles to check for readability
20h DWORD bitset of socket handles to check for writability
24h DWORD bitset of socket handles to check for errors
28h WORD timeout in ??? or 0000h to block until some socket ready
2Ah DWORD ???
2Eh DWORD ???
---function 0006h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
---function 0008h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD 0001h if socket name specified, 0000h if not
1Eh WORD length of socket name
20h N BYTEs name of socket to which to connect
---function 0009h---
18h WORD (ret) number of bytes actually read, 0000h if connection
closed, or FFFFh on error
1Ah WORD socket's file handle
1Ch WORD number of bytes to read
1Eh WORD flags
20h WORD 0000h if no source address desired
0001h if source address is to be stored (datagram sockets)
22h WORD length of source address
24h 110 BYTEs source address
92h 1K BYTEs buffer for data to be read
---function 000Ah---
18h WORD (ret) socket's file handle or FFFFh on error
1Ah WORD address family (0001h,0002h)
1Ch WORD socket type
1Eh WORD protocol
---function 000Bh---
18h WORD (ret) 0001h if ??? or FFFFh on error
1Ah WORD socket's file handle
1Eh WORD (call) ???
---function 000Ch---
18h 128 BYTEs ASCIZ hostname (special case if empty string or "unix")
98h ??? (ret) packed 'hostent' structure
A2h ??? (ret) ???
---function 000Dh---
18h WORD (ret) number of bytes actually written or FFFFh on error
1Ah WORD socket's file handle
1Ch WORD number of bytes to write
1Eh WORD number of bytes to follow in subsequent writes???
20h WORD flags
22h WORD 0000h if no destination specified, 0001h if destination present
24h WORD 0001h if broadcast message???, 0000h if not
(ignored if no destination specified)
26h WORD length of destination address
28h 110 BYTEs destination address
96h 1K BYTEs buffer containing data to be written
---function 000Eh---
no additional fields
---function 000Fh---
18h DWORD (ret) DESQview task handle of calling process
---function 0010h---
18h DWORD (ret) current time
1Ch DWORD (ret) ???
---function 0011h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD length of name
1Eh N BYTEs buffer for socket name
---function 0012h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD maximum backlog of pending connections allowed on socket
---function 0013h---
18h WORD (ret) file handle for new connection or FFFFh on error
1Ah WORD listen()ing socket's file handle
1Ch WORD (call) length of buffer for connecting entity's address
(ret) actual length of address
1Eh N BYTEs buffer for connecting entity's address (110 bytes???)
---function 0014h---
18h WORD (ret) socket's file handle or FFFFh on error
1Ah 4 BYTEs (ret) ???
1Eh WORD (ret) ???
20h WORD (ret) ???
22h 256 BYTEs ASCIZ X display name
122h ???
---function 0015h---
18h WORD (call) type of address??? (test for 0001h seen)
1Ah WORD (call) length of buffer for host address
1Ch 110 BYTEs buffer containing ASCIZ host address
8Ah WORD (ret) offset of official host name
8Ch WORD (ret) offset of alias list???
8Eh WORD (ret) address type???
90h WORD (ret) length of an address in bytes???
92h WORD (ret) offset of address???
9Ah N BYTEs (ret) buffer for hostname, alias list, and host address
---function 0016h---
18h ??? buffer for ASCIZ protocol name
98h ???
---function 0017h---
18h WORD (call) protocol number
1Ah WORD (ret) ??? or 0001h
---function 0018h---
18h 128 BYTEs buffer containing ASCIZ ???
98h 128 BYTEs buffer containing ASCIZ ???
118h WORD (ret) ???
---function 0019h---
18h WORD port number
1Ah 128 BYTEs (call) ASCIZ host name
(ret) packed servent strctures???
9Ah WORD (ret) ???
---function 001Ah---
18h WORD (ret) 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD (call) length of buffer for socket name
(ret) actual length of socket name
1Eh N BYTEs buffer for socket name
---function 001Bh---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
1Ch WORD (call) size of buffer for name
(ret) actual size of name
1Eh N BYTEs buffer for peer's name
---function 001Ch---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD direction: 0000h to get, 0001h to set
1Ch WORD socket's file handle
1Eh WORD option level
20h WORD option name
22h WORD (call) length of buffer for option value
(ret) actual length of option value
24h N BYTEs buffer for option value
---function 001Dh---
no additional fields
---function 001Eh---
18h WORD (ret) status: 0000h ??? or 0001h ???
1Ah WORD file handle which may or may not be a socket
---function 001Fh---
18h WORD (ret) file handle or FFFFh on error
1Ah DWORD (call) pointer to Socket Context Record (see #0441) of a
previously detached socket
---function 0020h---
18h WORD (ret) status: 0000h if successful or FFFFh on error
1Ah WORD socket's file handle
1Ch DWORD (ret) pointer to Socket Context Record (see #0441) for
the file handle
---function 0021h---
18h 64 BYTEs buffer for DESQview startup directory (see AX=DE25h)
---function 0022h---
18h DWORD (ret) task handle of new application
1Ch WORD size of .DVP data
1Eh 129 BYTEs ASCIZ ???
9Fh N BYTEs .DVP data (see #0317 at AX=102Ch)
---function 0023h---
18h WORD (ret) ??? or FFFFh on error
1Ah WORD socket's file handle???
---function 0024h---
18h WORD (ret) DOS error code (see #0885 at INT 21/AH=59h)
0000h if successful
1Ah 129 BYTEs ASCIZ filename/pathname
11Bh 129 BYTEs ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
---function 0025h---
18h WORD value of AX
1Ah WORD value of BX
1Ch WORD (call) value of CX for call if AH value other than 12h
(call) number of stack parameters if AH value is 12h
(ret) returned CX for calls other than INT 15/AH=12h
1Eh WORD value of DX
20h WORD value of DI
22h WORD value of SI
24h WORD value of DS
26h WORD value of ES
28h WORD (ret) value of FLAGS after call
2Ah N DWORDs (call) stack parameters for INT 15/AH=12h call
(ret) stack results from INT 15/AH=12h call
---function 0026h---
18h WORD (call) Network Manager subfunction (see #0421)
(ret) status??? (0000h on error)
1Ah WORD (call) size of parameter data
(ret) size of returned data
1Ch N BYTEs (call) parameter data required by call (see #0422,#0423,#0439)
(ret) result data (see #0432,#0433,#0438)
---function 0027h---
18h WORD (ret) status: 0000h if successful, FFFFh on error
1Ah WORD socket's file handle
---functions 0028h,0029h---
18h WORD (call) file handle for which to set priority low/high
FFFFh to change calling task's priority
---function 002Ah---
no additional fields
(Table 0421)
Values for DESQview/X Network Manager subfunction:
0004h "so_exit"???
0005h "gethostbyname"
0006h "gethostname"
0009h "socket"
000Dh "gethostbyaddr"
000Fh "getprotobyname"
0010h get protocol name for protocol number
0011h "getservbyname"
0012h "getservbyport" (see #0425)
0013h "getsockname"??? (see #0426)
0016h "shutdown" (see #0427)
0017h kill Network Manager
0018h "getpeername"??? (see #0428)
0019h ??? (called by socket function 0000h) (see #0429)
001Ah ??? (see #0430)
001Bh "so_linkup" (see #0431)
001Dh "getnetstatus" get network services (see #0432)
001Fh "getpwuid"
0020h "getpwnam"
0021h "getpwvar"
0022h "crypt"
0023h "so_unlink"
0024h "getlogin" (see #0433)
0028h "sethostent"
0029h "gethostent"
002Ah "soaddhost"
002Bh "soupdatehost"
002Ch "sodeletehost"
002Dh "setservent"
002Eh "getservent"
002Fh "setpwent"
0030h "getpwent" (see #0434)
0031h "sethostpath" (see #0435)
0032h "endservent"
0033h "endhostent"
0034h "getnettype" get IP network number (see #0436)
0035h ??? (pops up Network Manager window)
0037h "getnettimeout" (see #0437)
0038h get machine name and IP address (see #0438)
0039h "getuid" (see #0439)
---DV/X v2.0+ ---
0041h "deletepwnam"
0045h "renamepw"
Format of Function 0026h/Subfunction 000Fh data:
Offset Size Description (Table 0422)
00h 8 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0010h data:
Offset Size Description (Table 0423)
00h 2 BYTEs (ret) ???
02h WORD (ret) protocol number
04h WORD (call) protocol number for which to get name
06h WORD (ret) ???
08h var (ret) ASCIZ protocol name
N var (ret) ASCIZ protocol name
Format of Function 0026h/Subfunction 0011h data:
Offset Size Description (Table 0424)
00h 8 BYTEs ???
08h var (ret) ASCIZ protocol name
var (ret) ASCIZ ??? name
var (ret) ASCIZ ??? name
Format of Function 0026h/Subfunction 0012h data:
Offset Size Description (Table 0425)
00h 8 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0013h data:
Offset Size Description (Table 0426)
00h 116 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0016h ("shutdown") data:
Offset Size Description (Table 0427)
00h WORD (ret) shutdown status (0000h successful, FFFFh error)
02h 4 BYTEs (ret) ???
04h WORD (call) socket handle
06*h WORD (call) what (0 = receives, 1 = sends, 2 = both)
Format of Function 0026h/Subfunction 0018h data:
Offset Size Description (Table 0428)
00h 116 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0019h data:
Offset Size Description (Table 0429)
00h 4 BYTEs (ret) ???
04h DWORD (ret) task handle of ???
Format of Function 0026h/Subfunction 001Ah data:
Offset Size Description (Table 0430)
00h 38 BYTEs (ret) ???
Format of Function 0026h/Subfunction 001Bh data:
Offset Size Description (Table 0431)
00h 10 BYTEs (ret) ???
Format of Function 0026h/Subfunction 001Dh return data [array]:
Offset Size Description (Table 0432)
00h WORD ??? or FFFFh if end of array
02h 7 BYTEs ???
09h 27 BYTEs ASCIZ name of service
Format of Function 0026h/Subfunction 0024h return data:
Offset Size Description (Table 0433)
00h var ASCIZ username
Format of Function 0026h/Subfunction 0030h data:
Offset Size Description (Table 0434)
00h WORD (call) UID or 0000h for current user
(ret) ???
02h WORD (ret) UID
04h 6 BYTEs (ret) ???
0Ah var (ret) ASCIZ username
var (ret) ASCIZ encrypted password
var (ret) ASCIZ initial ("home") directory
Format of Function 0026h/Subfunction 0031h ("sethostpath") data:
Offset Size Description (Table 0435)
00h 4 BYTEs ???
04h 144 BYTEs ASCIZ ???
Format of Function 0026h/Subfunction 0034h data:
Offset Size Description (Table 0436)
00h 1-3 BYTEs IP network number of caller's machine (low byte first)
Format of Function 0026h/Subfunction 0037h ("getnettimeout") return data:
Offset Size Description (Table 0437)
00h WORD (ret) timeout
02h 2 BYTEs (ret) ???
Format of Function 0026h/Subfunction 0038h return data:
Offset Size Description (Table 0438)
00h BYTE ???
01h 4 BYTEs IP address
05h var ASCIZ machine name
???
Format of Function 0026h/Subfunction 0039h ("getuid") return data:
Offset Size Description (Table 0439)
00h WORD user ID
02h 2 BYTEs ???
SeeAlso: #0435,#0438
(Table 0440)
Values for DESQview/X socket error code:
0000h successful
0009h "BADF" bad file handle
000Ch "ENOMEM" out of memory
000Eh "EFAULT" bad address
0016h "EINVAL" invalid argument
0018h "EMFILE" too many open files
0020h "EPIPE" ??? broken pipe
0023h "EWOULDBLOCK" operation cannot be completed at this time
0024h "EINPROGRESS" operation now in progress
0026h "ENOTSOCK" socket invalid
0028h "EMSGSIZE" message too long to send atomically
002Ch "ESOCKTNOSUPPORT" socket type not supported
002Fh "EAFNOSUPPORT" address family not supp. by protocol fam.
0031h "EDOM" argument too large
0038h "EISCONN" socket is already connected
0039h "ENOTCONN" socket is not connected
Format of DESQview/X Socket Context Record:
Offset Size Description (Table 0441)
00h DWORD pointer to next Socket Context Record, 0000h:0000h if last
04h WORD SFT index for socket, 00FFh if not connected, FFFFh if detached
06h WORD PSP segment of owner or 0000h
08h WORD mapping context of owning window (see #0306 at AX=1016h)
0Ah 2 BYTEs ???
0Ch WORD address family
0Eh WORD socket type
10h WORD protocol
12h WORD socket state
0001h created
0002h bound
0003h listening???
0005h connected
14h DWORD timer object handle
18h DWORD object handle (mailbox???)
1Ch DWORD object handle of parent of above object or 0000h:0000h
20h DWORD pointer to ??? or 0000h
24h 6 BYTEs ???
2Ah WORD file handle for socket or FFFFh
2Ch 2 BYTEs ???
2Eh WORD nonzero if socket nonblocking
---network connections only---
30h 2 BYTEs ???
32h WORD ???
34h 4 BYTEs (big-endian) IP address of remote
38h 6 BYTEs ???
--------Q-15DE2F-----------------------------
INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?
AX = DE2Fh
Return: BX = status
0001h keyboard focus has been given to a direct window since the
last call
0000h if not
Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
Quarterdeck stated that this call would not be available under future
versions of DESQview Classic, but it is still present in v2.60
--------Q-15DE30-----------------------------
INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION
AX = DE30h
Return: BX = version (BH=major, BL=minor) or 0000h if not DESQview/X
Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
you must first check the DESQview version to verify that it is 2.50 or
greater
SeeAlso: INT 21/AH=2Bh/CX=4445h
--------Q-15DE31-----------------------------
INT 15 - DESQview/X v1.10 - ???
AX = DE31h
CX = ???
0000h ???
nonzero ???
???
Return: ???
--------b-15DF-------------------------------
INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL
AH = DFh
AL = function
00h turn on Turbo mode
01h turn off Turbo mode
02h set Turbo mode according to hardware switch
SeeAlso: INT 13/AX=FFFFh
--------b-15E00F-----------------------------
INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH
AX = E00Fh
ES:BX -> start of 2nd processor's execution
Return: AL = status
0Fh successful
00h failure
SeeAlso: AX=E10Eh,AX=E200h
--------b-15E10E-----------------------------
INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH
AX = E10Eh
ES:BX -> start of 2nd processor's execution
Return: AL = status
0Fh successful (halted)
00h failure (not halted)
SeeAlso: AX=E00Fh,AX=E200h
--------b-15E200-----------------------------
INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE
AX = E200h
Return: AX bit 15 set if 2nd processor available
SeeAlso: AX=E00Fh,AX=E10Eh
--------b-15E4-------------------------------
INT 15 - Tandy??? - ???
AH = E4h
AL = subfunction
21h, 89h, 8Ah, 8Bh called by 386MAX v6.01
DL = ???
Return: DL = 00h if successful???
Note: the section of code in 386MAX which calls these functions also checks
whether the ROM BIOS has both Tandy and Phoenix Technologies
signatures if these calls fail; the Tandy 1000SL/TL BIOS does not
support this function, however, returning the usual CF set/AH=86h for
"unsupported function".
--------b-15E4-------------------------------
INT 15 - Compaq ROM BIOS 03/08/93 and newer - ???
AH = E4h
AL = subfunction
00h get ???
Return: CF clear
AH = 00h
CX = 0000h
BX = ??? (read from [XBDA:0094h])
01h,02h unsupported by this ROM version
Return: CF set, AH = 86h
80h,90h,A0h,B0h,C0h,D0h,E0h,F0h set ???
Return: CF clear
AH = 00h
CX = 0000h
BX = ???
81h,91h,A1h,B1h,C1h,D1h,E1h,F1h unsupported by 3/8/93&4/8/93 ROMs
Return: CF set, AH = 86h
Notes: functions 80h/90h/etc. are not supported by the 4/8/93 EISA System ROM
these functions are not supported by the 7/26/93 LTE Lite 386 ROM
--------b-15E800-----------------------------
INT 15 - Compaq Contura - GET ???
AX = E800h
Return: AX = 0000h
BH = 00h
BL = ??? (read from port 0C7Ch)
CH = ???
CL = ???
DX = 0000h
Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
--------b-15E800-----------------------------
INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE???
AX = E800h
BX = ??? (0000h)
Return: CF clear if successful
BH = 02h
BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h)
CF set on error
others???
Notes: used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether
the Enhanced Parallel Port expected by that driver is available
used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether
volume control hardware expected by that driver is available
--------b-15E800-----------------------------
INT 15 - Compaq Prolinea - GET ???
AX = E800h
BX = ??? (1369h)
Return: BH = 01h
BL = ???
others???
Note: used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether
the fix that driver applies is required (will not install if BX on
return is other than 010Eh or 010Fh)
--------b-15E801-----------------------------
INT 15 - Compaq Contura - GET ???
AX = E801h
Return: CF clear
AX = extended memory in K (read from CMOS locations 30h and 31h)
BH = ???
BL = ???
CX = extended memory in K (read from CMOS locations 17h and 18h)
DX = ???
Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
--------b-15E802-----------------------------
INT 15 - Compaq Contura - GET ???
AX = E802h
Return: CF clear
AX = 0000h
BX = ???
CX = 0000h
Note: this function is also supported by the LTE Lite 25c, 25E, and 486; not
supported by LTE Lite 20 and 25.
--------m-15F200CX454D-----------------------
INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALISATION CHECK ???
AX = F200h
CX = 454Dh
Return: CF clear if hardware already initialised
BX = upper RAM areas in use
bit 0: C000-C3FF
bit 1: C400-C7FF
...
bit 11: EC00-EFFF
CF set if hardware not initialised yet
--------B-1600-------------------------------
INT 16 - KEYBOARD - GET KEYSTROKE
AH = 00h
Return: AH = BIOS scan code
AL = ASCII character
Notes: on extended keyboards, this function discards any extended keystrokes,
returning only when a non-extended keystroke is available
the BIOS scan code is usually, but not always, the same as the hardware
scan code processed by INT 09. It is the same for ASCII keystrokes
and most unshifted special keys (F-keys, arrow keys, etc.), but
differs for shifted special keys.
SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,INT 18/AH=00h
--------B-1601-------------------------------
INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
AH = 01h
Return: ZF set if no keystroke available
ZF clear if keystroke available
AH = BIOS scan code
AL = ASCII character
Note: if a keystroke is present, it is not removed from the keyboard buffer;
however, any extended keystrokes which are not compatible with 83/84-
key keyboards are removed in the process of checking whether a
non-extended keystroke is available
SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h
--------B-1602-------------------------------
INT 16 - KEYBOARD - GET SHIFT FLAGS
AH = 02h
Return: AL = shift flags (see #0442)
SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h
Bitfields for keyboard shift flags:
Bit(s) Description (Table 0442)
7 Insert active
6 CapsLock active
5 NumLock active
4 ScrollLock active
3 Alt key pressed (either Alt on 101/102-key keyboards)
2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
1 left shift key pressed
0 right shift key pressed
SeeAlso: #0447,#2345
--------B-1603-------------------------------
INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
AH = 03h
AL = subfunction
00h set default delay and rate (PCjr and some PS/2)
01h increase delay before repeat (PCjr)
02h decrease repeat rate by factor of 2 (PCjr)
03h increase delay and decrease repeat rate (PCjr)
04h turn off typematic repeat (PCjr and some PS/2)
05h set repeat rate and delay (AT,PS)
BH = delay value (00h = 250ms to 03h = 1000ms)
BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
06h get current typematic rate and delay (newer PS/2s)
Return: BL = repeat rate (see above)
BH = delay (see above)
Note: use INT 16/AH=09h to determine whether some of the subfunctions are
supported
SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER"
--------B-1604-------------------------------
INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)
AH = 04h
AL = keyclick state
00h off
01h on
SeeAlso: AH=03h
--------B-1605-------------------------------
INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)
AH = 05h
CH = scan code
CL = ASCII character
Return: AL = 00h if successful
01h if keyboard buffer full
Notes: under DESQview, a number of "keystrokes" invoke specific
DESQview-related actions when they are read from the keyboard
buffer (see #0443)
similarly, some "keystrokes" invoke special functions on the HP 100LX
and HP 200LX (see #0444)
SeeAlso: AH=00h,AH=25h"K3",AH=71h,AH=FFh,INT 15/AX=DE10h
(Table 0443)
Values for pseudo-keystrokes for DESQview:
38FBh or FB00h switch to next window (only if main menu already popped up)
38FCh or FC00h pop up DESQview main menu
38FEh or FE00h close the current window
38FFh or FF00h pop up DESQview learn menu
(Table 0444)
Values for pseudo-keystrokes for HP 100LX/200LX:
EE00h pop up topcard display and set other system manager applications
into sleep mode
--------B-1605-------------------------------
INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)
AH = 05h
AL = function
01h set keyboard layout to French
02h set keyboard layout to German
03h set keyboard layout to Italian
04h set keyboard layout to Spanish
05h set keyboard layout to UK
80h check if function supported
Return: AL <> 80h if supported
Return: ???
Note: this function is called by the DOS 3.2 KEYBxx.COM
SeeAlso: AH=92h,AH=A2h
--------B-1609-------------------------------
INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY
AH = 09h
Return: AL = supported keyboard functions (see #0445)
Notes: this function is only available if bit 6 of the second feature byte
returned by INT 15/AH=C0h is set (see #0383)
reportedly, the Award Modular BIOS v4.50G returns the keyboard function
flags in AH instead of AL, and provides this function even though
its availability is not indicated by INT 15/AH=C0h
SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h
Bitfields for supported keyboard functions:
Bit(s) Description (Table 0445)
7 reserved
6 INT 16/AH=20h-22h supported (122-key keyboard support)
5 INT 16/AH=10h-12h supported (enhanced keyboard support)
4 INT 16/AH=0Ah supported
3 INT 16/AX=0306h supported
2 INT 16/AX=0305h supported
1 INT 16/AX=0304h supported
0 INT 16/AX=0300h supported
SeeAlso: #0385
--------B-160A-------------------------------
INT 16 - KEYBOARD - GET KEYBOARD ID
AH = 0Ah
Return: BX = keyboard ID (see #0446)
Note: check return value from AH=09h to determine whether this function is
supported
SeeAlso: AH=09h
(Table 0446)
Values for keyboard ID:
0000h no keyboard attached
41ABh Japanese "G" keyboard (translate mode)
54ABh Japanese "P" keyboard (translate mode)
83ABh Japanese "G" keyboard (pass-through mode)
84ABh Japanese "P" keyboard (pass-through mode)
90ABh old Japanese "G" keyboard
91ABh old Japanese "P" keyboard
92ABh old Japanese "A" keyboard
--------B-1610-------------------------------
INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)
AH = 10h
Return: AH = BIOS scan code
AL = ASCII character
Notes: if no keystroke is available, this function waits until one is placed
in the keyboard buffer
the BIOS scan code is usually, but not always, the same as the hardware
scan code processed by INT 09. It is the same for ASCII keystrokes
and most unshifted special keys (F-keys, arrow keys, etc.), but
differs for shifted special keys.
unlike AH=00h, this function does not discard extended keystrokes
INT 16/AH=09h can be used to determine whether this function is
supported, but only on later model PS/2s
SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h
--------B-1611-------------------------------
INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)
AH = 11h
Return: ZF set if no keystroke available
ZF clear if keystroke available
AH = BIOS scan code
AL = ASCII character
Notes: if a keystroke is available, it is not removed from the keyboard buffer
unlike AH=01h, this function does not discard extended keystrokes
some versions of the IBM BIOS Technical Reference erroneously report
that CF is returned instead of ZF
INT 16/AH=09h can be used to determine whether this function is
supported, but only on later model PS/2s
SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h
--------B-1612-------------------------------
INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)
AH = 12h
Return: AL = shift flags 1 (same as returned by AH=02h) (see #0447)
AH = shift flags 2 (see #0448)
Notes: AL bit 3 set only for left Alt key on many machines
AH bits 7 through 4 always clear on a Compaq SLT/286
INT 16/AH=09h can be used to determine whether this function is
supported, but only on later model PS/2s
SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh
Bitfields for keyboard shift flags 1:
Bit(s) Description (Table 0447)
7 Insert active
6 CapsLock active
5 NumLock active
4 ScrollLock active
3 Alt key pressed (either Alt on 101/102-key keyboards)
2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
1 left shift key pressed
0 right shift key pressed
SeeAlso: #0442,#0448
Bitfields for keyboard shift flags 2:
Bit(s) Description (Table 0448)
7 SysReq key pressed (SysReq is often labeled SysRq)
6 CapsLock pressed
5 NumLock pressed
4 ScrollLock pressed
3 right Alt key pressed
2 right Ctrl key pressed
1 left Alt key pressed
0 left Ctrl key pressed
SeeAlso: #0447
--------J-1613-------------------------------
INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL
AH = 13h
AL = function
00h set shift status
DX = shift status (see #0449), must preserve internal status
bits
01h get shift status
Return: DX = current shift status (see #0449)
Note: these functions are supplied by the Japanese Front-End Processor
SeeAlso: AH=14h,INT 21/AX=6301h
Bitfields for DOS/V shift status:
Bit(s) Description (Table 0449)
0 full-size rather than half-size
2-1 character input mode
00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused
5-3 internal status
6 Romaji enabled
7 Katakana to Kanji conversion enabled
15-8 internal status
--------J-1614-------------------------------
INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL
AH = 14h
AL = function
00h enable display
01h disable display
02h get display state
Return: AL = current state (00h enabled, 01h disabled)
Desc: control the screen-bottom shift status row(s) for the Japanese
Front-End Processor
SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1Dh
--------B-1620-------------------------------
INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only)
AH = 20h
Return: AH = BIOS scan code (see AH=10h for details)
AL = ASCII character
Note: use AH=09h to determine whether this function is supported
SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22h
--------b-1620------------------------------------
INT 16 - HUNTER 16 - SET TEMPORARY SHIFT
AH = 20h
AL = shift status (see #0450)
Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
the user can override the specified settings by pressing the keys
Bitfields for HUNTER 16 shift status:
Bit(s) Description (Table 0450)
4 Scroll Lock on
5 Num Lock on
6 Caps Lock on
--------K-1620-------------------------------
INT 16 O - K3 v1.5+, K3PLUS v5.0+ - GET EXTENDED BUFFER STATE
AH = 20h
Return: AX = K3 version
ES:BX -> extended keyboard buffer start
ES:DX -> extended keyboard buffer end
ES:SI -> next keystroke
ES:DI -> last keystroke in buffer
CX = number of keystrokes in buffer
Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
K3 extended German keyboard driver by Martin Gerdes published in c't
magazine in 1988
Note: this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
instead
SeeAlso: AH=25h"K3",AX=AF20h,INT 2F/AX=D44Fh/BX=0000h,INT 2F/AX=ED58h
--------B-1621-------------------------------
INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only)
AH = 21h
Return: ZF set if no keystroke available
ZF clear if keystroke available
AH = BIOS scan code
AL = ASCII character
Notes: use AH=09h to determine whether this function is supported
some versions of the IBM BIOS Technical Reference erroneously report
that CF is returned instead of ZF
SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21h
--------b-1621------------------------------------
INT 16 - HUNTER 16 - CONTROL SHIFT KEYS
AH = 21h
AL = shift keys to control (see #0442)
BL = shift state for disabled keys
Note: If a bit in AL is set the key is disabled and set to the state of the
corresponding bit in BL
SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER"
--------B-1622-------------------------------
INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only)
AH = 22h
Return: AL = shift flags 1 (see #0447)
AH = shift flags 2 (see #0448)
Note: use AH=09h to determine whether this function is supported
SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21h
--------b-1622------------------------------------
INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL
AH = 22h
AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled)
BX = 0708h
CX = 0910h
DX = 1112h
Return: AL = 00h if successful
SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2Ah
--------b-1623------------------------------------
INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT
AH = 23h
AL = new state of breakout (00h enabled, nonzero disabled)
BX = 0708h
CX = 0910h
DX = 1112h
Return: AL = 00h if successful
Desc: Enables or disables the emergency breakout feature, where the
Hunter 16 at power on checks whether the X and P keys are pressed.
If so the machine will boot rather than continue the running program
SeeAlso: AH=22h"HUNTER"
--------b-1624------------------------------------
INT 16 - HUNTER 16 - REDEFINE KEY CODES
AH = 24h
AL = Matrix Code (see #0451)
BL = new Key code
Return: AL = status (00h successful, nonzero failed)
SeeAlso: AH=2Bh,AH=2Ch
(Table 0451)
Values for HUNTER 16 Matrix Code:
Code Key Code Key Code Key
00h Esc key 1Eh Space 3Bh L
01h 1 21h 0 3Ch ,
02h Q 22h - 3Eh Right shift
03h Tab 23h ' 42h 8
04h Num Lock 24h Keypad 4 43h 7
05h \ 25h Enter 44h U
08h LShift 26h Keypad 7 45h I
09h Ctrl 27h . 46h J
0Ah "Paw" key 28h Keypad 1 47h K
0Bh 2 29h Keypad 0 48h M
0Ch W 2Ch = 49h N
0Dh A 2Dh Backspace 4Ah /
0Eh S 2Eh Keypad 8 4Dh 6
0Fh Z 2Fh Keypad 9 4Eh 5
11h Alt 30h Keypad 5 4Fh T
16h 4 31h Keypad 6 50h Y
17h 3 32h Keypad 2 51h G
18h E 33h Keypad 3 52h H
19h R 34h Keypad . 53h B
1Ah D 37h 9 54h V
1Bh F 38h O 55h #
1Ch X 39h P 58h Pwr
1Dh C 3Ah ; 59h Shift Pwr
--------b-1625------------------------------------
INT 16 - HUNTER 16 - RESET KEYBOARD
AH = 25h
Return: AL = 00h
Desc: restores the standard keyboard layout after any remapping
SeeAlso: AH=24h,AH=2Bh,AH=2Ch
--------K-1625-------------------------------
INT 16 O - K3 v1.5+, K3PLUS v5.0+ - COPY INTO EXTENDED BUFFER
AH = 25h
CX = number of keystrokes to copy
ES:SI -> buffer containing keystrokes
Return: CF clear if successful
CF set on error (i.e. buffer full)
CX = number of keystrokes NOT transferred
ES:SI -> first keystroke not transferred
Note: this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
instead
SeeAlso: AH=05h,AH=20h"K3",AX=AF25h,INT 2F/AX=D44Fh/BX=0001h
--------b-1626------------------------------------
INT 16 - HUNTER 16 - CONTROL KEYCLICK
AH = 26h
AL = new state of keyclicks (00h disabled, 01h enabled)
Return: AL = 00h
SeeAlso: AH=2Ah
--------b-1627------------------------------------
INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA
AH = 27h
AL = what to dump
00h whole (virtual) window
01h LCD window only
Return: AL = 00h
Desc: control whether printscren dumps the whole 80x25 screen or only the
part displayed in the LCD window
Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
a 640x200 virtual screen
--------b-1629------------------------------------
INT 16 - HUNTER 16 - GET KEY REPEAT
AH = 29h
Return: BL = Typematic rate (characters per second) (see #0452)
BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s)
SeeAlso: AH=03h,AH=2Ah
(Table 0452)
Values for HUNTER 16 Typematic rate:
00h 30.0 08h 15.0 10h 7.5 18h 3.7
01h 26.7 09h 13.3 11h 6.7 19h 3.3
02h 24.0 0Ah 12.0 12h 6.0 1Ah 3.0
03h 21.8 0Bh 10.9 13h 5.5 1Bh 2.7
04h 20.0 0Ch 10.0 14h 5.0 1Ch 2.5
05h 18.5 0Dh 9.2 15h 4.6 1Dh 2.3
06h 17.1 0Eh 8.6 16h 4.3 1Eh 2.1
07h 16.0 0Fh 8.0 17h 4.0 1Fh 2.0
SeeAlso: AH=2Ah
--------b-162A------------------------------------
INT 16 - HUNTER 16 - CONTROL KEY REPEAT
AH = 2Ah
AL = new state of keyboard autorepeat (00h disabled, 01h enabled)
SeeAlso: AH=03h,AH=26h,AH=29h,AH=2Bh
--------b-162B------------------------------------
INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES
AH = 2Bh
AL = which key table to redefine
00h unshifted
01h shifted
02h Numlock
BH = standard scan code of key (00h-80h)
BL = new scan code
Desc: redefine the generated scan code from BH to BL
SeeAlso: AH=24h,AH=2Ah,AH=2Ch
--------b-162C------------------------------------
INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES
AH = 2Ch
AL = Matrix code of key (see AH=29h)
BL = new key code
Return: AL = status (00h success, nonzero failed)
Desc: redefine the key code generated by holding the PAW key down and
pressing the key in AL
SeeAlso: AH=24h,AH=2Bh
--------b-162D------------------------------------
INT 16 - HUNTER 16 - CONTROL BREAK KEYS
AH = 2Dh
AL = enabled break keys
bit 0 Ctrl-C
bit 1 Ctrl-Break
BX = 0708h
CX = 0910h
DX = 1112h
Return: AL = status (00h success, FFh failed)
SeeAlso: AH=21h"HUNTER"
--------U-163577-----------------------------
INT 16 U - TextWare TWTSR - API
AX = 3577h
CX = function
00CBh ???
Return: AX = 0000h
BX = 0000h
DX:CX -> ???
00CCh uninstall
Return: AX = status
0000h successful
FFFDh unable to unload because vectors taken
00CDh ???
Return: AX = 0000h
BX = 0000h
DX:CX -> ???
other
Return: AX = 5345h ('SE')
Program: TWTSR is a TSR which allows the TextWare hypertext browser to be
popped up via hotkey
SeeAlso: AX=D724h
--------U-164252-----------------------------
INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
AX = 4252h
Return: AX = 5242h if installed
Program: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of the
PC Magazine utility CAPTURE written by Tom Kihlken
SeeAlso: AX=4253h,AX=4254h
--------U-164253-----------------------------
INT 16 - TEXTCAP 2.0 - UNINSTALL
AX = 4253h
Return: AX = segment of resident code
Notes: the uninstall code does not check whether interrupt vectors have been
chained by other programs
the caller must free the main memory block (using the returned segment)
SeeAlso: AX=4252h,AX=4254h
--------U-164254-----------------------------
INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
AX = 4254h
Return: AX = status
4254h if screen dump will be written as soon as disk becomes idle
5442h if screen dump written
SeeAlso: AX=4252h,AX=4253h
--------e-164500-----------------------------
INT 16 - Shamrock Software EMAIL - GET STATUS
AX = 4500h
DL = port number (01h = COM1)
ES:BX -> 13-byte buffer for ASCIZ name
Return: AX = 4D00h if EMAIL installed on specified port
ES:BX -> "" if no connection
-> "*" if connection but caller has not identified name
-> name otherwise
CX = version (CH = major, CL = minor)
DL = privilege level of user (00h = guest)
DH = chosen language (00h German, 01h English)
SeeAlso: AX=4501h,AX=4502h
--------e-164501-----------------------------
INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
AX = 4501h
DL = port number (01h = COM1)
Return: AX = 4D00h if EMAIL installed on specified port
BX = maximum connect time in clock ticks
CX = maximum connect time for guests (without name) in clock ticks
DX = elapsed connect time of current user in clock ticks
SeeAlso: AX=4500h
--------e-164502-----------------------------
INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
AX = 4502h
DL = port number (01h = COM1)
Return: AX = 4D00h if EMAIL installed on specified port
BL = current value of serial port's Line Control Register
BH = flags (see #0453)
CX = selected country code (33 = France, 49 = Germany, etc)
DX = baudrate divisor (115200/DX = baudrate)
SeeAlso: AX=4500h
Bitfields for Shamrock Software EMAIL flags:
Bit(s) Description (Table 0453)
0 ISO code
1 pause
2 linefeed
3 ANSI sequences
--------e-164503-----------------------------
INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
AX = 4503h
DL = port number (01h = COM1)
DH = maximum execution time in clock ticks (00h = 5 seconds)
ES:BX -> ASCIZ string with new user command-word
Return: AX = 4D00h if EMAIL installed on specified port
Notes: a single user command (consisting of only uppercase letters and digits)
may be defined, and remains valid until it is overwritten or the
EMAIL program terminates; the user command must be activated by
calling AX=4504h at least once.
an existing command word may be redefined with this function
SeeAlso: AX=4504h,AX=4505h
--------e-164504-----------------------------
INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
AX = 4504h
DL = port number (01h = COM1)
ES:BX -> 80-byte buffer for ASCIZ user input line
Return: AX = 4D00h if EMAIL installed on specified port
DL = flags
bit 0: user function supported (always set)
bit 1: user entered user-function command word
if DL bit 1 set,
ES:BX buffer contains line entered by user which begins with
the defined command word and has been converted to all
caps
Note: caller must process the returned commandline and invoke AX=4505h
within five seconds with the result of that processing
SeeAlso: AX=4503h,AX=4505h
--------e-164505-----------------------------
INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
AX = 4505h
DL = port number (01h = COM1)
DH = error flag
bit 3: set on error
ES:BX -> ASCIZ text to return to user, max 1024 bytes
Return: AH = 4Dh if EMAIL installed on specified port
AL = status
00h successful
02h unable to perform function (timeout, prev call not complete)
other error
Notes: if the error flag in DH is set, the string is not sent and an error
message is generated instead; if this function is not called within
five seconds of AX=4504h, EMAIL automatically generates an error
message
the string is copied into an internal buffer, allowing this function's
caller to continue immediately
SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400h
--------e-164506-----------------------------
INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
AX = 4506h
DL = port number (01h = COM1)
ES:BX -> 13-byte buffer for ASCIZ filename
Return: AX = 4D00h if EMAIL installed on specified port
DH = Xmodem status
00h no XGET command given
01h XGET in progress
02h XGET completed successfully
ES:BX buffer filled with last filename given to XGET command
(without path)
Note: DH=02h will only be returned once per XGET; subsequent calls will
return DH=00h
SeeAlso: AX=4500h,INT 17/AX=2408h
--------K-164D4F-----------------------------
INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK
AX = 4D4Fh
Return: AX = 6F6Dh if installed
ES = segment of resident code
Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov
SeeAlso: INT 10/AX=1130h/BX=4D4Fh
--------J-165000-----------------------------
INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE
AX = 5000h
BX = country code
0001h USA (English), 0051h Japan
Return: AL = status
00h successful
01h bad country code
02h other error
SeeAlso: AX=5001h,INT 10/AX=5000h,INT 17/AX=5000h
--------J-165001-----------------------------
INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
AX = 5001h
Return: AL = status
00h successful
BX = country code
02h error
SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h
--------J-1651-------------------------------
INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
AH = 51h
Return: AL = standard shift key states (see #0442,#0447)
AH = Kana lock (00h off, 01h on)
SeeAlso: AH=02h,AH=12h,AH=22h
--------t-165453BX5242-----------------------
INT 16 - TSRBONES - INSTALLATION CHECK
AX = 5453h ('TS')
BX = 5242h ('RB')
CX = 4F4Eh ('ON')
DX = 4553h ('ES')
Return: AX = 4553h if installed
BX = 4F4Eh if installed
CX = 5242h if installed
DX = 5453h if installed
Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis
Note: these values are the default as the TSRBONES package is distributed,
but will normally be changed when implementing an actual TSR with
the TSRBONES skeleton
SeeAlso: INT 2D"AMIS"
--------A-165500-----------------------------
INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
AX = 5500h
Return: AX = 4D53h ('MS') if keyboard TSR present
Notes: during startup, Microsoft Word tries to communicate with any TSRs
that are present through this call.
if the return is not 4D53h, Word installs its own INT 09 and INT 16
handlers; otherwise it assumes that the TSR will handle the keyboard
SeeAlso: AX=55FFh,INT 1A/AX=3601h
--------A-1655FE-----------------------------
INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR
AX = 55FEh
DX = function
0000h initialize
ES:BX -> ??? function
ES:CX -> ??? structure
FFFFh shutdown/reset
Return: AX = result
4D4Bh only the INT 1B handler will be installed.
other: handlers for INT 08, INT 09, INT 16, INT 1B, and INT 1C
are installed
Notes: The pointer in ES:CX seems to point at a structure defining a callback
function when new keyboard keys are pressed. If a TSR returns
AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled).
these calls are also made by MS-DOS 6.0's DOSSHELL at startup, exit,
and before/after shelling out
since EDIT.COM and HELP.COM merely invoke QBASIC, those two programs
will also cause this interface to be invoked
SeeAlso: INT 16/AX=5500h,INT 1A/AX=3601h
--------U-1655FF-----------------------------
INT 16 C - Microsoft Word - TSR COOPERATION???
AX = 55FFh
BX >= 0004h (version of Microsoft Word [BL = major] ???)
CX = function
0000h set ??? flag
other clear ??? flag
Notes: hooks intercepting this call are present in SWAPSH and SWAPDT v1.77j,
distributed with PC Tools v7, as well as the Trusted Access
SCRNBLNK.COM; this may be part of the standard TesSeRact library
known to be called by the German edition of Microsoft Word 5.0
SeeAlso: AX=5500h,INT 2F/AX=5453h
--------c-165758BX4858-----------------------
INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
AX = 5758h
BX = 4858h ('HX')
DX = 4443h ('DC')
CX <> 5758h
Return: BX = 6878h if installed
CX = 6463h if installed
AX = code segment of TSR
CX = internal version??? (v3.00 returns 0100h)
Program: CACHECLK is a "cloaked" disk cache included with Netroom
Notes: if CX=5758h on entry, CACHECLK returns with all registers unchanged
the cache statistics are located early in the segment pointed at by
AX on return
SeeAlso: INT 2F/AX=5758h
----------165758BX5754-----------------------
INT 16 U - Netroom ??? - ???
AX = 5758h
BX = 5754h
???
Return: ???
----------165758BX5755-----------------------
INT 16 U - Netroom ??? - ???
AX = 5758h
BX = 5755h
DS:SI -> ???
Return: ???
----------165758BX5756-----------------------
INT 16 U - Netroom ??? - INSTALLATION CHECK
AX = 5758h
BX = 5756h
Return: BX <> 5756h if installed
--------m-165758BX5858-----------------------
INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS
AX = 5758h
BX = 5858h
Return: CF clear
DX:BX -> saved copy of interrupt vector table
Note: the installation check consists of calling this function and comparing
BX against 5858h on return; if it has changed, PRENET is installed
SeeAlso: AX=5758h/BX=5859h
Index: installation check;Netroom PRENET
--------m-165758BX5859-----------------------
INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS
AX = 5758h
BX = 5859h
Return: CF clear
DX:BX -> saved copy of interrupt vector table
Note: the installation check consists of calling this function and comparing
BX against 5859h on return; if it has changed, POSTNET is installed
SeeAlso: AX=5758h/BX=5858h
Index: installation check;Netroom POSTNET
--------U-166969BX6968-----------------------
INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
AX = 6969h
BX = 6968h
Return: resident code unhooked, but not removed from memory
Index: uninstall;BACKTALK
--------U-166969BX6969-----------------------
INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
AX = 6969h
BX = 6969h
DX = 0000h
Return: DX nonzero if installed
BX = CS of resident code
DX = PSP segment of resident code
DS:SI -> ASCIZ identification string "CPoint Talk"
--------i-166A6B-----------------------------
INT 16 U - FastJuice - DISABLE/UNLOAD???
AX = 6A6Bh
Return: ???
Program: FastJuice is a resident battery-power monitor by SeaSide Software
SeeAlso: AX=7463h
Index: uninstall;FastJuice
--------G-166C63-----------------------------
INT 16 U - TMED v1.6a - INSTALLATION CHECK
AX = 6C63h ('lc')
Return: AX = 4C43h ('LC') if installed
Program: TMED is a freeware resident memory editor by Liang Chen
--------b-166F00-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
AX = 6F00h
BX <> 4850h (usually set to 0000h for simplicity)
Return: BX = 4850h ("HP") if present
Notes: called by recent MS Mouse drivers looking for an HP-HIL mouse
supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
SeeAlso: INT 6F/AH=00h"HP Vectra"
--------b-166F01-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
AX = 6F01h
Return: AH = 00h (successful)
CX = 0004h (size of returned buffer)
ES:SI -> buffer for typematic info (see #0454)
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
Format of HP Vectra EX-BIOS typematic info:
Offset Size Description (Table 0454)
00h BYTE delay before repeat for all non-Cursor Control Pad keys
(see #0455)
01h BYTE typematic rate for all non-Cursor Control Pad keys (see #0456)
02h BYTE delay before repeat for Cursor Control Pad keys (see #0457)
03h BYTE typematic rate for Cursor Control Pad keys (see #0456)
(Table 0455)
Values for HP Vectra EX-BIOS non-CCP delay time:
00h 17 ms
01h 150 ms
02h 283 ms
03h 417 ms
04h 550 ms
05h 683 ms
06h 817 ms
07h 950 ms
08h 1083 ms
09h 1217 ms
0Ah 1350 ms
0Bh 1483 ms
0Ch 1617 ms
0Dh 1750 ms
0Eh 1883 ms
0Fh 2017 ms
Note: the above values assume that the key repeat rate has been set to 60 Hz;
double the times if set to 30 Hz
SeeAlso: #0454,#0456,#0457
(Table 0456)
Values for HP Vectra EX-BIOS typematic rate:
00h 60 / sec
01h 30 / sec
02h 20
03h 15
04h 12
05h 10
06h 8.57
07h 7.5
08h 6.66
09h 6 / sec
0Ah 5.45
0Bh 5
0Ch 4.62
0Dh 4.28
0Eh 4 / sec
0Fh typematic disabled
Note: the above values assume that the key repeat rate has been set to 60 Hz;
halve the rates if set to 30 Hz
SeeAlso: #0455,#0457
(Table 0457)
Values for HP Vectra EX-BIOS CCP delay time:
00h 17 ms
01h 83 ms
02h 150 ms
03h 217 ms
04h 283 ms
05h 350 ms
06h 417 ms
07h 483 ms
08h 550 ms
09h 617 ms
0Ah 683 ms
0Bh 750 ms
0Ch 817 ms
0Dh 883 ms
0Eh 950 ms
0Fh 1017 ms
Note: the above values assume that the key repeat rate has been set to 60 Hz;
double the times if set to 30 Hz
SeeAlso: #0455,#0456
--------b-166F02-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
AX = 6F02h
Return: AH = 00h (successful)
CX = 0004h (size of returned buffer)
ES:SI -> buffer for typematic info (see #0454)
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h
--------b-166F03-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
AX = 6F03h
ES:SI -> buffer containing typematic info (see #0454)
Return: AH = 00h (successful)
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h
--------b-166F04-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
AX = 6F04h
ES:SI -> mapping buffer (see #0458)
Return: AH = 00h (successful)
CX = 001Eh (number of bytes in buffer)
ES:SI buffer filled
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
the HIL input system translates the HIL keyboard events to simulate
an IBM-compatible keyboard; the translation can be altered
dynamically by applications
SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h
Format of HP Vectra EX-BIOS keyboard mapping info:
Offset Size Description (Table 0458)
00h 3 WORDs entry for V_QWERTY driver (IP, CS, DS)
06h 3 WORDs entry for V_SOFTKEY driver (IP, CS, DS)
0Ch 3 WORDs entry for V_FUNCTION driver
12h 3 WORDs entry for V_NUMPAD driver
18h 3 WORDs entry for V_CCP driver
--------b-166F05-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
AX = 6F05h
ES:SI -> mapping buffer (see #0458)
Return: AH = 00h (successful)
CX = 001Eh (number of bytes in buffer)
ES:SI buffer filled
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F04h,AX=6F06h
--------b-166F06-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
AX = 6F06h
CX = number of bytes in buffer (001Eh)
ES:SI -> mapping buffer (see #0458)
Return: AH = 00h (successful)
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
any application which modifies the key mappings should restore them
before terminating
drivers installed with this function are assured of 32 bytes of stack
space when they are invoked
SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h
--------b-166F07-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
AX = 6F07h
BL = translation to set (see #0459)
Return: AH = 00h (successful)
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
this function may no longer work properly if the application has
modified the key mappings with AX=6F06h
SeeAlso: AX=6F06h,AX=6F09h
(Table 0459)
Values for HP Vectra keyboard translation specifier:
00h map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
01h map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
02h map V_CCP to V_OFF, disabling the cursor pad
03h map V_CCP to V_CCPGID, converting cursor pad keys to GID data
04h map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
05h map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
06h map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
07h map V_SOFTKEY to V_OFF, disabling HP Softkeys
SeeAlso: #0460
(Table 0460)
Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
INT 09 INT 16 keycode
Key scan code Default Shifted Ctrl Alt
* (NumPd) 37h 2Ah (Prt Sc) 00/72h 00/37H
Sysreq 54h -- -- -- --
CCP-Up 60h 00/D9h 00/BFh 00/A5h 00/8BH
CCP-Left 61h 00/DAh 00/C0h 00/A6h 00/8CH
CCP-Down 62h 00/DBh 00/C1h 00/A7h 00/8DH
CCP-Right 63h 00/DCh 00/C2h 00/A8h 00/8EH
CCP-Home 64h 00/DDh 00/C3h 00/A9h 00/8FH
CCP-PgUp 65h 00/DEh 00/C4h 00/AAh 00/90H
CCP-End 66h 00/DFh 00/C5h 00/ABh 00/91H
CCP-PgDn 67h 00/E0h 00/C6h 00/ACh 00/92H
CCP-Ins 68h 00/E1h 00/C7h 00/ADh 00/93H
CCP-Del 69h 00/E2h 00/C8h 00/AEh 00/94H
CCP-CNTR 6Ah 00/E3h 00/C9h 00/AFh 00/95H
F1 70h 00/E9h 00/CFh 00/B5h 00/9BH
F2 71h 00/EAh 00/D0h 00/B6h 00/9CH
F3 72h 00/EBh 00/D1h 00/B7h 00/9DH
F4 73h 00/ECh 00/D2h 00/B8h 00/9EH
F5 74h 00/EDh 00/D3h 00/B9h 00/9FH
F6 75h 00/EEh 00/D4h 00/BAh 00/A0H
F7 76h 00/EFh 00/D5h 00/BBh 00/A1H
F8 77h 00/F0h 00/D6h 00/BCh 00/A2H
SeeAlso: #0005,#0459
--------b-166F08-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
AX = 6F08h
Return: AH = status
00h successful
02h unsupported (non-HIL, i.e. standard, keyboard)
BH = HP-HIL address (HP Vectra AT only???)
BL = HP-HIL ID (HP Vectra AT only???)
BL = keyboard language (ES/QS/RS only???) (see #0461)
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may
be computed as (BH-1)*6 + N, where N is the address of the first
HP-HIL device driver (see INT 6F/AH=0Ah"SF_INQUIRE_FIRST")
SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"SF_INQUIRE_FIRST"
(Table 0461)
Values for HP HIL keyboard language code:
00h reserved
01h Arabic-French
02h Kanji
03h Swiss-French
04h Portugese
05h Arabic
06h Hebrew
07h Canadian-English
08h Turkish
09h Greek
0Ah Thai
0Bh Italian
0Ch Hangul (Korean)
0Dh Dutch
0Eh Swedish
0Fh German
10h Chinese (PRC)
11h Chinese (Taiwan)
12h Swiss (French ii)
13h Spanish
14h Swiss (German ii)
15h Belgian (Flemish)
16h Finish
17h United Kingdom
18h French-Canadian
19h French-German
1Ah Norwegian
1Bh French
1Ch Danish
1Dh Katakana
1Eh Latin American Spanish
1Fh United States-American
20h-FEh reserved
FFh non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)
--------b-166F09-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
AX = 6F09h
Return: AH = 00h (successful)
Desc: reset all keyboard mappings to their default translators, and reset
typematic values to their defaults
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h
--------b-166F0A-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
AX = 6F0Ah
Return: AH = 00h (successful)
BX = speed code
0Bh for low speed (see #0462)
12h for medium speed (see #0462)
0Ch for high speed (see #0462)
Note: supported by ES, QS, and RS series of HP Vectras
SeeAlso: AX=6F00h
(Table 0462)
Values for HP Vetra CPU speed:
Vectra Low Medium High
ES 8 MHz - 8 MHz
ES/12 8 MHz - 12 MHz
QS/16, RS/16 8 MHz - 16 MHz
QS/16S 8 MHz - 16 MHz
QS/20, RS/20 8 MHz - 20 MHz
RS/20C 5 MHz 10 MHz 20 MHz
RS/25C 5 MHz 12.5 MHz 25 MHz
--------b-166F0B-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
AX = 6F0Bh
Return: AH = 00h (successful)
Notes: see AX=6F0Ah for speed definitions
supported by ES, QS, and RS series of HP Vectras
SeeAlso: AX=6F00h,AX=6F0Ah
--------b-166F0C-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
AX = 6F0Ch
Return: AH = 00h (successful)
Notes: see AX=6F0Ah for speed definitions
supported by ES, QS, and RS series of HP Vectras
SeeAlso: AX=6F00h,AX=6F0A
--------b-166F0D-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
AX = 6F0Dh
Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
Notes: supported by ES, QS, and RS series of HP Vectras
called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
input system
SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F"HP Vectra"
--------b-166F0E-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
AX = 6F0Eh
BL = new interrupt number (60h-6Fh,78h-7Fh)
Return: AH = status (00h = successful)
Desc: allows the HIL Extended BIOS software to use a non-default interrupt
number in case of an interrupt conflict with another application
Notes: supported by ES, QS, and RS series of HP Vectras
called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
input system
SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F"HP"
--------b-166F0F-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
AX = 6F0Fh
Return: AH = status
00h successful
FEh cache subsystem is bad
SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h
--------b-166F10-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
AX = 6F10h
Return: AH = 00h (successful)
SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h
--------b-166F11-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
AX = 6F11h
Return: AH = 00h (successful)
AL bit 0 = cache state
0 cache disabled
1 cache enabled
SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h
--------b-166F12-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
AX = 6F12h
Return: AH = 00h (successful)
Note: see AX=6F0Ah for speed definitions
SeeAlso: AX=6F00h,AX=6F0Ah
--------K-1670-------------------------------
INT 16 - FAKEY.COM - INSTALLATION CHECK
AH = 70h
Return: AX = 1954h if installed
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
--------K-1671-------------------------------
INT 16 - FAKEY.COM - PUSH KEYSTROKES
AH = 71h
CX = number of keystrokes
DS:SI -> array of words containing keystrokes to be returned by AH=00h
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
SeeAlso: AH=05h,AH=72h
--------K-1672-------------------------------
INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
AH = 72h
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
SeeAlso: AH=71h
--------K-1673-------------------------------
INT 16 - FAKEY.COM - PLAY TONES
AH = 73h
CX = number of tones to play
DS:SI -> array of tones (see #0463)
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
SeeAlso: INT 15/AX=1019h
Format of FAKEY.COM tone array entries:
Offset Size Description (Table 0463)
00h WORD divisor for timer channel 2
02h WORD duration in clock ticks
--------i-167463-----------------------------
INT 16 U - FastJuice - INSTALLATION CHECK
AX = 7463h ("tc")
Return: AX = 5443h ("TC") if installed
Program: FastJuice is a resident battery-power monitor by SeaSide Software
SeeAlso: AX=6A6Bh
--------R-1675-------------------------------
INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
AH = 75h
AL = number of ticks between checks for new screen changes
--------R-1676-------------------------------
INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
AH = 76h
AL = error checking type
00h none
01h fast
02h slow
--------R-1677-------------------------------
INT 16 - pcANYWHERE III - LOG OFF
AH = 77h
AL = mode
00h wait for another call
01h leave in Memory Resident Mode
02h leave in Automatic Mode
FFh leave in current operating mode
--------U-167761-----------------------------
INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
AX = 7761h ('wa')
Return: AX = 5741h ('WA') if installed
Note: WATCH.COM is part of the "TSR" package by Kim Kokkonen
SeeAlso: INT 21/AX=7761h
--------U-167788BX7789-----------------------
INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
AX = 7788h
BX = 7789h
DS:SI -> signature "PUSHDIR VERSION 1.0"
Return: AX = 7789h if installed and signature correct
BX = 7788h
SI destroyed
--------R-1679-------------------------------
INT 16 - pcANYWHERE III - CHECK STATUS
AH = 79h
Return: AX = status
FFFFh if resident and active
FFFEh if resident but not active
FFFDh if in Memory Resident mode
FFFCh if in Automatic mode
other value if not resident
SeeAlso: AX=7B00h,INT 21/AX=2B44h
--------R-167A-------------------------------
INT 16 - pcANYWHERE III - CANCEL SESSION
AH = 7Ah
--------R-167B00-----------------------------
INT 16 - pcANYWHERE III - SUSPEND
AX = 7B00h
SeeAlso: AH=79h,AX=7B01h
--------R-167B01-----------------------------
INT 16 - pcANYWHERE III - RESUME
AX = 7B01h
SeeAlso: AH=79h,AX=7B00h
--------R-167C-------------------------------
INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
AH = 7Ch
Return: AH = port number
AL = baud rate (see #0464)
SeeAlso: AX=7B00h,AH=7Eh
(Table 0464)
Values for pcANYWHERE III baud rate:
00h 50 baud
01h 75 baud
02h 110 baud
03h 134.5 baud
04h 150 baud
05h 300 baud
06h 600 baud
07h 1200 baud
08h 1800 baud
09h 2000 baud
0Ah 2400 baud
0Bh 4800 baud
0Ch 7200 baud
0Dh 9600 baud
0Eh 19200 baud
SeeAlso: #0206
--------R-167D-------------------------------
INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
AH = 7Dh
AL = subfunction
00h set terminal parameters
01h get terminal parameters
02h get configuration header and terminal parameters
DS:CX -> terminal parameter block
SeeAlso: AH=7Ch,AH=7Eh
--------R-167E-------------------------------
INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
AH = 7Eh
AL = subfunction
01h port input status
Return AX = 0 if no characer ready,
AX = 1 if character ready
02h port input character
Return AL = received character
03h port output character in CX
11h hang up phone
SeeAlso: AH=7Ch
--------R-167F-------------------------------
INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
AH = 7Fh
AL = subfunction
00h enable remote keyboard only
01h enable host keyboard only
02h enable both keyboards
08h display top 24 lines
09h display bottom 24 lines
10h Hayes modem
11h other modem
12h direct connect
--------U-1680-------------------------------
INT 16 - MAKEY.COM - INSTALLATION CHECK
AH = 80h
Return: AX = 1954h if installed
Program: MAKEY is a utility by System Enhancement Associates
--------U-168765BX4321-----------------------
INT 16 - AT.COM version 8/26/87 - API
AX = 8765h
BX = 4321h
CX = ??? or FFFFh
if CX = FFFFh
DX = number of event to remove or FFFFh
Return: ES:BX -> event record array (see #0465)
Program: AT.COM is a resident scheduler by Bill Frolik
Format of AT.COM event record:
Offset Size Description (Table 0465)
00h BYTE in-use flag (00h free, 01h in use, FFh end of array)
01h BYTE day of date on which to trigger
02h BYTE month of date on which to trigger
03h BYTE trigger time, minute
04h BYTE trigger time, hour
05h WORD offset of command to be executed
----------1692-------------------------------
INT 16 - ???
AH = 92h
Return: AH <= 80h="" if="" note:="" this="" function="" is="" called="" by="" the="" dos="" 3.2="" keybxx.com="" and="" dos="" 5+="" keyb.com="" seealso:="" ah="05h" pcjr",ah="A2h" "="" --------u-1699-------------------------------="" int="" 16="" -="" scout="" v5.4="" -="" get="" ah="99h" return:="" ax="ABCDh" bx:cx="" -=""> ??? (appears to be start of PSP for resident portion)
Program: Scout is a memory-resident file manager by New-Ware
SeeAlso: AH=9Eh
--------U-169E-------------------------------
INT 16 - SCOUT v5.4 - INSTALLATION CHECK
AH = 9Eh
Return: AX = ABCDh if installed
Program: Scout is a memory-resident file manager by New-Ware
SeeAlso: AH=99h
----------16A2-------------------------------
INT 16 - ???
AH = A2h
Return: AH <= 80h="" if="" note:="" this="" function="" is="" this="" function="" is="" called="" by="" the="" dos="" 5+="" keyb.com="" seealso:="" ah="92h" --------v-16aa-------------------------------="" int="" 16="" -="" ptxxx.com="" -="" (xxx="CGA,EGA,VGA,HER...)" call="" gate="" for="" graphics="" ah="AAh" various="" registers="" set="" up="" by="" high="" level="" language.="" return:="" graphics="" performed="" note:="" pt="" stands="" for="" paint="" tools="" which="" is="" a="" graphics="" library="" for="" turbo="" pascal,="" modula="" 2="" and="" others="" from="" databiten="" in="" sweden.="" the="" library="" is="" installed="" as="" a="" memory="" resident="" driver.="" --------u-16aabbbxeeff-----------------------="" int="" 16="" u="" -="" jorj="" v4.3="" -="" installation="" check="" ax="AABBh" bx="EEFFh" return:="" ax="EEFFh" if="" installed="" bx="AABBh" if="" installed="" cl="hotkey" name="" (default="" 6ah="" 'j'="" for="" alt-j)="" program:="" jorj="" is="" a="" shareware="" dictionary="" with="" phonetic="" lookup="" by="" jorj="" software="" co.="" index:="" hotkeys;jorj="" --------k-16af20bx4b33-----------------------="" int="" 16="" -="" k3plus="" v6.00+="" (api="" v2.0+)="" -="" get="" extended="" buffer="" state="" ax="AF20h" bx="4B33h" ('k3')="" return:="" ax="K3" version="" (same="" as="" returned="" in="" bx="" by="" ax="AF4Dh)" es:bx="" -=""> extended keyboard buffer start
ES:DX -> extended keyboard buffer end
ES:SI -> next keystroke
ES:DI -> last keystroke in buffer
CX = number of keystrokes in buffer
Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
K3 extended German keyboard driver by Martin Gerdes published in c't
magazine in 1988
Note: this function replaces the identical function AH=20h"K3"
SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
--------K-16AF25BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
AX = AF25h
BX = 4B33h ('K3')
CX = number of keystrokes to copy
ES:SI -> buffer containing keystrokes
Return: CF clear if successful
CF set on error (i.e. buffer full)
CX = number of keystrokes NOT transferred
ES:SI -> first keystroke not transferred
Note: this function replaces the identical function AH=25h"K3"
SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
--------K-16AF4DBX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
AX = AF4Dh
BX = 4B33h ('K3')
Return: AL = 50h if installed
BX = K3 version
DX = API version
ES:CX -> K3 structure (version-dependent) (see #0466)
Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
K3 extended German keyboard driver by Martin Gerdes published in c't
magazine in 1988
SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF83h,INT 2F/AX=D44Fh/BX=0000h
SeeAlso: INT 2F/AX=ED58h
Index: installation check;K3PLUS
Format of internal K3 structure:
Offset Size Description (Table 0466)
00h 3 BYTEs signature "K3$"
03h BYTE length of structure, including this byte and signature
04h WORD compiler switch option flags A (see #0467)
06h WORD compiler switch option flags B (see #0468)
08h BYTE internal flags A (see #0469)
09h BYTE internal flags B (see #0470)
0Ah WORD DOS version recorded at startup
0Ch WORD "ActTypeSpeed"
0Eh WORD last Keyboard-ID sent
41ABh translated, 83ABh native (pass-through)
10h WORD offset of K3TAB Special
12h WORD offset of K3TAB German
14h WORD offset of K3TAB Alt
16h WORD offset of K3TAB AltGr
18h WORD offset of K3TAB Ctrl
1Ah WORD offset of K3TAB NPad
1Ch WORD offset of K3TAB CtrlNPad
1Eh WORD offset of K3TAB AltNPad
20h WORD offset of K3TAB ApoTbl or 0000h
22h WORD offset of K3TAB UmlautTbl or 0000h
24h WORD offset of K3TAB UmlautTblExp or 0000h
26h WORD length of video mode table
28h WORD offset of VidMdTbl or 0000h
2Ah BYTE '$' end marker
Bitfields for K3PLUS compiler switch option flags A:
Bit(s) Description (Table 0467)
15 GuINT16Fct2 (general use of INT 16 function 2)
14 Int15df (INT 15 has to be predefined)
13 GuAltNP (general use of Alt Numpad)
12 SupAT (ATs+ supported)
11 GuINT16Fct3 (general use of INT 16 function 3)
10 GuINT16Ret (general use of INT16 bad function return)
9-8 Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
7 ForceMF (force MF decode without read-ID)
6 KXlate (translate keys for special keyboard)
5 UmlautX (umlaut translation capability included)
4 ApoX (translate apostrophe)
3 DoINT16 (INT 16 handler included)
2 UseCC (CopyCursor included)
1-0 UseEB
0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
Bitfields for K3 compiler switch option flags B:
Bit(s) Description (Table 0468)
15-11 reserved (0)
10 CtrlSeq (Ctrl macro capability included)
9-8 SupINT16fct55FE
6 DoInstallCheck (check for double installation)
5 SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
4 SendOut (sound and message output supported)
3 SupInt16fct5500 (INT 16/AX=5500h supported)
2 GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
1-0 UseBufferStart (0=use standard area, 1=set standard area,
2=use internal indexes, 3=reserved)
Bitfields for K3 internal flags A:
Bit(s) Description (Table 0469)
7 DoingUmlautExp
6 CallINT15fct4F
5 Beep1 (requires SendOut set in option flags B)
4 ATflag (set for AT, 386, PS/2 Models 50-80)
3 XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
2 KeyClick
1 UmlautExp
0 UmlautTrans
Bitfields for K3 internal flags B:
Bit(s) Description (Table 0470)
7-5 reserved
4 TranslateE0 enabled
3 Boot enabled
2 PrintScreen enabled
1 Break enabled
0 ApoPendingBeep
--------K-16AF50BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
AX = AF50h
BX = 4B33h ('K3')
CH = function
00h get function flags
CL = 00h
Return: CX = supported function flags (see #0471)
nonzero reserved for extensions
SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
Bitfields for K3PLUS supported function list:
Bit(s) Description (Table 0471)
0 function 4Dh supported
1 function 50h supported
2-3 reserved (0)
4 function 20h supported
5 function 25h supported
6 function 51h supported
7 reserved (0)
8 function 80h supported
9 function 81h supported
10 function 82h supported
11-15 reserved (0)
--------K-16AF51BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
AX = AF51h
BX = 4B33h ('K3')
CX = switches
Return: AL = status
00h done
CX = previous switch settings
01h switch not supported
FFh other error
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
--------K-16AF80BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
AX = AF80h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
81h if successful
ES:CX -> original INT 09 handler
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
--------K-16AF81BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
AX = AF81h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
82h if successful
ES:CX -> original INT 16 handler
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
--------K-16AF82BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
AX = AF82h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
83h if successful
ES:CX -> original INT 10 handler
Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
K3 extended German keyboard driver by Martin Gerdes published in c't
magazine in 1988
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
--------m-16B0B1-----------------------------
INT 16 - VGARAM v1.00 - INSTALLATION CHECK
AX = B0B1h
ES:DI -> 6 byte signature "VGARAM"
Return: AX = B1B0h if installed,
DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is
not used in text modes available for DOS
--------K-16CA--BX736B-----------------------
INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
AH = CAh
BX = 736Bh ("sk")
CX = 736Bh
AL = function
00h installation check
Return: DX = words available in keyboard buffer
01h place keystroke in buffer
DX = keystroke (DH = scan code, DL = ASCII character)
Return: DX = words available in keyboard buffer
FFFFh on error
02h flush STACKEY and BIOS keyboard buffers
Return: AX = CAFFh if installed
BX = segment of resident code
CX = STACKEY version (CH = major, CL = minor)
Program: STACKEY is a shareware keyboard-input faking TSR
Index: installation check;STACKEY
--------V-16CA00BX6570-----------------------
INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
AX = CA00h
BX = 6570h ("ep")
CX = 6570h
Return: AX = CAFFh if installed
BX = segment of resident code
CX = ??? (0090h)
Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette settings
permanent across mode switches
SeeAlso: AX=CA00h/BX=7670h
--------V-16CA00BX7670-----------------------
INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
AX = CA00h
BX = 7670h ("vp")
CX = 7670h
Return: AX = CAFFh if installed
BX = segment of resident code
CX = ??? (0090h)
Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette settings
permanent across mode switches
SeeAlso: AX=CA00h/BX=6570h
--------U-16D724CX00CB-----------------------
INT 16 U - APCAL v3.20 - GET ???
AX = D724h
CX = 00CBh
Return: AX = 0000h
BX = 0000h
DX:CX -> ??? or 0000h:0000h
Program: APCAL is an optionally-resident shareware appointment calendar by
Gamma Software
SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh
--------U-16D724CX00CC-----------------------
INT 16 U - APCAL v3.20 - GET ???
AX = D724h
CX = 00CCh
Return: AX = 0000h
BX = 0000h
DX:CX -> ??? (apparently an internal data area)
SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh
--------U-16D724CX00CD-----------------------
INT 16 U - APCAL v3.20 - GET ???
AX = D724h
CX = 00CDh
Return: AX = ??? (5345h seen)
SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh
----------16DFDF-----------------------------
INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
AX = DFDFh
Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
"06/18/93" if installed
----------16E0-------------------------------
INT 16 - AMI BIOS - Flash ROM
AH = E0h
AL = subfunction
00h get version ???
01h type set save requirement ???
02h get type set status ???
04h lower voltage ???
05h raise voltage ???
06h write protect ???
07h Flash ROM write enable ???
Notes: the "Meningitis" virus uses this API when attacking a system equipped
with an AMI BIOS; it is supposedly able to write itself into the
Flash ROM and thus make itself part of the BIOS
this API is not supported by AMI Pentium BIOS 1.00.05.AX1 on a Flash
ROM-equipped Gateway 2000 machine
--------t-16E0E0-----------------------------
INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
AX = E0E0h
Return: AX = 1F1Fh if installed
DWORD 0040h:00F0h -> last data block in TSR list (see #0473)
Note: the returned TSR list provides support for communication among TSRs
built with TurboPower's Turbo Professional and Object Professional
libraries for Turbo Pascal
SeeAlso: AX=F0F0h
--------U-16ED--BHED-------------------------
INT 16 - BORLAND TURBO LIGHTNING - API
AH = EDh
BH = EDh
BL = function
00h installation check
Return: AX = 5205h
CH = major version
CL = minor version
01h identical to function 00h???
02h get resident data segment
Return: AX = data segment of resident portion
03h get resident ???
Return: AX = offset of some buffer in resident code seg
04h redefine auxiliary dictionary
DS:SI -> counted filename string
Return: AL = result code
05h select active environment
AL = environment (00h to 0Ch)
Return: AX = status
0000h if OK
0001h if out of range
06h toggle AutoProof???
AL = state (00h off, 01h on)
07h ???
08h ???
AL = char???
CX = ???
DX = ???
Return: AX = 0, 1 or 2
09h ???
0Ah ???
CX = ???
DX = ???
Return: AX = ???
0Bh check dictionary integrity???
DS:SI -> counted dictionary filename string
Return: AX = 0, 40h, 80h
0Ch spellcheck string (disk dictionary, possibly RAM dict as well)
DS:SI -> counted string to check
Return: AH = 0
AL = result code
00h string found in dictionary
20h string begins more than one word
40h string not found
0Dh set ???
(sets an internal flag)
0Eh spellcheck string (RAM dictionary only)
DS:SI -> counted string to check
Return: AH = 00h
AL = result code
00h string found in dictionary
01h string not found
02h ???
0Fh ???
10h ???
Notes: AX in general returns an error code from most functions.
Index: installation check;Turbo Lightning
--------U-16EF-------------------------------
INT 16 - CALCULATOR - INSTALLATION CHECK
AH = EFh
Return: AX = 0088h if installed
Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and
Marek Kosznik
--------b-16F0-------------------------------
INT 16 - Compaq 386 and newer - SET CPU SPEED
AH = F0h
AL = speed code (see #0472)
if AL=09h,
CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
SeeAlso: AH=F1h,AH=F3h
(Table 0472)
Values for speed code:
00h equivalent to 6 MHz 80286 (COMMON)
01h equivalent to 8 MHz 80286 (FAST)
02h full 16 MHz (HIGH)
03h toggles between 8 MHz-equivalent and speed set by system board switch
(AUTO or HIGH)
08h full 16 MHz except 8 MHz-equivalent during floppy disk access
09h specify speed directly
--------t-16F0F0-----------------------------
INT 16 - TurboPower TSRs - INSTALLATION CHECK
AX = F0F0h
Return: AX = 0F0Fh if installed
ES:DI -> last data block in TSR list (see #0473)
Note: the returned TSR list provides support for communication among TSRs
built with TurboPower's Turbo Professional and Object Professional
libraries for Turbo Pascal
SeeAlso: AX=E0E0h
Format of TurboPower TSR data block:
Offset Size Description (Table 0473)
00h DWORD pointer to program tag (counted ASCII string)
04h WORD interface version number (0400h)
06h DWORD pointer to command entry point
0Ah DWORD pointer to previous data block (0000h:0000h if none)
0Eh DWORD pointer to next data block (0000h:0000h if none)
---swappable TSRs only---
12h DWORD pointer to swapping data
16h DWORD pointer to user data
more???
--------b-16F1-------------------------------
INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
AH = F1h
Return: AL = speed code (see #0472)
if AL = 09h, CX = speed code
SeeAlso: AH=F0h,AH=F3h
--------b-16F2-------------------------------
INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
AH = F2h
Return: AL = type
00h if 11-bit AT keyboard is in use
01h if 9-bit PC keyboard is in use
AH = 00h (04/08/93 system ROM)
--------b-16F3-------------------------------
INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
AH = F3h
AL = new limit
00h limit is 6 Mhz
01h limit is 8 Mhz/6 Mhz
SeeAlso: AH=F0h,AH=F1h
--------U-16F398-----------------------------
INT 16 U - NORTON GUIDES - INSTALLATION CHECK
AX = F398h
Return: AX = 6A73h ("js")
BH = scan code of current hot key
BL = ASCII code of current hot key
Note: NG.EXE was written by John Socha
--------b-16F400-----------------------------
INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
AX = F400h
Return: AH = E2h
AL = status
00h not present
01h enabled
02h disabled
SeeAlso: AX=F401h,AX=F402h
--------b-16F401-----------------------------
INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
AX = F401h
Return: AX = E201h
SeeAlso: AX=F400h,AX=F402h
--------b-16F402-----------------------------
INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
AX = F402h
Return: AX = E202h
SeeAlso: AX=F400h,AX=F401h
--------v-16FA00DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
AX = FA00h
DX = 5945h
Return: CF clear
DI = 4559h
BX = BIOS hotkey scancode (default 2F00h) (VSAFE only)
FFFFh if disabled
Note: MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection
SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h
--------v-16FA01DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
AX = FA01h
DX = 5945h
Return: CF clear if successful
DI = 4559h
SeeAlso: AX=FA00h
--------v-16FA02DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
AX = FA02h
DX = 5945h
BL = new parameter flags (see #0474)
Return: CF clear
DI = 4559h
CL = old value of parameter flags
Bitfields for VSAFE/VWATCH parameter flags:
Bit(s) Description (Table 0474)
7 Protect executable files
6 Protect FD boot sector
5 Protect HD boot sector
4 Boot sector viruses
3 Check executable files
2 General write protect
1 Resident
0 HD Low level format
--------v-16FA03DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
AX = FA03h
DX = 5945h
Return: CF clear
DI = 4559h
AX = 0002h
--------v-16FA04DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
AX = FA04h
DX = 5945h
Return: CF clear
DI = 4559h
BL = hotkey disable flag (nonzero if hotkey disabled)
Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
SeeAlso: AX=FA00h,AX=FA05h
--------v-16FA05DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
AX = FA05h
DX = 5945h
BL = new value of hotkey disable flag (nonzero to disable hotkey)
Return: CF clear
DI = 4559h
Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
SeeAlso: AX=FA00h,AX=FA04h
--------v-16FA06DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
AX = FA06h
DX = 5945h
Return: CF clear
DI = 4559h
BL = test status
00h don't monitor network drives (default for VWATCH v2.1)
FFh monitor network drives (default for VSAFE v2.0)
CL = ??? (only VSAFE 2.0)
SeeAlso: AX=FA07h
--------v-16FA07DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
AX = FA07h
DX = 5945h
BL = new state
00h don't monitor
01h monitor network drives
Return: CF clear
DI = 4559h
Note: VWATCH v2.1 (from PC Tools 9.0) returns CF set instead
SeeAlso: AX=FA00h,AX=FA06h
--------v-16FA08DX5945-----------------------
INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
AX = FA08h
DX = 5945h
Return: CF clear
DI = 4559h
AX = ??? (0002h)
BX = version (BH=major, BL=two-digit minor)
Note: this function is not supported by the PC Tools 9.0 VSAFE v2.0
SeeAlso: AX=FA00h,AX=FA06h
--------U-16FE55-----------------------------
INT 16 U - PC Tools v8+ programs - GET ???
AX = FE55h
CX = segment of resident program or 0000h for last loaded
DX = 0000h
Return: DX = resident code segment (unchanged if CX=0000h on entry)
AX = ??? or 0000h
Note: this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP,
and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK
seem to hook it merely to return the same AX as the CPTASK loaded
prior to them returned
--------U-16FEA4-----------------------------
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
AX = FEA4h
Return: nothing
Note: this function is identical to AX=FFA4h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFA4h
--------U-16FEC6-----------------------------
INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
AX = FEC6h
BL = new state (00h enabled, nonzero disabled)
Return: nothing
Desc: specify whether CPSCHED API calls other than this one and AX=FE55h will
be honored
--------U-16FED3-----------------------------
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
AX = FED3h
DS:SI -> 92-byte data record for ???
Return: ???
Note: this function is identical to AX=FFD3h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFD3h
--------U-16FEDC-----------------------------
INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
AX = FEDCh
Return: AX,DX destroyed
Index: uninstall;CPSCHED
--------U-16FEEFCX0000-----------------------
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
AX = FEEFh
CX = 0000h
Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
BX = segment of resident portion
DX = (CPSCHED v8.0) resident CS
Note: this function is identical to AX=FFD3h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFEFh
--------U-16FEF1-----------------------------
INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
AX = FEF1h
BX = ???
Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
DX = 5555h
Note: this function is identical to AX=FFD3h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFF1h
--------K-16FF-------------------------------
INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
AH = FFh
DX = scan code
Return: AL = status
00h success
01h failure
Program: KBUF is a keyboard buffer expander by Mark Adler
SeeAlso: AH=05h
--------V-16FF-------------------------------
INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
AH = FFh
Return: AL = interrupt number to which BIOS keyboard handler has been relocated
AL+1 = Zoom interrupt number
BX = hotkey
Notes: the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
the default hot key is F10
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 61"OPTIMA"
Index: hotkeys;OPTIMA 1024 VGA
----------16FF--BH00-------------------------
INT 16 - FREEZE.COM - INSTALLATION CHECK
AH = FFh
BH = 00h
Return: BH = FFh if installed
Program: FREEZE is a PC Magazine utility
--------d-16FF70BX0000-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
AX = FF70h
BX = 0000h
CX = 4C69h ('Li')
DX = 6E6Bh ('nk')
Return: AX = 0000h
CX = 4350h ('CP')
DH = major version
DL = minor version
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
--------d-16FF70BX0001-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - ???
AX = FF70h
BX = 0001h
DL = ???
Return: AX = ???
DH = ???
SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
--------d-16FF70BX0002-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - ???
AX = FF70h
BX = 0002h
CX = ???
DX = ???
Return: AX = ??? or FFFEh/FFFFh on error
DL = ???
BUG: DRIVEMAP will branch to random locations for BX values other than
those listed above for v8.0-9.0 because a) the incorrect register is
range-tested, resulting in BX=0003h-5CD6h being accepted as valid
function numbers, and b) the conditional which branches on invalid
function numbers jumps to the following instruction, becoming a NOP
SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
Index: installation check;DRIVEMAP
--------T-16FF80BX0000-----------------------
INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
AX = FF80h
BX = 0000h
CX = 0000h
DX = 0000h
Return: CX = 5555h if installed
Program: CPTASK is a task switcher by Central Point Software
--------T-16FF80BX0001-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0001h
???
Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
BX = ??? (PSP segment of resident code???)
--------T-16FF80BX0002-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0002h
Return: DX:SI -> ???
--------T-16FF80BX0003-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
AX = FF80h
BX = 0003h
Return: AX = flags (see #0475)
SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
Bitfields for CPTASK flags:
Bit(s) Description (Table 0475)
10 ???
13 ???
14 ???
15 ???
--------T-16FF80BX0004-----------------------
INT 16 U - PC Tools v8+ CPTASK - SET ???
AX = FF80h
BX = 0004h
CX = new value of ???
Return: ???
Note: this function also sets bit 14 of the flags word returned by
AX=FF80h/BX=0003h
--------T-16FF80BX0005-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
AX = FF80h
BX = 0005h
Return: AX = number of active tasks???
--------T-16FF80BX0006-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
AX = FF80h
BX = 0006h
Return: AX = old state (0000h clear, 0001h set)
Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
--------T-16FF80BX0007-----------------------
INT 16 U - PC Tools v8+ CPTASK - ???
AX = FF80h
BX = 0007h
ES:DI -> ???
???
Return: ???
--------T-16FF80BX0008-----------------------
INT 16 U - PC Tools v8+ CPTASK - ???
AX = FF80h
BX = 0008h
???
Return: ???
--------T-16FF80BX0009-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0009h
Return: CL = ???
CH = ??? (01h or 02h)
--------T-16FF80BX000A-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET ???
AX = FF80h
BX = 000Ah
DS:SI -> 128-byte buffer containing ???
--------T-16FF80BX000B-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET ???
AX = FF80h
BX = 000Bh
DX = index of ??? task (1-10)
--------T-16FF80BX000C-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
AX = FF80h
BX = 000Ch
CX = new delay time in minutes
--------T-16FF80BX4350-----------------------
INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
AX = FF80h
BX = 4350h ('CP')
CX = 5354h ('ST')
Return: never returns; terminates all tasks and exits to program originally
calling CPTASK
--------U-16FF90-----------------------------
INT 16 U - PC Tools v8+ DESKTOP - ???
AX = FF90h
???
Return: ???
Note: available only when popped up
--------U-16FF91-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF91h
???
Return: AX = 0000h
Note: calls AX=FFFDh after ???
SeeAlso: AX=FF92h,AX=FFFDh
--------U-16FF92-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF92h
???
Return: AX = 0000h
Note: like AX=FF91h, but temporarily sets ??? to 3
SeeAlso: AX=FF91h,AX=FFFDh
--------U-16FF93-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
AX = FF93h
--------U-16FF94-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ???
AX = FF94h
CX = ??? (default 0017h)
--------U-16FF95-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ???
AX = FF95h
BX = ???
--------U-16FF96-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF96h
CL = ???
Return: AX = ???
--------U-16FF97-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF97h
DS:DX -> buffer for ??? (see #0476)
Return: ???
Format of PC Tools DESKTOP buffer:
Offset Size Description (Table 0476)
00h 48 BYTEs ???
30h 128 BYTEs ???
--------U-16FF98-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
AX = FF98h
DX = byte offset in file of overlay header (see #0477)
Return: BX = file handle for DESK.OVL file
Desc: open the DESK.OVL file, seek to the specified offset, read in the
overlay header, and seek to the offset specified by the header
Format of PC Tools DESKTOP overlay header:
Offset Size Description (Table 0477)
00h 12 BYTEs NUL-padded ASCII overlay filename
0Ch DWORD offset within DESK.OVL file of actual overlay
--------U-16FF99-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF99h
???
Return: ???
--------U-16FF9A-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
AX = FF9Ah
Return: ES:BX -> name of current color scheme
Note: available even if not popped up
--------U-16FF9B-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - UNUSED
AX = FF9Bh
Return: ???
Note: sounds triple-length beep
--------T-16FF9C-----------------------------
INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
AX = FF9Ch
BL = function
00h set ??? pointer
DS:SI -> ???
01h clear pointer to 0000h:0000h
----------16FF9D-----------------------------
INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
AX = FF9Dh
ES:BX -> ??? word
Return: ???
Note: if ES is non-zero, the word pointed at by ES:BX determines whether the
??? flag is cleared (word = 0000h) or set (word is nonzero). The
flag is always cleared if ES=0000h.
--------U-16FF9E-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF9Eh
DL = ???
bit 7: ???
bits 6-0: function number??? (00h,01h,other)
???
Return: ???
--------U-16FFA1-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FFA1h
???
Return: ???
Note: same as AX=FFA2h, except ??? set to FFh
SeeAlso: AX=FFA2h
--------U-16FFA2-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FFA2h
???
Return: ???
Note: calls AX=FFC7h (remove window) and AX=FFFDh
SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
--------y-16FFA3BX0000-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
AX = FFA3h
BX = 0000h
CX = 0000h
Return: AX = segment of resident code
BX = 5555h
CX = 5555h
Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools
SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
--------y-16FFA3BX0001-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0001h
CX = 0001h
Return: AX:BX -> ???
CX = BX
--------y-16FFA3BX0002-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0002h
CX = 0002h
Return: AX = ??? (0 or 1)
CX = BX = AX
--------y-16FFA3BX0003-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0003h
CX = 0003h
Return: AX = ??? (0 or 1)
CX = BX = AX
--------y-16FFA3BX0004-----------------------
INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
AX = FFA3h
BX = 0004h
CX = 0004h
SeeAlso: AX=FFA3h/BX=0005h
--------y-16FFA3BX0005-----------------------
INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
AX = FFA3h
BX = 0005h
CX = 0005h
SeeAlso: AX=FFA3h/BX=0004h
--------y-16FFA3BX0006-----------------------
INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
AX = FFA3h
BX = 0006h
CX = 0006h
DX = current PSP segment as known to DOS??? or 0000h
----------16FFA3BXFFA3-----------------------
INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
AX = FFA3h
BX = FFA3h
CX = FFA3h
Return: BX = CX = 5555h if installed
AX = resident code segment
Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
access indicator on the screen; in v7 and v8, this function was
provided by DATAMON
Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
--------U-16FFA4-----------------------------
INT 16 U - PC Tools v7-8 DESKTOP - ???
AX = FFA4h
Return: ???
Notes: available even when not popped up
sets unknown flag if ??? conditions met
SeeAlso: AX=FEA4h
--------c-16FFA5CX1111-----------------------
INT 16 - PC-Cache v6+ - INSTALLATION CHECK
AX = FFA5h
CX = 1111h
Return: CH = 00h if installed
ES:DI -> internal data (see #0478)
CL = cache state
01h enabled
02h disabled
SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
Format of PC-Cache internal data:
Offset Size Description (Table 0478)
-1Ch 20 BYTEs cached drive list, one byte per drive A: to T:
each byte is either blank (20h) or drive letter (41h-54h)
-8 BYTE ???
-7 WORD number of physical transfers (scaled down to 0000h-7FFFh)
-5 WORD number of saved transfers (scaled down to 0000h-7FFFh)
-3 3 BYTEs ???
--------c-16FFA5CXAAAA-----------------------
INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
AX = FFA5h
CX = AAAAh
Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
SeeAlso: AX=FFA5h/CX=CCCCh
--------c-16FFA5CXCCCC-----------------------
INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
AX = FFA5h
CX = CCCCh
Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
Note: delayed writes are automatically disabled on EXECing
(see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
however, delayed writes are not automatically reenabled upon the
program's termination in v6.
SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
--------c-16FFA5CXDDDD-----------------------
INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
AX = FFA5h
CX = DDDDh
SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
--------c-16FFA5CXEEEE-----------------------
INT 16 - PC-Cache v6+ - ENABLE CACHE
AX = FFA5h
CX = EEEEh
SeeAlso: AX=FFA5h/CX=DDDDh
--------c-16FFA5CXFFFF-----------------------
INT 16 - PC-Cache v6+ - FLUSH CACHE
AX = FFA5h
CX = FFFFh
SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
--------U-16FFA6-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
AX = FFA6h
Return: DS:SI -> ???
Note: available only when popped up
--------U-16FFA7-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
AX = FFA7h
Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
--------U-16FFA8-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFA8h
DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
???
Return: ???
Notes: available only when popped up
strings copied into internal buffer, among other actions
--------U-16FFA9-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
AX = FFA9h
Return: DS:SI -> version string
--------U-16FFAA-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFAAh
???
Return: ???
Note: available only when popped up
--------U-16FFAB-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
AX = FFABh
Return: DS:SI -> editor setting strings???
--------U-16FFAC-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFACh
DL = ???
Note: available only when popped up
--------U-16FFAD-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFADh
DL = ???
--------U-16FFAE-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
AX = FFAEh
Return: AL = ???
--------U-16FFAF-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFAFh
DL = ???
--------U-16FFB0-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFB0h
BL = ???
--------U-16FFB1-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFB1h
???
Return: ???
--------U-16FFB2-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
AX = FFB2h
Return: DS:SI -> ???
--------U-16FFB3-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
AX = FFB3h
???
Return: ???
Note: available only when popped up
--------U-16FFB4-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
AX = FFB4h
Note: available only when popped up
SeeAlso: AX=FFBBh
--------U-16FFB5-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
AX = FFB5h
BX = window specifier (000Fh to 0019h) (see #0479)
DX = 0000h get, nonzero = set
ES:DI -> window parameter buffer (see #0480)
SeeAlso: AX=FFCBh
(Table 0479)
Values for PC Tools DESKTOP window specifier:
000Fh comm/FAX
0014h hotkey selection
0015h ASCII table
0016h system colors menu
Format of PC Tools DESKTOP window parameters:
Offset Size Description (Table 0480)
00h BYTE rows in window, not counting frame
01h BYTE columns in window, not counting frame
02h BYTE row number of top of window
03h BYTE 2*column number of left of window
04h BYTE character attribute for ???
05h BYTE character attribute for background/border
06h BYTE character attribute for ???
07h DWORD pointer to ??? on screen
0Bh 4 BYTEs ???
0Fh BYTE nonzero if window may be resized
Note: if running in monochrome mode, character attributes at offsets 04h to
06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
are changed to 07h on reading
--------U-16FFB6-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
AX = FFB6h
Return: AH = ???
AL = ???
--------U-16FFB7-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
AX = FFB7h
BX = direction
0000h copy to buffer
else copy from buffer
DS:SI -> 70-byte buffer with ???
Return: data copied
Note: available only when popped up under v6.0+
--------U-16FFB8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
AX = FFB8h
BH = subfunction
00h get
Return: BL = old value of ???
CL = old value of ??? (v6.0+)
CH = old value of ??? (v6.0+)
nonzero set
BL = new value for ???
CL = new value for ??? (v6.0+)
CH = new value for ??? (v6.0+)
DH = ???
Return: AL = old value replaced by CL (v6.0+)
AH = old value replaced by CH (v6.0+)
--------U-16FFB9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFB9h
???
Return: AX = ???
CX = ???
DS:SI -> ???
ES:DI -> ???
--------U-16FFBA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBAh
???
Return: AX = ???
Note: available only when popped up
--------U-16FFBB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
AX = FFBBh
Note: available only when popped up
SeeAlso: AX=FFB4h
--------U-16FFBC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
AX = FFBCh
--------U-16FFBD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
AX = FFBDh
???
Return: ???
--------U-16FFBE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBEh
???
Return: ???
Note: available only when popped up
--------U-16FFBF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBFh
BX = DOS file handle to write on
???
Return: ???
Note: available only when popped up
--------U-16FFC0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC0h
???
Return: AX = 0000h if successful
AX = FFFFh on error
Note: available only when popped up
--------U-16FFC1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC1h
BL = ???
ES:DI -> data structure (see #0481)
???
Return: AX = ???
Note: available only when popped up
SeeAlso: AX=FFC2h,AX=FFC3h
Format of PC Tools DESKTOP data structure:
Offset Size Description (Table 0481)
00h WORD ???
02h WORD ???
04h WORD ???
06h WORD ???
08h WORD ???
0Ah BYTE ???
0Bh BYTE ??? (zero/nonzero)
---v7.1---
0Ch WORD ???
0Eh BYTE ???
0Fh WORD ???
11h WORD ???
???
--------U-16FFC2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC2h
BL = ???
ES:DI -> data structure (see #0481)
???
Return: AH = ???
CX = ???
DH = ???
DL = ???
Note: available only when popped up
SeeAlso: AX=FFC1h,AX=FFC3h
--------U-16FFC3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC3h
BL = ???
ES:DI -> data structure (see #0481)
???
Return: AH = ???
CX = ???
DH = ???
DL = ???
Note: available only when popped up
SeeAlso: AX=FFC1h,AX=FFC2h
--------U-16FFC4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFC4h
Return: AL = ???
BX = segment of scratch space???
CX = segment of stored screen data (section covered by window???)
DX = segment of window parameters for ???
ES:BP -> ???
Note: available only when popped up in versions prior to 6.0
--------U-16FFC5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
AX = FFC5h
Return: BL = Desktop state
00h if nonresident
nonzero if loaded resident
Note: available only when popped up; should call AX=FFEFh first to ensure
that DESKTOP is active
SeeAlso: AX=FFEFh,AX=FFF3h
--------U-16FFC6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFC6h
BL = new value for ???
--------U-16FFC7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
AX = FFC7h
???
Return: ???
--------U-16FFC8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFC8h
Return: DS:SI -> ???
Note: valid only while popped up
--------U-16FFC9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
AX = FFC9h
DS:SI -> characters to store in clipboard
CX = size in bytes
Return: CF set on error
Notes: available only when popped up
while copying, bytes of 00h and 0Ah are skipped
--------U-16FFCA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFCAh
DX = ???
Return: AX destroyed
Note: available only when popped up
--------U-16FFCB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
AX = FFCBh
DX = window specifier???
Return: AX destroyed
Note: available only when popped up
SeeAlso: AX=FFB5h
--------U-16FFCC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
AX = FFCCh
DS:SI -> ASCIZ string
Return: AX = ???
CX = ???
ES:DI -> address past last character displayed (v5.1/5.5)
-> ??? on menu bar (v6.0)
--------U-16FFCD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFCDh
DS:DX -> ???
Return: ???
Note: available only when popped up
--------U-16FFCE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
AX = FFCEh
CX = ???
Return: nothing???
--------U-16FFCF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
AX = FFCFh
Note: available only when popped up
--------U-16FFD0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
AX = FFD0h
???
Return: ???
Note: available only when popped up
--------U-16FFD1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
AX = FFD1h
Return: BX = number of copies
DX = destination
00h cancel
01h LPT1
02h LPT2
03h LPT3
04h COM1
05h COM2
06h disk file
Note: available only when popped up
--------U-16FFD2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD2h
BX = ???
Return: BL = ???
Note: available only when popped up
--------U-16FFD3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD3h
DS:SI -> 92-byte data record for ???
Return: ???
SeeAlso: AX=FED3h
--------U-16FFD4BH3C-------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
AX = FFD4h
BH = 3Ch create file (with no attributes)
3Dh open file
41h delete file
BL = access mode
00h read only
01h write only
02h read/write
DS:SI -> ASCIZ filename
Return: BX = file handle
0000h on error
Note: operation is attempted in (in order) the directory from which the
desktop was started/run???, the directory specified with the
filename, X:\PCTOOLS\, and X:\
--------U-16FFD5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD5h
???
Return: ???
Note: available only when popped up
--------U-16FFD6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD6h
BX = ???
CX = ???
DX = offset in ???
???
Return: ???
Note: available only when popped up
--------U-16FFD7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD7h
???
Return: BL = ???
Note: available only when popped up
--------U-16FFD8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
AX = FFD8h
DS:BX -> ASCIZ filename
Return: BX = file handle
0000h on error
Note: pops up confirmation menu if file already exists
only available when popped up???
--------U-16FFD9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFD9h
Return: AX = ???
Note: available only when popped up
--------U-16FFDA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
AX = FFDAh
DS:SI -> ??? (v5.1/5.5 only)
Return: DS:SI -> filename
--------U-16FFDB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFDBh
BL = ???
Note: available only when popped up
--------U-16FFDC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
AX = FFDCh
Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
original values
Index: uninstall;PC Tools DESKTOP
--------U-16FFDDBX0000-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
AX = FFDDh
BX = 0000h
Return: CX = 5555h
DX = 5555h if PCShell installed in resident mode
--------U-16FFDDBX0001-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
AX = FFDDh
BX = 0001h
Return: CF clear if request successful (PCShell will pop up)
CF set on error
SeeAlso: AX=FFDDh/BX=0003h
--------U-16FFDDBX0002-----------------------
INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
AX = FFDDh
BX = 0002h
Return: AL =
00h ???
01h ???
Note: PCShell v6.0+ displays the error message "Incorrect PCRUN version",
awaits a keystroke, and aborts the current process
--------U-16FFDDBX0003-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
AX = FFDDh
BX = 0003h
SeeAlso: AX=FFDDh/BX=0001h
--------U-16FFDDBX0004-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - GET ???
AX = FFDDh
BX = 0004h
Return: CF clear if successful
DS:SI -> ???
--------U-16FFDDBX0005-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - ???
AX = FFDDh
BX = 0005h
???
Return: ???
Note: resets various variables if certain conditions are met
--------U-16FFDDBX0006-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - ???
AX = FFDDh
BX = 0006h
???
Return: ???
Note: resets various variables if certain conditions are met
--------U-16FFDDBX0007-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
AX = FFDDh
BX = 0007h
Return: CF clear if successful
SeeAlso: AX=FFDDh/BX=0008h
--------U-16FFDDBX0008-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
AX = FFDDh
BX = 0008h
Return: CF undefined
SeeAlso: AX=FFDDh/BX=0007h
--------U-16FFDDBX0009-----------------------
INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
AX = FFDDh
BX = 0009h
Return: CF clear if successful
DS:SI -> list of pointers (see #0482)
Format of PC Tools PCShell returned pointer list:
Offset Size Description (Table 0482)
00h WORD offset of WORD containing ???
02h WORD offset of name of program to execute
04h WORD offset of 80-byte buffer for ???
06h WORD offset of buffer for ??? (length in WORD preceding buffer)
08h WORD offset of buffer for ??? (length in WORD preceding buffer)
--------U-16FFDDBX000A-----------------------
INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
AX = FFDDh
BX = 000Ah
Return: CX = 5555h if running
DX = 5555h
Note: also sets a flag
--------U-16FFDDBX000B-----------------------
INT 16 U - PC Tools v6.0+ PCRUN API - ???
AX = FFDDh
BX = 000Bh
???
Return: CX = 5555h if PCRUN active
DX = 5555h
Note: also clears flag set by AX=FFDDh/BX=000Ah
--------U-16FFDE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
AX = FFDEh
DS:DX -> menu description (must be on a paragraph boundary)
Return: AX = ???
AL seems to be the number of the selected button
Note: available only when popped up
SeeAlso: AX=FFEEh
--------U-16FFDF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFDFh
???
Return: ???
--------U-16FFE0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE0h
CX = ???
DX = ???
Note: available only when popped up
--------U-16FFE1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
AX = FFE1h
--------U-16FFE2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE2h
DX = ???
Return: ???
Note: available only when popped up
--------U-16FFE3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
AX = FFE3h
BL = character to print to currently open printer or print file
Return: CF set on error
Note: available only when popped up
SeeAlso: INT 17/AH=00h
--------U-16FFE4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE4h
DX = segment of ???
Return: ???
Note: available only when popped up
--------U-16FFE5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
AX = FFE5h
DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
DX = segment of window parameters???
Return: AX = DOS file handle for file
DS:DX -> filename???
FFFFh if function cancelled by user
Note: available only when popped up
SeeAlso: AX=FFDAh
--------U-16FFE6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
AX = FFE6h
Return: AX = 0000h if no key available
else BIOS keycode
Notes: available only when popped up
invokes INT 28 idle interrupt before checking for key
--------U-16FFE7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE7h
BX = segment of ???
Return: ???
Note: available only when popped up
--------U-16FFE8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
AX = FFE8h
CX = number
DH = attribute
DS:SI -> destination for ASCII number
Return: DS:SI buffer filled in with alternating characters and attributes
--------U-16FFE9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
AX = FFE9h
Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
Note: available only when popped up
--------U-16FFEA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
AX = FFEAh
DS:SI -> counted string (count byte followed by string)
Return: ???
Note: available only when popped up
--------U-16FFEB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFEBh
???
Return: ???
--------U-16FFEC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
AX = FFECh
DS:SI -> FAR routine to ???
BX = ???
???
Return: AX = keystroke
FFFFh if F10 pressed to go to menu
Notes: available only when popped up
invokes INT 28 while waiting for keystroke
F10 is hotkey to Desktop menu
Index: hotkeys;PC Tools DESKTOP
--------U-16FFED-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFEDh
Return: AX = ???
Note: available only when popped up
--------U-16FFEE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
AX = FFEEh
DS:SI -> pulldown menu system description (see #0483)
Return: AX destroyed
Notes: available only when popped up
if the accessory does not need any menu items of its own, it should
call AX=FFFAh instead
SeeAlso: AX=FFF7h,AX=FFFAh
Format of PC Tools DESKTOP pulldown menu system description:
Offset Size Description (Table 0483)
00h WORD offset of menu bar contents (counted string)
02h WORD number of items on menu bar
04h 10 BYTEs scan codes for hotkeying to each of up to ten menu items
0Eh 10 BYTEs which character to highlight in each menu item (01h=first)
18h WORD offset of first menu definition (see #0484)
1Ah WORD offset of second menu definition
...
Format of PC Tools DESKTOP menu definition:
Offset Size Description (Table 0484)
00h WORD offset of menu contents (see #0485)
02h WORD number of entries in menu
04h for each entry:
Offset Size Description
00h BYTE scancode of Alt-key to invoke entry
01h BYTE character to highlight (01h=first, etc)
02h WORD offset of FAR routine to handle selection
Format of PC Tools DESKTOP menu contents:
Offset Size Description (Table 0485)
00h BYTE number of lines in menu
01h BYTE width of menu
02h N BYTEs counted strings, one for each line in menu
--------U-16FFEFCX0000-----------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
AX = FFEFh
CX = 0000h
Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
BX = segment of resident portion
AX = ??? (v5.1/5.5 only)
SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
--------U-16FFF0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFF0h
DX = ???
Return: AX destroyed
Note: available only when popped up
--------U-16FFF1BX0000-----------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
AX = FFF1h
BX = 0000h leave ??? flag as is
nonzero set ??? flag
Return: CX = 5555h if installed
DX = 5555h
--------U-16FFF2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
AX = FFF2h
DS:SI -> ASCIZ function key label string (each label preceded by '[')
or help text
Return: AX destroyed
Notes: available only when popped up
if the specified string does not start with '[', it is displayed
centered on the bottom line, else the function key labels are shown
--------U-16FFF3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
AX = FFF3h
Note: releases any EMS being used; restores video mode, page, and cursor
shape; and restores interrupt vectors
SeeAlso: AX=FFC5h,AX=FFEFh
Index: uninstall;PC Tools DESKTOP
--------U-16FFF4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFF4h
???
Return: ???
Note: available only when popped up
SeeAlso: AX=FFF6h
--------U-16FFF5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
AX = FFF5h
Return: ES:BX -> screen attributes data structure (see #0486)
AL = ??? (v6.0+)
Format of PC Tools DESKTOP attribute data structure:
Offset Size Description (Table 0486)
-1 BYTE attribute for desktop background
00h BYTE attribute for normal characters on desktop menu
01h BYTE attribute for highlighted characters on desktop menu
02h 5 BYTEs ???
07h BYTE attribute for dialog boxes
08h 15 BYTEs ???
17h BYTE attribute for message boxes
--------U-16FFF6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
AX = FFF6h
DS = segment of editor buffer structure (see #0487)
BX = ???
DX = segment of window parameters structure (see #0480)
Return: ???
Note: available only when popped up
SeeAlso: AX=FFF4h
Format of PC Tools DESKTOP editor buffer structure:
Offset Size Description (Table 0487)
00h WORD offset of current cursor position in buffer segment
02h 2 BYTEs ???
04h WORD offset of beginning of file data in buffer segment
06h 10 BYTEs ???
10h N BYTEs ASCIZ name of file being edited
--------U-16FFF7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
AX = FFF7h
DS:SI -> ???
???
Return: ???
Notes: available only when popped up
performs input processing on the menu bar set up with AX=FFEEh
SeeAlso: AX=FFEEh,AX=FFFBh
--------U-16FFF8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
AX = FFF8h
DS:0000h -> window parameters structure (see #0480)
DS:BX -> DWORD to store address of ??? on screen
Return: ???
--------U-16FFF9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
AX = FFF9h
ES:BX -> FAR routine to redisplay the utility's window
Note: available only when popped up
--------U-16FFFA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
AX = FFFAh
Notes: available only when popped up
adds the "Window" option to the "Desktop" option which is the only one
available when no accessories are active. Unlike AX=FFEEh, no
additional menu items are added between "Desktop" and "Window"
SeeAlso: AX=FFEEh,AX=FFFBh
--------U-16FFFB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
AX = FFFBh
Return: ???
Notes: available only when popped up
performs input processing on the standard menu bar set up with AX=FFFAh
SeeAlso: AX=FFF7h
--------U-16FFFC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
AX = FFFCh
Return: ES:BX -> hotkey table (see #0488)
DS:DX = original INT 09 vector
Format of PC Tools DESKTOP hotkey table:
Offset Size Description (Table 0488)
00h 2 BYTEs scancode/shift state for desktop hotkey
02h 2 BYTEs scancode/shift state for clipboard paste key
04h 2 BYTEs scancode/shift state for clipboard copy key
06h 2 BYTEs scancode/shift state for screen autodial key
--------U-16FFFD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
AX = FFFDh
Return: AX destroyed
Note: copies 4000 bytes from ??? to ??? under certain circumstances
SeeAlso: AX=FF91h,AX=FF92h
--------M-16FFFE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
AX = FFFEh
SeeAlso: AX=FFFFh,INT 33/AX=0001h
--------M-16FFFF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
AX = FFFFh
SeeAlso: AX=FFFEh,INT 33/AX=0002h
--------P-17----DX0ABC-----------------------
INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
DX = 0ABCh
Return: AX = AAAAh
DX = BAAAh
ES = code segment of resident portion
--------P-17----DX0B90-----------------------
INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
DX = 0B90h
Return: DX = ABBBh
ES = code segment of resident portion
--------P-17----DX0B91-----------------------
INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
DX = 0B91h
Return: DX = ABCBh
ES = code segment of resident portion
--------P-17----DX0F5F-----------------------
INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
DX = 0F5Fh
Return: AX = AAAAh
DX = F555h
ES = code segment of resident portion
--------B-1700-------------------------------
INT 17 - PRINTER - WRITE CHARACTER
AH = 00h
AL = character to write
DX = printer number (00h-02h)
Return: AH = printer status (see #0489)
SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
Bitfields for printer status:
Bit(s) Description (Table 0489)
7 not busy
6 acknowledge
5 out of paper
4 selected
3 I/O error
2-1 unused
0 timeout
--------B-1701-------------------------------
INT 17 - PRINTER - INITIALIZE PORT
AH = 01h
DX = printer number (00h-02h)
Return: AH = printer status (see #0489)
Note: some printers report that they are ready immediately after
initialization when they actually are not; a more reliable result may
be obtained by calling AH=02h after a brief delay
SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC"
--------B-1702-------------------------------
INT 17 - PRINTER - GET STATUS
AH = 02h
DX = printer number (00h-02h)
Return: AH = printer status (see #0489)
Note: PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC"
--------P-1702--DX0000-----------------------
INT 17 - INSET - INSTALLATION CHECK
AH = 02h
DX = 0000h
CX = 07C3h (1987d)
Return: CX = 07C2h (1986d) if installed
Program: INSET is a text/graphics integration program
--------b-170200BX5050-----------------------
INT 17 - Advanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
AX = 0200h
BX = 5050h ('PP')
CH = 45h ('E')
DX = printer port number (00h-02h)
Return: AH = status
00h if installed and port is an enhanced parallel port
CX:AL = installed BIOS type
5050h:45h ('PPE') if EPP v3.0 BIOS Installed
4550h:50h ('EPP') if EPP v1.0 BIOS installed
DX:BX -> far entry point to Advanced BIOS (see #0490)
03h if installed but specified port not supported
CF set
Program: The Advanced Parallel Port BIOS provides support for parallel
port peripherals using the enhanced modes of the IEEE 1284.
SeeAlso: AH=E0h
(Table 0490)
Call EPP BIOS entry point with:
DL = port number
AH = function
00h get ???
Return: AH = 00h if successful
BH = ??? (10h)
BL = ??? (00h)
ES:DI -> driver copyright string???
CX = I/O port base address for parallel port
AL = IRQ number used by port
01h set port mode???
AL = ???
bit 0: ???
bit 1: ???
bit 2: ???
bits 3-7 reserved (0)
Return: AH = 00h if successful
CF clear if successful
AL = ??? (destroyed?)
02h get port mode???
Return: AL = ??? (01h,02h,04h,FFh)
AH = 00h
CF clear
03h interrupt control
AL = subfunction
00h enable parallel port interrupts
01h disable parallel port interrupts
Return: AH = status (00h,05h,06h) (see also #0491)
04h set ???
Return: AH = 00h if successful
AL destroyed
05h ???
Return: AL destroyed
06h get ???
Return: AL = ??? (read from port 037Bh after setting bit 5 of
port 037Ah)
07h get ???
Return: AL = ??? (read from port 037Ch after clearing bit 5 of
port 037Ah)
08h output block of data
ES:SI -> block of data to be sent to parallel port
CX = number of bytes to output
Return: AH = status (see #0491)
Note: clears bit 5 of port 037Ah, then does OUTSB to 037Ch
09h read byte of data
Return: AH = status (see #0491)
AL = byte read from parallel port
Note: sets bit 5 of port 037Ah, then does IN from 037Ch
0Ah read block of data
ES:DI -> buffer for received data
CX = number of bytes to read from paralle port
Return: AH = status (see #0491)
ES:DI buffer filled if successful
Note: sets bit 5 of port 037Ah, then does INSB from 037Ch
0Bh read ???
AL = ???
Return: AH = status (see #0491)
AL = byte read if successful
Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
sets bit 5 of 037Ah and does IN from 037Ch
0Ch send ???
AL = ??? (byte to send to port 037Bh)
DH = ??? (byte to send to port 037Ch)
Return: AH = status (see #0491)
Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
sets bit 5 of 037Ah and does OUT to 037Ch
0Dh read block ???
AL = ??? (byte to send to port 037Bh)
ES:DI -> buffer for received data
CX = number of bytes to read
Return: AH = status (see #0491)
Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
sets bit 5 of 037Ah and does INSB from 037Ch
0Eh write block ???
AL = ??? (byte to send to port 037Bh)
ES:DI -> data to be sent
CX = number of bytes to write
Return: AH = status (see #0491)
Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
sets bit 5 of 037Ah and does OUTSB to 037Ch
0Fh NOP???
Return: AH = status (00h,03h,05h) (see #0491)
Notes: this function does nothing beyond checking whether
the desired port is supported and in the proper mode
must call function 01h with AL=04h first to get a
successful return code
10h NOP???
Return: AH = status (00h,03h,05h) (see #0491)
Notes: this function does nothing beyond checking whether
the desired port is supported and in the proper mode
must call function 01h with AL=04h first to get a
successful return code
11h ???
AL = subfunction
00h ???
01h ???
ES:DI -> ???
Return: AH = status (00h,03h,05h,06h) (see #0491)
12h ???
AL = subfunction
00h get ???
01h increment ???
02h decrement ???
Return: AH = status (00h,05h,06h,07h) (see #0491)
AL = current state of ??? (00h,01h)
Note: unlike all other functions, this one does not use DL
Return: AH = status (see #0491)
CF clear if successful
CF set on error
Notes: functions 03h-12h all require that function 01h have been called
with AL=04h first
the above description is derived from Compaq's EPPBIOS.SYS, supplied
in SOFTPAQ number 0937
(Table 0491)
Values for EPP BIOS function status:
00h successful
02h invalid parameter???
03h unsupported parallel port
05h unsupported in current mode
06h invalid subfunction
07h already ???
FFh invalid/unsupported function
--------P-1703-------------------------------
INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
AH = 03h
Return: BX = ???
CX = ???
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
--------c-1703-------------------------------
INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
AH = 03h
DX = printer port number
CX = number of characters to print
DS:SI -> string
Return: AH = printer status (see #0489)
CX = number of characters actually printed
Desc: send an entire string of chars to the print spooler with a single call
Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
operating system by The Software Link, Inc.
SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
----------1703--BX5A00-----------------------
INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
AH = 03h
BX = 5A00h
Return: AX = 5ACBh
DI = 0000h
ES = DMP code segment (also data segment)
Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
PCTODAY disk, volume 10, March 1991
--------N-170300-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
AX = 0300h
CX = type of socket from socket( domain, type, protocol )
DX = local identifier of socket (0 - 31)
Return: AX = 0000h success
CX = segment of 4500 byte transfer buffer
DX = offset of 4500 byte transfer buffer
= FFFFH failure
CX = error code
ENFILE 23
Program: DOSISODE is the ISO developers environment which has been ported to
DOS and will run with the Waterloo TCP turned into a resident TSR.
Currently it allows a maximum of 6 open sockets.
Note: this function will initialize the interface the first time it is
called
SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-1704-------------------------------
INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
AH = 04h
Note: has no effect unless ELTSR is deactivated (see AX=0503h)
SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
--------N-170400-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
AX = 0400h
Note: this function just returns
SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
--------P-170500-----------------------------
INT 17 U - Emulaser ELTSR - ???
AX = 0500h
???
Return: AX = unload status (0001h safe to unload, 0002h not safe)
BX = ???
CX = PSP segment of ELTSR
DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
SI = ???
DI = ???
SeeAlso: AH=04h,INT 1A/AH=E5h
--------N-170500-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
AX = 0500h
SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
--------P-170501-----------------------------
INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
AX = 0501h
Return: (see AX=0500h)
Note: restores interrupt vectors without checking whether they have been
hooked by later programs; should only be called if ELTSR reports
that it is safe to unload
SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
Index: uninstall;Emulaser ELTSR
--------P-170502-----------------------------
INT 17 U - Emulaser ELTSR - SET ???
AX = 0502h
BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
CL = ???
DL = ???
Return: (see AX=0500h)
SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
--------P-170503-----------------------------
INT 17 U - Emulaser ELTSR - DEACTIVATE???
AX = 0503h
Return: (see AX=0500h)
SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
--------P-1706-------------------------------
INT 17 U - Emulaser ELTSR - ???
AH = 06h
???
Return: ???
SeeAlso: AH=05h,INT 1A/AH=E5h
--------N-170600-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
AX = 0600h
Note: this function just returns
SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
SeeAlso: AX=0E00h"DOSISODE"
--------P-1707-------------------------------
INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
AH = 07h
ES:DX -> ASCIZ filename to be opened
Return: ???
Note: new output will be appended to the specified file
SeeAlso: AH=08h,INT 1A/AH=E5h
--------N-170700-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
AX = 0700h
Note: this function just returns
SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
--------P-1708-------------------------------
INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
AH = 08h
???
Return: ???
Desc: close the file previously opened by function 07h
SeeAlso: AH=07h,INT 1A/AH=E5h
--------N-170800-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
AX = 0800h
SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
--------P-1709-------------------------------
INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
AH = 09h
BX = ???
CX = ???
DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AX = status
00h successful
FFh failed
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
Note: this function calls through to INT 1A/AX=E401h, and thus requires
that either ELSPL or Disk Spool II be installed
SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
--------N-170900-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
AX = 0900h
SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
--------P-170A-------------------------------
INT 17 U - Emulaser ELTSR - SET ??? FILENAME
AH = 0Ah
ES:BX -> ??? buffer
CX = length of ??? buffer
Return: ???
Note: copies the specified name into the buffer passed to ELSPL as the
filename by AH=09h
SeeAlso: AH=09h,INT 1A/AH=E5h
--------N-170A00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "select"
AX = 0A00h
SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170B-------------------------------
INT 17 U - Emulaser ELTSR - GET ???
AH = 0Bh
Return: AX:BX -> ???
SeeAlso: AH=0Ah,INT 1A/AH=E5h
--------N-170B00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
AX = 0B00h
DX = local identifier of socket (0 - 31)
Note: this function sets the socket into non_block mode
SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170C-------------------------------
INT 17 U - Emulaser ELTSR - SET ??? FLAG
AH = 0Ch
???
Return: ???
SeeAlso: AH=0Bh,INT 1A/AH=E5h
--------N-170C00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "close"
AX = 0C00h
SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
--------P-170D-------------------------------
INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
AH = 0Dh
Return: AX = state (0000h off, 0010h on)
Desc: determine the actual state of ScrlLk even when Emulaser is controlling
the ScrlLk light as its activity indicator
SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
--------N-170D00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
AX = 0D00h
Note: this function is used to shutdown the interface
SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170E-------------------------------
INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
AH = 0Eh
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
Note: this function is called by ELTSR on every INT 08 to allow data to be
processed in the background, but may also be called by applications
to give Emulaser additional CPU time
SeeAlso: AH=0Dh,INT 1A/AH=E5h
--------N-170E00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
AX = 0E00h
Return: CX = 1234h if installed
Program: DOSISODE is the ISO developers environment which has been ported to
DOS and will run with the Waterloo TCP turned into a resident TSR.
Currently it allows a maximum of 6 open sockets.
Note: this function is used to check if the interface is loaded
SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
--------P-172000-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
AX = 2000h
BL = printer number???
Return: AX = status (see #0492)
BX = driver version number (BH=major,BL=minor)
CH = ??? (00h)
CL = ???
DX = ??? (0100h)
Note: also enables the remaining printer driver functions (2001h-2007h)
SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
(Table 0492)
Values for PC Paint function status:
0000h successful
0001h invalid printer???
0002h ???
0003h invalid subfunction
0005h driver disabled, must call function 00h first
0009h unknown printer error
000Bh printer not selected
000Ch printer out of paper
000Eh error while writing to serial printer
000Fh ???
0010h invalid function number
0011h value out of range
--------P-172001-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
AX = 2001h
BL = printer number???
Return: AX = status (see #0492)
--------P-172002-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
AX = 2002h
BL = printer number???
CL = desired information
00h printer type
Return: ES:DI -> ASCIZ printer name
01h paper size
DX = size index
Return: ES:DI -> ASCIZ paper size description
02h ???
Return: BX = ???
03h printer information???
DX = ???
ES:BX -> buffer for ??? (min 134 bytes)
Return: AX = status (see #0492)
SeeAlso: AX=2000h,AX=2004h
--------P-172003-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
AX = 2003h
ES:BX -> ???
Return: AX = status (see #0492)
SeeAlso: AX=2000h,AX=2004h
--------P-172004-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
AX = 2004h
BL = printer number???
Return: AX = status (see #0492)
ES:DI -> ???
SeeAlso: AX=2000h,AX=2003h
--------P-172005-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
AX = 2005h
BL = printer number???
Return: AX = status (see #0492)
Note: this function also clears the flag set by AX=2001h
SeeAlso: AX=2000h,AX=2001h,AX=2006h
--------P-172006-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
AX = 2006h
BL = printer number???
Return: AX = status (see #0492)
Note: this function also clears the flag set by AX=2001h and disables
functions other than AX=2000h
SeeAlso: AX=2000h,AX=2001h,AX=2005h
--------P-172007-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
AX = 2007h
Return: AX unchanged
SeeAlso: AX=2000h
--------N-172400-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
AX = 2400h
DL = new state
00h disabled
01h enabled
Return: DL = 24h if installed
DH = minor version number
CX = network address of this machine
AL = status (see #0493)
SeeAlso: AX=2403h,INT 16/AX=4500h
(Table 0493)
Values for NET.24 function status:
00h successful
01h timeout
02h header error
03h data error
04h busy
05h invalid parameters
--------N-172401-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
AX = 2401h
BL = timeout in clock ticks
Return: AL = status (see #0493)
DX:BX -> receive buffer
SeeAlso: AX=2402h,AX=2404h,AX=2408h
--------N-172402-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
AX = 2402h
transmit buffer filled (see AX=2403h)
Return: AL = status (see #0493)
SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
--------N-172403-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
AX = 2403h
Return: AL = status (see #0493)
CX = number of characters in receive ring buffer
DX:BX -> transmit buffer
SeeAlso: AX=2400h,AX=2402h
--------N-172404-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
AX = 2404h
BX = target address
Return: AL = status (see #0493)
SeeAlso: AX=2402h,AX=2405h
--------N-172405-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
AX = 2405h
BX = target address
Return: AL = status (see #0493)
SeeAlso: AX=2402h,AX=2404h
--------N-172406-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
AX = 2406h
Return: AL = status (see #0493)
SeeAlso: AX=2407h,AX=240Ah
--------N-172407-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
AX = 2407h
Return: AL = status (see also #0493)
06h end of data
DL = received character
SeeAlso: AX=2406h
--------N-172408-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
AX = 2408h
Return: AL = status (see also #0493)
06h end of data
CX = number of bytes in receive buffer
DX:SI -> receive buffer
SeeAlso: AX=2401h,AX=2405h,AX=2409h
--------N-172409-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
AX = 2409h
BX = target address
CX = number of data bytes
DL = command code to send
DS:SI -> data bytes for command
Return: AL = status (see also #0493)
03h no response
06h remote currently unable to perform command
SeeAlso: AX=2405h,AX=2408h
--------N-17240A-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
AX = 240Ah
Return: AL = status (see #0493)
SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
--------N-17240B-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
AX = 240Bh
DL = character to send
Return: AL = status (see also AX=2400h)
03h transmission error
06h write error
SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
--------N-17240C-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
AX = 240Ch
Return: AL = status (see also AX=2400h)
03h transmission error
06h remote breaks connection
SeeAlso: AX=240Ah,AX=240Bh
--------J-175000-----------------------------
INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
AX = 5000h
BX = country code
0001h USA (English), 0051h Japan
Return: AL = status
00h successful
01h bad country code
02h other error
SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
--------J-175001-----------------------------
INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
AX = 5001h
Return: AL = status
00h successful
BX = country code
02h error
SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
--------J-1751-------------------------------
INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
AH = 51h
DX = 2-byte JIS code
Return: DX = shift-JIS value or 0000h on error
Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
characters to Shift-JIS characters, and the other performs the
opposite conversion
SeeAlso: AX=5000h,AH=52h
--------J-1752-------------------------------
INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
AH = 52h
DX = 2-byte shift-JIS code
Return: DX = JIS code or 0000h on error
Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
characters to Shift-JIS characters, and the other performs the
opposite conversion
SeeAlso: AH=51h
--------V-1760-------------------------------
INT 17 - FLASHUP.COM - INSTALLATION CHECK
AH = 60h
Return: AL = 60h
DX = CS of resident code
Notes: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
consisting of an 80h followed by the actual command
SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
--------V-1761-------------------------------
INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
AH = 61h
Return: AL = 61h
DX = CS of resident code
Note: SPEEDSCR.COM is by The Software Bottling Co.
--------P-1762-------------------------------
INT 17 U - T2PS v1.0 - UNINSTALL
AH = 62h
Return: nothing
SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
--------P-1763-------------------------------
INT 17 U - T2PS v1.0 - SET PARAMETERS
AH = 63h
ES:SI -> settings (see #0494)
Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
Technologies
SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
Format of T2PS settings:
Offset Size Description (Table 0494)
00h WORD LPT port number (0=LPT1, etc.)
02h WORD page heigh in points
04h WORD page width in points
06h WORD top margin in points
08h WORD bottom margin in points
0Ah WORD left margin in points
0Ch WORD right margin in points
0Eh WORD font size in points
10h WORD tab size
12h WORD timeout in clock ticks
--------P-1764-------------------------------
INT 17 U - T2PS v1.0 - GET PARAMETERS
AH = 64h
ES:SI -> buffer for settings (see #0494)
Return: ES:SI buffer filled
SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
--------b-176F00BX0000-----------------------
INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
AX = 6F00h
BX = 0000h
Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
--------b-176F02-----------------------------
INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
AX = 6F02h
CX = size of buffer in bytes
DX = port number (0-3)
ES:DI -> buffer containing characters to be printed
Return: AH = printer status (see #0489)
CX = number of bytes successfully printed
---on error (AH bit 0 set)---
ES:DI -> next byte to be sent
---if successful---
ES:DI unchanged
SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
--------N-1781-------------------------------
INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
AH = 81h
AL = 00h (NTNX compatibility mode)
CL = number of jobs to cancel
Return: AL = status (see #0495)
Note: this function cancels the last CL printouts for the current task
SeeAlso: AH=82h
(Table 0495)
Values for Alloy status:
00h success
01h-7Fh warning
80h general failure
81h host overloaded (NTNX only)
82h module busy (NTNX only)
83h host busy (NTNX only)
84h re-entry flag set
85h invalid request
86h invalid printer
87h invalid process ID
89h access denied
8Ah option not available for given port type
8Bh option not available for given task type
91h printer busy
C2h file not found
C3h path not found
C4h file access failure
--------N-1782-------------------------------
INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
AH = 82h
AL = 00h (NTNX compatibility mode)
Return: AL = status (see #0495)
SeeAlso: AH=81h
--------N-1783-------------------------------
INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
AH = 83h
AL = mode
00h NTNX compatibility
CL = number of copies (max 99, default 1)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX = number of copies
Return: AL = status (see #0495)
Note: in NTNX compatibility mode, this function only affects LPT1
--------N-1784-------------------------------
INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
AH = 84h
AL = mode
00h NTNX compatibility
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Note: closes spool file and tells spooler to queue the print job (LPT1 only
under MW386 in NTNX compatibility mode)
--------J-1784-------------------------------
INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
AH = 84h
AL = character
DX = printer number
Return: AH = printer status (see #0489)
SeeAlso: AH=00h,AH=85h
--------J-1785-------------------------------
INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
AH = 85h
AL = new state (00h enabled, 01h disabled)
SeeAlso: AH=84h"AX"
--------N-1787-------------------------------
INT 17 - Alloy NTNX - SET INDOS POINTER
AH = 87h
AL = 00h
CX:BX -> buffer for user-written printer drivers
Return: BX,CX destroyed
Note: must be executed before the printer is enabled
SeeAlso: AH=8Ah
--------N-1788-------------------------------
INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
AH = 88h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0496)
01h MW386
DX = MW386 printer number
Return: AH = status (see #0495)
Note: removes specified printer from the spooler's list of printers
SeeAlso: AH=89h,AH=8Bh
(Table 0496)
Values for Alloy NTNX printer number:
00h host LPT1
01h host LPT2
02h host LPT3
03h host LPT4
04h host COM1
05h host COM2
06h user's logical COM2
07h user's terminal AUX port
08h user's logical COM1 (MW386 only)
--------N-1789-------------------------------
INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
AH = 89h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0496)
01h MW386
DX = MW386 printer number
Return: AL = status (see #0495)
Note: the specified printer is added to the spooler's list of available
printers
SeeAlso: AH=88h,AH=8Bh
--------N-178A-------------------------------
INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
AH = 8Ah
???
SeeAlso: AH=92h
--------N-178B-------------------------------
INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
AH = 8Bh
DS:DX -> ASCIZ printer name
Return: AL = status (see also AH=81h)
00h successful
DX = physical device number
SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
--------N-178C-------------------------------
INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
AH = 8Ch
DX = physical device number
ES:DI -> 17-byte buffer for ASCIZ device name
Return: AL = status (see also AH=81h)
00h successful
ES:DI buffer filled
SeeAlso: AH=88h,AH=8Bh
--------N-178D-------------------------------
INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
AH = 8Dh
AL = 00h
Return: AL = status (see #0495)
Notes: clears all buffers and resets spooler to boot-up values
MW386 supports this function for compatibility only; it is a NOP
--------N-178E-------------------------------
INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
AH = 8Eh
AL = 00h
Return: CX:BX -> INT 28 entry point
SeeAlso: AH=8Fh
--------N-178F-------------------------------
INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
AH = 8Fh
AL = 00h
Return: CX:BX -> DOS intercept routine
SeeAlso: AH=8Eh
--------N-1790-------------------------------
INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
AH = 90h
AL = mode
00h NTNX compatibility
DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname
Return: AL = status (see #0495)
Note: in mode 00h, the file is always sent to logical LPT1
SeeAlso: AH=A0h
--------N-1791-------------------------------
INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
AH = 91h
AL = mode
00h NTNX compatibility
Return: CX = user number (00h = host)
DX = currently selected printer number (00h-08h)
01h MW386
Return: CX = user number
DX = physical dev number of currently selected printer
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: CX = user number
DX = physical device number
Return: AL = status (see #0495)
SeeAlso: AH=8Ch
--------N-1792-------------------------------
INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
AH = 92h
AL = 00h
CL = 00h
Return: CL = driver state
01h initialized
80h not initialized
AX = status (see #0495)
SeeAlso: AH=8Ah
--------N-1794-------------------------------
INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
AH = 94h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0496)
01h MW386
DX = MW386 printer number
02h MW386 v2+
BX = logical printer number
DX = MW386 printer number
Return: AL = status (see #0495)
Note: modes 00h and 01h affect only logical LPT1
SeeAlso: AH=8Bh,AH=95h
--------N-1795-------------------------------
INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
AH = 95h
AL = mode
00h NTNX compatibility
Return: DX = NTNX printer number (see #0496)
(FFFFh if current printer not compatible with NTNX)
01h MW386
Return: DX = MW386 printer number
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: DX = MW386 printer number (FFFFh = none)
Return: AL = status (see #0495)
Note: modes 00h and 01h return the printer number of logical LPT1 only
SeeAlso: AH=94h
--------N-1796-------------------------------
INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
AH = 96h
AL = 00h
Note: documentation states that this is a NOP, doing only XOR AX,AX before
returning
SeeAlso: INT 14/AH=24h
--------N-1797-------------------------------
INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
AH = 97h
AL = mode
00h NTNX compatibility
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CH,CL,DH = three character break sequence
DL = subfunction
00h set break string
else reset break
Return: AL = status (see #0495)
Notes: mode 00h affects only logical LPT1
when the break string is encountered, the spool file will be closed and
queued for printing automatically
the break string is not permanently saved, and will be reset each time
MW386 or the user is rebooted
SeeAlso: AH=9Bh
--------N-1798-------------------------------
INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
AH = 98h
AL = 00h
DL = printer number (FFh=current)
Return: AL = status
00h successful
01h incorrect printer
02h task not found
Note: MW386 supports this function for compatibility only; it is a NOP
--------N-1799-------------------------------
INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
AH = 99h
AL = mode
00h NTNX compatibility
DL = NTNX printer number (see #0496)
(FFh = task's current logical LPT1)
DH = mode (see #0497)
01h MW386
DX = MW386 printer number
CL = mode (as for DH above)
Return: AL = status (see #0495)
DH = mode (bits 1 and 2 set as above)
DL = printer owner's user number if not spooled
Bitfields for Alloy printer mode:
0 get mode if 1, set mode if 0 (Table 0497)
1 private ("attached")
2 direct instead of spooled
3-7 reserved (0)
--------N-179A-------------------------------
INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
AH = 9Ah
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0496)
(FFFFh = current logical LPT1)
01h MW386
DX = MW386 printer number
CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
Return: AL = status (see #0495)
Note: beginning with MW386 v2.0, tab expansion is set on a per-printer basis
rather than a per-user basis; NTNX and MW386 v1.x ignore DX
SeeAlso: AH=A4h
--------N-179B-------------------------------
INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
AH = 9Bh
AL = mode
00h NTNX compatibility
CX = timeout value in clock ticks (1/18 sec) (00h = never)
01h MW386
CX = timeout value in seconds (00h = never)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX = timeout value in seconds (00h = never)
Return: AL = status (see #0495)
Notes: modes 00h and 01h affect only the current logical LPT1
if no data is sent to a printer for the specified amount of time, the
spool file will be closed and queued for printing automatically
SeeAlso: AH=97h
--------N-17A0-------------------------------
INT 17 - Alloy MW386 - SPOOL COPY OF FILE
AH = A0h
AL = mode
00h NTNX compatibility
DX = ??? (NTNX, MW386 v1.x only)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname
Return: AL = status (see #0495)
Notes: makes a copy of the specified file in the spooler's directory, allowing
the original file to be modified or deleted while the copy is printed
in mode 00h, the file is printed on logical LPT1
SeeAlso: AH=90h
--------N-17A4-------------------------------
INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
AH = A4h
AL = new state
00h form feed after end of print job disabled
01h form feed enabled
Return: AL = status (see #0495)
Note: only affects the current logical LPT1
SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
--------N-17A6-------------------------------
INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
AH = A6h
AL = new state
00h banner page before print job disabled
01h banner page enabled
Return: AL = status (see #0495)
Note: only affects the current logical LPT1
SeeAlso: AH=A4h
--------N-17A7-------------------------------
INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
AH = A7h
AL = spool flags (see #0498)
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: AL = status (see #0495)
Note: the documentation does not state which register contains the result of
a GET
SeeAlso: AH=A4h,AH=A6h
Bitfields for Alloy spool flags:
Bit(s) Description (Table 0498)
0 banner page enabled (see AH=A6h)
1 form feed enabled (see AH=A4h)
2-6 reserved (0)
7 set flags if 1, get flags if 0
--------N-17A8-------------------------------
INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
AH = A8h
CX:SI -> ASCIZ filename without extension (max 8 chars)
Return: AL = status (see #0495)
Note: allows application to specify banner page filename for spool files
collected from the application's printer output
SeeAlso: AH=A9h
--------N-17A9-------------------------------
INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
AH = A9h
AL = new spool drive (2=C:,3=D:,etc)
Return: AL = status (see #0495)
Note: does not remove previous spooling directory since jobs may be pending
SeeAlso: AH=A8h
--------N-17AA-------------------------------
INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
AH = AAh
AL = mode
00h NTNX
DX = NTNX printer number (see #0496)
01h MW386
DX = MW386 printer number
Return: AH = instantaneous printer status
00h printer ready
01h not ready
12h off line
13h out of paper
14h general device failure
15h device timeout
16h bad device number
--------N-17AF-------------------------------
INT 17 - Alloy MW386 - CHECK SPOOLER
AH = AFh
Return: AX = 55AAh if spooler available
--------c-17C0-------------------------------
INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
AH = C0h
DX = printer port (0-3)
Return: ES:BX -> control block (see #0499)
SeeAlso: AH=C1h
Format of PCSpool control block:
Offset Size Description (Table 0499)
00h WORD printer number
02h WORD address of printer status port
04h WORD number of first record in queue
06h WORD number of last record in queue
08h DWORD characters already printed
0Ch DWORD number of characters remaining
10h DWORD pointer to dequeue buffer
14h DWORD previous count of characters printed
18h DWORD number of clock ticks taken to print them
1Ch WORD offset of next character to output
1Eh WORD offset of next character to print
20h WORD pointer to spooling queue record
22h BYTE current spooling status
23h BYTE current printer status:
00h OK
01h not ready
02h paused with message
03h paused
04h initializing
FEh non-existent port
FFh not spooled
24h BYTE current control record type
25h WORD observed printer speed
27h WORD characters to print per service
29h BYTE 01h if disk write needed
2Ah BYTE 01h if queued data should be flushed
2Bh BYTE 01h to update cps status
--------c-17C1--------------------------------
INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
AH = C1h
DX = printer port (0-3)
DS:SI -> ASCIZ string to save for display
Note: flushes pending writes
SeeAlso: AH=C0h,AH=C2h
--------c-17C2-------------------------------
INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
AH = C2h
DX = printer port (0-3)
SeeAlso: AH=C3h
--------c-17C3-------------------------------
INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
AH = C3h
DX = printer port (0-3)
SeeAlso: AH=C2h,AH=C7h
--------c-17C4-------------------------------
INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
AH = C4h
Return: DI = B0BFh
SI = segment
--------c-17C5-------------------------------
INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
AH = C5h
DX = printer port (0-3)
Note: cancels up to the pause record
--------c-17C6-------------------------------
INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
AH = C6h
DX = printer port (0-3)
Return: AX = queue status
0000h printer not active or at pause
0001h printer busy
--------c-17C7-------------------------------
INT 17 - PC Magazine PCSpool - CLOSE QUEUE
AH = C7h
DX = printer port (0-3)
SeeAlso: AH=C3h
--------P-17CD00-----------------------------
INT 17 - INSET - EXECUTE COMMAND STRING
AX = CD00h
DS:DX -> ASCIZ command string (max 80 bytes)
Return: CX = 07C2h (1986d)
Note: user interface menus pop up after last command, unless that command
exits INSET
--------P-17CD01-----------------------------
INT 17 - INSET - GET IMAGE SIZE
AX = CD01h
DS:DX -> ASCIZ name of image file
Return: AX = height in 1/720th inch
BX = width in 1/720th inch
CX = 07C2h (1986d)
--------P-17CD02-----------------------------
INT 17 - INSET - INITIALIZE
AX = CD02h
Return: CX = 07C2h (1986d)
Note: all open files are closed and the printer is reset
SeeAlso: AX=CD04h
--------P-17CD03-----------------------------
INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
AX = CD03h
Return: CX = 07C2h (1986d)
--------P-17CD04-----------------------------
INT 17 - INSET - INITIALIZE LINKED MODE
AX = CD04h
ES:SI -> FAR routine for linked mode (see #0500)
Return: CX = 07C2h
SeeAlso: AX=CD02h,AX=CD08h
(Table 0500)
Values INSET linked-mode routine is called with:
AL = function
00h send character to printer
BL = character to send
01h send string to printer
CX = number of bytes to send
DS:DX -> buffer containing data
02h move print head to horizontal starting position of image
Return: AX = status
0000h success
0001h failure
--------P-17CD05-----------------------------
INT 17 - INSET - START MERGING IMAGE INTO TEXT
AX = CD05h
DS:DX -> ASCIZ name of PIX file
CX = left margin of text in 1/720th inch
Return: AH = printer type
00h page-oriented (multiple images may be placed side-by-side)
01h line-oriented (use AX=CD06h for vertical paper movement)
CX = 07C2h (1986d)
SeeAlso: AX=CD07h
--------P-17CD06-----------------------------
INT 17 - INSET - GRAPHICS LINE FEED
AX = CD06h
Return: AH = completion status
00h image complete
01h image incomplete
CX = 07C2h (1986d)
SeeAlso: AX=CD09h
--------P-17CD07-----------------------------
INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
AX = CD07h
Return: CX = 07C2h
SeeAlso: AX=CD05h
--------P-17CD08-----------------------------
INT 17 - INSET - CANCEL LINK MODE
AX = CD08h
Return: CX = 07C2h
SeeAlso: AX=CD04h
--------P-17CD09-----------------------------
INT 17 - INSET - ALTER TEXT LINE SPACING
AX = CD09h
CX = line spacing in 1/720th inch
Return: CX = 07C2h
Note: not yet implemented, line spacing is currently fixed at 1/6 inch
SeeAlso: AX=CD06h
--------P-17CD0A-----------------------------
INT 17 - INSET - GET SETUP
AX = CD0Ah
DS:DX -> buffer for IN.SET data
Return: CX = 07C2h
--------P-17CD0B-----------------------------
INT 17 - INSET - START GETTING SCALED IMAGE
AX = CD0Bh
DS:SI -> ASCIZ pathname of .PIX file
BX = number of bitplanes
CX = number of rows in output bitmap
DX = number of columns in output bitmap
Return: AX = status
0000h OK
FFFFh error
Note: image is returned in strips by repeated calls to AX=CD0Ch
--------P-17CD0C-----------------------------
INT 17 - INSET - GET NEXT IMAGE STRIP
AX = CD0Ch
Return: AX = status
0000h OK but not complete
0001h OK and image complete
FFFFh error
DS:SI -> buffer (max 4K) for bit map strip
CX = start row
DX = number of rows
BX = offset in bytes between bit planes
Note: buffer may be overwritten by subsequent calls
SeeAlso: AX=CD0Bh
--------P-17E0-------------------------------
INT 17 - EPP BIOS - INSTALLATION CHECK
AH = E0h
Return: ??? (AH <> E0h if installed ???)
SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
--------P-17E1-------------------------------
INT 17 - EPP BIOS - DISABLE EPP
AH = E1h
???
Return: ???
SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
--------P-17E2-------------------------------
INT 17 - EPP BIOS - ENABLE EPP
AH = E2h
???
Return: ???
SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
--------P-17F0-------------------------------
INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
AH = F0h
DX = printer port (0-3)
Return: AX = 0001h Jetstream present
else non-Jetstream port
Note: NorthNet Jetstream is a high-performance DMA-driven parallel card able
to drive printers at up to 80000 characters per second
--------P-17F1-------------------------------
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
AH = F1h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer
Return: AX = status
0000h printer not ready (see also AH=02h)
other printing started
SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
--------P-17F2-------------------------------
INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
AH = F2h
DX = printer port (0-3)
Return: AX = status
0000h prior print request finished
other number of characters left to print
SeeAlso: AH=02h,AH=F1h,AH=F3h
--------P-17F3-------------------------------
INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
AH = F3h
DX = printer port (0-3)
Return: AX = number of unprinted characters due to abort
SeeAlso: AH=F1h,AH=F4h
--------P-17F4-------------------------------
INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
AH = F4h
DX = printer port (0-3)
DS:DS -> FAR post address (called with interrupts on)
SeeAlso: AH=F1h,AH=F3h
--------P-17F5-------------------------------
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
AH = F5h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer (32-bit physical address)
Return: AX = status
0000h printer not ready (see also AH=02h)
other printing started
SeeAlso: AH=F1h
--------c-17FF--BX0000-----------------------
INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
AH = FFh
BX = 0000h
CX = 0000h
DX = printer port number
Return: AH = printer status (see #0489 at AH=00h)
Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
operating system by The Software Link, Inc.
Desc: close the spool file immediately instead of waiting for the close time
to elapse
SeeAlso: AH=01h,AH=03h"PC-MOS"
--------B-18---------------------------------
INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
Desc: called when there is no bootable disk available to the system
Notes: only PCs produced by IBM contain BASIC in ROM, so the action is
unpredictable on compatibles; this interrupt often reboots the
system, and often has no effect at all
network cards with their own BIOS can hook this interrupt to allow
a diskless boot off the network (even when a hard disk is present
if none of the partitions is marked as the boot partition)
SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
--------J-1800-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
AH = 00h
Return: AX = keystroke
SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
--------J-1801-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
AH = 01h
Return: BH = status
00h no keystrokes available
01h keystroke available
AX = keystroke
SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
--------J-1802-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
AH = 02h
Return: AL = shift flags
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
--------J-1803-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
AH = 03h
???
Return: ???
SeeAlso: AH=00h,AH=04h
--------J-1804-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
AH = 04h
???
Return: ???
Note: details are not available at this time
SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
--------J-18---------------------------------
INT 18 - NEC PC-9800 series - VIDEO
AH = function
0Ah set video mode
0Bh get video mode
0Ch start text screen display
0Dh end text screen display
0Eh set single display area
0Fh set multiple display area
10h set cursor shape
11h display cursor
12h terminate cursor
13h set cursor position
14h read font patter
16h initialize text video RAM
1Ah define user character
???
Return: ???
Notes: details are not available at this time
text video RAM is located at segments A000h (characters) and A200h
(attributes)
----------185350BX4849-----------------------
INT 18 - SPHINX C-- - WB.COM - API
AX = 5350h ('SP')
BX = 4849h ('HI')
CX = 4E58h ('NX')
DH = function
01h set ???
DL = ???
02h get ???
Return: DL = ???
03h get ???
Return: ES:DI -> ??? data buffer
06h ???
Return: AX = 7370h ('sp') if installed
BX = 6869h ('hi') if installed
CX = 6E78h ('nx') if installed
Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
which is a cross between C and assembler; WB.COM is the driver which
launches the WorkBench
--------s-186900-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
AX = 6900h
Return: AX = amount of DRAM on card or 0000h if GUS not available
Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
and then shells out the the program requiring its services
SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
--------s-186901-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
AX = 6901h
BX = number of active voices (14-32)
Return: nothing
SeeAlso: AX=6900h
--------s-186902-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
AX = 6902h
BX = voice number (00h-1Fh)
CX = linear volume (0000h-01FFh)
Return: nothing
SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
--------s-186903-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
AX = 6903h
BX = voice number (00h-1Fh)
CX = frequency in Hz (0-44100)
Return: nothing
SeeAlso: AX=6902h,AX=6904h
--------s-186904-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
AX = 6904h
BX = voice number (00h-1Fh)
CX = balance (0 = left, 7 = even, 15 = right)
Return: nothing
SeeAlso: AX=6902h,AX=6903h
--------s-186905-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
AX = 6905h
BL = voice number
BH = sample type (0 = 8-bit, 1 = 16-bit)
CL = looping type (0 = none, 1 = forward, 2 = back and forth)
CH:DI = 20-bit starting address for voice data
DL:SI = 20-bit address for loop start
DH:BP = 20-bit address for loop end
SeeAlso: AX=6903h,AX=6906h,AX=690Bh
--------s-186906-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
AX = 6906h
BL = data format (1 = twos-complement, 0 = not)
BH = sample type (0 = 8-bit, 1 = 16-bit)
CX = number of bytes to send
ES:SI -> buffer containing data
DL:DI = 20-bit address of GUS DRAM at which to load sound data
SeeAlso: AX=6900h,AX=6905h,AX=690Ch
--------s-186907-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
AX = 6907h
BX = voice number (00h-1Fh)
Return: nothing
SeeAlso: AX=6908h,AX=690Dh
--------s-186908-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
AX = 6908h
BX = voice number (00h-1Fh)
CL:DX = 20-bit ending address
Return: nothing
SeeAlso: AX=690Bh
--------s-186909-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
AX = 6909h
BL = voice number (00h-1Fh)
BH = looping type (0 = none, 1 = forward, 2 = back and forth)
CX = starting volume
DX = ending volume
DI:SI = time
Return: nothing
SeeAlso: AX=6902h,AX=690Ah
--------s-18690A-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
AX = 690Ah
BX = voice number (00h-1Fh)
Return: AX = current non-linear volume for voice
SeeAlso: AX=6902h,AX=6909h
--------s-18690B-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
AX = 690Bh
BX = voice number
Return: BX:AX = 20-bit address at which voice is playing
SeeAlso: AX=6900h,AX=6905h,AX=6908h
--------s-18690C-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
AX = 690Ch
BL = data format (1 = twos-complement, 0 = not)
BH = sample type (0 = 8-bit, 1 = 16-bit)
CX = number of bytes to get
ES:SI -> buffer for retrieved data
DL:DI = 20-bit address in GUS DRAM from which to read voice data
Return: nothing
SeeAlso: AX=6906h
--------s-18690D-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
AX = 690Dh
BX = voice
CX = sample type (0 = 8-bit, 1 = 16-bit)
DX = looping type (0 = none, 1 = forward, 2 = back and forth)
Return: CX = balance value
SeeAlso: AX=6907h,AX=6908h
--------s-188000-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
AX = 8000h
Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
INT 18h and then shells out to the program requiring its services
SeeAlso: AX=8001h,AX=8004h
--------s-188001-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
AX = 8001h
BX:CX -> ASCIZ filename
SeeAlso: AX=8000h,AX=8002h
--------s-188002-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
AX = 8002h
SeeAlso: AX=8002h,AX=8003h
--------s-188003-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
AX = 8003h
--------s-188004-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
AX = 8004h
SeeAlso: AX=8000h,AX=8003h
--------B-19---------------------------------
INT 19 - SYSTEM - BOOTSTRAP LOADER
Desc: This interrupt reboots the system without clearing memory or restoring
interrupt vectors. Because interrupt vectors are preserved, this
interrupt usually causes a system hang if any TSRs have hooked
vectors from 00h through 1Ch, particularly INT 08.
Notes: Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
A: to 0000h:7C00h. If this fails, and a hard disk is installed, the
BIOS will read sector 1, head 0, track 0 of the first hard disk.
This sector should contain a master bootstrap loader and a partition
table (see #0502). After loading the master boot sector at
0000h:7C00h, the master bootstrap loader is given control. It will
scan the partition table for an active partition, and will then load
the operating system's bootstrap loader (contained in the first
sector of the active partition) and give it control.
true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
disk have a valid boot sector
to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
a reset, store 0000h at 0040h:0072h before jumping.
VDISK.SYS hooks this interrupt to allow applications to find out how
much extended memory has been used by VDISKs (see #0501). DOS 3.3+
PRINT hooks INT 19 but does not set up a correct VDISK header block
at the beginning of its INT 19 handler segment, thus causing some
programs to overwrite extended memory which is already in use.
the default handler is at F000h:E6F2h for 100% compatible BIOSes
MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
contains extended partitions which point at each other in a loop,
since it will never find the end of the linked list of extended
partitions
under Windows Real and Enhanced modes, calling INT 19 will hang the
system in the same was as under bare DOS; under Windows Standard
mode, INT 19 will successfully perform a cold reboot as it appears
to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
SeeAlso: INT 14/AH=17h,INT 18,INT 5B"PC Cluster"
Format of VDISK header block (at beginning of INT 19 handler's segment):
Offset Size Description (Table 0501)
00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
12h 11 BYTEs signature string "VDISK Vn.m" for VDISK.SYS version n.m
1Dh 15 BYTEs n/a
2Ch 3 BYTEs linear address of first byte of available extended memory
Format of hard disk master boot sector:
Offset Size Description (Table 0502)
00h 446 BYTEs Master bootstrap loader code
1BEh 16 BYTEs partition record for partition 1 (see #0503)
1CEh 16 BYTEs partition record for partition 2
1DEh 16 BYTEs partition record for partition 3
1EEh 16 BYTEs partition record for partition 4
1FEh WORD signature, AA55h indicates valid boot block
Format of partition record:
Offset Size Description (Table 0503)
00h BYTE boot indicator (80h = active partition)
01h BYTE partition start head
02h BYTE partition start sector (bits 0-5)
03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
04h BYTE operating system indicator (see #0504)
05h BYTE partition end head
06h BYTE partition end sector (bits 0-5)
07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
08h DWORD sectors preceding partition
0Ch DWORD length of partition in sectors
SeeAlso: #0502
(Table 0504)
Values for operating system indicator:
00h empty
01h DOS 12-bit FAT
02h XENIX root file system
03h XENIX /usr file system (obsolete)
04h DOS 16-bit FAT (up to 32M)
05h DOS 3.3+ extended partition
06h DOS 3.31+ Large File System (16-bit FAT, over 32M)
07h QNX
07h OS/2 HPFS
07h Windows NT NTFS
07h Advanced Unix
08h AIX bootable partition, SplitDrive
09h AIX data partition
09h Coherent filesystem
0Ah OS/2 Boot Manager
0Ah OPUS
0Ah Coherent swap partition
10h OPUS
11h OS/2 Boot Manager hidden 12-bit FAT partition
12h Compaq Diagnostics partition
14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition
17h OS/2 Boot Manager hidden HPFS partition
18h AST special Windows swap file
24h NEC MS-DOS 3.x
3Ch PowerQuest PartitionMagic recovery partition
40h VENIX 80286
42h SFS (Secure File System) by Peter Gutmann
50h Disk Manager, read-only partition
51h Disk Manager, read/write partition
51h Novell???
52h CP/M
52h Microport System V/386
56h GoldenBow VFeature
61h SpeedStor
63h Unix SysV/386, 386/ix
63h Mach, MtXinu BSD 4.3 on Mach
63h GNU HURD
64h Novell NetWare
65h Novell NetWare (3.11)
70h DiskSecure Multi-Boot
75h PC/IX
80h Minix v1.1 - 1.4a
81h Minix v1.4b+
81h Linux
81h Mitac Advanced Disk Manager
82h Linux Swap partition
83h Linux native file system (ext2fs/xiafs)
84h OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
93h Amoeba file system
94h Amoeba bad block table
A5h FreeBSD
B7h BSDI file system (secondarily swap)
B8h BSDI swap partition (secondarily file system)
C1h DR-DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
C4h DR-DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
C6h DR-DOS 6.0 LOGIN.EXE-secured Huge partition
C7h Cyrnix Boot
DBh CP/M, Concurrent CP/M, Concurrent DOS
DBh CTOS (Convergent Technologies OS)
E1h SpeedStor 12-bit FAT extended partition
E4h SpeedStor 16-bit FAT extended partition
F2h DOS 3.3+ secondary
F4h SpeedStor
FEh LANstep
FFh Xenix bad block table
SeeAlso: #0503
--------B-1A00-------------------------------
INT 1A - TIME - GET SYSTEM TIME
AH = 00h
Return: CX:DX = number of clock ticks since midnight
AL = midnight flag, nonzero if midnight passed since time last read
Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
IBM and many clone BIOSes set the flag for AL rather than incrementing
it, leading to loss of a day if two consecutive midnights pass
without a request for the time (e.g. if the system is on but idle)
since the midnight flag is cleared, if an application calls this
function after midnight before DOS does, DOS will not receive the
midnight flag and will fail to advance the date
SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 62/AX=0099h
--------B-1A01-------------------------------
INT 1A - TIME - SET SYSTEM TIME
AH = 01h
CX:DX = number of clock ticks since midnight
SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
--------B-1A02-------------------------------
INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
AH = 02h
Return: CF clear if successful
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = daylight savings flag (00h standard time, 01h daylight time)
CF set on error (i.e. clock not running or in middle of update)
Note: this function is also supported by the Sperry PC, which predates the
IBM AT; the data is returned in binary rather than BCD on the Sperry,
and DL is always 00h
SeeAlso: AH=00h
--------B-1A03-------------------------------
INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
AH = 03h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = daylight savings flag (00h standard time, 01h daylight time)
Note: this function is also supported by the Sperry PC, which predates the
IBM AT; the data is specified in binary rather than BCD on the
Sperry, and the value of DL is ignored
SeeAlso: AH=01h
--------B-1A04-------------------------------
INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
AH = 04h
Return: CF clear if successful
CH = century (BCD)
CL = year (BCD)
DH = month (BCD)
DL = day (BCD)
CF set on error
SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah
--------b-1A04-------------------------------
INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
AH = 04h
Return: CF clear if successful
CL = year-1980
DH = month (binary)
DL = day (binary)
CF set on error
SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah
--------B-1A05-------------------------------
INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
AH = 05h
CH = century (BCD)
CL = year (BCD)
DH = month (BCD)
DL = day (BCD)
SeeAlso: AH=04h,INT 21/AH=2Bh
--------b-1A04-------------------------------
INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
AH = 04h
CL = year-1980
DH = month (binary)
DL = day (binary)
SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh
--------B-1A06-------------------------------
INT 1A - TIME - SET ALARM (AT,XT286,PS)
AH = 06h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
Return: CF set on error (alarm already set or clock stopped for update)
CF clear if successful
Notes: the alarm occurs every 24 hours until turned off, invoking INT 4A each
time
the BIOS does not check for invalid values for the time, so the CMOS
clock chip's "don't care" setting (any values between C0h and FFh)
may be used for any or all three part. For example, to create an
alarm once a minute, every minute, call with CH=C0h, CL=C0h, and
DH=00h.
SeeAlso: AH=07h,INT 4A
--------B-1A07-------------------------------
INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
AH = 07h
Return: alarm disabled
Note: does not disable the real-time clock's IRQ
SeeAlso: AH=06h,INT 70
--------B-1A08-------------------------------
INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
AH = 08h
CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD
SeeAlso: AH=09h
--------B-1A09-------------------------------
INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
AH = 09h
Return: CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD
DL = alarm status
00h alarm not enabled
01h alarm enabled but will not power up system
02h alarm will power up system
SeeAlso: AH=08h
--------B-1A0A-------------------------------
INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
AH = 0Ah
Return: CF set on error
CF clear if successful
CX = count of days since Jan 1,1980
SeeAlso: AH=04h,AH=0Bh
--------B-1A0B-------------------------------
INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
AH = 0Bh
CX = count of days since Jan 1,1980
Return: CF set on error
CF clear if successful
SeeAlso: AH=05h,AH=0Ah
--------J-1A10-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
AH = 10h
???
Return: ???
SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
--------J-1A11-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
AH = 11h
???
Return: ???
SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
--------J-1A12-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
AH = 12h
???
Return: ???
SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
--------A-1A3601-----------------------------
INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
AX = 3601h
Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
ASCIZ string "WPCORP\0"
Notes: WordPerfect 5.0 will call this interrupt at start up to determine if a
third party product wants to interface with it. The third party
product must intercept this interrupt and return the address of a
keyboard monitor routine.
Before checking for keyboard input, and after every key entered by the
user, Word Perfect will call the routine whose address was provided
in DS:SI with the following parameters:
Entry: AX = key code or 0
BX = WordPerfect state flag
Exit: AX = 0 or key code
BX = 0 or segment address of buffer with key codes
See the "WordPerfect 5.0 Developer's Toolkit" for further information.
SeeAlso: INT 16/AX=5500h
--------N-1A6108-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
AX = 6108h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message buffer
WORD length of message
DWORD pointer to reply buffer
WORD length of reply buffer
WORD 0000h (use default "Cparams" structure)
Return: AX = status (see #0505)
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6205h
(Table 0505)
Values for SNAP.EXE status:
0000h successful
F830h "SNAP_ABORTED"
FC04h "SNAP_SERVERDIED"
FC05h "SNAP_RESEND"
FC06h "SNAP_SELECTFAILED"
FC07h "SNAP_WRONGVERSION"
FC08h "SNAP_INVALIDACK"
FC09h "SNAP_TIMEOUT"
FC0Ah "SNAP_SERVERREJECT"
FC0Bh "SNAP_NOREPLYDUE"
FC0Ch "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
FC0Dh "SNAP_NOINIT"
FC0Eh "SNAP_SOCKETERROR"
FC0Fh "SNAP_BUFFERLIMIT"
FC10h "SNAP_INVALIDCID"
FC11h "SNAP_INVALIDOP"
FC12h "SNAP_XMITFAIL"
FC13h "SNAP_NOMORERETRIES"
FC14h "SNAP_BADPARMS"
FC15h "SNAP_NOMEMORY"
FC16h "SNAP_NOMORECONVS"
FFFFh failed (invalid function/parameter)
--------N-1A6205-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
AX = 6205h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message
WORD length of message
WORD 0000h (use default "Cparms" structure)
Return: AX = status (see #0505)
STACK unchanged
SeeAlso: AX=6108h
--------N-1A6308-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
AX = 6308h
STACK: WORD offset of ASCIZ "guardian"
WORD offset of ASCIZ hostname
WORD offset of ASCIZ server name
WORD offset of ASCIZ userid
WORD offset of ASCIZ password
WORD offset of password length
WORD offset of password type
WORD offset of "Cparms" structure (see #0506)
Return: ???
STACK unchanged
Note: all stacked offsets are within the SNAP data segment (use AX=6A01h
to |