No.2ベストアンサー
- 回答日時:
Q1:PC98xxと所謂DOS/Vは別物です。
PC98xxのソフトは本来PC98xx上で使うためのものです。(MS-DOSだけでなく)WindowsもPC98xx用という専用版がありましたが、それもWindows 2000迄です。
DOS/V機上で動くWindowsではMS-DOS互換といってもそれはDOS/V版MS-DOSであって、
PC98xx版MS-DOSとは違います。PC98xx互換で動くには、PC98xx版Windowsが必要ですが、XPはPC98xxに対応してません。
つまり、この方向性では無理ということです。
エミュレータは世にありますし、それを使う手があると思いますが、
動作するかどうかは使いたいソフトウェア次第です。
(当時のソフトの移植性は、個別に考えるしかありません)
Q2:ソースがあるなら、Visual Studio 2008等が無料で入手できますので、
ISO/IEC14882の範囲で可搬的に書いてあれば
Win32 Console applicationとして移植するのが早いかも知れません。
(当時はやむをえないものも含め)可搬性が低いのは、例えばこういうのです。
・ポインタサイズに直接依存している
・ハードウェアに依存してる(例えばVRAMでグラフィックを描いている。マウスを制御している等)
・MS-DOSのシステムコール(int 21等)を直接利用している
・表示にエスケープシーケンスを利用してる(conio.h等)
・インラインアセンブリで特権命令を用いている
・…
# MS-DOSとあるのでWindows APIは(Win16も含め)利用してないはず。
こんにちは。
御回答、ありがとうございまいた。
「Win32 Console application」等、色々用語があって、さらに調査する手がかりになりました。
また質問すると思いますので、その時はよろしくお願いいたします。
No.4
- 回答日時:
動けばもうけもの
ぐらいに考えてください。
まず、PC-98がいわゆるIBM-PCとは異なる独自規格です。
この段階で既に怪しいです。
また、MS-DOSも引っ掛かります。
MS-DOSの時代はアプリケーションが自由に周辺機器を制御できていました。
Windows95系ではそれをエミュレーションしていましたが、
NT系(2000/XP/Vista)
ではエミュレーションを止めてしまいました。
専用の"ドライバ"が必要になりました。
ま、それだけでしたら
周辺機器を制御している部分を探して
ドライバを作り
ドライバ経由でアクセスするよう
移植すればよいのです。
(といっても、結構大変ですが)
たちの悪いのは
MS-DOSがシングル・タスクであることを利用してしまった
プログラムです。
特に、ゲームや機器制御に多いのですが
例えば
for (i = 0; i < 65535;++i)
;
などとやって、消費クロック数を計測し
タイミング制御に利用したりするプログラムを
MS-DOSでは当たり前に見かけます。
アプリがCPUを独占できた時代の技です。
MS-DOSの時代はこの手で
例えば
10msec毎に信号をON/OFFする
などということを実装していました。
Windowsでは話はそう単純ではありません。
10msecの間"眠る"には
Sleep(10)
でできそうですが
正確には
10msec以上眠るの意味で
目を覚ますのは
10ms後かもしれないし、11ms後かも知れない。
極端な話
”100ms眠り続けても文句はいうな”
という仕様です。
Win32APIの段階で"正確に"10msを待つ方法はありません。
どうしても正確性が必要なら
外部クロックの割り込みに頼るしかありません。
このようなコードがあったら
如何にソースがC++で書かれていてもお手上げです。
移植は大変なものになるでしょう。
結局安心できるのは
Cの標準関数やSTLなどANSI規格の範囲で
書かれたものだけです。
これなら
16ビット ==> 32ビットへの対応をするだけです。
int a[10]
の大きさを正しく
sizeof (a)
で計算していれば安心ですが
手抜きで
20バイト決め打ちだったりしていると
問題を引き起こす可能性があります
ex
int a[10]
memset(a, 0, 20)
XPでは後半が0で埋まっていない
DOSでは問題ない
memset(a, 0, sizeof (a))
DOSでもXPでも配列全体が0で埋まる
こういうのがないかチェックする必要があります。
こんにちは。
御回答、ありがとうございまいた。
具体的な内容で、今からソースを見ていくのですが、大変参考になります。
また質問すると思いますので、その時はよろしくお願いいたします。
No.1
- 回答日時:
PC98のMS-DOSという事は16bitのAPであると推測します。
WindowsXPは32bitであり完全互換はありません。Windows95等の16bitのOSの場合は多少の互換があり、互換モードも備えていました。
WindowsXP上で動作させる場合は16bitのアプリケーションを動作させるエミュレーションプログラムが必要になります。申し訳ありませんがその様な物が現時点で存在するかは分かりません。(詳しい方がいればお願いします。)
移植についてですが、WindowsAPIを利用しているのであれば少なくともその部分は書き換えが必要です。
こんにちは。
御回答、ありがとうございまいた。
エミュレータで「T98-Next」というのを見つけ、現行のソフトをこれで動作させようと思っています。
また質問すると思いますので、その時はよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 7 Windows7でMicrosoft VirtualPC2007 SP1を使用する 9 2022/11/17 13:12
- Windows 10 VirtualBox からWindows XP を起動すると画面が真っ暗になってしまいました 4 2023/07/09 16:19
- モニター・ディスプレイ 画像解像度について 4 2022/05/30 16:05
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(OS) MS-DOSでなければ動かないPCゲームをXPで動かす方法を教えてください。 3 2022/08/06 18:46
- Windows 10 Windows10搭載の画面録画 容量を小さくする方法ありますか? 3 2022/06/21 09:45
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- その他(OS) Calender.exeWin10 ノートPC デスクトップが開く前に特定のソフト画面が開く 2 2022/11/11 13:49
- BTOパソコン SSDが認識しないので色々触ってるうちにWindowsが起動しなくなりエラーコード0xc000022 4 2023/05/24 16:15
- Windows 10 VirtualBox 6.1.36 インストール時にエラーが表示されます 2 2023/07/09 11:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
USBからの電源供給をコントロー...
-
MS-DOS のソフトをWindows XPで...
-
コンピューターでラジコン操作?
-
マイコンとADコンバータとのイ...
-
ゲーミングPCでの質問です ゲー...
-
ディスプレイ上で起こる2重表...
-
ブラウン管テレビを買うか対応...
-
HyperVで仮想マシンがネットワ...
-
HDMIとHDの違いはなんですか? ...
-
【EX2510S】HDMIとDisplayPort...
-
TAとルーターの違いって?
-
テレビから”キーン”と耳鳴りの...
-
目を左右別々に動かす
-
RS232C 通信でエラー(受信が正...
-
富士通デスクトップパソコンに...
-
別セグメントのsambaへのアクセス
-
モニター【L2262wA】の音声出力...
-
LC-42DS5にパソコンの映像を写...
-
プリント基板のパターンの修復方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
USBからの電源供給をコントロー...
-
シーケンスのプログラムについ...
-
Picマイコンについて質問します...
-
マイコンボード上のポートと端...
-
arduinoで複数のサーボを動かし...
-
EnumとType
-
PCのUSBバスパワーの制御
-
C++でLEDを点灯させるプログラム
-
AVRマイコンの未使用ピンの処理...
-
PIC16F1827でPCとシリアル接続
-
VTRとマイコン
-
<単安定マルチバイブレータ> 単...
-
C言語についてですarduinoでこ...
-
コンピューターでラジコン操作?
-
フィードバック制御とフィード...
-
ATTINY13のリセット端子は無効...
-
三菱シーケンサのプログラムの...
-
Visual BasicでGP-IBの通信を制...
-
液晶ディスプレィのバックライ...
おすすめ情報