Includes  ....



Before running RosAsm, you should create a Folder, and unzip in this Folder:


Equates.zip (> Equates.equ).

Functions.zip (> Functions.api).

Structures.zip (> Structures.str).


Once done, run RosAsm, open the [Configuration] Tab Control, from main menu, select the [Other Files] Tab, and Click upon the [Equates] Button, in order to indicate to RosAsm where the OS data are located, by pointing to the 'Equates.equ' File.


Take careful note that this Path configuration, for the Equates information, is also to be considered the path for the Structures and Functions.



RosAsm does not really use any 'include File', like other Assemblers do (too slow, overhead typings and configurations). Instead, it reads ready to upload Files, whose formats depend on the Data Types:



For Structures, it reads an ASCII File containing the Structures written in a convention making the [Structure] feature job easier (See [Struct] Option in the main Menu). At least, you need Structures.str to have the OS Structures enabled from the Dialog. But you can add as many .str Files as you want. If several .str are found, RosAsm will modify the [Struct] Menu, by creating a Child Menu offering as many choices as files.



For api Functions, the File is nothing but an information Document. RosAsm does not use it, at all, for compilation. This is simply the Information you see when Right-Clicking upon an Api Call. Though, for High Level Interpretations, when disassembling an executable, this File may be also used, for pointing out the name of the api call Parameters.



For Equates, RosAsm needs at least one File with a '.equ' extension containing the ASCII version of all Win32 Equates. Its name is 'Equates.equ', and is available at the RosAsm page.



At launch time, RosAsm tries to open the '.equ' File(s), and computes them into fast, ready to compile encoded Data. All those Equates are the ones you do not have to take care of declaring inside your Sources: You just have to use them with a leading '&'. Once encoded two Files are saved back to Disk, 'Equates.nam' and 'Equates.num', so that the next launch time will just have to recover them instead of compiling them. To force re-compilation, in case of new Equates versions, or additions of more '*.equ' Files, just delete 'Equates.nam' and Equates.num', or run the [Tools] Menu option for [Rebuild Equates]


Note: The writing convention for '.equ' file is 100% rigid (for speed and simplicity purpose):


No blank line

Each line is: One Name / one space / one Hexa (RosAsm syntax without DashLine) / one CR/LF

The Equates Names must be given upper case.

The File must be ended by one CR/LF.

The Equates should be sorted in alphabetical order (UltraEdit does it in one click). RosAsm Parser does not require this, but it should be sorted for making the maintainers job easier.


Any fault in these rigid rules will result in unpredictable behavior. Flat users do not have to modify the include Files anyway. The RosAsm users group will do its best to provide all wished files for DirectX / OpenGL / ... and such, at the RosAsm Page (all this is completely new with RosAsm V.4.04a).



Since V.4.07a, the *.equ Files rules have been modified as follow:


You can now have the same Equate Name declared in 2 different Files. This is useful, for example, to enable the usage of Equates having different values. Let us take an example: As a general rule, we tend to implement in 'Equates.inc' the very last version of Equates. Let us say that we have some Equate Name with one Value for DX8 available in 'Equates.inc', that the same Equate has a different Value for DX6, and that you want to write an Application for DX6 -and not for DX7-. Just saving, aside 'Equates.inc', your 'DX7.equ' file, will silently substitute the Value you provide, in this 'side-File', to the default one.


This very simple method enables you, in fact, to redefine and/or to implement by yourself, any Equates you want.


The simpler way to modify your local Equates sets settings is to, for example, rename the Files you do not want any more, from 'xxx.equ' into 'xxx.eqv', -or reverse, for enabling them- and to re-run the [Rebuild Equates] Menu Option.

~~~~~~~