[stella] Parker Brother's E0 Bankswitching

Subject: [stella] Parker Brother's E0 Bankswitching
From: Joe Grand <joe@xxxxxxxxxxxxxx>
Date: Fri, 25 Apr 2003 00:55:18 -0400
Hey everyone. I've been trying to figure out E0 bankswitching for a little while now (from the cartridge side, not the programmer side). I read through Kevin Horton's sizes.txt file and Thomas' good explanation (http://www.biglist.com/lists/stella/archives/200211/msg00125.html), but what I can't figure out is it seems to me like the currently selected slice/segment relationship needs to be remembered by the cartridge until the slice is changed for that particular segment (using one of the 24 hotspots, LDA $1FE0, etc.)

From a programmer point-of-view, apparently this requires less overhead to keep track of what bank you are currently in (compared to something more standard like F6, F8, etc.), but I don't quite see that, since it seems that the programmer will need to keep track of which slice is currently "loaded" into each segment.

The way I'm seeing it, if someone did a:


then slice 0 (0000-03FF) will be mapped to each of the 3 segments (1000-13FF for segment #0, 1400-17FF for segment #1, 1800-1BFF for segment #2). Why would something like that ever want to be done?

And then, the memory map will stay as above until someone later on in the code does a LDA $1FE9, for example, and then slice 1 (0400-07FF) would be mapped into segment #1 (keeping the mappings of segment #0 and segment #2 untouched)?

Can someone clarify this for me? I confuse myself more the longer I look at this stuff.. I'm trying to figure out if I can do this with simple programmable logic or if I have to use some gates as registers to store the current state of each mapped segment, which would be a bummer.

Thank you, thank you, thank you!


---------------------------------------------------------------------------------------------- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/

Current Thread