data segment
line_char equ
210;在螢幕上第幾行顯示
col_char equ
230;在螢幕上第幾列顯示
color_char equ 0eh ;顯示顏色
chars equ (offset disp_data_end
-offset disp_data)/2
cc_file db
'a:hzk16',
0;字型檔檔案名,用 ucdos 的16點陣漢字型檔
handle dw
?;file handle
disp_data db
'北京博電新力
';要顯示的漢字
disp_data_end equ this byte
d_open_error db
'file a:hzk16 not found !
',0dh,0ah,24h
zi_buffer equ this byte
db
320dup (?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ax,3d00h ;開啟漢字型檔
mov dx,offset cc_file
int21h
jnb open_ok
mov ah,
9mov dx,offset d_open_error
int21h
mov ax,4c00h
int21h
open_ok:
mov handle,ax
mov si,offset disp_data
mov di,offset zi_buffer
mov cx,chars
cldins2:
lodsb
mov ah,al
lodsb
call get_dots ;讀出漢字點針
loop ins2
call disp_cc ;顯示到螢幕
mov ax,4c00h
int21h
get_dots proc
push ax
push bx
push cx
push dx
sub ax,0a1a1h ;漢字的內碼從 a1區開始
cwdmov dl,al ;所以絕對開始區是內碼-a1
mov al,ah ;點陣在字型檔中的位置為
cbwmov bl,
94;((漢字碼1
-a1)*94
+漢字碼2
-a1)*32
mul bl
add ax,dx
mov bx,
32mul bx
mov cx,dx
mov dx,ax
mov ax,4200h ;移動讀寫指標到點陣資料位置
mov bx,handle
int21h
mov ah,3fh
mov cx,
32mov dx,di
int21h
pop dx
pop cx
pop bx
pop ax
add di,
32ret
get_dots endp
disp_cc proc
mov ax,12h ;
640*
480mode
int10h ;設定640
*480
/16色顯示模式
mov cx,chars
mov si,offset zi_buffer
mov bx,col_char-20
;bx
=column
dh_lop0:
add bx,
20;every
char
column+20
push cx
mov cx,
16;l6 lines
/char
mov dx,line_char ;dx
=start line
dh_lop1:
push bx
push cx
lodsb ;
16dots
/line
mov ah,al
lodsb
mov cx,
16dh_lop2:
shl ax,
1push ax
push bx
push cx
jc db_color
xor al,al ;back color is0
jmp
short
db_draw
db_color:
mov al,color_char
db_draw:
mov ah,0ch
mov cx,bx
xor bh,bh
int10h
pop cx
pop bx
pop ax
inc bx ;inc column
loop dh_lop2
inc dx ;next line
pop cx
pop bx
loop dh_lop1
pop cx
loop dh_lop0
xor ah,ah
int16h
mov ax,
3int
10hret
disp_cc endp
code ends
end start
點陣漢字顯示
由於turbo c應用於dos作業系統下,在使用turbo c進行程式設計時,一般情況下只好使用英文進行人機互動。要是想直接用中文介面,就需要另想他法了。如果使用中文dos系統 如ucdos 則可以解決在字元介面下的漢字顯示問題。也就是說,可以用printf或其他字串函式來輸出漢字。但是,這樣仍然有...
陣漢字顯示
見http dev.gameres.com program control fontdos.htm 文件內容 你是否碰到過用啟動盤啟動系統後用dir命令得到一串串莫名其妙的字元?有經驗的朋友會告訴你 那是漢字。漢字?你不禁會問 怎麼乙個我乙個也不認識。但那確確實實是漢字,如果你啟動ucdos或其他的...
點陣漢字顯示
陣漢字顯示 目錄 dos下的點陣漢字 漢字的內碼 漢字字模 漢字型檔檔案 列印字型檔檔案和hzk12 文件內容 dos下的點陣漢字 你是否碰到過用啟動盤啟動系統後用dir命令得到一串串莫名其妙的字元?有經驗的朋友會告訴你 那是漢字。漢字?你不禁會問 怎麼乙個我乙個也不認識。但那確確實實是漢字,如果你...