3 ms·
I 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
by microtherion 6y ago
I 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.