Random Access Memory
The ORIC has 65536 bytes of RAM, ordered as 8 banks (A bank per bit) of 64K.
The top 16K of RAM is overlayed (Covered) by the ROM, making it unusable on the cassette system. On the Disc system, the ROM can be switched out, with the underlying RAM being used for the Disc Operating System (DOS).
The RAM is further portioned off with the bottom 4 pages (a page is 256 bytes of RAM) being assigned a special purpose.
Page zero has a special meaning to machine code (What the machine actually understands (rather than BASIC)) and is in many ways, a faster storage and manipulative median.
Page One is used by the 6502 CPU (Processor) for its stack (A quick form of storing data or addresses by using a sub-system called FIFO (First in, First out)).
Page 2 is used for the BASIC system variables. It is also jumped to by an NMI (Reset button) and Interrupt routine.
Page 3 is used for input/output. This is for the internal 6522 and, if connected the Disc Drive controller memory.
Although Page 4 is not strictly used, it is used in the SEDORIC disc system for its extended system handling. (This usage can be removed by invoking a !QUIT command)
Finally, screen memory sits at two alternative positions, according to which screen mode the system is running at that time. In TEXT mode, screen and character sets are resident between locations #B400 and #BFDF whilst in HIRES, the same range from #9800 to #BFDF.
The rest of memory is used for a BASIC program with a few areas of memory that are unuasable by BASIC (Isolated for one reason or another).
These memory pockets are as follows.
In TEXT mode.... |
In HIRES mode... |
#B400 to #B4FF #B800 to #B8FF #BFE0 to #BFFF |
#9800 to #98FF #9C00 to #9CFF #BF41 to #BF67 #BFE0 to #BFFF |