Discussion about this post

User's avatar
Aron Insinga's avatar

The BASIC-Plus string handling is very much like that in PL/I and I suspect that is where it came from. EG&H probably knew (about) PL/I, perhaps via Multics at MIT. Clark Baker said:

>The compiler and run time system were written by a consulting firm called EG&H. The letters were the last names of the founders. Tom Evans (went to MIT, worked in AI and wrote the Evan's geometric analogy program), Tom Griffiths (went to MIT), and Tim Hart (wrote the first garbage collector for LISP and one of the authors of the Lisp 1.5 manual (a classic from the MIT Press)).

<http://www.project-delta.net/clarkhistory.html>

I agree that the BASIC-Plus string handling functions were wonderful to work with.

By the way, there were also CVTF$ and CVT$F functions for floating point. The CVT functions simply copied the bytes of the binary int or float value into or out of a string of the same length. Their main use was with Record I/O (FIELD, LSET, RSET, GET, and PUT). Later there was also an unrelated CVT$$ function which took an integer bitmask specifying what to do to the string (whitespace removal or compaction, case conversion, etc.) Multiple things could be done at once.

I think the main use of PEEK on RSTS was, as you know, to access the operating system's tables of information about jobs running on the system. I honestly can't remember a useful application of the SYS$ function to POKE memory.

Expand full comment
Dan Swartzendruber's avatar

A bit of cleanup. Finally got off my a$$ and did github juju to create release info for the liner and avl repositories (as well as the basic-plus repo). This should work thusly: when you run make in the basic-plus directories, 'go build' will download (if needed) the proper release avl and liner code.

Expand full comment
38 more comments...

No posts