#11 Article 3299 Posted at 1989/07/18 12:50:49 by 秋葉台 (MAP1154) [C]

Subject: CでMS-DOS用プログラムを作成される方へ

C言語によりアプリケーションを作成する場合、コンパイラによってはある特定の

機種でしか動作しないようなオブジェクトを生成するコンパイラがあります。そのい

い例が、98用のTurbo C 2.0です。あれを使用してできたオブジェクト

プログラムは、ほぼまちがいなく他の機種では(典型例はB16)動作しません。な

ぜなら、Turbo Cでは、コンソールの入出力ですら98BIOSに依存してい

るからです。(聞いた話)ですから当然、他のMS-DOSマシンでは“暴走”とい

う事態に陥る訳です。(経験者は語る)

 という訳なので、Cを使う方、気を付けてください。ちなみに、機種を限定しない

(MS-DOSマシンならば)MS-Cならまず大丈夫でしょう。だだコンパイルは

遅いしオブジェクトはデカイし...というリスクは負わねばなりませんが。

 で、かくいうわたしはどうしてるかというと、Turbo Cを使っています。じ

ゃあ98(EPSON互換機を含む)でしか動作しないではないかと思われる所です

が、Turbo Cの中にもB16(≒MS-DOSマシン全般)で動作するものが

あって、幸いなことに会社にそれが使える環境があります。このTurbo Cは、

IBM-PC用とのことで、当時の代理店だったサザンパシフィックに依頼してB1

6で動作するようパッチを施したものだそうです。ちなみに、バージョンは1.5で

すが。で、これだと98でも動作するのでOKです。わたし個人は98用の2.0版

を持ってますが、B16やMS-DOS用のアプリケーションの場合、2.0で開発

し、さきほどのバージョン1.5のものでリコンパイルしています。(ソースレベル

で互換があるので)で、パッチの件ですが、代理店がMSA=マイクロソフトウエア

アソシエイツになってからやってくれなくなったそうで、残念に思います。たぶんI

BM-PC用ならどうにかなると思うのですが。

 それにしても...あれだけ小回りのきくTCのオブジェクトが98でしか動作し

ないとは...(2.0 98用の話)買って損したかなあ...


     かなりおせっかいですが...        秋葉台/MAP1154