OSCA memory map
Created by: Administrator, Last modification: Tue 02 of Nov, 2010 (19:06 UTC) by phil
| Range | Contents |
|---|---|
| $0000 - $01FF | 512 Bytes ROM when read / Colour palette when written. Alternatively 512 bytes of read/write system RAM (see bit 6 of sys_alt_write_page) |
| $0200 - $03FF | 512 bytes system RAM when read / Video Registers when written. Alternatively 512 bytes of read/write system RAM (see bit 7 of sys_alt_write_page) |
| $0400 - $05FF | 512 bytes system RAM when read / Sprite control registers when written. Alternatively 512 bytes of read/write system RAM (see bit 7 of sys_alt_write_page) |
| $0600 - $06FF | 256 bytes system RAM when read / Maths table when written. Alternatively 256 bytes of read/write system RAM (see bit 7 of sys_alt_write_page) |
| $0700 - $07FF | Video Flags when read / Maths table when written. Alternatively 256 bytes of system RAM (see bit 7 of sys_alt_write_page) |
| $0800 - $0FFF | 2KB System memory (Note: ROM code stipulates that IRQ Mode 1 vector jumps to $A00, and NMI vector jumps to $A03) |
| $1000 - $1FFF | 4KB System RAM or 4KB Sprite Page (when selected by bit 7 of the Sys_Mem_Select) When sprite RAM is paged into $1000-$1FFF, CPU writes to go Sprite Definition RAM at the page selected by the vreg_vidpage register. CPU READs always return bytes from System Memory, whether sprite RAM is paged in or not.) |
| $2000 - $3FFF | 8KB System RAM or default location of 8KB Page of video RAM (when selected by bit 6 of the Sys_Mem_Select) When video memory is paged in, read and writes are redirected to Video RAM at the page selected by the vreg_vidpage register. |
| $4000 - $7FFF | 16KB of System RAM. |
| $8000 - $FFFF | A 32KB page of System RAM (selected by bits 3:0 of the port sys_mem_select). |
Notes:
- In OSCA 659+, the page of System RAM appearing at $0000-$7fff is no longer fixed. You can use the port sys_low_page to select any of the 16 pages.
- Care must be taken around interrupts when the ROM is paged out with bit 6 of sys_alt_write_page
- When video registers 200-7ff are paged out with bit 7 of sys_alt_write_page the video status register cannot be read from location $700. However, the status bits can be read for the port sys_vreg_read.
- The Linecop always writes to the video registers ($0-$6ff) regardless of the paging control bits for this area.