移植UCDOS6.0下的WPS

Author: 朱珞华 Date: 1997-01-01

  UCDOS 6.0配置的WPS 2.2版比UCDOS 5.0下的WPS增加了可设置参数定时存盘等功能,如:C>WPS/n(每隔n分钟自动将正在编辑的文件存盘,n=0时关闭该功能)。然而,盲目采取“拿来主义”将UCDOS 6.0的WPS文件拷入UCDOS 5.0下则不能用,系统会提示:“Please run UCDOS first”。
  经对照观察,UCDOS 6.0配置的WPS字处理系统的三个主要文件除了WPS.COM(14781字节)与UCDOS 5.0版的WPS.COM(14100字节)文件长度不同外,其余两文件WPS.EXE和WPS1.OVL均相同且版本号都是2.2版。可见希望公司作系统版本升级时字处理系统只改动了WPS.COM模块代码。
  进一步用DEBUG分析WPS.COM发现:在偏移地址DS:1015处,有一条用06h与DL寄存器内容进行比较的指令,也就是版本比较指令。顿时恍然大悟,若将06h改为05h,问题不就迎刃而解了吗?
  具体修改方法如下:(修改前应先将文件备份)
  C>DEBUG WPS.COM
  -U 1015 1017   ;(确认偏移地址)
  DS:1015 CMP DL,06
  -E 1017 06.05;(将06h改为05h)
  -W   ;(存盘)
  Writting 039BD bytes
  -Q   ;(退出)
  将修改后的UCDOS 6.0版下的WPS.COM文件拷贝到UCDOS 5.0目录下覆盖原有WPS.COM文件即可,而且修改过的WPS.COM文件在UCDOS 6.0和UCDOS 5.0两种系统环境下均能正常运行。