A fellow by the name of Will Stevens has recently implemented a 1012 byte tiny BASIC, with signed 16-bit arithmetic, tokenization, a single numeric array, FOR/NEXT/STEP, ABS(), USR() and RND(). The only trouble (at least for me) is that it's
for the 8080, and I quickly developed a headache trying to grok his assembly code. All of those LXI, SHLD, DCX, RST, XTHL, XCHG, SPHL, PCHL instructions certainly pack a punch, but I've never heard of a non-trivial 8080 program being half the size of an equivalent 6502 program, so it's quite possible that some valuable insights could be gained from Will's code related to the subject at hand, for someone brave enough to take the dive. I haven't given up entirely, but I also haven't gathered sufficient courage yet ...
Maybe it depends on the functionality. Although I am impressed it has FOR/NEXT - some TBs just don't have that. I've only glanced at the code (40+ years sine I did 8080 and that was with a Z80 assembler!) however the 2 examples are interesting. LET appears to be mandatory, spaces abound (which would make detecting a keyword much easier) but that might be bogus.
IO is handled by the emulator rather than calls to some OS/Monitor routine. You can't overwrite a line, need to delete it first, then enter a new one. But these are just nits to be picked at - it's very impressive!