mellosouls
2 hours ago
One of the coolest things about BBC BASIC was the ability to slot inline assembly, and (I think?) reference the same variables in both modes as in the code on the op site.
[BASIC]
FOR I% = 1 TO (TILES_Z - 1) / 2
[
[ASSEMBLY]
OPT pass%
EQUB &E3, TILES_X \ Tile row data (even)
EQUB &E4, TILES_X \ Tile row data (odd)
][BASIC AGAIN]
NEXT
[
https://lander.bbcelite.com/source/all/lander_a.html#landsca...
MarkMoxon
2 hours ago
I love the BASIC assembler on the BBC Micro and Archimedes. It is a work of art.
Incidentally, the fully buildable Lander source code in the website's accompanying git repository is also in BBC BASIC format - as an attempt to imagine what the original source might have looked like.
A Python script converts it to vasm-compatible format for compiling, but you can also build it on a real Archimedes if you want to. See https://lander.bbcelite.com/about_site/building_lander.html for details.
Sophira
an hour ago
To clarify for anyone else reading this: BBC BASIC had an assembler built in so that you could write in-line assembly language to be assembled at a given memory location, and the source is in the format used by the inline assembler.
It doesn't mean there's a port of the game written completely in BASIC!