flat assembler
Message board for the users of flat assembler.
 Home   FAQ   Search   Register 
 Profile   Log in to check your private messages   Log in 
flat assembler > IDE Development > New version of Easy Code 2 (May 30, 2018)

Goto page Previous  1, 2, 3, 4, 5, 6
Author
Thread Post new topic Reply to topic
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 15809
Location: Misner space

EasyCode: The standard macros that come in the fasm download only include imports that are used within the code. They are wrapped within an "if used" clause. This eliminates many problems with missing API functions unless the code actually needs them. Can you make your setup do the same? That way users won't have to keep manually editing includes until they find things work for them.
Post 20 Jan 2018, 14:36
View user's profile Send private message Visit poster's website Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Hi,

First of all I would like to thank all help and support you have always given to me, I really appreciate it, and I must say that Fasm is an excellent tool.


Quote:
The standard macros that come in the fasm download only include imports that are used within the code.



That is absolutely right and I am sorry if I did not explain exactly what I meant. As you know, Fasm does not use a linker, so for EC v2 "classic" projects there is no problem. However, in order to build "visual" projects EC v2 needs to link some libraries. That is why it includes various ".inc" files for classic and visual projects in the "\EasyCode\Include\Fasm" folder. Since the ".lib" files are the same that AsmC, Jwasm, Masm, PoAsm and Uasm use, I cannot adapt them exactly to Fasm, but I carefully work on that and they work in most cases as demonstrated in the Fasm examples, both 32-bit/64-bit, which build and work fine if everything is well configured.

If I make an include and library file from a Windows 10 dll and use them to build an application, it works perfectly well in a previous version of Windows (of course not calling any of the exclusive functions of Win10) if built with Masm (or any of its clones), but not always with Fasm even if none of the Windows 10 functions is called in the source code. However, this is an EC v2 responsability, NOT FASM, that I cannot avoid completely, but in most cases EC v2 can deal with it and works fine.

That is all what I meant!

Regards,

Ramon Sala


Last edited by EasyCode on 20 Jan 2018, 21:18; edited 1 time in total
Post 20 Jan 2018, 21:06
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Tomasz,


Quote:
You can use a macro wrapper for "extrn" with the "if used" block to generate symbol entry only if it is actually used by the project.


Could you please show me how to make that "macro wrapper"?

Thanks in advance!
Post 20 Jan 2018, 21:18
View user's profile Send private message Reply with quote
Tomasz Grysztar
Assembly Artist


Joined: 16 Jun 2003
Posts: 6824
Location: Kraków, Poland


EasyCode wrote:
Could you please show me how to make that "macro wrapper"?

If all the "extrn" lines would have exactly the same form as in your sample, then this very simple macro would suffice:

Code:
macro extrn def
{
        match ename =as name:sizedef
        \{
                if used name
                        extrn ename as name:size
                end if
        \}
}

But to cover all possible syntax variants of "extrn" macro needs to become a bit more complex (unfortunately fasm 1 does not have the "else match" feature like fasmg):

Code:
macro extrn def
{
        define state 0
        match ename =as name:sizedef
        \{
                if used name
                        extrn ename as name:size
                end if
                define state 1
        \}
        match =0 ename =as namestate def
        \{
                if used name
                        extrn ename as name
                end if
                define state 1
        \}
        match =0 name:sizestate def
        \{
                if used name
                        extrn name:size
                end if
                define state 1
        \}
        match =0state
        \{
                if used def
                        extrn def
                end if
        \}
}

Post 20 Jan 2018, 22:27
View user's profile Send private message Visit poster's website Reply with quote
yeohhs



Joined: 19 Jan 2004
Posts: 168
Location: N 5.43564° E 100.3091°


EasyCode wrote:

Rebuild the project and it will probably run, but if there is another function that cannot be located, repeat the previous step, that is, search for the function name (both), comment them and rebuild the project.



woo-hoo! Very Happy Yes, it works. Thank you very much.

_________________
“It’s not that we have a short time to live, but that we waste a lot of it.”
-Lucius Annaeus Seneca
Post 21 Jan 2018, 04:53
View user's profile Send private message Visit poster's website Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Hi Tomasz,

Thank you very much for the macro example and for your constant support! I really appreciate it!

Regards.
Post 21 Jan 2018, 08:13
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

yeohhs,

Glad to hear it works!

Thank you very much for taking the time to test EC.

Regards.
Post 21 Jan 2018, 08:15
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Hi Tomasz,

My good friend Héctor A. Medina (and EC v2 contributor), has programmed a macro based on your example that works fine and solves the problem.

Thank you very much indeed!


Regards.
Post 21 Jan 2018, 14:25
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Hi again Tomasz,

I would like to ask for pemission in order to include the macro 'extrn def' you show me yesterday in next versions of EC v2.

Thanks.
Post 21 Jan 2018, 14:47
View user's profile Send private message Reply with quote
Tomasz Grysztar
Assembly Artist


Joined: 16 Jun 2003
Posts: 6824
Location: Kraków, Poland

My intention when posting it was to make it public domain. You're free to use it however you require.
Post 21 Jan 2018, 14:57
View user's profile Send private message Visit poster's website Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Thank you very much indeed!
Post 21 Jan 2018, 20:39
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Hi all,

A new version of Easy Code 2 has just been released (2.02.0.0002). Download it at:

http://easycode.cat/English/Download/EasyCode20200002Eng.zip (English version)
http://easycode.cat/Download/EasyCode20200002Cat.zip (Catalan version)
http://easycode.cat/Spanish/Download/EasyCode20200002Esp.zip (Spanish version)

Please follow the instructions in the Setup-Portable-Edition.txt file.


Added Features:
===========

1. New 'netapi32.inc' and 'netapi32.lib' files for 64-bit ASMC, FASM, JWASM, MASM and UASM projects.

2. New 'crypt32.inc' and 'crypt32.lib' files for 64-bit ASMC, FASM, JWASM, MASM and UASM projects.



Bug Fixes:
=======

1. The Tab control did not appear (it was not shown even being enabled) when creating a new project.



Deprecated Features:
===============

None


- Please read and follow the directions within the AsmC.txt, Fasm.txt, Masm.txt and UAsm.txt files located in the 'EasyCode' folder -



Enjoy Easy Code!
Post 04 Feb 2018, 11:23
View user's profile Send private message Reply with quote
yeohhs



Joined: 19 Jan 2004
Posts: 168
Location: N 5.43564° E 100.3091°

Thanks! Very Happy

_________________
“It’s not that we have a short time to live, but that we waste a lot of it.”
-Lucius Annaeus Seneca
Post 07 Feb 2018, 09:11
View user's profile Send private message Visit poster's website Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

You're welcome! Very Happy
Post 07 Feb 2018, 19:08
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 113

Hi all,

A new version of Easy Code 2 has just been released (2.02.0.0003). Download it at:

http://easycode.cat/English/Download/EasyCode20200003Eng.zip (English version)
http://easycode.cat/Download/EasyCode20200003Cat.zip (Catalan version)
http://easycode.cat/Spanish/Download/EasyCode20200003Esp.zip (Spanish version)

Please follow the instructions in the Setup-Portable-Edition.txt file.


Added Features:
===========

1. New support (configuration files and example projects) for the Solar Assembler, both 32-bit and 64-bit. Please run this latest version of Easy Code for the 'SolAsm.cfg' and 'SolAsm64.cfg' files to be created, and carefully read 'The Solar Assembler' topic in the Easy Code help file.



Bug Fixes:
=======

1. Fixed some minor issues of the syntax beautifier.



Deprecated Features:
===============

None


- Please read and follow the directions within the AsmC.txt, Fasm.txt, Masm.txt and UAsm.txt files located in the 'EasyCode' folder -



Enjoy Easy Code!
Post 30 May 2018, 17:52
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4, 5, 6

< Last Thread | Next Thread >

Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Main index   Download   Documentation   Examples   Message board
Copyright © 2004-2018, Tomasz Grysztar.
Powered by rwasa.