KZ80 1MRSAM REV2 - kuninet/Z80_1MRAMB GitHub Wiki

Z80 128kB RAM/16k ROM ボード (KZ80_1MSRAM) REV2

概要

REV1からREV2への変更点概要

  • バンク切り替えI/Oアドレスがジャンパで00h、40h、80h、C0hへ設定可能となりました。
  • バンク切り替えレジスタ用ICが変更となりました。
  • バンク0を指定した場合、ROMが無効となり64kBフルRAM化が可能となりました。

部品組み付け例

  • REV2基板の組み付け例は以下のとおりです。
    • 1Mbitメモリーは秋月電子で販売されているM68AF127BをDIP変換基板で装着しています。通常はHM628128等をご使用ください。

組み付け例

メモリーマップについて

  • メモリーマップは以下の通りです。
    • 通常はZ80等のスタックポインタを最上位アドレス付近(FFFFh番地)に設定することが多いと思いますが、本ボードでは8000h-FFFFhをバンク切り替えRAM領域としているため、スタックポインタは固定RAM領域の7FFFhあたりに設定してください。

メモリーマップ

アドレス 説明
0000h-3FFFh 16kB ROM領域・28C256(32kBx8)の半分をROM領域として使用します。
4000h-7FFFh 固定RAMバンク切り替え対象外のRAM領域です
8000h-FFFFh バンクメモリー領域バンクメモリー切り替えI/O番地へバンク番号を出力して切り替えるバンクRAM領域です。(REV2基板ではジャンパで00h、40h、80h、C0hへ設定可能です)
  • REV2基板ではバンク番号を00に設定すると64k FullRAMになります。

回路について

回路図

SBC8080バスとの接続

  • SBC8080バスとの接続は、アドレスバス(A0〜A14)、データバス(D0〜D7)、#MEMR/#MEMW(メモリー読み/書き)信号線をROM/RAMと直結しています。
    • 128kB RAMのアドレスバスA15、A16の2本の信号線のコントロールは「バンク切り替え」の項で詳しく記述します。

ROMとRAMの切り替えについて

  • ROMとRAMの切り替えは74HC139のBユニットを使ってアドレスバスA15=0、A14=0をデコードしたものを使用しています。(アドレス0000h〜3FFFFhの場合に"L"レベル)
    • 上記のデコードした信号を、ROMの#CS(負論理)へ、RAMはCS2(正論理)端子へつないでいます。

バンク切り替えについて

  • バンク切り替えのためI/O番地 のデコードは74HC139のAユニットを使ってアドレスバスA7、A6の信号線をデコードしています。
    • REV2基板ではジャンパで00h、40h、80h、C0hへ設定可能です。

REV2基板のバンクレジスタ

  • 上記アドレスをデコードしたものとSBC8080バスの#IOW(I/O書き込み)の信号線をNORゲート(74HC02)であわせて2つのDフリップフロップ(74HC74)のCK端子へ入れています。電源投入時のRESETパルスによりフリップフロップの初期値を設定しています。(バンク1に初期設定)
    • Dフリップフロップ(74HC74)にはデータバス(D0、D1)をつないでいますので、CPUのOUT命令で出力したデータ(バンク番号)を保持します。
    • Dフリップフロップ(74HC74)の出力側は1Q,2Q(2ビット分)のみ使用してバンク番号保持レジスタとして使用しています。

128kB SRAMのコントロールについて

  • 2ビット分のバンク番号信号を使って128kB SRAMのアドレスバスA16、A15をコントロールしています。
    • REV2基板ではバンク番号0(ゼロ)に設定すると常に128kSRAMが選択されるようになり 64kB フルRAM構成になります。

組み付けする部品等について

  • 128kB SRAMはHM628128同等品を使用してください。
    • 秋月電子で販売されている SOPタイプの128kB SRAMをDIP変換して使用するなどの場合、ピンアサインが異なるタイプもあるようですのでご注意ください。
  • ROMはEEPROM 28C256タイプのうち16kBを使用します。ROM書き込みの際16kBを超えた部分はアクセスできませんのでご注意ください。
  • ロジックICは74HCタイプを使用してください。
  • バンク番号表示LEDは色を変える(青+赤にするなど)と状況確認がわかりやすくなると思います。
部品番号 部品名 個数 備考
U1 74HC02 1 代替:74HCT02
U2 74HC74 1 代替:74HCT74
U3 74HC139 1 代替:74HCT139
U4 74HC04 1 代替:74HCT04
U5 74HC00 1 代替:74HCT00
U6 HM628128ALP-7 1 128kB SRAM
U7 ATC28C256 1 32kB EEPROM
D1、D2、D3 LED 3 LED
R1、R2、R3 1kΩ 3 カーボン抵抗器
J1 HIF3FC-40PA-2.54DS 1 40 ピン L 型ボックスヘッダ
J2 2x04ピンヘッダ 1 2列2.54mm垂直ピンヘッダ
C1〜C7 0.1uF 7 積層セラミックコンデンサ
C8 10uF 1 電解/タンタルコンデンサ

機械語モニターなどのプログラムについて

SBC8080データパックのモニター+TinyBASIC

  • SBC8080データパック付属の機械語モニター+TinyBASICをそのまま使用するとバンク切り替えの際にスタック情報がとんで暴走します。本プロジェクト中にスタックポインタ等を固定RAM領域へ変更したソース/ROM焼き用のインテルHEXファイルを添付しました。お使いください。

  • https://github.com/kuninet/Z80_1MRAMB/tree/master/MON-TB

参考URL