From 52be99d8c0862ff87db9a4f9ccec1ac4b5f7caed Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Fri, 2 Sep 2022 09:18:52 +0200 Subject: added a quite unsorted first version of a floppy boot loader --- floppy/doc/INTERRUP.A | 9492 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 9492 insertions(+) create mode 100644 floppy/doc/INTERRUP.A (limited to 'floppy/doc/INTERRUP.A') diff --git a/floppy/doc/INTERRUP.A b/floppy/doc/INTERRUP.A new file mode 100644 index 0000000..ea3a860 --- /dev/null +++ b/floppy/doc/INTERRUP.A @@ -0,0 +1,9492 @@ +Interrupt List Release 61 Last change 16jul00 +Copyright (c) 1989-1999,2000 Ralf Brown +--------!---FILELIST------------------------- +Please redistribute the following files unmodified as a group, in a quartet of +archives named INTER61A through INTER61D (preferably the original authenticated +PKZIP archives): + INTERRUP.1ST the read-me file, containing credits, availability info + INTERRUP.A INT 00 through INT 10/BE \ + INTERRUP.B INT 10/BF through INT 15/0F\ + INTERRUP.C INT 15/10 through INT 15/E7 \ + INTERRUP.D INT 15/E8 through INT 1A/B0 \ + INTERRUP.E INT 1A/B1 through INT 1F \ total 2520 pages at + INTERRUP.F INT 20 through INT 21/43 \ 60 lines per page, + INTERRUP.G INT 21/44 through INT 21/5E \ 2684 with INTPRINT -p + INTERRUP.H INT 21/5F through INT 21/E2 >(8754 entries) + INTERRUP.I INT 21/E3 through INT 21/F1 / (4135 tables) + INTERRUP.J INT 21/F2 through INT 25 / + INTERRUP.K INT 26 through INT 2F/15 / + INTERRUP.L INT 2F/16 through INT 2F/79 / + INTERRUP.M INT 2F/7A through INT 2F/D9 / + INTERRUP.N INT 2F/DA through INT 50 / + INTERRUP.O INT 51 through INT 61 / + INTERRUP.P INT 62 through INT 6A / + INTERRUP.Q INT 6B through INT 91 / + INTERRUP.R INT 92 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 + BIBLIO.LST bibliography of information sources for the list + 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.A a listing of I/O ports 0000h-013Fh + PORTS.B a listing of I/O ports 0140h-0AD5h + PORTS.C a listing of I/O ports 0AD6h-FFFFh + CATEGORY.KEY descriptions of divider-line category letters + COMBINE.COM combine the pieces of the list into a single file + COMBINE.DOC documentation for COMBINE +The following files should be distributed in an archive called INTER61E: + 86BUGSnn.ZIP programs to test for CPU bugs + COMBINE.ASM source code for COMBINE.COM + INT.* invoke interrupts from commandline + INTHLP??.ZIP Interrupt Helper viewer for the interrupt list + INTLIST.E Epsilon extension for handling list + INTPRINT.C source code for INTPRINT + INTSUM??.ZIP interrupt list browser (Interrupt Summary) + IVIEW*.ZIP another interrupt list browser +Finally, the following should be distributed in an archive called INTER61F: + INT2RTF.ZIP Slava Gostrenko's Windows Help converter + INT2WHLP.ZIP convert list into Windows Help database + INTERRUP.ICO icon for interrupt list + HINTSRCH.ZIP WinHelp DLL for full-text searches of interrupt list + IL2ME???.ZIP convert list into Multi-Edit help database + INT2GUID.* convert list into TurboPower GUIDE or POPHELP database + INT2HLP.ZIP convert list into QuickHelp database + INT2IPF.ZIP convert list into OS/2 .IPF database + INT2QH.* program to convert list into QuickHelp database + INT2TPH.ZIP convert to Turbo/Borland Pascal help file (.TPH) + INTHELP.* convert list into TurboPower GUIDE database + RB2NG???.ZIP convert list into Norton Guides database + 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@pobox.com (currently forwards to ralf@telerama.lm.com) +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) + +I reply to all e-mail submissions, 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 (many mailers are +improperly configured and do not produce a valid From: address). +--------!---Note----------------------------- +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. +Register pairs (such as AX:BX) indicate that the item is split across the +registers, with the high-order half in the first register. + +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, x - non-volatile config storage + 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,OPCODE "AAD" +--------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"CPU" +--------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"CPU" +--------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 +--------m-02----SI0714----------------------- +INT 02 U - STB RAPIDMAP.SYS - ??? + SI = 0714h + ES:DI -> ??? +Return: ??? +SeeAlso: INT 67/AX=6100h"STB",PORT 00E1h"STB" +--------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"CPU" +--------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) +SeeAlso: INT 2D/AL=20h"DTown" +--------G-030000----------------------------- +INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET Soft-ICE VERSION + AX = 0000h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') +Return: SI = BCD version (0280h = v2.80) +SeeAlso: INT 03/AX=0910h +--------G-0301------------------------------- +INT 03 - Soft-ICE - BACK DOOR COMMANDS - ??? + AH = 01h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') +Return: ??? +SeeAlso: AX=0000h,AX=090Bh,INT 03/AH=10h +--------G-030900----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 0900h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + DS:BX -> ??? + CX = ??? + DX = ??? +Return: ??? +SeeAlso: AX=0000h,AH=01h,AX=0902h,AX=0914h +--------G-030902----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - POPUP & START A DEBUG SESSION + AX = 0902h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + DS:BX -> initial register values (see #00001) +Return: registers as specified in initial register values table +Note: This function is called by LDR.EXE in loading a program to + be debugged. After executing the function, Soft-ICE pops up its + debugging window and you may start debugging your program. +Return: ??? +SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h + +Format of Soft-ICE initial register values: +Offset Size Description (Table 00001) + 00h WORD initial value of SP + 02h WORD initial value of SS + 04h WORD initial value of IP + 06h WORD initial value of CS + 08h WORD initial value of DS and ES + 0Ah WORD ??? + 0Ch WORD ??? + 0Eh WORD ??? + 10h WORD initial value of AX + 12h WORD ??? (defaults to 000AH ???) + 14h WORD ??? (defaults to 0001H ???) + 16h WORD ??? (defaults to 0100H ???) +--------G-030903----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 0903h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + DS:BX -> ??? + CX = ??? + DX = ??? +Return: ??? +SeeAlso: AX=0000h,AX=0902h,AX=0907h,AX=0914h +--------G-030907----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 0907h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + DS:BX -> ??? + CX = ??? + DX = ??? +Return: ??? +SeeAlso: AX=0000h,AX=0903h,AX=090Ah,AX=0914h +--------G-03090A----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 090Ah + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + DS:BX -> ??? + CX = ??? + DX = ??? +Return: ??? +SeeAlso: AX=0000h,AX=0907h,AX=090Bh,AX=0914h +--------G-03090B----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 090Bh + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + DS:BX -> ??? + CX = ??? + DX = ??? +Return: ??? +SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h +--------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) +Return: nothing +SeeAlso: AX=0912h,AX=0913h +--------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 #00002) + DH = entry number of last breakpoint to be triggered + DL = type of last triggered breakpoint (see #00002) +Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc. +SeeAlso: AX=0911h,AX=0913h,AX=0914h + +(Table 00002) +Values for Soft-ICE breakpoint type: + 00h BPM (breakpoint register types) + 01h I/O + 02h INTerrupt + 03h BPX (INT 03-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 #00003) +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=0911h,AX=0912h,AX=0914h + +Format of Soft-ICE breakpoint structure: +Offset Size Description (Table 00003) + 00h BYTE breakpoint type (see #00004) + 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 #00005) + (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 #00005) + 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 00004) +Values for Soft-ICE breakpoint type: + 00h memory location + 01h memory range + 03h I/O + 04h interrupt + 05h execution break + +(Table 00005) +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 +--------G-030918----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 0918h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + DS:BX -> ??? + CX = ??? + DX = ??? +Return: ??? +SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=0914h,INT 03/AH=10h +--------G-0310------------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AH = 10h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') +Return: ??? +SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=01h,INT 03/AH=11h +--------G-0311------------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AH = 11h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') +Return: none??? +SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AX=130Ch +--------G-03130C----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 130Ch + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + BX = ??? + CX = ??? + DX = ??? +Return: AX = ??? (1300h) +SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=11h,INT 03/AX=130Eh +--------G-03130E----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 130Eh + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + BX = ??? + CX = ??? + DX = ??? +Return: AX = ??? (1300h) +SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Ch,INT 03/AX=1313h +--------G-031313----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 1313h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') + BX = ??? + CX = ??? + DX = ??? +Return: AX = ??? (1300h) +SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Eh +--------G-030900----------------------------- +INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ??? + AX = 0900h + SI = magic value 4647h ('FG') + DI = magic value 4A4Dh ('JM') +Return: none??? +SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AH=12h +--------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"CPU",OPCODE "AAD",OPCODE "AAM" +--------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 + since the BOUND instruction also calls INT 05h, but returns control + to the BOUND instruction, a failed BOUND check will cause an infinite + loop of PrtScreens unless the INT 05 handler is aware of the problem + and checks whether the interrupt was invoked by a BOUND instruction +BUG: some old BIOSes/applications appear to destroy BP on return +SeeAlso: INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional" +SeeAlso: 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 (80186+) - 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"CPU" +--------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"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"IRQ8" +SeeAlso: INT 78"GO32",INT D8"Screen Thief",MEM 0040h:0040h,MEM 0040h:006Ch +--------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 #00006) 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 + Ctrl-Alt-S (many clones) run BIOS setup program + Ctrl-Alt-Esc (many clones) run BIOS setup program + Ctrl-Alt-Ins (many clones) run BIOS setup program + Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache + Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache + DR DOS 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"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h +SeeAlso: INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI" +SeeAlso: INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32" + +(Table 00006) +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 (Fn) [*] + 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 73h [*] + 14h T 44h F10 74h ExSel + 15h Y 45h NumLock 75h -- + 16h U 46h ScrollLock 76h Clear + 17h I 47h Home 77h [Note2] Joyst But1 + 18h O 48h UpArrow 78h [Note2] Joyst But2 + 19h P 49h PgUp 79h [Note2] Joyst Right + 1Ah [ { 4Ah Grey- 7Ah [Note2] Joyst Left + 1Bh ] } 4Bh LeftArrow 7Bh [Note2] Joyst Up + 1Ch Enter 4Ch Keypad 5 7Ch [Note2] Joyst Down + 1Dh Ctrl 4Dh RightArrow 7Dh [Note2] right mouse + 1Eh A 4Eh Grey+ 7Eh [Note2] left mouse + 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 55h [Note1] F11 00h kbd buffer full + 26h L 56h left \| (102-key) + 27h ; : 57h F11 AAh self-test complete + 28h ' " 58h F12 E0h prefix code + 29h ` ~ 59h [Note1] F15 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 European "Cherry G81-3000 SAx/04" keyboard contains contacts for + four additional keys, which can be made available by a user + modification; the three new keys located directly below the cursor + pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21); + the fourth new key, named , sends make code 73h + the SysReq key is often labeled SysRq + the "Accord" ergonomic keyboard with optional touchpad (no other + identification visible on keyboard or in owner's booklet) has an + additional key above the Grey- key marked with a left-pointing + triangle and labeled "Fn" in the owner's booklet which returns + scan codes E0h 68h on make and E0h E8h on break + the "Preh Commander AT" keyboard with additional F11-F22 keys treats + F11-F20 as Shift-F1..Shift-F10 and F21/F22 as Ctrl-F1/Ctrl-F2; the + Eagle PC-2 keyboard with F11-F24 keys treated those additional keys + in the same way + [Note1] the "Cherry G80-0777" keyboard has additional F11-F15 keys + which generate make codes 55h-59h; some other extended keyboards + generate codes 55h and 56h for F11 and F12, which cannot be managed + by standard DOS keyboard drivers + [Note2] the Schneider/Amstrad PC1512 PC keyboards contain extra keys, + a mouse, and a digital joystick, which are handled like extra keys. + The joystick's motion scancodes are converted into standard arrow + keys by the BIOS, and the joystick and mouse button scan codes are + converted to FFFFh codes in the BIOS keyboard buffer + (see CMOS 15h"AMSTRAD"). + In addition to the keys listed in the table above, there are + Del-> (delete forward) 70h + Enter 74h +SeeAlso: #00602 at INT 16/AX=6F07h,#03214 at INT 4A/AH=05h +--------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"CPU",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; DOS 3.3+ does so + unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS 3.3+ use the + IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ + 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 + DOS 3.3+ revectors IRQ3 to a stack-switching routine unless STACKS=0 + has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing + Protocol (see #02568) when hooking this IRQ +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"CPU" +--------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 + DOS 3.3+ revectors IRQ4 to a stack-switching routine unless STACKS=0 + has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing + Protocol (see #02568) when hooking this IRQ +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 #00007) is offset 100h in the segment + pointed at by this vector + +(Table 00007) +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 #00008) +Return: ??? + +Format of System 36/38 emulator's data area: +Offset Size Description (Table 00008) +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 + DOS 3.3+ revectors IRQ5 to a stack-switching routine unless STACKS=0 + has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing + Protocol (see #02568) when hooking this IRQ + 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 + DOS 3.3+ revectors IRQ6 to a stack-switching routine unless STACKS=0 + has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing + Protocol (see #02568) when hooking this IRQ +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 +Notes: used to implement virtual memory--when the page fault occurs, the + operating system can load the appropriate page from disk + a protected-mode program written in the Flat memory model will often + generate this interrupt (typically reported as an Exception #14 or + Exception 0E with a register dump) when dereferencing an + uninitialized or corrupted pointer +SeeAlso: INT 0B"CPU" +--------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"IRQ5",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32" +SeeAlso: MEM 0040h:006Bh +--------h-0F--------------------------------- +INT 0F C - HP 95LX - REAL-TIME CLOCK +SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70"IRQ8" +--------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-10--------------------------------- +INT 10h - LIRVGA19 - CHAR HEIGHT HOOK +Desc: LIRVGA19.COM fixes display problems on some notebooks by hooking + INT 10h and resetting the BIOS character height (MEM 0040h:0085h) + to 10h on return, if it happens to be greater than 10h. +Program: LIRVGA19.COM is part of the Lithuanian LIR codepage support package + developed by LABAS u.a.b. +SeeAlso: INT 10/AX=5555h/BX=BBBBh,MEM 0040h:0085h +--------V-1000------------------------------- +INT 10 - VIDEO - SET VIDEO MODE + AH = 00h + AL = desired video mode (see #00010) +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 +InstallCheck: for Ahead adapters, the signature "AHEAD" at C000h:0025h + for Paradise adapters, the signature "VGA=" at C000h:007Dh + for Oak Tech OTI-037/057/067/077 chipsets, the signature "OAK VGA" at + C000h:0008h + for ATI adapters, 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 + 62h for 68800AX (Mach32) (see also #00732) + 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 #00009) + for Genoa video adapters, 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 Genoa SuperEGA BIOS v3.0+, C000h:0070h contains the signature + "EXTMODE", indicating support for extended modes +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, etc. + intercepted by GRAFTABL from Novell DOS 7 and Caldera OpenDOS 7.01. +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,MEM 0040h:0049h +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 00009) + 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 00010) +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 + = T 80x43 8x8 640x350 16 4 B800 EGA,VGA [17] + = T 80x50 8x8 640x400 16 4 B800 VGA [17] + 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 80x25 8x16 640x400 color . . Tandy 2000 + = 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 80x25 8x16 640x400 mono . . Tandy 2000 + = 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 . B800 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 80x30 8x16 640x480 16 . . C&T 64310/65530 BIOS + = 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 + = G 100x37 8x16 800x600 16 . . C&T 64310/65530 BIOS + 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 + = G 128x48 8x16 1024x768 16 . . C&T 64310/65530 BIOS + 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) + = G 160x64 8x16 1280x1024 16 . . Chips&Technologies 64310 [1] + 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 80x30 8x16 640x480 256 . . C&T 64310/65530 BIOS + = G . . . . . B800 AT&T 6300 + = G . . 720x350 2 . . 3270 PC + = G . . 800x600 256 . . VEGA VGA + = G 100x37 8x16 800x600 256/256K . A000 Orchid + = G . . 800x600 256/256K . A000 STB,Genoa,Sigma + = G . . 800x600 256 . . Cardinal + = 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 + = G 100x37 8x16 800x600 256 . . C&T 64310/65530 BIOS + 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 + = G 128x48 8x16 1024x768 256 . . Chips&Technologies 64310 + 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 + = G 160x64 8x16 1280x1024 256 . . Chips&Technologies 64310 [1] + 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 80x30 8x16 640x480 32K . . Chips&Technologies 64310 + = 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 80x30 8x16 640x480 64K . . Chips&Technologies 64310 + = 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+ + = G 100x37 8x16 800x600 32K . . Chips&Technologies 64310 + 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 + = G 100x37 8x16 800x600 64K . . Chips&Technologies 64310 + 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 + = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1 + 4Bh = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1 + 4Dh = T 120x25 . . . . . VEGA VGA + = G . . 512x480 16M . . Compaq QVision 1024/1280 + = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1 + 4Eh = T 120x43 . . . . . VEGA VGA + = T 80x60 8x8 . 16/256K . B800 Oak OTI-067/OTI-077 [8] + = G . . 640x400 16M . . Compaq QVision 1024/1280 + = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1 + 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 80x30 8x16 640x480 16M . . Chips&Technologies 64310 + = 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 . . . B800 Diamond Stealth64 Video 2xx1 + = 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 8x16 . . . B800 Diamond Stealth64 Video 2xx1 + = 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 . A000 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 . A000 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 8x16 1056x400 16 . B800 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 + = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1 + 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 8x8 1056x400 16 . B800 Chips&Technologies chipset + = T 132x50 8x16 1056x800 16 . B800 Chips&Technologies 64310 + = 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 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1 + = 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] + = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1 + 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+ + = T 132x43 8x8 1056x344 16 . B800 C&T 82C450 BIOS + = 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 + = T 80x43 8x8 528x344 16 . B800 C&T 82C450 BIOS + = 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 = T 80x50 8x8 528x400 16 . B800 C&T 82C450 BIOS + = 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] + 68h = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1 + 69h = T 132x50 8x8 1056x400 16/256K . B800 WD90C + = T 132x50 8x8 . 16 . B800 Diamond Speedstar 24X + = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1 + = G . . 720x540 256 . A000 Video7 V-RAM VGA + 6Ah = G . . 800x600 16 . A000 VESA standard interface + = G 100x75 8x8 800x600 16 . A000 Genoa 6400 + = G 100x75 8x8 800x600 16 . A000 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 100x37 8x16 800x600 16 . A000 Diamond Stealth64 Video 2xx1 + = G 100x42 8x14 800x600 . . A000 ATI VGA Wonder (undoc) + = G . . 800x600 16 . A000 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 + = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1 + 6Ch = G 80x30 8x16 640x480 16M . A000 Trident 8900CL/BIOS C04 + = G 100x75 8x8 800x600 256 . . Genoa 6400 + = G 128x48 8x16 1024x768 2 . A000 Diamond Stealth64 Video 2xx1 + = 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 . A000 STB Lightspeed ET4000/W32P + = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1 + = 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 + = G 160x64 8x16 1280x1024 2 . A000 Diamond Stealth64 Video 2xx1 + 6Fh = G 40x25 8x8 320x200 16M . A000 Cirrus CL-GD 5422/5426 + = G 160x64 8x16 1280x1024 . . A000 Diamond Stealth64 Video 2xx1 + 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 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1 + = G 100x38 8x16 800x600 16 . A000 C&T chipset, Cardinal + = G . . 1024x480 256 . A000 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 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1 + = 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 . A000 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 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1 + = G . . 640x480 32K . A000 ATI + = G . . 640x480 16M . A000 WD90C + = G . . 640x480 16M . A000 Diamond Speedstar 24X + = G . . 1024x768 16 . . C&T chipset, Cardinal + = G 128x48 8x16 1024x768i 16 . A000 C&T 82C450 BIOS + = G 128x48 8x16 1024x768 16 . A000 C&T 65530 BIOS (multisync) + 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+ + = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1 + = 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 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1 + = 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 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1 + = G 128x48 8x16 1024x768 4 1 A000 Ahead B + = G 128x48 8x16 1024x768 16 . A000 Chips&Technologies 64310 + 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 + = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1 + = G 160x64 8x16 1280x1024 16 . A000 Chips&Technologies 64310 [1] + 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 + = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1 + 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 80x25 8x16 640x400 256 . . Cardinal, C&T chipset + = G . . 640x400 256 . . Cirrus 5320 chipset + = G 80x25 8x16 640x400 256 . A000 Chips&Technologies 64310 + 79h = G 80x30 8x16 640x480 256 . . Cardinal, C&T chipset + = G 80x30 8x16 640x480 256 . A000 Chips&Technologies 64310 + = 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 100x37 8x16 800x600 256 . . C&T 82C453/F65530 chipsets + = G 100x37 8x16 800x600 256 . A000 Chips&Technologies 64310 + = G 200x75 8x16 1600x1200 . [16] . A000 Diamond Stealth64 Video 2xx1 + 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 128x48 8x16 1024x768 256 . A000 Chips&Technologies 64310 + = G 90x43 . . mono . B000 HERCULES.COM on HGC [14] + 7Fh = special function set (see AX=007Fh/BH=00h) 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 1990/09/14, but not + v8.01X dated 1992/02/28; mode 21h supported by 1992/02/28 version but not + 1990/09/14 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) +[16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch, + resulting in incorrect scrolling for TTY output (scrolling occurs only + after the end of the 76th line, which is not displayed) +[17] For 43-line text on EGA or 43/50-line text on VGA, you must load an 8x8 + font using AX=1102h after switching to mode 3; VGA may also require + using INT 10/AH=12h/BL=30h +SeeAlso: #00011,#00083,#00191 +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 #00011) +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 00011) +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 +SeeAlso: #00010,#00191 +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/BH=00h,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-10007FBH03------------------------- +INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE + AX = 007Fh + BH = 03h +Return: AL = 7Fh if successful (AT&T VDC600) + BH = status (Paradise/Dell) + 00h invalid function + 7Fh successful +Desc: allows current mode (VGA or non-VGA) to survive re-boot +SeeAlso: AX=007Eh,AX=007Fh/BH=04h,AX=007Fh/BH=06h,AH=FFh"Oak" +--------V-10007FBH04------------------------- +INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE + AX = 007Fh + BH = 04h +Return: AL = 7Fh if successful (AT&T VDC600) + BH = status (Paradise/Dell) + 00h invalid function + 7Fh successful +SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak" +--------V-10007FBH05------------------------- +INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE + AX = 007Fh + BH = 05h +Return: AL = 7Fh if successful (AT&T VDC600) + BH = status (Paradise/Dell) + 00h invalid function + 7Fh successful +SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=04h,AH=FFh"Oak" +--------V-10007FBH06------------------------- +INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE + AX = 007Fh + BH = 06h +Return: AL = 7Fh if successful (AT&T VDC600) + BH = status (Paradise/Dell) + 00h invalid function + 7Fh successful +Note: this function also switches to video mode 7 +SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=07h,AH=FFh"Oak" +--------V-10007FBH07------------------------- +INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE + AX = 007Fh + BH = 07h +Return: AL = 7Fh if successful (AT&T VDC600) + BH = status (Paradise/Dell) + 00h invalid function + 7Fh successful +Note: this function also switches to video mode 3 +SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=06h,AH=FFh"Oak" +--------V-10007F----------------------------- +INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS + AX = 007Fh + BH = function + 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, 1991/07/24) +Return: AL = 7Fh if successful (AT&T VDC600) + BH = status (Paradise/Dell) + 00h invalid function + 7Fh successful +SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"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 1993/5/14 ROM for the Dell 486D +SeeAlso: AX=007Fh/BH=61h +--------V-10007FBH61------------------------- +INT 10 - Paradise VGA - ??? + AX = 007Fh + BH = 61h + ES:DI -> buffer for list of ??? (see #00012) +Return: BH = status (00h failed or not supported, 7Fh successful) + ??? +Note: this function is supported by the 1993/5/14 ROM for the Dell 486D +SeeAlso: AX=007Fh/BH=60h + +Format of Paradise VGA list entry: +Offset Size Description (Table 00012) + 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 1993/5/14 ROM for the Dell 486D +SeeAlso: AX=007Fh/BH=A6h +--------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 1993/5/14 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 1993/5/14 ROM for the Dell 486D +SeeAlso: AX=007Fh/BH=A5h +--------V-1001------------------------------- +INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE + AH = 01h + CH = cursor start and options (see #00013) + CL = bottom scan line containing cursor (bits 0-4) +Return: nothing +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,#03885 + +Bitfields for cursor start and options: +Bit(s) Description (Table 00013) + 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) +Return: nothing +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 + With PhysTechSoft's PTS ROM-DOS the BH value is ignored on entry. +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 #00010) +Return: nothing +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,MEM 0040h:004Eh +--------V-100500----------------------------- +INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER + AX = 0500h + BX = segment of buffer +Return: nothing +Desc: set the address of graphics bitmap buffer for video modes 60h and 61h +SeeAlso: AX=050Fh"Corona" +--------V-10050F----------------------------- +INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER + AX = 050Fh +Return: DX = segment of graphics bitmap buffer +Desc: get the address of graphics bitmap buffer for video modes 60h and 61h +SeeAlso: AX=0500h"Corona" +--------V-100580----------------------------- +INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS + AX = 0580h +Return: BH = CRT page register + BL = CPU page register +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 +SeeAlso: AH=05h"SET CRT/CPU" +--------V-1005------------------------------- +INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS + AH = 05h + AL = subfunction + 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 +Return: nothing +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 +SeeAlso: AX=0580h +--------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 +Return: nothing +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 1992/9/8) clears DS to 0000h when + scrolling in an SVGA mode (800x600 or higher) +SeeAlso: AH=07h,AH=12h"Tandy 2000",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 +Return: nothing +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 1992/9/8) clears DS to 0000h when + scrolling in an SVGA mode (800x600 or higher) +SeeAlso: AH=06h,AH=12h"Tandy 2000",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 #00010) +Return: AH = character's attribute (text mode only) (see #00014) + AH = character's color (Tandy 2000 graphics mode only) + 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 + on the Tandy 2000, BH=FFh specifies that the current page should be + used + because of the IBM BIOS specifications, there may exist some clone + BIOSes which do not preserve SI or DI; the Novell DOS kernel + preserves SI, DI, and BP before many INT 10h calls to avoid problems + due to those registers not being preserved by the BIOS. +BUG: some IBM PC ROM BIOSes destroy BP when in graphics modes +SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h + +Bitfields for character's display attribute: +Bit(s) Description (Table 00014) + 7 foreground blink or (alternate) background bright (see also AX=1003h) + 6-4 background color (see #00015) + 3 foreground bright or (alternate) alternate character set (see AX=1103h) + 2-0 foreground color (see #00015) +SeeAlso: #00026 + +(Table 00015) +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 #00010) + 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 +Return: nothing +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 + With PhysTechSoft's PTS ROM-DOS the BH, BL, and CX values are ignored + on entry. +SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F"SYSTEM DATA" +SeeAlso: INT 43"VIDEO DATA",INT 44"VIDEO DATA" +--------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 #00010) + 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 +Return: nothing +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 + With PhysTechSoft's PTS ROM-DOS the BH and CX values are ignored + on entry. +SeeAlso: AH=08h,AH=09h,AH=11h"Tandy 2000",AH=4Bh,INT 17/AH=60h +SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA",INT 44"VIDEO DATA" +--------V-100B--BH00------------------------- +INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR + AH = 0Bh + BH = 00h + BL = background/border color (border only in text modes) +Return: nothing +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 +Return: nothing +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-100B--BH02------------------------- +INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY + AH = 0Bh + BH = 02h + BL = palette entry number + AL = new color value for palette entry +Return: nothing +Note: this interrupt is identical to INT 52 for Tandy 2000 +SeeAlso: INT 10/AH=00h,INT 10/AH=0Bh/BH=01h,INT 52"Tandy 2000" +--------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 +Return: nothing +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) +Return: nothing +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 1981/4/24 and 1981/10/19 require that BH be the same + as the current active page +BUG: if the write causes the screen to scroll, BP is destroyed by BIOSes + for which AH=06h destroys BP +SeeAlso: AH=02h,AH=06h,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) +Return: nothing +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 #00010 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) + the Tandy 2000 BIOS is only documented as returning AL, not AH or BH +SeeAlso: AH=00h,AH=05h,AX=10F2h,AX=1130h,AX=CD04h,MEM 0040h:004Ah +--------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 #00016) + ??? + 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 00016) + 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 #00010 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-1010------------------------------- +INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS + AH = 10h + AL = control value + bit 0: set character set instead of reading it + bit 1: high 128 characters instead of low 128 characters + ES:BX -> new character set if AL bit 0 set +Return: ES:BX -> current character set if AL bit 0 clear on entry +Notes: this interrupt is identical to INT 52 on Tandy 2000 + the character set consists of 16 bytes for each of the 128 characters, + where each of the 16 bytes describes the pixels in one scan line, + most significant bit leftmost +SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000" +SeeAlso: INT 52"Tandy 2000" +--------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 #00017) + BH = color or attribute register value +Return: nothing +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 00017) +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) +Return: nothing +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 #00018) + BH = 00h to avoid problems on some adapters +Return: nothing +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 00018) + 00h 16 BYTEs colors for palette registers 00h through 0Fh + 10h BYTE border color +SeeAlso: #00461 +--------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 +Return: nothing +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 #00040) + 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 #00017) +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 #00018) +Return: nothing +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) +Return: nothing +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) +Return: nothing +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) +Return: nothing +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 +Return: nothing +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 +Return: nothing +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 #00010 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 #00010 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 #00019) +Desc: determine which type of digital-to-analog converter is installed on the + display board +SeeAlso: AX=10F0h,AX=10F2h + +(Table 00019) +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 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY + AH = 11h + BL = new character attribute (text modes) or color (graphics) + CX = number of times to write attribute +Return: nothing +Note: this interrupt is identical to INT 52 on Tandy 2000 +SeeAlso: AH=0Ah,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000" +SeeAlso: INT 52"Tandy 2000" +--------V-101100----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA) + AX = 1100h + 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 +Return: nothing +Notes: This function will cause a mode set, completely resetting + the video environment, but without clearing the video buffer + 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,#00040) +SeeAlso: AX=1101h,AX=1102h,AX=1103h,AX=1104h,AX=1110h,AH=1Bh,AX=CD10h +SeeAlso: MEM 0040h:0084h +Index: text mode;font|text mode;screen rows +--------V-101101----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA) + AX = 1101h + BL = block to load +Return: nothing +Notes: (see also AX=1100h) + This function will cause a mode set, completely resetting + the video environment, but without clearing the video buffer + the "monochrome" patters are 8x14 pixels in size +SeeAlso: AX=1100h,AX=1102h,AX=1103h,AX=1104h,AX=1111h,AH=1Bh,AX=CD10h +SeeAlso: MEM 0040h:0084h +Index: text mode;font|text mode;screen rows +--------V-101102----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA) + AX = 1102h + BL = block to load +Return: nothing +Notes: (see AX=1100h) +SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h +SeeAlso: MEM 0040h:0084h +--------V-101103----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA) + AX = 1103h + BL = block specifier (see #00020) +Return: nothing +Notes: (see also AX=1110h) + This function allows dual character sets to appear on screen + simultaneously +SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1104h,AH=1Bh,AX=CD10h +SeeAlso: MEM 0040h:0084h +Index: text mode;font|text mode;screen rows + +Bitfields for block specifier: +Bit(s) Description (Table 00020) +---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-101104----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA) + AX = 1104h + BL = block to load +Return: nothing +Notes: (see AX=1100h) +SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h +SeeAlso: MEM 0040h:0084h +Index: text mode;font|text mode;screen rows +--------V-1011------------------------------- +INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS + AH = 11h + AL = 07h load user-specified patterns and recalculate mode parms + parameters are the same as for AX=1110h + AL = 08h load monochrome patterns (8x14) and recalculate mode parms + parameters are the same as for AX=1111h + AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms + parameters are the same as for AX=1112h + AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms + parameters are the same as for AX=1114h +Note: these functions should only be called under the same conditions as + AL=1xh (see AX=1110h"EGA") +SeeAlso: AX=1100h,AX=1110h"CHARGEN",AX=1110h"Realtek",MEM 0040h:0084h +Index: text mode;font|text mode;screen rows +--------V-10110F----------------------------- +INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS + AX = 110Fh + ES:BP -> user table for INT 1F +Return: nothing +Note: this function is meant to be called immediately after a mode set; + results are unpredictable at other times +SeeAlso: AX=1110h"Realtek",AX=1111h"Realtek",AX=1112h"Realtek",AX=1120h +--------V-101110----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA) + AX = 1110h + 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 +Return: nothing +Notes: This function will cause a mode set, completely resetting + the video environment, but without clearing the video buffer + This function is designed to be called immediately after a mode set, + it is equivalent to AX=110xh 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,#00040) +SeeAlso: AX=1100h,AX=1111h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h,MEM 0040h:0084h +Index: text mode;font|text mode;screen rows +--------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 +Return: nothing +Note: this function is meant to be called immediately after a mode set; + results are unpredictable at other times +SeeAlso: AX=110Fh"Realtek",AX=1112h"Realtek",AX=1121h +--------V-101111----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA) + AX = 1111h + BL = block to load +Return: nothing +Notes: (see AX=1110h) + the "monochrome" patters are 8x14 pixels in size +SeeAlso: AX=1101h,AX=1110h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h +--------V-101111----------------------------- +INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS + AX = 1111h + BL = row specifier (see AX=1121h) +Return: nothing +Note: this function is meant to be called immediately after a mode set; + results are unpredictable at other times +SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1122h +--------V-101112----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA) + AX = 1112h + BL = block to load +Return: nothing +Notes: (see AX=1110h) +SeeAlso: AX=1103h,AX=1110h,AX=1111h,AX=1114h,AH=1Bh,AX=CD10h +--------V-101112----------------------------- +INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS + AX = 1112h + BL = row specifier (see AX=1121h) +Return: nothing +Note: this function is meant to be called immediately after a mode set; + results are unpredictable at other times +SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1111h"Realtek",AX=1123h +--------V-101114----------------------------- +INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA) + AX = 1114h + BL = block to load +Return: nothing +Notes: (see AX=1110h) +SeeAlso: AX=1104h,AX=1110h,AX=1111h,AX=1112h,AH=1Bh,AX=CD10h +--------V-101118----------------------------- +INT 10 - IBM SurePath BIOS - Officially "Private" Function + AX = 1118h +--------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 +Return: nothing +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=1129h,INT 1F"SYSTEM DATA" +SeeAlso: INT 43"VIDEO DATA" +--------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 +Return: AL = new number of rows (Diamond Stealth64 Video) +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"Compaq" +SeeAlso: AX=1129h"Diamond",INT 1F"SYSTEM DATA",INT 43"VIDEO DATA" +--------V-101122----------------------------- +INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA) + AX = 1122h + BL = row specifier (see AX=1121h) +Return: nothing +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 +SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA" +--------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) +Return: nothing +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 +SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA" +--------V-101124----------------------------- +INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA) + AX = 1124h + BL = row specifier (see AX=1121h) +Return: nothing +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 +SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA" +--------V-101129----------------------------- +INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro) + AX = 1129h + BL = row specifier (see AX=1121h) +Return: nothing +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"SYSTEM DATA" +SeeAlso: INT 43"VIDEO DATA" +--------V-101129----------------------------- +INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond) + AX = 1129h + DI: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 +Return: AL = new number of rows +Notes: this function is meant to be called immediately after a mode set; + results are unpredictable at other times + supported by Diamond Stealth64 Video +SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM",INT 43"VIDEO" +--------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 #00021) + 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=1103h,AX=1120h,INT 1F"SYSTEM DATA",INT 43"VIDEO DATA" + +Format of alternate font table [array]: +Offset Size Description (Table 00021) + 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------------------------------- +INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW + AH = 12h + AL = number of rows or columns to scroll + BH = buffer flag + 00h data in user buffer + ES:SI -> buffer containing character/attribute pairs + 01h no buffer, fill emptied rows/columns with blanks + BL = direction in which to scroll + 00h up + 01h down + 02h left + 03h right + CH,CL = row,column of upper left corner of scroll area + DH,DL = row,column of lower right corner +Return: nothing +Notes: this interrupt is identical to INT 52 on Tandy 2000 + the user buffer, if supplied, must be organized by row; regardless of + the scroll direction, all character/attribute pairs for the first + row are first, then the pairs for the second row, etc. +SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000" +SeeAlso: INT 52"Tandy" +--------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 #00022) + CL = switch settings (see #00023,#00024) + 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 00022) + 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 00023) + 0 switch 1 OFF + 1 switch 2 OFF + 2 switch 3 OFF + 3 switch 4 OFF + 4-7 unused + +(Table 00024) +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 #00025) +SeeAlso: AH=12h/BL=12h"TRIDENT" + +Format of Trident BIOS Info structure: +Offset Size Description (Table 00025) + 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 + (read from CRTC register 1Fh) +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 +Return: nothing +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"PRINT SCREEN" +--------V-1012--BL2E------------------------- +INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG + AH = 12h + BL = 2Eh +Return: nothing +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 +SeeAlso: AX=BF00h,AX=BF01h,INT 6D"VGA" +--------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 1988/6/23 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: #00026,AH=08h,#00042 + +Bitfields for XGA mainframe type character attributes: +Bit(s) Description (Table 00026) + 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: #00014,#00036 +--------V-1012--BL38------------------------- +INT 10 - IBM SurePath BIOS - Officially "Private" Function + AH = 12h + BL = 38h +SeeAlso: AX=1118h,AH=12h/BL=39h +--------V-1012--BL39------------------------- +INT 10 - IBM SurePath BIOS - Officially "Private" Function + AH = 12h + BL = 39h +SeeAlso: AX=1118h,AH=12h/BL=38h,AH=12h/BL=3Ah +--------V-1012--BL3A------------------------- +INT 10 - IBM SurePath BIOS - Officially "Private" Function + AH = 12h + BL = 3Ah +SeeAlso: AX=1118h,AH=12h/BL=39h +--------V-1012--BL53------------------------- +INT 10 - Tseng ET-4000 BIOS v8.00 (1991/06/07) - 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 (1991/06/07) - 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 #00027) + 03h disable register trapping (CGA emulation) + 04h enable register trapping + 05h program video mode + ES:BP -> video mode table (see #00028) + 06h get mode table + AL = video mode + Return: ES:BP -> table suitable for mode AL + (and subfunc BL=05h) (see #00028) + 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 00027) + 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 00028) + 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 #00029) + bit 14: ??? + bit 15: ??? + BL = silicon revision number (bit 7 set if not available) + BH = ??? + bit 2 set if using CL-GD 6340 LCD interface +SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h + +(Table 00029) +Values for Cirrus Logic video controller type: + 0000h no extended alternate select support + 0001h reserved + 0002h CL-GD510/520 + 0003h CL-GD610/620 + 0004h CL-GD5320 + 0005h CL-GD6410 + 0006h CL-GD5410 + 0007h CL-GD6420 + 0008h CL-GD6412 + 0010h CL-GD5401 + 0011h CL-GD5402 + 0012h CL-GD5420 + 0013h CL-GD5422 + 0014h CL-GD5424 + 0015h CL-GD5426 + 0016h CL-GD5420r1 + 0017h CL-GD5402r1 + 0018h CL-GD5428 + 0019h CL-GD5429 + 0020h CL-GD6205/15/25 + 0021h CL-GD6215 + 0022h CL-GD6225 + 0023h CL-GD6235 + 0024h CL-GD6245 + 0030h CL-GD5432 + 0031h CL-GD5434 + 0032h CL-GD5430 + 0033h CL-GD5434 rev. E and F + 0035h CL-GD5440 + 0036h CL-GD5436 + 0039h CL-GD5446 + 0040h CL-GD6440 + 0041h CL-GD7542 (Nordic) + 0042h CL-GD7543 (Viking) + 0043h CL-GD7541 (Nordic Lite) + 0050h CL-GD5452 (Northstar) + 0052h CL-GD5452 (Northstar) ??? +SeeAlso: #00732,#00743 +--------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,#00732 at INT 1A/AX=B102h +--------V-1012--BL84------------------------- +INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS + AH = 12h + BL = 84h +Return: AX = user options word (see #00030) +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 00030) + 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) +Return: nothing +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) +Return: nothing +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) +Return: nothing +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 +Return: nothing +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) +Return: nothing +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 +Return: nothing +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 +Return: nothing +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) +Return: nothing +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) +Return: nothing +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) +Return: nothing +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 #00031) + CX = options word 2 (see #00032) + BX,DX reserved +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,#00732 at INT 1A/AX=B102h + +Bitfields for Cirrus Logic options word 1: +Bit(s) Description (Table 00031) + 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 + =0 60 Hz + =1 high refresh + 15 reserved +SeeAlso: AH=12h/BL=AEh + +Bitfields for Cirrus Logic options word 2: +Bit(s) Description (Table 00032) + 15-13 vertical refresh frequency at 1024x768 + 12-11 vertical refresh frequency at 800x600 + 10-6 reserved + 5-4 vertical refresh frequency at 1280x1024 + 3-0 reserved +SeeAlso: #00033 + +Bitfields for Cirrus Logic Options word 2 (alternate???): +Bit(s) Description (Table 00033) + 15-12 vertical refresh frequency at 1024x768 + 0000 43i Hz + 0001 60 Hz + 0010 70 Hz + 0011 72 Hz + 0100 76 Hz + other reserved + 11-8 vertical refresh frequency at 800x600 + 0000 56 Hz + 0001 60 Hz + 0010 72 Hz + 0011 75 Hz + other reserved + 7-4 maximum vertical resolution + 0000 480 scanlines + 0001 600 scanlines + 0010 768 scanlines + 0011 1024 scanlines + other reserved + 3-1 vertical refresh frequency at 1280x1024 + 000 43i Hz + 001 60 Hz + 010 71.2 Hz (CL-GD5434 rev. E and F) + 011 74 Hz (CL-GD5434 rev. E and F) + other reserved + 0 reserved +SeeAlso: #00032 +--------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 #00034) + BL = monitor type (00h color, 01h grayscale, 02h no display) +SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h + +(Table 00034) +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) +Return: nothing +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) +Return: nothing +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 = options 1 + bits 7-4 = vertical refresh at 640x480 + (0 = 60Hz, 1 = 72Hz, other reserved) + bits 3-0 = maximum vertical resolution + (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved) + BH = options 2 + bits 7-4 = vertical refresh at 1024x768 + (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved) + bits 3-0 = vertical refresh at 800x600 + (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved) + CH = options 3 + bits 7-4 = vertical refresh at 1280x1024 + (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved) + bits 3-0: reserved + CL,DX reserved +Return: nothing +SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h +--------V-1012--BLAE------------------------- +INT 10 - Cirrus Logic BIOS - GET HIGH REFRESH + AH = 12h + BL = AEh +Return: AL = result + bits 7-1: reserved + bit 0: 640x480 high refresh rate + =0 72 Hz + =1 75 Hz +SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AFh +--------V-1012--BLAF------------------------- +INT 10 - Cirrus Logic BIOS - SET HIGH REFRESH + AH = 12h + BL = AFh + AL = option + bits 7-1: reserved + bit 0: 640x480 high refresh rate + =0 72 Hz + =1 75 Hz +Return: nothing +SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AEh +--------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-1012--BLF1-------------------------- +INT 10 - Tseng ET-4000 BIOS - GET/SET SCREEN REFRESH RATE + AH = 12h + BL = F1h + AL = subfunction + 00h set refresh rate + 01h get refresh rate + BH = video mode + 00h 640x480 + 01h 800x600 + 02h 1024x768 + 03h 1280x1024 + CX = new refresh rate (see #00035) if AL = 00h +Return: AL = 12h if supported + CX = current rate (for AL=00h, a changed CX indicates failure) + +(Table 00035) +Values for Tseng ET4000 refresh rate: + CX 640x480 800x600 1024x768/1280x1024 + 00h 60 Hz 56 Hz interlaced + 01h 72 Hz 60 Hz 60 Hz + 02h 75 Hz 72 Hz 70 Hz + 03h 90 Hz 75 Hz 75 Hz + 04h -- 90 Hz -- +--------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 +Return: nothing +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 + IBM documents AL=10h,11h,20h,21h as "private" rather than "reserved" + with PhysTechSoft's PTS ROM-DOS the AL,BH,BL,DH, and DL values are + ignored on entry. +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 #00036) +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 00036) + 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: #00014,#00026 +--------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 +Return: nothing +SeeAlso: AX=1100h,AX=1110h,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) +Return: nothing +SeeAlso: AX=1100h,AX=1102h,AX=1400h +--------V-101402----------------------------- +INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386) + AX = 1402h + BL = subfunction + 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) +Return: nothing +--------V-1015------------------------------- +INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE) + AH = 15h +Return: AX = alternate display adapter type (see #00037) + ES:DI -> parameter table (see #00038) +SeeAlso: AH=1Bh + +(Table 00037) +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 00038) + 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 +Return: nothing +--------J-1018------------------------------- +INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN + AH = 18h + AL = subfunction + 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 #00039) + BH = alternate display code (see #00039) +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,AH=1Ch,MEM 0040h:008Ah +Index: installation check;VGA + +(Table 00039) +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 #00039) + 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 #00040) +Return: AL = 1Bh if function supported + ES:DI buffer filled with state information +BUG: Trident 8900 (BIOS D3.0 1991/11/12) and Trident 9000 (C3.0 1991/10/25) + 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 00040) + 00h DWORD address of static funtionality table (see #00045) + 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 PORT 03x8h + 21h BYTE current setting of PORT 03x9h + 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 #00041) + 2Eh BYTE non-VGA mode support (see #00042) + 2Fh 2 BYTEs reserved (00h) + 31h BYTE video memory available + 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K + 32h BYTE save pointer state flags (see #00043) + 33h BYTE display information and status (see #00044) + 34h 12 BYTEs reserved (00h) + +Bitfields for miscellaneous flags: +Bit(s) Description (Table 00041) + 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 flat-panel display is active + 7 unused (0) +SeeAlso: #00040 + +Bitfields for non-VGA mode support: +Bit(s) Description (Table 00042) + 7-5 reserved + 4 132-column mode supported + 3 =1 MFI attributes enabled (see AH=12h/BL=37h) + =0 VGA attributes + 2 16-bit VGA graphics present + 1 adapter interface driver required + 0 BIOS supports information return for adapter interface +SeeAlso: #00040 + +Bitfields for save pointer state flags: +Bit(s) Description (Table 00043) + 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) +SeeAlso: #00040 + +Bitfields for display information and status: +Bit(s) Description (Table 00044) + 7 640x480 flat-panel can be used simultaneously with CRT controller + 6-3 reserved + 2 color display + 1 flat-panel display active + 0 flat-panel display attached +SeeAlso: #00040 + +Format of Static Functionality Table: +Offset Size Description (Table 00045) + 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 #00046) + 0Ch WORD reserved + 0Eh BYTE save pointer function flags (see #00047) + 0Fh BYTE reserved +SeeAlso: #00040 + +Bitfields for miscellaneous function support flags: +Bit(s) Description (Table 00046) + 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 #00039) + 12-15 unused (0) +SeeAlso: #00040 + +Bitfields for save pointer function flags: +Bit(s) Description (Table 00047) + 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) +SeeAlso: #00040 +--------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 #00048) +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 + this function may be a better VGA installation check than the usual + INT 10/AX=1A00h, since some late-model EGA cards (such as the ATI + EGA Wonder) supported that call +SeeAlso: AX=1A00h,AX=5F90h,AX=5FA0h,MEM 0040h:00A8h + +Bitfields for requested states: +Bit(s) Description (Table 00048) + 0 video hardware (see #00049) + 1 BIOS data areas + 2 color registers and DAC state (see #00050) + 3-15 unused (0) +SeeAlso: #00186 + +Format of VGA video hardware state: +Offset Size Description (Table 00049) + 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 00050) + 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 #00051) (BIOS looks at both + offsets) + +Format of SpeedSTAR Plus sync table: +Offset Size Description (Table 00051) + 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-101DAABXFDEC----------------------- +INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK + AX = 1DAAh + BX = FDECh +Return: BX = CDEFh if Diamond Stealth64 Video 2001-series video card installed + AL = number of megabytes of video memory + AH = card type??? (4Bh for VL-Bus/5Bh for PCI) + CX = ??? (0000h) + SI:DI -> signature/copyright string +--------V-101E00----------------------------- +INT 10 - VIDEO - FLAT-PANEL - READ INFORMATION + AX = 1E00h +Return: AL = 1Eh if function supported + BL = flat-panel status (see #00052) + ES:DI -> information table (see #00053) +Note: IBM classifies this function as optional +SeeAlso: AX=1E01h,AX=1E02h,AX=1E03h,AX=1E04h,AX=1E05h,AX=1EFEh + +Bitfields for flat-panel status: +Bit(s) Description (Table 00052) + 7-3 reserved + 2 color display + 1 flat panel is active + 0 flat panel is attached +SeeAlso: #00053 + +Format of flat-panel information table: +Offset Size Description (Table 00053) + 00h BYTE number of WORDs in the remainder of the table + 01h WORD number of vertical pixels per meter + 03h WORD number of horizontal pixels per meter + 05h WORD total number of vertical pixels + 07h WORD total number of horizontal pixels + 09h WORD vertical pixel separation in micrometers (center-to-center) + 0Bh WORD horizontal pixel separation in micrometers + 0Dh WORD range of gray levels available, less 1 + 0Fh WORD number of red levels available, less 1 (0000h if nonochrome) + 11h WORD number of green levels available, less 1 (0000h if nonochrome) + 13h WORD number of blue levels available, less 1 (0000h if nonochrome) +SeeAlso: #00052 +--------V-101E01----------------------------- +INT 10 - VIDEO - FLAT-PANEL - LCD/CRT DISPLAY CONTROL + AX = 1E01h + BH = function + bit 7: =1 set display control, =0 query control + bits 6-0: reserved (0) + ---if BH bit 7 set--- + BL = new display combination (see #00054) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bits 6-3: reserved (0) + bit 2: simultaneous display is supported by hardware + bit 1: LCD/CRT display control supported by hardware + bit 0: set operation was successful (always clear on get) + BL = active display combination (see #00054) +SeeAlso: AX=1E00h,AX=1E02h + +Bitfields for Flat-Panel display combination: +Bit(s) Description (Table 00054) + 7-2 reserved (0) + 1-0 combination + 00 reserved + 01 LCD active + 10 CRT active + 11 both LCD and CRT active (simultaneous display) +SeeAlso: #00055 +--------V-101E02----------------------------- +INT 10 - VIDEO - FLAT-PANEL - DISPLAY POSITION + AX = 1E02h + BH = function + bit 7: =1 set display position, =0 query position + bits 6-0: reserved (0) + ---if BH bit 7 set--- + BL = new position setting (see #00055) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bits 6-4: reserved (0) + bit 3: positioning to top is supported by hardware + bit 2: positioning to center is supported by hardware + bit 1: positioning to bottom is supported by hardware + bit 0: set operation was successful (always clear on get) + BL = active position setting (see #00055) +SeeAlso: AX=1E00h,AX=1E01h + +Bitfields for Flat-Panel position setting: +Bit(s) Description (Table 00055) + 7-2 reserved (0) + 1-0 position + 00 center + 01 top + 10 bottom + 11 reserved +SeeAlso: #00054,#00056 +--------V-101E03----------------------------- +INT 10 - VIDEO - FLAT-PANEL - VERTICAL EXPANSION FOR TEXT/GRAPHICS MODES + AX = 1E03h + BH = function + bit 7: =1 set vertical expansion, =0 query expansion + bits 6-0: reserved (0) + ---if BH bit 7 set--- + BL = new vertical expansion setting (see #00056) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bits 6-4: reserved (0) + bit 3: vertical expansion of text is supported by hardware + bit 2: vertical expansion of graphics is supported by hardware + bit 1: hardware supports independent control of expansion in + text and graphics modes + bit 0: set operation was successful (always clear on get) + BL = active vertical expansion setting (see #00056) +SeeAlso: AX=1E00h,AX=1E02h.AX=1E04h + +Bitfields for Flat-Panel vertical expansion setting: +Bit(s) Description (Table 00056) + 7-2 reserved (0) + 1 vertical expansion turned on for text modes + 0 vertical expansion turned on for graphics modes +SeeAlso: #00054,#00055,#00057 +--------V-101E04----------------------------- +INT 10 - VIDEO - FLAT-PANEL - NORMAL/REVERSE VIDEO FOR TEXT/GRAPHICS MODES + AX = 1E04h + BH = function + bit 7: =1 set normal/reverse video, =0 query normal/reverse + bits 6-0: reserved (0) + ---if BH bit 7 set--- + BL = new normal/reverse video setting (see #00057) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bits 6-4: reserved (0) + bit 3: hardware supports reverse video for text modes + bit 2: hardware supports reverse video for graphics modes + bit 1: hardware supports independent control of reverse video + in text and graphics modes + bit 0: set operation was successful (always clear on get) + BL = active normal/reverse video setting (see #00057) +SeeAlso: AX=1E00h,AX=1E03h,AX=1E05h + +Bitfields for Flat-Panel normal/reverse video setting: +Bit(s) Description (Table 00057) + 7-2 reserved (0) + 1 reverse video for text + 0 reverse video for graphics +SeeAlso: #00054,#00056,#00058,#00059 +--------V-101E05----------------------------- +INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS CONTROL + AX = 1E05h + BH = function + bit 7: =1 set brightness, =0 query brightness + bits 6-0: reserved (0) + ---if BH bit 7 set--- + BL = new brightness setting (see #00058) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bits 6-2: reserved (0) + bit 1: software brightness control is supported + bit 0: set operation was successful (always clear on get) + BL = active brightness setting (see #00058) +Note: this function operates independently of AX=1E07h +SeeAlso: AX=1E00h,AX=1E04h,AX=1E06h,AX=1E07h + +Bitfields for Flat-Panel brightness control: +Bit(s) Description (Table 00058) + 7-1 reserved (0) + 0 high brightness +SeeAlso: #00057,#00059 +--------V-101E06----------------------------- +INT 10 - VIDEO - FLAT-PANEL - CONTRAST CONTROL FOR TEXT/GRAPHICS + AX = 1E06h + BH = function + bit 7: =1 set contrast control, =0 query contrast + bits 6-0: reserved (0) + ---if BH bit 7 set--- + BL = new normal/reverse video setting (see #00059) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bits 6-4: reserved (0) + bit 3: software contrast control supported for text + bit 2: software contrast control supported for graphics + bit 1: hardware supports independent control of contrast + in text and graphics modes + bit 0: set operation was successful (always clear on get) + BL = active contrast setting (see #00059) +Note: this function operates independently of AX=1E08h +SeeAlso: AX=1E00h,AX=1E04h,AX=1E05h,AX=1E07h,AX=1E08h + +Bitfields for Flat-Panel contrast control: +Bit(s) Description (Table 00059) + 7-2 reserved (0) + 1 high contrast for text + 0 high contrast for graphics +SeeAlso: #00057,#00058 +--------V-101E07----------------------------- +INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS SETTING + AX = 1E07h + BH = function + bit 7: =1 set brightness control, =0 query brightness + bit 6: use standard brightness + bits 5-0: reserved (0) + ---if BH bits 7,6=10--- + BL = brightness (00h = minimum, FFh = maximum) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bit 6: standard/custom (copied from input) + bits 5-2: reserved (0) + bit 1: software brightness control is supported + bit 0: set operation was succesful (always clear on get) + BL = brightness (00h = minimum, FFh = maximum) +Note: this function operates independently of AX=1E05h +SeeAlso: AX=1E00h,AX=1E05h,AX=1E08h +--------V-101E08----------------------------- +INT 10 - VIDEO - FLAT-PANEL - CONTRAST SETTING + AX = 1E08h + BH = function + bit 7: =1 set contrast control, =0 query contrast + bit 6: use standard contrast + bits 5-0: reserved (0) + ---if BH bits 7,6=10--- + BL = contrast (00h = minimum, FFh = maximum) +Return: AL = 1Eh if function supported + BH = results + bit 7: query/set (copied from input) + bit 6: standard/custom (copied from input) + bits 5-2: reserved (0) + bit 1: software contrast control is supported + bit 0: set operation was succesful (always clear on get) + BL = contrast (00h = minimum, FFh = maximum) +Note: this function operates independently of AX=1E06h +SeeAlso: AX=1E00h,AX=1E06h,AX=1E07h +--------V-101EFE----------------------------- +INT 10 - VIDEO - FLAT-PANEL - FUNCTION SUPPORT FLAG + AX = 1EFEh + ES:DI -> DWORD buffer for bitmap of supported functions + (set to all zeros before calling) +Return: ES:DI buffer updated with mask of supported functions +Index: installation check;flat-panel display support +SeeAlso: AX=1E00h,AX=1E06h +--------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 #00060) +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 00060) + 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. +SeeAlso: #00061 +--------V-101F02----------------------------- +INT 10 - VIDEO - XGA - GET SVGA DMQS DATA LENGTH + AX = 1F02h +Return: AL = 1Fh if function supported + BX = length of SVGA DMQS data in bytes +SeeAlso: AX=1F00h,AX=1F03h +--------V-101F03----------------------------- +INT 10 - VIDEO - XGA - GET SVGA DMQS DATA + AX = 1F03h + ES:DI -> buffer for SVGA DMQS data (see #00061) +Return: AL = 1Fh if function supported + ES:DI buffer filled +SeeAlso: AX=1F00h,AX=1F02h + +Format of SVGA DMQS data: +Offset Size Description (Table 00061) + 00h WORD offset to DMQS data for next SVGA instance or 0000h + 02h BYTE reserved + 03h BYTE SVGA implementation functional level + 04h BYTE SVGA implementation resolution level + 05h WORD vendor ID + 07h WORD vendor-specific + 09h 7 BYTEs reserved + 10h BYTE SVGA linear address window size + 00h 64K + 01h 1M + 02h 2M + 03h 4M + 11h WORD SVGA linear address window location or 0000h if not allocated + (multiply by 10000h [shift left 16 bits] to get physical addr) + 13h WORD attached monitor's composite monitor ID + 15h BYTE available video RAM in multiples of 256K + 16h 11 BYTEs reserved +SeeAlso: #00060 +--------V-103000CX0000----------------------- +INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK) + AX = 3000h + CX = 0000h + DX = 0000h +Return: CX:DX -> 3270PC configuration table (see #00062) + CX:DX = 0000h:0000h if 3270PC Control Program not active +SeeAlso: AX=1F01h + +Format of 3270 PC configuration table: +Offset Size Description (Table 00062) + 00h BYTE aspect ratio X + 01h BYTE aspect ratio Y + 02h BYTE monitor type (see #00063) + 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 #00064) + 07h BYTE function flags 2 + bit 6: GPI graphics supported + 08h WORD segment address of Control Program Level table (see #00065) + 0Ah 10 BYTEs reserved + +(Table 00063) +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 00064) + 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 00065) + 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 #00066) +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/AX=FB00h"AutoBraille" +Index: installation check;Tinytalk Personal + +Format of Tinytalk Personal configuration info: +Offset Size Description (Table 00066) + 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 - Hercules GRAFIX - "GMODE" - SET GRAPHICS MODE + AH = 40h +Return: nothing +Program: Hercules GRAFIX (or GRAPH X, as it is called in some documentation) + provides text output in graphics mode and some graphics primitives + on the Hercules Graphics Card +Desc: switch the Hercules Graphics Card into graphics mode (720x348) without + clearing the screen; make Page 0 the default for both writing and + display, and set LEVEL (see AH=44h) to 01h +SeeAlso: AH=00h,AH=41h,AH=42h +Index: video modes;Hercules +--------V-1041------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "TMODE" - SET TEXT MODE + AH = 41h +Return: nothing +Desc: switch the Hercules Graphics Card into text mode +SeeAlso: AH=00h,AH=40h +Index: video modes;Hercules +--------V-1042------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "CLRSCR" - CLEAR CURRENT PAGE + AH = 42h +Return: nothing +SeeAlso: AH=45h +--------V-1043------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "GPAGE" - SELECT DRAWING PAGE + AH = 43h + AL = page number (0,1) +Return: nothing +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 - Hercules GRAFIX - "LEVEL" - SELECT DRAWING FUNCTION + AH = 44h + AL = drawing function + 00h clear pixels + 01h set pixels + 02h invert pixels +Return: nothing +Desc: specify how graphics output will change the display +SeeAlso: AH=40h,AH=45h,AH=46h,AH=4Bh,AH=4Ch,AH=4Dh +--------V-1045------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "DISP" - SELECT PAGE TO DISPLAY + AH = 45h + AL = page number (0,1) +Return: nothing +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 - Hercules GRAFIX - "PLOT" - DRAW ONE PIXEL + AH = 46h + DI = x (0-719) + BP = y (0-347) +Return: nothing +Notes: function 44h determines operation and function 43h which page to use + if the indicated coordinate is invalid, this function does nothing +SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh +--------V-1047------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "GETPT" - FIND PIXEL VALUE + 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 - Hercules GRAFIX - "MOVE" - MOVE TO POINT + AH = 48h + DI = x (0-719) + BP = y (0-347) +Return: nothing +Desc: specify the location from which to start the next graphics output +SeeAlso: AH=49h +--------V-1049------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "DLINE" - DRAW TO POINT + AH = 49h + DI = x (0-719) + BP = y (0-347) +Return: nothing +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 - Hercules GRAFIX - "BLKFIL" - BLOCK FILL + AH = 4Ah + DI = x coordinate of lower left corner + BP = y coordinate of lower left corner + BX = height in pixels + CX = width in pixels +Return: nothing +Desc: draw a solid rectangle of the specified size at the given location +SeeAlso: AH=4Eh +--------V-104B------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "TEXT" - DISPLAY CHARACTER + AH = 4Bh + AL = character to display + DI = x (0-719) + BP = y (0-347) +Return: nothing +Notes: unlike the other BIOS character functions character position is + specified in pixels rather than rows and columns + the character is writting using the drawing function last specified by + AH=44h +SeeAlso: AH=09h,AH=0Ah,AH=44h +--------P-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 #00068) + 16h get parameters + ES:BX -> buffer for parameter table (see #00068) + 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 #00067) +SeeAlso: AH=0Fh/SI=F123h + +(Table 00067) +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 00068) + 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 - Hercules GRAFIX - "ARC" - DRAW ARC + AH = 4Ch + AL = quadrant (1 = upper right, 2 = upper left, etc) + DI = x coordinate of center + BP = y coordinate of center + BX = radius +Return: nothing +SeeAlso: AH=49h,AH=4Dh +--------V-104D------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "CIRC" - DRAW CIRCLE + AH = 4Dh + DI = x of center + BP = y of center + BX = radius +Return: nothing +SeeAlso: AH=49h,AH=4Ch +--------V-104E------------------------------- +INT 10 - VIDEO - Hercules GRAFIX - "FILL" - FILL AREA + AH = 4Eh + DI = x coordinate of an interior point + BP = y coordinate of an interior point +Return: nothing +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 #00069) +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 00069) + 00h 4 BYTEs signature ("VESA") + 04h WORD VESA version number + 06h DWORD pointer to ASCIZ OEM string + 0Ah DWORD environment flags (see #00070) + 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 00070) + 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 #00071) +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 00071) + 00h DWORD pointer to null-terminated board OEM string + 04h DWORD capabilities (see #00072) + 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 00072) + 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 #00073) +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 00073) + 00h WORD attributes of the mode (see #00074) + 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 #00075) + 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 00074) + 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 00075) +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 #00076) + 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 00076) + 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 #00076) +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 #00077) +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"SOLLEX",AX=A00Ch +Index: installation check;VESA SuperVGA + +Format of SuperVGA information: +Offset Size Description (Table 00077) + 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 -- 0102h = v1.2) + 06h DWORD pointer to OEM name + "761295520" for ATI + 0Ah DWORD capabilities flags (see #00078) + 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 (BCD, high byte = major, low byte = minor) + 16h DWORD pointer to vendor name + 1Ah DWORD pointer to product name + 1Eh DWORD pointer to product revision string + 22h WORD (if capabilities bit 3 set) VBE/AF version (BCD) + 0100h for v1.0P + 24h DWORD (if capabilities bit 3 set) pointer to list of supported + accelerated video modes (list of words terminated with FFFFh) + 28h 216 BYTEs reserved for VBE implementation +100h 256 BYTEs OEM scratchpad (for OEM strings, etc.) +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 + not all of the video modes in the list of mode numbers may be + supported, e.g. if they require more memory than currently installed + or are not supported by the attached monitor. Check any mode you + intend to use through AX=4F01h first. + 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 + in some cases, only a "stub" VBE may be present, supporting only + AX=4F00h; this case may be assumed if the list of supported video + modes is empty (consisting of a single word of FFFFh) + +Bitfields for VESA capabilities: +Bit(s) Description (Table 00078) + 0 DAC can be switched into 8-bit mode + 1 non-VGA controller + 2 programmed DAC with blank bit (i.e. only during blanking interval) + 3 (VBE v3.0) controller supports hardware stereoscopic signalling + 3 controller supports VBE/AF v1.0P extensions + 4 (VBE v3.0) if bit 3 set: + =0 stereo signalling via external VESA stereo connector + =1 stereo signalling via VESA EVC connector + 4 (VBE/AF v1.0P) must call EnableDirectAccess to access framebuffer + 5 (VBE/AF v1.0P) controller supports hardware mouse cursor + 6 (VBE/AF v1.0P) controller supports hardware clipping + 7 (VBE/AF v1.0P) controller supports transparent BitBLT + 8-31 reserved (0) +SeeAlso: #00077,AX=4F09h +--------V-104F01----------------------------- +INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION + AX = 4F01h + CX = SuperVGA video mode (see #04082 for bitfields) + ES:DI -> 256-byte buffer for mode information (see #00079) +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 + +Bitfields for VESA/VBE video mode number: +Bit(s) Description (Table 04082) + 15 preserve display memory on mode change + 14 (VBE v2.0+) use linear (flat) frame buffer + 13 (VBE/AF 1.0P) VBE/AF initializes accelerator hardware + 12 reserved for VBE/AF + 11 (VBE v3.0) user user-specified CRTC refresh rate values + 10-9 reserved for future expansion + 8-0 video mode number (0xxh are non-VESA modes, 1xxh are VESA-defined) + +Format of VESA SuperVGA mode information: +Offset Size Description (Table 00079) + 00h WORD mode attributes (see #00080) + 02h BYTE window attributes, window A (see #00081) + 03h BYTE window attributes, window B (see #00081) + 04h WORD window granularity in KB + 06h WORD window size in KB + 08h WORD start segment of window A (0000h if not supported) + 0Ah WORD start segment of window B (0000h if not supported) + 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 #00082) + 1Ch BYTE size of bank in KB + 1Dh BYTE number of image pages (less one) that will fit in video RAM + 1Eh BYTE reserved (00h for VBE 1.0-2.0, 01h for VBE 3.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 +---VBE v3.0 --- + 32h WORD bytes per scan line in linear modes + 34h BYTE number of images (less one) for banked video modes + 35h BYTE number of images (less one) for linear video modes + 36h BYTE linear modes: size of direct color red mask (in bits) + 37h BYTE linear modes: bit position of red mask LSB (e.g. shift count) + 38h BYTE linear modes: size of direct color green mask (in bits) + 39h BYTE linear modes: bit position of green mask LSB (e.g. shift count) + 3Ah BYTE linear modes: size of direct color blue mask (in bits) + 3Bh BYTE linear modes: bit position of blue mask LSB (e.g. shift count) + 3Ch BYTE linear modes: size of direct color reserved mask (in bits) + 3Dh BYTE linear modes: bit position of reserved mask LSB + 3Eh DWORD maximum pixel clock for graphics video mode, in Hz + 42h 190 BYTEs reserved (0) +Note: while VBE 1.1 and higher will zero out all unused bytes of the buffer, + v1.0 did not, so applications that want to be backward compatible + should clear the buffer before calling + +Bitfields for VESA SuperVGA mode attributes: +Bit(s) Description (Table 00080) + 0 mode supported by present hardware configuration + 1 optional information available (must be =1 for VBE v1.2+) + 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 + 8 double-scan mode available (e.g. 320x200 and 320x240) +---VBE v3.0 --- + 9 interlaced mode available + 10 hardware supports triple buffering + 11 hardware supports stereoscopic display + 12 dual display start address support + 13-15 reserved +---VBE/AF v1.0P--- + 9 application must call EnableDirectAccess before calling bank-switching + functions +SeeAlso: #00079 + +Bitfields for VESA SuperVGA window attributes: +Bit(s) Description (Table 00081) + 0 exists + 1 readable + 2 writable + 3-7 reserved +SeeAlso: #00079 + +(Table 00082) +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 +SeeAlso: #00079 +--------V-104F02----------------------------- +INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE + AX = 4F02h + BX = new video mode (see #04082,#00083,#00084) + ES:DI -> (VBE 3.0+) CRTC information block, bit mode bit 11 set + (see #04083) +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed +Notes: bit 13 may only be set if the video mode is present in the list of + accelerated video modes returned by AX=4F00h + if the DAC supports both 8 bits per primary color and 6 bits, it will + be reset to 6 bits after a mode set; use AX=4F08h to restore 8 bits +SeeAlso: AX=4E03h,AX=4F00h,AX=4F01h,AX=4F03h,AX=4F08h + +(Table 00083) +Values for VESA video mode: + 00h-FFh OEM video modes (see #00010 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 (1:5:5:5) + 11Ah 1280x1024x64K (5:6:5) + 11Bh 1280x1024x16M +---VBE 2.0+ --- + 120h 1600x1200x256 + 121h 1600x1200x32K + 122h 1600x1200x64K +81FFh special full-memory access mode +Notes: 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. For VBE 2.0+, it is required that the + VBE implement the mode, but not place it in the list of available + modes (mode information for this mode can be queried directly, + however). + as of VBE 2.0, VESA will no longer define video mode numbers +SeeAlso: #00010,#00011,#00084,#00191 +Index: video modes;VESA + +(Table 00084) +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 + 209h 1152x864x32K + 20Ah 1152x864x64K (Diamond Stealth 64) + 20Bh 1152x864x4G + 211h 640x480x64K (Diamond Stealth 24) + 211h 640x400x4G (Diamond Stealth64 Video / Stealth64 Graphics) + 212h 640x480x16M (Diamond Stealth 24) + 301h 640x480x32K +Note: these modes are only available on video cards using S3's VESA driver +SeeAlso: #00083,#00191,#00732 at INT 1A/AX=B102h +Index: video modes;S3 + +Format of VESA VBE CRTC Information Block: +Offset Size Description (Table 04083) + 00h WORD total number of pixels horizontally + 02h WORD horizontal sync start (in pixels) + 04h WORD horizontal sync end (in pixels) + 06h WORD total number of scan lines + 08h WORD vertical sync start (in scan lines) + 0Ah WORD vertical sync end (in scan lines) + 0Ch BYTE flags (see #04084) + 0Dh DWORD pixel clock, in Hz + 11h WORD refresh rate, in 0.01 Hz units + this field MUST be set to pixel_clock / (HTotal * VTotal), + even though it may not actually be used by the VBE + implementation + 13h 40 BYTEs reserved + +Bitfields for VESA VBE CRTC Information Block flags: +Bit(s) Description (Table 04084) + 0 enable double scanning + 1 enable interlacing + 2 horizontal sync polarity (0 positive, 1 negative) + 3 vertical sync polarity (0 positive, 1 negative) +SeeAlso: #04083 +--------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 #00083,#00084) + bit 13: VBE/AF v1.0P accelerated video mode + 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 #00085) +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed +SeeAlso: AH=1Ch,AX=5F90h,AX=5FA0h + +Bitfields for VESA SuperVGA states to save/restore: +Bit(s) Description (Table 00085) + 0 video hardware state + 1 video BIOS data state + 2 video DAC state + 3 SuperVGA register state +SeeAlso: #00048,#00186 +--------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 + ES = selector for memory-mapped registers (VBE 2.0+, when called from + 32-bit protected mode) +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed +Note: when using an accelerated video mode under VBE/AF v1.0P, the + application must call EnableDirectAccess before switching banks if + bit 9 of the video mode attributes flag is set (see #00080) +BUG: Phoenix S3 Trio64V+ v1.02-02 reportedly returns garbage in DX for + subfunction 01h +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 = subfunction + 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 = subfunction + 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-104F07----------------------------- +INT 10 - VESA SuperVGA BIOS v3.0+ - SCHEDULED DISPLAY START + AX = 4F07h + BL = subfunction + 02h,82h (VBE v3.0) schedule display start at next vertical retrace + ECX = display start address in bytes + 03h,83h schedule stereoscopic display start + ECX = left image start address (in bytes) + EDX = right image start address (in bytes) + 04h get scheduled display start status + Return: CX = start status + (00h no display flip, else display has flipped) +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed +SeeAlso: AX=4F07h"DISPLAY START",AX=4F07h"STEREOSCOPIC" +--------V-104F07----------------------------- +INT 10 - VESA SuperVGA BIOS v3.0+ - ENABLE/DISABLE STEREOSCOPIC MODE + AX = 4F07h + BL = subfunction + 05h enable stereoscopic mode + 06h disable stereoscopic mode +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed +Note: when stereoscopic mode is enabled, the display start address will + automatically alternate between the left and right images on every + vertical retrace +SeeAlso: AX=4F07h"DISPLAY START",AX=4F07h"SCHEDULED" +--------V-104F08----------------------------- +INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL + AX = 4F08h + BL = subfunction + 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 + BH = current number of bits per primary (06h = standard VGA) + 01h failed +--------V-104F09----------------------------- +INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES + AX = 4F09h + BL = subfunction + 00h set (primary) palette + 01h get (primary) 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, array of DAC entries (see #00086) +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed +SeeAlso: AX=4F0Ah,AX=D000h"S3VBE" + +Format of VESA VBE palette entry: +Offset Size Description (Table 00086) + 00h BYTE red + 01h BYTE green + 02h BYTE blue + 03h BYTE alpha or alignment byte +--------V-104F0ABL00------------------------- +INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE INTERFACE + AX = 4F0Ah + BL = 00h +Return: AL = 4Fh if function supported + AH = status + 00h successful + ES:DI -> protected-mode table (see #00087) + CX = length of table in bytes, included protected-mode code + 01h failed +SeeAlso: AX=4F00h,AX=4F05h,AX=4F07h,AX=4F09h + +Format of VESA VBE 2.0 protected-mode table: +Offset Size Description (Table 00087) + 00h WORD offset (within table) of protected-mode code for Function 5 + (Set Window) + 02h WORD offset of protected-mode code for Function 7 (Set Disp Start) + 04h WORD offset of protected-mode code for Function 9 (Set Primary + Palette) + 06h WORD offset (within table) of list of I/O ports and memory locations + for which I/O privilege may be required in protected mode + (0000h if no list) (see #04085) + 08h var code and optional port/memory list + +Format of VESA VBE 2.0+ protected-mode port/memory list: +Offset Size Description (Table 04085) + 00h WORD I/O port number + ... + WORD FFFFh marking end of I/O port list + DWORD memory region base address + WORD memory region limit (one less than length) + WORD FFFFh marking end of memory region list +Note: the memory region is optional; if not present, there will be a word + of FFFFh immediately following the FFFFh marking the end of the I/O + port list +SeeAlso: #00087 +--------V-104F0A----------------------------- +INT 10 O - VESA SuperVGA BIOS v2.0 beta - GET PROTECTED-MODE CODE + AX = 4F0Ah + BX = function to be copied (see #00088) +Return: AL = 4Fh if function supported + AH = status + 00h successful + CX = number of bytes to copy + ES:DI -> code for requested function + 01h failed +SeeAlso: AX=4F09h,AX=D000h"S3VBE" + +(Table 00088) +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) +--------V-104F0BBL00------------------------- +INT 10 - VESA SuperVGA BIOS v3.0 - GET NEAREST PIXEL CLOCK + AX = 4F0Bh + BL = 00h get closest pixel clock + ECX = requested clock frequency in Hz + DX = video mode number +Return: AL = 4Fh if function supported + AH = status + 00h successful + ECX = nearest clock rate + 01h failed +--------V-104F0B----------------------------- +INT 10 - VESA SuperVGA BIOS - GET VBE/AF v1.0P DEVICE CONTEXT BUFFER + AX = 4F0Bh + BL = subfunction + 00h get length of device context buffer + 01h initialize device context buffer + ES:DI -> real-mode address of buffer (see #00089) +Return: AL = 4Fh if function supported + AH = status + 00h successful + CX = number of bytes required for buffer (if BL=00h on entry) + ES:DI buffer initialized (if BL=01h on entry) + 01h failed +Note: this interface description is derived from the draft VBE/AF proposal + (version 1.0P, document revsion 0.12P, dated 13jan95) +SeeAlso: AX=4F00h,AX=4F01h,AX=4F17h + +Format of VBE/AF v1.0P Device Context buffer: +Offset Size Description (Table 00089) + 00h WORD maximum X coordinate in frame buffer (0 = left edge) + Note: application must never pass X coordinate greater than + this value to the SetClipRect function (values are + NOT range-checked!) + 02h WORD maximum Y coordinate in frame buffer (0 = top edge) + Note: application must never pass Y coordinate greater than + this value to the SetClipRect function + 04h DWORD -> "SetForeColor" to set foreground color/mix (see #00091) + 08h DWORD -> "SetBackColor" to set background color/mix (see #00092) + 0Ch DWORD -> "SetClipRect" set hardware clipping rectangle (see #00093) + 10h DWORD -> function "DrawScan" to draw a single scan line + 14h DWORD -> function "DrawScanList" to draw a list of scan lines + 18h DWORD -> function "DrawRect" to draw a solid rectangle + 1Ch DWORD -> function "DrawLine" to draw a solid line + 20h DWORD -> function "DrawPattScan" to draw a patterned scan line + 24h DWORD -> function "BitBlt" to perform screen-to-screen BitBLT + 28h DWORD -> "TransBitBlt" to perform transparent screen-to-screen BitBLT + 2Ch DWORD -> "MonoBitBlt" to monochrome expansion screen-to-screen BitBLT + 30h DWORD -> function "SetCursor" to download hardware cursor image + 34h DWORD -> function "SetCursorPos" to set hardware cursor position + 38h DWORD -> function "SetCursorColor" to set hardware cursor color + 3Ch DWORD -> function "ShowCursor" to show/hide hardware cursor + 40h DWORD -> function "WaitTillIdle" to wait until graphics engine idle + 44h DWORD -> "EnableDirectAccess" to enable direct framebuffer access + 48h DWORD -> "DisableDirectAccess" to disable direct framebuffer access + 4Ch DWORD -> "BankSwitchCB" bank-switching callback function + (set by application, may simply point at 32-bit VBE 2.0 bank + switching entry point) + 50h WORD "VidMemSel" selector for video memory (must be set by app) + 52h WORD "IOPortsOff" offset of I/O ports table in context buffer + 54h WORD "IOMemoryOff" offset of I/O memory table in context buffer + 56h WORD "IOMemSel1" selector for first I/O memory area specified by + I/O memory table (must be set by application) + 58h WORD "IOMemSel2" selector for second I/O memory area + 5Ah WORD "IOMemSel3" selector for third I/O memory area + 5Ch WORD "IOMemSel4" selector for fourth I/O memory area + 5Eh N BYTEs device-specific state buffer + N WORDs I/O port access table (list of ports, last entry is FFFFh) + N DWORDs I/O memory access table (list of physical-address/length pairs, + last entry is FFFFFFFFh) + N BYTEs 32-bit code for VBE/AF v1.0P function +Notes: all function pointers are offsets into the 32-bit code within the + context buffer, and should be updated to point at the actual + functions after the application has copied the buffer from the + real-mode memory used for the interrupt call into its own flat-model + memory space + any functions which are not supported by the hardware have function + pointers which are set to 00000000h initially + +(Table 00090) +Values for VBE/AF v1.0P color mixing mode: + 00h replace + 01h XOR with existing pixel + 02h OR with existing pixel + 03h AND with existing pixel +SeeAlso: #00091,#00090 + +(Table 00091) +Call VBE/AF v1.0P function "SetForeColor" with: + ES:EDI -> device context buffer (see #00089) + EAX = new foreground color (format varies by video mode) + BL = new foreground mixing mode (see #00090) +SeeAlso: #00089,#00092,#00107 + +(Table 00092) +Call VBE/AF v1.0P function "SetbackColor" with: + ES:EDI -> device context buffer (see #00089) + EAX = new background color (format varies by video mode) + BL = new background mixing mode (see #00090) +SeeAlso: #00089,#00091,#00093 + +(Table 00093) +Call VBE/AF v1.0P function "SetClipRect" with: + ES:EDI -> device context buffer (see #00089) + EAX = left clipping coordinate + EBX = top clipping coordinate + ECX = right clipping coordinate + EDX = bottom clipping coordinate +SeeAlso: #00089,#00092,#00094,#00107 + +(Table 00094) +Call VBE/AF v1.0P function "DrawScan" with: + ES:EDI -> device context buffer (see #00089) + EAX = X1 coordinate + EBX = Y coordinate + ECX = X2 coordinate +Desc: draw a solid horizontal line from (X1,Y) to (X2,Y) in the currently- + active foreground color and mix, omitting the pixel at the largest + X coordinate +SeeAlso: #00089,#00093,#00095,#00098,#00107 + +(Table 00095) +Call VBE/AF v1.0P function "DrawScanList" with: + ES:EDI -> device context buffer (see #00089) + EAX = Y coordinate of first line + EBX = length of scan list + DS:ESI -> scanline list X coordinates (2N WORDs) +Desc: draw multiple solid horizontal lines at successive Y coordinates, + using the currently-active foreground color and mix, omitting the + pixel at the largest X coordinate for each line +Note: the scanline list consists of pairs of X coordinates; because the + last pixel is omitted, a scanline will be skipped if X1==X2 +SeeAlso: #00089,#00094,#00096,#00107 + +(Table 00096) +Call VBE/AF v1.0P function "DrawRect" with: + ES:EDI -> device context buffer (see #00089) + EAX = left coordinate + EBX = top coordinate + ECX = right coordinate + EDX = bottom coordinate +Desc: draw a solid rectangle in the currently-active foreground color and + mix, omitting the rightmost X coordinate and bottom-most scan line +Note: results are undefined if EAX>ECX or EBX>EDX; nothing will be drawn if + EAX=ECX or EBX=EDX +SeeAlso: #00089,#00094,#00095,#00097 + +(Table 00097) +Call VBE/AF v1.0P function "DrawLine" with: + ES:EDI -> device context buffer (see #00089) + EAX = ??? (specified this way in the draft documentation!) + EBX = ??? + ECX = ??? + EDX = ??? + ESI = ??? +Desc: draw a solid line in the currently-active foreground color and mix, + given the Bresenham parameters +SeeAlso: #00089,#00094,#00096,#00098 + +(Table 00098) +Call VBE/AF v1.0P function "DrawPattScan" with: + ES:EDI -> device context buffer (see #00089) + EAX = X1 coordinate + EBX = Y coordinate + ECX = X2 coordinate + DL = 8-bit stipple pattern +Desc: draw a patterned horizontal line from (X1,Y) to (X2,Y) in the + currently-active foreground color and mix, omitting the pixel at + the largest X coordinate +Note: for each pixel in the line, if DL bit (X mod 8) is set, the pixel is + drawn, and left untouched if the bit is clear +SeeAlso: #00089,#00096,#00097,#00094,#00099,#00107 + +(Table 00099) +Call VBE/AF v1.0P function "BitBlt" with: + ES:EDI -> device context buffer (see #00089) + DS:ESI -> BitBlt parameter block (see #00100) + BL = mix operation + 00h replace + 01h XOR + 02h OR + 03h AND +SeeAlso: #00089,#00094,#00098,#00101,#00107 + +Format of VBE/AF BitBlt parameter block: +Offset Size Description (Table 00100) + 00h WORD left coordinate of source rectangle + 02h WORD top coordinate of source rectangle + 04h WORD right coordinate of source rectangle + 06h WORD bottom coordinate of source rectangle + 08h WORD left coordinate of destination rectangle + 0Ah WORD top coordinate of destination rectangle + 0Ch BYTE horizontal direction: 00h = decrement X, 01h = increment X + 0Dh BYTE vertical direction: 00h = decrement Y, 01h = increment Y +Notes: the rightmost pixel(s) and bottom-most scan line are not copied + the horizontal/vertical direction flags are used to ensure correct + copies when the source and destination rectangles overlap +SeeAlso: #00099 + +(Table 00101) +Call VBE/AF v1.0P function "TransBitBlt" with: + ES:EDI -> device context buffer (see #00089) + DS:ESI -> BitBlt parameter block (see #00100) + BL = mix operation + 00h replace + 01h XOR + 02h OR + 03h AND + ECX = transparent color +Desc: copy a rectangular area from one location to another, treating pixels + with the specified color as transparent (leaving the destination + unchanged) +SeeAlso: #00089,#00099,#00102,#00107 + +(Table 00102) +Call VBE/AF v1.0P function "MonoBitBlt" with: + ES:EDI -> device context buffer (see #00089) + DS:ESI -> BitBlt parameter block (see #00100) + BL = mix operation + 00h replace + 01h XOR + 02h OR + 03h AND + BH = bit-plane from which to read +Desc: copy a rectangular area from one location to another, expanding a + single bit of each source pixel +SeeAlso: #00089,#00099,#00101 + +(Table 00103) +Call VBE/AF v1.0P function "SetCursor" with: + ES:EDI -> device context buffer (see #00089) + DS -> application's data segment + ESI -> 32x32 cursor data, in Windows 3.1 cursor-file format + (32 DWORDs of XOR mask followed by 32 DWORDs of AND mask) +SeeAlso: #00089,#00094,#00104,#00105 + +(Table 00104) +Call VBE/AF v1.0P function "SetCursorPos" with: + ES:EDI -> device context buffer (see #00089) + EAX = cursor X coordinate + EBX = cursor Y coordinate + CL = cursor's X hotspot + CH = cursor's Y hotspot +SeeAlso: #00089,#00103,#00105 + +(Table 00105) +Call VBE/AF v1.0P function "SetCursorColor" with: + ES:EDI -> device context buffer (see #00089) + AL = 8-bit color index, or color's Red value + AH = color's Green value (16-bpp, 24-bpp, 32-bpp modes) + BL = color's Blue value (16-bpp, 24-bpp, 32-bpp modes) +SeeAlso: #00089,#00103,#00104,#00106 + +(Table 00106) +Call VBE/AF v1.0P function "ShowCursor" with: + ES:EDI -> device context buffer (see #00089) + AL = new visibility (00h hide cursor, 01h show cursor) +SeeAlso: #00089,#00103,#00104,#00105 + +(Table 00107) +Call VBE/AF v1.0P function "WaitTillIdle" with: + ES:EDI -> device context buffer (see #00089) +Desc: pause until the hardware accelerator has completed all pending + operations +SeeAlso: #00089,#00108,#00109 + +(Table 00108) +Call VBE/AF v1.0P function "EnableDirectAccess" with: + ES:EDI -> device context buffer (see #00089) +SeeAlso: #00089,#00109,#00107,AX=4F05h,#00078,#00080 + +(Table 00109) +Call VBE/AF v1.0P function "DisableDirectAccess" with: + ES:EDI -> device context buffer (see #00089) +SeeAlso: #00089,#00108 +--------V-104F0C----------------------------- +INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS + AX = 4F0Ch-4F0Fh +SeeAlso: AX=4F00h +--------V-104F0B----------------------------- +INT 10 - Diamond Viper V330 - ??? + AX = 4F0Bh + ECX = ??? + ??? +Return: AL = 4Fh if function supported + AH = status + 00h successful + ECX = ??? + ??? + 01h failed +Note: in BIOS v1.62, ECX is in multiples of 10000 (decimal) for both input + and output, and this function never fails +--------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 as pointer to info block) +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 #00110) + ES:DI unchanged +Index: installation check;VESA VBE/Power Management|VESA DPMS +SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h + +Bitfields for VESA VBE/PM supported power states: +Bit(s) Description (Table 00110) + 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 #00111) +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 00111) +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 #00111) + else failed +SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h,AX=A00Dh +--------V-104F11----------------------------- +INT 10 - VESA VBE/FP (Flat Panel Interface) - API + AX = 4F11h + BL = function + 00h installation check / get capabilities + other registers vary by function +Return: varies by function +--------V-104F12----------------------------- +INT 10 - VESA VBE/CI (Cursor Interface) - API + AX = 4F12h + BL = function + other registers vary by function +Return: varies by function +SeeAlso: AX=4F4Dh +--------s-104F13BX0000----------------------- +INT 10 - VESA VBE/AI (Audio Interface) - 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 VBE/AI (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 VBE/AI (Audio Interface) - QUERY DEVICE + AX = 4F13h + BX = 0002h + CX = handle + DX = query + 0001h return length of GeneralDeviceClass + 0002h return copy of GeneralDeviceClass (see #00112) + 0003h return length of Volume Info Structure + 0004h return copy of Volume Info Structure (see #00122) + 0005h return length of Volume Services Structure + 0006h return copy of Volume Services Structure (see #00124) + 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 00112) + 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 #00113) + some bytes ??? + for CX=handle for MIDI device: + MIDI Info Structure (see #00118) + first 8 bytes of MIDI Service Structure ??? +SeeAlso: #00122,#00124 + +Format of WAVE Info Structure: +Offset Size Description (Table 00113) + 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 #00114) + 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 #00115) +SeeAlso: #00118 + +Bitfields for Wave feature bits: +Bit(s) Description (Table 00114) + 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 00115) +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 00116) + 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 #00117) + 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: #00120,#00124 + +(Table 00117) +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 00118) + 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 #00119) + 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: #00112,#00120,#00122 + +Bitfields for MIDI feature bits: +Bit(s) Description (Table 00119) + 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 00120) + 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 #00121) + 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: #00116,#00124 + +(Table 00121) +Values for MIDI Registered Patch Types: + 10h OPL2 + 11h OPL3 + +Format of Volume Info Structure: +Offset Size Description (Table 00122) + 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 #00123) + 8Ch WORD minimum volume setting + 8Eh WORD maximum volume setting + 90h WORD attenuation/gain crossover +SeeAlso: #00112,#00124 + +Bitfields for Volume feature bits: +Bit(s) Description (Table 00123) + 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 00124) + 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: #00116,#00120 +--------s-104F13BX0003----------------------- +INT 10 - VESA VBE/AI (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 VBE/AI (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 VBE/AI (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 VBE/AI (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 +----------104F14----------------------------- +INT 10 - VESA OEM Extensions - API + AX = 4F14h + BL = function + 00h installation check / get capabilities + other registers vary by function +Return: varies by function +Note: this function is provided for OEMs to implement system-specific + functionality in a VESA-compatible manner +----------104F14----------------------------- +INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1) + AX = 4F14h + BL = function + 00h installation check / get capabilities + ES:DI -> 256-byte buffer for Matrox-specific information + (see #00125) + Return: ES:DI buffer filled + 01h read/write MGA indexed data register + BH = direction (00h = write, else read) + CL = register number (80h for most-recently used register) + CH = new value, if writing + Return: CH = current value, if reading + 02h read/write register in MGA control space + BH = direction and size + bit 4: read register instead of writing + bits 1-0: data size (00 = BYTE, 01 = WORD, 10 = DWORD) + SI = register address + CL/CX/ECX = new value if writing + Return: CL/CX/ECX = current value if reading + 03h read PINS byte + SI = offset of byte within PINS data (see #00126) + Return: CL = value of specified PINS byte + 04h ??? (related to PLL programming) + DX = ??? + Return: CL,EDX destroyed + 05h read BIOS byte + SI = offset of byte relative to start of BIOS image + Return: CL = specified byte + else + Return: AX = FFFFh +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed +Note: most of this info is from http:\\grafi.ii.pw.edu.pl\gbm\matrox +SeeAlso: MEM C000h:7FFCh"Matrox" + +Format of Matrox-specific VESA extensions information: +Offset Size Description (Table 00125) + 00h 7 BYTEs signature "VBE/MGA" + 07h 10 BYTEs ??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h) + 11h WORD BIOS version (high byte = major, low byte = one-digit minor) + 13h DWORD -> manufacturer name (ASCIZ "Matrox") + 17h DWORD -> ASCIZ card name + 1Bh DWORD -> ??? ASCIZ string (empty string on card examined) + 1Fh DWORD -> ASCIZ vendor name + 23h DWORD -> ASCIZ BIOS file base name + 27h DWORD -> PINS + 2Bh WORD video memory size in 64K units + 2Dh DWORD linear address of linear frame buffer + 31h DWORD linear address of MGA control aperture + 35h WORD PCI bus/device for card??? + 37h 201 BYTEs unused??? (cleared to 00h) + +Format of Matrox PINS data (version 3.0): +Offset Size Description (Table 00126) + 00h 2 BYTEs signature ".A" (2Eh 41h) + 02h BYTE structure length (40h for v3.0) + 03h BYTE ??? + 04h WORD PINS version (high byte = major, low byte = minor) + 06h WORD date last programmed + 08h WORD number of times programmed + 0Ah WORD flags + 0Ch 8 BYTEs ASCII serial number, three letters + five digits + 14h 8 BYTEs ??? + 1Ch 4 BYTEs ASCII card version + 20h DWORD PCB revision + 24h BYTE maximum RAMDAC frequency in MHz (less 100) + 25h BYTE maximum RAMDAC frequency??? + 26h BYTE maximum RAMDAc frequency??? + 27h BYTE ??? + 28h BYTE ??? timing data? + 29h BYTE ??? + 2Ah BYTE ??? + 2Bh BYTE ??? + 2Ch BYTE ??? + 2Dh BYTE ??? + 2Eh BYTE ??? + 2Fh BYTE ??? + 30h 4 BYTEs ??? + 34h BYTE ??? + 35h BYTE ??? + 36h BYTE ??? + 37h BYTE memory size in 64K units + 38h BYTE ??? + 39h BYTE ??? + 3Ah BYTE ??? + 3Bh BYTE ??? + 3Ch BYTE ??? + 3Dh BYTE ??? + 3Eh BYTE ??? + 3Fh BYTE checksum (to make sum of all bytes MOD 256 == 00h) +--------V-104F15BL00------------------------- +INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES + AX = 4F15h + BL = 00h +Return: AL = 4Fh if function supported + AH = status + 00h successful + BX = ??? + 01h failed + ??? +SeeAlso: AX=4F15h/BL=01h,AX=4F15h/BL=02h +--------V-104F15BL01------------------------- +INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID + AX = 4F15h + BL = 01h + CX = 0000h + DX = 0000h + ES:DI -> 128-byte buffer for EDID record (see #00127) +Return: AL = 4Fh if function supported + AH = status + 00h successful + ES:DI buffer filled + 01h failed (e.g. non-DDC monitor) +SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=02h,I2C A0h"DDC" + +Format of VESA EDID record: +Offset Size Description (Table 00127) + 00h 8 BYTEs padding (all FFh, or 00h FFh..FFh 00h) + 08h WORD big-endian manufacturer ID (see #00136) + bits 14-10: first letter (01h='A', 02h='B', etc.) + bits 9-5: second letter + bits 4-0: third letter + 0Ah WORD EDID ID code -- identifies monitor model + 0Ch DWORD serial number or FFFFFFFFh + for "MAG", subtract 7000000 to get actual serial number + for "OQI", subtract 456150000 + for "PHL", subtract ??? + for "VSC", subtract 640000000 + 10h BYTE week number of manufacture + 11h BYTE manufacture year - 1990 + 12h BYTE EDID version + 13h BYTE EDID revision + 14h BYTE video input type (see #00129) + 15h BYTE maximum horizontal size in cm + 16h BYTE maximum vertical size in cm + 17h BYTE gamma factor (gamma = 1.0 + factor/100, so max = 3.55) + 18h BYTE DPMS flags (see #00128) + 19h BYTE chroma information: green X'/Y' and red X'/Y' + 1Ah BYTE chroma information: white X'/Y' and blue X'/Y' + 1Bh BYTE chroma information: red Y + 1Ch BYTE chroma information: red X + 1Dh BYTE chroma information: green Y + 1Eh BYTE chroma information: green X + 1Fh BYTE chroma information: blue Y + 20h BYTE chroma information: blue X + 21h BYTE chroma information: white Y + 22h BYTE chroma information: white X + 23h BYTE established timings 1 (see #00130) + 24h BYTE established timings 2 (see #00131) + 25h BYTE manufacturer's reserved timing or 00h for none + bit 7: 1152x870 @ 75 Hz (Mac II, Apple) + 26h 8 WORDs standard timing identification + resolution (low byte) and vertical frequency (high byte) for + each of eight modes (see #00132) + X resolution = (lowbyte + 31) * 8 + 36h 18 BYTEs detailed timing description #1 (see #00133) + (v1.1) alternately, text identification (see #00135) + 48h 18 BYTEs detailed timing description #2 + (v1.1) alternately, text identification (see #00135) + 5Ah 18 BYTEs detailed timing description #3 + (v1.1) alternately, text identification (see #00135) + 6Ch 18 BYTEs detailed timing description #4 + (v1.1) alternately, text identification (see #00135) + 7Eh BYTE unused??? + 7Fh BYTE checksum + (radix-complement: 256-low byte of 16-bit sum of 00h-7Eh) + +Bitfields for DPMS EDID flags: +Bit(s) Description (Table 00128) + 2-0 unused??? + 3 display type + =0 non-RGB multicolor + =1 RGB color + 4 unused??? + 5 Active Off supported + 6 Suspend supported + 7 Standby supported +SeeAlso: #00127 + +Bitfields for DPMS input signal type: +Bit(s) Description (Table 00129) + 0 separate sync + 1 composite sync + 2 sync on green + 4-3 unused??? + 6-5 voltage level + 00 0.700V/0.300V (1.00 Vp-p) + 01 0.714V/0.286V + 10 0.100V/0.400V + 11 reserved + 7 =1 digital signal, =0 analog +SeeAlso: #00127 + +Bitfields for DPMS established timings 1: +Bit(s) Description (Table 00130) + 0 720x400 @ 70 Hz (VGA 640x400, IBM) + 1 720x400 @ 88 Hz (XGA2) + 2 640x480 @ 60 Hz (VGA) + 3 640x480 @ 67 Hz (Mac II, Apple) + 4 640x480 @ 72 Hz (VESA) + 5 640x480 @ 75 Hz (VESA) + 6 800x600 @ 56 Hz (VESA) + 7 800x600 @ 60 Hz (VESA) +SeeAlso: #00127,#00131 + +Bitfields for DPMS established timings 2: +Bit(s) Description (Table 00131) + 0 800x600 @ 72 Hz (VESA) + 1 800x600 @ 75 Hz (VESA) + 2 832x624 @ 75 Hz (Mac II) + 3 1024x768 @ 87 Hz interlaced (8514A) + 4 1024x768 @ 60 Hz (VESA) + 5 1024x768 @ 70 Hz (VESA) + 6 1024x768 @ 75 Hz (VESA) + 7 1280x1024 @ 75 Hz (VESA) +SeeAlso: #00127,#00130 + +Bitfields for DPMS standard timing information: +Bit(s) Description (Table 00132) + 5-0 vertical refresh frequency - 60 (Hz) + 7-6 aspect ratio (Y resolution = X resolution * aspect ratio) + 00 ??? + 01 0.75 + 10 0.8 + 11 0.5625 +Note: if both bytes of the timing are 00h or 01h, then the Standard Timing + is "None" +SeeAlso: #00127 + +Format of Detailed Timing Description: +Offset Size Description (Table 00133) + 00h BYTE horizontal frequency in kHz (if 00h, may be text)(see #00135) + 01h BYTE vertical frequency in Hz + 02h BYTE horizontal active time (pixels) and X resolution + 03h BYTE horizontal blanking time (pixels) + 04h BYTE horizontal active time 2 / horizontal blanking time 2 + 05h BYTE vertical active time (lines) and Y resolution + 06h BYTE vertical blanking time (lines) + 07h BYTE vertical active time 2 / vertical blanking time 2 + 08h BYTE horizontal sync offset (pixels) + 09h BYTE horizontal sync pulsewidth (pixels) + 0Ah BYTE vertical sync offset / vertical sync pulsewidth + 0Bh BYTE vertical/horizontal sync offset 2 / vert/hor. sync pulsewidth 2 + 0Ch BYTE horizontal image size (mm) + 0Dh BYTE vertical image size (mm) + 0Eh BYTE horizontal image size 2 / vertical image size 2 + 0Fh BYTE horizontal border (pixels) + 10h BYTE vertical border (lines) + 11h BYTE type of display (see #00134) +SeeAlso: #00127,#00135 + +Bitfields for EDID detailed display type: +Bit(s) Description (Table 00134) + 7 interlaced + 6-5 stereo mode + 00 normal display (no stereo) + 01 stereo, right stereo sync high + 10 stereo, left stereo sync high + 11 undefined + 4-3 sync type + 00 sync analog composite + 01 sync bipolar analog composite + 10 sync digital composite + 11 sync digital separate +---sync digital separate--- + 2 vertical sync polarity (0 = negative, 1 = positive) + 1 horizontal sync polarity (0 = negative, 1 = positive) +---other sync types--- + 2 serrate + 1 sync location (0 = on green, 1 = on RGB) +------ + 0 not used??? +SeeAlso: #00133 + +Format of EDID Text Identification Strings: +Offset Size Description (Table 00135) + 00h 3 BYTEs 00h 00h 00h (to distinguish from detailed timing description) + 03h BYTE text identifier + FFh serial number + FEh vendor name + FDh vertical/horizontal frequency range + FCh model name +---frequency range--- + 04h BYTE 00h ??? + 05h BYTE minimum vertical refresh frequency in Hz + 06h BYTE maximum vertical refresh + 07h BYTE minimum horizontal frequency in kHz + 08h BYTE maximum horizontal frequency + 09h BYTE FFh ??? +---other--- + 04h 14 BYTEs text, may be terminated with either a NUL (00h) or LF (0Ah) +SeeAlso: #00132 + +(Table 00136) +Values for manufacturer ID: + "ACT" Targa + "ADI" ADI Corporation http://www.adi.com.tw + "AOC" AOC International (USA) Ltd. (see #00137) + "API" Acer America Corp. (see #00138) + "APP" Apple Computer, Inc. (see #00139) + "ART" ArtMedia + "AST" AST Research (see #00140) + "CPL" Compal Electronics, Inc. / ALFA (see #00141) + "CPQ" COMPAQ Computer Corp. (see #00142) + "CTX" CTX - Chuntex Electronic Co. (see #00143) + "DEC" Digital Equipment Corporation (see #00144) + "DEL" Dell Computer Corp. (see #00145) + "DPC" Delta Electronics, Inc. (see #00146) + "DWE" Daewoo Telecom Ltd (see #00147) + "ECS" ELITEGROUP Computer Systems (see #00148) + "EIZ" EIZO (see #00149) + "FCM" Funai Electric Company of Taiwan + "GSM" LG Electronics Inc. (GoldStar Technology, Inc.) (see #00158) + "GWY" Gateway 2000 + "HEI" Hyundai Electronics Industries Co., Ltd. (see #00150) + "HIT" Hitachi (see #00151) + "HSL" Hansol Electronics (see #00152) + "HTC" Hitachi Ltd. / Nissei Sangyo America Ltd. (see #00153) + "HWP" Hewlett Packard (see #00154) + "IBM" IBM PC Company (see #00155) + "ICL" Fujitsu ICL (see #00156) + "IVM" Idek Iiyama North America, Inc. (see #00157) + "KFC" KFC Computek + "LKM" ADLAS / AZALEA + "LNK" LINK Technologies, Inc. + "LTN" Lite-On + "MAG" MAG InnoVision (see #00159) + "MAX" Maxdata Computer GmbH + "MEI" Panasonic Comm. & Systems Co. (see #00168) + "MEL" Mitsubishi Electronics (see #00160) + "MIR" miro Computer Products AG (see #00161) + "MTC" MITAC + "NAN" NANAO (see #00162) + "NEC" NEC Technologies, Inc. (see #00163) + "NOK" Nokia (see #00164) + "OQI" OPTIQUEST (see #00165) + "PBN" Packard Bell + "PGS" Princeton Graphic Systems (see #00166) + "PHL" Philips Consumer Electronics Co. (see #00167) + "REL" Relisys + "SAM" Samsung (see #00169) + "SDI" Samtron (see #00170) + "SMI" Smile + "SNI" Siemens Nixdorf + "SNY" Sony Corporation + "SPT" Sceptre + "SRC" Shamrock Technology + "STP" Sceptre + "TAT" Tatung Co. of America, Inc. (see #00171) + "TRL" Royal Information Company (see #00172) + "TSB" Toshiba, Inc. + "UNM" Unisys Corporation + "VSC" ViewSonic Corporation (see #00173) + "WTC" Wen Technology + "ZCM" Zenith Data Systems + "___" Targa +SeeAlso: #00127 + +(Table 00137) +Values for AOC monitor EDID: + A566h AOC SPECTRUM 5Nlr + A782h AOC SPECTRUM 7Nlr + D350h AOC SPECTRUM 4V, 4VA, 4Vlr, 4VlrA + D566h AOC SPECTRUM 5Vlr, 5VlrA + E570h AOC SPECTRUM 5Glr + E750h AOC SPECTRUM 7DlrA +SeeAlso: #00136,#00138 + +(Table 00138) +Values for Acer monitor EDID: + 0037h AcerView 55 + 424Ch AcerView 76ie + 440Bh AcerView 11D + 4421h AcerView 33D + 4522h AcerView 7134e + 4536h AcerView 7154e + 4538h AcerView 7156e + 454Ch AcerView 7176ie + 454Eh AcerView 7178ie + 4938h AcerView 7156i + 494Ch AcerView 76i + 494Eh AcerView 78i + 4962h AcerView 98i + 4C21h AcerView 33DL + 4C22h AcerView 34TL + 4C37h AcerView 55L + 4C38h AcerView 56L + 4E4Ch AcerView 76N + 5321h AcerView 7133s + 5322h AcerView 7134s + 5336h AcerView 7154s + 5338h AcerView 7156s, 7156is + 534Ch AcerView 7176is + 5422h AcerView 34T +SeeAlso: #00136,#00137,#00140 + +(Table 00139) +Values for Apple Computer monitor EDID: + 0352h AppleVision 850 +SeeAlso: #00136 + +(Table 00140) +Values for AST monitor EDID: + 8001h ASTVision 4V + 8002h ASTVision 4I + 8003h ASTVision 4N + 8004h ASTVision 4L + 8005h ASTVision 5L + 8006h ASTVision 7L + 8007h ASTVision 7H + 8008h ASTVision 20H + 8009h AST Sabre + 800Ah ASTVision 5V +SeeAlso: #00136,#00127,#00138,#00141 + +(Table 00141) +Values for ALFA monitor EDID: + 096Bh ALFA TH-450 +SeeAlso: #00136,#00140,#00142 + +(Table 00142) +Values for Compaq monitor EDID: + 0011h COMPAQ 1024 + 0012h COMPAQ 1024 + 0013h COMPAQ 1024 + 0014h COMPAQ 1024 + 0015h COMPAQ 1024 + 0016h COMPAQ 1024 + 0017h COMPAQ PRB + 0018h COMPAQ PRB + 0019h COMPAQ PRB + 001Ah COMPAQ PRB + 0020h COMPAQ PRB + 0021h COMPAQ PRB + 0022h COMPAQ 151FS + 0023h COMPAQ 151FS + 0024h COMPAQ 151FS + 0025h COMPAQ 151FS + 0026h COMPAQ 151FS + 0027h COMPAQ 151FS + 0028h COMPAQ 151FS + 0029h COMPAQ PRB + 002Ah COMPAQ PRB + 002Bh COMPAQ PRB + 002Ch COMPAQ PRB + 002Dh COMPAQ 171FS + 002Eh COMPAQ 171FS + 002Fh COMPAQ 171FS + 0030h COMPAQ 171FS + 0031h COMPAQ 171FS + 0032h COMPAQ 171FS + 0033h COMPAQ 171FS + 0040h COMPAQ QVision 200 + 0041h COMPAQ QVision 200 + 0042h COMPAQ QVision 200 + 0043h COMPAQ QVision 200 + 0044h COMPAQ QVision 200 + 0045h COMPAQ QVision 200 + 0046h COMPAQ QVision 200 + 0047h COMPAQ QVision 200 + 0048h COMPAQ QVision 200 + 0049h COMPAQ QVision 200 + 0100h COMPAQ 1024 + 0146h COMPAQ 1024 + 0147h COMPAQ 1024 + 0346h COMPAQ 151FS + 0347h COMPAQ 151FS + 0348h COMPAQ 151FS + 0349h COMPAQ 151FS + 034Ah COMPAQ 151FS + 034Bh COMPAQ 151FS + 0546h COMPAQ 171FS + 0547h COMPAQ 171FS + 0548h COMPAQ 171FS + 0549h COMPAQ 171FS + 0746h COMPAQ PRB + 0747h COMPAQ PRB + 0846h COMPAQ PRA + 0847h COMPAQ PRA + 0848h COMPAQ PRA + 0849h COMPAQ PRA + 084Ah COMPAQ PRA + 084Bh COMPAQ PRA + 084Ch COMPAQ PRA + 084Dh COMPAQ PRA + 0946h COMPAQ PRB + 0947h COMPAQ PRB + 0948h COMPAQ PRB + 0949h COMPAQ PRB + 0A46h COMPAQ PRA + 0A47h COMPAQ PRA + 0A48h COMPAQ PRA + 0A49h COMPAQ PRA + 0A4Ah COMPAQ PRA + 0A4Bh COMPAQ PRA + 0A4Ch COMPAQ PRA + 0A4Dh COMPAQ PRA + 0D46h COMPAQ 140 + 0D47h COMPAQ 140 + 0D48h COMPAQ 140 + 0D49h COMPAQ 140 + 0D4Ah COMPAQ 140 + 0D4Bh COMPAQ 140 + 0D4Ch COMPAQ 140 + 0D4Dh COMPAQ 140 + 0F46h COMPAQ 150 + 0F47h COMPAQ 150 + 0F48h COMPAQ 150 + 0F49h COMPAQ 150 + 0F4Ah COMPAQ 150 + 0F4Bh COMPAQ 150 + 0F4Ch COMPAQ 150 + 0F4Dh COMPAQ 150 +SeeAlso: #00136,#00141,#00143 + +(Table 00143) +Values for "CTX" monitor EDID: + 1451h CTX 1451 + 1551h CTX 1551 + 1562h CTX 1562 + 1565h CTX 1565 + 1569h CTX 1569S 15-inch + 1765h CTX 1765 + 1785h CTX 1785 XE + 2085h CTX 2085 + 2185h CTX 2185 +SeeAlso: #00136,#00142,#00144 + +(Table 00144) +Values for Digital Equipment Corporation monitor EDID: + 06FAh Digital 21" Color (FR-PCXAV-WZ) + 073Ah Digital 17" Color (FR-PCXAV-YZ) + BA08h Digital 15" Color Monitor (FR-PCXBV-E*) + DA08h Digital 17" Color Monitor (FR-PCXBV-F*) +SeeAlso: #00136,#00143,#00145 + +(Table 00145) +Values for Dell monitor EDID: + 139Ah Dell Ultrascan 14XE + 139Bh Dell Ultrascan 14XE + 139Ch Dell Ultrascan 14XE + 139Dh Dell Ultrascan 14XE + 2210h Dell Ultrascan V17X + 2211h Dell Ultrascan V17X + 2212h Dell Ultrascan V17X + 2213h Dell Ultrascan V17X + 2214h Dell Ultrascan 21TE + 2215h Dell Ultrascan 21TE + 2216h Dell Ultrascan 21TE + 2217h Dell Ultrascan 21TE + 3024h Dell VS17X + 3025h Dell VS17X + 3026h Dell VS17X + 3027h Dell VS17X + 4273h Dell VS15X +SeeAlso: #00136,#00144,#00146 + +(Table 00146) +Values for Delta Electronics monitor EDID: + 0456h Delta DA-456 + 1565h Delta DA-1565 + 1765h Delta DA-1765 +SeeAlso: #00136,#00145,#00147 + +(Table 00147) +Values for Daewoo monitor EDID: + 1423h Daewoo CMC-1423B1 + 1427h Daewoo CMC-1427X1 + 1502h Daewoo CMC-1502B1 + 1505h Daewoo CMC-1505X + 1507h Daewoo CMC-1507X1 + 1703h Daewoo CMC-1703B + 5133h Daewoo CMC-1511B + 7044h Daewoo CMC-1704C +SeeAlso: #00136,#00146,#00148 + +(Table 00148) +Values for ELITEGROUP Computer Systems monitor EDID: + 0001h ECS VERTOS 1401 + 0002h ECS VERTOS 1501 + 0003h ECS VERTOS 1502 + 0004h ECS VERTOS 1503 + 0005h ECS VERTOS 1700 + 0006h ECS VERTOS 1701 + 0007h ECS VERTOS 1700 + 0008h ECS VERTOS 2101 + 0009h ECS VERTOS 2102 +SeeAlso: #00136,#00147,#00149 + +(Table 00149) +Values for EIZO monitor EDID: + 0200h EIZO FlexScan F351 + 0201h EIZO FlexScan F553 + 0202h EIZO FlexScan F563 + 0203h EIZO FlexScan F764 + 0204h EIZO FlexScan F784 + 0206h EIZO FlexScan 6600 + 0300h EIZO FlexScan 6500 + 0302h EIZO 9060S + 0303h EIZO 9065S + 0305h EIZO FlexScan T563 + 0306h EIZO 9070S + 0307h EIZO 9080i + 0308h EIZO 9400i + 0309h EIZO 9500 + 030Ah EIZO FlexScan F340iW + 030Ch EIZO FlexScan F552 + 030Dh EIZO FlexScan F560iW + 030Fh EIZO FlexScan F760iW + 0310h EIZO FlexScan F780iW + 0311h EIZO FlexScan T560i + 0312h EIZO FlexScan T660i + 0313h EIZO FlexScan T562 + 0314h EIZO FlexScan T662 + 038Ch EIZO FlexScan F550iW +SeeAlso: #00136,#00148,#00150 + +(Table 00150) +Values for Hyundai monitor EDID: + 0B42h Hyundai Deluxscan 21 + 12F0h Hyundai Deluxscan 14S + 16D8h Hyundai Deluxscan 15B + 16E8h Hyundai Deluxscan 15G + 16EEh Hyundai Delucscan 15G+ + 1E02h Hyundai Deluxscan 17 Pro + 1EB8h Hyundai Deluxscan 17B + 1EBEh Hyundai Deluxscan 17B+ + 5864h Hyundai DeluxScan 15 Pro + B81Eh Hyundai DeluxScan 17 +SeeAlso: #00136,#00149,#00151 + +(Table 00151) +Values for Hitachi monitor EDID: + 1717h Hitachi Accuvue GX17L + 1727h Hitachi HM1764 + 1827h Hitachi HM1782 + 2147h Hitachi HM4721 + 2149h Hitachi HM4921 + 4020h Hitachi HM4020 + 4021h Hitachi HM4021 + 4711h Hitachi Accuvue UX4721 + 4810h Hitachi Accuvue GX20 + 4811h Hitachi Accuvue GX21 + 4820h Hitachi HM4820 + 4821h Hitachi HM4821 + 4830h Hitachi Accuvue GX20H + 4911h Hitachi Accuvue UX4921 + 6421h Hitachi HM6421 + 6811h Hitachi Accuvue UX6821 + 6821h Hitachi HM6821 +SeeAlso: #00136,#00150,#00152 + +(Table 00152) +Values for Hansol Electronics monitor EDID: + 0579 Hansol Electronics Mazellan14px + 057A Hansol Electronics Mazellan400A + 05DD Hansol Electronics Mazellan15ax + A605 Hansol Electronics Mazellan17px +SeeAlso: #00136,#00151,#00153 + +(Table 00153) +Values for Hitachi, Ltd. monitor EDID: + AB6Fh CM-1711M + ABC2h CM-2112M + ABC7h CM-2111M + ABCCh CM-2110M + ABE0h Hitachi, Ltd CM802 + ABE2h Hitachi, Ltd CM801 + ABE3h Hitachi, Ltd CM800 + ABEAh Hitachi, Ltd CM803 + ABF4h Hitachi, Ltd CM701 + AFC8h Hitachi, Ltd CM500 + AFD2h Hitachi, Ltd CM600 + AFD7h Hitachi, Ltd CM611 +SeeAlso: #00136,#00152,#00154 + +(Table 00154) +Values for Hewlett-Packard monitor EDID: + 0AF0h HP D2800A Ultra VGA 1600 21" + 0AF6h HP D2806A Ergo Ultra VGA 15" + 0AF8h HP D2808 1024 Low Emission + 0AFFh HP D2815A 1024 Low Emission 14" + 0F11h HP D3857A Multi Media 15" + 0F12h HP D3858A Multi Media 14" +SeeAlso: #00136,#00151,#00155 + +(Table 00155) +Values for IBM monitor EDID: + 198Eh IBM G41 + 198Fh IBM G50 + 1990h IBM G70 + 1991h IBM G200 + 1999h IBM P50 + 199Ah IBM P70 + 199Bh IBM P200 + 1BB7h IBM 7095 + 1BB9h IBM 7097 + 2112h IBM 2112 + 2113h IBM 2113 + 2114h IBM 2114 + 2115h IBM 2115 + 2117h IBM 2117 + 2215h IBM 2215 + 2238h IBM 2238 + 2248h IBM 2248 + 2264h IBM 2264 + 2535h IBM 9525-0X1 + 26ACh IBM Aptiva 9900 + 27ADh IBM Aptiva 9901 + 6312h IBM 6312 + 6314h IBM 6314 + 6315h IBM 6315 + 6317h IBM 6317 + 6319h IBM 6319 + 6321h IBM 6321 + 6322h IBM 6322 + 6324h IBM 6324 + 6325h IBM 6325 + 6327h IBM 6327 + 8504h IBM 8504 + 8511h IBM 8511 + 8512h IBM 8512 + 8513h IBM 8513 + 8514h IBM 8514 + 8515h IBM 8515 + 8517h IBM 8517 + 8518h IBM 8518 + 9504h IBM 9504 + 9515h IBM 9515 + 9517h IBM 9517 + 9518h IBM 9518 + 9521h IBM 9521 + 9524h IBM 9524 + 9525h IBM 9525 + 9527h IBM 9527 +SeeAlso: #00136,#00154,#00156 + +(Table 00156) +Values for Fujitsu ICL monitor EDID: + 0100h Fujitsu ICL ErgoPro 211v + 0200h Fujitsu ICL ErgoPro 171p + 0400h Fujitsu ICL ErgoPro 171v + 0700h Fujitsu ICL ErgoPro 151p + 0800h Fujitsu ICL ErgoPro 151p AutoBrite + 0A00h Fujitsu ICL ErgoPro 151v + 0B00h Fujitsu ICL ErgoPro 141v + 0D00h Fujitsu ICL ErgoPro 141p + 0F00h Fujitsu ICL ErgoPro 152v + 1400h Fujitsu ICL ErgoPro 142v + 1600h Fujitsu ICL ErgoPro e153 + 1900h Fujitsu ICL ErgoPro x173 + 1A00h Fujitsu ICL ErgoPro x173a + 1C00h Fujitsu ICL ErgoPro x152 + 1D00h Fujitsu ICL ErgoPro e173 + 2200h FUJITSU ErgoPro e154 + 2400h FUJITSU ErgoPro x174 +SeeAlso: #00136,#00155,#00157 + +(Table 00157) +Values for Idek Iiyama North America monitor EDID: + 1700h Iiyama Vision Master MF-8617 +SeeAlso: #00136,#00156,#00158 + +(Table 00158) +Values for LG Electronics monitor EDID: + 36B4h LG StudioWorks 44m + 36B9h LG StudioWorks 44i + 3AA0h LG 1505s + 3AA2h LG StudioWorks 56m + 3AAFh LG StudioWorks 56T 15-inch + 3AB0h LG StudioWorks 5D + 3AB6h LG StudioWorks 5D + 426Ch LG StudioWorks 78i + 426Dh LG StudioWorks 78T + 426Eh LG StudioWorks 76i + 4273h LG StudioWorks 76m + 4274h LG StudioWorks 78m + 4277h LG StudioWorks 74m + 4278h LG StudioWorks 74i + 427Eh LG StudioWorks 7D + 427Fh LG StudioWorks 78D + 4280h LG StudioWorks 78DT + 4281h LG StudioWorks 7DT + 4284h LG StudioWorks 76T + 42CFh LG 1725s + 4E21h LG StudioWorks 20i +SeeAlso: #00136,#00157,#00159 + +(Table 00159) +Values for MAG monitor EDID: + 5620h DX1595 + 5624h DX15T + 5626h DX1795 +SeeAlso: #00136,#00158,#00160 + +(Table 00160) +Values for Mitsubishi monitor EDID: + 0040h Mitsubishi Diamond Pro 21TX (THN-9105) + 2040h Mitsubishi Diamond Scan 20H (FR-8905) + 2040h Mitsubishi Diamond Pro 20X (FR-8905B) + 6140h Mitsubishi Diamond Scan 17HX (FFF8705) + 8040h Mitsubishi Diamond Pro 15H (SD-57xxC) + 4040h Mitsubishi Diamond Pro 17TX (TFG-8705) + 408Fh Mitsubishi Diamond Scan 15VX (SD58xx) + 40C0h Mitsubishi Diamond Pro 87TXM (TFM8705) +SeeAlso: #00136,#00159,#00161 + +(Table 00161) +Values for Miro monitor EDID: + 0721h PROOFSCREEN miroC21107 + 6815h miroD1568 + 6817h PROOFSCREEN miroC1768 + 6917h miroD1769 + 8217h PROOFSCREEN miroC1782 + 8520h PROOFSCREEN miroC2085 E + 8521h PROOFSCREEN miroC2185 + 9321h PROOFSCREEN miroC2193 +SeeAlso: #00136,#00160,#00162 + +(Table 00162) +Values for Nanao monitor EDID: + 0000h NANAO USA FlexScan T2-20 + 0400h NANAO USA F2-15 + 0401h NANAO USA F2-17 + 0402h NANAO USA F2-17EX + 0403h NANAO USA F2-21 + 0404h NANAO USA FX2-21 + 0405h NANAO USA FlexScan T2-17TS + 0406h NANAO FlexScan 6600 + 0502h NANAO 9060S + 0503h NANAO 9065S + 0506h NANAO 9070U + 0507h NANAO 9080i + 0508h NANAO 9400i + 0509h NANAO 9500 + 050Ah NANAO FlexScan F340iW + 050Bh NANAO FlexScan F550i + 050Ch NANAO FlexScan F550iW + 050Dh NANAO FlexScan F560iW + 050Eh NANAO FlexScan F750i + 050Fh NANAO FlexScan F760iW + 0510h NANAO FlexScan F780iW + 0511h NANAO FlexScan T560i + 0512h NANAO FlexScan T660i + 0513h NANAO USA FlexScan T2-17 + 0514h NANAO USA FlexScan T2-20 + 0580h NANAO USA FlexScan 6300 + 0800h NANAO FlexScan 33F + 0802h NANAO FlexScan 88F + 0805h NANAO FlexScan 54T + 0882h NANAO FlexScan 52F + 0900h NANAO FlexScan 6500 + 0902h NANAO 9060S + 0906h NANAO 9070U + 0907h NANAO 9080i + 090Ah NANAO FlexScan F347 + 090Bh NANAO FlexScan F550i + 090Ch NANAO FlexScan F557 + 090Fh NANAO FlexScan 77F + 0910h NANAO FlexScan F780iJ + 0911h NANAO FlexScan T560iJ + 0912h NANAO FlexScan T660iJ + 0913h NANAO FlexScan 56T + 0914h NANAO FlexScan 68T + 098Ah NANAO FlexScan F347II + 098Ch NANAO FlexScan 55F + 098Fh NANAO FlexScan 76F + 0991h NANAO FlexScan T567 + 0993h NANAO FlexScan 53T +SeeAlso: #00136,#00161,#00163 + +(Table 00163) +Values for NEC monitor EDID: + 37FAh NEC MultiSync XV14 + 37FBh NEC MultiSync XV14 + 3A66h NEC MultiSync C400 + 3C00h NEC MultiSync XE15 + 3C0Ah NEC MultiSync XP15 + 3C14h NEC MultiSync XV15 + 3C1Eh NEC MultiSync XE15 + 3D5Eh NEC MultiSync XV15+ + 3D68h NEC MultiSync M500 + 3E4Eh NEC MultiSync C500 + 43A8h NEC MultiSync XE17 + 43B2h NEC MultiSync XE17 + 43BCh NEC MultiSync XV17 + 4416h NEC MultiSync XP17 + 533Eh NEC MultiSync XE21 + 53B6h NEC MultiSync XP21 +SeeAlso: #00136,#00162,#00164 + +(Table 00164) +Values for Nokia monitor EDID: + 008Dh NOKIA 449M + 0098h NOKIA 449X + 00A3h NOKIA 447KC + 00A9h NOKIA 447XI + 00ABh NOKIA 447KA + 00ADh NOKIA 447M + 00B7h NOKIA 447W + 00B8h NOKIA 447X + 00BBh NOKIA 447XAV + 00BCh NOKIA 447K + 00D2h NOKIA 445R +SeeAlso: #00136,#00163,#00165 + +(Table 00165) +Values for OptiQuest monitor EDID: + 3138h OPTIQUEST VA656 + 3141h OPTIQUEST 14ES + 3232h OPTIQUEST 1562A-2 + 3233h OPTIQUEST 1769DC + 3234h OPTIQUEST 1000S-2 + 3332h OPTIQUEST V655 + 3333h OPTIQUEST V775 + 3432h OPTIQUEST V650 + 3832h OPTIQUEST V665 + 4637h OPTIQUEST 1769DC +SeeAlso: #00136,#00164,#00166 + +(Table 00166) +Values for Princeton Graphics monitor EDID: + 003Bh Princeton EO15 + 003Dh Princeton EO17 +SeeAlso: #00136,#00165,#00167 + +(Table 00167) +Values for Philips monitor EDID: + 0200h Philips CM0200 (15C) + 0500h Philips CM0500 (20C) + 0700h Philips CM0700 (20T) + 0800h Philips CM0800 (15B) + 1200h Philips CM1200 (15A) + 1800h Philips CM1800 (15A) + 2000h Philips CM0200 (14B) + 2600h Philips 17TCM26 + 2800h Philips 17BCM28 + 3800h Philips 17ACM38 + 5600h Philips CM5600 (20B) + 700Bh Philips CM0700 (21B) + 8000h Philips CM0800 (14A) +SeeAlso: #00136,#00166,#00168 + +(Table 00168) +Values for Panasonic monitor EDID: + 1604h Panasonic TX-D2151W-ES + 1610h Panasonic TX-D2151NM +SeeAlso: #00136,#00167,#00169 + +(Table 00169) +Values for Samsung monitor EDID: + 0000h Samsung SyncMaster 3Ne + 0100h Samsung SyncMaster 4S + 1530h Samsung 15GLsi + 4610h Samsung SyncMaster 21GLs + 4690h Samsung SyncMaster 20GLsi + 4D50h Samsung SyncMaster 15GLe + 4D51h Samsung SyncMaster 15GLi + 4D52h Samsung SyncMaster 15M + 4D70h Samsung SyncMaster 17GLi + 4D71h Samsung SyncMaster 17GLsi + 4D72h Samsung SyncMaster 6Ne + 4D73h Samsung 17GLi + 4D74h Samsung 17GLsi + 5450h Samsung SyncMaster 15Me + 6D20h Samsung SyncMaster 15GLe +SeeAlso: #00136,#00168,#00170 + +(Table 00170) +Values for Samtron monitor EDID: + 1428h Samtron 428PT/PTL + 1528h Samtron SC-528TXL + 1529h Samtron SC-528UXL + 1530h Samtron SC-528MXLJ + 4690h Samtron SC-208DXL+ + 4D70h Samtron SC-728FXL + 4D71h Samtron SC-726GXL + 5451h Samtron SC-528MDL +SeeAlso: #00136,#00169,#00171 + +(Table 00171) +Values for Tatung monitor EDID: + 1F65h Intelliscan TM651x series 15" + 1F67h Intelliscan TM671x series 17" + 2F44h Intelliscan TM442x series 14" + 2F45h Intelliscan TM452x series 15" + 434Dh Tatung CM-17MC + 4855h Tatung CM-14UH +SeeAlso: #00136,#00170,#00172 + +(Table 00172) +Values for Royal Information Company monitor EDID: + 061Ch TRL/RIC DL-1564 + 0622h TRL/RIC DH-1570 +SeeAlso: #00136,#00171,#00173 + +(Table 00173) +Values for ViewSonic monitor EDID: + 0C00h ViewSonic 17GS + 0C0Fh ViewSonic 17PS + 0C1Fh ViewSonic 17GA + 1600h ViewSonic 21PS-2 + 2601h ViewSonic 15GS + 2600h ViewSonic 15GS-2 + 3141h ViewSonic 14ES + 3142h ViewSonic 14ES + 3143h ViewSonic 14ES + 3145h ViewSonic 15GS-3 + 3252h ViewSonic 21PS-2 + 3253h ViewSonic 21PS-2 + 334Bh ViewSonic 17GS-2 + 334Ch ViewSonic 17GS-2 + 3351h ViewSonic PT810 + 344Bh ViewSonic 17PS-2 + 344Ch ViewSonic 17PS-2 + 3451h ViewSonic PT810-2 + 354Dh ViewSonic GT800 + 354Eh ViewSonic GT800 + 3550h ViewSonic GT800 + 3644h ViewSonic 15GA + 3646h ViewSonic 15GA + 3648h ViewSonic 15GA + 364Ah ViewSonic PT770 + 364Bh ViewSonic PT770 + 364Ch ViewSonic PT770 + 3744h ViewSonic 15G-2 + 3746h ViewSonic 15G-2 + 3748h ViewSonic 15G-2 + 374Bh ViewSonic 17GA + 374Ch ViewSonic 17GA + 3844h ViewSonic 15ES-2 + 3846h ViewSonic 15ES-2 + 3848h ViewSonic 15ES-2 + 384Ah ViewSonic 17EA + 384Bh ViewSonic 17EA + 384Ch ViewSonic 17EA + 3944h ViewSonic 15GS-2 + 3946h ViewSonic 15GS-2 + 3948h ViewSonic 15GS-2 + 394Ah ViewSonic 17GS-2 + 394Bh ViewSonic 17GS-2 + 394Ch ViewSonic 17GS-2 + 424Ah ViewSonic GT770 + 424Bh ViewSonic GT770 + 424Ch ViewSonic GT770 + 434Ah ViewSonic 17PS-2 + 434Bh ViewSonic 17PS-2 + 434Ch ViewSonic 17PS-2 + 4439h ViewSonic 15GS-2 + 444Ah ViewSonic 17GA-2 + 4637h ViewSonic 1769DC + 4745h ViewSonic G653 (VCDTS21444-2E) +SeeAlso: #00136,#00172 +--------V-104F15BL02------------------------- +INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF + AX = 4F15h + BL = 02h + ??? +Return: AL = 4Fh if function supported + AH = status + 00h successful + ??? + 01h failed +SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=01h +--------V-104F16----------------------------- +INT 10 - VESA VBE/GC (Graphics System Configuration) - API + AX = 4F16h + BL = function + 00h installation check / get capabilities + other registers vary by function +Return: varies by function +--------V-104F17----------------------------- +INT 10 - VESA VBE/AF (Accelerator Functions) - API + AX = 4F17h + BL = function + 00h installation check / get capabilities + other registers vary by function +Return: AL = 4Fh if function supported + AH = status + 00h successful + 01h failed + 02h hardware does not support function + 03h function not available in current video mode + else reserved for future error codes + other vary by function +Notes: the accelerator function code should be given a 32-bit protected + mode stack which has at least 1024 bytes available for use by the + VBE/AF code + when called, the I/O permission bitmap must allow access to any + ports which VBE/AF may require for operation +SeeAlso: AX=4F0Bh +--------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 +SeeAlso: AX=4F12h +--------V-104F70----------------------------- +INT 10 - Avance Logic - GET ADAPTER INFORMATION + AX = 4F70h +Return: AX = 004Fh if successful + BL = board information (see #00174) + BH = board type??? + 00h on ALG2101 + FFh otherwise +SeeAlso: AX=4F00h + +Bitfields for Avance Logic board information: +Bit(s) Description (Table 00174) + 0-1 video RAM size + 00 256K + 01 512K + 10 1M + 11 2M + 2 ??? + 3 slot size??? + =0 8-bit slot + =1 16-bit slot + 4 unused + 5 set on ALG2228/AL2301 + 6-7 unused +--------V-104FDD----------------------------- +INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT + AX = 4FDDh +Return: AX = CS of resident code +Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip +SeeAlso: AX=4FFFh/BX=364Dh"M64VBE",INT 60"M64VBE" +--------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 +--------V-104FFFBX364D----------------------- +INT 10 - ATI M64VBE.COM - UNINSTALL + AX = 4FFFh + BX = 364Dh ('6M') + CX = 5634h ('V4') +Return: AX,DX,DS,ES destroyed +Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip +SeeAlso: AX=4FDDh"M64VBE",INT 60"M64VBE" +--------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 archiver +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 +Note: This function is called with BX=0051h by Japanese versions of + MS-DOS/PC DOS/DR DOS IO.SYS/IBMBIO.COM at initialization time. +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 +Return: nothing +Program: SCROLOCK is a utility supplied with System Enhancement Associates' + ARC file archiver +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"SYSTEM DATA" +--------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 +Return: nothing +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 #00175) 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 00175) + 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 +----------105555BXAAAA----------------------- +INT 10 - LIR - SET CONFIGURATION + AX = 5555h + BX = AAAAh + CL = new configuration flags (see #04118) + CH > 0 new video adapter configuration (see #04121) + = 0 do not update video adapter configuration + DL = new keyboard layout flags (see #04119) + DH = new alphabet flags (see #04120) +Return: AX = A55Ah if installed +Program: LIR is a DOS/Windows 3.xx codepage support package develoved by + LABAS u.a.b. It supports several screen and printer codepages as + well as various keyboard layouts used in Lithuania. + Download at: ftp://ftp.labas.com/pub/drivers/language/lir422.zip +SeeAlso: AX=5555h/BX=BBBBh,INT 17/AX=5555h/BX=AAAAh + +Bitfields for LIR configuration flags: +Bit(s) Description (Table 04118) + 7 program is active + 6 ??? + 5-3 code page + 2 Lithuanian??? + 1 Russian??? + 0 enable beeps +SeeAlso: #04119 + +Bitfields for LIR keyboard layout flags: +Bit(s) Description (Table 04119) + 7-5 keyboard layout + 100 QWERTY + 010 Lithuanian AZERTY + 001 Lithuanian ergonomic FZVPUJ + 4-3 reserved (0) + 2 Lithuanian keyboard??? + 1 Russian keyboard??? + 0 ??? +SeeAlso: #04118,#04120 + +Bitfields for LIR Alphabet flags: +Bit(s) Description (Table 04120) + 7-3 reserved (0) + 2 Lithuanian alphabetic symbol table??? + 1 Russian alphabetic symbol table??? + 0 reserved (0) +SeeAlso: #04118,#04119,#04121 + +Bitfields for LIR video adapter configuration: +Bit(s) Description (Table 04121) + 7 Hercules Graphics Card (HGC) + 6-5 reserved (0) + 4 VGA + 3 MCGA + 2 EGA + 1 CGA + 0 reserved (0) +Note: multiple bits may be set if more than one video adapter is installed +SeeAlso: #04118 +----------105555BXBBBB----------------------- +INT 10 - LIR - GET CONFIGURATION + AX = 5555h + BX = BBBBh +Return: AX = magic signature A55Ah + BX = version number (BH = major version, BL = minor version), + e.g. BX = 0410h for LIR v4.10, or BX = 0422h for LIR v4.22) + CL = configuration flags (see #04118) + CH = video adapter configuration (see #04121) + DL = keyboard layout flags(see #04119) + DH = alphabet flags (see #04120) +SeeAlso: AX=5555h/BX=AAAAh,INT 17/AX=5555h/BX=BBBBh +--------V-105F00----------------------------- +INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION + AX = 5F00h +Return: AL = 5Fh function supported + BL = chip type (see #00176) + BH = video memory size (see #00177) + CX = miscellaneous information (see #00178) +SeeAlso: AX=5F01h + +Bitfields for Chips&Technologies chip type: +Bit(s) Description (Table 00176) + 7-4 chip type + 0000: 82c451 + 0001: 82c452 / 82c452A + 0010: 82c455 + 0011: 82c453 + 0100: 82c450 + 0101: 82c456 + 0110: 82c457 + 0111: F65520 + 1000: F65530 / F65525 + 1001: F66510 + 1010: ??? + 1011: F64300 "Wingine DGX" + 1100: F65535/F65545 ??? + 1101: F65540 + 1110: ??? + 1111: ??? + 3-0 revision number +SeeAlso: #00177 + +(Table 00177) +Values for Chips&Technologies video memory size: + 00h 256KB + 01h 512KB + 02h 1MB + 03h 2MB +SeeAlso: #00176 + +Bitfields for Chips&Technologies miscellaneous information: +Bit(s) Description (Table 00178) + 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 #00179) +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak" + +(Table 00179) +Values for Chips&Technologies emulation type: + 00h,01h reserved + 02h CGA + 03h MDA + 04h Hercules + 05h EGA + 06h VGA (disable emulation) +--------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 - Chips & Technologies '64300' BIOS - SET CLOCK + AX = 5F02h + BH = what to set + 02h dot clock + BL = speed in MHz (12-99) + 03h memory clock + BL = speed in MHz (12-99) + FFh default dot and memory clocks +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F00h"Chips",AX=5F03h"64300",AX=5F02h"65530" +--------V-105F02----------------------------- +INT 10 - Chips & Technologies '65530' BIOS - SET CLOCK + AX = 5F02h + BH = what to set + 02h dot clock + BL = new clock speed (see #00180) + 03h memory clock + BL = new clock speed (see #00180) + 04h set power-down register + BL = new value for power-down register (bits 3-0 only) + 06h (404 clock chip) set control register + BL = new vlaue for control register (bits 5-0 only) + 06h (404A/B/B-ES clock chips) set control register PWRDN1 + BL = new value for control register + 07h (404A/B/B-ES clock chips) set control register PWRDN1 + BL = new value for control register + FFh default dot and memory clocks +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F01h,AX=5F02h"64300",AX=5FA0h,#00184 + +(Table 00180) +Values for C&T '65530' BIOS clock speed: + 00h 12 MHz + 01h 14 MHz + 02h 16 MHz + 03h 18 MHz + 04h 20 MHz + 05h 25 MHz + 06h 28 MHz + 07h 32 MHz + 08h 36 MHz + 09h 40 MHz + 0Ah 45 MHz + 0Bh 50 MHz + 0Ch 56 MHz + 0Dh 60 MHz + 0Eh 65 MHz + 0Fh 66 MHz + 15h 34 MHz +--------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-105F03BL00------------------------- +INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE + AX = 5F03h + BL = 00h + CL = display mode + CH = mode (see #00181) +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F02h,AX=5F03h/BL=01h"Chips",AX=5F90h + +Bitfields for Chips&Technologies display mode: +Bit(s) Description (Table 00181) + 1-0 scanlines (00 = 200, 01 = 350, 10 = 400) + 7 persistence (0 reset on next boot, 1 until changed) +--------V-105F03BH00------------------------- +INT 10 - Chips & Technologies '64300' BIOS - GET CLOCK SPEED + AX = 5F03h + BH = 00h (get default memory clock) +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful + BL = clock speed in MHz +SeeAlso: AX=5F02h"64300",AX=5F04h"64300" +--------V-105F03BL01------------------------- +INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE + AX = 5F03h + BL = 01h + CL = emulation mode (see #00181) + CH = permanence + 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"Chips",AX=5F90h +--------V-105F04----------------------------- +INT 10 - Chips & Technologies '64300' BIOS - GET REFRESH RATE + AX = 5F04h + BL = video mode number +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful + BH = available refresh rates (see #00182) + BL = currently-set refresh rate (see #00182) +SeeAlso: AX=5F03h"64300",AX=5F05h"64300" + +Bitfields for C&T 64300 refresh rates: +Bit(s) Description (Table 00182) + 5 75 Hz + 4 72 Hz + 3 70 Hz + 2 60 Hz + 1 56 Hz + 0 interlaced +--------V-105F05----------------------------- +INT 10 - Chips & Technologies '64300' BIOS - SET REFRESH RATE + AX = 5F05h + BL = video mode number + BH = refresh rate to set (see #00182) + bit 7: =0 program new clock and CRT parametes + =1 keep current parameters +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F04h"64300" +--------V-105F06----------------------------- +INT 10 - Chips & Technologies '64300' BIOS - GET XRAM INFORMATION + AX = 5F06h +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful + BL = XRAM presence (00h no XRAM, 01h present) +SeeAlso: AX=5F05h,AX=5F08h +--------V-105F08----------------------------- +INT 10 - Chips & Technologies '64300' BIOS - SET LINEAR MEMORY START ADDRESS + AX = 5F08h + BX = desired start address in megabytes +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F06h +--------V-105F10----------------------------- +INT 10 - Chips & Technologies '64300'/'65530' BIOS - GET LINEAR MEMORY INFO + AX = 5F10h +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful + BX:CX = linear memory base address + DX = virtual screen width offset (bytes) + SI;DI = linear memory size +SeeAlso: AX=5F08h,AX=5FA0h +--------V-105F50----------------------------- +INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS + AX = 5F50h +Return: DL = display status (see #00183) +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 00183) + 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-105F50----------------------------- +INT 10 - Chips & Technologies '65530' BIOS - GET 655xx INFORMATION + AX = 5F50h +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful + BX = width of flat panel in pixels + CX = height of flat panel in pixels + DX = F65520/525/530 status (see #00184) +SeeAlso: AX=5F51h,INT 15/AX=5F31h + +Bitfields for C&T F65520/525/530 status: +Bit(s) Description (Table 00184) + 15-0 reserved + 6-5 type of clock chip + 00 = 404 + 01 = 404A + 10 = 404B ES + 11 = 404B + 4 accelerator enabled + 3 both displays active + 2 video polarity (1 = inverted) + 1 output device + 0 CRT + 1 flat panel (LCD) + 0 reserved +--------V-105F51----------------------------- +INT 10 - Chips & Technologies Extended BIOS - SWITCH DISPLAY DEVICE + AX = 5F51h + BL = new active display + 00h CRT + 01h flat panel (LCD) + 02h both simultaneously + BH = 01h to allow reprogramming the DAC +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F50h,AX=5F53h +--------V-105F53----------------------------- +INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE ACCELERATOR SUPPORT + AX = 5F53h + BL = new support state + 00h disable buffer/accelerator + 01h enable buffer/acelerator +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F50h,AX=5F51h,AX=5F54h +--------V-105F54----------------------------- +INT 10 - Chips & Technologies Extended BIOS - TURN FLAT PANEL ON/OFF + AX = 5F54h + BL = new state + 00h on + 01h off +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F50h,AX=5F51h,AX=5F53h,AX=5F5Ah +--------V-105F5A----------------------------- +INT 10 - Chips & Technologies Extended BIOS - SET FLAT-PANEL VIDEO POLARITY + AX = 5F5Ah + BL = new video polarity + 00h normal + 01h inverted +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F50h,AX=5F54h +--------V-105F5C----------------------------- +INT 10 - Chips & Technologies Extended BIOS - SET VERTICAL COMPENSATION + AX = 5F5Ch + BL = type of vertical compensation to use + 00h no compensation + 01h automatic centering + 02h set centering register + DX = centering value (bits 9-0 only) + 03h non-automatic centering + 04h set vertical line insertion register + DL = vertical line insertion (bits 3-0 only) + 05h set alternate maximum scanline register + DL = alternate maximum scanline (bits 4-0 only) + 06h enable text stretching, type 0 + 07h enable text stretching, type 1 + 08h enable text stretching, type 2 + 09h enable text stretching, type 3 + 0Ah disable text stretching + 0Bh set vertical line replication register + DL = vertical line replication (bits 3-0 only) + 0Ch enable graphics stretching, type 0 + 0Dh enable graphics stretching, type 1 + 0Eh disable vertical graphics stretching + 0Fh disable all horizontal and vertical compensation + 10h enable optimal compensation + 11h disable optimal compensation +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F50h,AX=5F5Eh,AX=5F5Fh +--------V-105F5E----------------------------- +INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE TALL FONT LOADING + AX = 5F5Eh + BL = new state of tall-font loading + 00h enable loading of 8x19/30/32 fonts + 01h disable loading of 8x19/30/32 fonts +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +Note: when tall fonts are enabled, the fonts are stretched by duplicating + scan lines as appropriate to convert an 8x16 font to the proper + height (scan lines 1/9/12 [8x19] or 2-15 [8x30] or all [8x32]) +SeeAlso: AX=5F5Ch,AX=5F5Fh +--------V-105F5F----------------------------- +INT 10 - Chips & Technologies Extended BIOS - HORIZONTAL COMPENSATION + AX = 5F5Fh + BL = horizontal compensation type + 00h none + 01h automatic centering + 02h set centering register + DL = centering value + 03h non-automatic centering + 04h enable text compression (force 8xN fonts) + 05h disable text compression (allow 9xN fonts) + 06h enable auto doubling + 07h disable auto doubling + 0Fh disable all horizontal and vertical compensation +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AX=5F50h,AX=5FA0h +--------V-105F90----------------------------- +INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE + AX = 5F90h + CX = state mask (see #00185) +Return: AL = 5Fh if function supported + BX = number of 64-byte blocks required +SeeAlso: AH=1Ch,AX=5F03h,AX=5F91h,AX=5F92h,AX=5FA0h + +Bitfields for Chips&Technologies state mask: +Bit(s) Description (Table 00185) + 0 video hardware + 1 BIOS data state + 2 DAC state + 15 type (0 all state info, 1 SuperVGA state only) +--------V-105F91----------------------------- +INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE + AX = 5F91h + CX = state mask (see #00185) + ES:BX -> save buffer +Return: AL = 5Fh if function supported + buffer at ES:BX filled +SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA1h +--------V-105F92----------------------------- +INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE + AX = 5F92h + CX = state mask (see #00185) + ES:BX -> previously-filled save buffer +Return: AL = 5Fh if function supported +SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA2h +--------V-105FA0----------------------------- +INT 10 - Chips & Technologies Wingine DGX - GET EXTENDED BIOS SAVE BUFFER SIZE + AX = 5FA0h + CX = state(s) to be saved (see #00186) +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful + BX = number of 64-byte blocks required for state +SeeAlso: AH=1Ch,AX=5FA1h,AX=5FA2h,AX=5F90h,AX=4F04h + +Bitfields for C&T BIOS save/restore state type: +Bit(s) Description (Table 00186) + 0 video hardware + 1 BIOS data + 2 DAC and color registers + 14 (65530 BIOS with AL=A1h only) clear emulation state + 15 extended registers +SeeAlso: #00048,#00085 +--------V-105FA1----------------------------- +INT 10 - Chips & Technologies Wingine DGX - SAVE VIDEO STATE + AX = 5FA1h + CX = state(s) to be saved (see #00186) + ES:BX -> buffer for state information +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful + ES:BX buffer filled +SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA2h,AX=5F91h +--------V-105FA2----------------------------- +INT 10 - Chips & Technologies Wingine DGX - RESTORE VIDEO STATE + AX = 5FA2h + CX = state(s) to be restored (see #00186) + ES:BX -> buffer containing previously-saved state information +Return: AL = 5Fh if function supported + AH = status + 00h unsuccessful + 01h successful +SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA1h,AX=5F92h +--------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 #00200 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 +Return: nothing +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) +Return: nothing +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) +Return: nothing +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) +Return: nothing +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 #00187) + BH = top row of lower section of LCD (0..7) + BL = top row of lower section of the virtual screen (0..24) +Return: nothing +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 00187) + 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-106D74----------------------------- +INT 10 - MTRFONTS - INSTALLATION CHECK + AX = 6D74h ('mt') + DS:0104h = signature "MtRfOnTs" +Return: AX = 4D54h ('MT') if installed + ES = PSP segment of resident code +Program: MTRFONTS is a shareware TSR (part of the MTR package) by Mechon Mamre + which provides Hebrew screen fonts +SeeAlso: INT 16/AX=6D74h"MTRTSR" +--------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 +Return: nothing +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 #00188) + AH = status register information (see #00189) + CL = current value of Extended Control register (HP Ext BIOS, and only + if AL=41h) (see #00190) +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 00188) +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 00189) + 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 #00190) +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 00190) + 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 #00190) +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 #00191) + 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 #00191) +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 00191) +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 #00010 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,#00010,AX=0070h,#00011,AX=007Eh,AX=6F04h,#00083 +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) +Return: nothing +--------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 #00192) +Return: nothing +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 00192) + 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 #00193) + CH = feature bits (see #00194) + DX = video board info + bits 4-15: board ID model (see #00195) + bits 0-3: board ID revision + DI = BCD BIOS version number +SeeAlso: AX=5F01h,AH=FFh"Oak" + +(Table 00193) +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 00194) + 7-6 memory size + 00 = 256K + 01 = 512K + 10 = 1024K + 11 = 2048K + 5 special oscillator present + 4 VGA protect enabled + 0 6845 emulation + +(Table 00195) +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 #00196) + DL = monitor type to get info for + ES:DI -> buffer for mode info (see #00197) +Return: CL = total number of modes fitting criteria + CH = size of each info record +SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h + +(Table 00196) +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 00197) + 00h BYTE mode number (bit 7 set if extended mode) + 01h BYTE mode type (see #00196) + 02h BYTE info bits (see #00198) + 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 00198) + 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 #00199) +Return: nothing +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 00199) + 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 +Return: nothing +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. +Return: nothing +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 +Return: nothing +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 +Return: 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) +Return: nothing +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) +Return: nothing +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 +Return: nothing +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 #00200) +SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER" + +(Table 00200) +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) +Return: nothing +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 #00201) + 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 00201) + 00h DWORD pointer to VESA function dispatch table + 04h DWORD pointer to SOLLEX function dispatch table + 08h DWORD pointer to VESA SuperVGA info (see #00077 at AX=4F00h) + 0Ch DWORD pointer to mode info structure table, consisting of + alternating ResInfo (see #00202) and VESA mode information + (see #00079 at AX=4F01h) blocks, terminated with an FFFFh word + 10h DWORD pointer to font info structure table (see #00203) + 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 00202) + 00h WORD 16-bit mode number + 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA) + 04h WORD display info (see #00206) + 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 #00204) +SeeAlso: #00201 + +Format of SOLLEX SuperVGA font info table [array] entry: +Offset Size Description (Table 00203) + 00h BYTE required font height + 01h BYTE parameter to load text mode font + 02h BYTE parameter to load graphics mode font +SeeAlso: #00201 + +(Table 00204) +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) +SeeAlso: #00201 +--------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,#00732 at INT 1A/AX=B102h +--------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 #00205) +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"SOLLEX",AX=7F01h/BL=01h,AX=7F01h/BL=02h + +Bitfields for SOLLEX SuperVGA adapter request: +Bit(s) Description (Table 00205) + 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 #00205) + DX = display type (see #00206) +SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h,AX=7F01h/BL=02h + +Bitfields for SOLLEX SuperVGA display type: +Bit(s) Description (Table 00206) + 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 #00205) +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"SOLLEX",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 #00207) +Return: AL <> 7Fh if not supported + AL = 7Fh if supported + AH = status + 00h successful + 01h failed +SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h + +Bitfields for SOLLEX SuperVGA display output setting: +Bit(s) Description (Table 00207) + 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 #00207) + CX = displays attached (see #00208) + 01h failed +SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h + +Bitfields for SOLLEX SuperVGA displays attached: +Bit(s) Description (Table 00208) + 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"SOLLEX",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"SOLLEX",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"SOLLEX",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"SOLLEX",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"SOLLEX",AX=7F04h/BL=02h +--------V-107F05----------------------------- +INT 10 - SOLLEX SuperVGA - LOAD REGISTER + AX = 7F05h + ES:DI -> register value table (see #00209) +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 00209) + 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: AX=1100h,AX=1103h +--------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 +----------1086------------------------------- +INT 10 - ??? + AH = 86h +Note: called by Diamond Stealth64 Video STLTH64.VXD +SeeAlso: INT 2F/AX=4021h +--------N-108B------------------------------- +INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE + AH = 8Bh +Return: nothing +SeeAlso: AH=92h,AH=93h +--------N-1090------------------------------- +INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE + AH = 90h +Return: AL = current video mode (see #00010 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 #00210) +Note: types less than 80h do not imply that the current user is on the host +SeeAlso: AH=90h + +(Table 00210) +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 +Return: nothing +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 +Return: nothing +SeeAlso: AH=8Bh,AH=FFh +--------V-109508----------------------------- +INT 10 - VHRBIOS.SYS - ??? + AX = 9508h +Return: ??? +Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" + black&white A4/portrait monitor +SeeAlso: AH=96h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS" +--------V-1096------------------------------- +INT 10 - VHRBIOS.SYS - GET OTHER DISPLAY INFO + AH = 96h +Return: AL = display type (see AH=1Ah) + AH = ??? (possibly related to Micro Channel support) +Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius" + black&white A4/portrait monitor +Desc: returns info on any non-Genius video adapter in the system +SeeAlso: AX=9508h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS" +--------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-10A000----------------------------- +INT 10 - ATI BIOS Extensions - ??? + AX = A000h + CL = ??? (bits 2-0 may not be 000) + CH = ??? (81h or ???) + DX = segment of ??? (if CH=81h) + ??? +Return: AX = ??? +Program: the ATI BIOS extensions are supported by ATI graphics cards containing + the Mach64 or newer graphics chips (Rage Pro, Rage 128, etc.) +SeeAlso: AX=4F10h/BL=00h,AX=A001h +----------10A001----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A001h + CL = ??? flags + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A000h,AX=A002h +----------10A002----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A002h + CL = ??? (bits 2-0 may not be 000) + CH = ??? (81h or ???) + DX = segment of ??? (if CH=81h) + ??? +Return: AH = status + 00h successful + 01h failed + ??? +Note: executes AX=A000h, then AX=A001h if A000h was successful +SeeAlso: AX=A000h,AX=A001h +----------10A003----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A003h + BX = ??? + ??? +Return: AH = status (00h successful) + ??? +SeeAlso: AX=A000h,AX=A002h +--------V-10A004----------------------------- +INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE + AX = A004h + ??? +Return: ??? +Desc: configure display parameters +SeeAlso: AX=A01Bh"PhoenixVIEW/LC" +----------10A004----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A004h + BX = video mode??? (0000-00FFh) + DX = ??? (sent to some port [66ECh???] one bit at a time, high to low) + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A000h,AX=A002h +----------10A005----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A005h + CL = ??? flags (bits 0,2, others?) + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A000h,AX=A002h +----------10A006----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A006h + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A000h,AX=A002h +----------10A007----------------------------- +INT 10 - ATI Mach64 BIOS - GET ??? + AX = A007h +Return: AH = 00h (successful) + AL = ??? (00h) + BX = ??? (15A0h in examined BIOS) + DX = segment of BIOS +SeeAlso: AX=A000h,AX=A002h +----------10A008----------------------------- +INT 10 - ATI Mach64 BIOS - GET ??? SIZE + AX = A008h + CL = ??? flags + ??? +Return: AH = 00h (successful) + BX = size of ??? (0046h if CL bit 0 clear on entry) +SeeAlso: AX=A000h,AX=A009h +----------10A009----------------------------- +INT 10 - ATI Mach64 BIOS - GET ??? + AX = A009h + DX:BX -> buffer for ??? + CL = ??? flags + ??? +Return: AH = status + 00h successful + DX:BX buffer filled + 01h failed + ??? +SeeAlso: AX=A000h,AX=A008h +----------10A00A----------------------------- +INT 10 - ATI Mach64 BIOS - GET ??? + AX = A00Ah +Return: AH = 00h (successful) + AL = ??? (01h) + BX = ??? (5938h) + CX = ??? (595Eh) + DX = segment of BIOS +SeeAlso: AX=A000h,AX=A002h +----------10A00B----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A00Bh + BX = ??? + CL = ??? flags + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A000h,AX=A002h +--------p-10A00C----------------------------- +INT 10 - ATI Mach64 BIOS - SET SLEEP MODE + AX = A00Ch + CL = new state + 00h normal operation + 01h standby + 02h suspend + 03h off +Return: AH = status + 00h successful + 01h failed +Note: CL bit 2 affects values written to video card's ports +SeeAlso: AX=A000h,AX=A00Dh,AX=4F00h,AX=4F10h/BL=01h +----------10A00D----------------------------- +INT 10 - ATI Mach64 BIOS - GET SLEEP MODE + AX = A00Dh +Return: AH = 00h (successful) + CL = current power mode + 00h normal operation + 01h standby + 02h suspend + 03h off +SeeAlso: AX=A00Ch,AX=4F10h/BL=02h +SeeAlso: AX=A00Ch,AX=A00Dh"Rage128"AX=4F10h/BL=02h +--------V-10A00D----------------------------- +INT 10 - ATI Rage128 BIOS - GET ??? + AX = A00Dh + BL = subfunction + 00h ??? + 01h ??? + 02h ??? + 03h ??? + DX:DI -> buffer for results + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A000h,AX=A00Dh"Mach64",AX=A015h +----------10A00E----------------------------- +INT 10 - ATI Mach64 BIOS - SET ??? + AX = A00Eh + CL = ??? (00h-03h) +Return: AH = status + 00h successful + 01h failed +Notes: CL zero/nonzero are treated differently + NOP in All-in-Wonder 128 BIOS +SeeAlso: AX=A000h,AX=A00Fh +----------10A00F----------------------------- +INT 10 - ATI Mach64 BIOS - GET ??? + AX = A00Fh +Return: AH = 00h (successful) + CL = ??? (00h-03h, read from PORT 42ECh) +Note: NOP in All-in-Wonder 128 BIOS +SeeAlso: AX=A000h,AX=A00Eh +----------10A010----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A010h + CL = ??? (80h/other) + ??? +Return: AH = status + 00h successful + 01h failed + ??? +Note: NOP in All-in-Wonder 128 BIOS +SeeAlso: AX=A000h,AX=A002h +----------10A011----------------------------- +INT 10 - ATI Mach64 BIOS - GET ??? + AX = A011h +Return: AH = 00h (successful) + BL = ??? (1Fh) + BH = ??? (0Fh) + CL = ??? (00h) + CH = ??? (0Fh) + DX = ??? (00FFh) +Note: NOP in All-in-Wonder 128 BIOS +SeeAlso: AX=A000h,AX=A010h +--------V-10A012----------------------------- +INT 10 - ATI Mach64 BIOS - GET ??? + AX = A012h +Return: AH = 00h (successful) + AL = ??? (00h) + BX = ??? (0000h) + CX = ??? (0000h) + DX = ??? (02ECh) +Note: NOP in All-in-Wonder 128 BIOS +SeeAlso: AX=A000h,AX=A002h +--------V-10A013----------------------------- +INT 10 - ATI Mach64 BIOS - ??? + AX = A013h + ??? +Return: AH = status + 00h successful + 01h failed + ??? +Note: not implemented in examined Mach64 BIOS, always returns AH=01h; NOP in + examined All-in-Wonder 128 BIOS +SeeAlso: AX=A000h,AX=A002h +--------V-10A014----------------------------- +INT 10 - ATI Rage128 BIOS - ??? + AX = A014h + CH = ??? (bits 0,1,4) + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A000h,AX=A015h +--------V-10A015----------------------------- +INT 10 - ATI Rage128 BIOS - GET/SET ??? + AX = A015h + CH = subfunction + 00h get ??? + 01h set ??? + CL = ??? (only bits 0,1 used on All-in-Wonder 128) + other NOP +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A014h,AX=A017h +--------V-10A016----------------------------- +INT 10 - ATI Rage128 BIOS - NOP + AX = A016h +Return: nothing +SeeAlso: AX=A000h,AX=A017h +--------V-10A017----------------------------- +INT 10 - ATI Rage128 BIOS - ??? + AX = A017h + ??? +Return: AH = status + 00h successful + 01h failed + ??? +SeeAlso: AX=A014h,AX=A015h +--------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" +--------U-10AA------------------------------- +INT 10 OU - Player's Tool 3.0 - UNINSTALL + AH = AAh +Return: ??? +Note: this call has been removed in PT 3.996b +Program: Player's Tool is a game cheater by Dmitry Yakunin & Andy Robinson +SeeAlso: AH=ABh,INT 2F/AH=AAh +--------U-10AB------------------------------- +INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK + AH = ABh +Return: BH = FFh + ??? +Note: this call has been removed in PT 3.996b +SeeAlso: AH=AAh,INT 2F/AH=ABh +--------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-10BB------------------------------- +INT 10 U - Doorway - SET BIOS/DIRECT REDIRECTION + AH = BBh + AL = new redirection mode + 00h BIOS (hook and redirect INT 10h,etc.) + 01h DIRECT (scan video memory for changes) +Return: ??? +SeeAlso: INT 16/AH=67h"Doorway" +--------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 +--------!---Section-------------------------- -- cgit v1.2.3-70-g09d2