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.
>>>
>>

Reply via email to