私的ボーランドメモ (2000-06-01)

注意 : 内容に関してはいっさい保証いたしません。

えーと、最初は DOS 備忘日記中でやっつけとこうかと思いましたが、なんとなく独立コンテンツにしてみたり。 見ての通り、内容はかなりユルめです。 役たたなくてすいません。

なお、突発的な企画ですので、いきなり消滅する可能性もあります。 あしからず。

も く じ


とりあえず Turbo C と Turbo Pascal を手に入れる

ボーランド(てゆうかインプライズ)のサイトに行くとそれらしいのが存在するので、好きなのをダウンロードする。

http://community.borland.com/museum/

昔はその場でダウンロードできたが、現在は登録が必要なもよう。 登録そのものは無料だが、住所、氏名、メールアドレスその他を(もちろん英語で)入力し、さらにアンケートにも答える必用がある。 (面倒な人はこのへんとかこのへんとかこのへん見てみるといいかも)

「なんかいろいろあって迷っちゃう〜」などという人は、とりあえず Turbo C++ 1.01 を落とせばいいと思う。 ちょっとでも新しいやつのほうが、たぶん何かと便利だ。 C++ の機能がいらないなら Turbo C 2.0 でもかまわない気がする。 Pascal に何かしらの思い入れがある人は Turbo Pascal 5.5 も落としてみよう(Turbo Pascal 3.0 も捨て難いのだが)。 ちなみにどちらも DOS 用。 というか PC/AT 用。 NEC PC-9801 系や FM-R/TOWNS 系での動作は不明。 少なくとも統合環境は動作しないはず。

最近は Borland C++ 5.5 も無料化したらしい。 こちらはコマンドラインツール部分のみの公開。 Windows 上のみで動作する。 作成できるのも Win32 アプリのみ。

作成 : 1999-08-10
修正 : 2000-06-01

Turbo C 2.01 をインストールしてみる

tc201.zip 中に含まれるすべてのファイルをどこか適当なディレクトリに展開して、install.exe を実行し、指示に従う。 必ず英語モードで実行すること。 日本語モードのままだと画面に何も表示されないので、そんな時はいさぎよく Esc キーを押してインストーラからいったん抜ける。

インストールが滞りなく終了したら、手動で autoexec.bat を編集し、インストーラの指示どおりに PATH を設定する。

作成 : 1999-08-10

Turbo C++ 1.01 をインストールしてみる

基本的には Turbo C 2.01 の場合と同じ。

tcpp101.zip 中に含まれるすべてのファイルをどこか適当なディレクトリに展開して(そのまま展開すると複数ディレクトリに分配されてしまい、インストールが失敗するので、ディレクトリをつけないで展開する)、install.exe を実行し、指示に従う。 必ず英語モードで実行すること。 日本語モードのままだと画面に何も表示されないので、そんな時はいさぎよく Esc キーを押してインストーラからいったん抜ける。

インストールが滞りなく終了したら、手動で autoexec.bat を編集し、インストーラの指示どおりに PATH を設定する。

作成 : 2000-06-01

Turbo C++ 1.01 を手動でインストールしてみる

付属のインストーラを使わず、自分で zip ファイルを展開して、しかるべき場所にファイルを置いていくという方法でのインストールも、もちろん技術的には可能である。 ただ面倒くさいだけじゃんとかいわれるとすこし困るが、PC-9801/21、FM-R/TOWNS 上でどうにかしたい人もいるかもしれないので、いちおう書いてみる。 (念のため申し上げておきますが、これらの機種上で動作するか否か、私はまったく確認していない

手順は以下のようになる。

  1. サブディレクトリの作成

    たとえば、インストール先のディレクトリが C:\TC の場合、その下にいろいろディレクトリ(たとえば C:\TC\BIN とか C:\TC\INCLUDE とか…)を作ることになる。 実際のところ、ちゃんと使えるようになっていればいいわけで、極端な話、すべてのファイルを同じディレクトリに突っ込んだって動かないことはないのだが、ここでは Turbo C++ のインストーラの基本設定と同じディレクトリ構成にしてみる。 バッチファイル的にディレクトリ構成を示すと、こんな感じになる。
    md BGI
    md BIN
    md CLASSLIB
    md CLASSLIB\EXAMPLES
    md CLASSLIB\INCLUDE
    md CLASSLIB\LIB
    md CLASSLIB\SOURCE
    md EXAMPLES
    md EXAMPLES\STARTUP
    md EXAMPLES\TCALC
    md INCLUDE
    md INCLUDE\SYS
    md LIB
    md TOUR
    この中でどうしても必用だと思われるのは
    md BIN
    md INCLUDE
    md INCLUDE\SYS
    md LIB
    の4つだろう。 ぜんぶ説明するとあまりにも煩雑なので、この4ヶ所に限定させてもらう。 手抜きでごめん。

  2. zip ファイルの中身を正しいサブディレクトリ中に展開


  3. TURBOC.CFG の設定

    tcc.exe と同じディレクトリ(つまり BIN ディレクトリ)に TURBOC.CFG という名前のファイルを作成し、インクルードヘッダとライブラリの位置をオプションで記述。
    たとえば C:\TC 以下のディレクトリに Turbo C++ をインストールした場合、C:\TC\INCLUDE がインクルードヘッダのディレクトリ、C:\TC\LIB がライブラリのあるディレクトリになるから、
    -IC:\TC\INCLUDE
    -LC:\TC\LIB
    こんな感じ。

必用なら PATH を BIN ディレクトリに通しておくのは、インストーラを使った場合と同じ。

統合環境版のコンパイラ (tc.exe) とヘルプファイル (tchelp.tch) は複数ファイルに分割されており、何らかの方法で結合して zip ファイルに復元してからでないと展開できない。 先頭の4バイトを取り除いて、拡張子順 (CA1, CA2...) に繋いでいけばとりあえずよさそうなので、それらしいプログラムを作ってみた。

バッチファイルなりプログラムを作成するなりして、自前のインストーラを作ってみるのもいいかもしれない。 志のある方はやってみてください。

作成 : 2000-06-01

スタートアップの機種依存

とりあえず Turbo-C 2.01 のスタートアップ部分のソース (C0.ASM) を読んでみたが、IBM PC のタイマ BIOS (INT 1Ah) を呼び出している部分があった。 ということで、Turbo-C で作ったプログラムは、(たとえ、プログラム中で DOS の標準的な機能しか使っていない場合でも)NEC PC-98x1 系や FM-R/TOWNS 系の機種で動作に問題が出る可能性がある。 (当たり前だが、日本語版ではこのあたり、ちゃんと修正されていたはず)

とりあえず該当部分(c0.asm の 302〜305 行目)をコメントアウトしてアセンブルし直したスタートアップモジュールを元ファイルと入れ替えてみたが、特に問題なさそうな気配。 この修正で明らかに影響を受けるのは clock() 関数である。 スタートアップモジュールがプログラム開始時間を保存しなくなるので戻り値が異なってくる。

たぶん Turbo Pascal 5.5 とかにもそういう機種依存があるんだろうなあ、と思いつつ、まだ調べてはいない。

作成 : 1999-08-10

それでも私はアセンブラが欲しい

Turbo-C やら Pascal やらがフリーになったのはありがたいが、他のやつは今後どうするのだろう。 Turbo BASIC だの Turbo Prolog だのといった、もう話のタネにしかならないようなブツがあったはずである。 そして個人的にちょっと残念なのは、なんといってもアセンブラがないことだ。 tasm がフリーで出回れば、遠慮会釈なく ideal モードのソースが書き放題なのになあ。 というほどに ideal モードの構文を詳しく知らないのだが。

それに、Turbo-C にはインラインアセンブラを自前で処理する能力がない。 ソース中にインラインアセンブラが含まれる場合、コンパイラはアセンブラのソースを吐き出して外部のアセンブラ(デフォルトは tasm.exe)に渡す。 これはときどき不便だ。 どうしても必要なら ArrowAsm が使えるけど-E オプションでアセンブラ名を指定)

ということで唐突だが、TASM がダメなら MASM である。 マイクロソフトとボーランド(インプライズ)との過去の確執に思いを馳せつつ、Macro Assembler を無料で合法的に入手する手段を検討する。

その1 : Windows DDK

Windows 98 DDK のビルドツール中に masm 6.11d が入っている。 Win32 コンソールアプリなので Windows の DOS 窓でだけ使える。 ただし、PharLap の TNT DOS Extender があれば生 DOS でも動くのかもしれない。

なるたけダウンロード量を減らしたい、という場合は BINS_DDK.EXE のみをダウンロードする。 Windows 上で BINS_DDK.EXE を実行するとインストール先フォルダを聞いてくるので適当に答えると、該当ディレクトリに BINS_DDK.CAB というのができているはずである。 あとは展開ツールを用意して中のファイルを展開したのち、それっぽい名前のファイルをそれっぽくリネームする。 あえて多くを語らないのである。

その2 : OS/2 DDK

OS/2 DDK の中に MASM 6.0 と MS-C 6.0 が入っていることはかなり知られている。 しかし OS/2 バイナリなので DOS では使えない。 Windows NT 3.5 とかには OS/2 1.x エミュレーション機能があるらしいので、それだと動くかもしれない。

それはそれとして、OS/2 DDK の Build Environment 中に、MASM 5.1、LIB、LINK が含まれている。 そして、これは DOS 上で動く。

OS/2 DDK は無料でダウンロード可能(登録が必要)

作成 : 1999-08-10

ヘルプにまつわるエトセトラ

ボーランドのヘルプファイルの構造は、「OPEN ARCHITECTURE HANDBOOK」の中でいちおう公開されている。

さらに、「OPEN ARCHITECTURE HANDBOOK」付属ディスクの中にヘルプコンパイラと逆コンパイラ(ソースのみ。自分でコンパイルして使う)が入っている。 (英語版でもよいなら Wotsit で入手可能。キーワード "borland" で検索されたし) ということで、Turbo-C 2.01 と Turbo Pascal 5.5 のヘルプを逆コンパイラにかけてみたが、肝心の本文がまったく出てこないのだった。 ドキュメントによると未対応らしい。 無念。

しかたないので、テキスト部分を取り出すプログラムをでっちあげてみた。

bhtxt000.zip (8,488 bytes)
あからさまにやっつけ仕事。

Turbo C++ 1.01 のヘルプ (tchelp.tch) はボーランドの逆コンパイラでテキスト変換できた。

作成 : 1999-08-17
更新 : 2000-06-01

今後の予定

言うだけで終わりの可能性甚大。

作成 : 1999-08-10

お ま け

BCC32 コマンドラインオプションヘルプ
Borland Community にある Using the Borland 5.5 Compiler and command-line tools あたりも参照)

作成 : 2000-03-05

▲LP-Project