在论坛上看到AW97的下载,觉得应该非常好用。。。就下载了一个试试。
在用wengier的msdos710启动盘启动后,进入aw97的目录,默认为c:\cjkdos
如果你要加载输入法的话,就直接敲入AW97回车,系统里有一个名为AW97.bat的批处理。如果不想加载输入法的话,敲入cjkdos就可以了。
cjkdos有两个参数,用法如下:(敲入cjkdos /?可得到下面的信息。这也是在DOS下寻求帮助的普遍做法。)
Usage : CJKDOS ]
Option: (Default X=0,Y=2)
X=0: Load CJK-GB2312 16x16 font lib.,,加载GB-2312的16位汉字库
X=1: Load CJK-GB2312 24x24 font lib. 加载GB2312的24位汉字库
X=2: Load CJK-BIG5 16x16 font lib. 加载BIG5的24位汉字库
X=3: Load CJK-BIG5 24x24 font lib. 加载BIG5的24位汉字库
Y=0: CJK 20902 resident Hard Disk. CJK20902驻留在硬盘上
Y=1: GB2312 3755 resident Extend memory. GB2312的3755个常用汉字驻留在扩展内存里。
BIG5 5401 resident Extend memory. BIG5的5401个汉字驻留在扩展内存里。
Y=2: GB2312 6763 resident Extend memory.
BIG5 13060 resident Extend memory.
Y=3: CJK 20902 resident Extend memory. CJK的20902个汉字驻留在扩展内存里
---Chinese/English. 中英文切换
---Quit Chinese System. 退出中文系统
默认为x=0,y=2的模式。加载的是16位的汉字库,不是很美观,但比XZL还是强多了。:-)
如果用x=1的模式,加载24位的汉字库,那就漂亮多了,字稍微要大点,但圆润多了,很精美的样子。
遇到的问题:
有时加载cjkdos的时候,屏幕一片白,看不到光标和字。要敲几个cls之类的命令后就可能好一些(变正常)。但DOS提示符背景还是灰的。
按CRLT+F5退出时有时会黑屏。但实际没死机。
加载cjkdos后,如果用F12强行退回到DOS下来,有可能会花屏。(绝大多数时候)。
cjkdos如果用X=1的模式时,好像不能从内存中完全退出。
cjkdos /q 好像/q 这个参数无效?一般退出都有这几种参数,/x (取eXit的意思),
/q (取Quit的意思),/u(取Unload的意思),但这个参数似乎无效。(不过程序的帮助里也没提到有这个参数)
cjkdos不能防止重复加载。 我用mi查看内存信息时,发现有两个cjkdos
一个为 cjkdos /1
一个为 cjkdos /q
晕S!
还有一个不是问题,是“减小后的io.sys的软盘兼容性 '帖子的问题的解答:
以下是引用lk在2003-4-27 7:58:39的发言:
以下是引用Wengier在2003-4-26 20:09:10的发言:
我倒是觉得AW97很不错,只需要两个文件就可以运行,才一个27K的可执行文件加上一个GBK字库文件,而且占用内存特少(只占23KB的UMB内存)。而且兼容性强,显示效果也比XZL强多了。
版主,是那两个文件?请告诉文件名,软盘能够装下吗?一起可是4MB多呐。
答:这两个文件是 cjkdos.exe(27980 bytes) 和 cjk-gb.f16 (766080 bytes)
不过比起xzl的56426来说还是太大了。
天汇也只有234404(tw3.2改进版),204531(tw3.1袖珍版)!
Saw the download of AW97 on the forum and thought it should be very useful... So I downloaded one to try.
After booting with wengier's msdos710 boot disk, enter the AW97 directory, which is defaulted to c:\cjkdos.
If you want to load the input method, just type AW97 and press Enter. There is a batch file named AW97.bat in the system. If you don't want to load the input method, type cjkdos.
cjkdos has two parameters, and the usage is as follows: (Typing cjkdos /? will get the following information. This is also a common practice to seek help under DOS.)
Usage : CJKDOS ]
Option: (Default X=0,Y=2)
X=0: Load CJK-GB2312 16x16 font lib.,,Load GB-2312 16-bit Chinese character library
X=1: Load CJK-GB2312 24x24 font lib. Load GB2312 24-bit Chinese character library
X=2: Load CJK-BIG5 16x16 font lib. Load BIG5 24-bit Chinese character library
X=3: Load CJK-BIG5 24x24 font lib. Load BIG5 24-bit Chinese character library
Y=0: CJK 20902 resident Hard Disk. CJK20902 resides on the hard disk
Y=1: GB2312 3755 resident Extend memory. 3755 commonly used Chinese characters of GB2312 reside in extended memory.
BIG5 5401 resident Extend memory. 5401 Chinese characters of BIG5 reside in extended memory.
Y=2: GB2312 6763 resident Extend memory.
BIG5 13060 resident Extend memory.
Y=3: CJK 20902 resident Extend memory. 20902 Chinese characters of CJK reside in extended memory
---Chinese/English. Switch between Chinese and English
---Quit Chinese System. Quit Chinese system
The default mode is x=0,y=2. It loads the 16-bit Chinese character library, which is not very beautiful, but much better than XZL. :-)
If you use the x=1 mode, load the 24-bit Chinese character library, then it is much more beautiful, the characters are a little larger, but more rounded, very delicate.
Problems encountered:
Sometimes when loading cjkdos, the screen is all white, and the cursor and characters are not visible. After typing a few commands like cls, it may get better (become normal). But the background of the DOS prompt is still gray.
Sometimes it may be black screen when exiting by pressing CRLT+F5. But actually it is not死机.
After loading cjkdos, if you forcefully return to DOS by F12, it may have screen corruption. (Most of the time)
When cjkdos uses the X=1 mode, it seems that it cannot be completely exited from memory.
cjkdos /q It seems that the /q parameter is invalid? Generally, there are several parameters for exiting, /x (meaning eXit),
/q (meaning Quit), /u (meaning Unload), but this parameter seems invalid. (But the program's help doesn't mention this parameter)
cjkdos cannot prevent repeated loading. When I use mi to check memory information, I find there are two cjkdos
One is cjkdos /1
One is cjkdos /q
Oh my god!
There is another non-problem, which is the solution to the problem of "Reduced io.sys floppy compatibility" post:
The following is the speech of lk on 2003-4-27 7:58:39:
The following is the speech of Wengier on 2003-4-26 20:09:10:
I think AW97 is very good. It can run with only two files, only a 27K executable file plus a GBK character library file, and it occupies very little memory (only 23KB of UMB memory). And it has strong compatibility, and the display effect is much better than XZL.
Moderator, what are those two files? Please tell the file names, can it be installed on a floppy disk? Together it is more than 4MB.
Answer: These two files are cjkdos.exe(27980 bytes) and cjk-gb.f16 (766080 bytes)
But compared with xzl's 56426, it is still too big.
Tianhui is also only 234404 (tw3.2 improved version), 204531 (tw3.1 pocket version)!
LLM 解释
关于 AW97 与 CJKDOS 技术实现及历史语境的补充说明
在 2000 年代初期的 DOS 环境中,AW97(或称 CJKDOS)是一款在中文技术爱好者中颇具名气的轻量化 GBK 汉字系统。结合帖中的技术细节与当时的开发环境,以下是针对相关问题的技术解释与补充。
1. 关于输入法挂接失败的技术成因
帖中提到使用 wb.com 或 xzlpy.com 等传统输入法无法挂接至 CJKDOS,提示“相应的汉字系统没有启动”。
-
INT 15h 与 INT 2Fh 接口缺失:传统的 DOS 中文系统(如 UCDOS、天汇 TW)通常会通过中断向量(常见如
INT 2Fh 的特定功能调用或 INT 15h)建立一套标准的汉字系统通信协议。第三方输入法通过检测这些中断来确认汉字系统是否驻留。CJKDOS 设计极其精简,并未实现这些复杂的标准钩子(Hook),导致外部输入法无法识别其存在。
-
输入法缓冲区机制不同:CJKDOS 倾向于采用内置输入法或特定的私有挂接方式,而不兼容基于天汇或 UCDOS 规范开发的通用输入法模块。
2. EMM386 依赖性与 UMB 机制
帖中提到 CJKDOS 在 Windows 2000 的 DOS 窗口或实模式下对 EMM386.EXE 的依赖。
-
扩展内存(XMS/EMS)管理:CJKDOS 支持将巨大的 GBK 字库(如
Y=1/2/3 参数所示)加载到扩展内存中,这必须依赖于 XMS 控制器(如 HIMEM.SYS)。
-
UMBPCI 的差异:
UMBPCI.SYS 通过硬件芯片组直接开启上位内存区(UMB),不进入保护模式。而 EMM386 是基于 VCPI 协议的虚拟 8086 模式(V86)。CJKDOS 在运行初期可能需要扫描特定内存地址或通过 INT 67h (EMS) 来分配字库空间,如果驱动加载不完全或内存地址冲突,就会导致运行失败。
-
Win2000 环境:Windows 2000 的 NTVDM(NT 虚拟 DOS 机)对底层硬件中断拦截非常严格。CJKDOS 这种直接操作显存(VRAM)和内存地址的软件在 NT 架构下极易触发非法指令警告。
3. 显存状态与花屏/黑屏问题
用户反馈的“白屏”、“花屏”及“黑屏”现象,源于 DOS 时代常见的显卡模式管理冲突。
-
VGA 模式控制:CJKDOS 属于外挂式图形化字库系统,它将 VGA 显卡切换到图形模式(通常是
640x480 16-color 或特定平面模式)来渲染汉字。
-
退出机制缺陷:程序在通过
Ctrl+F5 或 F12 强制退出时,未能正确恢复显卡的标准文本模式寄存器(寄存器 0x3C0 等)。此时,系统仍处于图形模式,但 DOS 提示符尝试输出文本,导致显示错乱。执行 CLS 命令有时能起作用,是因为 CLS 会调用 INT 10h 重置部分显存状态,但若未完全恢复模式设置,背景色依然会显示异常(如灰底)。
4. 驻留管理与重复加载
关于 /Q 参数无效及重复加载的问题:
-
TSR 退出逻辑:在 DOS 中,卸载驻留程序(TSR)的标准做法是释放分配的内存块(MCB)并恢复中断向量。如果程序代码本身没有编写
/U 或 /Q 的处理函数,简单的命令行参数并不能终止驻留进程。
-
缺乏唯一性检测:完善的 TSR 程序会在启动前扫描内存中是否已存在特征码或占用了特定的中断。CJKDOS 为了追求极小的体积(压缩后仅 10K),舍弃了这些防御性检测逻辑,导致用户多次运行会导致多个副本同时驻留,白白浪费内存。
5. 字库与存储效率
-
GBK vs GB2312:Wengier 提到的 GBK 字库包含 20902 个汉字,而 GB2312 仅含 6763 个。在 DOS 时代,GBK 字库(通常在 700K 到 2MB 之间)是极大的资源负担。
-
压缩技术:帖中提到的 UPX 压缩可执行文件及 ZIP 压缩字库,是当年在 1.44MB 软盘上集成汉字系统的常用方案。CJKDOS 的优势在于其核心代码极其精炼,使得它成为了制作“万能启动盘”或“应急维护盘”的理想选择。
6. 软件背景说明
-
NV 与 QV:帖中提到的 NV (NewView) 和 QV (QuickView) 均是 DOS 下著名的多媒体查看器。NV 以支持多种格式著称,但后期体积臃肿;QV 因其优秀的汇编底层优化,在低配机型上播放视频和查看图片的效率极高。这些讨论反映了当时用户在受限硬件环境下对资源占用极度敏感的技术倾向。