Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-10 [2023/01/05 04:01] – supprimée - modification externe (Unknown date) 127.0.0.1 | back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-10 [2023/01/05 04:01] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== MSDOS - Interrupt List 10h ====== | ||
+ | |||
+ | ===== CPU-generated (80286+) - COPROCESSOR ERROR ===== | ||
+ | |||
+ | generated by the CPU when the -ERROR pin is asserted by the coprocessor | ||
+ | |||
+ | AT's and clones usually wire the coprocessor to use IRQ13, but not all get it right | ||
+ | |||
+ | SeeAlso: INT 09" | ||
+ | |||
+ | ===== 00xxh - VIDEO - SET VIDEO MODE ===== | ||
+ | |||
+ | < | ||
+ | AH = 00h | ||
+ | AL = mode (see below) | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = video mode flag (Phoenix BIOS) | ||
+ | 20h mode > 7 | ||
+ | 30h modes 0-5 and 7 | ||
+ | 3Fh mode 6 | ||
+ | AL = CRT controller mode byte (Phoenix 386 BIOS v1.10) | ||
+ | </ | ||
+ | |||
+ | 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 | ||
+ | |||
+ | the installation check for Ahead adapters is the signature " | ||
+ | |||
+ | the installation check for ATI adapters is the signature " | ||
+ | * 31h for 18800 | ||
+ | * 32h for 18800-1 | ||
+ | * 33h for 18800-2 | ||
+ | * 34h for 18800-4 | ||
+ | * 35h for 18800-5 | ||
+ | |||
+ | the two bytes at C000h:0040h indicate the adapter type | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | 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 | ||
+ | * bit 0: 70 Hz non-interlaced display | ||
+ | * bit 1: Korean (double-byte) characters | ||
+ | * bit 2: 45 MHz memory clock rather than 40 MHz | ||
+ | * bit 3: zero wait states | ||
+ | * bit 4: paged ROMs | ||
+ | * bit 6: no 8514/A monitor support | ||
+ | * bit 7: HiColor DAC | ||
+ | |||
+ | the installation check for Genoa video adapters is the signature 77h XXh 99h 66h at C000h: | ||
+ | * 00h for Genoa 6200/6300 | ||
+ | * 11h for Genoa 6400/6600 | ||
+ | * 22h for Genoa 6100 | ||
+ | * 33h for Genoa 5100/5200 | ||
+ | * 55h for Genoa 5300/5400 | ||
+ | |||
+ | the installation check for Paradise adapters is the signature " | ||
+ | |||
+ | SeeAlso: AX=0070h, | ||
+ | |||
+ | SeeAlso: INT 62/AX=0001h | ||
+ | |||
+ | Values for video mode: | ||
+ | |||
+ | ^ ^ text /\\ grph ^ text\\ resol | ||
+ | | 00h | T | 40x25 | 8x8 | | ||
+ | | | T | 40x25 | 8x14 | ||
+ | | | T | 40x25 | 8x16 | ||
+ | | | T | 40x25 | 9x16 | ||
+ | | 01h | T | 40x25 | 8x8 | | ||
+ | | | T | 40x25 | 8x14 | ||
+ | | | T | 40x25 | 8x16 | ||
+ | | | T | 40x25 | 9x16 | ||
+ | | 02h | T | 80x25 | 8x8 | | ||
+ | | | T | 80x25 | 8x14 | ||
+ | | | T | 80x25 | 8x16 | ||
+ | | | T | 80x25 | 9x16 | ||
+ | | 03h | T | 80x25 | 8x8 | | ||
+ | | | T | 80x25 | 8x14 | ||
+ | | | T | 80x25 | 8x16 | ||
+ | | | T | 80x25 | 9x16 | ||
+ | | 04h | G | 40x25 | 8x8 | 320x200 | ||
+ | | 05h | G | 40x25 | 8x8 | 320x200 | ||
+ | | | G | 40x25 | 8x8 | 320x200 | ||
+ | | 06h | G | 80x25 | 8x8 | 640x200 | ||
+ | | 07h | T | 80x25 | 9x14 | ||
+ | | | T | 80x25 | 9x16 | ||
+ | | 08h | G | 20x25 | 8x8 | 160x200 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | G | 90x43 | 8x8 | 720x352 | ||
+ | | 09h | G | 40x25 | 8x8 | 320x200 | ||
+ | | 0Ah | G | 80x25 | 8x8 | 640x200 | ||
+ | | 0Bh | | reserved (used internally by EGA BIOS) |||||| | ||
+ | | | G | | ||
+ | | 0Ch | | reserved (used internally by EGA BIOS) |||||| | ||
+ | | 0Dh | G | 40x25 | 8x8 | 320x200 | ||
+ | | 0Eh | G | 80x25 | 8x8 | 640x200 | ||
+ | | 0Fh | G | 80x25 | 8x14 | ||
+ | | 10h | G | 80x25 | 8x14 | ||
+ | | | G | | ||
+ | | 11h | G | 80x30 | 8x16 | ||
+ | | 12h | G | 80x30 | 8x16 | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | | G | | ||
+ | | 13h | G | 40x25 | 8x8 | 320x200 | ||
+ | | 14h | T | 132x25 | ||
+ | | | G | 80x25 | 8x8 | 640x200 | ||
+ | | | G | | ||
+ | | 15h | G | 80x25 | 8x14 | ||
+ | | 16h | G | 80x25 | 8x14 | ||
+ | | | G | | ||
+ | | 17h | G | 80x34 | 8x14 | ||
+ | | | T | 132x25 | ||
+ | | 18h | T | 132x44 | ||
+ | | | T | 132x44 | ||
+ | | | G | 80x34 | 8x14 | ||
+ | | | G | | ||
+ | | 19h | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | 1Ah | T | 132x28 | ||
+ | | | T | 132x28 | ||
+ | | | G | | ||
+ | | 1Bh | G | | ||
+ | | 1Ch | G | | ||
+ | | 1Dh | G | | ||
+ | | 20h | G | | ||
+ | | 21h | T | 132x60 | ||
+ | | | G | 80x43 | 8x8 | 720x348 | ||
+ | | 22h | T | 132x44 | ||
+ | | | T | 132x44 | ||
+ | | | T | 132x44 | ||
+ | | | T | 132x44 | ||
+ | | | T | 132x44 | ||
+ | | | T | 132x43 | ||
+ | | | G | 80x43 | 8x8 | 720x348 | ||
+ | | 23h | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x28 | ||
+ | | | T | 132x28 | ||
+ | | 24h | T | 132x28 | ||
+ | | | T | 132x28 | ||
+ | | | T | 132x28 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | 25h | G | 80x60 | 8x8 | 640x480 | ||
+ | | | G | 80x60 | 8x8 | 640x480 | ||
+ | | | G | | ||
+ | | | G | 80x60 | 8x8 | 640x480 | ||
+ | | | G | 80x60 | 8x8 | 640x480 | ||
+ | | | G | | ||
+ | | 26h | T | 80x60 | 8x8 | | ||
+ | | | T | 80x60 | 8x8 | | ||
+ | | | T | 80x60 | | ||
+ | | | T | 80x60 | | ||
+ | | | G | 80x60 | 8x8 | 640x480 | ||
+ | | | G | 80x60 | 8x8 | 640x480 | ||
+ | | 27h | T | 132x25 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | 28h | T | ??? | ||
+ | | 29h | G | | ||
+ | | | G | 100x37 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 100x37 | ||
+ | | | G | | ||
+ | | 2Ah | T | 100x40 | ||
+ | | | T | 100x40 | ||
+ | | | T | 100x40 | ||
+ | | 2Dh | G | | ||
+ | | | G | | ||
+ | | | G | 80x25 | 8x14 | ||
+ | | 2Eh | G | | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | | G | | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | 2Fh | T | 160x50 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 80x25 | 8x16 | ||
+ | | 30h | G | | ||
+ | | | G | 100x37 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 100x37 | ||
+ | | 32h | T | 80x34 | 8x10 | ||
+ | | 33h | T | 132x44 | ||
+ | | | T | 80x34 | 8x8 | | ||
+ | | 34h | T | 80x66 | 8x8 | | ||
+ | | 36h | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | 37h | G | | ||
+ | | | G | 128x48 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 128x48 | ||
+ | | | T | 132x44 | ||
+ | | 38h | G | | ||
+ | | | G | 128x48 | ||
+ | | | G | | ||
+ | | 3Dh | G | | ||
+ | | | G | 128x64 | ||
+ | | 3Eh | G | | ||
+ | | 40h | G | 80x25 | 8x16 | ||
+ | | | G | 80x25 | 8x16 | ||
+ | | | T | 80x43 | | ||
+ | | | T | 80x43 | | ||
+ | | | T | 80x43 | | ||
+ | | | T | 100x30 | ||
+ | | 41h | G | | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 100x50 | ||
+ | | 42h | G | 80x25 | 8x16 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 80x34 | 9x10 | ||
+ | | | T | 100x60 | ||
+ | | 43h | G | 640x200 of 640x400 viewport | ||
+ | | | T | 80x60 | | ||
+ | | | T | 80x60 | | ||
+ | | | T | 80x60 | | ||
+ | | | T | 80x45 | 9x8 | | ||
+ | | | T | 100x75 | ||
+ | | 44h | | disable VDC and DEB output | ||
+ | | | T | 100x60 | ||
+ | | | T | 100x60 | ||
+ | | | T | 100x60 | ||
+ | | 45h | T | 132x28 | ||
+ | | | T | 132x28 | ||
+ | | 46h | G | 100x40 | ||
+ | | 47h | G | 100x37 | ||
+ | | 48h | G | 80x50 | 8x8 | 640x400 | ||
+ | | 49h | G | 80x30 | 8x16 | ||
+ | | 4Dh | T | 120x25 | ||
+ | | 4Eh | T | 120x43 | ||
+ | | 4Fh | T | 132x25 | ||
+ | | | T | 132x60 | ||
+ | | 50h | G | 80x30 | 8x16 | ||
+ | | | T | 80x30 | 8x16 | ||
+ | | | T | 80x34 | | ||
+ | | | T | 80x43 | | ||
+ | | | G | | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x30 | ||
+ | | 51h | T | 80x30 | 8x16 | ||
+ | | | T | 80x30 | | ||
+ | | | G | 80x34 | 8x14 | ||
+ | | | T | 80x43 | 8x11 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x28 | ||
+ | | | T | 132x50 | ||
+ | | 52h | T | 80x60 | | ||
+ | | | T | 80x60 | 8x8 | | ||
+ | | | G | 94x29 | 8x14 | ||
+ | | | G | 100x75 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x44 | ||
+ | | | T | 132x44 | ||
+ | | | T | 132x60 | ||
+ | | 53h | G | 100x40 | ||
+ | | | G | | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x43 | ||
+ | | | T | 80x60 | | ||
+ | | | G | | ||
+ | | 54h | G | 100x42 | ||
+ | | | G | | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x30 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | 55h | T | 80x66 | 8x8 | | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x43 | ||
+ | | | G | 94x29 | 8x14 | ||
+ | | | G | 128x48 | ||
+ | | | G | | ||
+ | | 56h | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x43 | ||
+ | | | T | 132x60 | ||
+ | | | G | | ||
+ | | 57h | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | | T | 132x25 | ||
+ | | 58h | G | 100x75 | ||
+ | | | G | 100x75 | ||
+ | | | T | 80x33 | 8x14 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | T | 132x30 | ||
+ | | 59h | G | 100x75 | ||
+ | | | G | 100x75 | ||
+ | | | T | 80x66 | 8x8 | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | T | 132x43 | ||
+ | | 5Ah | T | 132x60 | ||
+ | | 5Bh | G | | ||
+ | | | G | | ||
+ | | | T | 80x30 | 8x16 | ||
+ | | | G | 100x75 | ||
+ | | | G | | ||
+ | | 5Ch | G | | ||
+ | | | G | | ||
+ | | | G | 80x25 | 8x16 | ||
+ | | | G | 80x25 | 8x16 | ||
+ | | | G | | ||
+ | | 5Dh | G | | ||
+ | | | G | | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | 5Eh | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 80x25 | 8x16 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 100x75 | ||
+ | | | G | 100x75 | ||
+ | | 5Fh | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 128x48 | ||
+ | | | G | 128x48 | ||
+ | | 60h | G | 80x??? | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 80x25 | 8x16 | ||
+ | | | G | 128x48 | ||
+ | | | T | 132x25 | ||
+ | | 61h | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 80x25 | 8x16 | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | | G | 96x64 | 8x16 | ||
+ | | | T | 132x29 | ||
+ | | 62h | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 80x30 | 8x16 | ||
+ | | | G | 100x75 | ||
+ | | | G | 128x48 | ||
+ | | | T | 132x32 | ||
+ | | 63h | G | | ||
+ | | | G | 100x42 | ||
+ | | | G | 128x48 | ||
+ | | | T | 132x44 | ||
+ | | | G | | ||
+ | | 64h | G | | ||
+ | | | G | 128x48 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | 65h | G | | ||
+ | | | G | 128x48 | ||
+ | | 66h | G | | ||
+ | | | G | | ||
+ | | 67h | G | | ||
+ | | | G | 128x48 | ||
+ | | 69h | G | | ||
+ | | 6Ah | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 100x75 | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | | ||
+ | | | G | 100x42 | ||
+ | | 70h | G | | ||
+ | | | G | 90x28 | 8x14 | ||
+ | | | T | 40x25 | 8x8 | | ||
+ | | | | extended mode set (see AX=0070h) | ||
+ | | 71h | G | 100x35 | ||
+ | | | G | | ||
+ | | | G | 100x75 | ||
+ | | | T | 80x25 | 8x8 | | ||
+ | | 72h | G | | ||
+ | | | T | 80x60 | 8x8 | | ||
+ | | | G | | ||
+ | | 73h | G | 80x60 | 8x8 | 640x480 | ||
+ | | 74h | G | | ||
+ | | | G | 128x48 | ||
+ | | | T | 80x66 | 8x8 | | ||
+ | | 75h | G | 128x48 | ||
+ | | | G | 80x66 | | ||
+ | | | G | | ||
+ | | 76h | G | 128x48 | ||
+ | | | T | 94x29 | 8x14 | ||
+ | | 77h | G | 94x29 | | ||
+ | | | G | | ||
+ | | 78h | G | | ||
+ | | | G | | ||
+ | | | T | 100x75 | ||
+ | | 79h | G | | ||
+ | | | G | 100x75 | ||
+ | | | G | | ||
+ | | 7Ah | G | | ||
+ | | | T | 114x60 | ||
+ | | 7Bh | G | | ||
+ | | | G | 114x60 | ||
+ | | | G | | ||
+ | | 7Ch | G | | ||
+ | | 7Dh | G | | ||
+ | | 7Eh | | special mode set (see AX=007Eh) | ||
+ | | 7Fh | | special function set (see AX=007Fh) | ||
+ | | 82h | T | 80x25 | | ||
+ | | 83h | T | 80x25 | | ||
+ | | 86h | G | | ||
+ | | 88h | G | 90x43 | 8x8 | 720x352 | ||
+ | | C0h | G | | ||
+ | | C4h | | ||
+ | | D0h | G | | ||
+ | |||
+ | <WRAP round info> | ||
+ | [1] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident. | ||
+ | |||
+ | SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h, otherwise to mode 23h, thus selecting the appropriate (monochrome or color) 132x25 character mode. | ||
+ | |||
+ | for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded resident | ||
+ | |||
+ | [2] early XGA boards support 132-column text but do not have this BIOS mode | ||
+ | |||
+ | [3] DESQview intercepts calls to change into these two modes (21h is page 0, 22h is page 1) even if there is no Hercules graphics board installed | ||
+ | |||
+ | [4] ATI BIOS v4-1.00 has a text-scrolling bug in this mode | ||
+ | |||
+ | [5] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h, 40h, or 44h | ||
+ | |||
+ | [6] BIOS text support is broken in this undocumented mode; scrolling moves only about 1/3 of the screen (and does even that portion incorrectly), | ||
+ | </ | ||
+ | |||
+ | ==== 0070h - VIDEO - Everex Micro Enhancer EGA/ | ||
+ | |||
+ | < | ||
+ | AX = 0070h | ||
+ | BL = mode (see below) | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=00h, | ||
+ | |||
+ | Values for video mode: | ||
+ | ^ ^ text\\ graph ^ text\\ resol ^ pixel\\ box ^ pixel\\ resol ^ colors | ||
+ | | 00h | G | ||
+ | | 01h | G | ||
+ | | 02h | G | ||
+ | | 03h | T | ||
+ | | 04h | T | ||
+ | | 05h | T | ||
+ | | 06h | T | ||
+ | | 07h | T | ||
+ | | 08h | T | ||
+ | | 09h | T | ||
+ | | 0Ah | T | ||
+ | | 0Bh | T | ||
+ | | 0Ch | T | ||
+ | | 0Dh | T | ||
+ | | 0Eh | T | ||
+ | | 0Fh | T | ||
+ | | 10h | | reserved | ||
+ | | 11h | G | ||
+ | | 12h | G | ||
+ | | 13h | G | ||
+ | | 14h | G | ||
+ | | 15h | G | ||
+ | | 16h | T | ||
+ | | 18h | T | ||
+ | | 20h | G | ||
+ | | | | | | ||
+ | | 21h | T | ||
+ | | 30h | G | ||
+ | | | | | | ||
+ | | 31h | G | ||
+ | | | | | | ||
+ | | 32h | G | ||
+ | | 40h | T | ||
+ | | 50h | T | ||
+ | | 62h | G | ||
+ | | 70h | G | ||
+ | | 71h | G | ||
+ | | 76h | G | ||
+ | | 77h | G | ||
+ | === 007Eh - 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) | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=00h, | ||
+ | ==== 007Fh - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS ==== | ||
+ | < | ||
+ | AX = 007Fh | ||
+ | BH = function | ||
+ | 00h set VGA operation | ||
+ | 01h set non-VGA operation | ||
+ | color modes (0, | ||
+ | monochrome mode 7 will set non-VGA MDA/ | ||
+ | 02h query mode status | ||
+ | Return: BL = 00h if operating in VGA mode, 01h if non-VGA mode | ||
+ | CH = total video RAM size in 64k byte units | ||
+ | CL = video RAM used by the current mode | ||
+ | 03h lock current mode | ||
+ | allows current mode (VGA or non-VGA) to survive re-boot | ||
+ | 04h enter CGA mode (AT&T VDC600 only) | ||
+ | 05h enter MDA mode (AT&T VDC600 only) | ||
+ | 0Ah, | ||
+ | (port 03CEh indices 0Ah, | ||
+ | BL = value to set in the paradise register | ||
+ | 1Ah, | ||
+ | (port 03CEh indices 0Ah, | ||
+ | Return: BL = value of the paradise register | ||
+ | BH = 7Fh if successful | ||
+ | Return: AL = 7Fh if successful (AT&T VDC600) | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=007Eh | ||
+ | |||
+ | ===== 01h - VIDEO - SET TEXT-MODE CURSOR SHAPE ===== | ||
+ | < | ||
+ | AH = 01h | ||
+ | CH = bit 7 should be zero | ||
+ | bits 6,5 cursor blink | ||
+ | | ||
+ | | ||
+ | bits 4-0 top scan line containing cursor | ||
+ | CL = bottom scan line containing cursor (bits 0-4) | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info> | ||
+ | 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 abovve should call INT 10/AX=1130h or read 0040h:0085h first to determine the current font height | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | 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, | ||
+ | |||
+ | ===== 02h - VIDEO - SET CURSOR POSITION ===== | ||
+ | < | ||
+ | AH = 02h | ||
+ | BH = page number | ||
+ | 0-3 in modes 2&3 | ||
+ | 0-7 in modes 0&1 | ||
+ | 0 in graphics modes | ||
+ | DH = row (00h is top) | ||
+ | DL = column (00h is left) | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=03h, | ||
+ | |||
+ | ===== 03h - 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) | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info> | ||
+ | a separate cursor is maintained for each of up to 8 display pages many ROM BIOSes incorrectly return the default size for a color display (start 06h, end 07h) when a monochrome display is attached | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=01h, | ||
+ | |||
+ | ===== 04h - VIDEO - READ LIGHT PEN POSITION (except VGA) ===== | ||
+ | < | ||
+ | AH = 04h | ||
+ | </ | ||
+ | < | ||
+ | Return: AH = light pen trigger flag | ||
+ | 00h not down/ | ||
+ | 01h down/ | ||
+ | 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 | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | 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 | ||
+ | </ | ||
+ | ===== 05h - VIDEO - SELECT ACTIVE DISPLAY PAGE ===== | ||
+ | ==== 050xh - VIDEO - SELECT ACTIVE DISPLAY PAGE ==== | ||
+ | < | ||
+ | AH = 05h | ||
+ | AL = new page number (00h to number of pages - 1) (see AH=00h) | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | to determine whether the requested page actually exists, use AH=0Fh to query the current page after making this call | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=0Fh | ||
+ | ==== 058xh - VIDEO - MANIPULATE CRT/CPU PAGE REGISTERS (PCjr) ==== | ||
+ | < | ||
+ | AH = 05h | ||
+ | AL = subfunction | ||
+ | 80h read CRT and CPU page registers | ||
+ | Return: BH = CRT page register | ||
+ | BL = CPU page register | ||
+ | 81h set CPU page register | ||
+ | BL = CPU page | ||
+ | 82h set CRT page register | ||
+ | BH = CRT page | ||
+ | 83h set both CPU and CRT page registers | ||
+ | BL = CPU page | ||
+ | BH = CRT page | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | 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 | ||
+ | </ | ||
+ | === 050xh - VIDEO - GRAPHICS BITMAP BUFFER (Corona/ | ||
+ | < | ||
+ | AH = 05h | ||
+ | AL = | ||
+ | 00h set address of graphics bitmap buffer (video modes 60h,61h) | ||
+ | BX = segment of buffer | ||
+ | 0Fh get address of graphics bitmap buffer (video modes 60h,61h) | ||
+ | Return: DX = segment of graphics bitmap buffer | ||
+ | </ | ||
+ | |||
+ | ===== 06h - 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' | ||
+ | DH,DL = row,column of window' | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | affects only the currently active page (see AH=05h) | ||
+ | </ | ||
+ | <WRAP round important> | ||
+ | some implementations have a bug which destroys BP | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=07h, | ||
+ | |||
+ | ===== 07h - 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' | ||
+ | DH,DL = row,column of window' | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | affects only the currently active page (see AH=05h) | ||
+ | </ | ||
+ | <WRAP round important> | ||
+ | some implementations have a bug which destroys BP | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=06h, | ||
+ | |||
+ | ===== 08h - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION ===== | ||
+ | < | ||
+ | AH = 08h | ||
+ | BH = page number (00h to number of pages - 1) (see AH=00h) | ||
+ | </ | ||
+ | < | ||
+ | Return: AH = attribute | ||
+ | bit 7: blink | ||
+ | bits 6-4: background color | ||
+ | 000 black | ||
+ | 001 blue | ||
+ | 010 green | ||
+ | 011 cyan | ||
+ | 100 red | ||
+ | 101 magenta | ||
+ | 110 brown | ||
+ | 111 white | ||
+ | bits 3-0: foreground color | ||
+ | 0000 black 1000 dark gray | ||
+ | 0001 blue 1001 light blue | ||
+ | 0010 green 1010 light green | ||
+ | 0011 cyan 1011 light cyan | ||
+ | 0100 red 1100 light red | ||
+ | 0101 magenta 1101 light magenta | ||
+ | 0110 brown 1110 yellow | ||
+ | 0111 light gray 1111 white | ||
+ | AL = character | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=09h, | ||
+ | |||
+ | ===== 09h - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION ===== | ||
+ | < | ||
+ | AH = 09h | ||
+ | AL = character to display | ||
+ | BH = page number (00h to number of pages - 1) (see AH=00h) | ||
+ | BL = attribute (text mode) or color (graphics mode) | ||
+ | if bit 7 set in graphics mode, character is xor'ed onto screen | ||
+ | CX = number of times to write character | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | all characters are displayed, including CR, LF, and BS | ||
+ | |||
+ | replication count in CX may produce an unpredictable result in graphics modes if it is greater than the number of positions remaining in the current row | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=08h, | ||
+ | |||
+ | |||
+ | ===== 0Ah - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION ===== | ||
+ | < | ||
+ | AH = 0Ah | ||
+ | AL = character to display | ||
+ | BH = page number (00h to number of pages - 1) (see AH=00h) | ||
+ | BL = attribute (PCjr only) or color (graphics mode) | ||
+ | if bit 7 set in graphics mode, character is xor'ed onto screen | ||
+ | CX = number of times to write character | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | all characters are displayed, including CR, LF, and BS | ||
+ | |||
+ | replication count in CX may produce an unpredictable result in graphics modes if it is greater than the number of positions remaining in the current row | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=08h, | ||
+ | |||
+ | ===== 0Bh - VIDEO - SET BACKGROUND/ | ||
+ | < | ||
+ | AH = 0Bh | ||
+ | BH = 00h | ||
+ | BL = background/ | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=0Bh/ | ||
+ | |||
+ | ===== 0Bh - VIDEO - SET PALETTE ===== | ||
+ | < | ||
+ | AH = 0BH | ||
+ | BH = 01h | ||
+ | BL = palette ID | ||
+ | 00h background, green, red, and brown/ | ||
+ | 01h background, cyan, magenta, and white | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=0Bh/ | ||
+ | |||
+ | ===== 0Ch - VIDEO - WRITE GRAPHICS PIXEL ===== | ||
+ | < | ||
+ | AH = 0Ch | ||
+ | BH = page number | ||
+ | AL = pixel color (if bit 7 set, value is xor'ed onto screen) | ||
+ | CX = column | ||
+ | DX = row | ||
+ | </ | ||
+ | |||
+ | <WRAP round box> | ||
+ | valid only in graphics modes | ||
+ | |||
+ | BH is ignored if the current video mode supports only one page | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=0Dh, | ||
+ | |||
+ | ===== 0Dh - VIDEO - READ GRAPHICS PIXEL ===== | ||
+ | < | ||
+ | AH = 0Dh | ||
+ | BH = page number | ||
+ | CX = column | ||
+ | DX = row | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = pixel color | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | valid only in graphics modes | ||
+ | |||
+ | BH is ignored if the current video mode supports only one page | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=0Ch, | ||
+ | |||
+ | ===== 0Eh - VIDEO - TELETYPE OUTPUT ===== | ||
+ | |||
+ | AH = 0Eh | ||
+ | AL = character to write | ||
+ | BH = page number | ||
+ | BL = foreground color (graphics modes only) | ||
+ | Notes: | ||
+ | and do the expected things | ||
+ | IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as | ||
+ | the current active page | ||
+ | SeeAlso: AH=02h, | ||
+ | |||
+ | ===== 0Fh - VIDEO - GET CURRENT VIDEO MODE ===== | ||
+ | < | ||
+ | AH = 0Fh | ||
+ | </ | ||
+ | < | ||
+ | Return: AH = number of character columns | ||
+ | AL = display mode (see AH=00h) | ||
+ | BH = active page (see AH=05h) | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | if mode was set with bit 7 set ("no blanking" | ||
+ | |||
+ | EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h (monochrome) in all extended-row text modes | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=00h, | ||
+ | === 0F56h - VUIMAGE DISPLAY DRIVER (v2.20 and below) ==== | ||
+ | < | ||
+ | AX = 0F56h | ||
+ | BX = 4756h | ||
+ | CX = 4944h | ||
+ | DL = function | ||
+ | 01h installation check | ||
+ | Return: AX = 5649h | ||
+ | BX = 4443h | ||
+ | CX = 5647h | ||
+ | DH = 01h | ||
+ | 02h get first video mode's parameters | ||
+ | Return: AX = BIOS mode number | ||
+ | BX = width in pixels | ||
+ | CX = height in pixels | ||
+ | DX = number of colors | ||
+ | 03h get next video mode's parameters | ||
+ | Return: as for DL=02h | ||
+ | 04h display line??? | ||
+ | ES:DI -> record (see below) | ||
+ | ??? | ||
+ | Return: ??? | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises | ||
+ | |||
+ | the use of TSR display drivers was discontinued after v2.20 | ||
+ | </ | ||
+ | |||
+ | Format of record for DL=04h: | ||
+ | |||
+ | ^ Offset | ||
+ | | 00h | ||
+ | | 02h | ||
+ | | 04h | ||
+ | ===== 0Fh - FRIEZE v7.41+ - INSTALLATION CHECK ===== | ||
+ | < | ||
+ | AH = 0Fh | ||
+ | SI = F123h | ||
+ | DI = 321Fh | ||
+ | </ | ||
+ | < | ||
+ | Return: AH = number of character columns | ||
+ | AL = display mode (see AH=00h) | ||
+ | BH = active page (see AH=05h) | ||
+ | SI = DI = F345h if installed | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | if mode was set with bit 7 set ("no blanking" | ||
+ | |||
+ | EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h (monochrome) in all extended-row text modes | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=0Fh" | ||
+ | ===== 10h ===== | ||
+ | ==== 10h - 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 | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal | ||
+ | |||
+ | when a window has been set, all output via AH=0Eh is restricted to the specified window | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=11h" | ||
+ | ==== 10h - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED ==== | ||
+ | < | ||
+ | AH = 10h | ||
+ | AL = speed | ||
+ | 00h fast | ||
+ | 01h slow (only moves characters during vertical retrace) | ||
+ | </ | ||
+ | Return: AH = previous speed | ||
+ | ==== 1000h - VIDEO - SET SINGLE PALETTE REGISTER (PCjr, | ||
+ | < | ||
+ | AX = 1000h | ||
+ | BL = palette register number (00h-0Fh) | ||
+ | = attribute register number (undocumented) | ||
+ | 10h attribute mode control register (should let BIOS control this) | ||
+ | 11h overscan color register (see also AX=1001h) | ||
+ | 12h color plane enable register (bits 3-0 enable corresponding | ||
+ | text attribute bit) | ||
+ | 13h horizontal PEL panning register | ||
+ | 14h color select register | ||
+ | BH = color or attribute register value | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | on MCGA, only BX = 0712h is supported | ||
+ | |||
+ | under UltraVision, | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1002h, | ||
+ | === 1001h - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr, | ||
+ | < | ||
+ | AX = 1001h | ||
+ | BH = border color (00h-3Fh) | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | 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 | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | under UltraVision, | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1002h, | ||
+ | ==== 1002h - VIDEO - SET ALL PALETTE REGISTERS (PCjr, | ||
+ | < | ||
+ | AX = 1002h | ||
+ | ES:DX -> palette register list | ||
+ | </ | ||
+ | |||
+ | <WRAP round box> | ||
+ | under UltraVision, | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1000h, | ||
+ | |||
+ | Format of palette register list: | ||
+ | ^ Offset | ||
+ | | 00h | ||
+ | | 10h | ||
+ | ==== 1003h - VIDEO - TOGGLE INTENSITY/ | ||
+ | < | ||
+ | AX = 1003h | ||
+ | BL = new state | ||
+ | 00h background intensity enabled | ||
+ | 01h blink enabled | ||
+ | BH = 00h to avoid problems on some adapters | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | although there is no function to get the current status, bit 5 of 0040h:0065h indicates the state | ||
+ | |||
+ | when configured for a monochrome display, the Boca Research Multi-EGA with ROM v M1.1 Type D has its screen disrupted if BH is not clear | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=08h | ||
+ | ==== 1007h - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA, | ||
+ | < | ||
+ | AX = 1007h | ||
+ | BL = palette or attribute (undoc) register number (see AX=1000h) | ||
+ | </ | ||
+ | < | ||
+ | Return: BH = palette or attribute register value | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | 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. | ||
+ | </ | ||
+ | SeeAlso: AX=1000h, | ||
+ | ==== 1008h - READ OVERSCAN (BORDER COLOR) REGISTER (VGA, | ||
+ | < | ||
+ | AX = 1008h | ||
+ | </ | ||
+ | < | ||
+ | Return: BH = border color (00h-3Fh) | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | Notes: | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1001h | ||
+ | ==== 1009h - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA) ==== | ||
+ | < | ||
+ | AX = 1009h | ||
+ | ES:DX -> 17-byte buffer (see AX=1002h) | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | Notes: | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1002h, | ||
+ | ==== 1010h - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA) ==== | ||
+ | < | ||
+ | AX = 1010h | ||
+ | BX = register number | ||
+ | CH = new value for green (0-63) | ||
+ | CL = new value for blue (0-63) | ||
+ | DH = new value for red (0-63) | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1012h, | ||
+ | ==== 1012h - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA) ==== | ||
+ | |||
+ | AX = 1012h | ||
+ | BX = starting color register | ||
+ | CX = number of registers to set | ||
+ | ES:DX -> table of 3*CX bytes where each 3 byte group represents one | ||
+ | byte each of red, green and blue (0-63) | ||
+ | SeeAlso: AX=1010h, | ||
+ | ==== 1013h - 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) | ||
+ | </ | ||
+ | |||
+ | <WRAP round box> | ||
+ | not valid in mode 13h | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=101Ah | ||
+ | ==== 1015h - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA) ==== | ||
+ | < | ||
+ | AX = 1015h | ||
+ | BL = palette register number | ||
+ | </ | ||
+ | < | ||
+ | Return: DH = red value | ||
+ | CH = green value | ||
+ | CL = blue value | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1010h, | ||
+ | ==== 1017h - 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, | ||
+ | ==== 1018h - U - VIDEO - SET PEL MASK (VGA/MCGA) ==== | ||
+ | < | ||
+ | AX = 1018h | ||
+ | BL = new PEL value | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1019h | ||
+ | ==== 1019h - U - VIDEO - READ PEL MASK (VGA/MCGA) ==== | ||
+ | |||
+ | AX = 1019h | ||
+ | Return: BL = value read | ||
+ | SeeAlso: AX=1018h | ||
+ | ==== 101Ah - 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 | ||
+ | ==== 101Bh - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA) ==== | ||
+ | |||
+ | AX = 101Bh | ||
+ | BX = starting palette register | ||
+ | CX = number of registers to convert | ||
+ | SeeAlso: AH=12h/ | ||
+ | ==== 10F0h - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE ==== | ||
+ | < | ||
+ | AX = 10F0h | ||
+ | BL = video mode (see also AH=00h) | ||
+ | 32768-color modes: | ||
+ | 13h = 320x200 | ||
+ | 2Dh = 640x350 | ||
+ | 2Eh = 640x480 | ||
+ | 2Fh = 640x400 | ||
+ | 30h = 800x600 | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = 10h if supported | ||
+ | AH = status | ||
+ | 00h if successful | ||
+ | other on error | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | 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| | | ||
+ | </ | ||
+ | SeeAlso: AX=10F1h, | ||
+ | ==== 10F1h - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE ==== | ||
+ | < | ||
+ | AX = 10F1h | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = 10h if supported | ||
+ | BL = type of digital/ | ||
+ | 00h normal VGA DAC | ||
+ | 01h Sierra SC1148x HiColor DAC | ||
+ | 02h new Sierra DAC | ||
+ | else other HiColor DAC | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=10F0h, | ||
+ | ==== 10F2h - VIDEO - Tseng ET-4000 BIOS v3.00 - ??? ==== | ||
+ | < | ||
+ | AX = 10F2h | ||
+ | BL = ??? | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = 10h if supported | ||
+ | AH = status??? | ||
+ | 00h ??? | ||
+ | 01h ??? | ||
+ | BL = ??? | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=10F0h, | ||
+ | |||
+ | ===== 11h ===== | ||
+ | ==== 11h - 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 | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=10h" | ||
+ | ==== 11h - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA) ==== | ||
+ | < | ||
+ | AH = 11h | ||
+ | The following functions will cause a mode set, completely resetting the video environment, | ||
+ | AL = 00h, 10h: load user-specified patterns | ||
+ | ES:BP -> user table | ||
+ | CX = count of patterns to store | ||
+ | DX = character offset into map 2 block | ||
+ | BL = block to load in map 2 | ||
+ | BH = number of bytes per character pattern | ||
+ | AL = 01h, 11h: load ROM monochrome patterns (8 by 14) | ||
+ | BL = block to load | ||
+ | AL = 02h, 12h: load ROM 8 by 8 double-dot patterns | ||
+ | BL = block to load | ||
+ | AL = 03h: set block specifier | ||
+ | BL = block specifier | ||
+ | | ||
+ | bit 3 = 0 | ||
+ | bits 2,3 = block selected by chars with attribute | ||
+ | bit 3 = 1 | ||
+ | (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0 | ||
+ | bits 2,3,5 = block selected by attribute bit 3 = 1 | ||
+ | AL = 04h, 14h: load ROM 8x16 character set (VGA) | ||
+ | BL = block to load | ||
+ | The routines called with AL=1xh are designed to be called only immediately after a mode set and are similar to the routines called | ||
+ | with AL=0xh, except that: | ||
+ | Page 0 must be active. | ||
+ | Bytes/ | ||
+ | Max character rows is recalculated. | ||
+ | CRT buffer length is recalculated. | ||
+ | CRTC registers are reprogrammed as follows: | ||
+ | R09 = bytes/ | ||
+ | R0A = bytes/ | ||
+ | R0B = 0 ; cursor end | ||
+ | R12 = ((rows+1)*(bytes/ | ||
+ | R14 = bytes/ | ||
+ | (*** BUG: should be 1 less ***) | ||
+ | </ | ||
+ | SeeAlso: AX=CD10h | ||
+ | ==== 11h - VIDEO - GRAPHICS-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA) ==== | ||
+ | < | ||
+ | AH = 11h | ||
+ | AL = 20h: set user 8 by 8 graphics characters (INT 1F) | ||
+ | ES:BP -> user table | ||
+ | AL = 21h: set user graphics characters | ||
+ | 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 | ||
+ | AL = 22h: ROM 8 by 14 set | ||
+ | BL = row specifier (see above) | ||
+ | AL = 23h: ROM 8 by 8 double dot | ||
+ | BL = row specifier (see above) | ||
+ | AL = 24h: load 8x16 graphics characters (VGA/MCGA) | ||
+ | BL = row specifier (see above) | ||
+ | AL = 29h: load 8x16 graphics characters (Compaq Systempro) | ||
+ | BL = row specifier (see above) | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | these functions are meant to be called only after a mode set | ||
+ | |||
+ | UltraVision v2+ sets INT 43 to the appropriate font for AL=22h, | ||
+ | </ | ||
+ | |||
+ | SeeAlso: INT 1F, INT 43 | ||
+ | ==== 1130h - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA) ==== | ||
+ | < | ||
+ | AX = 1130h | ||
+ | BH = pointer specifier | ||
+ | 00h INT 1Fh pointer | ||
+ | 01h INT 43h pointer | ||
+ | 02h ROM 8x14 character font pointer | ||
+ | 03h ROM 8x8 double dot font pointer | ||
+ | 04h ROM 8x8 double dot font (high 128 characters) | ||
+ | 05h ROM alpha alternate (9 by 14) pointer (EGA,VGA) | ||
+ | 06h ROM 8x16 font (MCGA, VGA) | ||
+ | 07h ROM alternate 9x16 font (VGA only) | ||
+ | 11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA) | ||
+ | 12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA) | ||
+ | </ | ||
+ | < | ||
+ | Return: ES:BP = specified pointer | ||
+ | CX = bytes/ | ||
+ | DL = character rows on screen - 1 (VGA) | ||
+ | = character rows on screen (EGA) | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | for UltraVision v2+, the 9xN alternate fonts follow the corresponding 8xN font at ES:BP+256N | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AX=1100h, | ||
+ | ===== 12h - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE ===== | ||
+ | < | ||
+ | AH = 12h | ||
+ | </ | ||
+ | < | ||
+ | Return: BH = attribute to use on blanked lines when scrolling | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=11h" | ||
+ | ==== 12h - 10h - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO ==== | ||
+ | < | ||
+ | AH = 12h | ||
+ | BL = 10h | ||
+ | </ | ||
+ | < | ||
+ | Return: BH = 00h color mode in effect (I/O port 3Dxh) | ||
+ | 01h mono mode in effect (I/O port 3Bxh) | ||
+ | BL = 00h 64k bytes memory installed | ||
+ | 01h 128k bytes memory installed | ||
+ | 02h 192k bytes memory installed | ||
+ | 03h 256k bytes memory installed | ||
+ | CH = feature bits | ||
+ | CL = switch settings | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | 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 | ||
+ | </ | ||
+ | ==== 12h - 20h - VIDEO - ALTERNATE FUNCTION SELECT (PS, | ||
+ | < | ||
+ | AH = 12h | ||
+ | BL = 20h select alternate print screen routine | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | 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 | ||
+ | |||
+ | some adapters disable print-screen instead of enhancing it | ||
+ | </ | ||
+ | |||
+ | SeeAlso: INT 05 | ||
+ | ==== 12h - 2Eh - Tseng ET-4000 BIOS v3.00 - BUG ==== | ||
+ | < | ||
+ | AH = 12h | ||
+ | BL = 2Eh | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | due to an omitted end-of-list marker, this version of the BIOS will crash the system on this function | ||
+ | </ | ||
+ | |||
+ | ==== 12h - 30h - 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 | ||
+ | |||
+ | ==== 12h - 31h - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 31h | ||
+ | AL = 00h enable default palette loading | ||
+ | 01h disable default palette loading | ||
+ | Return: AL = 12h if function supported | ||
+ | |||
+ | ==== 12h - 32h - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 32h | ||
+ | AL = 00h enable video addressing | ||
+ | 01h disable video addressing | ||
+ | Return: AL = 12h if function supported | ||
+ | ==== 12h - 33h - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 33h | ||
+ | AL = 00h enable gray scale summing | ||
+ | 01h disable gray scale summing | ||
+ | Return: AL = 12h if function supported | ||
+ | SeeAlso: AX=101Bh, | ||
+ | ==== 12h - 34h - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 34h | ||
+ | AL = 00h enable alphanumeric cursor emulation | ||
+ | 01h disable alphanumeric cursor emulation | ||
+ | Return: AL = 12h if function supported | ||
+ | ==== 12h - 35h - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 35h | ||
+ | AL = 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 (128 byte save area if AL = 0, 2 or 3) | ||
+ | Return: AL = 12h if function supported | ||
+ | ==== 12h - 36h - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 36h | ||
+ | AL = 00h enable refresh | ||
+ | 01h disable refresh | ||
+ | Return: AL = 12h if function supported | ||
+ | ==== 12h - 55h - VIDEO - ALTERNATE FUNC SELECT (ATI, | ||
+ | |||
+ | AH = 12h | ||
+ | BH = 55h | ||
+ | BL = subfunction | ||
+ | 00h disabled enhanced features | ||
+ | 01h enable enhanced features | ||
+ | 02h get status | ||
+ | Return: AL = status flags | ||
+ | bit 3: set if enhanced features enabled | ||
+ | bits 7-5 monitor type | ||
+ | 000 PS/2 mono | ||
+ | 001 PS/2 color | ||
+ | 010 multi-sync | ||
+ | 011 Taxan 650 25kHz | ||
+ | 100 RGB | ||
+ | 101 mono | ||
+ | 110 EGA | ||
+ | 111 Compaq internal | ||
+ | 03h disable register trapping (CGA emulation) | ||
+ | 04h enable register trapping | ||
+ | 05h program mode described by table at ES:BP | ||
+ | 06h get mode table | ||
+ | AL = video mode | ||
+ | Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h) | ||
+ | BP = FFFFh on error | ||
+ | |||
+ | Format of ATI VGA Wonder video mode table: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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) | ||
+ | | ||
+ | ==== 12h - 74h - Tseng ET-4000 BIOS v3.00 - BUG ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 74h | ||
+ | Note: due to an omitted end-of-list marker, this version of the BIOS will | ||
+ | crash the system on this function | ||
+ | ==== 12h - 80h - Tseng ET-4000 BIOS v3.00 - BUG ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = 80h | ||
+ | Note: due to an omitted end-of-list marker, this version of the BIOS will | ||
+ | crash the system on this function | ||
+ | ==== 12h - BEh - Tseng ET-4000 BIOS v3.00 - BUG ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = BEh | ||
+ | Note: due to an omitted end-of-list marker, this version of the BIOS will | ||
+ | crash the system on this function | ||
+ | ==== 12h - C6h - Tseng ET-4000 BIOS v3.00 - BUG ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = C6h | ||
+ | Note: due to an omitted end-of-list marker, this version of the BIOS will | ||
+ | crash the system on this function | ||
+ | ==== 12h - F0h - Tseng ET-4000 BIOS v3.00 - BUG ==== | ||
+ | |||
+ | AH = 12h | ||
+ | BL = F0h | ||
+ | Note: due to an omitted end-of-list marker, this version of the BIOS will | ||
+ | crash the system on this function | ||
+ | |||
+ | ===== 13h - VIDEO - WRITE STRING (AT and later,EGA) ===== | ||
+ | < | ||
+ | AH = 13h | ||
+ | AL = write mode | ||
+ | bit 0: update cursor after writing | ||
+ | 1: string contains alternating characters and attributes | ||
+ | BH = page number | ||
+ | BL = attribute if string contains only characters | ||
+ | CX = number of characters in string | ||
+ | DH,DL = row,column at which to start writing | ||
+ | ES:BP -> string to write | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | recognizes CR, LF, BS, and bell | ||
+ | |||
+ | also available PC or XT with EGA or higher | ||
+ | |||
+ | HP 95LX only supports write mode 00h | ||
+ | </ | ||
+ | |||
+ | <WRAP round important> | ||
+ | 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, | ||
+ | |||
+ | ===== 14 - VIDEO ===== | ||
+ | ==== 1400h - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV, | ||
+ | |||
+ | AX = 1400h | ||
+ | ES:DI -> character font | ||
+ | BH = number of bytes per character | ||
+ | 08h or 10h (Compaq) | ||
+ | BL = 00h load main font (block 0) | ||
+ | 01h load alternate font (block 1) | ||
+ | CX = number of characters to store | ||
+ | DX = character offset into RAM font area | ||
+ | SeeAlso: AH=11h, | ||
+ | ==== 1401h - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV, | ||
+ | |||
+ | AX = 1401h | ||
+ | BL = font to load | ||
+ | 00h main font (block 0) | ||
+ | 01h alternate font (block 1) | ||
+ | SeeAlso: AH=11h, | ||
+ | ==== 1402h - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV, | ||
+ | |||
+ | AX = 1402h | ||
+ | BL = function | ||
+ | 00h ignore high intensity attribute | ||
+ | 01h map high intensity to underscore | ||
+ | 02h map high intensity to reverse video | ||
+ | 03h map high intensity to selected alternate font | ||
+ | B0h half intensity (Compaq) | ||
+ | B1h toggle active intensity bit interpretation (CP386) | ||
+ | |||
+ | ===== 15h - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE) ===== | ||
+ | |||
+ | AH = 15h | ||
+ | Return: AX = alternate display adapter type | ||
+ | 0000h none | ||
+ | 5140h LCD | ||
+ | 5153h CGA | ||
+ | 5151h mono | ||
+ | ES:DI -> parameter table (see below) | ||
+ | SeeAlso: AH=1Bh | ||
+ | |||
+ | Format of display parameter table: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | ===== 15xxh - 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 | ||
+ | |||
+ | ===== 1Ah - VIDEO - DISPLAY COMBINATION (PS, | ||
+ | < | ||
+ | AH = 1Ah | ||
+ | AL = 00h read display combination code | ||
+ | Return: BL = active display code (see below) | ||
+ | BH = alternate display code | ||
+ | 01h set display combination code | ||
+ | BL = active display code (see below) | ||
+ | BH = alternate display code | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = 1Ah if function was supported | ||
+ | </ | ||
+ | |||
+ | === 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| | ||
+ | |||
+ | ===== 1Bh - VIDEO - FUNCTIONALITY/ | ||
+ | < | ||
+ | AH = 1Bh | ||
+ | BX = implementation type | ||
+ | 0000h return funtionality/ | ||
+ | ES:DI -> 64 byte buffer for state information (see below) | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = 1Bh if function supported | ||
+ | ES:DI buffer filled with state information | ||
+ | </ | ||
+ | SeeAlso: AH=15h | ||
+ | |||
+ | == Format of state information: | ||
+ | ^ Offset ^ Size ^Description^ | ||
+ | |00h|DWORD|address of static funtionality table (see below)| | ||
+ | |04h|BYTE|video mode in effect| | ||
+ | |05h|WORD|number of columns| | ||
+ | |07h|WORD|length of regen buffer in bytes| | ||
+ | |09h|WORD|starting address of regen buffer| | ||
+ | |0Bh|WORD|cursor position for page 0| | ||
+ | |0Dh|WORD|cursor position for page 1| | ||
+ | |0Fh|WORD|cursor position for page 2| | ||
+ | |11h|WORD|cursor position for page 3| | ||
+ | |13h|WORD|cursor position for page 4| | ||
+ | |15h|WORD|cursor position for page 5| | ||
+ | |17h|WORD|cursor position for page 6| | ||
+ | |19h|WORD|cursor position for page 7| | ||
+ | |1Bh|WORD|cursor type| | ||
+ | |1Dh|BYTE|active display page| | ||
+ | |1Eh|WORD|CRTC port address| | ||
+ | |20h|BYTE|current setting of register (3?8)| | ||
+ | |21h|BYTE|current setting of register (3?9)| | ||
+ | |22h|BYTE|number of rows| | ||
+ | |23h|WORD|bytes/ | ||
+ | |25h|BYTE|display combination code of active display| | ||
+ | |26h|BYTE|DCC of alternate display| | ||
+ | |27h|WORD|number of colors supported in current mode| | ||
+ | |29h|BYTE|number of pages supported in current mode| | ||
+ | |2Ah|BYTE|number of scan lines active\\ (0,1,2,3) = (200, | ||
+ | |2Bh|BYTE|primary character block| | ||
+ | |2Ch|BYTE|secondary character block| | ||
+ | |2Dh|BYTE|miscellaneous flags\\ bit 0 all modes on all displays on\\ bit 1 gray summing on\\ bit 2 monochrome display attached\\ bit 3 default palette loading disabled\\ bit 4 cursor emulation enabled\\ bit 5 0 = intensity; 1 = blinking\\ bit 6 PS/2 P70 plasma display (without 9-dot wide font) active\\ bit 7 reserved| | ||
+ | |2Eh|3 BYTEs|reserved (00h)| | ||
+ | |31h|BYTE|video memory available\\ 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K| | ||
+ | |32h|BYTE|save pointer state flags\\ bit 0 512 character set active\\ bit 1 dynamic save area present\\ bit 2 alpha font override active\\ bit 3 graphics font override active\\ bit 4 palette override active\\ bit 5 DCC override active\\ bit 6 reserved\\ bit 7 reserved| | ||
+ | |33h|13 BYTEs|reserved (00h)| | ||
+ | |||
+ | == Format of Static Functionality Table: == | ||
+ | ^Offset^Size^Description^ | ||
+ | |00h|BYTE|modes supported #1\\bit 0 to bit 7 = 1 modes 0, | ||
+ | |01h|BYTE|modes supported #2\\bit 0 to bit 7 = 1 modes 8, | ||
+ | |02h|BYTE|modes supported #3\\bit 0 to bit 3 = 1 modes 10h, | ||
+ | |03h|4 BYTEs|reserved| | ||
+ | |07h|BYTE|scan lines supported\\ bit 0 to bit 2 = 1 if scan lines 200,350,400 supported| | ||
+ | |08h|BYTE|total number of character blocks available in text modes| | ||
+ | |09h|BYTE|maximum number of active character blocks in text modes| | ||
+ | |0Ah|BYTE|miscellaneous function flags #1\\ bit 0 all modes on all displays function supported\\ bit 1 gray summing function supported\\ bit 2 character font loading function supported\\ bit 3 default palette loading enable/ | ||
+ | |0Bh|BYTE|miscellaneous function flags #2\\ bit 0 light pen supported\\ bit 1 save/ | ||
+ | |0Ch|WORD|reserved| | ||
+ | |0Eh|BYTE|save pointer function flags\\ bit 0 512 character set supported\\ bit 1 dynamic save area supported\\ bit 2 alpha font override supported\\ bit 3 graphics font override supported\\ bit 4 palette override supported\\ bit 5 DCC extension supported\\ bit 6 reserved\\ bit 7 reserved| | ||
+ | |0Fh|BYTE|reserved| | ||
+ | |||
+ | ===== 1Ch - VIDEO - SAVE/ | ||
+ | < | ||
+ | AH = 1Ch | ||
+ | AL = 00h return state buffer size | ||
+ | Return: BX = number of 64-byte blocks needed | ||
+ | 01h save video state | ||
+ | ES:BX -> buffer | ||
+ | 02h restore video state | ||
+ | ES:BX -> buffer containing previously saved state | ||
+ | CX = requested states | ||
+ | bit 0 video hardware | ||
+ | 1 BIOS data areas | ||
+ | 2 color registers and DAC state | ||
+ | 3-15 reserved | ||
+ | </ | ||
+ | < | ||
+ | Return: AL = 1Ch if function supported | ||
+ | </ | ||
+ | |||
+ | ===== 1Dh - Tseng ET-4000 BIOS v3.00 - BUG ===== | ||
+ | < | ||
+ | AH = 1Dh | ||
+ | </ | ||
+ | Note: this version of the BIOS jumps to a random location on this function due to a fencepost error | ||
+ | |||
+ | |||
+ | ===== 3000h - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK) ===== | ||
+ | < | ||
+ | AX = 3000h | ||
+ | CX = 0000h | ||
+ | DX = 0000h | ||
+ | </ | ||
+ | < | ||
+ | Return: CX:DX -> 3270PC configuration table (see below for format) | ||
+ | CX:DX = 0000h:0000h if 3270PC Control Program not active | ||
+ | |||
+ | == Format of 3270 PC configuration table: == | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | | ||
+ | 00h = 5151/5272 adapter | ||
+ | 04h = 5151/5272 with XGA adapter | ||
+ | 30h = 3295 or 3270PC G/GX adapter | ||
+ | | ||
+ | | ||
+ | bit 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 | ||
+ | | ||
+ | bit 6: GPI graphics supported | ||
+ | | ||
+ | 0Ah 10 BYTEs reserved | ||
+ | |||
+ | Format of Control Program Level table: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 02xxh = 3270PC Control Program v2.xx | ||
+ | 03xxh = 3270PC Control Program v3.xx | ||
+ | 04xxh = 3270 Workstation Program v1.xx | ||
+ | | ||
+ | 03h 27 BYTEs Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM" | ||
+ | |||
+ | ===== 38h - Tinytalk Personal v1.09f - GET CONFIGURATION INFO ===== | ||
+ | |||
+ | < | ||
+ | AH = 38h | ||
+ | </ | ||
+ | < | ||
+ | Return: ES:DI -> configuration info (see below) | ||
+ | </ | ||
+ | |||
+ | Notes: | ||
+ | |||
+ | this call is also used as the installation check by verifying that the returned ES:DI points at valid configuration info | ||
+ | |||
+ | SeeAlso: INT 14/ | ||
+ | |||
+ | == Format of configuration info: == | ||
+ | ^Offset^Size^Description^ | ||
+ | |00h|8 BYTEs|signature " | ||
+ | |08h|WORD|size of configuration data, not counting signature, this WORD, or the following byte@ | ||
+ | |0Ah|BYTE|??? | ||
+ | |0Bh|??? | ||
+ | |||
+ | ===== 40h - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX) ===== | ||
+ | |||
+ | AH = 40h | ||
+ | SeeAlso: AH=41h | ||
+ | |||
+ | ===== 41h - VIDEO - SET TEXT MODE (Hercules GRAFIX) ===== | ||
+ | |||
+ | AH = 41h | ||
+ | SeeAlso: AH=40h | ||
+ | |||
+ | ===== 42h - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX) ===== | ||
+ | |||
+ | AH = 42h | ||
+ | SeeAlso: AH=45h | ||
+ | |||
+ | ===== 43h - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX) ===== | ||
+ | |||
+ | AH = 43h | ||
+ | AL = page number (0,1) | ||
+ | SeeAlso: AH=44h, | ||
+ | ===== 44h - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX) ===== | ||
+ | |||
+ | AH = 44h | ||
+ | AL = drawing function | ||
+ | 00h clear pixels | ||
+ | 01h set pixels | ||
+ | 02h invert pixels | ||
+ | SeeAlso: AH=45h, | ||
+ | |||
+ | ===== 45h - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX) ===== | ||
+ | |||
+ | AH = 45h | ||
+ | AL = page number (0,1) | ||
+ | SeeAlso: AH=42h, | ||
+ | |||
+ | ===== 46h - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX) ===== | ||
+ | AH = 46h | ||
+ | DI = x (0-720) | ||
+ | BP = y (0-347) | ||
+ | Note: | ||
+ | SeeAlso: AH=0Ch, | ||
+ | ===== 47h - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX) ===== | ||
+ | AH = 47h | ||
+ | DI = x (0-720) | ||
+ | BP = y (0-347) | ||
+ | Return: AL = 00h pixel clear | ||
+ | AL = 01h pixel set | ||
+ | Note: | ||
+ | SeeAlso: AH=0Dh, | ||
+ | ----------1048------------------------------- | ||
+ | INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX) | ||
+ | AH = 48h | ||
+ | DI = x (0-720) | ||
+ | BP = y (0-347) | ||
+ | SeeAlso: AH=49h | ||
+ | ----------1049------------------------------- | ||
+ | INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX) | ||
+ | AH = 49h | ||
+ | DI = x (0-720) | ||
+ | BP = y (0-347) | ||
+ | Note: | ||
+ | use | ||
+ | SeeAlso: AH=43h, | ||
+ | ----------104A------------------------------- | ||
+ | INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX) | ||
+ | AH = 4Ah | ||
+ | DI = x coordinate of lower left corner | ||
+ | BP = y coordinate of lower left corner | ||
+ | BX = height in pixels | ||
+ | CX = width in pixels | ||
+ | Note: draws a solid rectangle | ||
+ | SeeAlso: AH=4Eh | ||
+ | ----------104B------------------------------- | ||
+ | INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX) | ||
+ | AH = 4Bh | ||
+ | AL = character to display | ||
+ | DI = x (0-720) | ||
+ | BP = y (0-347) | ||
+ | Note: | ||
+ | specified in pixels rather than rows and columns | ||
+ | SeeAlso: AH=09h, | ||
+ | ----------104B------------------------------- | ||
+ | INT 10 - FRIEZE v7.0+ - API | ||
+ | AH = 4Bh | ||
+ | CL = function | ||
+ | 00h reserved | ||
+ | 01h load window | ||
+ | ES:BX -> ASCIZ filename from which to read | ||
+ | 02h save window | ||
+ | ES:BX -> ASCIZ filename to which to write | ||
+ | 03h (v7.41) set ??? | ||
+ | AL = ??? | ||
+ | 04h (v7.41) set ??? | ||
+ | AL = ??? | ||
+ | 06h (v7.41) ??? | ||
+ | AL = ??? | ||
+ | 07h set window size | ||
+ | ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax | ||
+ | 09h set patterns | ||
+ | ES:BX -> 16-BYTE vector of screen-> | ||
+ | 0Ah get patterns | ||
+ | ES:BX -> 16-BYTE buffer for color correspondences | ||
+ | 0Bh set mode | ||
+ | AL = mode | ||
+ | 0Ch (v7.41) ??? | ||
+ | AL = ??? | ||
+ | 00h ??? (calls original INT 05) | ||
+ | else ??? | ||
+ | 0Dh (v7.41) ??? | ||
+ | AL = ??? | ||
+ | 00h ??? (calls original INT 05) | ||
+ | else ??? | ||
+ | 0Eh (v7.41) ??? | ||
+ | ??? | ||
+ | 0Fh get window | ||
+ | ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax | ||
+ | 10h set print options | ||
+ | ES:BX -> printer options in same format as FRIEZE cmdline | ||
+ | 11h (v7.41) ??? | ||
+ | ??? | ||
+ | 12h (v7.41) ??? | ||
+ | ??? | ||
+ | 13h (v7.41) ??? | ||
+ | ??? | ||
+ | 14h get version | ||
+ | Return: AH = major version (00h if FRIEZE version before 7) | ||
+ | AL = minor version | ||
+ | 15h set parameters | ||
+ | ES:BX -> parameter table (see below) | ||
+ | 16h get parameters | ||
+ | ES:BX -> buffer for parameter table (see below) | ||
+ | 17h get printer resolution | ||
+ | ES:BX -> 12-WORD table for six horizontal/ | ||
+ | 18h reserved (v8.0 only) | ||
+ | 50h (v7.41) get ??? | ||
+ | Return: AX = ??? | ||
+ | 51h (v7.41) get ??? | ||
+ | Return: ES = ??? (seen 2348h) | ||
+ | AX = ??? (seen 8432h) | ||
+ | Return: AX = status | ||
+ | 00h successful | ||
+ | 01h user aborted printout with ESC | ||
+ | 02h reserved | ||
+ | 03h file read error | ||
+ | 04h file write error | ||
+ | 05h file not found | ||
+ | 06h invalid header (not an image or wrong screen mode) | ||
+ | 07h file close error | ||
+ | 08h disk error | ||
+ | 09h printer error | ||
+ | 0Ah invalid function | ||
+ | 0Bh can't create file | ||
+ | 0Ch wrong video mode | ||
+ | SeeAlso: AH=0Fh/ | ||
+ | |||
+ | Format of parameter table: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 00h draft mode | ||
+ | 01h quality mode | ||
+ | 02h use horizontal/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | Note: any field which should remain unchanged may be filled with FFFFh | ||
+ | ----------104C------------------------------- | ||
+ | INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX) | ||
+ | AH = 4Ch | ||
+ | AL = quadrant (1 = upper right, 2 = upper left, etc) | ||
+ | DI = x coordinate of center | ||
+ | BP = y coordinate of center | ||
+ | BX = radius | ||
+ | SeeAlso: AH=49h, | ||
+ | ----------104D------------------------------- | ||
+ | INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX) | ||
+ | AH = 4Dh | ||
+ | DI = x of center | ||
+ | BP = y of center | ||
+ | BX = radius | ||
+ | SeeAlso: AH=49h, | ||
+ | ----------104E------------------------------- | ||
+ | INT 10 - VIDEO - FILL AREA (Hercules GRAFIX) | ||
+ | AH = 4Eh | ||
+ | DI = x coordinate of an interior point | ||
+ | BP = y coordinate of an interior point | ||
+ | Notes: | ||
+ | the first fill makes the figure solid, the second erases it | ||
+ | SeeAlso: AH=4Ah | ||
+ | ----------104F00----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION | ||
+ | AX = 4F00h | ||
+ | ES:DI -> 256-byte buffer for SuperVGA information (see below) | ||
+ | Return: AL = 4Fh function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | SeeAlso: AX=4F01h, | ||
+ | |||
+ | Format of SuperVGA information: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | " | ||
+ | | ||
+ | | ||
+ | (list of words terminated with FFFFh) | ||
+ | 12h 238 BYTEs reserved | ||
+ | ----------104F01----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION | ||
+ | AX = 4F01h | ||
+ | CX = SuperVGA video mode | ||
+ | ES:DI -> 256-byte buffer mode information (see below) | ||
+ | Return: AL = 4Fh function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | SeeAlso: AX=4F00h, | ||
+ | |||
+ | Format of mode information: | ||
+ | Offset Size Description | ||
+ | | ||
+ | bit 0: mode supported | ||
+ | bit 1: optional information available | ||
+ | bit 2: BIOS output supported | ||
+ | bit 3: set if color, clear if monochrome | ||
+ | bit 4: set if graphics mode, clear if text mode | ||
+ | | ||
+ | bit 0: exists | ||
+ | bit 1: readable | ||
+ | bit 2: writable | ||
+ | bits 3-7 reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | 08h-0Fh reserved for VESA | ||
+ | 10h-FFh OEM memory models | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---VBE v1.2+--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------104F02----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE | ||
+ | AX = 4F02h | ||
+ | BX = mode | ||
+ | bit 15 set means don't clear video memory | ||
+ | Return: AL = 4Fh function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | SeeAlso: AX=4F01h, | ||
+ | |||
+ | Values for VESA video mode: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ---VBE v1.2--- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------104F03----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE | ||
+ | AX = 4F03h | ||
+ | Return: AL = 4Fh function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | BX = video mode (see AX=4F02h) | ||
+ | SeeAlso: AX=4F02h | ||
+ | ----------104F04----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS - SAVE/ | ||
+ | AX = 4F04h | ||
+ | DL = subfunction | ||
+ | 00h get state buffer size | ||
+ | Return: BX = number of 64-byte blocks needed | ||
+ | 01h save video states | ||
+ | ES:BX -> buffer | ||
+ | 02h restore video states | ||
+ | ES:BX -> buffer | ||
+ | CX = flags for states to save/ | ||
+ | bit 0: video hardware state | ||
+ | bit 1: video BIOS data state | ||
+ | bit 2: video DAC state | ||
+ | bit 3: SuperVGA state | ||
+ | Return: AL = 4Fh function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | ----------104F05----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL | ||
+ | AX = 4F05h | ||
+ | BH = subfunction | ||
+ | 00h select video memory window | ||
+ | DX = window address in video memory (in granularity units) | ||
+ | 01h get video memory window | ||
+ | Return: DX = window address in video memory (in gran. units) | ||
+ | BL = window number | ||
+ | 00h window A | ||
+ | 01h window B | ||
+ | Return: AL = 4Fh function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | SeeAlso: AX=4F01h, | ||
+ | ----------104F06----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS v1.1 - GET/SET LOGICAL SCAN LINE LENGTH | ||
+ | AX = 4F06h | ||
+ | BL = function | ||
+ | 00h set scan line length | ||
+ | CX = desired width in pixels | ||
+ | 01h get scan line length | ||
+ | Return: AL = 4Fh if function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | BX = bytes per scan line | ||
+ | CX = number of pixels per scan line | ||
+ | DX = maximum number of scan lines | ||
+ | Notes: if the desired width is not achievable, the next larger width will be | ||
+ | set | ||
+ | the scan line may be wider than the visible area of the screen | ||
+ | this function is valid in text modes, provided that values are | ||
+ | multiplied by the character cell width/ | ||
+ | SeeAlso: AX=4F01h, | ||
+ | ----------104F07BH00------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS v1.1 - GET/SET DISPLAY START | ||
+ | AX = 4F07h | ||
+ | BH = 00h (reserved) | ||
+ | BL = 00h set display start | ||
+ | CX = leftmost displayed pixel in scan line | ||
+ | DX = first displayed scan line | ||
+ | = 01h get display start | ||
+ | Return: BH = 00h | ||
+ | CX = leftmost displayed pixel in scan line | ||
+ | DX = first displayed scan line | ||
+ | Return: AL = 4Fh if function supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | Note: this function is valid in text modes, provided that values are | ||
+ | multiplied by the character cell width/ | ||
+ | SeeAlso: AX=4F01h, | ||
+ | ----------104F08----------------------------- | ||
+ | INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL | ||
+ | AX = 4F08h | ||
+ | BL = function | ||
+ | 00h set DAC palette width | ||
+ | BH = desired number of bits per primary color | ||
+ | 01h get DAC palette width | ||
+ | Return: AL = 4Fh if function supported | ||
+ | AH = status | ||
+ | BH = current number of bits per primary (06h = standard VGA) | ||
+ | ----------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 | ||
+ | ----------1050------------------------------- | ||
+ | INT 10 - SCROLOCK.COM - INSTALLATION CHECK | ||
+ | AH = 50h | ||
+ | Return: BX = 1954h if installed | ||
+ | AL = 00 if inactive, nonzero if active | ||
+ | Note: | ||
+ | SeeAlso: AH=51h | ||
+ | ----------105000----------------------------- | ||
+ | INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE | ||
+ | AX = 5000h | ||
+ | BX = country code | ||
+ | 0001h USA (English), 0051h Japan | ||
+ | Return: AL = status | ||
+ | 00h successful | ||
+ | 01h bad country code | ||
+ | 02h other error | ||
+ | SeeAlso: AX=5001h, | ||
+ | ----------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, | ||
+ | ----------1051------------------------------- | ||
+ | INT 10 - SCROLOCK.COM - ENABLE/ | ||
+ | AH = 51h | ||
+ | AL = state | ||
+ | 00h disable | ||
+ | nonzero enable | ||
+ | Note: | ||
+ | SeeAlso: AH=50h" | ||
+ | ----------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, | ||
+ | ES:BP -> character bitmap | ||
+ | Return: AL = status (00h successful, 01h failed) | ||
+ | SeeAlso: AX=5101h, | ||
+ | ----------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, | ||
+ | ----------105200----------------------------- | ||
+ | INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER | ||
+ | AX = 5200h | ||
+ | BX = segment of buffer | ||
+ | SeeAlso: AX=5201h | ||
+ | ----------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, | ||
+ | ----------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 | ||
+ | ----------105555----------------------------- | ||
+ | INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK | ||
+ | AX = 5555h | ||
+ | Return: AX = AAAAh if installed | ||
+ | BX:CX -> ??? routine in SMS.COM resident portion | ||
+ | -> data area in VCONFIG | ||
+ | Note: 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/ | ||
+ | |||
+ | Format of data area: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ----------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: | ||
+ | display(s) and printer(s) | ||
+ | SeeAlso: AX=6A02h | ||
+ | ----------106A01CX0000----------------------- | ||
+ | INT 10 - 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 | ||
+ | ----------106A02----------------------------- | ||
+ | INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE | ||
+ | AX = 6A02h | ||
+ | ES:DI = 0000h:0000h | ||
+ | Return: ES:DI = 0000h: | ||
+ | else address of the current DGIS INT 10 display | ||
+ | SeeAlso: AX=6A00h, | ||
+ | ----------106E00------------------------------------ | ||
+ | INT 10 - Paradise VGA internal - GET ??? | ||
+ | AX = 6E00h | ||
+ | Return: AH = ??? (depends on serial number) | ||
+ | AL = ??? | ||
+ | BX = ??? | ||
+ | CL = ??? | ||
+ | CH = ??? | ||
+ | DX = ??? | ||
+ | SeeAlso: AX=6E04, | ||
+ | ----------106E04------------------------------------- | ||
+ | INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ??? | ||
+ | AX = 6E04h | ||
+ | Return: BX = screen width (columns) | ||
+ | CX = screen height (lines) | ||
+ | AH = ??? (05h or FFh) | ||
+ | AL = ??? (04h or video mode) | ||
+ | SeeAlso: AX=6E00, | ||
+ | ----------106E05------------------------------------- | ||
+ | INT 10 - Paradise VGA internal - SET MODE | ||
+ | AX = 6E05h | ||
+ | BL = mode | ||
+ | Note: like AH=0, AL=BL. | ||
+ | SeeAlso: AH=00, | ||
+ | ----------106F00----------------------------- | ||
+ | INT 10 - VIDEO - INSTALLATION CHECK (Video7 VGA,VEGA VGA) | ||
+ | AX = 6F00h | ||
+ | Return: BX = 5637h (' | ||
+ | ----------106F01----------------------------- | ||
+ | INT 10 - VIDEO - GET MONITOR INFO (Video7 VGA,VEGA VGA) | ||
+ | AX = 6F01h | ||
+ | Return: AL = monitor type code (VEGA VGA only) | ||
+ | AH = status register information | ||
+ | | ||
+ | 0 = display enabled | ||
+ | 1 = vertical or horizontal retrace in progress | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0 = high resolution (>200 lines) | ||
+ | 1 = low resolution (<=200 lines) | ||
+ | | ||
+ | 0 = color | ||
+ | 1 = monochrome | ||
+ | | ||
+ | Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3 | ||
+ | ----------106F04----------------------------- | ||
+ | INT 10 - VIDEO - GET MODE AND SCREEN RESOLUTION (Video7 VGA, VEGA VGA) | ||
+ | AX = 6F04h | ||
+ | Return: AL = current video mode (see AX=6F05h) | ||
+ | BX = horizontal columns (text) or pixels (graphics) | ||
+ | CX = vertical columns (text) or pixels (graphics) | ||
+ | SeeAlso: AX=6F05h | ||
+ | ----------106F05----------------------------- | ||
+ | INT 10 - VIDEO - SET VIDEO MODE (Video7 VGA, VEGA EXTENDED EGA/VGA) | ||
+ | AX = 6F05h | ||
+ | BL = mode (see below) | ||
+ | SeeAlso: AH=00h, | ||
+ | |||
+ | Values for video mode: | ||
+ | text/ text pixel pixel colors disp scrn | ||
+ | grph resol box resoltn page addr | ||
+ | | ||
+ | 40h = T | ||
+ | 41h = T 132x25 | ||
+ | 42h = T 132x43 | ||
+ | 43h = T | ||
+ | 44h = T 100x60 | ||
+ | 45h = T 132x28 | ||
+ | 60h = G 752x410 | ||
+ | 61h = G 720x540 | ||
+ | = G 720x540 | ||
+ | 62h = G 800x600 | ||
+ | = G 800x600 | ||
+ | 63h = G | ||
+ | 64h = G | ||
+ | 65h = G | ||
+ | = G | ||
+ | 66h = G 640x400 256 | ||
+ | = G 640x400 256 | ||
+ | 67h = G 640x480 256 | ||
+ | = G 640x480 256 | ||
+ | 68h = G 720x540 256 | ||
+ | = G 720x540 256 | ||
+ | 69h = G 800x600 256 | ||
+ | = G 800x600 256 | ||
+ | 70h = G 752x410 | ||
+ | 71h = G 720x540 | ||
+ | 72h = G 800x600 | ||
+ | 73h = G | ||
+ | 74h = G | ||
+ | 75h = G | ||
+ | 76h = G 640x400 256gray | ||
+ | 77h = G 640x480 256gray | ||
+ | 78h = G 720x540 256gray | ||
+ | 79h = G 800x600 256gray | ||
+ | SeeAlso: AH=00h, | ||
+ | ----------106F06----------------------------- | ||
+ | INT 10 - VIDEO - SELECT AUTOSWITCH MODE (V7VGA,VEGA VGA) | ||
+ | AX = 6F06h | ||
+ | BL = Autoswitch mode select | ||
+ | 00h select EGA/ | ||
+ | 01h select Autoswitched VGA/ | ||
+ | 02h select ' | ||
+ | BH = enable/ | ||
+ | ----------106F07----------------------------- | ||
+ | INT 10 - VIDEO - GET VIDEO MEMORY CONFIGURATION (V7VGA,VEGA VGA) | ||
+ | AX = 6F07h | ||
+ | Return: AL = 6Fh | ||
+ | AH = bits 0-6 = number of 256K blocks of video memory | ||
+ | bit 7 = DRAM/VRAM (0: DRAM, 1: VRAM) | ||
+ | BH = chip revision (SR8F) (S/C Chip in VEGA VGA) | ||
+ | BL = chip revision (SR8E) (G/A Chip in VEGA VGA) | ||
+ | CX = 0000h | ||
+ | SeeAlso: AH=12h/ | ||
+ | ----------1070------------------------------- | ||
+ | INT 10 - VIDEO - GET ADDRESS OF VIDEO RAM (TANDY 2000 only) | ||
+ | AH = 70h | ||
+ | Return: AX:BX -> WORD containing green plane' | ||
+ | AX:CX -> WORD containing green plane' | ||
+ | AX:DX -> WORD containing segment of red (offset 0) and blue (offset | ||
+ | 4000) planes | ||
+ | SeeAlso: AH=71h | ||
+ | ----------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 | ||
+ | 00h mono | ||
+ | 01h CGA | ||
+ | 02h EGA | ||
+ | 03h digital multifrequency | ||
+ | 04h IBM PS/2 | ||
+ | 05h IBM 8514 | ||
+ | 06h SuperVGA | ||
+ | 07h analog multifrequency | ||
+ | 08h super multifrequency | ||
+ | CH = feature bits | ||
+ | bits 7,6: 00 = 256K memory | ||
+ | 01 = 512K memory | ||
+ | 10 = 1024K | ||
+ | 11 = 2048K memory | ||
+ | bit 5: special oscillator present | ||
+ | bit 4: VGA protect enabled | ||
+ | bit 0: 6845 emulation | ||
+ | DX = video board info | ||
+ | bits 4-15: board ID model | ||
+ | bits 0-3: board ID revision | ||
+ | DI = BCD BIOS version number | ||
+ | Note: board models for Trident-based Everex cards: | ||
+ | 236h Ultragraphics II | ||
+ | 620h Vision VGA | ||
+ | 673h EVGA | ||
+ | 678h Viewpoint | ||
+ | ----------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, | ||
+ | ----------107000BX0005----------------------- | ||
+ | INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO | ||
+ | AX = 7000h | ||
+ | BX = 0005h | ||
+ | CL = maximum number of modes to get info for | ||
+ | CH = mode type to get info for (see below) | ||
+ | DL = monitor type to get info for | ||
+ | ES:DI -> buffer for mode info (see below) | ||
+ | Return: CL = total number of modes fitting criteria | ||
+ | CH = size of each info record | ||
+ | SeeAlso: AX=7000h/ | ||
+ | |||
+ | Values for mode type: | ||
+ | 00h all modes | ||
+ | 01h monochrome text modes | ||
+ | 02h color text modes | ||
+ | 03h four-color CGA graphics modes | ||
+ | 04h two-color CGA graphics modes | ||
+ | 05h 16-color graphics modes | ||
+ | 06h 256-color graphics modes | ||
+ | |||
+ | Format of mode information record: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | bits 7,6 reserved | ||
+ | 5 monochrome mode | ||
+ | 4 interlaced display | ||
+ | 3 requires special oscillator | ||
+ | 2,1 memory required | ||
+ | 00 = 256K | ||
+ | 01 = 512K | ||
+ | 10 = 1024K | ||
+ | 11 = 2048K | ||
+ | 0 reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | bits 7-4 reserved | ||
+ | 3-0 bits per pixel | ||
+ | ----------1071------------------------------- | ||
+ | INT 10 - VIDEO - GET ADDRESS OF INCRAM (TANDY 2000 only) | ||
+ | AH = 71h | ||
+ | Return: AX:BX -> WORD containing segment address of INCRAM | ||
+ | AX:CX -> WORD containing offset of INCRAM | ||
+ | SeeAlso: AH=70h | ||
+ | ----------1072------------------------------- | ||
+ | INT 10 - VIDEO - SCROLL RIGHT PART OR ALL OF SCREEN (TANDY 2000 only) | ||
+ | AH = 72h | ||
+ | AL = number of columns to shift scroll area, 00h to clear entire area | ||
+ | BH = new attributes for blanked columns at left | ||
+ | CH,CL = row, column of upper left corner of scroll area | ||
+ | DH,DL = row, column of lower right corner of scroll area | ||
+ | SeeAlso: AH=06h, | ||
+ | ----------1073------------------------------ | ||
+ | INT 10 - VIDEO - SCROLL LEFT PART OR ALL OF SCREEN (TANDY 2000 only) | ||
+ | AH = 73h | ||
+ | AL = number of columns to shift scroll area, 00h to clear entire area | ||
+ | BH = new attributes for blanked columns at right | ||
+ | CH,CL = row, column of upper left corner of scroll area | ||
+ | DH,DL = row, column of lower right corner of scroll area | ||
+ | SeeAlso: AH=06h, | ||
+ | ----------107F00----------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO | ||
+ | AX = 7F00h | ||
+ | Return: AL != 7Fh if not supported | ||
+ | AL = 7Fh if supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | ES:DI -> info structure (see below) | ||
+ | 01h failed | ||
+ | SeeAlso: AX=4F00h | ||
+ | |||
+ | Format of info structure: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | alternating ResInfo (see below) and VESA mode information | ||
+ | (see AX=4F01h) blocks, terminated with an FFFFh word | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | array of bytes, each a multiple of the minimum time increment | ||
+ | | ||
+ | | ||
+ | bit 0: inverse supported | ||
+ | bits 1-7: reserved | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 31h 16 BYTEs reserved | ||
+ | Note: all DWORD pointers initially require segment fixups; if the segment | ||
+ | is 0000h, it should be changed to the returned ES, otherwise it | ||
+ | may be assumed to be correct | ||
+ | |||
+ | Format of ResInfo: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of font info table [array] entry: | ||
+ | Offset Size Description | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Values for clock value index: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0Fh 1 MHz (for powerdown) | ||
+ | ----------107F01BL00------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER | ||
+ | AX = 7F01h | ||
+ | BL = 00h | ||
+ | CX = adapter request | ||
+ | bits 1-0: adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA) | ||
+ | bit 2: reserved | ||
+ | bits 4-3: change displays (00 none, 01 analog 10 digital 11 panel) | ||
+ | bits 6-5: desired monitor sense (01 color, 10 mono, 11=8514) | ||
+ | bit 7: lock override | ||
+ | bit 8: alternate adapter mode | ||
+ | bits 15-9: reserved | ||
+ | Return: AL != 7Fh if not supported | ||
+ | AL = 7Fh if supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | Note: | ||
+ | SeeAlso: AX=7F00h, | ||
+ | ----------107F01BL01------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER | ||
+ | AX = 7F01h | ||
+ | BL = 01h | ||
+ | Return: AL != 7Fh if not supported | ||
+ | AL = 7Fh if supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | BX = adapter type (see AX=7F01h/ | ||
+ | DX = display type | ||
+ | bits 1-0: monitor sense (00 none, 01 color, 10 mono, 11=8514) | ||
+ | bit 2: multi-frequency analog monitor active | ||
+ | bit 3: LCD panel active | ||
+ | bit 4: plasma/ | ||
+ | bit 5: PS/2-type monitor active | ||
+ | bit 6: multi-frequency digital monitor active | ||
+ | bit 7: Enhanced Color Display monitor active | ||
+ | bit 8: alternate display active | ||
+ | bits 15-9: reserved | ||
+ | SeeAlso: AX=7F00h, | ||
+ | ----------107F01BL02------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT | ||
+ | AX = 7F01h | ||
+ | BL = 02h | ||
+ | CX = adapter request (see AX=7F01h/ | ||
+ | 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, | ||
+ | ----------107F02BL00------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT | ||
+ | AX = 7F02h | ||
+ | BL = 00h | ||
+ | CX = display output setting | ||
+ | bit 0: CRTC control in bits 2,1 valid | ||
+ | bit 1: enable digital output | ||
+ | bit 2: enable analog output | ||
+ | bit 3: panel control in bits 5,4 valid | ||
+ | bit 4: enable LCD output | ||
+ | bit 5: enable plasma/EL output | ||
+ | bit 6: inverse control in bit 7 valid | ||
+ | bit 7: 0=normal, 1=inverse | ||
+ | bits 15-8 reserved | ||
+ | Return: AL != 7Fh if not supported | ||
+ | AL = 7Fh if supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | SeeAlso: AX=7F00h, | ||
+ | ----------107F02BL01------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT | ||
+ | AX = 7F02h | ||
+ | BL = 01h | ||
+ | Return: AL != 7Fh if not supported | ||
+ | AL = 7Fh if supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | BX = display output setting (see AX=7F02h/ | ||
+ | CX = displays attached | ||
+ | bit 0: PS/2 display on analog output | ||
+ | bit 1: multi-frequency monitor on analog output | ||
+ | bit 2: LCD panel attached | ||
+ | bit 3: plasma/ | ||
+ | bit 4: multi-frequency monitor on digital output | ||
+ | bit 5: Enhanced Color Display attached to digital outpt | ||
+ | bit 6: alternate display | ||
+ | bits 15-7: reserved | ||
+ | 01h failed | ||
+ | SeeAlso: AX=7F00h, | ||
+ | ----------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/ | ||
+ | ----------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: | ||
+ | function may be used to switch the active video support back to | ||
+ | ROM after AX=7F03h/ | ||
+ | SeeAlso: AX=7F03h/ | ||
+ | ----------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, | ||
+ | ----------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: | ||
+ | video adapter while yielding increasing power savings | ||
+ | SeeAlso: AX=7F00h, | ||
+ | ----------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, | ||
+ | ----------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, | ||
+ | ----------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, | ||
+ | ----------107F05----------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - LOAD REGISTER | ||
+ | AX = 7F05h | ||
+ | ES:DI -> register value table (see below) | ||
+ | Return: AL != 7Fh if not supported | ||
+ | AL = 7Fh if supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | SeeAlso: AH=F1h, | ||
+ | |||
+ | Format of register value table: | ||
+ | Offset Size Description | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | ... (repeats until FFFFh base address) | ||
+ | ----------107F06----------------------------- | ||
+ | INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL | ||
+ | AX = 7F06h | ||
+ | BL = subfunction | ||
+ | 00h set multiple font state | ||
+ | CX = new state (00h off, 01h on) | ||
+ | 01h get multiple font state | ||
+ | Return: BL = current state (00h off, 01h on) | ||
+ | Return: AL != 7Fh if not supported | ||
+ | AL = 7Fh if supported | ||
+ | AH = status | ||
+ | 00h successful | ||
+ | 01h failed | ||
+ | SeeAlso: AH=11h | ||
+ | ----------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 | ||
+ | ----------1080--DX4456----------------------- | ||
+ | INT 10 U - VIDEO (DESQview 2.0x only) - internal - SET ??? HANDLER | ||
+ | AH = 80h | ||
+ | DX = 4456h (' | ||
+ | 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 | ||
+ | ----------1081--DX4456----------------------- | ||
+ | INT 10 U - VIDEO (DESQview 2.0x only) - internal - GET ??? | ||
+ | AH = 81h | ||
+ | DX = 4456h (' | ||
+ | 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 | ||
+ | ----------1082--DX4456----------------------- | ||
+ | INT 10 U - VIDEO (DESQview 2.0x only) - internal - GET CURRENT WINDOW INFO | ||
+ | AH = 82h | ||
+ | DX = 4456h (' | ||
+ | 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' | ||
+ | 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 | ||
+ | ----------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, | ||
+ | ----------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 | ||
+ | ----------108B------------------------------- | ||
+ | INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE | ||
+ | AH = 8Bh | ||
+ | SeeAlso: AH=92h, | ||
+ | ----------1090------------------------------- | ||
+ | INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE | ||
+ | AH = 90h | ||
+ | Return: AL = current video mode (see AH=00h) | ||
+ | SeeAlso: AH=91h | ||
+ | ----------1091------------------------------- | ||
+ | INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE | ||
+ | AH = 91h | ||
+ | Return: AL = 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 | ||
+ | Note: types less than 80h do not imply that the current user is on the host | ||
+ | SeeAlso: AH=90h | ||
+ | ----------1092------------------------------- | ||
+ | INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES | ||
+ | AH = 92h | ||
+ | Note: the terminal will be updated even when screen updates are inhibited if | ||
+ | TTY output is used | ||
+ | SeeAlso: AH=8Bh | ||
+ | ----------1093------------------------------- | ||
+ | INT 10 - Alloy MW386 - REDRAW SCREEN | ||
+ | AH = 93h | ||
+ | SeeAlso: AH=8Bh | ||
+ | ----------10BF00----------------------------- | ||
+ | INT 10 - VIDEO - Compaq Portable Extensions - SELECT EXTERNAL MONITOR | ||
+ | AX = BF00h | ||
+ | Note: all registers preserved and the internal monitor is blanked | ||
+ | the external monitor becomes the active monitor | ||
+ | SeeAlso: AX=BF01h | ||
+ | ----------10BF01----------------------------- | ||
+ | INT 10 - VIDEO - Compaq Portable Extensions - SELECT INTERNAL MONITOR | ||
+ | AX = BF01h | ||
+ | Note: all registers preserved and the external monitor is blanked | ||
+ | the internal monitor becomes the active monitor | ||
+ | SeeAlso: AX=BF00h | ||
+ | ----------10BF02----------------------------- | ||
+ | INT 10 - VIDEO - Compaq Portable Extensions - SET MASTER MODE OF CURRENT CTRLR | ||
+ | AX = BF02h | ||
+ | BH = master mode | ||
+ | 04h CGA | ||
+ | 05h EGA | ||
+ | 07h MDA | ||
+ | SeeAlso: AX=BF03h | ||
+ | ----------10BF03BX0000----------------------- | ||
+ | INT 10 - VIDEO - Compaq Portable/ | ||
+ | AX = BF03h | ||
+ | BX = 0000h | ||
+ | Return: BH = active monitor | ||
+ | 00h = external | ||
+ | 01h = internal | ||
+ | BL = master mode | ||
+ | 00h = switchable VDU not present | ||
+ | 04h = CGA | ||
+ | 05h = EGA | ||
+ | 07h = MDA | ||
+ | 08h = switchable LCD controller present | ||
+ | CH = 00h (reserved) | ||
+ | CL = switchable VDU mode supported | ||
+ | bit 0 = CGA supported | ||
+ | bits 1,2 = reserved (1) | ||
+ | bit 3 = MDA supported | ||
+ | bits 4-7 = reserved (1) | ||
+ | DH = internal monitor type | ||
+ | 00h = none | ||
+ | 01h = Dual-mode monitor | ||
+ | 02h = 5153 RGB monitor | ||
+ | 03h = Compaq Color monitor | ||
+ | 04h = 640x400 flat panel | ||
+ | 07h = LCD VGA | ||
+ | DL = external monitor type | ||
+ | 00h = none | ||
+ | 01h = dual-mode monitor | ||
+ | 02h = 5153 RGB monitor | ||
+ | 03h = Compaq Color monitor | ||
+ | 04h = 640x400 flat panel | ||
+ | 05h = VGC monochrome | ||
+ | 06h = VGC color | ||
+ | SeeAlso: AH=1Ah, | ||
+ | ----------10BF04----------------------------- | ||
+ | INT 10 - VIDEO - Compaq Portable Extensions - SET MODE SWITCH DELAY | ||
+ | AX = BF04h | ||
+ | BH = new state of delay | ||
+ | 00h enabled | ||
+ | 01h disabled | ||
+ | SeeAlso: AX=BF05h | ||
+ | ----------10BF05----------------------------- | ||
+ | INT 10 - VIDEO - Compaq Systempro Extensions - ENABLE/ | ||
+ | AX = BF05h | ||
+ | BH = new state of video | ||
+ | 00h off | ||
+ | 01h on | ||
+ | SeeAlso: AX=BF04h | ||
+ | ----------10BF06----------------------------- | ||
+ | INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE | ||
+ | AX = BF06h | ||
+ | CL = address to be read from gray scale table | ||
+ | Return: AL = bit 3-0 - Value read from gray scale table | ||
+ | CL = address to be read from gray scale table | ||
+ | SeeAlso: AH=12h/ | ||
+ | ----------10BF07----------------------------- | ||
+ | INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE | ||
+ | AX = BF07h | ||
+ | CH = value to write to gray scale table | ||
+ | CL = address to be written to gray scale table | ||
+ | SeeAlso: AX=BF06h | ||
+ | ----------10BF08----------------------------- | ||
+ | INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS | ||
+ | AX = BF08h | ||
+ | CH = bits 7-4 - Green weight | ||
+ | bits 3-0 - Blue weight | ||
+ | CL = bits 7-4 - unused | ||
+ | bits 3-0 - Red weight | ||
+ | ----------10CC00SI0000----------------------- | ||
+ | INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK) | ||
+ | AX = CC00h | ||
+ | SI = 0000h (if checking version) | ||
+ | Return: CX = ABCDh | ||
+ | AL = Ultravision extensions | ||
+ | 00h enabled | ||
+ | FFh disabled | ||
+ | AH = card designator | ||
+ | BX:00F0h -> palette values (for compatibility with NEWFONT) | ||
+ | DX = support for high resolution modes | ||
+ | 00h not active | ||
+ | 01h active | ||
+ | SI = UltraVision version number (v1.2+), high byte=major, | ||
+ | = unchanged for versions <1.2 | ||
+ | SeeAlso: AX=CC01h, | ||
+ | ----------10CC01----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS | ||
+ | AX = CC01h | ||
+ | Notes: | ||
+ | should be followed immediately by mode set to restore normal EGA/VGA | ||
+ | state | ||
+ | SeeAlso: AX=CC02h | ||
+ | ----------10CC02----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS | ||
+ | AX = CC02h | ||
+ | Note: | ||
+ | UltraVision state | ||
+ | SeeAlso: AX=CC01h | ||
+ | ----------10CD00----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA) | ||
+ | AX = CD00h | ||
+ | CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+) | ||
+ | DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh) | ||
+ | Notes: if palette locking is in effect for the current mode, the new colors | ||
+ | will be displayed immediately; | ||
+ | default palette | ||
+ | palette table 0 is reserved for the default palette and cannot be set | ||
+ | UltraVision always sets the border color to black | ||
+ | SeeAlso: AX=CD01h, | ||
+ | ----------10CD01----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA) | ||
+ | AX = CD01h | ||
+ | CL = palette locking value | ||
+ | 00h none | ||
+ | 01h text modes only (02h,03h) | ||
+ | FFh all modes (all standard color text and graphics modes) | ||
+ | Notes: | ||
+ | SeeAlso: AX=1000h, | ||
+ | ----------10CD02----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA) | ||
+ | AX = CD02h | ||
+ | Return: CL = palette table number | ||
+ | DS:DX -> 17-byte palette register list | ||
+ | DS:SI -> current font names table (see below) | ||
+ | Note: only the font names are valid on monochrome EGA systems | ||
+ | SeeAlso: AX=1009h, | ||
+ | |||
+ | Format of palette register list: | ||
+ | Offset Size Description | ||
+ | 00h 16 BYTEs colors for palette registers 00h through 0Fh | ||
+ | | ||
+ | |||
+ | Format of current font names table (v2+): | ||
+ | Offset Size standard EGA HiRes EGA VGA | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Format of current font names table (v1.x): | ||
+ | Offset Size HiRes EGA | ||
+ | | ||
+ | | ||
+ | ----------10CD03----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA) | ||
+ | AX = CD03h | ||
+ | Return: CL = palette locking value | ||
+ | 00h none | ||
+ | 01h text modes only | ||
+ | FFh all modes | ||
+ | SeeAlso: AX=CD01h | ||
+ | ----------10CD04----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA) | ||
+ | AX = CD04h | ||
+ | Return: AL = mode number | ||
+ | 11h 80x25 | ||
+ | 12h 80x43, 80x50 | ||
+ | 13h 80x34, 80x36 | ||
+ | 14h 80x60, 80x63 | ||
+ | 19h 94x25 | ||
+ | 1Ah 94x43, 94x50 | ||
+ | 1Bh 94x36 | ||
+ | 1Ch 94x63 | ||
+ | 21h 108x25 | ||
+ | 22h 108x43, 108x50 | ||
+ | 23h 107x34, 108x36 | ||
+ | 24h 108x60, 108x63 | ||
+ | 31h 120x25 | ||
+ | 32h 120x43, 120x50 | ||
+ | 33h 132x25 | ||
+ | 34h 132x44, 132x50 | ||
+ | 39h 120x36 | ||
+ | 3Ah 120x63 | ||
+ | 3Bh 132x36 | ||
+ | 3Ch 132x60 | ||
+ | SeeAlso: AH=0Fh, | ||
+ | ----------10CD05----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA) | ||
+ | AX = CD05h | ||
+ | CL = type | ||
+ | 00h line cursor | ||
+ | FFh box cursor | ||
+ | Note: sets default cursor type for text-based programs | ||
+ | SeeAlso: AH=01h, | ||
+ | ----------10CD06----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA) | ||
+ | AX = CD06h | ||
+ | Return: CL = type | ||
+ | 00h line cursor | ||
+ | FFh box cursor | ||
+ | SeeAlso: AH=03h, | ||
+ | ----------10CD07----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA) | ||
+ | AX = CD07h | ||
+ | CL = hardware underline status | ||
+ | 00h off (color systems only) | ||
+ | 01h underline below characters | ||
+ | 02h strike through characters | ||
+ | BL = foreground color for normal text (FFh = current) | ||
+ | BH = foreground color for bright text (FFh = current) | ||
+ | Return: CL = hardware underline status | ||
+ | BL = current foreground color for normal text | ||
+ | BH = current foreground color for bright text | ||
+ | Notes: when underline or strikeout is enabled in color text modes, the | ||
+ | specified colors will be assigned temporarily to colors 01h and 09h, | ||
+ | allowing affected text to match non-underlined text. The color | ||
+ | remapping uses values from the current onscreen palette regardless | ||
+ | of the palette locking status (see AX=CD01h) | ||
+ | specify the standard colors (BL=01h, | ||
+ | strikeout without color remapping | ||
+ | SeeAlso: AX=CD08h | ||
+ | ----------10CD08----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA) | ||
+ | AX = CD08h | ||
+ | Return: CL = hardware underline status (see AX=CD07h) | ||
+ | BL = foreground color for normal text | ||
+ | BH = foreground color for bright text | ||
+ | Note: only CL is valid on monochrome EGA systems | ||
+ | SeeAlso: AX=CD07h | ||
+ | ----------10CD10----------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA) | ||
+ | AX = CD10h | ||
+ | BH = bytes per character (08h, | ||
+ | CX = ABCDh load 9xN alternate font (v2+) | ||
+ | else number of characters to load | ||
+ | DX = character offset into font table | ||
+ | DS:SI -> 8-byte ASCII font name | ||
+ | ES:BP -> font definitions | ||
+ | Return: AX = FFFFh if invalid font parameters | ||
+ | Notes: | ||
+ | should be followed by a video mode set to reload character generator | ||
+ | SeeAlso: AX=1100h | ||
+ | ----------10CD------------------------------- | ||
+ | INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA) | ||
+ | AH = CDh | ||
+ | AL = text mode number (see AX=CD04h) | ||
+ | Return: AX = CDCDh if invalid mode | ||
+ | SeeAlso: AX=CD04h | ||
+ | ----------10EF------------------------------- | ||
+ | INT 10 - VIDEO - MSHERC.COM - INSTALLATION CHECK??? | ||
+ | AH = EFh | ||
+ | Return: DL = video adapter type | ||
+ | 00h original Hercules | ||
+ | 01h ??? \ one is probably Hercules Plus, the other | ||
+ | 02h ??? / Hercules InColor | ||
+ | FFh non-Hercules | ||
+ | DH = memory mode byte | ||
+ | 01h " | ||
+ | 03h " | ||
+ | Note: | ||
+ | makes their graphics libraries compatible with a Hercules card by | ||
+ | adding video modes 08h and 88h, and supporting text in the new | ||
+ | graphics modes. | ||
+ | Hercules card much like a CGA. | ||
+ | ----------10F0------------------------------- | ||
+ | INT 10 - EGA Register Interface Library - READ ONE REGISTER | ||
+ | AH = F0h | ||
+ | BL = register number | ||
+ | BH = 00h | ||
+ | DX = group index | ||
+ | Pointer/ | ||
+ | 00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes | ||
+ | 08h Sequencer (5 registers) 3C4h | ||
+ | 10h Graphics Controller (9 registers) 3CEh | ||
+ | 18h Attribute Controller (20 registers) 3C0h | ||
+ | Single registers | ||
+ | 20h Miscellaneous Output register 3C2h | ||
+ | 28h Feature Control register (3BAh mono modes, 3DAh color modes) | ||
+ | 30h Graphics 1 Position register 3CCh | ||
+ | 38h Graphics 2 Position register 3CAh | ||
+ | Return: BL = data | ||
+ | Note: | ||
+ | others | ||
+ | SeeAlso: AH=F1h, | ||
+ | ===== F1h - EGA Register Interface Library - WRITE ONE REGISTER ===== | ||
+ | |||
+ | AH = F1h | ||
+ | DX = group index (see AH=F0h) | ||
+ | if single register: | ||
+ | BL = value to write | ||
+ | otherwise | ||
+ | BL = register number | ||
+ | BH = value to write | ||
+ | Return: BL = data | ||
+ | Note: | ||
+ | others | ||
+ | SeeAlso: AX=7F05h, | ||
+ | ===== F2h - EGA Register Interface Library - READ REGISTER RANGE ===== | ||
+ | |||
+ | AH = F2h | ||
+ | CH = starting register number | ||
+ | CL = Number of registers (>1) | ||
+ | DX = group index | ||
+ | 00h CRTC (3B4h mono modes, 3D4h color modes) | ||
+ | 08h Sequencer 3C4h | ||
+ | 10h Graphics Controller 3CEh | ||
+ | 18h Attribute Controller 3C0h | ||
+ | ES:BX -> buffer, CL bytes | ||
+ | Note: | ||
+ | others | ||
+ | SeeAlso: AH=F0h, | ||
+ | ==== F3h - EGA Register Interface Library - WRITE REGISTER RANGE ==== | ||
+ | |||
+ | AH = F3h | ||
+ | CH = starting register | ||
+ | CL = number of registers (>1) | ||
+ | DX = group index (see AH=F2h) | ||
+ | ES:BX -> buffer, CL bytes | ||
+ | Note: | ||
+ | others | ||
+ | SeeAlso: AX=7F05h, | ||
+ | ===== F4h - EGA Register Interface Library - READ REGISTER SET ===== | ||
+ | |||
+ | AH = F4h | ||
+ | CX = number of registers to read (>1) | ||
+ | ES:BX -> table of records (see below) | ||
+ | Return: register values in table filled in | ||
+ | Note: | ||
+ | others | ||
+ | SeeAlso: AH=F0h, | ||
+ | |||
+ | == Format of entries in table of register records: == | ||
+ | Offset Size Description | ||
+ | | ||
+ | Pointer/ | ||
+ | 00h CRTC (3B4h mono modes, 3D4h color modes) | ||
+ | 08h Sequencer 3C4h | ||
+ | 10h Graphics Controller 3CEh | ||
+ | 18h Attribute Controller 3C0h | ||
+ | Single registers | ||
+ | 20h Miscellaneous Output register 3C2h | ||
+ | 28h Feature Control register (3BAh mono modes, 3DAh color) | ||
+ | 30h Graphics 1 Position register 3CCh | ||
+ | 38h Graphics 2 Position register 3CAh | ||
+ | | ||
+ | | ||
+ | ===== F5h - EGA Register Interface Library - WRITE REGISTER SET ===== | ||
+ | |||
+ | AH = F5h | ||
+ | CX = number of registers to write (>1) | ||
+ | ES:BX -> table of records (see AH=F4h) | ||
+ | Note: | ||
+ | others | ||
+ | SeeAlso: AX=7F05h, | ||
+ | |||
+ | ===== F6h - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS ===== | ||
+ | |||
+ | AH = F6h | ||
+ | Note: | ||
+ | others | ||
+ | SeeAlso: AH=F7h | ||
+ | ===== F7h - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE ===== | ||
+ | < | ||
+ | AH = F7h | ||
+ | DX = port number | ||
+ | | ||
+ | 00h CRTC (3B4h mono modes, 3D4h color modes) | ||
+ | 08h Sequencer 3C4h | ||
+ | 10h Graphics Controller 3CEh | ||
+ | 18h Attribute Controller 3C0h | ||
+ | | ||
+ | 20h Miscellaneous Output register 3C2h | ||
+ | 28h Feature Control register (3BAh mono modes, 3DAh color modes) | ||
+ | 30h Graphics 1 Position register 3CCh | ||
+ | 38h Graphics 2 Position register 3CAh | ||
+ | ES:BX -> table of one-byte entries, one byte to be written to each register | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | provided by the Microsoft Mouse driver, OS/2 compatibility box, and others | ||
+ | </ | ||
+ | SeeAlso: AH=F6h | ||
+ | ===== FAh ===== | ||
+ | ==== FAh - EGA Register Interface Library - INTERROGATE DRIVER ==== | ||
+ | < | ||
+ | AH = FAh | ||
+ | BX = 0000h | ||
+ | </ | ||
+ | < | ||
+ | Return: BX = 0000h if mouse driver not present | ||
+ | ES:BX -> EGA Register Interface version number, if present: | ||
+ | byte 0 = major release number | ||
+ | byte 1 = minor release number | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | provided by the Microsoft Mouse driver, OS/2 compatibility box, and others | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=F6h,INT 2F/AX=BC00h | ||
+ | ==== FAh - FASTBUFF.COM - INSTALLATION CHECK ==== | ||
+ | < | ||
+ | AH = FAh | ||
+ | </ | ||
+ | < | ||
+ | Return: AX = 00FAh if installed | ||
+ | ES = segment of resident code | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | FASTBUFF.COM is a keyboard speedup/ | ||
+ | </ | ||
+ | ===== FEh - TopView - GET SHADOW BUFFER ===== | ||
+ | < | ||
+ | AH = FEh | ||
+ | ES:DI -> assumed video buffer | ||
+ | B800h: | ||
+ | </ | ||
+ | < | ||
+ | Return: ES:DI -> actual video buffer for calling process | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | if no multitasker or RSIS-compliant environment is installed, ES:DI is returned unchanged; RSIS is the Relocated Screen Interface Specification | ||
+ | |||
+ | for display pages other than 0, use AH=05h and AH=0Fh to determine whether a particular page exists | ||
+ | |||
+ | TopView requires a call to AH=FFh to notify it that the screen has changed; DESQview will check for changes itself until the first call to AH=FFh | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=05h, | ||
+ | |||
+ | ===== FFh ===== | ||
+ | ==== FFh - TopView - UPDATE SCREEN FROM SHADOW BUFFER ==== | ||
+ | < | ||
+ | AH = FFh | ||
+ | CX = number of consecutive changed characters | ||
+ | ES:DI -> first changed character in shadow buffer | ||
+ | </ | ||
+ | <WRAP round box> | ||
+ | avoid CX=0000h | ||
+ | |||
+ | DESQview will discontinue the automatic screen updating initiated by AH=FEh after this call | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=FEh | ||
+ | === FFh - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS ==== | ||
+ | < | ||
+ | AH = FFh | ||
+ | AL = video mode | ||
+ | 00h 80x25 text | ||
+ | 01h default text | ||
+ | 02h CXxDX text | ||
+ | 03h biggest text | ||
+ | 04h 320x200 graphics | ||
+ | 05h default graphics | ||
+ | 06h CXxDX graphics | ||
+ | 07h biggest non-interlaced graphics | ||
+ | 08h biggest graphics | ||
+ | </ | ||
+ | |||
+ | SeeAlso: AH=00h,INT 21/ | ||
+ | ==== FF00h - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP ==== | ||
+ | < | ||
+ | AX = FF00h | ||
+ | </ | ||
+ | < | ||
+ | Return: BL = 00h not connected | ||
+ | = 01h connected | ||
+ | </ | ||
+ | ==== FF01h - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE ==== | ||
+ | < | ||
+ | AX = FF01h | ||
+ | </ | ||
+ | ==== FF02h - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED ==== | ||
+ | < | ||
+ | AX = FF02h | ||
+ | </ | ||
+ | < | ||
+ | Return: ES:DI -> ASCIZ phone number | ||
+ | </ |