Re: [問卦] 如何在Linux底下自幹win3.1系統?

作者: ChampYen (網路黑貓)   2021-09-07 01:12:50
有點晚幾天看到這篇了, 最近在 Linux 上玩 Windows 3.1 懷舊玩得很兇
甚至把網路上一些 Win 3.1 中文軟體都從網拍上標來
準備一一整理放上 archive.org
那麼小弟就接著 jserv 的話題繼續
除了透過 DOSBOX 執行 Windows 3.1 跑軟體外
可以談談兩件事
1. 在 Linux 下開發 Windows 3.1 軟體
這主要可以透過兩種語言達到
* Free Fortran - https://www.freepascal.org/
在官網上面就明確寫著 16bit Windows
而且這功能是到了 2017 年才加入的
* OpenWatcom C/C++ compiler - https://github.com/open-watcom
Watcom C/C++ compiler 是上個世紀的神物, 許多著名軟體與遊戲(像是 DOOM, Duke3D)
都是用這 compiler 所開發, 也有許多平台的支援, 然而 2003 公司無以無繼, 但是後
續就開源了, 目前依然持續的有人貢獻與改進, 因此 Open-Watcom C/C++ 能夠在Linux
下編譯產生 Windows 3.1 的程式 .
網路上找了兩篇使用的 blog
- https://ptspts.blogspot.com/2020/04/openwatcom-exeprog.html
- http://blog.ssokolow.com/archives/2017/10/19/
useful-info-on-win16-targeting-compilers-and-a-list-of-resources/
2. Windows 3.1 執行 32 位元程式
事實上 Windows 3.1 支援一定程度的 Win32 程式的執行能力, 這必須透過 Win32s
這個相關 API 實作, Win32s 即為 Win32 subset, 最後幾個版本甚至加入了OLE支援
在 Win 3.1 末期許多軟體是這樣同時開發 Win 3.1 與 Win95 版本, 像是 Mozilla
& Firefox 的前身 Netscape.
但 DOSBox 要比較沒問題運作 Win32s 需要設定 core 為 dynamic, type 要設為
pentium_slow
這件事也算有點關聯, 因為 linux 上可以透過 mingw32 來編譯出 win32 程式
因此若使用的 API 落在 Win32s 範圍內, 應該有機會可以寫出在 Win 3.1 上可運作
的程式
https://arrayfire.com/cross-compile-to-windows-from-linux/
※ 引述《jserv (松鼠)》之銘言:
: ※ 引述《pizzafan (隔多天的約定容易忘)》之銘言:
: : 因為這個好像有個技術門檻 或專有名詞,我也不曉得怎麼解釋?
: : 所以先這樣講:…大家知道DOS吧?
: : 就是文字模式可以直接跳進去視窗模式、又可以跳出來!(就像win3.1)
: : 那麼在linux系統底下要怎麼自己搞win3.1呢?
: : 有沒有技術總結?
: : (我發現沒有一個學校老師會…是不是太高端了?)
: 我是跟鄉民進來看熱鬧的,我跳進來了,我又跳出去了,打我啊笨蛋! (取自方唐鏡
: 名言)
: 學校老師應該忙著開學事宜,我幫他們回覆你的提問。
: 原題「在 Linux 系統底下要怎麼自己搞 win3.1 呢?」的「搞」,應該是解題關鍵。
: 查閱教育部重編國語辭典修訂本 [1],得到「搞」的釋義:
: : [動]
: : 做、從事。如:「搞砸」、「搞好」、「搞社團」。
: 我解讀題意為「在 Linux 系統中執行 Microsoft Windows 3.1」,其中一個方式是
: 使用 DOSBox [2],這個歷史悠久的專案已被移植到許多軟硬體平台,其中包含網頁
: 執行環境 ——也就是支援 WebAssembly 的網頁瀏覽器,如 Google Chrome。讓我們
: 現在就來體驗吧:
: https://www.dos-box.tk/
: 用 Chrome 網頁瀏覽器開啟上述超連結,然後捲動到 "Windows 3.1",點擊 Windows
: 3.1 Program Manager 桌面的圖片,等待一段時間 (Windows 3.1 的映像檔超過 7MB
: 且初始化 DOSBox 也需要時間),然後你就會見到藍底白字的 Windows Setup 畫面:
: : Welcome to Setup
: 過程中按下 Enter,等待安裝程式複製檔案,中間會被要求輸入姓名,不要安裝印表
: 機裝置驅動程式 (預設選項),再來就是先按下回到 DOS 的選項,並在 DOS 命令提示
: 中輸入 win 以進入 Microsoft Windows 3.1,就可把玩在網頁瀏覽器中順暢執行的
: Windows 3.1 ——在 Linux 的環境中。
: [1] http://dict.revised.moe.edu.tw/cbdic/search.htm
: [2] https://www.dosbox.com/

Links booklink

Contact Us: admin [ a t ] ucptt.com