あなたCPUなんか創ってどうするのかしら?! 第4章 第1節
~あんたCPUなんか創ってどうするのよ?! Vol.4~
2019/4/14
技術書典6
池袋サンシャインシティ 文化会館ビル2F 展示ホールD「う11」
第4章 第1節 サンプルプログラム概要
電卓を作るという目的の通り、TD4EX4のソフトウエアは電卓のプログラムです。しかし電卓以外にも毎度おなじみのデモンストレーションができるようになっています。これらはテンキーの数字を押しっぱなしにしたまま電源ONもしくはリセットをすると起動します。
- 1. 0→99カウンタ
TD4EX4の速度をデモンストレーションするためのプログラムです。0から99までのカウントアップを行います。TD4EX4の1kHzというスピードを感じていただけると思います。
テンキーの0を押したまま電源ONもしくはリセットで起動します。
- 2. ラーメンタイマー
毎度おなじみ3分間のタイマーです。
数字の表示は2桁しかできないので、1桁目(最下位)が10秒を表示し、2桁目(中央)が分を、そして3桁目(最上位)のマイナス記号によって1秒を点滅表示します。
テンキーの1を押したまま電源ONもしくはリセットで起動します。
- 3. テンキー入力のデモンストレーション
テンキーを押すと、対応する数字をLEDに表示します。最上位桁は数字を表示できないので、中央桁と最下位桁を使って2桁だけのシフト表示をします。
テンキーの2を押したまま電源ONもしくはリセットで起動します。
- 4. 1桁電卓
TD4EX4の機能検証のために作成しました。1桁の加減算だけを実行できます。
TD4EX4の機能を検証しながらプログラムを作成していったので、かなりのスパゲティ・プログラムになっています。面倒な方は飛ばしていただいて構いません。
テンキーの3を押したまま電源ONもしくはリセットで起動します。
- 5. 2桁電卓
今回のプロジェクトの本命、電卓のプログラムです。2桁の加減乗除を実行できます。
演算結果が±100以上になると停止しますが、最上位桁に1を表示することは出来るので、演算結果が±199までの場合は答えを表示して停止します。これを超えると最上位桁にEを表示して停止します。
何もキーを押さない場合、または4を押したまま電源ONもしくはリセットで起動します。
これらの他に、ソフトウエア内部には以下の疑似サブルーチンが存在します。
- テンキー入力
- 2桁加算
- 2桁減算
TD4EX4にはサブルーチン機能が無いため、これらは疑似的にサブルーチンをシミュレートすることで実現しています。実行効率は悪いのですが、かろうじて電卓として実用にはなるので問題ないでしょう。
この疑似サブルーチン機能を実現するために、RAMの0番地を疑似スタックに使用しています。また、テンキー入力サブルーチンの末尾を疑似リターン命令に流用しています。詳細は後程説明します。