中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-06 09:51
47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行
DOS启动盘 & LOGO技术 (启动盘室) » [讨论]关于精简COMMAND.COM的问题
可打印版本  2,975 / 19
第1楼 Wengier 发表于 2003-06-03 00:00
系统支持 发帖 10,521 积分 27,736
[讨论]关于精简COMMAND.COM的问题
MS-DOS 7.x中的必备文件COMMAND.COM等的体积比较大,占用了不少空间,应该好好减减肥了。不过,UPX、aPack等软件都不能对它进行压缩的。而COMPREXE压缩的结果是,能运行但不能做为SHELL,否则会出现“Invalid COMMAND.COM”的错误。

我观察了一下,发现COMMAND.COM目前最多只能减2个字节,连3个字节都不可以的。给他加字节或修改原来的字节也都可以的,但就是不能减去超过2个的字节。显然,COMMAND.COM在做SHELL时会做体积校验的,若少于94,290字节就不行。谁有办法解决一下呢?
第2楼 minisheep 发表于 2003-06-03 00:00
高级用户 发帖 233 积分 830
用破解的眼光来看!他检验自己的大小是吧!你不让他检验!他用条件语句吧!你用无条件语句!在就是把大小改成你修改后的大小!别用崇拜的眼光看我!我只是知道原理!方法不会!
第3楼 如是大师 发表于 2003-06-03 00:00
元老会员 发帖 3,351 积分 9,654 来自 湖北
哈哈。。。。。我也会说。谁来崇拜崇拜我呀。。。。
第4楼 Wengier 发表于 2003-06-04 00:00
系统支持 发帖 10,521 积分 27,736
Roy、lydong等高手也来说说一下方法吧。
第5楼 9zhmke 发表于 2003-06-05 00:00
中级用户 发帖 99 积分 355
以前有个游戏要打个大于10M的电影文件,结果一查执行文件里,10M的地方只有两个,第一次没对,第二次.....,从此那个游戏就可以在硬盘玩了。

............试试吧。
第6楼 Wengier 发表于 2003-06-13 00:00
系统支持 发帖 10,521 积分 27,736
刚才我对COMMAND.COM进行了一番研究,发现对COMMAND.COM进行大精简确实不太容易呢,除非做一些较大的修改。因为,COMMAND.COM会直接存取文件内部的地址,而不像普通程序那样的。比如,通过对COMMAND.COM的5F10H处的修改,就至少可以减少COMMAND.COM好几十字节的内容,但再想精简的话就得修改COMMAND.COM中更多的内容了。希望大家共同努力吧。
第7楼 dos时代菜鸟 发表于 2003-06-13 00:00
初级用户 发帖 216 积分 672
command程序只不过是一个外挂的命令解析程序而已,我们为什么不可以用其他的代替?比如ndos
第8楼 Wengier 发表于 2003-06-13 00:00
系统支持 发帖 10,521 积分 27,736
以下是引用dos时代菜鸟在2003-6-13 9:26:29的发言:
command程序只不过是一个外挂的命令解析程序而已,我们为什么不可以用其他的代替?比如ndos


因为NDOS等不支持长文件名呀。而MS-DOS 7.10中的COMMAND在DOSLFN下是完全支持长文件名的,而且兼容性好。
第9楼 Roy 发表于 2003-06-13 00:00
管理员 发帖 1,633 积分 4,869
用ROM-DOS的COMMAND.COM吧
第10楼 Wengier 发表于 2003-06-13 00:00
系统支持 发帖 10,521 积分 27,736
以下是引用Roy在2003-6-13 15:35:51的发言:
用ROM-DOS的COMMAND.COM吧


ROM-DOS的COMMAND.COM和MS-DOS 7.10的配合有些问题,而且不支持LOCK等命令呢。
第11楼 沈洁 发表于 2003-06-13 00:00
金牌会员 发帖 1,812 积分 4,590 来自 上海市
Wengier版主的新logo是挺漂亮的!
可惜为什么一个男孩子会选一个女孩头像作logo,
相比之下Roy和如是大师的头像就更有点男人味!
第12楼 沈洁 发表于 2003-06-13 00:00
金牌会员 发帖 1,812 积分 4,590 来自 上海市
还有就是希望Wengier版主能把command压缩成功!
第13楼 Lydong 发表于 2003-06-14 00:00
元老会员 发帖 407 积分 1,468 来自 广州
以下是引用Wengier在2003-6-4 19:36:34的发言:
Roy、lydong等高手也来说说一下方法吧。

给Wengier称为"高手"真的令人愧不敢当(有点脸红)啊,在论坛中我主要还是在向大家学习呢,虽然我很有兴趣跟大家一起研究DOS方面的问题,但自己知识肤浅,真的不敢居于"高手"之列(有点惭愧)……

上面提到的问题中,我想COMMAND.COM能不能也像精简IO.SYS时一样,把程序分成几段,去掉一些不重要的内容,来达到精简呢。其次,校验COMMAND.COM大小的程序我想应该是在IO.SYS之中,因为若换成其它的SHELL时,都会有同样的出错提示,问题应该不会出在COMMAND.COM 身上。而是IO.SYS 对COMMAND.COM 的大小进行检查而出现的。不知说的对不对,请Wengier指教!
第14楼 Wengier 发表于 2003-06-14 00:00
系统支持 发帖 10,521 积分 27,736
以下是引用lydong在2003-6-14 4:19:17的发言:
   上面提到的问题中,我想COMMAND.COM能不能也像精简IO.SYS时一样,把程序分成几段,去掉一些不重要的内容,来达到精简呢。其次,校验COMMAND.COM大小的程序我想应该是在IO.SYS之中,因为若换成其它的SHELL时,都会有同样的出错提示,问题应该不会出在COMMAND.COM 身上。而是IO.SYS 对COMMAND.COM 的大小进行检查而出现的。不知说的对不对,请Wengier指教!


唉,可惜不是这样的。据我观察,IO.SYS和COMMAND.COM的结构完全是两回事,所以上回精减IO.SYS的经验无法应用于COMMAND.COM中。对IO.SYS进行的是精减,而对COMMAND.COM只能是进行压缩了。但校验大小并不是在IO.SYS中进行的,而是在COMMAND.COM内部进行的,这点已被我通过研究和试验证实了,但目前却还没有很好的解决办法。
第15楼 沈洁 发表于 2003-06-14 00:00
金牌会员 发帖 1,812 积分 4,590 来自 上海市
这就麻烦了的先压缩一下知道压缩后的体积,
然后在在没有压缩过的command中修改标注文件体积的地址,
最后再用同样的方法,把此程序再压缩一遍!
真麻烦啊!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023