1986年,作者开始为 BBC Micro,Electron 和 Master 128
家用电脑编写摩托车赛车游戏。 该游戏由 Superior Software 于1987年以
Crazee Rider 的名义出版。

大多数人知道威廉·亨利·盖茨三世的故事,是从他大二辍学开始,因为励志故事都是这么写的:“盖茨上完大二之后辍学,创立微软成为全球首富……”  比尔·盖茨确实会让人有一种想要敲开他脑袋,看看里面装的究竟是什么的冲动。他比这个星球上的绝大多数人富有、比这个星球上的绝大多数人成功,关键他还是辍学的。  但也正因如此,很多时候聚光灯只照到了盖茨超过700亿美元的个人财富,而盖茨成功之路上最关键的东西,却被落在了阴影里。  盖茨的成功之路充满传奇,同样也有着各种偶然性。就像是当年有着全球最强芯片设计与生产力能力的IBM,在推出PC(IBM
Personal
Computer)时,选择尚属于创业状态的微软所编写的BASIC,作为PC上最基本的人机对话语言。很大一部分的原因是,策划IBM
PC操作系统的两位雇员中,恰巧有一位是盖茨母亲玛丽·盖茨的朋友。  但在这样的偶然性之外,盖茨一直拥有自己的立身之本——技术实力。  作为前面这个偶然故事的后续,盖茨与IBM签下协议,并且答应两个月之后向对方交货的时候,手上既没有任何现成的已经完成的操作系统,当时的微软公司也没有开发操作系统的队伍。就是这样的背景下,盖茨和艾伦硬着头皮搞定了这个合约。  很多人都知道盖茨有技术实力,毕竟作为微软创始人不懂技术有些说不过去。但对盖茨的编程能力究竟如何并不清楚,事实上盖茨拥有那个时代顶级的编程水平,从他编写的BASIC编译器,其能力就可见一斑。而他更是在很多时候将自己作为人肉IDE(集成开发环境),迅速交出完成度极高的代码。  我所接触过的那些向盖茨汇报过的微软员工,几乎都有同一个反馈就是,盖茨的反应极其迅速,并且拥有极强的逻辑思维,往往能很快的抓住程序或者是项目中的关键点。这样的能力得益于盖茨从小对于数学的天赋,以及在计算机编程上的努力。  其实一直到哈佛法学院,盖茨的最大理想还是想要成为一位“受人尊重的数学家”,为此他还在哈佛的时候,选择了MATH
55这门号称全美最难的本科数学课程。其难度在于需要在两个学期中完成涵盖大学4年的课程,同时在难度上比起普通课程更难。  盖茨在数学方面算的上天才,但是为了完成课程,还是常常需要学习到每天凌晨2、3点。但让盖茨感到压力极大的是,在哈佛MATH
55的课堂上,每个人都极其聪明,每个人都拥有超高的SAT。  当然盖茨的成绩也很棒,盖茨在大二期间发明了煎饼排序(Pancake
Sorting)的一种全新算法,并且在此后30年这一问题都是最好的算法。这样的成就许多数学博士都未能完成。  单独提盖茨的数学水平,是因为在当时那个时代,数学与编程之间的关系更加紧密。而不是现在我们在编程的时候,可以直接调用大量的API帮助实现功能。  盖茨编程实力的展现大概是从13岁的时候开始,那时候他刚刚在湖滨中学(Lakeside
School)接触到电脑,开始在机房中鬼混。但是机房的上机时间有限,于是他找到了西雅图计算机中心公司(Computer
canter
Corpration),通过为CCC的PDP-10机查找软件错误,换取上机时间。那时候盖茨不仅很好的完成了这项工作,还通过自己的编程破解了CCC的安全密码,以便自己修改用机时间。  而盖茨的编程能力真正让他声名远播是在牛郎星(Altair)上。1975年,牛郎星出现在了《大众无线电》的封面上,虽然这时候MITS并没有真正组装出能够使用的牛郎星电脑,但盖茨和保罗·艾伦就已经意识到个人电脑时代的到来。  他们“空手套白狼”式的给MITS公司打电话,说自己手上已经为牛郎星开发出BASIC编译器,能够在英特尔8080微芯片上成功运行。其实这时候他们手中什么都没有,甚至都没有见过英特尔8080微处理器。而MITS自然不能放过市场先机,他们想要3个星期内拿到成品。  这里盖茨开始展现他超过强的BASIC能力。他们没见过英特尔8080微处理器,于是保罗·艾伦买来了一本英特尔8080的说明书,然后盖茨在哈佛的计算机中心编写了一个8080微处理器的仿真器,通过这个仿真器开发软件。  盖茨的另一个壮举是,当时牛郎星只有4K内存,这样就极大的限制了BASIC语言的长度。盖茨开始进行字节层面的压缩,最终巧妙的将其压缩到了4K,而他的“4KBASIC”因设计奇巧大受行家赞赏。  这里还有一个插曲就是,在盖茨与保罗·艾伦乘坐飞机前往MITS公司的时候,飞机降落前半个小时,保罗发现还缺少一个引导程序。这时候盖茨拉过程序纸带(当时程序以穿孔纸带交付,有孔代表1,无孔代表0)就开始编写,最终在下飞机前完成。而这也是广为流传的盖茨在飞机上,靠打孔且不用Debug就能完成BASIC引导程序的由来。 Snap000.jpg (当年的那卷程序纸带)  最后盖茨的BASIC编译器以授权的形式转让给MITS公司,并按每个拷贝收权利费用:4K版本BASIC每个拷贝30美元、8K版本BASIC每个拷贝35美元。盖茨开创了软件授权的先河,也为微软赚到了一大桶金,微软以此共向MITS收取了18万美元的权利金。  与此同时,盖茨开始频繁的撰写编程专栏,而当时他也只有20岁而已。在那个计算机、编程,精英集中的领域,盖茨写了很长一段时间的专栏,分享自己对技术的理解同时,也不断的宣传自己和微软。  关于盖茨的BASIC水平,还有几个在微软内部广为流传的故事。微软早期员工的口头禅就是:“如果你的任务搞不定,那就找盖茨吧,因为他只需要一个周末就能用BASIC完成。”  另外在1989年,盖茨曾在《Byte》杂志上公开宣战,程序员可以使用任何工具和语言,但他一定能够用Quick
BASIC编出同样的程序。  而在飞机上代码,也不止一次,在Windows
3.0时期,盖茨就在飞机上编写Windows
FAT(文件配置表),上千行代码一气呵成。  现在即便已经不再是微软CEO了,但盖茨此前还是在Reddit上透露道,只要自己愿意,偶尔还是会用C、C#或者BASIC编程。  比起其他,比尔·盖茨的技术实力,才是真正支撑微软创业初期同时也是他个人财富的根源。  他极其聪明、来自一个富裕的家庭、上最好的高中、被父母溺爱、爱打扑克、喜欢飙车,但他现在所拥有的一切,都是从他作为程序员开始。

澳门葡萄京官方网站 1比尔·盖茨与艾伦

游戏用6502汇编语言编写。 目标计算机只有 32K 字节的 RAM,其中 10K
字节是显存所必需的。到现在30年过去了,作者决定公开其源码。

本文选自《小火炉的BLOG》的博客,点击查看博客原文

最初,BBC BASIC 使用在线汇编程序用于构建代码。之后,作者决定在 PC
上使用“beebasm”组装代码库。 这要求他重新处理原始源代码。 这涉及对所有
BBC BASIC 文件进行去标记,并调整代码以使用 beebasm 友好指令/命令。
现在,这允许使用 Visual Code 或其他 IDE 在良好的开发环境中构建代码。

比尔·盖茨早已不是微软公司的管理者,但他仍然是人们热衷谈论的对象,而当他发表意见的时候,人们仍然会聆听。最近,当微软面临下一任
CEO
人选的时候,不少人在期望他的回归。盖茨的名声和地位,自然是因为他创建微软帝国,普及了个人电脑,从而改变了计算机发展历史。正如任何王国的崛起,第一代创业者的天才、运气和不懈的努力,往往是最让人着迷的事情。《乔布斯传》的作者
Walter Isaacson 在哈佛网站撰文,回顾了比尔盖茨大学时期的故事。

此次公开的代码是 BBC Micro 版本的游戏。

在高中的时候,盖茨就创建了湖滨学校编程社,为太平洋西北地区的公司编写计算机代码,并以此赚钱。当他向大学提交申请的时候,选择了三所学校:哈佛、耶鲁和普林斯顿。针对三所学校,他表示了三种不同的志向:耶鲁是为了政治;普林斯顿是为了计算机工程师;哈佛是为了数学。他被三所学校录取,最终选择了哈佛。艾伦警告他说,哈佛有比他更聪明的人,盖茨回答说,“不可能!不可能!”

Version V1.00 

在哈佛大学,他的学习节奏让室友惊讶。一位室友说,“他的习惯是一次学上 36
小时或更长时间,睡 10
个小时,然后出去,吃个比萨,回来继续学习。如果这意味着他早上 3
点开始,那也无所谓。” 有时候,他会拉上室友玩 Atari 上的 Pong
游戏,或者在哈佛计算机实验室的主机上玩经典的 Spacewar!。

(c) Kevin Edwards 1986-2018

艾伦的警告被证明是正确的。来自 Baltimore 的 Andy Braiterman
比盖茨的数学更好。他们经常在 Braiterman 的屋子里彻夜钻研 Math 55
课程。Braiterman 说,Bill
是个非常热切的人,而且是一个“好辩手”。他会很有说服力地指出,很快人们都会有一台家用计算机,用来看书和查看信息。两个人决定成为室友,并且搬到了盖茨喜欢的
Currier House 公寓。

澳门葡萄京官方网站 2

盖茨决定主修应用数学而非纯数学。他说,“我遇到数学部里的一些人,他们比我的数学好很多。这改变了我学习数学的想法。”

编译自:CrazeeRiderBBC

在学校里,他还发展出了自己的学习模式:只上自己没有选修的课程。对于这条规则,他非常认真地遵守。“在大二的时候,我只听那些与实际选修课时间重合的课程,以确保自己不会犯错误。因此,我是一个完全的拒绝主义者。”

(文/开源中国)    

他还迷恋上了扑克游戏,玩七张牌梭哈,通宵赌博。他更擅于评估牌力而不是了解其它玩家的想法。”比尔是一个偏执狂,“Braiterman
说,“他会专注于某种东西,然后一直遵循它。”
某次,他把支票簿给了艾伦,以阻止自己浪费更多钱,但很快又要了回去。“在学习诈唬上,他付出了很大的代价,”艾伦说,“他会一晚上赢
300 美元,然后第二天晚上输掉 600
美元。那个秋天,他输了上千美元,他不停地对我说,‘我玩的越来越好了。’”

在 Micheal Spance 的经济学课程上,盖茨遇到了 Currier House
公寓里的另一位学生鲍尔默。鲍尔默是一个大个头,喧闹,喜欢群体生活。他参加了速成布丁俱乐部,管理一个足球队,Advocate
报的出版商,Crimson
报的广告经济人。两个人看起来非常不同,但是一种超级的热情将他们联系在了一起。他们会大声交谈,辩论,并且来回摇晃。他们一起去看电影。“我们去看了‘雨中曲’和‘发条橙
‘,两者的唯一联系就是一首常见的歌曲,”盖茨说,“然后我们变成了超级好的朋友。”

盖茨的生活在大二的时候突然改变了。某一天,艾伦来到了他的宿舍,手里拿着一本新买的《大众电子学》杂志,封面上是一台
Altair。他说,“这件事情在我们没参与的情况下发生了。”

两个人决定编写一些软件,让业务爱好者们能够在 Altair
上运行程序。更准确地说,他们打算为 BASIC
语言编写一个编译器。那将是第一个为微处理器编写的商业化编程语言。他们给生产
Altair 的公司 MITS 写了一封信,宣传自己编写了一个在 8080 上运行的 BASIC
语言编译器,但实际上,当时他们还没有编写任何软件。由于没有收到回信,他们决定给
MITS
打个电话。盖茨建议艾伦打电话,而艾伦认为盖茨更在行。后来,两个人决定,盖茨打电话,但是宣称自己是艾伦,因为一旦成功的话,出面的人将是艾伦。艾伦看起来像成年人,盖茨还像个学生。

接听电话的人是 MITS 的创始人 Ed
Roberts。他说自己已经接到了太多的电话,因此,第一个拿着可运行的 BASIC
到公司的人将会获得机会。

由于两个人没有 Altair,艾伦决定在计算机实验室的 PDP-10
上模拟一台,然后他们买来了 8080 微处理器的手册。在几周内,Allen
做好了模拟器和其它开发工具,与此同时,盖茨在黄色记事本上不停地写代码。在模拟器准备继续后,他将代码敲进了计算机中,有时候,这会持续好几个小时。

在八周的时间里,盖茨、艾伦和另一位学生 Davidoff
日夜不停地工作。有时候,盖茨会睡在终端前。“他在编写代码的时候,会逐渐向前倾斜,直到鼻子碰上了键盘,”艾伦说,“在睡了一小时或两小时后,他睁开眼,看看屏幕,眨两下眼,然后继续自己的工作——一种惊人的专注力。”

代码的精简是非常重要的,因为 Altair 的内存只有
4K。三个人会不断竞争,看谁的代码能做出更精简的代码。晚上的时候,他们会研究打印结果,找出使代码更加精简的办法。1975
年 2 月,在八个月紧张编程后,他们将代码精简到了
3.2K。“这不是我是否能够编写代码的问题,而是能否将它浓缩到 4K
以下,并使其超级快,”盖茨说,“它是我写过的最酷的程序。”

决定性的一天到来了。艾伦在 MITS 公司打开
Altair,让纸带输入机载入代码。这花了 10 分钟时间。Ed Roberts
和同事们交换着好奇的目光,他们已经怀疑这是否成功。但是,机器打出了“MEMORY
SIZE?”。一位员工叫到,“Hey,它打出东西了!” 艾伦输入了答案:7168。Altair
回应说:“OK。”

随后,艾伦输入了“PRINT 2+2”,Altair
回应:“4”。这是在商业化的家用计算机上运行的第一个软件程序。当 Ed Roberts
看到后,他叫了起来,“哦,我的天。它打出了‘4’!”

一个月后,艾伦成为 MITS
的软件主管。盖茨决定留在哈佛。但是,他遇到了一件麻烦事。学校秘密的管理委员会找到了盖茨,说他触犯了学校的规定。原来,国防部的一位督察员在检查资助给学校的
PDP-10
的时候,发现使用时间最多的是盖茨。盖茨不得不写了一份书面辩护,描述自己开发
BASIC
的过程。他自身的过错被放过了,但由于他让校外人员艾伦使用自己的密码,还是受到了惩罚。盖茨同意将早期版本的
BASIC 放到公共知识领域。

那时候,盖茨已经将更多的时间放到了与艾伦的合作上。1975
年春,他完成大二学业,然后去了 MITS
公司。他决定放弃大三的第一个学期,在公司工作。1976
年春秋,他回到哈佛,完成两个学期,然后离开了哈佛。他差两个学期未能完成学业。2007
年 6
月,他回哈佛接受荣誉学位。在演讲的开始,他对听众中的父亲说,“我已经等待这一刻
30 年了:父亲,我已经告诉过你,我会回来拿到自己的学位。”