レトロな(11) 8085(コンパチ品だけれども)無限NOPループで火を入れる

Joseph Halfmoon

前回、および別シリーズ回で着々と部品を準備。今回は遂にいにしえの8ビットプロセッサ8085(コンパチ品だけれども)に火を入れてみます。まあ無限NOPループの中でクルクル回るだけだけれども。これでもハードが動いていることは確認できるハズ。無限ループで練習した後はDMAアクセス可のSRAMを接続したいデス。

※「レトロな」投稿順index

いにしえの8ビット共のために作成した部品の記事は以下です。

レトロな(10) NOPループ用手動プログラミングROM作成

部品屋根性(117) 1MHz クリスタル・オシレータ、金属缶入り、DIP足あ

定番回路のたしなみ(45) 素朴なRESET回路、リセット期間 500μsは確保してね

上記の部品があれば、クロックを供給し、RESETかけて、命令コードをフェッチするという最低線の動作は可能なハズ。今回は第9回で入手のプロセッサどもの中からインテル8085(の互換品だけれども、NEC製)にまず火を入れてみます。なんといっても8085は素直でハードが扱いやすいデス。

今回実験回路の回路図

今回の回路は以下です。動くとメンドイ機能にはお休みいただき、クロックとRESETだけ供給し、メモリのどこをフェッチしようと(アドレスは無視なので)NOP命令が読めると。結果NOP命令の無限ループから脱出できずに8085はグルグルと回り続けるハズ。8085DUT_schematic

それでも悪名高いALE信号(アドレス・ラッチ・イネーブル)とRD信号を見張っていれば、CPUが必死にフェッチしてNOPを実行している様子が分かるハズ。

なお、与えているクロックは1MHzです。内部で分周されるので、CLK(OUT)からは500kHzクロックが観察できるハズ。また、NOP命令は4ステートで1命令であるので、この500kHzのクロック4個分で1命令です。まずALE信号がでて(通常、これでアドレスをラッチする)命令番地を指し示すので、その後RD(アクティブロー)を出すことでリードすると。8085の場合、メモリアドレスなのかIOアドレスなのかの区別があるので本当はIOM信号とあわせてデコードしないとならないのですが、今回はIO命令など使っていないので、素のRD信号で読み込んでます。

実機の動作

まさにバラックな感じの実験機の様子が以下に。8085DUT

さて電源投入。まずはCLK(OUT)信号と、ALE信号を観察。CLK_ALE

4クロック(4ステート)毎にALE信号がでておるわいな。ALEが出ているのがT1ステートだと。それにつづくのがT2,T3,T4と。

つづいてRD信号の様子。CLK_RD

RDがロウになるのはT2、T3のハズ。ここには見えてないけれどロウになる1クロック前にALEが出とるハズだがや。

次回は、オシロでなくロジアナ機能でいろいろピンをあたって、懐かしの「8ビット・パラレル・バス」の様子を愛でたいと思います。その後はSRAM接続してDMAかけて、プログラミングじゃの。既に過去回でホストPC上にCP/M環境作成済。マクロアセンブラもレディだと。お楽しみだな。

レトロな(10) NOPループ用手動プログラミングROM作成 へ戻る