あんたCPUなんか創ってどうするのよ?! Vol.1 第3章 第3節

~TD4とかいうCPUがあまりにも残念だったので拡張してみた~

2016/8/14
コミックマーケット C90 3日目 西g16b

第3章 第3節 段階的に名前と目標を定める

TD4を拡張するにあたり名称を決めることにしました。拡張は英語でextensionですからTD4の後ろにEXを付けて、さらにバージョンを示す番号を追加して以下のように命名します。

TD4EX0
TD4のROM部分をSRAMに置き換えたもの。CPU本体は元のままで何も拡張しません。筆者がROMライターを持っていないことへの対策だったのですが、ZOB.Clubの他のメンバーからROMライターを借りることができたので、計画しただけで実際には製作していません。
TD4EX1
TD4のプログラムカウンタだけを12ビットに拡張したもの。ROMも半導体のEEROMに交換します。
ROMアドレス空間は増えますが、ジャンプ命令も条件ジャンプ命令も拡張していないので、結局のところ使い物になりません。
TD4EX2
TD4EX1の命令デコーダーを拡張し、ジャンプ命令を2バイト命令に拡張します。本書で解説します。TD8との違いはジャンプ命令(条件ジャンプ命令含む)だけが2バイト長に拡張され、その他の命令は1バイトのままだと言う点です。つまりTD4EX2は可変長命令です。
TD4EX3

TD4EX2にRAMを追加します。とは言っても記憶容量はたったの4ビット×16語です。しかもメモリマップドI/Oを採用するので、現実にはRAM容量は15語以下になってしまいます。

ともあれ、これで一般的なCPUに備わっている機能は一通りそろう訳ですから、TD4がまともなCPUならちょっとしたゲームくらいは作れるようになる筈です。できないとすれば、その原因はどこにあるのでしょうか?

EX4

命令デコーダーを拡張し、まともな計算のできるまともなCPUに作り変えます。

TD4との互換性は完全に失われるので、ここで名前からTD4を外すことにします。減算機能も追加して、ソフトウェアによる乗除算も行えるようにします。最終的に電卓を作成します。

偉大なる先駆者、嶋正利氏に敬意を表し、今回のプロジェクトの目標として「電卓を作る」というお題目を掲げます。入出力装置は未定ですが、桁数は2桁とし、四則演算を行えるものとします。