TOPS-20 のファイルタイプ
2018年1月、歴史的に貴重なDEC社 TOPS-20を使用しています。TOPS-20では、ファイル名のファイルタイプにどんな名称を付けているのか気になりました。
MS-DOS/Windowsでは、ファイル種類を識別するためにファイル名の末尾に拡張子を付けます。そして、拡張子に応じたアイコンが表示され、起動するアプリケーションとの関連付けを行っています。
UNIX系では、拡張子的なものはありませんが慣例的にファイルの種別を示すキーワードを付けます。
MS-DOSやWindowsの元祖的なTOPS-20では、どうなっているのでしょうか。
C言語をビルドすると、.C → .REL → .EXE を生成しました。
だいたい想像できますが、知らない拡張子もありますので調査しました。
TOPS-20のファイル記述仕様を以下に示します。
dev:<dir>name.typ
フィールド | 説明 |
---|---|
dev: | デバイス名 |
<dir> | ディレクトリ名 |
name | ファイル名 |
.typ | ファイルタイプ |
一般的に使用するファイルタイプは、「TOPS-20 User’s Guide」APPENDIX Bに Standard File Typesという一覧がありました。
ファイルタイプのランキング
実際にどんなファイルタイプを使用しているか、ディレクトリ一覧からファイルタイプを取り出してランキングを調査しました。
システムのディレクトリ一覧も取得するので、ENABLEコマンドで特権モードになります。DIRECTORYコマンドで、PS:(プライマリーストレージ)のすべてのディレクトリ一覧を取得して、テキストファイルに出力します。
@ENABLE (CAPABILITIES) $ $DIRECTORY (OF FILES) PS:<*>, $$OUTPUT (TO FILE) DIR.TXT $$ $ $DISABLE (CAPABILITIES) @
ディレクトリ一覧をAWKスクリプトで加工して、ファイルタイプのランキングを取得します。
TOPS-20のパイプやSORTコマンドがよくわからないので、bashを使用して処理します。こんなとき、UNIX Toolsが動くと便利だと思います。
@sh bash$ awk -f filetyp.awk dir.txt | /usr/bin/sort -nr >rank.txt bash$ exit exit @@ @
AWKスクリプトは、次のような処理です。
@TYPE FILETYP.AWK BEGIN { bFile=0 } $1 ~ /^([A-Z][A-Z0-9]*):<([A-Z0-9\-\.]+)>$/ { bFile=1; next; } NF==0 { bFile=0; next; } bFile==1 { num = split($0 ,aryItem ,".") if(num==3) { typ = aryItem[2] count[typ]++ } } END { for (typ in count) { printf("%5d %s\n",count[typ],typ) } }
ランキングの処理結果で 使用数 USEが20件以上のファイルタイプを示します。
また、「TOPS-20 User’s Guide」のファイルタイプ説明を付けました。不明の場合は、???としています。
USE | typ | 説明 |
---|---|---|
962 | REL | Relocatable binary file |
793 | MAC | Source file in MACRO language |
588 | EXE | Executable program |
421 | ??? | |
415 | BLI | Source file in BLISS−10 language |
322 | C | Source file in C language |
205 | PIC | ??? |
204 | HLP | Help text files |
202 | CTL | Batch control file |
195 | EMACS | ??? EMACS |
191 | :EJ | ??? |
167 | EL | ??? |
165 | B36 | Source file in the BLISS−36 language |
155 | COM | ??? |
148 | CMD | Command file |
145 | ELC | ??? |
143 | DIRECTORY | ??? |
140 | DOC | 最新バージョンのソフトウェアの変更一覧 |
113 | C-ORIG | ??? |
106 | H | ? Header |
93 | FASL | ??? |
91 | LSP | Source file in LISP language |
77 | TXT | Text file |
74 | CLISP | ??? CLISP |
72 | UNV | ??? |
72 | MEM | DSR書式付きテキストファイル |
71 | MID | Source file in MIDAS (MIT Assembler) language |
68 | TTY | ??? |
64 | REQ | LIBARY source file for the BLISS−36 language |
64 | R36 | LIBARY source file for the BLISS−36 language |
53 | ERR | Error message file |
51 | LAP | Output from the LISP compiler |
39 | FOR | Source file in FORTRAN language |
33 | FAI | Source file in FAIL language |
33 | CCL | Command file for LINK |
31 | SUP | ??? |
30 | OBJ | PDP−11 relocatable binary file |
27 | MAK | ??? |
26 | LOGO | ??? |
26 | LOG | Batch, PTYCON or LINK log file |
26 | H-ORIG | ??? |
TOPS-20 ファイルタイプ説明
「TOPS−20 User’s Guide」APPENDIX Bの Standard File Types を示します。
その中でも、ソースファイルのファイルタイプを示します。TOPS-20では、多くの言語処理系が動いていたらしいです。
Type | Meaning |
---|---|
68C | COBOL−68 language |
74C | COBOL−74 language |
AID | AID language |
ALG | ALGOL language |
B10 | BLISS−10 language |
B20 | BASIC−PLUS−2/20 language |
B36 | BLISS−36 language |
BAS | BASIC language |
BCP | BCPL language |
BLI | BLISS−10 language |
C68 | COBOL−68 language |
C74 | COBOL−74 language |
CBL | COBOL−68 or COBOL−74 language |
COB | COBOL Source File |
FAI | FAIL language |
FCL | FOCAL language |
FOR | FORTRAN language |
FTP | FORTRAN test programs |
LSP | LISP language |
MAC | MACRO language |
MID | MIDAS (MIT Assembler) language |
P11 | MACX11 language |
PAL | PAL 10 (PDP−8 assembler) |
PAS | the PASCAL language |
PL1 | PL1 language |
PPL | PPL language |
SAI | SAIL language |
SIM | SIMULA language |
SMP | SIMPLE language |
SNO | SNOBOL language |
TOPS-20に関するブログ
歴史的に貴重なDEC社 TOPS-20を使うためにKLH10エミュレーターをLinuxにインストールして、TOPS-20を実行することができました。
TOPS-20に関するブログを以下に示します。
ピンバック: DEC社 TOPS-20を使う方法 FORTHシステム使用編 | ある計算機屋さんの手帳
ピンバック: DEC社 TOPS-20を使う方法 KermitTeraTerm でファイル転送 | ある計算機屋さんの手帳
ピンバック: DEC社 TOPS-20を使う方法 SNOBOL言語使用編 | ある計算機屋さんの手帳
ピンバック: DEC社 TOPS-20のSNOBOL言語で8080アセンブラを作成(設計編) | ある計算機屋さんの手帳