中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 文本方式下显示汉字的源程序
作者:
标题: 文本方式下显示汉字的源程序 上一主题 | 下一主题
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『楼 主』:  文本方式下显示汉字的源程序

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





我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2003-10-30 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
凌晨一点
初级用户




积分 255
发帖 54
注册 2003-10-24
状态 离线
『第 2 楼』:  

OK

2003-10-30 00:00
查看资料  发送邮件  发短消息 网志  OICQ (285749694)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27735
发帖 10521
注册 2002-10-9
状态 离线
『第 3 楼』:  

不知此程序能显示哪些汉字?应该不是所有汉字吧。。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-10-31 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 4 楼』:  

能显示所有的汉字,不过要自己做一个提取字模的工具.
可以把显示汉字的源程序改动一下,以便提取字模!
替换DATA里面的数据,就可以显示别的汉字了
但是同屏显示的汉字数量是有限制的,因为只有128个扩展字芙!



我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2003-10-31 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27735
发帖 10521
注册 2002-10-9
状态 离线
『第 5 楼』:  

那有没有现成的兼容的提取字模的工具呢?



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-10-31 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 6 楼』:  

''请不要输入英文字母
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




[此贴子已经被作者于2004-1-8 13:39:37编辑过]






我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2003-11-3 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
算了
初级用户




积分 109
发帖 2
注册 2003-11-5
状态 离线
『第 7 楼』:  

你用的是dos下自绘字模的中断吧,为什么要在文本状态下呢?进入图形状态,
把汉字画在屏幕上,能放大缩小,随便定位,灵活很多呀

2003-12-29 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 8 楼』:  

因为在文本下还是有些好处的!、
画汉字在我好几年前已经做出来了,可是文本下我现在才做出来!技术上难些,到不是在于代码长短!



我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2003-12-30 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
spirit
初级用户




积分 111
发帖 5
注册 2003-12-1
状态 离线
『第 9 楼』:  

hao

2004-1-8 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiaking
中级用户




积分 223
发帖 52
注册 2004-3-7
状态 离线
『第 10 楼』:  

编译时提示:type not define,在 DIM InRegs AS RegTypeX 。为什么?


2004-3-17 00:00
查看资料  发送邮件  发短消息 网志  OICQ (53379921)  编辑帖子  回复  引用回复
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 11 楼』:  

启动QB的时候请用QB/L如果你想知道详细的情况,请到编程爱好者的QBASIC论坛,有详细的 中断调用的帖子,和如何编译BAS文件的教程!



我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2004-3-19 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
@yingyong@
初级用户




积分 106
发帖 3
注册 2004-3-21
状态 离线
『第 12 楼』:  

真的不错!

2004-3-21 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: