request-free-img

成功编译并运行雷军1994年写的内存驻留程序 Raminit

霍霍,我成功编译了雷军总94年写的内存驻留程序,而且它还真运行了起来了!

发现雷军当年写的代码

趁着放假,在网上闲逛,偶尔看到一段代码说是雷军总做程序员的时候写的。

成功编译并运行雷军1994年写的内存驻留程序 Raminit
成功编译并运行雷军1994年写的内存驻留程序 Raminit

于是立即下载了一下来,
这就是雷总军当年写的程序,我们大概来看看哈。
雷军总,得罪了哈。

程序基本信息

这个程序叫Raminit, 最后修改版本是2.12,修改时间是1994年7月12日。
这里有一个版权信息,叫:黄玫瑰软件公司。

题外话:黄玫瑰软件公司的由来

成功编译并运行雷军1994年写的内存驻留程序 Raminit
成功编译并运行雷军1994年写的内存驻留程序 Raminit

这里插一个题外话哈,当年雷军在街上认识王全国,王全国正在开发BitLok,
当时他们还没有自己的公司,所以他们不能在软件上署上公司名,不过正好当时街上正在播放《神秘的黄玫瑰》。
于是之后他们就将自己写的软件署上黄玫瑰Yellow Rose Software。

下边一行写着作者雷军。
接下来这行说明了本程序的作用:它说按下热键移除所有TSR程序。

什么是TSR程序?

这里解释一下是什么是TSR程序,TSR就是:Terminate and Stay Resident,中文叫:内存驻留程序。
TSR程序是 微软的DOS 操作系统中一种特殊的程序,它在程序运行完成后仍然保持在内存中继续运行并等待某个事件的触发。
简单讲就是一种后台执行任务。

那么各家的软件都会实自己的TSR程序驻留内存,来实现一些特别的功能。
要知道呀,在90年左右的电脑8M内存已经是最高端电脑,1M,4M内存比比皆是。人人都驻留内存,
这导至内存被恶意占用,于是雷军总就开发了这个Raminit程序,运行之后,就能通过快捷键一键清除内存的其它的驻留 程序。

代码内容概述

好,我们接着看代码,
下边它指明了,会将以下TSR程序从内存中移除。
接着它指出一不会被移除的驻留程序。
接着有一些版本注解,

V2.04的时候采用了鼠标驱动的重置功能来初始化鼠标,这是1993年2月17日由雷先生和冯先生。
这个冯先生是谁? 哦~~ 莫不是雷军总的同学冯志宏。
93年的时候雷军正在和冯志宏合作开发杀病软件,后来他和雷总一起在到金山,再到小米。
也是一位当年非常优秀的程序员。
不过冯志宏好像非常底调,本想放一张他的照片,不过找了一圈也没有找到。

接下来有一些其它的版本信息,都是雷军一人所写。

成功编译并运行雷军1994年写的内存驻留程序 Raminit
成功编译并运行雷军1994年写的内存驻留程序 Raminit

下边的代码我大概看了看,因为太久没有接触8086的汇编了,很多东西忘了,
之后我会抽时间来给大家讲解这份代码。
总的来说这份代码涉及到的DOS系统开发技术大概有:内存驻留,内存管理,热键支持,中断处理,
删除 TSR 程序,备份BIOS数据,错误处理与恢复等,在当年来说是一个非常优秀工具。

编译与运行环境准备

好的,接下来我们偿试把这份程序编译,运行起来哈。
那从代码备注中能知道,时间点是在1993-1994年,而MSDOS 6.2是在93年发布的,
所以可以判断所使用的操作系统应该是MS DOS 6,
那当年流行的汇编编译器有Borland公司的TASM和微软的MASM。相信很多人一定听过并用过波兰公司的
Turbo C吧,当年波兰公司的Turbo C, Turbo Assembler 都非常流行,所以我猜测雷军总应该用的是TASM。
而TASM 4刚好是93年发布的,因为我们选择TASM4来编译这份代码。

安装过程

好的,开整。
先安装MS DOS 6.22,MS DOS 6.22被分布在3张1.44M的软盘上。

成功编译并运行雷军1994年写的内存驻留程序 Raminit
成功编译并运行雷军1994年写的内存驻留程序 Raminit

别看DOS6.22总共只有4M大小,安装起来还挺久的,毕竟当年的电脑配置就那样了哈。
好了,MSDOS 6.22安装完了,你没看错,就是这样一个黑底的命令行界面。

然后我们安装TASM 4。
TASM 4分布在4张1.44M的软盘上,总大小5.62M ,哈这个编译器比MS DOS操作系统还大呀。
好,经过漫 长的等待,TASM 4也安 装完了,雷军总的RI.ASM代码也拷贝进去了。

激动人心的编译与运行

激动人心的时刻到了哈。
哈哈,居然一把就偏译过了。
然后我们还要链接它,也通过了哈。太赞了太赞了。

好,我们看一下这个程序的运行帮助。
它定义了很多命令行参数,加CLS移除所有TSR程序,加RE移除所有TSR包括自己。
S是设置热键,那我们设置一下热键哈,我们设置为左CTRL+右CTRL键。
好我们运行程序。
然后我们按一下左CTRL+右CTRL键,看到上边有一行提示符,
说明在有效的哈。

成功编译并运行雷军1994年写的内存驻留程序 Raminit
成功编译并运行雷军1994年写的内存驻留程序 Raminit

最后感悟:从程序员到产品经理

最后说几句哈,其实像这样的TSR程序对于当年DOS时代的程序员来说,并不是什么新鲜高级的技术。
程序中所涉及的技术当年在相关的开发书籍上也都有教的。
但是,同样的技术存在,同样是写代码,为什么有些人写程序能写得很成功呢?

个人认为,主要在于产品的包装能力,如果你写出一个程序,它能解决用户需求,
,有良好的界面交互,易于使用且稳定可靠,有文挡支持
有商业发行,那么这就是一个好的产品,否则你写的那个永远只能叫玩具。

雷军不仅是一位优秀的程序员,也是一位优秀的产品经理,更是一位运营高手。
向雷军总学习。


更多问题探讨,请关注公众号:程序员角