一种新颖的技术:Delphi for DOS!!!

Phoenix2000 2001-01-11 07:52:00
看看题目,是不是觉得很怪?Delphi 从诞生起就是 for Windows 的,那里有 for DOS 的?如果你过去曾用过 Borland 的 Turbo Pascal 系列编写软件,那么你应当对 Turbo Pascal 的特点了解一些。Turbo Pascal 直到 6.0 版都不支持 DOS 下的保护模式编程(DPMI)。直到 Borland Pascal 7.0 出世,然而令人遗憾的是, BP7 仅支持 16 位的保护模式编程,而真正意义上的 32 位 DPMI 模式却不支持。而且 BP7 是 Borland Pascal 的 DOS 终结版。所以,那个时代很多的游戏都只能打上 DOS4GW 的烙印(由 Watcom C++ 开发)。

其实,在 1996 年,Delphi 2.0 已经是一个真正的 32 位保护模式编译器了,只不过她不能产生 DOS MZ 格式的程序,仅能产生 Win32 PE 程序文件。而这个时候,一个名为 WDOSX 的32 位 DOS 扩展器已经悄然出现了。这个扩展器的最大特点就是专门为 Delphi 2 度身定做,能够将 Delphi 2 编译的“控制台应用程序”(也就是 Console Application)直接复合成为一个真正的 32 位 DOS 保护模式程序,其效果与 Watcom C++ 编译产生的 32 位 DOS DPMI 程序(运行时依赖 DOS4GW 扩展器)是一样的!而它产生的程序已经自带扩展器,不需要运行时的扩展服务程序(比如 DOS4GW)。WDOSX 采用 Borland 的 Turbo Assembler 5.0 开发,为 Delphi 2 专门提供了用于保护模式下的 CRT、DOS 等单元,与过去的 Turbo Pascal 提供的单元十分相似。WDOSX 采用 Win32 API 仿真库以便支持在 32 位 DOS DPMI 环境下的系统功能调用,所以经过复合后的 Delphi 2 控制台程序是运行在一个 Win32 模拟环境中的,Win32 的特点被保留,而实际确实运行在真正的 32 位 DOS DPMI 环境下。这就是 WDOSX 的奇妙之处。

现在 WDOSX 的最新版本为 0.96,已经能够很好的支持 Delphi 2/3/4/5 各种版本了,它甚至为Delphi 提供了完备的快速图形处理函数库(包含 DirectX 支持),用来编写 DOS 游戏真是变得异乎寻常的简便了,而效果却是惊人的:真正的 32 位保护模式 DOS 环境、直接对显示硬件编程处理图像、方便的 DOS 中断调用支持。Watcom C++ 和 DJGPP 的优点她都能够让 Delphi 具备!这得益于 Delphi 32 位编译器的强大能力和 WDOSX 的神奇力量。那些在 Win32 环境下的诸多限制彻底不存在了,你用 Delphi 2/3/4/5 编译的“控制台应用程序(Console Application)”经过 WDOSX 复合以后产生的 32-bit DOS DPMI 程序能够自由地对内存进行访问,而内存则是真正的32 位线性 Flat Modal !再也没有老的按照“段”来划分的概念了。理论上程序能够使用的内存空间将是 4GB !WDOSX 的复合原理是将自己的一个保护模式功能服务器及一个微型运行模块加在正常的Win32 PE 文件的头部,并修改文件头为 32 位 DOS DPMI MZP 文件头,同时将原来的运行代码作适当的压缩处理,并加入一个很小的 Win32 环境模拟器。由此可见 WDOSX 的作者公里是相当深厚的!目前WDOSX 除了对 Delphi 2/3/4/5 和 Turbo Assembler 提供最完善的支持外,还支持 C++Builder、Visual C++。

毕竟,DOS 还不可能从我们的世界中彻底消失,有一些程序设计运行在 DOS 下也许会获得更出色的效果。而编写 DOS 环境下的程序令人感到十分自由,没有什么限制。并且采用性能卓越的 32 位保护模式将更能发挥程序的威力。有了 WDOSX ,有了 Delphi ,一切都变得那么容易和轻松了,何乐而不为?

WDOSX 这个东西还真不好找,我好不容易从网上弄下来了。我这里有一个用 Delphi 5 + WDOSX 编写的一个很有趣的 32-bit DOS DPMI 程序,效果是模拟一团熊熊燃烧的火焰,效果十分惊人,会令你意想不到(姑且让我这么说吧)!!!我可以将完整的WDOSX 软件包和部分演示程序寄给对此感兴趣的朋友(很小,才几百K字节)。欢迎大家与我共同探讨这个问题。:)
...全文
347 点赞 收藏 23
写回复
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
Phoenix2000 2001-01-17
WDOSX 0.96 for Delphi 2/3/4/5 已经在 csdn 上顺利发布了,请大家速到 csdn 的“共享软件”中的“开发工具/软件开发包(库)”栏目去下载吧。谢谢!
回复
Java_SCU 2001-01-14
放到“中国软件”(www.csdn.net)上的“共享软件”栏目了
是在什么位置呀,我怎么找不到呢?可以把下载的链接写出来吗?谢了先!
回复
Phoenix2000 2001-01-14
我已经给 csdn 共享软件栏目的斑竹去信询问了,应该在一两天以内能够发布的。请大家不要着急,面包总会有的。
回复
Phoenix2000 2001-01-13
我已经发给你了,但是好像被退回来了。不好意思,可能是我写错伊妹儿地址了,我会给你重发的,请注意查收。
回复
huiboy 2001-01-13
我在大富翁中已经跟你要了一次了,huiboy@21cn.com
回复
highnice 2001-01-13
不错!
回复
WorldCreater 2001-01-13
也给我一份 谢谢
primary@email.com.cn
回复
Phoenix2000 2001-01-13
这几天我收到很多朋友的信,大家对此很感兴趣。我感到很欣慰,并且尽量回复。但是由于我的精力有限,没有太多时间一一回信,所以我做了个软件包,并把它放到“中国软件”(www.csdn.net)上的“共享软件”栏目了。如果还有朋友需要的话,请到以上网站去下载,
谢谢大家的支持!
回复
zyc 2001-01-12
给我一份可以吗?(zyc@lianjiang.gov.cn)
回复
wyr 2001-01-12
也请给我一份!谢谢!
duyu@eyou.com
回复
ygnet 2001-01-12
请给我一份!谢谢!
delphi-2000@163.net
回复
ljquan 2001-01-11
请大哥传一份给小弟吧!谢谢!
回复
withluck 2001-01-11
谢谢!withluck@sina.com
回复
withluck 2001-01-11
请给我一份!谢谢!
withluck@sina.com
回复
a_fee 2001-01-11
想看看,delfee@china.com
回复
lliihhaaoo 2001-01-11
me2,3ku.

LeeHao@whir.net
回复
lliihhaaoo 2001-01-11
me2,3ku.

LeeHao@whir.net
回复
gaoql 2001-01-11
gaoql@21cn.com
给一个
回复
lixiaolei 2001-01-11
我不必麻烦你了,我已经找到了下载地了:
http://grwy.online.ha.cn/snowstar/dpMine.htm
回复
lixiaolei 2001-01-11
给我一份吧!
有这么好的东西?
有一个问题:那些低层硬件驱动程序的怎么解决?
回复
发动态
发帖子
非技术区
创建于2007-08-02

797

社区成员

Delphi 非技术区
申请成为版主
社区公告
暂无公告