《自然码》汉字输入系统使用经验二则

Author: 天津 朱长喜 刘克文 Date: 1992-11-27

        《自然码》智能4.0版超想4.1普及版到1992年10月就已经到期,以后再引导《自然码》将不成功。
        它的作用就是通过INT3中断(实际为INT21中断)的2A功能调用,获取系统时间,看是否大于1992年10月。所以我们要想使ZR.EXE能正确引导自然码,只要修改这部分程序即可。但考虑到,其一、《自然码》是加密软件,难于对上述语句定位、修改。其二、未经授权修改他人软件也是违反《软件保护条例》的。所以我们采用了如下方法:
        ①对于PC/XT及兼容机,由于机器没有实时钟,我们只要先引导《自然码》,后用DATE语句设置日期即可。
        ②对于长城0520CH或0520DH等有时钟卡的机器,需把AUTOEXEC.BAT文件中的REALTIME/C语句,放到《自然码》引导之后。
        ③对于286、386等机器,笔者用DEBUG.COM建立了两个小文件DATE1.COM(用于将前系统日期减去8年)和DATE2.COM(用于将当前系统日期加上8年),(DATE1.COM、DATE2.COM的建立方法见附一)加在原来的ZRM·BAT中,即:
        TYPE ZRM·BAT
        ECHO OFF
        DATE1
        ZR-V
        ZR 4
        ZC L
        VN L15
        DATE2
        ECHO ON
        此方法也适合PC/XT及0520CH等机型。运行修改后的ZRM.BAT就能和未到期一样顺利引导,且系统日期不变。
        (二)如何在金山Super DOS5.0使用《自然码》智能4.0版
        在Super DOS5.0上使用超想4.1普及版是没有问题的,只要使用ZR3进入即可,但智能4.0版却不行。如果用ZR1使用系统自定义功能,提示行却显示在25行上,影响WPS软件的使用,用其它参数,提示行将不显示。为此,笔者用DEBUG·COM建立一个驻留内存的小程序INTXS.COM,(建立方法见附二)将《自然码》的提示行调用换成Super DOS5.0提示行调用。只要在引导完Super DOS5.0后,运行一下INTXS.COM,就可用《自然码》的CCBIOS全兼容方式使自然码的提示行显示在Super DOS5.0的提示行(第26行)中。
        附一:
        C>DEBUG
        -A100
        1A8A:0100 MOV AX,2A00 0000
        1A8A:0103 INT 21
        1A8A:0105 SUB CX,08
        1A8A:0108 MOV AX,2B00
        1A8A:010B INT 21
        1A8A:010D INT 20
        1A8A:010F
        -NDATE1.COM
        -RCX
        CD 0000
        :F   -W
        -Q
        C>DEBUG
        -A100
        1A8A:0100 MOV AX,2A00
        1A8A:0103 INT 21
        1A8A:0105 ADD CX,08
        1A8A:0108 MOV AX,2B00
        1A8A:INT 21
        1A8A:INT 20
        1A8A:010F
        -NDATE2.COM
        -RCX
        CX 0000
        :F
        -W
        -Q
        附二:
        C>DEBUG
        -A100
        1A8A:0100 JMP 110
        1A8A:0102 CMP AH,10
        1A8A:0105 JNZ 109
        1A8A:0107 MOV AH,20
        1A8A:0109 JMP 0000:
        1A8A:010E
        -A110
        1A8A:0110 MOV AX,3510
        1A8A:0113 INT 21
        1A8A:0115 CMP BX,102
        1A8A:0119 JZ 130
        1A8A:011B MOV [10A],BX
        1A8A:011F MOV [10C],ES
        1A8A:0123 MOV DX,102
        1A8A:0126 MOV AX,2510
        1A8A:0128 INT 21
        1A8A:012B MOV DX,010E
        1A8A:012E INT 27
        1A8A:0130 INT 20
        1A8A:0132
        -RCX
        CX 0000
        :32
        -NINTXS.COM
        -W
        -Q