中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » DOS/WINDOWS 兩用文書編輯器 (含 Source Code)
English/Chinese Fix Translation
作者:
标题: DOS/WINDOWS 兩用文書編輯器 (含 Source Code) 上一主题 | 下一主题
winson4829
初级用户





积分 68
发帖 17
注册 2008-3-2
状态 离线
『楼 主』:  DOS/WINDOWS 兩用文書編輯器 (含 Source Code) [已使用 LLM 解释]

供一個我在 1995年 (八十四年)寫的 <易書文字編輯器> 供有志 DOS 程式開發的人參考!!

Source Code 共十幾個模組, 加起來 2,3萬行總有吧. 運用到很多的 DOS 程式設計的技巧.

執行檔為 WE.EXE , 可以在 DOS 或 WINDOWS 下執行.

若在 DOS 執行可先載入繁體的 ET3 中文系統

編譯環境為 TURBO C 3.0 ~~ 只需要打入 we.bat 即可編譯出 WE.EXE (壓縮檔內已有 WE.EXE)

壓縮檔內所有的 *.1ST 或 *.HLP 或副檔名很奇怪的, 都是文字檔,可以直接在 WINDOWS 下打開閱讀

程式內選單(F1)或說明都是繁體中文,有需要簡體的話,請修改 *.HLP 或 *.M2D 即可

下載點 :

http://upload.cn-dos.net/img/1496.zip
LLM 解释

技术背景与实现分析

该编辑器是1995年基于Turbo C 3.0开发的DOS/Windows两用繁体中文文书工具,核心实现与当时的技术环境强相关:

1. 跨环境运行的本质

  • DOS下:依赖ET3中文系统提供的VGA文字模式扩展(如16×16点阵繁体汉字显示),需通过中断调用(如int 10h显示、int 21h键盘输入)与硬件交互。
  • Windows下:实际运行在**Windows 3.x/9x的DOS虚拟机(VDM)**中,而非原生Windows图形程序。Windows仅提供内存管理与硬件抽象,编辑器仍通过DOS中断模拟完成输入输出——这是90年代“DOS/Windows两用”程序的典型妥协方案(当时Windows图形API尚未普及,且Turbo C 3.0对Win32支持有限)。

2. 编译与构建逻辑

  • 使用we.bat批处理编译,符合Turbo C 3.0的项目管理习惯(通过.prj或直接调用tcc.exe链接多个模块)。2-3万行代码分为十余个模块,可能包括:
    • 核心编辑引擎(缓冲区管理、光标移动、文本操作);
    • 中文输入输出层(对接ET3的中断调用);
    • 菜单与帮助系统(读取.HLP/.M2D等文本资源);
    • 跨环境适配层(判断当前运行环境,切换中断调用方式)。

3. 中文支持的局限性

  • 依赖ET3中文系统是当时的常见选择(ET3是台湾流行的DOS中文平台,提供点阵字库与输入法),但不兼容其他中文系统(如UCDOS、天汇)——这源于DOS中文系统的封闭性:不同厂商通过修改硬件中断、占用内存区域实现汉字显示,缺乏统一标准。
  • 简繁转换需手动修改.HLP/.M2D,因为程序未内置字库或编码转换逻辑,仅读取纯文本资源。

4. 历史语境下的“奇怪副档名”

.1ST/.HLP等“奇怪副档名”是当时节省磁盘空间的习惯(避免与系统工具冲突,或通过自定义副档名标识资源类型),本质为ASCII文本文件,可直接用记事本打开——这在DOS时代(文件名仅8+3字符)非常普遍。

后续建议的技术合理性

跟帖用户提到的XMS内存支持分割窗口功能,是DOS编辑器的典型增强方向:

  • XMS支持:DOS传统使用640KB以下的常规内存(Conventional Memory),大文件编辑易受限制。通过HIMEM.SYS调用XMS(扩展内存),可将文本缓冲区移至1MB以上,解决大文件卡顿问题——这需要修改内存管理模块,调用int 2fh(XMS管理器中断)分配扩展内存。
  • 分割窗口:需在VGA文字模式下划分多个显示区域(如上下分屏),独立管理每个区域的光标与缓冲区同步。Turbo C 3.0的conio.h库支持基本的窗口操作(如window()函数),但中文点阵(16×16)需调整窗口坐标计算(避免字符显示错位)。

历史误解与补充说明

  • 所谓“Windows下直接打开”并非原生支持,而是依赖VDM的兼容性——Windows NT/2000后VDM逐渐弱化,该程序在现代Windows中可能无法运行(需通过DOSBox模拟)。
  • 当年“DOS/Windows两用”的宣传易让用户误解为“原生跨平台”,实际是利用Windows对DOS的向后兼容,并非真正的图形化程序。

现代使用建议

若需复现或修改该程序,需:

  1. 在DOSBox中模拟环境(加载ET3中文系统);
  2. 使用Turbo C 3.0(或兼容编译器如Open Watcom)编译;
  3. 简体化需替换.HLP/.M2D中的繁体字符,并确保DOS中文系统支持简体字库(如替换ET3为UCDOS)。

该程序是90年代台湾DOS中文软件生态的典型样本,反映了当时开发者在硬件限制、中文支持与跨环境兼容之间的权衡。



2009-5-15 12:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

编写编辑器是一个很考验基本功的咚咚,特别是DOS下的,支持一下LZ。


2009-5-15 23:17
查看资料  发短消息  网志   编辑帖子  回复  引用回复
rzg1972
中级用户





积分 250
发帖 103
注册 2006-1-7
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

我很喜欢台湾同胞编写文书编辑器,因为象PE2一样赋予使用者很大自由。我已经有kS3和He5了,今天又得一个,太高兴了,感谢楼主。


2010-1-24 16:30
查看资料  发短消息  网志   编辑帖子  回复  引用回复
rzg1972
中级用户





积分 250
发帖 103
注册 2006-1-7
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

要是支持XMS内存功能和分割窗口功能就更完美了!


2010-3-9 20:34
查看资料  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: