flat assembler
Message board for the users of flat assembler.

Index > Main > What next in new version Fasmw?

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 19 Mar 2023, 07:09
This topic about new version upcomming Fasmw.
And New features.

My first question, when releasing next version Fasmw?
And what new features upcomming?
Post 19 Mar 2023, 07:09
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20212
Location: In your JS exploiting you and your system
revolution 19 Mar 2023, 07:12
Are you asking generally for fasm or only about the IDE fasmw?
Post 19 Mar 2023, 07:12
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 19 Mar 2023, 07:29
Generally Fasm.
But IDE enteresting too.
Post 19 Mar 2023, 07:29
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 19 Mar 2023, 09:04
in the ide, really good thing is to have a side foldable treeview with capacity to open files as new tabs.
Post 19 Mar 2023, 09:04
View user's profile Send private message Visit poster's website Reply with quote
ProMiNick



Joined: 24 Mar 2012
Posts: 795
Location: Russian Federation, Sochi
ProMiNick 19 Mar 2023, 09:17
As I understood correct in active development is fasmg only.
in fasm only fixed (if they found) bugs, supported new officialy documented instructions and become backporting from fasmg features that could be easy backported.
what could be updated outside of core?
application compiled out of the box should be compatible with large as possible number of environment - because of that included set of winapi should never be updated, but structs could be updated without of loss compatibility, they just reserve additional space for struct fields not used in previous versions of windows (however some structs should exist in different version forms - window control structs, but it seems to me such ones not present in standard includes at all), equations could be freely updated to be extended with values added with new windows versions.
what will be interesting to see in IDE? migration of linenumbers from status bar (in status bar of course only active cursor pos which X coordinate accords to current linenumber) to NC(not client) area of flat editor, work with NC area interesting by itself (last one most likely will be mod under official fasm than update)
what could be added by entusiasts? standalone app that grab text from clipboard parse it as resourse definition at fasm syntax and allowing to change it graphicaly with ability of returning current state back to clipboard, that app should be able to grab(and request if some unresolved) equations from paths, files, clipboard or user input.
Post 19 Mar 2023, 09:17
View user's profile Send private message Send e-mail Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 25 Mar 2023, 10:30
Exist equ.
But not exist neq.
Code:
V1 equ eax
T neq V1 ;mean store name V1
Display T ;get V1 not eax
;if we do split chars and numbers
match e=0, T {display e}  ;we get V, not eax! 


    
Post 25 Mar 2023, 10:30
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8346
Location: Kraków, Poland
Tomasz Grysztar 25 Mar 2023, 11:12
Roman wrote:
Exist equ.
But not exist neq.
Code:
V1 equ eax
T neq V1 ;mean store name V1
Display T ;get V1 not eax
;if we do split chars and numbers
match e=0, T {display e}  ;we get V, not eax! 
    
It's called DEFINE:
Code:
define T V1    
Post 25 Mar 2023, 11:12
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 25 Mar 2023, 12:10
Code:
V1 equ eax
V2 equ ebx
define T V1 
display T ;get V1

;But how get this ?
T+1=V2 ;? or how using T in rept and get V1 and V2 ?    


And how store fasm preprocessor V1 and V2 ?
I mean its table offset or pointers to V1 and V2.
Post 25 Mar 2023, 12:10
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8346
Location: Kraków, Poland
Tomasz Grysztar 25 Mar 2023, 13:11
To fasm's preprocessor "V1" is an indivisible token. You cannot split it unless you keep it split in advance, by manually defining separate parts:
Code:
V1 equ eax
V2 equ ebx

T equ V#1

match base#number, T { rept 1 next:number+1 \{ display V\#next \} }    
For anything more advance you may need to use fasmg.
Post 25 Mar 2023, 13:11
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 25 Mar 2023, 14:39
Thanks.
Little changed example.
Code:
define www  oo.@#2
match base#number, www { rept 2 next:number \{ display `base\#\`#next,13,10 \} }
;displayed
oo.@2
oo.@3
    
Post 25 Mar 2023, 14:39
View user's profile Send private message Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 25 Mar 2023, 15:10
V1 equ eax
V2 equ ebx

T equ V#1 ;This i am understood.

But how do in macro to define T, because macro using # ?
Code:
macro vequ a,e,[p] {
      ii equ 0
      forward      
      rept 1 x:ii+1 \{ ii equ x
      a#e#\#x  equ p
;i not understood how define num_oo.@2   oo.@#2       
      define num_#a#e#\#x  a#e#\\#x ;now this is right variant.
       \}    
      } 
display num_oo.@2 ;get oo.@#2     


Last edited by Roman on 27 Mar 2023, 13:47; edited 2 times in total
Post 25 Mar 2023, 15:10
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8346
Location: Kraków, Poland
Tomasz Grysztar 25 Mar 2023, 15:47
Add "\" before "#" for each additional enclosure you do. If you put "T equ V#1" inside a macro, it should become "T equ V\#1", and if you put it inside a REPT block inside a macro, it should become "T equ V\\#1", etc. The "\" character prevents the token from being processed in a macro block, but each time this happens, one "\" is cut off.
Post 25 Mar 2023, 15:47
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 02 Apr 2023, 07:51
Idea include text from windows clipboard.
For example i run my program and get in clipboard generated asm text code. MyPrint and myDigs
Code:
 
;text in clipboard
MyPrint a, b ;a b input param as like in fasm macro
Inc a
Mov [b], a
.... ;for fasm token its end text from clipboard
    


Now we run fasm compilation and get text from clipboard.
Code:
;in fasm code
Clipboard myDigs, params ;search in clipboard name myDigs and copy text to asm code for fasm compilation. 
Some fasm code
Clipboard myPrint, edx, buffer1
;fasm get this from clipboard
inc edx
mov [buffer1], edx
Clipboard myArr ;myArr absent in clipboard and fasm not put any text any code.
    


Or variant implement this Idea in virtual include.


Last edited by Roman on 02 Apr 2023, 11:43; edited 1 time in total
Post 02 Apr 2023, 07:51
View user's profile Send private message Reply with quote
FlierMate2



Joined: 21 Mar 2023
Posts: 39
FlierMate2 02 Apr 2023, 09:13
FASMW also can't display Unicode characters properly, is it just me having this issue?
Post 02 Apr 2023, 09:13
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20212
Location: In your JS exploiting you and your system
revolution 02 Apr 2023, 09:32
fasmw doesn't support Unicode for display. It is all just bytes. ASCII for the first 128 and then whatever your font has for the next 128.
Post 02 Apr 2023, 09:32
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 11 Apr 2023, 16:58
New value, new idea
fasm struc can this idea implement ?
Code:
macro a1 v { 
if op1 = 1
mov eax,v
end if
if op1 = 5
inc v
end if
if op1 = 7
mov [v],eax
end if
}
;define list
_%1 { 1,5,7 } ;new value. Like as list1 three  values
_%2 { Buffer1,Buffer2,Buffer3 } ;Like as list2 three  values

op1 _%1 ;equal op1 equ 1 and have another value op1.id = 1(we can using this  in macro too)
a1 _%2   ;like as a1 Buffer1

op1 _%1 ;equal op1 equ 5 and have another value op1.id = 2
a1 _%2._  ;equal Buffer1

op1 _%1 ;equal op1 equ 7 and have another value op1.id = 3
a1 Buffer10

op1 _%1 ;again equal op1 equ 1 and op1.id = 1
a1 _%2   ;as a1 Buffer2

op1 _%1.3 ;equal op1 equ 7
_%1 { 7,5,1 } ;change 
op1 _%1 ;equal op1 equ 7
op1 _%1 ;equal op1 equ 5
op1 _%1 ;equal op1 equ 1
restore _%1 ;return old variant as _%1 { 1,5,7 }

; nice variant
rept 3 {
op1 _%1 
a1 _%2   
}
    



Code:
macro aff1 v {
      if ppp_ = 1
         mov eax,v
else if ppp_ = 2
         mov ebx,v
else if ppp_ = 3
         mov ecx,v
      end if
      nop
      }
section '.code' code readable writeable executable
                AllFlts dd 10.0,11.5,4.5
              
Start:          ap1 equ 1
                ap2 equ 2
                ap3 equ 3
                vp1 equ AllFlts
                vp2 equ AllFlts+4
                vp3 equ AllFlts+8
rept 3 m:1 {    ppp_ equ ap#m
                aff1 [vp#m]
                     }      
                  
    
Post 11 Apr 2023, 16:58
View user's profile Send private message Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 16 Apr 2023, 11:54
Fasmw 1.73 have symbol convert number to text.
`22453

But not have symbol convert text to int or float number.

Code:
`$f"123" ;convert text to float 123.0
`$i"423" ;convert text to int 423
    
Post 16 Apr 2023, 11:54
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8346
Location: Kraków, Poland
Tomasz Grysztar 16 Apr 2023, 13:58
fasmg has EVAL for these kinds of problems. In practice it's rarely really needed, to be honest - but it's there. In case of fasm EVAL would be possible for preprocessor's language only. I could consider such limited back-port, but I'm not sure about practical value (to say the least).

What ProMiNick wrote above is generally a good summary - I'm not designing any new features for fasm 1 unless they are a back-port of something that has been first tried and proven with fasmg. And the design of fasmg was a natural consequence of considering all the things that people were requesting for fasm 1 over the years. fasmg was my answer to most of such recurring requests, and you are not going to get any better answer from me.

And ever since I invented CALM, it's all been moving further away from the limitations of the older engines. It's possible that my future assembler could be reduced just to CALM module, with even the language of fasmg implemented in form of compiled macros. It feels a bit like a "RISC vs CISC" analogy. Smile I'm not serious about it, though - there is no real need to make fasmg smaller.
Post 16 Apr 2023, 13:58
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1718
Roman 16 Apr 2023, 14:13
Quote:

but I'm not sure about practical value

This is open Era text parsing direct in fasm. Its very usefully!
For example convert 3d text data to float numbers for fasm binary data.
Code:
#OBJ Wavefront 3D model format using in 3D Max, Blender, Brush, May
# vertices text data for 3d mesh
  v 0.123 0.234 0.345 1.0
  v ...
  ...
  # texture uv coords
  vt 0.500 -1.352 
  vt ...
  ...
  # vertices normals
  vn 0.707 0.000 0.707
  vn ...
  ...
  # indices 
  f 1 2 3
    

Put this file in fasm virtual block and convert text to int or float numbers.
Post 16 Apr 2023, 14:13
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8346
Location: Kraków, Poland
Tomasz Grysztar 16 Apr 2023, 14:25
Couldn't you just write "v", "vt", "vn", "f" macros and then include the file directly?
Post 16 Apr 2023, 14:25
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 1, 2  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.