103机

103机是中国制造的第一种通用数字电子计算机，为电子管小型计算机。该型机是在苏联提供的M-3小型电子计算机图纸的基础上研制的，研制工作由中国科学院计算技术研究所和北京有线电厂（国营738厂）承担。1958年8月，第一台103机在中科院计算所初步调试成功，这标志了中国第一台计算机的诞生。

103机在不同的阶段有不同的型号名称：初期沿用原名称M-3型，1958年试制的第一台机器被命名为八一型计算机，738厂扩大生产的机器改称103机，1961年经过质量整顿后定型为DJS-1型，经过改进提升的机器有113机、DJS-3型等型号。从1958年至1966年，103机系列共计生产约49台。目前，仅有一台DJS-1型机较为完整地保存于曲阜师范大学图书馆。

103机是字长31位（1位符号和30位二进制数字）的定点机，支持加、减、乘、除、逻辑乘法5种运算，支持有条件跳转、无条件跳转、停机等操作，是图灵完备的。103机最早使用磁鼓存储器，后又增配了磁芯存储器。使用磁鼓存储器时，103机运算速度约为每秒30次；使用磁芯存储器时，运算速度约为每秒1500至2000次。

130机研制项目项目负责人为莫根生、张梓昌，骨干有董占球、王行刚等人，另有苏联专家指导。

1959年起103机被用于一些科学计算，如人民大会堂主席台的力学结构计算便是由103机完成的。

## 历史

### 背景

1956年，国务院科学规划委员会编制的《1956-1967年科学技术发展远景规划纲要》（简称十二年科学规划）提出要建立计算技术，在一两年内设计并制造电子计算机。在编制十二年科学规划的同时，在周恩来的主持下，科学规划委员会又提出“大力发展计算机、无线电电子学、半导体、自动化，并将新技术应用于工业和国防”的“四项紧急措施”。

1957年，中国科学院主持召开了第二机械工业部、总参谋部等部门参与的计算技术计划协调会议，讨论同意并签订了《合作发展中国计算技术协议书》，以落实“四项紧急措施”。根据协议，研制工作通过“先集中，后分散”的方式，首先从二机部和国防部门抽调人员到中科院计算所，集中力量制造中国第一台通用电子计算机，然后有关人员再回到原单位建立发展本单位的计算机。

### 试制

1957年4月，中国科学院经政府途径向苏联科学院订购了M-3计算机的图纸。图纸于1957年9月中旬运抵中国科学院，随后送到北京广播器材厂。由于北京广播器材厂缺乏数字系统和精密机械的生产能力，图纸又于9月28日转送到738厂。1957年11月中科院计算所和738厂签订了试制M-3机的生产合同。根据协议，738厂负责复制图纸、编制加工工艺文件、采购元器件和原材料、制造各个部件并总装、参与机器调试、准备批量生产等，中科院计算所负责编制机器接线表、调试和应用。

1957年10月，738厂成立总设计科第二设计室，开始着手103机的生产工作。1958年6月1日，第一台103机的3个机柜完成生产安装，机器从738厂用卡车运送到中科院计算所。经过2个月调试，到1958年8月1日，第一台103机成功运行了一个具有4条指令的短程序，被命名为“八一型”计算机，标志了中国第一台通用数字电子计算机的诞生。但此时，由于可靠性、稳定性和质量问题，机器还无法投入实际使用。1958年9月上旬，苏联专家Г. П. 拉巴笃到计算所协助103机调试工作，主张进行可靠性调整。到1959年8月，103机正式投入使用。

### 扩大生产与质量整顿

在第一台103机调试成功后，全国多个单位提出要使用103机。1958年9月起，738厂开始批量生产103机。这批机器总共18台（其中1台留在738厂），以较低标准出厂，即电源机柜能够正常输出、插件测试正常、机柜接线通铃检查正确。这批机器交由用户自己调试。

1960年，一些用户单位向国家科委、三机部十局反馈103机的质量问题。1960年10月起，738厂停止供应103机，开始对103机电路设计的质量整顿。1961年12月22日，103机生产性试制阶段的正样试制鉴定会在738厂召开，103机通过正样试制鉴定，被命名为DJS-1。通过鉴定的第一台DJS-1机的用户是中国科学院大连化学物理研究所。

### 全面改进与停产

1962年下半年，738厂开始试制用于DJS-1机的2048字容量磁芯存储器，1963年12月通过鉴定，命名为CX-1型磁芯存储器。CX-1型磁芯存储器可配套于103、DJS-1机，可与磁鼓存储器同时使用。

1964年初，738厂开始试制DJS-1的全面改进型，1965年3月通过鉴定命名为DJS-3型。DJS-3型改进了运算线路，将速度提升到2300次/秒，增配了1/4英寸磁带存储器，增加了自动变址功能。

1966年2月8日至12日，103机系用户技术交流会在北京西郊科学会堂召开，共48家用户单位到会。国家计划委员会三局局长戴忠经作“计算机发展形势报告”，指出要发展晶体管计算机，电子管计算机自此停产。

## 设计

103机由数个高约2米的机柜组成，包括运算控制器柜、磁鼓存储器柜、电源柜等，一些机器还配有磁芯存储器柜、输入输出与磁带机柜、通风机柜等。

103机由运算器、程序发送器、存储器、输入输出设备组成。运算器包含A寄存器、B寄存器、C寄存器和累加器，用于对数进行算数和逻辑操作。程序发送器即控制器，包括脉冲分配器、局部程序发送器、操作器、选择寄存器、启动寄存器等。

103机为异步设计，全机没有统一的时钟信号，机器执行一条指令分为八拍。

103机字长为31位，包含1位符号和30位数。通常，指令和数据写成符号加上10位八进制数的形式（如：`+12 3456 7012`）。

103机使用五单位穿孔纸带作为输入输出数据的载体，可以采用八进制或十进制输入，也配有电传打字机。

## 指令与编程

103机的指令由操作码、第一地址、第二地址组成。操作码为两位八进制数，其中第二位表示操作种类：

- 0：加法
- 1：减法
- 2：除法
- 3：乘法
- 6：逻辑乘法

第一位则表示操作性质和细节：

- 0：第二地址的数与第一地址的数进行操作，结果写入第二地址
- 1：第二地址的数与第一地址的数进行操作，结果不写入存储器
- 2：上一操作的结果与第一地址的数进行操作，结果写入第二地址
- 3：上一操作的结果与第一地址的数进行操作，结果不写入存储器
- 4：第二地址的数与第一地址的数进行操作，结果写入第二地址并印出
- 5：第二地址的数的绝对值与第一地址的数的绝对值进行操作，结果不写入存储器
- 6：上一操作的结果与第一地址的数进行操作，结果写入第二地址并印出
- 7：上一操作结果的绝对值与第一地址的数的绝对值进行操作，结果不写入存储器

除根据上面的规则组合而成的40个操作码之外，其余指令用于转移、传送、停机等：

- 07、27：将穿孔带上的数写入第二地址，但不保留在运算器中
- 05、15：将第一地址的数写入第二地址，保留在运算器中
- 45、55：将第一地址的数写入第二地址并印出，但不保留在运算器中
- 24：无条件转移到第一地址，上一操作的结果写入第二地址，上一操作的结果仍保留在运算器中
- 64：无条件转移到第一地址，上一操作的结果写入第二地址并印出，上一操作的结果仍保留在运算器中
- 74：无条件转移到第二地址，上一操作结果的绝对值保留在运算器中
- 74：条件转移，当上一操作的结果为正时转移到第二地址，当上一操作的结果为负时转移到第一地址，上一操作的结果仍保留在运算器中
- 04、14、44、54、37、57、77：停机，各指令停机时寄存器的值有所不同。

## 应用

103机被广泛用于测绘、建筑、矿山等领域的科学计算，以及大学计算数学、计算技术等专业的教学。