中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 16:56
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » DOS下的中文文本阅读器 查看 6,868 回复 23
楼 主 DOS下的中文文本阅读器 发表于 2007-03-25 09:11 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
XReader是一个DOS下的中文文本阅读器, 支持在DOS下不需要中文系统
阅读汉字文本文件,支持文本色彩设定~

没事写着完的,适后于做中文化的帮助文件。

下载更新于17楼...

[ Last edited by happybasic on 2008-12-16 at 21:44 ]
[已使用 Gemini 解答]
Gemini 解答

技术实现分析与历史背景补充

XReader 作为 DOS 下的中文文本阅读器,其核心功能“无需中文系统显示汉字”的实现依赖于内置字库(而非依赖 DOS 中文系统的软字库或硬件字库),这是 1990 年代末至 2000 年代 DOS 小工具的常见设计思路。具体机制如下:

  1. 字符编码处理:需假设文本文件采用特定编码(如 GB2312 或 Big5),程序直接解析编码值作为内置字库的索引;
  2. 直接显存操作:通过写入 VGA/EGA 显存(如 0xB8000 段)实现汉字显示,跳过 DOS 的标准输出(INT 21h AH=09h 等),因此无需依赖 UCDOS、CCDOS 等中文系统的中断钩子或内存驻留模块;
  3. 色彩设定:利用 VGA 显存的属性字节(每个字符占 2 字节,高字节为前景/背景色)实现色彩控制。

功能演进与同类工具对比

  • mouse 支持:通过调用 DOS 鼠标驱动(如 Microsoft Mouse Driver)的 INT 33h 中断实现,这是 DOS 程序添加鼠标交互的标准方式;
  • $DATE/$TIME 变量替换:需在读取文本时扫描特定标记,通过 DOS 系统调用(INT 21h AH=2Ah 获取日期、AH=2Ch 获取时间)动态插入当前时间;
  • 同类工具参考
    • minchengan 提到的 CL.EXE 是早期 DOS 中文阅读器(如 1990 年代的 CL386.EXE),同样依赖内置字库;
    • johnsonlam 提到的 exer171(文字转执行档工具)与 XReader 定位不同,但均反映了 DOS 时代“将资源内置以减少依赖”的设计倾向。

历史语境与限制

  1. “无需中文系统”的局限性:仅指不依赖第三方中文系统的内存驻留模块,但程序自身仍需处理编码和字库,若文本编码与内置字库不匹配(如程序内置 GB2312 却读取 Big5 文件)会显示乱码;
  2. 字体大小问题:15 楼用户提到的“中英文字体大小不一”是 DOS 中文显示的普遍现象——汉字通常为 16×16 点阵,英文为 8×16 点阵,需通过程序调整排版(如强制汉字占 2 个英文宽度)才能对齐;
  3. 源码共享的常见性:9 楼用户请求源码是 DOS 技术社区的常见需求,因为内置字库的实现(如字库压缩、点阵读取)是中文工具的核心技术细节。

误解澄清

  • 5 楼用户提到“上个世纪就用过类似的东东”并非夸张:DOS 中文阅读器的成熟形态(如 CCATTYPECN)早在 1990 年代中期已出现,XReader 是 2000 年代对这类工具的功能扩展(如鼠标支持、变量替换)。
欢迎光临happyBASIC小站:http://yxbasic.51.net
2 发表于 2007-03-25 22:00 ·  中国 陕西 西安 电信
中级用户
★★
积分 250
发帖 103
注册 2006-01-07 16:38
UID 48576
性别 男
状态 离线
怎么没文件?
3 发表于 2007-03-28 12:21 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
欢迎光临happyBASIC小站:http://yxbasic.51.net
4 发表于 2007-03-28 12:24 ·  中国 江苏 苏州 电信
中级用户
★★
我是DOS学者
积分 367
发帖 180
注册 2006-05-14 10:53
UID 55507
性别 男
来自 重庆
状态 离线
可以支持mouse吗?现在还没有来得及试验!
5 发表于 2007-03-28 12:43 ·  中国 海南 儋州 电信
初级用户
★★
积分 199
发帖 101
注册 2007-03-13 01:44
UID 81536
状态 离线
实话说吧,我在上个世纪就用过类似的东东了……没什么新意。
6 发表于 2007-06-18 19:09 ·  中国 江苏 无锡 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
呵呵,实在是没有新意。

~~上个世纪? 40~50年代还是90年代末啊?
欢迎光临happyBASIC小站:http://yxbasic.51.net
7 有一个程序叫CL.EXE 发表于 2007-06-18 22:44 ·  中国 湖北 黄冈 电信
中级用户
★★
积分 376
发帖 164
注册 2006-12-05 01:28
UID 72582
性别 男
状态 离线
CL也有这个功能。
8 发表于 2007-06-27 17:58 ·  中国 江苏 苏州 电信
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
没事更新了一下,加入了$DATE 与 $TIME, 用于在文本中显示当前的日期与时间

下载地址:
http://zhenlove.com.cn/cndos/fileup/files/XReader101.rar
欢迎光临happyBASIC小站:http://yxbasic.51.net
9 发表于 2007-06-27 23:20 ·  中国 陕西 西安 电信
中级用户
★★
积分 250
发帖 103
注册 2006-01-07 16:38
UID 48576
性别 男
状态 离线
谢谢!能共享源码吗?
10 发表于 2007-06-30 20:37 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
Originally posted by BWSkyer at 2007-3-28 12:24:
可以支持mouse吗?现在还没有来得及试验!


刚刚加入了mouse支持,以及清屏换页命令。
下载地址:http://ys-c.ys168.com/?XReader.rar_67eo1bisp0biso1bs1bktq7bs0bs0b5btrm7btmhu14z97f14z
欢迎光临happyBASIC小站:http://yxbasic.51.net
11 发表于 2008-10-22 14:44 ·  中国 江苏 苏州 电信
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
有空修改了一下:

修复在WINDOWS下无法显示光笔的问题。
欢迎光临happyBASIC小站:http://yxbasic.51.net
12 发表于 2008-11-01 15:57 ·  中国 江苏 苏州 电信
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
加入单击鼠标左键自动翻页的功能。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
雨露 +6 2008-11-17 13:56
欢迎光临happyBASIC小站:http://yxbasic.51.net
13 发表于 2008-11-17 13:09 ·  中国 江西 吉安 电信
版主
★★★★
积分 7,296
发帖 1,628
注册 2002-10-16 12:00
UID 10
性别 男
状态 离线
這個還要漢字庫的支持啊。
ko20010214
=================================
大功告成,打个Kiss!
ko20010214@MSN.com
神州优雅Q300C
Intel CeleronM 370处理器 | 256MbDDR内存
40G硬盘 | USB2.0 | IEEE 1394
13.3 ' WXGA 宽屏(16:10) | COMBO光驱
10/100M网卡 | 四合一读卡器
14 发表于 2008-11-17 13:14 ·  中国 江西 吉安 电信
版主
★★★★
积分 7,296
发帖 1,628
注册 2002-10-16 12:00
UID 10
性别 男
状态 离线
我有個不需要漢字庫支持的,80K左右。別人寫的。
ko20010214
=================================
大功告成,打个Kiss!
ko20010214@MSN.com
神州优雅Q300C
Intel CeleronM 370处理器 | 256MbDDR内存
40G硬盘 | USB2.0 | IEEE 1394
13.3 ' WXGA 宽屏(16:10) | COMBO光驱
10/100M网卡 | 四合一读卡器
15 发表于 2008-11-17 13:57 ·  中国 浙江 台州 温岭市 电信
管理员
★★★★
DOS非常爱好者
积分 6,215
发帖 2,601
注册 2006-01-20 13:00
UID 49256
状态 离线
如果文本中有中文和英文,由于中英文字体大小不一,显得有些难看!
论坛跳转: