# 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.

TEXT mode memory map

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

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