### 3-4　RAM空間

LCD表示用XRAMの198バイト、作業用RAM用VTRBFの512バイトを含む1222バイトのRAMを内蔵しています。 また、特殊機能レジスタ（SFR）がRAMの上位にあたる100H〜1FFH番地に存在しています。

▽ RAMの構成(表4)

メモリ | 容量
RAMサイズ | 1222バイト
XRAM | バンク0 180H - 1FBH (96バイト)
バンク1 180H - 1FBH (96バイト)
バンク2 180H - 185H (6バイト)
メインRAM | バンク0 000H - 0FFH (256バイト)
バンク1 000H - 0FFH (256バイト)
VTRBF | 166H (256バイト×2バンク)

####

3-4-1　間接アドレスレジスタ

RAMの00H〜0FHまでの16バイトの領域は、4バンクからなる間接アドレスレジスタです。

この間接アドレスレジスタは、下位アドレスから順に＠R0、＠R1（RAM用）、＠R2、＠R3（SFR用）で構成されています。 アドレッシングに使用する間接アドレスレジスタのバンクは、プログラムステータスワード（PSW）のビット3、4（間接アドレスレジスタバンクフラグ：IRBK0、1）により指定します。また、この16バイトの領域は通常のRAMとしても使用可能です。

間接アドレスレジスタのバンクを切り替えて使用する場合、以下の場合は実行する前に必ずバンク設定を０に戻して下さい。 ・フラッシュメモリアクセス用サブルーチンをCALLする場合 ・モード移行処理(change game_end)を実行する場合 ・ベースタイマ割り込みが発生した場合の、timer_inをCALLする直前

間接アドレスレジスタとRAMの関係は、次の表に示します。

▽ 間接アドレスレジスタ配置(図16)

▽間接アドレスレジスタマップ(表5)

間接アドレスレジスタ名 | 機能 | バンク0（IRBK1＝0）（IRBK0＝0） | バンク1（IRBK1＝0）（IRBK0＝1） | バンク2（IRBK1＝1）（IRBK0＝0） | バンク3（IRBK1＝1）（IRBK0＝1）
＠R0 | RAMアクセス | RAM 00H | RAM 04H | RAM 08H | RAM 0CH
＠R1 | RAMアクセス | RAM 01H | RAM 05H | RAM 09H | RAM 0DH
＠R2 | SFRアクセス | RAM 02H | RAM 06H | RAM 0AH | RAM 0EH
＠R3 | SFRアクセス | RAM 03H | RAM 07H | RAM 0BH | RAM 0FH

#### （1） 直接アドレッシングモード時

▽ 直接アドレッシングモード時(図17)

#### （2） 間接アドレッシングモード時

▽ 間接アドレッシングモード時(図18)

####

3-4-2　特殊機能レジスタ（SFR）

RAM，SFRの一覧を表6に示します。SFR内の各種レジスタの内容は、各項目を参照してください。

初期値は、リセット後BIOSが初期化したあとの値です。

s R＝READ　　X＝不定
s W＝WRITE　　H＝存在しない

▽ RAMのメモリマップ(表6)

シンボル | アドレス | R/W | 名称 | 初期値
RAM（バンク0） | 000H-0FFH | R/W | データメモリ | XXXXXXXX （リセット時は保持）
RAM（バンク1） | 000H-0FFH | R/W | データメモリ | XXXXXXXX （リセット時は保持）
ACC | 100H | R/W | アキュムレーター | 00000000
PSW | 101H | R/W | プログラムステータスワード | 00000000
B | 102H | R/W | Bレジスタ | 00000000
C | 103H | R/W | Cレジスタ | 00000000
TRL | 104H | R/W | テーブル参照レジスタ下位バイト | 00000000
TRH | 105H | R/W | テーブル参照レジスタ上位バイト | 00000000
SP | 106H | R/W | スタックポインタ | XXXXXXXX
PCON | 107H | R/W | パワー制御レジスタ | HHHHHH00
IE | 108H | R/W | マスター割り込み許可制御レジスタ | 0HHHHH00
IP | 109H | R/W | 割り込み優先順位制御レジスタ | 00000000
EXT | 10DH | R/W | 外部メモリ制御レジスタ | HHHH0000
OCR | 10EH | R/W | 発進制御レジスタ | 0H00HH00
T0CNT T0PRR | 110H 111H | R/W R/W | タイマー0制御レジスタ タイマー0プリスケーラデータ | 00000000 00000000
T0L | 112H | R | タイマー0下位 | 00000000
T0LR | 113H | R/W | タイマー0下位リロードデータ | 00000000
T0H | 114H | R | タイマー0上位 | 00000000
T0HR | 115H | R/W | タイマー0上位リロードデータ | 00000000
T1CNT | 118H | R/W | タイマー1制御レジスタ | 00000000
T1LC | 11AH | R/W | タイマー1下位比較データ | 00000000
T1L | 11BH | R | タイマー1下位 | 00000000
T1LR | 11CH | W | タイマー1下位リロードデータ | 00000000
T1HC | R/W | タイマー1上位比較データ | 00000000
T1H | 11DH | R | タイマー1上位 | 00000000
T1HR | W | タイマー1上位リロードデータ | 00000000
MCR | 120H | W | モード制御レジスタ | 00000000
STAD | 122H | R/W | スタートアドレスレジスタ | 00000000
CNR | 123H | W | 文字数レジスタ | H0000000
TDR | 124H | W | 時分割レジスタ | HH000000
XBNK | 125H | R/W | バンクアドレスレジスタ | HHHHHH00
VCCR | 127H | W | 液晶コントラスト制御レジスタ | 00000000
SCON0 | 130H | R/W | SI00制御レジスタ | 00H00000
SBUF0 | 131H | R/W | SI00バッファ | 00000000
SBR | 132H | R/W | SI0ポーレートジェネレータ | 00000000
SCON1 | 134H | R/W | SI01制御レジスタ | H0H00000
SBUF1 | 135H | R/W | SI01バッファ | 00000000

シンボル | アドレス | R/W | 名称 | 初期値 | 掲載ページ
SCON1 | 134H | R/W | SI01制御レジスタ | 00000000 | 111
SBUF1 | 135H | R/W | SI01バッファ | 00000000 | 113
P1 | 144H | R/W | ポート1ラッチ | 00000000 | 58
P1DDR | 145H | W | ポート1データディレクションレジスタ | 00000000 | 58
P1FCR | 146H | W | ポート1機能制御レジスタ | 10111111 | 59
P3DDR | 14DH | W | ポート3データディレクションレジスタ | 00000000 | 62
P3INT | 14EH | R/W | ポート3割り込み機能制御レジスタ | 11111101 | 62
P7 | 15CH | R | ポート7ラッチ | HHHHXXXX | 64
I01CR | 15DH | R/W | 外部割り込み0，1制御 | 00000000 | 135
I23CR | 15EH | R/W | 外部割り込み2，3制御 | 00000000 | 137
ISL | 15FH | R/W | 入力信号選択 | 11000000 | 138
VSEL | 163H | R/W | 制御レジスタ | 11111100 | 143
VRMAD1 | 164H | R/W | システム用アドレスレジスタ1 | 00000000 | 144
VRMAD2 | 165H | R/W | システム用アドレスレジスタ2 | HHHHHHH0 | 144
VTRBF | 166H | R/W | 送受信バッファ | XXXXXXXX | 144
BTCR | 17FH | R/W | ベースタイマ制御 | 01000001 | 101
RAM（XRAM） （バンク0） | 180H-1FBH | R/W | 液晶表示メモリ | XXXXXXXX （リセット時は保持） | 126
RAM（XRAM） （バンク1） | 180H-1FBH | R/W
RAM（XRAM） （バンク2） | 180H-185H | R/W

[←] | [INDEX] | [→]