中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 请问DOS下怎么才能让系统自动运行用户自己的应用程序?
作者:
标题: 请问DOS下怎么才能让系统自动运行用户自己的应用程序? 上一主题 | 下一主题
Evelent
初级用户





积分 38
发帖 8
注册 2005-8-9
状态 离线
『楼 主』:  请问DOS下怎么才能让系统自动运行用户自己的应用程序?

我想在DOS下移植一个操作系统(UC/OS),一但CPU上电起动后,DOS起动完后,让移植好的操作系统自动运行起来,不用在DOS命令提示符下用操作命令调出应用程序。但是我现在不知道怎么才能让DOS启动后自动运行用户应用程序?是不是在AUTOEXEC.BAT中可以更改加入自己的应用程序就可以?请大家执教!

[ Last edited by Evelent on 2005-8-10 at 09:35 ]

2005-8-9 21:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Michael
钻石会员





积分 10046
发帖 3039
注册 2002-11-11
状态 离线
『第 2 楼』:  

是的。



简单就是美
2005-8-9 21:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Evelent
初级用户





积分 38
发帖 8
注册 2005-8-9
状态 离线
『第 3 楼』:  谢谢!

非常感谢,那我就往这个方向去看看,以后有问题还请多指教!有类似的例子?

2005-8-9 22:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Michael
钻石会员





积分 10046
发帖 3039
注册 2002-11-11
状态 离线
『第 4 楼』:  

其实我对你说的uc/os一无所知。我只是回答你的最后一句话,不要被我误导了,呵呵。



简单就是美
2005-8-9 22:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Evelent
初级用户





积分 38
发帖 8
注册 2005-8-9
状态 离线
『第 5 楼』:  没关系:)

我用的那个UC/OS是一种源代码开放的操作系统。我想移植过去应该没什么问题,然后在C编译通过生成一个可执行文件,最后DOS启动就能执行生成的可执行文件就可以。现在看了些关于修改autoexex.bat方面的知识,但还不是很明白。有相关把自己的应用程序加到autoexec.bat中的例子吗?

2005-8-10 09:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
taowentao
高级用户





积分 739
发帖 111
注册 2004-11-30
来自 辽宁沈阳
状态 离线
『第 6 楼』:  试试看吧

在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 ]

2005-8-10 12:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Michael
钻石会员





积分 10046
发帖 3039
注册 2002-11-11
状态 离线
『第 7 楼』:  

原来如此,照此说来,autoexec.bat可做不到。系统运行autoexec.bat时,已经加载了若干程序了。



简单就是美
2005-8-10 19:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
taowentao
高级用户





积分 739
发帖 111
注册 2004-11-30
来自 辽宁沈阳
状态 离线
『第 8 楼』:  去掉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 ]

2005-8-11 08:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: