This is mostly a blend of FIG Forth, Forth-79, Forth-83 with elements of ANS Forth and Forth 200x. A *lot* of effort was put in to making it fast and tight. Direct-threaded. It outperforms Blazin' Forth by a substantial margin on what is essentially the same hardware. The NEXT routine runs in 15 clocks!
Another project goal was to make it work on my 1979 hardware, which doesn't include a disk drive of any sort. I feel that I've achieved that.
Most primitives are unfolded into assembler. There's a DUP>R word ( lda tos+1; pha; lda tos; pha; jmp next ). I adapted the Blazin' Forth/Ragsdale assembler. I also did some tail call optimization here and there for speed/size savings. For the most part, I use Ubuntu + Geany + xa65 with a Makefile and a Ruby script or two to do development on VICE. My old hardware is working, and I have run PETTIL on a real PET.
The NEXT routine lives in zero page. It's 7 bytes/15 clocks:
next
inc nexto+1
inc nexto+2
nexto
jmp ($cafe) ; $cafe is the self-modified instruction pointer (IP)