随PET进入个人计算机
1977年,康懋达(Commodore)把BASIC解释器带进PET个人计算机。用户在一台已经配有键盘、屏幕和盒式磁带装置的机器上输入指令,就能计算、编辑程序和保存自己的工作。康懋达BASIC由此成为使用整机的日常入口,程序语言和具体机器的输入输出紧密相连。
其核心来自微软的6502 BASIC。微软保存历史源码时说明,比尔·盖茨与里克·韦兰德在1976年完成6502移植,康懋达于1977年以二万五千美元固定费用取得授权。盖茨、韦兰德负责的语言核心由康懋达用于PET,后来双方又继续处理这套解释器的问题。
早期《PET简明入门》的临时版已经列出语言命令,并请没有收到完整说明书的买家寄回登记卡;它把1977年10月30日写作完整册预计备妥的日期。解释器已随机器交到使用者手中,说明材料仍在补充。
从一条命令到一段程序
临时手册把LIST、RUN、NEW等操作与编程语句列在一起。LIST让用户查看内存中的程序,RUN从最低行号开始执行,NEW清除现有程序。行号既安排执行次序,也为跳转提供目标;GOSUB进入子程序,RETURN再回到调用处之后。
用手册介绍的循环,可以组成三行小程序:“10 FOR A=1 TO 3”“20 PRINT A”“30 NEXT A”。输入RUN后,按这些语句的规则会依次显示1、2、3。第一行建立计数过程,第二行显示当前值,第三行增加计数并判断是否继续;把上限改成20,就改变了同一段工作的重复次数。
这种写法把反复计算拆成可阅读、可修改的小步骤。初学者可以先试一个输出,再逐行加入循环或条件;程序的行号与可列出的正文也便于把杂志上的例子抄进机器。
参考:[1]
把输入的数据留给程序处理
早期手册还展示了如何处理程序运行时才取得的数据。INPUT从键盘接受数值或字符串,GET取得单个字符。以美元符号结尾的变量名表示字符串,LEN取得字符串长度,LEFT$、MID$和RIGHT$从中取出指定部分;程序因此可以保存姓名、读取文字,再按需要输出。
DATA与READ提供另一条输入路径:把数值或文字预先写在程序中,再按顺序读取。RESTORE使程序可以重新读取这些数据,DIM则安排数组。使用者由此能把一串记录组织起来,在循环中逐项处理,而不必把每一次操作都重新打进键盘。
1978年保存的微软1.1版源码提供了一点结构上的辅助说明:输入行中的保留字会被压成单字节标记,执行时再查表调用处理过程;程序行则以含有行号和下一行位置的记录相连。这份后来的保存本解释了语言的组织办法,也保留了继续修订的痕迹。
从磁带文件到屏幕字符
磁带让输入过的程序得以保留。手册规定,SAVE可把程序写入内置磁带机,LOAD重新读入;VERIFY再读出磁带内容,与仍在内存中的程序比较。命名文件和指定设备的形式,使保存、寻找与核对成为使用语言的一部分。
BASIC也提供直接接触内存的办法。PEEK读取一个地址的字节,POKE向地址写入数值。1978年《People’s Computers》刊出的“Stars”猜数游戏,就通过POKE向屏幕存储区写入星号字符。数值运算、随机数、循环和屏幕显示因此能够组成一件完整的小作品。
字符和光标控制也带来了传播难题。普通印刷设备难以照样印出PET的图形字符,编辑便在程序清单中用方括号标记清屏、移动光标等按键动作,帮助读者把纸面表示还原为键盘操作。
使用者在杂志和商店里交流
《People’s Computers》编辑菲莉丝·科尔在1978年1—2月号介绍,自己参与的小组已经购买PET,向孩子和教师展示示例程序,并筹备教学活动。她为PET使用者开设SPOT栏目,让程序、操作心得与问题能够继续交换。
同一期的来信把这些交流落实到个人经历。克雷格·皮尔斯指出此前绘图程序清单中的排印错误;乔治·朱林说,自己在伯克利和帕洛阿尔托的商店输入绘图程序,店员与顾客都参与观看。读者既是程序的学习者,也在替公共清单查错、补充机器知识。
旧机器上的问题与等待中的更新
早期使用并不总是顺利。H. L. 斯塔克在来信中说,自己的PET能保存小程序,却无法可靠保存、校验或装入大程序,后来可用内存又从7167字节降到4854字节,他怀疑内存芯片损坏,最终把机器寄回维修。磁带操作、内存与语言交互在用户眼中连成了一整套使用体验。
面对读者询问的数组问题,杂志编辑答复说,PET BASIC还存在一些错误,康懋达正在准备新版本;早期机器日后可通过购买ROM芯片更新,但推出时间和价格当时尚未公布。购买了整机的用户仍要借助手册、来信和程序清单,逐步摸清眼前版本的能力。
源码保存本后来记录了1978年的字符串回收与程序编辑修补。对1977年开始使用PET的人来说,日常工作仍是输入、试跑、修改和重新保存:语言的可接近性让更多人能够动手,书面说明与实际操作中的差异又不断产生新的交流需求。