Kermitによるファイル転送
2018年4月、歴史的に貴重なDEC社 TOPS-20を使用しています。TOPS-20にログインするとき、Windows10からTeraTermターミナルを使用しています。時々、Windows10とTOPS-20の間でファイル転送したいことがあります。
調べてみると TOPS-20には、kermitというファイル転送/管理プロトコルがあります。また、TeraTermにもkermitコマンドを実装しています。そこで、KermitとTeraTermを使用したファイル転送の方法について調べました。
Kermitとは
1990年代のパソコン通信全盛期の頃に、Kermitプロトコルについて聞いた覚えがありました。パソコンにモデムを接続して電話回線を使用したダイアルアップで電子掲示板(Bulletin Board System)にアクセスしていました。ファイルを転送するときに、XMODEMとかYMODEMという転送プロトコルを使用していました。その転送プロトコルのひとつにKermitがありました。
Kermitについて調査しました。
Kermitは、1981年にコロンビア大学で開発されました。学生がマイクロコンピューター(CP/M)のリムーバブルメディアとDECSYSTEM-20との間でファイル交換するために開発したそうです。
THE DECSYSTEM-20 AT COLUMBIA UNIVERSITY KERMITにコロンビア大学の取り組みが書いてあります。
Our first Kermit programs were written for the DEC-20 and the Superbrain. Superbrains were placed in public areas to allow students to copy their own files onto floppies, and restore them to the DEC-20 later.
・・・
Until about 1985, DEC-20 Kermit was the “benchmark” against which all other Kermits were to be verified for interoperability. Many new Kermit features were added to DEC-20 Kermit first (server mode, macros, etc).
The DEC-20 user interface became the model for most Kermit programs.【要約】
最初のKermitプログラムは、DEC-20とSuperbrain(Z80 CP/M端末)のために書かれました。Superbrainsは、学生が自分のファイルをフロッピーにコピーして後でDEC-20に復元できるように、公共エリアに置かれました。
・・・
1985年頃まで、DEC-20カーミットは、他のすべてのカーミットが相互運用性のために検証される「ベンチマーク」でした。多くの新しいKermit機能がDEC-20 Kermitに最初に追加されました(サーバーモード、マクロなど)。DEC-20のユーザーインターフェイスは、ほとんどのKermitプログラムのモデルとなりました。
The Kermit Projectについての記述も参考になります。
DEC-20 Kermit, or Kermit-20, was written at Columbia University by Bill Catchings and Frank da Cruz in MACRO-20 assembly language.
It was the first operational Kermit program and was actively developed and maintained from 1981 until 1988, and then revived in 2001 by the addition of long packets to enable faster file transfer into and out of emulated DEC-20s.
・・・
The current version is 5.1(186), dated 6 January 2006 — The 25th Anniversary Edition.【要約】
DEC-20 Kermit、またはKermit-20は、Bill CatchingsとFrank da Cruzによってコロンビア大学でMACRO-20アセンブリ言語で書かれました。これは、最初の運用Kermitプログラムであり、1981年から1988年まで積極的に開発され、維持され、2001年にエミュレートされたDEC-20へのファイル転送を高速化するための長いパケットの追加によって復活しました。
・・・
現在のバージョンは5.1(186)、2006年1月6日 – 25周年記念版です。
KermitとTeraTermによるファイル転送の概要
- 端末→ホスト : Kermit receive コマンドで、TeraTermからKermit 送信
- 端末←ホスト : Kermit send コマンドで、TeraTermからKermit 受信
- 端末→ホスト : Kermit server コマンドで、TeraTermからKermit 送信
- 端末←ホスト : Kermit server コマンドで、TeraTermからKermit 取得
TOPS-20でKermitコマンドを起動して、TeraTerm側で「ファイル(F)-転送(T)-Kermitコマンド」を選択することで簡単にファイル転送することができます。
TOPS-20でKermitコマンドを起動して「?」と入力するとKermitコマンドの一覧が表示されます。
@KERMIT TOPS-20 Kermit version 5.1(186) 6-Jan-2006 Kermit-20>? one of the following: close connect cwd define delete directory echo exit help local log push quit receive run send server set show space statistics take type Kermit-20>
バージョンを確認すると「TOPS-20 Kermit version 5.1(186) 6-Jan-2006」なので、The 25th Anniversary Editionです。
アップロード 端末→ホスト
端末からホストへアップロードするには、ホスト側(TOPS-20)のKermitでreceiveコマンドを実行します。端末側(TeraTerm)から「ファイル(F)-転送(T)-Kermit-送信(S)」を選択してファイル名を指定します。しばらくすると、アップロードが開始します。
ファイル TOPS-20.txt を転送した例です。
@KERMIT Kermit-20>receive Kermit-20> Kermit-20>directory tops* TOPS20:<PI>TOPS*.*.* Name Pages Bytes(Size) Creation Date TOPS-20.TXT.5 1 463(7) 1-Apr-2018 09:37:20 1 file Kermit-20>type tops-20.txt TOPS-20.TXT.5 Digital Equipment Corporation Tops-20 Operating System. If you've been involved with computers for a while, you may have heard of a comp any called DEC (Digital Equipment Corporation). DEC sold a family of computers b ased on the PDP-10 architecture in the 70s and 80s. These were 36-bit computers, created before the PDP-11 (16-bit) and VAX-11 (32-bit). The PDP-10 architecture is extremely orthogonal and its instruction set (assembly language) is very ric h. Kermit-20>
受信完了後に、directoryコマンドで確認するとTOPS-20.TXTファイルが作られています。typeコマンドで内容を確認します。
ダウンロード 端末←ホスト
ホストから端末にダウンロードするには、ホスト側(TOPS-20)のKermitでsendコマンドを実行します。送信ファイル名を指定します。端末側(TeraTerm)から「ファイル(F)-転送(T)-Kermit-受信(R)」を選択します。しばらくすると、ダウンロードが開始します。
ファイル DIR.TXT を転送した例です。
@kermit TOPS-20 Kermit version 5.1(186) 6-Jan-2006 Kermit-20>? one of the following: close connect cwd define delete directory echo exit help local log push quit receive run send server set show space statistics take type Kermit-20>send DIR.TXT
ホスト serverモード
Kermitのreceive/sendコマンドによるアップロード/ダウンロードでは、ホスト側(TOPS-20)の操作と端末側(TeraTerm)の操作が必要でした。
Kermitをserverモードにすると端末側だけの操作でアップロード/ダウンロードを行うことができます。
@kermit TOPS-20 Kermit version 5.1(186) 6-Jan-2006 Kermit-20>? one of the following: close connect cwd define delete directory echo exit help local log push quit receive run send server set show space statistics take type Kermit-20>server Kermit Server running on DEC-20 host. Please type your escape sequence to return to your local machine. Shut down the server by typing the BYE command to KERMIT on your local machine.
ホスト側(TOPS-20)のKermitでserverコマンドによりサーバーモードにします。
アップロードするときは、端末側(TeraTerm)から「ファイル(F)-転送(T)-Kermit-送信(S)」を選択します。DIR.TXTをアップロードします。
ダウンロードするときは、端末側(TeraTerm)から「ファイル(F)-転送(T)-Kermit-取得(G)」を選択します。
取得するファイル名(DIR.TXT)を指定します。DIR.TXTをダウンロードします。
端末側にDIR.TXTがすでに存在するので、DIR1.TXTというファイル名でダウンロードします。
端末側(TeraTerm)から「ファイル(F)-転送(T)-Kermit-終了(F)」を選択すると、サーバーモード終了します。
まとめ
KermitとTeraTermを使用して、ホスト(TOPS-20)と端末(TeraTerm)の間でファイル転送を簡単にできました。TOPS-20のユーザーディレクトリーのバックアップやWindows10でソースコード作成などに利用したいと思います。
TOPS-20に関するブログ
歴史的に貴重なDEC社 TOPS-20を使うためにKLH10エミュレーターをLinuxにインストールして、TOPS-20を実行することができました。
TOPS-20に関するブログを以下に示します。