[Coco] Banked switched roms
Arthur Flexser
flexser at fiu.edu
Fri Jan 30 00:17:27 EST 2004
On Thu, 29 Jan 2004, (tim lindner) wrote:
> John Collyer <johncollyer at zoominternet.net> wrote:
>
> > Hi, more questions.
> >
> > Tandy produced cartridges that used bank switching.
> >
> > 1. Mind-Roll had two banks.
> > 2. Predator had four banks.
> > 3. Robocop had eight banks.
> >
> > What size cartridges where these games? 16K or 32K.
>
> Mind-Roll: 32K ROM
> Predator: 64K ROM
> Robocop: 128K ROM
>
> > How did the copy to ram programs save them on disk?
>
> While not impossible, it has not been done. I wrote a CoCo program to
> dump these ROMs thru an RS-232 pak, but that is not what you are talking
> about.
>
I've seen a version of one of these (I forget which) that ran from disk
and required 512K. What was done to get it to run from disk was to change
all references to $FF40 (or whatever the bank-switching address was) to an
MMU address and to change the value put into $FF40 to an MMU segment
number in 512K memory. So, every time the original program switched
banks, the modified version instead swapped in a different MMU segment.
To load the MMU "banks" with their initial data, a rather neat method was
used. The person who modified the program created a segmented disk file
that contained 3-byte segments where the 3 bytes would be the MMU address
and the number of the MMU segment for the "bank" that was to be loaded in
next, whose data were contained in the next segment of the disk file.
Art
More information about the Coco
mailing list