flat assembler
Message board for the users of flat assembler.

Index > IDE Development > Fresh 2.0.3 - Semi portable :D

Author
Thread Post new topic Reply to topic
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
Today I published the next version of Fresh - 2.0.3
The main difference is that the big part of the project is implemented using FreshLib and thus is portable.
The only pure Win32 part of the project is the GUI, because FreshLib is not yet implemented to the needed extent.
After this release, I will concentrate mainly on FreshLib in order to make Fresh fully portable at least for Linux and Win32.

WhatsNew.txt wrote:
version 2.0.3 alpha (15.01.2011)

[+] The next in a row, big restructure of the source code:

FreshLib is implemented for following libraries:
- macros (macro/allmacros.asm)
- equates (equates/allequates.asm)
- imports (imports/allimports.asm)
- the structure of the program ( compiler/executable.inc )
- memory allocations ( data/memory.asm )
- data handling (data/arrays.asm; data/memstream.asm)
- file operations (data/files.asm)
- String operations (data/strlib.asm) StrLib is now portable as well.
For details, read the header of StrLib.asm file.
Some functions are not backward compatible with the old version.

[+] Updated compiler to FASM v1.69.29
[+] New 'text' macro introduced. The final goal is to provide automatic handling
of the string constants in order to avoid duplications in definitions and
waste of label names. Unfortunately, the speed of the macros is too low for
practical use, so now only a stub is provided for future development.
[-] Auto set for "lib" directory alias in Fresh.ini
[-] Fixed bug in AsmEdit
[-] Fixed bug in AddCompilationStatistics (fasm.asm)
[-] Fixed very old bug in LabelsList.asm.


Regards
Post 21 Jan 2011, 23:46
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
ouadji



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

JohnFound,

Does that interest you ? (or not)

multilines comment
and/or
display the number of bytes out of range


Image

Image

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



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

bug report


Image

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



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
Hi ouadji.
About the multiline comments and the error message - how it is implemented? I am not willing to make changes in the FASM compiler. Because of compatibility reasons you know. Smile

About the bug reported - I simply can't reproduce it. Maybe I have to change to another skin or something.

Regards
Post 01 Dec 2011, 11:35
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
ouadji



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

The modified compiler is 100% compatible with the original compiler.
I'm agree with you and It's also my first priority.
Here is my additional code to display the number of bytes out of range.(+)

Code:
;==========================================================
;data +
;------
                db 11
mess_999        db ' >999 bytes'
                db 06
mess_bytes      db ' bytes'
                db 07
mess_1byte      db ' 1 byte'

block           dd ?

factor_div      db 0,1,10,100

;X86_64.INC
;----------
jump_out_of_range:
;-------------------------------------->+
      bts     [block],4
   jc      @F
  mov     [out_of_range],eax
;--------------------------------------<+
@@:   cmp     [error_line],0
;==========================================================
;PREPROCE.INC
;------------
preprocessor:
        mov     [block],0                       ;+ init
     mov     [out_of_range],0                ;+
  mov     edi,characters
;==========================================================
;ERRORS.INC
;----------
relative_jump_out_of_range:

  call    Compute_and_Display     ;+

      push    _relative_jump_out_of_range
 jmp     assembler_error
;==========================================================
;MESSAGES.INC
;------------
_relative_jump_out_of_range db \
       ' relative jump out of range  '       ;+ <- nothing after "'"   
out_of_range dd 3 dup 0                     ;+

;original:(-)
;_relative_jump_out_of_range db 'relative jump out of range',0
;==========================================================
Compute_and_Display: ;+

           btr     [block],4
           jnc     .exit_a     ;in theory, never.

          mov     edi,out_of_range
            mov     eax,[edi]
           cdq
         xor     eax,edx
             sub     eax,127
             jc      .exit_b

         mov     esi,mess_1byte
              cmp     eax,1
               je      .direct_

                mov     esi,mess_999
                cmp     eax,1000
            jnc     .direct_

                mov     ecx,3

@@:            div     [factor_div + ecx]
          add     al,30h
              stosb
               shr     ax,8
                loop    @B

              mov     esi,mess_bytes

.direct_:     movzx   ecx,byte[esi-1]
        rep  movsb

.exit_b:       mov     byte[edi],0
.exit_a:     retd
;==========================================================    

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 01 Dec 2011, 13:21
View user's profile Send private message Send e-mail Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
Hm, the changes of so many files from the FASM distribution is definitely not "compatible". In every new version of FASM you have to make these changes again and again. This is what I want to avoid.
Post 01 Dec 2011, 13:57
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
ouadji



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

ok, but i think this is an interesting feature.
For those interested in the optimization, if only a few bytes are out of range, this feature helps to see if it is possible or not to remove this error.
What do the fasm users think about that? useful, useless?

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 01 Dec 2011, 14:17
View user's profile Send private message Send e-mail Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< 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 GitHub, YouTube, Twitter.

Website powered by rwasa.