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

Re: Some questions



In article <19921102.070043.414@almaden.ibm.com> Pauley@vnet.ibm.com (Paul Benson) writes:
> In <1992Nov1.223132.28343@galileo.cc.rochester.edu> Matthew W. Hacker writes:
> >1)  I still don't know how the GS figures out how much memory
> >    is installed.  Anybody?
> 
> Well, I forget why you need to know but I would think they do the obvious.
> The obvious to me is to write to a location then make sure the location has
> the correct value.  Do this in 256k increments until one location is
> incorrect, and you have how much memory is installed.

It isn't as simple as that.  Most memory cards will cause 'echoes' to
appear.  For example, Apple's IIgs Memory Expansion card with 1
megabyte installed appears in banks $02-$11 on a ROM 01.  There will
also be an echo of the card in banks $12-$21, $22-$31, etc.

This means that location $12/0000 appears to contain RAM, but any
value written to it will also appear in location $02/0000.  The same
happens with most 4 megabyte cards, in both ROM 01 and ROM 03.

The IIgs ROM must be checking for these echoes, by writing a value to
one location, and seeing if the 'echo location' changes to the same
value.  I believe it only checks certain combinations, which is why
most memory cards won't work with three rows of RAM chips installed.

This would mean that in a ROM 01, the memory manager would look for
echoes between $02/0000 and $06/0000 (256k), $0A/0000 (512k), $12/0000
(1 MB), $22/0000 (2 MB) and $42/0000 (4 MB).  Add $0E to the bank for
the equivalent locations in a ROM 03.

A card with a 'non-standard' memory configuration would only work if
it prevented these echos from appearing.

-- 
David Empson

Internet: David.Empson@bbs.actrix.gen.nz    EMPSON_D@kosmos.wcc.govt.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand