Image: IBM BASICコンパイラー (BASCOM) の実行ランタイム [PS/55]

IBM 5550やPS/55のBASCOM(BASICコンパイラー)で開発されたアプリケーションを実行するのに必要なファイルについて。

そもそもアプリケーションをDOS/V上で動かせるようにした方が色々楽なんじゃないかと最初は思ったのだが、これがそう簡単にはいかない。コンパイル後のオブジェクトコードはJ-DOSに依存する部分があるのか、DOS/V上で動かそうとするとすぐハングアップする。日本語DOSのBASICコンパイラー用ソースコードをDOS/VのBASICインタープリターで動かすには、行番号や文字数制限、ファイル入出力、グラフィックの仕様といった違いに対応する必要がある。これはプログラム次第では単なるソースコードの変換に留まらず、れっきとした「移植」ということになる。そこまで手間を掛けても動かしたいわけではない。

BASCOMに/Oスイッチを指定せずにコンパイルしたオブジェクトコードはリンカーによってランタイムライブラリと動的リンクされ、その実行時にパスが通る場所にランタイムライブラリのファイルが置かれている必要がある。BASICコンパイラー K2.0の場合は BRUN20K.EXE 、BASICコンパイラー/2の場合は BRUN30KC.EXE (日本語DOSの場合)が必要。パスが通る場所にこれが見つからないとInput runtime module path:という入力を求めるプロンプトが表示される。

/Oスイッチを指定してコンパイルしたオブジェクトコードはリンカーによってランタイムライブラリと静的リンクされ、単体で実行可能になるので配布しやすい。その代償に、EXEファイルサイズは最小でも数十キロバイトになる。しかし、これも上記の通りJ-DOSでしか動作しないので、PS/55がほとんど使われていない今どきにBASCOMでアプリケーションを生成するというケースがまずない。

コンパイラーのスイッチについては次の記事で既に説明している。

BASICコンパイラー (BASCOM) で使用できるスイッチ [PS/55]

BASICコンパイラー/2の場合、リンカー (LINK) 使用時に必要なファイルは次の通り。

  • BCOM30KC.LIB - 日本語DOS 静的リンク用 ランタイムライブラリ
  • BRUN30KC.LIB - 日本語DOS 動的リンク用 ランタイムライブラリ
  • BCOM30KP.LIB - OS/2 静的リンク用 ランタイムライブラリ
  • BRUN30KP.LIB - OS/2 動的リンク用 ランタイムライブラリ

動的リンクで生成したEXEファイルの実行時に必要なファイルは次の通り。

  • BRUN30KC.EXE - 日本語DOS用 実行ランタイムモジュール
  • BRUN30KP.DLL - OS/2用 実行ランタイムモジュール
  • BRUN30KP.SYS - OS/2用 グラフィックサポートモジュール

日本語DOSのみで実行する時はOS/2用のファイルは不要。

当時はIBM WTCから個別に書面で許諾を得ない限り、コンパイラーのユーザーがランタイムモジュールのファイルを第三者へ勝手に配布することはできなかった。Microsoftの場合も同様。ユーザープログラムを/Oスイッチでランタイムライブラリと静的リンクすれば、これによって生成された実行ファイルの配布は許諾が不要だった。Microsoftの開発言語製品では1988年頃にこの規約が変更されてランタイムの配布が自由になったが、IBMでも同様の措置が執られたかどうかは不明。

Title: マイクロソフト社のライブラリ使用の許可おりる
Date :  5:52pm 11/17/88  From: pcs00500 (syohei)
From syohei Thu Nov 17 17:12:00 1988
To: salon.pds

         先日ポストしたマイクロソフト社のライブラリ使用の特例について、
        修正を依頼する文書が届きました。
         これは、syohei, K.Nahori の憶測にすぎませんが、よく考えてみると、
        著作権の表示を完全に免除してしまった場合、日本国内ではさほど問題
        はないでしょうが、もし、そのソフトウェアが、外国、特にアメリカの
        ように (C) 表示のない著作物は、完全に著作権を放棄したものとみなさ
        れるような国に逆転送された場合、ちょっとたいへんなことになってし
        まう危険があります。
         ですから、今回の同社の修正は、つい先日の前言をひるがえすような
        形になってしまっていますが、やむをえないものとして、受け入れたい
        と、われわれからもお願いしたいと思います。
         例によって、このアーティクル、各地のBBS に配布していただけると
        嬉しいです。

                                                                  syohei
                                                                K.Nahori

        ================================================================

        ユーザー各位様

                                                 東京都千代田区三番町6-2
                                                  マイクロソフト株式会社
                                                  代表取締役社長 古川 享

                                  お詫びと訂正

         Microsoft C Optimizing CompilerおよびMicrosoft QuickC Compiler
        のライブラリを,パブリックドメインソフトウェアで利用される場合の
        特例として,去る11月11日アスキーネットPCS の PDSサロン上で,当社
        担当者より「著作権表示を必要としない」旨のお知らせを致しましたが,
        これは「ランタイムライブラリの使用許諾契約の手続きを廃止する」の
        誤りでした.
         お客様の手続きを簡素化させていただくために,これまで御面倒をお
        かけしておりました使用許諾契約の手続きは,廃止させていただきます
        が,著作権の表示につきましては,勝手ながら,これまで通りお願いし
        たいと存じます.この手続き方法の変更につきましては,QuickC 1.1 の
        12月出荷分の「ソフトウェア使用許諾書」に明記させていただきますが,
        今回のパブリックドメインソフトウェア,及び,すでに QuickC 1.1 を
        お使いのユーザー様にも,同一の対応をとらせていただきます.また,
        今後,弊社より発売される全言語製品にも,同一の対応をとらせていた
        だきます.
         ランタイムライブラリの著作権表示のお願いについても,より簡素化
        する方向で検討を重ねておりますので,弊社製品の,より一層のご愛顧
        をよろしくお願い申し上げます.
         重ねて,混乱を生じさせたことを,深くお詫びし,今後このような事
        がないよう努力させていただきます.

※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!