The MASM Forum

Projects => Rarely Used Projects => GoAsm => Topic started by: wjr on November 29, 2014, 11:30:23 AM

Title: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: wjr on November 29, 2014, 11:30:23 AM
GoAsm – version 0.59 now available here http://www.godevtool.com/Goasm.zip (http://www.godevtool.com/Goasm.zip) with the following changes:

GoAsm - version 0.59.0.1 now up with the following adjustments:


GoLink – version 1.0.1.0 now available here http://www.godevtool.com/Golink.zip (http://www.godevtool.com/Golink.zip) with the following changes:

For the GoAsm string fix, there was an undocumented partial carry over from GoRC (which retains a doubled-up quote as that quote within a string). The intended GoAsm support for the leading and trailing case is now documented.

As for quicker processing, I know, only by milliseconds. Still, without include files and primarily use of unscoped re-usable labels within procedures, possibly up to ~26% quicker. Overall most likely closer to ~1% for others, possibly more for smaller programs with up to ~15% quicker going through include files.
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: Yuri on November 30, 2014, 10:50:35 PM
  • added #if #elseif #elif conditional operators && and || (simple left to right precedence)

Thanks, Wayne, that was my request. Now I can simplify quite a bit of code. :icon_cool:
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: FlySky on December 06, 2014, 11:50:57 PM
Great progress on GoAsm wjr,

not sure but I experience a problem when compiling an older project:

DATA? SECTION
;global used variables
context               CONTEXT <>
//pbi                  PROCESS_BASIC_INFORMATION <>
winversion               OSVERSIONINFOEX <>

The error comes here when compiling the source --> at the winversion line:

unexpected material <>

I am calling the function like this:
mov D[winversion.dwOSVersionInfoSize], sizeof OSVERSIONINFOEX
invoke GetVersionEx, offset winversion

using the earlier version of GoAsm 0.58.0.4 it compiles just fine, maybe you can look into it.
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: rsala on December 07, 2014, 09:29:59 AM
GoAsm 0.59 IMPORTANT ISSUES

Hi Wayne,

There are some important issues I have detected in GoAsm 0.59 that did not happen in previous versions:

TestMacro1(%1) MACRO
   Mov Eax, %1
   Ret
ENDM

GoAsm fires the following error:

Unknown mnemonic, instruction, redefinition or directive:-
TestMacro1(%1) Macro


You can solve this issue by Including the macro in a section (but that should not be necessary):

.Const

TestMacro1(%1) MACRO
   Mov Eax, %1
   Ret
ENDM

But then GoAsm complains again with:

Use square brackets to address memory, ADDR or OFFSET to get address:-
Mov Eax, %1


This new issue can be solved by using brackets:

.Const

TestMacro1(%1) MACRO
   Mov Eax, [%1]
   Ret
ENDM

But then if another macro is defined:

.Const

TestMacro1(%1) MACRO
   Mov Eax, [%1]
   Ret
ENDM

TestMacro2(%1) MACRO
   Mov Eax, [%1]
   Ret
ENDM

GoAsm fires the following error:

Label of this name already declared:-
%1) Macro


It seems that arguments name cannot be repited, which has no sense for macros.

Finally, the following splitted line:

Invoke CreateFile, Addr ASCIIName, GENERIC_READ, 0, \
                NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL

Gives the error:

Expecting a parameter after comma in INVOKE
Defined in Line 312 of the include file winnt.inc as:
80000000h


The "\" char does not do its job and you cannot have splitted lines. If you put all line together (unsplitted), then it works.

All this did not happen in previous versions and it can be a real mess for all projects coded before this last version of GoAsm.

I attach a test code where you can see all errors commented above (hope it can help).

Regards,

Ramon
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: wjr on December 07, 2014, 06:16:19 PM
Sorry about that, despite efforts at avoiding errors with flag changes and program flow rearranging, a few still surprisingly slipped through. At least they were quick and easy to find and fix. GoAsm version 0.59.0.1 now available.
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: FlySky on December 07, 2014, 07:16:43 PM
Wayne,

Thanks for all your efforts, 0.59.0.1 works like a charm!!.
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: rsala on December 07, 2014, 07:20:26 PM
Wayne,

Thank you very much!

Version 0.59.0.1 works fine.
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: shankle on January 07, 2015, 02:41:03 AM
Hi Wjr,
I guess you know the url for GoAsm and GoLink doesn't work.
Could you post one that does?
Thank you.
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: wjr on January 07, 2015, 08:02:11 AM
Thanks, I didn't, but I do now as does Jeremy - things should be back up as usual soon, but it will take a few days...
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: Gunther on January 07, 2015, 08:49:56 AM
Thanks, I didn't, but I do now as does Jeremy - things should be back up as usual soon, but it will take a few days...

That's good news. I've used GoLink for some projects with nasm/yasm. It's a good linker. Let us know about the necessary update.

Gunther
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: wjr on January 09, 2015, 04:51:40 PM
The website is back up...
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: SHDA on January 09, 2015, 10:47:02 PM
FINALLY! I could dload them.
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: Gunther on January 09, 2015, 11:34:14 PM
The download works for me now. I've downloaded both (GoAsm and GoLink) and they are working well.

Gunther
Title: Re: GoAsm 0.59 and GoLink 1.0.1.0 updates
Post by: shankle on January 10, 2015, 12:00:40 AM
Thanks WJR :biggrin: