Oric memory map

General considerations

The first important thing to consider, is that the memory map is not the same in all video modes. Since HIRES mode require 8000 bytes of memory while TEXT mode require only 1120 bytes, some things are moved around. This is the main reason while there are two memory maps.

A second important element is that a 48k Oric actually has 64k of memory, but unfortunately the top 16k are overlapping with the 16k of ROM containing the BASIC, so it's not actually usable.

When a floppy disk drive is connected, some additional circuitry become available and allows to access the top 16k of RAM. If you use it, of course you cannot rely on the DOS anymore to access the disk, but you can use your own loader instead.

TEXT mode memory map
Here is what the memory locations are in TEXT mode:

START NAME DESCRIPTION END SIZE
C000 Read Only Memory (ROM) Contains the BASIC interpreter and all graphics/sound/math code FFFF 16384
BFE0 FREE MEMORY This area is free. BFFF 32
BB80 SCREEN 40*28 character mode
Line 0 is the status line
BFDF 1120
B800 ALTERNATE CHAR SET Mozaic char set in a 2x3 matrix for semi-graphics drawing. Can be redefined BB7F 896
B400 STANDARD CHAR SET Contains the font displayed on screen. Can be redefined. Characters of ASCII code less than 32 can only be displayed in HIRES mode using the CHAR commande since those values are display attributes in TEXT mode ! B7FF 1024
9800 GRABABLE MEMORY This area is unused in TEXT mode, but by default is reserved by the BASIC in order to allow the use of HIRES mode. To use it from BASIC, you need to use the GRAB command. B3FF 7168
500 FREE MEMORY This zone is entirelly available to your programs. 97FF 37632
400 Page 4 Is officially used only by the DOS. In reality most little utility programs are conceived to be used in page 4. DOS uses this location to put a piece of code that redirect BASIC commands to the BASIC ROM or to the overlay memory. 4FF 256
300 Page 3 This is the input-output area. Those 256 bytes are linked to the expansion bus of the oric and are used to communicate with the external peripherals. This is no real memory. 3FF 256
200 Page 2 Contains run time variables used by the BASIC interpreter as well as interupt handlers. 2FF 256
100 Page 1 This area is used by the 6502 as the stack.
It's non movable.
1FF 256
0 Page 0 This 256 bytes area can be optimaly used by the 6502 processor contrary to the other part of the memory. It also allow the use of specific adressing modes. The C Library and the system use a part of this area. FF 256
Oric 48k - TEXT


HIRES mode memory map
And here is what the memory locations are in HIRES mode:

START NAME DESCRIPTION END SIZE
C000 Read Only Memory (ROM) Contains the BASIC interpreter and all graphics/sound/math code FFFF 16384
BFE0 FREE MEMORY This area is free. BFFF 32
A000 SCREEN 200 scanlines of 40 bytes each, and 3 text lines of 40 bytes each BFDF 8000
9C00 ALTERNATE CHAR SET Mozaic char set in a 2x3 matrix for semi-graphics drawing. Can be redefined 9FFF 896
9800 STANDARD CHAR SET Contains the font displayed on screen. Can be redefined. Characters of ASCII code less than 32 can only be displayed in HIRES mode using the CHAR commande since those values are display attributes in TEXT mode ! 9BFF 1024
500 FREE MEMORY This zone is entirelly available to your programs. 97FF 37632
400 Page 4 Is officially used only by the DOS. In reality most little utility programs are conceived to be used in page 4. DOS uses this location to put a piece of code that redirect BASIC commands to the BASIC ROM or to the overlay memory. 4FF 256
300 Page 3 This is the input-output area. Those 256 bytes are linked to the expansion bus of the oric and are used to communicate with the external peripherals. This is no real memory. 3FF 256
200 Page 2 Contains run time variables used by the BASIC interpreter as well as interupt handlers. 2FF 256
100 Page 1 This area is used by the 6502 as the stack.
It's non movable.
1FF 256
0 Page 0 This 256 bytes area can be optimaly used by the 6502 processor contrary to the other part of the memory. It also allow the use of specific adressing modes. The C Library and the system use a part of this area. FF 256
Oric 48k - HIRES


If you are more a visual person, here is what it looks like:

HIRES detailed layout


Known issues


No known problem - please signal any issue on the Cross development tools forum.

comments powered by Disqus
Coverity Scan Build Status