用MEMMAKER协调软件运行一例

Author: 冷罡华 Date: 1997-01-01

  笔者在使用汉化版PCTOOLS 5.0版时,试图用HDICT 4.0中HOTOOL目录下的天汇汉字系统袖珍版TW作汉字平台,但每次运行,都出现死机。在排除了病毒的可能性后,想到是否是内存驻留程序在作怪呢?笔者的机器有16MB内存,用MS-DOS的HIMEM.SYS和EMM386.EXE管理;在AUTOEXEC.BAT中加载的内存驻留程序有:MSCDEX.EXE(MS-DOS的实用程序)、SMARTCD.EXE(光驱加速程序,V3.0)、MOUSE.COM(鼠标驱动程序)和HDICT.EXE(英汉通V4.0);它们是用MS-DOS的MEMMAKER.EXE程序安排存放地址的,在AUTOEXEC.BAT中,它们的所在行分别是:
  LH/L:1,27952 C:\DOS\MSCDEX.EXE/D:MSCD001
  LH/L:1,40016 C:\DOS\SMARTCD.EXE
  LH/L:1,15136 C:\UCDOS\MOUSE.COM
  笔者分析,最有可能与TW发生冲突的是SMARTCD。在将AUTOEXEC.BAT中SMARTCD所在行用REM命令屏蔽后,重新开机,TW驻留成功。
  至此问题好象已经解决,但能够提高光驱读取速度的SMARTCD被屏蔽掉了。笔者试图建立一个PCT.BAT:先将SMARTCD用参数/UN撤离内存,然后调用TW,再调用汉化PCTOOLS,在PCTOOLS使用完毕后先将TW用/Q参数撤离内存,再重新驻留SMARTCD,但这样仍导致死机。即在SMARTCD撤离内存后,已不能再企图驻留TW,否则会导致死机。这就是说,必须让TW驻留到一个安全的地方。但这个地方怎么找呢?我想到了MS-DOS的MEMMAKER。
  MEMMAKER.EXE是MS-DOS 6.22的一个实用程序。它能自动为AUTOEXEC.BAT中要驻留内存的程序分配合理的、安全的内存空间,并在AUTOEXEC.BAT中写上这些内存空间的起始地址。为了每次调用TW时都能有一个安全的入口地址,笔者在AUTOEXEC.BAT的末尾加上了一行:
  LH D:\HDICT\HOTOOL\TW.EXE
  (注:这是暂时的,只是为了获取TW的安全地址入口,并非要每次开机都进入TW环境。)
  然后运行MEMMAKER.EXE(在运行过程中,MEMMAKER会自动热启动两次。有关操作应注意的问题,请看本文最后一段)。运行列末尾,MEMMAKER会提问是否接受它所做的改变。选yes,完成。然后查一下AUTOEXEC.BAT,这时最后一行已变成:
  LH/L:0;1,38160/S D:\HDICT\HOTOOL\TW(参数S为MEMMAKER所加)
  下面的工作是,将这一行抄下来,然后把它从AUTOEXECBAT中删除。至此笔者已获得了TW.EXE的一个安全的内存地址。
  现在笔者调用汉化PCTOOLS的PCT.BAT是:
  LH/L:0;1,38160/S D:\HDICT\HOTOOL\TW
  D:\TOOLS\PCTOOLS.EXE
  D:\HDICT\HOTOOL\TW /Q
  CLS
  现在笔者即可以随时使用TW作外壳来运行汉化PCTOOLS,同时又可用SMARTCD.EXE加速光驱,两个优秀软件可以同时使用了。
  值得注意的是,MEMMAKER必须在80386和80486以上微机上才能运行,而且必须有扩展内存(因为MEMMAKER.EXE是将程序装入UMB中。可以用MS-DOS的HIMEM.SYS和EMM386.EXE来管理内存)。如果是单色显示器,则应在命令行上使用/B参数以黑白方式显示,以防显示不正常。若是在网络上,则应用/T参数关掉IBM Token-Ring网络检测,以防运行期间出问题。