显示行数的修改

Author: 黄焕如 Date: 1992-07-03

        一、DBASEⅢPLUS
        单用户的DBASEⅢPLUS Ver1.10版主要由三个文件组成:即DBA.EXE、DBA.OVL和DBASE.MSG。
        笔者对上述几个文件进行反汇编跟踪分析,发现该版本的屏幕显示行数的参数设置在DBA.OVL文件的最后部分。由于该文件太长(307712字节),在内存中分多段装置,利用DEBUG修改时要注意正确的段地址。如果内存配置不够大(如512K),最好在西文状态下进行修改,否则可能出现内存不够的情况而无法将DBA.OVL装入内存。
        具体方法如下:(以11行修改成16行为例)
        C>DEBUG DBA.OVL
        -R(查段地址,不同机型段地址不一定相同)
        AX=0000  BX=0004 CX=B200  DX=0000 SP=FFEE  DP=0000 SI=0000 DI=0000 DS=09DE ES=09DE SS=09DE CS=09DE IP=0100 NV UP DI PL NZ AN PO NC
        09DE:0100 0E PUSH CS
        -E 49DE:1B0E 0E (段地址+4000H,下同)
        -E 49DE:6B4A 0F
        -E 49DE:6B4C 0F
        -E 49DE:A992 0F
        -W
        -Q
        二、FOXBASE+
        FOXBASE+主要由两个文件组成:即MFOXPLUS.EXE和MFOXPLUS.OVL。
        其屏幕显示行数的参数设置在MFOXPLUS.EXE文件内。该文件也很长(247808字节),在内存在分多段装置,利用DEBUG修改时也要注意正确的段地址。
        具体方法如下:(以11行修改成16行为例)
        C>REN MFOXPLUS.EXE MFOXPLUS
        C>DEBUG MFOXPLUS
        R(查段地址,不同机型段地址不一定相同)
        AX=0000 BX=0004 CX=B200 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=365A ES=365A SS=365A CS=365A IP=0100 NV UP DI PL NZ NA PO NC
        365A:0100 0E PUSH CS
        -E 4D42 0D
        -E 4D4B 0D
        -E EB71 0E
        -E EBB4 0E
        -E 465A:41C9 OF(段地址+1000H)
        -E 665A:062F 0F (段地址+3000H,下同)
        -E 665A:063D 0E
        -E 665A:0689 0F
        -E 665A:06B0 0F
        -E 665A:06C7 0E
        -E 665A:0764 0E
        -E 665A:76A7 0E 12
        -E 665A:76B9 0E
        -W
        -Q
        C>REN MFOXPLUS MFOXPLUSE.EXE