- 主题:HIMEM.SYS 也是有限制的
都写 dos4gw 了,还不如直接 windows 算了。
【 在 kirbyzhou 的大作中提到: 】
: 新的都是himem就行了,通过xms api分配内存并获取物理地址,然后通过dos4gw dpms之类的dos extender进保护模式直接干。
--
FROM 120.37.23.*
那会又不是每个用户都有Windows
而且Windows写程序可比dos4gw+遗产代码麻烦多了
【 在 hgoldfish 的大作中提到: 】
: 都写 dos4gw 了,还不如直接 windows 算了。
--
FROM 114.247.175.*
但是写 dos4gw 意味着 8086 和 286 电脑都被放弃了。
话说,如果现在玩 DOS,我觉得还是玩 8086 比较原汁原味。
应该假定内存就 640KB,只玩实模式才有意思嘛。反正也只是玩玩而已。
这年头不会有人想以 DOS 为目标平台开发实用程序了吧。
【 在 kirbyzhou 的大作中提到: 】
: 那会又不是每个用户都有Windows
: 而且Windows写程序可比dos4gw+遗产代码麻烦多了
--
修改:hgoldfish FROM 120.37.23.*
FROM 120.37.23.*
ems一开始是插在isa槽的板卡吧, 所以应该是类似外设的操作方式?
后来才被xms模拟ems的方式给替代了
【 在 hgoldfish 的大作中提到: 】
XMS 和 EMS 的 API 使用方式不一样,类似一个 Linux 程序读写数据时,要么用 read()/write() 要么用 mmap().
是不是说后来几乎所有的程序都选择了 XMS API,因为 EMS API 看起来并不好用。需要切成 4 块不连续的 16KB 的,而且本身 UMA 的内存很少,还不如留给驱动程序就算了。
另外,选择 EMS 意味着必须使用 386 机器,而使用 XMS 只需要 286 就能支持。在 DOS 的生命周期里面,286 的保有量是非常大的。
【 在 tom6bj 的大作中提到: 】
: 新一点的都只需要xms不需要ems吧, 印象中没有ems不给运行的就一个, 光荣三国志4代
: 可以完全不加载微软家的himem和emm386,只用QEMM一个设备驱动就可以全搞定……
: ps:DOS下面,有哪些常见程序(所以排除windows3.x)是单纯调用XMS,而不用EMS的呢?
: ...................
--
FROM 124.16.158.*
EMS内存的英文全称之所以名曰“扩展内存”,因其开始时是通过一种ISA总线上的“扩展卡”从而装入PC的。
80286就是这种原教旨EMS广泛使用的PC机型;
后来80386时代就可以通过微软官方的EMM386驱动程序使用640KB之上的系统主内存进行模拟,让应用程序继续以EMS的编程规范操作不超过32MB的EMS内存……
在系统主内存从几百KB,到几MB,发展到几十MB的那个时代,EMS内存让程序员做出了很多只有640KB物理内存就无法实现的复杂需求~
【 在 tom6bj 的大作中提到: 】
: ems一开始是插在isa槽的板卡吧, 所以应该是类似外设的操作方式?
: 后来才被xms模拟ems的方式给替代了
: --
: 灭绝人性啊
:
: --
--
FROM 111.31.163.*
早期的 EMS 扩展卡应该没有使用很长时间吧?
因为很快进入 286 时代,理论上 286 的保护模式可以直接使用大内存。
EMS 扩展卡在 286 时代落后了。
【 在 mephistoxp 的大作中提到: 】
: EMS内存的英文全称之所以名曰“扩展内存”,因其开始时是通过一种ISA总线上的“扩展卡”从而装入PC的。
: 80286就是这种原教旨EMS广泛使用的PC机型;
: 后来80386时代就可以通过微软官方的EMM386驱动程序使用640KB之上的系统主内存进行模拟,让应用程序继续以EMS的编程规范操作不超过32MB的EMS内存……
: ...................
--
FROM 120.37.23.*