中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 十万火急!!高手请进!!!!!!!!
作者:
标题: 十万火急!!高手请进!!!!!!!! 上一主题 | 下一主题
7451316
初级用户





积分 64
发帖 14
注册 2006-2-25
状态 离线
『楼 主』:  十万火急!!高手请进!!!!!!!! 使用 LLM 解释/回答一下

在批处理中加载光驱,xmsdsk.exe,tw.exe,ntfspro.exe usbmass.exe出现错误,提示信息好象是内存不够,无法加载usbmass.exe.但是退出后在命令行中加载可以执行,用mem/a/c查看内存够用,我用了emm386,dos=himem,umb
而且在命令行中加载时只能先加ntfspro.exe 再加usbmass.exe,顺序不能倒,否则就无法运行ntfspro.exe ,还有我发现在批处理加载tw.exe时候占内存290k,在命令行加载tw.exe 时只占29k,10倍的差距!!!这些都是在一个批处理文件中出现的问题,请各位高手解决一下,拜托!!!看有什么办法可以使这个批处理成功运行?这些程序之间是否有冲突??


───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:删除主题:《19307 - willsort版主请进!!我已经按照你的要求将查看内存的结 ... 》
说明:原主题与现主题重复
处罚:因属论坛新人,不予积分处罚
提示:请访问 {7326}论坛新手必读,所有人的基本行为准则
───────────────── 版务记录 ─────────────────


Last edited by willsort on 2006-3-2 at 14:35 ]


2006-2-28 15:02
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下


───────────────── 版主提示 ─────────────────
为了方便论坛用户浏览和版主管理,请修改该主题的标题,以简要叙述主题的内容或意图
如果确认标题不需要修改,请继续回复该主题进行申辩,若申辩理由充分,将取消该通知
如果确认标题需要修改,请点击该主题首帖下方"编辑"按钮,在编辑页面中修改标题栏
如果此通知发出三日后仍未进行申诉或修改,将由版主进行修改,并对作者进行相应处罚
处罚为扣除8点积分,包括追回因发表主题奖励的6分和因标题违规而惩罚性扣除的2分
───────────────── 版主提示 ─────────────────


Re 7451316:

需要注意的是,DOS下某些设备驱动或者TSR程序的加载顺序,确实会很大程度上影响他们在内存空间的分布。如果你能够将各种情况下的 mem /c 的结果回复到帖子中,将会更加有利于大家对此问题的判断和分析,示例如下:

mem /c >> memmap.txt




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-2-28 16:52
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
7451316
初级用户





积分 64
发帖 14
注册 2006-2-25
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

在命令行下逐个加入光驱,xmsdsk.exe,tw.exe,ntfspro.exe usbmass.exe等程序能够正常使用,用mem/a/c 查看如下:
Modules using memory below 1 MB:

Name Total Conventional Upper Memory
-------- ---------------- ---------------- ----------------
SYSTEM 40,288 (39K) 9,680 (9K) 30,608 (30K)
HIMEM 1,168 (1K) 1,168 (1K) 0 (0K)
EMM386 4,320 (4K) 4,320 (4K) 0 (0K)
TW 38,928 (38K) 28,960 (28K) 9,968 (10K)
NTFSPRO 133,808 (131K) 133,808 (131K) 0 (0K)
CLOCK 4,160 (4K) 4,160 (4K) 0 (0K)
USB 247,504 (242K) 247,504 (242K) 0 (0K)
COMMAND 7,296 (7K) 0 (0K) 7,296 (7K)
XMSDSK 688 (1K) 0 (0K) 688 (1K)
OAKCDROM 36,064 (35K) 0 (0K) 36,064 (35K)
MSCDEX 32,384 (32K) 0 (0K) 32,384 (32K)
Free 221,696 (217K) 221,424 (216K) 272 (0K)

Memory Summary:

Type of Memory Total Used Free
---------------- ----------- ----------- -----------
Conventional 651,264 429,840 221,424
Upper 117,280 117,008 272
Reserved 0 0 0
Extended (XMS) 535,639,520 535,639,520 0
---------------- ----------- ----------- -----------
Total memory 536,408,064 536,186,368 221,696

Total under 1 MB 768,544 546,848 221,696

Largest executable program size 221,408 (216K)
Largest free upper memory block 192 (0K)
Available space in High Memory Area 5,440 (5K)
MS-DOS is resident in the high memory area.


把上述程序在批处理中加载时候,提示好象是内存不够,没有成功加载usb驱动,用
mem/a/c 查看如下:
Modules using memory below 1 MB:

Name Total Conventional Upper Memory
-------- ---------------- ---------------- ----------------
SYSTEM 40,288 (39K) 9,680 (9K) 30,608 (30K)
HIMEM 1,168 (1K) 1,168 (1K) 0 (0K)
EMM386 4,320 (4K) 4,320 (4K) 0 (0K)
NTFSPRO 134,416 (131K) 134,416 (131K) 0 (0K)
TW 306,272 (299K) 296,304 (289K) 9,968 (10K)
DOSKEY 5,744 (6K) 5,744 (6K) 0 (0K)
CLOCK 4,160 (4K) 4,160 (4K) 0 (0K)
COMMAND 7,296 (7K) 0 (0K) 7,296 (7K)
XMSDSK 688 (1K) 0 (0K) 688 (1K)
OAKCDROM 36,064 (35K) 0 (0K) 36,064 (35K)
MSCDEX 32,384 (32K) 0 (0K) 32,384 (32K)
Free 195,488 (191K) 195,216 (191K) 272 (0K)

Memory Summary:

Type of Memory Total Used Free
---------------- ----------- ----------- -----------
Conventional 651,264 456,048 195,216
Upper 117,280 117,008 272
Reserved 0 0 0
Extended (XMS) 535,639,520 535,639,520 0
---------------- ----------- ----------- -----------
Total memory 536,408,064 536,212,576 195,488

Total under 1 MB 768,544 573,056 195,488

Largest executable program size 194,912 (190K)
Largest free upper memory block 192 (0K)
Available space in High Memory Area 5,440 (5K)
MS-DOS is resident in the high memory area.


注意比较加载tw.exe 所占用的内存有很大差距!!!为什么?郁闷!!!!


2006-2-28 18:15
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

你的这个现象正常。某些TSR和driver(应该说是大多数)加载和驻留时所占用的内存是不一样的,通常加载比驻留时要大得的多。但为什么某些TSR在BATCH中会认为没有没有结束呢?其中的机理我也不太清楚,估计是它认为没有返回到命令行状态,所以还未终止并驻留。

另外,我看你的上位内存开的好象还不够大,你再在 EMM386.EXE 后面加上 highscan i=b000-b7ff 参数试试。当然,这不是在所有的机器上都有效,这和每种机器硬件占用的地址有关,特别是前一个参数,用的不好可能会死机,后一个普遍适用于现在的大多数机器。另外,再细调一下各个driver和TSR上调的顺序和地址

Last edited by DOSforever on 2006-3-2 at 17:16 ]




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2006-3-2 10:25
查看资料  发短消息  网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

Re 7451316:

尝试生成一个仅含有 tw 的批处理然后执行它,如果所占内存空间与命令行下加载相同,则应该是你的批处理有问题, 可以将它贴上来分析一下。

我在MSDOS7.10@VPC5.2下使用TW3.2袖珍版测试的结果:命令行加载与批处理加载内存占用相同。




※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-3-2 18:05
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

我忽然想起来了,最好把你的 mem/a/d 的结果拿出来看看




DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2006-3-2 18:46
查看资料  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: