显示行数的修改 黄焕如 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