I know, I know, I changed the title. But, “Asi64” doesn’t really do it justice by itself!
Good title choice.
“Asi64 extends Racket to become a 6502 assembler. No need for scripting languages or half baked macro systems here - you have literally all of Racket and its amazing macro system on your side. “
Emphasis added. This is already the approach taken by numerous teams for high-productivity or safety-critical development extracted to languages such as C (Galios’ Ivory comes to mind). High-level assemblers have existed from Hyde’s HLA to Microsoft’s CoqASM. Doing it in Racket is a nice, middle ground with a lot of power and maybe easier, learning curve.
“It also has direct support for Vice, a popular Commodore 64 emulator, passing your labels and breakpoints along enabling a fluid programming and debugging cycle. “
Icing on the cake. I recall this technique having a lot of use in embedded and hardware development to catch obscure, low-level errors. Faster than with native hardware if the native is old or embedded. Cheaper if an ASIC. Accurate emulators are always worth considering for debugging hardware.