あなた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番地を疑似スタックに使用しています。また、テンキー入力サブルーチンの末尾を疑似リターン命令に流用しています。詳細は後程説明します。