Video buffer baĩt đaău tái địa chư 0B800:

Một phần của tài liệu Giáo trình TASM (Trang 69 - 74)

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 . (adsbygoogle = window.adsbygoogle || []).push({});

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 : (adsbygoogle = window.adsbygoogle || []).push({});

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 :

Một phần của tài liệu Giáo trình TASM (Trang 69 - 74)