无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 不点
打印 上一主题 下一主题

如果在 grub4dos 中集成 DOS 运行环境,哪个开源的 DOS 比较好,请推荐

  [复制链接]
1#
发表于 2014-12-15 15:43:19 | 显示全部楼层
jack95 发表于 2014-12-15 10:44
可以进入freedos,如何返回开始的grub4dos环境?

可以用grub.exe返回grub4dos环境,grub.exe请在本板置顶贴找,自行用UltraISO加入ima内即可
回复

使用道具 举报

2#
发表于 2014-12-22 09:02:05 | 显示全部楼层
试了 Windows 98 DOS, FreeDOS 和 DOS 7.1 情况一样如下:
1. 系统起动首先进入Grub4dos.
2. boot 入 dos 系统
3. Grub.exe 回到 Grub4dos.
4. Grub4dos 中 quit 回 DOS
5. Grub.exe ... 系统停摆,没有任何显示.

点评

谢谢,测试结果与我的测试结果相同。 看来有个什么隐蔽的地方没弄好。排解错误好困难啊。  详情 回复 发表于 2014-12-22 09:04
回复

使用道具 举报

3#
发表于 2014-12-22 18:50:26 | 显示全部楼层
试了 Windows 98 DOS, FreeDOS,4 DOS  和 DOS 7.1 情况如下

1.大致可以进入任意DOS系统,并可以Grub.exe 返回, quit退回dos,并反复多次
2. dos 和 Grub4dos变量可以保存,不管进出多少次.


问题:

若dos系统的程式有做变更显示(text mode ->graphic mode),比如dos工具箱(4-dos)
grub回grub4dos后,再quit 回dos时,画面无法显示
若这时候盲打grub.exe 可返回grub4dos,再quit回dos仍然是画面无法显示,除非改换另一套dos
这相当于重新一个新环境,不能解决问题
或者使用者可以自行由grub4dos返回时重新设定一次graphic mode来解决

点评

这个确实是问题. 就像我之前碰到的ipxe问题一样,当grub4dos是图形模式时进入ipxe shell会没有显示.只能切换到文本模式  详情 回复 发表于 2014-12-23 11:11
回复

使用道具 举报

4#
发表于 2014-12-24 14:57:13 | 显示全部楼层
不点 发表于 2014-12-24 11:00
看看今天这个版本有没有改进?pcs2006 报告的 DOS 图形模式问题是否解决了?

其实 grub4dos-0.4.5c-2014-12-22.7z,只要在切换grub前退回text mode是没有问题的。

grub4dos-0.4.5c-2014-12-24.7z,情况是进入dos后,文字模式或图形模式下按grub.exe 后,系统停止,没有任何显示。

另外,yaya的情况我也碰过,可能是usb和harddisk有超过一份menu.lst所致。

点评

刚才又编译了一个,试试还死机吗? 另外也请试试 23 日的版本是否死机。  详情 回复 发表于 2014-12-24 15:24
回复

使用道具 举报

5#
发表于 2014-12-24 16:17:54 | 显示全部楼层
情况依旧--
若配合 grub4dos-0.4.5c-2014-12-22.7z  版的 grub.exe,反而不再死机,
但某些图形模式(dos的中文系统)还得手动更改回文字模式才能正常显示。

23日的正常,不死机。

点评

又上载了一个,试试还死机吗? 如果不死机,请报告它能真的 “退出” DOS 而 “返回” grub4dos 吗?成功返回到 grub4dos 时,会有 Returned from DOS 的提示。 如果是进入全新的 grub4dos 环境,那就是有问题  详情 回复 发表于 2014-12-24 17:03
回复

使用道具 举报

6#
发表于 2014-12-24 17:49:22 | 显示全部楼层
试了几台机

Intel Core i3-2350 cpu
Intel Atom cpu n280  Lapbook
这两台无法进入DOS出现如下句子,然后回到Grub4dos,load其他pe没问题

Boot
Error 87:.............
         Returned from DOS


这一台
AMD Athlon 64 x 2 Dual Core
可以进入DOS,Grub.exe仍旧死,基本上24日的都死,23日以前的没问题



回复

使用道具 举报

7#
发表于 2014-12-24 18:30:55 | 显示全部楼层
比较奇怪,只有AMD Athlon 64 x 2 Dual Core 可以在23日的版本正常运作
可以自由切换dos和grub ,回到grub时出现句子:

Graphics mode number set to  0 x122
Error 87:.............
         Returned from DOS


其他电脑进入dos失败,包括23日的,这似乎和load dos的img有关,若用
freedos ,chainloader /kernel.sys 的方式便可以进入dos,并且显示

Graphics mode number set to  0 x1?? (这是另一台samsung i3)
Error 87:.............
         Returned from DOS
回复

使用道具 举报

8#
发表于 2014-12-25 18:45:24 | 显示全部楼层
本帖最后由 pcs2006 于 2014-12-25 18:46 编辑

25日版的大致没问题(暂时只试了一台机器和一支usb)。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=138340

这是dos时代菜鸟的dos工具箱,Grub4dos 载入img进入正常界面
按ESC 回到dos ,  按ML换成中文模式,按grub.exe 返回Grub4dos
再quit回dos时画面乱了或不能显示,这时候可以
1.盲打grub.exe 返回 Grub4dos,Grub4dos中quit回dos又变没有显示
    或
2.盲打 cn q 换回文字模式,一切回复正常
回复

使用道具 举报

9#
发表于 2014-12-28 16:39:18 | 显示全部楼层
本帖最后由 pcs2006 于 2014-12-29 15:17 编辑

本来打算测试Grub.exe是否会破坏dos的显示模式,于是写了一个小小的程序,
首先保存原有画面资料(包括文字及属性)、显示模式及鼠标位置及大小,
然后载入grub.exe,等grub.exe返回时,回存显示模式,鼠标位置及原画面文字,
发觉只有某些dos中文系统不能正常显示,可能是grub.exe 进入grub4dos环境的前或后时
破坏了原有的中文系统,于是返回dos时乱掉了(暂时只有dos时代菜鸟的dos工具箱有这种情况).

grub.com没什么功能,只是回存原有的画面,不怕被grub.exe 清掉而已
把grub.com和grub.exe放在一起就是了,键入grub时,dos首先会执行grub.com
若嫌名字不好,也可以随便改名,例如grub1.com什么的....
若在grub 后加了parameters,grub.com不会做任何储存或回存的动作,
因为grub.exe可能有自己的讯息输出,保留画面没什么意义了。

http://pan.baidu.com/s/1mgFWigS

压缩包里包括grub.com及其汇编程序。
已修正程序出错...

点评

确实是会破坏显示模式。这是因为,从 DOS 进入 grub4dos 时,grub4dos 有可能是 VBE 模式,而从 grub4dos 的显示模式切换到原有的 DOS 显示模式,可能发生不匹配,发生模式错误,导致显示异常。 我在 27 日的版本  详情 回复 发表于 2014-12-28 22:53
回复

使用道具 举报

10#
发表于 2014-12-29 00:17:11 | 显示全部楼层
不点 发表于 2014-12-28 22:53
确实是会破坏显示模式。这是因为,从 DOS 进入 grub4dos 时,grub4dos 有可能是 VBE 模式,而从 grub4dos ...

刚才测试了27日的版本,这台AMD Athlon II一切正常,未试其他电脑,之前的印象,
许多机子常有51楼的情况,就是无法载入dos img,所有文件是一样的,似乎和bios版本有关

注:64楼的文件之前有bug,已修正,若有需要请重新下载,保留回存画面的程序已放在asm文件内,
除了载入grub.exe外,全是int 10h的调用,不涉及int 21h

点评

代码写得很好,也很容易看懂。 代码能够恢复视频缓冲区,然而,恢复视频缓冲区,是要耗费空间的。 如果是文本模式,需要耗费的空间很小。 但如果是图形模式,恢复像素数据,那可承受不了,640×480×4 / 8  详情 回复 发表于 2014-12-29 01:44
回复

使用道具 举报

11#
发表于 2014-12-29 10:27:18 | 显示全部楼层
不点 发表于 2014-12-29 01:44
代码写得很好,也很容易看懂。

代码能够恢复视频缓冲区,然而,恢复视频缓冲区,是要耗费空间的。

基本上,能够键入grub.exe,应该是文字模式环境,即使在用中文系统下,
也是文字模式,最大不会超过10k,若不嫌麻烦压缩一下,可能会在3k以下。

另外,要保存图形模式画面资料,不必真个动用内存,可调用现有的int 10h实现,
ax=1c01h是保存視訊規格,ax=1c02h是回存視訊規格。
代码大致是这样的:

SaveVid:  push    es
                mov     bx,offset VideoBuffer
                mov     ax,1c01h                ;save Video Config
                mov     cx,0007h
                int     10h
                pop     es
                ret
;------------------------------------------------------------------------------
RestoreVid:
                push    es
                mov     bx,offset VideoBuffer
                mov     ax,1c02h                ;Restore Video config
                mov     cx,0007h
                int     10h
                pop     es
                ret

;------------------------------------------------------------------------------

其中的VideoBuffer并不是昼面资料,是视讯規格緩衝,一般要4-10k就可以,
比文字模式更省空间,我写过类似的文字和游戏画面切换的程式,代码不复杂,
详情请参考:
http://www.ymailsoft.com/app/clu ... mation_Id=I00012942

但若回到grub4dos时又有图象显示,这会抵触和破坏了原来保存,问题挺复杂的。

不管怎样,这都会增加grub4dos的工作量,又没有逼切性,权作玩票方案好了哈。

点评

int10/ah=1Ch,在 2014-12-27 的版本中,已经采用了。运行情况与您刚才描述的情况完全一样。 您的解释,让我更清楚了 int10 功能 AH=1Ch 的作用。我本来还纳闷:为何保存和恢复状态的代码不能完全恢复状态呢?现  详情 回复 发表于 2014-12-29 12:18
回复

使用道具 举报

12#
发表于 2014-12-30 09:55:30 | 显示全部楼层
本帖最后由 pcs2006 于 2014-12-31 18:05 编辑
不点 发表于 2014-12-29 12:18
int10/ah=1Ch,在 2014-12-27 的版本中,已经采用了。运行情况与您刚才描述的情况完全一样。

您的解释 ...


原来27日的版本已使用了int 10h ah=1ch功能,那么不妨让grub.com先做一下实验,
把上面SaveVid和RestoreVid的代码加入grub.com中。

试验的结果,新的grub.com配合27日的版本,可以完全回复画面,包括dos时代菜鸟的dos工具箱。

http://pan.baidu.com/s/1ntiKiwx

点评

仍旧以前述 dos 时代菜鸟的中文 dos 为测试对象。这一版的 grub.com,不能恢复显示画面。此前的版本还可以成功恢复。也许是这台联想笔记本的 BIOS 比较特殊吧。它的 int10/ax=1C00h 返回的缓冲区大小,换算成字节数  详情 回复 发表于 2014-12-30 22:49
回复

使用道具 举报

13#
发表于 2014-12-31 14:43:53 | 显示全部楼层
不点 发表于 2014-12-30 22:49
仍旧以前述 dos 时代菜鸟的中文 dos 为测试对象。这一版的 grub.com,不能恢复显示画面。此前的版本还可 ...

功能 入口参数和出口参数
INT 10H 的 1C00H 功能
返回状态缓冲区容量 AX = 1C00H AL = 1CH 成功
BX = 需要的 64 字节块数目

实际操作下,cx也应该定义,若cx,7,传回的bx才有参考价值,
在几部机子不同的中文系下,bx大多传回0fh,shl bx,6,也就是乘上64=960(3c0h),
少于1k,这是显示模式的config 表,你的缓冲区大小达到 56K,
是不是我的理解错误了,还是联想笔记本太另类:)

grub.com只是试验中文系统有没有遭破坏,尤其dos时代菜鸟的dos工具箱改动了不少中断.
试验结果是没有,初期的画面乱掉只是欠一个模式转换而已。

点评

1C 功能有很完善的说明,我当然不会搞错。实际计算出的缓冲区大小 56KB,确实令人吃惊。 你给的缓冲区只有 8K,显然太小了,所以也就理所当然地不能恢复画面。 而你之前的版本,不带有 1C 功能,反而可以正确  详情 回复 发表于 2014-12-31 17:26
回复

使用道具 举报

14#
发表于 2014-12-31 18:22:06 | 显示全部楼层
不点 发表于 2014-12-31 17:26
1C 功能有很完善的说明,我当然不会搞错。实际计算出的缓冲区大小 56KB,确实令人吃惊。

你给的缓冲区 ...

这似乎和ax,1c00h那缓冲区没有关系,因为那个只是表格而己,不是真正的视讯资料。
bios千差万别,有些机子ok但有些不成,为什么视讯资料回存了,但偏偏没有显示,随便按一下Enter,
屏幕上卷,原来的画面出来了,其实视讯资料都在,只是中文系统不知道,我在这里用一个笨办法,
利用ah=0601h,int10h,屏幕上卷一行,告诉中文系统我回来了...

这个版本也加了一些安全检定,确信buffer足够才做保存。
我在三部机子试都可以正确回存,当然也有连第一步dos的退不回的,但那是老问题了。

http://pan.baidu.com/s/1ntiKiwx

点评

>>bios千差万别,有些机子ok但有些不成,为什么视讯资料回存了,但偏偏没有显示,随便按一下Enter, 屏幕上卷,原来的画面出来了,其实视讯资料都在,只是中文系统不知道[/backcolor],我在这里用一个笨办法, 利  详情 回复 发表于 2015-1-11 11:54
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-22 17:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表