Hacker News new | ask | show | jobs
by II2II 264 days ago
> I discovered the pointer to the next line wasn't a good idea, because it needed to move every pointer after a line insertion.

I get the impression that they were storing everything sequentially in memory, rather than having a linked list of instructions. Why? I can only speculate. Perhaps it is to make memory management simpler (don't have to keep track of which addresses are in use), or to avoid memory fragmentation in system with limited memory (any modification of code would introduce unusable holes). If that's the case, what you want is an offset rather than an absolute address.

1 comments

> I get the impression that they were storing everything sequentially in memory, rather than having a linked list of instructions. Why? I can only speculate.

I expect that’s because that is how ‘every’ homecomputer basic did it. Yes, that makes it slow to insert or remove a line close to the start of a long program, but it allow those offsets to be 8 bits, gaining a precious byte over a 16-bit absolute address.

Now, why they initially chose to waste those bytes? I wouldn’t know, but I guess that, because (FTA) “The CP1610 processor cannot address directly the internal memory in byte terms, instead everything is handled by full word”, they didn’t think of using a single byte.