<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sat, 03 Dec 2005 23:34:00 -0000
From   : "David Harper" <dl.harper@...>
Subject: Re: ?Shadow RAM point

Jonathan Graham Harston <jgh@...> wrote:

>>   If have Shadow RAM on BBC/ Master as being displayed, what happens if 
>> you
>> are entering a BASIC program that goes over &3000, as the computer would
> have
>> to swap the 'Non-Shadow' User memory back in to store the program?????
>
> If a shadow mode is being displayed, then the computer (BASIC,
> WORD, whatever) can use everything up to &8000. The shadow memory
> is only every accessed by the VDU drivers. The VDU code in the MOS
> switches the shadow memory in temporarily just to write
> information to the screen memory.

To be strictly accurate this switching is done by hardware rather than by 
the MOS VDU code. The machine is set up so that (if a particular bit in the 
Access Control register is set) when the machine is executing the VDU code 
the CPU can only "see" the
shadow memory, whereas if it is using other code (such as Basic) then it can 
only "see" main memory.

OK, I am being pedantic. The general outline is correct.

> The VDU hardware displays the screen memory continously as it is
> accessing it seperately from the CPU. The CPU can only "see"
> normal memory at &0000-&7FFF. The VDU hardware can only "see"
> shadow memory at &0000-&7FFF (when shadow mode selected). These
> are two seperate bits of memory.
>
> It's the same concept as BASIC and DFS both being in the same part
> of the address map at &8000-&C000. When BASIC is running, BASIC is
> switched into &8000-&C000. When a call to some DFS code is made,
> DFS is switched in at &8000-&C000 until DFS returns to BASIC, when
> the MOS switches BASIC back in again.

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