| Thread overview | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
On 10/04/2008, Janice Caron <caron800@googlemail.com> wrote:
> On 10/04/2008, Steven Schveighoffer <schveiguy@yahoo.com> wrote:
> > I used to work with a device that had
> > 256 bytes of RAM and 8K of code space. When working on that device, I
> > learned how important it was to split common functionality into functions.
>
> Pah! My ZX80 had *one K* of RAM. And three quarters of that was used
> for the display!
> (and you could still play Space Invaders on it).
>
> Young people today! :-)
That said, you still win. Ignoring the display, we both were left with 256 bytes of RAM, but the ZX80 had 16K of ROM, whereas your machine only had eight.
What was this machine of which you speak?
| ||||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Janice Caron | "Janice Caron" wrote
> On 10/04/2008, Janice Caron wrote:
>> On 10/04/2008, Steven Schveighoffer wrote:
>> > I used to work with a device that had
>> > 256 bytes of RAM and 8K of code space. When working on that device,
>> I
>> > learned how important it was to split common functionality into
>> functions.
>>
>> Pah! My ZX80 had *one K* of RAM. And three quarters of that was used
>> for the display!
>> (and you could still play Space Invaders on it).
>>
>> Young people today! :-)
>
> That said, you still win. Ignoring the display, we both were left with 256 bytes of RAM, but the ZX80 had 16K of ROM, whereas your machine only had eight.
>
> What was this machine of which you speak?
It was just an ST7 microprocessor that was used to do out-of-band management of a server (power on, power off, sensor monitoring, run LCD front panel, etc.)
The crappy part is that I had multiple such chips on a system, which talked to chips on other systems in a rack, so not only did I only have a small space to work in, but all the wonderful multi-threading issues that clustering requires :)
I'm still amazed at the amount of code we could squeeze into those things :)
-Steve
| |||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | On 10/04/2008, Steven Schveighoffer <schveiguy@yahoo.com> wrote: > > What was this machine of which you speak? > > It was just an ST7 microprocessor that was used to do out-of-band management > of a server (power on, power off, sensor monitoring, run LCD front panel, > etc.) > > The crappy part is that I had multiple such chips on a system, which talked > to chips on other systems in a rack, so not only did I only have a small > space to work in, but all the wonderful multi-threading issues that > clustering requires :) So did you write the firmware? If so, you had 8K to play with. The ZX80's 16K ROM was pre-filled with its operating system, (the OS with no name), so users only had the RAM to play with. There was only one processor, and only one thread, and the display driver had to run in the same thread as everything else, which led to a model of operation whereby the ZX80 would display something, wait for user input, and then the the screen would go fizzy while it processed the input to produce the next output. > I'm still amazed at the amount of code we could squeeze into those things :) Yes, indeed. I wasn't kidding about Space Invaders. The guy that wrote that must have been the most brilliant programmer ever. In just 256 bytes, his code contained an interrupt-driven display driver that kept the display steady while smoothly animated aliens walked down the screen dropping bombs on you. That was just absolutely incredible. Maybe we should all forget D and go back to assembler? Oh wait - garbage collector; templates; closures; FP... Let's not. | |||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Janice Caron | Janice Caron wrote: > On 10/04/2008, Janice Caron <caron800@googlemail.com> wrote: > >> Pah! My ZX80 had *one K* of RAM. And three quarters of that was used >> for the display! >> (and you could still play Space Invaders on it). >> >> Young people today! :-) 16k ROM, and either 16k or 48k RAM, according to http://en.wikipedia.org/wiki/Sinclair_ZX_spectrum | |||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Janice Caron | "Janice Caron" wrote
> So did you write the firmware? If so, you had 8K to play with.
Yes, I had all 8K :) But I also had no OS, so I had to write all drivers from scratch...
-Steve
| |||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Georg Wrede | Georg Wrede wrote:
> Janice Caron wrote:
>> On 10/04/2008, Janice Caron <caron800@googlemail.com> wrote:
>>
>>> Pah! My ZX80 had *one K* of RAM. And three quarters of that was used
>>> for the display!
>>> (and you could still play Space Invaders on it).
>>>
>>> Young people today! :-)
>
> 16k ROM, and either 16k or 48k RAM, according to
> http://en.wikipedia.org/wiki/Sinclair_ZX_spectrum
ZX Spectrum was preceded by two other models, the ZX80 & ZX81
(the last one also known as the Timex 1000 if memory serves).
Roald
| |||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Georg Wrede | On 10/04/2008, Georg Wrede <georg@nospam.org> wrote: > 16k ROM, and either 16k or 48k RAM, according to > http://en.wikipedia.org/wiki/Sinclair_ZX_spectrum That was the Spectrum, a different machine, and a couple of years later. We're talking ZX80 here. Course, we didn't have the internet back in those days. Hell, we hardly had computers! But this link should shed some light. http://computermuseum.50megs.com/brands/zx80.htm | |||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
On 10/04/2008, Janice Caron <caron800@googlemail.com> wrote:
> On 10/04/2008, Georg Wrede <georg@nospam.org> wrote:
> > 16k ROM, and either 16k or 48k RAM, according to
> > http://en.wikipedia.org/wiki/Sinclair_ZX_spectrum
>
>
> That was the Spectrum, a different machine, and a couple of years
> later. We're talking ZX80 here.
>
> Course, we didn't have the internet back in those days. Hell, we
> hardly had computers! But this link should shed some light.
> http://computermuseum.50megs.com/brands/zx80.htm
Seems my memory was at fault in one regard, however. It had only a 4K ROM, not 16 as I originally stated.
| ||||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Janice Caron | On Thu, 10 Apr 2008 21:32:26 +0100, Janice Caron <caron800@googlemail.com> wrote:
> On 10/04/2008, Janice Caron <caron800@googlemail.com> wrote:
>> On 10/04/2008, Georg Wrede <georg@nospam.org> wrote:
>> > 16k ROM, and either 16k or 48k RAM, according to
>> > http://en.wikipedia.org/wiki/Sinclair_ZX_spectrum
>>
>>
>> That was the Spectrum, a different machine, and a couple of years
>> later. We're talking ZX80 here.
>>
>> Course, we didn't have the internet back in those days. Hell, we
>> hardly had computers! But this link should shed some light.
>> http://computermuseum.50megs.com/brands/zx80.htm
>
> Seems my memory was at fault in one regard, however. It had only a 4K
> ROM, not 16 as I originally stated.
You could get an external RAM pack which I think was 16K
We had a ZX80 which we updated to an 81 somehow as well as a proper pucker ZX81.
| |||
April 10, 2008 Re: OT - Memory usage in days of yore | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Janice Caron | Janice Caron wrote:
> On 10/04/2008, Georg Wrede <georg@nospam.org> wrote:
>
>> 16k ROM, and either 16k or 48k RAM, according to
>> http://en.wikipedia.org/wiki/Sinclair_ZX_spectrum
>
>
> That was the Spectrum, a different machine, and a couple of years
> later. We're talking ZX80 here.
>
> Course, we didn't have the internet back in those days. Hell, we
> hardly had computers! But this link should shed some light.
> http://computermuseum.50megs.com/brands/zx80.htm
Ah, ok.
Well, I had a grand 3.5k on my VIC-20.
The biggest advantage to having a ridiculously "small" computer was, that one would learn it through and through. I remember knowing the memory map by heart, the locations of every system variable, and also the entire circuit diagram. Haven't done that with any of my later computers.
It also used the 6502 processor, which was more primitive than the ZX-80 and it only hand the registers x, y, a, status, stack pointer, and program counter. When other processors had auxiliary registers, the 6502 used 128 bytes of memory at the beginning of the address space. The stack was limited to the next 128 bytes.
Interestingly the stack (one-eighth of a k) was shared between the system, the interpreter, and user programs. At the time I was amazed at how things didn't get mixed up. Today I'm amazed that you can do anything with a stack that small. The size was not adjustable because the processor used special, fast instructions to address the first 256 bytes of memory.
For this computer I wrote a multitasking process that visualized the contents of arbitrary memory areas during running of other programs, in real time. I wanted to do that for two reasons. First, it was a major challenge: there was no reason to expect that I could pull it off. Second, I wanted to see "what actually happened" inside the computer when it was running programs. I'm a visual kind of learner.
I used the program to study stack allocation, storage of Basic programs in the program area (and to learn how they were stored in compressed form -- you have to remember, at the time bookshops didn't carry computer literature, let alone something VIC-20 specific. Not to mention we didn't have WWW, or even modems), heap activity, and activity in system variables. Oh, man, who needs sleep or food with this stuff!
I didn't have an assembler, nor even a Monitor program. But then I didn't really mind. The assembler for 6502 was so easy to learn and use, that I did it all on pieces of scrap paper or backs of envelopes. And it was very easy to relocate the code, especially if you avoided using absolute addresses to within the code.
Oh, and I didn't have any books about it. I found a listing of the asm commands in an appendix, and that was that. I guess I'm lucky, a more complicated instruction set could have been too much.
Years later, when I already had a CP/M Office Computer (as opposed to a toy), the Kaypro-II, I found a mail-order bookshop in a german computer magazine, where I bought the complete and annotated listing of VIC-20 firmware (bios and basic roms). I learned a lot from that too. Heh, and German computerese isn't that hard to understand. There's a certain feeling when you've read the entire rom listing. You sort of feel there's something you know through-and-through.
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply