本文へスキップ

《 A Engineer Den 》知的冒険の旅へ出かけよう

#4 伝説の8080エミュレーターとALTAIR【概要】 Super machine revival #4 DEC TOPS-20 Legendary 8080 emulator and ALTAIR


概要

本書の位置づけ

『ラズパイで動く超マシン』シリーズは、DEC PDP-10マシンのTOPS-20 OS活用テクニックなどを 解説したシリーズ本で、本書はシリーズの第4巻となります。

本書は、マイクロソフトを創業したビル・ゲイツと相棒であるポール・アレンが Altair BASICを開発するときに活用したPDP-10マシンで動作する 伝説の8080エミュレーターについて記載したものです。

ラズパイで動く超マシン シリーズ
巻数シリーズ 書籍
1 DEC TOPS-20 レトロOSワールド
2 DEC TOPS-20 プログラミング言語 その世界
3 DEC TOPS-20 太古のPDP-10 アセンブラの世界
4 DEC TOPS-20 伝説の8080エミュレーターとALTAIR
5 DEC TOPS-20 レトロなOSの散歩道
6 DEC TOPS-20 OS起動と停止のギミック

本書について

本書では、ポール・アレンが作った『伝説の8080エミュレーター』を再現します。主な内容を以下に示します。

  • ポール・アレン自身が書いた著書『ぼくとビル・ゲイツとマイクロソフト』 を引用して、 ふたりの大冒険と題してAltair BASIC開発の秘話を紹介します。
  • PDP-10マシンのアセンブラ言語で8080エミュレーターを作成します。
  • 8080アセンブラ言語の少し実用的なプログラム例として数式電卓を作ります。
  • PDP-10マシンの8080エミュレーターでこの数式電卓を実行します。
  • PDP-10マシンから8080オブジェクトコードを出力します。
  • Altairマシン用のブートストラップローダを作成します。
  • Altairマシンで8080オブジェクトの数式電卓を実行します。

もちろん、PDP-10マシンは現存しておりませんので、 超マシンシリーズで解説しているKLH10エミュレーターを導入することにより TOPS-20 OSが走ります。 また、Altairマシンも現存しておりませんので、Altairシミュレーターを導入 することにより8080マシン語が走ります。

本書ではPDP-10マシンとAltairマシンをアセンブラ言語で巧みに操ります。 この本を開ければ、新たな発見があることでしょう。

AltairとPDP-10の動作環境

Linuxマシンでシミュレーターを実行してAltairマシンとPDP-10マシンが動作します。 Linuxマシンは、Windowsで使用していた古いパソコンでも良いですし、 低価格の小型ボードコンピューターRaspberry Piでも良いです。

Altairの動作環境
LinuxマシンでAltairシミュレーターを実行して8080バイナリーコードを 実行します。 本書では、simHというマルチシステムシミュレーターを使用して Altairマシンをシミュレートします。
PDP-10の動作環境
LinuxマシンでKLH10エミュレーターを実行してPDP-10マシン TOPS-20 OSを実行します。 本書では、Panda TOPS-20 Distribution[5]を利用してPDP-10エミュレーターを使います。 そして、「TOPS-20 Monitor 7.1」を起動します。 Panda Distributionには、TOPS-20をインストールしたディスク・イメージが付いています。

本書の主な対象読者

本書は、下図に示すような読者を対象としています。

  • ソフトウェア技術者をめざして情報技術を学ぶ学生
  • 経験の浅い新人の技術者
  • 経験豊富なベテラン技術者

情報技術を学ぶ学生は、 マイクロソフトを知っていてもAltair BASIC、8080プロセッサー、PDP-10マシンなど 知らない人が多いと思います。ひょっとして、うわさ話で聞いたことがあるかもしれません。 これらを知らない人たちが、シミュレーターを使って実物を使うような経験をすることにより、 うわさ話が実体験となりプログラミングの面白さをより知ることができます。

経験の浅い新人技術者は、 アセンブラの概念について知っていても実際に使うことはないでしょう。 ましてや1974年に誕生した8080プロセッサーのアセンブラなんて教科書にも書かれていないでしょう。 先輩技術者から昔はこうだったとか、苦労話を聞いたことがあるでしょう。 探究心と好奇心の扉を開いて、当時の世界に飛び込んでください。何かの発見があるでしょう。

経験豊富なベテラン技術者の中には、 1975年にAltair BASICが開発されたときにすでにコンピューターの道を歩んでいたエンジニアもいるでしょう。 8080プロセッサーやPDP-10マシンを遠い昔に使っていた世代の技術者もおられると思います。 本書を読んで、当時を振り返ることで忘れていた何かを思い出したり、何かの気づきや再発見をしたりするでしょう。

本書の目的

本書の目的は、ポール・アレンが作った『伝説の8080エミュレーター』の仕組みを考え、 彼と同じ道を歩んでみることです。そして、彼が試行錯誤したであろうことを体験してみます。

当初、頭の中でエミュレーターの構成を思い描いてみました。 しかし、ポール・アレン自身が書いた著書『ぼくとビル・ゲイツとマイクロソフト』を読み進めると、 既存のツールを有効に組み合わせて実現したことが判明しました。 特にUUO命令を利用したエミュレーターの構成は、シンプルで感激しました。

8080アセンブラ言語によるプログラミングでは、 計算機科学のコンパイラ技術で使用する字句解析や構文解析についても解説します。 コンパイラやインタプリタを作成するときに役に立つ技術です。 また、乗算命令や除算命令のない8080プロセッサーで算術オーバーフローを考慮した 四則演算を行うアルゴリズムを解説します。 もし、伝説の8080エミュレーターに興味を持てなくてもインタプリタを作ってみたい技術者にとって、 この章だけでも読む価値があります。

このように、探究心と好奇心をかきたててあなたを知的冒険の旅に誘います。 『伝説の8080エミュレーター』の世界の魅力は、本書だけでは語り尽くせません。 エミュレーターの世界は、ワクワクでいっぱいです。 この本を出発点として、探究心と好奇心の扉を開いて 『達人の英知と技に学ぶ知的冒険の旅』へ出発してください。

ある技術者の書斎

探究心と好奇心の扉を開いて
知的冒険の旅に出かけよう