トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第192回]
●RAMボードにスイッチ入力ボードを接続
前回は最後のところで、スイッチ入力ボードをRAMボードに接続して動作テスト済みです、と書きました。
そのときはそれだけで済ませてしまうつもりだったのですが、そういえばRAMボードやスイッチ入力ボードの写真を撮ったときに、ついでだからということで両者を接続した写真も撮ったはず、ということを思い出しました。
あらためて写真を確認してみたところ、やっぱりちゃんと撮ってありました。
今はテストですのでRAMボードとスイッチ入力ボードをつないだだけですが、最終的にはここにトランジスタCPU回路も接続することになります。
そのときのためにスイッチ入力ボードにはRUN/BUSRQ切換スイッチがつけてあります。
RUNモードにするとバスからアドレス入力、データ入力スイッチが切り離され、CPU回路からRAMにアクセスしてREAD/WRITEできるようになります。
逆にBUSRQモードではRAMボードからCPU回路が切り離されて、RAMに直接スイッチで設定したデータが書き込めるようになります。
RAMボードのRAMは62256(32KB)ですからアドレスは0000〜7FFFになります。
RAMのアドレス端子につながっているのはA14〜A0の15ビットです。
A15はRAMにはつながっていなくて+5VにプルアップされていますからCPU回路が接続されていないときはつねにHになります。
スイッチ入力ボードのアドレススイッチはA7〜A0の8ビットだけです。
それだけでも00〜FF(0〜255)のアドレスを設定できます。
なにしろスイッチをパチパチさせながら1バイトずつプログラム、データを書き込んでいくやり方ですからとても32KBも書き込むことはできません。
せいぜい256バイトがいいところでしょう。
そう考えてアドレススイッチは下位8ビット分のみを実装することにしました。
ところで写真ではRAMボード上のアドレス表示LED(写真左端)は16個並んでいます。
A15〜A0の16本のラインを表示するためです。
しかしスイッチボードのアドレススイッチはA7〜A0しかありません。
この写真の構成で使う目的はトランジスタCPU回路と接続してCPU回路の動作テストをすることです。
そのときにスイッチ入力ボードを使って簡単なテストプログラムをRAMに書き込みます。
ということになると書き込むべきRAMアドレスは0000から始まらなければなりません。
現在の回路ではRAMアドレスの上位8ビット(A15〜A8)はスイッチボードにはつながっていませんからその8ビットはすべて1になっています。
このままではスイッチボードからの入力プログラムはFF00〜FFFFの範囲にしか書き込まれません。
実は写真の試作基板を作った時点では、RAMの上位アドレス部分は使わない構成として考えていました。
できるだけ簡単な回路にしたいと思ったからです。
しかしこうして書きながらあらためて考えてみますと、せっかくRAMボードにA15〜A8のアドレス回路も実装していることですから、やっぱりここは上位アドレスにもスイッチ入力ができるようにしたほうがよいように思えてきました。
A7〜A0と同じトグルスイッチをあと8個並べるだけの余地はありませんが8PのDIPSWと8本のダイオードなら実装できそうです。
どうせスイッチボードは前回書きましたように「レジストかぶり」のため作り直ししなければなりませんから、そのときに追加することにいたしましょう。
ああ、そうすると26Pのフラットケーブルでは線が不足してしまうか。
ま、そのあたりは基板を作り直すときに改めてよい方法を考えてみることにします。
今思いついた案があります。
どうせすぐに忘れてしまいますから、ここにメモとして残しておくことにします。
RUN/BUSRQスイッチをRAMボードに移動するのがよさそうです。
トランジスタでCPUをつくろう![第192回]
2020.1.11upload
前へ
次へ
ホームページトップへ戻る