beebasm v1.10 Release Candidate 1
beebasm v1.10 Release Candidate 1
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
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
Re: beebasm v1.10 Release Candidate 1
Thanks for your work. Do macros now support passing in strings ?
Re: beebasm v1.10 Release Candidate 1
Yes, e.g.:
Code: Select all
MACRO STEP V
IF V <> ""
STEP LEFT$(V,LEN(V)-1)
PRINT V
ENDIF
ENDMACRO
STEP "HELLO"
Code: Select all
H
HE
HEL
HELL
HELLO
Re: beebasm v1.10 Release Candidate 1
Excellent
Re: beebasm v1.10 Release Candidate 1
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"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
"I program my home computer / Beam myself into the future"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
Re: beebasm v1.10 Release Candidate 1
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.
tricky is the author of the -writes feature and probably the only user at the moment so I'll ping him for comments.
Re: beebasm v1.10 Release Candidate 1
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.
Re: beebasm v1.10 Release Candidate 1
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.
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.
Re: beebasm v1.10 Release Candidate 1
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
Re: beebasm v1.10 Release Candidate 1
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.
- 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.
Re: beebasm v1.10 Release Candidate 1
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.
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"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
"I program my home computer / Beam myself into the future"
Follow me on Twitter
Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
Re: beebasm v1.10 Release Candidate 1
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 then0xC0DE 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.
Re: beebasm v1.10 Release Candidate 1
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
- Rich Talbot-Watkins
- Posts: 2054
- Joined: Thu Jan 13, 2005 5:20 pm
- Location: Palma, Mallorca
- Contact:
Re: beebasm v1.10 Release Candidate 1
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.
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.
- Rich Talbot-Watkins
- Posts: 2054
- Joined: Thu Jan 13, 2005 5:20 pm
- Location: Palma, Mallorca
- Contact:
Re: beebasm v1.10 Release Candidate 1
I'm glad you drew the line at not supporting the ": terminates \ comment" behaviour.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!
- Rich Talbot-Watkins
- Posts: 2054
- Joined: Thu Jan 13, 2005 5:20 pm
- Location: Palma, Mallorca
- Contact:
Re: beebasm v1.10 Release Candidate 1
Ha! Seemed like a step too far
Re: beebasm v1.10 Release Candidate 1
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.
Re: beebasm v1.10 Release Candidate 1
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...
IF DEFINED() or extra IFDEF keyword would fix my problem...
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
Re: beebasm v1.10 Release Candidate 1
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
Re: beebasm v1.10 Release Candidate 1
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.
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.