Accessing paged and banked memory

From BeebWiki
Jump to: navigation, search

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