home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-04-03 | 277.4 KB | 7,442 lines |
- Interrupt List Release 34 Last change 4/3/93
- This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
- ---------------------------------------------
- Please redistribute the following files unmodified as a group, in a pair of
- archives named INTER34A and INTER34B (preferably the original authenticated
- PKZIP archives):
- INTERRUP.1ST the read-me file, containing credits, availability info
- INTERRUP.A INT 00 through INT 14 \
- INTERRUP.B INT 15 through INT 1A \ total 1111 pages at
- INTERRUP.C INT 1B through INT 21/5E \ 60 lines per page,
- INTERRUP.D INT 21/5F through INT 27 \ 1190 with INTPRINT -p
- INTERRUP.E INT 28 through INT 2F/BF / (4719 entries)
- INTERRUP.F INT 2F/C0 through INT 4F /
- INTERRUP.G INT 50 through INT 67 /
- INTERRUP.H INT 68 through INT FF /
- INTERRUP.PRI a brief introduction to interrupts
- INTPRINT.COM a simple formatter that also generates a list summary
- INTPRINT.DOC instructions for INTPRINT
- GLOSSARY.LST a glossary of terms, abbreviations, and acronyms
- MEMORY.LST format of the BIOS data area
- COMBINE.BAT combine the piece of the list into a single file
- The following files should be distributed in an archive called INTER34C:
- INT.COM invoke interrupts from commandline
- INT2GUID.* convert list into TurboPower GUIDE or POPHELP database
- INT2HLP.BAT Perl script to convert list into QuickHelp database
- INT2QH.* program to convert list into QuickHelp database
- INTERVUE.EXE indexed interrupt list browser
- INTHELP.* convert list into TurboPower GUIDE database
- INTLIST.E Epsilon extension for handling list
- INTLIST.ICO Windows icon for INTERVUE
- INTPRINT.C source code for INTPRINT
- RB2NG.* convert list into Norton Guides database
- ---------------------------------------------
- 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
-
- ARPA: ralf@cs.cmu.edu
- UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf
- BIT: ralf%cs.cmu.edu@carnegie
- 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@cs.cmu.edu
-
- 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 ARPA Internet for others).
- ---------------------------------------------
- See INTERRUP.1ST for the key to system abbreviations and a list of the
- trademarks mentioned here.
- ---------------------------------------------
- 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.
- ---------------------------------------------
- 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)
-
- 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,
- H - hardware, h - vendor-specific hardware,
- I - IBM workstation/terminal emulators,
- J - Japanese, j - joke programs, K - keyboard enhancers,
- l - shells/command interpreters,
- M - mouse/pointing device, m - memory management,
- N - network, 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, y - security, * - reserved (& not otherwise classified)
- --------C-00---------------------------------
- INT 00 - 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
- SeeAlso: INT 04
- --------b-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 - 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 - 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 - 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+
- 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 - 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
- --------b-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"
- --------G-0309--SI4647-----------------------
- INT 03 - Soft-ICE BACK DOOR COMMANDS
- AH = 09h
- SI = 4647h ('FG')
- DI = 4A4Dh ('JM')
- AL = function
- 10h display string in Soft-ICE window
- DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
- 11h execute Soft-ICE command
- DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
- 12h get breakpoint information
- Return: BH = entry number of last breakpoint set
- BL = type of last breakpoint set
- 00h BPM (breakpoint register types)
- 01h I/O
- 02h INTerrupt
- 03h BPX (INT 03h-style breakpoint)
- 04h reserved
- 05h range
- DH = entry number of last breakpoint to be triggered
- DL = type of last triggered breakpoint (see above)
- Desc: this API allows application programs to control some aspects of the
- Soft-ICE debugger
- Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
- --------C-04---------------------------------
- INT 04 - 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
- SeeAlso: INT 10/AH=12h/BL=20h
- --------C-05---------------------------------
- INT 05 - 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
- --------C-06---------------------------------
- INT 06 - 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+
- 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
- --------C-07---------------------------------
- INT 07 - 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 - 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"
- --------C-08---------------------------------
- INT 08 - 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 - 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 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
- SysRq invoke INT 15/AH=85h
- 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
- 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 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
-
- Values for 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 E0h prefix code
- 21h F 51h PgDn E1h prefix code
- 22h G 52h Ins FAh ACK
- 23h H 53h Del FEh RESEND
- 24h J 54h SysRq FFh kbd error/buffer full
- 25h K
- 26h L 56h left \| (102-key)
- 27h ; : 57h F11
- 28h ' " 58h F12
- 29h ` ~
- 2Ah Left Shift 5Ah PA1
- 2Bh \ | 5Bh F13
- 2Ch Z 5Ch F14
- 2Dh X 5Dh F15
- 2Eh C
- 2Fh V
- 30h B
- Note: 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
- --------C-09---------------------------------
- INT 09 - 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
- Note: 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
- 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 - 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 - IRQ2 - Tandy 1000-series HARD DISK
- Note: may be masked by setting bit 2 on I/O port 21h
- 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 P - 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 - 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/2's, 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 P - 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 - IRQ4 - SERIAL COMMUNICATIONS (COM1)
- Desc: automatically asserted by the UART when COM2 needs attention, if the
- UART has been programmed to generate interrupts
- Notes: on many PC's, COM3 shares this interrupt
- may be masked by setting bit 4 on I/O port 21h
- this vector is modified but not restored by Direct Access v4.0, and
- may be left dangling by other programs written with the same version
- of compiled BASIC
- SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
- --------C-0C---------------------------------
- INT 0C - 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 is offset 100h in the segment pointed at
- by this vector
-
- Call the 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)
- Return: ???
-
- Format of emulator's data area (offset from interrupt handler's segment):
- Offset Size Description
- 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"
- --------H-0D---------------------------------
- INT 0D - 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
- 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 - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
- Desc: used to ensure that the dynamic RAM retains its contents
- 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 - 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 word operand located at offset FFFFh 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 - 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 - 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 - HP 95LX - EXTERNAL CARD INTERRUPT
- SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
- --------H-0F---------------------------------
- INT 0F - 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 - HP 95LX - REAL-TIME CLOCK
- SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
- --------C-10---------------------------------
- INT 10 - 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 = mode (see below)
- Return: AL = video mode flag (Phoenix 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 below)
- the installation check for Genoa video adapters is the signature
- 77h XXh 99h 66h at C000h:0037h, where 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 0 70 Hz non-interlaced display
- bit 1 Korean (double-byte) characters
- bit 2 45 MHz memory clock rather than 40 MHz
- bit 3 zero wait states
- bit 4 paged ROMs
- bit 6 no 8514/A monitor support
- bit 7 HiColor DAC
-
- Values for video mode:
- text/ text pixel pixel colors disply scrn system
- grph resol box resoltn pages addr
- 00h = T 40x25 8x8 16gray 8 B800 CGA,PCjr
- = T 40x25 8x14 16gray 8 B800 EGA
- = T 40x25 8x16 16 8 B800 MCGA
- = T 40x25 9x16 16 8 B800 VGA
- 01h = T 40x25 8x8 16 8 B800 CGA,PCjr
- = T 40x25 8x14 16 8 B800 EGA
- = T 40x25 8x16 16 8 B800 MCGA
- = T 40x25 9x16 16 8 B800 VGA
- 02h = T 80x25 8x8 16gray 4 B800 CGA,PCjr
- = T 80x25 8x14 16gray 4 B800 EGA
- = T 80x25 8x16 16 4 B800 MCGA
- = T 80x25 9x16 16 4 B800 VGA
- 03h = T 80x25 8x8 16 4 B800 CGA,PCjr
- = T 80x25 8x14 16 4 B800 EGA
- = T 80x25 8x16 16 4 B800 MCGA
- = T 80x25 9x16 16 4 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
- 07h = T 80x25 9x14 mono var B000 MDA,Hercules,EGA
- = T 80x25 9x16 mono B000 VGA
- 08h = T 132x25 8x8 16 B800 ATI EGA/VGA Wonder [1]
- = T 132x25 8x8 mono B000 ATI EGA/VGA Wonder [1]
- = G 20x25 8x8 160x200 16 PCjr, Tandy 1000
- = G 90x43 8x8 720x352 mono B000 Hercules + MSHERC.COM
- 09h = G 40x25 8x8 320x200 16 PCjr
- 0Ah = G 80x25 8x8 640x200 4 PCjr, Tandy 1000
- 0Bh = reserved (used internally by EGA BIOS)
- = G 640x200 16 Tandy 1000 SL/TL
- 0Ch = reserved (used internally by EGA BIOS)
- 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 [2]
- = 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 640x350 16 4 B800 Tseng ET4000 BIOS [10]
- = G 80x34 8x14 640x480 Lava Chrome II EGA
- 18h = T 132x25 mono B000 Cirrus 5320 chipset
- = T 132x44 8x8 mono Tseng Labs EVA
- = T 132x44 8x8 16/256 2 B000 Tseng ET4000 chipset
- = G 80x34 8x14 640x480 Lava Chrome II EGA
- = G 1024x768 16 Tecmar VGA/AD
- 19h = T 132x25 8x14 mono Tseng Labs EVA
- = T 132x25 8x14 16/256 4 B000 Tseng ET4000 chipset
- = T 132x34 mono B000 Cirrus 5320 chipset
- 1Ah = T 132x28 8x13 mono Tseng Labs EVA
- = T 132x28 8x13 16/256 4 B000 Tseng ET4000 chipset
- = T 132x44 mono B000 Cirrus 5320 chipset
- = G 640x350 256 Tecmar VGA/AD
- 1Bh = G 640x400 256 Tecmar VGA/AD
- 1Ch = T 132x25 Cirrus 5320 chipset
- = G 640x480 256 Tecmar VGA/AD
- 1Dh = T 132x43 Cirrus 5320 chipset
- = G 800x600 256 Tecmar VGA/AD
- 1Eh = T 132x44 Cirrus 5320 chipset
- 1Fh = G 800x600 16 Realtek RTVGA
- 20h = G 240x128 B000 HP 95LX
- 21h = T 132x60 16 2 B800 Tseng ET4000 chipset [10]
- = T 132x44 9x9 1188x396 16/256k B800 WD90C
- = T 132x44 9x9 16 B800 Diamond Speedstar 24X
- = G 80x43 8x8 720x348 mono B000 DESQview 2.x+Hercules [3]
- = G 1024x768 16 Realtek RTVGA
- 22h = T 132x44 8x8 Tseng Labs EVA
- = T 132x44 8x8 16/256 2 B800 Tseng ET4000 chipset
- = T 132x44 8x8 Ahead Systems EGA2001
- = T 132x44 8x8 16 2 B800 Ahead B
- = T 132x44 16 Orchid Prodesigner VGA
- = T 132x43 Allstar Peacock (VGA)
- = G 80x43 8x8 720x348 mono B800 DESQview 2.x+Hercules [3]
- 23h = T 132x25 6x14 Tseng Labs EVA
- = T 132x25 8x14 16/256 4 B800 Tseng ET4000 chipset
- = T 132x25 8x14 Ahead Systems EGA2001
- = T 132x25 8x14 16 4 B800 Ahead B
- = T 132x25 8x8 16 B800 ATI EGA Wonder,ATI VIP
- = T 132x25 Cirrus 5320 chipset
- = T 132x28 Allstar Peacock (VGA)
- = T 132x28 16 Orchid Prodesigner VGA
- 24h = T 132x25 Allstar Peacock (VGA)
- = T 132x25 16 Orchid Prodesigner VGA
- = T 132x28 6x13 Tseng Labs EVA
- = T 132x28 8x13 16/256 4 B800 Tseng ET4000 chipset
- = T 132x28 8x12 16 1 B800 Ahead B
- = T 132x28 Cirrus 5320 chipset
- 25h = G 80x60 8x8 640x480 Tseng Labs EVA
- = G 80x60 8x8 640x480 16/256 1 A000 Tseng ET4000 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 Tseng Labs EVA
- = T 80x60 8x8 16/256 2 B800 Tseng ET4000 chipset
- = T 80x60 Allstar Peacock (VGA)
- = T 80x60 16 Orchid ProDesigner VGA
- = 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 mono B000 ATI EGA Wonder,ATI VIP
- = G 720x512 16 VEGA VGA
- = G 720x512 16 Genoa
- = G 800x600 256 Realtek RTVGA
- 28h = T ???x??? VEGA VGA
- = G 1024x768 256 Realtek RTVGA (1meg)
- 29h = 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/256 1 A000 Tseng ET3000/4000 chipset
- = G 800x600 ??? EIZO MDB10
- = G 800x600 16 Cirrus 5320 chipset
- 2Ah = T 100x40 Allstar Peacock (VGA)
- = T 100x40 8x16 16 Orchid Prodesigner VGA
- = T 100x40 8x15 16/256 4 B800 Tseng ET4000 chipset
- = G 1280x1024 256 Realtek RTVGA
- 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
- 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
- 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
- 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 ???x??? B800 AT&T 6300
- = G 100x37 8x16 800x600 256/256k 1 A000 Tseng ET3000/4000 chipset
- 32h = T 80x34 8x10 16 4 B800 Ahead B (Wizard/3270)
- 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)
- 36h = G 960x720 16 VEGA VGA
- = G 960x720 16 STB
- = G 960x720 16 Tseng ET3000 only
- 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
- 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
- 3Dh = G 1280x1024 16 Definicon
- = G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [6,8]
- 3Eh = G 1280x961 16 Definicon
- 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 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
- = G 80x25 8x16 640x400 2 1 B800 Compaq Portable
- 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 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 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)
- 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+
- 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
- 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
- 4Eh = T 120x43 VEGA VGA
- = T 80x60 8x8 16/256k B800 Oak OTI-067/OTI-077 [7]
- 4Fh = T 132x25 VEGA VGA
- = T 132x60 some Oak Tech VGA [7]
- 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 [7]
- = 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 132x43 8x8 16 5 B800 OAK Technologies VGA-16
- = T 132x43 8x8 16/256k B800 Oak OTI-037/067/077
- = T 132x28 9x12 4 4 B800 Ahead B
- = 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 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 [7]
- = G 100x37 8x16 800x600 16 A000 Oak OTI-067/077 chips [7]
- = 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 640x480 256 Oak VGA
- = G 80x30 8x16 640x480 256 A000 Oak OTI-067/OTI-077 [7]
- = 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 16 B800 Diamond Speedstar 24X
- = 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 [7]
- 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 16 B800 Diamond Speedstar 24X
- = 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+ [4]
- = 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 [7]
- 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 [7]
- 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 [7]
- 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 160x64 8x16 1280x1024 16 A000 Oak OTI-077 chipset [7]
- 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 [7]
- 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 [7]
- = 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 [8,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 [7]
- = 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
- 5Dh = T 100x75 8x8 NEL Electronics BIOS
- = 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
- 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 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 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
- = 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
- 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
- = 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 [8,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 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 [8]
- = G 160x64 8x16 1280x1024 16/256k A000 Diamond Speedstar 24X [8]
- 65h = G 1024x768 16 Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 16 A000 ATI VGA Wonder
- 66h = G 640x400 256 Tatung VGA
- = G 640x400 256 Video7 V-RAM VGA
- = T 80x50 8x8 640x400 16/256k B800 WD90C
- = T 80x50 8x8 16 B800 Diamond Speedstar 24X
- 67h = G 640x480 256 Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 4 A000 ATI VGA Wonder
- = G 160x64 8x16 1280x1024 16 A000 NCR 77C22 [8,9]
- = T 80x43 8x8 640x344 16/256k B800 WD90C
- = T 80x43 8x8 16 B800 Diamond Speedstar 24X
- 69h = G 720x540 256 Video7 V-RAM VGA
- = T 132x50 8x8 1056x400 16/256k B800 WD90C
- = T 132x50 8x8 16 B800 Diamond Speedstar 24X
- 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 100x42 8x14 800x600 A000 ATI VGA Wonder (undoc)
- = G 160x64 8x16 1280x1024 256 A000 NCR 77C22 [8,9]
- 6Bh = T 100x37 8x16 16 Genoa 6400
- = T 100x37 8x16 NEL Electronics BIOS
- 6Ch = G 100x75 8x8 800x600 256 Genoa 6400
- = G 160x60 8x16 1280x960 16/256k A000 WD90C [8]
- = G 160x60 8x16 1280x960 16/256k A000 Diamond Speedstar 24X [8]
- 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
- 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 100x35 8x16 800x600 16of64 A000 NSI Smart EGA+
- = G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
- = G 960x720 16 C&T chipset, Cardinal
- 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 640x480 32768 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+
- 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 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
- 75h = G 128x48 8x16 1024x768 4 1 A000 Ahead B
- = G 80x66 640x528 16??? A000 Quadram Ultra VGA
- = G 80x66 640x528 16 Genoa SuperEGA BIOS 3.0+
- 76h = T 94x29 8x14 16 B800 Quadram Ultra VGA
- = T 94x29 8x14 Genoa SuperEGA BIOS 3.0+
- = 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+
- 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
- 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
- 7Fh = special function set (see AX=007Fh) Paradise VGA, AT&T VDC600
- = G 128x48 8x16 1024x768 4 Genoa 6400
- 82h = T 80x25 B&W AT&T VDC overlay mode [5]
- 83h = T 80x25 AT&T VDC overlay mode [5]
- 86h = G 640x200 B&W AT&T VDC overlay mode [5]
- 88h = G 90x43 8x8 720x352 mono B000 Hercules + MSHERC.COM
- C0h = G 640x400 2/prog pallet AT&T VDC overlay mode [5]
- C4h = disable output AT&T VDC overlay mode [5]
- D0h = G 640x400 2 B800 DEC VAXmate AT&T mode
- Notes:
- [1] 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
- [2] early XGA boards support 132-column text but do not have this BIOS mode
- [3] 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
- [4] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
- [5] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
- 40h, or 44h
- [6] 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.
- [7] 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
- [8] interlaced only
- [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
- Index: video modes
- --------V-100070-----------------------------
- INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
- AX = 0070h
- BL = mode (see below)
- 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"
-
- Values for video mode:
- text/ text pixel pixel colors disp scrn monitor adapter
- grph resol box resoltn page addr
- 00h = G 640x480 16 multsync EGA,VGA
- 01h = G 752x410 16 multsync EGA,VGA
- 02h = G 800x600 16 multsync EGA,VGA
- 03h = T 80x34 multsync EGA,VGA
- 04h = T 80x60 multsync EGA,VGA
- 05h = T 94x29 multsync EGA only
- 06h = T 94x51 multsync 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
- --------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
- --------V-10007F-----------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
- AX = 007Fh
- BH = function
- 00h set VGA operation
- 01h set non-VGA operation
- 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
- 02h query mode status
- Return: 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
- 03h lock current mode
- allows current mode (VGA or non-VGA) to survive re-boot
- 04h enter CGA mode (AT&T VDC600 only)
- 05h enter MDA mode (AT&T VDC600 only)
- 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
- Return: AL = 7Fh if successful (AT&T VDC600)
- Desc: set emulation mode or access proprietary extended data registers
- SeeAlso: AX=007Eh
- --------V-1001-------------------------------
- INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
- AH = 01h
- CH = bit 7 should be zero
- bits 6,5 cursor blink
- (00=normal, 01=invisible, 10=erratic, 11=slow)
- (00=normal, other=invisible on EGA/VGA)
- bits 4-0 top scan line containing cursor
- 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
- 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
- --------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-1005-------------------------------
- INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
- AH = 05h
- AL = new page number (00h to number of pages - 1) (see AH=00h)
- 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 - 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)
- Warning: some implementations have a bug which destroys BP
- 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)
- Warning: some implementations have a bug which destroys BP
- 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 AH=00h)
- Return: AH = charater's attribute (see below)
- 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.
- SeeAlso: AH=09h,AX=1003h,AX=5001h
-
- Bitfields for character's attribute:
- bit 7 blink
- bits 6-4 background color
- 000 black 100 red
- 001 blue 101 magenta
- 010 green 110 brown
- 011 cyan 111 white
- bits 3-0 foreground color
- 0000 black 1000 dark gray
- 0001 blue 1001 light blue
- 0010 green 1010 light green
- 0011 cyan 1011 light cyan
- 0100 red 1100 light red
- 0101 magenta 1101 light magenta
- 0110 brown 1110 yellow
- 0111 light gray 1111 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 AH=00h)
- BL = attribute (text mode) or color (graphics mode)
- if bit 7 set in 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 AH=00h)
- BL = attribute (PCjr only) or color (graphics mode)
- if bit 7 set in 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)
- 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
- --------V-100F-------------------------------
- INT 10 - VIDEO - GET CURRENT VIDEO MODE
- AH = 0Fh
- Return: AH = number of character columns
- AL = display mode (see 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
- 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 below)
- ???
- 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 DL=04h:
- Offset Size Description
- 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 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,EGA,MCGA,VGA)
- AX = 1000h
- BL = palette register number (00h-0Fh)
- = attribute register number (undocumented)
- 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
- 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
- --------V-101001-----------------------------
- INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,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,EGA,VGA)
- AX = 1002h
- ES:DX -> palette register list
- 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
- 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
- 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
- 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 AX=1000h)
- 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: 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=1001h
- --------V-101009-----------------------------
- INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
- AX = 1009h
- ES:DX -> 17-byte buffer (see AX=1002h)
- 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
- --------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
- --------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 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 AH=00h)
- 13h = 320x200x32K
- 2Dh = 640x350x32K
- 2Eh = 640x480x32K
- 2Fh = 640x400x32K
- 30h = 800x600x32K
- 3Eh = 640x480x16M (Genoa 7900)
- FFh Tseng 24-bit color mode
- BH = mode
- 2Eh = 640x480x16M
- 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
- --------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
- 00h normal VGA DAC
- 01h Sierra SC1148x HiColor DAC
- 02h new Sierra DAC
- else other HiColor DAC
- Desc: determine which type of digital-to-analog converter is installed on the
- display board
- SeeAlso: AX=10F0h,AX=10F2h
- --------V-1010F2BL00-------------------------
- INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF IN HiColor MODE
- AX = 10F2h
- BL = 00h
- Return: AX = 0010h if supported
- BL = video mode type
- 00h normal
- else HiColor mode
- Desc: determine whether the display is in a graphics mode with 15 or more
- bits per pixel color resolution
- 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
- BL = block specifier
- (EGA/MCGA) bits 0,1 = block selected by chars with attribute
- bit 3 = 0
- bits 2,3 = block selected by chars with attribute
- bit 3 = 1
- (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
- bits 2,3,5 = block selected by attribute bit 3 = 1
- 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)
- SeeAlso: AH=1Bh,AX=CD10h
- --------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=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)
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- 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=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)
- 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 = character rows on screen - 1 (VGA)
- = character rows on screen (EGA)
- Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
- 8xN font at ES:BP+256N
- SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
-
- Format of alternate font table [array]:
- Offset Size Description
- 00h BYTE character to be replaced (00h = end of table)
- 01h N BYTEs graphics data for character, one byte per scan line
- --------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 = 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 bits
- CL = switch settings
- bit 0: switch 1 OFF
- bit 1: switch 2 OFF
- bit 2: switch 3 OFF
- bit 3: switch 4 OFF
- bits 4-7: unused
- 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
- --------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 - BUG
- AH = 12h
- BL = 2Eh
- Note: due to an omitted end-of-list marker, this version 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 = 0, 2 or 3)
- 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--BH55-------------------------
- INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
- AH = 12h
- BH = 55h
- BL = subfunction
- 00h disabled enhanced features
- 01h enable enhanced features
- 02h get status
- Return: AL = status flags (see below)
- 03h disable register trapping (CGA emulation)
- 04h enable register trapping
- 05h program video mode
- ES:BP -> video mode table (see below)
- 06h get mode table
- AL = video mode
- Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
- BP = FFFFh on error
-
- Bitfields for status flags:
- bit 3 set if enhanced features enabled
- bits 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
- 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 - BUG
- AH = 12h
- BL = 74h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BL80-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = 80h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BLBE-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = BEh
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BLC6-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = C6h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BLF0-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = F0h
- Note: due to an omitted end-of-list marker, this version 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
- 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
- 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
- --------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 underscore
- 02h map high intensity to reverse video
- 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 below)
- ES:DI -> parameter table (see below)
- SeeAlso: AH=1Bh
-
- Values for alternate display adapter type:
- 0000h none
- 5140h LCD
- 5153h CGA
- 5151h mono
-
- Format of display parameter table:
- Offset Size Description
- 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
- 0Ch WORD vertical pixel separation in micrometers
- --------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
- --------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 below)
- BH = alternate display code
- SeeAlso: AH=12h/BH=35h,AX=1A01h,AH=1Bh
-
- 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 AX=1A00h)
- BH = alternate display code
- Return: AL = 1Ah if function was supported
- SeeAlso: AH=12h/BH=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 below)
- 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 state information:
- Offset Size Description
- 00h DWORD address of static funtionality table (see below)
- 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
- 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
- 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
- 29h BYTE number of pages supported in current mode
- 2Ah BYTE number of scan lines active
- (0,1,2,3) = (200,350,400,480)
- 2Bh BYTE primary character block
- 2Ch BYTE secondary character block
- 2Dh BYTE miscellaneous flags (see below)
- 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 below)
- 33h 13 BYTEs reserved (00h)
-
- Bitfields for miscellaneous flags:
- bit 0 all modes on all displays on
- bit 1 gray summing on
- bit 2 monochrome display attached
- bit 3 default palette loading disabled
- bit 4 cursor emulation enabled
- bit 5 0 = intensity; 1 = blinking
- bit 6 PS/2 P70 plasma display (without 9-dot wide font) active
- bit 7 reserved
-
- Bitfields for save pointer state flags:
- bit 0 512 character set active
- bit 1 dynamic save area present
- bit 2 alpha font override active
- bit 3 graphics font override active
- bit 4 palette override active
- bit 5 DCC override active
- bits 6-7 reserved
-
- Format of Static Functionality Table:
- Offset Size Description
- 00h BYTE modes supported #1
- bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 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 reserved
- 03h 4 BYTEs reserved
- 07h BYTE scan lines supported
- bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
- 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 below)
- 0Ch WORD reserved
- 0Eh BYTE save pointer function flags (see below)
- 0Fh BYTE reserved
-
- Bitfields for miscellaneous function support flags:
- bit 0 all modes on all displays function supported
- bit 1 gray summing function supported
- bit 2 character font loading function supported
- bit 3 default palette loading enable/disable supported
- bit 4 cursor emulation function supported
- bit 5 EGA palette present
- bit 6 color palette present
- bit 7 color paging function supported
- bit 8 light pen supported
- bit 9 save/restore state function 1Ch supported
- bit 10 intensity blinking function supported
- bit 11 Display Combination Code supported
- bits 12-15 reserved
-
- Bitfields for save pointer function flags:
- bit 0 512 character set supported
- bit 1 dynamic save area supported
- bit 2 alpha font override supported
- bit 3 graphics font override supported
- bit 4 palette override supported
- bit 5 DCC extension supported
- bits 6-7 reserved
- --------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
- bit 0 video hardware
- bit 1 BIOS data areas
- bit 2 color registers and DAC state
- bits 3-15 reserved
- 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
-
- Format of video hardware state:
- Offset Size Description
- 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 DAC state:
- Offset Size Description
- 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
- --------V-101D-------------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 1Dh
- Note: this version of the BIOS jumps 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 AH=1F00 for size)
- Return: AL = 1Fh if function supported
- user buffer filled with DMQS data, see below.
- 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 DMQS buffer:
- Offset Size Description
- 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 below)
- CX:DX = 0000h:0000h if 3270PC Control Program not active
- SeeAlso: AX=1F01h
-
- Format of 3270 PC configuration table:
- Offset Size Description
- 00h BYTE aspect ratio X
- 01h BYTE aspect ratio Y
- 02h BYTE monitor type (see below)
- 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 below)
- 07h BYTE function flags 2
- bit 6: GPI graphics supported
- 08h WORD segment address of Control Program Level table (see below)
- 0Ah 10 BYTEs reserved
-
- Values for 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 function flags 1:
- bit 7 mono text, 1 page
- bit 6 color text, 1 page
- bit 5 color text, 4 pages
- bit 4 CGA color graphics
- bit 3 720x350 two-color graphics
- bit 2 360x350 four-color graphics
- bit 1 720x350 eight-color graphics
-
- Format of Control Program Level table:
- Offset Size Description
- 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-1038-------------------------------
- INT 10 - Tinytalk Personal v1.09f - GET CONFIGURATION INFO
- AH = 38h
- Return: ES:DI -> configuration info (see below)
- Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
- Note: this call is also used as the installation check by verifying that the
- returned ES:DI points at valid configuration info
- SeeAlso: INT 14/AX=F0F1h,INT 2F/FB00h"AutoBraille"
- Index: installation check;Tinytalk Personal
-
- Format of configuration info:
- Offset Size Description
- 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
- --------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
- --------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
- --------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-720)
- 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-720)
- 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-720)
- 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-720)
- 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-720)
- 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 v7.0+ - API
- AH = 4Bh
- CL = function
- 00h reserved
- 01h load window
- ES:BX -> ASCIZ filename from which to read
- 02h save window
- ES:BX -> ASCIZ filename to which to write
- 03h (v7.41) set ???
- AL = ???
- 04h (v7.41) set ???
- AL = ???
- 06h (v7.41) ???
- AL = ???
- 07h set window size
- ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
- 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 (v7.41) ???
- ???
- 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 below)
- 16h get parameters
- ES:BX -> buffer for parameter table (see below)
- 17h get printer resolution
- ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
- 18h reserved (v8.0 only)
- 50h (v7.41) get ???
- Return: AX = ???
- 51h (v7.41) get ???
- Return: ES = ??? (seen 2348h)
- AX = ??? (seen 8432h)
- Return: AX = status
- 00h successful
- 01h user aborted printout with ESC
- 02h reserved
- 03h file read error
- 04h file write error
- 05h file not found
- 06h invalid header (not an image or wrong screen mode)
- 07h file close error
- 08h disk error
- 09h printer error
- 0Ah invalid function
- 0Bh can't create file
- 0Ch wrong video mode
- SeeAlso: AH=0Fh/SI=F123h
-
- Format of parameter table:
- Offset Size Description
- 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-104F00-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
- AX = 4F00h
- ES:DI -> 256-byte buffer for SuperVGA information (see below)
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- Desc: determine whether VESA BIOS extensions are present and the capabilities
- supported by the display adapter
- SeeAlso: AX=4F01h,AX=7F00h
- Index: installation check;VESA
-
- Format of SuperVGA information:
- Offset Size Description
- 00h 4 BYTEs signature ('VESA')
- 04h WORD VESA version number
- 06h DWORD pointer to OEM name
- "761295520" for ATI
- 0Ah 4 BYTEs capabilities
- 0Eh DWORD pointer to list of supported VESA and OEM video modes
- (list of words terminated with FFFFh)
- 12h 238 BYTEs reserved
- --------V-104F01-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
- AX = 4F01h
- CX = SuperVGA video mode
- ES:DI -> 256-byte buffer mode information (see below)
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- Desc: determine the attributes of the specified video mode
- SeeAlso: AX=4F00h,AX=4F02h
-
- Format of mode information:
- Offset Size Description
- 00h WORD mode attributes
- bit 0: mode supported
- bit 1: optional information available
- bit 2: BIOS output supported
- bit 3: set if color, clear if monochrome
- bit 4: set if graphics mode, clear if text mode
- 02h BYTE window A attributes
- bit 0: exists
- bit 1: readable
- bit 2: writable
- bits 3-7 reserved
- 03h BYTE window B attributes (as for window A)
- 04h WORD window granularity in K
- 06h WORD window size in K
- 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
- 14h WORD height in pixels
- 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 below)
- 1Ch BYTE size of bank in K
- 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
- 28h BYTE reserved (0)
-
- Values for 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)
- 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
- bit 15 set means don't clear video memory
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F01h,AX=4F03h
-
- Values for VESA video mode:
- 00h-FFh OEM video modes (see 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
- Index: video modes
-
- Values for S3 OEM video mode:
- 201h 640x480x256
- 202h 800x600x16
- 203h 800x600x256
- 204h 1024x768x16
- 205h 1024x768x256
- 206h 1280x960x16
- 208h 1280x1024x16
- 301h 640x480x32K
- Index: video modes
- --------V-104F03-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
- AX = 4F03h
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- BX = video mode (see AX=4F02h)
- SeeAlso: 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 = flags for states to save/restore
- bit 0: video hardware state
- bit 1: video BIOS data state
- bit 2: video DAC state
- bit 3: SuperVGA state
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- --------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 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
- 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 values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
- --------V-104F07BH00-------------------------
- INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
- AX = 4F07h
- BH = 00h (reserved)
- BL = function
- 00h 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
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- Note: this function is valid in text modes, provided that values are
- multiplied by the character cell width/height
- 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
- BH = current number of bits per primary (06h = standard VGA)
- --------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
- --------U-1050-------------------------------
- INT 10 - SCROLOCK.COM - INSTALLATION CHECK
- AH = 50h
- Return: BX = 1954h if installed
- AL = 00 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 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 2F/AX=6400h
-
- Format of data area:
- Offset Size Description
- 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-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: AH = ??? (depends on serial number)
- AL = ???
- BX = ???
- CL = ???
- CH = ???
- DX = ???
- SeeAlso: AX=6E04,AX=6E05
- --------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=6E00,AX=6E05
- --------V-106E05-------------------------------------
- INT 10 - Paradise VGA internal - SET MODE
- AX = 6E05h
- BL = mode
- Note: like AH=0, AL=BL.
- SeeAlso: AH=00,AX=6E00,AX=6E04,AX=6F05h
- --------V-106F00BX0000-----------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK
- AX = 6F00h
- BX = 0000h
- Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
- BX = 4850h ('HP') indicates HP Extended BIOS video functions present
- SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
- --------V-106F01-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO
- AX = 6F01h
- Return: AL = monitor type code (HP,VEGA VGA only) (see below)
- AH = status register information
- bit 0 = display enable
- 0 = display enabled
- 1 = vertical or horizontal retrace in progress
- bit 1 = light pen flip flop set
- bit 2 = light pen switch activated
- bit 3 = vertical sync
- bit 4 = monitor resolution
- 0 = high resolution (>200 lines)
- 1 = low resolution (<=200 lines)
- bit 5 = display type
- 0 = color
- 1 = monochrome
- bits6,7= diagnostic bits
- CL = current value of Extended Control register (HP Ext BIOS, and only
- if AL=41h)
- Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3
-
- 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
- --------V-106F02-----------------------------
- INT 10 - VIDEO - HP Vetra EXTENDED BIOS - SET MONITOR INFO
- AX = 6F02h
- BL = new value for extended control register (see below)
- Return: nothing
- 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 extended control register:
- bit 0 screen resolution (0 = 200 lines, 1 = 400 lines)
- bit 1 underline enable (if set, 'blue' bit of fg color = underl)
- bit 2 font (0 = Standard-8, 1 = HP-Roman-8)
- bit 3 memory disabled for CPU access
- bit 4 allow access to full 32K memory instead of wrapping at 16K
- bit 5 select second 16K page instead of first
- bits 6,7 unused
- --------V-106F03-----------------------------
- INT 10 - VIDEO - HP Vectra EXTENDED BIOS - MODIFY MONITOR INFO
- AX = 6F03h
- BH = exclude mask (set bits are not modified)
- BL = new values for bits indicated by BH (see AX=6F02h)
- Return: nothing
- Note: this function is only valid when an HP MultiMode Video Display Adapter
- is installed
- 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 AX=6F05h)
- 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 - SET VIDEO MODE
- AX = 6F05h
- BL = mode (see below)
- Notes: also supported by the HP Vectra Extended BIOS
- 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
-
- Values for video mode:
- text/ text pixel pixel colors disp scrn system
- grph resol box resoltn page addr
- 00h-13h = standard IBM modes (see 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
- --------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 = 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-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 below)
- CH = feature bits (see below)
- DX = video board info
- bits 4-15: board ID model
- bits 0-3: board ID revision
- DI = BCD BIOS version number
- Note: board models for Trident-based Everex cards:
- 236h Ultragraphics II
- 620h Vision VGA
- 673h EVGA
- 678h Viewpoint
-
- Values for 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 feature bits:
- bits 7,6 memory size
- 00 = 256K
- 01 = 512K
- 10 = 1024K
- 11 = 2048K
- bit 5 special oscillator present
- bit 4 VGA protect enabled
- bit 0 6845 emulation
- --------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 below)
- DL = monitor type to get info for
- ES:DI -> buffer for mode info (see below)
- Return: CL = total number of modes fitting criteria
- CH = size of each info record
- SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
-
- Values for 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 mode information record:
- Offset Size Description
- 00h BYTE mode number (bit 7 set if extended mode)
- 01h BYTE mode type (see above)
- 02h BYTE info bits
- bits 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
- 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
- --------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
- --------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,INT 15/AH=12h/BH=05h
- --------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,INT 15/AH=12h/BH=05h
- --------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 below)
- 01h failed
- SeeAlso: AX=4F00h
-
- Format of info structure:
- Offset Size Description
- 00h DWORD pointer to VESA function dispatch table
- 04h DWORD pointer to SOLLEX function dispatch table
- 08h DWORD pointer to VESA SuperVGA info (see AX=4F00h)
- 0Ch DWORD pointer to mode info structure table, consisting of
- alternating ResInfo (see below) and VESA mode information
- (see AX=4F01h) blocks, terminated with an FFFFh word
- 10h DWORD pointer to font info structure table (see below)
- 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 ResInfo:
- Offset Size Description
- 00h WORD 16-bit mode number
- 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
- 04h WORD display info (see AX=7F01h/BL=01h)
- 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 below)
-
- Format of font info table [array] entry:
- Offset Size Description
- 00h BYTE required font height
- 01h BYTE parameter to load text mode font
- 02h BYTE parameter to load graphics mode font
-
- Values for 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-107F01BL00-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
- AX = 7F01h
- BL = 00h
- CX = adapter request
- bits 1-0: adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
- bit 2: reserved
- bits 4-3: change displays (00 none, 01 analog 10 digital 11 panel)
- bits 6-5: desired monitor sense (01 color, 10 mono, 11=8514)
- bit 7: lock override
- bit 8: alternate adapter mode
- bits 15-9: reserved
- Return: AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- AL != 7Fh if not supported
- Note: initializes video hardware to a particular standard
- SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
- --------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 AX=7F01h/BL=00h)
- DX = display type (see below)
- SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
-
- Bitfields for display type:
- bits 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
- bit 2 multi-frequency analog monitor active
- bit 3 LCD panel active
- bit 4 plasma/electroluminescent panel active
- bit 5 PS/2-type monitor active
- bit 6 multi-frequency digital monitor active
- bit 7 Enhanced Color Display monitor active
- bit 8 alternate display active
- bits 15-9 reserved
- --------V-107F01BL02-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
- AX = 7F01h
- BL = 02h
- CX = adapter request (see AX=7F01h/BL=00h)
- 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 below)
- 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 display output setting:
- bit 0 CRTC control in bits 2,1 valid
- bit 1 enable digital output
- bit 2 enable analog output
- bit 3 panel control in bits 5,4 valid
- bit 4 enable LCD output
- bit 5 enable plasma/EL output
- bit 6 inverse control in bit 7 valid
- bit 7 0=normal, 1=inverse
- bits 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 AX=7F02h/BL=00h)
- CX = displays attached (see below)
- 01h failed
- SeeAlso: AX=7F00h,AX=7F02h/BL=00h
-
- Bitfields for displays attached:
- bit 0 PS/2 display on analog output
- bit 1 multi-frequency monitor on analog output
- bit 2 LCD panel attached
- bit 3 plasma/electroluminescent panel attached
- bit 4 multi-frequency monitor on digital output
- bit 5 Enhanced Color Display attached to digital outpt
- bit 6 alternate display
- bits 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 below)
- 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 register value table:
- Offset Size Description
- 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
- --------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
- --------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
- --------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
- --------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 AH=00h)
- SeeAlso: AH=91h
- --------N-1091-------------------------------
- INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
- AH = 91h
- Return: AL = video adapter type (see below)
- Note: types less than 80h do not imply that the current user is on the host
- SeeAlso: AH=90h
-
- Values for 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
- --------b-10BF00-----------------------------
- INT 10 - VIDEO - Compaq Portable 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
- --------b-10BF01-----------------------------
- INT 10 - VIDEO - Compaq Portable 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
- --------b-10BF02-----------------------------
- INT 10 - VIDEO - Compaq Portable Extensions - SET MASTER MODE OF CURRENT CTRLR
- AX = BF02h
- BH = master mode
- 04h CGA
- 05h EGA
- 07h MDA
- SeeAlso: AX=BF03h
- --------b-10BF03BX0000-----------------------
- INT 10 - VIDEO - Compaq Portable/Systempro Extensions - GET ENVIRONMENT
- AX = BF03h
- BX = 0000h
- Return: BH = active monitor
- 00h = external
- 01h = internal
- BL = master mode
- 00h = switchable VDU not present
- 04h = CGA
- 05h = EGA
- 07h = MDA
- 08h = switchable LCD controller present
- CH = 00h (reserved)
- CL = switchable VDU mode supported
- bit 0 = CGA supported
- bits 1,2 = reserved (1)
- bit 3 = MDA supported
- bits 4-7 = reserved (1)
- DH = internal monitor type (see below)
- DL = external monitor type (see below)
- SeeAlso: AH=1Ah,AX=BF00h,AX=BF01h,AX=BF02h
-
- Values for monitor type:
- 00h none
- 01h dual-mode monitor
- 02h 5153 RGB monitor
- 03h Compaq Color monitor
- 04h 640x400 flat panel
- 05h VGC monochrome
- 06h VGC color
- 07h LCD VGA
- --------b-10BF04-----------------------------
- INT 10 - VIDEO - Compaq Portable Extensions - SET MODE SWITCH DELAY
- AX = BF04h
- BH = new state of delay
- 00h enabled
- 01h disabled
- SeeAlso: AX=BF05h
- --------b-10BF05-----------------------------
- INT 10 - VIDEO - Compaq Systempro Extensions - ENABLE/DISABLE DISPLAY
- AX = BF05h
- BH = new state of video
- 00h off
- 01h on
- 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
- --------V-10CC00SI0000-----------------------
- INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
- AX = CC00h
- SI = 0000h (if checking version)
- Return: CX = ABCDh
- 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
- 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
- DS:SI -> current font names table (see below)
- Note: only the font names are valid on monochrome EGA systems
- SeeAlso: AX=1009h,AX=CD00h
-
- Format of palette register list:
- Offset Size Description
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
-
- Format of current font names table (v2+):
- Offset Size standard EGA HiRes EGA VGA
- 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 current font names table (v1.x):
- Offset Size HiRes EGA
- 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 below)
- SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
-
- Values for 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
- --------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
- 00h off (color systems only)
- 01h underline below characters
- 02h strike through characters
- 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
- --------V-10CD08-----------------------------
- INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
- AX = CD08h
- Return: CL = hardware underline status (see AX=CD07h)
- 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 AX=CD04h)
- Return: AX = CDCDh if invalid mode
- SeeAlso: AX=CD04h
- --------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
- 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
- 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
- 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
- --------V-10F1-------------------------------
- INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
- AH = F1h
- DX = group index (see AH=F0h)
- 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 CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- 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 (see AH=F2h)
- 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 records (see below)
- 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 entries in table of register records:
- Offset Size Description
- 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 AH=F4h)
- 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 mouse 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
- --------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 below)
- 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"
-
- Values for 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
- --------R-10FF00-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
- AX = FF00h
- Return: BL = 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
- Bit AC in the EFLAGS register enables this interrupt on a memory reference
- on a mis-aligned address when in privilege mode 3.
- --------B-11---------------------------------
- INT 11 - BIOS - GET EQUIPMENT LIST
- Return: AX = BIOS equipment list word
- bits
- 0 floppy disk(s) installed (see bits 6-7)
- 1 80x87 coprocessor installed
- 2,3 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)
- 4-5 initial video mode
- 00 EGA, VGA, or PGA
- 01 40x25 color
- 10 80x25 color
- 11 80x25 monochrome
- 6-7 number of floppies installed less 1 (if bit 0 set)
- 8 DMA support installed (PCjr, some Tandy 1000s, 1400LT)
- 9-11 number of serial ports installed
- 12 game port installed
- 13 serial printer attached (PCjr)
- internal modem installed (PC/Convertible)
- 14-15 number of parallel ports installed
- ---Compaq and many other 386/486 machines--
- EAX bit 23: page tables set so that Weitek coprocessor addressable in
- real mode
- bit 24: Weitek math coprocessor present
- ---Compaq Systempro
- EAX bit 25: internal DMA parallel port available
- 26: IRQ for internal DMA parallel port (if bit 25 set)
- 0 = IRQ5
- 1 = IRQ7
- 27,28: 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 below)
- AL = SCSI Addressing
- bits 2-0 SCSI Target LUN (logical unit number)
- bits 5-3 SCSI Target ID
- bits 7-6 Host Adapter
- 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=4402"ASPI"
-
- 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
- --------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
- bits 2-0 SCSI Target LUN (logical unit number)
- bits 5-3 SCSI Target ID
- bit 7 write flag, set for write operations, clear otherwise
- 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=4402"ASPI",INT 2F/AX=7F01h
- --------T-11FFFECXFFFE-----------------------
- INT 11 - BACK&FORTH (before v1.62) API
- AX = FFFEh
- CX = FFFEh
- BX = function
- 00h installation check
- Return: AX = 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
- --------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
- --------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
- 02h build program ID list
- 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
- 03h switch to specified task (task need not be open yet)
- DX = two-letter program ID
- Return: AX = 0000h if task undefined
- 04h ???
- 05h ???
- 06h get version (undoc)
- Return: AX = version * 100 (v1.71 = 00ABh)
- 07h ???
- 08h get open tasks (undoc)
- ES:DI -> task info buffer (see below)
- Return: AX = number of open tasks (max 20)
- 09h ???
- Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
- SeeAlso: INT 11/AX=FFFEh
- Index: installation check;BACK&FORTH
-
- Format of task info buffer:
- Offset Size Description
- 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
- --------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 AH=01h)
- CF clear if successful (returned AH=00h)
- CF set on error
- Note: forces controller to recalibrate drive heads (seek to track 0)
- SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"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 below)
- Note: some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
- status in both AH and AL
-
- Values for status:
- 00h successful completion
- 01h invalid function in AH or invalid parameter
- 02h address mark not found
- 03h disk write-protected (floppy)
- 04h sector not found
- 05h reset failed (hard disk)
- 06h disk changed (floppy)
- 07h drive parameter activity failed (hard disk)
- 08h DMA overrun
- 09h attempted DMA across 64K boundary
- 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 (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
- 40h seek failed
- 80h timeout (not ready)
- AAh drive not ready (hard disk)
- 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 AH=01h)
- 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 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
- --------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 AH=01h)
- 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 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
- --------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 AH=01h)
- 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 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
- --------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 below)
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- 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 address field buffer entry (one per sector in track):
- Offset Size Description
- 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 = 00h for good sector, 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: AH = status code (see AH=01h)
- Notes: AWARD AT BIOS 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
- 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 below)
- Return: CF set on error
- AH = status code (see AH=01h)
- 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
- SeeAlso: AH=06h"SCSI",AH=07h"SCSI"
-
- Format of mode select data:
- Offset Size Description
- 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 number of blocks (big-endian) (000000h for entire disk)
- 09h BYTE reserved (0)
- 0Ah 3 BYTEs block length (big-endian) (512 standard, or 256)
- 0Dh ??? vendor-specific parameter bytes (optional)
- --------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 AH=01h)
- Note: AWARD AT BIOS 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 = bits 7-5 drive LUN
- bit 4 defect list is available
- bit 3 defect list is complete (erase drive's defect list)
- bits 2-0 defect table format
- (000=use defect table A, 100=use defect table B,
- 101=use defect table C)
- ES:BX -> defect table A, B or C (see below)
- Return: CF set on error
- AH = status code (see AH=01h)
- 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
- SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
-
- Format of defect table A:
- Offset Size Description
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD defect list length (big-endian) (4*number of defects)
- 06h 4 DWORDs defect block addresses (big-endian)
-
- Format of defect table B:
- Offset Size Description
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD defect list length (big-endian) (8*number of defects)
- 06h 8N BYTEs Defect List [array]
- Offset Size Description
- 00h 3 BYTEs cylinder number of defect (big-endian)
- 03h BYTE head number of defect
- 04h DWORD defect bytes from index (big-endian)
-
- Format of defect table C:
- Offset Size Description
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD defect list length (big-endian) (8*number of defects)
- 06h 8N BYTEs defect list
- Offset Size Description
- 00h 3 BYTEs cylinder number of defect (big-endian)
- 03h BYTE head number of defect
- 04h DWORD defect sector number (big-endian)
- --------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 AH=01h)
- Note: AWARD AT BIOS 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
- AH = status code (see AH=01h)
- SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
- --------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 AH=01h)
- CF clear if successful
- AH = 00h
- BL = drive type (AT/PS2 floppies only) (see below)
- 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.
- SeeAlso: AH=15h,INT 1E,INT 41
-
- Values for drive type:
- 01h 360K
- 02h 1.2M
- 03h 720K
- 04h 1.44M
- 06h ??? (checked by 386MAX v6.01)
- --------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 AH=01h)
- 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 AH=01h)
- 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 AH=01h)
- 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 AH=01h)
- SeeAlso: AH=00h,AH=02h,AH=0Ah
- --------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 AH=01h)
- Notes: reinitializes the hard disk controller, resets the specified drive's
- parameters, and recalibrates the drive's heads (seek to track 0)
- 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 AH=01h)
- 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 AH=01h)
- 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 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 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 AH=01h)
- 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
- AH = status code (see 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
- --------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 AH=01h)
- SeeAlso: AH=12h,AH=14h
- --------B-1314-------------------------------
- INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
- AH = 14h
- Return: CF set on error
- CF clear if successful
- AH = status code (see AH=01h)
- 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 AH=01h)
- 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
- Return: CF clear if change line inactive
- AH = 00h (disk not changed)
- CF set if change line active
- AH = status
- 06h change line active or not supported
- 80h drive not ready or not present
- Note: call AH=15h first to determine whether the drive supports a change
- line
- SeeAlso: AH=15h
- --------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 drive
- DL = drive number
- Return: CF set on error
- CF clear if successful
- AH = status (see 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
- Return: CF clear if successful
- CH = number o bytes returned in buffer???
- CF set on error
- AH = status code (see 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
- SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
-
- Format of SCSI inquiry information block:
- Offset Size Description
- 00h BYTE device type
- bits 0-4: peripheral device type (see below)
- bits 5-7: peripheral qualifier (see below)
- 01h BYTE device type modifier
- bits 0-6: device type modifier
- bit 7: removable medium
- 02h BYTE SCSI version
- bits 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
- bits 3-5: ECMA version
- bits 6,7: ISO version
- 03h BYTE data format/capabilities
- bits 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
- bits 4,5: reserved
- bit 6: terminate I/O process supported
- bit 7: asynchronous event notification supported
- 04h BYTE additional data length (total remaining bytes)
- 05h 2 BYTEs reserved
- 07h BYTE device capabilities (see below)
- 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
-
- Values for 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
-
- Values for peripheral qualifier:
- 000b device is not currently connected to this logical unit
- 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 device capabilities:
- bit 0 device responds to RESET with a hard RESET
- bit 1 tagged command queuing supported
- bit 2 reserved
- bit 3 linked commands supported
- bit 4 synchronous data transfer supported
- bit 5 16-bit transfers supported
- bit 6 32-bit transfers supported
- bit 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
- 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 AH=01h)
- CF clear if successful
- AX = 4321h (magic number)
- CX = controller family code (see below)
- ---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
- Note: 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
- SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI"
-
- Values for 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 (XT286,PS)
- AH = 19h
- DL = drive
- Return: CF set on error
- AH = status (see 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 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
- SeeAlso: AH=15h,AH=1Ah
- --------d-131A-------------------------------
- INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
- AH = 1Ah
- AL = defect table count
- CL = format modifiers (see below)
- DL = drive
- ES:BX -> defect table
- Return: CF set on error
- AH = status (see 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 format modifiers:
- bit 4 generate periodic interrupt
- bit 3 perform surface analysis
- bit 2 update secondary defect map
- bit 1 ignore secondary defect map
- bit 0 ignore primary defect map
- --------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 AH=01h)
- CX:DX = logical block number of last quickly-accessible block after
- given block
- Note: 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.
- SeeAlso: AH=15h,AH=19h"SCSI"
- --------d-131B-------------------------------
- INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
- AH = 1Bh
- AL = number of record
- DL = drive
- ES:BX -> buffer for manufacturing header (defect list)
- Return: CF set on error
- AH = status
- Note: manufacturing header format (Defect Map Record format) can be found
- in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
- --------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 AH=01h)
- CF clear if successful
- ES:BX -> SCSI disk information block
- Note: also sets a non-resettable flag which prevents some controller messages
- from being displayed
- SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
-
- Format of SCSI disk information block:
- Offset Size Description
- 00h BYTE drive physical information (see below)
- 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 device physical information:
- bit 0 ???
- bit 1 device uses parity
- bit 2 256 bytes per sector instead of 512
- bit 3 don't have capacity yet???
- bit 4 disk is removable
- bit 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 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-bard 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-131C0A-----------------------------
- INT 13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION
- AX = 1C0Ah
- DL = drive
- ES:BX -> buffer for device configuration (drive physical parameter)
- Return: CF set on error
- AH = status
- Note: device configuration format can be found in IBM ESDI Fixed Disk Drive
- Adapter/A Technical Reference
- --------d-131C0B-----------------------------
- INT 13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
- AX = 1C0Bh
- ES:BX -> buffer for adapter configuration
- Return: CF set on error
- AH = status
- SeeAlso: AX=1C0Ch
- --------d-131C0C-----------------------------
- INT 13 - ESDI FIXED DISK - GET POS INFORMATION
- AX = 1C0Ch
- ES:BX -> POS information
- Return: CF set on error
- AH = status
- SeeAlso: AX=1C0Bh
- --------d-131C0E-----------------------------
- INT 13 - 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
- ES:BX -> ABA number
- Return: CF set on error
- AH = status
- Note: ABA (absolute block address) format can be found in IBM ESDI Adapter
- Technical Reference by using its Device Configuration Status Block
- --------c-131D-------------------------------
- INT 13 - IBMCACHE.SYS - CACHE STATUS
- AH = 1Dh
- AL = subfunction
- 01h get status record
- DL = drive???
- Return: ES:BX -> status record
- CF set on error
- AH = error code
- 02h set cache status
- ES:BX -> status record
- DL = drive???
- Return: CF set on error
-
- Format of status record:
- Offset Size Description
- 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
- 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 K
- 28h WORD sectors per page
-
- Format of error list:
- Offset Size Description
- 00h DWORD relative block address of bad page
- 04h BYTE drive
- 05h BYTE sector bit-map
- 06h WORD next error
- --------d-1320-------------------------------
- INT 13 - DISK - ??? (Western Digital "Super BIOS")
- AH = 20h
- ???
- Return: ???
- Note: returns some kind of status related to whether the drive contains its
- default media type
- --------c-1320FF-----------------------------
- INT 13 - QCACHE - DISMOUNT
- AX = 20FFh
- Return: ???
- --------c-1321-------------------------------
- INT 13 - QCACHE - FLUSH CACHE
- AH = 21h
- Return: ???
- SeeAlso: AH=25h,AH=2Eh
- --------c-1322-------------------------------
- INT 13 - QCACHE - ENABLE/DISABLE CACHE
- AH = 22h
- AL = 00h disable cache
- 01h enable cache
- --------c-1324-------------------------------
- INT 13 - QCACHE - SET SECTORS
- AH = 24h
- BX = number of sectors
- Return: ???
- --------c-1325-------------------------------
- INT 13 - QCACHE - SET FLUSH INTERVAL
- AH = 25h
- BC = interval
- Return: ???
- SeeAlso: AH=21h,AH=2Eh
- --------c-1327--BX0000-----------------------
- INT 13 - QCACHE - INSTALLATION CHECK
- AH = 27h
- BX = 0000h
- Return: BX nonzero if installed
- --------c-132A-------------------------------
- INT 13 - QCACHE - SET BUFFER SIZE
- AH = 2Ah
- AL = buffer size
- Return: ???
- --------c-132C-------------------------------
- INT 13 - QCACHE - SET BUFFERED WRITES
- AH = 2Ch
- AL = state
- 00h disable
- 01h enable
- Return: ???
- SeeAlso: AH=2Dh
- --------c-132D-------------------------------
- INT 13 - QCACHE - SET BUFFERED READ
- AH = 2Dh
- AL = state
- 00h disable
- 01h enable
- Return: ???
- SeeAlso: AH=2Ch
- --------c-132E-------------------------------
- INT 13 - QCACHE - SET FLUSH COUNT
- AH = 2Eh
- BX = flush count
- Return: ???
- SeeAlso: AH=21h,AH=25h
- --------c-1330-------------------------------
- INT 13 - QCACHE - GET INFO
- AH = 30h
- AL = what to get
- 00h system info
- 01h drive info
- DS:DX -> buffer for info
- Return: ???
- --------d-135504-----------------------------
- INT 13 - Seagate - GET CONTROLLER TYPE???
- AX = 5504h
- DX = drive (bit 7 set for hard disk)
- Return: CF clear if successful
- AX = 4321h,4322h if Seagate controller
- CF set on error
- SeeAlso: AX=5505h,AX=5514h
- --------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-135514-----------------------------
- INT 13 - 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 - 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-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 below)
- 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 information record:
- Offset Size Description
- 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 AX=7B00h)
- 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 ???
- AX = 7B05h
- 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! - API
- AH = 80h
- CX = 6572h
- DX = 1970h
- ES:BX -> data structure (see below)
- AL = function
- 01h ???
- 04h ???
- 05h ???
- 06h installation check
- Return: AX = 1965h if installed
- 07h ???
- 09h ???
- 0Ah ???
- 0Bh ???
- 0Ch set ??? flag
- 0Dh clear ??? flag
- Return: AH = 00h if successful (except function 06h)
- Index: installation check;FAST!
-
- Format of data structure:
- Offset Size Description
- 00h DWORD pointer to 19-byte signature string
- 13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h
- 04h 08h 15h (v4.04)
- 04h ??? ???
- --------c-1381--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- 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
- returns immediately in PC-Cache v5.x
- --------c-1382--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- 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
- --------c-1383--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- 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
- --------c-1384--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- 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
- --------c-1385--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- 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
- SeeAlso: AH=83h
- --------c-1386--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = 86h
- SI = 4358h
- ???
- Return: ???
- --------c-1387--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = 87h
- SI = 4358h
- ???
- Return: ???
- --------c-1388--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = 88h
- 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-13A0--SI4358-----------------------
- INT 13 - Super PC Kwik - 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
- SeeAlso: INT 16/AX=FFA5h/CX=1111h
- --------c-13A1--SI4358-----------------------
- INT 13 - Super PC Kwik - FLUSH CACHE
- AH = A1h
- SI = 4358h
- 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: INT 16/AX=FFA5h/CX=FFFFh
- --------c-13A2--SI4358-----------------------
- INT 13 - Super PC Kwik - ???
- 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
- --------c-13A5-------------------------------
- INT 13 C - Super PC Kwik - ???
- AH = A5h
- SI = ???
- Return: AX = ???
- SI = ???
- Notes: called when a program terminates but stays resident (see INT 21/AH=31h)
- this call is not supported by Qualitas Qcache 4.00
- --------c-13AA--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = AAh
- SI = 4358h
- ???
- Return: ???
- --------c-13AB--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = ABh
- SI = 4358h
- ???
- Return: ???
- --------c-13AC--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = ACh
- SI = 4358h
- ???
- Return: ???
- --------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 - Qualitas Qcache v4.00 - ???
- AH = ADh
- SI = 4358h
- ???
- Return: ???
- --------c-13B0--SI4358-----------------------
- INT 13 - Super PC Kwik - ???
- 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
- --------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
- Notes: the following INT 13 call will interpret the cylinder number as 1024
- less than the desired cylinder
- flag cleared by all INT 13 calls except AH=EEh
- Disk Manager also supports these calls
- 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
- SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
- --------c-13EF-------------------------------
- INT 13 - NOW! - ???
- AH = EFh
- CX = ???
- DL = ???
- ???
- Return: ???
- SeeAlso: AX=7B00h
- --------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
- --------v-13FA--DX5945-----------------------
- INT 13 - PC Tools v8+ VSAFE, VWATCH - API
- AH = FAh
- DX = 5945h
- AL = function (00h-07h)
- Return: varies by function
- 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
- --------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
- bits 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
- bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
- bit 2 stop bits (set = 2, clear = 1)
- bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
- DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
- Return: AH = line status (see AH=03h)
- FFh if error on Digiboard XAPCM232.SYS
- AL = modem status (see AH=03h)
- 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
- SeeAlso: AH=04h"SERIAL",AH=04h"MultiDOS",AH=05h"SERIAL",AX=8000h"ARTICOM"
- SeeAlso: AH=81h"COMM-DRV",AH=82h"COURIERS",AH=8Ch
- --------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
- bit 0: RDA - input data is available in buffer
- bit 1: OVRN - data has been lost
- bit 5: THRE - room is available in output buffer
- bit 6: TSRE - output buffer empty
- AL = modem status bits
- bit 3: always 1
- bit 7: DCD - carrier detect
- SeeAlso: AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS"
- --------S-1400-------------------------------
- INT 14 - MBBIOS - INITIALIZE PORT
- AH = 00h
- AL = port parameters
- bits 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)
- bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
- bit 2 stop bits (set = 2, clear = 1)
- bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
- DX = port number
- Return: AH = line status (see AH=03h)
- AL = modem status (see AH=03h)
- Note: MBBIOS was written by H. Roy Engehausen
- SeeAlso: AH=04h"MBBIOS",AH=05h"MBBIOS"
- --------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 AH=03h)
- Note: various network and serial-port drivers support the standard BIOS
- functions with interrupt-driven I/O instead of the BIOS's polled I/O
- SeeAlso: AH=02h,AH=0Bh"FOSSIL",AX=8000h"ARTICOM",AH=89h
- --------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 AH=03h)
- 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
- 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"
- --------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 below)
- AL = modem status (see below)
- AX = 9E00h if disconnected (ArtiCom)
- SeeAlso: AH=00h,AH=07h"MultiDOS",AX=8000h"ARTICOM",AH=81h"COURIERS",AX=FD02h
-
- Bitfields for line status:
- bit 7 timeout
- bit 6 transmit shift register empty
- bit 5 transmit holding register empty
- bit 4 break detected
- bit 3 framing error
- bit 2 parity error
- bit 1 overrun error
- bit 0 receive data ready
-
- Bitfields for modem status:
- bit 7 carrier detect
- bit 6 ring indicator
- bit 5 data set ready
- bit 4 clear to send
- bit 3 delta carrier detect
- bit 2 trailing edge of ring indicator
- bit 1 delta data set ready
- bit 0 delta clear to send
- --------S-1404-------------------------------
- INT 14 - SERIAL - EXTENDED INITIALIZE (CONVERTIBLE,PS)
- AH = 04h
- AL = break status
- 00h if break
- 01h if no break
- BH = parity (see below)
- BL = number of stop bits
- 00h one stop bit
- 01h two stop bits (1.5 if 5 bit word length)
- CH = word length (see below)
- CL = bps rate (see below)
- DX = port number
- Return: AX = port status code (see AH=00h)
- SeeAlso: AH=00h,AH=1Eh,AX=8000h"ARTICOM"
-
- Values for parity:
- 00h no parity
- 01h odd parity
- 02h even parity
- 03h stick parity odd
- 04h stick parity even
-
- Values for word length:
- 00h 5 bits
- 01h 6 bits
- 02h 7 bits
- 03h 8 bits
-
- Values for bps rate:
- 00h 110
- 01h 150
- 02h 300
- 03h 600
- 04h 1200
- 05h 2400
- 06h 4800
- 07h 9600
- 08h 19200
- --------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 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
- bits 7-5 unused
- bits 4,3: parity (00 none, 01 odd, 11 even)
- bit 2: stop bits (0 = one, 1 = two)
- bits 1,0: data bits (00 = five, 01 = six, 10 = seven, 11 = eight)
- BX = baud rate
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=05h"Digiboard"
- --------S-1404-------------------------------
- INT 14 - MBBIOS - INQUIRY
- AH = 04h
- Return: AH = AAh
- AL = 55h
- SeeAlso: AH=00h"MBBIOS",AH=09h"MBBIOS"
- --------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 below)
- AH = status
- 01h write modem control register
- BL = modem control register (see below)
- 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 0 data terminal ready
- bit 1 request to send
- bit 2 OUT1
- bit 3 OUT2
- bit 4 LOOP
- bits 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
- bits 7-4 unused
- bit 3: RTS/CTS
- bit 2: DSR
- bits 1,0: XON/XOFF
- 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"
- --------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-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-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 AH=03h)
- 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"
- --------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 AH=03h)
- 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 AH=03h)
- ZF set if no characters queued
- ZF clear if character available
- AL = next character
- SeeAlso: AH=03h,AH=09h"Digiboard"
- --------S-1408-------------------------------
- INT 14 - MBBIOS - NON-DESTRUCTIVE READ
- AH = 08h
- DX = port number
- Return: AL = character
- AH = status (see AH=02h)
- SeeAlso: AH=0Bh"MBBIOS",AH=0Ch"FOSSIL"
- --------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
- 00000001b - Transmit Buffering Enabled
- 00000101b - Hardware Handshaking Enabled
- 00100000b - High Speed Option Enabled
- DX = port number???
- Return: AL = old option byte
- SeeAlso: AH=04h"MBBIOS",AH=10h"FOSSIL"
- --------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
- SeeAlso: AH=09h"Digiboard",AH=0Dh"Digiboard"
- --------S-140A-------------------------------
- INT 14 - MBBIOS - WRITE BUFFER
- AH = 0Ah
- CX = count
- ES:DI -> buffer
- Return: AX = status (see AH=03h)
- DI = is updated
- CX = unsent character count
- SeeAlso: AH=0Bh"MBBIOS",AH=19h"FOSSIL"
- --------S-140B-------------------------------
- INT 14 - FOSSIL - TRANSMIT NO WAIT
- AH = 0Bh
- AL = character
- DX = port number
- Return: AX = 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 = LSR
- AL = MSR
- CX = count of characters
- DI = is updated
- SeeAlso: AH=08h"MBBIOS",AH=0Ah"MBBIOS",AH=18h"FOSSIL"
- --------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-140D-------------------------------
- INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
- AH = 0Dh
- Return: AX = 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
- SeeAlso: AH=0Ah"Digiboard"
-
- Values for CH_KEY_RDY flag:
- 00h receive buffer empty
- FFh characters available
- --------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-140F-------------------------------
- INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL
- AH = 0Fh
- AL = bit mask describing requested flow control (see below)
- DX = port number
- SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL"
-
- Bitfields for requested flow control:
- bit 0 XON/XOFF on transmit (watch for XOFF while sending)
- bit 1 CTS/RTS (CTS on transmit/RTS on receive)
- bit 2 reserved
- bit 3 XON/XOFF on receive (send XOFF when buffer near full)
- bit 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-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-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-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"
- --------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-1414-------------------------------
- INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING
- AH = 14h
- AL = 01h enable watchdog
- 00h disable watchdog
- DX = port number
- --------S-1415-------------------------------
- INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES
- AH = 15h
- AL = character
- SeeAlso: AH=13h
- --------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 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND
- AH = 16h
- AL = CCB command number (see below)
- 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
- FFh error
- SeeAlso: AH=18h"Digiboard"
-
- Values for 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-1417-------------------------------
- INT 14 - FOSSIL - REBOOT SYSTEM
- AH = 17h
- AL = method
- 00h = cold boot
- 01h = warm boot
- SeeAlso: INT 19
- --------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-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-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 below)
- Return: AX = number of characters transferred
- CX = 3058h ("0X") (X00 FOSSIL only)
- DX = 2030h (" 0") (X00 FOSSIL only)
-
- Format of driver info:
- Offset Size Description
- 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 below)
- BL = number of stop bits
- 00h one stop bit
- 01h two stop bits (1.5 if 5 bit word length)
- CH = word length (see below)
- CL = bps rate (see below)
- DX = port number
- Return: AX = port status code (see AH=00h)
- 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"
-
- Values for parity:
- 00h no parity
- 01h odd parity
- 02h even parity
- 03h stick parity odd
- 04h stick parity even
-
- Values for word length:
- 00h 5 bits
- 01h 6 bits
- 02h 7 bits
- 03h 8 bits
-
- Values for bps rate:
- 00h 110
- 01h 150
- 02h 300
- 03h 600
- 04h 1200
- 05h 2400
- 06h 4800
- 07h 9600
- 08h 19200
- --------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 below)
- AH = status
- AL = 01h write modem control register
- BL = modem control register (see below)
- 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 modem control register:
- bit 0 data terminal ready
- bit 1 request to send
- bit 2 OUT1
- bit 3 OUT2 (interrupts) enabled
- bit 4 LOOP
- bits 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 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-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 below)
- Note: monitor mode must have been turned on with AH=24h before calling
- SeeAlso: AH=20h"MultiDOS",AH=22h"MultiDOS",AH=24h"MultiDOS"
-
- Values for 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-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-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 below)
- 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 0 port is shared (spooler only)
- bit 1 port is spooled instead of direct (spooler only)
- bit 2 port is assigned as logical COM device, not in spooler
- bit 3 port is free
- --------S-1423-------------------------------
- INT 14 - MultiDOS Plus - GET PORT STATUS
- AH = 23h
- DX = port number
- Return: AH = line status (see AH=03h)
- AL = modem status (see AH=03h)
- SeeAlso: AH=03h,AH=07h"MultiDOS",AH=20h"MultiDOS"
- --------S-1424-------------------------------
- INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS
- AH = 24h
- CX = physical I/O port number
- DS:DX -> configuration table (see below)
- Return: AH = 00h
- Note: invalid port numbers are merely ignored
- SeeAlso: INT 17/AH=96h
-
- Format of configuration table:
- Offset Size Description
- 00h BYTE baud rate (see below)
- 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)
-
- Values for 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
- --------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-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-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-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 cars and
- drivers
- SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=05h,AX=8001h,AX=8002h
- --------S-148001-----------------------------
- INT 14 - ARTICOM - UNLOAD ASYNCHRONOUS REDIRECTOR FROM MEMORY
- AX = 8001h
- Return: AX = error code, if error (see AX=8003h)
- SeeAlso: AX=8000h,AX=8002h,AX=8003h
- --------S-148002-----------------------------
- INT 14 - ARTICOM - GET ASYNCHRONOUS REDIRECTOR STATUS
- AX = 8002h
- ES:DI -> buffer for redirector status structure (see below)
- Return: AX = error code, if error (see AX=8003h)
- SeeAlso: AX=8000h,AX=8003h
-
- Format of redirector status:
- Offset Size Description
- 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-148003-----------------------------
- INT 14 - ARTICOM - TRANSLATE ERROR CODE TO ERROR STRING
- AX = 8003h
- CX = error number to translate
- Return: ES:DI -> ASCIZ error text or NULL if can't translate.
- SeeAlso: AX=8000h
-
- Values for 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-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 below)
- Return: AX = error code, if error (see AX=8003h)
- 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 attachment structure:
- Offset Size Description
- 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 AX=8003h)
- 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 below)
- DS:SI -> 16 byte server name. See note.
- Return: AX = error code, if error (see AX=8003h)
- 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 resource field to 0FFh to
- return all resources.
- SeeAlso: AX=8000h,AX=8002h,AX=8003h,AX=8007h
-
- Format of resource information structure:
- Offset Size Description
- 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 below)
- Return: CF clear if redirection info returned and port is redirected
- CF set if not a redirected port
- AX = error code, if error (see AX=8003h)
- SeeAlso: AX=8000h,AX=8003h,AX=8006h,AX=8008h
-
- Format of port information structure:
- Offset Size Description
- 00h 16 BYTEs server name resource is on
- 10h BYTE adapter number server is on
- 11h BYTE resource name
- 21h WORD remote port index, use to get additional information
- 23h WORD buffer size
- 25h WORD baud rate (see below)
- 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
-
- Values for 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
- --------S-148008-----------------------------
- INT 14 - ARTICOM - GET AVAILABLE SERVER NAME
- AX = 8008h
- BX = server index (0,1,...)
- ES:DI -> server name structure (see below)
- Return: AX = error code, if error (see AX=8003)
- 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 server name structure:
- Offset Size Description
- 00h 16 BYTEs (call) ASCIZ servername
- 10h BYTE (return) 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 AX=8003h)
- 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 below) 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
-
- Trap function 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 - Egberto Willies COMM-DRV - EXTENDED INITIALIZATION
- AH = 81h
- BX:DI -> port control block
- Return: ???
- SeeAlso: AH=00h
-
- Format of port control block:
- Offset Type Description
- 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 below)
- Return: AX = 1954h if installed
- SeeAlso: AH=7Eh,AX=8101h
-
- Format of VFOSSIL information:
- Offset Size Description
- 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 below)
- 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 application function table:
- Offset Size Description
- 00h DWORD -> function to query current video mode (VioGetMode)
- 04h DWORD -> function to set video mode (VioSetMode)
- 08h DWORD -> function to query hardware config (VioGetConfig)
- 0Ch DWORD -> function to write data in TTY mode (VioWrtTTY)
- 10h DWORD -> function to get current ANSI state (VioGetANSI)
- 14h DWORD -> function to set new ANSI state (VioSetANSI)
- 18h DWORD -> function to get curr cursor position (VioGetCurPos)
- 1Ch DWORD -> function to set cursor position (VioSetCurPos)
- 20h DWORD -> function to get cursor shape (VioGetCurType)
- 24h DWORD -> function to set cursor shape (VioSetCurType)
- 28h DWORD -> function to scroll screen up (VioScrollUp)
- 2Ch DWORD -> function to scroll screen down (VioScrollDn)
- 30h DWORD -> function to read cell string from screen (VioReadCellStr)
- 34h DWORD -> function to read char string from screen (VioReadCharStr)
- 38h DWORD -> function to write a cell string (VioWrtCellStr)
- 3Ch DWORD -> function to write char string, leaving attr (VioWrtCharStr)
- 40h DWORD -> function to write char string,const attr (VioWrtCharStrAttr)
- 44h DWORD -> function to replicate an attribute (VioWrtNAttr)
- 48h DWORD -> function to replicate a cell (VioWrtNCell)
- 4Ch DWORD -> function to replicate a character (VioWrtNChar)
-
- Format of video mode data structure:
- Offset Size Description
- 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 video configuration data:
- Offset Size Description
- 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 cursor type record:
- Offset Size Description
- 00h WORD cursor start line
- 02h WORD cursor end line
- 04h WORD cursor width (always 01h)
- 06h WORD cursor attribute (FFFFh = hidden)
-
- Call VioGetMode with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video mode data structure (see above)
- Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see below)
-
- Values for 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
-
- Call VioSetMode with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video mode data structure (see above)
- Return: AX = error code (00h, 74h, 163h, 17Eh, 1A5h, 1B4h) (see above)
-
- Call VioGetConfig with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video configuration data buffer (see above)
- Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see above)
-
- 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 above)
- 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
-
- 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 above)
-
- 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 above)
-
- 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 above)
-
- 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 above)
- Note: if either coordinate is invalid, the cursor is not moved
-
- Call VioGetCurType with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to cursor type record (see above)
- Return: AX = error code (00h, 74h, 1B4h) (see above)
-
- Call VioSetCurType with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to cursor type record (see above)
- Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see above)
-
- 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 above)
-
- 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 above)
-
- 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 above)
-
- 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 above)
-
- 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 above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- 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 above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- 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 above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- 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 above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- 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 above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- 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 above)
- 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"
- ----------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-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-1485-------------------------------
- INT 14 - COURIERS.COM - FLUSH PENDING INPUT
- AH = 85h
- SeeAlso: AH=0Ah,AH=88h
- --------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-1487-------------------------------
- INT 14 - COURIERS.COM - OUTPUT STATUS
- AH = 87h
- Return: AX = number of unsent characters
- --------S-1488-------------------------------
- INT 14 - COURIERS.COM - ABORT OUTPUT
- AH = 88h
- SeeAlso: AH=09h,AH=85h
- --------S-1489-------------------------------
- INT 14 - COURIERS.COM - SEND SINGLE CHARACTER
- AH = 89h
- CL = character to send
- SeeAlso: AH=01h,AH=84h
- --------S-148A-------------------------------
- INT 14 - COURIERS.COM - SEND BREAK
- AH = 8Ah
- SeeAlso: AH=89h,AH=FAh
- --------S-148C-------------------------------
- INT 14 - COURIERS.COM - SET SPEED
- AH = 8Ch
- BX = speed in bps
- SeeAlso: AH=00h,AH=82h"COURIERS"
- --------S-148D-------------------------------
- INT 14 - COURIERS.COM - DECONFIGURE PORT
- AH = 8Dh
- SeeAlso: AH=82h"COURIERS"
- --------S-14A0-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - CONNECT TO PORT
- AH = A0h
- ???
- Return: ???
- SeeAlso: AH=A1h"BAPI"
- --------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
- ???
- Return: ???
- 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 below)
- SeeAlso: AH=A2h"TES",AH=A3h"TES"
-
- Format of status array entry:
- Offset Size Description
- 00h BYTE status
- 01h WORD offset of name
- --------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 - 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
- DH = session number (00h)
- ES:BX -> buffer
- Return: CX = number of bytes sent
- SeeAlso: AH=19h,AH=86h,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
- DH = session number (00h)
- ES:BX -> buffer
- Return: CX = number of bytes read
- SeeAlso: AH=18h,AH=83h"COURIERS",AH=A4h"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 number (00h)
- SeeAlso: AH=1Ah,AH=8Ah,AH=FAh
- --------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
- ???
- Return: ???
- --------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: ???
- --------S-14AF00BXAAAA-----------------------
- INT 14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK
- AX = AF00h
- BX = AAAAh
- Return: AX = AF01h if installed
- --------S-14B0-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - ENABLE/DISABLE "ENTER COMMAND MODE" CHARACTER
- AH = B0h
- AL = 00h disable
- = 01h enable
- SeeAlso: AH=B1h
- --------S-14B1-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE
- AH = B1h
- SeeAlso: AH=B0h
- --------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/AH=38h
- --------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
- --------S-14F9-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL
- AH = F9h
- DX = port (00h-03h)
- --------S-14FA-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK
- AH = FAh
- DX = port (00h-03h)
- SeeAlso: 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 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 AH=00h)
- 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
- --------S-14FF02-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - BUFFERED READ
- AX = FF02h
- CX = length
- DX = port (00h-03h)
- ES:BX -> buffer
- Return: CX = number of characters read
- SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh
- ---------------------------------------------
-