该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一般在屏幕上显示汉字的时候需要汉字系统的支持,但需要自己显示汉字的时候,就需要自己读汉字字库文件,把字符点阵读出来,再用绘图的办法显示到屏幕上,本文是读 UCDOS 16点字库文件的示例。
在 UCDOS 的点阵字库 HZK16 中,字符点阵是按照汉字内码排列的,汉字的内码从一些图形字符开始,起始编码为 A1A1H,汉字内码第一位为区码,每区为 94 个汉字,第二位为每区内的编码,每个汉字的点阵为 16点*16点 共32字节,数据按第一行 1-8点,9-16点,第二行 1-8点,9-16点...排列,每位数据 1 为要显示点,0 为不显示点。汉字点阵数据在字库中的偏移量为 ((区码-A1H)*94 + (区内编码-A1H))*32。
本程序为一个简单的例子,要显示的汉字在变量 DISP_DATA 中,且没有考虑汉字、英文混用的情况。
源程序:
; Write in May 22,1996
; By LuoYunBin ----- http://asm.yeah.net
.286
LINE_CHAREQU210;在屏幕上第几行显示
COL_CHAREQU230;在屏幕上第几列显示
COLOR_CHAREQU0EH;显示颜色
CHARSEQU(offset disp_data_end-offset disp_data)/2
CODESEGMENT
ASSUME CS:CODE,DS:CODE
ORG 100H
START:
jmpinstall