Had a quick look into the code. "EXX" seems to be kind of bottle-neck (I'm sure you know that already). Does a macro expansion really violates the memory footprint? (16 occurrences) 12 saved cycles (jst/rts) isn't that bad...   This looks suspicious too: jsr exx ; EXX ; couldn't this be changed to simply jump after @@43 ? @@43 jsr exx ; EXX     Edit: Single expansion at $6925 (@@43) for EXX saves one %