用MEMMAKER协调软件运行一例 冷罡华 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网络检测,以防运行期间出问题。