English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General > Coders. Releases

 
 
Thread Tools
Old 08 June 2024, 14:32   #1
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
vasm 2.0

The vasm 2.0beta is approaching the end of its beta-test phase and I would like to release it before my holidays in July. The biggest new feature - support for cpu-architectures which don't use 8-bit bytes - is not relevant for Amiga, but there are also many changes which are.

So this is last opportunity to report any annoying bugs or important features which you would like to see in the release. If you have something, speak, or contact me by email!
phx is offline  
Old 08 June 2024, 21:38   #2
frakswe
Registered User
 
frakswe's Avatar
 
Join Date: Jul 2018
Location: Laughingstock
Age: 45
Posts: 27
Minor thing but I'd like to see CC?=gcc set in the Makefile , then it picks up the env var if found else defaults to gcc.
frakswe is offline  
Old 09 June 2024, 12:16   #3
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Does it really default to gcc, when CC is not defined your environment?

I tried it here (NetBSD with gcc, no CC environment set) and my "GNU Make 4.2.1" calls "cc" instead of "gcc". Which is not a problem for me, as cc is hard-linked to gcc. But I'm unsure if this would cause problems on other systems. Does Linux have a cc-link?
phx is offline  
Old 09 June 2024, 15:20   #4
frakswe
Registered User
 
frakswe's Avatar
 
Join Date: Jul 2018
Location: Laughingstock
Age: 45
Posts: 27
Was set to "CC=gcc" on OpenBSD until recently , now it's "CC=cc" . If you feel uncertain then keep it as is, it's not that critical.

Last edited by frakswe; 09 June 2024 at 15:26.
frakswe is offline  
Old 09 June 2024, 16:43   #5
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,186
Quote:
Originally Posted by phx View Post
The biggest new feature - support for cpu-architectures which don't use 8-bit bytes - is not relevant for Amiga, but there are also many changes which are.
Just curious, which architectures would that be? Vasm for pdp8 or something else?

pdp8 support would actually be nice, vasm is a bit nicer then PALBART.
Locutus is offline  
Old 09 June 2024, 16:51   #6
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,186
Ah, found the answer in the source code tarball.
Locutus is offline  
Old 09 June 2024, 19:07   #7
pipper
Registered User
 
Join Date: Jul 2017
Location: San Jose
Posts: 676
@phx is it possible me to have an official source mirror repository on GitHub?
pipper is offline  
Old 09 June 2024, 22:06   #8
copse
Registered User
 
Join Date: Jul 2009
Location: Lala Land
Posts: 601
It would be good to be able to use github's online tools :-)
copse is offline  
Old 09 June 2024, 22:14   #9
roondar
Registered User
 
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,436
Nice to hear v2.0 is approaching release. Looking forward to finding out what's new once it's released
roondar is offline  
Old 09 June 2024, 22:40   #10
hitchhikr
Registered User
 
Join Date: Jun 2008
Location: somewhere else
Posts: 523
If something like that isn't implemented (yet) i'd like to have a specific command to be able to redefine a register alias several times (equr only allow to define a register alias once), like the equ/set couple (setr ?)
hitchhikr is offline  
Old 10 June 2024, 02:16   #11
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Quote:
Originally Posted by Locutus View Post
Just curious, which architectures would that be? Vasm for pdp8 or something else?
A 16-bit and a 32-bit architecture for a start, but PDP8 is a nice idea! In the beginning our goal were byte-sizes which are a multiple of 8, but other sizes may indeed work now. I'm curious to try it. (The output to an 8-bit based file system will have some padding bits, of course).

Quote:
Originally Posted by pipper View Post
@phx is it possible me to have an official source mirror repository on GitHub?
What makes it "official"? The only official source can only be our private CVS server, which shows up as daily source snapshot every night. You are free to clone that to a public repository of course, as long as you don't modify it. But anybody could do.

Quote:
Originally Posted by hitchhikr View Post
If something like that isn't implemented (yet) i'd like to have a specific command to be able to redefine a register alias several times (equr only allow to define a register alias once), like the equ/set couple (setr ?)
Option
-regsymredef
should allow that since 9 years.
phx is offline  
Old 10 June 2024, 03:58   #12
pipper
Registered User
 
Join Date: Jul 2017
Location: San Jose
Posts: 676
Quote:
Originally Posted by phx View Post
What makes it "official"? The only official source can only be our private CVS server, which shows up as daily source snapshot every night. You are free to clone that to a public repository of course, as long as you don't modify it.
The “me” in my original question was not supposed to be there. Sorry for the confusion. Im asking for an official place on GitHub to find the sources. There are some “mirror” repos for vasm on there (among them one I created), but it’d be tedious to keep them up to date. It would be great to have a mirror done by the actual devs for 100% ground truth. It should be possible to even setup an automated mechanism to pull things from cvs directly(?!)
pipper is offline  
Old 10 June 2024, 07:37   #13
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,794
Nice...

would it be possible to have REPTN being used in labels?

Like

REPT 20
mylabel_REPTN:
ENDR
?
Tigerskunk is offline  
Old 10 June 2024, 15:09   #14
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Quote:
Originally Posted by pipper View Post
It would be great to have a mirror done by the actual devs for 100% ground truth. It should be possible to even setup an automated mechanism to pull things from cvs directly(?!)
You mean, including the history logs? No. Please understand that vasm is an open source project, and we also take suggestions and patches, but it is not a public community project. All development is private between Volker and me.

So a daily source snapshot is the best you can get. Not sure how much you can automate that.
phx is offline  
Old 10 June 2024, 15:21   #15
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Quote:
Originally Posted by Tigerskunk View Post
would it be possible to have REPTN being used in labels?
Text replacements are only performed in macro mode. Although this could be done with some effort, I'm not sure if it is really required.
Currently you have two possibilities to reach your goal.

1. By a macro which defines a unique global label:
Code:
mylab   macro
lab\@:
        endm
2. By defining a new isolated block of local labels with
inline
:
Code:
        rept    20
        inline
        moveq   #2,d0
.1:     dbf     d0,.1
        einline
        endr
phx is offline  
Old 10 June 2024, 17:13   #16
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,194
Quote:
Originally Posted by phx View Post
Text replacements are only performed in macro mode.
Here's a pattern I've used a couple of times:
Code:
colfunc macro
colfunc\<col>:
.cnt set 0
        rept screend
        ifne (col&(1<<.cnt))
        bset.b  d1,.cnt*rowbytes(a0)
        else
        bclr.b  d1,.cnt*rowbytes(a0)
        endc
.cnt set .cnt+1
        endr
        rts
        endm

col set 0
        rept (1<<screend)
        colfunc
col set col+1
        endr
paraj is offline  
Old 10 June 2024, 19:07   #17
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Quote:
Originally Posted by paraj View Post
Code:
colfunc\<col>:
Yes, that's also option 1 (macro). But using
\<symbol>
instead of
\@
is a smart variation, in case you need specific label names.
phx is offline  
Old 10 June 2024, 19:26   #18
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,194
Quote:
Originally Posted by phx View Post
Yes, that's also option 1 (macro). But using
\<symbol>
instead of
\@
is a smart variation, in case you need specific label names.
Yes, just supplementing your answer
The specific labels come in handy if followed by (from same code):
Code:
colfuncentry macro
        dc.w    colfunc\<col>-colfunctab
        endm

colfunctab:
col set 0
        rept (1<<screend)
        colfuncentry
col set col+1
        endr
A little bit cumbersome, but just to show some real world code, and perhaps inspire Tigerskunk. Something like that might be hard to express properly with a "REPT n" label. While the current implementation might be a bit cumbersome to use (needing indirection) it is flexible enough to allow this code (from https://eab.abime.net/showthread.php?t=112182):
Code:
merge macro
x set \1
y set \2
x1 set \1-1
y1 set \2-1
rx set 4-\1
ry set 8-\2
merge\<x>\<y>:
        cmp.w   d\<ry>,d\<rx>
        bls.b   .x\@
        move.w  d\<ry>,(a1)+
        bra     merge\<x>\<y1>
.x\@:
        move.w  d\<rx>,(a1)+
        bra     merge\<x1>\<y>
        endm

ycnt set 4
        rept 4
xcnt set 4
        rept 4
        merge xcnt,ycnt
xcnt set xcnt-1
        endr
ycnt set ycnt-1
        endr
Anyway, this is just to say, that the feature is not required, and a "half-baked" approach wouldn't help in more advanced cases anyway.

BTW looking forward to v2.0
paraj is offline  
Old 11 June 2024, 11:25   #19
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,794
No offense, but this looks overly complicated for the simple iterator on global labels that I need here.

Anyway, you do you of course...
Tigerskunk is offline  
Old 11 June 2024, 17:24   #20
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
The std-syntax module provides the
.irp
directive for "iterating repeat". You can specifiy some values which will be assigned to a symbol:
Code:
        .irp    sym,10,20,30,40
lab\sym:
        .byte   \sym
        .endr
Maybe I can implement an
IRP
directive into mot-syntax, if this is useful. (Although I don't like to invent new directives, which make vasm incompatible with other assemblers.)
phx is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Vasm freehand Coders. Asm / Hardware 2 25 November 2023 23:51
Question about XREF vs XDEF (vasm 1.8 vs vasm 1.9) roondar Coders. Asm / Hardware 8 01 May 2023 20:59
Vasm division by 0 Quagliarulo Coders. Asm / Hardware 4 27 July 2020 11:30
If statements with Vasm LaBodilsen Coders. Asm / Hardware 5 24 September 2019 17:55
vasm 1.5 RFC phx Coders. General 30 11 December 2010 02:08

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 14:30.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.12142 seconds with 13 queries