TOPS-20デジタル・イクイップメント・コーポレーション(DEC)によるDECの36ビットメインフレームコンピューター用のプロプライエタリ[1]OSで、PDP-10向けのTOPS-10の後継OSである。ハードウェアリファレンスマニュアルには「DECsystem-10 / DECSYSTEM-20 プロセッサ」と記載された(DEC PDP-10とDECSYSTEM-20を意味している)[2]

TOPS-20
ログイン画面
開発者 DEC
プログラミング言語 アセンブリ言語
OSの系統 DEC OSファミリー
開発状況 終了
初版 1976年 (48年前) (1976)
最新安定版 7.1 / 1988年6月 (35年前) (1988-06)
使用できる言語 英語
プラットフォーム PDP-10
既定のUI コマンドライン
ライセンス プロプライエタリ
テンプレートを表示

TOPS-20の起源は、 BBNテクノロジーズ(BBN)のTENEXオペレーティングシステム(1969年)であり、1976年にDECから販売された[3]。このシステムは名前の類似しているTOPS-10とはほぼ全く関係がなかったが、PA1050というTOPS-10のモニターコールをエミュレーションする機能が同梱されており、一部を除いてTOPS-10用実行ファイルをほとんど修正なしで動作させることができた。DECの方針により、DECのアプリを実行するのに必要となった場合を除いて、TOPS-10のその後の修正をフォローするためにPA1050をアップデートすることはなかった。

TOPS-20はPDP-10で当時利用可能だったOSとして、TOPS-10、ITS[4]WAITSなどの著名なタイムシェアリングシステムと競合関係にあった。

TENEX 編集

TOPS-20はBBNDECPDP-10用に開発したTENEXというOSをベースに開発された。TENEXはPDP-10で動作するサードパーティー製のOSとして当時最も人気があったが、DECが新たに開発した高速なKI-10版PDP-10では動作しなかった。この問題に対応するため、DECのPDP-10担当セールスマネージャはBBNからTENEXの権利を買い取り、新機種に移植するプロジェクトを立ち上げた。最終的には元のTENEXのコードはほとんど残らず、TOPS-20という名前で販売された。

PA1050 編集

このTOPS-20のおまけはTOPS-10のシステムコールをエミュレーションするエミュレーターに過ぎなかった。UUO (Unimplemented User Operation; 未実装ユーザー命令)と呼ばれる仕組みを利用し[5]、TOPS-20用ではないコンパイラを実行したり、こうした言語で書かれたユーザープログラムを実行したりするのに必要だった。ユーザーアドレス空間にマップされたパッケージの名称がPA1050だった。PAまたはPATは互換の意味で、10はDECやPDP-10を意味し、50はPDP-10モデル50、10/50、1050を意味していた[6]

PA1050はPATと呼ばれることもあり、PA1050は特権を持たないユーザーモードのプログラムであり、JSYSコールを使って必要な時だけ動作することから、この名前は体をよく表していた[6]

TOPS-20の機能 編集

TOPS-20は以下の機能によりその特徴を最大限に活用できる。

  • コマンドプロセッサEXEC.EXEを介してコマンドを入力する[2]
  • マクロ言語(.MAC)からJSYS(Jump to System)を呼び出す[7][8]

EXECは主に以下の方法で機能を実現している。

  • JSYS経由の呼び出しを含むコード
  • GALAXYコンポーネント(スプーラなど)からのサービスの要求

コマンドプロセッサー 編集

TOPS-20は当時としては非常に先進的な機能があった。

  • コマンド補完 [9]
  • 次のような動的ヘルプ
    • ノイズワード - DIRと入力してESCapeキーを押すと次のようになる。
DIRectory (of files)
「I」と入力して<ESC>キーを押すと次のようになる。
Information (about)

「?」を入力すると、許されるオペランドや必要なオペランドが補完される。

コマンド 編集

以下のコマンド一覧はTOPS-20のコマンドプロセッサによりサポートされる[2]

  • 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の機能 編集

JSYSは Jump to SYStemの略[10]。オペランドにはメモリアドレスの指定もあった。TOPS-20は18ビットまたは30ビットのアドレスを使用できた。モニタコールには1つないしは2つのオペランドが必要だった。一部のコールは両方の形式をサポートした。一部のモニタコールでは指定したアドレスのうちの18ビット以上が無視された。これらのコールは18ビットのアドレスが現在のセクションを参照しているものと解釈された[2]

内部的には、まずGTJFN (Get Job File Number)というJSYSでファイルを識別し、次にOPENFでJFN番号を指定してファイルを開き、ファイルの内容を操作した。

PCL(プログラム可能コマンド言語) 編集

PCL(Programmable Command Language)はTOPS-20で動作するプログラミング言語。PCLのソースプログラムは、デフォルトでは.PCLというファイル形式で保存され、TOPS-20の拡張されたEXECでDECLAREという動詞名を使ってコンパイルでき、コンパイルしたコマンドはEXECの一部として機能した[11][12][13][14]

PCL言語の機能 編集

PCLには次のような機能があった: [11]

  • フロー制御:DO While / Until、CASE / SELECT、IF-THEN-ELSE、GOTO
  • 文字列操作 (length, substring, concatenation)
  • システム情報へのアクセス (日付/時刻、ファイル属性、デバイス特性)

関連項目 編集

脚注 編集

  1. ^ Richard Stallman (1986年10月30日). “RMS lecture at KTH (Sweden)”. 2020年6月13日閲覧。
  2. ^ a b c d TOPS-20 Command manual”. 2020年6月13日閲覧。
  3. ^ Origins and Development of TOPS-20”. 2020年6月13日閲覧。
  4. ^ ITS reference manual”. 2020年6月13日閲覧。
  5. ^ http://www.abbreviations.com/term/223192
  6. ^ 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.
  7. ^ 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
  8. ^ ftp://kermit.columbia.edu/kermit/dec20/assembler-guide.txt
  9. ^ http://www.opost.com/dlm/tenex/hbook.html
  10. ^ https://www.allacronyms.com/JSYS/Jump_to_System
  11. ^ a b TOPS-20 Programmable Command Language / User's Guide and Reference Manual. Carnegie Mellon University Computation Center. (1981) 
  12. ^ Programmable Command Language” (2016年3月11日). 2020年6月13日閲覧。
  13. ^ R. J. Cohn (1988年). “Programmable Command Languages for Window System”. 2020年6月13日閲覧。
  14. ^ TOPS-20 Programmable Command Language”. 2020年6月13日閲覧。

さらに読む 編集

外部リンク 編集