显示行数的修改
单用户的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