Naming  ....



RosAsm algorithms for Equates and Macros replacements use the Byte high bit as a flag. So you can't use for symbols namings ASCII Characters higher than 127. In Practice: 'a' > 'Z'. There is no error check for this.


RosAsm is case insensitive. (Case sensitive Api calls are 'Text').


Out of Mnemonics and Registers names, the reserved symbols are:


[  ]  Data, Equates, Macros Declarations.

{ } Nested declarations.


D$  B$  W$ Q$  R$  F$  T$  O$  X$  for declarations and addressings


=   is reserved for Equates alternate syntax. If you want to reuse this symbol for something else, just declare it at first position, just after the '['. 

RosAsm considers this symbol as Alternate Equates forms only when it is between two spaces. (  [=  =  e]  works as expected).


Align is reserved for Code Alignment. 


DB, inside Code, is reserved for Hexa Bytes Declarations/Reservations.


Main and MainWindowProc are reserved for Win32 model sources organization.


The point character may be used inside name. (you may even declare, for example, a Macro which name is only one point).


The '_' character  is stripped by the Source Parser and counts for nop. It remains significant only in cases of text (Api calls, for example) and of Win Equates.



Naming in mono-file Programming


When declaring a new Symbol in a very wide source, instead of spoiling your time at compiling to get a double declaration error message, just Right-Click on the fresh written name. No move > OK.


Do not be afraid of giving your symbols very long, full talking names. The more expressive they are, the better it is for you, later, when maintaining your work. Full talking names are much better than end comments. They do not increase the compile time and save much of yours.


Because Multi-Files (Modular) programming is a very bad way to go (producing the same results and difficulties as C does), RosAsm compiles mono-files. This, too, may have some inconvenience when you want to reuse some chunks of code from one Application to another. So, you should never name a global Variable as, for example, ''W1'' and you should take the time to write a real full talking name; example: ''ThisWindowWidth'', so that, when pasting for reuse, the chances for naming conflicts become very low and the readability remains very high.


Same for Routines naming. Never calling any Routine ''Search:'', but, instead, ''SearchForTheNextLineInUserText:'', will save you from many future difficulties.



~~~~~~~