转载请联系授权
01
穿孔纸卡读取器
虽然有内存很棒,但程序和数据依然需要某种方式输入计算机,所以用穿孔纸卡。到1980年代,几乎所有的计算机都有穿孔纸卡读取器。可以吸入一张卡片,把卡片内容写进内存,如果放了一叠卡片,读取器会一个个写进内存。一旦程序和数据写入完毕,电脑会开始执行。
即便简单程序也有几百条指令,要用一叠纸卡来存,如果不小心摔倒弄撒了,要花上几小时、几天、甚至几周来整理。有个小技巧是 在卡片侧面画对角线,如果弄散了,整理起来会方便很多。
用纸卡的最大型程序是美国空军的 SAGE 防空系统,于 1955 年完成,据称顶峰时期 雇佣了世上 20% 程序员,主控制程序用了 62500 张穿孔纸卡,等同于大约 5MB 的数据。以如今的标准,不值一提。
穿孔纸卡不仅可以往计算机放数据,还可以取出数据,程序运行到最后,结果可以输到纸卡上,方式嘛,当然是打孔。然后人可以分析结果,或者再次放进计算机,做进一步计算。
穿孔纸卡的亲戚是纸带,基本是一回事,只不过更连续,不是一张张卡。当然我们还没提硬盘, 只读光盘, DVD, U盘等等。以后我们会讲这些更先进的存储方法。
02
面板编程
最后,除了插线板和穿孔纸卡,在 1980 年代前,还有一种常见编程方式,面板编程。与其插一堆线到插线板,可以用一大堆开关和按钮,做到一样的效果。面板上有指示灯,代表各种函数的状态和内存中的值。
50和60年代的计算机,一般都有这样巨大的控制台,很少有人只用开关来输入一整个程序,但技术上是可行的。早期针对计算机爱好者的家用计算机,大量使用了开关。因为大多数家庭用户负担不起昂贵的外围设备,比如穿孔纸卡读取器。
第一款取得商业成功的家用计算机是 Altair 8800,有两种版本可以买:
- 预先装好的整机
- 需要组装的组件
计算机爱好者喜欢买组件版售价极低,在 1975 年卖 400 美元左右,相当于 2017 年的 2000 美元。为了给 8800 编程,你要拨动面板上的开关,输入二进制操作码,然后按 "存储键" 把值存入内存。然后会到下一个内存位置,你可以再次拨开关,写下一个指令,重复这样做,把整个程序都写入内存之后,可以推动开关,回到内存地址0。然后按运行按钮,灯会闪烁,这就是 1975 年的家用计算机。
03
早期编程的问题
不管是插线板、开关或穿孔纸卡,早期编程都是专家活,不管是全职还是技术控,都要非常了解底层硬件,比如 操作码, 寄存器等, 才能写程序。所以编程很难,哪怕工程师和科学家都无法 完全发挥计算机的能力。