News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

How can I use @ProcName ?

Started by mineiro, February 19, 2023, 10:35:28 PM

Previous topic - Next topic

jj2007

Quote from: jj2007 on January 28, 2024, 10:45:06 AMThen there is AsmC: about 25-30% faster than UAsm, so roughly a factor 7-8 faster than MASM. Nice, but Nidud has added so much eerie C stuff to his assembler that I don't trust it.

Warning: recent versions have a bug: they don't like empty lines in include files. Use UAsm instead.

Vortex

#46
As a long time Poasm user, I can tell that it's nearly compatible with Masm except some differences in the macro engine. Poasm supports all the high-level constructs in 64-bit coding.

It would be interesting to try WinInc with Poasm :

Quote7. About WinInc
WinInc is a set of include files for Masm, UASM, JWasm or PoAsm created by h2incx.
It contains all includes required to build Win32 and Win64 applications or dlls.

https://www.terraspace.co.uk/uasm.html#p7

Vortex

Hi Jochen,

With thanks to Nidud, the problem is solved. Checking winextra.inc, there is a missing parenthesis on line 1864 :

IS_VALIDSTATEBITS                equ (IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or 80000000h or 40000000h
should be change to :

IS_VALIDSTATEBITS                equ (IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or 80000000h or 40000000h)
Reading from Nidud's GitHub account :

QuoteI reported this back in 2021 (now deleted) so I assumed the SDK was updated. As one of the key features in Asmc is to span lines within brackets, a missing end bracket may have this consequence.

There was also a tool added for this purpose to detect sloppy code (as Masm doesn't really care).

https://github.com/nidud/asmc/tree/master/source/tools/brackets

I downloaded the SDK from here. There may be newer ones but when I run the tool on winextra.inc it report the following:

C:\masm32\include\winextra.inc(1684)
The line:

IS_VALIDSTATEBITS equ (IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or 80000000h or 40000000h
So what happens here is that lines are added from this point (1684) until the end of the IFDEF statement before the error is reported.

In the latest version of Asmc the dynamic line size code is optimized to consume larger data arrays, limited only by available memory.

jj2007

Quote from: Vortex on February 01, 2024, 05:25:21 AMI reported this back in 2021 (now deleted)

Nidud himself deleted his posts, as we all know.

So that tricks with the missing brackets works, thanks Erol. Neither Masm nor UAsm had problems with it, apparently they are more error tolerant.

Anyway, Nidud should work on his error detection and reporting. It's just awful, almost as bad as a C++ compiler.