写真集
回路説明
手抜きの回路図はこちらです。全部の配線を追うのは面倒だったので、必要最低限です。
使用しているエッジコネクタと、その用途です。
| コネクタ | 要素 |
|---|---|
| DRD2 | 外部RAMへのリードイネーブル |
| WE | 外部RAMへのライトイネーブル |
| RAS2,EXCAS | DRAMの制御信号 |
| MPX | DRAMのアドレス切り替え |
| D0-D7 | データ信号 |
| A0-A15 | アドレス信号 |
| CS3 | 端子は出ていますが未使用のようです |
MPX
使用しているDRAMは64Kbitですが、DRAMの端子はA0-A7しかありません。DRAMは行アドレス(A0-A7)と列アドレス(A0-A7)をRAS,CAS信号に合わせて取り込みます。Z80のA0-A15をA0-A7とA8-A15に分離して、DRAMの行/列アドレスに取り込みますが、その切り替えタイミングをMPX信号が行っています。PC-6006SRでは、IC1,2の74157にMPXを接続して、A0-A7/A8-A15のどちらを使うのかを切り替えています。
DRD2
DRD2は外部RAMを読み込む時に有効になるようです。内部RAMの読み込み時には反応しないようです。
WE
Z80のBUSREQとWRが共にactiveな時にWEがactiveになるようです。つまりBUSREQとWRのNANDです。内部/外部RAM関係なく変化します。
RAS2/EXCAS
内部/外部RAM関係なく変化します。外部RAMのアクセスが発生した時は、RAS2/EXCASが共にactiveになります。
波形
内部RAM書き込み
内部RAM側の$C000に意味のない数字を書き込み続けるだけのプログラムです。
di
; BUSREQ OFF
ld a,$2
out ($93),a
; INTERNAL RAM MODE
; [READ]
ld a,$dd
out ($f1),a
; [WRITE]
ld a,$55
out ($f2),a
ld hl,$C000
ld a,12
loop:
ld (hl),a
jr loop
BUSREQとWRに合わせてWEが変化しています。内部RAMへの書き込みであっても、拡張コネクタのWE端子は変化するようです。RAS2/EXCASも変化していますが、WEとEXCASがactiveになるよりも前に、RAS2がdeactivateになっています。
外部RAM書き込み
外部RAM側の$C000に意味のない数字を書き込み続けるだけのプログラムです。
di
; BUSREQ OFF
ld a,$2
out ($93),a
; EXTERNAL RAM MODE
; [READ]
; 上位4bit C000-FFFF: EX => E
; 下位4bit 8000-BFFF: IN => D
ld a,$ed
out ($f1),a
; [WRITE]
; 内部:01, 外部:10
; Bit0-1が0000H-3FFFH
; Bit2-3が4000H-7FFFH
; Bit4-5が8000H-BFFFH
; Bit6-7がC000H-FFFFH
ld a,$95 ; 1001_0101
out ($f2),a
ld hl,$C000
ld a,12
loop:
ld (hl),a
jr loop
外部RAM書き込み時は、WE,RAS2,EXCASが同時にactiveになるようです。
内部RAM読み込み
内部RAM側の$C000の値を読むだけのプログラムです。
di
; BUSREQ OFF
ld a,$2
out ($93),a
; INTERNAL RAM MODE
; [READ]
ld a,$dd
out ($f1),a
; [WRITE]
ld a,$55
out ($f2),a
ld hl,$C000
loop:
ld a,(hl)
jr loop
RDは変化していますが、DRD2は変化しません。RAS2,EXCASが同時にactiveになっていないこともわかります。
外部RAM読み込み
外部RAM側の$C000の値を読むだけのプログラムです。
di
; BUSREQ OFF
ld a,$2
out ($93),a
; EXTERNAL RAM MODE
; [READ]
; 上位4bit C000-FFFF: EX => E
; 下位4bit 8000-BFFF: IN => D
ld a,$ed
out ($f1),a
; [WRITE]
; 内部:01, 外部:10
; Bit0-1が0000H-3FFFH
; Bit2-3が4000H-7FFFH
; Bit4-5が8000H-BFFFH
; Bit6-7がC000H-FFFFH
ld a,$95 ; 1001_0101
out ($f2),a
ld hl,$C000
loop:
ld a,(hl)
jr loop
DRD2が変化していることがわかります。RAS2,EXCASも同時にactiveになっています。
互換基板
SRAMを使った互換基板を、えすびさんが設計されています。