中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: Q-系 驅 動 有 潛 在 的 臭 蟲 上一主题 | 下一主题
johnsonlam
银牌会员

阿林


积分 1410
发帖 497
注册 2004-6-28
来自 九龍,香港
状态 离线
『楼 主』:  Q-系 驅 動 有 潛 在 的 臭 蟲


由 於 我 不 大 懂 匯 編 的 中 文 詞 彙 , 請 有 心 人 幫 忙 翻 譯 一 下 , 謝 謝 !

=-=-=-=-=-=
Serious problems have been noted in the current QHIMEM, QCACHE/QDMA and
QCDROM drivers.

QHIMEM is written to return an error code of zero, meaning no error, on
all XMS requests which are successful.   This error code is returned in
the BL-register.    However, the V3.0 XMS Specification states that all
CPU registers are to be saved and restored by an XMS driver, when it is
called by DOS programs to do XMS requests.

It is unclear, from the V3.0 Specification, that when XMS errors do not
occur, the BL-register should NOT be modified.   For most DOS programs,
this is no problem.   But a few programs such as "I_CACHE" require that
the BX-register must NOT change, if XMS errors do not occur.   If those
programs are run with QHIMEM, the programs may fail.

QCACHE/QDMA/QCDROM are all written to do I-O for disk and CD/DVD drives
anywhere in DOS memory, including upper-memory past 640K.   QCACHE will
deal with upper-memory by converting its address "segment" and "offset"
to a 20-bit memory address.   Then, it uses the 20-bit address with its
own "Fast XMS" logic in moving data to or from upper-memory.

The problem is that upper-memory may have been "mapped", with EMM386 or
an equivalent "EMS" driver, to physical addresses that are NOT the same
as its "segment" address!    For example, upper-memory with a "segment"
of D000h and "offset" of 0400h will be accessed by QCACHE at a physical
32-bit address of 000D0400h.    If EMM386 etc. has "mapped" this memory
to a true 32-bit address that is NOT 000D0400h, I-O requests will fail.

QDMA/QCDROM do not contain their own "Fast XMS" logic and must call the
XMS manager (QHIMEM, HIMEM, etc.) to do an XMS data "move".   But, they
must tell the XMS manager the "segment" and "offset" address for upper-
memory that was given to them by the user program.    XMS managers were
NOT designed for "moves" to DOS upper-memory, and most will NOT convert
the "segment" address to its true 32-bit physical address.   So, again,
I-O requests will fail.




我 的 網 站 - http://optimizr.dyndns.org
2007-5-29 13:25
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
wang6610
银牌会员




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

按香港的繁体中文译就可以,都能看懂。

2007-5-29 14:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
johnsonlam
银牌会员

阿林


积分 1410
发帖 497
注册 2004-6-28
来自 九龍,香港
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by wang6610 at 2007-5-29 02:27 PM:
按香港的繁体中文译就可以,都能看懂。

問 題 是 : 在 香 港 通 常 都 不 譯 , 看 不 懂 就 要 問 人 , 資 訊 以 口 傳 遞 。

我 的 中 文 只 是 一 般 , 得 坐 下 來 譯 個 多 小 時 , 稍 等 有 空 才 能 搞 ...



我 的 網 站 - http://optimizr.dyndns.org
2007-5-29 15:32
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 4 楼』:  

草译如下:
目前的 QHIMEM、QCACHE/QDMA 和 QCDROM 驱动程序发现存在严重问题。

按设计,QHIMEM 返回错误代码0,表示无错,在所有的 XMS 调用上是成功的。错误代码在 BL 寄存器中返回。然而,3.0版的XMS规范中说明:一旦有DOS程序通过XMS驱动程序来实现XMS调用,所有的 CPU 寄存器由 XMS 驱动程序保存并恢复。

目前尚不清楚,从 V3.0 说明看,当 XMS 不发生错误时, BL 寄存器应该是否被修改。对大多数 DOS 程序而言,这不是问题。但是象"I_CACHE"这样的一些程序要求,如果 XMS 不发生错误,BX 寄存器不能发生变化。如果那些程序在 QHIMEM 之后运行,程序可以失败。

QCACHE/QDMA/QCDROM 全部设计为在内存中完成磁盘和CD/DVD的I-O操作,包括 640K以上的高位内存。QCACHE 处理内存的方式是,将段地址:偏移地址转换成20位的内存地址。然后,它以“自己的快速XMS”逻辑用20位地址移动数据到上位内存或从上位内存移走数据。

问题是上位内存可能是“映射”而来的,是从 EMM386 或类似的EMS驱动程序映射来的与它的段地址不同的物理地址!例如,有 D000h“段”和 0400h “偏移”的上位内存将被 QCACHE 在 000D0400h 的一个物理的 32 位的地址存取。如果 EMM386 等等“映射”了内存到不是 000D0400h 的一个真实的 32 位的地址,I-O 请求将失败。

QDMA/QCDROM 不包含“他们的自己的快速XMS”逻辑,必须调用 XMS 管理器 ( QHIMEM,HIMEM,等等。)来完成 XMS 数据“搬移”。但是,他们必须告诉 XMS 管理器由用户程序给他们的上位内存的“段”和“偏移”地址。而XMS 管理器并没为设计成“搬移”到DOS的上位内存,而且它们大多数将不变换“段”地址到真实的32 位物理地址。因此,I-O 请求将再次失败。



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2007-5-29 16:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
johnsonlam
银牌会员

阿林


积分 1410
发帖 497
注册 2004-6-28
来自 九龍,香港
状态 离线
『第 5 楼』:  

感 謝 本 是 兄 , 譯 得 真 好 !



我 的 網 站 - http://optimizr.dyndns.org
2007-5-29 17:44
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: