中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 8086 上的多任务 GUI 开发 问题集, 欢迎赐教!
« [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] »
作者:
标题: 8086 上的多任务 GUI 开发 问题集, 欢迎赐教! 上一主题 | 下一主题
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 16 楼』:  

windows 3.1 的剪裁可能比 windows 3.0 有很大的改进, 如果能研究一下也许不错, 不过只能反汇编? 那还不如不看?找找看 Windows CE 的 source(Windows CE 3.0 的部分 source 网上有). 另外,不知道 Windows CE 的开发工具中可否得到相关的资料. 还有 DDK 可看?
那看看 minigui 如何, 不过可能它借鉴了 wxWindows(后来的 wxWidgets吧),有个国内的什么微逻辑公司好像也有类似的东西,不同的是好像支持多任务(多线程?我记得不清楚了).但是他们的 DC 应该都和  MS 的不同. 另外, 我其实不是很喜欢 GDI, 即使参照, 也应该看看 MS 的 vista 在这方面的发展趋势, 我认为. java 的和 BGI 差不多, 用起来方便一些. 但是如果全体从矢量角度考虑的话,完全可以不管是否与以前有否兼容,否则可能绊脚自己.

[ Last edited by jawbin on 2006-5-26 at 15:13 ]

2006-5-26 15:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 17 楼』:  

窃以为 zyl 兄所言甚是(前半部分,呵呵)。国际化和本地化确实是大势所趋,unicode核心已经是所有现代OS必备的特征了。语言和文字的处理也确实是非常复杂的工作。现在隆重推荐几款重量级开源跨平台语言文字处理工具:

  1. ICU(http://www-306.ibm.com/software/globalization/icu/index.jsp),IBM出品,应该不算太次。支持编码转换,文字阅读方向处理(RTL-LTR),按本地习惯输出和排序等等很多功能。支持 C/C++/Java等接口

  2. GNU libiconv,GNU出品,大半能算做精品。posix/sus 兼容iconv字符集转换接口,支持几乎所有存在的字符集编码转换。跨平台,C接口。

  3. FreeType,字体引擎,支持:TureType,OpenType,adobe,pcf,bdf,以及各种点阵字体等等很多格式的字体,呈示效果不输WindowsXP,GNOME(GTK+)和很多著名桌面环境的底层。跨平台,C接口。

另外,关于RAD工具的问题,不知道 zyl 接不接受使用GUI框架的思想,很多RAD工具都是直接生成可编辑的 C/C++ 框架代码,与手写质量基本没有区别。何况修改和调整RAD生成的代码比完全自己写还是要快很多的。RAD应该算是生产力工具了吧,呵呵。

而且RAD一般只用在画界面,这里就有2个问题:
  1. GUI本身是一种低速IO,并且,图形算法固有的时空开销就比较大,就算RAD产生的代码稍微低效,这通常也不是问题。除非兄台在为大型游戏编写实时3D引擎中~
  2. 除了刚在所说的游戏等特别情况,大部分应用对GUI的效率都是不敏感的。真正对效率敏感的应用如:数据库引擎、网络服务、编译器、密集型分布计算等等应用,不是完全不使用GUI(因此也就没什么机会用RAD,比如SQL Server、DB2......)就是其绝大部分效率因素并不由GUI部分决定(比如用了超低效 .net 代码来开发界面的 VC2002/2003/2005)。

2006-5-26 15:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 18 楼』:  



  Quote:
Originally posted by jawbin at 2006-5-26 15:09:
windows 3.1 的剪裁可能比 windows 3.0 有很大的改进, 如果能研究一下也许不错, 不过只能反汇编? 那还不如不看?
那看看 minigui 如何, 不过可能它借鉴了 wxWi ...

裁减部分可以看 wxWidgets中的 wxUniversal 源码 SciTech 写出来的很难不高效,呵呵~

2006-5-26 15:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 19 楼』:  

个人感觉仅限于 8086 这个条件严苛到没有实际意义了。即使是嵌入是应用,现在起码也是 ARM7 打底了(你去买个智能电饭煲里现在都装这个啦),新型手机等大部分设备里起码是 ARM9 双芯片了,作为参考, ARM7 的计算能力可以与 486 比较,ARM9 则对应 Pentium,浮点运算能力甚至超过这两者(和搭配的DSP有关)。

这一方面是因为用户需求越来越高,另一方面,现在半导体成本急剧下降。生产像8086这样的处理器已经没有实际意义了(也许它只比ARM7便宜几美分)。

2006-5-26 15:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 20 楼』:  

对了,说到输入,我坦白了吧,我目前是在为嵌入式考虑,没有鼠标不消说,键盘不是标准的,从 GPIO 口采,而且复用,要自己去抖,处理连击...还有些功能要求某个键持续按下一段时间才起作用....目前还没和标准键盘映射起来..

2006-5-26 15:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by asbai at 2006-5-26 03:21 PM:
个人感觉仅限于 8086 这个条件严苛到没有实际意义了。即使是嵌入是应用,现在起码也是 ARM7 打底了(你去买个智能电饭煲里现在都装这个啦),新垠...

一则目前这个板子(www.baby-pc.com 的 PCM3486, 这是他们现在发行的最好的板子,使用的 80186 级的 CPU, 价格在 1000 以下, 可能是 800 左右)是我选的(虽然现在我暂时不搞这个了). 另一方面, 我对 ARM 还不熟悉, 虽然知道目前它运用的领域好像非常广. 不知道它和摩托罗拉的 CPU 是否有什么保护模式? 我只知道摩托罗拉的端口和内存的访问指令是相同的(可能是统一编址的),另外也知道它的 CPU 和 intel 的字节顺序是不同的.

[ Last edited by jawbin on 2006-5-26 at 15:40 ]

2006-5-26 15:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 22 楼』:  

这么多内容我得慢慢消化

在软件方面,我一向看重 IBM, 它为开源作了不少贡献! 它的网站上有很多非常好的东西, 知识无涯啊!

[ Last edited by jawbin on 2006-5-26 at 15:32 ]

2006-5-26 15:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 23 楼』:  

====================================
关于多线程多任务的实现,记得GNU PTH(GNU出品的通用 User Mode pthread线程库)中有一篇非常好的文档,详细说明了运行栈切换的技术原理,并且比较了各种切换技术的可移植性及性能。大体流程是:保存当前线程上下文;切换到新的上下文空间(sus:swapcontext,在DOS下可以直接改SS等寄存器);最后重定向指令流(执行长跳转)。

运行栈切换(线程切换)是多线程实现中的一个非常关键的问题,建议仔细阅读。

====================================
时间片计时,x86结构大体有2种计时方式:
  1. 系统定时器:它的计时粒度可以在 每秒18.2次(55 毫秒),到 每秒 1193180次 (0.84纳秒)(当然8086上到不了这么高的)。
  2. Pentium系列及以上还支持 Performance Counter,这是一个 64 位宽的寄存器,它的值在每CPU基本时钟加一。读取它的汇编指令是:RDTSC。

基本上,实现线程第一种最方便。

====================================
最后,实现多任务还必须实现一系列互斥、同步和通信算法。比如信号量、互斥量、条件变量、管道、共享内存等等。

以上3块就是基本多任务环境的完整组成啦,打的累死了,手酸,下了,呵呵~

2006-5-26 15:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 24 楼』:  

zyl910 兄说到的图像数据量大的确是一个问题,不过如果我每次都仅仅是一个简单的操作的话,也许问题还不是很大,例如画一个 button, 也就是画几条线, 填充一下矩形. 当然, 面对稍微复杂的情况, 还是比较麻烦的.而且,有些设备假如不提供显存来操作的话(可能有点极端了),也是个问题.

2006-5-26 15:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 25 楼』:  



  Quote:
Originally posted by jawbin at 2006-5-26 15:21:
对了,说到输入,我坦白了吧,我目前是在为嵌入式考虑,没有鼠标不消说,键盘不是标准的,从 GPIO 口采,而且复用,要自己去抖,处理连击...还有些功能要求某 ...

除了手机PDA外,大部分嵌入式开发不需要考虑GUI设计~

2006-5-26 15:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 26 楼』:  



  Quote:
Originally posted by jawbin at 2006-5-26 15:27:

一则目前这个板子(www.baby-pc.com 的 PCM3486, 这是他们现在发行的最好的板子,使用的 80186 级的 CPU, 价格在 1000 以下, 可能是 800 左右)是我选的(虠...

x86兼容的嵌入式CPU也有很多啊,比如:VIA的、SiS的、NS Geode、Transmeta、AMD DX、STPC等等。这些CPU都是低功耗、免风扇的。而且完整系统板的价格比你报的低多啦~

2006-5-26 15:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 27 楼』:  



  Quote:
Originally posted by asbai at 2006-5-26 03:39 PM:


除了手机PDA外,大部分嵌入式开发不需要考虑GUI设计~

非常感激 asba 热情相助! 我们这个恰恰需要 GUI, 而且要求某些部分显示得必须非常醒目(例如字体要很大,对比度要很强,因为强日光下液晶显示器会看不清楚普通的图形,当然挑选屏幕的时候还得挑宽视角的,不过那就不是我的事情了,呵呵])而且我正在考虑遥控(为了突破现场的输入局限,但是这目前仅仅是个念头).

2006-5-26 15:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 28 楼』:  

呃,我刚刚说要下了~~

2006-5-26 15:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 29 楼』:  

asbai 兄, PCM3486 就是个完整的 PC/104 板,其实我为了简单,一直在觊觎 linux,可是软硬件目前还都没有什么眉目,了解得太少了.

2006-5-26 15:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 30 楼』:  

呵呵,下吧,来日方长嘛!再次感谢 asbai 兄的热情!

2006-5-26 15:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: