The MASM Forum

Projects => ObjAsm => Topic started by: HSE on November 13, 2020, 06:02:02 AM

Title: About $Obj() and assemblers
Post by: HSE on November 13, 2020, 06:02:02 AM
Hi all!

I have a little problem because UAsm32 lost his way in old macros that work perfectly in ML 6.14.

Using AsmC, there is some problems with $Obj() in HLL comparisons, but is easy to solve:

Code ( Original XMenu.inc) Select
.elseif [xdi].$Obj(XMenuItem).dType == MENU_TYPE_SEPARATOR

Code ( Modificaton for AsmC) Select
@CatStr(<.elseif [xdi].>,$Obj(XMenuItem),<.dType == MENU_TYPE_SEPARATOR>)

Note: apparently XMenu.inc is the only ObjAsm file frequently included in wich $Obj() is used like this.

Regards. HSE
Title: Re: About $Obj() and assemblers
Post by: Biterider on November 13, 2020, 06:46:09 AM
Hi HSE
Thank you for clarifying this usage.  :thumbsup:

I stopped using ML a long time ago because it is unable to handle deep macro nesting and the constant crashes (internal error ...) when it comes to larger code.

Biterider
Title: Re: About $Obj() and assemblers
Post by: HSE on November 14, 2020, 12:21:55 AM
Quote from: Biterider on November 13, 2020, 06:46:09 AM
I stopped using ML a long time ago because it is unable to handle deep macro nesting and the constant crashes (internal error ...) when it comes to larger code.

ML have restriccions in macro levels, length of lines, etc. very usefull for slow machines with little memory (perhaps around 1985) an never changed that. That could be easy to change if we have the source code. But lack the capacity to build macros inside macros, and don't understand relative paths. To modify that perhaps is not so easy, M$ don't need that.

UASM32 have some "features" with macros. I don't know very much because I only used it in ObjAsm projects very similar to demos previously tested, don't work with my most interesting projects.  Failures in errors reporting become a problem when projects growth.

AsmC is really impressive in many ways. But today I realize that version 2.29 is the last to work well using ObjAsm :biggrin:

Fun never end  :thumbsup: