在保护模式下使用虚拟内存

Author: 蒋振立 Date: 1997-01-01

  DOS4GW是保护模式下的内存管理程序,必须在386以上的计算机上执行。现在不少游戏和工具软件为了突破DOS基本内存640KB的限制而工作在保护模式下,如游戏《金庸群侠传》、图象浏览软件SEA等。执行这种程序,在启动时必须先载入DOS4GW.EXE,这样就可以把计算机所有的空闲内存交由DOS4GW管理。所以执行保护模式下的软件,可以在启动计算机时按下F5键跳过系统设置,而保留下最大的空闲内存空间供程序使用。
  但是即使这样,在内存只有4MB的计算机上,《金庸群侠传》仍然会因为内存不足而运行不了,SEA在制作图象索引文件时还会出现内存不足的警告。这就需要在硬盘上产生一个交换文件来模拟内存供程序使用,DOS4GW实际上正提供了这一功能,只不过这一功能少为人知罢了。
  首先,在程序的同一目录下,用文本编辑软件(如EDIT)编写一个文本文件,文件名为SWAP.VMC,内容如下:
  virtualsize=8192
  deleteswap
  swapname=temp.swp
  第一行表示程序可用内存(包括实际可用内存和模拟内存)为8192KB,即8MB。其值可以更改,缺省值为16MB。第二行说明退出程序时,删除交换文件。第三行指定交换文件的文件名为TEMP.SWP。
  采用以上设置,在内存为4MB的机器上,运行保护模式程序时,就会产生一个大小为4MB,名为TEMP.SWP的交换文件来模拟内存,使程序可用内存空间达到8MB,程序退出后,删除交换文件。
  然后,还得设置一个环境变量供DOS4GW识别。有两种方法建立,一是在DOS命令行上直接键入:set dos4gvm=@swap.vmc,二是可建立一个批处理文件,第一行为以上内容,第二行为保护模式程序的执行文件名。
  如此便可以让保护模式软件使用虚拟内存了,为低内存配置用户运行需要大内存的保护模式软件提供了一条权宜之计。
  以上方法在486DX2/80、4M内存机器上通过。