メモリマップ
アドレス | 内容 |
0x0000 ~ 0x00EF | 外部メモリ領域 |
0x00F0 ~ 0x00FF | 周辺機能レジスタ(DSPで使用) |
0x0100 ~ 0x01FF | 外部メモリ領域 |
0x0200 ~ 0x7FFF | 外部メモリ領域(標準データ転送域) |
0x8000 ~ 0xFFBF | 使用不可 |
0xFFC0 ~ 0xFFFF | IPL ROM 64 byte(IPL ROM はハードの初期化用プログラムが入っている。) |
アドレス | 内容 |
0x0000 ~ 0x00FF | 0 Page |
0x0100 ~ 0x01FF | 1 Page |
0x0000 ~ 0x7FFF | 32 K バイト RAM (基板上に実装) |
メモリ空間 SPC700 は 64 K バイトのメモリ空間にアクセスできる。 メモリ空間は用途別に分割されている。 アドレス 0x0000 より 512 バイトは 256 バイト単位の 2 ページに分割されていて、それぞれ 0 ページ、1 ページと呼ぶ。 これらの領域内のデータは、ダイレクトページアドレッシングなどの 多くのアドレッシングモードによりアクセスできる。 スタック領域は 1 ページに確保される。
ダイレクトページ(0, 1 ページ) 0 ページ、1 ページのどちらをダイレクトページとするかは、 プログラムステイタスワード内のダイレクトページ (P) フラグをセット、 リセットすることにより指定できる。 このページ内のデータは少ないバイト数で高速に、かつ多くの種類の 命令とアドレッシングモードで扱えるようになっている。
スタック領域 スタック領域は 1 ページ内の RAM 領域に確保される。 スタックアドレスの上位バイトは 0x01 に固定される。 スタックアドレスの下位バイトはプログラムで設定する必要がある。
IPL SPC700 では、0xFFC0 ~ 0xFFFF までマスク ROM が内蔵されている。 ここには、S-CPU を通じて ROM カセットから 256K ビット RAM 内に、 データを転送するプログラムが入っている。 この領域はリセット時に使用される。
ビット操作命令適用領域
0000H┌──┬────────┬──┬────────┬──┬────────┐ │ │SET1,CLR1 │ │AND1,OR1 │ │TEST1,TCLR1 │ 00FFH│ │ダイレクト・ページ │ │EOR1,MOV1 │ │ │ │ │に適用 │ │NOT1 │ │ │ 01FFH│・・・・└────────┘ │ │ │ │ │ │ │ │ │ 1FFFH│・・・・・・・・・・・・・・・・・・・・・・・・・・・・└────────┘ │ │ │ │ │ 7FFFH│・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・・│ │ │: :│ │ │: 使用不可 :│ FFBFH│ │: :│ FFC0H│・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・・│ │ │ │ │ │ IPL ROM │ │ │ │ FFFFH└──────────────────────────┴────────┘
ダイレクトページのアドレッシング ダイレクトページフラグ (P) で指定されるダイレクトページ (P=0 : アドレス 0x0000 ~ 0x00FF、P=1 : アドレス 0x0100 ~ 0x01FF) のデータはアドレッシングモードがすべて適用できるので、 データの多様な取扱いが出来るようになっている。 また、命令語中の 1 バイトデータで直接アドレス指定できるので、 バイト効率も高くなる。 さらに、命令実効サイクルも少なくなるので、データを高速にアクセスできる。
SPC700命令 SFX 音楽 CPU は、SPC700 シリーズが使われている。 ただし、割り込みはサポートされてないため、 スタンバイ,スリーブの各モードは使うことができない。