Stew writes in "I can't recall what year it was, but sometime in the 80's. I had written a piece for 80 Micro about self-modifying code. That lead to some other
work, and in the course of it, I wrote a terminal program with a
split-screen called Double Talk. At the time, terminals for TRS-80's had
only a single screen, and, at 300 baud, it became a real challenge to
chat.
"I wrote that one up for 80 Micro (I think) and then turned to a BBS. If
you recall, TRS-80's had an interpreted BASIC. That made it pretty easy
to write spaghetti code, and a lotta pasta got written. I was a primo
pasta roller.
"We went through version 5 as I recall, and I wrote a series for 80 Micro
called Towne Crier that ran for a year as we wrote and re-wrote the
thing. To my surprise, it turned out to be VERY stable. Ten years after
I trashed my last trash-80, and had long ago lost the code, I got a call
from the University of Chicago. They had had a TC board running
unattended in the back of the theater all that time which had NEVER
crashed. They were calling because it would no longer work, and it would
no longer work because they'd stored 32768 messages, all the message
index space I had allowed. That's not bad performance for a program we
sold for $15, shipping included!
"The final version I was most proud of. The BASIC I was using used a
two-byte pointer at the beginning of each line to point to the beginning
of the next line. The address the beginning of the code space was also
stored in RAM. So...if I followed the pointers, I would know where the
last line ended. If I poked that address into the "beginning of code"
address, programs would load at the END rather than the beginning of the
code space. That meant that I could write modules beginning with line
number 32000 and load them in at the end of the bulk of the code, an
important consideration for a system that read code from cassette tapes
on a machine from Radio Shack!
Many thanks for the memories - Stew"