Cho phép hieơn thị 8 màu cho thuoơc tính neăn ( Bạng 1 ) và 16 màu cho thuoơc tính ký tự ( Bạng 1 & 2 )
(8 màu cụa bạng 1 phôi hợp với bit đoơ sáng baỉng 1)
Color code Color code Intensity-bit=1
0 Black 8 Gray
1 Blue 9 Light Blue
2 Green 10 Light Green
3 Cyan 11 Light Cyan
4 Magenta 12 Light Magenta
5 Red 13 Light Red
6 Brown 14 Yellow
7 White 15 Light White
Bạng 1 Bạng 2
10.5INTERRUPT 010H
ROM BIOS cụa các máy vi tính IBM PC cung câp cho chúng ta moơt sô chức naíng tieơn dúng đeơ đieău khieơn display adapter như thay đoơi mode, định vị trí con trỏ, in các ký tự... Dưới đađy là moơt sô các chức naíng thođng dúng cho tât cạ các lối màn hình
10.5.1Chĩn mode làm vieơc :
Input : AH = 00 AL = mode Output : None Tham sô cụa chức naíng 0
AL Type Format Colors Adapter Addr Monitor
0 text 40x25 16/8 CGA,EGA B800 Composite
1 text 40x25 16/8 CGA,EGA B800 Comp,RGB,Enhanced
2 text 80x25 16/8 CGA,EGA B800 Composite
3 text 80x25 16/8 CGA,EGA B800 Comp,RGB,Enhanced
4 graphic 320x200 4 CGA,EGA B800 Comp,RGB,Enhanced
5 graphic 320x200 4 CGA,EGA B800 Composite
6 graphic 640x200 2 CGA,EGA B800 Comp,RGB,Enhanced
7 text 80x25 3 MDA,EGA B000 Monochrome
0Eh graphic 640x200 16 EGA A000 RGB,Enhanced
0Fh graphic 640x350 3 EGA A000 Enhanced,Monochrome
10h graphic 640x350 4 or 16 EGA A000 Enhanced
10.5.2Định hình dáng con trỏ
Input : AH = 01 CH = start line CL = end line Output : None
Nêu CH = 020h --> con trỏ sẽ khođng xuât hieơn tređn màn hình .
10.5.3Định vị trí con trỏ
Input : AH = 02 BH = trang hieơn hành
DH,DL = row,col (row,col tính từ 0 trở đi) Output : None 10.5.4Đĩc vị trí con trỏ Input : AH = 03 BH = trang hieơn hành Output : DH,DL = row,col CH,CL = start,end line 10.5.5Chĩn trang hieơn thị Input : AH = 05 AL = trang Output : None
10.5.6 Scroll window up Scroll window down
Input : AH = 06 Input : AH = 07
CH,CL = tĩa đoơ thứ 1 CH,CL = tĩa đoơ thứ 1 DH,DL = tĩa đoơ thứ 2 DH,DL = tĩa đoơ thứ 2 AL = sô dòng trođi leđn AL = sô dòng trođi xuông BH = thuoơc tính BH = thuoơc tính
Output : None
Tĩa đoơ thứ 1 : row,col cụa góc trái tređn Tĩa đoơ thứ 2 : row,col cụa góc phại dưới
Tác vú này sẽ tịnh tiên các dòng ký tự trong cửa soơ leđn hoaịc xuông, các dòng xuât hieơn do vieơc
“trođi” leđn hay xuông sẽ được đieăn kín baỉng mã 020h với thuoơc tính trong BH
Nêu AL = 0, toàn boơ cửa soơ (window) sẽ được đieăn kín baỉng mã 020h với thuoơc tính trong BH . Trường hợp này thường được dùng đeơ xóa và định lái thuoơc tính màu cho moơt phaăn hoaịc toàn boơ màn hình.
10.5.7Đĩc ký tự tái vị trí con trỏ
Input : AH = 08 BH = trang caăn đĩc
Output : AL = ký tự AH = thuoơc tính
Maịc dù chư có moơt con trỏ duy nhât veă maịt vaơt lý,moêi trang màn hình có moơt caịp giá trị đeơ ghi nhớ vị trí con trỏ cụa rieđng từng trang màn hình . Moêi khi có sự thay đoơi trang màn hình, con trỏ vaơt lý sẽ được caơp nhaơt vị trí ngay laơp tức theo giá trị tương ứng.
10.5.8In ký tự tái vị trí con trỏ
Input : AH = 09 BH = trang caăn ghi AL = ký tự
CX = sô laăn laịp lái BL = thuoơc tính
Chức naíng này in moơt hay nhieău ký tự giông nhau (mã ASCII trong AL) lieđn tiêp tređn màn hình . Ký tự đaău tieđn được in tái địa chư hieơn thời cụa con trỏ .
10.5.9Đĩc mode hieơn tái
Input : AH = 0F
Output : AL = current mode AH = sô ký tự tređn moơt hàng BH = trang hieơn thời
10.5.10In moơt châm (pixel) trong graphics mode
Input : AH = 0C BH = Video page CX = hàng DX = coơt
AL = color value (nêu bit 7 = 1 --> XOR với đieơm hieơn tái)
10.5.11Đĩc moơt châm (pixel) trong graphics mode
Input : AH = 0D BH = Video page CX = hàng DX = coơt
Output : AL = color value
10.6BIOS DATA OF INTERRUPT 010H
Các thođng sô veă màn hình hieơn thời được BIOS lưu giữ trong moơt vùng nhớ rieđng từ địa chư 0:0449 đên 0:0466 với câu trúc như sau :
Address Size Content
0:0449 1 Mode hieơn thời .
0:044A 2 Beă roơng cụa màn hình ( tính theo sô ký tự tređn moơt hàng ) 0:044C 2 Kích thước cụa video buffer
0:044E 2 offset cụa trang màn hình hieơn tái
moêi caịp vị trí goăm byte đaău cho coơt,byte kê tiêp cho hàng 0:0460 2 Kích thước con trỏ (end-line và begin-line)
0:0462 1 Màn hình hieơn thời ( page number = 0 ... 7 ) 0:0463 2 port address for 6845 video controller chip
0:0465 1 current value of 6845 video control register CRT-MODE 0:0466 1 current value of 6845 video control register CRT-PALETTE
10.7MOƠT SÔ THÍ DÚ
Giạ sử chúng ta chư sử dúng trang 0
10.7.1Xác định video buffer
Test-V-Seg proc near mov ah,0Fh int 010h mov V-seg,0B800h cmp al,7 jne TVS-1 mov V-seg,0B000h TVS-1: ret Test-V-Seg endp V-seg dw 0 10.7.2In ra màn hình trực tiêp WSCR proc near ; dh = row ; dl = col ; ah = Color
; DS:SI = Địa chư buffer caăn in ( kêt thúc baỉng mã 0 ) cld
push di push si push es
mov bx,V-seg ; Biên chứa Video segment mov es,bx push ax mov ah,dh mov al,80 mul ah mov di,ax xor dh,dh add di,dx shl di,1 ; DI = (row*80+col)*2 pop ax ; AH = Color WSCR-1:
or al,al
jz WSCR-2 ; nêu là mã 0 thì kêt thúc stosw ; Đưa ký tự và thuoơc tính ra video jmp WSCR-1 ; buffer WSCR-2: pop es pop si pop di ret WSCR endp
CHƯƠNG 11 : VIDEO CONTROLLER
Các Display Adapter ban đaău ( MDA và CGA ) cụa IBM PC/XT/AT dựa tređn nguyeđn lý cụa chip Motorolla 6845 . Các Display Adapter kê tiêp như EGA,MCGA,VGA... tuy hốt đoơng tređn nguyeđn lý khác, nhưng các adapter này văn duy trì phaăn lớn các tính chât cụa chip 6845 . Do đó, trong text mode, các đieău khieơn cụa 6845 đeău tương thích với tât cạ các Display Adapter tređn IBM PC/XT/AT.
11.1COLOR GRAPHICS ADAPTER 11.1.1Câu trúc video buffer 11.1.1Câu trúc video buffer
11.1.1.1Trong text mode
Xem chương 10
11.1.1.2Trong graphics mode
Video buffer có kích thước 16 KB, cho phép theơ hieơn :