Microsoft开源GW-Basic

2020-05-22 08:01:51

自从去年在GitHub上重新开源MS-DOS 1.25&;2.0以来,我们已经收到了大量开源Microsoft Basic的请求。

正如repo的自述文件中明确说明的那样,这些资源是1983年2月10日的8088汇编语言资源,并且出于历史参考和教育目的而开放源代码。这意味着我们不会接受以任何方式修改来源的PR。

正在发布的GW-BASIC源代码的日期为1983年2月10日。那是很久以前的事了,所以让我来设定一个小小的历史视角:

在这个来源被创造的那一周,“工作中的男人”凭借“Down Under”荣登美国和英国单曲排行榜榜首,达斯汀·霍夫曼主演了美国票房排行榜第一的电影“Tootsie”。1983年,《星球大战第六集-绝地归来》上映,《战争游戏》也上映了!艾米丽·布朗特、凯特·玛拉、乔纳·希尔、克里斯·海姆斯沃斯和亨利·卡维尔诞生了!罗纳德·里根(Ronald Reagan)是美国总统,玛格丽特·撒切尔(Margaret Thatcher)是英国首相。

同年,Bjarne Stroustrup正在开发C++编程语言的第一个版本,ARPANET标准化TCP/IP。Borland发布了Turbo Pascal,由Anders Hejlsberg(后来加入微软,并创建了J++、C#和TypeScript)创建。

1983年也是AT&;T发布Unix system V R1的那一年,BSD4.2也发布了,首次引入了伪终端(我们在2018年😁中引入了WindowsConPTY的前身)。

我当时13岁,在没有完成作业或做家务的每一秒钟里,我都在当时最热门的家用计算机之一-BBC Micro Socket 32KB RAM(是的,总共32,768字节!)上写基本和汇编代码,它由MOS Technology 6502处理器驱动,运行速度高达2 MHz。不编程的时候,我通常在玩有史以来最具开创性的游戏之一:David Braben&Amp;Ian Bell的“精英”(Elite)。

1983年,苹果公司推出了搭载1 MHz 6502处理器的Apple IIe,售价为1395美元(2020年为3500美元)。苹果还推出了第一款带有图形用户界面的商用电脑--苹果丽莎(Apple Lisa)。丽莎拥有惊人的1MB内存,运行着令人惊叹的摩托罗拉68000处理器,速度高达惊人的5 MHz,但它的售价为9,995美元(按2020年美元计算为25,000美元),所以我所能做的就是透过我们镇上一家授权销售苹果产品…的电脑商店的窗户凝视着它。和梦想。

1983年,微软发布了MS-DOS 2.0(这里是源代码),以及用于IBMPc XT及其兼容机的GW-BASIC。

GW-BASIC是从IBM的Advanced Basic/BASICA派生的BASIC解释器,它本身就是Microsoft Basic的移植。

微软的各种基本实现可以追溯到比尔·盖茨和保罗·艾伦实现微软的第一个产品--牛郎星8800的基本解释器。

在70年代末和80年代,微软的Basic被移植到许多OEM的特定平台和硬件需求,以及当时流行的几个处理器,包括8088、6502、6809、Z80和其他处理器。

就像70年代和80年代的许多软件一样,就像MS-DOS的源代码一样,GW-BASIC的源代码是100%的汇编语言。

当在当时的大型机和小型机上进行开发时,开发人员有时能够使用诸如FORTRAN、LISP、COBOL、RPG、CPL/BCPL、C等高级语言,但是这些语言的编译器通常非常昂贵,很少生成有效的代码,并且通常不适用于当时空间和性能受限的家用和个人计算机。

在为早期的PC编写软件时,每一个字节和每一条指令都很重要,所以开发人员通常完全用汇编语言编写代码,只是为了能够将他们的软件物理地安装到可用的内存中,并能够访问计算机的资源和内部工作方式。

因此,GW-BASIC的所有源代码都是纯汇编代码,在每个处理器/每个机器的基础上从核心/主源代码进行翻译。

每个程序集源文件都包含一个标题,说明此由4.3版于10-Feb-83创建的转换。

由于家用和个人计算机中使用的早期处理器的指令集体系结构(ISA)彼此之间没有显著差异,因此Microsoft能够从主实现的源代码中为端口生成大量代码。(唉,对不起,我们无法将ISA转换器开源。)。

许多人问我们是否也可以为808x以外的处理器开源实现。唉,我们无法提供这些端口和/或定制的来源。

我们希望您喜欢探索这张引人入胜的快照,了解软件开发在20世纪70年代和80年代初的辉煌、令人兴奋、令人兴奋的日子里是什么样子,当时“个人计算机”😁刚刚问世。

非常感谢Amy、Julia Luison、Amanda Silver和我们出色的CELA团队的批准和帮助,他们发现、审查和开源了GW-Basic。