中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-14 05:34
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » [技巧]如何挤出更多的基本内存玩游戏。 查看 1,187 回复 2
楼 主 [技巧]如何挤出更多的基本内存玩游戏。 发表于 2005-08-24 20:59 ·  IANA 局域网IP(Private-Use)
钻石会员
★★★★★
积分 10,056
发帖 3,041
注册 2002-11-11 00:00
23年会员
UID 223
性别 男
状态 离线
DOS只有640K的基本内存,一般来说,任何TSR程序都要用到这部分内存。通常580K基本内存就可以满足大部分DOS程序的需要,然而有些时候你也许会需要610K以上的基本内存。怎么得到如此多的基本内存呢:
1)不要加载过多的TSR程序。
这也许不太实用---因为某些TSR程序对你来说可能是必不可少的,比如光驱驱动,网络程序,等等。
2)寻找占用内存更小的TSR程序
例如,使用一个更小巧的鼠标驱动cute mouse (http://cutemouse.sourceforge.net),只占3K的内存。还有一个来自于FreeDOS的光驱驱动SHSUCDX(http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/shsucdx),只需6K内存。
3)Load high!
在CONFIG.SYS中加载HIMEM.SYS和EMM386.EXE以后,你就可以把TSR程序装入上位内存(upper memory)。
首先,在config.sys里加入如下行:
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DOS=HIGH,UMB
随后的“DEVICE=”就都可以用“DEVICEHIGH=”代替了,在你的autoexec.bat文件里加载tsr时也可以使用LH命令了。
如果你想得到更多的基本内存,就需要手工修改emm386的参数了。
比如,在config.sys加入如下行:
DEVICE=C:\DOS\EMM386.EXE RAM I=B100-B7FF I=C600-C7FF I=CC00-CFFF I=E600-EFFF FRAME=D000

这一行会给你4块上位内存,你可以用mem /f命令查看---它们分别为23K,8K,16K和40K。这里还有一个问题---tsr程序只能装入连续的内存块,lh默认把tsr程序装入第一个它能找到的内存块,这意味着大内存块可能会被小tsr们占用,导致大tsr不能被装入其中。你可以用带/L:x参数的devicehigh和lh来解决这个问题,用其中的x参数指定将tsr装入哪个内存块。

[ Last edited by Michael on 2005-8-24 at 21:03 ]
简单就是美
2 发表于 2005-08-25 11:06 ·  中国 福建 福州 电信
元老会员
★★★
农民
积分 2,903
发帖 991
注册 2003-07-23 00:00
23年会员
UID 7391
性别 男
来自 福建省
状态 离线
实然想到一个问题,记的以前DOS中经常要加载一个文件:  DOS4GW.exe
不知道是起什么作用的。
艰难奋长戟,万古用一夫

中国DOS联盟 http://www.cn-dos.net 欢迎大家来共同学习
我的MSN&E-Mail cn_archer@hotmail.com QQ 56049418
3 发表于 2005-08-25 11:26 ·  中国 山东 济南 移动
钻石会员
★★★★★
积分 10,056
发帖 3,041
注册 2002-11-11 00:00
23年会员
UID 223
性别 男
状态 离线
DOS4GW是 DOS的32位保护模式扩展.
简单就是美
论坛跳转: