Author: Stew Schneider
Additional Notes:
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"