> 4K of RAM seemed like an impossible amount of space to fill
It seems impossible to imagine the impossible these days. The first home computer I remember my family owning is a VIC-20 (5 kB RAM), where the screen could contain about 1/2 kB of text. Granted, getting anything onto and off of the computer was a lot more difficult/expensive. I can barely even imagine earlier home computers.
And that Cambrian Explosion is no joke. The 80's were crazy. The 90's stepped it up even further.
> getting anything onto and off of the computer was a lot more difficult/expensive.
Yes, that's why 4k seemed so huge (really about 3.5k after zero page and some buffers were allocated by the BASIC interpreter). Initially, I didn't have any method of storage. The tape cassette recorder was another $50 I had to save up for. Having to retype BASIC programs from hand-written notes every time the power was turned off strongly incentivized short programs!
Even with tapes, the user did a fair amount of the work: pushing buttons to read, record, or rewind. Many personal computers used standard cassette recorders, effectively a fire hose of data, so the file size was limited by the computer's memory. If they had anything remotely resembling a filesystem, it was an identifier the computer could look for as it marched forward, and only forward, through the tape. Commodores could start and stop the drive's motor, so maybe they could handle larger files. Yet (if I recall correctly) they too could only march forever forward, without the user hitting the rewind button while monitoring the counter, so you didn't have the utility of random access files.
It's hard to fathom today just how slow the cassette recorders were. You would routinely spend 15 minutes trying to load Temple of Apshai just to have it stall while you sat there for another 10 minutes hoping it didn't actually crash (until you reloaded it).
Indeed, a lot of 8-bit computer audio cassette recording rates were as low as 300 baud. I remember feeling spoiled that my Radio Shack Color Computer (based on the Motorola 6809) was 1500 baud. Also, depending on the quality of your audio cassette recorder and tape media, errors could occur. If something was really important, you saved it twice in a row and once again on another cassette tape.
Since tapes were relatively expensive (at least to us teenagers) we bought longer tapes since it worked out to be cheaper per minute. We then tried to maximize each cassette by recording a bunch of programs on each. Unfortunately, the only way to know where anything was on a tape was by zeroing the mechanical counter on the cassette recorder and scribbling the counter numbers down. Of course, these counters were only tied to the motor run time and thus quite inaccurate and, at best, fast forward and rewind could only get you in the approximate ballpark of a program's location. If we lost our scribbled tape counter notes, the only alternative was to play the tape at 1x and wait for the named program segment to be seen by the computer (on tapes up to an hour per side).
I also recall someone made a hack that patched the Coco ROM to enable 3000 baud recording and reading, however this did make read errors somewhat more likely.
They only had 8K of RAM. Naturally, most of my time was spent creating all sorts of games. Free memory was rarely an issue.
A key factor was a combination of the very nice PETSCII character set with all of its nice graphic characters and simply using the screen as your combined playfield and data structure.
You could do a lot simply PEEKing and POKE-ing your way around the screen. Very handy dual use memory.
It seems impossible to imagine the impossible these days. The first home computer I remember my family owning is a VIC-20 (5 kB RAM), where the screen could contain about 1/2 kB of text. Granted, getting anything onto and off of the computer was a lot more difficult/expensive. I can barely even imagine earlier home computers.
And that Cambrian Explosion is no joke. The 80's were crazy. The 90's stepped it up even further.