Hi! I've been a bit disappointed with acme's macro functionality, namely the fact that macro expansion is not detailed in the assembler report, which makes interpreting addresses and setting breakpoints impossible.
Here is an extract from the report, showing how normal assembly looks, and then macros only taking one line, with an incomplete string of compiled bytes to the left.
Code:
22 804e 20c982 jsr acia_lcd_putc
23 8051 fa plx
24 8052 e8 inx
25 8053 4c4880 jmp -
26 8056 48656c6c6f2c2057...+ !text "Hello, World!", 0
27 ++
28 8064 a90d lda # "\r" ; add new line in console only
29 8066 209d84 jsr acia_sync_putc
30 8069 a90a lda # "\n"
31 806b 209d84 jsr acia_sync_putc
32
33 806e a9de8d847fa9088d... +play_tone_hz_ms 880, 100
34
35 809b 485adaa90da0f1a2... +delay_ms 1000
I'd like to find a text pre-processor that can be invoked prior to acme to expand macros to proper assembly. Ideally the syntax would not break syntax highlighting (which means it would still be valid assembly, maybe hidden behind comments?). So far I've looked at GPP
https://logological.org/gpp, which doesn't do multiline macros in a nice way. I also looked at how ca65 does macros, and it has the same issue of not showing expansion in the listing.
Before I end up rolling my own, does anyone know of a good option?