Closed dykstrom closed 1 year ago
Looking good. I'm making some changes to M100 mode and adding a CoCo mode.
It turns out, the BASIC in the TRS-80 Model 100 is not actually descended from the TRS-80 Model I/III. In fact, it appears to be somewhere between Microsoft's CPM BASIC (MBASIC) and the BASIC that came with the IBM PC (BASICA). I have the manual for IBM BASIC 3.0, so I should be able to add basic-ibmpc-mode and have them inherit properly.
By the way, in the early 80s Microsoft had three variants of their PC BASIC: Cassette (in ROM), Disk, and Advanced. I do not think they need to be targeted separately as each is a superset of the previous one.
I haven't experienced anything terribly wrong with this branch, so I think it can be merged as is.
I did notice something that can be fixed now or later. I believe that some of the new basic reserved words, while a good idea for the default mode, maybe are not such a good idea for the essential core which submodes inherit from. I suggest that these keywords not be in that core:
functions: cdbl, cint, command$, fix, hex$, log10, oct$, l/rtrim$,space$, timer, l/ucase$, usr.
builtins: beep, eqv, imp, line, mat, tron, troff
keywords: call, defdbl, defint, deflng, defsng, defstr, elseif, loop, randomize, repeat, sub, until, wend, while.
types: (remove all)
This PR introduces derived modes as a way to support different BASIC dialects.
Closes #10 Closes #20