On Sat, 27 Mar 1999, Jon De Schrijder wrote:

> Can you all agree with the following?
> It is important for both MSX software- and hardware-developers that we
> all can come to an agreement.
> Probably there are still memorymappers procuded nowadays and also
> software depending on these.

A very good initiative.

> *memorymapped RAM is optional for MSX2

> *The size of a memorymapper is at least 64kB (four pages of 16kB)

I don't agree with this. Although all mappers are at least 64kB, I don't
see any reason for demanding it to be. It can be any size which is a
multiple of 16kB. I think we should not even define that it must have a
number of pages which is a power of 2. It may happen somebody wants to
make a mapper of 48kB or something as a test. I think it should work on
every MSX, the only problem is you cannot read the mappersize from the
port, but that can be done in a different way anyway.

> *There can be more than one memorymapper in an MSX2 or higher.

Agreed

> *Mapperports are of course writeable. It is not required for the mapper
> to store all written bits. Storing more bits than are actually used by
> the mapper is not illegal. (see the Philips MSX with 4 bit-mapper and
> only 64kB RAM connected)

Agreed

> *When powering up the system, the bios should initialize the mapperports
> by writing the apropriate values to it.

I think we could as well state the standard here: They will be filled with
3,2,1,0 for page 0,1,2 and 3 respectively.

> *Mapperports may be read. However, the returned information is limited
> (see below)
> 
> *The read-out mechanism of a mapper should comply with the the
> following: when reading a mapperport the last written BITS should be
> returned. So only the bits that were actually stored when the mapperport
> was written, should be outputted on the databus. The other bits of the
> databus should remain in a high-impedance state.

Hmm... Why not make them undefined? This is easier for the
hardware-designer and doesn't matter for the software-designer, since the
mappersize cannot be read from it anyway.

> As a result of this the following things are true:
> -There occur no short-circuits on the databus; or a databit is not
> controlled at all (high-imped) or it is controlled by one or more
> mappers at the same time; in that case all mappers return the same
> databit (the databit that they stored when the mapperport was written)
> (Note also the fact that it is no problem when there exists a small
> delay between the several mappers when outputting their data, because
> the 'slow' outputs will still be in a high-impedance state and will not
> affect the 'fast' outputs.)
> -It is possible that databits not controlled by any mapper return random
> bits. There is no reason to assume these bits to be 1 or 0.

There is. High impedance means 1, since MSX pulls it's databus up.

> -Since all valid memory mappers contains at least 4 mapperblocks, at
> least 2 bits are used for the mapperports. When writing data to a
> mapperport, the two least significant bits can always be read back.
> (useful to check if there is a memory mapper present in the system)

Is it useful to know if there is a mapper if you don't know where it is? I
think it could also be useful to have a mapper of only 1 page.

Bye,
shevek

---
Visit the internet summercamp via http://polypc47.chem.rug.nl:5002


****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****

Reply via email to