flat assembler
Message board for the users of flat assembler.

Index > IDE Development > "Fresh" work version with code completition

Goto page Previous  1, 2, 3, 4  Next
Author
Thread Post new topic Reply to topic
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 11 Jan 2004, 15:23
Tommy wrote:
1) <Ctrl+Space> and then trying to write "..Open" (in Fresh project) the list closes... (in other word: when there's no characters at caret, all characters which are typed should count...!?)


Well, I am working on this, but there is a small problem with double points. The labels begining with ".." are special case in FASM, so maybe I should not include them in the list at all.

Quote:
2) Using arrows etc. to navigate should close the list...
- it is in my To-Do list.

Quote:
3) Double clicking on a list item should select the item...

Fixed.

Quote:
4) BTW: the list is not sorted (have you attempted to do so, or is this on your schedule?)


I think the list should not be alphabeticaly sorted. It should be sorted by values of the labels. (maybe)

Thanks for the help. Those problems with XP are really annoing. Very Happy

Regards
Post 11 Jan 2004, 15:23
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy 11 Jan 2004, 15:32
Good! Smile You're welcome! Wink

Cheers,
Tommy
Post 11 Jan 2004, 15:32
View user's profile Send private message Visit poster's website Reply with quote
Betov



Joined: 17 Jun 2003
Posts: 98
Betov 11 Jan 2004, 16:18
Just curious, John:

How did you fix the GetKeyState Word.dWord problem? (i had the same problem,... and i solved it by doing it all a completely different manner, that i am now happy with, but, i'd like to know your way...). Would be usefull as a Win32 Template.


Betov.
Post 11 Jan 2004, 16:18
View user's profile Send private message Visit poster's website Reply with quote
pelaillo
Missing in inaction


Joined: 19 Jun 2003
Posts: 878
Location: Colombia
pelaillo 11 Jan 2004, 17:26
This picture is for the first compilation. The second performs even worst:
19.1 sec
And the third is even worst: Fresh crash Crying or Very sad (I guess a memory leak)

(The test was: Run Fresh, load fresh.fpr and hit the compile button for the three compilation processes)

p.s. The AthlonXP 2600 isn't nominally 2600 MHz, it's only a brand commercial trick and mine is not overclocked.


Description:
Filesize: 6.19 KB
Viewed: 14999 Time(s)

fresh.png


Post 11 Jan 2004, 17:26
View user's profile Send private message Yahoo Messenger Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 11 Jan 2004, 19:10
Betov wrote:
Just curious, John:
How did you fix the GetKeyState Word.dWord problem? (i had the same problem,... and i solved it by doing it all a completely different manner, that i am now happy with, but, i'd like to know your way...). Would be usefull as a Win32 Template.
Betov.


Well, it is actually not a problem. I simply read the help not very carefully.

The function GetKeyState, returns the value with high-order bit = 1 if the key is pressed and 0 if the key is not pressed. The trick was that the "high-order" bit is actually 15-th bit not 31-th. The other problem is that Win95/98 actually returns 32bit value where the eax is sign extended ax.
(movsx eax, ax), so the 15-th bit still have the right value and 31-th bit have the same value as 15-th.
In WinXP the high-order word of eax is always 0 (movzx eax, ax), so the only proper way is to check 15-th bit.
If you make the test this way it will work on Win95 and WinXP without problems.
Code:
    test    eax, $8000
    jnz     .pressed

;...or even:

    test    ax, ax
    js      .pressed

    


The strange thing is that WinXP actually returns 16bit result, but Win98 returns 32bit result. And some people claim that Win95 is not truly 32bit OS. Very Happy

Regards.


Last edited by JohnFound on 11 Jan 2004, 20:30; edited 1 time in total
Post 11 Jan 2004, 19:10
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 11 Jan 2004, 19:14
pelaillo wrote:
This picture is for the first compilation. The second performs even worst: 19.1 sec
And the third is even worst: Fresh crash Crying or Very sad (I guess a memory leak)


Hi, pelaillo. It seems that you test the previous not fixed version. There was horrible bug that make huge memory leaks. Please, download the file from this thread, a few posts abouve (I will not remove it, until your next report) and test with it. I tested it with MemProof and there is very minor memory leaks or even none. ( Or I missed something huge. Confused )

Regards.
Post 11 Jan 2004, 19:14
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 11 Jan 2004, 23:35
Hi all.
I upload at the site of Fresh the next WORK version with almost finished code completition behaviour and some compilation speed optimisations.

For the team:
There are changes in StrLib. If someone wants to improve it, please, use this version, it is with faster StrNew function.

Regards.
Post 11 Jan 2004, 23:35
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 12 Jan 2004, 15:14
Hi again.

New work version uploaded... Smile The file have a name: FreshWork1_0_1C_05.rar If you download another file, refresh cashes.

I made some speed improvements and added detailed timing report in compilation messages.

Please, give me some detailed feedback how Fresh compiles "Fresh.fpr" on different platforms.

Thanks.


Description: Compilation times on my 500MHz AMD K6-2 with Win98 lite
Filesize: 4.35 KB
Viewed: 15093 Time(s)

Speed1.png


Post 12 Jan 2004, 15:14
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
ipadilla



Joined: 08 Sep 2003
Posts: 11
ipadilla 12 Jan 2004, 18:57
I am trying to download the new file, but it is not possible. ???
regards
ipadilla
Post 12 Jan 2004, 18:57
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 12 Jan 2004, 19:24
ipadilla wrote:
I am trying to download the new file, but it is not possible.


Sorry, it is my fault. Embarassed It should be OK now.

Regards.
Post 12 Jan 2004, 19:24
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy 12 Jan 2004, 20:00
Good news John, I just tested the new version, and guess what: the speed has decreased with 2 seconds (from 8 to 6 secs) Wink

Keep it up!

Tommy
Post 12 Jan 2004, 20:00
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 12 Jan 2004, 20:06
Hi Tommy.
Please, give me some details: Like in my screenshot above (of course text form is OK too)

Regards.
Post 12 Jan 2004, 20:06
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
decard



Joined: 11 Sep 2003
Posts: 1092
Location: Poland
decard 12 Jan 2004, 20:07
on P266MMX, WinME:
Message Window wrote:

total time: 55 sec
preprocessing time: 20,678 sec
parsing time: 16,908 sec
label capturing time: 5,227 sec
assembling time: 12,832 sec
formatting time: 0,051 sec

please don't laugh Razz
It's strange that preprocessing took so much, while on your mashine it was almost equal to assembling time.
Post 12 Jan 2004, 20:07
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 12 Jan 2004, 20:32
Hi,decard.

Your CPU is approximately twice slower, than mine. ( 266 - 500 MHz ), So you can see, that the stages that requre processor power are approximately only twice slower:
Assembling: 12 - 5
Label capturing: 5 - 2.6

But on preprocessing stage, FASM works with file system. So, the low speed is because of WinME, IMHO. It is offtopic ofcourse, but WinME is too heavy for your machine. Better install Win95 (more stabble than 9Cool or Win98 lite - I am happy with it. Since I install it, my computer simply works without any problems.

Regards.
Post 12 Jan 2004, 20:32
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
ipadilla



Joined: 08 Sep 2003
Posts: 11
ipadilla 12 Jan 2004, 20:34
Pentium III 450 Hz, Windows 98 SE.
Regards
ipadilla


Description:
Filesize: 4.25 KB
Viewed: 15043 Time(s)

Screen02.gif


Post 12 Jan 2004, 20:34
View user's profile Send private message Reply with quote
sina



Joined: 18 Aug 2003
Posts: 132
Location: istanbul turkey
sina 12 Jan 2004, 23:12
the last one was faster for me Smile
this new one is ~+1 seconds

p4 2400 winxp pro


Description:
Filesize: 5.15 KB
Viewed: 15032 Time(s)

new.PNG


Post 12 Jan 2004, 23:12
View user's profile Send private message ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 12 Jan 2004, 23:36
VeSCeRa wrote:
the last one was faster for me Smile this new one is ~+1


Well, visibly I have to make something with preprocessing. It is too slow on almost every machine. But it will be in the next version. I want to finish the whole code completition. There is only one problem remaining - when you type local label begining with dot, Fresh should find what is current parent label and to show only his local labels in the CC box.

Ah, and to make CC to work without compiling all the time of course. Smile

Regards.
Post 12 Jan 2004, 23:36
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
decard



Joined: 11 Sep 2003
Posts: 1092
Location: Poland
decard 13 Jan 2004, 13:05
What about adding some aligment directives? I made an experiment: I added "align 4" before every subroutine in preproce.inc file, like:
Code:
align 4
      concatenate_lf:
        lods    byte [esi]
        cmp     al,0Dh
        je      concatenate_ok
        dec     esi
        jmp     concatenate_ok
align 4
      concatenate_cr:
        lods    byte [esi]
        cmp     al,0Ah
        je      concatenate_ok
        dec     esi
      concatenate_ok:
        inc     dword [esp]
        jmp     convert_line_data
align 4
      ignore_comment:
        lods    byte [esi]
(...)
    

When I compiled FRESH with this version of preprocessor, I got 17 sec instead of 20.
Post 13 Jan 2004, 13:05
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 13 Jan 2004, 13:43
decard wrote:
What about adding some aligment directives? I made an experiment: I added "align 4" before every subroutine in preproce.inc file, like:
When I compiled FRESH with this version of preprocessor, I got 17 sec instead of 20.


Hm, it is interesting. I know that some important procedures in the parser are aligned, but preprocessor is important too.

Now I am plaing with implementation of binary search in the parser label lists. It will improve the speed of the parser on big source. Now parser uses linear search, and it is slow. On other hand, for the binary search we will need sorted hash array, that will slow adding new labels, but avery label is adding once, but searching many times.

Well, definately it is not a good idea to change FASM sources, but I hope we can convince Privalov, to insert most important changes in the official release.

Regards.
Post 13 Jan 2004, 13:43
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Betov



Joined: 17 Jun 2003
Posts: 98
Betov 13 Jan 2004, 14:19
Aligning Code is not that much important as aligning DATA really IS. So, if FASM does not does this automatically (i suppose it does not), and if this may be the case(s) that some Data that would not be aligned on their own Boundary, this is the very first thing i would do (really twice faster).

Betov.
Post 13 Jan 2004, 14:19
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, 4  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.