home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-13 | 351.4 KB | 9,057 lines |
- Interrupt List Release 47 Last change 8/13/95
- This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
- --------!---FILELIST-------------------------
- Please redistribute the following files unmodified as a group, in a quartet of
- archives named INTER47A through INTER47D (preferably the original authenticated
- PKZIP archives):
- INTERRUP.1ST the read-me file, containing credits, availability info
- INTERRUP.A INT 00 through INT 13/2F \
- INTERRUP.B INT 13/30 through INT 15/4F\
- INTERRUP.C INT 15/50 through INT 1A/5F \
- INTERRUP.D INT 1A through INT 21/43 \ total 1856 pages at
- INTERRUP.E INT 21/44 through INT 21/5F \ 60 lines per page,
- INTERRUP.F INT 21/60 through INT 21/FE > 1979 with INTPRINT -p
- INTERRUP.G INT 21/FF through INT 2F/42 / (7400 entries)
- INTERRUP.H INT 2F/43 through INT 2F/CF / (2734 tables)
- INTERRUP.I INT 2F/D0 through INT 5A /
- INTERRUP.J INT 5B through INT 61 /
- INTERRUP.K INT 62 through INT 6E /
- INTERRUP.L INT 6F through INT 7F /
- INTERRUP.M INT 80 through INT FF /
- INTERRUP.PRI a brief introduction to interrupts
- INTPRINT.COM a simple formatter that also generates a list summary
- INTPRINT.DOC instructions for INTPRINT
- OVERVIEW.LST brief listing of major uses of each interrupt
- 86BUGS.LST a listing of CPU bugs and undocumented features
- CMOS.LST a description of the CMOS RAM data bytes
- FARCALL.LST APIs available through FAR CALLs
- GLOSSARY.LST a glossary of terms, abbreviations, and acronyms
- MEMORY.LST format of the BIOS data area
- OPCODES.LST a listing of recent and undocumented CPU instructions
- PORTS.LST a listing of I/O ports
- CATEGORY.KEY descriptions of divider-line category letters
- COMBINE.BAT combine the pieces of the list into a single file
- The following files should be distributed in an archive called INTER47E:
- 86BUGSnn.ZIP programs to test for CPU bugs
- INT.* invoke interrupts from commandline
- INT2GUID.* convert list into TurboPower GUIDE or POPHELP database
- INT2HLP.ZIP convert list into QuickHelp database
- INT2QH.* program to convert list into QuickHelp database
- INTHLP??.ZIP Interrupt Helper viewer for the interrupt list
- INTHELP.* convert list into TurboPower GUIDE database
- INTLIST.E Epsilon extension for handling list
- INTPRINT.C source code for INTPRINT
- RB2NG???.ZIP convert list into Norton Guides database
- INTERVUE.EXE indexed interrupt list browser
- INTLIST.ICO Windows icon for INTERVUE
- IV.BAT wrapper for INTERVUE
- Finally, the following should be distributed in an archive called INTER47F:
- INT2WHLP.ZIP convert list into Windows Help database
- HINTSRCH.ZIP WinHelp DLL for full-text searches of interrupt list
- WH_ED*.ZIP WinHelp-file editor
- --------!---CONTACT_INFO---------------------
- If you notice any mistakes or omissions, please let me know! It is only with
- YOUR help that the list can continue to grow at the current rate. Please send
- all changes to me rather than distributing a modified version of the list.
-
- Please read the file INTERRUP.1ST before asking me any questions. You may find
- that they have already been addressed.
-
- Ralf Brown
-
- Internet: ralf@telerama.lm.com
- UUCP: {uunet,harvard}!telerama.lm.com!ralf
- FIDO: Ralf Brown 1:129/26.1
- or post a message to me in the DR_DEBUG echo (I probably won't see it
- unless you address it to me)
- CIS: >INTERNET:ralf@telerama.lm.com
-
- I reply to all e-mail submissions and inquiries, but some of my replies bounce
- because of bad return paths. If you don't get a response from me within a
- reasonable period of time, send it again with a better return path (starting at
- harvard or ucbvax for UUCP, from the Internet for others).
- --------!------------------------------------
- See INTERRUP.1ST for the key to system abbreviations and a list of the
- trademarks mentioned here.
- --------!---DISCLAIMER-----------------------
- DISCLAIMER: THIS MATERIAL IS PROVIDED "AS IS". I verify the information
- contained in this list to the best of my ability, but I cannot be held
- responsible for any problems caused by use or misuse of the information,
- especially for those functions not officially documented. If it is marked
- "internal" or undocumented, you should check it carefully to make sure it
- works the same way in your version of the software (and please let me know
- whether or not it works the same way). Information marked with "???" is
- known to be incomplete or guesswork.
- --------!---FLAGS----------------------------
- The use of -> instead of = signifies that the indicated register or register
- pair contains a pointer to the specified item, rather than the item itself.
- One or more letters may follow the interrupt number; they have the following
- meanings: U - undocumented function, u - partially documented function,
- P - available only in protected mode, R - available only in real or V86 mode,
- C - callout or callback (usually hooked rather than called),
- O - obsolete (no longer present in current versions)
- --------!---CATEGORIES-----------------------
- The ninth column of the divider line preceding an entry usually contains a
- classification code (the entry has not been classified if that character is
- a dash). The codes currently in use are:
- A - applications, a - access software (screen readers, etc),
- B - BIOS, b - vendor-specific BIOS extensions,
- C - CPU-generated, c - caches/spoolers,
- D - DOS kernel, d - disk I/O enhancements,
- E - DOS extenders, e - electronic mail, F - FAX,
- f - file manipulation, G - debuggers/debugging tools, g - games,
- H - hardware, h - vendor-specific hardware,
- I - IBM workstation/terminal emulators, i - system info/monitoring,
- J - Japanese, j - joke programs,
- K - keyboard enhancers, k - file/disk compression,
- l - shells/command interpreters,
- M - mouse/pointing device, m - memory management,
- N - network, n - non-traditional input devices,
- O - other operating systems,
- P - printer enhancements, p - power management,
- Q - DESQview/TopView and Quarterdeck programs,
- R - remote control/file access, r - runtime support,
- S - serial I/O, s - sound/speech,
- T - DOS-based task switchers/multitaskers, t - TSR libraries
- U - resident utilities, u - emulators,
- V - video, v - virus/antivirus,
- W - MS Windows, X - expansion bus BIOSes,
- y - security, * - reserved (and not otherwise classified)
- --------C-00---------------------------------
- INT 00 C - CPU-generated - DIVIDE ERROR
- Desc: generated if the divisor of a DIV or IDIV instruction is zero or the
- quotient overflows the result register; DX and AX will be unchanged.
- Notes: on an 8086/8088, the return address points to the following instruction
- on an 80286+, the return address points to the divide instruction
- an 8086/8088 will generate this interrupt if the result of a division
- is 80h (byte) or 8000h (word)
- SeeAlso: INT 04
- --------G-00---------------------------------
- INT 00 - Zenith - ROM DEBUGGER
- Desc: invokes the ROM Debugger when at the BIOS level; equivalent to
- pressing Ctrl-Alt-Ins on booting.
- Note: since DOS revectors INT 00, it is necessary to restore this vector to
- its original ROM BIOS value in order to invoke the debugger once DOS
- loads
- SeeAlso: INT 03"Columbia"
- --------C-01---------------------------------
- INT 01 C - CPU-generated - SINGLE STEP
- Desc: generated after each instruction if TF (trap flag) is set; TF is
- cleared on invoking the single-step interrupt handler
- Notes: interrupts are prioritized such that external interrupts are invoked
- after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
- first instruction of the handler executes
- used by debuggers for single-instruction execution tracing, such as
- MS-DOS DEBUG's T command
- SeeAlso: INT 03
- --------C-01---------------------------------
- INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
- Desc: generated by the CPU on various occurrences which may be of interest
- to a debugger program
- Note: events which may trigger the interrupt:
- Instruction address breakpoint fault - will return to execute inst
- Data address breakpoint trap - will return to following instruction
- General detect fault, debug registers in use
- Task-switch breakpoint trap
- undocumented 386/486 opcode F1h - will return to following instruc
- SeeAlso: INT 03
- --------H-02---------------------------------
- INT 02 C - external hardware - NON-MASKABLE INTERRUPT
- Desc: generated by the CPU when the input to the NMI pin is asserted
- Notes: return address points to start of interrupted instruction on 80286+
- on the 80286+, further NMIs are disabled until the next IRET
- instruction, but one additional NMI is remembered by the hardware
- and will be serviced after the IRET instruction reenables NMIs
- maskable interrupts may interrupt the NMI handler if interrupts are
- enabled
- although the Intel documentation states that this interrupt is
- typically used for power-failure procedures, it has many other uses
- on IBM-compatible machines:
- Memory parity error: all except Jr, CONV, and some machines
- without memory parity
- Breakout switch on hardware debuggers
- Coprocessor interrupt: all except Jr and CONV
- Keyboard interrupt: Jr, CONV
- I/O channel check: CONV, PS50+
- Disk-controller power-on request: CONV
- System suspend: CONV
- Real-time clock: CONV
- System watch-dog timer, time-out interrupt: PS50+
- DMA timer time-out interrupt: PS50+
- Low battery: HP 95LX
- Module pulled: HP 95LX
- --------C-03---------------------------------
- INT 03 C - CPU-generated - BREAKPOINT
- Desc: generated by the one-byte breakpoint instruction (opcode CCh)
- Notes: used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
- command
- also used by Turbo Pascal versions 1,2,3 when {$U+} specified
- return address points to byte following the breakpoint instruction
- called by Novell DOS 7 EMM386 after displaying an exception error
- message (GPF, illegal opcodes, etc.) and before waiting for user
- input
- called by QEMM-386 if the user presses 'I' (undocumented) when prompted
- after an exception error message
- SeeAlso: INT 01
- --------G-03---------------------------------
- INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
- Desc: invokes the ROM Debugger if INT 03 has not been revectored; equivalent
- to pressing Esc on booting.
- SeeAlso: INT 00"Zenith",INT 03"Realia"
- --------G-03---------------------------------
- INT 03 - Realia COBOL - DEBUGGER SUPPORT
- Note: Realia COBOL checks for a signature eight bytes prior to the interrupt
- handler when it starts up
- BUG: if the offset of the INT 03 vector is less than 8, the compiler and
- all executables generated by it will crash the system
- SeeAlso: INT 03"Columbia"
- --------G-03---------------------------------
- INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
- STACK: DWORD selector
- DWORD offset of ASCIZ message to display
- Notes: the INT 03h instruction which invokes the debugger must be followed by
- a JMP SHORT and the signature string "WVIDEO"
- to check whether this interface is available, define a public byte
- variable named ___WD_Present, which the debugger will set to 01h
- before running the program
- SeeAlso: AX=0910h
- --------U-03---------------------------------
- INT 03 - DTown Utilities - POP UP
- Program: DTown Software Development's DTown Utilities contains various tools
- which are useful to programmers, such as a memory viewer and
- disassembler
- Note: DTU pops up on INT 03 (if not hooked by a debugger) to allow the
- user to inspect memory or code when the machine crashes; various
- memory managers will invoke INT 03 when displaying a CPU exception
- error message (either automatically or when the user presses a
- particular key)
- --------G-030910-----------------------------
- INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
- AX = 0910h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
- Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
- SeeAlso: INT 03"WVIDEO"
- --------G-030911-----------------------------
- INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
- AX = 0911h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
- --------G-030912-----------------------------
- INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
- AX = 0912h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- Return: BH = entry number of last breakpoint set
- BL = type of last breakpoint set (see #0001)
- DH = entry number of last breakpoint to be triggered
- DL = type of last triggered breakpoint (see #0001)
- Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
- SeeAlso: AX=0913h,AX=0914h
-
- (Table 0001)
- Values for Soft-ICE breakpoint type:
- 00h BPM (breakpoint register types)
- 01h I/O
- 02h INTerrupt
- 03h BPX (INT 03h-style breakpoint)
- 04h reserved
- 05h range
- --------G-030913-----------------------------
- INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
- AX = 0913h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- DS:DX -> breakpoint structure (see #0002)
- Return: AX = status
- 00h successful
- BX = breakpoint number
- 03h breakpoint table full
- 06h memory limit error
- 07h I/O limit error
- 09h range limit error
- 16h duplicate breakpoint
- SeeAlso: AX=0912h,AX=0914h
-
- Format of Soft-ICE breakpoint structure:
- Offset Size Description (Table 0002)
- 00h BYTE breakpoint type (see #0003)
- 01h DWORD breakpoint address 1
- (lower range limit for memory BPs,
- interrupt number for interrupt BPs,
- address of BP for execution BPs,
- I/O address (only word) for I/O BPs)
- 05h DWORD breakpoint address 2
- (upper range limit for memory BPs,
- optional value to check for for interrupt BPs,
- overlay number (0 = root) for execution BPs)
- 09h DWORD breakpoint address 3
- 0Dh BYTE breakpoint mode 1 (see #0004)
- (for interrupt BPs = register to check
- 00h no value checking
- 01h check AL
- 02h check AH
- 03h check AX)
- 0Eh BYTE breakpoint mode 2 (see #0004)
- 0Fh BYTE breakpoint size (00h byte, 01h word, 03h dword)
- 10h BYTE breakpoint pass count before program stop
- 11h BYTE breakpoint state
- Note: all unused fields should contain zeros
-
- (Table 0003)
- Values for Soft-ICE breakpoint type:
- 00h memory location
- 01h memory range
- 03h I/O
- 04h interrupt
- 05h execution break
-
- (Table 0004)
- Values for Soft-ICE breakpoint mode:
- 01h read
- 02h write
- 04h execution
- --------G-030914-----------------------------
- INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
- AX = 0914h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- BX = breakpoint number (returned by AX=0913h)
- Return: BX = ???
- Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
- SeeAlso: AX=0912h,AX=0913h
- --------C-04---------------------------------
- INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
- Desc: the INTO instruction will generate this interrupt if OF (Overflow Flag)
- is set; otherwise, INTO is effectively a NOP
- Note: may be used for convenient overflow testing (to prevent errors from
- propagating) instead of JO or a JNO/JMP combination
- SeeAlso: INT 00
- --------B-05---------------------------------
- INT 05 - PRINT SCREEN
- Desc: dump the current text screen to the first printer
- Notes: normally invoked by the INT 09 handler when PrtSc key is pressed, but
- may be invoked directly by applications
- byte at 0050h:0000h contains status used by default handler
- 00h not active
- 01h PrtSc in progress
- FFh last PrtSc encountered error
- default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
- BUG: some old BIOSes/applications appear to destroy BP on return
- SeeAlso: INT 10/AH=12h/BL=20h,INT 5E"TI Professional",INT 80"Phar Lap"
- --------C-05---------------------------------
- INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
- Desc: generated by BOUND instruction when the value to be tested is less than
- the indicated lower bound or greater than the indicated upper bound.
- Note: returning from this interrupt re-executes the failing BOUND instruction
- --------P-05454A-----------------------------
- INT 05 U - PSPS v2.01 - EJECT PAGE
- AX = 454Ah ('EJ')
- Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
- Technologies
- Note: sends a ^D to the current printer
- SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
- --------P-054E57-----------------------------
- INT 05 U - PSPS v2.01 - SET PARAMETERS
- AX = 4E57h ('NW')
- ES:SI -> 11-byte buffer containing new settings
- Return: buffer filled
- SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
- --------P-055053-----------------------------
- INT 05 U - PSPS v2.01 - GET PARAMETERS
- AX = 5053h ('PS')
- ES:SI -> 11-byte buffer for settings
- Return: buffer filled
- SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
- --------P-05554E-----------------------------
- INT 05 U - PSPS v2.01 - UNINSTALL
- AX = 554Eh ('UN')
- Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
- Technologies
- SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
- --------C-06---------------------------------
- INT 06 C - CPU-generated (80286+) - INVALID OPCODE
- Desc: this interrupt is generated when the CPU attempts to execute an
- invalid opcode (most protected-mode instructions are considered
- invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
- which specifies a register rather than a memory address
- Notes: return address points to beginning of invalid instruction
- with proper programming, this interrupt may be used to emulate
- instructions which do not exist; many 386 BIOSes emulate the 80286
- undocumented LOADALL instruction which was removed from the 80386+
- generated by the 80386+ when the LOCK prefix is used with instructions
- other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
- NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
- not accessing memory.
- SeeAlso: INT 0C"CPU",INT 0D"CPU"
- --------b-06---------------------------------
- INT 06 C - HP 95LX - SLEEP/WAKEUP
- Desc: this interrupt is called just before going into light or deep
- (shutdown) sleep and just after returning from light or deep sleep
- SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
- --------V-06---------------------------------
- INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
- Desc: points at graphics data for characters 00h-7Fh of the current font
- SeeAlso: INT 43"EGA",INT 44"VIDEO"
- --------C-07---------------------------------
- INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
- Desc: this interrupt is automatically called if a coprocessor instruction is
- encountered when no coprocessor is installed
- Note: can be used to emulate a numeric coprocessor in software
- SeeAlso: INT 09"MATH UNIT PROTECTION"
- --------H-08---------------------------------
- INT 08 C - IRQ0 - SYSTEM TIMER
- Desc: generated 18.2 times per second by channel 0 of the 8254 system timer,
- this interrupt is used to keep the time-of-day clock updated
- Notes: programs which need to be invoked regularly should use INT 1C unless
- they need to reprogram the timer while still keeping the time-of-day
- clock running at the proper rate
- default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
- may be masked by setting bit 0 on I/O port 21h
- SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
- SeeAlso: INT D8"Screen Thief"
- --------C-08---------------------------------
- INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
- Desc: called when multiple exceptions occur on one instruction, or an
- exception occurs in an exception handler
- Notes: called in protected mode if an interrupt above the defined limit of
- the interrupt vector table occurs
- return address points at beginning of instruction with errors or the
- beginning of the instruction which was about to execute when the
- external interrupt caused the exception
- if an exception occurs in the double fault handler, the CPU goes into
- SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
- this "triple fault" is a faster way of returning to real mode on
- many 80286 machines than the standard keyboard controller reset
- --------H-09---------------------------------
- INT 09 C - IRQ1 - KEYBOARD DATA READY
- Desc: this interrupt is generated when data is received from the keyboard.
- This is normally a scan code (from either a keypress *or* a key
- release), but may also be an ACK or NAK of a command on AT-class
- keyboards.
- Notes: this IRQ may be masked by setting bit 1 on I/O port 21h
- if the BIOS supports an enhanced (101/102-key) keyboard, it calls
- INT 15/AH=4Fh after reading the scan code (see #0005) from the
- keyboard and before further processing; all further processing uses
- the scan code returned from INT 15/AH=4Fh
- the default interrupt handler is at F000h:E987h in 100%-compatible
- BIOSes
- the interrupt handler performs the following actions for certain
- special keystrokes:
- Ctrl-Break clear keyboard buffer, place word 0000h in buffer,
- invoke INT 1B, and set flag at 0040h:0071h
- SysReq invoke INT 15/AH=85h (SysReq is often labeled SysRq)
- Ctrl-Numlock place system in a tight wait loop until next INT 09
- Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
- destination of the jump at that address)
- Shift-PrtSc invoke INT 05
- Ctrl-Alt-Plus (HP Vectra) enable keyclick
- Ctrl-Alt-Plus (many clones) set clock speed to high
- Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
- Ctrl-Alt-Minus (many clones) set clock speed to low
- Ctrl-Alt-SysReq (HP Vectra) generate hard reset
- DRDOS hooks this interrupt to control the cursor shape (underscore/
- half block) for overwrite/insert mode
- DR Multiuser DOS hooks this interrupt for cursor shape control and to
- control whether Ctrl-Alt-Del reboots the current session or the
- entire system
- SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
- SeeAlso: INT 2F/AX=A901h,INT 4A"TI Professional",INT 51"DESQview"
- SeeAlso: INT 59"DoubleDOS",INT 79"GO32"
-
- (Table 0005)
- Values for keyboard make/break (scan) code:
- 01h Esc 31h N
- 02h 1 ! 32h M
- 03h 2 @ 33h , < 63h F16
- 04h 3 # 34h . > 64h F17
- 05h 4 $ 35h / ? 65h F18
- 06h 5 % 36h Right Shift 66h F19
- 07h 6 ^ 37h Grey* 67h F20
- 08h 7 & 38h Alt 68h F21
- 09h 8 * 39h SpaceBar 69h F22
- 0Ah 9 ( 3Ah CapsLock 6Ah F23
- 0Bh 0 ) 3Bh F1 6Bh F24
- 0Ch - _ 3Ch F2 6Ch --
- 0Dh = + 3Dh F3 6Dh EraseEOF
- 0Eh Backspace 3Eh F4
- 0Fh Tab 3Fh F5 6Fh Copy/Play
- 10h Q 40h F6
- 11h W 41h F7
- 12h E 42h F8 72h CrSel
- 13h R 43h F9
- 14h T 44h F10 74h ExSel
- 15h Y 45h NumLock 75h --
- 16h U 46h ScrollLock 76h Clear
- 17h I 47h Home
- 18h O 48h UpArrow
- 19h P 49h PgUp
- 1Ah [ { 4Ah Grey-
- 1Bh ] } 4Bh LeftArrow
- 1Ch Enter 4Ch Keypad 5
- 1Dh Ctrl 4Dh RightArrow
- 1Eh A 4Eh Grey+
- 1Fh S 4Fh End
- 20h D 50h DownArrow
- 21h F 51h PgDn
- 22h G 52h Ins
- 23h H 53h Del
- 24h J 54h SysReq ---non-key codes---
- 25h K 00h kbd buffer full
- 26h L 56h left \| (102-key)
- 27h ; : 57h F11 AAh self-test complete
- 28h ' " 58h F12 E0h prefix code
- 29h ` ~ E1h prefix code
- 2Ah Left Shift 5Ah PA1 EEh ECHO
- 2Bh \ | 5Bh F13 (LWin) F0h prefix code (key break)
- 2Ch Z 5Ch F14 (RWin) FAh ACK
- 2Dh X 5Dh F15 (Menu) FCh diag failure (MF-kbd)
- 2Eh C FDh diag failure (AT-kbd)
- 2Fh V FEh RESEND
- 30h B FFh kbd error/buffer full
- Notes: scan codes 56h-E1h are only available on the extended (101/102-key)
- keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
- are only available on the 122-key keyboard and the Microsoft Natural
- Keyboard; scan codes 5Eh-76h are only available on the 122-key
- keyboard
- in the default configuration, break codes are the make scan codes with
- the high bit set; make codes 60h,61h,70h, etc. are not available
- because the corresponding break codes conflict with prefix codes
- (code 2Ah is available because the self-test result code AAh is only
- sent on keyboard initialization). An alternate keyboard
- configuration can be enabled on AT and later systems with enhanced
- keyboards, in which break codes are the same as make codes, but
- prefixed with an F0h scan code
- prefix code E0h indicates that the following make/break code is for a
- "gray" duplicate to a key which existed on the original PC keyboard;
- prefix code E1h indicates that the following make code has no
- corresponding break code (currently only the Pause key generates no
- break code)
- the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
- (all with an E0h prefix) for the Left Windows, Right Windows, and
- Menu keys on the bottom row
- the SysReq key is often labeled SysRq
- SeeAlso: #0460
- --------C-09---------------------------------
- INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
- Desc: called if the coprocessor attempts to access memory outside a segment
- boundary; it may occur at an arbitrary time after the coprocessor
- instruction was issued
- Notes: until the condition is cleared or the coprocessor is reset, the only
- coprocessor instruction which may be used is FNINIT; WAIT or other
- coprocessor instructions will cause a deadlock because the
- coprocessor is still busy waiting for data
- for the 486+, a coprocessor protection error generates an INT 0D
- SeeAlso: INT 07"CPU"
- --------*-09---------------------------------
- INT 09 P - internal hardware - RESERVED BY Intel (80486)
- Note: this exception has been moved to INT 0D
- SeeAlso: INT 09"MATH",INT 0D
- --------H-0A---------------------------------
- INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
- Notes: the TOPS and PCnet adapters use this interrupt request line by default
- DOS 3.2 revectors IRQ2 to a stack-switching routine
- on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
- connects to the slave 8259. The BIOS redirects the interrupt for
- IRQ9 back here.
- under DESQview, only the INT 15h vector and BASIC segment address (the
- word at 0000h:0510h) may be assumed to be valid for the handler's
- process
- many VGA boards do not implement the vertical retrace interrupt,
- including the IBM VGA Adapter where the traces are either cut or
- removed
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
- --------H-0A---------------------------------
- INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
- Notes: this interrupt may be masked by setting bit 2 on I/O port 21h
- the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
- 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
- 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
- for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
- DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
- RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
- interrupt use IRQ5 for vertical retrace.
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
- --------H-0A---------------------------------
- INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
- Note: newer Roland cards and MIDI interfaces by other manufacturers use
- a jumper-selectable IRQ, but software and hardware generally defaults
- to IRQ2
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
- --------C-0A---------------------------------
- INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
- Desc: automatically called during a task switch if the new TSS specified by
- the task gate is invalid for any of the following reasons:
- TSS limit is less than 43 (80286) or 103 (80386/80486)
- LDT selector invalid or segment not present
- null SS selector, or SS selector outside LDT/GDT limit
- stack segment is read-only
- stack segment DPL differs from new CPL, or RPL <> CPL
- CS selector is outside LDT/GDT limit or not code
- non-conforming code segment's DPL differs from CPL
- conforming code segment's DPL > CPL
- DS/ES selectors outside LDT/GDT limit or not readable segments
- Note: the handler must use a task gate in order to have a valid TSS under
- which to execute; it must also reset the busy bit in the new TSS
- SeeAlso: INT 0B"CPU"
- --------H-0B---------------------------------
- INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
- Desc: automatically asserted by the UART when COM2 needs attention, if the
- UART has been programmed to generate interrupts
- Notes: the TOPS and PCnet adapters use this interrupt request line as an
- alternate
- on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
- shares this interrupt
- may be masked by setting bit 3 on I/O port 21h
- SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
- --------C-0B---------------------------------
- INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
- Desc: generated when loading a segment register if the segment descriptor
- indicates that the segment is not currently in memory, unless the
- segment is an LDT (see INT 0A"CPU") or stack segment (see
- INT 0C"CPU") needed by a task switch
- Note: may be used to implement virtual memory by loading in segments as they
- are accessed, clearing the "not present" bit after loading
- SeeAlso: INT 0A"CPU",INT 0E"hardware"
- --------h-0B---------------------------------
- INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
- Desc: this is the lowest-level keyboard handler on an HP 95LX palmtop
- Note: debounces key, places the keycode in I/O register 60h, and calls INT 09
- SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
- --------H-0C---------------------------------
- INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
- Desc: automatically asserted by the UART when COM1 needs attention, if the
- UART has been programmed to generate interrupts
- BUG: this vector is modified but not restored by Direct Access v4.0, and
- may be left dangling by other programs written with the same version
- of compiled BASIC
- Notes: on many PC's, COM3 shares this interrupt
- may be masked by setting bit 4 on I/O port 21h
- SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
- --------C-0C---------------------------------
- INT 0C C - CPU-generated (80286+) - STACK FAULT
- Desc: this interrupt is generated in protected mode on a stack overflow or
- underflow, or if an inter-level transition or task switch references
- a stack segment marked "not present"; it is generated in real mode
- on accessing a word operand at SS:FFFFh
- Note: the 80286 will shut down in real mode if SP=1 before a push. On the
- PC AT and compatibles, external circuitry generates a reset on
- shutdown.
- SeeAlso: INT 0B"CPU",INT 0D"CPU"
- --------I-0C---------------------------------
- INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
- Desc: the IBM System 36/38 emulator may be invoked through a private API,
- whose entry point address (see #0006) is offset 100h in the segment
- pointed at by this vector
-
- (Table 0006)
- Call the System 36/38 emulator API entry point with:
- AH = function
- 03h update screen
- 05h select next session
- AL = session number (00h-03h)
- Return: AL = session type code
- 00h not active
- 01h display session
- 02h printer session
- FEh invalid session number
- DS = requested session's data segment (0 if not active)
- (see #0007)
- Return: ???
-
- Format of System 36/38 emulator's data area:
- Offset Size Description (Table 0007)
- 13Eh BYTE bit flags for status line indicators turned on since this byte
- last zerod
- 13Fh BYTE bit flags for status line indicators turned off since this
- byte last set to FFh
- 140h WORD offset of EBCDIC to ASCII translation
- 146h WORD offset of EBCDIC screen buffer
- 148h WORD offset of EC (engineering change) level signature
- 150h BYTE "KEYI"
- 151h BYTE 5250 key scan code to be sent to remote
- 15Bh BYTE "SYSAV"
- 15Dh BYTE 5250 cursor column
- 15Eh BYTE 5250 cursor row
- 167h BYTE "DVCTAD"
- 178h BYTE "FLAGS"
- 184h BYTE "SESSNOAD"
- 193h BYTE "STNAD"
- 198h BYTE "NSDS"
- Note: offsets are from the interrupt handler's segment
- --------H-0D---------------------------------
- INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
- Notes: under DESQview, only the INT 15h vector and BASIC segment address (the
- word at 0000h:0510h) may be assumed to be valid for the handler's
- process
- the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
- 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
- 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
- for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
- DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
- RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
- interrupt use IRQ5 for vertical retrace.
- may be masked by setting bit 5 on I/O port 21h
- SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
- SeeAlso: INT 7D"GO32"
- --------H-0D---------------------------------
- INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
- Desc: used to ensure that the dynamic RAM retains its contents in earlier
- 1000-series models; later models use normal DMA for RAM refresh
- (some early models have no DMA unless it is added via an expansion
- card)
- SeeAlso: INT 55
- --------h-0D---------------------------------
- INT 0D - HP 95LX - INFRARED INTERRUPT
- Desc: this interrupt is used to perform communications over the infrared
- data link
- SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
- --------C-0D---------------------------------
- INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
- Desc: the CPU generates this interrupt when it detects a protection violation
- which does not fit under any other category having a separate
- interrupt
- Notes: called in real mode when
- an instruction accesses a memory operand extending beyond offset
- FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
- CS, DS, ES, FG, or GS
- a PUSH MEM or POP MEM instruction contains an invalid bit encoding
- in the second byte
- an instruction exceeds the maximum length allowed (10 bytes for
- 80286, 15 bytes for 80386/80486)
- an instruction wraps from offset FFFFh to offset 0000h
- called in protected mode on protection violations not covered by INT 06
- through INT 0C, including
- segment limit violations
- write to read-only segments
- accesses using null DS or ES selectors
- accesses to segments with privilege greater than CPL
- wrong descriptor type
- called on 80486 protected-mode floating-point protection fault
- SeeAlso: INT 09"80486",INT 0C"STACK"
- --------H-0E---------------------------------
- INT 0E C - IRQ6 - DISKETTE CONTROLLER
- Desc: this interrupt is generated by the floppy disk controller on
- completion of an operation
- Notes: default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
- may be masked by setting bit 6 on I/O port 21h
- SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
- --------C-0E---------------------------------
- INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
- Desc: this interrupt is generated in protected and virtual-86 modes on
- attempting to access a 4K memory page whose page table entry has
- the "present" bit cleared
- Note: used to implement virtual memory
- SeeAlso: INT 0B"hardware"
- --------h-0E---------------------------------
- INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
- SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
- --------H-0F---------------------------------
- INT 0F C - IRQ7 - PARALLEL PRINTER
- Desc: this interrupt is generated by the LPT1 printer adapter when the
- printer becomes ready
- Notes: most printer adapters do not reliably generate this interrupt
- the 8259 interrupt controller generates an interrupt corresponding to
- IRQ7 when an error condition occurs
- SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
- --------h-0F---------------------------------
- INT 0F C - HP 95LX - REAL-TIME CLOCK
- SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
- --------C-10---------------------------------
- INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
- Desc: this interrupt is generated by the CPU when the -ERROR pin is asserted
- by the coprocessor
- Note: AT's and clones usually wire the coprocessor to use IRQ13, but not all
- get it right
- SeeAlso: INT 09"hardware",INT 75
- --------V-1000-------------------------------
- INT 10 - VIDEO - SET VIDEO MODE
- AH = 00h
- AL = desired video mode (see #0009)
- Return: AL = video mode flag (Phoenix, AMI BIOS)
- 20h mode > 7
- 30h modes 0-5 and 7
- 3Fh mode 6
- AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
- Desc: specify the display mode for the currently active display adapter
- Notes: IBM standard modes do not clear the screen if the high bit of AL is set
- (EGA or higher only)
- the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
- SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
- Everex EV-673
- the installation check for Ahead adapters is the signature "AHEAD" at
- C000h:0025h
- the installation check for Paradise adapters is the signature "VGA=" at
- C000h:007Dh
- the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
- signature "OAK VGA" at C000h:0008h
- the installation check for ATI adapters is the signature "761295520" at
- C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
- 31h for 18800
- 32h for 18800-1
- 33h for 18800-2
- 34h for 18800-4
- 35h for 18800-5
- the two bytes at C000h:0040h indicate the adapter type
- "22" EGA Wonder
- "31" VGA Wonder
- "32" EGA Wonder800+
- the byte at C000h:0042h contains feature flags
- bit 1: mouse port present
- bit 4: programmable video clock
- the byte at C000h:0044h contains additional feature flags if chipset
- byte > 30h (see #0008)
- the installation check for Genoa video adapters is the signature
- 77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
- and XXh is
- 00h for Genoa 6200/6300
- 11h for Genoa 6400/6600
- 22h for Genoa 6100
- 33h for Genoa 5100/5200
- 55h for Genoa 5300/5400
- for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
- for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
- "EXTMODE", indicating support for extended modes
- SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
- SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
- Index: installation check;Tseng ET4000|installation check;Ahead video cards
- Index: installation check;Oak Technologies|installation check;ATI video cards
- Index: installation check;Paradise video|installation check;Genoa video cards
-
- Bitfields for ATI additional feature flags:
- Bit(s) Description (Table 0008)
- 0 70 Hz non-interlaced display
- 1 Korean (double-byte) characters
- 2 45 MHz memory clock rather than 40 MHz
- 3 zero wait states
- 4 paged ROMs
- 6 no 8514/A monitor support
- 7 HiColor DAC
-
- (Table 0009)
- Values for video mode:
- text/ text pixel pixel colors disply scrn system
- grph resol box resolution pages addr
- 00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
- = T 40x25 8x14 320x350 16gray 8 B800 EGA
- = T 40x25 8x16 320x400 16 8 B800 MCGA
- = T 40x25 9x16 360x400 16 8 B800 VGA
- 01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
- = T 40x25 8x14 320x350 16 8 B800 EGA
- = T 40x25 8x16 320x400 16 8 B800 MCGA
- = T 40x25 9x16 360x400 16 8 B800 VGA
- 02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
- = T 80x25 8x14 640x350 16gray 8 B800 EGA
- = T 80x25 8x16 640x400 16 8 B800 MCGA
- = T 80x25 9x16 720x400 16 8 B800 VGA
- 03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
- = T 80x25 8x14 640x350 16/64 8 B800 EGA
- = T 80x25 8x16 640x400 16 8 B800 MCGA
- = T 80x25 9x16 720x400 16 8 B800 VGA
- 04h = G 40x25 8x8 320x200 4 . B800 CGA,PCjr,EGA,MCGA,VGA
- 05h = G 40x25 8x8 320x200 4gray . B800 CGA,PCjr,EGA
- = G 40x25 8x8 320x200 4 . B800 MCGA,VGA
- 06h = G 80x25 8x8 640x200 2 . B800 CGA,PCjr,EGA,MCGA,VGA
- = G 80x25 . . mono . B000 HERCULES.COM on HGC [14]
- 07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
- = T 80x25 9x16 720x400 mono . B000 VGA
- 08h = T 132x25 8x8 1056x200 16 . B800 ATI EGA/VGA Wonder [2]
- = T 132x25 8x8 1056x200 mono . B000 ATI EGA/VGA Wonder [2]
- = G 20x25 8x8 160x200 16 . . PCjr, Tandy 1000
- = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
- = G 90x45 8x8 720x360 mono . B000 Hercules + HERKULES [11]
- = G 90x29 8x12 720x348 mono . . Hercules + HERCBIOS [15]
- 09h = G 40x25 8x8 320x200 16 . . PCjr, Tandy 1000
- = G 90x43 8x8 720x348 mono . . Hercules + HERCBIOS [15]
- 0Ah = G 80x25 8x8 640x200 4 . . PCjr, Tandy 1000
- 0Bh = reserved (EGA BIOS internal use)
- = G 80x25 8x8 640x200 16 . . Tandy 1000 SL/TL [13]
- 0Ch = reserved (EGA BIOS internal use)
- 0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
- 0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
- 0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
- 10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
- = G . . 640x350 16 . A000 256k EGA,VGA
- 11h = G 80x30 8x16 640x480 mono . A000 VGA,MCGA,ATI EGA,ATI VIP
- 12h = G 80x30 8x16 640x480 16/256K . A000 VGA,ATI VIP
- = G 80x30 8x16 640x480 16/64 . A000 ATI EGA Wonder
- = G . . 640x480 16 . . UltraVision+256K EGA
- 13h = G 40x25 8x8 320x200 256/256K . A000 VGA,MCGA,ATI VIP
- 14h = T 132x25 Nx16 . 16 . . XGA, IBM Enhanced VGA [3]
- = T 132x25 8x16 1056x400 16/256K . . Cirrus CL-GD5420/5422/5426
- = G 80x25 8x8 640x200 . . . Lava Chrome II EGA
- = G . . 640x400 16 . . Tecmar VGA/AD
- 15h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
- 16h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
- = G . . 800x600 16 . . Tecmar VGA/AD
- 17h = T 132x25 . . . . . Tecmar VGA/AD
- = T 80x43 8x8 640x348 16 4 B800 Tseng ET4000 BIOS [10]
- = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
- 18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
- = T 132x25 . . mono . B000 Cirrus 5320 chipset
- = T 132x44 8x8 1056x352 mono . B000 Tseng Labs EVA
- = T 132x44 9x8 1188x352 4gray 2 B000 Tseng ET3000 chipset
- = T 132x44 8x8 1056x352 16/256 2 B000 Tseng ET4000 chipset
- = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
- = G 1024x768 16 . . Tecmar VGA/AD
- 19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
- = T 132x25 8x14 1056x350 mono . B000 Tseng Labs EVA
- = T 132x25 9x14 1188x350 4gray 4 B000 Tseng ET3000 chipset
- = T 132x25 8x14 1056x350 16/256 4 B000 Tseng ET4000 chipset
- = T 132x34 . . mono . B000 Cirrus 5320 chipset
- 1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
- = T 132x28 8x13 1056x364 mono . B000 Tseng Labs EVA
- = T 132x28 9x13 1188x364 4gray 4 B000 Tseng ET3000 chipset
- = T 132x28 8x13 1056x364 16/256 4 B000 Tseng ET4000 chipset
- = T 132x44 . . mono . B000 Cirrus 5320 chipset
- = G . . 640x350 256 . . Tecmar VGA/AD
- 1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
- = G . . 640x400 256 . . Tecmar VGA/AD
- 1Ch = T 132x25 . . . . . Cirrus 5320 chipset
- = T 132x30 9x16 1188x480 16 1 A000 Realtek RTVGA [12]
- = G . . 640x480 256 . . Tecmar VGA/AD
- 1Dh = T 132x43 . . . . . Cirrus 5320 chipset
- = T 132x43 9x11 1188x473 16 1 A000 Realtek RTVGA [12]
- = G . . 800x600 256 . . Tecmar VGA/AD
- 1Eh = T 132x44 . . . . . Cirrus 5320 chipset
- = T 132x60 9x8 1188x480 16 1 A000 Realtek RTVGA [12]
- 1Fh = G 100x75 8x8 800x600 16 1 A000 Realtek RTVGA
- 20h = T 132x25 . . 16 . . Avance Logic AL2101
- = G 40x16 . 240x128 mono . B000 HP 95LX/100LX/200LX
- = G 120x45 8x16 960x720 16 1 A000 Realtek RTVGA
- 21h = T 80x25 . . mono . B000 HP 200LX
- = T 132x30 . . 16 . . Avance Logic AL2101
- = T 132x44 9x9 1188x396 16/256K . B800 WD90C
- = T 132x44 9x9 1188x396 16 . B800 Diamond Speedstar 24X
- = T 132x60 . . 16 2 B800 Tseng ET4000 chipset [10]
- = G 80x43 8x8 720x348 mono . B000 DESQview 2.x+Hercules [4]
- = G 128x48 8x16 1024x768 16 1 A000 Realtek RTVGA [12]
- 22h = T 132x43 . . . . . Allstar Peacock (VGA)
- = T 132x43 . . 16 . . Avance Logic AL2101
- = T 132x44 8x8 1056x352 . . B800 Tseng Labs EVA
- = T 132x44 9x8 1188x352 16/256K 2 B800 Tseng ET3000 chipset
- = T 132x44 8x8 1056x352 16/256K 2 B800 Tseng ET4000 chipset
- = T 132x44 8x8 1056x352 . . . Ahead Systems EGA2001
- = T 132x44 8x8 1056x352 16 2 B800 Ahead B
- = T 132x44 8x9 1056x398 16 . . STB Lightspeed ET4000/W32P
- = T 132x44 . . 16 . . Orchid Prodesigner VGA
- = G 80x43 8x8 720x348 mono . B800 DESQview 2.x+Hercules [4]
- = G 96x64 8x16 768x1024 16 1 A000 Realtek RTVGA
- 23h = T 132x25 6x14 792x350 . . B800 Tseng Labs EVA
- = T 132x25 9x14 1188x350 16/256K 4 B800 Tseng ET3000 chipset
- = T 132x25 8x14 1056x350 16/256 4 B800 Tseng ET4000 chipset
- = T 132x25 8x14 1056x350 . . . Ahead Systems EGA2001
- = T 132x25 8x14 1056x350 16 4 B800 Ahead B
- = T 132x25 8x8 1056x200 16 . B800 ATI EGA Wonder,ATI VIP
- = T 132x25 . . . . . Cirrus 5320 chipset
- = T 132x28 . . . . . Allstar Peacock (VGA)
- = T 132x28 . . 16 . . Orchid Prodesigner VGA
- = T 132x60 . . 16 . . Avance Logic AL2101
- = G 128x48 8x16 1024x768 4 1 A000 Realtek RTVGA
- 24h = T 80x30 . . 16 . . Avance Logic AL2101
- = T 132x25 . . . . . Allstar Peacock (VGA)
- = T 132x25 . . 16 . . Orchid Prodesigner VGA
- = T 132x28 6x13 792x364 . . B800 Tseng Labs EVA
- = T 132x28 9x13 1188x364 16/256K 4 B800 Tseng ET3000 chipset
- = T 132x28 8x12 1056x336 16 1 B800 Ahead B
- = T 132x28 8x13 1056x364 16/256K 4 B800 Tseng ET4000 chipset
- = T 132x28 8x14 1056x392 16 . . STB Lightspeed ET4000/W32P
- = T 132x28 . . . . . Cirrus 5320 chipset
- = G 64x32 8x16 512x512 256 1 A000 Realtek RTVGA
- 25h = T 80x43 . . 16 . . Avance Logic AL2101
- = G 80x60 8x8 640x480 . . A000 Tseng Labs EVA
- = G 80x60 8x8 640x480 16/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 640x480 16 . . VEGA VGA
- = G 80x60 8x8 640x480 16 . A000 Orchid Prodesigner VGA
- = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
- = G . . 640x480 16 . . NEC GB-1
- = G . . 640x480 16 . . Cirrus 5320 chipset
- = G . . 640x400 256 . . Realtek RTVGA
- 26h = T 80x60 8x8 640x480 . . . Tseng Labs EVA
- = T 80x60 8x8 640x480 16/256K 3 B800 Tseng ET3000/4000 chipset
- = T 80x60 . . . . . Allstar Peacock (VGA)
- = T 80x60 . . 16 . . Orchid ProDesigner VGA
- = T 80x60 . . 16 . . Avance Logic AL2101
- = G 80x60 8x8 640x480 . . . Ahead Systems EGA2001
- = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
- = G . . 640x480 256 . . Realtek RTVGA
- 27h = T 132x25 8x8 1056x200 mono . B000 ATI EGA Wonder,ATI VIP
- = G . . 720x512 16 . . VEGA VGA
- = G . . 720x512 16 . . Genoa
- = G 100x75 8x8 800x600 256 1 A000 Realtek RTVGA [12]
- = G . . 960x720 16 . . Avance Logic AL2101
- 28h = T ???x??? . . . . . VEGA VGA
- = G . . 512x512 256 . . Avance Logic AL2101
- = G . . 1024x768 256 . . Realtek RTVGA (1meg)
- 29h = G . . 640x400 256 . . Avance Logic AL2101
- = G . . 800x600 16 . . VEGA VGA
- = G 100x37 8x16 800x600 16 . A000 Orchid
- = G . . 800x600 16 . A000 STB,Genoa,Sigma
- = G . . 800x600 16 . . Allstar Peacock (VGA)
- = G 100x37 8x16 800x600 16/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 800x600 ??? . . EIZO MDB10
- = G . . 800x600 16 . . Cirrus 5320 chipset
- = G NA . 800x600 16 . . Compaq QVision 1024/1280
- = G . . 1024x1024 256 . . Realtek RTVGA BIOS v3.C10
- 2Ah = T 100x40 . . . . . Allstar Peacock (VGA)
- = T 100x40 8x16 800x640 16 . . Orchid Prodesigner VGA
- = T 100x40 8x15 800x600 16/256K 4 B800 Tseng ET3000/4000 chipset
- = T 100x40 8x15 800x600 16 . . STB Lightspeed ET4000/W32P
- = G . . 640x480 256 . . Avance Logic AL2101
- = G . . 1280x1024 16 . . Realtek RTVGA
- 2Bh = G . . 800x600 16 . . Avance Logic AL2101
- 2Ch = G . . 800x600 256 . . Avance Logic AL2101
- 2Dh = G . . 640x350 256 . . VEGA VGA
- = G . . 640x350 256/256K . A000 Orchid, Genoa, STB
- = G 80x25 8x14 640x350 256/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 640x350 256 . . Cirrus 5320 chipset
- = G 80x25 8x14 640x350 256 . . STB Lightspeed ET4000/W32P
- = G . . 768x1024 16 . . Avance Logic AL2101
- 2Eh = G . . 640x480 256 . . VEGA VGA
- = G 80x30 8x16 640x480 256/256K . A000 Orchid
- = G . . 640x480 256/256K . A000 STB,Genoa,Sigma
- = G 80x30 8x16 640x480 256/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 640x480 256/256K . . Compaq QVision 1024/1280
- = G . . 768x1024 256 . . Avance Logic AL2101
- 2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
- = G . . 720x512 256 . . VEGA VGA
- = G . . 720x512 256 . . Genoa
- = G 80x25 8x16 640x400 256/256K 1 A000 Tseng ET4000 chipset
- = G . . 1024x768 4 . . Avance Logic AL2101
- 30h = G . . 800x600 256 . . VEGA VGA
- = G 100x37 8x16 800x600 256/256K . A000 Orchid
- = G . . 800x600 256/256K . A000 STB,Genoa,Sigma
- = G . . 720x350 2 . . 3270 PC
- = G . . 800x600 256 . . Cardinal
- = G . . . . . B800 AT&T 6300
- = G 100x37 8x16 800x600 256/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 1024x768 16 . . Avance Logic AL2101
- 31h = G . . 1024x768 256 . . Avance Logic AL2101
- 32h = T 80x34 8x10 . 16 4 B800 Ahead B (Wizard/3270)
- = G . . 640x480 256 . . Compaq QVision 1024/1280
- 33h = T 132x44 8x8 . 16 . B800 ATI EGA Wonder,ATI VIP
- = T 80x34 8x8 . 16 4 B800 Ahead B (Wizard/3270)
- 34h = T 80x66 8x8 . 16 4 B800 Ahead B (Wizard/3270)
- = G . . 800x600 256 . . Compaq QVision 1024/1280
- 36h = G . . 960x720 16 . . VEGA VGA, STB
- = G . . 960x720 16 . A000 Tseng ET3000 only
- = G . . 1280x1024 16 . . Avance Logic AL2101
- 37h = T 132x44 8x8 . mono . B800 ATI EGA Wonder,ATI VIP
- = G . . 1024x768 16 . . VEGA VGA
- = G 128x48 8x16 1024x768 16 . A000 Orchid
- = G . . 1024x768 16 . A000 STB,Genoa,Sigma
- = G . . 1024x768 16 . . Definicon
- = G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000 chipset
- = G . . 1024x768 16 . . Compaq QVision 1024/1280
- = G . . 1280x1024 256 . . Avance Logic AL2101
- 38h = G . . 1024x768 256 . . STB VGA/EM-16 Plus (1MB)
- = G 128x48 8x16 1024x768 256/256K 1 A000 Tseng ET4000 chipset
- = G . . 1024x768 256 . . Orchid ProDesigner II
- = G . . 1024x768 256 . . Compaq QVision 1024/1280
- 39h = G . . 1280x1024 16 . . Compaq QVision 1280
- 3Ah = G . . 1280x1024 256 . . Compaq QVision 1280
- 3Bh = G . . 512x480 256 . . Compaq QVision 1024/1280
- 3Ch = G . . 640x400 64K . . Compaq QVision 1024/1280
- 3Dh = G . . 1280x1024 16 . . Definicon
- = G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [1,7]
- 3Eh = G . . 1280x961 16 . . Definicon
- = G . . 640x480 64K . . Compaq QVision 1024/1280
- 3Fh = G . . 1280x1024 256 . . Hercules ??? (ET4000W32)
- = G . . 800x600 64K . . Compaq QVision 1024/1280
- 40h = T 80x43 . . . . . VEGA VGA, Tecmar VGA/AD
- = T 80x43 . . . . . Video7 V-RAM VGA
- = T 80x43 . . . . . Tatung VGA
- = T 100x30 . . 16 . . MORSE VGA
- = T 100x30 . . . . . Cirrus 510/520 chipset
- = T 80x25 . 720x350 mono . . Genoa SuperEGA BIOS 3.0+
- = G . . 320x200 64K . . Avance Logic AL2101
- = G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
- = G 80x25 8x16 640x400 2 1 B800 Olivetti Quaderno
- = G 80x25 8x16 640x400 2 1 B800 Compaq Portable
- = G . . 1024x768 64K . . Compaq QVision 1280
- 41h = T 132x25 . . . . . VEGA VGA
- = T 132x25 . . . . . Tatung VGA
- = T 132x25 . . . . . Video7 V-RAM VGA
- = T 100x50 . . 16 . . MORSE VGA
- = T 100x50 . . . . . Cirrus 510/520 chipset
- = T 80x34 9x14 720x476 16/256K . B800 WD90C
- = T 80x34 9x14 . 16 . B800 Diamond Speedstar 24X
- = G . . 512x512 64K . . Avance Logic AL2101
- = G . . 640x200 16 1 . AT&T 6300
- = G 80x25 . 720x348 mono . B000 Genoa SuperEGA BIOS 3.0+
- 42h = T 132x43 . . . . . VEGA VGA
- = T 132x43 . . . . . Tatung VGA
- = T 132x43 . . . . . Video7 V-RAM VGA
- = T 80x34 9x10 . 4 4 B800 Ahead B (Wizard/3270)
- = T 100x60 . . 16 . . MORSE VGA
- = T 100x60 . . . . . Cirrus 510/520 chipset
- = G 80x25 8x16 640x400 16 . . AT&T 6300, AT&T VDC600
- = G . . 640x400 64K . . Avance Logic AL2101
- = G 80x25 . 720x348 mono . B800 Genoa SuperEGA BIOS 3.0+
- 43h = T 80x60 . . . . . VEGA VGA
- = T 80x60 . . . . . Tatung VGA
- = T 80x60 . . . . . Video7 V-RAM VGA
- = T 80x45 9x8 . 4 4 B800 Ahead B (Wizard/3270)
- = T 100x75 . . 16 . . MORSE VGA
- = T 80x29 . 720x348 mono . . Genoa SuperEGA BIOS 3.0+
- = G . . 640x200 of 640x400 viewport AT&T 6300 (unsupported)
- = G . . 640x480 64K . . Avance Logic AL2101
- 44h = disable VDC and DEB output . AT&T 6300
- = T 100x60 . . . . . VEGA VGA
- = T 100x60 . . . . . Tatung VGA
- = T 100x60 . . . . . Video7 V-RAM VGA
- = T 80x32 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
- = G . . 800x600 64K . . Avance Logic AL2101
- 45h = T 132x28 . . . . . Tatung VGA
- = T 132x28 . . . . . Video7 V-RAM VGA
- = T 80x44 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
- 46h = T 132x25 8x14 . mono . . Genoa 6400
- = T 132x25 9x14 . mono . . Genoa SuperEGA BIOS 3.0+
- = G 100x40 8x15 800x600 2 . . AT&T VDC600
- 47h = T 132x29 8x12 . mono . . Genoa 6400
- = T 132x29 9x12 . mono . . Genoa SuperEGA BIOS 3.0+
- = T 132x28 9x16 1188x448 16/256K . B800 WD90C
- = T 132x28 9x16 . 16 . B800 Diamond Speedstar 24X
- = G 100x37 8x16 800x600 16 . . AT&T VDC600
- 48h = T 132x32 8x12 . mono . . Genoa 6400
- = T 132x32 9x11 . mono . . Genoa SuperEGA BIOS 3.0+
- = G 80x50 8x8 640x400 2 . B800 AT&T 6300, AT&T VDC600
- = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno
- 49h = T 132x44 8x8 . mono . . Genoa 6400
- = T 132x44 9x8 . mono . . Genoa SuperEGA BIOS 3.0+
- = G 80x30 8x16 640x480 . . . Lava Chrome II EGA
- 4Dh = T 120x25 . . . . . VEGA VGA
- = G . . 512x480 16M . . Compaq QVision 1024/1280
- 4Eh = T 120x43 . . . . . VEGA VGA
- = T 80x60 8x8 . 16/256K . B800 Oak OTI-067/OTI-077 [8]
- = G . . 640x400 16M . . Compaq QVision 1024/1280
- 4Fh = T 132x25 . . . . . VEGA VGA
- = T 132x60 . . . . . some Oak Tech VGA [8]
- = G . . 640x480 16M . . Compaq QVision 1280
- 50h = T 80x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
- = T 80x34 . . . . . Lava Chrome II EGA
- = T 80x43 . . mono . . VEGA VGA
- = T 132x25 9x14 . mono . . Ahead Systems EGA2001
- = T 132x25 9x14 . 4 4 B800 Ahead B
- = T 132x25 8x14 . 16 8 B800 OAK Technologies VGA-16
- = T 132x25 8x14 . 16/256K . B800 Oak OTI-037/067/077 [8]
- = T 132x25 8x14 1056x350 16 8 B800 UM587 chipset
- = T 132x30 . . 16 . . MORSE VGA
- = T 132x30 . . . . . Cirrus 510/520 chipset
- = G 80x30 8x16 640x480 16 . . Paradise EGA-480
- = G 80x30 8x16 640x480 16 . . NEL Electronics BIOS
- = G . . 640x480 mono??? . . Taxan 565 EGA
- = G 40x25 8x8 320x200 . . . Genoa SuperEGA BIOS 3.0+
- 51h = T 80x30 8x16 . . . . Paradise EGA-480
- = T 80x30 9x16 . . . . NEL Electronics BIOS
- = T 80x30 . . . . . Lava Chrome II EGA
- = T 80x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x25 . . mono . . VEGA VGA
- = T 132x28 9x12 . 4 4 B800 Ahead B
- = T 132x43 8x8 . 16 5 B800 OAK Technologies VGA-16
- = T 132x43 8x8 . 16/256K . B800 Oak OTI-037/067/077
- = T 132x43 8x8 1056x344 16 5 B800 UM587 chipset
- = T 132x50 . . 16 . . MORSE VGA
- = T 132x50 . . . . . Cirrus 510/520 chipset
- = G 80x34 8x14 640x480 16 . . ATI EGA Wonder
- = G 80x25 8x8 640x200 . . . Genoa SuperEGA BIOS 3.0+
- 52h = T 80x60 . . . . . Lava Chrome II EGA
- = T 80x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x43 . . mono . . VEGA VGA
- = T 132x44 9x8 . mono . . Ahead Systems EGA2001
- = T 132x44 9x8 . 4 2 B800 Ahead B
- = T 132x60 . . 16 . . MORSE VGA
- = T 132x60 . . . . . Cirrus 510/520 chipset
- = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji&superimpose)
- = G 94x29 8x14 752x410 16 . . ATI EGA Wonder
- = G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
- = G 100x75 8x8 800x600 16 . A000 Oak OTI-037 chipset [8]
- = G 100x37 8x16 800x600 16 . A000 Oak OTI-067/077 chips [8]
- = G 100x75 8x8 800x600 16 . A000 UM587 chipset
- = G 128x30 8x16 1024x480 16 . . NEL Electronics BIOS
- 53h = T 80x25 8x16 . . . . NEL Electronics BIOS
- = T 80x60 . . 16 . . MORSE VGA
- = T 80x60 . . . . . Cirrus 510/520 chipset
- = T 132x25 8x14 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x43 . . . . . Lava Chrome II EGA
- = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji, no superimp.)
- = G . . 640x480 256 . . Oak VGA
- = G 80x30 8x16 640x480 256 . A000 Oak OTI-067/OTI-077 [8]
- = G 100x40 8x14 800x560 16 . . ATI EGA Wonder,ATI VIP
- = G . . . . . . AX PC
- 54h = T 132x25 . . . . . Lava Chrome II EGA
- = T 132x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x43 8x8 . . . . Paradise EGA-480
- = T 132x43 8x8 . . . . NEL Electronics BIOS
- = T 132x43 7x9 . 16/256K . B800 Paradise VGA
- = T 132x43 8x9 . 16/256K . B800 Paradise VGA on multisync
- = T 132x43 . . . . . Taxan 565 EGA
- = T 132x43 . . . . . AST VGA Plus
- = T 132x43 . . . . . Hewlett-Packard D1180A
- = T 132x43 7x9 . 16 . . AT&T VDC600
- = T 132x43 9x9 1188x387 16/256K . B800 WD90C
- = T 132x43 9x9 1188x387 16/256K . B800 Diamond Speedstar 24X
- = T 132x43 9x9 1188x387 16/256K . B800 Diamond Stealth 24
- = T 132x43 8x8 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
- = T 132x50 8x8 . 16 . A000 NCR 77C22 [9]
- = G 100x42 8x14 800x600 16 . A000 ATI EGA Wonder, VGA Wonder
- = G 100x42 8x14 800x600 16 . A000 ATI Ultra 8514A, ATI XL
- = G . . 800x600 256 . A000 Oak VGA
- = G 100x37 8x16 800x600 256 . A000 Oak OTI-067/077 chips [8]
- 55h = T 80x66 8x8 . 16/256K . A000 ATI VIP
- = T 132x25 8x14 . . . . Paradise EGA-480
- = T 132x25 8x14 . . . . NEL Electronics BIOS
- = T 132x25 7x16 . 16/256K . B800 Paradise VGA
- = T 132x25 8x16 . 16/256K . B800 Paradise VGA on multisync
- = T 132x25 . . . . . Taxan 565 EGA
- = T 132x25 . . . . . AST VGA Plus
- = T 132x25 . . . . . Hewlett-Packard D1180A
- = T 132x25 7x16 . 16 . . AT&T VDC600
- = T 132x25 8x16 . 16 . A000 NCR 77C22 [9]
- = T 132x25 9x16 1188x400 16/256K . B800 WD90C
- = T 132x25 9x16 1188x400 16/256K . B800 Diamond Speedstar 24X
- = T 132x25 9x16 1188x400 16/256K . B800 Diamond Stealth 24
- = T 132x25 8x14 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
- = T 132x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
- = G 94x29 8x14 752x410 . . . Lava Chrome II EGA
- = G 128x48 8x16 1024x768 16/256K . A000 ATI VGA Wonder v4+ [5]
- = G . . 1024x768 16/256K . . ATI VGA Wonder Plus
- = G . . 1024x768 16/256K . . ATI Ultra 8514A,ATI XL
- = G 128x48 8x16 1024x768 4 . A000 Oak OTI-067/077 chips [8]
- 56h = T 132x43 8x8 . 3??? 2 B000 NSI Smart EGA+
- = T 132x43 7x9 . 4 . B000 Paradise VGA
- = T 132x43 8x9 . 4 . B000 Paradise VGA on multisync
- = T 132x43 . . mono . . Taxan 565 EGA
- = T 132x43 7x9 . 2 . . AT&T VDC600
- = T 132x43 9x8 . . . . NEL Electronics BIOS
- = T 132x50 8x8 . 4 . A000 NCR 77C22 [9]
- = T 132x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
- = G . . 1024x768 16 . A000 Oak VGA
- = G 128x48 8x16 1024x768 16 . A000 Oak OTI-067/077 chips [8]
- 57h = T 132x25 8x14 . 3??? 4 B000 NSI Smart EGA+
- = T 132x25 7x16 . 4 . B000 Paradise VGA
- = T 132x25 8x16 . 4 . B000 Paradise VGA on multisync
- = T 132x25 9x14 . . . . NEL Electronics BIOS
- = T 132x25 . . mono . . Taxan 565 EGA
- = T 132x25 7x16 . 2 . . AT&T VDC600
- = T 132x25 9x14 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x25 8x16 . 4 . A000 NCR 77C22 [9]
- = G 96x48 8x16 768x1024 16 . A000 Oak OTI-067/077 chips [8]
- 58h = T 80x33 8x14 . 16 . B800 ATI EGA Wonder,ATI VIP
- = T 80x32 9x16 . 16 . . Genoa 6400
- = T 80x43 8x8 . . . . NEL Electronics BIOS
- = T 132x30 9x16 . 16/256K . B800 Trident TVGA 8800/8900
- = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA
- = G 100x75 8x8 800x600 16 . . AT&T VDC600
- = G 100x75 8x8 800x600 16 . A000 NCR 77C22 [9]
- = G 100x75 8x8 800x600 16 . . Diamond Speedstar 24X
- = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA, WD90C
- = G . . 800x600 16 . . AST VGA Plus, Compaq VGA
- = G . . 800x600 16 . . Dell VGA
- = G . . 800x600 16 . . Hewlett-Packard D1180A
- = G . . 800x600 ??? . . ELT VGA PLUS 16
- = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
- = G 160x64 8x16 1280x1024 16 . A000 Oak OTI-077 chipset [8]
- 59h = T 80x43 9x8 . . . . NEL Electronics BIOS
- = T 80x66 8x8 . 16/256K . A000 ATI VIP
- = T 132x43 9x11 . 16/256K . B800 Trident TVGA 8800/8900
- = G 100x75 8x8 800x600 2 . A000 Paradise VGA
- = G 100x75 8x8 800x600 2 . . AT&T VDC600
- = G . . 800x600 2 . . AST VGA Plus, Compaq VGA
- = G . . 800x600 2 . . Dell VGA
- = G . . 800x600 2 . . Hewlett-Packard D1180A
- = G 100x75 8x8 800x600 2 . A000 NCR 77C22 [9]
- = G 128x48 8x16 1024x768 256 . A000 Oak OTI-077 chipset [8]
- 5Ah = T 80x60 8x8 . . . . NEL Electronics BIOS
- = T 132x60 9x8 . 16/256K . B800 Trident TVGA 8800/8900
- = G 128x48 8x16 1024x768 2 . A000 NCR 77C22 [9]
- 5Bh = T 80x30 8x16 . . . B800 ATI VGA Wonder (undoc)
- = G . . 640x350 256 . . Genoa 6400
- = G 80x25 8x16 640x400 32K . A000 Oak OTI-067/077 chips [8]
- = G . . 800x600 16 . . Maxxon, SEFCO TVGA, Imtec
- = G 100x75 8x8 800x600 16/256K . A000 Trident TVGA 8800, 8900
- = G . . 800x600 ??? . . Vobis MVGA
- = G 100x37 8x16 800x600 . . . NEL Electronics BIOS
- = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [1,9]
- 5Ch = T 100x37 8x16 . . . . NEL Electronics BIOS
- = G . . 640x400 256 . . Logix, ATI Prism Elite
- = G . . 640x400 256 . . Maxxon, SEFCO TVGA, Imtec
- = G 80x25 8x16 640x400 256/256K . A000 Zymos Poach, Hi Res 512
- = G 80x25 8x16 640x400 256/256K . A000 Trident TVGA 8800/8900
- = G 80x30 8x16 640x480 256 . . Genoa 6400
- = G 80x30 8x16 640x480 32K . A000 Oak OTI-077 chipset [8]
- = G 100x75 8x8 800x600 256 . A000 NCR 77C22 [9]
- = G 100x75 8x8 800x600 256/256K . A000 WD90C
- = G 100x75 8x8 800x600 256/256K . A000 Diamond Speedstar 24X
- = G 100x37 8x16 800x600 256/256K . A000 Cirrus CL-GD5420/5422/5426
- 5Dh = T 100x75 8x8 . . . . NEL Electronics BIOS
- = G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
- = G . . 640x480 256 . . Logix, ATI Prism Elite
- = G . . 640x480 256 . . Maxxon, SEFCO TVGA, Imtec
- = G 80x30 8x16 640x480 256/256K . A000 Zymos Poach, Hi Res 512
- = G 80x30 8x16 640x480 256/256K . A000 Trident TVGA 8800 (512K)
- = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [9]
- = G 128x48 8x16 1024x768 16/256K . A000 WD90C
- = G 128x48 8x16 1024x768 16 . . Diamond Speedstar 24X
- = G 128x48 8x16 1024x768 16/256K . A000 Cirrus CL-GD5420/5422/5426
- 5Eh = G . . 640x400 256 . . Paradise VGA,VEGA VGA
- = G . . 640x400 256 . . AST VGA Plus, NCR 77C22
- = G . . 640x400 256 . . Compaq VGA, Dell VGA
- = G 80x25 8x16 640x400 256 . . AT&T VDC600
- = G 80x25 8x16 640x400 256 . A000 NCR 77C22 [9]
- = G 80x25 8x16 640x400 256/256K . A000 WD90C
- = G 80x25 8x16 640x400 256/256K . A000 Diamond Speedstar 24X
- = G . . 800x600 16 . . Logix, ATI Prism Elite
- = G 100x37 8x16 800x600 16 . . NEL Electronics BIOS
- = G 100x75 8x8 800x600 256 . . Genoa 6400
- = G 100x75 8x8 800x600 256/256K . A000 Zymos Poach, Trident 8900
- = G 100x75 8x8 800x600 256/256K . A000 Hi Res 512
- 5Fh = G 80x25 8x16 640x400 64K . . STB Lightspeed ET4000/W32P
- = G . . 640x480 256 . . Paradise VGA
- = G . . 640x480 256 . . AST VGA Plus, NCR 77C22
- = G . . 640x480 256 . . Compaq VGA, Dell VGA
- = G . . 640x480 256 . . Hewlett-Packard D1180A
- = G 80x30 8x16 640x480 256 . . AT&T VDC600 (512K)
- = G 80x30 8x16 640x480 256 . A000 NCR 77C22 [9]
- = G 80x30 8x16 640x480 256/256K . A000 WD90C
- = G 80x30 8x16 640x480 256/256K . A000 Diamond Speedstar 24X
- = G 80x30 8x16 640x480 256/256K . A000 Cirrus CL-GD5420/5422/5426
- = G . . 1024x768 16 . . Logix, ATI Prism Elite
- = G . . 1024x768 16 . . Maxxon, Imtec
- = G 128x48 8x16 1024x768 16 . . Genoa 6400
- = G 128x48 8x16 1024x768 16/256K . A000 Zymos Poach, Hi Res 512
- = G 128x48 8x16 1024x768 16/256K . A000 Trident TVGA 88/8900 512K
- 60h = T 132x25 8x14 . 16/64 8 B800 Quadram Ultra VGA
- = T 132x25 8x14 . 16 . . Genoa 6400
- = T 132x25 8x14 . 16 . . Genoa SuperEGA BIOS 3.0+
- = T 132x25 . . . . . Cirrus 5320 chipset
- = T 132x25 . . 16 . . Chips&Technologies chipset
- = G 80x??? . ???x400 . . . Corona/Cordata BIOS 4.10+
- = G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
- = G . . 752x410 . . . VEGA VGA
- = G . . 752x410 16 . . Tatung VGA
- = G . . 752x410 16 . . Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 4/256K . A000 Trident TVGA 8900
- = G 128x48 8x16 1024x768 256/256K . A000 WD90C
- = G 128x48 8x16 1024x768 256/256K . A000 Diamond Speedstar 24X
- = G 128x48 8x16 1024x768 256/256K . A000 Cirrus CL-GD5420/5422/5426
- 61h = T 132x29 8x12 . 16/64 8 B800 Quadram Ultra VGA
- = T 132x29 8x8 . 16 . . Genoa 6400
- = T 132x29 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
- = T 132x50 . . . . . Cirrus 5320 chipset
- = T 132x50 . . 16 . . Chips&Technologies chipset
- = G . . ???x400 . . . Corona/Cordata BIOS 4.10+
- = G 80x25 8x16 640x400 256 . A000 ATI VGA Wonder,VGA Wonder+
- = G 80x25 8x16 640x400 256 . A000 ATI Ultra 8514A,ATI XL
- = G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
- = G . . 720x540 . . . VEGA VGA
- = G . . 720x540 16 . . Tatung VGA
- = G . . 720x540 16 . . Video7 V-RAM VGA
- = G 96x64 8x16 768x1024 16/256K . A000 Trident TVGA 88/8900 512K
- = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [1,9]
- 62h = T 132x32 8x11 . 16/64 6 B800 Quadram Ultra VGA
- = T 132x32 8x12 . 16 . . Genoa 6400
- = T 132x32 8x11 . 16 . . Genoa SuperEGA BIOS 3.0+
- = G . . 640x450 16 . . Cirrus 510/520 chipset
- = G 80x30 8x16 640x480 256 . A000 ATI VGA Wonder,VGA Wonder+
- = G 80x30 8x16 640x480 256 . A000 ATI Ultra 8514A,ATI XL
- = G 80x30 8x16 640x480 32K . A000 WD90C
- = G 80x30 8x16 640x480 32K . A000 Diamond Speedstar 24X
- = G . . 800x600 . . . VEGA VGA
- = G . . 800x600 16 . . Tatung VGA
- = G . . 800x600 16 . . Video7 V-RAM VGA
- = G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
- = G 128x48 8x16 1024x768 256/256K . A000 Trident TVGA 8900, Zymos
- = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [9]
- 63h = T 132x44 8x8 . 16/64 5 B800 Quadram Ultra VGA
- = T 132x44 8x8 . 16 . . Genoa 6400
- = T 132x44 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
- = G . . 720x540 16 . . MORSE VGA
- = G . . 720x540 16 . . Cirrus 510/520 chipset
- = G 100x42 8x14 800x600 256 . A000 ATI VGA Wonder,VGA Wonder+
- = G 100x42 8x14 800x600 256 . A000 ATI Ultra 8514A,ATI XL
- = G . . 800x600 32K . A000 WD90C
- = G . . 800x600 32K . A000 Diamond Speedstar 24X
- = G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
- = G . . 1024x768 2 . . Video7 V-RAM VGA
- 64h = T 132x60 8x8 . 16 . . Genoa 6400
- = G . . 640x480 64K . A000 Cirrus CL-GD 5422/5426
- = G . . 800x600 16 . . MORSE VGA
- = G . . 800x600 16 . . Cirrus 510/520 chipset
- = G . . 800x600 ??? . . SAMPO-Mira VGA
- = G . . 1024x768 4 . . Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 256 . A000 ATI VGA Wonder Plus,ATI XL
- = G 160x64 8x16 1280x1024 16/256K . A000 WD90C [1]
- = G 160x64 8x16 1280x1024 16/256K . A000 Diamond Speedstar 24X [1]
- 65h = G . . 800x600 64K . A000 Cirrus CL-GD 5422/5426
- = G . . 1024x768 16 . . Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 16 . A000 ATI VGA Wonder
- 66h = T 80x50 8x8 640x400 16/256K . B800 WD90C
- = T 80x50 8x8 . 16 . B800 Diamond Speedstar 24X
- = G . . 640x400 256 . . Tatung VGA
- = G . . 640x400 256 . . Video7 V-RAM VGA
- = G . . 640x480 32K . A000 Cirrus CL-GD 5422/5426
- 67h = T 80x43 8x8 640x344 16/256K . B800 WD90C
- = T 80x43 8x8 . 16 . B800 Diamond Speedstar 24X
- = G . . 640x480 256 . . Video7 V-RAM VGA
- = G . . 800x600 32K . A000 Cirrus CL-GD 5422/5426
- = G 128x48 8x16 1024x768 4 . A000 ATI VGA Wonder
- = G 160x64 8x16 1280x1024 16 . A000 NCR 77C22 [1,9]
- 69h = T 132x50 8x8 1056x400 16/256K . B800 WD90C
- = T 132x50 8x8 . 16 . B800 Diamond Speedstar 24X
- = G . . 720x540 256 . . Video7 V-RAM VGA
- 6Ah = G . . 800x600 16 . A000 VESA standard interface
- = G 100x75 8x8 800x600 16 . . Genoa 6400
- = G 100x75 8x8 800x600 16 . . Diamond Speedstar 24X
- = G . . 800x600 16 . A000 Ahead A
- = G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) (see 71h)
- = G . . 800x600 16 . . Zymos Poach, Hi Res 512
- = G . . 800x600 16 . . Epson LT-386SX in CRT Mode
- = G . . 800x600 16 . . Compuadd 316SL in CRT Mode
- = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
- = G 100x42 8x14 800x600 . . A000 ATI VGA Wonder (undoc)
- = G . . 800x600 16 . . Chips&Technologies chipset
- = G 160x64 8x16 1280x1024 256 . A000 NCR 77C22 [1,9]
- 6Bh = T 100x37 8x16 . 16 . . Genoa 6400
- = T 100x37 8x16 . . . . NEL Electronics BIOS
- 6Ch = G 80x30 8x16 640x480 16M . A000 Trident 8900CL/BIOS C04
- = G 100x75 8x8 800x600 256 . . Genoa 6400
- = G 160x60 8x16 1280x960 16/256K . A000 WD90C [1]
- = G 160x60 8x16 1280x960 16/256K . A000 Diamond Speedstar 24X [1]
- = G 160x64 8x16 1280x1024 16/256K . A000 Cirrus CL-GD 5422/5426 [1]
- 6Dh = G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
- = G 160x64 8x16 1280x1024 256/256K . A000 Cirrus CL-GD 5422/5426 [1]
- 6Eh = G 40x25 8x8 320x200 64K . A000 Cirrus CL-GD 5422/5426
- 6Fh = G 40x25 8x8 320x200 16M . A000 Cirrus CL-GD 5422/5426
- 70h = extended mode set (see AX=0070h) . Everex Micro Enhancer EGA
- = T 40x25 8x8 . 16 8 B800 Quadram (CGA double scan)
- = T 40x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
- = G . . 360x480 256 . . Cirrus 510/520/5320 chips
- = G 90x28 8x14 720x392 16 1 A000 Ahead B
- = G . . 800x600 16 . . C&T chipset, Cardinal
- = G . . 1024x480 256 . . Trident 8900C BIOS C3.0
- 71h = T 80x25 8x8 . 16 8 B800 Quadram (CGA double scan)
- = T 80x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
- = G . . 528x400 256 . . Cirrus 510/520 chipset
- = G 80x30 8x16 640x480 16M . A000 Cirrus CL-GD 5422/5426
- = G 100x35 8x16 800x600 16/64 . A000 NSI Smart EGA+
- = G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
- = G . . 960x720 16 . . C&T chipset, Cardinal
- = G . . 1024x480 256 . . Trident 8900C BIOS C3.0
- 72h = T 80x60 8x8 . 16 . B800 Quadram Ultra VGA
- = T 80x60 8x8 . 16 . B800 Genoa 6400
- = T 80x60 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
- = G . . 528x480 256 . . Cirrus 510/520 chipset
- = G 80x25 8x19 640x480 16 1 A000 DOS/V w/ any VGA
- = G . . 640x480 32K . A000 ATI
- = G . . 640x480 16M . A000 WD90C
- = G . . 640x480 16M . A000 Diamond Speedstar 24X
- = G . . 1024x768 16 . . C&T chipset, Cardinal
- 73h = G 80x60 8x8 640x480 16 . A000 Quadram Ultra VGA
- = G 80x60 8x8 640x480 16 . . Genoa 6400
- = G 80x60 8x8 640x480 16 . . Genoa SuperEGA BIOS 3.0+
- = T 80x25 8x19 640x475 16 1 none DOS/V, emulated in VGA graph
- 74h = T 80x66 8x8 . 16 . B800 Quadram Ultra VGA
- = T 80x66 8x8 . 16 . B800 Genoa 6400
- = T 80x66 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
- = G . . 640x400 2 . B800 Toshiba 3100 AT&T mode
- = G 80x30 8x16 640x480 32K . A000 Trident 8900C/BIOS C03
- = G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
- = G . . 1024x768 64K . A000 Cirrus CL-GD 5422/5426 [1]
- 75h = G 80x30 8x16 640x480 64K . A000 Trident 8900C/BIOS C03
- = G 80x66 . 640x528 16??? . A000 Quadram Ultra VGA
- = G 80x66 . 640x528 16 . . Genoa SuperEGA BIOS 3.0+
- = G 128x48 8x16 1024x768 4 1 A000 Ahead B
- 76h = T 94x29 8x14 . 16 . B800 Quadram Ultra VGA
- = T 94x29 8x14 . . . . Genoa SuperEGA BIOS 3.0+
- = G 100x75 8x8 800x600 32K . A000 Trident 8900C/BIOS C03
- = G 128x48 8x16 1024x768 2 1 A000 Ahead B
- 77h = G 94x29 . 752x410 16??? . A000 Quadram Ultra VGA
- = G 94x29 . 752x410 16 . . Genoa SuperEGA BIOS 3.0+
- = G 100x75 8x8 800x600 64K . A000 Trident 8900C/BIOS C03
- 78h = T 100x37 8x16 . 16 . . Genoa 6400
- = T 100x75 8x8 . 16 . B800 Quadram Ultra VGA
- = T 100x75 8x8 . . . . Genoa SuperEGA BIOS 3.0+
- = G . . 640x400 256 . . STB VGA/EM-16 Plus
- = G . . 640x400 256 . . Cardinal, C&T chipset
- = G . . 640x400 256 . . Cirrus 5320 chipset
- 79h = G . . 640x480 256 . . Cardinal, C&T chipset
- = G 100x75 . 800x600 16??? . A000 Quadram Ultra VGA
- = G 100x75 8x8 800x600 16 . . Genoa SuperEGA BIOS 3.0+
- = G 100x75 8x8 800x600 16 . . Genoa 6400
- 7Ah = T 114x60 8x8 . 16 . B800 Quadram Ultra VGA
- = T 114x60 8x8 . . . . Genoa SuperEGA BIOS 3.0+
- = G . . 720x540 256 . . C&T chipset, Cardinal
- 7Bh = G . . 800x600 256 . . C&T chipset, Cardinal
- = G 114x60 . 912x480 16??? . A000 Quadram Ultra VGA
- = G . . 912x480 16 . . Genoa SuperEGA BIOS 3.0+
- 7Ch = G . . 512x512 16 . . Genoa
- = G . . 800x600 256 . . C&T 82C453 chipset
- 7Dh = G 64x32 8x16 512x512 256 . . Genoa
- 7Eh = special mode set (see AX=007Eh) . Paradise VGA, AT&T VDC600
- = G 80x25 8x16 640x400 256 . . Genoa 6400
- = G . . 1024x768 256 . . C&T 82C453 chipset
- = G 90x43 . . mono . B000 HERCULES.COM on HGC [14]
- 7Fh = special function set (see AX=007Fh) . Paradise VGA, AT&T VDC600
- = G 128x48 8x16 1024x768 4 . . Genoa 6400
- = G 90x29 . . mono . B000 HERCULES.COM on HGC [14]
- 82h = T 80x25 . . B&W . . AT&T VDC overlay mode [6]
- 83h = T 80x25 . . . . . AT&T VDC overlay mode [6]
- 86h = G . . 640x200 B&W . . AT&T VDC overlay mode [6]
- 88h = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
- C0h = G . . 640x400 2/prog palette . AT&T VDC overlay mode [6]
- = G . . 640x400 2/prog palette . Olivetti Quaderno overlay
- C4h = disable output . . . . AT&T VDC overlay mode [6]
- C8h = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno overlay
- D0h = G . . 640x400 2 . B800 DEC VAXmate AT&T mode
- Notes:
- [1] interlaced only
- [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
- SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
- otherwise to mode 23h, thus selecting the appropriate (monochrome or
- color) 132x25 character mode.
- for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
- resident
- [3] early XGA boards support 132-column text but do not have this BIOS mode
- [4] DESQview intercepts calls to change into these two modes (21h is page 0,
- 22h is page 1) even if there is no Hercules graphics board installed
- [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
- [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
- 40h, or 44h
- [7] BIOS text support is broken in this undocumented mode; scrolling moves only
- about 1/3 of the screen (and does even that portion incorrectly), while
- screen clears only clear about 3/4.
- [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
- may choose to use only partially or not at all; thus, not all Oak boards
- support all "Oak" modes listed here
- [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
- precluding the use of a monochrome adapter in the same system
- [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
- v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
- 09/14/90 version
- [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
- installation check for HERKULES.COM is the signature "Herkules" two bytes
- beyond the INT 10 handler
- [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
- 21h or 27h; this version of the BIOS also sets the BIOS data area
- incorrectly for extended text modes, resulting in scrolling after only
- 24 lines (the VMODE.EXE utility does set the data area correctly)
- [13] The Tandy 1000SL/TL BIOS does not actually support this mode
- [14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
- graphics cards by Soft Warehouse, Inc. Its installation check is to
- test whether the word preceding the INT 10 handler is 4137h.
- [15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
- Tutelman) may be changed by a command-line switch; the 90x43
- character-cell mode's number is always one higher than the 90x29 mode
- (whose default is mode 08h)
- Index: video modes
- Index: installation check;HERKULES|installation check;HERCULES.COM
- --------V-100070-----------------------------
- INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
- AX = 0070h
- BL = mode (see #0010)
- Desc: specify a proprietary display mode on the Everex Micro Enhancer or
- Viewpoint video adapters
- SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
-
- (Table 0010)
- Values for Everex video mode:
- text/ text pixel pixel colors disply scrn monitor adapter
- grph resol box resolution pages addr
- 00h = G . . 640x480 16 . . multisync EGA,VGA
- 01h = G . . 752x410 16 . . multisync EGA,VGA
- 02h = G . . 800x600 16 . . multisync EGA,VGA
- 03h = T 80x34 . . . . . multisync EGA,VGA
- 04h = T 80x60 . . . . . multisync EGA,VGA
- 05h = T 94x29 . . . . . multisync EGA only
- 06h = T 94x51 . . . . . multisync EGA only
- 07h = T 100x43 8x14 . 16 . . . VGA only
- 08h = T 100x75 8x8 . 16 . . . VGA only
- 09h = T 80x44 . . . . . EGA EGA only
- 0Ah = T 132x25 . . . . . EGA EGA,VGA
- 0Bh = T 132x44 . . . . . EGA EGA,VGA
- 0Ch = T 132x25 . . . . . CGA EGA only
- 0Dh = T 80x44 . . . . . mono EGA only
- 0Eh = T 132x25 . . . . . mono
- 0Fh = T 132x44 . . . . . mono
- 10h = reserved
- 11h = G . . 1280x350 4 . . . EGA only
- 12h = G . . 1280x600 4 . . . EGA only
- 13h = G . . 640x350 256 . . . EGA,EV673
- 14h = G . . 640x400 256 . . .
- 15h = G . . 512x480 256 . . .
- 16h = T 80x30 8x16 . 256 . . . VGA only
- 18h = T 100x27 8x16 . 16 . . . VGA only
- 20h = G . . 1024x768 16 . . . Everex 629,678
- . . . . . . . Everex EV-673
- 21h = T 160x64 8x16 1280x1024 16 . . . 1MB VGA only
- 30h = G . . 640x480 256 . . . Everex 629,678
- . . . . . . . Everex EV-673
- 31h = G . . 800x600 256 . . . Everex 629,678
- . . . . . . . Everex EV-673
- 32h = G 128x48 8x16 1024x768 256 . . . 1MB VGA only
- 40h = T 132x30 8x16 . 16 . . . VGA only
- 50h = T 132x32 8x16 . mono . . . VGA only
- 62h = G 40x25 8x8 320x200 32K . . . Vwpt TC (EV629)
- 70h = G 64x30 8x16 512x480 32K . . . Viewpoint TC
- 71h = G 80x30 8x16 640x480 32K . . . Viewpoint TC
- 76h = G 64x30 8x16 512x480 16M . . . Viewpoint TC
- 77h = G 80x30 8x16 640x480 16M . . . Viewpoint TC
- Index: video modes;Everex
- --------V-10007E-----------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
- AX = 007Eh
- BX = horizontal dimension of the mode desired
- CX = vertical dimension of the mode desired
- (both BX/CX in pixels for graphics modes, rows for alpha modes)
- DX = number of colors of the mode desired (0000h for monochrome modes)
- Return: BH = 7Eh if successful (Paradise VGA)
- AL = 7Eh if successful (AT&T VDC600)
- Desc: specify a display mode by resolution rather than mode number
- SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
- Index: video modes;Paradise|video modes;AT&T
- --------V-10007FBH00-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
- AX = 007Fh
- BH = 00h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
- --------V-10007FBH01-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
- AX = 007Fh
- BH = 01h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- Note: color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
- mode 7 will set non-VGA MDA/Hercules operation
- SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
- --------V-10007FBH02-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
- AX = 007Fh
- BH = 02h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- ---if successful---
- BL = 00h if operating in VGA mode, 01h if non-VGA mode
- CH = total video RAM size in 64k byte units
- CL = video RAM used by the current mode
- Note: under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
- video memory in CX
- SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
- --------V-10007F-----------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
- AX = 007Fh
- BH = function
- 03h lock current mode
- allows current mode (VGA or non-VGA) to survive re-boot
- 04h enter MDA mode
- 05h enter CGA mode
- 06h enter monochrome VGA mode (also switches to video mode 7)
- 07h enter color VGA mode (also switches to video mode 3)
- 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh WRITE PARADISE REGISTERS 0,1,2,3,4,5
- (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
- BL = value to set in the paradise register
- 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
- (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
- Return: BL = value of the paradise register
- BH = 7Fh if successful
- 29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- Desc: set emulation mode or access proprietary extended data registers
- SeeAlso: AX=007Eh,AH=FF"Oak"
- --------V-10007FBH60-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = 60h
- BL = ??? (00h-13h)
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- --------V-10007FBH61-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = 61h
- ES:DI -> buffer for list of ??? (see #0011)
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
-
- Format of Paradise VGA list entry:
- Offset Size Description (Table 0011)
- 00h BYTE ??? or 00h if end of list
- 01h BYTE ???
- 02h WORD ???
- 04h WORD ???
- 06h WORD ???
- --------V-10007FBXA500-----------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BX = A500h
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- --------V-10007FBHA5-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = A5h
- BL = ???
- bits 3-0: ??? (0-4)
- bits 5,4: ???
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- --------V-10007FBHA6-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = A6h
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- --------V-1001-------------------------------
- INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
- AH = 01h
- CH = cursor start and options (see #0012)
- CL = bottom scan line containing cursor (bits 0-4)
- Desc: specify the starting and ending scan lines to be occupied by the
- hardware cursor in text modes
- Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
- returns unmapped cursor shape
- UltraVision scales size to the current font height by assuming 14-line
- monochrome and 8-line color fonts; this call is not valid if cursor
- emulation has been disabled
- applications which wish to change the cursor by programming the
- hardware directly on EGA or above should call INT 10/AX=1130h or
- read 0040h:0085h first to determine the current font height
- on some adapters, setting the end line greater than the number of lines
- in the font will result in the cursor extending to the top of the
- next character cell on the right
- BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
- is not equal to the current video mode
- SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#2469
-
- Bitfields for cursor start and options:
- Bit(s) Description (Table 0012)
- 7 should be zero
- 6,5 cursor blink
- (00=normal, 01=invisible, 10=erratic, 11=slow)
- (00=normal, other=invisible on EGA/VGA)
- 4-0 topmost scan line containing cursor
- --------V-1002-------------------------------
- INT 10 - VIDEO - SET CURSOR POSITION
- AH = 02h
- BH = page number
- 0-3 in modes 2&3
- 0-7 in modes 0&1
- 0 in graphics modes
- DH = row (00h is top)
- DL = column (00h is left)
- SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050h
- --------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,MEM 0040h:0050h,MEM 0040h:0060h
- --------V-1004-------------------------------
- INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
- AH = 04h
- Return: AH = light pen trigger flag
- 00h not down/triggered
- 01h down/triggered
- DH,DL = row,column of character light pen is on
- CH = pixel row (graphics modes 04h-06h)
- CX = pixel row (graphics modes with >200 rows)
- BX = pixel column
- Desc: determine the current position and status of the light pen (if
- present)
- Notes: on a CGA, returned column numbers are always multiples of 2 (320-
- column modes) or 4 (640-column modes)
- returned row numbers are only accurate to two lines
- --------V-1004------------------------------------
- INT 10 - HUNTER 16 - GET CURSOR ADDRESS
- AH = 04h
- BH = page
- Return: DH = row (0..24)
- DL = column (0..79)
- CH = cursor pixel Y-address (0..199)
- CL = cursor pixel X-address (0..639)
- Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- pixel coordinates are for the lower left corner of the character cell
- containing the cursor
- SeeAlso: AH=60h"HUNTER"
- --------V-1005-------------------------------
- INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
- AH = 05h
- AL = new page number (00h to number of pages - 1) (see #0009)
- Desc: specify which of possibly multiple display pages will be visible
- Note: to determine whether the requested page actually exists, use AH=0Fh
- to query the current page after making this call
- SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h
- --------V-1005-------------------------------
- INT 10 - VIDEO - PCjr, Tandy 1000 - MANIPULATE CRT/CPU PAGE REGISTERS
- AH = 05h
- AL = subfunction
- 80h read CRT and CPU page registers
- Return: BH = CRT page register
- BL = CPU page register
- 81h set CPU page register
- BL = CPU page
- 82h set CRT page register
- BH = CRT page
- 83h set both CPU and CRT page registers
- BL = CPU page
- BH = CRT page
- Notes: the CPU page determines which 16K block of the first 128K of physical
- memory will be mapped at B800h by the hardware
- the CRT page determines the start address of the memory used by the
- video controller
- --------V-1005-------------------------------
- INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
- AH = 05h
- AL = function
- 00h set address of graphics bitmap buffer (video modes 60h,61h)
- BX = segment of buffer
- 0Fh get address of graphics bitmap buffer (video modes 60h,61h)
- Return: DX = segment of graphics bitmap buffer
- --------V-1006-------------------------------
- INT 10 - VIDEO - SCROLL UP WINDOW
- AH = 06h
- AL = number of lines by which to scroll up (00h = clear entire window)
- BH = attribute used to write blank lines at bottom of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Note: affects only the currently active page (see AH=05h)
- BUGS: some implementations (including the original IBM PC) have a bug which
- destroys BP
- the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
- scrolling in an SVGA mode (800x600 or higher)
- SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
- --------V-1007-------------------------------
- INT 10 - VIDEO - SCROLL DOWN WINDOW
- AH = 07h
- AL = number of lines by which to scroll down (00h=clear entire window)
- BH = attribute used to write blank lines at top of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Note: affects only the currently active page (see AH=05h)
- BUGS: some implementations (including the original IBM PC) have a bug which
- destroys BP
- the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
- scrolling in an SVGA mode (800x600 or higher)
- SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
- --------V-1008-------------------------------
- INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 08h
- BH = page number (00h to number of pages - 1) (see #0009)
- Return: AH = character's attribute (text mode only) (see #0013)
- AL = character
- Notes: for monochrome displays, a foreground of 1 with background 0 is
- underlined
- the blink bit may be reprogrammed to enable intense background colors
- using AX=1003h or by programming the CRT controller
- the foreground intensity bit (3) can be programmed to switch between
- character sets A and B on EGA and VGA cards, thus enabling 512
- simultaneous characters on screen. In this case the bit's usual
- function (intensity) is regularly turned off.
- in graphics modes, only characters drawn with white foreground pixels
- are matched by the pattern-comparison routine
- SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
-
- Bitfields for character's display attribute:
- Bit(s) Description (Table 0013)
- 7 foreground blink or (alternate) background bright (see also AX=1003h)
- 6-4 background color (see #0014)
- 3 foreground bright or (alternate) alternate character set (see AX=1103h)
- 2-0 foreground color (see #0014)
- SeeAlso: #0025
-
- (Table 0014)
- Values for character color:
- Normal Bright
- 000b black dark gray
- 001b blue light blue
- 010b green light green
- 011b cyan light cyan
- 100b red light red
- 101b magenta light magenta
- 110b brown yellow
- 111b light gray white
- --------V-1009-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 09h
- AL = character to display
- BH = page number (00h to number of pages - 1) (see #0009)
- background color in 256-color graphics modes (ET4000)
- BL = attribute (text mode) or color (graphics mode)
- if bit 7 set in <256-color graphics mode, character is XOR'ed
- onto screen
- CX = number of times to write character
- Notes: all characters are displayed, including CR, LF, and BS
- replication count in CX may produce an unpredictable result in graphics
- modes if it is greater than the number of positions remaining in the
- current row
- SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
- --------V-100A-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
- AH = 0Ah
- AL = character to display
- BH = page number (00h to number of pages - 1) (see #0009)
- background color in 256-color graphics modes (ET4000)
- BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
- if bit 7 set in <256-color 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
- Note: this call was only valid in 320x200 graphics on the CGA, but newer
- cards support it in many or all graphics modes
- SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066h
- --------V-100C-------------------------------
- INT 10 - VIDEO - WRITE GRAPHICS PIXEL
- AH = 0Ch
- BH = page number
- AL = pixel color
- if bit 7 set, value is XOR'ed onto screen except in 256-color modes
- CX = column
- DX = row
- Desc: set a single pixel on the display in graphics modes
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Dh,AH=46h
- --------V-100D-------------------------------
- INT 10 - VIDEO - READ GRAPHICS PIXEL
- AH = 0Dh
- BH = page number
- CX = column
- DX = row
- Return: AL = pixel color
- Desc: determine the current color of the specified pixel in grahics modes
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Ch,AH=47h
- --------V-100E-------------------------------
- INT 10 - VIDEO - TELETYPE OUTPUT
- AH = 0Eh
- AL = character to write
- BH = page number
- BL = foreground color (graphics modes only)
- Desc: display a character on the screen, advancing the cursor and scrolling
- the screen as necessary
- Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
- and do the expected things
- IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
- the current active page
- SeeAlso: AH=02h,AH=0Ah
- --------b-100E--CXABCD-----------------------
- INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
- AH = 0Eh
- CX = ABCDh
- BP = ABCDh
- AL = character to write
- BH = page number
- BL = foreground color (text modes as well as graphics modes)
- Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
- Koehlmann / c't magazine
- Desc: display a character on the screen, advancing the cursor and scrolling
- the screen as necessary
- Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
- and do the expected things
- SeeAlso: INT 15/AH=84h"V20-XT-BIOS"
- --------V-100F-------------------------------
- INT 10 - VIDEO - GET CURRENT VIDEO MODE
- AH = 0Fh
- Return: AH = number of character columns
- AL = display mode (see #0009 at AH=00h)
- BH = active page (see AH=05h)
- Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
- also have bit 7 set
- EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
- (monochrome) in all extended-row text modes
- HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
- and always 80 resp. 40 columns in all text modes regardless of
- current zoom setting (see AH=D0h)
- when using a Hercules Graphics Card, additional checks are necessary:
- mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
- (as set by DOSSHELL and other Microsoft software)
- mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
- (as set by DOSSHELL and other Microsoft software)
- mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
- graphics mode, with bit 7 indicating the page (mode set by
- Hercules driver for Borland Turbo C)
- SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
- --------V-100F56BX4756-----------------------
- INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
- AX = 0F56h
- BX = 4756h
- CX = 4944h
- DL = function
- 01h installation check
- Return: AX = 5649h
- BX = 4443h
- CX = 5647h
- DH = 01h
- 02h get first video mode's parameters
- Return: AX = BIOS mode number
- BX = width in pixels
- CX = height in pixels
- DX = number of colors
- 03h get next video mode's parameters
- Return: as for DL=02h
- 04h display line???
- ES:DI -> record (see #0015)
- ???
- Return: ???
- Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
- Note: the use of TSR display drivers was discontinued after v2.20
- Index: installation check;VUIMAGE display driver
-
- Format of record for VUIMAGE Function 04h:
- Offset Size Description (Table 0015)
- 00h WORD row number
- 02h WORD starting column???
- 04h WORD ending column???
- ???
- --------V-100F--SIF123-----------------------
- INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
- AH = 0Fh
- SI = F123h
- DI = 321Fh
- Return: AH = number of character columns
- AL = display mode (see #0009 at AH=00h)
- BH = active page (see AH=05h)
- SI = DI = F345h if installed
- Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
- also have bit 7 set
- EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
- (monochrome) in all extended-row text modes
- SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
- --------V-1010-------------------------------
- INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
- AH = 10h
- CH,CL = row,column of upper left corner of window
- DH,DL = row,column of lower right corner of window
- Return: AL = status
- 00h successful
- 01h failed
- AH destroyed
- Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- Note: when a window has been set, all output via AH=0Eh is restricted to
- the specified window
- SeeAlso: AH=11h"Window",AH=12h"Window"
- --------V-1010-------------------------------
- INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
- AH = 10h
- AL = speed
- 00h fast
- 01h slow (scrolling only moves characters during vertical retrace)
- Return: AH = previous speed
- --------V-101000-----------------------------
- INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
- AX = 1000h
- BL = palette register number (00h-0Fh)
- = attribute register number (undocumented) (see #0016)
- BH = color or attribute register value
- Notes: on MCGA, only BX = 0712h is supported
- under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1007h,AX=CD01h
-
- (Table 0016)
- Values for attribute register number:
- 10h attribute mode control register (should let BIOS control this)
- 11h overscan color register (see also AX=1001h)
- 12h color plane enable register (bits 3-0 enable corresponding
- text attribute bit)
- 13h horizontal PEL panning register
- 14h color select register
- --------V-101001-----------------------------
- INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
- AX = 1001h
- BH = border color (00h-3Fh)
- BUG: the original IBM VGA BIOS incorrectly updates the parameter save area
- and places the border color at offset 11h of the palette table
- rather than offset 10h
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1008h,AX=CD01h
- --------V-101002-----------------------------
- INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
- AX = 1002h
- ES:DX -> palette register list (see #0017)
- BH = 00h to avoid problems on some adapters
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
-
- Format of palette register list:
- Offset Size Description (Table 0017)
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
- --------V-101003-----------------------------
- INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
- AX = 1003h
- BL = new state
- 00h background intensity enabled
- 01h blink enabled
- BH = 00h to avoid problems on some adapters
- Notes: although there is no function to get the current status on adapters
- prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
- VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0037)
- when configured for a monochrome display, the Boca Research Multi-EGA
- with ROM v M1.1 Type D has its screen disrupted if BH is not clear
- this call is reported to be "Get Cursor Position" on the Tandy
- 1000SL/TL
- SeeAlso: AH=08h,AH=1Bh
- --------V-101007-----------------------------
- INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
- AX = 1007h
- BL = palette or attribute (undoc) register number (see #0016)
- Return: BH = palette or attribute register value
- Note: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set BH to FFh on entry.
- SeeAlso: AX=1000h,AX=1009h
- --------V-101008-----------------------------
- INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
- AX = 1008h
- Return: BH = border color (00h-3Fh)
- Note: (see AX=1007h)
- SeeAlso: AX=1001h
- --------V-101009-----------------------------
- INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
- AX = 1009h
- ES:DX -> 17-byte buffer for palette register list (see #0017)
- Note: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set the ES:DX buffer to FFh before calling.
- SeeAlso: AX=1002h,AX=1007h,AX=CD02h
- --------V-101010-----------------------------
- INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1010h
- BX = register number
- CH = new value for green (0-63)
- CL = new value for blue (0-63)
- DH = new value for red (0-63)
- SeeAlso: AX=1012h,AX=1015h
- --------V-101012-----------------------------
- INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1012h
- BX = starting color register
- CX = number of registers to set
- ES:DX -> table of 3*CX bytes where each 3 byte group represents one
- byte each of red, green and blue (0-63)
- SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
- --------V-101013-----------------------------
- INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
- AX = 1013h
- BL = subfunction
- 00h select paging mode
- BH = 00h select 4 blocks of 64
- BH = 01h select 16 blocks of 16
- 01h select page
- BH = page number (00h to 03h) or (00h to 0Fh)
- Note: this function is not valid in mode 13h
- SeeAlso: AX=101Ah
- --------V-101015-----------------------------
- INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1015h
- BL = palette register number
- Return: DH = red value
- CH = green value
- CL = blue value
- AX destroyed by some BIOSes
- (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h)
- SeeAlso: AX=1010h,AX=1017h
- --------V-101017-----------------------------
- INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1017h
- BX = starting palette register
- CX = number of palette registers to read
- ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
- Return: buffer filled with CX red, green and blue triples
- SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
- --------V-101018-----------------------------
- INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
- AX = 1018h
- BL = new PEL value
- SeeAlso: AX=1019h
- --------V-101019-----------------------------
- INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
- AX = 1019h
- Return: BL = value read
- SeeAlso: AX=1018h
- --------V-10101A-----------------------------
- INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
- AX = 101Ah
- Return: BL = paging mode
- 00h four pages of 64
- 01h sixteen pages of 16
- BH = current page
- SeeAlso: AX=1013h
- --------V-10101B-----------------------------
- INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
- AX = 101Bh
- BX = starting palette register
- CX = number of registers to convert
- Desc: convert the RGB values of one or more palette registers such that the
- resulting values are grays with the same intensities as the original
- colors
- SeeAlso: AH=12h/BL=33h
- --------V-1010E0-----------------------------
- INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
- AX = 10E0h
- BL = video mode (see also #0009 at AH=00h)
- 2Eh = 640x480
- Return: ???
- SeeAlso: AH=00h,AX=10F0h
- --------V-1010F0-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
- AX = 10F0h
- BL = video mode (see also #0009 at AH=00h)
- 13h = 320x200x32K
- 2Dh = 640x350x32K
- 2Eh = 640x480x32K
- 2Fh = 640x400x32K
- 30h = 800x600x32K
- 3Eh = 640x480x16M (Genoa 7900)
- FFh Tseng 24-bit color mode
- BH = mode
- 2Dh = 640x480
- 2Eh = 640x480x16M
- 2Fh = 640x400
- 30h = 800x600
- 38h = 1024x768??? (Tseng ET4000/W32i)
- Return: AL = 10h if supported
- AH = status
- 00h if successful
- other on error
- Desc: switch the display into a graphics mode with 15 or more bits per pixel
- Note: the Tseng HiColor BIOS extensions are supported by:
- Diamond Computer Systems SpeedStar HiColor VGA
- Everex Systems HC VGA
- Focus Information Systems 2theMax 4000
- Cardinal Technologies VGA732
- Orchid ProDesigner IIs Genoa 7900
- SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
- Index: video modes;Tseng Hi-Color
- --------V-1010F1-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
- AX = 10F1h
- Return: AL = 10h if supported
- BL = type of digital/analog converter (see #0018)
- Desc: determine which type of digital-to-analog converter is installed on the
- display board
- SeeAlso: AX=10F0h,AX=10F2h
-
- (Table 0018)
- Values for type of DAC:
- 00h normal VGA DAC
- 01h Sierra SC1148x HiColor DAC
- ---Diamond SpeedStar 24---
- 02h new Sierra SS24 DAC (24-bit)
- ---generic Tseng BIOS v8+ ---
- 02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
- 03h ATT20c490/1/2 (15/16/24-bit)
- 04h AcuMos ADAC1 (15/16/24-bit)
- 05h unknown 15/16/24-bit DAC
- 06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
- 07h Diamond SS2410 (15/24-bit)
- 08h unknown 15/16/24-bit DAC
- 09h unknown 15/16/24-bit DAC
- else other HiColor DAC
- --------V-1010F2-----------------------------
- INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
- AX = 10F2h
- BL = function
- 00h get current HiColor mode
- 01h set 15-bit HiColor mode
- 02h set 16-bit HiColor mode
- Return: AX = 0010h if supported
- BL = video mode type
- 00h not in HiColor mode
- 01h 15-bit RGB mode
- 02h 16-bit RGB mode
- 03h 24-bit RGB mode
- Desc: determine whether the display is in a graphics mode with 15 or more
- bits per pixel color resolution
- Note: set (BL=01h/02h) only works if already in a HiColor mode
- SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
- --------V-1011-------------------------------
- INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
- AH = 11h
- Return: CH,CL = row,column of upper left corner
- DH,DL = row,column of lower right corner
- Desc: determine the portion of the display to which output is restricted
- Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- SeeAlso: AH=10h"Window",AH=12h"Window"
- --------V-1011-------------------------------
- INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
- AH = 11h
- The following functions will cause a mode set, completely resetting
- the video environment, but without clearing the video buffer
- AL = 00h, 10h: load user-specified patterns
- ES:BP -> user table
- CX = count of patterns to store
- DX = character offset into map 2 block
- BL = block to load in map 2
- BH = number of bytes per character pattern
- AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
- BL = block to load
- AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
- BL = block to load
- AL = 03h: set block specifier (allows dual character sets on screen)
- BL = block specifier (see #0019)
- AL = 04h, 14h: load ROM 8x16 character set (VGA)
- BL = block to load
- Notes: The routines called with AL=1xh are designed to be called only
- immediately after a mode set and are similar to the routines called
- with AL=0xh, except that:
- Page 0 must be active.
- Bytes/character is recalculated.
- Max character rows is recalculated.
- CRT buffer length is recalculated.
- CRTC registers are reprogrammed as follows:
- R09 = bytes/char-1 ; max scan line (mode 7 only)
- R0A = bytes/char-2 ; cursor start
- R0B = 0 ; cursor end
- R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
- R14 = bytes/char ; underline loc
- (*** BUG: should be 1 less ***)
- the current block specifiers may be determined with INT 10/AH=1Bh,
- looking at offsets 2Bh and 2Ch of the returned data (VGA only)
- (see AH=1Bh,#0037)
- SeeAlso: AH=1Bh,AX=CD10h
-
- Bitfields for block specifier:
- Bit(s) Description (Table 0019)
- ---EGA/MCGA---
- 0,1 block selected by characters with attribute bit 3 clear
- 2,3 block selected by characters with attribute bit 3 set
- ---VGA---
- 0,1,4 block selected by characters with attribute bit 3 clear
- 2,3,5 block selected by characters with attribute bit 3 set
- --------V-1011-------------------------------
- INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
- AH = 11h
- AL = 07h load user-specified paterns and recalculate mode parms
- parameters are the same as for AL = 10h
- AL = 08h load monochrome patterns (8x14) and recalculate mode parms
- parameters are the same as for AL = 11h
- AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
- parameters are the same as for AL = 12h
- AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
- parameters are the same as for AL = 14h
- Note: these functions should only be called under the same conditions as
- AL=1xh (see entry above)
- SeeAlso: AH=11h
- --------V-10110F-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
- AX = 110Fh
- ES:BP -> user table for INT 1F
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
- --------V-101110-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
- AX = 1110h
- ES:BP -> user table
- CX = bytes per character
- BL = row specifier
- 00h user set
- DL = number of rows
- 01h 14 rows
- 02h 25 rows
- 03h 43 rows
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=110Fh,AX=1112h,AX=1121h
- --------V-101111-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
- AX = 1111h
- BL = row specifier (see AX=1121h)
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=110Fh,AX=1110h,AX=1122h
- --------V-101112-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
- AX = 1112h
- BL = row specifier (see AX=1121h)
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
- --------V-101120-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
- AX = 1120h
- ES:BP -> user table for INT 1F
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
- --------V-101121-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
- AX = 1121h
- ES:BP -> user table
- CX = bytes per character
- BL = row specifier
- 00h user set
- DL = number of rows
- 01h 14 rows
- 02h 25 rows
- 03h 43 rows
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
- --------V-101122-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
- AX = 1122h
- BL = row specifier (see AX=1121h)
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
- --------V-101123-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
- AX = 1123h
- BL = row specifier (see AX=1121h)
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
- --------V-101124-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
- AX = 1124h
- BL = row specifier (see AX=1121h)
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
- --------V-101129-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
- AX = 1129h
- BL = row specifier (see AX=1121h)
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
- --------V-101130-----------------------------
- INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
- AX = 1130h
- BH = pointer specifier
- 00h INT 1Fh pointer
- 01h INT 43h pointer
- 02h ROM 8x14 character font pointer
- 03h ROM 8x8 double dot font pointer
- 04h ROM 8x8 double dot font (high 128 characters)
- 05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
- 06h ROM 8x16 font (MCGA, VGA)
- 07h ROM alternate 9x16 font (VGA only) (see #0020)
- 11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
- 12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
- Return: ES:BP = specified pointer
- CX = bytes/character of on-screen font (not the requested font!)
- DL = highest character row on screen
- Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
- 8xN font at ES:BP+256N
- BUG: the IBM EGA and some other EGA cards return in DL the number of rows on
- screen rather than the highest row number (which is one less).
- SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
-
- Format of alternate font table [array]:
- Offset Size Description (Table 0020)
- 00h BYTE character to be replaced (00h = end of table)
- 01h N BYTEs graphics data for character, one byte per scan line
- --------V-101130BX4D4F-----------------------
- INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
- AX = 1130h
- BX = 4D4Fh
- Return: CX = 4F4Dh if installed
- ES:BP -> M10_SCR INT 10 handler
- Program: M10_SCR is a shareware extended text mode and font driver by
- I.V. Morozov
- SeeAlso: INT 16/AX=4D4Fh
- --------V-1012-------------------------------
- INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
- AH = 12h
- Return: BH = attribute to use on blanked lines when scrolling
- Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- SeeAlso: AH=11h"Window",AH=12h"Window"
- --------V-1012--BL10-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
- AH = 12h
- BL = 10h
- Return: BH = video state
- 00h color mode in effect (I/O port 3Dxh)
- 01h mono mode in effect (I/O port 3Bxh)
- BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
- CH = feature connector bits (see #0021)
- CL = switch settings (see #0022,#0023)
- AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
- Note: one possible check for the presence of an EGA or later display card
- is to call this function with BH=FFh; if not present, BH will be
- unchanged on return
- another installation check is used by Athena Digital's HGCIBM, which
- sets CX to FFFFh on calling and checks whether it has been changed
- on return
- Index: installation check;EGA
-
- Bitfields for feature connector bits:
- Bit(s) Description (Table 0021)
- 0 FEAT 1 line, state 2
- 1 FEAT 0 line, state 2
- 2 FEAT 1 line, state 1
- 3 FEAT 0 line, state 1
- 4-7 unused (0)
-
- Bitfields for switch settings:
- Bit(s) Description (Table 0022)
- 0 switch 1 OFF
- 1 switch 2 OFF
- 2 switch 3 OFF
- 3 switch 4 OFF
- 4-7 unused
-
- (Table 0023)
- Values for switch settings on original EGA/VGA:
- 00h primary MDA/HGC, secondary EGA+ 40x25
- 01h-03h primary MDA/HGC, secondary EGA+ 80x25
- 04h primary CGA 40x25, secondary EGA+ 80x25 mono
- 05h primary CGA 80x25, secondary EGA+ 80x25 mono
- 06h primary EGA+ 40x25, secondary MDA/HGC (optional)
- 07h-09h primary EGA+ 80x25, secondary MDA/HGC (optional)
- 0Ah primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
- 0Bh primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
- --------V-1012--BL11-------------------------
- INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
- AH = 12h
- BL = 11h
- Return: AL = 12h if function supported
- BL = ??? (10h)
- ES:BP -> BIOS info structure (see #0024)
- SeeAlso: AH=12h/BL=12h"TRIDENT"
-
- Format of Trident BIOS Info structure:
- Offset Size Description (Table 0024)
- 00h BYTE ??? (0000h)
- 01h BYTE OEM Code (00h for original Trident)
- 02h WORD ID??? (1073h for 8800BR, 1074 for 8800CS)
- 04h 8 BYTEs BIOS date ('mm/dd/yy')
- 0Ch WORD ???
- 0Eh 8 BYTEs BIOS Version (' C3-128 ', ' C3-129 ')
- --------V-1012--BL12-------------------------
- INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
- AH = 12h
- BL = 12h
- Return: AL = 12h if function supported
- AH = number of 256K banks of RAM installed
- SeeAlso: AH=12h/BL=11h"TRIDENT"
- --------V-1012--BL20-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
- AH = 12h
- BL = 20h select alternate print screen routine
- Desc: installs a PrtSc routine from the video card's BIOS to replace the
- default PrtSc handler from the ROM BIOS, which usually does not
- understand screen heights other than 25 lines
- Note: some adapters disable print-screen instead of enhancing it
- SeeAlso: INT 05
- --------V-1012--BL2E-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = 2Eh
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BL30-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
- AH = 12h
- BL = 30h
- AL = vertical resolution
- 00h 200 scan lines
- 01h 350 scan lines
- 02h 400 scan lines
- Return: AL = 12h if function supported
- Desc: specify the number of scan lines used to display text modes
- Note: the specified resolution will take effect on the next mode set
- SeeAlso: AH=00h
- --------V-1012--BL31-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
- AH = 12h
- BL = 31h
- AL = new state
- 00h enable default palette loading
- 01h disable default palette loading
- Return: AL = 12h if function supported
- Desc: specify whether a default palette should be loaded when the display
- mode is set
- SeeAlso: AH=00h
- --------V-1012--BL32-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
- AH = 12h
- BL = 32h
- AL = new state
- 00h enable video addressing
- 01h disable video addressing
- Return: AL = 12h if function supported
- Desc: specify whether the CPU should have access to video memory and the
- display adapters I/O registers
- --------V-1012--BL33-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
- AH = 12h
- BL = 33h
- AL = new state
- 00h enable gray scale summing
- 01h disable gray scale summing
- Return: AL = 12h if function supported
- Desc: specify whether or not colors should be converted to gray scale when
- palette or color registers are loaded
- SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
- --------V-1012--BL34-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
- AH = 12h
- BL = 34h
- AL = new state
- 00h enable alphanumeric cursor emulation
- 01h disable alphanumeric cursor emulation
- Return: AL = 12h if function supported
- Desc: specify whether the BIOS should automatically remap cursor start/end
- according to the current character height in text modes
- SeeAlso: AH=01h,AH=03h
- --------V-1012--BL35-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
- AH = 12h
- BL = 35h
- AL = subfunction
- 00h initial adapter video off
- 01h initial planar video on
- 02h switch active video off
- 03h switch inactive video on
- 80h *UNDOCUMENTED* set system board video active flag
- ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
- Return: AL = 12h if function supported
- Desc: switch between two video adapters which may otherwise have address
- conflicts
- --------V-1012--BL36-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
- AH = 12h
- BL = 36h
- AL = new state
- 00h enable refresh
- 01h disable refresh
- Return: AL = 12h if function supported
- Desc: specify whether the contents of video memory should be displayed on
- the screen; disabling refresh effectively blanks the screen
- Note: when display refresh is disabled, the entire screen displays the color
- specified by the DAC color register 00h; thus to actually blank the
- screen, the application must first ensure that that register has been
- set to black
- BUG: GEM/VIEWMAX ET3000 and ET4000 drivers dated 6/23/88 do not correctly
- reenable refresh after the screen has been blanked due to inactivity,
- resulting in a total loss of video synchronization
- SeeAlso: AX=BF05h
- --------V-1012--BL37-------------------------
- INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
- AH = 12h
- BL = 37h
- AL = text attribute type (00h normal VGA, 01h mainframe type)
- Return: AL = 12h if supported
- SeeAlso: #0025,AH=08h
-
- Bitfields for XGA mainframe type character attributes:
- Bit(s) Description (Table 0025)
- 7 blink double rate (75% ON time) or use color 8 as background
- (see AX=1003h)
- 6 reverse video
- 5 underlined
- 4 left-most and right-most dots of underline area inverted
- 3 foreground intensity/character font select
- 2-0 foreground color
- SeeAlso: #0013,#0033
- --------V-1012--BL53-------------------------
- INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
- AH = 12h
- BL = 53h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BL57-------------------------
- INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
- AH = 12h
- BL = 57h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BH55-------------------------
- INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
- AH = 12h
- BH = 55h
- BL = subfunction
- 00h disable enhanced features
- 01h enable enhanced features
- 02h get status
- Return: AL = status flags (see #0026)
- 03h disable register trapping (CGA emulation)
- 04h enable register trapping
- 05h program video mode
- ES:BP -> video mode table (see #0027)
- 06h get mode table
- AL = video mode
- Return: ES:BP -> table suitable for mode AL
- (and subfunc BL=05h) (see #0027)
- BP = FFFFh on error
- SI = 0000h (ATI Mach32)
- Note: the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
- the mode table for mode 03h, and then looks for a signature string
- beginning within 32 bytes of the offset specified by the word at
- ES:000Ch
- SeeAlso: AH=FFh"Oak"
- Index: installation check;ATI video adapters
-
- Bitfields for status flags:
- Bit(s) Description (Table 0026)
- 3 set if enhanced features enabled
- 7-5 monitor type
- 000 PS/2 mono
- 001 PS/2 color
- 010 multi-sync
- 011 Taxan 650 25kHz
- 100 RGB
- 101 mono
- 110 EGA
- 111 Compaq internal
-
- Format of ATI VGA Wonder video mode table:
- Offset Size Description (Table 0027)
- 00h BYTE number of columns
- 01h BYTE maximum row (number of rows - 1)
- 02h BYTE scan lines per row
- 03h WORD video buffer size in bytes
- 05h 4 BYTEs values for Sequencer registers 1-4
- 09h BYTE value for Miscellaneous Output register
- 0Ah 25 BYTEs values for CRTC registers 00h-18h
- 00h horizontal total size (chars)
- 01h horizontal displayed (chars)
- 02h horizontal sync position (chars)
- 03h horizontal sync width (chars)
- 04h vertical total size (char rows)
- 05h vertical total adjust (scan lines)
- 06h vertical displayed (char rows)
- 07h vertical sync position (char rows)
- 08h interlace mode
- 09h max scan line in row
- 0Ah cursor start scan line
- 0Bh cursor end scan line
- 0Ch screen memory start (high)
- 0Dh screen memory start (low)
- 0Eh cursor address (high)
- 0Fh cursor address (low)
- 10h light pen (high)
- 11h light pen (low)
- 23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h)
- 37h 9 BYTEs values for Graphics Controller registers 00h-08h
- --------V-1012--BL74-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = 74h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BL80-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = 80h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BL80-------------------------
- INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
- AH = 12h
- BL = 80h
- Return: AX = controller type in bits 13-0 (see #0028)
- bit 14: ???
- bit 15: ???
- BL = silicon revision number (bit 7 set if not available)
- SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
-
- (Table 0028)
- Values for Cirrus Logic video controller type:
- 0000h no extended alternate select support
- 0002h 510/520
- 0003h 610/620
- 0004h 5320
- 0005h 6410
- 0006h 5410
- 0007h 6420
- 0008h 6412
- 0010h 5401
- 0011h 5402
- 0012h 5420
- 0013h 5422
- 0014h 5424
- 0015h 5426
- 0016h 5420r1
- 0017h 5402r1
- 0018h 5428
- 0020h 6205/15/25
- 0030h 5432
- 0031h 5434
- --------V-1012--BL81-------------------------
- INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
- AH = 12h
- BL = 81h
- Return: AH = BIOS major version
- AL = BIOS minor version
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
- --------V-1012--BL82-------------------------
- INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
- AH = 12h
- BL = 82h
- Return: AL = chip revision
- AH = ??? (AFh for v1.01)
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
- --------V-1012--BL84-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
- AH = 12h
- BL = 84h
- Return: AX = user options word (see #0029)
- SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
- SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
-
- Bitfields for Cirrus Logic user options word:
- Bit(s) Description (Table 0029)
- 1,0 centering
- 00 vertical centered, 01 from bottom, 10 from top, 11 reserved
- 3,2 720-dot fix-up options
- 00 OR every 8th and 9th pixel
- 01 display MGA mode from left
- 10 display MGA mode from right
- 11 skip every 9th pixel
- 4 ???
- 7-5 video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
- 8 external monitor enabled instead of LCD panel
- 9 vertical expand mode enabled
- 10 8-bit mode instead of 16-bit mode
- 11 normal video rather than reverse video (for LCD)
- 12 attribute automap rather than attribute emulation
- 13 bold mode disabled (default)
- 14 fast bandwidth
- 15 ???
- --------V-1012--BL85-------------------------
- INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
- AH = 12h
- BL = 85h
- Return: AL = number of 64K banks of video memory
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
- --------V-1012--BL89-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
- AH = 12h
- BL = 89h
- AL = new state (00h enabled, 01h disabled)
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
- --------V-1012--BL8A-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
- AH = 12h
- BL = 8Ah
- AL = new gray-scale color (00h = black to 0Fh = white)
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
- --------V-1012--BL8B-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
- AH = 12h
- BL = 8Bh
- AL = new state (00h enabled, 01h disabled)
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
- --------V-1012--BL8C-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
- AH = 12h
- BL = 8Ch
- AL = new state
- 00h enable automap
- 01h disable automap and emulate attributes
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
- --------V-1012--BL8F-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
- AH = 12h
- BL = 8Fh
- AL = new state (00h enabled, 01h disabled)
- Note: when expand mode is enabled, the vertical dimension is enlarged to
- full screen
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
- --------V-1012--BL90-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
- AH = 12h
- BL = 90h
- AL = new position
- 00h centered
- 01h from top
- 02h from bottom
- 03h from top
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
- --------V-1012--BL91-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
- AH = 12h
- BL = 91h
- AL = new mode
- 00h display MGA mode from left of screen (default)
- 01h display MGA from right
- 02h skip every ninth pixel
- 03h OR every 8th and 9th pixel
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
- --------V-1012--BL92-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
- AH = 12h
- BL = 92h
- AL = new display (00h LCD, 01h external monitor)
- Note: the deselected display is disabled
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
- --------V-1012--BL93-------------------------
- INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
- AH = 12h
- BL = 93h
- AL = new I/O width (00h = 16 bits, 01h = 8 bits)
- SeeAlso: AH=12h/BL=9Ah
- --------V-1012--BL94-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
- AH = 12h
- BL = 94h
- AL = new state (00h wake up monitor, 01h shut down display)
- Note: AL=01h is reported not to work properly on the LCD panel
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
- --------V-1012--BL9A-------------------------
- INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
- AH = 12h
- BL = 9Ah
- Return: AX = options word 1 (see #0030)
- CX = options word 2 (see #0031)
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
- SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
-
- Bitfields for Cirrus Logic options word 1:
- Bit(s) Description (Table 0030)
- 0,1 reserved
- 2-4 monitor type
- 5-6 maximum vertical resolution
- 7-9 reserved
- 10 force 8-bit operation
- 11-13 reserved
- 14 vertical refresh frequency at 640x480
- 15 reserved
-
- Bitfields for Cirrus Logic options word 2:
- Bit(s) Description (Table 0031)
- 0-3 reserved
- 4-5 vertical refresh frequency at 1280x1024
- 6-10 reserved
- 11-12 vertical refresh frequency at 800x600
- 13-15 vertical refresh frequency at 1024x768
- --------V-1012--BLA0-------------------------
- INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
- AH = 12h
- BL = A0h
- AL = video mode number (00h-7Fh)
- Return: AH bit 0: video mode supported
- BX = offset of BIOS subroutine to fixup standard video parameters
- (call subroutine with DS:SI and ES:DI as returned by this call)
- DS:SI -> standard video parameters or FFFFh:FFFFh
- ES:DI -> supplemental video parameters or FFFFh:FFFFh
- SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
- --------V-1012--BLA1-------------------------
- INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
- AH = 12h
- BL = A1h
- Return: BH = monitor ID (see #0032)
- BL = monitor type (00h color, 01h grayscale, 02h no display)
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
-
- (Table 0032)
- Values for Cirrus Logic monitor ID:
- 00h-08h reserved
- 09h IBM 8604/8507 or equivalent
- 0Ah IBM 8514 or equivalent
- 0Bh IBM 8515 or equivalent
- 0Dh IBM 8503 or equivalent
- 0Eh IBM 8512/8513 or equivalent
- 0Fh no monitor
- --------V-1012--BLA2-------------------------
- INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
- AH = 12h
- BL = A2h
- AL = retrace rate
- 00h standard VGA (31.5 kHz)
- 01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
- 02h SuperVGA (31.5-35.1 kHz)
- 03h extended SuperVGA (31.5-35.5 kHz)
- 04h multi-frequency (31.5-37.8 kHz)
- 05h extended multi-frequency (31.5-48.0 kHz)
- 06h super multi-frequency (31.5-56.0 kHz)
- 07h extended super multi-frequency (31.5-64.0 kHz)
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
- --------V-1012--BLA3-------------------------
- INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
- AH = 12h
- BL = A3h
- AL = refresh rate for 640x480 (00h normal, 01h high)
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
- --------V-1012--BLA4-------------------------
- INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
- AH = 12h
- BL = A4h
- AL bits 3-0 = maximum vertical resolution
- (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
- AL bits 7-4 = vertical refresh at 640x480
- (0 = 60Hz, 1 = 72Hz, other reserved)
- BH bits 3-0 = vertical refresh at 800x600
- (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
- BH bits 7-4 = vertical refresh at 1024x768
- (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
- CH bits 4-7 = vertical refresh at 1280x1024
- (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
- --------V-1012--BLBE-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = BEh
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BLC6-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = C6h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BLF0-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = F0h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1013-------------------------------
- INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
- AH = 13h
- AL = write mode
- bit 0: update cursor after writing
- bit 1: string contains alternating characters and attributes
- bits 2-7: reserved (0)
- BH = page number
- BL = attribute if string contains only characters
- CX = number of characters in string
- DH,DL = row,column at which to start writing
- ES:BP -> string to write
- Notes: recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
- backspace, and CR only take place in the active page
- also available PC or XT with EGA or higher
- HP 95LX only supports write mode 00h
- BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on
- the active page rather than the requested page
- SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
- --------J-1013-------------------------------
- INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
- AH = 13h
- AL = function
- 10h read characters and standard attributes
- 11h read characters and extended attributes
- 12h write characters and standard attributes
- 13h write characters and extended attributes
- BH = 00h
- CX = number of characters to transfer
- DH,DL = row,column at which to start transfer
- ES:BP -> buffer for/containing characters and attributes (see #0033)
- Return: ES:BP buffer filled if reading
- Program: DOS/V is a Japanese-language version of MS-DOS which can run on
- standard (non-Japanese) ATs and compatible equipped with a VGA or
- newer video adapter
- Notes: subfunctions 11h and 13h are only valid when DOS/V is using video
- mode 73h
- the cursor position is not changed by these functions
- extended attributes consist of three bytes; the first is the standard
- character attribute byte, the second is as described below, and the
- third is always zero in current versions
- SeeAlso: AH=00h,AH=13h"VIDEO"
-
- Bitfields for DOS/V second extended attribute byte:
- Bit(s) Description (Table 0033)
- 7 underline using foreground color
- 6 reverse foreground/background specified in standard attribute byte
- 5-4 unused
- 3 vertical white grid line in cell
- 2 horizontal white grid line in cell
- 1-0 unused
- SeeAlso: #0013,#0025
- --------V-101400-----------------------------
- INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
- AX = 1400h
- ES:DI -> character font
- BH = number of bytes per character
- 08h or 10h (Compaq)
- BL = 00h load main font (block 0)
- 01h load alternate font (block 1)
- CX = number of characters to store
- DX = character offset into RAM font area
- SeeAlso: AH=11h,AX=1401h
- --------V-101401-----------------------------
- INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
- AX = 1401h
- BL = font to load
- 00h main font (block 0)
- 01h alternate font (block 1)
- SeeAlso: AH=11h,AX=1400h
- --------V-101402-----------------------------
- INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
- AX = 1402h
- BL = function
- 00h ignore high intensity attribute
- 01h map high intensity to reverse video
- 02h map high intensity to underscore
- 03h map high intensity to selected alternate font
- B0h half intensity (Compaq)
- B1h toggle active intensity bit interpretation (CP386)
- --------V-1015-------------------------------
- INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
- AH = 15h
- Return: AX = alternate display adapter type (see #0034)
- ES:DI -> parameter table (see #0035)
- SeeAlso: AH=1Bh
-
- (Table 0034)
- Values for PC Convertible alternate display adapter type:
- 0000h none
- 5140h LCD
- 5153h CGA
- 5151h mono
-
- Format of PC Convertible display parameter table:
- Offset Size Description (Table 0035)
- 00h WORD monitor model number
- 02h WORD vertical pixels per meter
- 04h WORD horizontal pixels per meter
- 06h WORD total vertical pixels
- 08h WORD total horizontal pixels
- 0Ah WORD horizontal pixel separation in micrometers
- (width, center-to-center)
- 0Ch WORD vertical pixel separation in micrometers
- (height, center-to-center)
- --------V-1015-------------------------------
- INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
- AH = 15h
- AL = superimpose mode
- 00h show graphics screen
- 01h show text screen
- 02h show text screen superimposed on graphics screen
- --------J-1018-------------------------------
- INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
- AH = 18h
- AL = function
- 00h get font pattern
- 01h set font pattern
- BX = 0000h
- CL = character size in bytes (01h,02h)
- CH = 00h
- DH = character width in pixels
- DL = character height in pixels
- ES:DI -> buffer for/containing font image
- Return: AL = status (00h successful, else error)
- ES:DI buffer filled for function 00h if successful
- Note: the supported font sizes are 8x16 single-byte, 8x19 single-byte,
- 16x16 double-byte, and 24x24 double-byte
- SeeAlso: AH=19h,INT 16/AH=14h
- --------V-1019-------------------------------
- INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
- AH = 19h
- ???
- Return: ???
- SeeAlso: AH=18h,INT 16/AH=14h
- --------V-101A00-----------------------------
- INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
- AX = 1A00h
- Return: AL = 1Ah if function was supported
- BL = active display code (see #0036)
- BH = alternate display code (see #0036)
- Notes: this function is commonly used to check for the presence of a VGA
- this function is supported on the ATI EGA Wonder with certain
- undocumented configuration switch settings, even though the EGA
- Wonder does not support VGA graphics; to distinguish this case,
- call AX=1C00h with CX nonzero, which the EGA Wonder does not support
- SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
- Index: installation check;VGA
-
- (Table 0036)
- Values for display combination code:
- 00h no display
- 01h monochrome adapter w/ monochrome display
- 02h CGA w/ color display
- 03h reserved
- 04h EGA w/ color display
- 05h EGA w/ monochrome display
- 06h PGA w/ color display
- 07h VGA w/ monochrome analog display
- 08h VGA w/ color analog display
- 09h reserved
- 0Ah MCGA w/ digital color display
- 0Bh MCGA w/ monochrome analog display
- 0Ch MCGA w/ color analog display
- FFh unknown display type
- --------V-101A01-----------------------------
- INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
- AX = 1A01h
- BL = active display code (see #0036)
- BH = alternate display code
- Return: AL = 1Ah if function was supported
- SeeAlso: AH=12h/BL=35h,AX=1A00h
- --------V-101B-------------------------------
- INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
- AH = 1Bh
- BX = implementation type
- 0000h return funtionality/state information
- ES:DI -> 64-byte buffer for state information (see #0037)
- Return: AL = 1Bh if function supported
- ES:DI buffer filled with state information
- BUG: Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
- do not correctly set the fields at offsets 27h and 29h of the
- state information
- SeeAlso: AH=15h,AX=1A00h,AX=1F01h
-
- Format of MCGA+ state information:
- Offset Size Description (Table 0037)
- 00h DWORD address of static funtionality table (see #0040)
- 04h BYTE video mode in effect
- 05h WORD number of columns
- 07h WORD length of regen buffer in bytes
- 09h WORD starting address of regen buffer
- 0Bh WORD cursor position for page 0
- 0Dh WORD cursor position for page 1
- 0Fh WORD cursor position for page 2
- 11h WORD cursor position for page 3
- 13h WORD cursor position for page 4
- 15h WORD cursor position for page 5
- 17h WORD cursor position for page 6
- 19h WORD cursor position for page 7
- 1Bh WORD cursor "type" (start/stop scan lines)
- 1Dh BYTE active display page
- 1Eh WORD CRTC port address
- 20h BYTE current setting of register (3?8)
- 21h BYTE current setting of register (3?9)
- 22h BYTE number of rows - 1
- 23h WORD bytes/character
- 25h BYTE display combination code of active display
- 26h BYTE DCC of alternate display
- 27h WORD number of colors supported in current mode (0000h = mono)
- 29h BYTE number of pages supported in current mode
- 2Ah BYTE number of scan lines active
- (0,1,2,3) = (200,350,400,480)
- Tseng ET3000: (4,5,6 = 512,600,768)
- 2Bh BYTE primary character block
- 2Ch BYTE secondary character block
- 2Dh BYTE miscellaneous flags (see #0038)
- 2Eh 3 BYTEs reserved (00h)
- 31h BYTE video memory available
- 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
- 32h BYTE save pointer state flags (see #0039)
- 33h 13 BYTEs reserved (00h)
-
- Bitfields for miscellaneous flags:
- Bit(s) Description (Table 0038)
- 0 all modes on all displays on
- 1 gray summing on
- 2 monochrome display attached
- 3 default palette loading disabled
- 4 cursor emulation enabled
- 5 0 = intensity; 1 = blinking
- 6 PS/2 P70 plasma display (without 9-dot wide font) active
- 7 unused (0)
-
- Bitfields for save pointer state flags:
- Bit(s) Description (Table 0039)
- 0 512 character set active
- 1 dynamic save area present
- 2 alpha font override active
- 3 graphics font override active
- 4 palette override active
- 5 DCC override active
- 6-7 unused (0)
-
- Format of Static Functionality Table:
- Offset Size Description (Table 0040)
- 00h BYTE modes supported 1
- bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
- 01h BYTE modes supported 2
- bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
- 02h BYTE modes supported 3
- bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
- bit 4 to bit 7 unused (0)
- 03h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 4
- bit 0 to bit 7 = modes 18h-1Fh supported
- 04h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 5
- bit 0 to bit 7 = modes 20h-27h supported
- 05h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 6
- bit 0 to bit 7 = modes 28h-2Fh supported
- 06h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 7
- bit 0 to bit 7 = modes 30h-37h supported
- 07h BYTE scan lines supported
- bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
- bits 3-7 = unused (0)
- 08h BYTE total number of character blocks available in text modes
- 09h BYTE maximum number of active character blocks in text modes
- 0Ah WORD miscellaneous function support flags (see #0041)
- 0Ch WORD reserved
- 0Eh BYTE save pointer function flags (see #0042)
- 0Fh BYTE reserved
-
- Bitfields for miscellaneous function support flags:
- Bit(s) Description (Table 0041)
- 0 all modes on all displays function supported
- 1 gray summing function supported
- 2 character font loading function supported
- 3 default palette loading enable/disable supported
- 4 cursor emulation function supported
- 5 EGA palette present
- 6 color palette present
- 7 color-register paging function supported
- 8 light pen supported (see AH=04h)
- 9 save/restore state function 1Ch supported
- 10 intensity/blinking function supported (see AX=1003h)
- 11 Display Combination Code supported (see #0036)
- 12-15 unused (0)
-
- Bitfields for save pointer function flags:
- Bit(s) Description (Table 0042)
- 0 512 character set supported
- 1 dynamic save area supported
- 2 alpha font override supported
- 3 graphics font override supported
- 4 palette override supported
- 5 DCC extension supported
- 6-7 unused (0)
- --------V-101C-------------------------------
- INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
- AH = 1Ch
- AL = function
- 00h return state buffer size
- Return: BX = number of 64-byte blocks needed
- 01h save video state
- ES:BX -> buffer
- 02h restore video state
- ES:BX -> buffer containing previously saved state
- CX = requested states (see #0043)
- Return: AL = 1Ch if function supported
- Notes: many BIOSes corrupt the video registers when saving the state, so a
- program should restore the state immediately after saving it (the
- saved data is uncorrupted)
- the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
- this function is not supported when DOS/V is running
-
- Bitfields for requested states:
- Bit(s) Description (Table 0043)
- 0 video hardware (see #0044)
- 1 BIOS data areas
- 2 color registers and DAC state (see #0045)
- 3-15 unused (0)
-
- Format of VGA video hardware state:
- Offset Size Description (Table 0044)
- 00h BYTE sequencer index register
- 01h BYTE CRTC index register
- 02h BYTE graphics controller index register
- 03h BYTE attribute controller index register
- 04h BYTE feature controller register
- 05h 4 BYTEs sequencer registers
- 09h BYTE sequencer register 0
- 0Ah 25 BYTEs CRTC registers 0-8
- 23h 16 BYTEs palette registers 00h-0Fh
- 33h 4 BYTEs attribute registers 10h-13h
- 37h 9 BYTEs graphics controller registers 0-8
- 40h BYTE CRTC base address (low)
- 41h BYTE CRTC base address (high)
- 42h BYTE plane 0 latch
- 43h BYTE plane 1 latch
- 44h BYTE plane 2 latch
- 45h BYTE plane 3 latch
-
- Format of VGA DAC state:
- Offset Size Description (Table 0045)
- 00h BYTE read/write mode DAC
- 01h BYTE pixel address
- 02h BYTE pixel mask
- 03h 768 BYTEs color data (256 triples)
- 303h BYTE color select register
- --------J-101D-------------------------------
- INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
- AH = 1Dh
- AL = function
- 00h enable shift status line(s)
- BX = number of lines to reserve at bottom of screen (usu. 1)
- 01h disable shift status line
- BX = number of lines reserved at bottom of screen (usually 1)
- 02h get number of status lines
- Return: BX = number of lines reserved for shift status
- SeeAlso: AH=19h
- --------V-101D-------------------------------
- INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
- AH = 1Dh
- AL = video mode
- ES = caller's segment
- Return: nothing
- Note: the caller's segment contains at offset 5Ch (FCB field in PSP)
- or 100h a table with sync parameters (see #0046) (BIOS looks at both
- offsets)
-
- Format of SpeedSTAR Plus sync table:
- Offset Size Description (Table 0046)
- 00h 9 BYTEs ID contains string 'ey5CENTER'
- 09h 5 BYTEs sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
- 0Bh 5 BYTEs sync parameters for 800x600 modes 29h,30h,2Ah
- 13h 5 BYTEs sync parameters for 1024x768 modes 37h,38h
- --------V-101D-------------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 1Dh
- Note: these versions of the BIOS jump to a random location on this function
- due to a fencepost error
- --------V-101F00-----------------------------
- INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
- AX = 1F00h
- Return: AL = 1Fh if supported
- BX = number of bytes of DMQS data
- Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
- and later models.
- SeeAlso: AX=1F01h
- --------V-101F01-----------------------------
- INT 10 - VIDEO - XGA - READ DMQS DATA
- AX = 1F01h
- ES:DI -> user buffer for return data (call AX=1F00h for size)
- Return: AL = 1Fh if function supported
- user buffer filled with DMQS data (see #0047)
- Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
- and later models.
- SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
-
- Format of XGA DMQS buffer:
- Offset Size Description (Table 0047)
- 00h WORD offset (in bytes) to DMQS data for next XGA instance
- 02h BYTE slot number
- 03h BYTE XGA implementation function level identifier
- 04h BYTE XGA implementation resolution level identifier
- 05h WORD vendor identifier - identifies card vendor
- 07h WORD vendor defined field
- 09h WORD XGA adapter I/O register base address
- 0Bh WORD XGA coprocessor register base address
- (paragraph--multiply by 10h to get physical address)
- 0Dh WORD 1 Megabyte system video memory aperture
- 0000h if not allocated
- (Multiply by 100000h to get physical address)
- 0Fh WORD 4 Megabyte system video memory aperture
- 0000h if not allocated
- (multiply by 100000h to get physical address)
- 11h WORD video memory base address
- (multiply by 100000h to get physical address)
- 13h WORD composite ID of the attached display
- 15h BYTE amount of video memory available, in multiples of 256K bytes
- 16h DWORD alternate XGA coprocessor register base address. 0 = none.
- 1Ah var DMQS Data for further XGA Instances (as above)
- Note: "Instances" refers to the capability of having up to 8 XGA
- adapters in one computer.
- --------V-103000CX0000-----------------------
- INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
- AX = 3000h
- CX = 0000h
- DX = 0000h
- Return: CX:DX -> 3270PC configuration table (see #0048)
- CX:DX = 0000h:0000h if 3270PC Control Program not active
- SeeAlso: AX=1F01h
-
- Format of 3270 PC configuration table:
- Offset Size Description (Table 0048)
- 00h BYTE aspect ratio X
- 01h BYTE aspect ratio Y
- 02h BYTE monitor type (see #0049)
- 03h BYTE reserved
- 04h BYTE adapter ID
- 00h = 5151/5272 adapter
- 04h = 5151/5272 with XGA adapter
- 30h = 3295 or 3270PC G/GX adapter
- 05h BYTE reserved
- 06h BYTE function flags 1 (see #0050)
- 07h BYTE function flags 2
- bit 6: GPI graphics supported
- 08h WORD segment address of Control Program Level table (see #0051)
- 0Ah 10 BYTEs reserved
-
- (Table 0049)
- Values for 3270 PC monitor type:
- 00h 5151 (mono) or 5272 (color)
- 01h 3295
- 02h 5151 or 5272 with XGA (???) graphics adapter
- 03h 5279 with 3270PC G adapter
- 04h 5379 model C01 with 3270PC GX adapter
- 05h 5379 model M01 with 3270PC GX adapter
- 07h non-3270PC with 3270 Workstation Program
- FFh 3270PC Control Program not loaded
-
- Bitfields for 3270 PC function flags 1:
- Bit(s) Description (Table 0050)
- 7 mono text, 1 page
- 6 color text, 1 page
- 5 color text, 4 pages
- 4 CGA color graphics
- 3 720x350 two-color graphics
- 2 360x350 four-color graphics
- 1 720x350 eight-color graphics
-
- Format of Control Program Level table:
- Offset Size Description (Table 0051)
- 00h WORD program version
- 02xxh = 3270PC Control Program v2.xx
- 03xxh = 3270PC Control Program v3.xx
- 04xxh = 3270 Workstation Program v1.xx
- 02h BYTE Control Program ID (00h)
- 03h 27 BYTEs Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
- --------a-103800-----------------------------
- INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
- AX = 3800h
- Return: ES:DI -> configuration info (see #0052)
- Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
- Notes: this call is also used as the installation check by verifying that the
- returned ES:DI points at valid configuration info
- Tinytalk v1.09f ignores AL and always returns the configuration info;
- v1.10 adds several subfunctions selected with AL
- SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
- SeeAlso: INT 2F/FB00h"AutoBraille"
- Index: installation check;Tinytalk Personal
-
- Format of Tinytalk Personal configuration info:
- Offset Size Description (Table 0052)
- 00h 8 BYTEs signature "TTCONFIG"
- 08h WORD size of configuration data, not counting signature, this WORD,
- or the following byte
- 0Ah BYTE ???
- 0Bh ??? configuration data
- --------a-103801-----------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AX = 3801h
- DL = ???
- Return: ???
- SeeAlso: AX=3800h,AX=3802h
- --------a-103802-----------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AX = 3802h
- DL = ???
- Return: ???
- SeeAlso: AX=3800h,AX=3801h
- --------a-103803-----------------------------
- INT 10 - Tinytalk Personal v1.10 - GET ???
- AX = 3803h
- Return: AL = ???
- SeeAlso: AX=3800h,AX=3804h,AX=3805h
- --------a-103804-----------------------------
- INT 10 - Tinytalk Personal v1.10 - GET ???
- AX = 3804h
- Return: AX = ???
- SeeAlso: AX=3800h,AX=3803h,AX=3805h
- --------a-103805-----------------------------
- INT 10 - Tinytalk Personal v1.10 - GET ???
- AX = 3805h
- Return: AL = ???
- SeeAlso: AX=3800h,AX=3803h,AX=3804h
- --------a-103806-----------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AX = 3806h
- ES:DX -> ASCIZ ???
- Return: ???
- SeeAlso: AX=3800h
- --------a-1039-------------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AH = 39h
- Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
- Note: this function was a NOP in TTDEMO.EXE, but may be implemented in other
- variants of Tinytalk
- --------V-1040-------------------------------
- INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
- AH = 40h
- Desc: switch the Hercules Graphics Card into graphics mode (720x348)
- SeeAlso: AH=00h,AH=41h
- Index: video modes;Hercules
- --------V-1041-------------------------------
- INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
- AH = 41h
- Desc: switch the Hercules Graphics Card into text mode
- SeeAlso: AH=00h,AH=40h
- Index: video modes;Hercules
- --------V-1042-------------------------------
- INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
- AH = 42h
- SeeAlso: AH=45h
- --------V-1043-------------------------------
- INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
- AH = 43h
- AL = page number (0,1)
- Desc: specify which of the two pages of video memory is to be used for
- output
- SeeAlso: AH=05h,AH=44h,AH=45h
- --------V-1044-------------------------------
- INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
- AH = 44h
- AL = drawing function
- 00h clear pixels
- 01h set pixels
- 02h invert pixels
- Desc: specify how graphics output will change the display
- SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
- --------V-1045-------------------------------
- INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
- AH = 45h
- AL = page number (0,1)
- Desc: specify which of the two pages of video memory is visible on screen
- SeeAlso: AH=05h,AH=42h,AH=43h
- --------V-1046-------------------------------
- INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
- AH = 46h
- DI = x (0-719)
- BP = y (0-347)
- Note: function 44h determines operation and function 43h which page to use
- SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
- --------V-1047-------------------------------
- INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
- AH = 47h
- DI = x (0-719)
- BP = y (0-347)
- Return: AL = 00h pixel clear
- AL = 01h pixel set
- Note: function 43h specifies which page is used
- SeeAlso: AH=0Dh,AH=46h
- --------V-1048-------------------------------
- INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
- AH = 48h
- DI = x (0-719)
- BP = y (0-347)
- Desc: specify the location from which to start the next graphics output
- SeeAlso: AH=49h
- --------V-1049-------------------------------
- INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
- AH = 49h
- DI = x (0-719)
- BP = y (0-347)
- Note: function 48h or 49h specify first point, 44h operation and 43h page to
- use
- SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
- --------V-104A-------------------------------
- INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
- AH = 4Ah
- DI = x coordinate of lower left corner
- BP = y coordinate of lower left corner
- BX = height in pixels
- CX = width in pixels
- Desc: draw a solid rectangle of the specified size at the given location
- SeeAlso: AH=4Eh
- --------V-104B-------------------------------
- INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
- AH = 4Bh
- AL = character to display
- DI = x (0-719)
- BP = y (0-347)
- Note: unlike the other BIOS character functions character position is
- specified in pixels rather than rows and columns
- SeeAlso: AH=09h,AH=0Ah
- ----------104B-------------------------------
- INT 10 - FRIEZE - API
- AH = 4Bh
- CL = function
- 00h (v6.x-) print window
- AL = mode
- 00h character
- 01h normal
- 02h sideways
- 01h load window
- ES:BX -> ASCIZ filename from which to read
- 02h save window
- ES:BX -> ASCIZ filename to which to write
- 03h set print width
- AL = width in 1/4 inches
- 04h set print height
- AL = height in 1/4 inches
- 05h reserved
- 06h set left margin
- AL = printout margin in 1/4 inches
- 07h set window size
- ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
- 08h reserved
- 09h set patterns
- ES:BX -> 16-BYTE vector of screen->printer color correspondnces
- 0Ah get patterns
- ES:BX -> 16-BYTE buffer for color correspondences
- 0Bh set mode
- AL = mode
- 0Ch (v7.41) ???
- AL = ???
- 00h ??? (calls original INT 05)
- else ???
- 0Dh (v7.41) ???
- AL = ???
- 00h ??? (calls original INT 05)
- else ???
- 0Eh (v7.41) ???
- ???
- 0Fh get window
- ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
- 10h set print options
- ES:BX -> printer options in same format as FRIEZE cmdline
- 11h initialize
- ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
- 12h (v7.41) ???
- ???
- 13h (v7.41) ???
- ???
- 14h get version
- Return: AH = major version (00h if FRIEZE version before 7)
- AL = minor version
- 15h set parameters
- ES:BX -> parameter table (see #0054)
- 16h get parameters
- ES:BX -> buffer for parameter table (see #0054)
- 17h get printer resolution
- ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
- 18h (v8.0 only) reserved
- 50h (v7.41) get ???
- Return: AX = ???
- 51h (v7.41) get ???
- Return: ES = ??? (seen 2348h)
- AX = ??? (seen 8432h)
- Return: AX = status (see #0053)
- SeeAlso: AH=0Fh/SI=F123h
-
- (Table 0053)
- Values for FRIEZE function status:
- 00h successful
- 01h user aborted printout with ESC
- 02h reserved
- 03h file read error
- 04h file write error or printer error
- 05h file not found
- 06h invalid header (not an image or wrong screen mode) or can't create file
- 07h file close error
- 08h disk error
- 09h (v7.0+) printer error
- 0Ah invalid function
- 0Bh (v7.0+) can't create file
- 0Ch (v7.0+) wrong video mode
-
- Format of FRIEZE parameter table:
- Offset Size Description (Table 0054)
- 00h WORD top margin (1/100 inch)
- 02h WORD left margin (1/100 inch)
- 04h WORD horizontal size (1/100 inch)
- 06h WORD vertical size (1/100 inch)
- 08h WORD quality/draft mode
- 00h draft mode
- 01h quality mode
- 02h use horizontal/vertical resolution for output resolution
- 0Ah WORD printer horizontal resolution (dots per inch)
- 0Ch WORD printer vertical resolution (dots per inch)
- 0Eh WORD reserved (FFFFh)
- Note: any field which should remain unchanged may be filled with FFFFh
- --------V-104C-------------------------------
- INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
- AH = 4Ch
- AL = quadrant (1 = upper right, 2 = upper left, etc)
- DI = x coordinate of center
- BP = y coordinate of center
- BX = radius
- SeeAlso: AH=49h,AH=4Dh
- --------V-104D-------------------------------
- INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
- AH = 4Dh
- DI = x of center
- BP = y of center
- BX = radius
- SeeAlso: AH=49h,AH=4Ch
- --------V-104E-------------------------------
- INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
- AH = 4Eh
- DI = x coordinate of an interior point
- BP = y coordinate of an interior point
- Desc: fill a convex polygonal area bounded by a contiguous line of the
- opposite color with the border color
- Note: the first fill makes the figure solid, the second erases it
- SeeAlso: AH=4Ah
- --------V-104E00-----------------------------
- INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
- AX = 4E00h
- ES:DI -> 256-byte buffer for XGA information (see #0055)
- Return: AL = 4Eh if function supported
- AH = status
- 00h successful
- else error code
- Desc: determine whether VESA XGA extensions are present and the capabilities
- supported by the display adapter
- SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
- Index: installation check;VESA XGA
-
- Format of XGA information buffer:
- Offset Size Description (Table 0055)
- 00h 4 BYTEs signature ("VESA")
- 04h WORD VESA version number
- 06h DWORD pointer to ASCIZ OEM string
- 0Ah DWORD environment flags (see #0056)
- 0Eh WORD number of XGA adapters installed (other VESA XGA functions
- require a handle indicating which adapter to use)
- 10h 240 BYTEs reserved
-
- Bitfields for XGA environment flags:
- Bit(s) Description (Table 0056)
- 0-1 system bus (00 = MCA, 01 = ISA, 10 = EISA)
- 2 bus mastering available
- 3-31 reserved
- --------V-104E01----------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
- AX = 4E01h
- DX = XGA handle (0 to number of XGAs-1)
- ES:DI -> 256-byte buffer for subsystem information (see #0057)
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AX=4E00h,AX=4E02h
-
- Format of XGA subsystem information:
- Offset Size Description (Table 0057)
- 00h DWORD pointer to null-terminated board OEM string
- 04h DWORD capabilities (see #0058)
- 08h DWORD pointer to 8KB XGA ROM (or NULL)
- 0Ch DWORD pointer to the XGA memory mapped registers
- 10h WORD base address of XGA I/O registers (21x0h)
- 12h DWORD pointer to start of physical video memory
- (A000h:0000h or B000h:0000h)
- 16h DWORD physical address of 4MB aperture (or NULL if none)
- 1Ah DWORD physical address of 1MB aperture (or NULL if none)
- 1Eh DWORD physical address of 64KB aperture (or NULL if not enabled)
- 22h DWORD physical address of OEM aperture (or NULL if none)
- 26h WORD size of OEM aperture in 64KByte units
- 28h DWORD pointer to list of video modes
- The list is a series of WORDs terminated by FFFFh
- 2Ch WORD number of 64KB blocks on the board
- 2Eh DWORD XGA manufacturer ID
- byte 0 POS data index 1
- byte 1 is index 2
- byte 2 is 21xAh index 75h
- 32h 206 BYTEs reserved
-
- Bitfields for XGA capabilities:
- Bit(s) Description (Table 0058)
- 0-1 board bus architecture: 0=MCA, 1=ISA, 3=EISA
- 2-3 reserved
- 4-6 DMA Channel assigned for acquiring bus mastership (only for ISA bus)
- 7 DMA Channel Status (ISA only). enabled if set
- 8-31 reserved
- --------V-104E02-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
- AX = 4E02h
- CX = Video mode
- DX = XGA handle
- ES:DI -> 256 byte buffer for mode information (see #0059)
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AX=4E00h,AX=4E01h
-
- Format of XGA mode information:
- Offset Size Description (Table 0059)
- 00h WORD attributes of the mode (see #0060)
- 02h WORD bytes per logical scanline
- 04h WORD horizontal resolution in pixels
- 06h WORD vertical resolution in scanlines
- 08h BYTE character Width in pixels
- 09h BYTE character Height in pixels
- 0Ah BYTE number of planes
- 0Bh BYTE bits per pixels
- 0Ch BYTE memory model (see #0061)
- 0Dh BYTE number of Image Pages
- 0Eh BYTE number of Red bits
- 0Fh BYTE bit position of Red bit field
- 10h BYTE number of Green bits
- 11h BYTE bit position of Green bit field
- 12h BYTE number of Blue bits
- 13h BYTE bit position of Blue bit field
- 14h BYTE number of Reserved bits
- 15h BYTE bit position of Reserved bit field
- 16h 235 BYTEs reserved
-
- Bitfields for XGA mode attributes:
- Bit(s) Description (Table 0060)
- 0 set if mode is supported
- 1 reserved
- 2 output is supported by the BIOS
- 3 reserved
- 4 if set this is a graphics mode (VGA registers inactive, XGA active),
- if clear this is a text mode (VGA registers active, XGA inactive)
-
- (Table 0061)
- Values for XGA video memory model:
- 00h Text Mode
- 01h CGA graphics
- 02h Hercules graphics
- 03h 4-planar graphics
- 04h Packed Pixel
- 05h Non-chain 4, 256 color
- 06h Direct Color
- 07h YUV-24
- --------V-104E03-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
- AX = 4E03h
- BX = video mode
- CX = other command flags
- bit 0 If clear the feature connector is set to the default state
- DX = XGA handle
- ES:DI -> 256 byte buffer
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AH=00h,AX=4E04h,AX=4F02h
- --------V-104E04-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
- AX = 4E04h
- DX = XGA handle
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- BX??? = current mode
- else error code
- SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
- --------V-104E05-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
- AX = 4E05h
- BX = Feature Connector State (see #0062)
- DX = XGA handle
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AX=4E00h,AX=4E06h
-
- Bitfields for XGA Feature Connector State:
- Bit(s) Description (Table 0062)
- 0 Feature Connector is enabled
- 1 Feature Connector is in Output Mode rather than Input Mode
- 2-15 reserved (0)
- --------V-104E06-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
- AX = 4E06h
- DX = XGA handle
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- BX = Feature Connector State (see #0062)
- SeeAlso: AX=4E00h,AX=4E05h
- --------V-104F00-----------------------------
- INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
- AX = 4F00h
- ES:DI -> buffer for SuperVGA information (see #0063)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ES:DI buffer filled
- 01h failed
- ---VBE v2.0---
- 02h function not supported by current hardware configuration
- 03h function invalid in current video mode
- Desc: determine whether VESA BIOS extensions are present and the capabilities
- supported by the display adapter
- SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h,AX=A00Ch
- Index: installation check;VESA SuperVGA
-
- Format of SuperVGA information:
- Offset Size Description (Table 0063)
- 00h 4 BYTEs (ret) signature ("VESA")
- (call) VESA 2.0 request signature ("VBE2"), required to receive
- version 2.0 info
- 04h WORD VESA version number (one-digit minor version)
- 06h DWORD pointer to OEM name
- "761295520" for ATI
- 0Ah DWORD capabilities flags (see #0064)
- 0Eh DWORD pointer to list of supported VESA and OEM video modes
- (list of words terminated with FFFFh)
- 12h WORD total amount of video memory in 64K blocks
- ---VBE v1.x ---
- 14h 236 BYTEs reserved
- ---VBE v2.0 ---
- 14h WORD OEM software version
- 16h DWORD pointer to vendor name
- 1Ah DWORD pointer to product name
- 1Eh DWORD pointer to product revision string
- 22h 222 BYTEs reserved
- 100h 256 BYTEs OEM scratchpad
- Notes: the list of supported video modes is stored in the reserved portion of
- the SuperVGA information record by some implementations, and it may
- thus be necessary to either copy the mode list or use a different
- buffer for all subsequent VESA calls
- the 1.1 VESA document specifies 242 reserved bytes at the end, so the
- buffer should be 262 bytes to ensure that it is not overrun; for
- v2.0, the buffer should be 512 bytes
- the S3 specific video modes will most likely follow the FFFFH
- terminator at the end of the standard modes. A search must then
- be made to find them, FFFFH will also terminate this second list
-
- Bitfields for VESA capabilities:
- Bit(s) Description (Table 0064)
- 0 DAC can be switched into 8-bit mode
- 1 non-VGA controller
- 2 programmed DAC with blank bit
- 3-31 reserved
- --------V-104F01-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
- AX = 4F01h
- CX = SuperVGA video mode
- ES:DI -> 256-byte buffer for mode information (see #0065)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ES:DI buffer filled
- 01h failed
- Desc: determine the attributes of the specified video mode
- SeeAlso: AX=4F00h,AX=4F02h
-
- Format of VESA SuperVGA mode information:
- Offset Size Description (Table 0065)
- 00h WORD mode attributes (see #0066)
- 02h BYTE window attributes, window A (see #0067)
- 03h BYTE window attributes, window B (see #0067)
- 04h WORD window granularity in KB
- 06h WORD window size in KB
- 08h WORD start segment of window A
- 0Ah WORD start segment of window B
- 0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h)
- 10h WORD bytes per scan line
- ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
- 12h WORD width in pixels (graphics) or characters (text)
- 14h WORD height in pixels (graphics) or characters (text)
- 16h BYTE width of character cell in pixels
- 17h BYTE height of character cell in pixels
- 18h BYTE number of memory planes
- 19h BYTE number of bits per pixel
- 1Ah BYTE number of banks
- 1Bh BYTE memory model type (see #0068)
- 1Ch BYTE size of bank in KB
- 1Dh BYTE number of image pages
- 1Eh BYTE reserved (0)
- ---VBE v1.2+---
- 1Fh BYTE red mask size
- 20h BYTE red field position
- 21h BYTE green mask size
- 22h BYTE green field size
- 23h BYTE blue mask size
- 24h BYTE blue field size
- 25h BYTE reserved mask size
- 26h BYTE reserved mask position
- 27h BYTE direct color mode info
- bit 0: color ramp is programmable
- bit 1: bytes in reserved field may be used by application
- ---VBE v2.0 ---
- 28h DWORD physical address of linear video buffer
- 2Ch DWORD pointer to start of offscreen memory
- 30h WORD KB of offscreen memory
- 32h 206 BYTEs reserved (0)
-
- Bitfields for VESA SuperVGA mode attributes:
- Bit(s) Description (Table 0066)
- 0 mode supported
- 1 optional information available
- 2 BIOS output supported
- 3 set if color, clear if monochrome
- 4 set if graphics mode, clear if text mode
- ---VBE v2.0 ---
- 5 mode is not VGA-compatible
- 6 bank-switched mode not supported
- 7 linear framebuffer mode supported
-
- Bitfields for VESA SuperVGA window attributes:
- Bit(s) Description (Table 0067)
- 0 exists
- 1 readable
- 2 writable
- 3-7 reserved
-
- (Table 0068)
- Values for VESA SuperVGA memory model type:
- 00h text
- 01h CGA graphics
- 02h HGC graphics
- 03h 16-color (EGA) graphics
- 04h packed pixel graphics
- 05h "sequ 256" (non-chain 4) graphics
- 06h direct color (HiColor, 24-bit color)
- 07h YUV (luminance-chrominance, also called YIQ)
- 08h-0Fh reserved for VESA
- 10h-FFh OEM memory models
- --------V-104F02-----------------------------
- INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
- AX = 4F02h
- BX = mode (see #0069,#0070)
- bit 15 set means don't clear video memory
- bit 14 set means enable linear framebuffer mode (VBE v2.0+)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
-
- (Table 0069)
- Values for VESA video mode:
- 00h-FFh OEM video modes (see #0009 at AH=00h)
- 100h 640x400x256
- 101h 640x480x256
- 102h 800x600x16
- 103h 800x600x256
- 104h 1024x768x16
- 105h 1024x768x256
- 106h 1280x1024x16
- 107h 1280x1024x256
- 108h 80x60 text
- 109h 132x25 text
- 10Ah 132x43 text
- 10Bh 132x50 text
- 10Ch 132x60 text
- ---VBE v1.2---
- 10Dh 320x200x32K
- 10Eh 320x200x64K
- 10Fh 320x200x16M
- 110h 640x480x32K
- 111h 640x480x64K
- 112h 640x480x16M
- 113h 800x600x32K
- 114h 800x600x64K
- 115h 800x600x16M
- 116h 1024x768x32K
- 117h 1024x768x64K
- 118h 1024x768x16M
- 119h 1280x1024x32K
- 11Ah 1280x1024x64K
- 11Bh 1280x1024x16M
- ---VBE 2.0---
- 81FFh special full-memory access mode
- Note: the special mode 81FFh preserves the contents of the video memory and
- gives access to all of the memory; VESA recommends that the special
- mode be a packed-pixel mode
- SeeAlso: #0009,#0070
- Index: video modes;VESA
-
- (Table 0070)
- Values for S3 OEM video mode:
- 201h 640x480x256
- 202h 800x600x16
- 203h 800x600x256
- 204h 1024x768x16
- 205h 1024x768x256
- 206h 1280x960x16
- 207h 1152x864x256 (Diamond Stealth 64)
- 208h 1280x1024x16
- 20Ah 1152x864x64K (Diamond Stealth 64)
- 211h 640x480x64K (Diamond Stealth 24)
- 212h 640x480x16M (Diamond Stealth 24)
- 301h 640x480x32K
- Note: these modes are only available on video cards using S3's VESA driver
- SeeAlso: #0069
- Index: video modes;S3
- --------V-104F03-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
- AX = 4F03h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- BX = video mode (see #0069,#0070)
- bit 14: linear frame buffer enabled (VBE v2.0+)
- bit 15: don't clear video memory
- 01h failed
- SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
- --------V-104F04-----------------------------
- INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
- AX = 4F04h
- DL = subfunction
- 00h get state buffer size
- Return: BX = number of 64-byte blocks needed
- 01h save video states
- ES:BX -> buffer
- 02h restore video states
- ES:BX -> buffer
- CX = states to save/restore (see #0071)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
-
- Bitfields for VESA SuperVGA states to save/restore:
- Bit(s) Description (Table 0071)
- 0 video hardware state
- 1 video BIOS data state
- 2 video DAC state
- 3 SuperVGA state
- --------V-104F05-----------------------------
- INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
- AX = 4F05h
- BH = subfunction
- 00h select video memory window
- DX = window address in video memory (in granularity units)
- 01h get video memory window
- Return: DX = window address in video memory (in gran. units)
- BL = window number
- 00h window A
- 01h window B
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
- --------V-104F06-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
- AX = 4F06h
- BL = function
- 00h set scan line length
- CX = desired width in pixels
- 01h get scan line length
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = bytes per scan line
- CX = number of pixels per scan line
- DX = maximum number of scan lines
- Notes: if the desired width is not achievable, the next larger width will be
- set
- the scan line may be wider than the visible area of the screen
- this function is valid in text modes, provided that pixel values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
- --------V-104F06BL02-------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
- AX = 4F06h
- BL = 02h
- CX = desired scanline width in bytes
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = bytes per scan line
- CX = number of pixels per scan line
- DX = maximum number of scan lines
- Notes: if the desired width is not achievable, the next larger width will be
- set
- the scan line may be wider than the visible area of the screen
- this function is valid in text modes, provided that pixel values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
- --------V-104F06BL03-------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
- AX = 4F06h
- BL = 03h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = maximum bytes per scan line
- CX = maximum number of pixels per scan line
- Notes: this function is valid in text modes, provided that pixel values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
- --------V-104F07-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
- AX = 4F07h
- BL = function
- 00h,80h set display start
- CX = leftmost displayed pixel in scan line
- DX = first displayed scan line
- 01h get display start
- Return: BH = 00h
- CX = leftmost displayed pixel in scan line
- DX = first displayed scan line
- BH = 00h (reserved)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- Notes: this function is valid in text modes, provided that values are
- multiplied by the character cell width/height
- subfunction 80h waits until vertical retrace before changing the
- display start address (VBE v2.0+)
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
- --------V-104F08-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
- AX = 4F08h
- BL = function
- 00h set DAC palette width
- BH = desired number of bits per primary color
- 01h get DAC palette width
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BH = current number of bits per primary (06h = standard VGA)
- --------V-104F09-----------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
- AX = 4F09h
- BL = function
- 00h set palette
- 01h get palette
- 02h set secondary palette data
- 03h get secondary palette data
- 80h set palette during vertical retrace
- CX = number of entries to change
- DX = starting palette index
- ES:DI -> palette buffer (see #0072)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
-
- Format of VESA VBE palette entry:
- Offset Size Description (Table 0072)
- 00h BYTE red
- 01h BYTE green
- 02h BYTE blue
- 03h BYTE alpha or alignment byte
- --------V-104F0A-----------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE CODE
- AX = 4F0Ah
- BX = function to be copied (see #0073)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- CX = number of bytes to copy
- ES:DI -> code for requested function
- 01h failed
-
- (Table 0073)
- Values for VESA VBE protected-mode function identifiers:
- 0001h set bank (see AX=4F05h)
- 0002h set display start (see AX=4F07h)
- 0003h set palette (see AX=4F09h)
- --------p-104F10BL00-------------------------
- INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
- AX = 4F10h
- BL = 00h
- ES:DI = 0000h:0000h (reserved for future use)
- Return: AL = 4Fh if function supported (installed)
- AH = call status
- 00h successful
- else failed
- ---if successful---
- BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
- BH = supported states (see #0074)
- ES:DI unchanged
- Index: installation check;VESA VBE/Power Management
- SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
-
- Bitfields for VESA VBE/PM supported power states:
- Bit(s) Description (Table 0074)
- 0 standby
- 1 suspend
- 2 off
- 3 reduced on
- --------p-104F10BL01-------------------------
- INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
- AX = 4F10h
- BL = 01h
- BH = new state (see #0075)
- Return: AL = 4Fh if function supported
- AH = call status
- 00h successful
- else failed
- SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
-
- (Table 0075)
- Values for VESA VBE/PM power state:
- 00h On
- 01h standby
- 02h suspend
- 04h Off
- 08h reduced On (for flat screens)
- --------p-104F10BL02-------------------------
- INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
- AX = 4F10h
- BL = 02h
- Return: AL = 4Fh if function supported
- AH = call status
- 00h successful
- BH = current power state (see #0075)
- else failed
- SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h
- --------s-104F13BX0000-----------------------
- INT 10 - VESA Audio Interface - VBE/AI INSTALLATION CHECK
- AX = 4F13h
- BX = 0000h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- BX = version (0010h for 1.00 -- note nonstandard value!)
- 01h failed
- SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
- --------s-104F13BX0001-----------------------
- INT 10 - VESA Audio Interface - LOCATE DEVICE
- AX = 4F13h
- BX = 0001h
- CX = 0000h ???
- DX = type of device
- 0001h Wave device
- 0002h MIDI device
- 0003h Volume device
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
- --------s-104F13BX0002-----------------------
- INT 10 - VESA Audio Interface - QUERY DEVICE
- AX = 4F13h
- BX = 0002h
- CX = handle
- DX = query
- 0001h return length of GeneralDeviceClass
- 0002h return copy of GeneralDeviceClass (see #0076)
- 0003h return length of Volume Info Structure
- 0004h return copy of Volume Info Structure (see #0086)
- 0005h return length of Volume Services Structure
- 0006h return copy of Volume Services Structure (see #0088)
- 0007h-000Fh reserved
- 0010h-FFFFh device-specific
- SI:DI -> buffer (functions 0002h,0004h,0006h)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- SI:DI = length (functions 1,3,5)
- SI:DI buffer filled (functions 2,4,6)
- 01h failed
- Note: functions 0003h to 0006h are only supported for the Volume device
-
- Format of GeneralDeviceClass structure:
- Offset Size Description (Table 0076)
- 00h 4 BYTEs name of the structure ("GENI")
- 04h DWORD structure length
- 08h WORD type of device (1=Wave, 2=MIDI)
- 0Ah WORD version of VESA driver support (0100h for 1.00)
- 10h var for CX=handle for Wave device:
- Wave Info structure (see #0077)
- some bytes ???
- for CX=handle for MIDI device:
- MIDI Info Structure (see #0082)
- first 8 bytes of MIDI Service Structure ???
- SeeAlso: #0086,#0088
-
- Format of WAVE Info Structure:
- Offset Size Description (Table 0077)
- 00h 4 BYTEs name of the structure ("WAVI")
- 04h DWORD structure length [0000007Eh]
- 08h DWORD driver software version [00000003h]
- 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
- 2Ch 32 BYTEs vendor product name
- 4Ch 32 BYTEs vendor chip/hardware description
- 6Ch BYTE installed board number
- 6Dh 3 BYTEs unused data
- 70h DWORD feature bits (see #0078)
- 74h WORD user determined preference field
- 76h WORD memory required for driver use [0200h]
- 78h WORD number of timer tick callbacks per second [0000h]
- 7Ah WORD channels: 1 = mono, 2 = stereo
- stereo is assumed to be interleaved data
- 7Ch WORD bitfield of max sample sizes (see #0079)
- SeeAlso: #0082
-
- Bitfields for Wave feature bits:
- Bit(s) Description (Table 0078)
- 0 8000hz Mono Playback
- 1 8000hz Mono Record
- 2 8000hz Stereo Record
- 3 8000hz Stereo Playback
- 4 8000hz Full Duplex Play/Record
- 5 11025hz Mono Playback
- 6 11025hz Mono Record
- 7 11025hz Stereo Record
- 8 11025hz Stereo Playback
- 9 11025hz Full Duplex Play/Record
- 10 22050hz Mono Playback
- 11 22050hz Mono Record
- 12 22050hz Stereo Record
- 13 22050hz Stereo Playback
- 14 22050hz Full Duplex Play/Record
- 15 44100hz Mono Playback
- 16 44100hz Mono Record
- 17 44100hz Stereo Record
- 18 44100hz Stereo Playback
- 19 44100hz Full Duplex Play/Record
- 20-26 reserved (0)
- 27 driver must pre-handle the data
- 28 Variable Sample mono playback
- 29 Variable Sample stereo playback
- 30 Variable Sample mono record
- 31 Variable Sample stereo record
-
- (Table 0079)
- Values for Sample data size:
- 01h 8bit play
- 02h 16bit play
- 10h 8bit record
- 20h 16bit record
-
- Format of WAVE Audio Services structure:
- Offset Size Description (Table 0080)
- 00h 4 BYTEs name of the structure
- 04h DWORD structure length
- 08h 16 BYTEs for future expansion
- ---entry points (details???)---
- 18h DWORD DeviceCheck
- 11h compression (see also #0081)
- 12h driver state
- 13h get current pos
- 14h sample rate
- 15h set preference
- 16h get DMA,IRQ
- 17h get IO address
- 18h get mem address
- 19h get mem free
- 1Ah full duplex
- 1Bh get block size
- 1Ch get PCM format
- 1Dh enable PCM format
- 80h-.. vendors can add DevChks above 0x80
- 1Ch DWORD PCMInfo
- 20h DWORD PlayBlock
- 24h DWORD PlayCont
- 28h DWORD RecordBlock
- 2Ch DWORD RecordCont
- 30h DWORD PauseIO
- 34h DWORD ResumeIO
- 38h DWORD StopIO
- 3Ch DWORD WavePrepare
- 40h DWORD WaveRegister
- 44h DWORD GetLastError
- 01h unsupported feature/function
- 02h bad sample rate
- 03h bad block length
- 04h bad block address
- 05h app. missed an IRQ
- 06h don't understand the PCM size/format
- 80h-.. vendors specific errors
- 48h DWORD TimerTick
- 4Ch DWORD ApplPSyncCB: CallBack: play filled in by the app
- 50h DWORD ApplRSyncCB: CallBack: rec filled in by the app
- SeeAlso: #0084,#0088
-
- (Table 0081)
- Values for type of compression:
- 01h IMA play
- 02h ALAW play
- 03h ULAW play
- 11h IMA record
- 12h ALAW record
- 13h ULAW record
-
- Format of MIDI Info Structure:
- Offset Size Description (Table 0082)
- 00h 4 BYTEs name of the structure ("MIDI")
- 04h DWORD structure length
- 08h DWORD driver software version [00000003h]
- 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
- 2Ch 32 BYTEs vendor product name
- 4Ch 32 BYTEs vendor chip/hardware description
- 6Ch BYTE installed board number
- 6Dh 3 BYTEs unused data
- 70h 14 BYTEs the patch library file name [OPL2.BNK 00..]
- 7Eh DWORD feature bits (see #0083)
- 80h WORD user determined preference field
- 82h WORD memory required for driver use
- 84h WORD # of timer tick callbacks per second
- 86h WORD max # of tones (voices, partials)
- SeeAlso: #0076,#0084,#0086
-
- Bitfields for MIDI feature bits:
- Bit(s) Description (Table 0083)
- 0-3 reserved for GM extensions
- 4 Transmitter/Receiver only
- 5 Patches preloaded
- 6 MIDI receive has time stamp
- 8 MIDI interrupt driven input supported
- 9 MIDI polled input supported
- 10 MIDI remote patches supported
-
- Format of MIDI Service structure:
- Offset Size Description (Table 0084)
- 00h 4 BYTEs name of the structure ("MIDS")
- 04h DWORD structure length
- 08h 16 WORDs patches loaded table bit field
- 28h 16 BYTEs for future expansion
- ---entry points (details???)---
- 38h DWORD device check
- 11h return available tones
- 12h return TRUE/FALSE if patch is understood
- 13h set preference
- 14h allow/disallow voice stealing
- 15h get FIFO sizes
- 16h get DMA,IRQ
- 17h get IO address
- 18h get mem address
- 19h get mem free
- 80h-.. vendors can add DevChks above 0x80
- 3Ch DWORD global reset
- 40h DWORD MIDI msg
- 44h DWORD poll MIDI
- 48h DWORD preload patch
- 4Ch DWORD unload patch
- 50h DWORD timer tick
- 54h DWORD get last error
- 01h unsupported feature/function
- 02h unknown patch type (see #0085)
- 03h all tones are used
- 04h messages are out of sync
- 05h an incoming patch was incomplete
- 06h an incoming patch couldn't be stored
- 07h had to drop an incoming byte
- 08h driver is failing a patch download
- 80h-.. vendors specific errors
- 58h DWORD Patch Block free callback
- 5Ch DWORD MIDI byte avail. callback
- SeeAlso: #0080,#0088
-
- (Table 0085)
- Values for MIDI Registered Patch Types:
- 10h OPL2
- 11h OPL3
-
- Format of Volume Info Structure:
- Offset Size Description (Table 0086)
- 00h 4 BYTEs name of the structure ("VOLI")
- 04h DWORD structure length (00000092h)
- 08h DWORD driver software version [00000001h]
- 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
- 2Ch 32 BYTEs vendor product name
- 4Ch 32 BYTEs vendor chip/hardware description
- 6Ch BYTE installed board number (0 for 1st/only board)
- 6Dh 3 BYTEs unused data (0)
- 70h 24 BYTEs text name of the mixer channel
- 88h DWORD features bits (see #0087)
- 8Ch WORD minimum volume setting
- 8Eh WORD maximum volume setting
- 90h WORD attenuation/gain crossover
- SeeAlso: #0076,#0088
-
- Bitfields for Volume feature bits:
- Bit(s) Description (Table 0087)
- 0 Stereo Volume control available
- 2 Low Pass Filter is available
- 3 High Pass Filter is available
- 4 Parametric Tone Control is available
- 5 selectable output paths
- 8 Azimuth Field positioning supported
- 9 Phi Field positioning supported
- 10-30 unused???
- 31 Master Volume device
-
- Format of Volume Services Structure:
- Offset Size Description (Table 0088)
- 00h 4 BYTEs name of the structure ("VOLS")
- 04h DWORD structure length (00000038h)
- 08h 16 BYTEs 16 bytes for future expansion (0)
- ---entry points (details???)---
- 18h DWORD device check
- 0011h filter range
- 0012h filter setting
- 0013h filter current
- 0014h tone range
- 0015h tone setting
- 0016h tone current
- 0017h path
- 0018h get IO address
- 0080h-.. vendors can add DevChks above 0x80
- 1Ch DWORD set vol to an absolute setting
- 01h User master volume setting
- 02h application master volume setting
- 20h DWORD set 3D volume
- 24h DWORD tone control
- 28h DWORD filter control
- 2Ch DWORD output path
- 30h DWORD reset channel
- 34h DWORD get last error
- 01h unsupported feature/function
- 02h out of range parameter value
- 80h+ vendor-specific errors
- SeeAlso: #0080,#0084
- --------s-104F13BX0003-----------------------
- INT 10 - VESA Audio Interface - OPEN DEVICE
- AX = 4F13h
- BX = 0003h
- CX = handle
- DX = API set (16/32-bit)
- SI = segment ???
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- SI:CX -> memory ???
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
- --------s-104F13BX0004-----------------------
- INT 10 - VESA Audio Interface - CLOSE DEVICE
- AX = 4F13h
- BX = 0004h
- CX = handle
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
- --------s-104F13BX0005-----------------------
- INT 10 - VESA Audio Interface - UNINSTALL DRIVER
- AX = 4F13h
- BX = 0005h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
- --------s-104F13BX0006-----------------------
- INT 10 - VESA Audio Interface - DRIVER CHAIN/UNCHAIN
- AX = 4F13h
- BX = 0006h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
- --------V-104F4D-----------------------------
- INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
- AX = 4F4Dh
- BX = number of bytes available for VCI use
- DS:0000h -> buffer for VCI
- ES:DI -> VCI driver callback function
- Return: AL = 4Fh if supported
- AH = status
- 00h successful
- BX = number of bytes used by VCI
- ES:DI -> VCI request handler
- 01h failed
- Desc: allow the VESA BIOS Extensions to cooperate with a pointing-device
- (typically mouse) driver
- --------V-104FFF-----------------------------
- INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
- AX = 4FFFh
- DL = new state (00h off, 01h on)
- Return: AX = 0000h if successful
- --------V-104FFF-----------------------------
- INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
- AX = 4FFFh
- BX = dual display mode
- 00h reset
- 01h set dual display, 32KB VGA test
- 02h set dual display, 64KB VGA test
- Return: AX = 4F00h if successful
- BX = number of scanlines off screen for test mode
- --------U-1050-------------------------------
- INT 10 - SCROLOCK.COM - INSTALLATION CHECK
- AH = 50h
- Return: BX = 1954h if installed
- AL = 00h if inactive, nonzero if active
- Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
- SeeAlso: AH=51h
- --------J-105000-----------------------------
- INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
- AX = 5000h
- BX = country code
- 0001h USA (English), 0051h Japan
- Return: AL = status
- 00h successful
- 01h bad country code
- 02h other error
- SeeAlso: AX=5001h,INT 16/AX=5000h
- --------J-105001-----------------------------
- INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
- AX = 5001h
- Return: AL = status
- 00h successful
- BX = country code
- 02h error
- SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
- --------V-105049-----------------------------
- INT 10 - VIDEO - SCREENR v1.55+ - API
- AX = 5049h ('PI')
- BX = function
- 0000h installation check
- 0001h lock mode
- 0002h unlock mode
- 0003h lock palette
- 0004h unlock palette
- Return: AX = 0000h if installed
- BX = TSR version (BH=major,BL=minor)
- CL = mode locking status
- 00h mode not locked
- 01h mode locked: INT 10/AH=00h disabled
- CH = palette locking status
- 00h palette not locked
- 01h palette locked, the following functions are disabled:
- AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
- Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
- utility.
- Index: installation check;SCREENR
- --------U-1051-------------------------------
- INT 10 - SCROLOCK.COM - ENABLE/DISABLE
- AH = 51h
- AL = state
- 00h disable
- nonzero enable
- Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
- SeeAlso: AH=50h"SCROLOCK"
- --------J-105100-----------------------------
- INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
- AX = 5100h
- BH = character width in bits (10h)
- BL = character height (10h)
- DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
- ES:BP -> character bitmap
- Return: AL = status (00h successful, 01h failed)
- SeeAlso: AX=5101h,INT 1F
- --------J-105101-----------------------------
- INT 10 - VIDEO - AX PC - READ CHARACTER
- AX = 5101h
- BH = character width in bits
- BL = character height
- DX = character code (DH = 00h if 8-bit character)
- ES:BP -> buffer for character bitmap
- Return: AL = status (00h successful, 01h failed)
- SeeAlso: AH=09h,AX=5100h
- --------J-105200-----------------------------
- INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
- AX = 5200h
- BX = segment of buffer
- SeeAlso: AX=5201h
- --------J-105201-----------------------------
- INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
- AX = 5201h
- Return: BX = segment of buffer or 0000h if failed
- SeeAlso: AX=8300h,AH=FEh
- ----------1053-------------------------------
- INT 10 - Show Partner F/X v3.6 - START PRESENTATION
- AH = 53h
- DS:DX -> ASCIZ name of presentation file (no path, extension forced to
- .PR2)
- Return: ???
- SeeAlso: AH=55h
- ----------1055-------------------------------
- INT 10 - Show Partner F/X v3.6 - UNINSTALL
- AH = 55h
- Return: FXSHOW.EXE removed from memory
- SeeAlso: AH=53h
- --------V-105555-----------------------------
- INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
- AX = 5555h
- Return: AX = AAAAh if installed
- BX:CX -> ??? routine in SMS.COM resident portion
- -> data area (see #0089) in VCONFIG
- Program: Super Switch (SMS.COM) is a video mode switch program supplied with
- ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
- SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
- Index: screen saver;ATI Wonder SMS.COM
-
- Format of ATI Super Switch data area:
- Offset Size Description (Table 0089)
- 00h DWORD original INT 09 vector
- 04h DWORD original INT 10 vector
- 08h DWORD original INT 1C vector
- 0Ch WORD screen saver state, 0=off, 1=on
- 0Eh WORD blanking interval in clock ticks
- --------V-105F00-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
- AX = 5F00h
- Return: AL = 5Fh function supported
- BL = chip type (see #0090)
- BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
- CX = miscellaneous information (see #0091)
- SeeAlso: AX=5F01h
-
- Bitfields for Chips&Technologies chip type:
- Bit(s) Description (Table 0090)
- 7-4 chip type
- 0000: 82c451
- 0001: 82c452
- 0010: 82c455
- 0011: 82c453
- 0101: 82c456
- 0110: 82c457
- 0111: F65520
- 1000: F65530
- 1100: F65535/F65545 ???
- 1101: F65540
- 3-0 revision number
-
- Bitfields for Chips&Technologies miscellaneous information:
- Bit(s) Description (Table 0091)
- 0 DAC size (0=6-bit, 1=8-bit)
- 1 system type (0=PC/AT, 1=PS/2)
- 2 extended text modes supported by BIOS
- 3 reserved
- 4 extended graphics modes supported by BIOS
- 5 reserved
- 6 BIOS supports graphics cursor
- 7 BIOS supports anti-aliased font
- 8 BIOS supports pre-programmed emulation
- 9 BIOS supports auto emulation
- 10 BIOS supports variable mode set at cold boot
- 11 BIOS supports variable mode set on warm boot
- 12 BIOS supports emulation mode set at cold boot
- 13 BIOS supports emulation mode set on warm boot
- 14-15 reserved
- --------V-105F00-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
- AX = 5F00h
- Return: AH = 00h, if successful
- AL = chip version (the same value that VTEST.EXE reads)
- 00h RTG3103???
- 01h RTG31030/RTG3105
- 02h RTG3106???
- 3Fh non-Realtek chip
- BUG: in v3.C10, AX=5F00h on return due to improper stack restoration code
- SeeAlso: AX=5F01h"RTVGA"
- --------V-105F01-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
- AX = 5F01h
- BL = emulation type (see #0092)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
-
- (Table 0092)
- Values for Chips&Technologies emulation type:
- 00h,01h reserved
- 02h CGA
- 03h MDA
- 04h Hercules
- 05h EGA
- 06h VGA
- --------V-105F01-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
- AX = 5F01h
- ES:DI -> zero-filled buffer for BIOS ID string
- Return: AH = 00h if successful
- ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
- BUG: in v3.C10, AX=5F01h on return due to improper stack restoration code
- SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
- --------V-105F02-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
- AX = 5F02h
- BL = new state of autmatic emulation (00h enabled, 01h disabled)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F01h,AX=5F03h
- --------V-105F02-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
- AX = 5F02h
- Return: AH = 00h, if successful
- AL = on-board memory size
- (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
- BUG: in v3.C10, AX=5F02h on return due to improper stack restoration code
- SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
- --------V-105F03-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET ???
- AX = 5F03h
- BL = 0-3 (???)
- Return: AH = 00h if successful
- BUG: in v3.C10, AX=5F03h on return due to improper stack restoration code
- SeeAlso: AX=5F02h"RTVGA"
- --------V-105F03-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
- AX = 5F03h
- BL = configuration
- 00h power-up display mode
- CL = display mode
- CH = mode (see #0093)
- 01h power-up emulation mode
- CL = emulation mode (see #0092)
- CH = permanence (00h reset after next boot, 01h until changed)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
-
- Bitfields for Chips&Technologies display mode:
- Bit(s) Description (Table 0093)
- 1-0 scanlines (00 = 200, 01 = 350, 10 = 400)
- 7 persistence (0 reset on next boot, 1 until changed)
- --------V-105F03BL01-------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
- AX = 5F03h
- BL = 01h
- CL = emulation mode
- CH = mode
- bit 7 persistence (0 reset on next boot, 1 until changed)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
- --------V-105F10-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - ???
- AX = 5F10h
- DX = ???
- Return: DX = ???
- --------V-105F50-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
- AX = 5F50h
- Return: DL = display status (see #2710)
- Note: this call can be used on Toshiba laptops since ~1995 instead of
- INT 42/AX=7503h which is no longer supported with the F655xx chips
- SeeAlso: INT 42/AX=7503h
-
- Bitfields for display status:
- Bit(s) Description (Table 2710)
- 7-4 always 0 ???
- 3 1: both displays active (bit 1 also set)
- 2 1: normal (monochrome display only), 0: inverse or color
- 1 1: internal display active, 0: external only
- 0 always set ???
- --------V-105F51-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET DISPLAY STATUS ???
- AX = 5F51h
- BX = ???
- Return: nothing
- --------V-105F5EBL00-------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET ???
- AX = 5F5Eh
- BL = 00h or 01h
- Return: nothing
- --------V-105F-------------------------------
- INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
- AH = 5Fh
- AL = subfunction
- 90h determine size of save buffer
- 91h save state
- 92h restore state
- CX = state mask (see #0094)
- ES:BX -> save buffer (subfunctions 91h,92h only)
- Return: AL = 5Fh if function supported
- ---subfunction 90h---
- BX = number of 64-byte blocks required
- ---subfunction 92h---
- buffer at ES:BX filled
- SeeAlso: AH=1Ch,AX=5F03h
-
- Bitfields for Chips&Technologies state mask:
- Bit(s) Description (Table 0094)
- 0 video hardware
- 1 BIOS data state
- 2 DAC state
- 15 type (0 all state info, 1 SuperVGA state only)
- --------V-1060------------------------------------
- INT 10 - HUNTER 16 - SET GRAPHICS FONT
- AH = 60h
- AL = new font
- bit 7 output characters in reverse video
- bits 0-6 font number (see #0108 at AH=77h)
- Return: BH = cell width
- BL = cell height
- Desc: select the font to use for output in mode 6; this can be used to mix
- fonts on the screen
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
- --------V-1061------------------------------------
- INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
- AH = 61h
- CX = column
- DX = row
- Note: this function is only valid in graphics modes
- SeeAlso: AH=62h
- --------V-1062------------------------------------
- INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
- AH = 62h
- Return: CX = column
- DX = row
- Note: this function is only valid in graphics modes
- SeeAlso: AH=61h
- --------V-1063------------------------------------
- INT 10 - HUNTER 16 - SET CONTRAST
- AH = 63h
- AL = contrast (0..127)
- Desc: set the LCD screen contrast to improve visibility
- SeeAlso: AH=64h,AH=75h
- --------V-1064------------------------------------
- INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
- AH = 64h
- AL = level (0..15)
- Desc: set the LCD backlight level to improve visibility in bad lighting
- SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
- --------V-106500----------------------------------
- INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
- AX = 6500h
- Return: BX = timeout in seconds (0-300)
- Desc: returns the time after which the backlight will turn off
- SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
- --------V-106501----------------------------------
- INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
- AX = 6501h
- BX = timeout in seconds (0-300)
- Desc: set the idle time after which the backlight will turn off
- SeeAlso: AH=64h,AX=6500h
- --------V-1066------------------------------------
- INT 10 - HUNTER 16 - SPLIT DISPLAY
- AH = 66h
- AL = control bits (see #0095)
- BH = top row of lower section of LCD (0..7)
- BL = top row of lower section of the virtual screen (0..24)
- Desc: split the LCD screen horizontally into two parts; each part may be
- individually scrollable or fixed.
- Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
- a 640x200 virtual screen
-
- Bitfields for HUNTER 16 control bits:
- Bit(s) Description (Table 0095)
- 0-1 01: no split, 10: allow split
- 2 allow scrolling the upper part
- 3 allow scrolling the lower part
- --------V-106A00BX0000-----------------------
- INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
- AX = 6A00h
- BX = 0000h
- CX = 0000h
- DX = buffer length (may be 0)
- ES:DI -> buffer
- Return: BX = number of bytes stored in buffer
- CX = bytes required for all descriptions (0 if no DGIS)
- Note: buffer contains descriptions and addresses of DGIS-compatible
- display(s) and printer(s)
- SeeAlso: AX=6A02h
- --------V-106A01CX0000-----------------------
- INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
- AX = 6A01h
- CX = 0000h
- ES:DI = address of device to send INT 10 output to
- Return: CX = 0000h output could not be redirected
- else INT 10h output now routed to requested display
- SeeAlso: AX=6A02h
- --------V-106A02-----------------------------
- INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
- AX = 6A02h
- ES:DI = 0000h:0000h
- Return: ES:DI = 0000h:0000h if current display is non-DGIS
- else address of the current DGIS INT 10 display
- SeeAlso: AX=6A00h,AX=6A01h
- --------V-106E00-----------------------------
- INT 10 - Paradise VGA internal - GET ???
- AX = 6E00h
- Return: BX = 5744h ('WD') if supported
- DH:AH:AL = last three ASCII digits of ROM serial number
- CL = ???
- CH = ???
- SeeAlso: AX=6E04h,AX=6E05h
- --------V-106E04-----------------------------
- INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
- AX = 6E04h
- Return: BX = screen width (columns)
- CX = screen height (lines)
- AH = ??? (05h or FFh)
- AL = ??? (04h or video mode)
- SeeAlso: AX=6E00h,AX=6E05h
- --------V-106E05-----------------------------
- INT 10 - Paradise VGA internal - SET MODE
- AX = 6E05h
- BL = mode
- Note: like AH=00h, AL=BL.
- SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
- --------V-106F00-----------------------------
- INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
- AX = 6F00h
- BX <> 4850h (usually set to 0000h for simplicity)
- Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
- AX destroyed
- SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
- SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
- --------V-106F00BX0000-----------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
- AX = 6F00h
- BX = 0000h
- Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
- SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
- --------V-106F01-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
- AX = 6F01h
- Return: AL = monitor type code (HP,VEGA VGA only) (see #0096)
- AH = status register information (see #0097)
- CL = current value of Extended Control register (HP Ext BIOS, and only
- if AL=41h) (see #0098)
- Notes: bits 0-3 are the same as the EGA/VGA status register bits 0-3
- supported by original HP Vectra AT and by ES/QS/RS series Vectras
-
- (Table 0096)
- Values for monitor type code (HP Extended BIOS):
- 00h non-HP card with ROM and possibly its own INT 10h driver
- 41h MultiMode video display adapter
- 42h-44h reserved
- 45h industry standard monochrome display adapter
- 46h industry standard color display adapter
- 51h reserved
-
- Bitfields for status register information:
- Bit(s) Description (Table 0097)
- 0 display enable
- 0 = display enabled
- 1 = vertical or horizontal retrace in progress
- 1 light pen flip flop set
- 2 light pen switch activated
- 3 vertical sync
- 4 monitor resolution
- 0 = high resolution (>200 lines)
- 1 = low resolution (<=200 lines)
- 5 display type (0 = color, 1 = monochrome)
- 6,7 diagnostic bits
- Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3
- --------V-106F02-----------------------------
- INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
- AX = 6F02h
- BL = new value for extended control register (see #0098)
- Return: AX,BL destroyed
- Notes: this function is only valid when an HP MultiMode Video Display Adapter
- is installed
- the Extended Control register is at I/O address 3DDh
- SeeAlso: AX=6F01h,AX=6F03h
-
- Bitfields for HP Vectra extended control register:
- Bit(s) Description (Table 0098)
- 0 screen resolution (0 = 200 lines, 1 = 400 lines)
- 1 underline enable (if set, 'blue' of fg color = underline)
- 2 font (0 = Standard-8, 1 = HP-Roman-8)
- 3 memory disabled for CPU access
- 4 allow access to full 32K memory instead of wrapping at 16K
- 5 select second 16K page instead of first
- 6,7 unused
- --------V-106F03-----------------------------
- INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
- AX = 6F03h
- BH = exclude mask (set bits are not modified)
- BL = new values for bits indicated by BH (see #0098)
- Return: AX destroyed
- Notes: this function is only valid when an HP MultiMode Video Display Adapter
- is installed
- supported by original HP Vectra AT and by ES/QS/RS series Vectras
- SeeAlso: AX=6F01h,AX=6F02h
- --------V-106F04-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
- AX = 6F04h
- Return: AL = current video mode (see #0099)
- BX = horizontal columns (text) or pixels (graphics)
- CX = vertical columns (text) or pixels (graphics)
- SeeAlso: AX=6F05h
- --------V-106F05-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
- AX = 6F05h
- BL = mode (see #0099)
- Return: AX,BL destroyed
- Notes: also supported by the HP Vectra Extended BIOS on the original
- HP Vectra AT and by ES/QS/RS series Vectras
- on the HP Vectra, this function rather than AH=00h must be used to
- return to an IBM-standard mode after setting an HP-specified mode
- from 08h to 0Fh.
- SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
-
- (Table 0099)
- Values for Video7/VEGA video mode:
- text/ text pixel pixel colors disply scrn system
- grph resol box resolution pages addr
- 00h-13h = standard IBM modes (see #0009 at AH=00h)
- 08h = T 80x27 . . mono . . HP MultiMode Video
- 09h = T 80x27 . . . . . HP MultiMode Video
- 0Ah = T 40x27 . . mono . . HP MultiMode Video
- 0Bh = T 40x27 . . . . . HP MultiMode Video
- 0Ch = reserved HP MultiMode Video
- 0Dh = G . . 640x400 . . . HP MultiMode Video
- 0Eh = G . . 320x400 . . . HP MultiMode Video
- 0Fh = G . . 320x400 . . . HP MultiMode Video
- 40h = T 80x43 8x8 . . . . Video7/VEGA VGA
- 41h = T 132x25 8x14 . . . . Video7/VEGA VGA
- 42h = T 132x43 8x8 . . . . Video7/VEGA VGA
- 43h = T 80x60 8x8 . . . . Video7/VEGA VGA
- 44h = T 100x60 8x8 . . . . Video7/VEGA VGA
- 45h = T 132x28 8x8 . . . . Video7/VEGA VGA
- 60h = G . . 752x410 16 . . Video7 VGA, VEGA VGA
- 61h = G . . 720x540 16 . . Video7 VGA, VEGA VGA
- = G . . 720x540 16 . . Northgate, Headland 1024i
- 62h = G . . 800x600 16 . . Video7 VGA, VEGA Ext EGA
- = G . . 800x600 16 . . Headland 1024i
- 63h = G . . 1024x768 2 . . Video7 VGA
- 64h = G . . 1024x768 4 . . Video7 VGA
- 65h = G . . 1024x768 16 . . Video7 VGA, VEGA Ext EGA
- = G . . 1024x768 16 . . Headland 1024i
- 66h = G . . 640x400 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 640x400 256 . . Northgate, Headland 1024i
- 67h = G . . 640x480 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 640x480 256 . . Headland 1024i
- 68h = G . . 720x540 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 720x540 256 . . Headland 1024i
- 69h = G . . 800x600 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 800x600 256 . . Headland 1024i
- 70h = G . . 752x410 16gray . . Video7 VGA, VEGA VGA
- 71h = G . . 720x540 16gray . . Video7 VGA, VEGA VGA
- 72h = G . . 800x600 16gray . . Video7 VGA
- 73h = G . . 1024x768 2gray . . Video7 VGA
- 74h = G . . 1024x768 4gray . . Video7 VGA
- 75h = G . . 1024x768 16gray . . Video7 VGA
- 76h = G . . 640x400 256gray . . Video7 VGA
- 77h = G . . 640x480 256gray . . Video7 VGA
- 78h = G . . 720x540 256gray . . Video7 VGA
- 79h = G . . 800x600 256gray . . (future)
- SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
- Index: video modes;Video 7|video modes;VEGA|video modes;Headland
- --------V-106F06-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
- AX = 6F06h
- BL = Autoswitch mode select
- 00h select EGA/VGA-only modes
- 01h select Autoswitched VGA/EGA/CGA/MGA modes
- 02h select 'bootup' CGA/MGA modes
- BH = enable/disable (00h enable, 01h = disable selection)
- --------V-106F07-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
- AX = 6F07h
- Return: AL = 6Fh
- AH = memory configuration
- bits 0-6 = number of 256K blocks of video memory
- bit 7 = DRAM/VRAM (0: DRAM, 1: VRAM)
- BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
- BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
- CX = 0000h
- SeeAlso: AH=12h/BL=10h
- --------V-1070-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
- AH = 70h
- Return: AX:BX -> WORD containing green plane's offset
- AX:CX -> WORD containing green plane's segment
- AX:DX -> WORD containing segment of red (offset 0) and blue (offset
- 4000) planes
- SeeAlso: AH=71h
- --------V-1070------------------------------------
- INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
- AH = 70h
- DS:BX -> control block (see #0100)
- Desc: Draws a circle or ellipse. Only valid in graphics modes.
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AH=71h"HUNTER"
-
- Format of HUNTER 16 control block:
- Offset Size Description (Table 0100)
- 00h WORD center X co-ordinate
- 02h BYTE center Y co-ordinate
- 03h WORD radius in pixels
- 05h BYTE color (00h white, 01h black, FFh invert)
- 06h BYTE aspect ratio x:x (1-127)
- 07h BYTE aspect ratio y:y (1-127)
- --------V-107000BX0000-----------------------
- INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
- AX = 7000h
- BX = 0000h
- Return: AL = 70h if Trident-based Everex card
- CL = monitor type (see #0101)
- CH = feature bits (see #0102)
- DX = video board info
- bits 4-15: board ID model (see #0103)
- bits 0-3: board ID revision
- DI = BCD BIOS version number
- SeeAlso: AX=5F01h,AH=FF"Oak"
-
- (Table 0101)
- Values for Everex monitor type:
- 00h mono
- 01h CGA
- 02h EGA
- 03h digital multifrequency
- 04h IBM PS/2
- 05h IBM 8514
- 06h SuperVGA
- 07h analog multifrequency
- 08h super multifrequency
-
- Bitfields for Everex feature bits:
- Bit(s) Description (Table 0102)
- 7-6 memory size
- 00 = 256K
- 01 = 512K
- 10 = 1024K
- 11 = 2048K
- 5 special oscillator present
- 4 VGA protect enabled
- 0 6845 emulation
-
- (Table 0103)
- Values for board model for Trident-based Everex cards:
- 0236h Ultragraphics II
- 0620h Vision VGA
- 0673h EVGA
- 0678h Viewpoint
- --------V-107000BX0004-----------------------
- INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
- AX = 7000h
- BX = 0004h
- Return: ES:DI -> FAR paging function (call with DL = page to set)
- Note: the word preceding ES:DI is the length of the function in bytes, and
- the last byte of the function is a FAR return instruction.
- SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
- --------V-107000BX0005-----------------------
- INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
- AX = 7000h
- BX = 0005h
- CL = maximum number of modes to get info for
- CH = mode type to get info for (see #0104)
- DL = monitor type to get info for
- ES:DI -> buffer for mode info (see #0105)
- Return: CL = total number of modes fitting criteria
- CH = size of each info record
- SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
-
- (Table 0104)
- Values for Everex mode type:
- 00h all modes
- 01h monochrome text modes
- 02h color text modes
- 03h four-color CGA graphics modes
- 04h two-color CGA graphics modes
- 05h 16-color graphics modes
- 06h 256-color graphics modes
-
- Format of Everex mode information record:
- Offset Size Description (Table 0105)
- 00h BYTE mode number (bit 7 set if extended mode)
- 01h BYTE mode type (see #0104)
- 02h BYTE info bits (see #0106)
- 03h BYTE font height
- 04h BYTE text columns on screen
- 05h BYTE text rows on screen
- 06h WORD number of scan lines
- 08h BYTE color information
- bits 7-4 reserved
- 3-0 bits per pixel
-
- Bitfields for Everex info bits:
- Bit(s) Description (Table 0106)
- 7,6 reserved
- 5 monochrome mode
- 4 interlaced display
- 3 requires special oscillator
- 2,1 memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
- 0 reserved
- --------V-1071-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
- AH = 71h
- Return: AX:BX -> WORD containing segment address of INCRAM
- AX:CX -> WORD containing offset of INCRAM
- SeeAlso: AH=70h"TANDY"
- --------V-1071------------------------------------
- INT 10 - HUNTER 16 - DRAW LINE/BOX
- AH = 71h
- DS:BX -> control block (see #0107)
- Desc: Draws a line or box. Only valid in graphics modes.
- SeeAlso: AH=70h"HUNTER"
-
- Format of HUNTER 16 control block:
- Offset Size Description (Table 0107)
- 00h WORD left edge X co-ordinate
- 02h BYTE lower edge Y co-ordinate
- 03h WORD right edge X co-ordinate
- 05h BYTE upper edge Y co-ordinate
- 06h BYTE color (00h white, 01h black, FFh invert)
- 07h BYTE type (00h line, 01h box)
- 08h BYTE if non-zero (and type is BOX) fill with color
- --------V-1072-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
- AH = 72h
- AL = number of columns to shift scroll area, 00h to clear entire area
- BH = new attributes for blanked columns at left
- CH,CL = row, column of upper left corner of scroll area
- DH,DL = row, column of lower right corner of scroll area
- SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
- --------V-1072------------------------------------
- INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
- AH = 72h
- AL = mechanism to use
- 00h do not use inverse video
- 01h emulate MDA. Display attribute 07h is normal video and 70h is
- inverse video.
- 02h use inverse video if background is non-black.
- 03h use inverse video for high intensity text.
- 04h use inverse video for text with background intensity greater
- than foreground intensity.
- 05h use inverse video for text with background color other than
- black or high intensity foreground.
- SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
- --------V-1073-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
- AH = 73h
- AL = number of columns to shift scroll area, 00h to clear entire area
- BH = new attributes for blanked columns at right
- CH,CL = row, column of upper left corner of scroll area
- DH,DL = row, column of lower right corner of scroll area
- SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
- --------V-1073------------------------------------
- INT 10 - HUNTER 16 - SELECT TEXT FONT
- AH = 73h
- AL = new font
- 00h 7x7 in a 8x8 cell
- 01h 5x7 in a 6x8 cell
- 06h 3x5 in a 4x6 cell
- Retuen: BH = cell width
- BL = cell height
- SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
- --------V-1074------------------------------------
- INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
- AH = 74h
- DH = row (0..24)
- DL = column (0..79)
- Desc: set the position in the virtual screen being displayed in the LCD
- screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
- position for the window which has the cursor.
- SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
- --------V-1075------------------------------------
- INT 10 - HUNTER 16 - SET ZOOM
- AH = 75h
- AL = new Zoom state (00h off, nonzero on)
- SeeAlso: AH=74h,AH=76h
- --------V-1076------------------------------------
- INT 10 - HUNTER 16 - LOOKING KEYS
- AH = 76h
- AL = Action
- 00h home the window
- 01h move up one line
- 02h move down one line
- 03h move left one character
- 04h move right one character
- 05h flip window to other side of virtual screen
- Desc: moves the displayed screen around the virtual screen
- SeeAlso: AH=74h,AH=75h
- --------V-1077------------------------------------
- INT 10 - HUNTER 16 - GET GRAPHICS FONT
- AH = 77h
- Return: AL = font number (see #0108)
- SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
-
- (Table 0108)
- Values for HUNTER 16 graphics font number:
- 00h 7x7 in a 8x8 cell
- 01h 5x7 in a 6x8 cell
- 02h 7x9 in a 8x10 cell
- 03h 14x9 in a 16x10 cell
- 04h 7x18 in a 8x20 cell
- 05h 14x18 in a 16x20 cell
- 06h 3x5 in a 4x6 cell
- Note: size is X * Y
- --------V-1078------------------------------------
- INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
- AH = 78h
- AL = new state of backlight (00h on, 01h off)
- SeeAlso: AH=64h,INT 15/AH=74h
- --------V-107F-------------------------------
- INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
- AH = 7Fh
- Return: AX = 1234h if WD90C24 chip installed
- --------V-107F00-----------------------------
- INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
- AX = 7F00h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- ES:DI -> info structure (see #0109)
- 01h failed
- Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
- an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
- Seiko Epson Corporation intended to provided a standardized interface
- to SuperVGA functionality not addressed by the VESA standard
- SeeAlso: AX=4F00h
-
- Format of SOLLEX SuperVGA info structure:
- Offset Size Description (Table 0109)
- 00h DWORD pointer to VESA function dispatch table
- 04h DWORD pointer to SOLLEX function dispatch table
- 08h DWORD pointer to VESA SuperVGA info (see #0063 at AX=4F00h)
- 0Ch DWORD pointer to mode info structure table, consisting of
- alternating ResInfo (see #0110) and VESA mode information
- (see #0065 at AX=4F01h) blocks, terminated with an FFFFh word
- 10h DWORD pointer to font info structure table (see #0111)
- 14h WORD high resolution crystal frequency in Hz (0000h = not present)
- 16h DWORD pointer to ASCIZ ID string
- 1Ah DWORD pointer to timeout reset table
- array of bytes, each a multiple of the minimum time increment
- 1Eh WORD minimum time increment in timer ticks
- 20h BYTE inverse options supported
- bit 0: inverse supported
- bits 1-7: reserved
- 21h BYTE normal color value
- 22h BYTE inverse color value
- 23h WORD port to be accessed for normal/inverse settings
- 25h WORD type of interface chip (currently undefined)
- 27h WORD program operational mode
- bits 1-0: 00 no preference
- 01 terse (minimum detail in program messages)
- 10 verbose
- 11 use menus if supported, verbose mode otherwise
- bits 7-2: reserved
- 29h WORD SOLLEX specification version
- 2Bh WORD version of VESA/SOLLEX implementation
- 2Dh DWORD offset to relocatable portion of SOLLEX extensions (for CONFIG)
- 2Eh DWORD offset to unused section of the extensions ROM
- 31h 16 BYTEs reserved
- Note: all DWORD pointers initially require segment fixups; if the segment
- is 0000h, it should be changed to the returned ES, otherwise it
- may be assumed to be correct
-
- Format of SOLLEX SuperVGA ResInfo:
- Offset Size Description (Table 0110)
- 00h WORD 16-bit mode number
- 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
- 04h WORD display info (see #0114)
- 06h DWORD pointer to video parameter table
- 0Ah BYTE replacement entry in master Video Parameter
- 0Bh BYTE mode requested for mode set by BIOS
- 0Ch DWORD pointer to LoadReg table
- 10h BYTE index into table of clock values (see #0112)
-
- Format of SOLLEX SuperVGA font info table [array] entry:
- Offset Size Description (Table 0111)
- 00h BYTE required font height
- 01h BYTE parameter to load text mode font
- 02h BYTE parameter to load graphics mode font
-
- (Table 0112)
- Values for SOLLEX SuperVGA clock value index:
- 00h 25 MHz
- 01h 28 MHz
- 02h PCLK
- 03h 31.5 MHz (VESA 640x480)
- 04h reserved
- 05h 16 MHz (EGA)
- 06h PCLK
- 07h 24 MHz (EGA)
- 08h 25 MHz
- 09h 28 MHz
- 0Ah 36 MHz
- 0Bh 45 MHz (for 1024x768)
- 0Ch 80 MHz
- 0Dh 40 MHz
- 0Eh 65 MHz
- 0Fh 1 MHz (for powerdown)
- --------V-107F00BX4000-----------------------
- INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
- AX = 7F00h
- BX = 4000h
- Return: AX = 007Fh if supported
- DX:BX -> DAC set mode routine
- SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
- --------V-107F00BX4001-----------------------
- INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
- AX = 7F00h
- BX = 4001h
- Return: AX = 007Fh if supported
- CX = current linear address base (high word)
- SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
- --------V-107F00BX4002-----------------------
- INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
- AX = 7F00h
- BX = 4002h
- CX = new linear address base (high word)
- Return: AX = 007Fh if supported
- SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
- --------V-107F01BL00-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
- AX = 7F01h
- BL = 00h
- CX = adapter request (see #0113)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: initializes video hardware to a particular standard
- SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
-
- Bitfields for SOLLEX SuperVGA adapter request:
- Bit(s) Description (Table 0113)
- 1-0 adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
- 2 reserved
- 4-3 change displays (00 none, 01 analog 10 digital 11 panel)
- 6-5 desired monitor sense (01 color, 10 mono, 11=8514)
- 7 lock override
- 8 alternate adapter mode
- 15-9 reserved
- --------V-107F01BL01-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
- AX = 7F01h
- BL = 01h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- BX = adapter type (see #0113)
- DX = display type (see #0114)
- SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
-
- Bitfields for SOLLEX SuperVGA display type:
- Bit(s) Description (Table 0114)
- 15-9 reserved
- 8 alternate display active
- 7 Enhanced Color Display monitor active
- 6 multi-frequency digital monitor active
- 5 PS/2-type monitor active
- 4 plasma/electroluminescent panel active
- 3 LCD panel active
- 2 multi-frequency analog monitor active
- 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
- --------V-107F01BL02-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
- AX = 7F01h
- BL = 02h
- CX = adapter request (see #0113)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h requested setting can successfully be made
- 01h requested setting not available in this configuration
- SeeAlso: AX=7F00h,AX=7F01h/BL=00h
- --------V-107F02BL00-------------------------
- INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
- AX = 7F02h
- BL = 00h
- CX = display output setting (see #0115)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h,AX=7F02h/BL=00h
-
- Bitfields for SOLLEX SuperVGA display output setting:
- Bit(s) Description (Table 0115)
- 0 CRTC control in 2,1 valid
- 1 enable digital output
- 2 enable analog output
- 3 panel control in 5,4 valid
- 4 enable LCD output
- 5 enable plasma/EL output
- 6 inverse control in 7 valid
- 7 0=normal, 1=inverse
- 15-8 reserved
- --------V-107F02BL01-------------------------
- INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
- AX = 7F02h
- BL = 01h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- BX = display output setting (see #0115)
- CX = displays attached (see #0116)
- 01h failed
- SeeAlso: AX=7F00h,AX=7F02h/BL=00h
-
- Bitfields for SOLLEX SuperVGA displays attached:
- Bit(s) Description (Table 0116)
- 0 PS/2 display on analog output
- 1 multi-frequency monitor on analog output
- 2 LCD panel attached
- 3 plasma/electroluminescent panel attached
- 4 multi-frequency monitor on digital output
- 5 Enhanced Color Display attached to digital outpt
- 6 alternate display
- 15-7 reserved
- --------V-107F03BL00-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
- AX = 7F03h
- BL = 00h
- CX = support type
- 0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
- 0005h-0012h reserved for SOLLEX, 0013h Hercules,
- 0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- CX = size of video support code
- DX = segment of physical video support (0000h if no ROM)
- ES = segment of active video support
- ES:DI -> information block (DI = 0000h if none available)
- 01h failed
- SeeAlso: AX=7F03h/BL=01h
- --------V-107F03BL01-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
- AX = 7F03h
- BL = 01h
- CX = support request
- ES = segment of support code
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: initializes the indicated video support by calling ES:0003h; this
- function may be used to switch the active video support back to
- ROM after AX=7F03h/BL=02h
- SeeAlso: AX=7F03h/BL=00h
- --------V-107F03BL02-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
- AX = 7F03h
- BL = 02h
- CX = support request
- ES = destination segment
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h,AX=7F03h/BL=01h
- --------V-107F04BL00-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
- AX = 7F04h
- BL = 00h
- CX = new power state
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: higher values progressively reduce the operations available on the
- video adapter while yielding increasing power savings
- SeeAlso: AX=7F00h,AX=7F04h/BL=01h
- --------V-107F04BL01-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
- AX = 7F04h
- BL = 01h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- CX = current power state
- DX = maximum state
- 01h failed
- SeeAlso: AX=7F00h,AX=7F04h/BL=00h
- --------V-107F04BL02-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
- AX = 7F04h
- BL = 02h
- CX = timeout reset
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h,AX=7F04h/BL=03h
- --------V-107F04BL03-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
- AX = 7F04h
- BL = 03h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- BX = time increment
- CX = current timeout reset
- DX = maximum timeout reset
- ES:DI -> timeout reset table (array of bytes)
- 01h failed
- Note: the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
- SeeAlso: AX=7F00h,AX=7F04h/BL=02h
- --------V-107F05-----------------------------
- INT 10 - SOLLEX SuperVGA - LOAD REGISTER
- AX = 7F05h
- ES:DI -> register value table (see #0117)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AH=F1h,AH=F3h,AH=F5h
-
- Format of SOLLEX SuperVGA register value table:
- Offset Size Description (Table 0117)
- 00h WORD base I/O register (FFFFh = end of list)
- 02h 2N BYTEs pairs of values to be written to the base I/O register as an
- index value and the following register as a data byte
- 2N+2 WORD FFFFh (end of data list)
- ... (repeats until FFFFh base address)
- --------V-107F06-----------------------------
- INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
- AX = 7F06h
- BL = subfunction
- 00h set multiple font state
- CX = new state (00h off, 01h on)
- 01h get multiple font state
- Return: BL = current state (00h off, 01h on)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AH=11h
- --------V-107F07-----------------------------
- INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
- AX = 7F07h
- BL = how much to fill
- 00h regen size
- 01h all video memory
- CX = pattern to write (normally 0720h for text modes and 0000h for gr)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AH=06h
- --------A-1080-------------------------------
- INT 10 - CU Writer v1.4 - GET OPTION
- AH = 80h
- AL = desired option
- Return: ???
- Program: CU Writer is a public-domain Thai-English word processor from
- Chulalongkorn University, Bangkok
- SeeAlso: AH=81h"CU Writer"
- --------Q-1080--DX4456-----------------------
- INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
- AH = 80h
- DX = 4456h ('DV')
- ES:DI -> FAR subroutine to be called on ???
- Return: DS = segment of DESQview data structure for video buffer
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- the subroutine seems to be called when the DESQview menu is accessed;
- on entry, AL = 03h or 04h
- --------A-1081-------------------------------
- INT 10 - CU Writer v1.4 - SET OPTION
- AH = 81h
- ???
- Return: ???
- SeeAlso: AH=80h"CU Writer"
- --------Q-1081--DX4456-----------------------
- INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
- AH = 81h
- DX = 4456h ('DV')
- Return: ES = segment of DESQview data structure for video buffer
- BYTE ES:[0] = current window number in DV 2.0x
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- SeeAlso: AH=82h"DESQview"
- --------Q-1082--DX4456-----------------------
- INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
- AH = 82h
- DX = 4456h ('DV')
- Return: DS = segment in DESQview for data structure
- in DV 2.00,
- BYTE DS:[0] = window number
- WORD DS:[1] = segment of other data structure
- WORD DS:[3] = segment of window's object handle
- ES = segment of DESQview data structure for video buffer
- AL = current window number
- AH = ???
- BL = direct screen writes
- 00h program does not do direct writes
- 01h program does direct writes, so shadow buffer not usable
- BH = ???
- CL = current video mode
- CH = ???
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- SeeAlso: AH=81h"DESQview"
- --------J-108200-----------------------------
- INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
- AX = 8200h
- BL = new scroll mode or FFh to get current mode
- 00h dynamic, 01h software
- Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
- SeeAlso: AH=06h,AH=07h
- --------J-108300-----------------------------
- INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
- AX = 8300h
- Return: AX = offset of video RAM
- ES:BX -> virtual text RAM buffer
- SeeAlso: AX=5201h
- --------N-108B-------------------------------
- INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
- AH = 8Bh
- SeeAlso: AH=92h,AH=93h
- --------N-1090-------------------------------
- INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
- AH = 90h
- Return: AL = current video mode (see #0009 at AH=00h)
- SeeAlso: AH=91h
- --------N-1091-------------------------------
- INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
- AH = 91h
- Return: AL = video adapter type (see #0118)
- Note: types less than 80h do not imply that the current user is on the host
- SeeAlso: AH=90h
-
- (Table 0118)
- Values for Alloy MW386 video adapter type:
- 00h monochrome
- 01h Hercules monochrome graphics
- 02h CGA
- 03h EGA
- 04h VGA
- 80h monochrome text terminal
- 81h Hercules graphics terminal
- 82h color graphics terminal
- --------N-1092-------------------------------
- INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
- AH = 92h
- Note: the terminal will be updated even when screen updates are inhibited if
- TTY output is used
- SeeAlso: AH=8Bh
- --------N-1093-------------------------------
- INT 10 - Alloy MW386 - REDRAW SCREEN
- AH = 93h
- SeeAlso: AH=8Bh,AH=FFh
- --------A-10A0-------------------------------
- INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
- AH = A0h
- ???
- Return: ???
- Program: CU Writer is a public-domain Thai-English word processor from
- Chulalongkorn University, Bangkok
- SeeAlso: AH=80h"CU Writer",AH=B0h
- --------p-10A0-------------------------------
- INT 10 - ATI Mach64 BIOS - Display Power Management Signalling API???
- AH = A0h
- AL = function (00h-13h)
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- SeeAlso: AX=4F10h/BL=00h
- --------V-10A004-----------------------------
- INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
- AX = A004h
- ???
- Return: ???
- Desc: configure display parameters
- SeeAlso: AX=A01Bh"PhoenixVIEW/LC"
- --------p-10A00C-----------------------------
- INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
- AX = A00Ch
- CL = new state
- 01h standby
- 02h suspend
- 03h off
- Return: AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F00h,AX=4F10h/BL=01h
- --------V-10A01B-----------------------------
- INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
- AX = A01Bh
- ???
- Return: ???
- Desc: determine whether an external display is currently attached
- SeeAlso: AX=A004h"PhoenixVIEW/LC"
- --------A-10B0-------------------------------
- INT 10 - CU Writer v1.4 - PUT PIXEL
- AH = B0h
- ???
- Return: ???
- SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
- --------A-10B1-------------------------------
- INT 10 - CU Writer v1.4 - MOVE TO
- AH = B1h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
- --------A-10B2-------------------------------
- INT 10 - CU Writer v1.4 - DRAW LINE TO
- AH = B2h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
- --------A-10B3-------------------------------
- INT 10 - CU Writer v1.4 - FLOOD FILL
- AH = B3h
- ???
- Return: ???
- SeeAlso: AH=B2h,AH=B5h
- --------A-10B4-------------------------------
- INT 10 - CU Writer v1.4 - DRAW RECTANGLE
- AH = B4h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
- --------A-10B5-------------------------------
- INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
- AH = B5h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
- --------V-10BD44-----------------------------
- INT 10 U - Compaq QVision - ???
- AX = BD44h
- ???
- Return: ???
- Note: called by Compaq's MTX132.COM, which places the QVision in 132-column
- mode
- --------V-10BF--CX0000-----------------------
- INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
- AH = BFh
- CX = 0000h (???)
- Return: CX = 0202h
- DL = ??? (internal data, possibly version number)
- --------b-10BF00-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
- AX = BF00h
- Desc: specify that the external monitor become the active monitor
- Note: all registers preserved and the internal monitor is blanked
- SeeAlso: AX=BF01h,AX=BF12h
- --------b-10BF01-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
- AX = BF01h
- Desc: specify that the internal monitor become the active monitor
- Note: all registers preserved and the external monitor is blanked
- SeeAlso: AX=BF00h,AX=BF12h
- --------b-10BF02-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
- AX = BF02h
- BH = master mode
- 04h CGA
- 05h EGA
- 07h MDA
- SeeAlso: AX=BF03h
- --------b-10BF03BX0000-----------------------
- INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
- AX = BF03h
- BX = 0000h
- Return: BH = active monitor
- (00h = external, 01h = internal, 03h both, 04h neither)
- BL = master mode (see #0119)
- CH = ASIC type and version
- 00h (reserved, very early Compaq VGCs)
- 31h if QVision VGA
- CL = switchable VDU modes supported (see #0120)
- DH = internal monitor type (see #0121)
- DL = external monitor type (see #0121)
- SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
-
- (Table 0119)
- Values for Compaq video master mode:
- 00h switchable VDU not present
- 04h CGA
- 05h EGA
- 07h MDA
- 08h switchable LCD controller present
- 09h plasma VGA
- 0Ah TFT (active-matrix) VGA
-
- Bitfields for Compaq switchable VDU modes support:
- Bit(s) Description (Table 0120)
- 0 CGA supported
- 1,2 reserved (1)
- 3 MDA supported
- 4 BitBLT engine available
- 5 132-column support availble
- 6 640x480x256 mode available
- 7 8-bit DAC mode available
-
- (Table 0121)
- Values for Compaq monitor type:
- 00h none
- 01h dual-mode monitor
- 02h 5153 RGB monitor (RGBI 16-color)
- 03h Compaq Color monitor
- 04h 640x400 flat panel (Plasma CGA)
- 05h VGC monochrome
- 06h VGC color
- 07h 8-level mono LCD VGA (internal)
- 1024x768 mono VGA (external)
- 08h 16-level mono plasma VGA (internal)
- 1024x768 color VGA (external)
- 09h 4-level mono LCD CGA
- 0Ah 16-level mono LCD VGA
- 0Bh active-matrix color VGA
- 0Ch active-matrix mono VGA
- 0Dh STN color VGA
- --------b-10BF04-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
- AX = BF04h
- BH = new state of delay (00h enabled, 01h disabled)
- Note: the 04/08/93 sytem ROM appears to use BL instead of BH; a future
- version of the list will provide more definite information
- SeeAlso: AX=BF05h
- --------b-10BF05-----------------------------
- INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
- AX = BF05h
- BH = new state of video
- 00h off
- 01h on
- Note: the 04/08/93 sytem ROM appears to use BL instead of BH; a future
- version of the list will provide more definite information
- SeeAlso: AH=12h/BL=36h,AX=BF04h
- --------b-10BF06-----------------------------
- INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
- AX = BF06h
- CL = address to be read from gray scale table
- Return: AL = bit 3-0 - Value read from gray scale table
- CL = address to be read from gray scale table
- SeeAlso: AH=12h/BL=33h,AX=BF07h
- --------b-10BF07-----------------------------
- INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
- AX = BF07h
- CH = value to write to gray scale table
- CL = address to be written to gray scale table
- SeeAlso: AX=BF06h,AX=BF08h
- --------b-10BF08-----------------------------
- INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
- AX = BF08h
- CH = bits 7-4 green weight
- bits 3-0 blue weight
- CL = bits 7-4 unused
- bits 3-0 red weight
- SeeAlso: AH=12h/BH=33h,AX=BF07h
- --------b-10BF09-----------------------------
- INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
- AX = BF09h
- Return: CF clear
- Notes: sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
- to 6Fh and index 83h to 04h
- supported by at least the QVision board and the LTE Lite ROM BIOS
- SeeAlso: AX=BF0Ah,AX=BF0Bh
- --------b-10BF0A-----------------------------
- INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
- AX = BF0Ah
- Return: CF clear
- Notes: clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
- to 80h and index 83h to FBh
- supported by at least the QVision board and the LTE Lite ROM BIOS
- SeeAlso: AX=BF09h,AX=BF0Bh
- --------b-10BF0B-----------------------------
- INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
- AX = BF0Bh
- Return: CF clear
- AX = state (0000h normal video, 0001h reverse video)
- Note: supported by at least the QVision board and the LTE Lite ROM BIOS
- SeeAlso: AX=BF09h,AX=BF0Ah
- --------b-10BF0C-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
- AX = BF0Ch
- Return: CF clear
- Desc: specify that video DAC registers use only six bits of color info
- Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
- SeeAlso: AX=BF0Dh,AX=BF0Eh
- --------b-10BF0D-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
- AX = BF0Dh
- Return: CF clear
- Desc: specify that video DAC registers use all eight bits of color info
- Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
- SeeAlso: AX=BF0Ch,AX=BF0Eh
- --------b-10BF0E-----------------------------
- INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
- AX = BF0Eh
- Return: CF clear
- AL = DAC mode
- 00h in 6-bit mode
- 01h in 8-bit mode
- Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
- SeeAlso: AX=BF0Ch,AX=BF0Dh
- --------b-10BF0F-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
- AX = BF0Fh
- BX = high address map location in megabytes, or
- 0000h to disable high address map, or
- FFFFh to let ROM configure high address map
- Return: CF clear
- AX = previous value of high address map register
- Notes: supported by at least the QVision board and the SystemPro XL and LTE
- Lite ROM BIOSes
- SeeAlso: AX=BF10h
- --------b-10BF10-----------------------------
- INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
- AX = BF10h
- Return: CF clear
- AX = current value of high address map register
- Notes: supported by at least the QVision board and the SystemPro XL and LTE
- Lite ROM BIOSes
- the Compaq QVision documentation (October 1993) says the value is
- returned in BX, but this appears to be one of many typos
- SeeAlso: AX=BF0Fh
- --------b-10BF11-----------------------------
- INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
- AX = BF11h
- Return: AL = BFh if supported
- CF clear
- ES:DI -> ASCII signature "COMPAQ"
- ES:SI -> advanced functionality table (see #0122)
- Note: supported by at least the QVision board and the LTE Lite and ProSignia
- ROM BIOSes
- SeeAlso: AX=1A00h,AX=BF03h
-
- Bitfields for Compaq advanced video functionality:
- Bit(s) Description (Table 0122)
- 31 future graphics extensions (reserved, set to 0)
- 30-16 reserved
- 15-12 available video memory in 256K blocks, less one (0000 = 256K, etc.)
- 11-8 reserved
- 7 QVision modes supported
- 6 Advanced VGA modes supported
- 5 Accelerated VGA modes supported
- 4 standard VGA modes supported
- 3-2 reserved
- 1 132-column modes supported
- 0 reserved
- --------b-10BF12-----------------------------
- INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
- AX = BF12h
- BH reserved
- BL = function mask (see #0123)
- Return: CF clear
- Notes: this function is a NOP if the VGA subsystem is inactive or the current
- Display Combination Code is 10h or higher
- supported by at least the QVision board and the LTE Lite and ProSignia
- ROM BIOSes
- SeeAlso: AX=BF01h,AX=BF02h
-
- Bitfields for function mask:
- Bit(s) Description (Table 0123)
- 7 command mode
- if set, bits 1 and 0 make the monitor active when set
- if clear, bits 1 and 0 toggle the monitor's state when set
- 6-2 reserved
- 1 internal monitor
- 0 external monitor
- --------b-10BF13-----------------------------
- INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
- AX = BF13h
- BL = subfunction
- 00h load gamma correction table for true-color mode
- DS = BIOS data segment
- 01h set palette RAM bypass
- BH = 00h
- Return: nothing
- Note: these functions must be called after a video mode set, and are in
- effect only for the current video mode
- --------V-10BFA0BXADAD-----------------------
- INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
- AX = BFA0h
- BX = ADADh
- Return: AX = BDBDh if newer ADAPT.COM installed
- BX = BCD version (BH = major, BL = minor)
- CL = ???
- CH = ???
- DL = ???
- AX = ADADh if older version of ADAPT.COM installed
- Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
- optionally-resident utility for setting display colors and cursor
- size; when resident, it also includes a screen blanker
- SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
- Index: screen saver;ADAPT
- --------V-10BFA1-----------------------------
- INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
- AX = BFA1h
- Return: AX = BDBEh if supported
- CH = current value of ???
- DL = current value of ???
- SeeAlso: AX=BFA0h,AX=BFA2h
- --------V-10BFA2-----------------------------
- INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
- AX = BFA2h
- CH = new value for ???
- DL = new value for ???
- Return: AX = BDBEh if supported
- SeeAlso: AX=BFA0h,AX=BFA1h
- --------A-10C0-------------------------------
- INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
- AH = C0h
- ???
- Return: ???
- SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
- --------A-10C1-------------------------------
- INT 10 - CU Writer v1.4 - OUTPUT TEXT
- AH = C1h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
- --------A-10C2-------------------------------
- INT 10 - CU Writer v1.4 - REVERSE TEXT
- AH = C2h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
- --------A-10C3-------------------------------
- INT 10 - CU Writer v1.4 - TEXT BAR
- AH = C3h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C1h,AH=C4h
- --------A-10C4-------------------------------
- INT 10 - CU Writer v1.4 - TEXT MENU
- AH = C4h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
- --------V-10CB00-----------------------------
- INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
- AX = CB00h
- Note: combined with AX=CB06h, this function permits the use of video mode
- 13h together with the VGA's unchained mode
- SeeAlso: AX=CB06h,AX=CBFFh
- --------V-10CB01-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
- AX = CB01h
- BX = offset of page 1
- Desc: inform UNCHAIN of the location of video page 1 in video memory; the
- default is 0000h
- SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
- --------V-10CB02-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
- AX = CB02h
- BX = offset of page 2
- Desc: inform UNCHAIN of the location of video page 2 in video memory; the
- default is 3E80h (16000, for 320x200)
- SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
- --------V-10CB03-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
- AX = CB03h
- BX = offset of page 3
- Desc: inform UNCHAIN of the location of video page 3 in video memory; the
- default is 7D00h (32000, for 320x200)
- SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
- --------V-10CB04-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
- AX = CB04h
- BX = offset of page 4
- Desc: inform UNCHAIN of the location of video page 4 in video memory; the
- default is BB80h (48000, for 320x200)
- SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
- --------V-10CB05-----------------------------
- INT 10 - UNCHAIN - SAVE PALETTE
- AX = CB05h
- SeeAlso: AX=CB00h,AX=CB06h
- --------V-10CB06-----------------------------
- INT 10 - UNCHAIN - RESTORE VGA REGISTERS
- AX = CB06h
- SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
- --------V-10CBFF-----------------------------
- INT 10 - UNCHAIN - INSTALLATION CHECK
- AX = CBFFh
- Return: AX = CCBBh if installed
- Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
- development tools with Mode X video in the absence of a second
- monitor
- SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
- --------V-10CC00-----------------------------
- INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
- AX = CC00h
- SI = magic value 0000h (if checking version)
- Return: CX = product signature
- ABCDh UltraVision
- 5546h ('UF') UltraFont
- AL = Ultravision extensions
- 00h enabled
- FFh disabled
- AH = card designator
- BX:00F0h -> palette values (for compatibility with NEWFONT)
- DX = support for high resolution modes
- 00h not active
- 01h active
- SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
- unchanged for versions <1.2
- Note: UltraFont is a simplified version of UltraVision for Toshiba;
- only the signature in CX and the status in AL will be returned
- SeeAlso: AX=CC01h,AX=CC02h
- --------V-10CC01-----------------------------
- INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
- AX = CC01h
- Notes: subsequent BIOS calls will be passed through to previous handler
- should be followed immediately by mode set to restore normal EGA/VGA
- state
- SeeAlso: AX=CC02h
- --------V-10CC02-----------------------------
- INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
- AX = CC02h
- Note: should be followed immediately by mode set to restore previous
- UltraVision state
- SeeAlso: AX=CC01h
- --------V-10CD00-----------------------------
- INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
- AX = CD00h
- CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
- DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
- Notes: if palette locking is in effect for the current mode, the new colors
- will be displayed immediately; otherwise, the system reverts to the
- default palette
- palette table 0 is reserved for the default palette and cannot be set
- UltraVision always sets the border color to black
- SeeAlso: AX=CD01h,AX=CD02h
- --------V-10CD01-----------------------------
- INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
- AX = CD01h
- CL = palette locking value
- 00h none
- 01h text modes only (02h,03h)
- FFh all modes (all standard color text and graphics modes)
- Notes: intended for video modes with 16 or fewer colors
- SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
- --------V-10CD02-----------------------------
- INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
- AX = CD02h
- Return: CL = palette table number
- DS:DX -> 17-byte palette register list (see #0124)
- DS:SI -> current font names table (see #0125,#0126)
- Note: only the font names are valid on monochrome EGA systems
- SeeAlso: AX=1009h,AX=CD00h
-
- Format of UltraVision palette register list:
- Offset Size Description (Table 0124)
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
-
- Format of UltraVision v2+ current font names table:
- Offset Size standard EGA HiRes EGA VGA (Table 0125)
- 00h 8 BYTEs N/A F19 font F20 font
- 08h 8 BYTEs F14 font F14 font F14 font
- 10h 8 BYTEs N/A F11 font F10 font
- 18h 8 BYTEs F8 font F8 font F8 font
-
- Format of UltraVision v1.x current font names table:
- Offset Size HiRes EGA (Table 0126)
- 00h 8 BYTEs F19/F14 font
- 08h 8 BYTEs F11/F8 font
- --------V-10CD03-----------------------------
- INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
- AX = CD03h
- Return: CL = palette locking value
- 00h none
- 01h text modes only
- FFh all modes
- SeeAlso: AX=CD01h
- --------V-10CD04-----------------------------
- INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
- AX = CD04h
- Return: AL = mode number (see #0127)
- SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
-
- (Table 0127)
- Values for UltraVision video mode number:
- 11h 80x25
- 12h 80x43, 80x50
- 13h 80x34, 80x36
- 14h 80x60, 80x63
- 19h 94x25
- 1Ah 94x43, 94x50
- 1Bh 94x36
- 1Ch 94x63
- 21h 108x25
- 22h 108x43, 108x50
- 23h 107x34, 108x36
- 24h 108x60, 108x63
- 31h 120x25
- 32h 120x43, 120x50
- 33h 132x25
- 34h 132x44, 132x50
- 39h 120x36
- 3Ah 120x63
- 3Bh 132x36
- 3Ch 132x60
- Index: video modes;UltraVision
- --------V-10CD05-----------------------------
- INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
- AX = CD05h
- CL = type
- 00h line cursor
- FFh box cursor
- Note: sets default cursor type for text-based programs
- SeeAlso: AH=01h,AX=CD06h
- --------V-10CD06-----------------------------
- INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
- AX = CD06h
- Return: CL = type
- 00h line cursor
- FFh box cursor
- SeeAlso: AH=03h,AX=CD05h
- --------V-10CD07-----------------------------
- INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
- AX = CD07h
- CL = hardware underline status (see #0128)
- BL = foreground color for normal text (FFh = current)
- BH = foreground color for bright text (FFh = current)
- Return: CL = hardware underline status
- BL = current foreground color for normal text
- BH = current foreground color for bright text
- Notes: when underline or strikeout is enabled in color text modes, the
- specified colors will be assigned temporarily to colors 01h and 09h,
- allowing affected text to match non-underlined text. The color
- remapping uses values from the current onscreen palette regardless
- of the palette locking status (see AX=CD01h)
- specify the standard colors (BL=01h,BH=09h) to enable underline or
- strikeout without color remapping
- SeeAlso: AX=CD08h
-
- (Table 0128)
- Values for hardware underline status:
- 00h off (color systems only)
- 01h underline below characters
- 02h strike through characters
- --------V-10CD08-----------------------------
- INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
- AX = CD08h
- Return: CL = hardware underline status (see #0128)
- BL = foreground color for normal text
- BH = foreground color for bright text
- Note: only CL is valid on monochrome EGA systems
- SeeAlso: AX=CD07h
- --------V-10CD10-----------------------------
- INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
- AX = CD10h
- BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
- CX = ABCDh load 9xN alternate font (v2+)
- else number of characters to load
- DX = character offset into font table
- DS:SI -> 8-byte ASCII font name
- ES:BP -> font definitions
- Return: AX = FFFFh if invalid font parameters
- Notes: loads the designated characters into UltraVision's resident font area
- should be followed by a video mode set to reload character generator
- SeeAlso: AX=1100h
- --------V-10CD-------------------------------
- INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
- AH = CDh
- AL = text mode number (see #0127)
- Return: AX = CDCDh if invalid mode
- SeeAlso: AX=CD04h
- --------A-10D0-------------------------------
- INT 10 - CU Writer v1.4 - LOAD PICTURE
- AH = D0h
- ???
- Return: ???
- SeeAlso: AH=B0h"CU Writer",AH=C4h
- --------V-10D0-------------------------------
- INT 10 U VIDEO - HP 100LX/200LX - SET ZOOM MODE
- AH = D0h
- AL = zoom mode
- 02h 80x25 mono
- 03h 80x25 color
- 80h 64x18 mono
- 81h 64x18 color
- 82h 40x25 mono
- 83h 40x25 color
- 84h 40x16 mono
- 85h 40x16 color
- Note: zoom mode can only be changed within zoom modes of the same color
- scheme; if needed, set to mono/color with AH=00h,AL=02h/03h; with
- mono video modes AL=07h or AL=21h only 80x25 and 40x16 will work
- the current zoom mode is stored in the BIOS data area at 0040h:009Fh
- SeeAlso: AH=D1h,AH=D4h
- --------V-10D1-------------------------------
- INT 10 U VIDEO - HP 100LX/200LX - INTERNAL - ???
- AH = D1h
- AL = 01h
- Return: ???
- Note: called by AH=D0h
- SeeAlso: AH=D0h,AH=D4h
- --------V-10D4-------------------------------
- INT 10 U VIDEO - HP 100LX/200LX - INTERNAL - ???
- AH = D4h
- AL = 29h
- Return: ???
- Note: called by AH=D0h
- SeeAlso: AH=D0h,AH=D1h
- --------V-10D5-------------------------------
- INT 10 - Netroom SCRNCLK - ???
- AH = D5h
- ???
- Return: ???
- Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
- --------V-10DFA5-----------------------------
- INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
- AX = DFA5h
- Return: AX = BDBFh if supported
- ES:DI -> ??? data area
- BX = ES
- SeeAlso: AX=BFA0h
- --------V-10EF-------------------------------
- INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
- AH = EFh
- Return: DL = video adapter type
- 00h original Hercules
- 01h Hercules Plus (port 03BAh reads x001xxxxx)
- 02h Hercules InColor (port 03BAh reads x101xxxxx)
- FFh not a Hercules-compatible card (port 03BAh bit 7 not pulsing)
- DH = memory mode byte
- 00h "half" mode
- 01h "full" mode
- FFh not a Hercules-compatible card
- Program: MSHERC.COM is a support program for the Microsoft Quick languages
- which makes their graphics libraries compatible with a Hercules card
- by adding video modes 08h and 88h, and supporting text in the new
- graphics modes.
- Notes: while in mode 08h or 88h, INT 10 supports the Hercules card much like
- a CGA.
- MSHERC performs an installation check by setting DL=FFh and testing
- whether it has been changed on return, which causes it to reinstall
- itself when no HGC is present (or HGC emulation has temporarily been
- disabled); a better installation check would be to use DX=80FFh and
- check whether DX has been changed
- reportedly returns DH=00h on some not-entirely-Hercules-compatible
- cards
- Index: installation check;MSHERC
- --------V-10F0-------------------------------
- INT 10 - EGA Register Interface Library - READ ONE REGISTER
- AH = F0h
- BL = register number
- BH = 00h
- DX = group index (see #0129)
- Return: BL = data
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
-
- (Table 0129)
- Values for group index:
- Pointer/data chips
- 00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
- 08h Sequencer (5 registers) 3C4h
- 10h Graphics Controller (9 registers) 3CEh
- 18h Attribute Controller (20 registers) 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color modes)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- --------V-10F1-------------------------------
- INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
- AH = F1h
- DX = group index (see #0129)
- if single register:
- BL = value to write
- otherwise
- BL = register number
- BH = value to write
- Return: BL = data
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AX=7F05h,AH=F0h,AH=F3h
- --------V-10F2-------------------------------
- INT 10 - EGA Register Interface Library - READ REGISTER RANGE
- AH = F2h
- CH = starting register number
- CL = number of registers (>1)
- DX = group index (00h,08h,10h,18h) (see #0129)
- ES:BX -> buffer, CL bytes
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F0h,AH=F3h
- --------V-10F3-------------------------------
- INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
- AH = F3h
- CH = starting register
- CL = number of registers (>1)
- DX = group index (00h,08h,10h,18h) (see #0129)
- ES:BX -> buffer, CL bytes
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AX=7F05h,AH=F1h,AH=F2h
- --------V-10F4-------------------------------
- INT 10 - EGA Register Interface Library - READ REGISTER SET
- AH = F4h
- CX = number of registers to read (>1)
- ES:BX -> table of register records (see #0130)
- Return: register values in table filled in
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F0h,AH=F2h,AH=F5h
-
- Format of EGA RIL entries in table of register records:
- Offset Size Description (Table 0130)
- 00h WORD group index
- Pointer/data chips
- 00h CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- 02h BYTE register number (0 for single registers)
- 03h BYTE register value
- --------V-10F5-------------------------------
- INT 10 - EGA Register Interface Library - WRITE REGISTER SET
- AH = F5h
- CX = number of registers to write (>1)
- ES:BX -> table of records (see #0130)
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
- --------V-10F6-------------------------------
- INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
- AH = F6h
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F7h
- --------V-10F7-------------------------------
- INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
- AH = F7h
- DX = port number
- Pointer/data chips
- 00h CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color modes)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- ES:BX -> table of one-byte entries, one byte to be written to each
- register
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F6h
- --------V-10FA--BX0000-----------------------
- INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
- AH = FAh
- BX = 0000h
- Return: BX = 0000h if RIL driver not present
- ES:BX -> EGA Register Interface version number, if present:
- byte 0 = major release number
- byte 1 = minor release number
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F6h,INT 2F/AX=BC00h
- --------K-10FA-------------------------------
- INT 10 - FASTBUFF.COM - INSTALLATION CHECK
- AH = FAh
- Return: AX = 00FAh if installed
- ES = segment of resident code
- Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
- Steiner
- Index: screen saver;FASTBUFF
- --------V-10FE-------------------------------
- INT 10 - TopView - GET SHADOW BUFFER
- AH = FEh
- ES:DI -> assumed video buffer
- B800h:0000h color text/CGA graphics, B000h:0000h mono text,
- or A000h:0000h EGA/VGA graphics (RSIS environments only)
- Return: ES:DI -> actual video buffer for calling process
- Desc: Determine the address of the virtual screen to which the program
- should write instead of the actual video memory; this permits
- programs to be multitasked without interfering with each other's
- output, and allows memory managers to move the video memory to
- permit larger programs to be loaded.
- Notes: if no multitasker or RSIS-compliant environment is installed, ES:DI is
- returned unchanged; RSIS is the Relocated Screen Interface
- Specification
- for display pages other than 0, use AH=05h and AH=0Fh to determine
- whether a particular page exists
- TopView requires a call to AH=FFh to notify it that the screen has
- changed; DESQview will check for changes itself until the first call
- to AH=FFh
- SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
- SeeAlso: INT 21/AH=ECh"DoubleDOS"
- --------V-10FF-------------------------------
- INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
- AH = FFh
- CX = number of consecutive changed characters
- ES:DI -> first changed character in shadow buffer
- Notes: avoid CX=0000h
- DESQview will discontinue the automatic screen updating initiated by
- AH=FEh after this call
- not supported (ignored) by DESQview/X 1.0x
- SeeAlso: AH=93h,AH=FEh
- --------E-10FF-------------------------------
- INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
- AH = FFh
- AL = video mode (see #0131)
- Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
- GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
- SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
-
- (Table 0131)
- Values for GO32 video mode number:
- 00h 80x25 text
- 01h default text
- 02h CXxDX text
- 03h biggest text
- 04h 320x200 graphics
- 05h default graphics
- 06h CXxDX graphics
- 07h biggest non-interlaced graphics
- 08h biggest graphics
- Index: video modes;GO32
- --------V-10FF-------------------------------
- INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
- AH = FFh
- AL = emulation
- 43h ('C') CGA emulation
- 45h ('E') EGA emulation
- 4Dh ('M') Hercules emulation
- 56h ('V') VGA emulation
- ES:DI -> signature string "Calamity"
- Return: VGA switched to suggested mode
- SeeAlso: AH=00h,AX=007Fh,AX=5F01h
- --------R-10FF00-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
- AX = FF00h
- Return: BL = state
- 00h not connected
- 01h connected
- SeeAlso: AX=FF01h,AX=FF02h
- --------R-10FF01-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
- AX = FF01h
- SeeAlso: AX=FF00h,AX=FF02h
- --------R-10FF02-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
- AX = FF02h
- Return: ES:DI -> ASCIZ phone number
- SeeAlso: AX=FF00h,AX=FF01h
- --------C-11---------------------------------
- INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
- Desc: automatically generated by the CPU when the AC flag is set, the current
- privilege level is 3, and a misaligned memory access (WORD not on an
- even address or DWORD not on a multiple of 4) is made
- Note: not all V86 monitors allow the AC flag to be set, such as Turbo
- Debugger 386
- --------B-11---------------------------------
- INT 11 - BIOS - GET EQUIPMENT LIST
- Return: (E)AX = BIOS equipment list word (see #0132)
- Note: since older BIOSes do not know of the existence of EAX, the high word
- of EAX should be cleared before this call if any of the high bits
- will be tested
-
- Bitfields for BIOS equipment list:
- Bit(s) Description (Table 0132)
- 0 floppy disk(s) installed (see 6-7)
- 1 80x87 coprocessor installed
- 3-2 number of 16K banks of RAM on motherboard (PC only)
- number of 64K banks of RAM on motherboard (XT only)
- 2 pointing device installed (PS)
- 3 unused (PS)
- 5-4 initial video mode
- 00 EGA, VGA, or PGA
- 01 40x25 color
- 10 80x25 color
- 11 80x25 monochrome
- 7-6 number of floppies installed less 1 (if 0 set)
- 8 DMA support installed (PCjr, Tandy 1400LT)
- DMA support *not* installed (Tandy 1000's)
- 11-9 number of serial ports installed
- 12 game port installed
- 13 serial printer attached (PCjr)
- internal modem installed (PC/Convertible)
- 15-14 number of parallel ports installed
- ---Compaq, Dell, and many other 386/486 machines--
- 23 page tables set so that Weitek coprocessor addressable in real mode
- 24 Weitek math coprocessor present
- ---Compaq Systempro---
- 25 internal DMA parallel port available
- 26 IRQ for internal DMA parallel port (if bit 25 set)
- 0 = IRQ5
- 1 = IRQ7
- 28-27 parallel port DMA channel
- 00 DMA channel 0
- 01 DMA channel 0 ???
- 10 reserved
- 11 DMA channel 3
- SeeAlso: INT 12
- --------d-11----SI6A6A-----------------------
- INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
- SI = 6A6Ah
- AH = command (see #0133)
- AL = SCSI Addressing (see #0134)
- Return: CF clear if successful
- DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
- AH = ??? for command 01h
- CF set on error
- AL = error code
- SeeAlso: INT 21/AX=4402h"ASPI"
-
- (Table 0133)
- Values for SDLP command:
- 00h SDLP initialization
- 01h SDLP System Identify
- 02h simple read sectors
- 03h simple write sectors
- 04h simple verify sectors/seek to sector
- 05h get device size/type
- 06h ready unit
- 07h format unit
- 08h diagnostics
- 09h rewind
- 0Ah erase
- 0Bh write filemarks
- 0Ch space
- 0Dh prevent/allow media removal
- 0Eh load/unload media
- 0Fh reserved - returns good status
- 10h set block size
- 11h write setmark
- 12h set error level
- 13h get address of Request Sense Buffer
- 14h get SDLP error via Request Sense
- F0h Vendor Unique Function (WD7000-FASST2 only)
- FDh reset current SCSI HAC
- FEh get/set current SCSI HAC
- FFh execute SCSI command
-
- Bitfields for SDLP SCSI addressing:
- Bit(s) Description (Table 0134)
- 7-6 Host Adapter
- 5-3 SCSI Target ID
- 2-0 SCSI Target LUN (logical unit number)
- --------V-110225BX6900-----------------------
- INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
- AX = 0225h
- BX = 6900h
- Return: BL = 23h
- ES:DI -> ASCIZ "BLNKIT"
- Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
- Inc.
- SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
- Index: screen saver;Blank-It
- --------V-110225BX6901-----------------------
- INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
- AX = 0225h
- BX = 6901h
- CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
- largest value is 59 minutes (FBACh or 64428)
- Return: CF clear if successful
- DI = 6A6Ah (possibly also 6A6Ah for all following functions)
- AH = ???
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h
- Index: screen saver;Blank-It
- --------V-110225BX6902-----------------------
- INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
- AX = 0225h
- BX = 6902h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h
- Index: screen saver;Blank-It
- --------V-110225BX6903-----------------------
- INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
- AX = 0225h
- BX = 6903h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h
- Index: screen saver;Blank-It
- --------V-110225BX6904-----------------------
- INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
- AX = 0225h
- BX = 6904h
- Return: CF clear if successful
- BX = timeout (see BX=6901h)
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h
- Index: screen saver;Blank-It
- --------V-110225BX6905-----------------------
- INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
- AX = 0225h
- BX = 6905h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h
- Index: screen saver;Blank-It
- --------V-110225BX6906-----------------------
- INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
- AX = 0225h
- BX = 6906h
- Return: CF clear if successful
- CF set on error
- AL = error code
- Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
- Inc.
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h
- Index: screen saver;Blank-It
- --------V-110225BX6907-----------------------
- INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
- AX = 0225h
- BX = 6907h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h
- Index: screen saver;Blank-It
- --------V-110225BX6908-----------------------
- INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
- AX = 0225h
- BX = 6908h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h
- Index: screen saver;Blank-It
- --------V-110225BX6909-----------------------
- INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
- AX = 0225h
- BX = 6909h
- CL = key scan code (see #0135)
- Return: CF clear if successful
- CF set on error
- AL = error code
- Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
- Inc.
- SeeAlso: AX=0225h/BX=6900h
- Index: screen saver;Blank-It|hotkeys;Blank-It
-
- (Table 0135)
- Values for Blank-It hotkey scan code:
- 00h No hot key
- 1Dh Left CTRL
- 2Ah Left Shift
- 36h Right Shift
- 57h F11
- 58h F12
- --------G-1105D7-----------------------------
- INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
- AX = 05D7h
- BX = product ID (0088h)
- Note: called by the BC++ IDE when an application calls
- INT 12/AX=05D7h/BX=05D7h
- SeeAlso: INT 12/AX=05D7h/BX=05D7h
- Index: installation check;Borland C++ IDE
- --------F-1177-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
- AH = 77h
- AL = subfunction
- 01h request SFENGINE start
- Return: AX = 0001h
- 02h check if SFENGINE started
- Return: AX = 0000h or 0001h
- 03h request SFENGINE stop
- Return: AX = 0001h
- 04h check if SFENGINE stopped
- Return: AX = 0000h or 0001h
- 05h installation check
- Return: AX = 0001h
- 06h uninstall???
- BX:DX -> return address for successful uninstall???
- Return: (at caller's address)
- AX = 0000h
- else
- Return: AX = FFFFh
- Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
- followed by internal data area???
- SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
- Index: installation check;RainbowFAX|installation check;SFENGINE
- Index: uninstall;RainbowFAX|uninstall;SFENGINE
- --------F-1178-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
- AH = 78h
- AL = subfunction
- 7801h set ???
- BX = new state for ???
- 0000h ???
- else ???
- Return: AX = 0001h
- 7802h set ???
- BX = ???
- CX = ???
- Return: AX = 0001h
- 7803h set ???
- BX = new state for ???
- 0000h ???
- else ???
- Return: AX = 0001h
- 78XXh invalid subfunction
- Return: AX = FFFFh
- SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
- --------F-1179-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
- AH = 79h
- AL = subfunction
- 01h set ??? flag
- Return: AX = previous state (0000h already set, 0001h clear)
- 02h clear ??? flag (see subfunc 01h)
- Return: AX = 0001h
- 03h set ??? flag (different from subfn 02h or 04h)
- Return: AX = 0001h
- 04h clear ??? flag (different from subfn 02h or 03h)
- Return: AX = 0001h
- else
- Return: AX = FFFFh
- SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
- --------F-117A-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
- AH = 7Ah
- AL = subfunction
- 01h set ??? flag
- Return: AX = previous state (0000h already set, 0001h clear)
- 02h clear ??? flag
- Return: AX = 0001h
- 03h set ??? flag (different from subfn 02h)
- Return: AX = 0001h
- else
- Return: AX = FFFFh
- SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
- --------F-117C-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
- AH = 7Ch
- AL = subfunction
- 01h set ??? flag (see also subfn 02h)
- Return: AX = 0001h
- 02h clear ??? flag (see also subfn 01h)
- Return: AX = 0001h
- else
- Return: AX = FFFFh
- SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
- --------S-11BC--DX1954-----------------------
- INT 11 - BNU FOSSIL - INSTALLATION CHECK
- AH = BCh
- DX = 1954h
- Return: AX = 1954h
- ES:DX -> entry point of driver (instead of INT 14)
- SeeAlso: INT 14/AH=04h"FOSSIL"
- --------d-11FF--SI6A6A-----------------------
- INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
- AH = FFh
- SI = 6A6Ah
- AL = SCSI Addressing (see #0136)
- CX = bytes of data to be transmitted (max FFF0h)
- DH = 00h
- DL = length of SCSI Command Descriptor Block
- DS:DI -> SCSI Command Descriptor Block
- ES:BX -> data buffer
- Return: CF set on error
- AL = error code
- CF clear if successful
- Note: because of busmaster operations with WD7000FASST avoid accessing
- video memory directly; check 386 memory manager for VDS support.
- The WD7000XTAT works with programmed IO and does not have this
- limitation.
- SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
-
- Bitfields for SDLP SCSI addressing:
- Bit(s) Description (Table 0136)
- 2-0 SCSI Target LUN (logical unit number)
- 5-3 SCSI Target ID
- 7 write flag, set for write operations, clear otherwise
- --------T-11FFFECXFFFE-----------------------
- INT 11 - BACK&FORTH (before v1.62) API
- AX = FFFEh
- CX = FFFEh
- BX = function
- 00h installation check
- Return: AX = installation state
- 0001h BNFHIGH and BNFLOW both loaded
- 0003h only BNFHIGH loaded
- else neither loaded
- 01h ???
- Return: DX:AX -> ???
- 02h ???
- 03h ???
- 04h ???
- 05h ??? switches current PSP segment and stack if BNFLOW has not
- yet announced itself installed
- 06h ???
- Return: AX = ???
- SeeAlso: INT 12/AX=FFFEh
- Index: installation check;BACK&FORTH
- --------B-12---------------------------------
- INT 12 - BIOS - GET MEMORY SIZE
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- Note: this call returns the contents of the word at 0040h:0013h; in PC and
- XT, this value is set from the switches on the motherboard
- SeeAlso: INT 11,INT 2F/AX=4A06h
- --------K-12----CX1806-----------------------
- INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
- CX = 1806h
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- CX = 1960h if installed
- Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
- accented characters and box drawing on standard QWERTY keyboards; it
- also provides break-to-DOS and screen blanking capabilities
- SeeAlso: INT 14/AX=AA01h
- Index: screen saver;KEYBUI
- --------d-12----CX1807-----------------------
- INT 12 - PARKER v2.0+ - INSTALLATION CHECK
- CX = 1807h
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- CX = 1961h if installed
- Program: PARKER is an optionally-resident hard disk parking program by Johan
- Zwiekhorst
- --------G-1205D7BX05D7-----------------------
- INT 12 U - Borland C++ IDE - INSTALLATION CHECK
- AX = 05D7h (1495d)
- BX = 05D7h
- Note: the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
- SeeAlso: INT 11/AX=05D7h/BX=0088h
- --------v-124350BX4920-----------------------
- INT 12 C - CPI-standard virus - "FRIEND" CHECK
- AX = 4350h
- BX = 4920h
- CX = AB46h
- DX = 554Eh
- Return: if friendly (not to be infected)
- CX:DX -> ASCIZ identity code (changes yearly)
- SeeAlso: AX=EC00h"VIRUS",INT 13/AX=5001h,INT 21/AX=0B56h
- --------T-12FFFECXFFFE-----------------------
- INT 12 - Back&Forth v1.62+ - API
- AX = FFFEh
- CX = FFFEh
- BX = function
- 00h installation check
- Return: AX = 0001h installed
- else not loaded
- 01h (reserved)
- 02h build program ID list (shareware Back&Forth)
- ES:DI -> buffer of at least 100 bytes, to be filled with words
- Return: AX = number of programs defined
- ES:DI buffer filled with AX words
- 02h get memory statistics (Back&Forth Professional)
- Return: AX = available swap memory, KBytes
- BX = maximum task size, KBytes
- DX = fixed overhead per task, excluding video/macro
- storage
- 03h switch to specified task (task need not be open yet)
- DX = two-letter program ID
- Return: AX = status
- 0000h if task undefined
- 0001h task switch will occur when safe
- 04h (reserved)
- 05h (reserved)
- 06h get version (documented only for Back&Forth Professional)
- Return: AX = version * 100 (v1.71 = 00ABh)
- 07h spawn program (Back&Forth Professional only???)
- ES:DI -> BF_SPAWN record (see #0138)
- Return: AX = status
- 0000h if no task handles free
- 0001h spawn will occur when safe
- 08h get open tasks (documented only for Back&Forth Professional)
- ES:DI -> task info buffer (see #0137,#0139)
- Return: AX = number of open tasks (max 20)
- Note: the supplied buffer must be large enough to hold 21
- task entries
- 09h (reserved)
- ---Back&Forth Professional---
- 0Ah get active clipboard filename
- Return: DX:AX -> ASCIZ clipboard filename
- 0Bh get active task number
- AX = active task number (00h-13h)
- BX = number of tasks allocated
- DX = maximum number of tasks
- 0Ch (reserved)
- 0Dh (reserved)
- 0Eh (reserved)
- 0Fh stuff string into keyboard buffer
- ES:DI -> ASCIZ string to be stuffed
- Return: nothing
- 10h check if in graphics mode
- Return: AX = state
- 0000h color text mode
- 0004h mono text mode
- FFFFh graphics mode
- 11h get Back&Forth Professional user number
- Return: AX = user number (0000h-00FFh)
- 12h switch task by task number
- DX = task number
- Return: AX = status
- 0000h attempted to switch to active task
- 0001h task switch will occur when safe
- FFFFh invalid task number
- 13h delete (kill) task
- DX = task number
- Return: AX = status
- 0000h attempted to delete the active task
- 0001h successfully deleted
- FFFFh invalid task number
- Note: the active task number will change if the deleted task
- was lower in the task list than the active task
- 14h get next available task handle
- Return: AX = next available task handle
- FFFFh if task table is full
- Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
- SeeAlso: INT 11/AX=FFFEh
- Index: installation check;BACK&FORTH
-
- Format of Back&Forth task info buffer:
- Offset Size Description (Table 0137)
- 00h 21 BYTEs ASCIZ task name
- 15h BYTE hotkey shift state (as for INT 16/AH=02h)
- 16h WORD hotkey scan code
- 18h WORD program ID
- Index: hotkeys;Back&Forth
- SeeAlso: #0138,#0139
-
- Format of Back&Forth Professional BF_SPAWN record:
- Offset Size Description (Table 0138)
- 00h 21 BYTEs task description
- 15h BYTE flag: disable hotkeys
- 16h WORD environment size in bytes
- 18h BYTE hotkey shift flags
- 19h WORD hotkey scancode
- 1Bh WORD maximum number of EMS pages
- 1Dh WORD required memory in KBytes
- 1Fh 3 BYTEs DESQview-style two-letter program ID
- 22h 13 BYTEs base name of program to be run (no path or extension)
- 2Fh 66 BYTEs directory from which to start program
- 71h 66 BYTEs initial current directory for program
- SeeAlso: #0137,#0139
-
- Format of Back&Forth Professional BF_TASK record:
- Offset Size Description (Table 0139)
- 00h DWORD Unix-style task start time (seconds since 1/1/1970)
- 04h 21 BYTEs task description
- 19h DWORD elapsed time in task (seconds)
- 1Dh WORD task ID
- 1Fh BYTE task hotkey keyboard flags
- 20h WORD task hotkey scan code
- 22h DWORD time task was suspended/exited
- 26h WORD task handle
- SeeAlso: #0137,#0138
- --------B-1300-------------------------------
- INT 13 - DISK - RESET DISK SYSTEM
- AH = 00h
- DL = drive (if bit 7 is set both hard disks and floppy disks reset)
- Return: AH = status (see #0140)
- CF clear if successful (returned AH=00h)
- CF set on error
- Note: forces controller to recalibrate drive heads (seek to track 0)
- for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
- both the master drive and the slave drive respond to the Reset
- function that is issued to either drive
- SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4D/AH=00h"TI Professional"
- --------B-1301-------------------------------
- INT 13 - DISK - GET STATUS OF LAST OPERATION
- AH = 01h
- DL = drive (bit 7 set for hard disk)
- Return: CF clear if successful (returned status 00h)
- CF set on error
- AH = status of previous operation (see #0140)
- Note: some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
- status in both AH and AL
- SeeAlso: AH=00h,INT 4D/AH=01h,MEM 0040h:0074h
-
- (Table 0140)
- Values for disk operation status:
- 00h successful completion
- 01h invalid function in AH or invalid parameter
- 02h address mark not found
- 03h disk write-protected
- 04h sector not found/read error
- 05h reset failed (hard disk)
- 05h data did not verify correctly (TI Professional PC)
- 06h disk changed (floppy)
- 07h drive parameter activity failed (hard disk)
- 08h DMA overrun
- 09h data boundary error (attempted DMA across 64K boundary or >80h sectors)
- 0Ah bad sector detected (hard disk)
- 0Bh bad track detected (hard disk)
- 0Ch unsupported track or invalid media
- 0Dh invalid number of sectors on format (PS/2 hard disk)
- 0Eh control data address mark detected (hard disk)
- 0Fh DMA arbitration level out of range (hard disk)
- 10h uncorrectable CRC or ECC error on read
- 11h data ECC corrected (hard disk)
- 20h controller failure
- 31h no media in drive (IBM/MS INT 13 extensions)
- 32h incorrect drive type stored in CMOS (Compaq)
- 40h seek failed
- 80h timeout (not ready)
- AAh drive not ready (hard disk)
- B0h volume not locked in drive (INT 13 extensions)
- B1h volume locked in drive (INT 13 extensions)
- B2h volume not removable (INT 13 extensions)
- B3h volume in use (INT 13 extensions)
- B4h lock count exceeded (INT 13 extensions)
- B5h valid eject request failed (INT 13 extensions)
- BBh undefined error (hard disk)
- CCh write fault (hard disk)
- E0h status register error (hard disk)
- FFh sense operation failed (hard disk)
- --------B-1302-------------------------------
- INT 13 - DISK - READ SECTOR(S) INTO MEMORY
- AH = 02h
- AL = number of sectors to read (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number 1-63 (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer
- Return: CF set on error
- if AH = 11h (corrected ECC error), AL = burst length
- CF clear if successful
- AH = status (see #0140)
- AL = number of sectors transferred
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the read should be retried at least three times, resetting
- the disk with AH=00h between attempts
- most BIOSes support "multitrack" reads, where the value in AL
- exceeds the number of sectors remaining on the track, in which
- case any additional sectors are read beginning at sector 1 on
- the following head in the same cylinder; the CONFIG.SYS command
- MULTITRACK can be used to force DOS to split disk accesses which
- would wrap across a track boundary into two separate calls
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",INT 4D/AH=02h
- --------B-1303-------------------------------
- INT 13 - DISK - WRITE DISK SECTOR(S)
- AH = 03h
- AL = number of sectors to write (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number 1-63 (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140)
- AL = number of sectors transferred
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the write should be retried at least three times, resetting
- the disk with AH=00h between attempts
- most BIOSes support "multitrack" writes, where the value in AL
- exceeds the number of sectors remaining on the track, in which
- case any additional sectors are written beginning at sector 1 on
- the following head in the same cylinder; the CONFIG.SYS command
- MULTITRACK can be used to force DOS to split disk accesses which
- would wrap across a track boundary into two separate calls
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",INT 4D/AH=03h
- --------B-1304-------------------------------
- INT 13 - DISK - VERIFY DISK SECTOR(S)
- AH = 04h
- AL = number of sectors to verify (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number 1-63 (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140)
- AL = number of sectors verified
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the write should be retried at least three times, resetting
- the disk with AH=00h between attempts
- this function does not compare the disk with memory, it merely
- checks whether the sector's stored CRC matches the data's actual CRC
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=02h,INT 4D/AH=04h,INT 4D/AH=06h
- --------B-1305-------------------------------
- INT 13 - FLOPPY - FORMAT TRACK
- AH = 05h
- AL = number of sectors to format
- CH = track number
- DH = head number
- DL = drive number
- ES:BX -> address field buffer (see #0141)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140)
- Notes: on AT or higher, call AH=17h first
- the number of sectors per track is read from the diskette parameter
- table pointed at by INT 1E
- SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
-
- Format of floppy format address field buffer entry (one per sector in track):
- Offset Size Description (Table 0141)
- 00h BYTE track number
- 01h BYTE head number (0-based)
- 02h BYTE sector number
- 03h BYTE sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
- --------B-1305-------------------------------
- INT 13 - FIXED DISK - FORMAT TRACK
- AH = 05h
- AL = interleave value (XT-type controllers only)
- ES:BX -> 512-byte format buffer
- the first 2*(sectors/track) bytes contain F,N for each sector
- F = sector type
- 00h for good sector
- 20h to unassign from alternate location
- 40h to assign to alternate location
- 80h for bad sector
- N = sector number
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = high bits of cylinder number (bits 7,6)
- DH = head
- DL = drive
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140)
- Notes: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- for XT-type controllers on an AT or higher, AH=0Fh should be called
- first
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- not all controller support sector types 20h and 40h
- SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
- --------d-1305-------------------------------
- INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
- AH = 05h
- DL = hard drive ID
- ES:BX -> mode select data (see #0142)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140)
- Notes: this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
- format a SCSI disk with the desired parameters
- the mode select data below is from the SCSI-1 specification
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
-
- Format of Future Domain SCSI mode select data:
- Offset Size Description (Table 0142)
- 00h BYTE number of bytes of remaining data (12 + vendor unique length)
- 01h BYTE reserved (0)
- 02h BYTE medium type (0 for hard disk)
- 03h BYTE reserved (0)
- 04h BYTE block descriptor length (8)
- 05h BYTE density code (0 for hard disk)
- 06h 3 BYTEs (big-endian) number of blocks (000000h for entire disk)
- 09h BYTE reserved (0)
- 0Ah 3 BYTEs (big-endian) block length (512 standard, or 256)
- 0Dh ??? vendor-specific parameter bytes (optional)
- --------B-13057FSI324D-----------------------
- INT 13 - 2M - FORMAT TRACK
- AX = 057Fh
- SI = 324Dh ("2M")
- CH = track number
- DH = head number
- DL = drive number
- ES:BX -> boot sector of future 2M diskette
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140)
- Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
- non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
- and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
- Notes: it is not necessary to call AH=17h/AH=18h first (will be ignored)
- the diskette format must always begin on cylinder 0 head 0
- the boot sector can be obtained from an already-formatted 2M diskette
- (by calling AH=02h with head number 00h in 2M v1.x and with head
- number 80h for 2M v2+)
- the installation check for 2M must search for a "CiriSOFT:2M:1.3" or
- "CiriSOFT:2MX:3.0" or similar (recomended ":2M:", ":2MX:", or ":2MB:"
- substrings) in CiriSOFT TSR interface
- since 2M v2.0, the BOOT sector is emulated using the first physical
- sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
- diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
- FAT1) of 2M, in order to read the SuperBOOT code, head number must be
- 80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
- This lets diskcopy programs format 2M target diskettes copying
- SuperBOOT code. If the target diskette is already 2MF formatted
- (containing boot code) this trick it is not necessary.
- when using STV technology (offset 65 of boot sector equal to 1) it is
- necessary to write the full track before formatting (except track 0
- side 0) to complete the format and skip future CRC errors on read; in
- track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
- may do a format-write-verify sequential phases to improve performance
- SeeAlso: AH=05h"FLOPPY",INT 2F"CiriSOFT TSR interface"
- --------B-1306-------------------------------
- INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
- AH = 06h
- AL = interleave value
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see #0140)
- Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
- --------d-1306-------------------------------
- INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
- AH = 06h
- AL = interleave
- (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
- DL = hard drive ID
- DH = defect list info (see #0143)
- ES:BX -> defect table A, B or C (see #0144,#0145,#0146)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140)
- Notes: block addresses must be in ascending order (for table B, cylinder is
- most significant, byte from index least significant; for table C,
- cylinder is most significant, sector number least significant)
- table B defect bytes from index of FFFFFFFFh indicates that the entire
- track shall be reassigned
- table C defect sector number of FFFFFFFFh indicates that the entire
- track shall be reassigned
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
-
- Bitfields for Future Domain SCSI defect list info:
- Bit(s) Description (Table 0143)
- 7-5 drive LUN
- 4 defect list is available
- 3 defect list is complete (erase drive's defect list)
- 2-0 defect table format
- (000=use defect table A, 100=use defect table B,
- 101=use defect table C)
-
- Format of Future Domain SCSI defect table A:
- Offset Size Description (Table 0144)
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD (big-endian) defect list length (4*number of defects)
- 06h 4 DWORDs (big-endian) defect block addresses
-
- Format of Future Domain SCSI defect table B:
- Offset Size Description (Table 0145)
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD (big-endian) defect list length (8*number of defects)
- 06h 8N BYTEs defect list [array] (see #0147)
-
- Format of Future Domain SCSI defect table C:
- Offset Size Description (Table 0146)
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD (big-endian) defect list length (8*number of defects)
- 06h 8N BYTEs defect list [array] (see #0147)
-
- Format of Future Domain SCSI defect list entry:
- Offset Size Description (Table 0147)
- 00h 3 BYTEs (big-endian) cylinder number of defect
- 03h BYTE head number of defect
- 04h DWORD (big-endian) defect bytes from index
- --------d-1306-------------------------------
- INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
- AH = 06h
- Return: AH = status code (see #0140)
- CF clear if successful
- AL = first drive supported
- (80h nonconcurrent operation, 81h concurrent operation)
- CF set on error
- Desc: determine the number of the first supported SCSI drive
- Note: the return value is 80h when two SCSI drives are supported, 81h if
- only one SCSI drive is installed
- SeeAlso: AH=08h
- --------d-1306-------------------------------
- INT 13 - V10DISK.SYS - READ DELETED SECTORS
- AH = 06h
- AL = number of sectors
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- ES:BX -> buffer
- Return: AH = status code (see #0140)
- Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
- SeeAlso: AH=02h,AH=07h"V10DISK.SYS"
- --------B-1307-------------------------------
- INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
- AH = 07h
- AL = interleave value (XT only)
- ES:BX = 512-byte format buffer (see AH=05h)
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see #0140)
- Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
- --------d-1307-------------------------------
- INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
- AH = 07h
- AL = interleave (0 = default, 1 = consecutive sectors,
- 2 - 255 = vendor unique)
- DL = hard drive ID
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140)
- SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
- --------d-1307-------------------------------
- INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
- AH = 07h
- AL = number of sectors
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- ES:BX -> buffer
- Return: AH = status code (see #0140)
- Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
- SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
- --------B-1308-------------------------------
- INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
- AH = 08h
- DL = drive (bit 7 set for hard disk)
- Return: CF set on error
- AH = status (07h) (see #0140)
- CF clear if successful
- AH = 00h
- BL = drive type (AT/PS2 floppies only) (see #0148)
- CH = low eight bits of maximum cylinder number
- CL = maximum sector number (bits 5-0)
- high two bits of maximum cylinder number (bits 7-6)
- DH = maximum head number
- DL = number of drives
- ES:DI -> drive parameter table (floppies only)
- Notes: may return successful even though specified drive is greater than the
- number of attached drives of that type (floppy/hard); check DL to
- ensure validity
- for systems predating the IBM AT, this call is only valid for hard
- disks, as it is implemented by the hard disk BIOS rather than the
- ROM BIOS
- Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
- but fail on DL=81h. The BIOS data at 40h:75h correctly reports 01h.
- may indicate only two drives present even if more are attached; to
- ensure a correct count, one can use AH=15h to scan through possible
- drives
- for BIOSes which reserve the last cylinder for testing purposes, the
- cylinder count is automatically decremented
- SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E,INT 41
-
- (Table 0148)
- Values for diskette drive type:
- 01h 360K
- 02h 1.2M
- 03h 720K
- 04h 1.44M
- 05h ??? (reportedly an obscure drive type shipped on some IBM machines)
- 2.88M on some machines (at least AMI 486 BIOS)
- 06h 2.88M
- --------d-1308-------------------------------
- INT 13 - V10DISK.SYS - SET FORMAT
- AH = 08h
- AL = number of sectors
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see #0140)
- Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
- Note: details not available
- SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
- --------y-130800DLF0-------------------------
- INT 13 - SecureDrive - INSTALLATION CHECK
- AX = 08000h
- DL = F0h
- Return: AX = EDCBh for version 1.0-1.2
- AX = EDCCh for version 1.3
- CX = code segment
- DX = data address within code segment
- Program: SecureDrive by Mike Ingle <mikeingle@delphi.com> allows you to create
- an encrypted partition on your harddisk.
- --------B-1309-------------------------------
- INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
- AH = 09h
- DL = drive (80h for first, 81h for second)
- Return: CF clear if successful
- CF set on error
- AH = status (see #0140)
- Notes: on the PC and XT, this function uses the parameter table pointed at by
- INT 41
- on the AT and later, this function uses the parameter table pointed at
- by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
- DL=81h
- SeeAlso: INT 41,INT 46
- --------B-130A-------------------------------
- INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
- AH = 0Ah
- AL = number of sectors
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second)
- ES:BX -> data buffer
- Return: CF clear if successful
- CF set on error
- AH = status (see #0140)
- AL = number of sectors transferred
- Notes: this function reads in four to seven bytes of error-correcting code
- along with each sector's worth of information
- data errors are not automatically corrected, and the read is aborted
- after the first sector with an ECC error
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=02h,AH=0Bh
- --------B-130B-------------------------------
- INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
- AH = 0Bh
- AL = number of sectors
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second)
- ES:BX -> data buffer
- Return: CF clear if successful
- CF set on error
- AH = status (see #0140)
- AL = number of sectors transferred
- Notes: each sector's worth of data must be followed by four to seven bytes of
- error-correction information
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=03h,AH=0Ah
- --------B-130C-------------------------------
- INT 13 - HARD DISK - SEEK TO CYLINDER
- AH = 0Ch
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140)
- SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47h
- --------d-130D-------------------------------
- INT 13 - HARD DISK - RESET HARD DISKS
- AH = 0Dh
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140)
- Notes: reinitializes the hard disk controller, resets the specified drive's
- parameters, and recalibrates the drive's heads (seek to track 0)
- for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
- both the master drive and the slave drive respond to the Reset
- function that is issued to either drive
- not for PS/2 ESDI drives
- SeeAlso: AH=00h,INT 21/AH=0Dh
- --------B-130E-------------------------------
- INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
- AH = 0Eh
- DL = drive number (80h = first, 81h = second hard disk)
- ES:BX -> buffer
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140)
- Notes: transfers controller's sector buffer. No data is read from the drive
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=0Ah
- --------B-130F-------------------------------
- INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
- AH = 0Fh
- DL = drive number (80h = first, 81h = second hard disk)
- ES:BX -> buffer
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140)
- Notes: does not write data to the drive
- should be called before formatting to initialize an XT-type
- controller's sector buffer
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=0Bh
- --------B-1310-------------------------------
- INT 13 - HARD DISK - CHECK IF DRIVE READY
- AH = 10h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- --------B-1311-------------------------------
- INT 13 - HARD DISK - RECALIBRATE DRIVE
- AH = 11h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- Note: causes hard disk controller to seek the specified drive to cylinder 0
- SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
- --------B-1312-------------------------------
- INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
- AH = 12h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140 at AH=01h)
- AL = 00h
- SeeAlso: AH=13h,AH=14h
- --------d-1312-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
- AH = 12h
- DL = hard drive ID
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140 at AH=01h)
- Notes: available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
- if the given drive is a SCSI device, the SCSI Stop Unit command is sent
- and either "Disk prepared for shipping" or "Disk Stop command failed"
- is displayed
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- --------d-1312-------------------------------
- INT 13 - SyQuest - START/STOP SCSI DISK
- AH = 12h
- AL = subfunction
- 00h start disk
- 01h stop disk
- CX = wait flag
- 00h wait for ready
- 01h don't wait for ready
- DL = hard drive ID (bit 7 for hard disks must be set)
- Return: CF set on error
- CF clear if successful
- AH = status
- 00h successful
- 01h invalid function request
- 80h timeout
- SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"
- --------B-1313-------------------------------
- INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
- AH = 13h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140 at AH=01h)
- AL = 00h
- SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"
- --------d-1313-------------------------------
- INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
- AH = 13h
- DL = drive ID (bit 7 set for hard disks)
- Return: CF set on error
- AH = status (07h) (see #0140 at AH=01h)
- CF clear if successful
- AH = 00h
- BL = drive type (AT/PS2 floppies only) (see #0148)
- CH = low eight bits of maximum cylinder number
- CL = maximum sector number (bits 5-0)
- high two bits of maximum cylinder number (bits 7-6)
- DH = maximum head number
- DL = number of drives
- ES:DI -> drive parameter table (floppies only)
- Notes: the return values are identical to the standard INT 13/AH=08h, but the
- number of drives is not limited to 2, so
- scanning all possible drive numbers with the Read DASD Type call
- (AH=15h) should generally be preferred to determine the number of
- drives attached to the system.
- SeeAlso: AH=08h,AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"
- --------B-1314-------------------------------
- INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
- AH = 14h
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0140 at AH=01h)
- AL = 00h
- SeeAlso: AH=12h,AH=13h
- --------B-1315-------------------------------
- INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
- AH = 15h
- DL = drive number (bit 7 set for hard disk)
- Return: CF clear if successful
- AH = type code
- 00h no such drive
- 01h floppy without change-line support
- 02h floppy with change-line support
- 03h hard disk
- CX:DX = number of 512-byte sectors
- CF set on error
- AH = status (see #0140 at AH=01h)
- Note: SyQuest can report type 01h or 02h for 'hard disks', since its media
- is removable
- SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
- --------B-1316-------------------------------
- INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
- AH = 16h
- DL = drive number (00h-7Fh)
- Return: CF clear if change line inactive
- AH = 00h (disk not changed)
- CF set if change line active
- AH = status
- 01h invalid command (SyQuest)
- 06h change line active or not supported
- 80h drive not ready or not present
- Notes: call AH=15h first to determine whether the drive supports a change
- line
- this call also clears the media-change status, so that a disk change
- is only reported once
- SeeAlso: AH=15h,AH=49h
- --------B-1317-------------------------------
- INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
- AH = 17h
- AL = format type
- 01h = 320/360K disk in 360K drive
- 02h = 320/360K disk in 1.2M drive
- 03h = 1.2M disk in 1.2M drive
- 04h = 720K disk in 720K or 1.44M drive
- DL = drive number
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- Note: this function does not handle 1.44M drives; use AH=18h instead
- SeeAlso: AH=15h,AH=18h
- --------d-131700-----------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
- AX = 1700h
- CL = length of buffer
- DL = hard drive ID
- ES:BX -> buffer for info (see #0149)
- Return: CF clear if successful
- CH = number of bytes returned in buffer???
- CF set on error
- AH = status code (see #0140 at AH=01h)
- Notes: this function is not available with 8-bit controller ROM versions < 7.0
- information block bytes 5-n are vendor-specific in older SCSI devices
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
-
- Format of Future Domain SCSI inquiry information block:
- Offset Size Description (Table 0149)
- 00h BYTE device type
- bits 0-4: peripheral device type (see #0150)
- bits 5-7: peripheral qualifier (see #0151)
- 01h BYTE device type modifier
- bits 0-6: device type modifier
- bit 7: removable medium
- 02h BYTE SCSI version (see #0152)
- 03h BYTE data format/capabilities (see #0153)
- 04h BYTE additional data length (total remaining bytes)
- 05h 2 BYTEs reserved
- 07h BYTE device capabilities (see #0154)
- 08h 8 BYTEs vendor identification (space-padded ASCII)
- 10h 8 BYTEs product identification (space-padded ASCII)
- 20h 4 BYTEs product revision level (space-padded ASCII)
- 24h 20 BYTEs vendor specific
- 38h 40 BYTEs reserved
- 60h var vendor specific parameters
-
- (Table 0150)
- Values for Future Domain SCSI peripheral device type:
- 00h direct-access device (e.g., magnetic disk)
- 01h sequential-access device (e.g., magnetic tape)
- 02h printer device
- 03h processor device
- 04h write-once device (e.g., some optical disks)
- 05h CD-ROM device
- 06h scanner device
- 07h optical memory device (e.g., some optical disks)
- 08h medium changer device (e.g., jukeboxes)
- 09h communications device
- 0Ah (defined by ASC IT8)
- 0Bh (defined by ASC IT8)
- 0Ch-1Eh reserved
- 1Fh unknown or no device type
-
- (Table 0151)
- Values for Future Domain SCSI peripheral qualifier:
- 000b device is currently connected to this logical unit and available
- 001b target is capable of supporting the specified peripheral, but the
- physical device is not currently connected to this logical unit
- 010b reserved
- 011b target can't support a physical device on this logical unit
- 1xxb vendor specific
-
- Bitfields for Future Domain SCSI version:
- Bit(s) Description (Table 0152)
- 0-2 ANSI-approved version
- 000 device might or might not comply to ANSI standard
- 001 device complies to ANSI SCSI-1
- 010 device complies to ANSI SCSI-2
- other reserved
- 3-5 ECMA version
- 6-7 ISO version
-
- Bitfields for Future Domain SCSI data format/capabilities:
- Bit(s) Description (Table 0153)
- 0-2 response data format
- 000 information block is as specified in SCSI-1
- 001 information block is as specified in CCS
- 010 information block is as specified in SCSI-2
- other reserved
- 4-5 reserved
- 6 terminate I/O process supported
- 7 asynchronous event notification supported
-
- Bitfields for Future Domain SCSI device capabilities:
- Bit(s) Description (Table 0154)
- 0 device responds to RESET with a hard RESET
- 1 tagged command queuing supported
- 2 reserved
- 3 linked commands supported
- 4 synchronous data transfer supported
- 5 16-transfers supported
- 6 32-transfers supported
- 7 relative addressing supported
- --------B-1318-------------------------------
- INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
- AH = 18h
- DL = drive number
- CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
- CL = sectors per track (bits 0-5)
- top 2 bits of highest cylinder number (bits 6,7)
- Return: AH = status
- 00h requested combination supported
- 01h function not available
- 0Ch not supported or drive type unknown
- 80h there is no disk in the drive
- ES:DI -> 11-byte parameter table (see #0572 at INT 1E)
- SeeAlso: AH=05h,AH=07h,AH=17h
- --------d-1318-------------------------------
- INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
- AH = 18h
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0140 at AH=01h)
- CF clear if successful
- AX = 4321h (magic number)
- CX = controller family code (see #0155)
- ---if family code=0200h
- DH = number of exclusively ROM-controlled SCSI devices
- DL = canonical SCSI device number for specified drive
- ---if family code <> 0200h
- BH = number of exclusively ROM-controlled SCSI devices
- BL = canonical SCSI device number for specified drive
- Notes: also sets an internal flag (non-resettable) which prevents some
- controller messages from being displayed, allows writes to
- removable devices (use caution!), and enables the INT 13 interface
- for more than one drive (i.e. DL >= 81h) in at least some ROM
- versions
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
-
- (Table 0155)
- Values for Future Domain SCSI controller family code:
- 0200h TMC-1680/? (ROM 3.0)
- 0203h TMC-1650/1660/1670/1680 (ROM 2.0)
- 040Ah TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
- 050Dh TMC-840/841/880/881 (ROM 5.2D)
- 0700h TMC-830/850/860/875/885 (ROM 7.0)
- --------B-1318--CXD2C9-----------------------
- INT 13 - XDF.COM - API
- AH = 18h
- CX = D2C9h ("R"+80h, "I"+80h = Roger Ivey)
- DX = 0
- BX = function
- 0000h installation check
- Return: AH = 0Ch
- CX = 7269h ("ri" = Roger Ivey)
- ES = segment of driver
- CF set
- 2F64h ("/d") disable the driver
- Return: AH = 0Ch
- ES:BX = pointer to activation flag (it is set to 0:
- set it to 1 to enable the driver again)
- CX = 7269h
- CF set
- 2F75h ("/u") unload the driver (restore interrupts & free memory)
- Return: AH = 0Ch
- DL = 55h ("U") if successful
- = 0h if fails
- CX = 7269h
- ES = segment of driver
- CF set
- AL, BX, DH, and DI destroyed
- Program: XDF is a TSR provided with PC-DOS 7.0 to support XDF 1.84M disks,
- developed by Roger D. Ivey
- Note: After disabling or enabling the driver, a disk change must be performed
- or simulated to reset the driver.
- --------B-1319-------------------------------
- INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
- AH = 19h
- DL = drive
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- SeeAlso: AH=11h
- --------d-1319-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
- AH = 19h
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0140 at AH=01h)
- CF clear if successful
- AH = disk type (03h = fixed disk)
- CX:DX = number of 512-byte sectors
- Notes: sends SCSI Read Capacity command to get number of logical blocks and
- adjusts the result for 512-byte sectors
- displays either "Error in Read Capacity Command" or "nnn Bytes per
- sector" (nnn=256 or 512, the only sizes supported in the translation
- code)
- should probably be called when a removable device has its media changed
- returns the same values as AH=15h
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
- --------d-131A-------------------------------
- INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
- AH = 1Ah
- AL = defect table entry count
- CL = format modifiers (see #0156)
- DL = drive (80h,81h)
- ES:BX -> defect table (see #0157), ignored if AL=00h
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- Note: if periodic interrupt selected, INT 15/AH=0Fh is called after each
- cylinder is formatted
- SeeAlso: AH=07h,INT 15/AH=0Fh
-
- Bitfields for ESDI format modifiers:
- Bit(s) Description (Table 0156)
- 4 generate periodic interrupt
- 3 perform surface analysis
- 2 update secondary defect map
- 1 ignore secondary defect map
- 0 ignore primary defect map
-
- Format of defect table entry [array]:
- Offset Size Description (Table 0157)
- 00h 3 BYTEs relative sector address (little-endian)
- 03h BYTE flags and defect count
- bit 7: last logical sector on track
- bit 6: first logical sector on track
- bit 5: last logical sector on cylinder
- bit 4: logical sectors are pushed onto next track
- bits 3-0: number of defects pushed from previous cylinder
- --------d-131A-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
- AH = 1Ah
- CH = track (bits 8,9 in high bits of CL)
- CL = sector (01h to number of sectors/track for drive)
- DH = head
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0140 at AH=01h)
- CX:DX = logical block number of last quickly-accessible block after
- given block
- Notes: sends SCSI Read Capacity command with the PMI bit set to obtain the
- logical block address of the last block after which a substantial
- delay in data transfer will be encountered (usually the last block
- on the current cylinder). No translation to 512 byte sectors is
- performed on the result if data is stored on the disk in other than
- 512 byte sectors.
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=15h,AH=19h"SCSI"
- --------d-131B-------------------------------
- INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
- AH = 1Bh
- AL = number of sectors to read
- DL = drive
- ES:BX -> buffer for manufacturing header (defect list)
- Return: CF set on error
- CF clear if successful
- AH = status
- Note: manufacturing header format (Defect Map Record format) can be found
- in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
- the first sector read contains the manufacturing header with the number
- of defect entries and the beginning of the defect map; the remaining
- sectors contain the remainder of the defect map
- --------d-131B-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
- AH = 1Bh
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0140 at AH=01h)
- CF clear if successful
- ES:BX -> SCSI disk information block (see #0158)
- Notes: also sets a non-resettable flag which prevents some controller messages
- from being displayed
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
-
- Format of Future Domain SCSI disk information block:
- Offset Size Description (Table 0158)
- 00h BYTE drive physical information (see #0159)
- 01h WORD translated number of cylinders
- 03h BYTE translated number of heads
- 04h BYTE translated number of sectors per track (17, 34, or 63)
- 05h BYTE drive address
- bits 0-2: logical unit number
- bits 3-5: device number
- 06h BYTE 01h at initialization
- 07h BYTE sense code byte 00h, or extended sense code byte 0Ch
- 08h BYTE 00h
- 09h BYTE 00h or extended sense code byte 02h (sense key)
- 0Ah BYTE 00h
- 0Bh 10 BYTEs copy of Command Descriptor Block (CDB)
- 15h DWORD translated number of sectors on device
-
- Bitfields for Future Domain SCSI device physical information:
- Bit(s) Description (Table 0159)
- 0 ???
- 1 device uses parity
- 2 256 bytes per sector instead of 512
- 3 don't have capacity yet???
- 4 disk is removable
- 5 logical unit number is not present
- --------d-131C-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
- AH = 1Ch
- DL = hard drive ID (any valid SCSI hard disk)
- Return: CF set on error
- AH = status code (see #0140 at AH=01h)
- CF clear if successful
- ES:BX -> first byte of free RAM on controller
- Notes: the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
- to 1BFFh on-board the controller for storing drive information and
- controller status; ES:BX points to the first byte available for other
- uses
- ES contains the segment at which the controller resides; the
- controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
- SeeAlso: AH=1Bh"SCSI"
- --------d-131C-------------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AH = 1Ch
- AL = subfunction (01h-06h)
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: these functions perform a controller command 0612h without DMA
- --------d-131C08-----------------------------
- INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
- AX = 1C08h
- DL = drive (80h,81h)
- ES:BX -> buffer for Command Complete Status Block (see #0160)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- SeeAlso: AX=1C09h,AX=1C0Ah
-
- Format of ESDI Command Complete Status Block:
- Offset Size Description (Table 0160)
- 00h BYTE 07h
- 01h BYTE size of block in words (07h)
- 02h BYTE command error code (see #0161)
- 03h BYTE command status code (see #0162)
- 04h BYTE device error code, group 1 (see #0163)
- 05h BYTE device error flags, group 2 (see #0164)
- 06h WORD number of unprocessed sectors due to abnormal termination
- 08h DWORD last Relative Sector Address processed by command
- 0Ch WORD number of sectors corrected by ECC codes
-
- (Table 0161)
- Values for ESDI command error code:
- 00h successful
- 01h parameter invalid
- 02h unknown function
- 03h unsupported command
- 04h command cancelled
- 05h unknown function
- 06h controller diagnostics failed
- 07h formatting failed
- 08h format error in primary map
- 09h format error in secondary map
- 0Ah diagnostic failure during formatting
- 0Bh warning: secondary map too large during formatting
- 0Ch warning: non-zero defect
- 0Dh system checksum error during formatting
- 0Eh warning: incompatible device
- 0Fh warning: push table overflowed
- 10h warning: more than 15 sectors pushed to next cylinder
- 11h internal hardware error
- 12h warning: errors found while verifying sectors
- 13h invalid device
- FFh device error
-
- (Table 0162)
- Values for ESDI command status code:
- 01h successful
- 03h successful after ECC
- 05h successful after retries
- 06h format partially completed
- 07h successful after ECC and retries
- 08h command completed with warning (see #0161)
- 09h abort complete
- 0Ah reset complete
- 0Bh data transfer ready (no status block)
- 0Ch command completed with failure (see #0163,#0164)
- 0Dh DMA error
- 0Eh command block error (see #0161)
- 0Fh bad attention code
-
- (Table 0163)
- Values for ESDI device error code, group 1:
- 00h successful
- 01h seek fault detected by device
- 02h interface fault
- 03h sector ID not found
- 04h disk not formatted
- 05h unrecoverable ECC error
- 06h ECC error in sector ID
- 07h invalid relative sector address
- 08h timeout
- 09h sector defective
- 0Ah disk changed (removable media)
- 0Bh selection error
- 0Ch write protected (removable media)
- 0Dh write fault
- 0Eh read fault
- 0Fh no index or sector pulse
- 10h device not ready
- 11h seek error detected by adapter
- 12h bad format
- 13h volume overflow
- 14h data address mark not found
- 15h sector ID not found
- 16h missing device configuration data
- 17h first/last relative sector flags missing
- 18h track empty
- 81h timeout while waiting for stop
- 82h timeout while waiting for end of data transfer
- 84h stopped awaiting data transfer during formatting
- 85h timeout while waiting for head switch
- 86h timeout while awaiting DMA completion
-
- Bitfields for ESDI device error flags, group 2:
- Bit(s) Description (Table 0164)
- 7-5 unused
- 4 ready
- 3 selected
- 2 write fault
- 1 on track 0
- 0 seek/command complete
- --------d-131C09-----------------------------
- INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
- AX = 1C09h
- DL = drive (80h,81h)
- ES:BX -> buffer for Device Status Block (see #0165)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- SeeAlso: AX=1C08h,AX=1C0Ah
-
- Format of ESDI Device Status Block:
- Offset Size Description (Table 0165)
- 00h BYTE 08h
- 01h BYTE number of words in block (09h)
- 02h BYTE error flags
- 03h BYTE unused
- 04h BYTE command error code (see #0161)
- 05h BYTE command status code (see #0162)
- 06h WORD ESDI standard status
- 08h 5 WORDs ESDI vendor-specific status codes
- --------d-131C0A-----------------------------
- INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
- AX = 1C0Ah
- DL = drive (80h,81h)
- ES:BX -> buffer for Drive Configuration Status Block (see #0166)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- Note: device configuration format can be found in IBM ESDI Fixed Disk Drive
- Adapter/A Technical Reference
- SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch
-
- Format of ESDI Drive Configuration Status Block:
- Offset Size Description (Table 0166)
- 00h BYTE 09h
- 01h BYTE number of words in block (06h)
- 02h BYTE flags
- 03h BYTE number of spare sectors per cylinder
- 04h DWORD total number of usable sectors
- 08h WORD total number of cylinders
- 0Ah BYTE tracks per cylinder
- 0Bh BYTE sectors per track
- --------d-131C0B-----------------------------
- INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
- AX = 1C0Bh
- ES:BX -> buffer for Controller Configuration Status Block (see #0167)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- SeeAlso: AX=1C0Ch
-
- Format of ESDI Controller Configuration Status Block:
- Offset Size Description (Table 0167)
- 00h BYTE E9h
- 01h BYTE number of words in block (06h)
- 02h WORD unused (0000h)
- 04h DWORD controller microcode revision level
- 08h 2 WORDs unused (0000h)
- --------d-131C0C-----------------------------
- INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
- AX = 1C0Ch
- ES:BX -> buffer for POS Information Status Block (see #0168)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- SeeAlso: AX=1C0Bh
-
- Format of ESDI POS Information Status Block:
- Offset Size Description (Table 0168)
- 00h BYTE EAh
- 01h BYTE number of words in block (05h)
- 02h WORD magic value FFDDh
- 04h BYTE POS register 3
- 05h BYTE POS register 2
- 06h BYTE POS register 5 (unused, FFh)
- 07h BYTE POS register 4 (unused, FFh)
- 08h BYTE POS register 7 (unused, FFh)
- 09h BYTE POS register 6 (unused, FFh)
- --------d-131C0D-----------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AX = 1C0Dh
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: invokes controller command 0614h without DMA
- SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
- --------d-131C0E-----------------------------
- INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
- AX = 1C0Eh
- CH = low 8 bits of cylinder number
- CL = sector number, high two bits of cylinder number in bits 6 and 7
- DH = head number
- DL = drive number (80h,81h)
- ES:BX -> ABA number
- Return: CF set on error
- CF clear if successful
- AH = status (see #0140 at AH=01h)
- Note: ABA (absolute block address) format can be found in IBM ESDI Adapter
- Technical Reference by using its Device Configuration Status Block
- --------d-131C0F-----------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AX = 1C0Fh
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: invokes controller command 0614h without DMA
- SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h
- --------d-131C12-----------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AX = 1C12h
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: invokes controller command 0612h without DMA
- SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
- --------c-131D-------------------------------
- INT 13 - IBMCACHE.SYS - CACHE STATUS
- AH = 1Dh
- AL = subfunction
- 01h get status record
- DL = drive???
- Return: ES:BX -> status record (see #0169)
- CF set on error
- AH = error code
- 02h set cache status
- ES:BX -> status record (see #0169)
- DL = drive???
- Return: CF set on error
-
- Format of IBMCACHE.SYS status record:
- Offset Size Description (Table 0169)
- 00h DWORD total number of read requests
- 04h DWORD total number of hits
- 08h DWORD number of physical disk reads
- 0Ch DWORD total number of sectors requested by physical disk reads
- 10h 6 BYTEs ???
- 16h DWORD pointer to start of error list (see #0170)
- 1Ah DWORD pointer to end of error list
- 1Eh WORD ???
- 20h BYTE using extended memory if nonzero
- 21h BYTE ???
- 22h 4 BYTEs ASCII version number
- 26h WORD cache size in KB
- 28h WORD sectors per page
-
- Format of IBMCACHE.SYS error list:
- Offset Size Description (Table 0170)
- 00h DWORD relative block address of bad page
- 04h BYTE drive
- 05h BYTE sector bit-map
- 06h WORD next error
- --------d-131F-------------------------------
- INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
- AH = 1Fh
- AL = subfunction
- 00h allow media removal
- 01h prevent media removal (lock door)
- DL = drive ID (bit 7 set for hard disks)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code
- 00h successful
- 01h invalid function request
- 80h timeout
- DDh media change requested
- SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"
- --------d-1320-------------------------------
- INT 13 - DISK - ??? (Western Digital "Super BIOS")
- AH = 20h
- ???
- Return: ???
- Notes: returns some kind of status related to whether the drive contains its
- default media type
- QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases
- --------b-1320-------------------------------
- INT 13 U - Compaq DESKPRO/i - GET CURRENT MEDIA FORMAT
- AH = 20h
- DL = drive number (00h,01h)
- Return: CF clear if successful
- AL = media type (see #0171)
- CF set on error
- AH = error code
- 31h no such drive
- 32h incorrect drive type stored in CMOS
- Note: this function is supported by the 3/8/93 ROM BIOS, but only partially
- (AL is always 00h when successful) by the 8/3/93 version
-
- (Table 0171)
- Values for Compaq diskette media type:
- 03h 720K
- 04h 1.44M
- 06h 2.88M
- 0Ch 360K
- 0Dh 1.2M
- 0Eh ???
- 0Fh ??? (1024-byte sectors)
- --------c-1320-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
- AH = 20h
- AL = drive (00h = A:, etc. or 7Fh for all removable drives???
- or FFh for all drives)
- Return: AX = status (0000h successful)
- Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
- Associates, Inc.
- Desc: flush any dirty buffers for the specified drive(s) and then discard
- those sector buffers
- SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28h
- --------d-1321-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
- AH = 21h
- AL = number of sectors to write
- CH = low byte of 12-bit cylinder number
- CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
- DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
- DL = drive number (80h,81h)
- ES:BX -> buffer for data to be read
- Return: CF clear if successful
- ES:BX buffer filled
- CF set on error
- AH = status (see #0140 at AH=01h)
- Desc: read from the disk using the Multiple Block mode available on newer
- IDE drives and some hard disk controllers, which generates an
- interrupt only after the end of transferring a group of sectors
- rather than after each sector
- Notes: must call AH=24h"PS/1" before using this function
- input values in CL and DH are not range-checked
- the byte at address 0040h:0074h is set to the status of the operation
- SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
- --------c-1321-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
- AH = 21h
- Return: AX = status (0000h successful)
- Desc: immediately write all dirty sectors back to disk
- SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh
- --------d-1322-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
- AH = 22h
- AL = number of sectors to write
- CH = low byte of 12-bit cylinder number
- CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
- DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
- DL = drive number (80h,81h)
- ES:BX -> buffer containing data to be written
- Return: CF clear if successful
- CF set on error
- AH = status (see #0140 at AH=01h)
- Desc: write to the disk using the Multiple Block mode available on newer
- IDE drives and some hard disk controllers, which generates an
- interrupt only after the end of transferring a group of sectors
- rather than after each sector
- Notes: must call AH=24h"PS/1" before using this function
- input values in CL and DH are not range-checked
- the byte at address 0040h:0074h is set to the status of the operation
- SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
- --------c-1322-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
- AH = 22h
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- Note: enables/disables caching of all drives
- SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
- --------d-1323-------------------------------
- INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
- AH = 23h
- AL = feature number (see #0172)
- DL = drive number (80h,81h)
- ???
- Return: CF clear if successful
- CF set on error
- AH = status (see #0140 at AH=01h)
- SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"
-
- (Table 0172)
- Values for PS/1 hard disk feature number:
- 01h select 8-bit data transfers instead of 16-bit
- 02h enable write cache
- 22h Write Same, user-specified area
- 33h disable retries
- 44h set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh)
- 54h set cache segments
- 55h disable lookahead
- 66h disable reverting to power-on defaults
- 77h disable error correctioni
- 81h select 16-bit data transfers (default)
- 82h disable write cache
- 88h enable error correction (default)
- 99h enable retries (default)
- AAh enable lookahead
- BBh set ECC length for read long/write long to four bytes
- CCh enable reverting to power-on defaults
- DDh Write Same, entire disk
- --------c-1323-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
- AH = 23h
- Return: AX = status (0000h successful)
- ES = segment of ??? data
- --------d-1324-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
- AH = 24h
- AL = number of sectors per block (2,4,8,16)
- DL = drive number (80h,81h)
- Return: CF clear if successful
- CF set onerror
- AH = status (see #0140 at AH=01h)
- Desc: specify how many sectors the controller should transfer as a group
- between operation-complete interrupts when using the Read Multiple
- and Write Multiple functions (AH=21h,AH=22h)
- Notes: set the number of sectors to 0 to disable multiple-transfer mode
- the maximum value for the block size depends on the fixed disk
- drive type. The value is stored in byte 15h of the fixed disk
- drive parameter table that is created by POST.
- the byte at address 0040h:0074h is set to status of operation.
- SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"
- --------c-1324-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
- AH = 24h
- BX = new number of sector buffers in cache
- Return: AX = status
- 0000h successful
- 0001h failed--size adjusted
- 8000h cache cannot be resized while enabled
- SeeAlso: AH=36h
- --------d-1325-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
- AH = 25h
- DL = drive number (80h,81h)
- ES:BX-> 512 byte buffer for reply packet
- Return: CF clear if successful
- CF set on error
- AH = status (see #0140 at AH=01h)
- buffer filled with ATA/IDE-style drive information block (see #0173)
- Desc: retrieves the 256 words of drive data stored on an IDE hard disk
- Note: the byte at address 0040h:0074h is set to the status of the operation
- SeeAlso: AH=23h"PS/1"
-
- Format of drive information block:
- Offset Size Description (Table 0173)
- 00h WORD general drive configuration (see #0174)
- 02h WORD number of cylinders
- 04h WORD reserved
- 06h WORD number of heads
- 08h WORD number of unformatted bytes per track
- 0Ah WORD number of unformatted bytes per sector
- 0Ch WORD number of sectors per track
- 0Eh 6 BYTEs vendor unique
- 14h 20 BYTEs serial number in ASCII, 0000h=not specified)
- 28h WORD buffer type
- 2Ah WORD buffer size in 512 byte increments (0000h=not specified)
- 2Ch WORD number of ECC bytes passed on Read/Write Long cmds
- 0000h = not specified
- 2Eh 8 BYTEs firmware revision in ASCII, 0000h=not specified
- 36h 40 BYTEs model number in ASCII, 0000h=not specified
- 5Eh WORD bits 15-8 Vendor Unique
- bits 7-0 00h = Read/Write Multiple commands not implemented
- xxh = Maximum number of sectors that can be
- transferred per interrupt on Read and Write
- Multiple commands
- 60h WORD 0000h = cannot perform doubleword I/O
- 0001h = can perform doubleword I/O
- 62h WORD capabilities
- bit 15-9 0=reserved
- bit 8 1=DMA Supported
- bit 7-0 Vendor Unique
- 64h WORD reserved
- 66h WORD bits 15-8 PIO data transfer cycle timing mode
- bits 7-0 Vendor Unique
- 68h WORD bits 15-8 DMA data transfer cycle timing mode
- bits 7-0 Vendor Unique
- 6Ah WORD bits 15-1 reserved
- bit 0 1=the fields reported in tranlation mode are valid
- 0=the fields reported in translation mode may be valid
- 6Ch WORD number of current cylinders
- 6Eh WORD number of current heads
- 70h WORD number of current sectors per track
- 72h DWORD current capacity in sectors
- 76h WORD reserved
- 78h 136 BYTEs not defined by ATA spec 2.6
- 100h 64 BYTEs vendor unique
- 140h 96 BYTEs reserved
- Note: the above description is as in the ATA (AT Attachment) Specification.
-
- Bitfields for general drive configuration:
- Bit(s) Description (Table 0174)
- 15 0 reserved for non-magnetic drives
- 14 format speed tolerance gap required
- 13 track offset option available
- 12 data strobe offset option available
- 11 rotational speed tolerance is > 0.5%
- 10 disk transfer rate > 10 Mbs
- 9 disk transfer rate > 5Mbs but <= 10Mbs
- 8 disk transfer rate <= 5Mbs
- 7 removable cartridge drive
- 6 fixed drive
- 5 spindle motor control option implemented
- 4 head switch time > 15 usec
- 3 not MFM encoded
- 2 soft sectored
- 1 hard sectored
- 0 reserved (0)
- --------c-1325-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
- AH = 25h
- BX = interval
- Return: AX = status (0000h successful)
- Desc: specify how often the cache should write dirty buffers to disk when
- buffered writes are enabled
- SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2Eh
- --------c-1326-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
- AH = 26h
- Return: AX = status
- 0000h successful
- 0001h-00FFh interrupt vector which was hooked by another TSR
- SeeAlso: AH=27h
- --------c-1327--BX0000-----------------------
- INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
- AH = 27h
- BX = 0000h
- Return: AX = 0000h if installed
- BX nonzero if installed
- BH = major version
- BL = binary minor version
- Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
- Associates, Inc.
- SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
- --------c-1328-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
- AH = 28h
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- SeeAlso: AH=20h"QUICKCACHE"
- --------c-1329-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - NOP
- AH = 29h
- Return: AX = 0000h
- --------c-132A-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
- AH = 2Ah
- AL = buffer size (1-30)
- Return: AX = status (0000h successful)
- Desc: specify the number of cache sector buffers to dedicate to buffered read
- and write operations
- SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
- --------c-132B-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
- AH = 2Bh
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- --------c-132C-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
- AH = 2Ch
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- Desc: specify whether the cache should delay disk writes
- Note: this function enables or disables delayed writes for all drives; use
- AH=38h to change a single drive
- SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38h
- --------c-132D-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
- AH = 2Dh
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- Desc: specify whether the cache should attempt to read ahead of actual
- requests
- Note: this function enables or disables read-ahead for all drives; use AH=37h
- to change a single drive
- SeeAlso: AH=2Ch,AH=37h
- --------c-132E-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
- AH = 2Eh
- BX = flush count
- Return: AX = status (0000h successful)
- Desc: specify how many dirty sectors the cache should write after each flush
- interval (see AH=25h"QUICKCACHE") when buffered writes are enabled
- SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2Ch
- --------c-132F-------------------------------
- INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
- AH = 2Fh
- Return: AX = status (0000h successful)
- Desc: immediately flush up to "flushcount" dirty sectors to disk as if the
- flush interval had expired
- SeeAlso: AH=21h"QUICKCACHE"
- --------!---Section--------------------------
-