6 ms·
This reminds me of a brief fling that I had with a SuperPET back in the 80s. [1] 96KB RAM and an enormous ROM (48K!) with all the Waterloo languages (microAPL,
by localhost 6y ago
This reminds me of a brief fling that I had with a SuperPET back in the 80s. [1] 96KB RAM and an enormous ROM (48K!) with all the Waterloo languages (microAPL, microFORTRAN, microBASIC, microPASCAL, microCOBOL) in it!
I never really wrote any ASM for it though, but it inspired me to write a p-code based runtime that had 16 bit registers for the 6502.
[1] https://en.wikipedia.org/wiki/Commodore_PET#superpet https://en.wikipedia.org/wiki/Commodore_PET#superpet
- microtherion 6y agoI wrote a FORTH for the SuperPET (sold as a Waterloo "Micro Mainframe" here). The 96KB were done in a rather weird way, because there were really only 32KB of contiguous address space available once you accounted for ROM, and both the 6502 and 6809 had a 64KB address space anyway. So the SuperPET had 32KB contiguous RAM in the lower half of the address space, and 64KB of paged RAM occupying a 4KB address range somewhere in the upper half of the address space. The code for the Waterloo languages typically ran in paged RAM, split into 4KB segment, and when it needed to jump from one page to another, it used some trampoline routine to switch the page and jump back. For FORTH, I used a simpler scheme: I ran in contiguous RAM and used the paged RAM for the FORTH explicit virtual memory system, because there you only needed to guarantee access to one page at a time so it mapped onto the hardware without much sweat.