本文へスキップ

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

#3 太古のPDP-10 アセンブラの世界【概要】 Super machine revival #3 DEC TOPS-20 Primeval PDP-10 Assembler World


概要

本書の位置づけ

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

本書は、太古のPDP-10マシンのアセンブラ言語について記載したものです。

ラズパイで動く超マシン シリーズ
巻数シリーズ 書籍
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起動と停止のギミック

本書について

本書では、PDP-10アセンブラ言語でプログラミングするときにプログラマーが知るべき3つの情報を解説しています。

  1. PDP-10命令セットアーキテクチャー
  2. マクロアセンブラ
  3. TOPS-20モニターコール

そして、効率的にデバッグするためのツールを解説します。 さらに、プログラミング例題を示しているので、あなたがプログラミングするときの参考となります。 また、この例題は拙著『超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界』で、解説した例題と同じです。 比べてみると、アセンブラ言語とFORTRAN言語などの高水準プログラミング言語との違いも理解できます。

TOPS-20の動作環境

TOPS-20はDECのPDP-10マシンで動作するOSです。21世紀の現在、PDP-10マシンはもう現存していません。 そこで、TOPS-20 OSを復活するために、Linuxマシンでエミュレーターを実行して本物のTOPS-20用バイナリーコードを実行します。

本書では、Panda TOPS-20 Distributionを利用してKLH10というPDP-10エミュレーターを使います。 そして、「TOPS-20 Monitor 7.1」を起動します。Panda Distributionには、TOPS-20をインストールしたディスク・イメージが付いています。

拙著『超マシン復活#1 DEC TOPS-20 レトロOSワールド』に従って、LinuxマシンにTOPS-20の動作環境を準備してください。 Linuxマシンは、Windowsで使用していた古いパソコンでも良いですし、低価格の小型ボードコンピューターRaspberry Piでも良いです。 エミュレーターの導入方法やTOPS-20の起動・停止や基本的なコマンド操作などは、『超マシン復活#1』を参照してください。 知的冒険の旅へ出発するための便利な使い方を掲載しています。

ソフトウェアの宝庫

筆者は1976年から1977年の2年間に大学のDECSYSTEM-2040でTOPS-20を使いました。 タイムシェアリング(TSS)方式でターミナルに向かってひとりで独占して使っているかのごとく対話方式で使えました。 PDP-10アセンブラ言語もこのときに学び、コンピューター・アーキテクチャーの基礎を修得しました。

太古のPDP-10マシンは、Emacs、MacLisp、BBN LispなどのツールやWAITS、ITS、TENEX、TOPS-20などの革新的なOSを創出しました。 そして、このOSやツールはPDP-10のアセンブラ言語で書かれています。

偉大な先人が開発したTOPS-20は、歴史的に貴重なソフトウェアの宝庫です。 Panda TOPS-20 Distributionのハードディスクには、アセンブラ言語で記述されたコンパイラーや TOPS-20 OS モニターのソースコードが格納されています。 アセンブラ言語を修得すれば、ソースコードを解読することも夢ではありません。

本書の主な対象読者

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

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

情報技術を学ぶ学生は、 アセンブラ言語を学ぶ機会は少ないと思います。PDP-10マシンは、 命令セットとは独立したアドレッシングモードがあり初心者には比較的理解しやすいです。 アセンブラ言語を理解すると高水準プログラミング言語がマシンの上でどのように実行されているか想像することができます。

経験の浅い新人技術者は、 アセンブラの概念について知っているでしょう。 実際にPDP-10アセンブラ言語を学ぶことにより、これまでの「点」の知識がつながり「線」となり、 さらに「面」となって、より一層深いことが理解できるようになります。

経験豊富なベテラン技術者あなたは、 その昔にいろいろなコンピューターのアセンブラ言語でプログラミングしたかと思います。 PDP-10アセンブラのプログラミングを体験することにより、何かの気づきや再発見をするでしょう。

本書の目的

本書の目的は、太古のPDP-10マシンのアセンブラその世界を知ってもらうことです。

コンピューターの動作を理解するには、アセンブラ言語を見るのが近道です。 アセンブラ言語の理解ができれば、その上で動く高水準言語やOSなどの動作も非常にわかりやすくなります。

コンピューターの基本に立ち返ってアセンブラ言語を学ぶことはプログラマーとしての礎を築くことになります。 また、アセンブラ言語を使用するとプロセッサーの能力を最大限に引き出すことが可能です。 その結果、実行効率の高いプログラムを作成することができます。

マクロアセンブラの世界の魅力は、本書だけでは語り尽くせません。 太古のPDP-10マシンは、ワクワクでいっぱいです。 この本を出発点として、探究心と好奇心の扉を開いて『太古のマシンを操る知的冒険の旅』へ出発してください。

ある技術者の書斎

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