TOPS-20
ログイン画面 | |
開発者 | DEC |
---|---|
プログラミング言語 | アセンブリ言語 |
OSの系統 | DEC OSファミリー |
開発状況 | 終了 |
初版 | 1976年 |
最新安定版 | 7.1 / 1988年6月 |
使用できる言語 | 英語 |
プラットフォーム | PDP-10 |
既定のUI | コマンドライン |
ライセンス | プロプライエタリ |
TOPS-20はデジタル・イクイップメント・コーポレーション(DEC)によるDECの36ビットメインフレームコンピューター用のプロプライエタリ[1] なOSで、PDP-10向けのTOPS-10の後継OSである。ハードウェアリファレンスマニュアルには「DECsystem-10 / DECSYSTEM-20 プロセッサ」と記載された(DEC PDP-10とDECSYSTEM-20を意味している)[2]。
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はBBNがDECのPDP-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は主に以下の方法で機能を実現している。
- 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
- 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)
- システム情報へのアクセス (日付/時刻、ファイル属性、デバイス特性)
関連項目
[編集]脚注
[編集]- ^ 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