トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第257回]
●MEMORY回路とKEYSW回路の回路図
うっかりしておりました。
MEMORY回路とKEYSW回路の回路図をお見せしていませんでした。
今回はMYCPU4の動作テストについて書くつもりでしたが予定変更です。
下がMEMORY回路です。
ずいぶん複雑な回路になっています。
そのこともあって後で説明するつもりで、つい忘れてしまっておりました。
複雑な回路になっているのは小さいながらもメモリバンク回路を搭載しているからです。
「トランジスタ技術」誌2020年5月号のトランジスタ版4ビットCPUにはアドレスラインが4本しかありません。
アドレスが4ビットですから0〜Fまでの16バイトのメモリしかアクセスできません。
アドレスラインが4本だからということでもありますが、JMP、JZ、JCの各命令のオペランド部が4ビットなので16バイトのメモリしかアクセスできないということでもあります。
しかしいくらなんでも最大でも16バイトのプログラムしか組めないというのはあまりに小さすぎます。
ということで「トランジスタ技術」誌2020年5月号のトランジスタ版4ビットCPUの仕様を大きく変えないままでせめてもう少し大きいプログラムが組めるようにするための工夫が上の回路図にあるメモリバンク回路なのです。
下位4ビットアドレス0〜Fの16バイトを1バンクとして上位アドレス4ビット0〜Fの16バンクのメモリにアクセスできます。
これでもわずかなメモリですが、この回路によって00〜FFの256バイトのメモリにアクセスできます。
実際にはバクク切換えのワークエリアとして各バンクごとに1バイトを使用するため、実際にプログラムとして利用できるメモリは最大で15×16=240バイトです。
それでも命令数が少ない4ビットCPUのことですからそのくらいのサイズのプログラムが組めればよろしいのではありませんでしょうか。
どういう仕組みでバンク切換えを行なっているのかということについては近いうちに具体的なテストプログラムとともに説明をしたいと考えています。
下はキースイッチ回路です。
アドレススイッチ(A0〜A7)とデータスイッチ(D0〜D7)とRAM書き込みのためのプッシュスイッチとプログラム実行モード(RUN)とメモリ書き込みモード(BUSRQ)の切換えスイッチだけの簡単な回路です。
MEM/CLOCK回路基板の26pinコネクタにフラットケーブルで接続します。
MEM/CLOCK回路基板の26pinコネクタはND80Z3.5の82C55入出力コネクタとも接続する仕様になっています。
そのためキースイッチ回路基板の26pinコネクタはND80Z3.5の82C55入出力コネクタの端子配列と同じになっています。
MEM/CLOCK回路基板の26pinコネクタにはND80Z3.5の82C55入出力コネクタとキースイッチ回路基板の26pinコネクタのいずれか一方を接続して使います。
トランジスタでCPUをつくろう![第257回]
2020.11.3upload
前へ
次へ
ホームページトップへ戻る