|
本是
银牌会员
    
积分 2221
发帖 789
注册 2005-1-27
状态 离线
|
『第 16 楼』:
使用 LLM 解释/回答一下
Originally posted by xugaohui at 2008-11-29 17:32:
本是:
也有人用与vt系统软件相同的技术来显示中文。
http://bbs.wuyou.com/viewthread.php?tid=131706&extra=page%3D1&page=1
这个东西非常好。
目前的 ...
RE:xugaohui:
无忧的帖子我看了,.PSF字体文件格式我也研究了,制作很简单。不过,我不想抢人家风头,就让他风光一下吧!——不过那个hzpsf.exe竟然500多K,太夸张了,我250字节就差不多了。窗口编程的最大问题可能就是体积庞大,让我至今不想学窗口编程。
VT技术应该可用于任何高低级语言。如果用BIOS编程即中断调用,Qbasic编程还要多费一番周折。用QB、Turbo Basic、First Basic或其它编译型语言要简单些。
附件是我用FirstBasic编的范例(源程序及.EXE),其它BASIC应该类似。
Originally posted by xugaohui at 2008-11-29 17:32:
It was originally:
Some people also use the same technology as the vt system software to display Chinese characters.
http://bbs.wuyou.com/viewthread.php?tid=131706&extra=page%3D1&page=1
This thing is very good.
Currently...
RE:xugaohui:
I read the post on Wuyou. I also studied the.PSF font file format, and it's very simple to make. However, I don't want to steal someone's thunder, so let him have his moment! ——But that hzpsf.exe is actually over 500K, which is too exaggerated. I can do it in about 250 bytes. The biggest problem with window programming may be its large size, which is why I haven't wanted to learn window programming so far.
VT technology should be applicable to any high-level or low-level language. If using BIOS programming, that is, interrupt calls, programming in Qbasic will require some extra effort. It's simpler with QB, Turbo Basic, First Basic, or other compiled languages.
The attachment is an example I made with FirstBasic (source code and.EXE). Other BASICs should be similar.
附件
1: BASVTFNT.RAR (2008-11-30 22:07, 20.57 KiB, 下载附件所需积分 1 点
,下载次数: 24)
|

my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2008-11-30 22:07 |
|
|
xugaohui
高级用户
   
积分 774
发帖 293
注册 2003-4-16 来自 湖北仙桃
状态 离线
|
|
2008-11-30 23:04 |
|
|
julon
中级用户
  
积分 424
发帖 133
注册 2004-3-1
状态 离线
|
『第 18 楼』:
使用 LLM 解释/回答一下
我用qboot工具启动,应该是加载了vtm,为什么用英文edit编辑有中文的文件,不能正常显示中文呢?中英文双语版的软件也不能正常显示中文。谢谢!
I use the qboot tool to boot, and it should have loaded vtm. Why can't Chinese be displayed normally when using the English edit to edit a Chinese file? The Chinese-English bilingual software also can't display Chinese normally. Thanks!
|

http://hi.baidu.com/julon |
|
2008-12-1 07:30 |
|
|
本是
银牌会员
    
积分 2221
发帖 789
注册 2005-1-27
状态 离线
|
『第 19 楼』:
使用 LLM 解释/回答一下
单字节编码、双字节编码。如果知道两者的差别,就容易理解VtMagiK的所谓新、旧汉字内码了。也就能明白汉字系统制表符智能识别的来源了。也能明白VT技术使用后,软件制表符混乱了。
Single-byte encoding and double-byte encoding. If you know the difference between the two, it's easier to understand the so-called new and old Chinese character internal codes of VtMagiK. You can also understand the source of the intelligent recognition of Chinese character system tab characters. You can also understand why the software tab characters are messy after using VT technology.
|

my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2008-12-1 08:17 |
|
|
雨露
管理员
          DOS非常爱好者
积分 6209
发帖 2598
注册 2006-1-20
状态 离线
|
『第 20 楼』:
使用 LLM 解释/回答一下
Originally posted by xugaohui at 2008-11-29 17:32:
雨露:
freedos的command.com汉化后也只能在freedos下运行。直接替换msdos 7.1的command.com后就不能用了。
不会呀,我用汉化的freedos1.0的command.com直接替换小云汉化的MSDOS7.1的command.com,照样正常运行!并不是专用的!
Originally posted by xugaohui at 2008-11-29 17:32:
Yulu:
After localizing the command.com of FreeDOS, it can only run under FreeDOS. Directly replacing the command.com of MSDOS 7.1 makes it unusable.
It shouldn't be like that. I directly replaced the command.com of the localized FreeDOS 1.0 with the command.com of Xiaoyun's localized MSDOS 7.1, and it still runs normally! It's not exclusive!
|

|
|
2008-12-1 10:37 |
|
|
xugaohui
高级用户
   
积分 774
发帖 293
注册 2003-4-16 来自 湖北仙桃
状态 离线
|
『第 21 楼』:
使用 LLM 解释/回答一下
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 ]
The COMMAND.COM of FreeDOS is in delayed processing of variables when executing the for command, unlike MS which executes all at once after reading the entire for command. The boot disk of 98SE doesn't recognize FreeDOS's COMMAND.COM at all. After replacement, pressing the F5 key in the config.sys menu always prompts you to enter the path of COMMAND.COM. Even if you enter the correct one, it still prompts you. Entering the path of MS's COMMAND.COM is fine.
The COMMAND.COM of FreeDOS can't recognize the command "set path=D:\", this doesn't search the D:\ directory, it can only be written as "set path=D:".
The COMMAND.COM of MS can recognize these two kinds of search paths.
The COMSPEC variable of MS is C:\COMMAND.COM.
The COMSPEC variable of FreeDOS is c:\command.com.
Conversely, MS's COMMAND.COM can't be used to replace FreeDOS's COMMAND.COM.
There are many other details that are different.
Last edited by xugaohui on 2008-12-1 at 11:33 ]
|

下载
09年7月7日 更新
感谢网友 囧HQY 提供空间 |
|
2008-12-1 11:28 |
|
|
雨露
管理员
          DOS非常爱好者
积分 6209
发帖 2598
注册 2006-1-20
状态 离线
|
『第 22 楼』:
使用 LLM 解释/回答一下
肯定是有区别的,但跟汉化不汉化没有关系的吧!?
There must be differences, but it has nothing to do with whether it's localized or not, right!?
|

|
|
2008-12-1 11:54 |
|
|
xugaohui
高级用户
   
积分 774
发帖 293
注册 2003-4-16 来自 湖北仙桃
状态 离线
|
『第 23 楼』:
使用 LLM 解释/回答一下
回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 ]
Reply to the example program on floor 16.
I was using vbdos 1.0, and just modified the bas of firstbas a bit, and it works. But the first time the generated program runs, it's okay. The second time it runs, it always shows "Display Chinese characters" and there's no garbled code anymore. And your program has garbled code at the start of each run, then shows Chinese characters later, but you used the screen statement to clear the screen.
That is to say, the modified basvtfnt program might affect other programs with extended ASCII display, and garbled code might appear.
This is how I modified it:
' $INCLUDE: 'VBDOS.BI'
..................Omitted, removed screen 0 and cls to clear screen
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$) 'The following three lines are changed to vbdos commands.
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)
'Removed and changed to display mode 0
END
If the vbdos program has a window interface, it can only use screen 0. The default is originally 0.
If you add the statement screen 12 : screen 0 when exiting the window program, this will clear the DOS prompt interface.
May I ask how to modify the program to achieve that each run starts with garbled code, shows Chinese characters after pressing any key, doesn't clear the previously displayed content on the screen, and doesn't affect other programs with extended ASCII characters?
Last edited by xugaohui on 2009-1-2 at 16:07 ]
|

下载
09年7月7日 更新
感谢网友 囧HQY 提供空间 |
|
2009-1-2 14:05 |
|
|
本是
银牌会员
    
积分 2221
发帖 789
注册 2005-1-27
状态 离线
|
『第 24 楼』:
使用 LLM 解释/回答一下
下面的程序是用系统默认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 ]
The following program resets the character set using the system - default 8x16 ASCII dot matrix without clearing the screen characters. You can test it.
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 ]
|

my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2009-1-2 23:33 |
|
|
xugaohui
高级用户
   
积分 774
发帖 293
注册 2003-4-16 来自 湖北仙桃
状态 离线
|
『第 25 楼』:
使用 LLM 解释/回答一下
看不懂汇编,先收藏了。谢谢本是。

Can't understand assembly, so I'll bookmark it. Thanks, Ben Shi.

|

下载
09年7月7日 更新
感谢网友 囧HQY 提供空间 |
|
2009-1-3 00:03 |
|
|
本是
银牌会员
    
积分 2221
发帖 789
注册 2005-1-27
状态 离线
|
『第 26 楼』:
使用 LLM 解释/回答一下
“请问要实现每次运行都是开始显示乱码,按任意键后显示中文,又不会清除屏幕上以前显示的内容,也不会影响到其它有扩展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 ]
"Excuse me, to achieve that every time it runs, it starts with garbled text, and after pressing any key, it displays Chinese, without clearing the previously displayed content on the screen, and without affecting other programs with extended ASCII characters, how to modify the program?"
Just call the following code segment whenever you want to display normal English glyphs.
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 obtained from the previous interrupt call
CALL INTERRUPTX(&H10, regs, regs)
RETURN
Last edited by 本是 on 2009-1-3 at 00:35 ]
|

my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2009-1-3 00:31 |
|
|
xugaohui
高级用户
   
积分 774
发帖 293
注册 2003-4-16 来自 湖北仙桃
状态 离线
|
『第 27 楼』:
使用 LLM 解释/回答一下
在vbdos中试了,很好,很实用。再次感谢本是。
Tested in VBDOS, very good and practical. Thanks again, Ben Shi.
|

下载
09年7月7日 更新
感谢网友 囧HQY 提供空间 |
|
2009-1-4 00:58 |
|
|
fjb007
新手上路

积分 2
发帖 1
注册 2009-3-6
状态 离线
|
『第 28 楼』:
使用 LLM 解释/回答一下
下载,才发现下不了,大概是没有积分吧
Downloaded, only to find that I couldn't download. Probably because I don't have enough points.
|
|
2009-4-16 12:17 |
|