flat assembler
Message board for the users of flat assembler.

Index > IDE Development > Wink 6.92.03 (vertical selection + compiling)

Goto page Previous  1, 2, 3 ... 9, 10, 11 ... 19, 20, 21  Next
Author
Thread Post new topic Reply to topic
edemko



Joined: 18 Jul 2009
Posts: 549
edemko
Don't talk about Fresh.
Tomasz, you have told, that was not Tomasz's fasm without ESC-key Wink
You develop fasmw, ouadji develops wink, Tomasz sometimes uses wink.
You can write wink and edemko will use it.
Actually i was talking about the generosity of forum members who no way take money, see Smile
Post 09 Sep 2010, 11:38
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17492
Location: In your JS exploiting you and your system
revolution
Tomasz Grysztar wrote:
revolution wrote:
Oh. Looks like another forced update to fasmarm is needed.
If you need any assistance, just ask.
Thanks for the offer. But already done now.
Post 09 Sep 2010, 11:59
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 7756
Location: Kraków, Poland
Tomasz Grysztar
edemko wrote:
Tomasz, you have told, that was not Tomasz's fasm without ESC-key Wink
You develop fasmw, ouadji develops wink, Tomasz sometimes uses wink.
Well, in fact I don't use it, I was just testing it. But even when testing it was very uncomfortable for me when Esc key did not work. However that was just my personal remark - it is actually possible that others would prefer Esc not to do what it does in fasmw.
Post 09 Sep 2010, 12:26
View user's profile Send private message Visit poster's website Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji
Quote:

Well, in fact I don't use it, I was just testing it. But even when testing it was very uncomfortable for me when Esc key did not work.
However that was just my personal remark - it is actually possible that others would prefer Esc not to do what it does in fasmw.

Esc key works like fasmw in Wink 6.54
Quote:

Do you think ouadji or someone else will claim money compensation?

never for me. I develop for fun, nothing else.

assembler is a drug for me. Razz
money, money, money ... is there anything else in this world ?

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 09 Sep 2010, 14:37
View user's profile Send private message Send e-mail Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
Hi, ouadji Smile

As far as I know, wink calculator hasn't exponentiation among available operations. Would it be possible to add it?

Another thing, in the 'fasmw_654.INI' file you have such line:
Code:
IDEL_color=0,128,0    
Shouldn't be
Code:
IDLE_color=0,128,0    
instead? Wink (The same typo you have in a 'Appearance' dialog: "IDEL control color".)
Post 10 Sep 2010, 09:52
View user's profile Send private message Visit poster's website Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
Two more features which are present in PSPad for example but absent in wink:
  • source code line numbering,

  • possibility of exhibition of the hidden chars (tabulation, space and end of the line) represented as shown below:

    • tabulation "»",

    • space "·",

    • end of the line "¶".
Smile
Post 10 Sep 2010, 10:19
View user's profile Send private message Visit poster's website Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
One more thing in my monologue Wink : you should add to your "Calculator" dialog a checkbox with a label "Signed" (for example) which will allow user to choose between signed or unsigned numbers (now always 0FFFFFFFFFFFFFFFFh is represented as -1 in decimal numbering system).

BTW, I'm testing your wink under the Win7 and seems that your calculator causes crashes. Unfortunately, I'm not able to reproduce these bugs (once I input only '-' sign and wink crashed).
Post 10 Sep 2010, 12:12
View user's profile Send private message Visit poster's website Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji

Sorry MHajduk, but there are no changes to the calculator.
It's the original Tomasz's calculator.
Edit a feature like the calculator doesn't interest me.

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 10 Sep 2010, 18:30
View user's profile Send private message Send e-mail Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
OK, I understood (FASM versions have been changing so fast lately...). But what about another features (source line numbering and exhibition of the hidden chars)?
Post 10 Sep 2010, 18:48
View user's profile Send private message Visit poster's website Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji
In fact, this is not my focus right now. There is still much to be done to develop the specific functionality of Wink. My idea is not to build an IDE, this is not the Wink spirit. I think everything has already been done in this area. I understand your request, but add "traditional" features to fasmw is not my priority. That said, it is true that a line numbering in fasmw would be something interesting.
It is much more interesting and fun for me to develop algorithms for real-time parsing .. I like this kind of programming ! Also, add a line numbering requires a good knowledge of Windows API ... I don't have that knowledge.
i'm a algorytms_man, a opcode_man ... not a api_man. I like the real programming. Use the Windows functions, it's like using black boxes (in-out) i don't like that. (sorry for my english, i do my best)

ps: thank you for the typo, i will fix that.

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 10 Sep 2010, 19:32
View user's profile Send private message Send e-mail Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
Thanks for the explanations. Smile

Yeah, that's true, real-time lexical analysis and following parsing is a one of the most interesting parts of the programming IMO... and a one of the most difficult aswell. You've done a great job for extending the basic features of the fasm IDE, I really appreciate this. Keep it up! Smile
Post 10 Sep 2010, 19:49
View user's profile Send private message Visit poster's website Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji

yes, but it's not just the lexical analysys ... i'm still at the beginning of this problem.
But every time you press a key, wink scans each time the entire file (not during the scrolling),
global labels, local labels, ".." labels, "@@:" labels, proc/endp, multilines comments, backslash ...
and to be fully compatible in all cases with the long lines,
and respect all the characteristics of the fasm compiler
i assure you that wink makes amazing things
Quote:
You've done a great job ... i really appreciate this
thank you MHajduk Razz

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 10 Sep 2010, 20:45
View user's profile Send private message Send e-mail Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
I'm curious how do you perform string comparisons in order to highlight particular tokens. I guess that in the 'key_W.wink' you store the table of the reserved words (I took a look inside) and you just compare strings using 'cmpsb' ... I think it would be more efficient if you compared 32-bit hashes of those names instead... and the 'key_W.wink' would be smaller. Wink
Post 10 Sep 2010, 20:57
View user's profile Send private message Visit poster's website Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji

32-bit hashes ?
i don't understand this.
hashes ? in english, what does that mean?

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 10 Sep 2010, 21:03
View user's profile Send private message Send e-mail Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
I meant 32-bit numbers which are some kind of ~unique~ (in theory, but it works anyway) identifiers corresponding to the keyword. See here: http://en.wikipedia.org/wiki/Cryptographic_hash_function

Assume that you need to check if some token belongs to the category of the reserved words. You don't need to compare whole strings in loop, you just calculate 32-bit hash of your token and search in your table of dwords if such value exists. If yes then you highlight somehow this token.

Here you have an exemplary macro (slightly changed) which was used for calculation of the hashes of the imported function names (it was done to hide imports from the DLL libraries). You can fill your table of hashes using this macro:
Code:
macro make_hash Token*
{
        common 
     local ..result, ..char, ..temp

  virtual at 0

            db Token
            ..result = 0x7C90EB94
               ..temp = 0

              repeat $
                    load ..char byte from % - 1

                     if ..char = 0
                               break
                       end if

                  ..temp   = (..temp and 0xffffff00) or ..char
                        ..temp   = ..temp shl 25 or ..temp shr 7
                    ..result = ..result xor ..temp
              end repeat

      end virtual

     dd (..result and 0xffffffff)
}
    
Similar operations should be done for the compared token in the real-time:
Code:
     
            xor     eax, eax
            
            mov     edx, 7C90EB94h
      
            .hash:
                  ror     eax, 7
                      xor     edx, eax
                    
                    lodsb                   
                    
                    test    al, al          
                    
                    jnz     .hash
    
Smile
Post 10 Sep 2010, 21:13
View user's profile Send private message Visit poster's website Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji
very interesting idea indeed,
I really like this way to "encode" and search tokens
I'll look at that more closely,
thank you MHajduk

edit:
I'll test this algorithm on all keywords
and check if all values are different.

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 10 Sep 2010, 21:37
View user's profile Send private message Send e-mail Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6038
Location: Poland
MHajduk
ouadji wrote:
edit:
I'll test this algorithm on all keywords
and check if all values are different.
Collisions would be much less probable if you take in consideration qwords instead of dwords, of course. Changes which have to be done in code would be really only "cosmetic". Wink
Post 10 Sep 2010, 23:01
View user's profile Send private message Visit poster's website Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji
Code:
       
                xor     eax, eax
                
                mov     edx, 7C90EB94h
        
                .hash:
                        ror     eax, 7
                        xor     edx, eax
                        
                        lodsb                   
                        
                        test    al, al          
                        
                        jnz     .hash 
    


with "dword", this algorythm does not work.

'blendpd' and 'addpd'

the two words give the same result.

96D7E3C8h for both

even with a qword, this first result does not give me confidence in this algorithm.
It is a pity , I liked this idea.

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 10 Sep 2010, 23:52
View user's profile Send private message Send e-mail Reply with quote
baldr



Joined: 19 Mar 2008
Posts: 1651
baldr
ouadji,

Collisions are inevitable. You can design hash function carefully to minimize them, though: mnemonics are composed from limited alphabet, up to six-digit base-36 number fits into 32 bits.

In fact hashes are often used as a first stage of exact matching algorithms. Consider file comparison to find duplicates: first compare hashes (CRC-32, for example), when they match, compare files bytewise.
Post 11 Sep 2010, 06:22
View user's profile Send private message Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 2945
Location: vpcmipstrm
bitRAKE
Will a perfect hash table work?
http://burtleburtle.net/bob/hash/perfect.html

The same hash could be used in another table for dynamic content. Basically, all FASM keywords would be excluded with a single string compare.


Last edited by bitRAKE on 11 Sep 2010, 07:05; edited 1 time in total
Post 11 Sep 2010, 06:53
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3 ... 9, 10, 11 ... 19, 20, 21  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-2020, Tomasz Grysztar. Also on YouTube, Twitter.

Website powered by rwasa.