flat assembler
Message board for the users of flat assembler.

Index > IDE Development > New version of Easy Code 2 (June 14, 2024)

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


Joined: 24 Aug 2004
Posts: 20303
Location: In your JS exploiting you and your system
revolution 20 Jan 2018, 14:36
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: 157
EasyCode 20 Jan 2018, 21:06
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: 157
EasyCode 20 Jan 2018, 21:18
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



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 20 Jan 2018, 22:27
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:size, def
        \{
                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:size, def
        \{
                if used name
                        extrn ename as name:size
                end if
                define state 1
        \}
        match =0 ename =as name, state def
        \{
                if used name
                        extrn ename as name
                end if
                define state 1
        \}
        match =0 name:size, state def
        \{
                if used name
                        extrn name:size
                end if
                define state 1
        \}
        match =0, state
        \{
                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: 195
Location: N 5.43564° E 100.3091°
yeohhs 21 Jan 2018, 04:53
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.
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: 157
EasyCode 21 Jan 2018, 08:13
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: 157
EasyCode 21 Jan 2018, 08:15
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: 157
EasyCode 21 Jan 2018, 14:25
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: 157
EasyCode 21 Jan 2018, 14:47
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



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 21 Jan 2018, 14:57
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: 157
EasyCode 21 Jan 2018, 20:39
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: 157
EasyCode 04 Feb 2018, 11:23
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: 195
Location: N 5.43564° E 100.3091°
yeohhs 07 Feb 2018, 09:11
Thanks! Very Happy
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: 157
EasyCode 07 Feb 2018, 19:08
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: 157
EasyCode 30 May 2018, 17:52
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
EasyCode



Joined: 26 Jul 2015
Posts: 157
EasyCode 06 Jul 2018, 18:54
Hi all,

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

http://easycode.cat/English/Download/EasyCode20200004Eng.zip (English version)
http://easycode.cat/Download/EasyCode20200004Cat.zip (Catalan version)
http://easycode.cat/Spanish/Download/EasyCode20200004Esp.zip (Spanish version)

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


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

1. Now the code page identifier can be set in the project's 'Version' resource.



Bug Fixes:
=======

1. Some unicode characters (Chinese, Russian, Arabic, etc.) were not correctly shown. Please carefully read the 'Programming Unicode applications' topic in the Easy Code help file.



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 06 Jul 2018, 18:54
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 157
EasyCode 30 Oct 2018, 18:48
Hi all,

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

http://easycode.cat/English/Download/EasyCode20200005Eng.zip (English version)
http://easycode.cat/Download/EasyCode20200005Cat.zip (Catalan version)
http://easycode.cat/Spanish/Download/EasyCode20200005Esp.zip (Spanish version)

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


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

1. New 'ole32.inc', 'oleaut32.inc', 'vfw32.inc', 'ole32.lib', 'oleaut32.lib' and 'vfw32.lib' files for 64-bit ASMC, FASM, JWASM, MASM SOLASM and UASM projects.



Bug Fixes:
=======

1. When changing the "Text Enconding" option, the flag for saving the project was not activated, so the new encoding mode was not saved (unless any other project option had been modified).

2. Easy Code crashed when a container object (Group, Picture, Rebar), containing child controls, was copied to clipboard.



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 Oct 2018, 18:48
View user's profile Send private message Reply with quote
ProMiNick



Joined: 24 Mar 2012
Posts: 798
Location: Russian Federation, Sochi
ProMiNick 30 Oct 2018, 21:52
Easy Code, I don`t say anything about IDE, sorry. Initialy I dislike it (not because it is bad or something else, it is just not for me - because thistool is only for Windows, I code for windows for now, but I hate windows from Vista and above)...

But your includes are perfect (the way you realize them I mean). There are more to clean (duplicates: for example "if defined APP_WIN64" could enclose not only whole structures or all import names, but structure parts or just specific to bitness import names) (Ofcourse that what I see as duplicate, may be isn`t it if you target that includes looks same in different assemblers and they can`t do things as fasm can)

I have a little suggestion about 1 peace of includes. this aproach is much faster - first three if blocks completely unneeded
Code:
macro extrn def
{
        define state 0
        match ename =as name:size, def  \{ define state used name \}
        match =0 ename =as name, state def \{ define state used name \}
        match =0 name:size, state def \{ define state used name \}
        if state | used def ; If fasm not parsed second condition in case of truliness first one - this row is workable
                extrn def
        end if
}    


P.S. Could I steel NTDDIs constants and way apis separated with NTDDI without including that they grabbed from your includes (I could have such information from other source - but you combine it in one place and in convinient form).
Post 30 Oct 2018, 21:52
View user's profile Send private message Send e-mail Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 157
EasyCode 05 Nov 2018, 19:31
Hi ProMiNick,

I really appreciate your words about the Easy Code IDE!

Yes, you are right, the IDE was thought for MASM32 and Windows, which is its natural environment. The 2.0 and later versions were adapted to other assemblers.

Thanks for your suggestion, I will take it into account.

Regards!
Post 05 Nov 2018, 19:31
View user's profile Send private message Reply with quote
EasyCode



Joined: 26 Jul 2015
Posts: 157
EasyCode 06 Nov 2018, 17:15
Hi all,

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

http://easycode.cat/English/Download/EasyCode20200006Eng.zip (English version)
http://easycode.cat/Download/EasyCode20200006Cat.zip (Catalan version)
http://easycode.cat/Spanish/Download/EasyCode20200006Esp.zip (Spanish version)

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


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

None



Bug Fixes:
=======

1. Easy Code crashed when copying a single child control to clipboard. Please forgive me for this serious error.



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 06 Nov 2018, 17:15
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, 7, 8, 9  Next

< 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


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.