Make it work, then make it work better, stronger, faster...
The latest beta update is now NASMX v1.0b3.
http://sourceforge.net/projects/nasmx/This version includes the following:
Fixed* Nested unions were not properly calculating offsets from root structure.
New* Nasm v2.09rc6 is now included in this release (along with GoLink/GoRC) in the /bin directory.
* Nameless nested structures and unions
This feature allows the creation of complex structures without requiring a predefined structure definition.
nasmx/demos/win32/demo13 shows how powerful and easy this is now.
* NASMX_ALIGN
This macro permits the developer to properly align structure field variables when using NASMX.
You can already see this in action in the new /inc/win32/dde.inc file which also makes use of nested unions.
The argument to this macro should be a power of 2, ie: 2, 4, 8, 16, 32, 64 and will align the next field or end of structure on that boundary.
Speed Ups* Macro to macro calls performed within the nasmx.inc file are now inlined to speed preprocessing. This reduced compile time of the win32 demos by 2 seconds each. The 4-5 second compile time is due to the preprocessing which occurs on the currently huge (soon to be put on a diet) windows.inc file.
TodoThe following represent major time involvement to bring NASMX up to date:
* Separation of windows.inc into individual files will help preprocessing tremendously. It should also make it easier to manage since the goal is to more closely follow the Microsoft SDK header structure where it makes sense to do so. For example, the very first file separated is /inc/win32/dde.inc
* Fix the various windows structure definitions. Many of the old NASMX-2009-01-12 windows structures are invalid. For example, compare the old NASMX-2009-01-12 windows.inc DDEDATA structure to the new NASMX v1.0b3 dde.inc DDEDATA structure for why this is.
* Bitfields - How to (should we?) generalize and integrate:
struct {
unsigned short fVar1:8,
fVar2:4,
unused:4;
}
* 64-bit support
Now that the structure/union and typedef system appear to be more stabilized 64-bit support will gain greater importance. We'll have another future beta release once the 64-bit support code has been merged in and tested.
There is plenty here to chew on, so please download and test. Thank you!