TOPS-20

TOPS-20はデジタル・イクイップメント・コーポレーション(DEC)によるDECの36ビットメインフレームコンピューター用のプロプライエタリ なOSで、PDP-10向けのTOPS-10の後継OSである。ハードウェアリファレンスマニュアルには「DECsystem-10 / DECSYSTEM-20 プロセッサ」と記載された（DEC PDP-10とDECSYSTEM-20を意味している)。 TOPS-20の起源は、 BBNテクノロジーズ(BBN)のTENEXオペレーティングシステム(1969年)であり、1976年にDECから販売された。このシステムは名前の類似しているTOPS-10とはほぼ全く関係がなかったが、PA1050というTOPS-10のモニターコールをエミュレーションする機能が同梱されており、一部を除いてTOPS-10用実行ファイルをほとんど修正なしで動作させることができた。DECの方針により、DECのアプリを実行するのに必要となった場合を除いて、TOPS-10のその後の修正をフォローするためにPA1050をアップデートすることはなかった。 TOPS-20はPDP-10で当時利用可能だったOSとして、TOPS-10、ITS、WAITSなどの著名なタイムシェアリングシステムと競合関係にあった。 TOPS-20はBBNがDECのPDP-10用に開発したTENEXというOSをベースに開発された。TENEXはPDP-10で動作するサードパーティー製のOSとして当時最も人気があったが、DECが新たに開発した高速なKI-10版PDP-10では動作しなかった。この問題に対応するため、DECのPDP-10担当セールスマネージャはBBNからTENEXの権利を買い取り、新機種に移植するプロジェクトを立ち上げた。最終的には元のTENEXのコードはほとんど残らず、TOPS-20という名前で販売された。 このTOPS-20のおまけはTOPS-10のシステムコールをエミュレーションするエミュレーターに過ぎなかった。UUO (Unimplemented User Operation; 未実装ユーザー命令)と呼ばれる仕組みを利用し、TOPS-20用ではないコンパイラを実行したり、こうした言語で書かれたユーザープログラムを実行したりするのに必要だった。ユーザーアドレス空間にマップされたパッケージの名称がPA1050だった。PAまたはPATは互換の意味で、10はDECやPDP-10を意味し、50はPDP-10モデル50、10/50、1050を意味していた。 PA1050はPATと呼ばれることもあり、PA1050は特権を持たないユーザーモードのプログラムであり、JSYSコールを使って必要な時だけ動作することから、この名前は体をよく表していた。 TOPS-20は以下の機能によりその特徴を最大限に活用できる。 コマンドプロセッサEXEC.EXEを介してコマンドを入力する マクロ言語(.MAC)からJSYS(Jump to System)を呼び出す EXECは主に以下の方法で機能を実現している。 JSYS経由の呼び出しを含むコード GALAXYコンポーネント（スプーラなど）からのサービスの要求 TOPS-20は当時としては非常に先進的な機能があった。 コマンド補完 次のような動的ヘルプ ノイズワード - DIRと入力してESCapeキーを押すと次のようになる。 DIRectory (of files) 「I」と入力して<ESC>キーを押すと次のようになる。 Information (about) 「？」を入力すると、許されるオペランドや必要なオペランドが補完される。 以下のコマンド一覧はTOPS-20のコマンドプロセッサによりサポートされる。 ACCESS ADVISE APPEND ARCHIVE ASSIGN ATTACH BACKSPACE BLANK BREAK BUILD CANCEL CLOSE COMPILE CONNECT CONTINUE COPY CREATE CREF CSAVE DAYTIME DDT DEASSIGN DEBUG DEFINE DELETE DEPOSIT DETACH DIRECTORY DISABLE DISCARD DISMOUNT EDIT ENABLE END-ACCESS EOF ERUN EXAMINE EXECUTE EXPUNGE FDIRECTORY FORK FREEZE GET HELP INFORMATION KEEP LOAD LOGIN LOGOUT MERGE MODIFY MOUNT PERUSE PLOT POP PRINT PUNCH PUSH R RECEIVE REENTER REFUSE REMARK RENAME RESET RETRIEVE REWIND RUN SAVE SEND SET SET HOST SKIP START SUBMIT SYSTAT TAKE TALK TDIRECTORY TERMINAL TRANSLATE TYPE UNATTACH UNDELETE UNKEEP UNLOAD VDIRECTORY JSYSは Jump to SYStemの略。オペランドにはメモリアドレスの指定もあった。TOPS-20は18ビットまたは30ビットのアドレスを使用できた。モニタコールには1つないしは2つのオペランドが必要だった。一部のコールは両方の形式をサポートした。一部のモニタコールでは指定したアドレスのうちの18ビット以上が無視された。これらのコールは18ビットのアドレスが現在のセクションを参照しているものと解釈された。 内部的には、まずGTJFN (Get Job File Number)というJSYSでファイルを識別し、次にOPENFでJFN番号を指定してファイルを開き、ファイルの内容を操作した。 PCL（Programmable Command Language）はTOPS-20で動作するプログラミング言語。PCLのソースプログラムは、デフォルトでは.PCLというファイル形式で保存され、TOPS-20の拡張されたEXECでDECLAREという動詞名を使ってコンパイルでき、コンパイルしたコマンドはEXECの一部として機能した。 PCLには次のような機能があった： フロー制御：DO While / Until、CASE / SELECT、IF-THEN-ELSE、GOTO 文字列操作 (length, substring, concatenation） システム情報へのアクセス (日付/時刻、ファイル属性、デバイス特性) タイムシェアリングシステムの進化（英語版） ^ Richard Stallman (30 October 1986). “RMS lecture at KTH (Sweden)”. 2020年6月13日閲覧。 ^ a b c d “TOPS-20 Command manual”. 2020年6月13日閲覧。 ^ “Origins and Development of TOPS-20”. 2020年6月13日閲覧。 ^ “ITS reference manual”. 2020年6月13日閲覧。 ^ http://www.abbreviations.com/term/223192 ^ a b The 10/50 was the top-of-the-line KA machine at that time. Dan Murphy (1989年). “Origins and Development of TOPS-20”. 2020年6月13日閲覧。 The family continued with another KA, the 10/55, and then came KI, KL & KS. ^ The JSYS was the counterpart for the 20 of what was done by TOPS-10 on a "10" and thus the emulator for a DEC PDP-10 Model 50 was what PA1050 was emulating. The 10's system calls were known as UUO's ^ ftp://kermit.columbia.edu/kermit/dec20/assembler-guide.txt ^ http://www.opost.com/dlm/tenex/hbook.html ^ https://www.allacronyms.com/JSYS/Jump_to_System ^ a b TOPS-20 Programmable Command Language / User's Guide and Reference Manual. Carnegie Mellon University Computation Center. (1981)  ^ “Programmable Command Language” (March 11, 2016). 2020年6月13日閲覧。 ^ R. J. Cohn (1988年). “Programmable Command Languages for Window System”. 2020年6月13日閲覧。 ^ “TOPS-20 Programmable Command Language”. 2020年6月13日閲覧。 デジタルコンピューティングタイムライン Storage Organization and Management in TENEX ダニエル・L・マーフィー。 AFIPS Proceedings 1972年 FJCC KI10でのTENEXの実装 ダニエル・L・マーフィー TENEXパネルセッション NCC 1974 Origins and Development of TOPS-20 ダニエル・L・マーフィー 1989年 TOPS-20 User's Guide 1988. DECSYSTEM-20 Assembly Language Guide フランクダクルス、クリスライランド 1980年 Running TOPS-20 V4.1 under the SIMH Emulator Origins and Development of TOPS-20 詳細な歴史 [1]Panda TOPS-20 distribution 。 [2]SDF Public Access TWENEX 。 SIMHシミュレータ PDP-10のシミュレーションとTOPS-20の実行が可能。 Manuals for DEC 36-bit computers 。 PDP-10ソフトウェアアーカイブ 。 36-bits Forever 。 Request a login to Living Computers: Museum + Labs TOPS-20が動くTOAD-2