<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 27 Nov 2006 16:24:31 +0000 (WET)
From   : PCOGHLAN@... (Peter Coghlan)
Subject: More sideways RAM questions

>(Hopefully less daft)....
>
>Even setting ?&F4 and ?&FE30 will not load stuff into sidways RAM on my
Beebs, instead I have to poke accross with some assembler I've written. Unfortunately
the fastest I can get this to work is about 15 seconds (instead of *LOAD
being about 1!).
>
>I'm starting to suspect its because these machines use Watford DDFS?
>
>I'd like to know:
>
>1) Why does *LOAD not work (it seems to on other machines, I remember thats
how I used to load my ROMS at school!)

Some sideways RAM systems switch themselves in whenever there is a write
to addresses between &8000 and &BFFF, regardless of
which ROM socket is selected. Others require the correct socket to be selected
for writes to work. It sounds like you have the
latter. When you use *LOAD, the ROM socket containing the filing system you
are using is likely to be selected, not the socket
containing the sideways RAM you are trying to write to. Therefore, a small
bit of assembly (probably in main RAM) is required to
accomplish the operation.

>2) 8*2kOSGBPB seems to be about as slow as doing 16k*OSBGET - is this right?

Most popular DFSs implement 2kOSGBPB by calling OSBGET 2k times and there
is no speed advantage. Some DFSs and NFSs implement
OSGBPB properly and achieve speeds similiar to when using OSFILE. If you
are suffering from a slow OSGBPB, the best plan would
be to use OSFILE to load the file into main RAM and then use an assembly
loop to copy it to the sideways RAM bank.

>3) Still no identification on the actual type of RAM.
>4) The RAM shows up at slots 14, 12, 6, 2 - are these slots likely to be
the same RAM duplicated, so far I've not managed to load 2 ROMs at once but
it could be my dodgy loader!

The slot numbers look a bit strange but it is normal for sideways ROMs or
RAMs to each appear in 4 "virtual" slots when they
are plugged into one of the 4 sockets on the main board. This is because
the ROM select latch is four bits wide but only 2 bits
are acutally decoded and used to select which socket is enabled. The upper
2 bits are ignored unless extra hardware is fitted
to decode them. Therefore, the ROM fitted to slot 15 for example normally
also appears at slot 11, slot 7 and slot 3. The OS
contains code which checks for these duplicate ROM images and ignores all
except the one in the highest slot number. I would
expect whatever is plugged into socket 14 to also appear in slot 10, slot
6 and slot 2.

Regards,
Peter.


<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>