《NGNcalc2x开发手册》

http://www.ngnc.net/NGNcalc2x/development_handbook.htm

NGNcalc2x开发手册》

NGNc的开发模式是开放式项目组织模式,以清晰透明的相对独立的功能/模块间的接口为纽带的项目组织和开发模式,在项目正式启动和工程阶段不做明确界定,通过建立自我完善和更新机制,集项目开发和项目研发于一个整体,每个开发单元(一个模块,一个子系统)都需要有测试和反馈机制,整个项目沉浸在这中反馈的动态平衡中。而NGNc脚本语言做为一个标准接口起到润滑作用;开发周期不确定,是NGNc开发的一个思路,因为,制定开发计划只能是主观的希望,没有任何实现的理论基础,更何况研发与开发的界限模糊;

NGNcalc2x的开发初衷,就是以Hello world类的Sample演示NGNc的开发模式,其开发界限就在于GUI引擎,脚本逻辑和参数两部分,两部分的依存关系清晰可见;到目前为止,其开发过程就是研发到开发的转变过程;

    • 首先,抽象Calc2的核心数据结构,寄存器结构;
      • 然后,编制计算器操作逻辑;根据操作逻辑编制脚本逻辑;
    • 其间已经将显示逻辑分离,并利用NGNc的伪函数机制(没有函数体的函数声明,如同流程图中的一个方框)简化了开发深度;
    • 中断1:为了配合计算器逻辑的调试,将显示逻辑用最简形式的插件方式提供,以方便逻辑的调试,此时NGNide还未开发,调试是通过“调试代码”的插入实现的,这可以从NGNcalc2的脚本源码中看到;
    • NGNide开发过程,因为GUI系统下无法对DosConsoleNGNc虚拟机进行调试,特地编制了SimConsl模块,以GUI方式模拟DosConsole,而DosConsole的模拟本身变的容易,也在于计算器显示逻辑的分离清晰,整合显示逻辑包括输入就只有几个简单的函数;
    • SimConsole显示逻辑,因为,显示逻辑应当规范于引擎的部分,因此其开发完全是VC环境,本身遵循系统设计规范,自顶而下的方式,对SimConsl进行了抽象,其中:VideoMemory抽象,KeyInputBuffer抽象,都吸收了Bios的思想;
    • 核心显示使用GUIWM_PAINT显示循环对VideoMemory进行重画实现显示引擎;
    • VideoMemory层的当前状态非常简单,只是个80x25的字符矩阵,未来可以为字符矩阵添加显示属性层,以获得丰富的显示信息;
    • GUI WMPAINT显示循环,在未来也可以用OpenGL/D3D进行管理;可以增加新的Video Layer以提供相应的显示信息;
      • 在显示引擎系统的新变化下,显示控制接口的函数数也扩大了,对脚本的要求也增加了,如控制效果的参数增加等;
      • 对于计算器的功能逻辑的扩充又是另外的一个方向,可以在不理会引擎的情况下,通过脚本和数据抽象,设计出功能强大的计算器,如:公式编辑能力等;
    • 基于GUI的通用图形引擎的开发:将NGNcalc2xGUI图形引擎提取出来,可以为未来的类似界面的应用提供开发,对通用窗口描述方式的积累也可以获得积累,发展成为BeautyWindow系统,让窗口生动起来;
    • OpenGL/D3D的使用又是另一个丰富的值得发展的引擎系统;
      • 计算器逻辑本身经过积累,在丰富到足够强大后就可以成为经典;其他应用的脚本逻辑也同样可以积累;

有兴趣加入NGNcalc2x开发的朋友请联系我们,ngncalc2x@ngnc.net

这里是NGNcalc2x的设计文档,作为项目起点供应大家参考。请朋友们根据其中描述,说明希望参与那方面的工作,或全部工作,或具体模块,甚至测试,建议都非常欢迎;目前网站只提供Demo,参与项目的更多开发文档在项目组内交流。在项目组完全成立后,将公告停止人员加入,项目的进展情况也会随时报告给大家。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值