中国DOS联盟论坛

中国DOS联盟
-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:bbs.cn-dos.net

DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

» 游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助

 

<<   [1] [2] [3] [4]  >>   >
作者:
标题: 尝试把grldr.mbr移植到RomOS写入Bios 上一主题 | 下一主题
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『楼 主』:  尝试把grldr.mbr移植到RomOS写入Bios

grub4dos项目开发者之一Bean大师已经制作成功了,见31、32楼




grldr.mbr真能从bios中引导硬盘上的grldr吗?我也不知道、想知道就尝试了...
今天又一次尝试把grldr.mbr移植到RomOS写入Bios,虽然失败了,但也总算也看到了grldr的启动信息,比起上次显示disk error也算没白折腾,不点和bean看到以下信息希望得到你们的帮助,这个方法是否可行?

  Quote:
Welcome to ROMOS ver. 1.03 by Martin Rehak (C) 2001-2007; rayer@seznam.cz
INT13h vector has been hooked F000:9734 -> D800:01CC
ROMOS has installed virtual ROM DISK drive.

F=0246 CS=D800 SS=4000 ES=0000 DS=E000 DI=8000 SI=007B BP=1000 SP=FFF5
Bootsector loaded at  0000:7C00
Bootimg!

Missing MBR-helper._

[ Last edited by fastslz on 2008-1-10 at 05:56 PM ]



第一高手    第二高手

2007-10-26 01:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 2 楼』:  

GRLDR.MBR 非常简单,你不要把它弄得很复杂。本来它是个自行车,骑上就跑,你却给它修高速公路和一个火箭发射架。(玩笑)

你不需要把 grldr.mbr 仿真成一个磁盘,如果仿真了,你反而要失败。

你只需要把 grldr.mbr 全部 8192 个字节放在 0000:7C00 开始的地址处,然后把控制跳转到 0000:7C00 就可以了。

INT13h vector has been hooked F000:9734 -> D800:01CC
ROMOS has installed virtual ROM DISK drive.

以上这两条消息都是做磁盘仿真的,多此一举。这就是失败的原因。


Missing MBR-helper

这条消息说明只有 512 字节放在了 0000:7C00,而其余的 helper 部分却没有。



因为我们亲手创建,这个世界更加美丽。
2007-10-26 08:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 3 楼』:  

把控制跳转到 0000:7C00?主要对ROMOS不了解,都是E文也没地方交流,汇编又不会,所以ROMOS开始976字节部分不敢改。



第一高手    第二高手

2007-10-26 14:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 4 楼』:  

殊我无知,ROM OS 是个什么东东?我确实不了解。你最好把你了解的,给我简单介绍一下。

它本身有多大?它在内存中的何处(内存地址)?

它的代码总共只有 976 字节?如果是的,你把它上载,我来给你改。

你得说清楚,grldr.mbr 在什么地方,比如说,是否立即跟在 976 字节之后?如果是的,你把这一整块都上载。

===============

噢,对了,既然是 ROM “OS”,它就试图找到一个磁盘映像(进行磁盘仿真)。但是 grldr.mbr 根本就不是一个磁盘映像,所以,用 ROM OS 这个用法本身就是不太正确的。

因此,我猜想,只要把 ROM OS 中的“磁盘仿真”部分去掉,就完事了。



因为我们亲手创建,这个世界更加美丽。
2007-10-26 14:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 5 楼』:  

romos 官网http://rayer.ic.cz/romos/romose.htm
在BIOS中添加isa模块实现在bios自检通过后按Scroll Lock直接来引导FreeDOS

论坛空间满了
你到官网下载romos.bin头部976字节就是romos主程序后面部分就是FreeDOS的img镜像文件,romos.bin可以用WinImage打开



第一高手    第二高手

2007-10-26 15:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

我是提取头部976字节保存文件os.bin
copy /b os.bin+grldr.mbr romos.bin
再把romos.bin填充0到romos.bin原始大小,添加isa模块到bios文件中,再刷新bios目前我有3个备用bios芯片,不怕刷坏,所以有条件测试
不能上传附件debug写吧
CODE:  [Copy to clipboard]
@echo e 100 55 AA 80 E9 D7 02 43 48 4B 53 55 4D 3D 5D 50 72 >>tmp11
@echo e 110 65 73 73 20 5B 53 63 72 6F 6C 6C 4C 6F 63 6B 5D >>tmp11
@echo e 120 20 74 6F 20 62 6F 6F 74 20 52 4F 4D 4F 53 20 21 >>tmp11
@echo e 130 00 57 65 6C 63 6F 6D 65 20 74 6F 20 52 4F 4D 4F >>tmp11
@echo e 140 53 20 76 65 72 2E 20 31 2E 30 33 20 62 79 20 4D >>tmp11
@echo e 150 61 72 74 69 6E 20 52 65 68 61 6B 20 28 43 29 20 >>tmp11
@echo e 160 32 30 30 31 2D 32 30 30 37 3B 20 72 61 79 65 72 >>tmp11
@echo e 170 40 73 65 7A 6E 61 6D 2E 63 7A 00 52 4F 4D 4F 53 >>tmp11
@echo e 180 20 68 61 73 20 69 6E 73 74 61 6C 6C 65 64 20 76 >>tmp11
@echo e 190 69 72 74 75 61 6C 20 52 4F 4D 20 44 49 53 4B 20 >>tmp11
@echo e 1A0 64 72 69 76 65 2E 00 42 6F 6F 74 73 65 63 74 6F >>tmp11
@echo e 1B0 72 20 6C 6F 61 64 65 64 20 61 74 20 00 42 6F 6F >>tmp11
@echo e 1C0 74 69 6E 67 21 00 FB 50 06 9C 6A 00 07 26 02 26 >>tmp11
@echo e 1D0 6C 04 26 3A 26 6C 04 75 F9 9D 07 58 C3 50 53 B4 >>tmp11
@echo e 1E0 02 B7 00 CD 10 5B 58 C3 50 53 51 B4 03 B7 00 CD >>tmp11
@echo e 1F0 10 59 5B 58 C3 60 9C 53 E8 ED FF B4 09 31 C9 86 >>tmp11
@echo e 200 CF 80 E1 7F 2E 8A 04 3C 00 74 0A CD 10 46 FE C2 >>tmp11
@echo e 210 E8 CA FF EB EF 5B 80 FF 80 78 0F 9D 61 60 9C B8 >>tmp11
@echo e 220 0D 0E 30 DB CD 10 B0 0A CD 10 9D 61 C3 50 53 E8 >>tmp11
@echo e 230 11 00 87 D1 30 DB B8 3A 0E CD 10 E8 05 00 87 D1 >>tmp11
@echo e 240 5B 58 C3 86 F2 E8 06 00 86 F2 E8 01 00 C3 50 52 >>tmp11
@echo e 250 9C 88 D6 80 E2 0F 80 E6 F0 C0 CE 04 E8 09 00 88 >>tmp11
@echo e 260 D6 E8 04 00 9D 5A 58 C3 80 FE 0A 72 03 80 C6 07 >>tmp11
@echo e 270 80 C6 30 B4 0E 88 F0 CD 10 C3 60 1E 06 16 0E 9C >>tmp11
@echo e 280 B9 09 00 BE B1 01 89 E5 BB 07 01 E8 67 FF B8 3D >>tmp11
@echo e 290 0E 30 DB CD 10 36 8B 56 00 E8 A7 FF B0 20 CD 10 >>tmp11
@echo e 2A0 45 45 46 46 46 E2 E1 E8 73 FF 9D 1F 17 07 1F 61 >>tmp11
@echo e 2B0 C3 46 00 00 43 53 00 53 53 00 45 53 00 44 53 00 >>tmp11
@echo e 2C0 44 49 00 53 49 00 42 50 00 53 50 00 9C 80 FA 01 >>tmp11
@echo e 2D0 74 06 9D EA 13 02 00 00 60 1E 80 FC 02 74 15 80 >>tmp11
@echo e 2E0 FC 03 74 42 80 FC 08 74 52 80 FC 15 74 5F 80 C4 >>tmp11
@echo e 2F0 41 E9 71 00 50 89 DF 31 F6 80 E1 3F FE C9 B8 12 >>tmp11
@echo e 300 00 F6 E6 01 C6 B8 01 00 B3 12 F6 E3 F6 E5 01 C6 >>tmp11
@echo e 310 30 ED 01 CE C1 E6 09 81 C6 D0 03 0E 1F 59 C1 E1 >>tmp11
@echo e 320 09 F3 A4 E9 3D 00 89 E5 36 8B 46 18 0D 01 00 36 >>tmp11
@echo e 330 89 46 18 36 C6 46 11 03 E9 28 00 89 E5 B5 07 B1 >>tmp11
@echo e 340 12 36 C6 46 0D 01 36 89 4E 0E E9 16 00 89 E5 36 >>tmp11
@echo e 350 C6 46 11 01 36 C7 46 0E 00 00 36 C7 46 0C 7E 00 >>tmp11
@echo e 360 E9 00 00 B4 2A 68 00 B8 1F 3E 88 26 9E 00 1F 61 >>tmp11
@echo e 370 9D CF 60 06 6A 00 07 BE 4C 00 BF 14 02 26 8B 0C >>tmp11
@echo e 380 26 89 0D 26 8B 54 02 26 89 55 02 26 C6 45 FF EA >>tmp11
@echo e 390 26 C7 04 CC 01 26 8C 4C 02 BE B9 02 BB 07 01 E8 >>tmp11
@echo e 3A0 53 FE E8 88 FE BE D8 02 E8 4A FE 8C CA B9 CC 01 >>tmp11
@echo e 3B0 E8 7A FE E8 67 FE 07 61 C3 49 4E 54 31 33 68 20 >>tmp11
@echo e 3C0 76 65 63 74 6F 72 20 68 61 73 20 62 65 65 6E 20 >>tmp11
@echo e 3D0 68 6F 6F 6B 65 64 20 00 20 2D 3E 20 00 9C 60 8C >>tmp11
@echo e 3E0 D0 68 00 40 17 BB FF FF 87 DC 50 53 06 1E 6A 00 >>tmp11
@echo e 3F0 07 26 81 3E 64 00 DD 02 75 0C 8C C8 26 39 06 66 >>tmp11
@echo e 400 00 75 03 E9 48 00 E8 14 FE BE 0E 00 BB 0F 81 E8 >>tmp11
@echo e 410 E3 FD B4 1E E8 AF FD 6A 00 07 26 A0 17 04 88 C4 >>tmp11
@echo e 420 24 10 3C 10 74 08 2E 8C 06 00 00 E9 17 00 B0 10 >>tmp11
@echo e 430 F6 D0 20 C4 26 88 26 17 04 26 C7 06 64 00 DD 02 >>tmp11
@echo e 440 26 8C 0E 66 00 1F 07 5B 17 89 DC 61 9D CB E8 CC >>tmp11
@echo e 450 FD BE 31 00 BB 0E 81 E8 9B FD B4 14 E8 67 FD E8 >>tmp11
@echo e 460 10 FF E8 61 FD BE 7B 00 BB 07 81 E8 87 FD E8 55 >>tmp11
@echo e 470 FD E8 A9 FD E8 03 FE E8 4C FD BE A7 00 BB 07 01 >>tmp11
@echo e 480 E8 72 FD BA 00 00 B9 00 7C E8 A1 FD E8 8E FD BE >>tmp11
@echo e 490 BD 00 BB 0F 81 E8 5D FD B4 0A E8 29 FD 6A 00 07 >>tmp11
@echo e 4A0 BE 10 04 26 8A 04 B4 01 80 FC 01 75 05 0C 40 26 >>tmp11
@echo e 4B0 88 04 68 00 00 07 BF 00 7C 0E 1F BE D0 03 B9 00 >>tmp11
@echo e 4C0 02 F3 A4 26 C6 06 24 7C 01 B2 01 EA 00 7C 00 00 >>tmp11
@echo rcx>>tmp11
@echo 3D0>>tmp11
@echo n tmp1>>tmp11
@echo w>>tmp11
@echo q>>tmp11
@debug<tmp11>nul
@Copy /b /y tmp1 os.bin
@del tmp*




第一高手    第二高手

2007-10-26 15:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 7 楼』:  

romos也值得象你这样的高手一看的
如果可行你修改在976字节之后就装入grldr.mbr,我也试过只写976字节到bios文件里,自检后按scroll lock是又效的,也不知道romos原代码是否规定romos.bin必须是65,536 字节,没规定的话os.bin+grldr就8,144字节,减小isa模块大小。

  Quote:
Originally posted by 不点 at 2007-10-26 14:42:
噢,对了,既然是 ROM “OS”,它就试图找到一个磁盘映像(进行磁盘仿真)。但是 grldr.mbr 根本就不是一个磁盘映像,所以,用 ROM OS 这个用法本身就是不太正确的。

因此,我猜想,只要把 ROM OS 中的“磁盘仿真”部分去掉,就完事了。...

是这样的976字节之后就是FreeDOS磁盘镜像,而romos.bin尾部也是48字节也是0填充数



第一高手    第二高手

2007-10-26 15:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
uleak
初级用户





积分 40
发帖 15
注册 2007-10-26
状态 离线
『第 8 楼』:  try this...

you can try this one before hand. i did this months ago. it may be in better shape.

tinybit mentioned is same as i did. see:

ROMOS.bin structure:
---begin---
ROMOS hock
ROMOS main
grldr.mbr
freedos+usb.img
----end----

the main program copy mbr to 7c00 from freedos.img and then jump to it, I change it to load grldr.mbr instead. the freedos virtual drive emulation is still working if i recalled right. grldr will search all disks for grldr. it works.

I used to post all info in znpc.net, download the pre-compiled zip file in 9th reply, source code is there as well.

http://72.14.235.104/search?q=ca ... &cd=1&gl=hk

2007-10-26 16:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 9 楼』:  

汗、又是E文、勉强看懂大半
连接无效啊,我去时空看看



第一高手    第二高手

2007-10-26 16:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 10 楼』:  

找到了,谢谢
http://www.znpc.net/bbs/viewthre ... amp;highlight=romos



第一高手    第二高手

2007-10-26 16:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 11 楼』:  

我找到简单一种方法,可以让你能够用原来的方法启动 grldr.mbr。

注意,比较新的 grldr.mbr 已经是硬盘、软盘混合启动模式。什么意思呢?

在 grldr.mbr 的第一扇区上,你可以填入 BPB 表。

你把 romos.bin 中 FreeDOS 的 BPB 表拷贝到 grldr.mbr 对应区域,就 OK 了。

grldr.mbr 中已经为 BPB 表留有足够空间。在没有填入 BPB 表时,它们都是 00 字节。

这样,填入了 BPB 表的 GRLDR.MBR 就可以用你原来的方法启动了。



因为我们亲手创建,这个世界更加美丽。
2007-10-26 17:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 12 楼』:  

好的再试试..



第一高手    第二高手

2007-10-26 18:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lhteee
中级用户




积分 223
发帖 59
注册 2005-5-23
状态 离线
『第 13 楼』:  

看到过老毛桃将FreeDOS的ROMOS写入BIOS的帖子。



欢迎光临蜗牛软园:http://lhteee.ys168.com
欢迎光临 Ghost家:http://lhtooo.ys168.com
电子信箱(Email):lhteee@163.com
电子信箱(Email):lhteee@gmail.com
2007-10-28 21:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 14 楼』:  

FreeDOS本来就是RomOS的一部分,而RomOS只要有改BIOS信息刷BIOS经验都不是难事。而我是实在是怕洋文,一搭上洋文啥热情都没了,国内讨论这方面的太少。



第一高手    第二高手

2007-10-28 22:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wang6610
银牌会员




积分 1246
发帖 488
注册 2003-11-11
状态 离线
『第 15 楼』:  

楼主做法不对

2007-10-29 11:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
<<   [1] [2] [3] [4]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转:  



[ 联系我们 - 中国DOS联盟 ]


Powered by Discuz! © 2001-2011