beebasm v1.10 Release Candidate 1

handy tools that can assist in the development of new software
Post Reply
killpack
Posts: 7
Joined: Wed Aug 17, 2022 12:31 am
Contact:

beebasm v1.10 Release Candidate 1

Post by killpack »

Hello everyone.

There is a new version of beebasm coming, v1.10, and we need your help testing it. This version has a lot of changes and we would like people to test out a release candidate. You can find the release candidate on https://github.com/stardot/beebasm/rele ... g/v1.10rc1.

Our plan is to release the new version in October which leaves about a month to test against your own projects. If you find a problem please create an issue on the projects Github page, https://github.com/stardot/beebasm/issues. If possible please include simple reproduction steps and which release candidate you are testing, ideally in the issue title.

Here are some of the changes in this version, an emphasis on testing these would be appreciated:
- Adds new string processing directives including UPPER$, LOWER$, LEFT$ and RIGHT$.
- Underscores now supported in numeric literals for readability, e.g. 1_000_000.
- PRINT directive no longer uses scientific notation to display 32-bit integers.
- Add -writes option to set the writes value in the generated disk image.
- beebasm compiled for ARM CPUs (eg Apple Silicon) now works.
- Reworking of ASSERTs handling, required for ARM CPU support.
- Improved EOL handling in SAVE directive.
- Automated test suite. Helps developers detect regressions before new releases are made.

If you want to test using beebasm on an ARM CPU you will need to compile the code manually.

Contributors in this release:
Charles Reilly
Steven Flintham
Dave Lambley
Julie Montoya
6502opcode

Thanks,

Chris
dp11
Posts: 1762
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by dp11 »

Thanks for your work. Do macros now support passing in strings ?
User avatar
ctr
Posts: 259
Joined: Wed Jul 16, 2014 3:53 pm
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by ctr »

dp11 wrote: Mon Aug 22, 2022 7:44 pm Thanks for your work. Do macros now support passing in strings ?
Yes, e.g.:

Code: Select all

MACRO STEP V
  IF V <> ""
    STEP LEFT$(V,LEN(V)-1)
    PRINT V
  ENDIF
ENDMACRO

STEP "HELLO"
produces

Code: Select all

H
HE
HEL
HELL
HELLO
dp11
Posts: 1762
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by dp11 »

Excellent
User avatar
0xC0DE
Posts: 1302
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by 0xC0DE »

Great work! Will definitely be testing this (was using v1.10 pre release for quite some time already)
0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
User avatar
ctr
Posts: 259
Joined: Wed Jul 16, 2014 3:53 pm
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by ctr »

Cross-posting issue 74.

tricky is the author of the -writes feature and probably the only user at the moment so I'll ping him for comments.
User avatar
tricky
Posts: 7712
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by tricky »

I don't mind what it is called, I called it writes because that is what it represents, but cycle is fine because that is the field that it sets.
User avatar
tricky
Posts: 7712
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by tricky »

I know this isn't a feature request thread, but ;)

I have a really unsightly hack to display the address that got overwritten when you get the overwriting error as well as attempting to display a CALLSTACK$. I wouldn't want to submit it, but a better integrated feature would be very useful very occasionally.

The other minor thing is the warning for not having any saves when creating a .ssd could probably be suppressed if there are other command that add files like PUTBASIC and PUTFILE (all I have in my final assembly pass).

These may only be useful to me and I have local workarounds, so may not even be worth adding to main.
User avatar
MarkMoxon
Posts: 615
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by MarkMoxon »

tricky wrote: Sat Aug 27, 2022 9:28 am The other minor thing is the warning for not having any saves when creating a .ssd could probably be suppressed if there are other command that add files like PUTBASIC and PUTFILE (all I have in my final assembly pass).
I would appreciate this one too. It’s really minor, but it’s slightly irritating getting a warning when compiling a script that writes files to a disc, but doesn’t contain a save command.

I have added it to the issues: https://github.com/stardot/beebasm/issues/78

Mark
killpack
Posts: 7
Joined: Wed Aug 17, 2022 12:31 am
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by killpack »

We have Release Candidate 2 with additional changes from rc1:
- Fix the COPYBLOCK fatal error introduced in rc1 (thanks to Mark Moxon for reporting and providing a test case)
- Fix erroneous warning about a missing SAVE directive when disk image directives were used
- -writes changes to -cycle
- version number bumped to 1.10rc2

The release candidate can be downloaded from https://github.com/stardot/beebasm/rele ... g/v1.10rc2.

Thanks to Charles Reilly and Steven Flintham for their contributions to rc2.
User avatar
0xC0DE
Posts: 1302
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by 0xC0DE »

Added an issue to github: https://github.com/stardot/beebasm/issues/82

Something that has been bugging me for quite some time: please allow negative constants as an operand, e.g. lda #-3
Negative constants work just fine for equb/w/d by the way and operands should behave the same IMHO.
0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
User avatar
Iapetus
Posts: 81
Joined: Wed Feb 12, 2014 1:08 pm
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by Iapetus »

0xC0DE wrote: Wed Aug 31, 2022 10:59 am Added an issue to github: https://github.com/stardot/beebasm/issues/82

Something that has been bugging me for quite some time: please allow negative constants as an operand, e.g. lda #-3
Negative constants work just fine for equb/w/d by the way and operands should behave the same IMHO.
Seconded! Yesterday I was looking at some oldish code and then I found lda #$fc and I was wondering why I didn't use the negative number instead as it is much more readable. I changed the value and got an error: error: Constant cannot be negative., that was the reason to have $fc then :)
User avatar
SKS1
Posts: 329
Joined: Sat Sep 19, 2020 12:04 am
Location: Highland Perthshire
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by SKS1 »

Use LDA #LO(expression) ? Coming from MASM and AAsm world popping in :LSB: and :MSB: is second nature to me.
Last edited by SKS1 on Thu Sep 01, 2022 3:35 pm, edited 1 time in total.
Miserable old curmudgeon who still likes a bit of an ARM wrestle now and then. Pi 4, 3, ARMX6, SA Risc PC, A540, A440
User avatar
Rich Talbot-Watkins
Posts: 2054
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by Rich Talbot-Watkins »

I've always used LDA #(-3 AND &FF).

I assume the original rationale for this was that the BBC BASIC assembler will emit the "Byte" error if you try to write a negative immediate operand. Originally BeebAsm attempted to maintain parity with BBC BASIC, and perhaps I thought that allowing negative constants could allow errors to slip through unnoticed, e.g. LDA #(something > somethingelse) which will be evaluated as 0 or -1 (rather than 0 or 1) as per BBC BASIC.
User avatar
Rich Talbot-Watkins
Posts: 2054
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by Rich Talbot-Watkins »

0xC0DE wrote: Wed Aug 31, 2022 10:59 am Negative constants work just fine for equb/w/d by the way and operands should behave the same IMHO.
Agree with that, but out of curiosity:
Beeb.JPG

Seems like I made a real point at the beginning of modelling the quirks of BBC BASIC!
SteveF
Posts: 1693
Joined: Fri Aug 28, 2015 9:34 pm
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by SteveF »

Rich Talbot-Watkins wrote: Thu Sep 01, 2022 3:43 pm Seems like I made a real point at the beginning of modelling the quirks of BBC BASIC!
I'm glad you drew the line at not supporting the ": terminates \ comment" behaviour. :-)
User avatar
Rich Talbot-Watkins
Posts: 2054
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by Rich Talbot-Watkins »

Ha! Seemed like a step too far :wink:
killpack
Posts: 7
Joined: Wed Aug 17, 2022 12:31 am
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by killpack »

To me this sounds like an enhancement saved for a future version of beebasm, so I took the liberty of marking that Issue as such.
cmorley
Posts: 1870
Joined: Sat Jul 30, 2016 8:11 pm
Location: Oxford
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by cmorley »

I've been playing around with MACROs in RC2.

Is there a way to do an IF on something being defined? An EXISTS or DEFINED keyword?

What I want to do is...

Code: Select all

MACRO testdefined label
	foo = label+"_suffix"
	IF DEFINED(EVAL(foo))
		PRINT foo," exists"
	ELSE
		PRINT foo," doesn't exist"
	ENDIF
ENDMACRO

bar_suffix = 10

testdefined bar
testdefined baz
IF DEFINED() or extra IFDEF keyword would fix my problem...
killpack
Posts: 7
Joined: Wed Aug 17, 2022 12:31 am
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by killpack »

I don't see this capability in v1.10 as present. It sounds like useful functionality that could be added in a future version. I've added a new issue to track this https://github.com/stardot/beebasm/issues/88
killpack
Posts: 7
Joined: Wed Aug 17, 2022 12:31 am
Contact:

Re: beebasm v1.10 Release Candidate 1

Post by killpack »

v1.10 has been released, viewtopic.php?f=55&t=25647

If you have any suggestions or bug reports please open them as an issue in GitHub https://github.com/stardot/beebasm/issues, not on this thread. Thank you.
Post Reply

Return to “development tools”