CPU実験室

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

プログラムカウンタ

以前作ったボードを久々に動かすシリーズですが、今日はMC14500ボードです。

 

f:id:O3I:20210222174227j:plain

 

これも動作には問題ありませんが、すでに書いたようにこのボードは酷い設計ミスをしていてジャンパだらけなので見ているうちにリファインしたくなってきました。

配線ミス以外にも気になる部分があって、1つ目はプログラムカウンタMC14516のプリセットがクロック非同期なのでJMP時の挙動がおかしいこと、2つ目はスタックを持っていないためサブルーチンが使えないことです。前者はプログラムで対処できましたが後者は如何ともしがたく、ただでさえ単純な処理しかできないICUでは致命的です。もちろん逆に自由度が大きいICUだからこそハードの付加でなんとでもなります。プログラムカウンタ周りの見直しをしてみました。

 

マニュアルにはサブルーチンを実現するハードウェアとして、以下のようにプログラムカウンタにLIFOが付いたものが示されています。

 

f:id:O3I:20210222172527j:plain

 

こういう機能のICは単体であるのでしょうか。具体例として挙げられている回路図で使っているのが「34706」というICで、モトローラだから「MC34706」なのか判りませんが、これが全くもって検索でヒットしません。

 

f:id:O3I:20210222172544j:plain

 

ということでもともと基板に実装されているプログラムカウンタMC14516×3個を抜いてそのソケットに挿すCPLDが載ったドータボードを考えてみました。

 

f:id:O3I:20210222172741j:plain