home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-04-26 | 221.3 KB | 6,003 lines |
- Interrupt List Release 30 Last change 4/26/92
- This compilation is Copyright (c) 1989, 1990, 1991, 1992 Ralf Brown
- ---------------------------------------------
- Please redistribute the following files unmodified as a group, in a pair of
- archives named INTER30A and INTER30B (preferably the original authenticated
- PKZIP archives):
- INTERRUP.1ST the read-me file, containing credits, availability info
- INTERRUP.A INT 00 through INT 14 \
- INTERRUP.B INT 15 through INT 1F \ total 802 pages at
- INTERRUP.C INT 20 thru INT 21/7F \ 60 lines per page,
- INTERRUP.D INT 21/80 thru INT 2F/7F > 859 with INTPRINT -p
- INTERRUP.E INT 2F/80 thru INT 3F / (3655 entries)
- INTERRUP.F INT 40 through INT 67 /
- INTERRUP.G INT 68 through INT FF /
- INTERRUP.PRI a brief introduction to interrupts
- INTPRINT.COM a simple formatter that also generates a list summary
- INTPRINT.DOC instructions for INTPRINT
- MEMORY.LST format of the BIOS data area
- The following files should be distributed in an archive called INTER30C:
- INT.COM invoke interrupts from commandline
- INT2GUID.* convert list into TurboPower GUIDE or POPHELP database
- INT2HLP.BAT Perl script to convert list into QuickHelp database
- INT2QH.* program to convert list into QuickHelp database
- INTHELP.* convert list into TurboPower GUIDE database
- INTLIST.E Epsilon extension for handling list
- INTPRINT.C source code for INTPRINT
- ---------------------------------------------
- If you notice any mistakes or omissions, please let me know! It is only with
- YOUR help that the list can continue to grow at the current rate. Please send
- all changes to me rather than distributing a modified version of the list.
-
- Please read the file INTERRUP.1ST before asking me any questions. You may find
- that they have already been addressed.
-
- Ralf Brown
-
- ARPA: ralf@cs.cmu.edu
- UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf
- BIT: ralf%cs.cmu.edu@carnegie
- FIDO: Ralf Brown 1:129/26.1
- or post a message to me in the DR_DEBUG echo
- CIS: >INTERNET:ralf@cs.cmu.edu
-
- I reply to all e-mail submissions and inquiries, but some of my replies bounce
- because of bad return paths. If you don't get a response from me within a
- reasonable period of time, send it again with a better return path (starting at
- harvard or ucbvax for UUCP, from the ARPA Internet for others).
- ---------------------------------------------
- See INTERRUP.1ST for the key to system abbreviations and a list of the
- trademarks mentioned here.
- ---------------------------------------------
- DISCLAIMER: THIS MATERIAL IS PROVIDED "AS IS". I verify the information
- contained in this list to the best of my ability, but I cannot be held
- responsible for any problems caused by use or misuse of the information,
- especially for those functions not officially documented. If it is marked
- "internal" or undocumented, you should check it carefully to make sure it
- works the same way in your version of the software (and please let me know
- whether or not it works the same way). Information marked with "???" is
- known to be incomplete or guesswork.
- ---------------------------------------------
- The use of -> instead of = signifies that the indicated register or register
- pair contains a pointer to the specified item, rather than the item itself.
- One or more letters may follow the interrupt number; they have the following
- meanings: U - undocumented function, u - partially documented function,
- P - available only in protected mode, R - available only in real or V86 mode
- ----------00---------------------------------
- INT 00 - CPU-generated - DIVIDE ERROR
- Notes: generated if the divisor of a DIV or IDIV instruction is zero or the
- quotient overflows the result register; DX and AX will be unchanged.
- on an 8086/8088, the return address points to the following instruction
- on an 80286+, the return address points to the divide instruction
- SeeAlso: INT 04
- ----------01---------------------------------
- INT 01 - CPU-generated - SINGLE STEP
- Notes: generated after each instruction if TF (trap flag) is set; TF is
- cleared on invoking the single-step interrupt handler
- interrupts are prioritized such that external interrupts are invoked
- after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
- first instruction of the handler executes
- used by debuggers for single-instruction execution tracing, such as
- MSDOS DEBUG's T command
- SeeAlso: INT 03
- ----------01---------------------------------
- INT 01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
- Instruction address breakpoint fault - will return to execute instruction
- Data address breakpoint trap - will return to following instruction
- General detect fault, debug registers in use
- Task-switch breakpoint trap
- SeeAlso: INT 03
- ----------02---------------------------------
- INT 02 - external hardware - NON-MASKABLE INTERRUPT
- Notes: generated by the CPU when the input to the NMI pin is asserted
- return address points to start of interrupted instruction on 80286+
- although the Intel documentation states that this interrupt is
- typically used for power-failure procedures, it has many other uses
- on IBM-compatible machines:
- Memory parity error: all except Jr, CONV, and some machines
- without memory parity
- Breakout switch on hardware debuggers
- Coprocessor interrupt: all except Jr and CONV
- Keyboard interrupt: Jr, CONV
- I/O channel check: CONV, PS50+
- Disk-controller power-on request: CONV
- System suspend: CONV
- Real-time clock: CONV
- System watch-dog timer, time-out interrupt: PS50+
- DMA timer time-out interrupt: PS50+
- Low battery: HP 95LX
- Module pulled: HP 95LX
- ----------03---------------------------------
- INT 03 - CPU-generated - BREAKPOINT
- Notes: generated by the one-byte breakpoint instruction (opcode CCh)
- used by debuggers to implement breakpoints, such as MSDOS DEBUG's G
- command
- also used by Turbo Pascal versions 1,2,3 when {$U+} specified
- return address points to byte following the breakpoint instruction
- SeeAlso: INT 01
- ----------0309--SI4647-----------------------
- INT 03 - Soft-ICE BACK DOOR COMMANDS
- AH = 09h
- SI = 4647h ('FG')
- DI = 4A4Dh ('JM')
- AL = function
- 10h display string in Soft-ICE window
- DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
- 11h execute Soft-ICE command
- DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
- 12h get breakpoint information
- Return: BH = entry number of last breakpoint set
- BL = type of last breakpoint set
- 00h BPM (breakpoint register types)
- 01h I/O
- 02h INTerrupt
- 03h BPX (INT 03h-style breakpoint)
- 04h reserved
- 05h range
- DH = entry number of last breakpoint to be triggered
- DL = type of last triggered breakpoint (see above)
-
- ----------04---------------------------------
- INT 04 - CPU-generated - INTO DETECTED OVERFLOW
- Notes: the INTO instruction will generate this interrupt if OF (Overflow Flag)
- is set; otherwise, INTO is effectively a NOP
- may be used for convenient overflow testing (to prevent errors from
- propagating) instead of JO or a JNO/JMP combination
- SeeAlso: INT 00
- ----------05---------------------------------
- INT 05 - PRINT SCREEN
- Notes: normally invoked by the INT 09 handler when PrtSc key is pressed, but
- may be invoked directly by applications
- byte at 0050h:0000h contains status used by default handler
- 00h not active
- 01h PrtSc in progress
- FFh last PrtSc encountered error
- default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
- SeeAlso: INT 10/AH=12h/BL=20h
- ----------05---------------------------------
- INT 05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED
- Notes: generated by BOUND instruction when the value to be tested is less than
- the indicated lower bound or greater than the indicated upper bound.
- returning from this interrupt re-executes the failing BOUND instruction
- ----------06---------------------------------
- INT 06 - CPU-generated (80286+) - INVALID OPCODE
- Notes: generated when the CPU attempts to execute an invalid opcode (most
- protected-mode instructions are considered invalid in real mode)
- generated on BOUND, LDS, LES, or LIDT instructions which specify a
- register rather than a memory address
- return address points to beginning of invalid instruction
- with proper programming, this interrupt may be used to emulate
- instructions which do not exist; many 386 BIOSes emulate the 80286
- undocumented LOADALL instruction which was removed from the 80386+
- SeeAlso: INT 0C"CPU",INT 0D"CPU"
- ----------06---------------------------------
- INT 06 - HP 95LX - SLEEP/WAKEUP
- Note: called just before going into light or deep (shutdown) sleep and just
- after returning from light or deep sleep
- SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
- ----------07---------------------------------
- INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
- Notes: automatically called if a coprocessor instruction is encountered when
- no coprocessor is installed
- can be used to emulate a numeric coprocessor in software
- SeeAlso: INT 09"MATH UNIT PROTECTION"
- ----------08---------------------------------
- INT 08 - IRQ0 - SYSTEM TIMER
- Notes: generated 18.2 times per second by channel 0 of the 8254 system timer,
- this interrupt is used to keep the time-of-day clock updated
- programs which need to be invoked regularly should use INT 1C unless
- they need to reprogram the timer while still keeping the time-of-day
- clock running at the proper rate
- default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
- may be masked by setting bit 0 on I/O port 21h
- SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
- ----------08---------------------------------
- INT 08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
- Notes: called when multiple exceptions occur on one instruction, or an
- exception occurs in an exception handler
- called in protected mode if an interrupt above the defined limit of
- the interrupt vector table occurs
- return address points at beginning of instruction with errors or the
- beginning of the instruction which was about to execute when the
- external interrupt caused the exception
- if an exception occurs in the double fault handler, the CPU goes into
- SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
- this "triple fault" is a faster way of returning to real mode on
- many 80286 machines than the standard keyboard controller reset
- ----------09---------------------------------
- INT 09 - IRQ1 - KEYBOARD DATA READY
- Notes: generated when data is received from the keyboard. This is normally a
- scan code (from either a keypress *or* a key release), but may also
- be an ACK or NAK of a command on AT-class keyboards.
- may be masked by setting bit 1 on I/O port 21h
- if the BIOS supports an enhanced (101/102-key) keyboard, it calls
- INT 15/AH=4Fh after reading the scan code from the keyboard and
- before further processing
- the interrupt handler performs the following actions for certain
- special keystrokes:
- Ctrl-Break clear keyboard buffer, place word 0000h in buffer,
- invoke INT 1B, and set flag at 0040h:0071h
- SysRq invoke INT 15/AH=85h
- Ctrl-Numlock place system in a tight wait loop until next INT 09
- Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
- destination of the jump at that address)
- Shift-PrtSc invoke INT 05
- SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
- SeeAlso: INT 2F/AX=A901h,INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
- ----------09---------------------------------
- INT 09 - CPU-generated (80286+) - PROCESSOR EXTENSION PROTECTION ERROR
- Notes: called if the coprocessor attempts to access memory outside a segment
- boundary; it may occur at an arbitrary time after the coprocessor
- instruction was issued
- until the condition is cleared or the coprocessor is reset, the only
- coprocessor instruction which may be used is FNINIT; WAIT or other
- coprocessor instructions will cause a deadlock because the
- coprocessor is still busy waiting for data
- SeeAlso: INT 07"CPU"
- ----------09---------------------------------
- INT 09 P - internal hardware - RESERVED BY Intel (80486)
- Note: this exception has been moved to INT 0D
- SeeAlso: INT 09"MATH",INT 0D
- ----------0A---------------------------------
- INT 0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
- Notes: the TOPS and PCnet adapters use this interrupt request line by default
- DOS 3.2 revectors IRQ2 to a stack-switching routine
- on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
- connects to the slave 8259. The BIOS redirects the interrupt for
- IRQ9 back here.
- under DESQview, only the INT 15h vector and BASIC segment address (the
- word at 0000h:0510h) may be assumed to be valid for the handler's
- process
- many VGA boards do not implement the vertical retrace interrupt,
- including the IBM VGA Adapter where the traces are either cut or
- removed
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
- ----------0A---------------------------------
- INT 0A - IRQ2 - Tandy 1000-series HARD DISK
- Note: may be masked by setting bit 2 on I/O port 21h
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
- ----------0A---------------------------------
- INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
- Note: newer Roland cards and MIDI interfaces by other manufacturers use
- a jumper-selectable IRQ, but software and hardware generally defaults
- to IRQ2
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
- ----------0A---------------------------------
- INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
- Notes: automatically called during a task switch if the new TSS specified by
- the task gate is invalid for any of the following reasons:
- TSS limit is less than 43 (80286) or 103 (80386/80486)
- LDT selector invalid or segment not present
- null SS selector, or SS selector outside LDT/GDT limit
- stack segment is read-only
- stack segment DPL differs from new CPL, or RPL <> CPL
- CS selector is outside LDT/GDT limit or not code
- non-conforming code segment's DPL differs from CPL
- conforming code segment's DPL > CPL
- DS/ES selectors outside LDT/GDT limit or not readable segments
- the handler must use a task gate in order to have a valid TSS under
- which to execute; it must also reset the busy bit in the new TSS
- SeeAlso: INT 0B"CPU"
- ----------0B---------------------------------
- INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)
- Notes: the TOPS and PCnet adapters use this interrupt request line as an
- alternate
- on PS/2's, COM2 through COM8 share this interrupt; on many PC's, COM4
- shares this interrupt
- may be masked by setting bit 3 on I/O port 21h
- SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
- ----------0B---------------------------------
- INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT
- Notes: generated when loading a segment register if the segment descriptor
- indicates that the segment is not currently in memory, unless the
- segment is an LDT (see INT 0A"CPU") or stack segment (see
- INT 0C"CPU") needed by a task switch
- may be used to implement virtual memory by loading in segments as they
- are accessed, clearing the "not present" bit after loading
- SeeAlso: INT 0A"CPU",INT 0E"hardware"
- ----------0B---------------------------------
- INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
- Note: debounces key, places the keycode in I/O register 60h, and calls INT 09
- SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
- ----------0C---------------------------------
- INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
- Notes: on many PC's, COM3 shares this interrupt
- may be masked by setting bit 4 on I/O port 21h
- SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
- ----------0C---------------------------------
- INT 0C - CPU-generated (80286+) - STACK FAULT
- Notes: generated on stack overflow/underflow in protected mode
- generated in protected mode if an inter-level transition or task switch
- references a stack segment marked "not present"
- generated on accessing a word operand at SS:FFFFh in real mode
- the 80286 will shut down in real mode if SP=1 before a push. On the
- PC AT and compatibles, external circuitry generates a reset on
- shutdown.
- SeeAlso: INT 0B"CPU",INT 0D"CPU"
- ----------0C---------------------------------
- INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
- Call offset 100h in the interrupt handler's segment with
- AH = function
- 03h update screen
- 05h select next session
- AL = session number (00h-03h)
- Return: AL = session type code
- 00h not active
- 01h display session
- 02h printer session
- FEh invalid session number
- DS = requested session's data segment (0 if not active)
- Return: ???
-
- Format of emulator's data area (offset from interrupt handler's segment):
- Offset Size Description
- 13Eh BYTE bit flags for status line indicators turned on since this byte
- last zerod
- 13Fh BYTE bit flags for status line indicators turned off since this
- byte last set to FFh
- 140h WORD offset of EBCDIC to ASCII translation
- 146h WORD offset of EBCDIC screen buffer
- 148h WORD offset of EC (engineering change) level signature
- 150h BYTE "KEYI"
- 151h BYTE 5250 key scan code to be sent to remote
- 15Bh BYTE "SYSAV"
- 15Dh BYTE 5250 cursor column
- 15Eh BYTE 5250 cursor row
- 167h BYTE "DVCTAD"
- 178h BYTE "FLAGS"
- 184h BYTE "SESSNOAD"
- 193h BYTE "STNAD"
- 198h BYTE "NSDS"
- ----------0D---------------------------------
- INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
- Notes: under DESQview, only the INT 15h vector and BASIC segment address (the
- word at 0000h:0510h) may be assumed to be valid for the handler's
- process
- may be masked by setting bit 5 on I/O port 21h
- SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
- SeeAlso: INT 7D"GO32"
- ----------0D---------------------------------
- INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
- SeeAlso: INT 55
- ----------0D---------------------------------
- INT 0D - HP 95LX - INFRARED INTERRUPT
- SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
- ----------0D---------------------------------
- INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
- Notes: called in real mode when
- an instruction accesses a word operand located at offset FFFFh in
- segment CS, DS, ES, FG, or GS
- a PUSH MEM or POP MEM instruction contains an invalid bit encoding
- in the second byte
- an instruction exceeds the maximum length allowed (10 bytes for
- 80286, 15 bytes for 80386/80486)
- an instruction wraps from offset FFFFh to offset 0000h
- called in protected mode on protection violations not covered by INT 06
- through INT 0C, including
- segment limit violations
- write to read-only segments
- accesses using null DS or ES selectors
- accesses to segments with privilege greater than CPL
- wrong descriptor type
- called on 80486 protected-mode floating-point protection fault
- SeeAlso: INT 09"80486",INT 0C"STACK"
- ----------0E---------------------------------
- INT 0E - IRQ6 - DISKETTE CONTROLLER
- Notes: generated by floppy disk controller on completion of an operation
- default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
- may be masked by setting bit 6 on I/O port 21h
- SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
- ----------0E---------------------------------
- INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT
- Note: used to implement virtual memory
- SeeAlso: INT 0B"hardware"
- ----------0E---------------------------------
- INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT
- SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
- ----------0F---------------------------------
- INT 0F - IRQ7 - PARALLEL PRINTER
- Notes: generated by the LPT1 printer adapter when printer becomes ready
- most printer adapters do not reliably generate this interrupt
- the 8259 interrupt controller generates an interrupt corresponding to
- IRQ7 when an error condition occurs
- SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
- ----------0F---------------------------------
- INT 0F - HP 95LX - REAL-TIME CLOCK
- SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
- ----------10---------------------------------
- INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR
- Notes: 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"hardware",INT 75
- ----------1000-------------------------------
- INT 10 - VIDEO - SET VIDEO MODE
- AH = 00h
- AL = mode (see below)
- Return: AL = video mode flag (Phoenix BIOS)
- 20h mode > 7
- 30h modes 0-5 and 7
- 3Fh mode 6
- AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
- Notes: IBM standard modes do not clear the screen if the high bit of AL is set
- (EGA or higher only)
- the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
- SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA
- the installation check for Ahead adapters is the signature "AHEAD" at
- C000h:0025h
- the installation check for ATI adapters is the signature "761295520" at
- C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
- 31h for 18800
- 32h for 18800-1
- 33h for 18800-2
- 34h for 18800-4
- 35h for 18800-5
- the two bytes at C000h:0040h indicate the adapter type
- "31" VGA Wonder
- "32" EGA Wonder800+
- the byte at C000h:0042h contains feature flags
- bit 1: mouse port present
- bit 4: programmable video clock
- the byte at C000h:0044h contains additional feature flags if chipset
- byte > 30h
- 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:0037h, where XXh is
- 00h for Genoa 6200/6300
- 11h for Genoa 6400/6600
- 22h for Genoa 6100
- 33h for Genoa 5100/5200
- 55h for Genoa 5300/5400
- the installation check for Paradise adapters is the signature "VGA=" at
- C000h:007Dh
- SeeAlso: AX=0070h,AX=007Eh,AX=10F0h,AX=6F05h,AH=FFh"GO32",INT 5F/AH=00h
-
- Values for video mode:
- text/ text pixel pixel colors disply scrn system
- grph resol box resoltn pages addr
- 00h = T 40x25 8x8 16gray 8 B800 CGA,PCjr
- = T 40x25 8x14 16gray 8 B800 EGA
- = T 40x25 8x16 16 8 B800 MCGA
- = T 40x25 9x16 16 8 B800 VGA
- 01h = T 40x25 8x8 16 8 B800 CGA,PCjr
- = T 40x25 8x14 16 8 B800 EGA
- = T 40x25 8x16 16 8 B800 MCGA
- = T 40x25 9x16 16 8 B800 VGA
- 02h = T 80x25 8x8 16gray 4 B800 CGA,PCjr
- = T 80x25 8x14 16gray 4 B800 EGA
- = T 80x25 8x16 16 4 B800 MCGA
- = T 80x25 9x16 16 4 B800 VGA
- 03h = T 80x25 8x8 16 4 B800 CGA,PCjr
- = T 80x25 8x14 16 4 B800 EGA
- = T 80x25 8x16 16 4 B800 MCGA
- = T 80x25 9x16 16 4 B800 VGA
- 04h = G 40x25 8x8 320x200 4 B800 CGA,PCjr,EGA,MCGA,VGA
- 05h = G 40x25 8x8 320x200 4gray B800 CGA,PCjr,EGA
- = G 40x25 8x8 320x200 4 B800 MCGA,VGA
- 06h = G 80x25 8x8 640x200 2 B800 CGA,PCjr,EGA,MCGA,VGA
- 07h = T 80x25 9x14 mono var B000 MDA,Hercules,EGA
- = T 80x25 9x16 mono B000 VGA
- 08h = G 20x25 8x8 160x200 16 PCjr, Tandy 1000
- = T 132x25 8x8 16 B800 ATI EGA/VGA Wonder [1]
- = T 132x25 8x8 mono B000 ATI EGA/VGA Wonder [1]
- = G 90x43 8x8 720x352 mono B000 Hercules + MSHERC.COM
- 09h = G 40x25 8x8 320x200 16 PCjr
- 0Ah = G 80x25 8x8 640x200 4 PCjr, Tandy 1000
- 0Bh = reserved (used internally by EGA BIOS)
- = G 640x200 16 Tandy 1000 SL/TL
- 0Ch = reserved (used internally by EGA BIOS)
- 0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
- 0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
- 0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
- 10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
- = G 640x350 16 A000 256k EGA,VGA
- 11h = G 80x30 8x16 640x480 mono A000 VGA,MCGA,ATI EGA,ATI VIP
- 12h = G 80x30 8x16 640x480 16/256k A000 VGA,ATI VIP
- = G 80x30 8x16 640x480 16/64 A000 ATI EGA Wonder
- = G 640x480 16 UltraVision+256K EGA
- 13h = G 40x25 8x8 320x200 256/256k A000 VGA,MCGA,ATI VIP
- 14h = T 132x25 Nx16 16 XGA, IBM Enhanced VGA [2]
- = G 80x25 8x8 640x200 Lava Chrome II EGA
- = G 640x400 16 Tecmar VGA/AD
- 15h = G 80x25 8x14 640x350 Lava Chrome II EGA
- 16h = G 80x25 8x14 640x350 Lava Chrome II EGA
- = G 800x600 16 Tecmar VGA/AD
- 17h = G 80x34 8x14 640x480 Lava Chrome II EGA
- = T 132x25 Tecmar VGA/AD
- 18h = T 132x44 8x8 mono Tseng Labs EVA
- = T 132x44 8x8 16/256 2 B000 Tseng ET4000 chipset
- = G 80x34 8x14 640x480 Lava Chrome II EGA
- = G 1024x768 16 Tecmar VGA/AD
- 19h = T 132x25 8x14 mono Tseng Labs EVA
- = T 132x25 8x14 16/256 4 B000 Tseng ET4000 chipset
- 1Ah = T 132x28 8x13 mono Tseng Labs EVA
- = T 132x28 8x13 16/256 4 B000 Tseng ET4000 chipset
- = G 640x350 256 Tecmar VGA/AD
- 1Bh = G 640x400 256 Tecmar VGA/AD
- 1Ch = G 640x480 256 Tecmar VGA/AD
- 1Dh = G 800x600 256 Tecmar VGA/AD
- 20h = G 240x128 B000 HP 95LX
- 21h = T 132x60 16 2 B800 Tseng ET4000 chipset
- = G 80x43 8x8 720x348 mono B000 DESQview 2.x+Hercules [3]
- 22h = T 132x44 8x8 Tseng Labs EVA
- = T 132x44 8x8 16/256 2 B800 Tseng ET4000 chipset
- = T 132x44 8x8 Ahead Systems EGA2001
- = T 132x44 8x8 16 2 B800 Ahead B
- = T 132x44 16 Orchid Prodesigner VGA
- = T 132x43 Allstar Peacock (VGA)
- = G 80x43 8x8 720x348 mono B800 DESQview 2.x+Hercules [3]
- 23h = T 132x25 6x14 Tseng Labs EVA
- = T 132x25 8x14 16/256 4 B800 Tseng ET4000 chipset
- = T 132x25 8x14 Ahead Systems EGA2001
- = T 132x25 8x14 16 4 B800 Ahead B
- = T 132x25 8x8 16 B800 ATI EGA Wonder,ATI VIP
- = T 132x28 Allstar Peacock (VGA)
- = T 132x28 16 Orchid Prodesigner VGA
- 24h = T 132x28 6x13 Tseng Labs EVA
- = T 132x28 8x13 16/256 4 B800 Tseng ET4000 chipset
- = T 132x28 8x12 16 1 B800 Ahead B
- = T 132x25 Allstar Peacock (VGA)
- = T 132x25 16 Orchid Prodesigner VGA
- 25h = G 80x60 8x8 640x480 Tseng Labs EVA
- = G 80x60 8x8 640x480 16/256 1 A000 Tseng ET4000 chipset
- = G 640x480 16 VEGA VGA
- = G 80x60 8x8 640x480 16 A000 Orchid Prodesigner VGA
- = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
- = G 640x480 16 NEC GB-1
- 26h = T 80x60 8x8 Tseng Labs EVA
- = T 80x60 8x8 16/256 2 B800 Tseng ET4000 chipset
- = T 80x60 Allstar Peacock (VGA)
- = T 80x60 16 Orchid ProDesigner VGA
- = G 80x60 8x8 640x480 Ahead Systems EGA2001
- = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
- 27h = T 132x25 8x8 mono B000 ATI EGA Wonder,ATI VIP
- = G 720x512 16 VEGA VGA
- = G 720x512 16 Genoa
- 28h = T ???x??? VEGA VGA
- 29h = G 800x600 16 VEGA VGA
- = G 100x37 8x16 800x600 16 A000 Orchid
- = G 800x600 16 A000 STB,Genoa,Sigma
- = G 800x600 16 Allstar Peacock (VGA)
- = G 100x37 8x16 800x600 16/256 1 A000 Tseng ET3000/4000 chipset
- = G 800x600 ??? EIZO MDB10
- 2Ah = T 100x40 Allstar Peacock (VGA)
- = T 100x40 8x16 16 Orchid Prodesigner VGA
- = T 100x40 8x15 16/256 4 B800 Tseng ET4000 chipset
- 2Dh = G 640x350 256 VEGA VGA
- = G 640x350 256/256k A000 Orchid, Genoa, STB
- = G 80x25 8x14 640x350 256/256k 1 A000 Tseng ET3000/4000 chipset
- 2Eh = G 640x480 256 VEGA VGA
- = G 80x30 8x16 640x480 256/256k A000 Orchid
- = G 640x480 256/256k A000 STB,Genoa,Sigma
- = G 80x30 8x16 640x480 256/256k 1 A000 Tseng ET3000/4000 chipset
- 2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
- = G 720x512 256 VEGA VGA
- = G 720x512 256 Genoa
- = G 80x25 8x16 640x400 256/256k 1 A000 Tseng ET4000 chipset
- 30h = G 800x600 256 VEGA VGA
- = G 100x37 8x16 800x600 256/256k A000 Orchid
- = G 800x600 256/256k A000 STB,Genoa,Sigma
- = G 720x350 2 3270 PC
- = G 800x600 256 Cardinal
- = G ???x??? B800 AT&T 6300
- = G 100x37 8x16 800x600 256/256k 1 A000 Tseng ET3000/4000 chipset
- 32h = T 80x34 8x10 16 4 B800 Ahead B (Wizard/3270)
- 33h = T 132x44 8x8 16 B800 ATI EGA Wonder,ATI VIP
- = T 80x34 8x8 16 4 B800 Ahead B (Wizard/3270)
- 34h = T 80x66 8x8 16 4 B800 Ahead B (Wizard/3270)
- 36h = G 960x720 16 VEGA VGA
- = G 960x720 16 STB
- = G 960x720 16 Tseng ET3000 only
- 37h = G 1024x768 16 VEGA VGA
- = G 128x48 8x16 1024x768 16 A000 Orchid
- = G 1024x768 16 A000 STB,Genoa,Sigma
- = G 1024x768 16 Definicon
- = G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000
- = T 132x44 8x8 mono B800 ATI EGA Wonder,ATI VIP
- 38h = G 1024x768 256 STB VGA/EM-16 Plus (1MB)
- = G 128x48 8x16 1024x768 256/256k 1 A000 Tseng ET4000 chipset
- = G 1024x768 256 Orchid ProDesigner II
- 3Dh = G 1280x1024 16 Definicon
- = G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 BIOS v3.00[6]
- 3Eh = G 1280x961 16 Definicon
- 40h = G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
- = G 80x25 8x16 640x400 2 1 B800 Compaq Portable
- = T 80x43 VEGA VGA, Tecmar VGA/AD
- = T 80x43 Video7 V-RAM VGA
- = T 80x43 Tatung VGA
- = T 100x30 16 MORSE VGA
- 41h = G 640x200 16 1 AT&T 6300
- = T 132x25 VEGA VGA
- = T 132x25 Tatung VGA
- = T 132x25 Video7 V-RAM VGA
- = T 100x50 16 MORSE VGA
- 42h = G 80x25 8x16 640x400 16 AT&T 6300, AT&T VDC600
- = T 132x43 VEGA VGA
- = T 132x43 Tatung VGA
- = T 132x43 Video7 V-RAM VGA
- = T 80x34 9x10 4 4 B800 Ahead B (Wizard/3270)
- = T 100x60 16 MORSE VGA
- 43h = G 640x200 of 640x400 viewport AT&T 6300 (unsupported)
- = T 80x60 VEGA VGA
- = T 80x60 Tatung VGA
- = T 80x60 Video7 V-RAM VGA
- = T 80x45 9x8 4 4 B800 Ahead B (Wizard/3270)
- = T 100x75 16 MORSE VGA
- 44h = disable VDC and DEB output AT&T 6300
- = T 100x60 VEGA VGA
- = T 100x60 Tatung VGA
- = T 100x60 Video7 V-RAM VGA
- 45h = T 132x28 Tatung VGA
- = T 132x28 Video7 V-RAM VGA
- 46h = G 100x40 8x15 800x600 2 AT&T VDC600
- 47h = G 100x37 8x16 800x600 16 AT&T VDC600
- 48h = G 80x50 8x8 640x400 2 B800 AT&T 6300, AT&T VDC600
- 49h = G 80x30 8x16 640x480 Lava Chrome II EGA
- 4Dh = T 120x25 VEGA VGA
- 4Eh = T 120x43 VEGA VGA
- 4Fh = T 132x25 VEGA VGA
- 50h = G 80x30 8x16 640x480 16 Paradise EGA-480
- = T 80x30 8x16 16/256k B800 Trident TVGA 8800/8900
- = T 80x34 Lava Chrome II EGA
- = T 80x43 mono VEGA VGA
- = G 640x480 mono??? Taxan 565 EGA
- = T 132x25 9x14 mono Ahead Systems EGA2001
- = T 132x25 9x14 4 4 B800 Ahead B
- = T 132x25 8x14 16 8 B800 OAK Technologies VGA-16
- = T 132x30 16 MORSE VGA
- 51h = T 80x30 8x16 Paradise EGA-480
- = T 80x30 Lava Chrome II EGA
- = G 80x34 8x14 640x480 16 ATI EGA Wonder
- = T 80x43 8x11 16/256k B800 Trident TVGA 8800/8900
- = T 132x25 mono VEGA VGA
- = T 132x43 8x8 16 5 B800 OAK Technologies VGA-16
- = T 132x28 9x12 4 4 B800 Ahead B
- = T 132x50 16 MORSE VGA
- 52h = T 80x60 Lava Chrome II EGA
- = T 80x60 8x8 16/256k B800 Trident TVGA 8800/8900
- = G 94x29 8x14 752x410 16 ATI EGA Wonder
- = G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
- = T 132x43 mono VEGA VGA
- = T 132x44 9x8 mono Ahead Systems EGA2001
- = T 132x44 9x8 4 2 B800 Ahead B
- = T 132x60 16 MORSE VGA
- 53h = G 100x40 8x14 800x560 16 ATI EGA Wonder,ATI VIP
- = G 640x480 256 Oak VGA
- = T 132x25 8x14 16/256k B800 Trident TVGA 8800/8900
- = T 132x43 Lava Chrome II EGA
- = T 80x60 16 MORSE VGA
- = G AX PC
- 54h = G 100x42 8x14 800x600 16 A000 ATI EGA Wonder, VGA Wonder
- = G 800x600 256 Oak VGA
- = T 132x25 Lava Chrome II EGA
- = T 132x30 8x16 16/256k B800 Trident TVGA 8800/8900
- = T 132x43 8x8 Paradise EGA-480
- = T 132x43 7x9 16/256k B800 Paradise VGA
- = T 132x43 8x9 16/256k B800 Paradise VGA on multisync
- = T 132x43 Taxan 565 EGA
- = T 132x43 AST VGA Plus
- = T 132x43 Hewlett-Packard D1180A
- = T 132x43 7x9 16 AT&T VDC600
- 55h = T 80x66 8x8 16/256k A000 ATI VIP
- = T 132x25 8x14 Paradise EGA-480
- = T 132x25 7x16 16/256k B800 Paradise VGA
- = T 132x25 8x16 16/256k B800 Paradise VGA on multisync
- = T 132x25 Taxan 565 EGA
- = T 132x25 AST VGA Plus
- = T 132x25 Hewlett-Packard D1180A
- = T 132x25 7x16 16 AT&T VDC600
- = T 132x43 8x11 16/256k B800 Trident TVGA 8800/8900
- = G 94x29 8x14 752x410 Lava Chrome II EGA
- = G 128x48 8x16 1024x768 16/256k A000 ATI VGA Wonder v4+ [4]
- = G 1024x768 16/256h ATI VGA Wonder Plus
- 56h = T 132x43 8x8 3??? 2 B000 NSI Smart EGA+
- = T 132x43 7x9 4 B000 Paradise VGA
- = T 132x43 8x9 4 B000 Paradise VGA on multisync
- = T 132x43 mono Taxan 565 EGA
- = T 132x43 7x9 2 AT&T VDC600
- = T 132x60 8x8 16/256k B800 Trident TVGA 8800/8900
- = G 1024x768 16 Oak VGA
- 57h = T 132x25 8x14 3??? 4 B000 NSI Smart EGA+
- = T 132x25 7x16 4 B000 Paradise VGA
- = T 132x25 8x16 4 B000 Paradise VGA on multisync
- = T 132x25 mono Taxan 565 EGA
- = T 132x25 7x16 2 AT&T VDC600
- = T 132x25 9x14 16/256k B800 Trident TVGA 8800/8900
- 58h = G 100x75 8x8 800x600 16/256k A000 Paradise VGA
- = G 100x75 8x8 800x600 16 AT&T VDC600
- = T 80x33 8x14 16 B800 ATI EGA Wonder,ATI VIP
- = G 800x600 16 AST VGA Plus, Compaq VGA
- = G 800x600 16 Dell VGA
- = G 800x600 16 Hewlett-Packard D1180A
- = G 800x600 ??? ELT VGA PLUS 16
- = T 132x30 9x16 16/256k B800 Trident TVGA 8800/8900
- 59h = G 100x75 8x8 800x600 2 A000 Paradise VGA
- = G 100x75 8x8 800x600 2 AT&T VDC600
- = T 80x66 8x8 16/256k A000 ATI VIP
- = G 800x600 2 AST VGA Plus, Compaq VGA
- = G 800x600 2 Dell VGA
- = G 800x600 2 Hewlett-Packard D1180A
- = T 132x43 9x11 16/256k B800 Trident TVGA 8800/8900
- 5Ah = T 132x60 9x8 16/256k B800 Trident TVGA 8800/8900
- 5Bh = G 800x600 16 Maxxon, SEFCO TVGA, Imtec
- = G 640x350 256 Genoa 6400
- = T 80x30 8x16 B800 ATI VGA Wonder (undoc)
- = G 100x75 8x8 800x600 16/256k A000 Trident TVGA 8800, 8900
- = G 800x600 ??? Vobis MVGA
- 5Ch = G 640x400 256 Logix, ATI Prism Elite
- = G 640x400 256 Maxxon, SEFCO TVGA, Imtec
- = G 80x25 8x16 640x400 256/256k A000 Zymos Poach, Hi Res 512
- = G 80x25 8x16 640x400 256/256k A000 Trident TVGA 8800/8900
- = G 640x480 256 Genoa 6400
- 5Dh = G 640x480 256 Logix, ATI Prism Elite
- = G 640x480 256 Maxxon, SEFCO TVGA, Imtec
- = G 80x30 8x16 640x480 256/256k A000 Zymos Poach, Hi Res 512
- = G 80x30 8x16 640x480 256/256k A000 Trident TVGA 8800 (512K)
- 5Eh = G 640x400 256 Paradise VGA,VEGA VGA
- = G 640x400 256 AST VGA Plus
- = G 640x400 256 Compaq VGA, Dell VGA
- = G 80x25 8x16 640x400 256 AT&T VDC600
- = G 800x600 16 Logix, ATI Prism Elite
- = G 800x600 256 Genoa 6400
- = G 100x75 8x8 800x600 256/256k A000 Zymos Poach, Trident 8900
- = G 100x75 8x8 800x600 256/256k A000 Hi Res 512
- 5Fh = G 640x480 256 Paradise VGA
- = G 640x480 256 AST VGA Plus
- = G 640x480 256 Compaq VGA, Dell VGA
- = G 640x480 256 Hewlett-Packard D1180A
- = G 80x30 8x16 640x480 256 AT&T VDC600 (512K)
- = G 1024x768 16 Logix, ATI Prism Elite
- = G 1024x768 16 Maxxon, Genoa 6400, Imtec
- = G 128x48 8x16 1024x768 16/256k A000 Zymos Poach, Hi Res 512
- = G 128x48 8x16 1024x768 16/256k A000 Trident TVGA 88/8900 512K
- 60h = G 80x??? ???x400 Corona/Cordata BIOS 4.10+
- = G 752x410 VEGA VGA
- = G 752x410 16 Tatung VGA
- = G 752x410 16 Video7 V-RAM VGA
- = G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
- = G 128x48 8x16 1024x768 4/256k A000 Trident TVGA 8900
- = T 132x25 8x14 16/64 8 B800 Quadram Ultra VGA
- 61h = G ???x400 Corona/Cordata BIOS 4.10+
- = G 720x540 VEGA VGA
- = G 720x540 16 Tatung VGA
- = G 720x540 16 Video7 V-RAM VGA
- = G 80x25 8x16 640x400 256 A000 ATI VGA Wonder,VGA Wonder+
- = G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
- = G 96x64 8x16 768x1024 16/256k A000 Trident TVGA 88/8900 512K
- = T 132x29 8x12 16/64 8 B800 Quadram Ultra VGA
- 62h = G 800x600 VEGA VGA
- = G 800x600 16 Tatung VGA
- = G 800x600 16 Video7 V-RAM VGA
- = G 80x30 8x16 640x480 256 A000 ATI VGA Wonder,VGA Wonder+
- = G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
- = G 128x48 8x16 1024x768 256/256k A000 Trident TVGA 8900, Zymos
- = T 132x32 8x11 16/64 6 B800 Quadram Ultra VGA
- 63h = G 1024x768 2 Video7 V-RAM VGA
- = G 100x42 8x14 800x600 256 A000 ATI VGA Wonder,VGA Wonder+
- = G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
- = T 132x44 8x8 16/64 5 B800 Quadram Ultra VGA
- = G 720x540 16 MORSE VGA
- 64h = G 1024x768 4 Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 256 A000 ATI VGA Wonder Plus
- = G 800x600 16 MORSE VGA
- = G 800x600 ??? SAMPO-Mira VGA
- 65h = G 1024x768 16 Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 16 A000 ATI VGA Wonder
- 66h = G 640x400 256 Tatung VGA
- = G 640x400 256 Video7 V-RAM VGA
- 67h = G 640x480 256 Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 4 A000 ATI VGA Wonder
- 69h = G 720x540 256 Video7 V-RAM VGA
- 6Ah = G 800x600 16 A000 VESA standard interface
- = G 800x600 16 Genoa 6400
- = G 800x600 16 A000 Ahead A
- = G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) (see 71h)
- = G 800x600 16 Zymos Poach, Hi Res 512
- = G 800x600 16 Epson LT-386SX in CRT Mode
- = G 800x600 16 Compuadd 316SL in CRT Mode
- = G 100x42 8x14 800x600 A000 ATI VGA Wonder (undoc)
- 70h = G 800x600 16 C&T chipset, Cardinal
- = G 90x28 8x14 720x392 16 1 A000 Ahead B
- = T 40x25 8x8 16 8 B800 Quadram (CGA double scan)
- = extended mode set (see AX=0070h) Everex Micro Enhancer EGA
- 71h = G 100x35 8x16 800x600 16of64 A000 NSI Smart EGA+
- = G 960x720 16 C&T chipset, Cardinal
- = G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
- = T 80x25 8x8 16 8 B800 Quadram (CGA double scan)
- 72h = G 1024x768 16 C&T chipset, Cardinal
- = T 80x60 8x8 16 B800 Quadram Ultra VGA
- = G 640x480 32768 A000 ATI
- 73h = G 80x60 8x8 640x480 16??? A000 Quadram Ultra VGA
- 74h = G 640x400 2 B800 Toshiba 3100 AT&T mode
- = G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
- = T 80x66 8x8 16 B800 Quadram Ultra VGA
- 75h = G 128x48 8x16 1024x768 4 1 A000 Ahead B
- = G 80x66 640x528 16??? A000 Quadram Ultra VGA
- = G 640x528 16 Geno Super EGA Hirez+
- 76h = G 128x48 8x16 1024x768 2 1 A000 Ahead B
- = T 94x29 8x14 16 B800 Quadram Ultra VGA
- 77h = G 94x29 752x410 16??? A000 Quadram Ultra VGA
- = G 752x410 16 Genoa Super EGA Hirez+
- 78h = G 640x400 256 STB VGA/EM-16 Plus
- = G 640x400 256 Cardinal, C&T chipset
- = T 100x75 8x8 16 B800 Quadram Ultra VGA
- 79h = G 640x480 256 Cardinal, C&T chipset
- = G 100x75 800x600 16??? A000 Quadram Ultra VGA
- = G 800x600 16 Genoa Super EGA Hirez+
- 7Ah = G 720x540 256 C&T chipset, Cardinal
- = T 114x60 8x8 16 B800 Quadram Ultra VGA
- 7Bh = G 800x600 256 C&T chipset, Cardinal
- = G 114x60 912x480 16??? A000 Quadram Ultra VGA
- = G 912x480 16 Genoa Super EGA Hirez+
- 7Ch = G 512x512 16 Genoa
- 7Dh = G 512x512 256 Genoa
- 7Eh = special mode set (see AX=007Eh) Paradise VGA, AT&T VDC600
- 7Fh = special function set (see AX=007Fh) Paradise VGA, AT&T VDC600
- 82h = T 80x25 B&W AT&T VDC overlay mode [5]
- 83h = T 80x25 AT&T VDC overlay mode [5]
- 86h = G 640x200 B&W AT&T VDC overlay mode [5]
- 88h = G 90x43 8x8 720x352 mono B000 Hercules + MSHERC.COM
- C0h = G 640x400 2/prog pallet AT&T VDC overlay mode [5]
- C4h = disable output AT&T VDC overlay mode [5]
- D0h = G 640x400 2 B800 DEC VAXmate AT&T mode
- Notes:
- [1] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
- SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
- otherwise to mode 23h, thus selecting the appropriate (monochrome or
- color) 132x25 character mode.
- for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
- resident
- [2] early XGA boards support 132-column text but do not have this BIOS mode
- [3] DESQview intercepts calls to change into these two modes (21h is page 0,
- 22h is page 1) even if there is no Hercules graphics board installed
- [4] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
- [5] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
- 40h, or 44h
- [6] BIOS text support is broken in this undocumented mode; scrolling moves only
- about 1/3 of the screen (and does even that portion incorrectly), while
- screen clears only clear about 3/4.
- ----------100070-----------------------------
- INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
- AX = 0070h
- BL = mode (see below)
- SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
-
- Values for video mode:
- text/ text pixel pixel colors disp scrn monitor adapter
- grph resol box resoltn page addr
- 00h = G 640x480 16 multsync EGA,VGA
- 01h = G 752x410 16 multsync EGA,VGA
- 02h = G 800x600 16 multsync EGA,VGA
- 03h = T 80x34 multsync EGA,VGA
- 04h = T 80x60 multsync EGA,VGA
- 05h = T 94x29 multsync EGA only
- 06h = T 94x51 multsync EGA only
- 07h = T 100x43 8x14 16 VGA only
- 08h = T 100x75 8x8 16 VGA only
- 09h = T 80x44 EGA EGA only
- 0Ah = T 132x25 EGA EGA,VGA
- 0Bh = T 132x44 EGA EGA,VGA
- 0Ch = T 132x25 CGA EGA only
- 0Dh = T 80x44 mono EGA only
- 0Eh = T 132x25 mono
- 0Fh = T 132x44 mono
- 10h = reserved
- 11h = G 1280x350 4 EGA only
- 12h = G 1280x600 4 EGA only
- 13h = G 640x350 256 EGA,EV673
- 14h = G 640x400 256
- 15h = G 512x480 256
- 16h = T 80x30 8x16 256 VGA only
- 18h = T 100x27 8x16 16 VGA only
- 20h = G 1024x768 16 Everex 629,678
- Everex EV-673
- 21h = T 160x64 8x16 1280x1024 16 1MB VGA only
- 30h = G 640x480 256 Everex 629,678
- Everex EV-673
- 31h = G 800x600 256 Everex 629,678
- Everex EV-673
- 32h = G 128x48 8x16 1024x768 256 1MB VGA only
- 40h = T 132x30 8x16 16 VGA only
- 50h = T 132x32 8x16 mono VGA only
- 62h = G 40x25 8x8 320x200 32K Vwpt TC (EV629)
- 70h = G 64x30 8x16 512x480 32K Viewpoint TC
- 71h = G 80x30 8x16 640x480 32K Viewpoint TC
- 76h = G 64x30 8x16 512x480 16M Viewpoint TC
- 77h = G 80x30 8x16 640x480 16M Viewpoint TC
- ----------10007E-----------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
- AX = 007Eh
- BX = horizontal dimension of the mode desired
- CX = vertical dimension of the mode desired
- (both BX/CX in pixels for graphics modes, rows for alpha modes)
- DX = number of colors of the mode desired (0000h for monochrome modes)
- Return: BH = 7Eh if successful (Paradise VGA)
- AL = 7Eh if successful (AT&T VDC600)
- SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
- ----------10007F-----------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
- AX = 007Fh
- BH = function
- 00h set VGA operation
- 01h set non-VGA operation
- color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation
- monochrome mode 7 will set non-VGA MDA/Hercules operation
- 02h query mode status
- Return: BL = 00h if operating in VGA mode, 01h if non-VGA mode
- CH = total video RAM size in 64k byte units
- CL = video RAM used by the current mode
- 03h lock current mode
- allows current mode (VGA or non-VGA) to survive re-boot
- 04h enter CGA mode (AT&T VDC600 only)
- 05h enter MDA mode (AT&T VDC600 only)
- 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh WRITE PARADISE REGISTERS 0,1,2,3,4,5
- (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
- BL = value to set in the paradise register
- 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
- (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
- Return: BL = value of the paradise register
- BH = 7Fh if successful
- Return: AL = 7Fh if successful (AT&T VDC600)
- SeeAlso: AX=007Eh
- ----------1001-------------------------------
- INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
- AH = 01h
- CH = bit 7 should be zero
- bits 6,5 cursor blink
- (00=normal, 01=invisible, 10=erratic, 11=slow)
- (00=normal, other=invisible on EGA/VGA)
- bits 4-0 top scan line containing cursor
- CL = bottom scan line containing cursor (bits 0-4)
- Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
- returns unmapped cursor shape
- UltraVision scales size to the current font height by assuming 14-line
- monochrome and 8-line color fonts; this call is not valid if cursor
- emulation has been disabled
- applications which wish to change the cursor by programming the
- hardware directly on EGA or abovve should call INT 10/AX=1130h or
- read 0040h:0085h first to determine the current font height
- BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
- is not equal to the current video mode
- SeeAlso: AH=03h,AX=CD05h
- ----------1002-------------------------------
- INT 10 - VIDEO - SET CURSOR POSITION
- AH = 02h
- BH = page number
- 0-3 in modes 2&3
- 0-7 in modes 0&1
- 0 in graphics modes
- DH = row (00h is top)
- DL = column (00h is left)
- SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
- ----------1003-------------------------------
- INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
- AH = 03h
- BH = page number
- 0-3 in modes 2&3
- 0-7 in modes 0&1
- 0 in graphics modes
- Return: AX = 0000h (Phoenix BIOS)
- CH = start scan line
- CL = end scan line
- DH = row (00h is top)
- DL = column (00h is left)
- Notes: a separate cursor is maintained for each of up to 8 display pages
- many ROM BIOSes incorrectly return the default size for a color display
- (start 06h, end 07h) when a monochrome display is attached
- SeeAlso: AH=01h,AH=02h
- ----------1004-------------------------------
- INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
- AH = 04h
- Return: AH = light pen trigger flag
- 00h not down/triggered
- 01h down/triggered
- DH,DL = row,column of character light pen is on
- CH = pixel row (graphics modes 04h-06h)
- CX = pixel row (graphics modes with >200 rows)
- BX = pixel column
- Notes: on a CGA, returned column numbers are always multiples of 2 (320-
- column modes) or 4 (640-column modes)
- returned row numbers are only accurate to two lines
- ----------1005-------------------------------
- INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
- AH = 05h
- AL = new page number (00h to number of pages - 1) (see AH=00h)
- Note: to determine whether the requested page actually exists, use AH=0Fh
- to query the current page after making this call
- SeeAlso: AH=0Fh
- ----------1005-------------------------------
- INT 10 - 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
- Notes: the CPU page determines which 16K block of the first 128K of physical
- memory will be mapped at B800h by the hardware
- the CRT page determines the start address of the memory used by the
- video controller
- ----------1005-------------------------------
- INT 10 - VIDEO - GRAPHICS BITMAP BUFFER (Corona/Cordata BIOS v4.10+)
- 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
- ----------1006-------------------------------
- INT 10 - VIDEO - SCROLL UP WINDOW
- AH = 06h
- AL = number of lines by which to scroll up (00h = clear entire window)
- BH = attribute used to write blank lines at bottom of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Note: affects only the currently active page (see AH=05h)
- Warning: some implementations have a bug which destroys BP
- SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h
- ----------1007-------------------------------
- INT 10 - VIDEO - SCROLL DOWN WINDOW
- AH = 07h
- AL = number of lines by which to scroll down (00h=clear entire window)
- BH = attribute used to write blank lines at top of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Note: affects only the currently active page (see AH=05h)
- Warning: some implementations have a bug which destroys BP
- SeeAlso: AH=06h,AH=72h,AH=73h
- ----------1008-------------------------------
- INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 08h
- BH = page number (00h to number of pages - 1) (see AH=00h)
- Return: AH = 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
- Notes: for monochrome displays, a foreground of 1 with background 0 is
- underlined
- the blink bit may be reprogrammed to enable intense background colors
- using AX=1003h or by programming the CRT controller
- SeeAlso: AH=09h,AX=1003h
- ----------1009-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 09h
- AL = character to display
- BH = page number (00h to number of pages - 1) (see AH=00h)
- BL = attribute (text mode) or color (graphics mode)
- if bit 7 set in graphics mode, character is xor'ed onto screen
- CX = number of times to write character
- Notes: all characters are displayed, including CR, LF, and BS
- replication count in CX may produce an unpredictable result in graphics
- modes if it is greater than the number of positions remaining in the
- current row
- SeeAlso: AH=08h,AH=0Ah,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
- ----------100A-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
- AH = 0Ah
- AL = character to display
- BH = page number (00h to number of pages - 1) (see AH=00h)
- BL = attribute (PCjr only) or color (graphics mode)
- if bit 7 set in graphics mode, character is xor'ed onto screen
- CX = number of times to write character
- Notes: all characters are displayed, including CR, LF, and BS
- replication count in CX may produce an unpredictable result in graphics
- modes if it is greater than the number of positions remaining in the
- current row
- SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
- ----------100B--BH00-------------------------
- INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
- AH = 0Bh
- BH = 00h
- BL = background/border color (border only in text modes)
- SeeAlso: AH=0Bh/BH=01h
- ----------100B--BH01-------------------------
- INT 10 - VIDEO - SET PALETTE
- AH = 0BH
- BH = 01h
- BL = palette ID
- 00h background, green, red, and brown/yellow
- 01h background, cyan, magenta, and white
- SeeAlso: AH=0Bh/BH=00h
- ----------100C-------------------------------
- INT 10 - VIDEO - WRITE GRAPHICS PIXEL
- AH = 0Ch
- BH = page number
- AL = pixel color (if bit 7 set, value is xor'ed onto screen)
- CX = column
- DX = row
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Dh,AH=46h
- ----------100D-------------------------------
- INT 10 - VIDEO - READ GRAPHICS PIXEL
- AH = 0Dh
- BH = page number
- CX = column
- DX = row
- Return: AL = pixel color
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Ch,AH=47h
- ----------100E-------------------------------
- INT 10 - VIDEO - TELETYPE OUTPUT
- AH = 0Eh
- AL = character to write
- BH = page number
- BL = foreground color (graphics modes only)
- Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
- and do the expected things
- IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
- the current active page
- SeeAlso: AH=02h,AH=0Ah
- ----------100F-------------------------------
- INT 10 - VIDEO - GET CURRENT VIDEO MODE
- AH = 0Fh
- Return: AH = number of character columns
- AL = display mode (see AH=00h)
- BH = active page (see AH=05h)
- Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
- also have bit 7 set
- EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
- (monochrome) in all extended-row text modes
- SeeAlso: AH=00h,AH=05h,AX=1130h,AX=CD04h
- ----------100F56BX4756-----------------------
- INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
- AX = 0F56h
- BX = 4756h
- CX = 4944h
- DL = function
- 01h installation check
- Return: AX = 5649h
- BX = 4443h
- CX = 5647h
- DH = 01h
- 02h get first video mode's parameters
- Return: AX = BIOS mode number
- BX = width in pixels
- CX = height in pixels
- DX = number of colors
- 03h get next video mode's parameters
- Return: as for DL=02h
- 04h display line???
- ES:DI -> record (see below)
- ???
- Return: ???
- Notes: 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 Size Description
- 00h WORD row number
- 02h WORD starting column???
- 04h WORD ending column???
- ???
- ----------1010-------------------------------
- INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
- AH = 10h
- CH,CL = row,column of upper left corner of window
- DH,DL = row,column of lower right corner of window
- Return: AL = status
- 00h successful
- 01h failed
- AH destroyed
- Notes: 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"Window",AH=12h"Window"
- ----------1010-------------------------------
- INT 10 - 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
- ----------101000----------------------------
- INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,EGA,MCGA,VGA)
- AX = 1000h
- BL = palette register number (00h-0Fh)
- = attribute register number (undocumented)
- 10h attribute mode control register (should let BIOS control this)
- 11h overscan color register (see also AX=1001h)
- 12h color plane enable register (bits 3-0 enable corresponding
- text attribute bit)
- 13h horizontal PEL panning register
- 14h color select register
- BH = color or attribute register value
- Notes: on MCGA, only BX = 0712h is supported
- under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1007h,AX=CD01h
- ----------101001-----------------------------
- INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,EGA,VGA)
- AX = 1001h
- BH = border color (00h-3Fh)
- BUG: the original IBM VGA BIOS incorrectly updates the parameter save area
- and places the border color at offset 11h of the palette table
- rather than offset 10h
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1008h,AX=CD01h
- ----------101002-----------------------------
- INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,EGA,VGA)
- AX = 1002h
- ES:DX -> palette register list
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
-
- Format of palette register list:
- Offset Size Description
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
- ----------101003-----------------------------
- INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
- AX = 1003h
- BL = new state
- 00h background intensity enabled
- 01h blink enabled
- BH = 00h to avoid problems on some adapters
- Notes: although there is no function to get the current status, 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
- ----------101007-----------------------------
- INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
- AX = 1007h
- BL = palette or attribute (undoc) register number (see AX=1000h)
- Return: BH = palette or attribute register value
- Notes: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set BH to FFh on entry.
- SeeAlso: AX=1000h,AX=1009h
- ----------101008-----------------------------
- INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
- AX = 1008h
- Return: BH = border color (00h-3Fh)
- Notes: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set BH to FFh on entry.
- SeeAlso: AX=1001h
- ----------101009-----------------------------
- INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
- AX = 1009h
- ES:DX -> 17-byte buffer (see AX=1002h)
- Notes: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set the ES:DX buffer to FFh before calling.
- SeeAlso: AX=1002h,AX=1007h,AX=CD02h
- ----------101010-----------------------------
- INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1010h
- BX = register number
- CH = new value for green (0-63)
- CL = new value for blue (0-63)
- DH = new value for red (0-63)
- SeeAlso: AX=1012h,AX=1015h
- ----------101012-----------------------------
- INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1012h
- BX = starting color register
- CX = number of registers to set
- ES:DX -> table of 3*CX bytes where each 3 byte group represents one
- byte each of red, green and blue (0-63)
- SeeAlso: AX=1010h,AX=1017h
- ----------101013-----------------------------
- INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
- AX = 1013h
- BL = subfunction
- 00h select paging mode
- BH = 00h select 4 blocks of 64
- BH = 01h select 16 blocks of 16
- 01h select page
- BH = page number (00h to 03h) or (00h to 0Fh)
- Note: not valid in mode 13h
- SeeAlso: AX=101Ah
- ----------101015-----------------------------
- INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1015h
- BL = palette register number
- Return: DH = red value
- CH = green value
- CL = blue value
- SeeAlso: AX=1010h,AX=1017h
- ----------101017-----------------------------
- INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1017h
- BX = starting palette register
- CX = number of palette registers to read
- ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
- Return: buffer filled with CX red, green and blue triples
- SeeAlso: AX=1012h,AX=1015h
- ----------101018-----------------------------
- INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
- AX = 1018h
- BL = new PEL value
- SeeAlso: AX=1019h
- ----------101019-----------------------------
- INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
- AX = 1019h
- Return: BL = value read
- SeeAlso: AX=1018h
- ----------10101A-----------------------------
- INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
- AX = 101Ah
- Return: BL = paging mode
- 00h four pages of 64
- 01h sixteen pages of 16
- BH = current page
- SeeAlso: AX=1013h
- ----------10101B-----------------------------
- INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
- AX = 101Bh
- BX = starting palette register
- CX = number of registers to convert
- SeeAlso: AH=12h/BL=33h
- ----------1010F0-----------------------------
- INT 10 - 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
- Note: the Tseng HiColor BIOS extensions are supported by:
- Diamond Computer Systems SpeedStar HiColor VGA
- Everex Systems HC VGA
- Focus Information Systems 2theMax 4000
- Cardinal Technologies VGA732
- Orchid ProDesigner IIs
- SeeAlso: AX=10F1h,AX=10F2h
- ----------1010F1-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
- AX = 10F1h
- Return: AL = 10h if supported
- BL = type of digital/analog converter
- 00h normal VGA DAC
- 01h Sierra SC1148x HiColor DAC
- 02h new Sierra DAC
- else other HiColor DAC
- SeeAlso: AX=10F0h,AX=10F2h
- ----------1010F2-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS v3.00 - ???
- AX = 10F2h
- BL = ???
- Return: AL = 10h if supported
- AH = status???
- 00h ???
- 01h ???
- BL = ???
- SeeAlso: AX=10F0h,AX=10F1h
- ----------1011-------------------------------
- INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
- AH = 11h
- Return: CH,CL = row,column of upper left corner
- DH,DL = row,column of lower right corner
- Note: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- SeeAlso: AH=10h"Window",AH=12h"Window"
- ----------1011-------------------------------
- INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
- AH = 11h
- The following functions will cause a mode set, completely resetting
- the video environment, but without clearing the video buffer
- AL = 00h, 10h: load user-specified patterns
- ES:BP -> user table
- CX = count of patterns to store
- DX = character offset into map 2 block
- BL = block to load in map 2
- BH = number of bytes per character pattern
- AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
- BL = block to load
- AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
- BL = block to load
- AL = 03h: set block specifier
- BL = block specifier
- (EGA/MCGA) bits 0,1 = block selected by chars with attribute
- bit 3 = 0
- bits 2,3 = block selected by chars with attribute
- bit 3 = 1
- (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
- bits 2,3,5 = block selected by attribute bit 3 = 1
- AL = 04h, 14h: load ROM 8x16 character set (VGA)
- BL = block to load
- The routines called with AL=1xh are designed to be called only
- immediately after a mode set and are similar to the routines called
- with AL=0xh, except that:
- Page 0 must be active.
- Bytes/character is recalculated.
- Max character rows is recalculated.
- CRT buffer length is recalculated.
- CRTC registers are reprogrammed as follows:
- R09 = bytes/char-1 ; max scan line (mode 7 only)
- R0A = bytes/char-2 ; cursor start
- R0B = 0 ; cursor end
- R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
- R14 = bytes/char ; underline loc
- (*** BUG: should be 1 less ***)
- SeeAlso: AX=CD10h
- ----------1011-------------------------------
- INT 10 - 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)
- Notes: these functions are meant to be called only after a mode set
- UltraVision v2+ sets INT 43 to the appropriate font for AL=22h,23h,24h,
- and 29h
- SeeAlso: INT 1F, INT 43
- ----------101130-----------------------------
- INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
- AX = 1130h
- BH = pointer specifier
- 00h INT 1Fh pointer
- 01h INT 43h pointer
- 02h ROM 8x14 character font pointer
- 03h ROM 8x8 double dot font pointer
- 04h ROM 8x8 double dot font (high 128 characters)
- 05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
- 06h ROM 8x16 font (MCGA, VGA)
- 07h ROM alternate 9x16 font (VGA only)
- 11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
- 12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
- Return: ES:BP = specified pointer
- CX = bytes/character
- DL = character rows on screen - 1
- Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
- 8xN font at ES:BP+256N
- SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
- ----------1012-------------------------------
- INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
- AH = 12h
- Return: BH = attribute to use on blanked lines when scrolling
- Note: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- SeeAlso: AH=11h"Window",AH=12h"Window"
- ----------1012--BL10-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
- AH = 12h
- BL = 10h
- Return: BH = 00h color mode in effect (I/O port 3Dxh)
- 01h mono mode in effect (I/O port 3Bxh)
- BL = 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
- Note: one possible check for the presence of an EGA or later display card
- is to call this function with BH=FFh; if not present, BH will be
- unchanged on return
- ----------1012--BL20-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
- AH = 12h
- BL = 20h select alternate print screen routine
- Notes: 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
- ----------1012--BL2E-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = 2Eh
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- ----------1012--BL30-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
- AH = 12h
- BL = 30h
- AL = vertical resolution
- 00h 200 scan lines
- 01h 350 scan lines
- 02h 400 scan lines
- Return: AL = 12h if function supported
- ----------1012--BL31-------------------------
- INT 10 - 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
- ----------1012--BL32-------------------------
- INT 10 - 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
- ----------1012--BL33-------------------------
- INT 10 - 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,AX=BF06h
- ----------1012--BL34-------------------------
- INT 10 - 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
- ----------1012--BL35-------------------------
- INT 10 - 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
- ----------1012--BL36-------------------------
- INT 10 - 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
- ----------1012--BH55-------------------------
- INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
- AH = 12h
- BH = 55h
- BL = subfunction
- 00h disabled enhanced features
- 01h enable enhanced features
- 02h get status
- Return: AL = status flags
- 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
- 00h BYTE number of columns
- 01h BYTE maximum row (number of rows - 1)
- 02h BYTE scan lines per row
- 03h WORD video buffer size in bytes
- 05h 4 BYTEs values for Sequencer registers 1-4
- 09h BYTE value for Miscellaneous Output register
- 0Ah 25 BYTEs values for CRTC registers 00h-18h
- 00h horizontal total size (chars)
- 01h horizontal displayed (chars)
- 02h horizontal sync position (chars)
- 03h horizontal sync width (chars)
- 04h vertical total size (char rows)
- 05h vertical total adjust (scan lines)
- 06h vertical displayed (char rows)
- 07h vertical sync position (char rows)
- 08h interlace mode
- 09h max scan line in row
- 0Ah cursor start scan line
- 0Bh cursor end scan line
- 0Ch screen memory start (high)
- 0Dh screen memory start (low)
- 0Eh cursor address (high)
- 0Fh cursor address (low)
- 10h light pen (high)
- 11h light pen (low)
- 23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h)
- 37h 9 BYTEs values for Graphics Controller registers 00h-08h
- ----------1012--BL74-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = 74h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- ----------1012--BL80-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = 80h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- ----------1012--BLBE-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = BEh
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- ----------1012--BLC6-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = C6h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- ----------1012--BLF0-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 12h
- BL = F0h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- ----------1013-------------------------------
- INT 10 - 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
- Notes: recognizes CR, LF, BS, and bell
- also available PC or XT with EGA or higher
- HP 95LX only supports write mode 00h
- BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on
- the active page rather than the requested page
- SeeAlso: AH=09h,AH=0Ah
- ----------101400-----------------------------
- INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
- AX = 1400h
- ES:DI -> character font
- BH = number of bytes per character
- 08h or 10h (Compaq)
- BL = 00h load main font (block 0)
- 01h load alternate font (block 1)
- CX = number of characters to store
- DX = character offset into RAM font area
- SeeAlso: AH=11h,AX=1401h
- ----------101401-----------------------------
- INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
- AX = 1401h
- BL = font to load
- 00h main font (block 0)
- 01h alternate font (block 1)
- SeeAlso: AH=11h,AX=1400h
- ----------101402-----------------------------
- INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
- AX = 1402h
- BL = function
- 00h ignore high intensity attribute
- 01h map high intensity to underscore
- 02h map high intensity to reverse video
- 03h map high intensity to selected alternate font
- B0h half intensity (Compaq)
- B1h toggle active intensity bit interpretation (CP386)
- ----------1015-------------------------------
- INT 10 - 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
- 00h WORD monitor model number
- 02h WORD vertical pixels per meter
- 04h WORD horizontal pixels per meter
- 06h WORD total vertical pixels
- 08h WORD total horizontal pixels
- 0Ah WORD horizontal pixel separation in micrometers
- 0Ch WORD vertical pixel separation in micrometers
- ----------1015-------------------------------
- INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
- AH = 15h
- AL = superimpose mode
- 00h show graphics screen
- 01h show text screen
- 02h show text screen superimposed on graphics screen
- ----------101A-------------------------------
- INT 10 - VIDEO - DISPLAY COMBINATION (PS,VGA/MCGA)
- 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
- ----------101B-------------------------------
- INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
- AH = 1Bh
- BX = implementation type
- 0000h return funtionality/state information
- ES:DI -> 64 byte buffer for state information (see below)
- Return: AL = 1Bh if function supported
- ES:DI buffer filled with state information
- 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/character
- 25h BYTE display combination code of active display
- 26h BYTE DCC of alternate display
- 27h WORD number of colors supported in current mode
- 29h BYTE number of pages supported in current mode
- 2Ah BYTE number of scan lines active
- (0,1,2,3) = (200,350,400,480)
- 2Bh BYTE primary character block
- 2Ch BYTE secondary character block
- 2Dh BYTE miscellaneous flags
- bit 0 all modes on all displays on
- 1 gray summing on
- 2 monochrome display attached
- 3 default palette loading disabled
- 4 cursor emulation enabled
- 5 0 = intensity; 1 = blinking
- 6 PS/2 P70 plasma display (without 9-dot wide font) active
- 7 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
- 1 dynamic save area present
- 2 alpha font override active
- 3 graphics font override active
- 4 palette override active
- 5 DCC override active
- 6 reserved
- 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,1,2,3,4,5,6 supported
- 01h BYTE modes supported #2
- bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
- 02h BYTE modes supported #3
- bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
- bit 4 to bit 7 reserved
- 03h 4 BYTEs reserved
- 07h BYTE scan lines supported
- bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
- 08h BYTE total number of character blocks available in text modes
- 09h BYTE maximum number of active character blocks in text modes
- 0Ah BYTE miscellaneous function flags #1
- bit 0 all modes on all displays function supported
- 1 gray summing function supported
- 2 character font loading function supported
- 3 default palette loading enable/disable supported
- 4 cursor emulation function supported
- 5 EGA palette present
- 6 color palette present
- 7 color paging function supported
- 0Bh BYTE miscellaneous function flags #2
- bit 0 light pen supported
- 1 save/restore state function 1Ch supported
- 2 intensity blinking function supported
- 3 Display Combination Code supported
- 4-7 reserved
- 0Ch WORD reserved
- 0Eh BYTE save pointer function flags
- bit 0 512 character set supported
- 1 dynamic save area supported
- 2 alpha font override supported
- 3 graphics font override supported
- 4 palette override supported
- 5 DCC extension supported
- 6 reserved
- 7 reserved
- 0Fh BYTE reserved
- ----------101C-------------------------------
- INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
- 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
- ----------101D-------------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 - BUG
- AH = 1Dh
- Note: this version of the BIOS jumps to a random location on this function
- due to a fencepost error
- ----------103000CX0000-----------------------
- INT 10 - 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 BYTE aspect ratio X
- 01h BYTE aspect ratio Y
- 02h BYTE monitor type
- 00h = 5151 (mono) or 5272 (color)
- 01h = 3295
- 02h = 5151 or 5272 with XGA (???) graphics adapter
- 03h = 5279 with 3270PC G adapter
- 04h = 5379 model C01 with 3270PC GX adapter
- 05h = 5379 model M01 with 3270PC GX adapter
- 07h = non-3270PC with 3270 Workstation Program
- FFh = 3270PC Control Program not loaded
- 03h BYTE reserved
- 04h BYTE adapter ID
- 00h = 5151/5272 adapter
- 04h = 5151/5272 with XGA adapter
- 30h = 3295 or 3270PC G/GX adapter
- 05h BYTE reserved
- 06h BYTE function flags 1
- 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
- 07h BYTE function flags 2
- bit 6: GPI graphics supported
- 08h WORD segment address of Control Program Level table (see below)
- 0Ah 10 BYTEs reserved
-
- Format of Control Program Level table:
- Offset Size Description
- 00h WORD program version
- 02xxh = 3270PC Control Program v2.xx
- 03xxh = 3270PC Control Program v3.xx
- 04xxh = 3270 Workstation Program v1.xx
- 02h BYTE Control Program ID (00h)
- 03h 27 BYTEs Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
- ----------1038-------------------------------
- INT 10 - Tinytalk Personal v1.09f - GET CONFIGURATION INFO
- AH = 38h
- Return: ES:DI -> configuration info (see below)
- Notes: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
- this call is also used as the installation check by verifying that the
- returned ES:DI points at valid configuration info
- SeeAlso: INT 14/AX=F0F1h,INT 2F/FB00h"AutoBraille"
-
- Format of configuration info:
- Offset Size Description
- 00h 8 BYTEs signature "TTCONFIG"
- 08h WORD size of configuration data, not counting signature, this WORD,
- or the following byte
- 0Ah BYTE ???
- 0Bh ??? configuration data
- ----------1040-------------------------------
- INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
- AH = 40h
- SeeAlso: AH=41h
- ----------1041-------------------------------
- INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
- AH = 41h
- SeeAlso: AH=40h
- ----------1042-------------------------------
- INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
- AH = 42h
- SeeAlso: AH=45h
- ----------1043-------------------------------
- INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
- AH = 43h
- AL = page number (0,1)
- SeeAlso: AH=44h,AH=45h
- ----------1044-------------------------------
- INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
- AH = 44h
- AL = drawing function
- 00h clear pixels
- 01h set pixels
- 02h invert pixels
- SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
- ----------1045-------------------------------
- INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
- AH = 45h
- AL = page number (0,1)
- SeeAlso: AH=42h,AH=43h
- ----------1046-------------------------------
- INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
- AH = 46h
- DI = x (0-720)
- BP = y (0-347)
- Note: function 44h determines operation and function 43h which page to use
- SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
- ----------1047-------------------------------
- INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
- AH = 47h
- DI = x (0-720)
- BP = y (0-347)
- Return: AL = 00h pixel clear
- AL = 01h pixel set
- Note: function 43h specifies which page is used
- SeeAlso: AH=0Dh,AH=46h
- ----------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: function 48h or 49h specify first point, 44h operation and 43h page to
- use
- SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
- ----------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: unlike the other BIOS character functions character position is
- specified in pixels rather than rows and columns
- SeeAlso: AH=09h,AH=0Ah
- ----------104B-------------------------------
- INT 10 - FRIEZE v7.0+ - API
- AH = 4Bh
- CL = function
- 00h reserved
- 01h load window
- ES:BX -> ASCIZ filename from which to read
- 02h save window
- ES:BX -> ASCIZ filename to which to write
- 07h set window size
- ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
- 09h set patterns
- ES:BX -> 16-BYTE vector of screen->printer color correspondnces
- 0Ah get patterns
- ES:BX -> 16-BYTE buffer for color correspondences
- 0Bh set mode
- AL = mode
- 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
- 14h get version
- Return: AH = major version (00h if FRIEZE version before 7)
- AL = minor version
- 15h set parameters
- ES:BX -> parameter table (see below)
- 16h get parameters
- ES:BX -> buffer for parameter table (see below)
- 17h get printer resolution
- ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
- 18h reserved (v8.0 only)
- 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
-
- Format of parameter table:
- Offset Size Description
- 00h WORD top margin (1/100 inch)
- 02h WORD left margin (1/100 inch)
- 04h WORD horizontal size (1/100 inch)
- 06h WORD vertical size (1/100 inch)
- 08h WORD quality/draft mode
- 00h draft mode
- 01h quality mode
- 02h use horizontal/vertical resolution for output resolution
- 0Ah WORD printer horizontal resolution (dots per inch)
- 0Ch WORD printer vertical resolution (dots per inch)
- 0Eh WORD reserved (FFFFh)
- Note: any field which should remain unchanged may be filled with FFFFh
- ----------104C-------------------------------
- INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
- AH = 4Ch
- AL = quadrant (1 = upper right, 2 = upper left, etc)
- DI = x coordinate of center
- BP = y coordinate of center
- BX = radius
- SeeAlso: AH=49h,AH=4Dh
- ----------104D-------------------------------
- INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
- AH = 4Dh
- DI = x of center
- BP = y of center
- BX = radius
- SeeAlso: AH=49h,AH=4Ch
- ----------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: fills convex polygonal areas
- 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,AX=7F00h
-
- Format of SuperVGA information:
- Offset Size Description
- 00h 4 BYTEs signature ('VESA')
- 04h WORD VESA version number
- 06h DWORD pointer to OEM name
- "761295520" for ATI
- 0Ah 4 BYTEs capabilities
- 0Eh DWORD pointer to list of supported VESA and OEM video modes
- (list of words terminated with FFFFh)
- 12h 238 BYTEs reserved
- ----------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,AX=4F02h
-
- Format of mode information:
- Offset Size Description
- 00h WORD mode attributes
- bit 0: mode supported
- bit 1: optional information available
- bit 2: BIOS output supported
- bit 3: set if color, clear if monochrome
- bit 4: set if graphics mode, clear if text mode
- 02h BYTE window A attributes
- bit 0: exists
- bit 1: readable
- bit 2: writable
- bits 3-7 reserved
- 03h BYTE window B attributes (as for window A)
- 04h WORD window granularity in K
- 06h WORD window size in K
- 08h WORD start segment of window A
- 0Ah WORD start segment of window B
- 0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h)
- 10h WORD bytes per scan line
- ---remainder is optional for VESA modes, needed for OEM modes---
- 12h WORD width in pixels
- 14h WORD height in pixels
- 16h BYTE width of character cell in pixels
- 17h BYTE height of character cell in pixels
- 18h BYTE number of memory planes
- 19h BYTE number of bits per pixel
- 1Ah BYTE number of banks
- 1Bh BYTE memory model type
- 00h text
- 01h CGA graphics
- 02h HGC graphics
- 03h 16-color (EGA) graphics
- 04h packed pixel graphics
- 05h "sequ 256" graphics
- 06h-0Fh reserved for VESA
- 10h-FFh OEM memory model
- 1Ch BYTE size of bank in K
- ----------104F02-----------------------------
- INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
- AX = 4F02h
- BX = mode
- bit 15 set means don't clear video memory
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F01h,AX=4F03h
-
- Values for VESA video mode:
- 00h-FFh OEM video modes (see AH=00h)
- 100h 640x400x256
- 101h 640x480x256
- 102h 800x600x16
- 103h 800x600x256
- 104h 1024x768x16
- 105h 1024x768x256
- 106h 1280x1024x16
- 107h 1280x1024x256
- 108h 80x60 text
- 109h 132x25 text
- 10Ah 132x43 text
- 10Bh 132x50 text
- 10Ch 132x60 text
- ----------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/RESTORE SuperVGA VIDEO STATE
- AX = 4F04h
- DL = subfunction
- 00h get state buffer size
- Return: BX = number of 64-byte blocks needed
- 01h save video states
- ES:BX -> buffer
- 02h restore video states
- ES:BX -> buffer
- CX = flags for states to save/restore
- bit 0: video hardware state
- bit 1: video BIOS data state
- bit 2: video DAC state
- bit 3: SuperVGA state
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- ----------104F05-----------------------------
- INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
- AX = 4F05h
- BH = subfunction
- 00h select video memory window
- DX = window address in video memory (in granularity units)
- 01h get video memory window
- Return: DX = window address in video memory (in gran. units)
- BL = window number
- 00h window A
- 01h window B
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
- ----------104F06-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.1 - GET/SET LOGICAL SCAN LINE LENGTH
- AX = 4F06h
- BL = function
- 00h set scan line length
- CX = desired width in pixels
- 01h get scan line length
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = bytes per scan line
- CX = number of pixels per scan line
- DX = maximum number of scan lines
- Notes: if the desired width is not achievable, the next larger width will be
- set
- the scan line may be wider than the visible area of the screen
- this function is valid in text modes, provided that values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
- ----------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/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
- ----------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: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
- SeeAlso: AH=51h
- ----------105001-----------------------------
- INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
- AX = 5001h
- Return: BX = 0053h Japan
- = other not Japan
- SeeAlso: AH=00h,INT 21/AH=38h
- ----------1051-------------------------------
- INT 10 - SCROLOCK.COM - ENABLE/DISABLE
- AH = 51h
- AL = state
- 00h disable
- nonzero enable
- Note: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
- SeeAlso: AH=50h"SCROLOCK"
- ----------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/AH=00h,INT 2F/AX=6400h
-
- Format of data area:
- Offset Size Description
- 00h DWORD original INT 09 vector
- 04h DWORD original INT 10 vector
- 08h DWORD original INT 1C vector
- 0Ch WORD screen saver state, 0=off, 1=on
- 0Eh WORD blanking interval in clock ticks
- ----------106A00BX0000-----------------------
- INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
- AX = 6A00h
- BX = 0000h
- CX = 0000h
- DX = buffer length (may be 0)
- ES:DI -> buffer
- Return: BX = number of bytes stored in buffer
- CX = bytes required for all descriptions (0 if no DGIS)
- Note: buffer contains descriptions and addresses of DGIS-compatible
- display(s) and printer(s)
- SeeAlso: AX=6A02h
- ----------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:0000h if current display is non-DGIS
- else address of the current DGIS INT 10 display
- SeeAlso: AX=6A00h,AX=6A01h
- ----------106E00------------------------------------
- INT 10 - Paradise VGA internal - GET ???
- AX = 6E00h
- Return: AH = ??? (depends on serial number)
- AL = ???
- BX = ???
- CL = ???
- CH = ???
- DX = ???
- SeeAlso: AX=6E04,AX=6E05
- ----------106E04-------------------------------------
- INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
- AX = 6E04h
- Return: BX = screen width (columns)
- CX = screen height (lines)
- AH = ??? (05h or FFh)
- AL = ??? (04h or video mode)
- SeeAlso: AX=6E00,AX=6E05
- ----------106E05-------------------------------------
- INT 10 - Paradise VGA internal - SET MODE
- AX = 6E05h
- BL = mode
- Note: like AH=0, AL=BL.
- SeeAlso: AH=00,AX=6E00,AX=6E04,AX=6F05h
- ----------106F00-----------------------------
- INT 10 - VIDEO - INSTALLATION CHECK (Video7 VGA,VEGA VGA)
- AX = 6F00h
- Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
- ----------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
- bit 0 = display enable
- 0 = display enabled
- 1 = vertical or horizontal retrace in progress
- bit 1 = light pen flip flop set
- bit 2 = light pen switch activated
- bit 3 = vertical sync
- bit 4 = monitor resolution
- 0 = high resolution (>200 lines)
- 1 = low resolution (<=200 lines)
- bit 5 = display type
- 0 = color
- 1 = monochrome
- bits6,7= diagnostic bits
- 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,AX=0070h
-
- Values for video mode:
- text/ text pixel pixel colors disp scrn system
- grph resol box resoltn page addr
- 00h-13h = standard IBM modes (see AH=00h)
- 40h = T 80x43 8x8 Video7/VEGA VGA
- 41h = T 132x25 8x14 Video7/VEGA VGA
- 42h = T 132x43 8x8 Video7/VEGA VGA
- 43h = T 80x60 8x8 Video7/VEGA VGA
- 44h = T 100x60 8x8 Video7/VEGA VGA
- 45h = T 132x28 8x8 Video7/VEGA VGA
- 60h = G 752x410 16 Video7 VGA, VEGA VGA
- 61h = G 720x540 16 Video7 VGA, VEGA VGA
- = G 720x540 16 Northgate, Headland 1024i
- 62h = G 800x600 16 Video7 VGA, VEGA Ext EGA
- = G 800x600 16 Headland 1024i
- 63h = G 1024x768 2 Video7 VGA
- 64h = G 1024x768 4 Video7 VGA
- 65h = G 1024x768 16 Video7 VGA, VEGA Ext EGA
- = G 1024x768 16 Headland 1024i
- 66h = G 640x400 256 Video7 VGA, VEGA Ext VGA
- = G 640x400 256 Northgate, Headland 1024i
- 67h = G 640x480 256 Video7 VGA, VEGA Ext VGA
- = G 640x480 256 Headland 1024i
- 68h = G 720x540 256 Video7 VGA, VEGA Ext VGA
- = G 720x540 256 Headland 1024i
- 69h = G 800x600 256 Video7 VGA, VEGA Ext VGA
- = G 800x600 256 Headland 1024i
- 70h = G 752x410 16gray Video7 VGA, VEGA VGA
- 71h = G 720x540 16gray Video7 VGA, VEGA VGA
- 72h = G 800x600 16gray Video7 VGA
- 73h = G 1024x768 2gray Video7 VGA
- 74h = G 1024x768 4gray Video7 VGA
- 75h = G 1024x768 16gray Video7 VGA
- 76h = G 640x400 256gray Video7 VGA
- 77h = G 640x480 256gray Video7 VGA
- 78h = G 720x540 256gray Video7 VGA
- 79h = G 800x600 256gray (future)
- SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
- ----------106F06-----------------------------
- INT 10 - VIDEO - SELECT AUTOSWITCH MODE (V7VGA,VEGA VGA)
- AX = 6F06h
- BL = Autoswitch mode select
- 00h select EGA/VGA-only modes
- 01h select Autoswitched VGA/EGA/CGA/MGA modes
- 02h select 'bootup' CGA/MGA modes
- BH = enable/disable (00h enable, 01h = disable selection)
- ----------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/BL=10h
- ----------1070-------------------------------
- INT 10 - VIDEO - GET ADDRESS OF VIDEO RAM (TANDY 2000 only)
- AH = 70h
- Return: AX:BX -> WORD containing green plane's offset
- AX:CX -> WORD containing green plane's segment
- AX:DX -> WORD containing segment of red (offset 0) and blue (offset
- 4000) planes
- SeeAlso: AH=71h
- ----------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,AX=7000h/BX=0000h,AX=7000h/BX=0005h
- ----------107000BX0005-----------------------
- INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
- AX = 7000h
- BX = 0005h
- CL = maximum number of modes to get info for
- CH = mode type to get info for (see below)
- DL = monitor type to get info for
- ES:DI -> buffer for mode info (see below)
- Return: CL = total number of modes fitting criteria
- CH = size of each info record
- SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
-
- Values for mode type:
- 00h all modes
- 01h monochrome text modes
- 02h color text modes
- 03h four-color CGA graphics modes
- 04h two-color CGA graphics modes
- 05h 16-color graphics modes
- 06h 256-color graphics modes
-
- Format of mode information record:
- Offset Size Description
- 00h BYTE mode number (bit 7 set if extended mode)
- 01h BYTE mode type (see above)
- 02h BYTE info bits
- bits 7,6 reserved
- 5 monochrome mode
- 4 interlaced display
- 3 requires special oscillator
- 2,1 memory required
- 00 = 256K
- 01 = 512K
- 10 = 1024K
- 11 = 2048K
- 0 reserved
- 03h BYTE font height
- 04h BYTE text columns on screen
- 05h BYTE text rows on screen
- 06h WORD number of scan lines
- 08h BYTE color information
- bits 7-4 reserved
- 3-0 bits per pixel
- ----------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,AH=07h,AH=73h,INT 15/AH=12h/BH=05h
- ----------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,AH=07h,AH=72h,INT 15/AH=12h/BH=05h
- ----------107F00-----------------------------
- INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
- AX = 7F00h
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- ES:DI -> info structure (see below)
- 01h failed
- SeeAlso: AX=4F00h
-
- Format of info structure:
- Offset Size Description
- 00h DWORD pointer to VESA function dispatch table
- 04h DWORD pointer to SOLLEX function dispatch table
- 08h DWORD pointer to VESA SuperVGA info (see AX=4F00h)
- 0Ch DWORD pointer to mode info structure table, consisting of
- alternating ResInfo (see below) and VESA mode information
- (see AX=4F01h) blocks, terminated with an FFFFh word
- 10h DWORD pointer to font info structure table (see below)
- 14h WORD high resolution crystal frequency in Hz (0000h = not present)
- 16h DWORD pointer to ASCIZ ID string
- 1Ah DWORD pointer to timeout reset table
- array of bytes, each a multiple of the minimum time increment
- 1Eh WORD minimum time increment in timer ticks
- 20h BYTE inverse options supported
- bit 0: inverse supported
- bits 1-7: reserved
- 21h BYTE normal color value
- 22h BYTE inverse color value
- 23h WORD port to be accessed for normal/inverse settings
- 25h WORD type of interface chip (currently undefined)
- 27h WORD program operational mode
- bits 1-0: 00 no preference
- 01 terse (minimum detail in program messages)
- 10 verbose
- 11 use menus if supported, verbose mode otherwise
- bits 7-2: reserved
- 29h WORD SOLLEX specification version
- 2Bh WORD version of VESA/SOLLEX implementation
- 2Dh DWORD offset to relocatable portion of SOLLEX extensions (for CONFIG)
- 2Eh DWORD offset to unused section of the extensions ROM
- 31h 16 BYTEs reserved
- Note: all DWORD pointers initially require segment fixups; if the segment
- is 0000h, it should be changed to the returned ES, otherwise it
- may be assumed to be correct
-
- Format of ResInfo:
- Offset Size Description
- 00h WORD 16-bit mode number
- 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
- 04h WORD display info (see AX=7F01h/BL=01h)
- 06h DWORD pointer to video parameter table
- 0Ah BYTE replacement entry in master Video Parameter
- 0Bh BYTE mode requested for mode set by BIOS
- 0Ch DWORD pointer to LoadReg table
- 10h BYTE index into table of clock values (see below)
-
- Format of font info table [array] entry:
- Offset Size Description
- 00h BYTE required font height
- 01h BYTE parameter to load text mode font
- 02h BYTE parameter to load graphics mode font
-
- Values for clock value index:
- 00h 25 MHz
- 01h 28 MHz
- 02h PCLK
- 03h 31.5 MHz (VESA 640x480)
- 04h reserved
- 05h 16 MHz (EGA)
- 06h PCLK
- 07h 24 MHz (EGA)
- 08h 25 MHz
- 09h 28 MHz
- 0Ah 36 MHz
- 0Bh 45 MHz (for 1024x768)
- 0Ch 80 MHz
- 0Dh 40 MHz
- 0Eh 65 MHz
- 0Fh 1 MHz (for powerdown)
- ----------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: initializes video hardware to a particular standard
- SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
- ----------107F01BL01-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
- AX = 7F01h
- BL = 01h
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- BX = adapter type (see AX=7F01h/BL=00h)
- DX = display type
- bits 1-0: monitor sense (00 none, 01 color, 10 mono, 11=8514)
- bit 2: multi-frequency analog monitor active
- bit 3: LCD panel active
- bit 4: plasma/electroluminescent panel active
- bit 5: PS/2-type monitor active
- bit 6: multi-frequency digital monitor active
- bit 7: Enhanced Color Display monitor active
- bit 8: alternate display active
- bits 15-9: reserved
- SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
- ----------107F01BL02-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
- AX = 7F01h
- BL = 02h
- CX = adapter request (see AX=7F01h/BL=00h)
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h requested setting can successfully be made
- 01h requested setting not available in this configuration
- SeeAlso: AX=7F00h,AX=7F01h/BL=00h
- ----------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,AX=7F02h/BL=00h
- ----------107F02BL01-------------------------
- INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
- AX = 7F02h
- BL = 01h
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- BX = display output setting (see AX=7F02h/BL=00h)
- CX = displays attached
- bit 0: PS/2 display on analog output
- bit 1: multi-frequency monitor on analog output
- bit 2: LCD panel attached
- bit 3: plasma/electroluminescent panel attached
- bit 4: multi-frequency monitor on digital output
- bit 5: Enhanced Color Display attached to digital outpt
- bit 6: alternate display
- bits 15-7: reserved
- 01h failed
- SeeAlso: AX=7F00h,AX=7F02h/BL=00h
- ----------107F03BL00-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
- AX = 7F03h
- BL = 00h
- CX = support type
- 0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
- 0005h-0012h reserved for SOLLEX, 0013h Hercules,
- 0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- CX = size of video support code
- DX = segment of physical video support (0000h if no ROM)
- ES = segment of active video support
- ES:DI -> information block (DI = 0000h if none available)
- 01h failed
- SeeAlso: AX=7F03h/BL=01h
- ----------107F03BL01-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
- AX = 7F03h
- BL = 01h
- CX = support request
- ES = segment of support code
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: initializes the indicated video support by calling ES:0003h; this
- function may be used to switch the active video support back to
- ROM after AX=7F03h/BL=02h
- SeeAlso: AX=7F03h/BL=00h
- ----------107F03BL02-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
- AX = 7F03h
- BL = 02h
- CX = support request
- ES = destination segment
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h,AX=7F03h/BL=01h
- ----------107F04BL00-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
- AX = 7F04h
- BL = 00h
- CX = new power state
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: higher values progressively reduce the operations available on the
- video adapter while yielding increasing power savings
- SeeAlso: AX=7F00h,AX=7F04h/BL=01h
- ----------107F04BL01-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
- AX = 7F04h
- BL = 01h
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- CX = current power state
- DX = maximum state
- 01h failed
- SeeAlso: AX=7F00h,AX=7F04h/BL=00h
- ----------107F04BL02-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
- AX = 7F04h
- BL = 02h
- CX = timeout reset
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h,AX=7F04h/BL=03h
- ----------107F04BL03-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
- AX = 7F04h
- BL = 03h
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- BX = time increment
- CX = current timeout reset
- DX = maximum timeout reset
- ES:DI -> timeout reset table (array of bytes)
- 01h failed
- Note: the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
- SeeAlso: AX=7F00h,AX=7F04h/BL=02h
- ----------107F05-----------------------------
- INT 10 - SOLLEX SuperVGA - LOAD REGISTER
- AX = 7F05h
- ES:DI -> register value table (see below)
- Return: AL != 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AH=F1h,AH=F3h,AH=F5h
-
- Format of register value table:
- Offset Size Description
- 00h WORD base I/O register (FFFFh = end of list)
- 02h 2N BYTEs pairs of values to be written to the base I/O register as an
- index value and the following register as a data byte
- 2N+2 WORD FFFFh (end of data list)
- ... (repeats until FFFFh base address)
- ----------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 ('DV')
- ES:DI -> FAR subroutine to be called on ???
- Return: DS = segment of DESQview data structure for video buffer
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- the subroutine seems to be called when the DESQview menu is accessed;
- on entry, AL = 03h or 04h
- ----------1081--DX4456-----------------------
- INT 10 U - VIDEO (DESQview 2.0x only) - internal - GET ???
- AH = 81h
- DX = 4456h ('DV')
- Return: ES = segment of DESQview data structure for video buffer
- BYTE ES:[0] = current window number in DV 2.0x
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- SeeAlso: AH=82h
- ----------1082--DX4456-----------------------
- INT 10 U - VIDEO (DESQview 2.0x only) - internal - GET CURRENT WINDOW INFO
- AH = 82h
- DX = 4456h ('DV')
- Return: DS = segment in DESQview for data structure
- in DV 2.00,
- BYTE DS:[0] = window number
- WORD DS:[1] = segment of other data structure
- WORD DS:[3] = segment of window's object handle
- ES = segment of DESQview data structure for video buffer
- AL = current window number
- AH = ???
- BL = direct screen writes
- 00h program does not do direct writes
- 01h program does direct writes, so shadow buffer not usable
- BH = ???
- CL = current video mode
- CH = ???
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- SeeAlso: AH=81h
- ----------108B-------------------------------
- INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
- AH = 8Bh
- SeeAlso: AH=92h,AH=93h
- ----------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/Systempro Extensions - GET ENVIRONMENT
- AX = BF03h
- BX = 0000h
- Return: BH = active monitor
- 00h = external
- 01h = internal
- BL = master mode
- 00h = switchable VDU not present
- 04h = CGA
- 05h = EGA
- 07h = MDA
- 08h = switchable LCD controller present
- CH = 00h (reserved)
- CL = switchable VDU mode supported
- bit 0 = CGA supported
- bits 1,2 = reserved (1)
- bit 3 = MDA supported
- bits 4-7 = reserved (1)
- DH = internal monitor type
- 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,AX=BF00h,AX=BF01h,AX=BF02h
- ----------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/DISABLE DISPLAY
- 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/BL=33h,AX=BF07h
- ----------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,low byte=minor
- = unchanged for versions <1.2
- SeeAlso: AX=CC01h,AX=CC02h
- ----------10CC01-----------------------------
- INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
- AX = CC01h
- Notes: subsequent BIOS calls will be passed through to previous handler
- should be followed immediately by mode set to restore normal EGA/VGA
- state
- SeeAlso: AX=CC02h
- ----------10CC02-----------------------------
- INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
- AX = CC02h
- Note: should be followed immediately by mode set to restore previous
- UltraVision state
- SeeAlso: AX=CC01h
- ----------10CD00-----------------------------
- INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
- AX = CD00h
- CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
- DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
- Notes: if palette locking is in effect for the current mode, the new colors
- will be displayed immediately; otherwise, the system reverts to the
- default palette
- palette table 0 is reserved for the default palette and cannot be set
- UltraVision always sets the border color to black
- SeeAlso: AX=CD01h,AX=CD02h
- ----------10CD01-----------------------------
- INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
- AX = CD01h
- CL = palette locking value
- 00h none
- 01h text modes only (02h,03h)
- FFh all modes (all standard color text and graphics modes)
- Notes: intended for video modes with 16 or fewer colors
- SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
- ----------10CD02-----------------------------
- INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
- AX = CD02h
- Return: CL = palette table number
- DS:DX -> 17-byte palette register list
- DS:SI -> current font names table (see below)
- Note: only the font names are valid on monochrome EGA systems
- SeeAlso: AX=1009h,AX=CD00h
-
- Format of palette register list:
- Offset Size Description
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
-
- Format of current font names table (v2+):
- Offset Size standard EGA HiRes EGA VGA
- 00h 8 BYTEs N/A F19 font F20 font
- 08h 8 BYTEs F14 font F14 font F14 font
- 10h 8 BYTEs N/A F11 font F10 font
- 18h 8 BYTEs F8 font F8 font F8 font
-
- Format of current font names table (v1.x):
- Offset Size HiRes EGA
- 00h 8 BYTEs F19/F14 font
- 08h 8 BYTEs F11/F8 font
- ----------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,AX=CC00h,AH=CDh
- ----------10CD05-----------------------------
- INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
- AX = CD05h
- CL = type
- 00h line cursor
- FFh box cursor
- Note: sets default cursor type for text-based programs
- SeeAlso: AH=01h,AX=CD06h
- ----------10CD06-----------------------------
- INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
- AX = CD06h
- Return: CL = type
- 00h line cursor
- FFh box cursor
- SeeAlso: AH=03h,AX=CD05h
- ----------10CD07-----------------------------
- INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
- AX = CD07h
- CL = hardware underline status
- 00h off (color systems only)
- 01h underline below characters
- 02h strike through characters
- BL = foreground color for normal text (FFh = current)
- BH = foreground color for bright text (FFh = current)
- Return: CL = hardware underline status
- BL = current foreground color for normal text
- BH = current foreground color for bright text
- Notes: when underline or strikeout is enabled in color text modes, the
- specified colors will be assigned temporarily to colors 01h and 09h,
- allowing affected text to match non-underlined text. The color
- remapping uses values from the current onscreen palette regardless
- of the palette locking status (see AX=CD01h)
- specify the standard colors (BL=01h,BH=09h) to enable underline or
- strikeout without color remapping
- SeeAlso: AX=CD08h
- ----------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,0Ah,0Bh,0Eh,13h,14h)
- CX = ABCDh load 9xN alternate font (v2+)
- else number of characters to load
- DX = character offset into font table
- DS:SI -> 8-byte ASCII font name
- ES:BP -> font definitions
- Return: AX = FFFFh if invalid font parameters
- Notes: loads the designated characters into UltraVision's resident font area
- should be followed by a video mode set to reload character generator
- SeeAlso: AX=1100h
- ----------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 "half" mode
- 03h "full" mode
- Note: MSHERC.COM is a support program for the Microsoft Quick languages which
- makes their graphics libraries compatible with a Hercules card by
- adding video modes 08h and 88h, and supporting text in the new
- graphics modes. While in mode 08h or 88h, INT 10 supports the
- 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/data chips
- 00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
- 08h Sequencer (5 registers) 3C4h
- 10h Graphics Controller (9 registers) 3CEh
- 18h Attribute Controller (20 registers) 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color modes)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- Return: BL = data
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
- ----------10F1-------------------------------
- INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
- AH = F1h
- DX = group index (see AH=F0h)
- if single register:
- BL = value to write
- otherwise
- BL = register number
- BH = value to write
- Return: BL = data
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AX=7F05h,AH=F0h,AH=F3h
- ----------10F2-------------------------------
- INT 10 - EGA Register Interface Library - READ REGISTER RANGE
- AH = F2h
- CH = starting register number
- CL = Number of registers (>1)
- DX = group index
- 00h CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- ES:BX -> buffer, CL bytes
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F0h,AH=F3h
- ----------10F3-------------------------------
- INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
- AH = F3h
- CH = starting register
- CL = number of registers (>1)
- DX = group index (see AH=F2h)
- ES:BX -> buffer, CL bytes
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AX=7F05h,AH=F1h,AH=F2h
- ----------10F4-------------------------------
- INT 10 - EGA Register Interface Library - READ REGISTER SET
- AH = F4h
- CX = number of registers to read (>1)
- ES:BX -> table of records (see below)
- Return: register values in table filled in
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F0h,AH=F2h,AH=F5h
-
- Format of entries in table of register records:
- Offset Size Description
- 00h WORD group index
- Pointer/data chips
- 00h CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- 02h BYTE register number (0 for single registers)
- 03h BYTE register value
- ----------10F5-------------------------------
- INT 10 - EGA Register Interface Library - WRITE REGISTER SET
- AH = F5h
- CX = number of registers to write (>1)
- ES:BX -> table of records (see AH=F4h)
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
- ----------10F6------------------------------
- INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
- AH = F6h
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F7h
- ----------10F7------------------------------
- INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
- AH = F7h
- DX = port number
- Pointer/data chips
- 00h CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color modes)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- ES:BX -> table of one-byte entries, one byte to be written to each
- register
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F6h
- ----------10FA--BX0000----------------------
- INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
- AH = FAh
- BX = 0000h
- Return: BX = 0000h if mouse driver not present
- ES:BX -> EGA Register Interface version number, if present:
- byte 0 = major release number
- byte 1 = minor release number
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F6h,INT 2F/AX=BC00h
- ----------10FA------------------------------
- INT 10 - FASTBUFF.COM - INSTALLATION CHECK
- AH = FAh
- Return: AX = 00FAh if installed
- ES = segment of resident code
- Note: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
- Steiner
- ----------10FE------------------------------
- INT 10 - TopView - GET SHADOW BUFFER
- AH = FEh
- ES:DI -> assumed video buffer
- B800h:0000h color text/CGA graphics, B000h:0000h mono text,
- or A000h:0000h EGA/VGA graphics (RSIS environments only)
- Return: ES:DI -> actual video buffer for calling process
- Notes: if no multitasker or RSIS-compliant environment is installed, ES:DI is
- returned unchanged; RSIS is the Relocated Screen Interface
- Specification
- for display pages other than 0, use AH=05h and AH=0Fh to determine
- whether a particular page exists
- TopView requires a call to AH=FFh to notify it that the screen has
- changed; DESQview will check for changes itself until the first call
- to AH=FFh
- SeeAlso: AH=05h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
- ----------10FF-------------------------------
- INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
- AH = FFh
- CX = number of consecutive changed characters
- ES:DI -> first changed character in shadow buffer
- Notes: avoid CX=0000h
- DESQview will discontinue the automatic screen updating initiated by
- AH=FEh after this call
- SeeAlso: AH=FEh
- ----------10FF-------------------------------
- INT 10 - 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/AH=FFh"GO32"
- ----------10FF00-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
- AX = FF00h
- Return: BL = 00h not connected
- = 01h connected
- ----------10FF01-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
- AX = FF01h
- ----------10FF02-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
- AX = FF02h
- Return: ES:DI -> ASCIZ phone number
- ----------11---------------------------------
- INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
- Bit AC in the EFLAGS register enables this interrupt on a memory reference
- on a mis-aligned address when in privilege mode 3.
- ----------11---------------------------------
- INT 11 - BIOS - GET EQUIPMENT LIST
- Return: AX = BIOS equipment list word
- bits
- 0 floppy disk(s) installed (see bits 6-7)
- 1 80x87 coprocessor installed
- 2,3 number of 16K banks of RAM on motherboard (PC only)
- number of 64K banks of RAM on motherboard (XT only)
- 2 pointing device installed (PS)
- 3 unused (PS)
- 4-5 initial video mode
- 00 EGA, VGA, or PGA
- 01 40x25 color
- 10 80x25 color
- 11 80x25 monochrome
- 6-7 number of floppies installed less 1 (if bit 0 set)
- 8 DMA support installed (PCjr, some Tandy 1000s, 1400LT)
- 9-11 number of serial ports installed
- 12 game port installed
- 13 serial printer attached (PCjr)
- internal modem installed (PC/Convertible)
- 14-15 number of parallel ports installed
- ---Compaq and many other 386/486 machines--
- EAX bit 23: page tables set so that Weitek coprocessor addressable in
- real mode
- bit 24: Weitek math coprocessor present
- ---Compaq Systempro
- EAX bit 25: internal DMA parallel port available
- 26: IRQ for internal DMA parallel port (if bit 25 set)
- 0 = IRQ5
- 1 = IRQ7
- 27,28: parallel port DMA channel
- 00 DMA channel 0
- 01 DMA channel 0 ???
- 10 reserved
- 11 DMA channel 3
- SeeAlso: INT 12
- ----------11BC--DX1954-----------------------
- INT 11 - BNU FOSSIL - INSTALLATION CHECK
- AH = BCh
- DX = 1954h
- Return: AX = 1954h
- ES:DX -> entry point of driver (instead of INT 14)
- ----------11FF--SI6A6A-----------------------
- INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
- AH = FFh
- SI = 6A6Ah
- AL = SCSI Addressing
- bits 2-0 SCSI Target LUN (logical unit number)
- bits 5-3 SCSI Target ID
- bit 7 write flag, set for write operations, clear otherwise
- CX = bytes of data to be transmitted (max FFF0h)
- DH = 00h
- DL = length of SCSI Command Descriptor Block
- DS:DI -> SCSI Command Descriptor Block
- ES:BX -> data buffer
- Return: CF set on error
- AL = error code
- CF clear if successful
- Note: because of busmaster operations with WD7000FASST avoid accessing
- video memory directly; check 386 memory manager for VDS support.
- The WD7000XTAT works with programmed IO and does not have this
- limitation.
- SeeAlso: INT 21/AX=4402"ASPI"
- ----------11FFFECXFFFE-----------------------
- INT 11 - BACK&FORTH (before v1.62) API
- AX = FFFEh
- CX = FFFEh
- BX = function
- 00h installation check
- Return: AX = 0001h BNFHIGH and BNFLOW both loaded
- = 0003h only BNFHIGH loaded
- else neither loaded
- 01h ???
- Return: DX:AX -> ???
- 02h ???
- 03h ???
- 04h ???
- 05h ??? switches current PSP segment and stack if BNFLOW has not
- yet announced itself installed
- 06h ???
- Return: AX = ???
- SeeAlso: INT 12/AX=FFFEh
- ----------12---------------------------------
- INT 12 - BIOS - GET MEMORY SIZE
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- Note: this call returns the contents of the word at 0040h:0013h; in PC and
- XT, this value is set from the switches on the motherboard
- SeeAlso: INT 11
- ----------12----CX1806-----------------------
- INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
- CX = 1806h
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- CX = 1960h if installed
- Note: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
- accented characters and box drawing on standard QWERTY keyboards; it
- also provides break-to-DOS and screen blanking capabilities
- ----------12----CX1807-----------------------
- INT 12 - PARKER v2.0+ - INSTALLATION CHECK
- CX = 1807h
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- CX = 1961h if installed
- Note: PARKER is an optionally-resident hard disk parking program by Johan
- Zwiekhorst
- ----------12FFFECXFFFE-----------------------
- INT 12 - Back&Forth v1.62+ - API
- AX = FFFEh
- CX = FFFEh
- BX = function
- 00h installation check
- Return: AX = 0001h installed
- else not loaded
- 02h build program ID list
- ES:DI -> buffer of at least 100 bytes, to be filled with words
- Return: AX = number of programs defined
- ES:DI buffer filled with AX words
- 03h switch to specified task (task need not be open yet)
- DX = two-letter program ID
- Return: AX = 0000h if task undefined
- 04h ???
- 05h ???
- 06h get version (undoc)
- Return: AX = version * 100 (v1.71 = 00ABh)
- 07h ???
- 08h get open tasks (undoc)
- ES:DI -> task info buffer (see below)
- Return: AX = number of open tasks (max 20)
- 09h ???
- Note: Back & Forth is a task switcher by Progressive Solutions, Inc.
- SeeAlso: INT 11/AX=FFFEh
-
- Format of task info buffer:
- Offset Size Description
- 00h 21 BYTEs ASCIZ task name
- 15h BYTE hotkey shift state (as for INT 16/AH=02h)
- 16h WORD hotkey scan code
- 18h WORD program ID
- ----------1300-------------------------------
- INT 13 - DISK - RESET DISK SYSTEM
- AH = 00h
- DL = drive (if bit 7 is set both hard disks and floppy disks reset)
- Return: AH = status (see AH=01h)
- CF clear if successful (returned AH=00h)
- CF set on error
- Note: forces controller to recalibrate drive heads (seek to track 0)
- SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"TI Professional"
- ----------1301-------------------------------
- INT 13 - DISK - GET STATUS OF LAST OPERATION
- AH = 01h
- DL = drive (bit 7 set for hard disk)
- Return: CF clear if successful (returned status 00h)
- CF set on error
- AH = status of previous operation
- 00h successful completion
- 01h invalid function in AH or invalid parameter
- 02h address mark not found
- 03h disk write-protected (floppy)
- 04h sector not found
- 05h reset failed (hard disk)
- 06h disk changed (floppy)
- 07h drive parameter activity failed (hard disk)
- 08h DMA overrun
- 09h attempted DMA across 64K boundary
- 0Ah bad sector detected (hard disk)
- 0Bh bad track detected (hard disk)
- 0Ch unsupported track or invalid media
- 0Dh invalid number of sectors on format (hard disk)
- 0Eh control data address mark detected (hard disk)
- 0Fh DMA arbitration level out of range (hard disk)
- 10h uncorrectable CRC or ECC error on read
- 11h data ECC corrected (hard disk)
- 20h controller failure
- 40h seek failed
- 80h timeout (not ready)
- AAh drive not ready (hard disk)
- BBh undefined error (hard disk)
- CCh write fault (hard disk)
- E0h status register error (hard disk)
- FFh sense operation failed (hard disk)
- Note: some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
- status in both AH and AL
- ----------1302-------------------------------
- INT 13 - DISK - READ SECTOR(S) INTO MEMORY
- AH = 02h
- AL = number of sectors to read (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer
- Return: CF set on error
- if AH = 11h (corrected ECC error), AL = burst length
- CF clear if successful
- AH = status (see AH=01h)
- AL = number of sectors transferred
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the read should be retried at least three times, resetting
- the disk with AH=00h between attempts
- AWARD AT BIOS extended to handle more than 1024 cylinders by placing
- bits 10 and 11 of the cylinder number into bits 6 and 7 of DH
- SeeAlso: AH=03h,AH=0Ah
- ----------1303-------------------------------
- INT 13 - DISK - WRITE DISK SECTOR(S)
- AH = 03h
- AL = number of sectors to write (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- AL = number of sectors transferred
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the write should be retried at least three times, resetting
- the disk with AH=00h between attempts
- AWARD AT BIOS extended to handle more than 1024 cylinders by placing
- bits 10 and 11 of the cylinder number into bits 6 and 7 of DH
- SeeAlso: AH=02h,AH=0Bh
- ----------1304-------------------------------
- INT 13 - DISK - VERIFY DISK SECTOR(S)
- AH = 04h
- AL = number of sectors to verify (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- AL = number of sectors verified
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the write should be retried at least three times, resetting
- the disk with AH=00h between attempts
- this function does not compare the disk with memory, it merely
- checks whether the sector's stored CRC matches the data's actual CRC
- AWARD AT BIOS extended to handle more than 1024 cylinders by placing
- bits 10 and 11 of the cylinder number into bits 6 and 7 of DH
- SeeAlso: AH=02h
- ----------1305-------------------------------
- INT 13 - FLOPPY - FORMAT TRACK
- AH = 05h
- AL = number of sectors to format
- CH = track number
- DH = head number
- DL = drive number
- ES:BX -> address field buffer (see below)
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- Notes: on AT or higher, call AH=17h first
- the number of sectors per track is read from the diskette parameter
- table pointed at by INT 1E
- SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
-
- Format of address field buffer entry (one per sector in track):
- Offset Size Description
- 00h BYTE track number
- 01h BYTE head number (0-based)
- 02h BYTE sector number
- 03h BYTE sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
- ----------1305-------------------------------
- INT 13 - FIXED DISK - FORMAT TRACK
- AH = 05h
- AL = interleave value (XT-type controllers only)
- ES:BX = 512-byte format buffer
- the first 2*(sectors/track) bytes contain F,N for each sector
- F = 00h for good sector, 80h for bad sector
- N = sector number
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = high bits of cylinder number (bits 7,6)
- DH = head
- DL = drive
- Return: AH = status code (see AH=01h)
- Notes: AWARD AT BIOS extended to handle more than 1024 cylinders by placing
- bits 10 and 11 of the cylinder number into bits 6 and 7 of DH
- for XT-type controllers on an AT or higher, AH=0Fh should be called
- first
- SeeAlso: AH=05h"FLOPPY",AH=06h,AH=07h,AH=0Fh,AH=18h,AH=1Ah
- ----------1306-------------------------------
- INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
- AH = 06h
- AL = interleave value
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see AH=01h)
- Note: AWARD AT BIOS extended to handle more than 1024 cylinders by placing
- bits 10 and 11 of the cylinder number into bits 6 and 7 of DH
- ----------1307-------------------------------
- INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
- AH = 07h
- AL = interleave value (XT only)
- ES:BX = 512-byte format buffer (see AH=05h)
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see AH=01h)
- Note: AWARD AT BIOS extended to handle more than 1024 cylinders by placing
- bits 10 and 11 of the cylinder number into bits 6 and 7 of DH
- SeeAlso: AH=1Ah
- ----------1308-------------------------------
- INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
- AH = 08h
- DL = drive (bit 7 set for hard disk)
- Return: CF set on error
- AH = status (07h) (see AH=01h)
- CF clear if successful
- AH = 00h
- BL = drive type (AT/PS2 floppies only)
- 01h 360K
- 02h 1.2M
- 03h 720K
- 04h 1.44M
- 06h ??? (checked by 386MAX v6.01)
- CH = low eight bits of maximum cylinder number
- CL = maximum sector number (bits 5-0)
- high two bits of maximum cylinder number (bits 7-6)
- DH = maximum head number
- DL = number of drives
- ES:DI -> drive parameter table (floppies only)
- Notes: may return successful even though specified drive is greater than the
- number of attached drives of that type (floppy/hard); check DL to
- ensure validity
- for systems predating the IBM AT, this call is only valid for hard
- disks, as it is implemented by the hard disk BIOS rather than the
- ROM BIOS
- Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
- but fail on DL=81h. The BIOS data at 40h:75h correctly reports 01h.
- SeeAlso: AH=15h,INT 1E,INT 41
- ----------1309-------------------------------
- INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
- AH = 09h
- DL = drive (80h for first, 81h for second)
- Return: CF clear if successful
- CF set on error
- AH = status (see AH=01h)
- Notes: on the PC and XT, this function uses the parameter table pointed at by
- INT 41
- on the AT and later, this function uses the parameter table pointed at
- by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
- DL=81h
- SeeAlso: INT 41,INT 46
- ----------130A-------------------------------
- INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
- AH = 0Ah
- AL = number of sectors
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second)
- ES:BX -> data buffer
- Return: CF clear if successful
- CF set on error
- AH = status (see AH=01h)
- AL = number of sectors transferred
- Notes: this function reads in four to seven bytes of error-correcting code
- along with each sector's worth of information
- data errors are not automatically corrected, and the read is aborted
- after the first sector with an ECC error
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=02h,AH=0Bh
- ----------130B-------------------------------
- INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
- AH = 0Bh
- AL = number of sectors
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second)
- ES:BX -> data buffer
- Return: CF clear if successful
- CF set on error
- AH = status (see AH=01h)
- AL = number of sectors transferred
- Notes: each sector's worth of data must be followed by four to seven bytes of
- error-correction information
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=03h,AH=0Ah
- ----------130C-------------------------------
- INT 13 - HARD DISK - SEEK TO CYLINDER
- AH = 0Ch
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- SeeAlso: AH=00h,AH=02h,AH=0Ah
- ----------130D-------------------------------
- INT 13 - HARD DISK - RESET HARD DISKS
- AH = 0Dh
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- Notes: reinitializes the hard disk controller, resets the specified drive's
- parameters, and recalibrates the drive's heads (seek to track 0)
- not for PS/2 ESDI drives
- SeeAlso: AH=00h,INT 21/AH=0Dh
- ----------130E-------------------------------
- INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
- AH = 0Eh
- DL = drive number (80h = first, 81h = second hard disk)
- ES:BX -> buffer
- Return: CF set on error
- CF clear if successful
- AH = status code (see AH=01h)
- Notes: transfers controller's sector buffer. No data is read from the drive
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=0Ah
- ----------130F-------------------------------
- INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
- AH = 0Fh
- DL = drive number (80h = first, 81h = second hard disk)
- ES:BX -> buffer
- Return: CF set on error
- CF clear if successful
- AH = status code (see AH=01h)
- Notes: does not write data to the drive
- should be called before formatting to initialize an XT-type
- controller's sector buffer
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=0Bh
- ----------1310-------------------------------
- INT 13 - HARD DISK - CHECK IF DRIVE READY
- AH = 10h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- ----------1311-------------------------------
- INT 13 - HARD DISK - RECALIBRATE DRIVE
- AH = 11h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- Note: causes hard disk controller to seek the specified drive to cylinder 0
- SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
- ----------1312-------------------------------
- INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
- AH = 12h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status code (see AH=01h)
- SeeAlso: AH=13h,AH=14h
- ----------1312-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
- AH = 12h
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see AH=01h)
- Notes: available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
- if the given drive is a SCSI device, the SCSI Stop Unit command is sent
- and either "Disk prepared for shipping" or "Disk Stop command failed"
- is displayed
- ----------1313-------------------------------
- INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
- AH = 13h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status code (see AH=01h)
- SeeAlso: AH=12h,AH=14h
- ----------1314-------------------------------
- INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
- AH = 14h
- Return: CF set on error
- CF clear if successful
- AH = status code (see AH=01h)
- SeeAlso: AH=12h,AH=13h
- ----------1315-------------------------------
- INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
- AH = 15h
- DL = drive number (bit 7 set for hard disk)
- Return: CF clear if successful
- AH = type code
- 00h no such drive
- 01h floppy without change-line support
- 02h floppy with change-line support
- 03h hard disk
- CX:DX = number of 512-byte sectors
- CF set on error
- AH = status (see AH=01h)
- SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
- ----------1316-------------------------------
- INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
- AH = 16h
- DL = drive number
- Return: CF clear if change line inactive
- AH = 00h (disk not changed)
- CF set if change line active
- AH = 06h change line active or not supported
- = 80h drive not ready or not present
- Note: call AH=15h first to determine whether the drive supports a change
- line
- SeeAlso: AH=15h
- ----------1317-------------------------------
- INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
- AH = 17h
- AL = format type
- 01h = 320/360K disk in 360K drive
- 02h = 320/360K disk in 1.2M drive
- 03h = 1.2M disk in 1.2M drive
- 04h = 720K disk in 720K drive
- DL = drive number
- Return: CF set on error
- CF clear if successful
- AH = status (see AH=01h)
- Note: this function does not handle 1.44M drives; use AH=18h instead
- SeeAlso: AH=15h,AH=18h
- ----------1318-------------------------------
- INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
- AH = 18h
- DL = drive number
- CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
- CL = sectors per track (bits 0-5)
- top 2 bits of highest cylinder number (bits 6,7)
- Return: AH = status
- 00h requested combination supported
- 01h function not available
- 0Ch not supported or drive type unknown
- 80h there is no disk in the drive
- ES:DI -> 11-byte parameter table
- SeeAlso: AH=05h,AH=07h,AH=17h
- ----------1318-------------------------------
- INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
- AH = 18h
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see AH=01h)
- CF clear if successful
- AX = 4321h (magic number???)
- BH = number of SCSI drives connected
- BL = SCSI device number for specified drive
- CX = 040Ah (magic number???)
- Note: also sets an internal flag (non-resettable) which prevents some
- controller messages from being displayed and allows writes to
- removable devices
- SeeAlso: AH=1Bh"SCSI"
- ----------1319-------------------------------
- INT 13 - FIXED DISK - PARK HEADS (XT286,PS)
- AH = 19h
- DL = drive
- Return: CF set on error
- AH = status (see AH=01h)
- SeeAlso: AH=11h
- ----------1319-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
- AH = 19h
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see AH=01h)
- CF clear if successful
- AH = disk type (03h = fixed disk)
- CX:DX = number of 512-byte sectors
- Notes: sends SCSI Read Capacity command to get number of logical blocks and
- adjusts the result for 512-byte sectors
- displays either "Error in Read Capacity Command" or "nnn Bytes per
- sector" (nnn=256 or 512, the only sizes supported in the translation
- code)
- should probably be called when a removable device has its media changed
- returns the same values as AH=15h
- SeeAlso: AH=15h,AH=1Ah
- ----------131A-------------------------------
- INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
- AH = 1Ah
- AL = defect table count
- CL = format modifiers
- bit 4: generate periodic interrupt
- bit 3: perform surface analysis
- bit 2: update secondary defect map
- bit 1: ignore secondary defect map
- bit 0: ignore primary defect map
- DL = drive
- ES:BX -> defect table
- Return: CF set on error
- AH = status (see AH=01h)
- Note: if periodic interrupt selected, INT 15/AH=0Fh is called after each
- cylinder is formatted
- SeeAlso: AH=07h,INT 15/AH=0Fh
- ----------131A-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
- AH = 1Ah
- CH = track (bits 8,9 in high bits of CL)
- CL = sector (01h to number of sectors/track for drive)
- DH = head
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see AH=01h)
- CX:DX = logical block number of last quickly-accessible block after
- given block
- Note: sends SCSI Read Capacity command with the PMI bit set to obtain the
- logical block address of the last block after which a substantial
- delay in data transfer will be encountered (usually the last block
- on the current cylinder). No translation to 512 byte sectors is
- performed on the result if data is stored on the disk in other than
- 512 byte sectors.
- SeeAlso: AH=15h,AH=19h"SCSI"
- ----------131B-------------------------------
- INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
- AH = 1Bh
- AL = number of record
- DL = drive
- ES:BX -> buffer for manufacturing header (defect list)
- Return: CF set on error
- AH = status
- Note: manufacturing header format (Defect Map Record format) can be found
- in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
- ----------131B-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
- AH = 1Bh
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see AH=01h)
- CF clear if successful
- ES:BX -> SCSI disk information block
- Note: also sets a non-resettable flag which prevents some controller messages
- from being displayed
- SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
-
- Format of SCSI disk information block:
- Offset Size Description
- 00h BYTE drive physical information
- bit 0: ???
- bit 1: device uses parity
- bit 2: 256 bytes per sector instead of 512
- bit 3: don't have capacity yet???
- bit 4: disk is removable
- bit 5: logical unit number is not present
- 01h WORD translated number of cylinders
- 03h BYTE translated number of heads
- 04h BYTE translated number of sectors per track (17, 34, or 63)
- 05h BYTE drive address
- bits 0-2: logical unit number
- bits 3-5: device number
- 06h BYTE 01h at initialization
- 07h BYTE sense code byte 00h, or extended sense code byte 0Ch
- 08h BYTE 00h
- 09h BYTE 00h or extended sense code byte 02h (sense key)
- 0Ah BYTE 00h
- 0Bh 10 BYTEs copy of Command Descriptor Block (CDB)
- 15h DWORD translated number of sectors on device
- ----------131C-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
- AH = 1Ch
- DL = hard drive ID (any valid SCSI hard disk)
- Return: CF set on error
- AH = status code (see AH=01h)
- CF clear if successful
- ES:BX -> first byte of free RAM on controller
- Notes: the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
- to 1BFFh on-bard the controller for storing drive information and
- controller status; ES:BX points to the first byte available for other
- uses
- ES contains the segment at which the controller resides; the
- controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
- SeeAlso: AH=1Bh"SCSI"
- ----------131C0A-----------------------------
- INT 13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION
- AX = 1C0Ah
- DL = drive
- ES:BX -> buffer for device configuration (drive physical parameter)
- Return: CF set on error
- AH = status
- Note: device configuration format can be found in IBM ESDI Fixed Disk Drive
- Adapter/A Technical Reference
- ----------131C0B-----------------------------
- INT 13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
- AX = 1C0Bh
- ES:BX -> buffer for adapter configuration
- Return: CF set on error
- AH = status
- SeeAlso: AX=1C0Ch
- ----------131C0C-----------------------------
- INT 13 - ESDI FIXED DISK - GET POS INFORMATION
- AX = 1C0Ch
- ES:BX -> POS information
- Return: CF set on error
- AH = status
- SeeAlso: AX=1C0Bh
- ----------131C0E-----------------------------
- INT 13 - ESDI FIXED DISK - TRANSLATE RBA TO ABA
- AX = 1C0Eh
- CH = low 8 bits of cylinder number
- CL = sector number, high two bits of cylinder number in bits 6 and 7
- DH = head number
- DL = drive number
- ES:BX -> ABA number
- Return: CF set on error
- AH = status
- Note: ABA (absolute block address) format can be found in IBM ESDI Adapter
- Technical Reference by using its Device Configuration Status Block
- ----------131D-------------------------------
- INT 13 - IBMCACHE.SYS - CACHE STATUS
- AH = 1Dh
- AL = subfunction
- 01h get status record
- DL = drive???
- Return: ES:BX -> status record
- CF set on error
- AH = error code
- 02h set cache status
- ES:BX -> status record
- DL = drive???
- Return: CF set on error
-
- Format of status record:
- Offset Size Description
- 00h DWORD total number of read requests
- 04h DWORD total number of hits
- 08h DWORD number of physical disk reads
- 0Ch DWORD total number of sectors requested by physical disk reads
- 10h 6 bytes ???
- 16h DWORD pointer to start of error list
- 1Ah DWORD pointer to end of error list
- 1Eh WORD ???
- 20h BYTE using extended memory if nonzero
- 21h BYTE ???
- 22h 4 BYTEs ASCII version number
- 26h WORD cache size in K
- 28h WORD sectors per page
-
- Format of error list:
- Offset Size Description
- 00h DWORD relative block address of bad page
- 04h BYTE drive
- 05h BYTE sector bit-map
- 06h WORD next error
- ----------1320-------------------------------
- INT 13 - DISK - ??? (Western Digital "Super BIOS")
- AH = 20h
- ???
- Return: ???
- Note: seems to return some kind of status
- ----------1320FF-----------------------------
- INT 13 - QCACHE - DISMOUNT
- AX = 20FFh
- Return: ???
- ----------1321-------------------------------
- INT 13 - QCACHE - FLUSH CACHE
- AH = 21h
- Return: ???
- SeeAlso: AH=25h,AH=2Eh
- ----------1322-------------------------------
- INT 13 - QCACHE - ENABLE/DISABLE CACHE
- AH = 22h
- AL = 00h disable cache
- 01h enable cache
- ----------1324-------------------------------
- INT 13 - QCACHE - SET SECTORS
- AH = 24h
- BX = number of sectors
- Return: ???
- ----------1325-------------------------------
- INT 13 - QCACHE - SET FLUSH INTERVAL
- AH = 25h
- BC = interval
- Return: ???
- SeeAlso: AH=21h,AH=2Eh
- ----------1327--BX0000-----------------------
- INT 13 - QCACHE - INSTALLATION CHECK
- AH = 27h
- BX = 0000h
- Return: BX nonzero if installed
- ----------132A-------------------------------
- INT 13 - QCACHE - SET BUFFER SIZE
- AH = 2Ah
- AL = buffer size
- Return: ???
- ----------132C-------------------------------
- INT 13 - QCACHE - SET BUFFERED WRITES
- AH = 2Ch
- AL = state
- 00h disable
- 01h enable
- Return: ???
- SeeAlso: AH=2Dh
- ----------132D-------------------------------
- INT 13 - QCACHE - SET BUFFERED READ
- AH = 2Dh
- AL = state
- 00h disable
- 01h enable
- Return: ???
- SeeAlso: AH=2Ch
- ----------132E-------------------------------
- INT 13 - QCACHE - SET FLUSH COUNT
- AH = 2Eh
- BX = flush count
- Return: ???
- SeeAlso: AH=21h,AH=25h
- ----------1330-------------------------------
- INT 13 - QCACHE - GET INFO
- AH = 30h
- AL = what to get
- 00h system info
- 01h drive info
- DS:DX -> buffer for info
- Return: ???
- ----------1370-------------------------------
- INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
- AH = 70h
- ???
- Return: ???
- Note: Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
- formatting program) make this call, presumably to EDVR.SYS (the
- partitioning driver)
- SeeAlso: AH=ADh
- ----------1375-------------------------------
- INT 13 - ???
- AH = 75h
- ???
- Return: AH = ???
- ???
- Note: intercepted by PC-Cache (v5.1 only)
- ----------1376-------------------------------
- INT 13 - ???
- AH = 76h
- ???
- Return: AH = ???
- ???
- Note: intercepted by PC-Cache (v5.1 only)
- ----------1380--CX6572-----------------------
- INT 13 - FAST! - API
- AH = 80h
- CX = 6572h
- DX = 1970h
- ES:BX -> data structure (see below)
- AL = function
- 01h ???
- 04h ???
- 05h ???
- 06h installation check
- Return: AX = 1965h if installed
- 07h ???
- 09h ???
- 0Ah ???
- 0Bh ???
- 0Ch set ??? flag
- 0Dh clear ??? flag
- Return: AH = 00h if successful (except function 06h)
-
- Format of data structure:
- Offset Size Description
- 00h DWORD pointer to 19-byte signature string
- 13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h
- 04h 08h 15h (v4.04)
- 04h ??? ???
- ----------1381--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- AH = 81h
- SI = 4358h
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- returns immediately in PC-Cache v5.x
- ----------1382--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- AH = 82h
- SI = 4358h
- ???
- Return: AL = ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- SeeAlso: AH=84h
- ----------1383--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- AH = 83h
- SI = 4358h
- AL = ???
- ES:BX -> ???
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- SeeAlso: AH=85h
- ----------1384--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- AH = 84h
- SI = 4358h
- AL = ???
- ???
- Return: AL = ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- SeeAlso: AH=82h
- ----------1385--SI4358-----------------------
- INT 13 - Super PC Kwik/PC-Cache 5.x - ???
- AH = 85h
- SI = 4358h
- AL = ???
- DL = ???
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- SeeAlso: AH=83h
- ----------1386--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = 86h
- SI = 4358h
- ???
- Return: ???
- ----------1387--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = 87h
- SI = 4358h
- ???
- Return: ???
- ----------1388--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = 88h
- SI = 4358h
- ???
- Return: ???
- ----------138EED-----------------------------
- INT 13 - HyperDisk v4.01+ - ???
- AX = 8EEDh
- ???
- Return: ???
- Note: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
- SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AH=DFh
- ----------138EEE-----------------------------
- INT 13 - HyperDisk v4.01+ - ???
- AX = 8EEEh
- Return: CF set
- AX = CS of HyperDisk resident code
- ???
- Note: identical to AX=8EEFh in HYPERDKX v4.21-4.30
- SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
- ----------138EEF-----------------------------
- INT 13 - HyperDisk v4.01+ - ???
- AX = 8EEFh
- Return: CF set
- AX = CS of HyperDisk resident code
- ???
- Note: identical to AX=8EEEh in HYPERDKX v4.21-4.30
- SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
- ----------13A0--SI4358-----------------------
- INT 13 - Super PC Kwik - GET RESIDENT CODE SEGMENT
- AH = A0h
- SI = 4358h
- Return: AX = segment of resident code
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- SeeAlso: INT 16/AX=FFA5h/CX=1111h
- ----------13A1--SI4358-----------------------
- INT 13 - Super PC Kwik - FLUSH CACHE
- AH = A1h
- SI = 4358h
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
- ----------13A2--SI4358-----------------------
- INT 13 - Super PC Kwik - ???
- AH = A2h
- SI = 4358h
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC Kwik, and thus support this call
- ----------13A5-------------------------------
- INT 13 - Super PC Kwik - ???
- AH = A5h
- SI = ???
- Return: AX = ???
- SI = ???
- Notes: called when a program terminates but stays resident (see INT 21/AH=31h)
- this call is not supported by Qualitas Qcache 4.00
- ----------13AA--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = AAh
- SI = 4358h
- ???
- Return: ???
- ----------13AB--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = ABh
- SI = 4358h
- ???
- Return: ???
- ----------13AC--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = ACh
- SI = 4358h
- ???
- Return: ???
- ----------13AD-------------------------------
- INT 13 - Priam HARD DISK CONTROLLER???
- AH = ADh
- ???
- Return: ???
- Note: this call is made from Priam's EFMT.EXE (low-level formatter), probably
- to check the ROM type on the controller for their hard disk kits
- SeeAlso: AH=70h
- ----------13AD--SI4358-----------------------
- INT 13 - Qualitas Qcache v4.00 - ???
- AH = ADh
- SI = 4358h
- ???
- Return: ???
- ----------13B0--SI4358-----------------------
- INT 13 - Super PC Kwik - ???
- AH = B0h
- SI = 4358h
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x is an OEM version of Super PC Kwik, and thus
- supports this call; Qualitas Qcache does not support it
- ----------13EE-------------------------------
- INT 13 - SWBIOS - SET 1024 CYLINDER FLAG
- AH = EEh
- DL = drive number (80h, 81h)
- Return: CF clear
- AH = 00h
- Notes: the following INT 13 call will interpret the cylinder number as 1024
- less than the desired cylinder
- flag cleared by all INT 13 calls except AH=EEh
- SWBIOS is a TSR by Ontrack Computer Systems; Disk Manager also supports
- these calls
- also supported by HyperDisk v4.01+ and PC-Cache v5.5+, in order to allow
- caching of drives using SWBIOS to access more than 1024 cylinders
- SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
- ----------13F9-------------------------------
- INT 13 - SWBIOS - INSTALLATION CHECK
- AH = F9h
- DL = drive number (80h,81h)
- Return: CF clear
- DX = configuration word
- bit 15 set if other SWBIOS extensions available
- CF set on error
- Note: SWBIOS is a TSR by Ontrack Computer Systems; Disk Manager also supports
- these calls
- SeeAlso: AH=EEh
- ----------13FE-------------------------------
- INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
- AH = FEh
- DL = drive number (80h, 81h)
- Return: CF clear
- DX = number of cylinders beyond 1024 on drive
- Notes: standard INT 13/AH=08h will return a cylinder count truncated to 1024
- BIOS without this extension would return count modulo 1024
- SWBIOS is a TSR by Ontrack Computer Systems; Disk Manager also supports
- these calls
- SeeAlso: AH=EEh
- ----------14---------------------------------
- INT 14 - SERIAL I/O- Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
- Note: the installation check for this driver is to determine whether the
- "~DOSXAM~" character device exists
- ----------1400-------------------------------
- INT 14 - SERIAL - INITIALIZE PORT
- AH = 00h
- AL = port parameters
- bits 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
- bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
- bit 2 stop bits (set = 2, clear = 1)
- bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
- DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
- Return: AH = line status (see AH=03h)
- FFh if error on Digiboard XAPCM232.SYS
- AL = modem status (see AH=03h)
- Notes: default handler is at F000h:E739h in IBM PC and 100% compatible BIOSes
- since the PCjr supports a maximum of 4800 bps, attempting to set 9600
- bps will result in 4800 bps
- SeeAlso: AH=04h"SERIAL",AH=04h"MultiDOS",AH=05h"SERIAL",AH=81h"COMM-DRV"
- SeeAlso: AH=82h"COURIERS",AH=8Ch
- ----------1400-------------------------------
- INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE
- AH = 00h
- AL = initializing parameters
- 7 - 6 - 5 4 - 3 2 1 - 0
- -BAUD RATE- PARITY STOP WORD
- BITS LENGTH
- 000 19200 bd 00 none 0: 1 00: 5
- 001 38400 bd 01 odd 1: 2 01: 6
- 010 300 bd 11 even 10: 7
- 011 600 bd 11: 8
- 100 1200 bd
- 101 2400 bd
- 110 4800 bd
- 111 9600 bd (4800 on PCjr)
- DX = port number (0-3 or FFh if only performing non-I/O setup)
- Return: AH = RS-232 status code bits
- 0: RDA - input data is available in buffer
- 1: OVRN - data has been lost
- 5: THRE - room is available in output buffer
- 6: TSRE - output buffer empty
- AL = modem status bits
- 3: always 1
- 7: DCD - carrier detect
- SeeAlso: AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS"
- ----------1400-------------------------------
- INT 14 - MBBIOS - INITIALIZE PORT
- AH = 00h
- AL = port parameters
- bits 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
- or if the high speed option is set
- bits 7-5 data rate (9600,14400,19200,28800,38400,57600,115200,330400 bps)
- bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
- bit 2 stop bits (set = 2, clear = 1)
- bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
- DX = port number
- Return: AH = line status (see AH=03h)
- AL = modem status (see AH=03h)
- Note: MBBIOS was written by H. Roy Engehausen
- SeeAlso: AH=04h"MBBIOS",AH=05h"MBBIOS"
- ----------1401-------------------------------
- INT 14 - SERIAL - WRITE CHARACTER TO PORT
- AH = 01h
- AL = character to write
- DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
- Return: AH bit 7 clear if successful
- AH bit 7 set on error
- AH bits 6-0 = port status (see AH=03h)
- SeeAlso: AH=02h,AH=0Bh"FOSSIL",AH=89h
- ----------1402-------------------------------
- INT 14 - SERIAL - READ CHARACTER FROM PORT
- AH = 02h
- DX = port number (00h-03h (04h-43h for Digiboard XAPCM232.SYS))
- Return: AH = line status (see AH=03h)
- AL = received character if AH bit 7 clear
- Note: will timeout if DSR is not asserted, even if function 03h returns
- data ready
- SeeAlso: AH=01h,AH=02h"FOSSIL",AH=84h,AH=FCh
- ----------1402-------------------------------
- INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT
- AH = 02h
- DX = port number (0-3)
- Return: AL = character received
- AH = 00h
- SeeAlso: AH=01h,AH=02h"SERIAL"
- ----------1403-------------------------------
- INT 14 - SERIAL - GET PORT STATUS
- AH = 03h
- DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
- Return: AH = line status
- bit 7: timeout
- 6: transmit shift register empty
- 5: transmit holding register empty
- 4: break detected
- 3: framing error
- 2: parity error
- 1: overrun error
- 0: receive data ready
- AL = modem status
- bit 7: carrier detect
- 6: ring indicator
- 5: data set ready
- 4: clear to send
- 3: delta carrier detect
- 2: trailing edge of ring indicator
- 1: delta data set ready
- 0: delta clear to send
- SeeAlso: AH=00h,AH=07h"MultiDOS",AH=81h"COURIERS",AX=FD02h
- ----------1404-------------------------------
- INT 14 - SERIAL I/O - EXTENDED INITIALIZE (CONVERTIBLE,PS)
- AH = 04h
- AL = break status
- 00h if break
- 01h if no break
- BH = parity
- 00h no parity
- 01h odd parity
- 02h even parity
- 03h stick parity odd
- 04h stick parity even
- BL = number of stop bits
- 00h one stop bit
- 01h two stop bits (1.5 if 5 bit word length)
- CH = word length
- 00h 5 bits
- 01h 6 bits
- 02h 7 bits
- 03h 8 bits
- CL = bps rate
- 00h 110
- 01h 150
- 02h 300
- 03h 600
- 04h 1200
- 05h 2400
- 06h 4800
- 07h 9600
- 08h 19200
- DX = port number
- Return: AX = port status code (see AH=00h)
- SeeAlso: AH=00h,AH=1Eh
- ----------1404-------------------------------
- INT 14 - FOSSIL - INITIALIZE DRIVER
- AH = 04h
- DX = port number
- optionally BX=4F50h
- ES:CX -> byte to be set upon ^C
- Return: AX = 1954h (if successful)
- BL = maximum function number supported (excluding 7Eh and above)
- BH = revision of FOSSIL supported
- DTR is raised
- Note: the word at offset 6 in the interrupt handler contains 1954h, and the
- following byte contains the maximum function number supported
- SeeAlso: AH=05h"FOSSIL",AH=1Ch
- ----------1404-------------------------------
- INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT
- AH = 04h
- Return: port initialized; if Hayes-compatible modem, a connection has been
- established
- Note: the port number is stored at offset BEh in the Task Control Block
- (see INT 15/AH=13h"MultiDOS")
- SeeAlso: AH=00h,AH=05h"MultiDOS",AH=20h"MultiDOS",INT 15/AH=13h"MultiDOS"
- ----------1404-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE
- AH = 04h
- AL = initializing parameters
- bits 7-5 unused
- bits 4,3: parity (00 none, 01 odd, 11 even)
- bit 2: stop bits (0 = one, 1 = two)
- bits 1,0: data bits (00 = five, 01 = six, 10 = seven, 11 = eight)
- BX = baud rate
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=05h"Digiboard"
- ----------1404-------------------------------
- INT 14 - MBBIOS - INQUIRY
- AH = 04h
- Return: AH = AAh
- AL = 55h
- SeeAlso: AH=00h"MBBIOS",AH=09h"MBBIOS"
- ----------1405-------------------------------
- INT 14 - SERIAL I/O - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)
- AH = 05h
- AL = 00h read modem control register
- Return: BL = modem control register (see below)
- AH = status
- AL = 01h write modem control register
- BL = modem control register
- bit 0: data terminal ready
- bit 1: request to send
- bit 2: OUT1
- bit 3: OUT2
- bit 4: LOOP
- bits 5-7 reserved
- Return: AX = status
- DX = port number
- SeeAlso: AH=00h,AH=1Fh
- ----------1405-------------------------------
- INT 14 - FOSSIL - DEINITIALIZE DRIVER
- AH = 05h
- DX = port number
- Return: none
- DTR is not affected
- SeeAlso: AH=00h,AH=04h"FOSSIL",AH=1Dh,AH=8Dh
- ----------1405-------------------------------
- INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT
- AH = 05h
- AL = timeout in seconds (00h = never)
- Return: AL = status
- 00h successful
- AH = character read
- 01h read error
- 02h timed out
- other modem status (CTS, DSR) changed
- Note: the port number is stored at offset BEh in the Task Control Block
- SeeAlso: AH=02h,AH=04h"MultiDOS",AH=06h"MultiDOS",AH=22h"MultiDOS"
- SeeAlso: INT 15/AH=13h"MultiDOS"
- ----------1405-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL
- AH = 05h
- AL = protocol
- bits 7-4 unused
- bit 3: RTS/CTS
- bit 2: DSR
- bits 1,0: XON/XOFF
- BH = new XOFF character (00h = current)
- BL = new XON character (00h = current)
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=04h"Digiboard"
- ----------1405-------------------------------
- INT 14 - MBBIOS - DROP DTR AND RTS
- AH = 05h
- DX = port number
- Return: none
- SeeAlso: AH=00h"MBBIOS",AH=06h"MBBIOS",AH=06h"FOSSIL"
- ----------1406-------------------------------
- INT 14 - FOSSIL - RAISE/LOWER DTR
- AH = 06h
- DX = port
- AL = DTR state to be set
- 00h = lower
- 01h = raise
- SeeAlso: AH=05h"MBBIOS",AH=1Ah
- ----------1406-------------------------------
- INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT
- AH = 06h
- AL = character
- Return: AL = status
- 00h successful
- Notes: the port number is stored at offset BEh in the Task Control Block
- if output queue is full, the calling task is blocked until the
- character can be stored
- SeeAlso: AH=01h,AH=04h"MultiDOS",AH=05h"MultiDOS",AH=21h"MultiDOS"
- SeeAlso: INT 15/AH=13h"MultiDOS"
- ----------1406-------------------------------
- INT 14 - MBBIOS - RAISE DTR AND RTS
- AH = 06h
- DX = port number
- Return: none
- SeeAlso: AH=05h"MBBIOS",AH=07h"MBBIOS"
- ----------1407-------------------------------
- INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS
- AH = 07h
- Return: AL = timer tick interrupt number
- AH = ticks per second on interrupt number in AL
- DX = approximate number of milliseconds per tick
- SeeAlso: AH=16h
- ----------1407-------------------------------
- INT 14 - MultiDOS Plus IODRV - GET PORT STATUS
- AH = 07h
- Return: CL = modem status (see AH=03h)
- CH = character at head of input queue (if any)
- DX = number of characters in input queue
- Note: the port number is stored at offset BEh in the Task Control Block
- SeeAlso: AH=03h,AH=05h"MultiDOS",AH=08h"MultiDOS",AH=09h"MultiDOS"
- SeeAlso: AH=23h"MultiDOS",INT 15/AH=13h"MultiDOS"
- ----------1407-------------------------------
- INT 14 - MBBIOS - SEND BREAK
- AH = 07h
- DX = port number
- Return: none
- SeeAlso: AH=06h"MBBIOS"
- ----------1408-------------------------------
- INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE
- AH = 08h
- DX = port number
- SeeAlso: AH=09h"FOSSIL"
- ----------1408-------------------------------
- INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS
- AH = 08h
- Return: AL = line status (see AH=03h)
- AH destroyed
- Notes: the port number is stored at offset BEh in the Task Control Block
- on every line status change, the line status is ORed with the line
- status accumulator; this function returns the accumulator and clears
- it
- SeeAlso: AH=03h,AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
- ----------1408-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK
- AH = 08h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = RS232 status bits (see AH=03h)
- ZF set if no characters queued
- ZF clear if character available
- AL = next character
- SeeAlso: AH=03h,AH=09h"Digiboard"
- ----------1408-------------------------------
- INT 14 - MBBIOS - NON-DESTRUCTIVE READ
- AH = 08h
- DX = port number
- Return: AL = character
- AH = status (see AH=02h)
- SeeAlso: AH=0Bh"MBBIOS",AH=0Ch"FOSSIL"
- ----------1409-------------------------------
- INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT
- AH = 09h
- DX = port number
- SeeAlso: AH=08h"FOSSIL",AH=0Ah"FOSSIL",AH=88h
- ----------1409-------------------------------
- INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS
- AH = 09h
- Return: modem status byte cleared
- Note: the port number is stored at offset BEh in the Task Control Block
- SeeAlso: AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
- ----------1409-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS
- AH = 09h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=08h"Digiboard",AH=0Ah"Digiboard",AH=10h"Digiboard"
- ----------1409-------------------------------
- INT 14 - MBBIOS - GET/SET OPTIONS
- AH = 09h
- AL = option byte
- 00000001b - Transmit Buffering Enabled
- 00000101b - Hardware Handshaking Enabled
- 00100000b - High Speed Option Enabled
- DX = port number???
- Return: AL = old option byte
- SeeAlso: AH=04h"MBBIOS",AH=10h"FOSSIL"
- ----------140A-------------------------------
- INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT
- AH = 0Ah
- DX = port number
- SeeAlso: AH=09h"FOSSIL",AH=85h
- ----------140A-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK
- AH = 0Ah
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of characters available in buffer
- SeeAlso: AH=09h"Digiboard",AH=0Dh"Digiboard"
- ----------140A-------------------------------
- INT 14 - MBBIOS - WRITE BUFFER
- AH = 0Ah
- CX = count
- ES:DI -> buffer
- Return: AX = status (see AH=03h)
- DI = is updated
- CX = unsent character count
- SeeAlso: AH=0Bh"MBBIOS",AH=19h"FOSSIL"
- ----------140B-------------------------------
- INT 14 - FOSSIL - TRANSMIT NO WAIT
- AH = 0Bh
- AL = character
- DX = port number
- Return: AX = 0000h character not accepted
- = 0001h character accepted
- SeeAlso: AH=01h
- ----------140B-------------------------------
- INT 14 - MBBIOS - READ BUFFER
- AH = 0Bh
- CX = size of buffer
- ES:DI -> buffer
- Return: AH = LSR
- AL = MSR
- CX = count of characters
- DI = is updated
- SeeAlso: AH=08h"MBBIOS",AH=0Ah"MBBIOS",AH=18h"FOSSIL"
- ----------140C-------------------------------
- INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD
- AH = 0Ch
- DX = port number
- Return: AX = FFFFh character not available
- AX = 00xxh character xx available
- SeeAlso: AH=08h"MBBIOS",AH=20h"FOSSIL"
- ----------140D-------------------------------
- INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
- AH = 0Dh
- Return: AX = FFFFh character not available
- = xxyyh standard IBM-style scan code
- SeeAlso: AH=0Eh
- ----------140D-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG
- AH = 0Dh
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: ES:BX -> CH_KEY_RDY flag
- SeeAlso: AH=0Ah"Digiboard"
-
- Values for CH_KEY_RDY flag:
- 00h receive buffer empty
- FFh characters available
- ----------140E-------------------------------
- INT 14 - FOSSIL - KEYBOARD READ WITH WAIT
- AH = 0Eh
- Return: AX = xxyyh standard IBM-style scan code
- SeeAlso: AH=0Dh"FOSSIL"
- ----------140E-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING
- AH = 0EH
- CX = number of characters to write
- ES:BX -> string
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of characters actually written
- ZF clear if successful
- ZF set on error
- SeeAlso: AH=0Fh"Digiboard"
- ----------140F-------------------------------
- INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL
- AH = 0Fh
- AL = bit mask describing flow control requested
- 0: xon/xoff on transmit (watch for xoff while sending)
- 1: CTS/RTS (CTS on transmit/RTS on receive)
- 2: reserved
- 3: xon/xoff on receive (send xoff when buffer near full)
- 4-7: all 1
- DX = port number
- SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL"
- ----------140F-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING
- AH = 0Fh
- CX = number of characters to read
- ES:BX -> buffer
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of characters read
- ZF clear if successful
- ZF set on error (line status or wrong number of characters)
- SeeAlso: AH=0Eh"Digiboard"
- ----------1410-------------------------------
- INT 14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF
- AH = 10h
- AL = bit mask
- 0: enable/disable ^C/^K checking
- 1: enable/disable the transmitter
- DX = port number
- SeeAlso: AH=0Fh"FOSSIL"
- ----------1410-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER
- AH = 10h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=09h"Digiboard",AH=11h"Digiboard"
- ----------1411-------------------------------
- INT 14 - FOSSIL - SET CURRENT CURSOR LOCATION
- AH = 11h
- DH = row
- DL = column
- Note: this is the same as INT 10/AH=02h
- SeeAlso: AH=12h"FOSSIL"
- ----------1411-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER
- AH = 11h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=09h"Digiboard",AH=10h"Digiboard"
- ----------1412-------------------------------
- INT 14 - FOSSIL - READ CURRENT CURSOR LOCATION
- AH = 12h
- Return: DH = row
- DL = column
- Note: this is the same as INT 10/AH=03h
- SeeAlso: AH=11h"FOSSIL"
- ----------1412-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE
- AH = 12h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of bytes free
- SeeAlso: AH=0Ah"Digiboard"
- ----------1413-------------------------------
- INT 14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN
- AH = 13h
- AL = character
- Note: should not be called if it is unsafe to call DOS
- SeeAlso: AH=15h
- ----------1414-------------------------------
- INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING
- AH = 14h
- AL = 01h enable watchdog
- 00h disable watchdog
- DX = port number
- ----------1415-------------------------------
- INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES
- AH = 15h
- AL = character
- SeeAlso: AH=13h
- ----------1416-------------------------------
- INT 14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN
- AH = 16h
- AL = function
- 00h = delete
- 01h = add
- ES:DX -> routine to call
- Return: AX = status
- 0000h successful
- 0001h unsuccessful
- SeeAlso: AH=07h"FOSSIL"
- ----------1416-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND
- AH = 16h
- AL = CCB command number (see below)
- BL = byte 2
- BH = byte 3
- CL = byte 1 (for all channel functions except 4Eh and 4Fh)
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=18h"Digiboard"
-
- Values for CCB command number:
- 40h Set Receive Mid Water Mark
- 41h Set Receive High Water Mark
- 42h Flush Receive Buffer
- 43h Flush Transmit Buffer
- 44h Transmit Pause
- 45h Transmit Resume
- 46h Set Interrupt to Host Mask
- 47h Set Baud, Data, Stop and Parity
- 48h Send Break
- 49h Set Modem Lines
- 4Ah Set Break Count
- 4Bh Set Handshake
- 4Ch Set Xon/Xoff Characters
- 4Dh Set Transmit Mid Water Mark
- 4Eh IRQ Polling Timer to Host
- 4Fh Buffer Set All
- 50h Port On
- 51h Port Off
- 52h Receive Pause
- 53h Special Character Interrupt
- 54h RS-422 Enable
- ----------1417-------------------------------
- INT 14 - FOSSIL - REBOOT SYSTEM
- AH = 17h
- AL = method
- 00h = cold boot
- 01h = warm boot
- SeeAlso: INT 19
- ----------1418-------------------------------
- INT 14 - FOSSIL - READ BLOCK
- AH = 18h
- CX = maximum number of characters to transfer
- DX = port number
- ES:DI -> user buffer
- Return: AX = number of characters transferred
- SeeAlso: AH=19h"FOSSIL",AH=83h"COURIERS",AX=FF02h,INT 6B/AX=0100h
- ----------1418-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND
- AH = 18h
- ES:BX -> 16-byte command string
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h timeout
- AL = mailbox status
- 00h no errors
- 8Xh BIOS error
- ES:BX buffer filled in with mailbox string
- ZF clear if no errors
- ZF set if either status byte contains an error code
- SeeAlso: AH=16h"Digiboard"
- ----------1419-------------------------------
- INT 14 - FOSSIL - WRITE BLOCK
- AH = 19h
- CX = maximum number of characters to transfer
- DX = port number
- ES:DI -> user buffer
- Return: AX = number of characters transferred
- SeeAlso: AH=18h"FOSSIL",AH=86h,INT 6B/AX=0000h
- ----------1419-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT
- AH = 19h
- BL = flag
- 00h disable special character interrupt
- FFh enable interrupt
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh failed
- SeeAlso: AH=1Ah"Digiboard"
- ----------141A-------------------------------
- INT 14 - FOSSIL - BREAK BEGIN OR END
- AH = 1Ah
- AL = 00h stop sending 'break'
- 01h start sending 'break'
- DX = port number
- SeeAlso: AH=06h"FOSSIL",AH=8Ah,AH=FAh
- ----------141A-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER
- AH = 1Ah
- BX = subfunction
- 00h return pointer to special character flag byte
- 01h return pointer to special character counter word
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: ES:BX -> special character flag or counter
- Notes: flag is FFh if one or more special characters are in the receive
- buffer; it is 00h and the counter is invalid if no special characters
- are in the receive buffer
- counter (if valid) contains the number of characters in the receive
- buffer up to and including the last-received special character
- ----------141B-------------------------------
- INT 14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER
- AH = 1Bh
- DX = port number
- CX = size of user buffer
- ES:DI -> user buffer for driver info (see below)
- Return: AX = number of characters transferred
- CX = 3058h ("0X") (X00 FOSSIL only)
- DX = 2030h (" 0") (X00 FOSSIL only)
-
- Format of driver info:
- Offset Size Description
- 00h WORD size of structure in bytes
- 02h BYTE FOSSIL spec driver conforms to
- 03h BYTE revision level of this specific driver
- 04h DWORD pointer to ASCIZ identification string
- 08h WORD size of the input buffer
- 0Ah WORD number of bytes left in buffer
- 0Ch WORD size of the output buffer
- 0Eh WORD number of bytes left in buffer
- 10h BYTE width of screen
- 11h BYTE length of screen
- 12h BYTE actual baud rate, computer to modem
- ----------141C-------------------------------
- INT 14 - X00 FOSSIL - ACTIVATE PORT
- AH = 1Ch
- DX = port number
- Return: AX = 1954h if successful
- BL = maximum function number supported (not including 7Eh and above)
- BH = revision of FOSSIL specification supported
- Note: this is a duplicate of AH=04h, so that AH=04h may be made compatible
- with the PS/2 BIOS in a future release
- SeeAlso: AH=04h"FOSSIL",AH=1Dh
- ----------141D-------------------------------
- INT 14 - X00 FOSSIL - DEACTIVATE PORT
- AH = 1Dh
- DX = port number
- Return: none
- Notes: this is a duplicate of AH=05h, so that AH=05h may be made compatible
- with the PS/2 BIOS in a future release
- ignored if the port was never activated with AH=04h or AH=1Ch
- SeeAlso: AH=05h"FOSSIL",AH=1Ch
- ----------141E-------------------------------
- INT 14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION
- AH = 1Eh
- AL = break status
- 00h if break
- 01h if no break
- BH = parity
- 00h no parity
- 01h odd parity
- 02h even parity
- 03h stick parity odd
- 04h stick parity even
- BL = number of stop bits
- 00h one stop bit
- 01h two stop bits (1.5 if 5 bit word length)
- CH = word length
- 00h 5 bits
- 01h 6 bits
- 02h 7 bits
- 03h 8 bits
- CL = bps rate
- 00h 110
- 01h 150
- 02h 300
- 03h 600
- 04h 1200
- 05h 2400
- 06h 4800
- 07h 9600
- 08h 19200
- DX = port number
- Return: AX = port status code (see AH=00h)
- Notes: this function is intended to exactly emulate the PS/2 BIOS AH=04h call
- if the port was locked at X00 load time, the appropriate parameters are
- ignored
- SeeAlso: AH=00h,AH=04h"SERIAL I/O"
- ----------141F-------------------------------
- INT 14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL
- AH = 1Fh
- AL = 00h read modem control register
- Return: BL = modem control register (see below)
- AH = status
- AL = 01h write modem control register
- BL = modem control register
- bit 0: data terminal ready
- bit 1: request to send
- bit 2: OUT1
- bit 3: OUT2 (interrupts) enabled
- bit 4: LOOP
- bits 5-7 reserved
- Return: AX = status
- DX = port number
- SeeAlso: AH=00h,AH=05h"SERIAL I/O"
- Notes: this function is intended to exactly emulate the PS/2 BIOS AH=05h call
- X00 forces BL bit 3 set (interrupts cannot be disabled)
- ----------1420-------------------------------
- INT 14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT
- AH = 20h
- DX = port number
- Return: AH = 00h if character was available
- AL = next character (removed from receive buffer)
- AX = FFFFh if no character available
- SeeAlso: AH=0Ch,AH=21h"X00"
- ----------1420-------------------------------
- INT 14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT
- AH = 20h
- AL = logical port (01h COM1, 02h COM2)
- DX = physical port number
- Return: AX = status
- 0000h successful
- FFFFh failed
- SeeAlso: AH=21h"Alloy",AH=22h"Alloy",AH=23h"Alloy",INT 17/AH=8Bh"Alloy"
- ----------1420-------------------------------
- INT 14 - MultiDOS Plus - INITIALIZE PORT
- AH = 20h
- AL = port parameters (see AH=00h"SERIAL")
- DX = port number (0-3)
- Return: AH = status
- 00h successful
- 41h no such port
- 64h monitor mode already active
- SeeAlso: AH=00h"SERIAL",AH=04h"MultiDOS",AH=21h"MultiDOS",AH=23h"MultiDOS"
- ----------1421-------------------------------
- INT 14 - X00 FOSSIL - STUFF RECEIVE BUFFER
- AH = 21h
- AL = character
- DX = port number
- Notes: the given character is inserted at the end of the receive buffer as if
- it had just arrived from the serial port; all normal receive
- processing (XON/XOFF, ^C/^K) is performed on the character
- fully re-entrant
- SeeAlso: AH=20h"X00"
- ----------1421-------------------------------
- INT 14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT
- AH = 21h
- DX = physical port number
- Return: AX = status
- 0000h successful
- FFFFh failed
- SeeAlso: AH=20h"Alloy",AH=22h"Alloy"
- ----------1421-------------------------------
- INT 14 - MultiDOS Plus - TRANSMIT CHARACTER
- AH = 21h
- AL = character to send
- DX = port number
- Return: AH = status
- 00h successful
- 39h no DSR or CTS
- 3Ch no DSR
- 3Bh no CTS
- 41h no such port
- 42h monitor mode not active
- 97h timed out
- Note: monitor mode must have been turned on with AH=24h before calling
- SeeAlso: AH=20h"MultiDOS",AH=22h"MultiDOS",AH=24h"MultiDOS"
- ----------1422-------------------------------
- INT 14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT
- AH = 22h
- AL = logical port (01h COM1, 02h COM2)
- Return: AX = status (0000h successful)
- SeeAlso: AH=20h"Alloy",AH=21h"Alloy"
- ----------1422-------------------------------
- INT 14 - MultiDOS Plus - RECEIVE CHARACTER
- AH = 22h
- DX = port number
- Return: AH = status (see also AH=21h"MultiDOS")
- 00h successful
- AL = character
- 3Dh framing and parity error
- 3Eh overrun error
- 3Fh framing error
- 40h parity error
- 96h ring buffer overflow
- Note: if no character is available, this function waits until a character
- arrives or an implementation-dependent timeout elapses
- SeeAlso: AH=20h"MultiDOS",AH=21h"MultiDOS",AH=27h
- ----------1423-------------------------------
- INT 14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID
- AH = 23h
- AL = logical port (01h COM1, 02h COM2)
- DH = user ID
- DL = process ID (DH,DL both FFh for current task)
- Return: AL = MW386 port mode
- bit 0: port is shared (spooler only)
- 1: port is spooled instead of direct (spooler only)
- 2: port is assigned as logical COM device, not in spooler
- 3: port is free
- CX = MW386 port number
- DH = owner's user ID
- DL = owner's task ID
- SeeAlso: AH=20h"Alloy",INT 17/AH=8Bh"Alloy"
- ----------1423-------------------------------
- INT 14 - MultiDOS Plus - GET PORT STATUS
- AH = 23h
- DX = port number
- Return: AH = line status (see AH=03h)
- AL = modem status (see AH=03h)
- SeeAlso: AH=03h,AH=07h"MultiDOS",AH=20h"MultiDOS"
- ----------1424-------------------------------
- INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS
- AH = 24h
- CX = physical I/O port number
- DS:DX -> configuration table (see below)
- Return: AH = 00h
- Note: invalid port numbers are merely ignored
- SeeAlso: INT 17/AH=96h
-
- Format of configuration table:
- Offset Size Description
- 00h BYTE baud rate
- 00h 38400
- 01h 19200
- 02h 9600
- 03h 7200
- 04h 4800
- 05h 3600
- 06h 2400
- 07h 2000
- 08h 1200
- 09h 600
- 0Ah 300
- 0Bh 150
- 0Ch 134.5
- 01h BYTE data bits (00h=5, 01h=6, 02h=7, 03h=8)
- 02h BYTE parity (00h none, 01h odd, 02h even)
- 03h BYTE stop bits (00h=1, 01h=2)
- 04h BYTE receive flow control
- 00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC, 04h RTS/CTS
- 05h BYTE transmit flow control (as for receive)
- ----------1424-------------------------------
- INT 14 - MultiDOS Plus - SET MONITOR MODE
- AH = 24h
- AL = port status storage
- 00h single status for entire receive buffer
- 01h separate status kept for each byte in receive buffer
- DX = port number
- Return: AH = status
- 00h successful
- 3Ah invalid status storage specified
- 41h no such port
- 64h monitor mode already active
- Note: in monitor mode, MultiDOS redirects all BIOS video output to a serial
- port
- SeeAlso: AH=20h"MultiDOS",AH=25h
- ----------1425-------------------------------
- INT 14 - MultiDOS Plus - CLEAR BUFFERS
- AH = 25h
- AL = function
- 00h only clear buffers
- 01h clear buffers and deactivate
- DX = port number
- Return: AH = status
- 00h successful
- 3Ah invalid function
- 41h no such port
- 42h monitor mode not active
- SeeAlso: AH=20h"MultiDOS",AH=24h"MultiDOS"
- ----------1427-------------------------------
- INT 14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT
- AH = 27h
- DX = port number
- Return: AH = status
- 00h successful
- 41h no such port
- 42h monitor mode not active
- AL = number of characters in receive buffer
- ----------147E-------------------------------
- INT 14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION
- AH = 7Eh
- AL = code assigned to external application (80h-BFh)
- 80h reserved for communications FOSSIL
- 81h video FOSSIL
- 82h reserved for keyboard FOSSIL
- 83h reserved for system FOSSIL
- ES:DX -> entry point
- Return: AX = 1954h
- BL = code assigned to application (same as input AL)
- DH = 00h failed
- 01h successful
- SeeAlso: AH=7Fh,AH=80h"FOSSIL",AX=8100h,AH=82h"FOSSIL",AH=83h"FOSSIL"
- ----------147F-------------------------------
- INT 14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION
- AH = 7Fh
- AL = code assigned to external application
- ES:DX -> entry point
- Return: AX = 1954h
- BL = code assigned to application (same as input AL)
- DH = 00h failed
- 01h successful
- SeeAlso: AH=7Eh
- ----------1480-------------------------------
- INT 14 - COMMUNICATIONS FOSSIL
- AH = 80h
- SeeAlso: AH=7Eh
- ----------1480-------------------------------
- INT 14 - COURIERS.COM - INSTALLATION CHECK
- AH = 80h
- Return: AH = E8h if loaded
- Note: COURIERS is a TSR utility by PC Magazine
- ----------1481-------------------------------
- INT 14 - COURIERS.COM - CHECK IF PORT BUSY
- AH = 81h
- AL = port number (1-4)
- Return: AH = 00h port available
- 01h port exists but already in use
- 02h port nonexistent
- Note: COURIERS is a TSR utility by PC Magazine
- SeeAlso: AH=83h,AH=8Dh
- ----------1481-------------------------------
- INT 14 - Egberto Willies COMM-DRV - EXTENDED INITIALIZATION
- AH = 81h
- BX:DI -> port control block
- Return: ???
- SeeAlso: AH=00h
-
- Format of port control block:
- Offset Type Description
- 00h WORD port IO address
- 02h WORD port IRQ
- 04h WORD baud rate
- 06h WORD parity
- 08h WORD data bits
- 0Ah WORD stop bits
- 0Ch WORD break status
- 0000h off
- 0Eh WORD flow control protocol
- 10h BYTE input block
- 11h BYTE output block
- 12h WORD low threshold
- 14h WORD high threshold
- 16h WORD segment of buffer
- 18h WORD offset of buffer
- 1Ah WORD input buffer length
- 1Ch WORD output buffer length
- 1Eh BYTE auxiliary address
- 1Fh BYTE spare
- 20h 4 WORDs spares
- ----------148100-----------------------------
- INT 14 - VIDEO FOSSIL - RETURN VFOSSIL INFORMATION
- AX = 8100h
- ES:DI -> buffer for VFOSSIL information (see below)
- Return: AX = 1954h if installed
- SeeAlso: AH=7Eh,AX=8101h
-
- Format of VFOSSIL information:
- Offset Size Description
- 00h WORD size of information in bytes, including this field
- 02h WORD VFOSSIL major version
- 04h WORD VFOSSIL revision level
- 06h WORD highest VFOSSIL application function supported
- ----------148101-----------------------------
- INT 14 - VIDEO FOSSIL - OPEN VFOSSIL
- AX = 8101h
- ES:DI -> buffer for application function table (see below)
- CX = length of buffer in bytes
- Return: AX = 1954h if installed
- BH = highest VFOSSIL application function supported
- Note: the number of initialized pointers in the application function table
- will never exceed CX/4; if the buffer is large enough, BH+1 pointers
- will be initialized
- SeeAlso: AX=8102h
-
- Format of application function table:
- Offset Size Description
- 00h DWORD -> function to query current video mode (VioGetMode)
- 04h DWORD -> function to set video mode (VioSetMode)
- 08h DWORD -> function to query hardware config (VioGetConfig)
- 0Ch DWORD -> function to write data in TTY mode (VioWrtTTY)
- 10h DWORD -> function to get current ANSI state (VioGetANSI)
- 14h DWORD -> function to set new ANSI state (VioSetANSI)
- 18h DWORD -> function to get curr cursor position (VioGetCurPos)
- 1Ch DWORD -> function to set cursor position (VioSetCurPos)
- 20h DWORD -> function to get cursor shape (VioGetCurType)
- 24h DWORD -> function to set cursor shape (VioSetCurType)
- 28h DWORD -> function to scroll screen up (VioScrollUp)
- 2Ch DWORD -> function to scroll screen down (VioScrollDn)
- 30h DWORD -> function to read cell string from screen (VioReadCellStr)
- 34h DWORD -> function to read char string from screen (VioReadCharStr)
- 38h DWORD -> function to write a cell string (VioWrtCellStr)
- 3Ch DWORD -> function to write char string, leaving attr (VioWrtCharStr)
- 40h DWORD -> function to write char string,const attr (VioWrtCharStrAttr)
- 44h DWORD -> function to replicate an attribute (VioWrtNAttr)
- 48h DWORD -> function to replicate a cell (VioWrtNCell)
- 4Ch DWORD -> function to replicate a character (VioWrtNChar)
-
- Format of video mode data structure:
- Offset Size Description
- 00h WORD length of structure including this field
- 02h BYTE mode characteristics
- bit 0: clear if MDA, set otherwise
- bit 1: graphics mode
- bit 2: color disabled (black-and-white)
- 03h BYTE number of colors supported (1=2 colors, 4=16 colors, etc)
- 04h WORD number of text columns
- 06h WORD number of text rows
- 08h WORD reserved
- 0Ah WORD reserved
- 0Ch DWORD reserved
-
- Format of video configuration data:
- Offset Size Description
- 00h WORD structure length including this field
- 02h WORD adapter type
- 00h monochrome/printer
- 01h CGA
- 02h EGA
- 03h VGA
- 07h 8514/A
- 04h WORD display type
- 00h monochrome
- 01h color
- 02h enhanced color
- 09h 8514
- 06h DWORD adapter memory size
-
- Format of cursor type record:
- Offset Size Description
- 00h WORD cursor start line
- 02h WORD cursor end line
- 04h WORD cursor width (always 01h)
- 06h WORD cursor attribute (FFFFh = hidden)
-
- Call VioGetMode with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video mode data structure (see above)
- Return: AX = error code (00h, 74h, 17Eh, 1B4h)
- 0000h successful
- 0074h internal VIO failure
- 0163h unsupported mode
- 0166h invalid row value
- 0167h invalid column value
- 017Eh buffer too small
- 01A5h invalid VIO parameter
- 01B4h invalid VIO handle
-
- Call VioSetMode with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video mode data structure (see above)
- Return: AX = error code (00h, 74h, 163h, 17Eh, 1A5h, 1B4h) (see above)
-
- Call VioGetConfig with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video configuration data buffer (see above)
- Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see above)
-
- Call VioWrtTTY with:
- STACK: WORD VIO handle (must be 00h)
- WORD length of string
- DWORD pointer to character string to be written to screen
- Return: AX = error code (00h, 74h, 1B4h) (see above)
- Notes: write wraps at end of line and terminates if it reaches end of screen
- in ANSI mode, ANSI control sequences are interpreted, and this func is
- not required to be reentrant; in non-ANSI mode, the function is
- reentrant and may be called from within an MSDOS function call
-
- Call VioGetANSI with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to WORD which will be set to 00h if ANSI is off
- or 01h if ANSI is on
- Return: AX = error code (00h, 74h, 1B4h) (see above)
-
- Call VioSetANSI with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to WORD indicating new state of ANSI
- 00h off
- 01h on
- Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see above)
-
- Call VioGetCurPos with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to WORD to hold current cursor column (0-based)
- DWORD pointer to WORD to hold current cursor row (0-based)
- Return: AX = error code (00h, 74h, 1B4h) (see above)
-
- Call VioSetCurPos with:
- STACK: WORD VIO handle (must be 00h)
- WORD cursor column
- WORD cursor row
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
- Note: if either coordinate is invalid, the cursor is not moved
-
- Call VioGetCurType with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to cursor type record (see above)
- Return: AX = error code (00h, 74h, 1B4h) (see above)
-
- Call VioSetCurType with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to cursor type record (see above)
- Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see above)
-
- Call VioScrollUp with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to char/attr cell for filling emptied rows
- WORD number or rows to scroll (FFFFh = clear area)
- WORD right column of scroll area
- WORD bottom row of scroll area
- WORD left column of scroll area
- WORD top row of scroll area
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
-
- Call VioScrollDn with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to char/attr cell for filling emptied rows
- WORD number or rows to scroll (FFFFh = clear area)
- WORD right column of scroll area
- WORD bottom row of scroll area
- WORD left column of scroll area
- WORD top row of scroll area
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
-
- Call VioReadCellStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start reading
- WORD row at which to start reading
- DWORD pointer to WORD containing length of buffer in bytes
- on return, WORD contains number of bytes actually read
- DWORD pointer to buffer for cell string
- Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see above)
-
- Call VioReadCharStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start reading
- WORD row at which to start reading
- DWORD pointer to WORD containing length of buffer in bytes
- on return, WORD contains number of bytes actually read
- DWORD pointer to buffer for character string
- Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see above)
-
- Call VioWrtCellStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD length of cell string in bytes
- DWORD pointer to cell string to write
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- Call VioWrtCharStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD length of character string
- DWORD pointer to character string to write
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- Call VioWrtCharStrAttr with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to attribute to be applied to each character
- WORD column at which to start writing
- WORD row at which to start writing
- WORD length of character string
- DWORD pointer to character string to write
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- Call VioWrtNAttr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD number of times to write attribute
- DWORD pointer to display attribute to replicate
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- Call VioWrtNCell with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD number of times to write cell
- DWORD pointer to cell to replicate
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- Call VioWrtNChar with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD number of times to write character
- DWORD pointer to character to replicate
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see above)
- Note: write wraps at end of line and terminates if it reaches end of screen
- ----------148102-----------------------------
- INT 14 - VIDEO FOSSIL - CLOSE VFOSSIL
- AX = 8102h
- Return: AX = 1954h
- Note: terminates all operations; after this call, the video FOSSIL may either
- be removed from memory or reinitialized
- SeeAlso: AX=8101h,AX=8103h
- ----------148103-----------------------------
- INT 14 - VIDEO FOSSIL - UNINSTALL
- AX = 8103h
- Return: AX = 1954h
- Note: this is an extension to the VFOSSIL spec by Bob Hartman's VFOS_IBM
- ----------1482-------------------------------
- INT 14 - KEYBOARD FOSSIL
- AH = 82h
- SeeAlso: AH=7Eh
- ----------1482-------------------------------
- INT 14 - COURIERS.COM - CONFIGURE PORT
- AH = 82h
- AL = port number (1-4)
- BX = speed (bps)
- CX = bit flags
- bit 0: enable input flow control
- bit 1: enable output flow control
- bit 2: use X.PC protocol (not yet implemented)
- SeeAlso: AH=00h,AH=8Ch,INT 7A"X.PC"
- ----------1483-------------------------------
- INT 14 - SYSTEM FOSSIL
- AH = 83h
- SeeAlso: AH=7Eh
- ----------1483-------------------------------
- INT 14 - COURIERS.COM - START INPUT
- AH = 83h
- ES:BX -> circular input buffer
- CX = length of buffer
- (should be at least 128 bytes if input flow control enabled)
- SeeAlso: AH=18h,AH=87h,AH=8Dh,AH=A5h"BAPI"
- ----------1484-------------------------------
- INT 14 - COURIERS.COM - READ CHARACTER
- AH = 84h
- Return: ZF set if no characters available
- ZF clear
- AL = character
- AH = modem status bits
- bit 7: set on input buffer overflow
- SeeAlso: AH=02h,AH=86h,AH=89h
- ----------1485-------------------------------
- INT 14 - COURIERS.COM - FLUSH PENDING INPUT
- AH = 85h
- SeeAlso: AH=0Ah,AH=88h
- ----------1486-------------------------------
- INT 14 - COURIERS.COM - START OUTPUT
- AH = 86h
- ES:BX -> output buffer
- CX = length of output buffer
- SeeAlso: AH=19h,AH=83h"COURIERS",AH=A4h"BAPI"
- ----------1487-------------------------------
- INT 14 - COURIERS.COM - OUTPUT STATUS
- AH = 87h
- Return: AX = number of unsent characters
- ----------1488-------------------------------
- INT 14 - COURIERS.COM - ABORT OUTPUT
- AH = 88h
- SeeAlso: AH=09h,AH=85h
- ----------1489-------------------------------
- INT 14 - COURIERS.COM - SEND SINGLE CHARACTER
- AH = 89h
- CL = character to send
- SeeAlso: AH=01h,AH=84h
- ----------148A-------------------------------
- INT 14 - COURIERS.COM - SEND BREAK
- AH = 8Ah
- SeeAlso: AH=89h,AH=FAh
- ----------148C-------------------------------
- INT 14 - COURIERS.COM - SET SPEED
- AH = 8Ch
- BX = speed in bps
- SeeAlso: AH=00h,AH=82h"COURIERS"
- ----------148D-------------------------------
- INT 14 - COURIERS.COM - DECONFIGURE PORT
- AH = 8Dh
- SeeAlso: AH=82h"COURIERS"
- ----------14A0-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - CONNECT TO PORT
- AH = A0h
- ???
- Return: ???
- SeeAlso: AH=A1h"BAPI"
- ----------14A0--CXFFFF-----------------------
- INT 14 - Interconnections Inc. TES - INSTALLATION CHECK/STATUS REPORT
- AH = A0h
- CX = FFFFh
- Return: CF clear if successful
- AX = 5445h ('TE')
- CX <> FFFFh
- DX = port number
- CF set on error
- Note: TES is a network serial port emulation program
- SeeAlso: AH=A1h"TES"
- ----------14A1-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - DISCONNECT FROM PORT
- AH = A1h
- ???
- Return: ???
- SeeAlso: AH=A0h"BAPI"
- ----------14A1-------------------------------
- INT 14 - Interconnections Inc. TES - GET LIST OF SESSIONS WITH STATUS
- AH = A1h
- Return: CX = number of active sessions
- ES:SI -> status array (see below)
- SeeAlso: AH=A2h"TES",AH=A3h"TES"
-
- Format of status array entry:
- Offset Size Description
- 00h BYTE status
- 01h WORD offset of name
- ----------14A2-------------------------------
- INT 14 - Interconnections Inc. TES - GET LIST OF SERVER NAMES
- AH = A2h
- Return: CX = number of servers
- ES:SI -> array of offsets from ES for server names
- SeeAlso: AH=A1h"TES"
- ----------14A3-------------------------------
- INT 14 - Interconnections Inc. TES - START A NEW SESSION
- AH = A3h
- ES:SI -> ???
- Return: CF clear if successful
- AX = 5445h ('TE')
- CX <> FFFFh
- DX = port number
- CF set on error
- SeeAlso: AH=A1h"TES",AH=A4h"TES",AH=A6h"TES"
- ----------14A4-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - WRITE BLOCK
- AH = A4h
- CX = length
- DH = session number (00h)
- ES:BX -> buffer
- Return: CX = number of bytes sent
- SeeAlso: AH=19h,AH=86h,AH=A5h"BAPI"
- ----------14A4-------------------------------
- INT 14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION
- AH = A4h
- ???
- Return: ???
- SeeAlso: AH=A3h"TES",AH=A5h"TES"
- ----------14A5-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - READ BLOCK
- AH = A5h
- CX = length
- DH = session number (00h)
- ES:BX -> buffer
- Return: CX = number of bytes read
- SeeAlso: AH=18h,AH=83h"COURIERS",AH=A4h"BAPI",AX=FF02h
- ----------14A5-------------------------------
- INT 14 - Interconnections Inc. TES - RESUME A SESSION
- AH = A5h
- AL = session number
- Return: ???
- SeeAlso: AH=A4h"TES",AH=A6h"TES"
- ----------14A6-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - SEND SHORT BREAK
- AH = A6h
- DH = session number (00h)
- SeeAlso: AH=1Ah,AH=8Ah,AH=FAh
- ----------14A6-------------------------------
- INT 14 - Interconnections Inc. TES - DROP A SESSION
- AH = A6h
- AL = session number
- Return: AH = status
- 00h successful
- else error
- SeeAlso: AH=A3h"TES",AH=A5h"TES"
- ----------14A7-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - READ STATUS
- AH = A7h
- ???
- Return: ???
- ----------14A7-------------------------------
- INT 14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION
- AH = A7h
- ???
- Return: ???
- SeeAlso: AH=A3h"TES",AH=A5h"TES"
- ----------14A8-------------------------------
- INT 14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER
- AH = A8h
- AL = 00h no visible response
- ES:SI -> ASCIZ command
- Return: ???
- ----------14AF00BXAAAA-----------------------
- INT 14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK
- AX = AF00h
- BX = AAAAh
- Return: AX = AF01h if installed
- ----------14B0-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - ENABLE/DISABLE "ENTER COMMAND MODE" CHARACTER
- AH = B0h
- AL = 00h disable
- = 01h enable
- ----------14B1-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE
- AH = B1h
- ----------14F0F0-----------------------------
- INT 14 - ASAP v1.0 - ???
- AX = F0F0h
- DX = ???
- ???
- Return: ???
- Note: ASAP (Automatic Screen Access Program) is a shareware screen reader by
- MicroTalk
- SeeAlso: AX=F0F1h
- ----------14F0F1DX0000-----------------------
- INT 14 - ASAP v1.0 - INSTALLATION CHECK
- AX = F0F1h
- DX = 0000h
- Return: DX = segment of resident code
- = 0000h if not installed
- Note: ASAP (Automatic Screen Access Program) is a shareware screen reader by
- MicroTalk
- SeeAlso: AX=F0F0h,INT 10/AH=38h
- ----------14F4FF-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - INSTALLATION CHECK
- AX = F4FFh
- DX = port (00h-03h)
- Return: CF clear if present
- AX = 0000h
- CF set if not present
- AX <> 0000h
- ----------14F9-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL
- AH = F9h
- DX = port (00h-03h)
- ----------14FA-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK
- AH = FAh
- DX = port (00h-03h)
- SeeAlso: AH=1Ah,AH=8Ah
- ----------14FB-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - SET OUTGOING MODEM SIGNALS
- AH = FBh
- AL = modem control register
- bit 0: data terminal ready
- 1: request to send
- 2: OUT1
- 3: OUT2
- 4: loopback
- bits 5-7 unused
- DX = port (00h-03h)
- ----------14FC-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - READ CHARACTER, NO WAIT
- AH = FCh
- DX = port (00h-03h)
- Return: AH = RS232 status bits (see AH=00h)
- AL = character
- SeeAlso: AH=02h,AH=0Ch,AX=FF02h
- ----------14FD02-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS
- AX = FD02h
- Return: CX = number of characters available
- ----------14FF02-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - BUFFERED READ
- AX = FF02h
- CX = length
- DX = port (00h-03h)
- ES:BX -> buffer
- Return: CX = number of characters read
- SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh
- ---------------------------------------------
-