Basic lint... not that I know of. I bet such a thing could find a lot of old bugs in the archives. Maybe rbasic compiler ends up doing some incidental checking but I don't know. I thought different sigils would result in different variables. I guess not. Or at least it looks like it doesn't work for numbers.
-- John. On Sat, Jun 13, 2026, 3:15 PM B 9 <[email protected]> wrote: > By the way, does anyone know if there is a Model T utility that checks > BASIC programs? Given that there is no error when that happens, I’d think > there must be, but I cannot find it. > > For anyone interested, here is my shell script. It’s a bit too simple, but > I wasn’t up for creating a proper lexer at the moment. :-) > > #!/bin/bash > # twolet.sh## Search a BASIC program for variable names and show any that > would cause# mysterious errors on a Model 100 due to the two-character > limitation.## Usage: twolet HDAYS.TXT## Bugs: Does not handle arrays or > remarks. Needs a proper lexer. > > sigil="[!#$%]" > identifier="[a-z][a-z0-9]*${sigil}?" > s="\s*" # optional whitespace > > variables=$( cat $1 | grep -Eoi "${identifier}$s=" | > grep -Eoi "${identifier}" | tr '[a-z]' '[A-Z]' | > sort -u ) > declare -A seenfor v in $variables; do > v2=${v:0:2} > if [[ ${#v} > 2 && ${v: -1:1} =~ ${sigil} ]]; then v2=$v2${v: -1:1}; fi > if [[ ${seen[$v2]} ]]; then > seen[$v2]="${seen[$v2]}, $v" > echo "$v2: ${seen[$v2]}" > else > seen[$v2]=$v > fidone > > —b9 > > P.S. My script treats X# and X as different when they’re actually the > same variable on the Model 100. (But distinct on the NEC portables, I > believe). > > P.P.S. Is it documented anywhere that one can use the pipe symbol as > arbitrary spacing in M100 BASIC? I only just found that out and think it’s > kind of neat. X|Y = 1|000|000|000. > > On Sat, Jun 13, 2026 at 11:06 AM B 9 <[email protected]> wrote: > >> Hello Mark, >> >> Welcome to the Model T community and thank you for contributing software >> for everyone to enjoy. >> >> Did you double-check the output from your Jewish Holy Days program on >> your Model T? David is correct about variables being limited to two >> letters. I wrote a little script to search through Model T BASIC files for >> variables that won’t work and came up with this for HDAYS.TXT >> >> AC: ACTD, ACXTD >> AG: AGM, AGTD >> AL: ALPLUS, ALTD, ALXD >> AM: AMD, AMD1, AMD2 >> BC: BCXTH, BCYTH >> BL: BLTH, BLXH >> BM: BMH, BMH1, BMH2 >> CC: CCTV, CCXTP >> CL: CLTP, CLXP >> CM: CMP1, CMP2 >> MM: MM, MM2 >> >> Given so many overlapping variables, it seems highly unlikely HDAYS could >> possibly work as it is. >> >> Would you like help with fixing it or do you know enough programming to >> be able to do it yourself? This might be a good opportunity for you to try >> out the text editor, which is arguably the Model T’s pre-eminent feature, >> and see how folks handled search and replace back in those antediluvian >> days when giants roamed the earth. >> >> —b9 >> >> P.S. Also, please let us know if your code was AI generated. >> >> On Thu, May 28, 2026 at 10:42 AM David Plass [email protected] >> <https://mailto:[email protected]> wrote: >> >> Mark, in HDays.txt, there are some lines like "LET AMD2 = AMD1". Note >>> that Tandy 100 BASIC (like Commodore 64 BASIC) only looks at the first two >>> characters in BASIC identifier names, so AMD2=AMD1 is a no-op. This may >>> cause bugs/errors in the calculations. >>> >>
