最新WPS NT 1.0的内存优化

Author: 曹国钧 Date: 1995-03-31

        经过笔者多次实验发现,WPS NT 1.0的主文件WPS.EXE至少需要380KB才能正常运行。因此,必须将CONFIG.SYS和AUTOEXEC.BAT中不需要的设备驱动程序和TSR实用程序卸掉,释放常规内存空间。下面就是笔者所提供的例子(COMPAQ 386/25e VGA 4M内存,DOS 6.20压缩盘),该配置可留给用户575KB自由空间。
        CONFIG.SYS内容:
        DEVICE=c:\dos\HIMEM.SYS
        device=c:\213\ansi.sys
        dos=HIGH
        device=c:\dos\dblspace.sys/MOVE
        LASTDRIVE=E
        FILES=20
        buffers=20
        stacks=0,0
        AUTOEXEC.BAT内容:
        @echo off
        path d:\DOS;d:\public
        set prompt=$P$g
        SPEEDKEY
        mouse/3/1
        (2)启动WPS NT 1.0的优化批处理程序WPSNT.BAT内容如下:
        @ECHO OFF
        C:
        CD\WPSNT
        WPSAS   (WPS自动存盘工具)
        SPLIB
        SPDOS
        py cizu  (或五笔模块WBX)
        WPS %1 %2
        注意:拼音模块PY.COM和五笔模块WBX.COM只能取其中一个。启动SPDOS NT汉字系统后,可留给WPS NT大约398KB,可运行主文件WPS.EXE。此时,也可在WPSNT6BAT增加一个PCSHELL 6.0提供的磁盘高速缓冲程序PC-CACHE.COM,它仅占用12KB常规空间(不用SMARTDRV.EXE程序,它将占用27KB常规空间),还有386KB空间可用,也可运行WPS.EXE程序。
        因WPS NT提供的拼音模块增加了众多的词组,因而,占用了121KB的常规空间,为了更好地优化WPS NT的内存使用,实际上使用SPDOS 5.0提供的PY.COM拼音模块,它仅占用64KB内存空间,其中词组空间2KB。因为SODOS NT 1.0中提供了一个仿真SPDOS 6.0F的环境程序SPDOS6.COM,该程序为PY.COM装入SPDOS NT提供了可能。经笔者分析,SPDOS NT已将SPDOS 6.0F中的INT 16H扩充并改为INT 18H,因此,需将PY.COM模块中检测版本号的程序段去年,并将PY.COM中所有INT 16H改为INT 18H,就能使PY.COM也能运行于SPDOS NT环境中。下面就是修改方法。
        C:\WPSNT>DEBUG pyNT.com (先应将PY.COM换名为PYNT.COM)
        -u f51d
        0B96:F51D B80028 MOV AX,2800 ;SPDOS的版本号的获取
        0B96:F520 CD16 INT 16
        0B96:F522 3B06FAF6 CMP AX,[F6FA]
        0B96:F526 750C JNZ F534
        0B96:F528 81FBF7CE CMP BX,CEF7 ;BX='西'
        0B96:F52C 7506 JNZ F534
        0B96:F52E 81F9BDC9 CMP CX C9BD ;CX='山'
        0B96:F532 7409 JZ F53D ;版本正确转到CS:F53D
        0B96:F534 B409 MOV AH,09
        0B96:F536 BAFCF6 MOV DX,F6FC
        0B96:F539 CD21 INT 21
        0B96:F53B CD20 INT 20
        0B96:F53D(安装PY.COM程序)
        -A F51D
        0B96:F51D JMP F53D ;跳过版本号的检查
        -S 100 FFFF CD 16 ;查找INT 16的地址
        0B96:E8DA 0B96:ED42 ;查到的地址
        0B96:E927 0B96:ED46
        0B96:EC38 0B96:ED5D
        0B96:EC8C 0B96:EDEF
        0B96:EC90 0B96:EDF3
        0B96:ECCB 0B96:F693
        0B96:ECCF 0B96:F69F
        -E E8DB -E ED43 ;修改
        16.18 16.18
        -E E928 -E ED47
        16.18 16.18
        -E EC39 -E ED5E
        16.18 16.18
        -E EC8D -E EDF0
        16.18 16.18
        -E EC91 -E EDF4
        16.18 16.18
        -E ECCC -E F694
        16.18 16.18
        -E ECB0 -E F6A0
        16.18 16.18
        -W
        -Q
        因此,WPSNT.BAT批处理文件内容又可修改如下,该批处理可让拼音模块PYNT.COM和五笔WBX.COM模块同时驻留内存,而且留给WPS.EXE有401KB内存空间:
        @ECHO OFF
        C:
        CD\WPSNT
        WPSAS
        SPLIB
        SPDOS
        SPDOS6 ;SPDOS 6.0F仿真程序
        pyNT CIZU
        WBX WBXCZ ;WBXCZ为五笔词组扩充文件
        WPS %1 %2
        (曹国钧)