[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple IIGS bank latching



Daniel Kruszyna wrote:
> Marc S Ressl <mressl@macgui.com> wrote:
>> * The New Video "memory linearization" appears to not scramble the
>> contents
>> of video memory (I'm still having a hard time understanding this, as I
>> believed it would).
> 
> When linearization is enabled, e1/2000..9fff is remapped.
> 
> x = linear_address - $2000
> y = x[15]:x[0]:x[14..1]
> physical_address = y + $2000
> 
> in other words:
> 
> linear $2000 maps to physical $2000
> linear $2001 maps to physical $6000
> 
> $2002 -> $2001
> $2003 -> $6001
> 
> the pattern continues...
> 
> It just so happens that the mapping between main/aux bank and physical
> chips on the board is swapped for addresses $6000..$9fff. These two
> hacks together let the VGC access two contiguous bytes of SHR data
> simultaneously.
>

Daniel,

thanks a lot for your clearing that up :-). I have been looking for this on
the net, and it seems you are the first who covers this.

Now, the problem is experiment #7 I posted earlier (omg, I sound like a
craZy scientist!!)... here is a snippet:

C029:01
2000:12 34
C029:41
2000.2001

This returns "12 34", but I would have expected something different (as the
memory map is changed). Is it possible that the monitor is messing with
C029? What do you guys think is going on?

Btw, I have two more experiments :-) #8 and #9...

* #8 Is aux/main memory switching disabled if the language card is disabled?

00/1000:00
01/1000:01
00/0100:AD 35 C0 48 A9 00 8D 35 C0 8D 03 C0 AF 00 10 00 8D 20 01 8D 02 C0 68
8D 35 C0 60
00/0100G
00/0120

* #9 Is it true that the video character generator data is available at
$C028?

00/0300:A2 00 DA AD 28 C0 20 DA FD FA E8 D0 F5 60

In case you see something interesting, I have this big petition: could you
run this program a couple of times, and make pictures of the screen (til you
notice it cycles back to the beginning)? I would expect 256 (characters) * 8
(scan lines) * 8 (languages) interesting bytes… this would make 64
screens. Am I pushing it too much? :-)

Thanks a lot to all of you for all the help,
and with the best wishes!

Marc.-