Lập trình xử lý màn hình
LẬP TRÌNH XỬ LÝ MÀN HÌNH & BÀN PHÍM Giới thiệu hình & việc quản lý hình Hiểu tổ chức hình So sánh chức điều khiển hình INT 10h ROM BIOS với chức INT 21h Biết cách lập trình quản lý hình ASM Biết cách lập trình xử lý phím số ứng dụng Chuoung 10 Lap trinh xu ly man hinh MN H À ÌNH ĐẶC TRƯNG CỦA MÀN HÌNH h Hìn åm hình ùc đie ật ca ùi ĐỘ PHÂN GIÀI rong hữ nh dươ t o iểm ình c g ch o đ øn i : so lưới h iải thươ el the û n gia ồm hâ n g ân g ợng pix h Độ p a trậ Độ p số lư o cột ) o ù h l m l the aûnh ụ 640*4 ng đ pixe o d (thí h x v tr ố lượng s g dạn v g doøn Chuoung 10 Lap trinh xu ly man hinh Chuoung 10 Lap trinh xu ly man hinh CARD MÀN HÌNH Độ phân giải Cung cấp chế độ MH S ố ểm n g a n g x s ố ểm d ọc x (s ố b i t m u ) CH ĐỘ Ế ĐỒ H A Ọ số mà u 800x600x16 bits = 960 000 bytes 1Mb 1024x 768x32 bits 3.145.728 bytes 4Mb R MM N HNH A À Ì Du n g lượn g Chuoung 10 Lap trinh xu ly man hinh Địa c h ỉ (i,j) = B 00:0000+ (i* 0+ j* ) Chuoung 10 Lap trinh xu ly man hinh Chuoung 10 Lap trinh xu ly man hinh QUẢN LÝ MÀN HÌNH Màn hình điều khiển hiệu nhờ chức INT 10H Rom Bios Các chức quản lý hình tốt chức INT 21h Dos Bên cạnh số chức INT 21h Dos cung cấp, số tác vụ thực hình nhờ chức INT 10h xoá hình, định vị trỏ, thiết lập hình IBM PC hỗ trợ loại hình có tên tùy thuộc vào loại Card hình cắm Bus mở rộng Mianboard : Monochrome hiển thị text đơn sắc; CGA (Color Graphic Adaptor) cho phép hiển thị text đồ họa; EGA (Enhanced Graphics Adaptor) hiển thị text đồ họa với độ phân giải cao Ngoài có card VGA (Video Graphics Array), SVGA Chuoung 10 Lap trinh xu ly man hinh THUỘC TÍNH MÀN HÌNH Chuoung 10 Lap trinh xu ly man hinh THUỘC TÍNH MÀN HÌNH Mỗi vị trí hình lưu ký tự đơn với thuộc tính riêng ký tự chẳng hạn đảo màu, nhấp nháy, chiếu sáng, gạch Thuộc tính ký tự lưu byte gọi byte thuộc tính HGH OW I T/L BT I BI K LN 0 0 B CK OU D BTS A GR N I 1 FOR EGR N BTS OU D I Chuoung 10 Lap trinh xu ly man hinh THUOÄC TÍNH MÀN HÌNH Ex : ký tự màu vàng chanh nhấp nháy màu nâu B I L NK = 0 0 0 B R ED = 0 B M V B , (R O H ED S H ) +YEL O W+B I L L L NK ĐỂ TẠO BYTE THUỘC TÍNH VIDEO TỪ MÀU , TA DÙNG SHL CHUYỂN CÁC BIT MÀU NỀN SANG TRÁI VI TRÍ Chuoung 10 Lap trinh xu ly man hinh 10 GHI KÝ TỰ VÀ THUỘC TÍNH KÝ TỰ HÀM 0AH INT 10H WRITE CHARACTER AND ATTRIBUTE CHỨC NĂNG 0AH INT 10H : XUẤT (GHI) HOẶC NHIỀU KÝ TỰ CÙNG VỚI THUỘC TÍNH CỦA CHÚNG LÊN MÀN HÌNH CHỨC NĂNG NÀY CÓ THỂ XUẤT MỌI MÃ ASCII KỂ CẢ KÝ TỰ ĐỒ HỌA ĐẶC BIỆT CÓ MÃ TỪ ĐẾN 31 AH =9 ; BH = TRANG VIDEO AL = KÝ TỰ SẼ XUẤT ; BL = THUỘC TÍNH CỦA KÝ TỰ SẼ XUẤT CX = HỆ SỐ LAËP Chuoung 10 Lap trinh xu ly man hinh 47 LẤY VIDEO MODE HÀM 0FH INT 10H GET VIDEO MODE CHỨC NĂNG 0FH INT 10H : LẤY VIDEO MODE AH =0F ; BH = TRANG HIỆN HÀNH AH = SỐ CỘT MÀN HÌNH ; AL = MODE MÀN HÌNH HIỆN HAØNH EX : MOV AH,0FH ; Get Video Mode Function INT 10H ; gọi BIOS MOVE VIDEO_MODE, AL ; lưu Video Mode vào biến nhớ MOV PAGE, BH ; lưu trang hành Chuoung 10 Lap trinh xu ly man hinh 48 LẬP TRÌNH XỬ LÝ PHÍM Đọc p h í m n h ấn : C h ức n ăn g A = , n g ắ t H H Và o : A = H R : A = m ã A C I n ếu m ột p h í m A C I a L S I S I n h ấn = n ếu p h í m ều k h i ển n h ấn A = m ã s c a n c p h í m n h ấn H Chuoung 10 Lap trinh xu ly man hinh 49 LẬP TRÌNH XỬ LÝ PHÍM BÀN PHÍM Chuoung 10 Lap trinh xu ly man hinh 50 BÀN PHÍM Chuoung 10 Lap trinh xu ly man hinh 51 BÀN PHÍM Chuoung 10 Lap trinh xu ly man hinh 52 BÀN PHÍM Chuoung 10 Lap trinh xu ly man hinh 53 BÀN PHÍM Chuoung 10 Lap trinh xu ly man hinh 54 BÀN PHÍM Chuoung 10 Lap trinh xu ly man hinh 55 LẬP TRÌNH XỬ LÝ PHÍM Kểm t r a t r ạn g t h i c c p h ím Ct r l, A , Sh ift : i lt Chúng ta đọc trực tiếp từ địa thông qua hàm AH = ngắt 16H Cách đọc trực tiếp XOR AX, AX MOV ES, AX MOV AL, ES:[417H] TEST AL, 01H ; JNZ SHIFT_DANGNHAN TEST AL, 04H ; JNZ CTRL_DANGNHAN TEST AL, 08H ; JNZ ALT_DANGNHAN 0:0417 lấy AL kiểm tra phím Shift kiểm tra phím Ctrl Kiểm tra phím Alt Chuoung 10 Lap trinh xu ly man hinh 56 Kiểm tra thiết lập trạng thái phím Caps/Num/Scroll Lock tương tự với mã scan khác Scroll = 10H, Num = 20H, Cap = 40H Đặt lại trạng thái đèn Caps/Num/Scroll Lock, ta cần đặt lại giá trị địa 0:0417 Vd, để bật đèn Caps Lock đổi trạng thái đèn Num Lock ta làm sau: XOR AX, AX MOV ES, AX ; ES = MOV AL, ES:[417H] ; đọc trạng thái đèn OR AL, 40H ; bật đèn Caps Lock XOR AL, 20H ; đảo đèn Nums Lock MOV ES:[417H], AL ; MOV AH , 2H INT 16H Chuoung 10 Lap trinh xu ly man hinh 57 BÀI TẬP LẬP TRÌNH BÀI : VIẾT ĐOẠN CHƯƠNG TRÌNH LÀM CÁC VIỆC SAU : CUỘN WINDOW TỪ HÀNG 5, CỘT 10 TỚI HÀNG 20 CỘT 70 VỚI THUỘC TÍNH MÀN HÌNH ĐẢO ĐỊNH VỊ CURSOR TẠI HÀNG 10, CỘT 20 HIỂN THỊ DÒNG TEXT “ DAY LA DONG TEXT TRONG WINDOW” SAU KHI XUẤT TEXT ĐI NHẤN PHÍM CUỘN WINDOW TỪ HÀNG 5, CỘT 15 TỚI HÀNG 18 CỘT 68 VỚI THUỘC TÍNH THƯỜNG XUẤT KÝ TỰ A VỚI THUỘC TÍNH NHẤP NHÁY TẠI GIỮA WINDOW ĐI GỎ PHÍM, XÓA TOÀN BỘ MÀN HÌNH Chuoung 10 Lap trinh xu ly man hinh 58 BÀI TẬP LẬP TRÌNH BÀI : VIẾT CHƯƠNG TRÌNH LÀM CÁC VIỆC SAU : XUẤT CHUỔI “GO VAO KY TU THUONG : ‘ KHI USER GỎ KÝ TỰ (KHI GỎ KHÔNG HIỂN THI KÝ TỰ GỎ RA MÀN HÌNH) ,ĐỔI KÝ TỰ NÀY THÀNH CHỮ HOA RỒI XUẤT RA MÀN HÌNH.GIẢ SỬ CHỈ NHẬP CÁC KÝ TỰ HP LỆ KHI GỎ KÝ TỰ MỞ RỘNG SẼ THOÁT VỀ DOS, NHƯNG CÓ LẼ BẠN CÒN NHÌN THẤY KÝ TỰ XUẤT THÊM TRÊN MÀN HÌNH GIẢI THÍCH Chuoung 10 Lap trinh xu ly man hinh 59 Viết chương trình để : a Xố hình, tạo kích thước to cho trỏ di chuyển đến góc trái b Nếu nhấn phím Home : chuyển trỏ đến góc trái trên, End : chuyển đến góc trái dưới, Page Dn : chuyển trỏ đến góc phải dưới, Esc : kết thúc chương trình Dịch chuyển trỏ đến góc trái hình phím F1 nhấn, góc trái phím F2 nhấn Chương trình bỏ qua kí tự thơng thường Viết chương trình soạn thảo văn sau : a Xố hình, định vị trỏ đầu dòng 12 b Để người sử dụng đánh vào kí tự Con trỏ dịch chuyển sau hiển thị kí tự khơng lề phải hình c Phím mũi tên trái , phải, lên , xuống dịch trỏ tương ứng d Phím Insert : chèn kí tự, Delete : Xố kí tự , Esc : kết thúc chương trình Chuoung 10 Lap trinh xu ly man hinh 60 BÀI TẬP LẬP TRÌNH BÀI : VIẾT CHƯƠNG TRÌNH LÀM CÁC VIỆC SAU : CHO PHÉP VẼ ĐƠN GIẢN NHỜ CÁC PHÍM MỦI TÊN TRÊN BÀN PHÍM ĐỂ DI CHUYỂN THEO HƯỚNG MONG MUỐN PHẢI BẢO ĐẢM XUẤT CÁC KÝ TỰ GÓC THÍCH HP BIẾT RẰNG MÃ ASCII CỦA SỐ KÝ TỰ : xem bảng mã ASCII MÃ SCAN CODE CỦA CÁC PHÍM MŨI TÊN : TRÁI 4BH PHẢI 4DH LEÂN 48H Chuoung 10 Lap trinh xu ly man hinh XUOÁNG 50H 61 ... QUAÛN LÝ MÀN HÌNH Màn hình điều khiển hiệu nhờ chức INT 10H Rom Bios Các chức quản lý hình tốt chức INT 21h Dos Bên cạnh số chức INT 21h Dos cung cấp, số tác vụ thực hình nhờ chức INT 10h xoá hình, ... MT sử dụng dùng Card hình CGA,VGA EGA Chuoung 10 Lap trinh xu ly man hinh 15 CAÙC MODE MÀN HÌNH Có chế độ làm việc hình : text đồ họa Màn hình hình ảnh Video Ram Chế độ hình : 25 dòng 80 cột... ly man hinh 27 CAÙC HÀM XỬ LÝ MÀN HÌNH Các chức xử lý hình nằm INT 10h Chức (để AH ) nhiệm vụ set video mode chọn mono, text, graphic color mode Set cursor line thiết lập dòng quét tạo dạng cho