Http://www.ngnc.net/NGNcalc2x/development_handbook.htm
《
Ngncalc2x development manual
Ngnc
The development mode of is an open project organization mode. The project organization and development mode is linked by clear, transparent, and relatively independent functions/interfaces between modules, the formal start of the project and the stage of the project are not clearly defined. By establishing a self-improvement and update mechanism, the project development and project R & D are integrated into one whole, with each Development Unit (one module and one sub-system) both tests and feedback mechanisms are required. The entire project is immersed in the dynamic balance of feedback. The ngnc scripting language serves as a standard interface for lubrication. The uncertain development cycle is a concept of ngnc development, because the development plan can only be subjective, there is no theoretical basis for implementation, not to mention the vague boundaries between R & D and development;
Ngncalc2x
The original development intention is to demonstrate the ngnc development mode with the sample of the Hello world class. The development boundary lies in the GUI engine, script logic and parameters. The dependency between the two parts is clearly visible; so far, the development process is the transformation from R & D to development;
- First, abstract
Core Data Structure and register structure of calc2;
Then, compile the calculator operation logic and the script logic according to the operation logic;
The display logic is separated and
Ngnc's pseudo-function mechanism (function declaration without function bodies, like a box in the flowchart) Simplifies the development depth;
Interrupted
1: To cooperate with the debugging of the calculator logic, the display logic is provided in the simplest form of plug-in to facilitate logic debugging. At this time, ngnide has not been developed yet, debugging is implemented through "debugging code" insertion, which can be seen from the ngncalc2 script source code;
Ngnide
During the development process, because the ngnc virtual machine of the dosconsole cannot be debugged in the GUI system, the simconsl module is specially compiled to simulate the dosconsole in Gui mode, while the simulation of the dosconsole is easy, it is also because the display logic of the calculator is clearly separated. The integrated display logic includes only a few simple functions for the input;
Simconsole
Display logic, because the display logic should be standardized in the engine part, so its development is completely a VC environment, and it follows the system design specifications, top-down mode, simconsl is abstracted. videomemory abstraction and keyinputbuffer abstraction all absorb BIOS ideas;
Core display usage
The wm_paint display loop of GUI re-draws videomemory to implement the Display engine;
Videomemory
The current status of the layer is very simple. It is only a 80x25 character matrix. In the future, you can add a display attribute layer for the character matrix to obtain rich display information;
Gui wmpaint
Display loop. In the future, OpenGL/d3d can be used for management. A new video layer can be added to provide corresponding display information;
With the new changes in the display engine system, the number of functions of the display control interface is also increased, and the requirements for scripts are also increased, such as the increase in parameters of the control effect;
The expansion of the function logic of the calculator is another direction. You can design a powerful calculator by using scripts and data abstraction without ignoring the engine. For example: formula editing capability;
Based on
Development of universal GUI graphics engine: extracting ngncalc2x GUI graphics engine can provide development for future applications with similar interfaces, and accumulating the description of common windows, developed into a beautywindow system to make the window vivid;
OpenGL/d3d
Is another rich engine system worthy of development;
The calculator logic itself has been accumulated, and can become a classic after being enriched to powerful enough; the script logic of other applications can also be accumulated;
Interested in joining
Ngncalc2x development friends contact us, ngncalc2x@ngnc.net
Here is
The ngncalc2x design document serves as the project start point for your reference. Please refer to the descriptions in this article to describe whether you want to participate in that work, or all work, or specific modules or even tests. We suggest you welcome them. Currently, the website only provides demo, more development documents involved in the project can be shared within the project team. After the project team is fully established, stop the announcement and report the progress of the project to you at any time.