CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

8085

FM音源IC実装

FM音源IC、YM2203を実装しました。 おまけでパラレルポートが付いているのでポートAにはLED、ポートBにはDIPスイッチを接続してあります。 ~DIPではないですねスペースの都合でSIPスイッチです。 まずはパラレルポートのテストでLEDをチカチカさせています

周辺I/O追加

タイマ/カウンタuPD8253、割込みコントローラuPD8259を追加で実装しました。 割込み要因の接続は以下のようになっています IR0 ← 8251 RxRDY IR1 ← 8251 TxRDY IR2 ← 8253 TMR0 OUT IR3 ← 8253 TMR1 OUT IR4 ← 8253 TMR2 OUT IR5 ← 8279 KDC int IR6 ← 2203 …

キードライバ修正

8279でキーコードが読み取れない原因が判明しました。 キーが読めないときFIFOのステータスレジスタを見ると40Hが入っていて これは2つ以上のキーが同時に押されているエラーを示しています。 原因は2つあって 1つはライン方向のデコードミスで1つのキー…

キースイッチ取り付け

これで見た目はほぼ完成。 16進キーがレトロっぽい雰囲気でいいかんじです。 実際操作してみるとタクトキーのプチプチというクリック感がいまいちでした。 本当はストロークが長くてスコスコ叩けるキーが良かったのですが 高価だし取り付けるスペースが無い…

キートップ

16進キーのキートップに入れるラベルを印刷しました。 用紙が良くなかったのかずいぶんくすんだ色になってしまいました これを切り分けてキャップの中に挟みました。 これまでの作成工程の中でいちばん内職っぽい作業でした

トランジスタ交換

8279で制御されるLEDはセグメントが全点灯するとコモンアノードに一瞬200mA程度流れることになります。 桁ドライブのトランジスタは2SA1015で、これの最大コレクタ電流Icは150mAとなっていますが、おそらくパルス的な電流なので全く問題ないはずです。 ただ…

表示ドライバ作成

現在のアセンブラによる開発環境です。 1.エディタでソースを編集 ↓ 2.DOS窓の中でPROASM-IIでアセンブル ↓ 3.ハイパーターミナルでデバッグモニタを起動しHEXファイルのダウンロード、実行 ↓ 1.に戻る ハードが大体出来上がったところでLSIC-80のC言語によ…

LCD制御信号修正

LCDに表示クリアのコマンドを送ってもクリアされなかったり、化けた文字が表示されてしまうという現象が出ているのですがLCD制御信号をオシロで観測しました。 LCDのコマンドレジスタへの書込み時で 上からE、RS、R/WですがEクロックのダウンエッジ付近でRS…

LCD接続

16桁*2行のLCDを実装。 キャラクタコードを書き込むと文字が表示できるのは確認できましたが 表示クリアとかカーソルホームなどのコマンド動作がどうも不安定で コマンドが無視されることがあります。 今回、LCDのEクロックをチップセレクト信号のCR積分で生…

ディスプレイコントローラ動作確認

キーボードディスプレイコントローラ8279と7セグLEDのドライバ周りを実装して 動作確認しました。 すでにデバッグモニタが動作しているので周辺IOのテストはモニタからOUTコマンドで レジスタを叩けばいいのでとても簡単です。 8279のプログラミング…

デバッグモニタ移植

USARTとRAMが付いたので簡単なモニタを載せようと思っていたら Vectorで8085CPU用デバッグモニタのソースが入手できました。 修正する必要があったのはROM,RAM,USARTのマッピングと アセンブラ固有の擬似命令くらいで完全に移植できました。 1行アセンブル/…

USART動作確認

シリアルコントローラ8251のテストを行いました。 プログラムが多少大きくなるのでまずアセンブラが必要です。 ここでは汎用アセンブラのPROASM-IIで行いました。 これはもともとZ80用のアセンブラですが8085命令のマクロファイルを読み込むことで Intel8085…

ROM動作確認

JEDファイルをGAL16V8に書込みROMへのチップセレクト信号が準備できたので 早速ROMの動作テストを行います。 例によって最小のプログラム;「JMP $」をROMの0番地に書き込みます。 0000 JMP $ はアセンブルするまでも無くC3/00/00になるのでこれをAm29F010に…

GALロジック設計

チップセレクトを生成するGALの設計をしました。 いままでDOS上で動作するPALASMを使っていましたがDOSに降りるのも面倒なので Lattice社のサイトから設計プログラムispLEVERをダウンロードしてきました。 現行バージョンでは最新FPGA設計も出来ますのが、お…

とりあえず暴走

8085とアドレスラッチ74ALS573のみを差込み、 メモリ、バスコントローラが無い状態でいきなり電源ONしました。 メモリがないのでおそらく毎回オペコード”FF”をフェッチして暴走状態になっているらしくバスラインがパカパカ駆動されているのでいちおうCPU…

CPU実装

UEWでのジャンパ配線をまだやっていませんがもう8085CPUを取り付けてしまいました。 とりあえず外付けしている9.8304MHzの水晶が発振していることと、リセットICから 正常に信号が出ていることだけ確認できました

キートップラベル

キートップに入れるラベルを作成してみました わかる人にはわかるファンクションと配色になっています

部品追加

不足していたコネクタ等を買い出してきて追加しています。 キーボード部分はタクトキーは用意がありますが傷か付きそうなのでまだ付けてません

さらに部品追加

7セグLEDのドライバ周りの部品を追加。 ダイナミック表示のドライバを簡略化した例をよくみますが ここはきちんと教科書的に設計していてアノード側はディスクリートのトランジスタ、 セグメント側はトランジスタアレイのシンクドライバを使用します。 一方8…

CR類実装

パスコン、プルアップ抵抗などの取り付けを始めました 7セグLEDは最後でもいいのですが、実装状態を見たくて早速付けちゃいました。 多少ガタはありますが、いい感じです

ICソケット取り付け

まず背の低いICソケットから実装。 手持ちであるものから付けていきましたが8ピン、14ピン、24ピンのソケットが 在庫切れで今日はここまで。

表面ジャンパ

基板部品面にφ0.6の錫めっき線でジャンパを飛ばしたところです。 CPU⇔I/O回りがほとんど未配線で残っているので、このあとUEWで 配線していくことになります

穴あけ完了

ランド中央のdrill-aidをガイドにすることで位置のバラつきが少なく仕上がりました。 特にこのような7SEGLEDとかスイッチの並びとかがガタガタしているとかっこ悪いですが、今回はまあまあの出来です。

穴あけ、始めました

冷やし中華か・・ 今までプロクソンのルータを専用のドリルスタンドにセットして穴あけしていたのですが、このスタンドの芯ガタがひどく狙ったところにうまく開きません。また位置決めも難しく一度エイヤッと決めたらそのまま刃を降ろすしかなく、相当ずれて…

エッチング完了

露光は長めで15Wケミカル3灯で13分行いました。 今までやった感じだとマスクがちゃんとできていれば露光はオーバー気味の方が良かろうと。 露光部分の感光剤の色がが青から緑を経て無色透明(銅そのものの色が見える)までやってます。 むしろ露光ムラの方が…

版下再出力

サンハヤトのフィルムを買ってきて再度印刷しました。 今度は大丈夫でしょう

こちらも版下出力失敗

完成したパタンをフィルムに出力。 こちらはパタンは充分鮮明で問題無し ・・・と思ったら、部品面でのジャンパを記入したレイヤーを外さずに印刷してしまいました 寝ます。

パタン完成

何本かルートを追加し、チェックで間違いが無いことを確認しパタンが完成しました。 ロジック変更に備え余ったスペースにSOPのフットプリントを用意しています

パタンミス修正

LCDの制御信号生成のために置いた負論理AND(正論理NOR)74HC02のピン接続が 誤っているのに気付いて修正。 74シリーズのQUAD-2入力ゲートではNORだけがピン配置違うのは何で?

パタンチェック

入力したパタンを倍寸で印刷してパタンチェックをしています。 PC画面から離れて煎餅をかじりながら机上でチェックをしていると 無理だと思っていたラインの引き回しが見つかったり よりエレガントな解が得られたりします。