https://www.page6.org/archive/issue_11/page_24.htm
One of the annoying things is that the most convenient way to encode a short machine code subroutine was in a BASIC string. But BASIC strings are not loaded in a predictable location in RAM, so any code intended to be encoded in a BASIC string has to be relocatable (using only relative branches/jumps). That's not an issue for a simple XMODEM checksum calculation, of course.
On the Sinclair computers (incredibly popular in the UK, the BASIC was not written by Microsoft) it was in fact possible to predict where the program would be loaded, so a very popular place to store machine code was in a REM statement. This also had the advantage that you could save the machine code by saving the BASIC program.
On the ZX81, the first byte of the payload of a REM statement at the beginning of the program was at address 16514, hence:
RAND USR 16514
was the command to run the machine code. (RAND set the random number seed and was just used as a convenient way to turn the USR function into a BASIC statement. The contents of the BC register were the return value from USR).The Star Trader game was also really ahead of its time.
There was no Google, and I've forgotten about it until just now. But, that makes sense. Thanks.