编程技术、软件应用与系统模拟

(Programming, Applicaiton and Simulation)



本站目录

 

首页
ASP/Access/IIS
DELPHI/PASCAL
PASCAL高级编程
C语言编程实例
WORD
Excel
MATLAB
MINITAB讲座
Windows
DOS
SAS
生物系统模拟
土壤水分剖析器
其他



镜像站点

 

主站
北美镜象站
欧洲镜象站(1)
欧洲镜象站(2)

本站 Google

[搜索]  [站内导航]
座右铭:
只做有益人类的事
不做有害人类的事


Super-CCDOS 6.0F的缺陷及其解决办法

董占山

金山公司的汉字处理软件WPS以其优异的功能吸引着广大计算机用户,在推出短短几年的时间内,已风靡全国,成了汉字处理的必备软件。金山公司继WPS 2.1之后推出了WPS 3.0F,该版本以汉字显示速度快、与MS DOS 5.0和6.X的兼容性好、字型和字体多、兼容多数西文软件,得到微机用户的青睐。但是,本人在使用过程中,&127;发现它存在一些问题,本文就针对其常见的几种死机现象,提出了解决方法,与广大WPS用户共享。

一、启动SPDOS时死机

这种现象是由两种原因造成的,一种原因是由于在MS DOS的CONFIG.SYS&127;中使用了EMM386.SYS或EMM386.EXE,占用了67H中断,而SPDOS也要使用此中断号,发生了冲突,从而造成死机。解决办法是把CONFIG.SYS中的DEVICE=EMM386.SYS(或EMM386.EXE)删掉。
另一种原因是XMS扩充内存用完或不足284K,造成SPDOS&127;无法把显示字库装入扩充内存,出现死机。解决办法是移去使用扩充内存的程序,释放更多的扩充内存,使XMS的最大连续自由块大于284K。

二、使用WPS模拟显示功能时,内存溢出,死机

一种情况是由于常规内存不够造成的。例如:启动SPDOS之后,再装入WBX,&127;运行WPS,进行模拟显示时,内存溢出。解决办法,按以上方法进入WPS录入文本后,&127;不要进行模拟显示,存盘退出后,打CTRL-F10退出SPDOS,清理内存,再进入SPDOS,&127;不装WBX,直接进入WPS,调入文件,进行模拟显示或打印输出。
另一种情况是,硬盘的可用空间不够,如小于1MB造成的,可以通过删除不用的磁盘文件,增加硬盘的可用空间来解决。这种情况常常发生在使用DBLSPACE的压缩盘上。

三、打CTRL-F10退出SPDOS之后,扩充内存没有释放

进入SPDOS之后,它申请了284K的扩充内存存放显示字库,但当打CTRL-&127;F10&127;退出SPDOS时,它没有把原来申请的284K扩充内存释放掉,造成扩充内存消耗掉284K,如果多次进入SPDOS,并打CTRL-F10退出,最终将把扩充内存耗尽,这时再启动SPDOS&127;即死机。解决办法是把SPDOS占用的扩充内存全部释放掉。本人用汇编语言编写了一个释放SPDOS占用扩充内存的程序RXMS.ASM,用TASM汇编后,用TLINK连接生成RXMS.COM即可使用,也可以用DEBUG程序直接汇编生成RXMS.COM。在每次打CTRL-F10退出SPDOS之后,执行RXMS一次,即可把SPDOS占用的扩充内存释放掉。该程序符合XMS 3.0的规定,所以在MS DOS 5.0的HIMEM.SYS(XMS版本2.0,内部版本号2.77)下不能正常工作,必须在WINDOWS 3.1和MS DOS 6.X系统所带的HIMEM.SYS(XMS版本3.0,版本3.07和3.10)下才能正常工作。如你的DOS系统是5.0,只需要将高版本的HIMEM.SYS代替MS DOS 5.0的对应程序即可。

RXMS.ASM程序清单:
TITLE RXMS
LOCALS @@
DOSSEG
.MODEL SMALL
.CODE
ASSUME CS:@CODE

ORG 100H

BEGIN: JMP START

XMS_CONTROL DD 0 ; XMS驱动程序控制功能的地址

START: MOV AX,4300H ; 测试XMS是否存在
INT 2FH ; 多路中断调用
CMP AL,80h ; AL=80H,则XMS已安装
JNZ @@1 ; 没有安装XMS,转退出
MOV AX,4310H ; 取XMS控制程序的地址
INT 2FH ; 多路中断调用
MOV WORD PTR CS:XMS_CONTROL,BX ; 保存XMS控制程序的偏移地址
MOV WORD PTR CS:XMS_CONTROL+2,ES ; 保存XMS控制程序的段地址
MOV AH,09 ; 申请一扩充内存块
MOV DX,01 ; 扩充内存块=1K
CALL XMS_CONTROL ; 调用XMS控制程序
MOV AH,0AH ; 释放刚申请的扩充内存块
CALL XMS_CONTROL ; 调用XMS控制程序
MOV AH,0DH ; 解锁扩充内存块
SUB DX,10 ; 取下一个扩充内存块句柄
CALL XMS_CONTROL ; 调用XMS控制程序
MOV AH,0AH ; 释放SPDOS申请的扩充内存块
CALL XMS_CONTROL ; 调用XMS控制程序
MOV AH,0DH ; 解锁扩充内存块
SUB DX,10 ; 取下一个扩充内存块句柄
CALL XMS_CONTROL ; 调用XMS控制程序
MOV AH,0AH ; 释放SPDOS申请的扩充内存块
CALL XMS_CONTROL ; 调用XMS控制程序
@@1: MOV AX,4C00H ; 返回操作系统
INT 21H

END BEGIN



© 1998-, 董占山, 版权所有。
转载文章请注明出处(www.sunfinedata.com/articles)。