Kỹ thuật Đồ hoạ máy tính 94 Line(500,150,450,30); Line(400,80,450,30); Line(50,50,400,80); Repeat To_Mau(250,70,White,RanDom(14)+1); settextjustify(1,1); settextstyle(1,0,2); Outtextxy(320,400,'Press ESCAPE to Exit'); Repeat Until KeyPressed; Until (KeyPressed)And(ReadKey=#27); CloseGraph; End. $17. Xử lý ký tự trên mn hình Để biểu diễn các ký tự trên màn hình ngời ta sử dụng 2 byte cho 1 ký tự một byte - mã (code) của ký tự một byte - thuộc tính (attribute) của ký tự. Mã của ký tự là một số trong tập từ 0-256 Byte thuộc tính dùng để xác định tính chất hiển thị của ký tự trên màn hình nh màu sắc, chế độ hiện nhấp nháy (Blink) Mỗi ký tự có khuôn mẫu của nó ngời ta gọi là shape hay pattern của ký tự. Khuôn mẫu của ký tự đợc lu trong máy bằng một số byte nào đó tuỳ thuộc vào khuôn mẫu của ký tự. Trong máy tính ngời ta dành 32 byte để lu giữ khuôn mẫu cho mọi ký tự. Ngời ta tạo các byte biểu diễn khuôn mẫu của một ký tự theo nguyên tắc sau: ở chế độ hộp ký tự 8x8: ở chế độ hộp ký tự 8x14 Kỹ thuật Đồ hoạ máy tính 95 Cách tạo khuôn mẫu ký tự nh trên gọi là cách tạo theo kiểu bitmap. Ưu điểm của cách này đơn giản. Song nhợc điểm là khó thay đổi kích thớc ký tự khi cần phóng to thu nhỏ. Ngời ta có thể tạo khuôn mẫu, ký tự theo một cách khác ghi lại toạ độ của các đoạn thẳng tạo nên ký tự - cách này gọi là kiểu vectơ - u điểm của cách này là cho phép thay đổi kích cỡ của ký tự. Tập các khuôn mẫu của bộ 256 ký tự gọi là font của ký tự + Một vài đặc điểm cần chú ý trong quá trình tạo font 1. Khi các ký tự xuất hiện trên màn hình nó sẽ xuất hiện trong khuôn khổ hộp ký tự. Mặc dù các ký tự có khoảng cách cách xa nhau nhng giữa các hộp ký tự không có khoảng cách trên màn hình 2. Để tạo ra khoảng cách theo hàng ngang và chiều đứng giữa các ký tự mặc dù các hộp ký tự xếp liền nhau, khi tạo font ngời ta tạo theo nguyên tắc khuôn mẫu của ký tự tập trung về góc trên bên trái + Lu giữ font ký tự ở chế độ văn bản trong bộ nhớ Trong máy tính ngời ta quy định chuẩn chiều rộng của mỗi ký tự là 8 dot, chiều cao tối đa của mỗi ký tự là 32 dòng (32 scanline) từ đó suy ra để lu giữ font của một ký tự tối đa cần 32 byte Một bộ font gồm 256 ký tự cần: Vùn g các dot tạo ra khuôn mẫu Kỹ thuật Đồ hoạ máy tính 96 256x32 =8192 ~8Kb ở chế độ EGA bộ nhớ màn hình cho phép nạp sẵn (Resident) tối đa 4 bộ font nghĩa là trong 4 nhớ màn hình đợc chia thành 4 khối mỗi khối (Block) 8 Kb để chữa font của mỗi tập ký tự ở chế độ văn bản của VGA độ nhớ màn hình cho phép nạp sẵn 8 bộ font. Điều đó có nghĩa là bộ nhớ màn hình đợc chia thành 8 khối (block) mỗi khối 8 Kb để lu trữ 8 bộ font ở mỗi thời điểm của EGA, VGA chỉ cho phép kích hoạt (active) hai bộ font cùng một lúc nghĩa là ở một thời điểm chỉ có 2 bộ font đợc đem ra sử dụng ở chế độ văn bản các bitplane 0 và bit plane 1 đợc sử dụng để chứa dữ liệu về tập các ký tự bit plane 0 đợc chia thành 4 hoặc 8 khối để chứa các bộ font bit plane 1 dùng để chứa thuộc tính của ký tự Để xác định địa chỉ bắt đầu khuôn của ký tự trong một font ta có thể tính theo nguyên tắc: character shape.addresso=font base address + (character code <<5) Trong máy tính ROM BIOS có chứa sẵn một số loại font. Ngời lập trình có thể sử dụng dịch vụ ngắt của BIOS để đặt các tập font theo ý muốn Bảng các dịch vụ ngắt của ngắt 11 h ( AH=$11) AL Kểt quả Display mode 00 load user character set text 01 load ROM 9x14 set text (monochom) 02 load ROM 8x8 set text (color) 03 Set Block Sfeeifier text 04 load ROM 8x16 text (only VGA) Kỹ thuật Đồ hoạ máy tính 97 10 load user character set text 11 load ROM 9x14 set text (monochome) 12 load ROM 8x8 set text (color) 14 load ROM 8x16 set text 20 load USER 8x8 set 21 load USE Set graphics 22 load ROM 8x14 set graphics 23 load ROM 8x8 set graphics (color) 24 load ROM 8x16 set graphics (only VGA) 30 Retur font information graphics (only VGA) Trong máy tính có một số tập font đã chứa sẵn trong BIOS ROM khi máy tính khởi động tuỳ thuộc vào mode hoạt động nó sẽ lại tự động nạp sẵn (Resident) vào trong bộ nhớ màn hình. Dới đây là bảng các font chuẩn (Default font) đợc sử dụng ở các mode ở chế độ text: mode character box size color 4,5 8x8 color 6 8x8 monox color D,E 8x8 color F 8x14 mono/color 10 8x14 color 11 8x16 (VGA) mono/color 12 8x16 (VGA) color 13 8x8 (VGA) color ở chế độ graphics dùng các font chuẩn sau: Mode character box size color 0,1 8x8 color 0,1 8x14 color 0,1 9x16 (VGA) color 2,3 8x8 color Kỹ thuật Đồ hoạ máy tính 98 2,3 8x14 color 2,3 9x16 (VGA) color 7 9x14 mono/color 7 9x16 (VGA) mono/color Chú ý: Để đổi từ mode này sang mode khác ta sử dụng ngắt số 10h, với dịch vụ ngắt 0, cụ thể: Int=10h AH=$00 AL=Số hiệu Mode bit số 7 trong thanh ghi AL có vai trò đặc biệt nếu nó có giá trị 0 giải phóng bộ nhớ màn hình khi đổi mode, nếu có giá trị 1 không giải phóng nhớ màn hình khi đổi mode Ví dụ: int=$10 AH=$00 AL=$03 Đổi mode 3 không giải phóng màn hình 2. Từ mode text sang mode graphic bộ nhớ màn hình luôn luôn đợc giải phóng + Hiển thị ký tự trong chế độ graphics ở chế độ đồ hoạ bộ nhớ màn hình không đợc sử dụng để chứa các bộ font ký tự nh trong chế độ văn bản, các bit plane đợc sử dụng để lu trữ dữ liệu của các điểm ảnh (pixel) vì vậy tập các font chữ ở chế độ đồ hoạ đợc để ở RAM khi hiện lên màn hình nó thực hiện đọc các mẫu ký tự vào các bit plane nh các ảnh. Chúng ta có thể sử dụng các chơng trình truy nhập bộ nhớ màn hình ở chế độ đồ hoạ để đa các ký tự từ bộ nhớ vào bộ nhớ màn hình Chẳng hạn: Giả sử ta có tập font để ở RAM font có kích thớc 8x14=112 byte khi đó ta sẽ thực hiện các phép đọc một ảnh vào vị trí (x,y) nào đó có kích thớc ảnh 12 byte Để kết thúc phần này chúng ta hãy làm quen với một số dịch vụ ngắt liên quan đến tập font của các ký tự Ví dụ 1 Chơng trình đọc font chữ lập bằng TURBO PASCAL: Program Chuong_trinh_doc_font; Uses Crt,Dos; Var i,j:integer; Chon:char; TGAL:Byte; Kü thuËt §å ho¹ m¸y tÝnh 99 dem:integer; fnt : Array[1 256*16] of Byte; Procedure Menu; Begin TextColor(RED); TextColor(YELLOW); Writeln(' º CHUONG TRINH DOC FONT º'); Writeln(' SU DUNG CO NGAT CUA ROMBIOS º'); Writeln(' º 1. AL=0 Tai font chu cua NSD º'); Writeln(' º 2. AL=1 Tai fon chu 8x14 cua ROM º'); Writeln(' º 3. AL=2 Tai fon chu 8x8 cua ROM º'); Writeln(' º 4. AL=4 Tai font chu 8x16 cua ROM (VGA) º'); Writeln(' º 5. Q q X x Tro ve chuong trinh º'); TextColor(WHITE); Writeln; Write(' Ban chon so may : '); end; {*********************************************************} Procedure Load_font; Var R:Registers; sm,os,i : Word; Begin R.ah:=$11; R.al:=TGAL; R.bl:=0; R.cx:=256; R.dx:=33; intr($10,R); End; {*********************************************************} Procedure Tra_ve_font_ban_dau; Var R:Registers; Begin R.ah:=$11; R.al:=4; R.bl:=0; intr($10,R); End; {*********************************************************} Begin Repeat Clrscr; Menu; Chon:=ReadKey; Writeln(chon); Kỹ thuật Đồ hoạ máy tính 100 Case chon of '1' : TGAL:=0; '2' : TGAL:=1; '3' : TGAL:=2; '4' : TGAL:=4; '5','q','Q','X','x': Exit; End; clrscr; Load_font; dem:=0; for i:=33 to 255 do begin Write(' ',chr(i)); inc(dem); if dem mod 20 = 0 then begin Writeln; Writeln; end; end; Readln; Tra_ve_font_ban_dau; Until Pos(chon,'5qQXx')>0; End. Ví dụ 2 Đa tệp font VGA 8x16 của ngời sử dụng vào hoạt động ở chế độ văn bản và đồ hoạ, chơng trình đợc lập bằng TURBO PASCAL có sử dụng UNIT : a. Tệp UNIT : FONTVN.PAS UNIT FontVN; INTERFACE Procedure Load_Graph_Font; Procedure Load_Text_Font; Procedure UnLoadFont; Function Vn(S : String) : String; Procedure Out_Text(st : string); procedure Sch_Repl(Var S : String; Sch, Repl : String); (*************************************************) IMPLEMENTATION Uses Crt,Graph, Dos; Type Font = Array[1 256*16] of Byte; Const Fnt : Font=( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126,129,165,129,129,189,153,129,129,126, 0, 0, 0, 0, 0, 0,126,255,219,255,255,195,231,255,255,126, 0, 0, 0, 0, Kü thuËt §å ho¹ m¸y tÝnh 101 0, 0, 0, 0,108,254,254,254,254,124, 56, 16, 0, 0, 0, 0, 0, 0, 0, 0, 16, 56,124,254,124, 56, 16, 0, 0, 0, 0, 0, 0, 0, 0, 24, 60, 60,231,231,231,153, 24, 60, 0, 0, 0, 0, 0, 0, 0, 24, 60,126,255,255,126, 24, 24, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 60, 60, 24, 0, 0, 0, 0, 0, 0, 255,255,255,255,255,255,231,195,195,231,255,255,255,255,255,255, 0, 0, 0, 0, 0, 60,102, 66, 66,102, 60, 0, 0, 0, 0, 0, 255,255,255,255,255,195,153,189,189,153,195,255,255,255,255,255, 0, 0, 30, 14, 26, 50,120,204,204,204,204,120, 0, 0, 0, 0, 0, 0, 60,102,102,102,102, 60, 24,126, 24, 24, 0, 0, 0, 0, 0, 0, 63, 51, 63, 48, 48, 48, 48,112,240,224, 0, 0, 0, 0, 0, 0,127, 99,127, 99, 99, 99, 99,103,231,230,192, 0, 0, 0, 0, 0, 0, 24, 24,219, 60,231, 60,219, 24, 24, 0, 0, 0, 0, 0,128,192,224,240,248,254,248,240,224,192,128, 0, 0, 0, 0, 0, 2, 6, 14, 30, 62,254, 62, 30, 14, 6, 2, 0, 0, 0, 0, 0, 0, 24, 60,126, 24, 24, 24, 24,126, 60, 24, 0, 0, 0, 0, 0, 0,102,102,102,102,102,102,102, 0,102,102, 0, 0, 0, 0, 0, 0,127,219,219,219,123, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0,124,198, 96, 56,108,198,198,108, 56, 12,198,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254,254,254, 0, 0, 0, 0, 0, 0, 24, 60,126, 24, 24, 24, 24,126, 60, 24,126, 0, 0, 0, 0, 0, 24, 60,126, 24, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 24, 24, 24, 24, 24, 24, 24,126, 60, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 12,254, 12, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 96,254, 96, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,192,192,192,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,108,254,108, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 56, 56,124,124,254,254, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254,124,124, 56, 56, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 60, 60, 60, 24, 24, 24, 0, 24, 24, 0, 0, 0, 0, 0,102,102,102, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,108,254,108,108,108,254,108,108, 0, 0, 0, 0, 24, 24,124,198,194,192,124, 6,134,198,124, 24, 24, 0, 0, 0, 0, 0, 0, 0,194,198, 12, 24, 48, 96,198,134, 0, 0, 0, 0, 0, 0, 56,108,108, 56,118,220,204,204,204,118, 0, 0, 0, 0, 0, 48, 48, 48, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 24, 48, 48, 48, 48, 48, 48, 24, 12, 0, 0, 0, 0, 0, 0, 48, 24, 12, 12, 12, 12, 12, 12, 24, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 60,255, 60,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24,126, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 12, 24, 48, 96,192,128, 0, 0, 0, 0, Kü thuËt §å ho¹ m¸y tÝnh 102 0, 0,124,198,198,206,214,214,230,198,198,124, 0, 0, 0, 0, 0, 0, 24, 56,120, 24, 24, 24, 24, 24, 24,126, 0, 0, 0, 0, 0, 0,124,198, 6, 12, 24, 48, 96,192,198,254, 0, 0, 0, 0, 0, 0,124,198, 6, 6, 60, 6, 6, 6,198,124, 0, 0, 0, 0, 0, 0, 12, 28, 60,108,204,254, 12, 12, 12, 30, 0, 0, 0, 0, 0, 0,254,192,192,192,252, 14, 6, 6,198,124, 0, 0, 0, 0, 0, 0, 56, 96,192,192,252,198,198,198,198,124, 0, 0, 0, 0, 0, 0,254,198, 6, 6, 12, 24, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0,124,198,198,198,124,198,198,198,198,124, 0, 0, 0, 0, 0, 0,124,198,198,198,126, 6, 6, 6, 12,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 24, 24, 48, 0, 0, 0, 0, 0, 0, 6, 12, 24, 48, 96, 48, 24, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 48, 24, 12, 6, 12, 24, 48, 96, 0, 0, 0, 0, 0, 0,124,198,198, 12, 24, 24, 24, 0, 24, 24, 0, 0, 0, 0, 0, 0, 0,124,198,198,222,222,222,220,192,124, 0, 0, 0, 0, 0, 0, 16, 56,108,198,198,254,198,198,198,198, 0, 0, 0, 0, 0, 0,252,102,102,102,124,102,102,102,102,252, 0, 0, 0, 0, 0, 0, 60,102,194,192,192,192,192,194,102, 60, 0, 0, 0, 0, 0, 0,248,108,102,102,102,102,102,102,108,248, 0, 0, 0, 0, 0, 0,254,102, 98,104,120,104, 96, 98,102,254, 0, 0, 0, 0, 0, 0,254,102, 98,104,120,104, 96, 96, 96,240, 0, 0, 0, 0, 0, 0, 60,102,194,192,192,222,198,198,102, 58, 0, 0, 0, 0, 0, 0,198,198,198,198,254,198,198,198,198,198, 0, 0, 0, 0, 0, 0, 60, 24, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0, 0, 0, 0, 30, 12, 12, 12, 12, 12,204,204,204,120, 0, 0, 0, 0, 0, 0,230,102,108,108,120,120,108,102,102,230, 0, 0, 0, 0, 0, 0,240, 96, 96, 96, 96, 96, 96, 98,102,254, 0, 0, 0, 0, 0, 0,198,238,254,254,214,198,198,198,198,198, 0, 0, 0, 0, 0, 0,198,230,246,254,222,206,198,198,198,198, 0, 0, 0, 0, 0, 0, 56,108,198,198,198,198,198,198,108, 56, 0, 0, 0, 0, 0, 0,252,102,102,102,124, 96, 96, 96, 96,240, 0, 0, 0, 0, 0, 0,124,198,198,198,198,198,198,214,222,124, 12, 14, 0, 0, 0, 0,252,102,102,102,124,108,102,102,102,230, 0, 0, 0, 0, 0, 0,124,198,198, 96, 56, 12, 6,198,198,124, 0, 0, 0, 0, 0, 0,126,126, 90, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0, 0, 0, 0,198,198,198,198,198,198,198,198,198,124, 0, 0, 0, 0, 0, 0,198,198,198,198,198,198,198,108, 56, 16, 0, 0, 0, 0, 0, 0,198,198,198,198,198,214,214,254,108,108, 0, 0, 0, 0, 0, 0,198,198,108,108, 56, 56,108,108,198,198, 0, 0, 0, 0, 0, 0,102,102,102,102, 60, 24, 24, 24, 24, 60, 0, 0, 0, 0, 0, 0,254,198,134, 12, 24, 48, 96,194,198,254, 0, 0, 0, 0, 0, 0, 60, 48, 48, 48, 48, 48, 48, 48, 48, 60, 0, 0, 0, 0, 0, 0, 0,128,192,224,112, 56, 28, 14, 6, 2, 0, 0, 0, 0, Kü thuËt §å ho¹ m¸y tÝnh 103 0, 0, 60, 12, 12, 12, 12, 12, 12, 12, 12, 60, 0, 0, 0, 0, 16, 56,108,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 48, 48, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 0, 0,224, 96, 96,120,108,102,102,102,102,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,198,192,192,192,198,124, 0, 0, 0, 0, 0, 0, 28, 12, 12, 60,108,204,204,204,204,118, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,198,254,192,192,198,124, 0, 0, 0, 0, 0, 0, 56,108,100, 96,240, 96, 96, 96, 96,240, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,204,204,204,204,204,124, 12,204,120, 0, 0, 0,224, 96, 96,108,118,102,102,102,102,230, 0, 0, 0, 0, 0, 0, 24, 24, 0, 56, 24, 24, 24, 24, 24, 60, 0, 0, 0, 0, 0, 0, 6, 6, 0, 14, 6, 6, 6, 6, 6, 6,102,102, 60, 0, 0, 0,224, 96, 96,102,108,120,120,108,102,230, 0, 0, 0, 0, 0, 0, 56, 24, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,254,214,214,214,214,214, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,102,102,102,102,102,102, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,198,198,198,198,198,124, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,102,102,102,102,102,124, 96, 96,240, 0, 0, 0, 0, 0, 0,118,204,204,204,204,204,124, 12, 12, 30, 0, 0, 0, 0, 0, 0,220,118, 98, 96, 96, 96,240, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,198, 96, 56, 12,198,124, 0, 0, 0, 0, 0, 0, 16, 48, 48,252, 48, 48, 48, 48, 54, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,204,204,204,204,204,204,118, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,102,102,102,102, 60, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,198,198,198,214,214,254,108, 0, 0, 0, 0, 0, 0, 0, 0, 0,198,108, 56, 56, 56,108,198, 0, 0, 0, 0, 0, 0, 0, 0, 0,198,198,198,198,198,198,126, 6, 12,248, 0, 0, 0, 0, 0, 0,254,204, 24, 48, 96,198,254, 0, 0, 0, 0, 0, 0, 14, 24, 24, 24,112, 24, 24, 24, 24, 14, 0, 0, 0, 0, 0, 0, 24, 24, 24, 24, 0, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0,112, 24, 24, 24, 14, 24, 24, 24, 24,112, 0, 0, 0, 0, 0, 0,118,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 56,108,198,198,198,254, 0, 0, 0, 0, 0, 0, 0,108, 56, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 12, 24,108, 56, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 96, 48,108, 56, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 48, 16,108, 56, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 20, 40,108, 56, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 0, 0,108, 56, 0,120, 12,124,204,204,204,118, 0, 48, 48, 0, 0, 0, 56,108, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 6, 12, 56,108, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 192, 96, 56,108, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 28, 4, 56,108, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, [...]... 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 24, 24, 24, 24, 24, 24, 24, 24, 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0, 0, 0, 0, 0, 0, 0, 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0, 0, 56 , 8, 16,198,198,198,198,198,198,126, 6, 12,248, 0, 0, 0, 54 ,108, 0,198,198,198,198,198,198,126, 6, 12,248, 0, 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,220,216,216,216,220,118,... 0, 0, 0, 0, 0, 63, 48, 55 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 ,247, 0, 255 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 , 0,247, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 55 , 48, 55 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 0, 0, 0, 0, 0, 255 , 0, 255 , 0, 0, 0, 0, 0, 0, 0, 0, 54 , 54 , 54 , 54 , 54 ,247, 0,247, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 24, 24, 24, 24, 24, 255 , 0, 255 , 0, 0, 0, 0, 0, 0, 0,... 0, 0, 24, 24, 0, 56 , 24, 24, 24, 24, 24, 60, 0, 24, 24, 0, 0, 0, 12, 24, 0,124,198,198,198,198,198,124, 0, 0, 0, 0, 54 , 54 , 54 , 54 , 54 ,246, 6,246, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 0, 0, 0, 0, 0, 254 , 6,246, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 ,246, 6, 254 , 0, 0, 0, 0, 0, 0, 0, 0, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 254 , 0, 0, 0, 0, 0,... 68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 85, 170 , 85, 170 , 85, 170 , 85, 170 , 85, 170 , 85, 170 , 85, 170 , 85, 170 , 221,119,221,119,221,119,221,119,221,119,221,119,221,119,221,119, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,248, 24, 24, 24, 24, 24, 24, 24, 24, 0, 56 , 8, 16, 0, 56 , 24, 24, 24, 24, 24, 60, 0, 0, 0, 0, 0, 0, 54 ,108, 0, 56 , 24, 24, 24, 24,... chr( 150 )); Sch_Repl(S, chr(146)+'j', chr( 151 )); Sch_Repl(S, 'oo', chr( 152 )); 108 Kü thuËt §å ho¹ m¸y tÝnh Sch_Repl(S, chr( 152 )+'s', chr( 153 )); Sch_Repl(S, chr( 152 )+'f', chr( 154 )); Sch_Repl(S, chr( 152 )+'r', chr( 155 )); Sch_Repl(S, chr( 152 )+'x', chr( 156 )); Sch_Repl(S, chr( 152 )+'j', chr( 157 )); Sch_Repl(S, 'uw', chr( 158 )); Sch_Repl(S, 'w', chr( 158 )); Sch_Repl(S, chr( 158 )+'s', chr( 159 )); Sch_Repl(S, chr( 158 )+'f',... 24, 255 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 , 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 31, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 255 , 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 24, 24, 24, 24, 255 , 24, 24, 24, 24, 24, 24, 24, 24, 0, 56 , 8, 16, 0,124,198,198,198,198,198,124, 0, 0, 0, 0, 0, 0, 54 ,108, 0,124,198,198,198,198,198,124, 0, 0, 0, 0, 54 , 54 , 54 , 54 , 54 , 55 ,... ho¹ m¸y tÝnh 54 ,108, 56 ,108, 0,120, 12,124,204,204,204,118, 0, 0, 0, 0, 0, 0, 56 ,108, 0,120, 12,124,204,204,204,118, 0, 48, 48, 0, 0, 0, 56 ,108, 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 6, 12, 56 ,108, 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 192, 96, 56 ,108, 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 28, 4, 56 ,108, 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 54 ,108, 56 ,108, 0,124,198, 254 ,192,192,198,124,... 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 0, 0, 96, 48, 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 0, 56 , 8, 16, 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 0, 0, 54 ,108, 0,124,198, 254 ,192,192,198,124, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,198, 254 ,192,192,198,124, 0, 48, 48, 0, 0, 0, 12, 24, 0, 56 , 24, 24, 24, 24, 24, 60, 0, 0, 0, 0, 0, 0, 48, 24, 0, 56 , 24, 24, 24, 24, 24, 60, 0, 0, 0, 0, 17, 68, 17, 68, 17, 68, 17, ... Sch_Repl(S, chr( 158 )+'r', chr(161)); Sch_Repl(S, chr( 158 )+'x', chr(162)); Sch_Repl(S, chr( 158 )+'j', chr(163)); Sch_Repl(S, 'as', chr(164)); Sch_Repl(S, 'af', chr(1 65) ); Sch_Repl(S, 'ar', chr(166)); Sch_Repl(S, 'ax', chr(167)); Sch_Repl(S, 'aj', chr(168)); Sch_Repl(S, 'es', chr(169)); Sch_Repl(S, 'ef', chr (170 )); Sch_Repl(S, 'er', chr (171 )); Sch_Repl(S, 'ex', chr (172 )); Sch_Repl(S, 'ej', chr (173 )); Sch_Repl(S,... Var gd,gm,i: integer; st : String; Begin Clrscr; st:=VN('Xin chafo casc bajn ! '); Load_Text _Font; writeln(st); Readln; gd:=0; initgraph(gd,gm,' '); Load_Graph _font; directvideo:=False; writeln(st); moveto(0,240); Out_Text(st); Readln; closegraph; Load_Text _Font; for i:=0 to 255 do write(chr(i):4); readln; UnLoadfont; End 110 . 24, 24, 24, 24, 24, 24, 24, 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0, 0, 0, 0, 0, 0, 0, 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0, 0, 56 , 8, 16,198,198,198,198,198,198,126,. 0, 54 , 54 , 54 , 54 , 54 ,246, 6,246, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 0, 0, 0, 0, 0, 254 , 6,246, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 ,. 48, 55 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 ,247, 0, 255 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 , 0,247, 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 54 , 55 , 48, 55 , 54 ,