tailieunhanh - Đồ họa máy tính - Chương 1 Màn hình của máy tính - Bài 2

Truy cập vào bộ nhớ màn hình Về nguyên tắc có 2 cách để truy cập bộ nhớ màn hình và các thanh ghi + Cách 1: Sử dụng các dịch vụ ngắt của ROM BIOS, ROM BIOS cung cấp t-ơng đối đầy đủ các ch-ơng trình con ứng với các ngắt để phục vụ cho công việc này + Cách 2: Truy cập trực tiếp đ-a vào các địa chỉ của các cổng (port) thông qua các ngôn ngữ lập trình Cách 1 đơn giản tuy nhiên có nh-ợc điểm tốc độ truy nhập chậm . | 2. TRUY CẬP VÀO BỘ NHỚ MÀN HÌNH Về nguyên tắc có 2 cách để truy cập bộ nhớ màn hình và các thanh ghi Cách 1 Sử dụng các dịch vụ ngắt của ROM BIOS ROM BIOS cung cấp tuơng đối đầy đủ các chuơng trình con ứng với các ngắt để phục vụ cho công việc này Cách 2 Truy cập trực tiếp đua vào các địa chỉ của các cổng port thông qua các ngôn ngữ lập trình Cách 1 đơn giản tuy nhiên có nhuợc điểm tốc độ truy nhập chậm I. Sử dụng các dịch vụ ngắt Int 10H của ROM BIOS Duới đây là một vài ngắt của ROM BIOS 1. Đưa một pixel vào bộ nhớ màn hình input AH 0Ch AL màu BH trang CX x cột 8 Kỹ thuật Đổ hoạ máy tính DX y dòng Procedure writepixel col row color integer Var v Registers Begin 0C color 0 col row intr 10 v End 2. Đọc dữ liệu của một pixel input AH ODh BH trang CX x cột DX y dòng output AL Color giá trị màu của pixel Function readpixel col row integer integer Var v Registers Begin 0D 0 col . row intr 10 v readpixel end 3. Đọc dữ liệu từ thanh ghi màu color Register Input AH 10h AL 15h BX n sô hiệu thanh ghi màu Output CH độ kích hoạt màu Green CL độ kích hoạt màu Blue DH độ kích hoạt màu Red Type RGB_COLOR_TYP Record 9 Kỹ thuật Đổ hoạ máy tính red Word green Word blue Word End Procedure read_color_reg index integer Var color RGB_COLOR_TYP Var R registers Begin 1015 index intr 10 R End 4. Ghi màu vào một thanh ghi màu Color Register Input AH 10h AL 10h BX số hiệu thanh ghi màu CH độ kích hoạt màu green CL độ kích hoạt màu Blue DH độ kích hoạt màu Red Type RGB_COLOR_TYP Record red Word I I green Word I I I I I blue Word I I I I End Procedure write_color_reg index Integer color RGB_COLOR_TYP Var R registers Begin 1010 index intr 10 R End Các ví dụ Ví du 1 Đua một pixel vào bộ nhớ màn hình .