The early BASICs, on the TRS80, the PET 4032 and the like, were all dreadful, but they were the only game in town. All variables were globals, the nearest thing to a procedure call was the 'GOSUB', there were inexplicable hold overs from punch-card systems like the READ/DATA thing.

Those were the days of typing it in from a listing printed in a book or magazine. 16K of RAM was plenty, because any BASIC program more than 100 lines long was simply incomprehensible w/o some cheat sheet notes on the side.

About the most interesting thing that could be done with those machines was to learn the assembly language for the underlying processor. People said that assembly language was going extinct even in 1980, that it was a step backwards, but BASIC didn't seem to be the way forward, either.

Recalling fondly now the sheer delight of that first university class in Pascal.

BASIC itself was written in Assembler, with the nearest thing to a procedure call was the 'JMP' instruction. It's amazing how any of such scale software was written in Assembler. See here https://github.com/microsoft/GW-BASIC