R800ユーザーズマニュアル 暫定版

本記載内容は、R800ユーザーズマニュアル 1990年8月28日暫定版をベースに作成しています。
また、赤字記載内容は裕之が独自に調査or解釈した結果を記載しています(主にFS-A1ST/GTの回路図を参考)。
端子名についてはUM内、また、回路図で揺らぎがありますので、GTの回路図を基準としています。5.2章以降、端子名の修正については赤字記載しておりません。
このページの内容について、アスキーやPanasonic等に質問をするという行為は絶対にしないで下さい。

目次

1.R800の特徴
2.ブロック図
3.ピン配置図
4.パッケージ寸法図
5.端子説明
 5.1.端子表
 5.2.端子機能説明
  5.2.1.メモリ・I/Oアクセス インターフェイス
  5.2.2.割り込み インターフェイス
  5.2.3.バス交換、DMA インターフェイス
  5.2.4.クロック ジェネレータ
  5.2.5.その他
6.電気的仕様
 6.1.絶対最大定格(ABSOLUTE MAXIMUM RATINGS)
 6.2.推奨動作条件 (RECOMMENDED OPERATING CONDITIONS)
 6.3.推奨動作条件下での直流特性 (DC CHARACTERISTICS)
 6.4.入出力端子容量 (INPUT / OUTPUT CAPACITY)
 6.5.交流特性 (AC CHARACTERISTICS)
  6.5.1.クロックタイミング
  6.5.2.リセットタイミング
  6.5.3.メモリ、I/Oアクセス共通タイミング
  6.5.4.External Address Mode
7.割り込み動作
8.DMAコントローラ
9.メモリマッパ
10.DRAMインターフェース
11.リセットとクロック
12.内部拡張レジスタ
13.命令の実行
14.R800の命令表

1.R800の特徴
1. 16ビットALUバスを採用し演算処理を高速化している。
  ・16ビット算術演算、論理演算を1システムクロックで実行する。
2. 24ビット幅のアドレス空間である
  ・メモリマッパを9個内蔵し16MBまでメモリ拡張可能。
3. DRAMインターフェースを内蔵しているので、直接DRAMを接続できる。
  ・直接DRAMを接続できる
  ・リフレッシュコントローラを内蔵している(リフレッシュはCAS BEFORE RAS方式)
  ・DRAM高速インターフェース(ページモード)をサポートしているため、ノーウェイトでアクセス可能。
4. クロックジェネレータを内蔵。(28MHz)
5. インタラプト機能の強化。(7レベルの優先順位を持つ間接アドレシングインタラプト)
6. DMAコントローラを2チャンネル内蔵。
7. CPUクロックは約7MHzで1バイト命令のほとんどを1CPUクロックで実行可能。
8. ザイログ社のZ80と命令コード上位コンパチブル。
  ・Z80命令はすべてサポートしている
  ・IX、IYレジスタの8ビット命令をサポートしている
  ・乗算命令をサポートしている
  ・FASTモード(命令フェッチが1回のみでI/Oデータのブロック転送を行う)をサポートしている
9. 入出力命令の高速転送モード(命令のフェッチが1回のみ)をサポート。
10. マッパアドレスピンを双方向化。
  ・バス開放時、外部から全アドレスとERASを入力することにより、DRAMの全空間を外部からアクセスできる

2.ブロック図


3.ピン配置図


4.パッケージ寸法図
省略(100ピン0.65mmピッチQFP)

5.端子表
5.1.端子表
Pin NmaePinNoI/OstateFunction
*RESET76I2RESET
XTAL067I2XTAL input/MCK input (MCK=28.63636MHz)
XTAL166O2XTAL output
SYSCLK72O2SYSCLK output (SYSCLK=7.15909MHz) MCK/4
VCLK74O2VCLK output (VCLK=14.31818MHz) MCK/2
TEST75I2test mode
*M180O2machine cycle 1
*BUSRQ91I2BUS request
*BUSAK82O2BUS acknowledge
*HALT77O2test pin
*HALTBRK88I2test pin
FTREN89I2fast transfer enable
*REFEN87I2refresh enable
DRAM70I2DRAM select
*MABUSDIR73I2select MA BUS direction
*ERAS71I2external RAS
*WAIT69I2wait request
*MEMRQ59O3memory access request command
*IORQ58O3io access request command
*RD57O3read enable
*WR56O3write enable
*ACCSTB55O3access strobe
*RAS064O2(DRAM) RAS0(row address strobe)
*RAS163O2(DRAM) RAS1(row address strobe)
*RAS262O2(DRAM) RAS2(row address strobe)
*RAS361O2(DRAM) RAS3(row address strobe)
*CAS60O2(DRAM) CAS(column address strobe)
*NMI9I2NMI(non maskable interrupt)
*INT1I2interrupt
*INT12I2new interrupt 1
*INT23I2new interrupt 2
*INT34I2new interrupt 3
*INT45I2new interrupt 4
*INT56I2new interrupt 5
*INT67I2new interrupt 6
*INT78I2new interrupt 7
*INTMP78O2enable MAP0',int sequence
D799I/O3data bus 7
D698I/O3data bus 6
D597I/O3data bus 5
D496I/O3data bus 4
D395I/O3data bus 3
D294I/O3data bus 2
D193I/O3data bus 1
D092I/O3data bus 0
A1553I/O3address bus 15, memory configuration data 1
A1452I/O3address bus 14, memory configuration data 0
A1351I/O3address bus 13
A1250I/O3address bus 12
A1149I/O3address bus 11
A1048I/O3address bus 10
A947I/O3address bus 9
A846I/O3address bus 8
A744I/O3address bus 7
A643I/O3address bus 6
A542I/O3address bus 5
A441I/O3address bus 4
A339I/O3address bus 3
A238I/O3address bus 2
A137I/O3address bus 1
A036I/O3address bus 0
MA2322I/O3mapper address bus 23
MA2221I/O3mapper address bus 22
MA2120I/O3mapper address bus 21
MA2019I/O3mapper address bus 20
MA1918I/O3mapper address bus 19
MA1817I/O3mapper address bus 18
MA1716I/O3mapper address bus 17
MA1615I/O3mapper address bus 16
MA1514I/O3mapper address bus 15
MA1413I/O3mapper address bus 14
MA1312I/O3mapper address bus 13
DA1034O2DRAM address bus MA20/MA21
DA933O2DRAM address bus MA18/MA19
DA832O2DRAM address bus MA16/MA17
DA731O2DRAM address bus A7 / MA15
DA630O2DRAM address bus A6 / MA14
DA529O2DRAM address bus A5 / MA13
DA428O2DRAM address bus A4/A12
DA327O2DRAM address bus A3/A11
DA226O2DRAM address bus A2/A10
DA125O2DRAM address bus A1/A9
DA024O2DRAM address bus A0/A8
*CSREG10I2chip select of I/O address/data register
*DMARQ083I2DMA request #0
*DMARQ184I2DMA request #1
*DACK085O2DMA acknowledge #0
*DACK186O2DMA acknowledge #1
*EOP79O2DMA end of process
VDD40I-+5V
VDD65I-+5V
VDD90I-+5V
VSS11I-GND
VSS23I-GND
VSS35I-GND
VSS45I-GND
VSS54I-GND
VSS68I-GND
VSS81I-GND
VSS100I-GND
*:Low Active

5.2.端子機能説明
5.2.1.メモリ・I/Oアクセス インターフェイス
D7-0(I/O,3 state)8ビット双方向データバス。
A15-0(I/O,3 state)16 ビットアドレスバス。
入力と出力の切り替え
次のいずれかの場合、入力状態になる。
A15-14はR800に接続されるDRAMのタイプを示す値としてRESETがLowからHighに立ち上がったときに読み込まれる。

config data 1   config data 0   使用するDRAM type
(=A15)(=A14)
LowLow64k × 4bit
LowHigh256k × 4bit
HighLow1M X 4bit
HighHigh4M X 4bit

MA23-13(I/O,3 state)11 ビット拡張アドレスパス。
入力と出力の切り替え
次のいずれかの場合、MA23-13の値が入力される。
1.MABUSDIR=Lowのとき(入力)
2.RESET=Lowのとき(入力)
3.BUSAK=Lowのとき(ハイインピーダンス)
DA10-0(O,2 state)DRAM専用の11ビットアドレスパス。
DRAM(I)DRAMをアクセスしていることをR800に伝える入力信号。
この信号はメモリアクセス毎にダイナミックに変化する。
この信号をもとにR800はRAS/CASのコントロールを行う。
*REFEN(I)この信号がアクティブの場合、R800 はリフレッシュを行う。
*MABUSDIR(I)マッパの選択を指定する。
1:R800内のマッパを使う
(この時MA23-MA11は出力としてはたらく)
0:R800外のマッパを使う
(この時MA23-MA11は入力としてはたらく)
*WAIT(I)メモリまたはI/OからR800に対するウェイト要求。
*MEMRQ(O,3 state)メモリアクセス要求モードを示す出力信号。
(正確には「I/Oアクセス要求モード以外」であることを示す)
RESET=LowまたはBUSAK=Lowのときハイインビーダンス状態となる。
*IORQ(O,3 state)I/Oアクセス要求モードを示す出力信号。
RESET=LowまたはBUSAK=Lowのときハイインピーダンス状態となる。
*RD(O,3 state)メモリまたはI/Oに対してREAD要求モードであることを示す出力信号。
(正確には「WRITE要求モード以外」であることを示す)
RESET=LowまたはBUSAK=Lowのときハイインビーダンス状態となる。
*WR(O,3 state)メモリまたはI/Oに対してWRITE 要求モードであることを示す出力信号。
RESET=LowまたはBUSAK=Lowのときハイインピーダンス状態となる。
*ACCSTB(O,3 state)メモリアクセスまたはI/Oアクセス時のアクセスストローブ出力信号。
RESET=LowまたはBUSAK=Lowのときハイインピーダンス状態なる。
*RAS0-3(O,2 state)DRAMに対するRAS信号。
RESET=LowまたはBUSAK=Lowのときハイインピーダンス状態Hとなる。
*CAS(O,2 state)DRAMに対するCAS 信号。
*ERAS(I)BUSAK=0、REFEN=1の時、R800はERASの信号をそのままRAS0-RAS3へ出力する。
5.2.2.割り込み インターフェイス
*NMI(I)ノンマスカブルな(割り込みマスクできない)割り込み信号。old modeの場合もnew modeの場合も使用する。
*INT(I)割り込み信号 (OLD MODE)。
*INT1-7(I)INT とは別の割り込み信号(NEW MODE)。
*INTMP(O)OLD INTの場合:割り込みが受け付けられて、R800の割り込みシーケンスが実行中であることを示す。
NEW INTの場合:MAP0'使用中を示す。
すなわち、NMIまたは INT1-7が受け付けられてからRETNまたはRETIが実行されるまでの期間を示す。
(注意)
1.INTとINT1-7は同時には使えない。
RESET後はINTが有効でINT1-7の信号は無視される。その後ソフトウェアにより、R800内部のレジスタである"int upper register"に値がロードされると、それ以降は、INT1-7が有効でINTの信号は無視される。
2.INT1-7の中での優先順位は、INT1が最も高くINT7が最も低い。
5.2.3.バス交換、DMA インターフェイス
*BUSRQ(I)R800以外のバスマスタがメモリまたはI/Oをアクセスしたい場合、R800に対してバス開放を要求する信号。
*BUSAK(O)バス開放許可信号。この信号がアクティブの場合は、A15-0、MA23-13、MEMRQ、IORQ、RD、WR、ACCSTBの出力信号はすべてハイ・インビーダンス状態となる。
*DMARQ0(I)R800内部のDMAコントローラ0に対する、DMA転送要求信号。
*DMARQ1(I)R800内部のDMAコントローラ1に対する、DMA転送要求信号。
*DACK0(O)DMARQ0を受け付け、DMAコントローラ0が実行中であることを示す。
*DACK1(O)DMARQ1を受け付け、DMAコントローラ1が実行中であることを示す。
*EOP(O)指定バイト数のDMA転送終了したことを示す。
DMA0、DMA1のどちらが終了したかは内部レジスタDMA0_mode_regまたはDMA1_mode_regを読んで判断すること。
(注意)
1.SYSCLK に同期した信号である。
BUSAK、DACK0、DACK1、EOPはSYSCLKに同期して出力される。
BUSRQ、DMARQ0、DMARQ1 はSYSCLKに同期させる必要はない。
2.DMA0はDMA1より優先度が高い。
DACK0とDACK1が両方ともアクティブになることはない。
3.DMA転送中はCPUはCPUインストラクションを実行しない。
5.2.4.クロック ジェネレータ
XTAL0(I)28.63636MHzの水晶振動子の接続端子。
XTAL1(O)外部で発振させたクロックを入力する時はXTAL0を用いる。
この場合は50%dutyの波形を入れること。
このクロックをMCK(main clock)と呼ぶ。

(水晶振動子の接続例)
・R、C1、C2の値
タイプ1 R=500KΩ~2MΩ、C1=C2=12pF~33pF
タイプ2 R=2.4KΩ~5.6KΩ、C1=C2=5pF~18pF
タイプ1の水晶振動子例:UM-1(MF型)28.63636MHz[朝日電波(株)]
タイプ2の水晶振動子が多い。
補足:
発振周波数が高くなるとオーバートーンの水晶振動子が多くなる。
オーバートーンの水晶振動子は各メーカーによりR、Cの値が異なる。
中には、Rの大きい(1MΩレベル)ところで安定するものもあるし、また、中には、Rの小さい(数KΩレベル)ところで発振し、Rが大きくなると基本波で発振するものもある。
SYSCLK(O)MCKを4分周したもの(SYSCLK=7.15909MHz)
VCLK(O)MCKを2分周したもの(VCLK=14.31818MHz)
5.2.5.その他
*RESET(I)アクティブ(Low)時にR800が初期化される。R800内部でRESETされる(値が0になる)レジスタ、フリップフロップはIR、PC、IFF1、IFF2、R、I、MAP0である。この信号がアクティブの場合は、A15-0、MA23-13、MEMRQ、IORQ、RD、WR、ACCSTBの出力信号はすべてハイ・インビーダンス状態となる。
(注)
1. RESET直後のリフレッシュについて。
R800はRESET直後DRAMに対するリフレッシュを行わない。従ってプログラムで一定時間(4ms以上)ダミールーチンを走らせること。
2. MCKの4クロック分以下のLowパルスはRESET信号として認められない。
TEST(I)一般利用者は常にLowにしておくこと。
*M1(O)マシンサイクル1を示す。
*HALT(O)テスト端子(OTHER 出力)。HALT出力?(未確認)
*HALTBRK(I)テスト端子(halt状態を解除するための要求信号)、通常 Highにしておくこと。
(注)
halt状態におけるR800の内部状態
割り込み、DMARQ0、DMARQ1、BUSRQは受け付けられる
リフレッシュは行う(但しREFEN=Lowの場合)
*CSREG(I)R800内のI/OアドレスレジスタまたはI/Oデータレジスタをセレクトする。
もしA0=0ならI/Oアドレスレジスタをセレクトする。
もしA0=1ならI/Oデータレジスタをセレクトする。
VDD電源入力(+5V)
VSS電源入力(0V)
6.電気的仕様
6.1.絶対最大定格(ABSOLUTE MAXIMUM RATINGS)
CharacteristicSymbolValueUnit
minmax
Supply voltageVDD-0.3+7.0V
Input voltageVI-0.3VDD+0.3V
Output voltageVO-0.3VDD+0.3V
Storage temperatureTstg-50+125
Operating temperatureTop070
(VSS = 0.0V基準)

6.2.推奨動作条件 (RECOMMENDED OPERATING CONDITIONS)
CharacteristicSymbolValueUnit
mintypmax
Supply voltageVDD4.755.05.25V
Operating temperatureTop02570
High level input voltage (group 1)VIH13.5--V
Low level input voltage (group 1)VIL1--1.0V
High level input voltage (group 2)VIH22.2--V
Low level input voltage (group 2)VIL2--0.8V
(VSS = 0.0V基準)
group1: XTAL0 (CMOS入力インターフェイス)
gourp2: group 1 以外の入力端子(TTL入力インターフェイス)

6.3.推奨動作条件下での直流特性 (DC CHARACTERISTICS)
CharacteristicSymbolRatingUnit
minmax
High level output voltageVOH(IOH=-2.0mA)VDD-1.0-V
Low level output voltageVOL(IOL= 2.0mA)-0.4V
Input leakage currentIL-10+10uA
Power supply currentIDD-55mA
(VDD =5+0.25V、TA = 0~70℃)

6.4.入出力端子容量 (INPUT / OUTPUT CAPACITY)
測定条件:Ta=25.0℃VDD= 5.00V
入力電圧:VIH=2.4V以上VIL = 0.8V以下
入力信号周波数:1.0MHz
VDDとの測定端子以外はGNDに接続して測定
CharacteristicSymbolRatingUnit
mintypmax
Input pinCi-5.08.0pF
Output pinCo--10.0pF
Input/output pinCio--12.0pF

6.5.交流特性 (AC CHARACTERISTICS)
測定条件:Ta=0~70℃VDD=4.75V~5.25V
入力電圧:VIH=2.4VVIL=0.45V
入力バルス立ち上がり時間(VIL から VIH):5ns以内
入力パルス立ち下がり時間(VIH から VIL):5ns以内
タイミング測定電圧:VOL=0.8VVIL=0.8V
VOH=3.5VVIH=2.0V

6.5.1.クロックタイミング
測定条件:CL=50pf、単位ns
番号記号項目mintypmax
1TcXXTAL Cycle Time(注1)34.9
2TwXhXTAL Pulse Width(High)10
3TwXlXTAL Pulse Width(Low)10
4TfXXTAL Fall Time Delay15
5TrXXTAL Rise Time Delay15
6TdX(VCLKr)XTAL↑to VCLK↑Delay20
7TdX(VCLKf)XTAL↑to VCLK↑Delay20
8TdX(SYSCLKr)XTAL↑to SYSCLK↑Delay20
9TdX(SYSCLKf)XTAL↑to SYSCLK↓Delay20
fig1参照
(注1)XTALの最大周波数は、fmax=28.63636MHz

fig1 Clock Timing

6.5.2.リセットタイミング
測定条件:CL=50pf、単位ns
番号記号項目mintypmax
10TwRESETRESET Pulse Width(Low)4・TcX
fig2参照

fig2 Reset Timing

6.5.3.メモリ、I/Oアクセス共通タイミング
測定条件: CL=50pf、単位:ns
番号記号項目(注1)PHmintypmax
1TdX(MEMRQf)XTAL0↑ to MEMRQ ↓ DelayPH145
2TdX(MEMRQr)XTAL0↑ to MEMRQ ↑ DelayPH045
3TdX(IORQf)XTAL0↑ to IORQ ↓ DelayPH145
4TdX(TORQr)XTAL0↑ to IORQ ↑DelayPH045
5TdX(RDf)XTAL0↑ to RD ↓ DelayPH145
6TdX(RDr)XTAL0↑ to RD ↑ DelayPH045
7TdX(WRf)XTAL0↑ to WR ↓ DelayPH145
8TdX(WRr)XTAL0↑ to WR ↑ DelayPH045
9TdX(ACCSTBf)XTAL0↑ to ACCSTB ↓ DelayPH225
10TdX(ACCSTBr)XTAL0↑ to ACCSTB ↑ DelayPH025
11TdX(RASf)XTAL0↑ to RAS ↓ DelayPH035
12TdX(RASr)XTAL0↑ to RAS ↑ DelayPH155
13TdX(R・CASf)XTAL0↑ to CAS ↓ Delay (read)PH150
14TdX(R・CASr)XTAL0↑ to CAS ↑ Delay (read)PH025
15TdX(W・CASf)XTAL0↑ to CAS ↓ Delay (write)PH230
16TdX(W・CASr)XTAL0↑ to CAS ↑ Delay (write)PH025
17TdX(REF・CASf)XTAL0↑ to CAS ↓ Delay (refresh)PH230
18TdX(REF・CASr)XTAL0↑ to CAS ↑ Delay (refresh)PH225
20TdX(A)XTAL0↑ to Address Valid DelayPH135
21Tdx(Ah)XTAL0↑ to Address Valid Delay (hold)PH110
24TdX(D)[output]XTAL0↑ to Data Valid DelayPH11045
25TdX(Dh)[output]XTAL0↑ to Data Valid Delay (hold)PH110
26TsD(X)[input]Data Setup Time to XTAL0↑ IN 命令の時(注2)PH025
上記以外の時PH010
27ThD(X)[input]Data Hold Time to XTAL0↑PH010
30TdRASf(DA)DRAM Address Stable prior to RAS ↓-30
31ThDA(RASf)DRAM Address Hold Time to RAS ↓-15
32TdR・CASf(DA)DRAM Address Stable prior to CAS ↓ (Read)-5
33ThDA(R・CASf)DRAM Address Hold Time to CAS ↓ (Read)-30
34TdW・CASf(DA)DRAM Address Stable prior to CAS ↓ (Write)-10
35ThDA(W・CASf)DRAM Address Hold Time to CAS ↓ (Write)-30
36TdCASf(D)Data Stable prior to CAS ↓ (Write)-10
37TdD(CASf)Data Hold Time to CAS ↓ (Write)-70
38TPR(RAS)RAS pre charge time-80
39TPR(R・CAS)CAS pre charge time(page mode,Read)-25
40TPR(W・CAS)CAS pre charge time(page mode,Write)-50
41TdMA(DA)MA to DRAM Address Valid Delay(Turbo Mode)-25
50TsWAIT(X)WAIT Setup Time to XTAL0↑PH025
51ThWAIT(X)WAIT Hold Time to XTAL0↑PH010
52TsDRAMDRAM Setup Time to XTAL0↑PH025
53ThDRAMDRAM Hold Time to XTAL0↑PH010
54Tdx(M1f)XTAL0↑ to M1↓ DelayPH070
55TdX(M1r)XTAL0↑ to M1↑ DelayPH070
60TsBUSRQ(X)BUSRQ Setup Time to XTAL0↑(注3)PH030
61ThBUSRQ(X)BUSRQ Hold Time to XTAL0↑PH010
62TdX(BUSAKf)XTAL0↑ to BUSAK↓ DelayPH035
63TdX(BUSAKr)XTAL0↑ to BUSAK↑ DelayPH035
64TdX(Az)XTAL0↑ to Address Float DelayPH035
66TdX(Dz)XTAL0↑ to DATA Float DelayPH035
67TdX(CTz)XTAL0 to Control Output Float DelayPH035
68TdX(INTMPf)XTAL0↑ to INTMP↓ Delay(OLDINTの場合)PH055
69TdX(INTMPr)XTAL0↑ to INTMP↑ Delay(OLDINTの場合)PH045
70TwNMINMI Pulse Width-30
71TsINT(X)INT Setup Time to XTAL0↑(注3) PH030
72TdX(HALT↑)XTAL0↑ to HALT(OTHER)↑ DelayPH045
73TdX(HALT↓)XTAL0↑ to HALT(OTHER)↓ DelayPH045
83TsFTREN(X)FTREN Setup Time to XTAL0↑(注3)PH030
84TsREFEN(X)REFEN Setup Time to XTAL0↑(注3)PH030
85TdC(MEMRQr)SYSCLK↑ to MEMRQ↑ delay-1030
86TdC(IORQr)SYSCLK↑ to IORQ↑ delay-1030
87TdC(RDr)SYSCLK↑ to RD↑ delay-1030
88TdC(WRr)SYSCLK↑ to WR↑ delay-1030
89TdC(ACCSTBr)SYSCLK↑ to ACCSTB↓ delay-010
90TsA(ACCSTBf)Address Setup Time to ACCSTB↓-10
91ThA(ACCSTBr)Address Hold Time to ACCSTB↑-20
92TsD(ACCSTBf)Data Setup Time to ACCSTB↓-10
93ThD(ACCSTBr)Date Hold Time to ACCSTB↑-20
94TdACCSTBf(MEMRQf)MEMRQ↓ Stable prior to ACCSTB↓-1025
95TdACCSTBf(IORQf)IORQ↓ Stable prior to ACCSTB↓-1025
96TdACCSTBf(RDf)RD↓ Stable prior to ACCSTB↓-1025
97TdACCSTBf(WRF)WR↓ Stable prior to ACCSTB↓-1025
98TdDout(ACCSTBr)ACCSTB↑ to Data output mode delay (注4)-25
99TdWAIT(ACCSTBf)ACCSTB↓ to WAIT input-30
100TdDRAM(ACCSTBf)ACCSTB↓ to DRAM input-30
101TdACCSTBF(RASf)ACCSTB↓ to RAS↓ delay-90
102TdACOSTBF(R・CASf)ACCSTB↓ to CAS↓ delay (read)-135
103TdACCSTBF(W・CASf)ACCSTB↓ to CAS↓ delay (write)-155
fig3-1~fig3-7参照
注1:PH とは PHASE の略です。
SYSCLKの1サイクルをXTAL0毎に4つのPHASEに分け、
それぞれ PH0、PH1、PH2、PH3と記述してあります
注2:次のIN命令の時
IN r,(C)
IN M,(C)
注3:もし Setup Time が守られない場合は、次のSYSCLKサイクルでR800内部のフリップフロップにラッチされる。
注4:R800のD0-D7端子が入力から出力に切り替わるまでの時間。
[補足 番号85~103における値は、clock周波数が最大(fmax=28.63636MHz)のときである]

fig3-1 SRAM,ROM,IO Read or Write Cycle

※1 IOアクセスの場合は()を用いる。
※2 IOアクセス以外の場合は()を用いる。

fig3-2 DRAM Read or Write Cycle

※1 ページモードのときはhighのこと

fig3-3 Refresh Cycle

(CAS Before RAS Refresh)
RAS0RAS3すべて

fig3-4 Interrupt Mode0 or Mode2

※1 この場合のINTMPは、mode0の例
D0-D7 = Restart Code(mode0)
D0-D7 = Int Vector Low Address(mode2)

fig 3-5 Bus Request/Acknowledge Cycle


fig 3-6 External Address Mode(DRAM Accessの場合)

入力条件:MABUSDIR=Low
[※]:A13-A15が変化するとR800内部でPAGE BREAKが発生する。
このとき、DRAM=Highの場合はWAIT信号の値にかかわらず、wait cycleが1回入る

fig3-7 SYSCLK,ACCSTBと他の信号の関連(1)


fig3-8 ACCSTBと他の信号の関連(2)


fig3-9 その他


6.5.4.External Address Mode
入力条件*BUSAK=Low and *REFEN=High
出力次の出力信号は、常にハイインピーダンスとなる。
*MEMRQ、*IORQ、*RD、*WR、*ACCSTB、D0-D7
測定条件: CL=50pf、単位:ns
番号記号項目PHmintypmax
1TdX(SYSCLK)XTAL0↑ to SYSCLK↑ Delay-20
2TdA(DA)A、MA to DRAM Address Delay(ROW ADD)-25
3TsERAS(X)ERAS Setup Time to XTAL0↑ (注1)-25
4TdX(DA・COL)XTAL0↑ to DRAM Address Delay(COL ADD)-25
5TdX(DA・ROW)XTAL0↑ to DRAM Address Delay(ROW ADD)-5
6TdX(CASf)XTAL0↑ to CAS↓ Delay-20
7TdERASf(RASf)ERAS↓ to RAS↓ Delay-30
8TdERASr(RASr)ERAS↑ to RAS↑ Delay-25
9TdERASr(CASr)ERAS↑ to CAS↑ Delay-25
10TdERASr(DA)ERAS↑ to DRAM Address Delay-25
fig4参照
(注1)もし、この条件が守られないときは、次サイクルのXTAL↑で受けつけられる。
(注2)TcX : XTAL Cycle Time

fig4 External Address Mode(BUSAK=Low、REFEN=High)


7.割り込み動作
R800 のインタラプトには、大きく分けて次の5つのモードがあります。
1.インタラプトモード0
 Z80のインタラプトモード0とコンパチブル
2.インタラプトモード1
 Z80のインタラプトモード1とコンパチブル
3.インタラプトモード2
 Z80のインタラプトモード2とコンパチブル
4.NMI
 Z80のNMIとコンパチブル
5.新インタラプトモード
 R800独自の割り込みモードで、INT1から7とNMIの信号で割り込みを受け付けます。
 インタラプトベクトルレジスタに設定された値が、ベクターテーブルの先頭上位8ビットになり、先頭下位8ビットはオール0です。
 あらかじめベクターテーブルに用意されたデータを、INT1~7、NMIによりセレクトしそのデータが割り込みルーチン開始アドレスとなります。
ADDRESS
XX00HNMISERVICEVECTOR
XX02HINT1SERVICEVECTOR
XX04HINT2SERVICEVECTOR
XX06HINT3SERVICEVECTOR
XX08HINT4SERVICEVECTOR
XX0AHINTSSERVICEVECTOR
XX0CHINT6SERVICEVECTOR
XX0EHINT7 SERVICE VECTOR
INT VECTOR REG →
 Z80互換の割り込みモードから新インタラプトの切り替えはインタラプトベクトルレジスタを設定することで行なうことが出来ます。新インタラプトでは従来のINTピンは無効になり、NMIピンによる割り込み動作は、新インタラプト動作になります。INT1から7までのインタラプトはインタラプトマスクレジスタでマスクすることが出来ます。NMIとINT1からそれぞれのインタラプトには優先順位が有り、NMIが最優先でINT7が一番低くなっています。また割り込み受け付け時にPCの値は0番地と1番地に格納されます。割り込み処理中(インタラプトを受け付けてからRETI命令またはRETN命令を実行するまで)にアドレスのA13からA15がオール0の時、マッパはMAP0'が用いられます(システムソフトと、アプリケーションを分けることが出来る)。
         インタラプト動作順序
メインルーチンを実行

インタラプト受け付け

マッパ0'をセレクト

プログラムカウンターを
0番地と1番地に格納

サービスベクターの読み込み
(INT VECTOR REG × 100H + インタラプト番号 × 2) → PCL
(INT VECTOR REG × 100H + インタラプト番号 × 2 + 1) → PCH

サービスルーチンを実行

RETI または RETN 命令フェッチ

プログラムカウンターの復帰
(0番地) → PCL
(1番地) → PCH

マッパ0-7をセレクト

メインルーチンに戻る
インタラプト部ブロック図


8.DMAコントローラ
R800ではDMAコントローラがDMA0とDMA1の2チャンネル内蔵されています。DMA0とDMA1ではDMA0の方が優先順位が高くなっています。転送先、転送元のアドレスはそれぞれ24ビット、転送バイト数は16ビットで設定可能です。カウンターは24ビットカウンターを用いているため64Kバイトのバウンダリーはありません。
DMAモードレジスタにより以下の設定が出来ます。
1.転送先、転送元のデバイスを選択可能です。(I/OまたはMEMORY)
2.転送先、転送元のアドレスの自動インクリメント
3.DMA転送のイネーブル、ディセーブル
4.転送の繰返し
5.転送終了のフラグ読み込み
可能なDMAの種類
・メモリからメモリへの転送
・I/Oからメモリへの転送
・メモリからI/Oへの転送
・I/OからI/Oへの転送
転送の繰返しビット
このビットを「1」にすることで転送を繰り返して行ないます。D/Aコンバータに音を出力したりするとき便利です。カウンターの値が転送バイト数と等しくなったとき転送先アドレスと転送元アドレスがリロードされます。
DMAはDMARQピンを「LOW」にすることにより開始します。DMA転送の終了はEOPピンにも出力されます。
DMA動作順序
    
プログラムの実行
DMAリクエスト
バスを解放
1バイト転送
DMAリクエスト?YES
バスの解放解除
プログラムの実行

9.メモリマッパ
R800は最大16Mbまでメモリ空間を拡張できるメモリマッパを内蔵しています。マッパレジスタは各11ビットのレジスタで合計9本あり、8本はアドレス信号A13からA15でセレクトされ残りの1本は新インタラプト時A13からA15がオール0の時セレクトされます。マッパアドレスはMA13からMA23のピンに出力されます。またMA13からMA23のピンは双方向でMADIR信号でコントロールでき、外部のバンクレジスタの出力をマッパアドレスとして使用することも可能です。
バス解放要求
R800はBUSRQ信号によりデータバスをハイインピーダンスにすることが出来ます。この時ハイインピーダンスとなる信号は次の通りです。
・D0-D7
・RD、WR、IORQ、MEMRQ
またこの時次の信号は入力になり、R800に直接接続されたDRAMをアクセスすることが出来ます。
・A0-A15

外部からのDRAMアクセスの方法
R800ではバス解放時(BUSRQ=L,MADIR=L)にアドレスを入力にすることにより、直接接続されたDRAMを外部のメモリリクエスト信号をERASピンに接続してアクセスすることが出来ます。ERASピンをLOWレベルにすることにより、R800内部でロウアドレスとカラムアドレスの切り替え及びCAS信号の出力を行ないます。またRAS0からRAS3はリセット時にA14とA15ピンから 読み込んだDRAMの種類と外部から入力するアドレスの値によりセレクトされます。

高速I/Oアクセスモードについて
R800ではI/Oデータの転送命令を高速に実行できるモードが有ります。このモードでは、命令のフェッチ1回だけで1バイトのデータを最高2SYS CLKで転送します。このモードが適応される命令は、OTIR、OTDR、INIR、INDRの4種類です。このモードになる条件は次の通りです。
・FTRENピンが「HIGH」であること
・インタラプトが禁止状態であること
このモードで高速I/Oアクセス中は、以下の信号は受付けられません。
・*BUSRQ
・*INTRQ
・*NMI

R800内蔵マッパ


アドレスとMADIR、*BUSRQ信号の関係


10.DRAMインターフェース
R800では命令を高速実行できるようにDRAMのページモードをサポートしており、直接接続するためのアドレスバス(DA0-DA10)を備えてあります。このため、メモリマップを決定する外部デコーダーは直接接続したDRAMの番地をR800のDRAM信号ピンに入力する必要があります。また直接接続したDRAMはページモードで動作するため255バイト以下のマッピングは出来ません。(A0-A7はDRAM信号のデコードには用いないでください)

DRAM接続例

11.リセットとクロック
リセット中、SYSCLK、VCLKは出力されません。タイミングの詳細は図に示す通りです。

12.内部拡張レジスタ
R800はインタラプト、DMA、マッパの為のレジスタを持っています。レジスタのビットアサインなどは下記に示します。内部I/Oレジスタは CSREG ビンを「LOW」にすることでアクセスできます。アドレス信号のA0が「LOW」の時、内部I/Oレジスタのポインターが書き込まれ「HIGH」の時データが書き込まれます。ポインターはデータ書き込み毎にオートインクリメントされるためマッパレジスタ等の高速書き込みが可能です。

内部I/Oレジスタポインターレジスタ(CSREG=L、A0=L、R/W)

BIT 7
BIT 6 INTERNAL REGISTER ADDRESS 6
BIT 5 INTERNAL REGISTER ADDRESS 5
BIT 4 INTERNAL REGISTER ADDRESS 4
BIT 3 INTERNAL REGISTER ADDRESS 3
BIT 2 INTERNAL REGISTER ADDRESS 2
BIT 1 INTERNAL REGISTER ADDRESS 1
BIT 0 INTERNAL REGISTER ADDRESS 0
内部I/Oレジスタ書き込み、読み出しデータレジスタ(CSREG=L,A0=H)
BIT 7 DATA7
BIT 6 DATA6
BIT 5 DATA5
BIT 4 DATA4
BIT 3 DATA3
BIT 2 DATA2
BIT 1 DATA1
BIT 0 DATA0

*************** MAPPER ************
1 MAP0 (SELECTED CPU ADDRESS A13,A14,A15 = 0,0,0)
INTERNAL REGISTER ADDRESS 00H(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0

INTERNAL REGISTER ADDRESS 01H(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

2 MAP1 (SELECTED CPU ADDRESS A13,A14,A15 = 1,0,0)
INTERNAL REGISTER ADDRESS 02H(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 03H(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

3 MAP2 (SELECTED CPU ADDRESS A13,A14,A15 = 0,1,0)
INTERNAL REGISTER ADDRESS 04H(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 05H(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

4 MAP3 (SELECTED CPU ADDRESS A13,A14,A15 = 1,1,0)
INTERNAL REGISTER ADDRESS 06H(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 07H(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

5 MAP4 (SELECTED CPU ADDRESS A13,A14,A15 = 0,0,1)
INTERNAL REGISTER ADDRESS 08H(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 09H(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

6 MAP5 (SELECTED CPU ADDRESS A13,A14,A15 = 1,0,1)
INTERNAL REGISTER ADDRESS 0AH(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 0BH (R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

7 MAP6 (SELECTED CPU ADDRESS A13,A14,A15 = 0,1,1)
INTERNAL REGISTER ADDRESS 0CH(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 0DH(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

8 MAP7 (SELECTED CPU ADDRESS A13,A14,A15 = 1,1,1)
INTERNAL REGISTER ADDRESS 0EH(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 0FH(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

9 MAP0' (SELECTED CPU ADDRESS A13,A14,A15 = 0,0,0 & NEWINT SERVICE)
INTERNAL REGISTER ADDRESS 10H(R/W)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
INTERNAL REGISTER ADDRESS 11H(R/W)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

************* DMAC *************
DMA CONTROLLER CHANNEL 0
SOURCE START ADDRESS
INTERNAL REGISTER ADDRESS 20H(WRITE ONLY)
BIT 7 A7 OUTBIT
BIT 6 A6 OUTBIT
BIT 5 A5 OUTBIT
BIT 4 A4 OUTBIT
BIT 3 A3 OUTBIT
BIT 2 A2 OUTBIT
BIT 1 A1 OUTBIT
BIT 0 A0 OUTBIT
INTERNAL REGISTER ADDRESS 21H(WRITE ONLY)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4 A12 OUTBIT
BIT 3 A11 OUTBIT
BIT 2 A10 OUTBIT
BIT 1 A9 OUTBIT
BIT 0 A8 OUTBIT
INTERNAL REGISTER ADDRESS 22H(WRITE ONLY)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

DESTINATION START ADDRESS
INTERNAL REGISTER ADDRESS 23H(WRITE ONLY)
BIT 7 A7 OUTBIT
BIT 6 A6 OUTBIT
BIT 5 A5 OUTBIT
BIT 4 A4 OUTBIT
BIT 3 A3 OUTBIT
BIT 2 A2 OUTBIT
BIT 1 A1 OUTBIT
BIT 0 A0 OUTBIT

INTERNAL REGISTER ADDRESS 24H(WRITE ONLY)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4 A12 OUTBIT
BIT 3 A11 OUTBIT
BIT 2 A10 OUTBIT
BIT 1 A9 OUTBIT
BIT 0 A8 OUTBIT

INTERNAL REGISTER ADDRESS 25H(WRITE ONLY)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

COUNTS
INTERNAL REGISTER ADDRESS 26H(WRITE ONLY)
BIT 7 C7 OUTBIT
BIT 6 C6 OUTBIT
BIT 5 C5 OUTBIT
BIT 4 C4 OUTBIT
BIT 3 C3 OUTBIT
BIT 2 C2 OUTBIT
BIT 1 C1 OUTBIT
BIT 0 C0 OUTBIT
INTERNAL REGISTER ADDRESS 27H(WRITE ONLY)
BIT 7 C15 OUTBIT
BIT 6 C14 OUTBIT
BIT 5 C13 OUTBIT
BIT 4 C12 OUTBIT
BIT 3 C11 OUTBIT
BIT 2 C10 OUTBIT
BIT 1 C9 OUTBIT
BIT 0 C8 OUTBIT

DMA MODE
INTERNAL REGISTER ADDRESS 28H
BIT 7 EOP0 (END OF PROCESS0 1:END OF PROCESS 0:BUSY)(READ ONLY)
BIT 6
BIT 5 ALD (AUTO LOAD 1:AUTO LOAD 0:NO LOAD)(WRITE ONLY)
BIT 4 ED0 (ENABLE DMA0 1:ENABLE 0:DISABLE)(WRITE ONLY)
BIT 3 NCS (SOURCE ENABLE COUNT 1:COUNTUP 0:NO COUNT)(WRITE ONLY)
BIT 2 MIS (SOURCE SELECT 1:MEMORY 0:I/O)(WRITE ONLY)
BIT 1 NCD (DESTINATION ENABLE COUNT 1:COUNTUP 0:NO COUNT)(WRITE ONLY)
BIT 0 MID (DESTINATION SELECT 1:MEMORY 0:I/O)(WRITE ONLY)

DMA CONTROLLER CHANNEL 1
SOURCE START ADDRESS
INTERNAL REGISTER ADDRESS 30H(WRITE ONLY)
BIT 7 A7 OUTBIT
BIT 6 A6 OUTBIT
BIT 5 A5 OUTBIT
BIT 4 A4 OUTBIT
BIT 3 A3 OUTBIT
BIT 2 A2 OUTBIT
BIT 1 A1 OUTBIT
BIT 0 A0 OUTBIT
INTERNAL REGISTER ADDRESS 31H(WRITE ONLY)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4 A12 OUTBIT
BIT 3 A11 OUTBIT
BIT 2 A10 OUTBIT
BIT 1 A9 OUTBIT
BIT 0 A8 OUTBIT
INTERNAL REGISTER ADDRESS 32H(WRITE ONLY)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 QUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

DESTINATION START ADDRESS
INTERNAL REGISTER ADDRESS 33H(WRITE ONLY)
BIT 7 A7 OUTBIT
BIT 6 A6 OUTBIT
BIT 5 A5 OUTBIT
BIT 4 A4 OUTBIT
BIT 3 A3 OUTBIT
BIT 2 A2 OUTBIT
BIT 1 A1 OUTBIT
BIT 0 A0 OUTBIT
INTERNAL REGISTER ADDRESS 34H(WRITE ONLY)
BIT 7 MA15 OUTBIT
BIT 6 MA14 OUTBIT
BIT 5 MA13 OUTBIT
BIT 4 A12 OUTBIT
BIT 3 A11 OUTBIT
BIT 2 A10 OUTBIT
BIT 1 A9 OUTBIT
BIT 0 A8 OUTBIT
INTERNAL REGISTER ADDRESS 35H(WRITE ONLY)
BIT 7 MA23 OUTBIT
BIT 6 MA22 OUTBIT
BIT 5 MA21 OUTBIT
BIT 4 MA20 OUTBIT
BIT 3 MA19 OUTBIT
BIT 2 MA18 OUTBIT
BIT 1 MA17 OUTBIT
BIT 0 MA16 OUTBIT

COUNTS
INTERNAL REGISTER ADDRESS 36H(WRITE ONLY)
BIT 7 C7 OUTBIT
BIT 6 C6 OUTBIT
BIT 5 C5 OUTBIT
BIT 4 C4 OUTBIT
BIT 3 C3 OUTBIT
BIT 2 C2 OUTBIT
BIT 1 C1 OUTBIT
BIT 0 C0 OUTBIT
INTERNAL REGISTER ADDRESS 37H(WRITE ONLY)
BIT 7 C15 OUTBIT
BIT 6 C14 OUTBIT
BIT 5 C13 OUTBIT
BIT 4 C12 OUTBIT
BIT 3 C11 OUTBIT
BIT 2 C10 OUTBIT
BIT 1 C9 OUTBIT
BIT 0 C8 OUTBIT

DMA MODE
INTERNAL REGISTER ADDRESS 38H
BIT 7 EOP1 (END OF PROCESS1 1:END OF PROCESS 0:BUSY)(READ ONLY)
BIT 6
BIT 5 ALD (AUTO LOAD 1:AUTO LOAD 0:NO LOAD)(WRITE ONLY)
BIT 4 ED0 (ENABLE DMA0 1:ENABLE 0:DISABLE)(WRITE ONLY)
BIT 3 NCS (SOURCE ENABLE COUNT 1:COUNTUP 0:NO COUNT)(WRITE ONLY)
BIT 2 MIS (SOURCE SELECT 1:MEMORY 0:I/O)(WRITE ONLY)
BIT 1 NCD (DESTINATION ENABLE COUNT 1:COUNTUP 0:NO COUNT)(WRITE ONLY)
BIT 0 MID (DESTINATION SELECT 1:MEMORY 0:I/O) (WRITE ONLY)

************** NEW INTERRUPT *****************
INTERRUPT VECTOR
INTERNAL REGISTER ADDRESS 40H(R/W)
BIT 7 A7 OUTBIT
BIT 6 A6 OUTBIT
BIT 5 A5 OUTBIT
BIT 4 A4 OUTBIT
BIT 3 A3 OUTBIT
BIT 2 A2 OUTBIT
BIT 1 A1 OUTBIT
BIT 0 A0 OUTBIT
INTERRUPT MASK
INTERNAL REGISTER ADDRESS 41H(R/W)
BIT 7 NEWINT7 MASK
BIT 6 NEWINT6 MASK
BIT 5 NEWINT5 MASK
BIT 4 NEWINT4 MASK
BIT 3 NEWINT3 MASK
BIT 2 NEWINT2 MASK
BIT 1 NEWINT1 MASK
BIT 0

13.命令の実行
R800はXTALの発振周波数を4分周したSYSCLK単位で命令を実行します。また命令のフェッチと命令の実行はパイプライン化されているので、命令の実行中に次の命令フェッチを行ないます(下記図参照)。インタラプトや、バスリクエスト等により、プリフェッチした命令が実行でき無くなったときは、インタラプトやバスリクエスト等のサービス終了後再び実行できなかった命令をフェッチします。

※1、4の命令は1バイト命令
※2の命令は2バイト命令


14.R800の命令表
ここに記す命令表のクロック数は、SYSCLK換算でXTALの発振周波数の4分の1です。またノーウェイトで実行したときの値で、DRAM上で実行したときはベージブレイクやリフレッシュにより自動的にウェイトが挿入されます。
DRAM上で実行するときのページブレークは2つあり、1つはアドレスの上位8ビットが変化したときで、もう1つはアドレスを決定するレジスタが変更されたときです。次に2つの例を示します。

1. アドレスの上位8ビットが変化したとき
  ADDRESSCODE
02FEH3EHLD A,06H
02FFH06H
ここでページブレークが起こり1ウェイト挿入される
0300H21HLD .hl,2000H
0301H00H
0302H20H
2. アドレスを決定するレジスタが変更されたとき
  ADDRESSCODE
020DH21HLD .hl,2056H
020EH56H
020FH20H
0210H7EHLD A,[.hl]
アドレスの上位8ビットが変化しない実行であっても
この命令の書き込み時に1ウェイト挿入される
この例だと変化するがHL=0211Hとかでもウェイト?
0211HFEHCMP .a,05H
0212H05H
注意
JP命令(条件JP含む)は実行時飛び先アドレスをテンポラリレジスタに格納するため、JP時と飛び先命令終了後の2回ウェイトが挿入されます。すなわちDRAM上でJP命令を実行したとき5クロックかかることになります(条件ジャンプでジャンプしないときは3クロックです)。またJR命令ではテンポラリレジスタが用いられていないため、このウェイトは挿入されません。

リフレッシュのサイクル数
リフレッシュそのもののサイクル数は2クロックですが、リフレッシュの前にプリフェッチした命令を再度フェッチするためさらに2クロックがかかり、合計4クロックになります。

(略) Datapack Vol3見て

感想、要望、バグ報告、その他何かありましたら、メールもしくは掲示板にてご連絡ください。
裕之    
ホームに戻る