超マシン復活 #4 校閲フェーズへ

 

伝説の8080エミュレーターの解説書

2022年5月、『超マシン復活 #4 DEC TOPS-20 伝説の8080エミュレーターとALTAIR』という本を書いています。
本日、初稿を書き上げて校閲フェーズに入りました。6月に発売予定です。

|d|i|g|i|t|a|l| DECSYSTEM 20
達人の英知と技に学ぶ知的冒険の旅へようこそ

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

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

超マシン復活 シリーズ
シリーズ  書 名
超マシン復活#1 DEC TOPS-20 レトロOSワールド
超マシン復活#2 DEC TOPS-20 プログラミング言語 その世界
超マシン復活#3 DEC TOPS-20 太古のPDP-10 アセンブラの世界
超マシン復活#4 DEC TOPS-20 伝説の8080エミュレーターとALTAIR

本書について

超マシン復活#4表紙

超マシン復活#4表紙

本書では、ポール・アレンが作った『伝説の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マシンをアセンブラ言語で巧みに操ります。この本を開ければ、新たな発見があることでしょう。

本書の構成

本書は下記に示す章から構成しています。

超マシン復活#4内容

超マシン復活#4内容

第1章「魔法の箱AltairとPDP-10」では、MITS AltairマシンとDEC PDP-10マシンについて解説します。ビル・ゲイツとポール・アレンが開発したマイクロソフトのAltair BASIC誕生の背景には、伝説の8080エミュレーターの存在がありました。

第2章「BASICとギークな少年」では、ギークな少年(ビル・ゲイツとポール・アレン)のPDP-10マシンとの出会い、ふたりの大冒険を紹介します。Altair BASICを短期間で開発できたのは、ポール・アレンが作った伝説の8080エミュレーターがあったからです。

第3章「伝説の8080エミュレーター」では、ポール・アレンが書いた文献から伝説の8080エミュレーターに隠された驚きの真実を解明し、UUO命令を利用した8080エミュレーターの原型を作成します。

第4章「8080エミュレーターを作ろう」では、達人ポール・アレンと同じ道を歩んで伝説の8080エミュレーターを作ってみます。8080プロセッサーの命令セットを解説し、エミュレーターとオブジェクトコード出力について解説します。

第5章「8080アセンブラで数式電卓」では、8080アセンブラで数式電卓プログラムを作成して、PDP-10マシンの上で実行してみます。字句解析、構文解析などの専門的な知識が必要ですが、定石アルゴリズムが存在するので実装するのはそんなに難しくはありません。

第6章「エンハンスドAltair入出力」では、AltairマシンのSIOボードを使用した入出力について解説します。そして、数式電卓の端末入出力をIN/OUT命令で書き換え、入出力命令をサポートしたエンハンスド・エミュレーターに拡張します。

第7章「Altairで歴史的瞬間へ」では、ポール・アレンが初めてAltairマシンでBASICシステムを起動したときの歴史的な瞬間について説明します。読者のみなさんも同じ体験をするためにAltairシミュレーターを導入し、PDP-10マシンから出力した数式電卓の8080オブジェクトコードをAltairマシンで実行してみましょう。