On Feb 7, 2012, at 3:42 PM, Michael Kerpan wrote:
On Tue, Feb 7, 2012 at 11:49 AM, Liam Proven
<lproven at gmail.com> wrote:
Hardly, not in 2K. Still an interesting exercise,
I thought.
The "official" NES memory map provided for up to 16KB of expansion RAM
and many later, larger games came with at least 8K on board their
cartridges Given that there were several 6502 LISPs (including a
subset of InterLISP for Atari 400/800 and a truly compact system for
the Acorn BBC Micro that clocked in 5.5 KB of ROM data for the
interpreter plus 3 KB of .RAM data with the function definitions), I
suspect that an NES implementation would be doable, given a fully
loaded flashcart with a full compliment of expansion RAM, though the
total user memory would be limited to 18 KB minus whatever space is
needed for the function definitions...
Well. The RAM is limited to whatever you can bankswitch. The NES
memory map has a 32K region set aside for cartridge ROM (plus a bit
for RAM, generally used in games for battery-backed SRAM for saving
games) but a few games went up to a meg of ROM (Dragon Warrior IV
comes to mind). There's no practical limit (for ROM or RAM) aside
from how much overhead you want your bank switching
function to
consume; all the bank switching does is selectively swap address
pins in based on a few MSBs of the address on the cartridge pins.
Related is the story on
folklore.org (entitled "We'll See About That")
about extending Apple's 16K "language card" (which bank-switched in
16K of RAM over the ROM address space) to 32K by extending the bank
switching bits. It's not a huge technical challenge.
- Dave