電脳伝説さん(@vintagechips)のEMUZ80が出力するZ80 CPU制御信号をメザニンボードで組み替え、動作に必要な電源を用意することで8080を動作させることができます。
Z8S18020VSCとPIC18F47Q83の組み合わせで動作確認しています。
動作確認済みCPU
Intel P8080A-1
NEC 8080AF
NEC D8080AFC
TESLA MHB8080A
このソースコードは電脳伝説さんのmain.cを元に改変してGPLライセンスに基づいて公開するものです。
8080を動作させるためには3種の電源電圧 +12V, +5V, -5Vと非対称の2相クロック、さらに制御信号を作成するシステムコントローラが必要です。
CPU 8080は専用のサポートICによって動作に必要な信号を生成しています。
本システムではφ2=0.5MHzのクロック周波数で動作します。専用のクロックジェネレータが出力するφ2とφ1は一定周期で変化するのですが、EMUZ80_8080では全体の処理速度を上げるためにφ1クロックを内部処理に合わせて変化させます。
https://github.com/satoshiokue/MEZ8080
https://github.com/satoshiokue/MEZ8080/blob/main/MEZ8080.pdf
EMUZ80で配布されているフォルダemuz80.X下のmain.cと置き換えて使用してください。
- emuz80_8080.c
Memory
ROM 0x0000 - 0x3FFF 16kB
RAM 0x8000 - 0x8FFF 4kB PIC18F47Q43
0x8000 - 0x9FFF 8kB PIC18F47Q8x
I/O
通信レジスタ 0x00
制御レジスタ 0x01
EMUZ80技術資料8ページにしたがってPICに適合するファイルを書き込んでください。
またはArduino UNOを用いてPICを書き込みます。
https://github.com/satoshiokue/Arduino-PIC-Programmer
PIC18F47Q43 emu8080_Q43.hex
PIC18F47Q83 emu8080_Q8x.hex
PIC18F47Q84 emu8080_Q8x.hex
ROMにBASICとモニターを格納しています。
電源投入でUniversal Monitorが起動します。
モニターに追加したBコマンドによってINTEL8080 BASICが起動します。
BASICから”MONITOR”命令を実行するとUniversal Monitotがコールドスタートします。
MEZ8080 0.500MHz
Universal Monitor 8080
i8080
] b
INTEL8080 BASIC Ver 4.7b
Copyright (C) 1978 by Microsoft
3710 Bytes free
Ok
monitor
Universal Monitor 8080
i8080
]
INTEL8080 BASICは電脳伝説さんのSBC8080向けに整備されたデータパックに収蔵されたものにパッチを施しています。 https://vintagechips.wordpress.com/2018/06/24/sbc8080-cpuルーズキット/
Universal Monitor
https://electrelic.com/electrelic/node/1317
インテルHEXデータを配列データ化して配列rom[]に格納すると0x0000に配置され8080で実行できます。
思い入れのあるCPUを動かすことのできるシンプルで美しいEMUZ80を開発された電脳伝説さんに感謝いたします。
EUMZ80はZ80CPUとPIC18F47Q43のDIP40ピンIC2つで構成されるシンプルなコンピュータです。
電脳伝説 - EMUZ80が完成
https://vintagechips.wordpress.com/2022/03/05/emuz80_reference
EMUZ80専用プリント基板 - オレンジピコショップ
https://store.shopping.yahoo.co.jp/orangepicoshop/pico-a-051.html