@markmoxon I'm curious about the SKIP <bytes> directive which I've not seen before. e.g.
.RAND
SKIP 4
Is that defining a 4 byte global variable (.RAND), which is then allocated to the memory location wherever the counter happened to be on the zero page at compile time? Thus not having to hard code memory addresses?
@pauld Yes, that’s exactly what it does; SKIP reserves space by simply moving the assembly address on by that many bytes. You can also do the same with multiple EQUB 0 directives to insert the correct number of zeroes, but SKIP is more flexible.
I tend to use SKIP for memory addresses outside of binary files, and EQUBs for memory addresses that get saved as part of binary files (as one is skipping memory while the other explicitly sets a value) but when the value is zero, they do the same thing.
You can see how it fits in with the other BeebAsm directives here:
https://github.com/stardot/beebasm?tab=readme-ov-file#6-ASSEMBLER-DIRECTIVES
@pauld Yes, that’s exactly what it does; SKIP reserves space by simply moving the assembly address on by that many bytes. You can also do the same with multiple EQUB 0 directives to insert the correct number of zeroes, but SKIP is more flexible.
I tend to use SKIP for memory addresses outside of binary files, and EQUBs for memory addresses that get saved as part of binary files (as one is skipping memory while the other explicitly sets a value) but when the value is zero, they do the same thing.