我把30年前在学校写的代码在Macbook上复活了

作者 阿土的时光仓库 发布于 2026/2/16

#赛博考古 #怀旧 #DOSBOX #TurboC #UCDOS #VibeCoding #RetroTimes #旧时光

引子

这是一个稍微闲暇的下午,我在翻找nas中保存的文件时,突然发现一个名字有点中二的文件夹:”MYSELF”。

点进去瞧了瞧,居然是我大学时的课程设计(好吧,不是中二,是大二)。文件日期集中在上世纪94-95年。包括所有的pascal/c/数据结构/操作系统等课程的作业代码。(附个人背景:本人码农,至今coding为生,上世纪96年毕业于某二线城市计算机应用专业)

忍不住点开一个代码,扑面而来的是青涩到完全没有任何雕琢的代码风。不管是变量名还是文件名都很难推断出它们的用处。

我记得我是到工作以后看到一个高手写的代码惊为天人,才知道什么是能看的代码,在那之前压根就没概念,只有一个朴素的信仰:**能跑就行。**不知道有没有TX有过和我一样的执念:代码里多加几个换行都觉得浪费空间,甚至喜欢把多行短的代码挤在一行。

除了源代码,附近还发现了一些当时的开发工具:turbo c 2/turbo pascal/borland c++ 3.1/foxpro,有点扎心的是:没保存EXE可执行文件。

毕业已经30年,对那时的记忆处于“有点印象,但也有点抽象”的状态。这些东西运行起来是什么样子呢?这个念头一冒出来就有点压制不住,越是觉得记忆不确切,就越是想立刻弄个究竟。咱虽然天天写代码,现在已经都进化到了vibecoding,来回顾下30年前的纯手工码字,也算是不忘初心。

说干就干,开整

想法来了,说干就干。但是要在这台2025年买的macbookair上跑1995年的dos程序并不是双击一下鼠标这么轻松的事。(普及扫盲:DOS是windows以前的没有图形界面的操作系统)

好在现在我有:“凡事不决问AI”:
“ai,ai,现在最牛x的可以在mac下跑dos程序的方法是什么?”

AI甩给我一个名字:dosbox-x

DOSBox 我以前在 Windows 下折腾过,主要为了玩一些只能在 DOS下跑的老游戏,DOSBox-X 是一个增强的版本,mac也能用。

(此处省略安装配置dosbox一千字...)

依稀还记得程序当时应该是用turbo c2.0编译的,学校里每台pc必装工具。已经忘了对这个远古ide使用的细节,在多次让AI唤起记忆后,终于可以build源代码了。

(此处省略turbo c打包折腾两千字...)

代码里那种乱码,懂的秒懂:那是dos下的中文,因为基本的dos是没法显示中文的,需要一个额外的汉字系统。(好的我知道dosbox-x配置一下也支持显示汉字,但是那不够原汁原味)

原味应该这样:

然后终于可以看到本人大学时期的大作了。

看着这些颇显幼稚的ui(界面),当时的思路也开始一点点load回来:

在dos环境没有像windows那样标准的图形界面,当时也没有github这样的可以拿来即用的仓库(我买电脑时都不能上网,几年以后才买了36K Hayes 的modem,那是后来的故事了)。

我看到有些软件(如turbo c, norton doctor)的窗口化界面好看,加上手边也积累了一些从报纸杂志上看到的奇技淫巧,于是我就用turboc提供的屏幕上画文字的原始api、甚至是底层中断,硬搓了一个DOS下的窗口化的ui api。我用这套api把老师布置的课程设计都升级成了窗口化的更好看的界面。这在学校里也算是个小小的壮举哈哈。(此处等待掌声)

继续折腾 1

看着屏幕前阔别已久的画面,回味着那些峥嵘岁月,有一种回到过去的新奇感,甚至有点爽。

然后一个更人性化的需求就冒出来了:“有没有一种可能,能够不需要这么折腾,只要鼠标一点,就能在任意时刻、任意设备上打开,打开这个通向30年前的时间通道”。

好吧,真实需求其实是:这样就可以分享给大学同学和他们一起忆同窗生活。(此处应脑补“恰同学少年,书生意气,挥斥方遒”的画面)。

继续挖掘底层核心需求,其实就一个字: ”装bility“:如何方便的秀给别人看,当然顺便还可以为其他喜欢赛博考古的小伙伴们铺个路。

说干就干。开整。凡事不决问AI:
“ai,ai,现在最牛b的可在浏览器中跑的dos模拟器方案是什么,最好也支持windows?”

AI略微沉思,推给了我一个世界最大同性交友网站(github)的链接。项目名叫emulatorjs。

它不仅能在浏览器中跑dosbox,还支持一堆其他游戏模拟器:如红白机,街机。

好吧,作为一个developer,我毫不犹疑的给AI继续打下了这行字:“那就用它帮我生成一个这样的网页吧”

(此处省略和ai一起vibecoding生成网页过程一万字...)

当那些dos程序在浏览器中跑起来以后,我又发现了一个神器。emulatorjs居然还支持定制的渲染器,通过内置的一些怀旧渲染器,可以重现当年大头显示器那种球面屏、点阵感字体、轻微的 CRT 扫描线……

突然有点老泪纵横的感觉,如同品惯了细糠的我,又尝到了窝窝头的味道。

似乎眼前就是那台我人生的第一台电脑,它购于1994年,时至今日我清楚地记得它的详细配置:

  • CPU:AMD 386DX40
  • 内存:4MB(对,是MB,不是 GB)
  • 硬盘:昆腾 210MB
  • 显卡:Trident 8900
  • 大头彩显(似乎是杂牌,牌子忘了)
  • 立式机箱(当年觉得立式更牛X),前面板有个绿色液晶数字显示主频“40”
  • 还带大小两个软驱

我爸用6900把它搬回的家,我妈用她的缝纫机给缝了个红色丝绒防尘罩。每次用完都得虔诚地盖上。像极了中学微机房里那种“怕电脑着凉”的仪式感。

我那时几乎是班里第一个买电脑的,有一些同学觉得在学校“上机”时间不够,也到我家来补一点。还有一次一大堆同学到我家轮着玩“大富翁”。

继续折腾2

好吧,让我来继续向AI许愿:
“ai,ai,我想找到更多的使用95年代的电脑来运行的感觉,帮我生成一个这样的电脑桌面网页吧”。

嗯,有点感觉了,只可惜不是立式机箱,还觉得少了点什么。再来:

“AI,AI,请让这个网页支持开机、关机,还可以更换软盘/光盘,这样我收藏的光碟也可以立马派上用场了。再多个小小需求:我记得当年机箱前面板有一盏代表硬盘读写的灯,通过这盏灯忽闪忽闪,听着硬盘特有的tata声,我就能知道,它还在跑,还没有死机...我想在这台机器上也可以看到”,

AI没有嫌我要得太多...

以上网页我放到了我的怀旧小站里,欢迎各位有兴趣的TX体验。链接

这里的功能实际基本相当于一台真实的机器,可以使用放入的软盘光盘,也可以用它们启动。各位有兴趣的tx可以把自己收藏的老iso/img塞进去试试,它的原理是跑在浏览器内的模拟器,使用的是你的本机资源(而非云端),并不会上传服务器(不用担心秘密文件泄露),而且速度飞快。局限性也有:在运行复杂的大型的程序,稳定性可能有所欠缺。我试了windows95 就会出现蓝屏的情况。嫌画面太小,可以点“游玩模式”进入全屏显示。

这里还放了一些我自己最喜欢的dos、红白机、街机的游戏,我打算逐步把我以前玩过的游戏都加进去,分享给和我有怀旧的小伙伴一起把玩。比如:

结尾

折腾到这里,似乎离我最初为了看大学时代大作的需求已经跑得有点远了...

这一圈的体验,像是一点一点打开了一条通往30年前的时光隧道。通过这些代码,这些“数字老物件”,我似乎可以看到那个整晚沉浸电脑写程序,打游戏的骚年,看到他的兴趣,他的忙碌。

我甚至想和他叨叨几句:喜欢就多打打游戏,其实不用那么拼,没gf也不用太焦虑,或者干脆告诉他:早点买房买比特币,或者至少备份的时候记得备份exe文件。

以上为70后老登首次发帖,拜托大家多多支持鼓励,你的点赞和关注是我持续怀旧创作的最大动力。点赞如果过1千,我会把折腾的详细过程踩过的坑整理出来。标题我都想好了《30分钟精通macos折腾模拟dos/ucdos/turboc》《DOS程序复活的各方案详细对比》甚至还可以为伸手党整理成开源工程,直接上手把玩

暂无音乐--:--