めざせ4004! IC24個で電卓用CPUを作ってみた: Chapter 6 EX4-2024のソフトウエア

 さてお待ちかね、地獄の始まりです。 使用するICチップを徹底的に減らした結果EX4-2024のソフトウエア・アーキテクチャはゴミそのものです。開発した本人が言うのですから間違いありません。正直、プログラムを書いていると発狂します。サンプルプログラムの開発はまさに地獄でした。

Chapter 6-1 サンプルプログラム概要

サンプルプログラムの内容はいつも通りとなっています。電卓の7桁化に伴ってインデックスレジスタを使うように改良しましたが、やっていることは前回のTD4EX4用のプログラムと変わりません。ただしゴミ過ぎるアーキテクチャのために挫折した部分が何か所かあります。

  • 初期化およびデモンストレーションの切り替え
    電源ON時およびリセット時に全LEDを点灯します。これはLEDとインデックスレジスタの動作チェックを兼ねています。ただし全LEDと言っても小数点は点灯しませんのでご了承ください。
    全LEDを点灯後、キー入力待ちになって停止します。
  • 0→9999999カウンタ
    EX4-2024の速度をデモンストレーションするためのプログラムです。0から9999999までのカウントアップを行います。EX4-2024の1kHzというスピードを感じていただけると思います。
    電源ONもしくはリセット後、テンキーの0を押すと開始します。
  • ラーメンタイマー
    毎度おなじみ3分間のタイマーです。今回は3000から0.1秒毎にダウンカウントする……つもりだったのですが、いまいちタイミングが合っていません。まあ気分は3分間と言うことで。
    電源ONもしくはリセット後、テンキーの1を押すと開始します。
  • テンキー入力のデモンストレーション
    テンキーを押すと対応する数字をLEDに表示します。電卓での数値入力のように、入力した数字が右端の最下位桁に表示され、それまで表示されていた数字は1桁ずつ左へシフトします。一番左側の0はゼロサプレスされます。LED駆動に使用している74HC4511が数字しか表示できないので + - × ÷ = AC を押すと何も点灯しない黒表示となります。
    電源ONもしくはリセット後、テンキーの2を押すと開始します。
  • 7桁電卓
    今回のプロジェクトの本命、7桁電卓です。整数のみですが加減乗除を実行できます。
    乗除算は計算に時間がかかるので、計算中は最上位桁に C を表示した上で中間結果を表示します。C が消えると計算終了です。計算結果が±9999999以上になったり、ゼロで除算したりするとエラーとなり、最上位桁に E を表示して停止します。 電源ONもしくはリセット後、テンキーの AC を押すと開始します。