Olivetti Programma 101:首台个人计算机的架构与编程
**Olivetti Programma 101(P101)于1965年发布,是最早的可编程计算器之一,被誉为个人计算机的先驱。该设备重36公斤,采用分立晶体管逻辑、磁致伸缩存储器(240字节)和基于寄存器的编程语言。其销售持续至1972年,售价为3200至3500美元,在HP 9100A问世前已成为大众市场产品。
设计与人体工学
P101以其紧凑的尺寸(堪比打字机)和马里奥·贝利尼的未来主义设计脱颖而出。开发工作由皮尔·乔治·佩罗托的团队于1962年启动,基于简洁、人体工学与美学的原则。键盘包括37个按键、一个用于设置小数点的旋钮(0-15位)以及三个锁定键:程序录制、打印和解锁。
输出由鼓式打印机(30字符/秒)在标准纸带上处理,可打印22位数字及符号、小数点和控制符号。指示灯:蓝色表示就绪,闪烁表示执行中,红色表示错误(溢出、除零)。
内存架构
基于磁致伸缩延迟线(6.5米导线)的内存提供240字节。十个寄存器,每个24位,具有固定角色:
- M(中间寄存器):输入和中间进位。
- A(累加器):带舍入的操作结果。
- R(结果寄存器):完整结果或余数。
- B、C:数据存储,可分割为半寄存器。
- D、E、F:数据或指令,可分割为半寄存器。
- p1、p2:仅用于指令。
寄存器B–F支持完整模式(22位数字+符号/小数点或24条指令)和分割模式(每半寄存器11位数字/12条指令,表示为F/ = f)。最小程序大小为48条指令(p1+p2),最大为120条(D+E+F+p1+p2)。
机器逻辑跟踪模式:当传输超过11位数字到分割寄存器或分割完整寄存器时会发生错误。
编程语言
该语言是一种简化的汇编器,包含数学、数据交换、实用操作和跳转指令,没有“等于”按钮。
数学操作
| 按钮 | 描述 |
|--------|-------------|
| + - × | A ±× M → A(舍入),R(完整) |
| : | A / M → A(舍入),R(余数) |
| √ | A = √M,M = 2√M |
| 寄存器 + - × : √ | 复制寄存器到M,应用操作 |
| A ↕ | |A| 在A中 |
数据交换
- 寄存器 ↑(除A、R外):M → 寄存器。
- 寄存器 ↓:寄存器 → A。
- 寄存器 ↕:交换 A ↔ 寄存器(R ↕ = R ↓)。
- / ↕:A的小数部分 → M。
- R S:交换 R ↔ D。
实用操作
- S:暂停/继续,输入到M。
- 寄存器 ◊:打印寄存器。
- 寄存器 *(除M、R外):清零。
分割模式通过带/的命令激活,完整模式通过清除激活(例如B * 用于B)。
跳转系统
32条指令:16条无条件跳转(? CV? D? R? → A? B? E? F?),16条条件跳转(/在发送前,如果A > 0则跳转)。符号V、W、Y、Z编码发送-目标对。
关键要点
- P101将个人计算机定义为紧凑的桌面设备。
- 240字节磁致伸缩内存,具有灵活的寄存器(完整/分割)。
- 支持跳转和分支的算法语言。
- 人体工学设计:打印机、指示灯、简洁键盘。
- 影响力:HP为专利支付了许可费。
— Editorial Team
暂无评论。