本プロジェクト目的は、本物のZ80A上でCP/M-80が動くシステムの構築である。
なぜいまさらそんなモノを?
きっかけは、部品箱から30年ぶりにZ80A CPUを発見したこと。たぶん1980年あたりに製造されたNMOSプロセスのザイログ純正品だ。このままコレクションしておくのも忍びないので、動かしてみることにした。
だが、この時代に昔と同じようなZ80のワンボードマイコンを再現するなんて面白みがない。そもそもパーツの入手が困難だ。
そこで以下のアプローチをとることにした。
- Z80AとATmega128-16AU (AVRマイコン)のハイブリッド構成とする。
- ROMは使用しない。Z80AとAVRで64KBのSRAMを共有し、Z80のブートストラップコードはAVRが配置する。
- Z80の外部I/Oと割り込みはAVRのファームウェアでエミュレートする。つまりZ80の周辺I/Oデバイスは全てソフトウェアで記述する。
- できるだけ入手しやすい部品で回路設計する。(2023年の日本の電子部品市場を想定)
- CP/M 2.2がZ80A上でネイティブ動作可能
- micoSDカード上のイメージからCP/Mを自律起動する
- CP/M 3 (CP/M Plus)の動作も確認済み
- 懐かしのテキストアドベンチャーゲーム ZORK I, II, IIが遊べる!
- プリント基板(PCB)も製造してみた
- デモビデオ
.
├── avr AVR ファームウェア
├── z80 Z80 ソフトウェア
│ ├── cpm22 CP/M-80 Ver2.2
│ │ ├── bios BIOS
│ │ ├── sys CPM.SYS(CCP/BDOS) and cpm.ihx(IPL+CCP/BDOS+BIOS)
│ │ └── image CP/M 2.2 Disk image
│ └── cpm3 CP/M 3 (CP/M Plus)
│ └── image CP/M 3 Disk image
├── doc
│ ├── Hardware/ ハードウェアドキュメント
│ ├── Software/ ソフトウェアドキュメント
│ └── README.md ドキュメント目次
└── schematics
└── KiCad
├── *.kicad_sch 回路図
└── *.kicad_pcb PCB
- Microchip Studio for AVR v7.0以降 : avr/以下のAVRファームウェアのコンパイル用
- AVRISP mkII : ATmega128へのファームウェアの焼きこみとFUSEの設定用
- KiCad v7.0 : 回路図とPCBの設計用
- ASxxxx Cross Assemblers : z80/以下のCP/M BIOSのアセンブル用
- cpmtools : CP/M disk imagesの生成用
GPLv3