![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 06:37 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 文本方式下显示汉字的源程序 |
| 可打印版本 2,121 / 11 |
| 第1楼 qb45 | 发表于 2003-10-30 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
文本方式下显示汉字的源程序 rem $INCLUDE: 'qb.bi'
CLS DIM SHARED ax AS INTEGER, bx AS INTEGER, cx AS INTEGER, dx AS INTEGER, es AS INTEGER, bp AS INTEGER DIM test%(64) es = VARSEG(test%(32)) DEF SEG = es FOR i = 1 TO 96 READ t POKE i, t NEXT i DEF SEG bp = 1 ax = &H1100 bx = &H1000 cx = 6 dx = &HCC int10 FOR i = 0 TO 5 PRINT CHR$(&HCC + i); NEXT i END DATA 0 , 32 , 19 , 16 , 0 , 7 , 240 , 16 , 17 , 16 , 23 , 16 , 20 , 24 , 16 , 3 DATA 32 , 40 , 252 , 32 , 32 , 254 , 146 , 84 , 16 , 148 , 254 , 32 , 32 , 80 , 140 , 4 DATA 2 , 1 , 63 , 32 , 64 , 31 , 0 , 0 , 1 , 255 , 1 , 1 , 1 , 1 , 5 , 2 DATA 0 , 0 , 252 , 4 , 8 , 224 , 64 , 128 , 4 , 254 , 0 , 0 , 0 , 0 , 0 , 0 DATA 16 , 16 , 35 , 34 , 74 , 251 , 18 , 34 , 67 , 246 , 74 , 3 , 26 , 226 , 66 , 2 DATA 128 , 72 , 252 , 8 , 8 , 248 , 0 , 4 , 254 , 148 , 148 , 252 , 148 , 148 , 148 , 12 SUB int10 DIM InRegs AS RegTypeX DIM OutRegs AS RegTypeX InRegs.ax = ax InRegs.bx = bx InRegs.cx = cx InRegs.dx = dx InRegs.es = es InRegs.bp = bp INTERRUPTX &H10, InRegs, OutRegs ax = OutRegs.ax bx = OutRegs.bx cx = OutRegs.cx dx = OutRegs.dx es = OutRegs.es bp = OutRegs.bp END SUB |
|
| 第2楼 凌晨一点 | 发表于 2003-10-30 00:00 |
| 初级用户 发帖 54 积分 255 | |
|
OK
|
|
| 第3楼 Wengier | 发表于 2003-10-31 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
不知此程序能显示哪些汉字?应该不是所有汉字吧。。
|
|
| 第4楼 qb45 | 发表于 2003-10-31 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
能显示所有的汉字,不过要自己做一个提取字模的工具.
可以把显示汉字的源程序改动一下,以便提取字模! 替换DATA里面的数据,就可以显示别的汉字了 但是同屏显示的汉字数量是有限制的,因为只有128个扩展字芙! |
|
| 第5楼 Wengier | 发表于 2003-10-31 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
那有没有现成的兼容的提取字模的工具呢?
|
|
| 第6楼 qb45 | 发表于 2003-11-03 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
''请不要输入英文字母
OPEN "hzk16" FOR BINARY AS #1 input "请输入要转换的汉字= ",hz1$ hz 100, 100, hz1$, 7 PRINT "字模提取成功ok!!!" SUB hz (x0, y0, hz.word$, hzcol) leng = LEN(hz.word$) now = 1 OPEN "hz.dat" FOR OUTPUT AS #3 ''字模文件名为HZ.DAT PRINT #3, hz.word$ PRINT #3, "data"; DO qu = ASC(MID$(hz.word$, now, 1)) now = now + 1 wei = ASC(MID$(hz.word$, now, 1)) now = now + 1 IF qu > 161 AND wei > 161 THEN ps& = ((qu - 161) * 94& + wei - 161) * 32& + 1 SEEK #1, ps& zimo$ = INPUT$(32, 1) num = 1 FOR i = 1 TO 2 FOR y = 0 TO 15 chr1$ = MID$(zimo$, num, 1) num = num + 1 chr2$ = MID$(zimo$, num, 1) num = num + 1 chr3$ = chr2$ + chr1$ IF i = 2 THEN chr1$ = chr2$ IF y < 15 THEN PRINT #3, ASC(chr1$); ","; ELSE PRINT #3, ASC(chr1$) '' LINE (x0, y0 + y)-STEP(15, 0), hzcol, , ASC(chr1$) NEXT y num = 1 x0 = x0 + 8 PRINT #3, "data"; NEXT i END IF LOOP UNTIL now = leng + 1 END SUB |
|
| 第7楼 算了 | 发表于 2003-12-29 00:00 |
| 初级用户 发帖 2 积分 109 | |
|
你用的是dos下自绘字模的中断吧,为什么要在文本状态下呢?进入图形状态,
把汉字画在屏幕上,能放大缩小,随便定位,灵活很多呀 |
|
| 第8楼 qb45 | 发表于 2003-12-30 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
因为在文本下还是有些好处的!、
画汉字在我好几年前已经做出来了,可是文本下我现在才做出来!技术上难些,到不是在于代码长短! |
|
| 第9楼 spirit | 发表于 2004-01-08 00:00 |
| 初级用户 发帖 5 积分 111 | |
|
hao
|
|
| 第10楼 jiaking | 发表于 2004-03-17 00:00 |
| 中级用户 发帖 52 积分 223 | |
|
编译时提示:type not define,在 DIM InRegs AS RegTypeX 。为什么?
|
|
| 第11楼 qb45 | 发表于 2004-03-19 00:00 |
| 高级用户 发帖 194 积分 677 | |
|
启动QB的时候请用QB/L如果你想知道详细的情况,请到编程爱好者的QBASIC论坛,有详细的 中断调用的帖子,和如何编译BAS文件的教程!
|
|
| 第12楼 @yingyong@ | 发表于 2004-03-21 00:00 |
| 初级用户 发帖 3 积分 106 | |
|
真的不错!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |