![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-26 14:28 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS汉化世界 & 中文系统 (中文化室) » 关于"无需中文平台"的中文DOS软件的疑问? |
| 可打印版本 7,077 / 27 |
| 第16楼 本是 | 发表于 2008-11-30 22:07 |
| 银牌会员 发帖 790 积分 2,227 | |
Originally posted by xugaohui at 2008-11-29 17:32: RE:xugaohui: 无忧的帖子我看了,.PSF字体文件格式我也研究了,制作很简单。不过,我不想抢人家风头,就让他风光一下吧!——不过那个hzpsf.exe竟然500多K,太夸张了,我250字节就差不多了。窗口编程的最大问题可能就是体积庞大,让我至今不想学窗口编程。 VT技术应该可用于任何高低级语言。如果用BIOS编程即中断调用,Qbasic编程还要多费一番周折。用QB、Turbo Basic、First Basic或其它编译型语言要简单些。 附件是我用FirstBasic编的范例(源程序及.EXE),其它BASIC应该类似。 附件 BASVTFNT.RAR (20.57 KiB) |
|
| 第17楼 xugaohui | 发表于 2008-11-30 23:04 |
| 高级用户 发帖 293 积分 774 来自 湖北仙桃 | |
|
谢谢本是。运行之后可以显示中文了,我学习下。
不了解First basic,用google搜索一下。 在这里发现了: http://www.cn-dos.net/forum/viewthread.php?tid=944&page=6&fpage=1&sid=dSaGju 本是真是专家级。 Norton Utilities 8.0中文版 for DOS的窗口界面不正是power basic生成窗口界面吗?完全一模一样,可能是power basic+.RTLink 编写的。 [ Last edited by xugaohui on 2008-12-1 at 01:24 ] |
|
| 第18楼 julon | 发表于 2008-12-01 07:30 |
| 中级用户 发帖 133 积分 424 | |
|
我用qboot工具启动,应该是加载了vtm,为什么用英文edit编辑有中文的文件,不能正常显示中文呢?中英文双语版的软件也不能正常显示中文。谢谢!
|
|
| 第19楼 本是 | 发表于 2008-12-01 08:17 |
| 银牌会员 发帖 790 积分 2,227 | |
|
单字节编码、双字节编码。如果知道两者的差别,就容易理解VtMagiK的所谓新、旧汉字内码了。也就能明白汉字系统制表符智能识别的来源了。也能明白VT技术使用后,软件制表符混乱了。
|
|
| 第20楼 雨露 | 发表于 2008-12-01 10:37 |
| 管理员 发帖 2,601 积分 6,215 | |
Originally posted by xugaohui at 2008-11-29 17:32: 不会呀,我用汉化的freedos1.0的command.com直接替换小云汉化的MSDOS7.1的command.com,照样正常运行!并不是专用的! |
|
| 第21楼 xugaohui | 发表于 2008-12-01 11:28 |
| 高级用户 发帖 293 积分 774 来自 湖北仙桃 | |
|
freedos的command.com在执行for命令时变量是延迟处理的,不像ms是读是整行for命令后一起执行的。98se的引导盘根本不认freedosr command.com,替换后在config.sys菜单那里按f5键,总是提示你输入command.com的路径,就算你输入正确也还是提示你输入。输入ms的command.com路径就好了。
freedos的command.com不能识别这个命令set path=D:\,这不是搜索D:\目录,只能写成set path=D: ms的command.com能识别这两种搜索路径。 ms的COMSPEC变量是C:\COMMAND.COM freedos的COMSPEC变量是c:\command.com 反过来也不能用ms的替换freedos的command.com 还有好多细节都不相同。 [ Last edited by xugaohui on 2008-12-1 at 11:33 ] |
|
| 第22楼 雨露 | 发表于 2008-12-01 11:54 |
| 管理员 发帖 2,601 积分 6,215 | |
|
肯定是有区别的,但跟汉化不汉化没有关系的吧!?
|
|
| 第23楼 xugaohui | 发表于 2009-01-02 14:05 |
| 高级用户 发帖 293 积分 774 来自 湖北仙桃 | |
|
回16楼本是的例子程序。
我是使用vbdos 1.0,将firstbas的bas改动了一下就可以了,但生成所程序运行第一次可以。第二次在运行的时侯总是显示出 “显示汉字”,不会再有乱码了。你而且你的程序是每次运行开始是乱码,然后是才是显示汉字,不过你使用了screen语句会清屏。 也就是说改后的basvtfnt程序可能会影响到其它有扩展acsii显示的程序,可能出现乱码了。 我是这样改的 ' $INCLUDE: 'VBDOS.BI' ..................省略,去掉screen 0 和cls清屏 DEFINT A-Z a$ = "" FOR i = 0 TO (8 * 16 - 1) READ b a$ = a$ + CHR$(b) NEXT PRINT "Before replacing font: "; PRINT CHR$(&H80); CHR$(&H81); CHR$(&H82); CHR$(&H83); CHR$(&H84); CHR$(&H85); CHR$(&H86); CHR$(&H87) PRINT "Press any key to see font changed..." b$ = INPUT$(1) DIM regs AS regtypex regs.AX = &H1100 regs.BX = &H1000 regs.CX = 8 regs.DX = &H80 regs.BP = SADD(a$) '下面三行改成vbdos的命令了。 regs.ES = SSEG(a$) CALL INTERRUPTX(&H10, regs, regs) PRINT "After replacing font: "; PRINT CHR$(&H80); CHR$(&H81); CHR$(&H82); CHR$(&H83); CHR$(&H84); CHR$(&H85); CHR$(&H86); CHR$(&H87) PRINT "Press any key to see font restored..." b$ = INPUT$(1) '去掉改为显示模式0 END vbdos的程序如果有窗口界面时,只能用screen 0.默认本来就是0. 如果在窗口程序退出时加入语句screen 12 : screen 0 这会导致把dos提示符界面给清屏。 请问要实现每次运行都是开始显示乱码,按任意键后显示中文,又不会清除屏幕上以前显示的内容,也不会影响到其它有扩展ascii字符的程序,怎么改程序? [ Last edited by xugaohui on 2009-1-2 at 16:07 ] |
|
| 第24楼 本是 | 发表于 2009-01-02 23:33 |
| 银牌会员 发帖 790 积分 2,227 | |
|
下面的程序是用系统默认8X16的ASCII点阵重置字符集,但不清除屏幕字符。你可以试验一下。
mov ax,1130h mov bh,6 int 10h ; get font type bh info into; cx=points,dl=rows, es:bp=ptr xor dx,dx;mov dx,0 mov cx,100h mov bx,1000h mov ax,1110h int 10h ; font load bh=points, bl=block; cx=qty, dx=1st char code; es:bp=ptr to font table ret [ Last edited by 本是 on 2009-1-2 at 23:34 ] |
|
| 第25楼 xugaohui | 发表于 2009-01-03 00:03 |
| 高级用户 发帖 293 积分 774 来自 湖北仙桃 | |
|
看不懂汇编,先收藏了。谢谢本是。
|
|
| 第26楼 本是 | 发表于 2009-01-03 00:31 |
| 银牌会员 发帖 790 积分 2,227 | |
|
“请问要实现每次运行都是开始显示乱码,按任意键后显示中文,又不会清除屏幕上以前显示的内容,也不会影响到其它有扩展ascii字符的程序,怎么改程序?”
只要每次想显示正常英文字形时就调用如下程序段就可以了。 DIM regs AS regtypex regs.AX = &H1130 regs.BX = &H0600 CALL INTERRUPTX(&H10, regs, regs) regs.AX = &H1110 regs.BX = &H1000 regs.CX = &H100 regs.DX = 0 'regs.BP, regs.ES 从上一中断调用中获得 CALL INTERRUPTX(&H10, regs, regs) RETURN [ Last edited by 本是 on 2009-1-3 at 00:35 ] |
|
| 第27楼 xugaohui | 发表于 2009-01-04 00:58 |
| 高级用户 发帖 293 积分 774 来自 湖北仙桃 | |
|
在vbdos中试了,很好,很实用。再次感谢本是。
|
|
| 第28楼 fjb007 | 发表于 2009-04-16 12:17 |
| 新手上路 发帖 1 积分 2 | |
|
下载,才发现下不了,大概是没有积分吧
|
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |