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