Warning: OT
In 1979 I attempted to program a double entry accounting system
for a small organization, using CBASIC (a structured, p-code
BASIC) on a CP/M machine with 64K RAM (that's K not Meg).
I tested it out, but every time after about a screen worth of
entries, it would crash. I couldn't figure out what the matter
was, so I went on to another needed programming task, and
wisely chose to use a different "style" of programming.
Years later a colleague debugged the situation. I had used a
lot of GOSUBs. Each time a GOSUB was called, the language
would push the address onto the stack. It turned out that the
CBASIC "stack" had enough space for 19 GOSUBs (without RETURN)
and then it would go haywire. I don't remember the exact term
for the crash, it might have been "hammering the stack" or
"blowing the stack". I suppose you'd get a similar behaviour
with excessive loops.
CBASIC was so precisely described in the large-format blue
manual that came with it, that I actually was surprised that
the publishers had not warned about the dangers in that style
of programming. Those were the days.
I never again used GOSUBs (well, hardly ever), relying instead
on functions, with happy results.
Digital Research later purchased CBASIC (I think that Gordon
Eubanks came with), and produced CBASIC86 (would run under
DOS or CP/M86) and CB86 (compiled rather than p-code). The
same colleague told me that "porting" a working CBASIC program
from CP/M-80 to DOS (and a different family of processors) was
usually as simple as recompiling the source code.
--
happy
Jonathan Berry and Erika http://members.shaw.ca/berry5868/fun.htm