【猿传奇 | 3】划时代的中文 DOS ,严援朝的芳华

20 世纪 80 年代,在中国的历史上承载了太多的东西,思想的解放,经济的发展带来的是和之前的中国社会完全不一样的风貌:三十岁的大学生拖家带口来上课、新华书店门口排队买巴尔扎克和托克斯泰的长龙、诗人是最受欢迎的明星、响彻大街小巷的《在希望的田野上》、年轻人在街上跳着迪斯科,背景音乐是张蔷的《伤心的电影》,如果用三个关键词来形容 80 年代,那么就是充满希望、朝气蓬勃和最后的理想主义

中国计算机的发展也是从那时起步,很多名字也是从那时开始被人们所熟知再到今天的如雷贯耳,首期「猿传奇」中的求伯君便是其中之一,而严援朝,也是无法避开的一个名字

严援朝,这个听起来充满了时代印记的名字,在中国计算机发展的历史上也留下了他自己的印记:MSOA 的作者、长城 0520-CH 微型计算机的主要设计者、主持设计了全世界最大的电子会议表决系统:人民大会堂电子表决系统,四通利方联合创始人,新浪网 CTO ,这些成就放在中国计算机发展史上都是无比的夺目,但其中最耀眼的还是他开发的第一个中文操作系统 CCDOS ,这个划时代的系统可以说是中国计算机事业的起始,如果没有 CCDOS ,中国的计算机发展进程将会落后太多太多,今天的国内的计算机行业也将会是另一幅景象。

(长城 0520-CH )

今天的「猿传奇」,让我们回到 80 年代,回到中国计算机事业起步的年代,回到严援朝们的芳华。

20 世纪 80 年代,美国的计算机技术已经相当成熟,这时我国也开始引进和制造计算机。从时间上来看我们已经落后在起跑线上了,不但如此,在引进计算机后还遇到了难以跨越的困难:当时的计算机只能输入、显示和打印英文,基本不支持涉及汉字的操作。语言的门槛成了当时中国计算机发展的瓶颈。为此,1983 年,国家计算机工业局在北京召开了计算机协调会议,会议决定把生产 IBM  PC 兼容机定为中国计算机发展的主攻方向

这时的严援朝是电子部六所一室的一名普通的助理工程师,电子部六所可以称为当代中国微型计算机的发祥地,而一室在六所称为微机研究室。严援朝从 1980 年开始就在这个研究室做事。严援朝也曾亲笔写过,虽然他离开六所这么多年了,但是六所给他的知识和机遇,六所的艰辛研究生活,六所的学术气氛使严援朝一生难忘。这不仅是他在六所成名,在六所渡过了他最有精力创造和最有灵感的几年,在六所学到了他以后赖以为生的技能;更主要的是严援朝的同事们和老师们给他的潜移默化的影响使他今天仍然能做老实人,仍然能在技术发展的竞争中有一席之地。

由于工农兵学员的出身,严援朝当时在所里的地位可没有现在这么高,所以在那场计算机协调会议虽然有六所参加,但其中并没有严援朝的身影,当严援朝听他的同事崔健说 PC 的汉字系统由于难度太大,在计划会议上无人愿接时,严援朝认为这也许是他的一个提拔机遇,于是他大胆提出愿意负责这个项目,做个课题组长。严援朝没想到当时的国家计算机局负责人,现任中央政治局常委俞正声居然同意了。

所里正式批准,严援朝的生活也从此开始改变。严援朝给这项目取了个英文名字:ChineseCharacterDOS,简称 CCDOS 。当时全所只有一台 IBM PC ,严援朝的辈份低,每星期只有两个下午可以上机。所里给严援朝分了两个刚毕业的大学生和一个中专生,再加上崔健和严援朝,全组共五个人。

难,实在是难!

 

(IBM PC)

凭着一本复印的 DOS 手册和一本硬件手册,严援朝和他的团队开始了高速运转。严援朝是搞硬件出身的。在这以前 3 年,严援朝和其他同事自己搭过几种微机,严援朝设计过单板机,显示字模控制器,他一直使用的是摩托罗拉的芯片。严援朝也搞过软件,写过汇编程序,写过监控程序固化成 ROM 。严援朝还写过应用程序。有了这样的基础,严援朝做这个项目也并不是两眼一摸黑。

1983 年 3 月,为了向专家们证明用软件方案能在 IBM PC 上显示汉字,严援朝用 BASIC 写了一个程序,在显示器上画出了一屏“甲”,第二屏显示的全是 “田”,在此之前,汉字在计算机上显示都是通过硬件实现的,谁也没有用过纯软件的方法显示过汉字,利用这个特点在不增加硬件的前提下是可以显示汉字的。通过进一步的研究严援朝得知在 PC 的 ROMBIOS 中有标准的显示模块,打印模块,输入模块,这三大模块提供了实现汉字输入输出的基础

1983 年 4 月电子部计算机局在六所召开了方案论证会,在这个会上严援朝代表全组提出了汉字系统的方案。 经过一场争论,电子部计算机局和所领导批准了严援朝的方案,严援朝带着他的团队开始了这个项目。

现在的程序员可能不能理解为什么这个项目要电子部批准,因为那时候什么项目都是国家计划,六所也是国家单位,这个批准在当时来说是至关重要的。1983 年 5 月电子计算机局在南京召开六五计划会,严援朝这个小人物作为六所 PC 汉字系统项目的代表,在会上做了关于汉字系统的汇报。在这个会上, PC 汉字系统得到正式批准,严援朝被要求在 1983 年 8 月底的全国计算机展览会上正式展出。

时间紧迫,这时候,在北京严援朝的课题组出了一件意外的事故。唯一的一台 IBM PC 由于电源插错而将电源烧毁,没有机器怎么工作?这件事现在想起来严援朝都后怕。那些天严援朝真是急疯了,他的爱人说,这个机会对他来说是难得,对国家来说是重要的,机器坏了他的责任是第一,到时候做不出来,他对谁都无法交代,没办法,向领导汇报吧。好在由计算机局出面,直接向外商购买了新的电源,这个过程花了近一个月的时间。

6 月 24 日,严援朝正式开始开发 CCDOS 。那时侯严援朝真的是废寝忘食,每天常常只吃一顿晚饭,一天睡三四个小时,也正是从那时起严援朝在六所出名了。

CCDOS 遇到过很多技术难题:当时显示卡只能支持到320×200分辨率,这样的分辨率用来显示英文文没有问题,一个英文字符用 7 条线就可以显示清楚,所以可以支持 25 行显示,而一个汉字要 15 条线才能显示清楚,所以最多只能支持 10 行汉字和一行提示。但 CCDOS 又必须支持 25 行的英文软件,这下可把严援朝难坏了。严援朝花费了15 天时间想出来做一个“虚拟屏”,用自动判断的方法解决了这个问题。 这样一来, CCDOS 就能支持 25 行的 BASIC、EDIT、WordStar、dBASE II 等英文软件了。虽然支持得不够完美,但不管怎么说,“能出来就是好家伙”。

功夫不负有心人,严援朝成功地完成了 CCDOS 要解决的基本问题,它们是 :

  • 内码直接采用 GB 码高位加 1 。
  • 在系统中使用单双混合的文字数据。
  • 在无序的单字节显示要求下,完成双字节汉字的判断。
  • 为 PC 增加或者说扩展了键盘接口, 使各种汉字输人法得以实现。
  • 为 DOS 增加或者说扩展了打印接口, 使汉字打印成为可能。
  • 实现了虚拟显示空间,以满足对显示器的要求。
  • 模拟了人击键盘的时序,使词组和汉字的正确接收成为可能。

1983 年 8 月底, CCDOS 在展览会上露面,轰动一时。很快的,在之后的一两年里,各种各样的 DOS 如雨后春笋般冒了出来,对此严援朝说过:“我的源代码谁都可以 Copy ,谁都可以分析,我是国家工作人员,如果这东西对大家有用,我干嘛护着不给大家。”同时严援朝也没有在 CCDOS 上署名,1997 年接受采访时他说,“CCDOS是国家‘六五’项目,再说,我们家也没有这个传统。直到现在,我写程序从来不署名。”

CCDOS 不仅开创了我国中文信息处理技术的全新局面,而且以后几乎所有国内最流行的中文系统软件的开发者都是从一行一行地认真地读了 CCDOS 的源程序然后才开始自己的编程工作的。 在当时的条件和环境下能开发出 CCDOS ,仅仅一句天赋过人是概括不了的,在足够的天赋下,仍然需要持续的学习和专注,才有可能达到如此成就。

(2002 年的严援朝[左])

1985 年,严援朝已经在用 C++ 了,用完 C++ 马上又要改用 Java ,在四通利方时,他要求自己做到凡是公司涉及的新技术他都要会,就像他所说的:“做软件就是在不断地明确目标,就是搞清楚你的 GO 是什么,所有的软件都逃不出那三句话—— IF、THEN、ELSE 。棒的程序员很快能够知道自己的 GO 是什么,没长进的程序员老也弄不清楚自己到底要干嘛,所以永远处在学习过程中,手里永远拿着一本书,永远在学,永远也学不会。”

料:

严援朝.CCDOS 与长城微机(献给电子部第六研究所成立30周年),《电子出版》1995 年 01 期