Difference between revisions of "Accessing paged and banked memory"

From BeebWiki
Jump to: navigation, search
m (1 revision)
m (Corrected formatting.)
 
(2 intermediate revisions by one other user not shown)
Line 13: Line 13:
 
of display, and the currently selected paged ROM/RAM.
 
of display, and the currently selected paged ROM/RAM.
  
&FFrrxxxx -> sideways ROM/RAM
+
* &FFrrxxxx -> sideways ROM/RAM
&FFFFxxxx -> main memory
+
* &FFFFxxxx -> main memory
&FFFExxxx -> displayed memory
+
* &FFFExxxx -> displayed memory
&FFFDxxxx -> shadow memory
+
* &FFFDxxxx -> shadow memory
&FF7Fxxxx -> Hazel memory
+
* &FF7Fxxxx -> Hazel memory
  
 
     DEFFNrm(!&F6):LOCAL Y%:Y%=?&F8 EOR &F0:IF?&F8<&80:IF?&F7>&BF:?&F9=0
 
     DEFFNrm(!&F6):LOCAL Y%:Y%=?&F8 EOR &F0:IF?&F8<&80:IF?&F7>&BF:?&F9=0

Latest revision as of 01:46, 10 February 2022

OSRDSC (previously named OSRDRM) should read from any specified memory. In actuality, it only reads from the currently displayed screen memory and the specified paged ROM.

OSWRSC should write to any specified memory. In actuality, it only writes to the currently displayed screen memory and the currently selected paged ROM/RAM.

OSWORD 5 and 6 should read and write to any specified memory. In actuality, they only access the main memory, regardless of display, and the currently selected paged ROM/RAM.

  • &FFrrxxxx -> sideways ROM/RAM
  • &FFFFxxxx -> main memory
  • &FFFExxxx -> displayed memory
  • &FFFDxxxx -> shadow memory
  • &FF7Fxxxx -> Hazel memory
   DEFFNrm(!&F6):LOCAL Y%:Y%=?&F8 EOR &F0:IF?&F8<&80:IF?&F7>&BF:?&F9=0
   IF!&F6<0:IF?&F7>&7F OR Y%=&E:=(USR&FFB9)AND&FF ELSE =?!&F6
   DEFFNwm(!&F6,A%):LOCAL Y%:Y%=?&F8

See Also

http://mdfs.net/Docs/Comp/BBC/MemAddrs