[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.-