While some of you were talking about the tiniest Tiny BASIC, I have been busy paraphrasing TSC Micro BASIC Plus to the 6502.
https://ia903409.us.archive.org/34/item ... asic_a.pdfIt is a relatively powerful integer BASIC running on the SWTPC 6800 computer. It was designed to be loaded from tape. User programs may be saved or loaded by escaping to the system monitor and using its "punch" and "load" capabilities, then warm starting back into the interpreter.
I am happy to be able to report that enough progress has been made that it is an ongoing project instead of a speculative experiment.
The following features have been implemented:
* Enter, list, delete and replace program lines
* Run program
* Print a number, variable or a constant text string (it does not support string variables)
* Assign a number or a variable to a variable including "implied" LET
* GOTO, GOSUB, RETURN, ON GOTO and ON GOSUB
I am currently working on FOR and NEXT.
Features still to be implemented:
* Most of expression handling including operators and the functions RND, ABS and SGN
* DIM for arrays
* IF
* DATA, READ and RESTORE
* INPUT
The original 6800 version utilizes self-modifying code in several places so it cannot reside in ROM. I do not do any of that.
Micro BASIC Plus allows use of a variable or expression as the target of a GOTO or GOSUB. You can write code like:
Code:
100 A = 1000
200 GOTO A
300 END
1000 PRINT 1000
As far as I know, no other BASIC can do this. Not even Microsoft.