Re: Stashing data at $ff00-$ff04 in 128 mode?

From: Nate Dannenberg (
Date: 2001-07-25 18:07:53

> Hello, CBM-Hackers;
> I sent this quite some time ago, and now I'm reposting here.
> Hello, CBM-Hackers;
> I was wondering if there is any way a program can stash ordinary data onto
> addresses $ff00-$ff04 in 128 mode of the c128 line of computers? I want to
> put data there and have the VIC-II reference it in displaying a bitmap, for
> example. But, the MMU registers are always there? Is there a way of blocking

According to the C128's reference guide, you're stuck - $FF00 is always
occupied by the MMU.  A simple test I just did shows that the MMU only
occupies $FF00-$FF04; the rest of the space around it is RAM/ROM, thankfully.

So as a workaround for the affected cell (row 24 column 32 if I'm right), set
the background color of the cell as you normally would, and set the foreground
color of that cell to the same value, to render the MMU's register data
invisible.  Now place a sprite over that cell and set it's color(s) to the
actual foreground color(s) you wanted to use in that cell.  Then just make
sure you plot to the sprite when you need to plot to the blocked cell.

Make sure the sprite-to-background priority for the sprite you use is set to
place the sprite on top of the (invisible) data instead of under it.

You may wish to set up a raster split if you need all 8 sprites elsewhere, or
if they need to be multicolor and your colors don't match what the blocked
cell needs.

> Can I enter Z80 mode and then stash data there at $ff00-$ff04, or does the
> Z80 use the MMU as well?

The MMU is what decides which processor is running, so I would guess its
registers also show up in the Z80's memory map, but I'm not certain at all.

 _________________________ ___ ___
|    //ZZ]__ |
|      C64/C128/SCPU     |'/  |Z/ |
| What's *YOUR* Hobby!?  | \__|_\ |

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail 2.1.1.