[過去ログ] 今夜も Wine で乾杯! - 23本目 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
673
(3): 2022/04/17(日)08:51 ID:iZt/TDlj(1) AAS
>>671-672
WineはWindowsと違ってx86_64上でも16bitアプリに対応しているよ
ただしDOSBoxをインストールする必要あり

このSameGameで64bit Windows 10で動かないけどWine 7.0で動くことを確認済み
外部リンク[html]:www.vector.co.jp

16bitアプリはNT系Windowsではntvdmを利用していて、nvvdmはx86_64のlongモード非対応の
仮想8086モードを使用するので32bit Windowsでしか動作しないけど、Linuxの32bit Wineのwinevdmは
DOSBoxの8086、80286エミュレーション機能を自動的に利用するので16bitアプリも動作する

ちなみにWindowsに32bitアプリとしてWineとwinevdmを移植したものがあって
これを使うと64bit Windowsでも16bitアプリが動かせるはず
省1
674
(1): 2022/04/18(月)15:29 ID:FL8qeWrS(1/2) AAS
>>673
そのwinevdmをビルドしてみて?
676
(1): 2022/04/19(火)00:09 ID:6BsM3YVq(1/2) AAS
>>673
16ビットと言っても
?DOS用で、リアルモードまたは仮想8086モード向けのコード
?Win3.x用で、16ビットプロテクトモードまたは16ビット互換モード向けのコード
の2種類あって、

i)32bitWindowsの場合、?は仮想8086モードに移行して直接動作(ntvdm)、?は16ビットプロテクトモードに移行して直接動作(wowexec)

ii)32bitlinux上のwineの場合、?は仮想8086モードに移行して直接動作(vm86システムコール利用)、?は16ビットプロテクトモードに移行して直接動作(modify_ldtシステムコール利用)

iii)64bitlinux上のwineの場合、?はDOSBoxのエミュレーション(longモードでは仮想8086モード非対応のため)、?は16ビット互換モードに移行して直接動作(32bitwineからmodify_ldtシステムコール利用)

iv)64bitWindowsの場合、?は非対応(longモードでは仮想8086モード非対応のため)、?も非対応(MSのやる気がないため)
省1
677: 2022/04/19(火)00:19 ID:6BsM3YVq(2/2) AAS
>>671-673
結局、Windows3.1向けの16ビットアプリケーションは64bit環境でも動作するが、
1) 32bitのWineをインストールしなければならない(32bitのWindowsアプリが動けばOK)
2) DOSBoxは不要(エミュレーションなしで動く)
3) modify_ldtシステムコールが禁止されていたりすると動かない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s