📄 interrup.txt
字号:
returns nothing
- in video mode 4 (300x200 4 color) on the EGA, MCGA and VGA
this function scrolls page 0 regardless of the current page
- can be used to scroll graphics screens, using character coords
- on CGA's this function disables video adapter, causing flitter
:int 10,8
^INT 10,8 - Read Character and Attribute at Cursor Position
AH = 08
BH = display page
on return:
AH = attribute of character (alpha modes only)
AL = character at cursor position
- in video mode 4 (300x200 4 color) on the EGA, MCGA and VGA
this function works only on page zero
:int 10,9
^INT 10,9 - Write Character and Attribute at Cursor Position
AH = 09
AL = ASCII character to write
BH = display page (or mode 13h, background pixel value)
BL = character attribute (text) foreground color (graphics)
CX = count of characters to write (CX >= 1)
returns nothing
- does not move the cursor
- in graphics mode (except mode 13h), if BL bit 7=1 then
value of BL is XOR'ed with the background color
:int 10,a
^INT 10,A - Write Character Only at Current Cursor Position
AH = 0A
AL = ASCII character to write
BH = display page (or mode 13h, background pixel value)
BL = foreground color (graphics mode only)
CX = count of characters to write (CX >= 1)
return nothing
- similar to ~INT 10,9~ except color ignored in text modes
:int 10,b
^INT 10,B - Set Color Palette
AH = 0B
BH = palette color ID
= 0 to set background and border color
= 1 to select 4 color palette
BL = color value (when BH = 0)
= palette value (when BH = 1)
Palette Pixel Color
0 0 current background color
1 green (2)
2 red (4)
3 brown (6)
1 0 current background color
1 cyan (3)
2 magenta (5)
3 white (7)
- does not work for all EGA and VGA video modes
- sets border color in text mode (BH = 0)
:int 10,c
^INT 10,C - Write Graphics Pixel at Coordinate
AH = 0C
AL = color value (XOR'ED with current pixel if bit 7=1)
BH = page number, see ~VIDEO PAGES~
CX = column number (zero based)
DX = row number (zero based)
returns nothing
- if bit 7 is 1, color specified is XOR'ed with current pixel
- page number in BH ignored for 320x200 4 color graphics mode
- this function is known to destroy AX and possibly SI and DI on
on some PS/2 VGA systems
:int 10,d
^INT 10,D - Read Graphics Pixel at Coordinate
AH = 0D
BH = page number, see ~VIDEO PAGES~
CX = column number (zero based)
DX = row number (zero based)
on return:
AL = color of pixel read
- 64K IBM EGAs with BIOS dated 9/13/84 in 350 line video
modes, return invalid data in AL
- page number in BH ignored for 320x200 4 color graphics mode
:int 10,e
^INT 10,E - Write Text in Teletype Mode
AH = 0E
AL = ASCII character to write
BH = page number (text modes)
BL = foreground pixel color (graphics modes)
returns nothing
- cursor advances after write
- characters BEL (7), BS (8), LF (A), and CR (D) are
treated as control codes
- for some older BIOS (10/19/81), the BH register must point
to the currently displayed page
- on CGA adapters this function can disable the video signal while
performing the output which causes flitter.
:int 10,f
^INT 10,F - Get Video State
AH = 0F
on return:
AH = number of screen columns
AL = mode currently set (see ~VIDEO MODES~)
BH = current display page
- video modes greater than 13h on EGA, MCGA and VGA indicate
~INT 10,0~ was called with the high bit of the mode (AL) set
to 1, meaning the display does not need cleared
- function returns byte value at 40:49; On EGA, MCGA and
VGA bit 7 of register AL is determined by bit 7 of BIOS Data
Area byte 40:87. This bit is usually set by INT 10,0
with bit 7 of the requested mode (in AL) set to 1
:int 10,10
^INT 10,10 - Set/Get Palette Registers (EGA/VGA)
AH = 10h
% AL = 00 set individual palette register
BH = color value
BL = palette register
% AL = 01 set border color (overscan register)
BH = color value
% AL = 02 set all palette registers and border
ES:DX = pointer to 17 byte table representing 16 palette
registers and border color register
% AL = 03 toggle intensity/blinking (EGA)
BL = 0 enable intensity
1 enable blinking
% AL = 07 read palette register (PS/2)
BL = palette register to read (0-15)
on return:
BH = value of palette register
% AL = 08 read border color (overscan register, PS/2)
on return:
BH = value of border color (overscan register)
% AL = 09 read palette registers and border (PS/2)
ES:DX = pointer to 17 byte table representing 16 palette
registers and border color register
on return:
ES:DX = pointer to table provided as input
% AL = 10 set DAC color register
BX = color register to set
CH = green value
CL = blue value
DH = red value
% AL = 12 set block of DAC color registers
BX = first color register to set
CX = number of color registers to set
ES:DX = pointer to table of color values to set
% AL = 13 set attribute controller color select state
BL = 0 set Mode Control register bit 7
BH = value for bit 7
BL = 1 set color select register
BH = value for color select register
% AL = 15 read DAC color register (PS/2)
BX = color register to read
on return:
CH = green value
CL = blue value
DH = red value
% AL = 17 read block of DAC color registers
BX = first color register to read
CX = number of color registers to read
ES:DX = pointer to buffer for color registers
on return:
ES:DX = pointer to color table provided as input
% AL = 18 update video DAC mask register
BL = new mask
% AL = 19 read video DAC mask register
on return:
BL = value read from video DAC mask register
% AL = 1A read color page state
BL = bit 7 of Mode Control Register
BH = bits 2 thru 3 of Color select register if BL = 0
= bits 0 thru 3 of Color select register if BL = 1
on return:
BL = current paging mode
CX = current page
% AL = 1B sum color values to shades of gray
BX = first color register to sum
CX = number of color registers to sum
- controls the pixel color mapping bit values
- BIOS extension to EGA/VGA systems
:int 10,11
^INT 10,11 - Character Generator Routine (EGA/VGA)
AH = 11h
% AL = 00 user character load
BH = number of bytes per character
BL = table in character generator RAM
CX = count of characters in table
DX = ASCII code of first character defined
ES:BP = pointer to user table
% AL = 01 ROM BIOS 8x14 monochrome set
BL = table in character generator RAM
% AL = 02 ROM BIOS 8x8 double dot
BL = table in character generator RAM
% AL = 03 set displayed definition table
BL = value for character Map Select register (EGA,VGA)
= character generator RAM table numbers (MCGA)
% AL = 04 ROM BIOS 8x16 character set
BL = table in character generator RAM
% AL = 10 user specified character definition table
BH = bytes per character (points)
BL = table in character generator RAM
CX = number of characters defined in table
DX = ASCII code of first character defined
ES:BP = pointer to user table
% AL = 11 ROM BIOS 8x14 monochrome character set
BL = table in character generator RAM
% AL = 12 ROM 8x8 double dot character definitions
BL = table in character generator RAM
% AL = 14 ROM 8x16 double dot character definitions
BL = table in character generator RAM
% AL = 20 pointer to graphics character table for ~INT 1F~ (8x8)
ES:BP = pointer to user table
% AL = 21 user graphics character pointer at INT 43
BL = row specifier
= 0 - user specified (DL = rows)
= 1 is 14 rows
= 2 is 25 rows
= 3 is 43 rows
CX = bytes per character (points)
DL = rows (when BL = 0)
ES:BP = pointer to user table
% AL = 22 ROM 8x14 character set
BL = number of rows (see AL=21)
DL = rows (when BL = 0)
% AL = 23 ROM 8x8 double dot character set
BL = row specifier (see AL=21)
DL = rows (when BL = 0)
% AL = 24 ROM 8x16 character set
BL = row specifier (see AL=21)
DL = rows (when BL = 0)
% AL = 30 get current character generator information
BH = information desired:
= 0 ~INT 1F~ pointer
= 1 INT 44h pointer
= 2 ROM 8x14 pointer
= 3 ROM 8x8 double dot pointer (base)
= 4 ROM 8x8 double dot pointer (top)
= 5 ROM 9x14 alpha alternate pointer
= 6 ROM 8x16 character table pointer
= 7 ROM 9x16 alternate character table pointer
on return:
CX = bytes per character (points)
DL = rows (less 1)
ES:BP = pointer to table
:int 10,12
^INT 10,12 - Video Subsystem Configuration (EGA/VGA)
AH = 12h
% BL = 10 return video configuration information
on return:
BH = 0 if color mode in effect
= 1 if mono mode in effect
BL = 0 if 64k EGA memory
= 1 if 128k EGA memory
= 2 if 192k EGA memory
= 3 if 256k EGA memory
CH = feature bits
CL = switch settings
% BL = 20 select alternate print screen routine
% BL = 30 select scan lines for alphanumeric modes
AL = 0 200 scan lines
= 1 350 scan lines
= 2 400 scan lines
on return:
AL = 12
% BL = 31 select default palette loading
AL = 0 enable default palette loading
= 1 disable default palette loading
on return:
AL = 12
% BL = 32 CPU access to video RAM
AL = 0 enable CPU access to video RAM and I/O ports
= 1 disable CPU access to video RAM and I/O ports
on return:
AL = 12
% BL = 33 Gray scale summing
AL = 0 enable gray scale summing
= 2 disable gray scale summing
on return:
AL = 12
% BL = 34 cursor emulation
AL = 0 enable cursor emulation
= 1 disable cursor emulation
on return:
AL = 12
% BL = 35 PS/2 video display switching
AL = 0 initial adapter video off
= 1 initial planar video on
= 2 switch active video off
= 3 switch inactive video on
ES:DX pointer to 128 byte save area (when AL = 0, 2 or 3)
on return:
AL = 12
% BL = 36 video refresh control
AL = 0 enable refresh
= 1 disable refresh
on return:
AL = 12
:int 10,13
^INT 10,13 - Write String (BIOS versions from 1/10/86)
AH = 13h
AL = write mode (see bit settings below)
= 0 string is chars only, attribute in BL, cursor not moved
= 1 string is chard only, attribute in BL, cursor moved
= 2 string contains chars and attributes, cursor not moved
= 3 string contains chars and attributes, cursor moved
BH = video page number
BL = attribute if mode 0 or 1 (AL bit 1=0)
CX = length of string (ignoring attributes)
DH = row coordinate
DL = column coordinate
ES:BP = pointer to string
Bit settings for write mode (register AL):
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -