2010年06月07日

64ビットのOSでは、16ビットのプログラムが動かない

 オーツは、今でも DOS 用のソフトを使っています。しかし、そろそろ DOS 用のソフトが使えなくなりそうです。
 オーツは、普段、ちょっとプログラムを書くとき、DOS 用の Turbo PASCAL を利用しています。手軽です。実行は早いです。コマンドライン(コマンドプロンプト)で動くコンパイラがあるので、これでコンパイルすれば、Windows Xp でも(Windows 7 でも)そのまま実行できます。
 ところが、最近、Windows も64ビットのOSが使われはじめました。これを使っているある人が、オーツがプレゼントした16ビット用の(つまりは DOS 用の)プログラムが動かないと言ってきました。
 ネット内を調べてみると、次のような記事がありました。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1040301540
64ビット版Windowsでは原則として64ビットプログラムしかサポートしないために互換性が低い(16ビットプログラムが少しでも内包されていると動作しない、など)というのが大きな理由です。このため、互換性を重視して32ビット版を選択するというのが無難な選択肢になっています。


http://msdn.microsoft.com/ja-jp/windows/dd882526.aspx
3.5 x64 バージョンのサポート
Windows Vista や Windows 7 では、AMD や Intel の 64 ビットアーキテクチャプロセッサを完全にサポートしています。64 ビット版 Windows 7 では、64 ビットのネイティブコードのほか、WoW64 (Windows on Windows 64) サブシステムにより 32 ビットアプリケーションの動作環境が提供されます。
サポートされないソフトウェア
以下のソフトウェアは WoW64 上で実行することはできません。
16 ビットの実行可能プログラムやインストーラ
【中略】
これらの問題点に対する回避策はないため、以下の方法で対処します。
16 ビットの実行可能プログラムはすべて削除し、32 または 64 ビットの同等のプログラムに置き換える。


http://technet.microsoft.com/ja-jp/library/bb490269.aspx
注 このガイドでは、64 ビット バージョンの Windows XP、Windows Vista、または Microsoft Windows ServerR 2003 で実行するアプリケーションのテスト方法については説明していません。64 ビット バージョンのオペレーティング システムでは 16 ビット アプリケーションはサポートされていません。


 というわけで、64ビットの Windows では、16ビットのプログラムは実行できないようです。
 いよいよ、DOS 時代のソフトが使えなくなります。
 オーツは、自作のプログラム類がたくさんあって、今は使わなくなったものも多いのですが、それらが使えなくなるというのは、かなり大変です。
 それ以上に、Turbo PASCAL が使えなくなると「ちょっとプログラムを書く」ことができなくなります。むしろこちらのほうが大変かもしれません。32ビット環境がいつまで持つか、不透明です。
 さて、使い慣れた言語を捨てて、プログラム言語として一体何を使えばいいのでしょうか。
 昔(若いころ)だったら、これを機に、新しいプログラム言語を習得しようとしたことでしょう。こうして、オーツは FORTRAN からスタートして、COBOL, BASIC, PASCAL などを覚え、使ってきました。
 しかし、50代ともなると、新しい言語を習得するのは、厳しいものです。言語の習得にはある程度時間が必要ですが、その時間がないのです。
 いっそのこと、自分の母語である FORTRAN にしましょうか。どこかを探せば64ビット用のコードを生成する FORTRAN 処理系が売られているのではないかと思います。でも、もしかするとそういうソフトが30万円とかしたりして、ちょっと手が出しにくいなどということもあるかもしれません。自分の書いたソフトを動かすためだけに30万円をはたくなんてコストパフォーマンスが悪すぎです。
続きを読む
ラベル:Windows DOS Turbo PASCAL
posted by オーツ at 05:07| Comment(0) | TrackBack(0) | パソコンとIT | このブログの読者になる | 更新情報をチェックする