中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 17:25
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 请问DOS下怎么才能让系统自动运行用户自己的应用程序?
可打印版本  1,645 / 7
第1楼 Evelent 发表于 2005-08-09 21:52
初级用户 发帖 8 积分 38
请问DOS下怎么才能让系统自动运行用户自己的应用程序?
我想在DOS下移植一个操作系统(UC/OS),一但CPU上电起动后,DOS起动完后,让移植好的操作系统自动运行起来,不用在DOS命令提示符下用操作命令调出应用程序。但是我现在不知道怎么才能让DOS启动后自动运行用户应用程序?是不是在AUTOEXEC.BAT中可以更改加入自己的应用程序就可以?请大家执教!

[ Last edited by Evelent on 2005-8-10 at 09:35 ]
第2楼 Michael 发表于 2005-08-09 21:59
钻石会员 发帖 3,041 积分 10,056
是的。
第3楼 Evelent 发表于 2005-08-09 22:12
初级用户 发帖 8 积分 38
谢谢!
非常感谢,那我就往这个方向去看看,以后有问题还请多指教!有类似的例子?
第4楼 Michael 发表于 2005-08-09 22:16
钻石会员 发帖 3,041 积分 10,056
其实我对你说的uc/os一无所知。我只是回答你的最后一句话,不要被我误导了,呵呵。
第5楼 Evelent 发表于 2005-08-10 09:33
初级用户 发帖 8 积分 38
没关系:)
我用的那个UC/OS是一种源代码开放的操作系统。我想移植过去应该没什么问题,然后在C编译通过生成一个可执行文件,最后DOS启动就能执行生成的可执行文件就可以。现在看了些关于修改autoexex.bat方面的知识,但还不是很明白。有相关把自己的应用程序加到autoexec.bat中的例子吗?
第6楼 taowentao 发表于 2005-08-10 12:10
高级用户 发帖 111 积分 739 来自 辽宁沈阳
试试看吧
在freedos\utils下,有个文件exeflat.c,编译成可执行文件exeflat.exe;
假设你编译通过生成的自己的应用程序可执行文件名为UC_OS.exe;
如下操作:
exeflat UC_OS.exe kernel.sys 96;
然后将kernel.sys拷贝到freedos根目录下(覆盖原来的文件);重新启动freedos,就加载你的程序,而不会有其他程序加载到内存,UC_OS.exe基本是裸机执行(除了BIOS和BOOT LOADER);
注意:如果UC_OS.exe 是使用BC3.1编译的,一般没问题,BC5.02则不一定好用


[ Last edited by taowentao on 2005-8-10 at 12:20 ]
第7楼 Michael 发表于 2005-08-10 19:43
钻石会员 发帖 3,041 积分 10,056
原来如此,照此说来,autoexec.bat可做不到。系统运行autoexec.bat时,已经加载了若干程序了。
第8楼 taowentao 发表于 2005-08-11 08:52
高级用户 发帖 111 积分 739 来自 辽宁沈阳
去掉UC_OS.exe 启动代码中的DOS调用
如果UC_OS.exe 的启动地址是0000:0000,并且去掉启动代码中的DOS调用的话,freedos的BOOT LOADER肯定能成功加载并执行UC_OS.exe 。
BC3.1编译结果一般都有DOS调用,不过你可以修改它的启动代码:BORLANDC\LIB\STARTUP\C0.ASM,并重新编译它,以达到此目的。
执行exeflat后,UC_OS.exe 的启动地址是0060:0000。freedos的BOOT LOADER将跳至此处执行。
实际上此时的UC_OS.exe 已经是个执行系统(不能叫操作系统)。


[ Last edited by taowentao on 2005-8-11 at 09:07 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023