彭民德:《電子計算60年》(30) 在列印技術發展長河中,16針印表機未能曇花一現

彭民德發表於2016-12-05

印表機是重要的輸出裝置,常常需要用它列印文件和表格。隨著PC進入家庭,它也是一項重要家用電器。

現在想要列印文件,只要用“記事本”、“寫字板”、“WPS”或者“word”等編輯程式寫好,從程式執行視窗中找到列印按鈕,點按一下,文件就可以從開啟的印表機送出。想打螢幕圖形嗎?只要按一個叫Print Screen的鍵或者組合鍵Ctrl+P就行了。各種工具軟體,比如微軟的Office套件,無論是表格軟體還是幻燈片製作軟體,都有列印按鈕或選單項,讓人們很方便就可以印出想要的東西。可是,印表機也有一個60年進化的漫長過程。

上個世紀50年代末學習程式設計時,不講怎樣輸出。比如前面介紹的由北京大學、復旦大學等編寫的最早兩本程式設計教材,完全不涉及這個內容,程式的數值計算結果存放在一個記憶體單元裡就停機。到國防科研單位後用的早期計算機,輸出裝置只有紙帶數值輸出機,僅僅能夠輸出數值。當時的計算機內部和輸出紙帶上都還沒有字元的概念,紙帶上只能是一個跟著一個的數值。輸出紙帶卷的寬度跟如今超市裡收銀機給顧客的紙帶條差不多,但是功能遠不如今天的POS機。今天顧客得到的是張單子,有漢字,有排版,有日期,有對齊了的金額,有分項有彙總,一目瞭然。而早期的列印紙帶上每行只能列印一個數,整捲紙帶上除了一個接一個的數字,什麼都沒有

紙帶輸出要顧及數的定點與浮點兩種格式列印資料,無論多麼簡單的數,都用同樣的列印長度表示。比如定點方式表示整數:
1 列印成: 000 0 000000010 0
-1 列印成: 000 - 000000010 0
13579 列印成: 000 0 000135790 0
-246801 列印成: 000 - 002468010 0
浮點方式表示實數:
-246.801 列印成: 003 - 246801000 0

這種紙帶很難閱讀,技術人員通常還要用手工由此轉換成圖表,才能使用

70年代後期,隨著ALGOL 60的引進,使用了80行的紙帶輸出機。這種紙帶上有了字元,包括數字和英文,以及運算子號。每一行可以有80個字元,可以列印源程式的一個語句。用這種紙帶列印源程式和程式執行結果,上機環境比以前有了明顯改善。

80年代開始引進國外的針式印表機。此時的印表機在計算機系統中,已經是一臺自帶晶片、與主機可以經中斷通訊獨立工作的外部裝置了。開始較為流行的是EPSON的FX-100,這種印表機帶有9針字型檔。每個字元以精細的9х9鋼針擊打在色帶上,把字元印在色帶後面的列印紙上。色帶有十幾米長,每打一個字元,色帶就轉動到下一個擊打位置,以保證各個字元著色均勻,並避免色帶被鋼針重複擊打易擊穿。列印紙兩側有導流孔,列印當前字元後被齒輪帶動轉到下一個待列印的字元行。

應該說這是列印史上一個重要的里程碑,因為直到今天,紙帶針式印表機還在一些場所使用,它的歷史有30多年了。FX-100可以實現對字元的加大字號、加粗、上下標、加下劃線等不同方式列印。

跟如今相比,使用FX-100也還是不方便。所有的列印,包括印什麼字元和對字元的格式控制都得程式設計,由CPU的程式來控制。比如欲列印“y=ax3+bx2+cx+d”,那得要編制執行下列程式。
20 lprint chr$(27);“E”;
30 lprint “y=ax”;chr$(27);“F”;
40 lprint chr$(27);“S”;chr$(0);chr$(15);
50 lprint “3”;
60 lprint chr$(27);“T”;chr$(18);
70 lprint chr$(27);“E”;
80 lprint “+bx”;chr$(27);“F”;
90 lprint chr$(27);“S”;chr$(0);chr$(15);
100 lprint “2”;
110 lprint chr$(27);“T”;chr$(18);
120 lprint chr$(27);“E”;
130 lprint “+cx+d”;

程式中,有些語句純粹是送“esc控制碼”,控制後續字元的列印字型風格。印表機上沒有字型檔,列印的內容要從主機一方送去,列印效率就不高。這時的印表機不支援漢字,但後來有國人把這類印表機作了漢化,在主機上設定漢字的點陣字型檔,需要時,程式從計算機一方找出要用的漢字點陣碼序列,逐個位元組往印表機送,最終以點陣形式把漢字列印在列印紙上。一個16х16點陣的漢字,將要陸續送32個位元組,速度很慢,效率自然很低。

還有一個問題是這時期的某些印表機要在計算機主機板上插列印卡並要對列印卡及印表機上的開關和跳線進行設定,這要掌握相關知識,操作也需要時間和耐心。比如一種叫P1351的寬行印表機(效能上超過了FX-100),就要設定主機與印表機的通訊協議,要對各8位的三組開關進行設定。S1設定工作方式on/off,s3用於設定停止位個數,s4對應波特率設定。

1984年,上級給過筆者所在單位多臺Brother公司的印表機,其效能也要優於FX-100。可惜那種印表機用110伏交流電源,在不小心用220伏接連燒了兩臺後,便不敢放手使用而束之高閣了,許多人都沒有見到過它們。

有了點陣列印,除了列印資料和文字,列印圖形和實線以及表格就有了可能。比如微機出現後,80年代我們就有過如圖所示的BASIC語言圖形列印。

enter image description here

繼9針列印之後,1989年,日本率先推出了一款配裝16х16點陣,寬行132行的印表機,特別是它自帶GB-2312 16х16 “漢字硬字型檔”。這款印表機,一下子便從提高列印質量和列印速度並能夠列印漢字三個方面都有顯著發展,是一款當時最先進的印表機。湖南省電子×××從日本引進了這款印表機,而且購買了銷售權。憑藉他們當時較強的技術實力,擬自己開發驅動程式,將該款印表機命名為HN1600P(即湖南1600P),想借此闖出品牌。可是技術發展實在快,商業競爭無情。日本人在轉讓了這款印表機後不久,就在市面上推出了24針同型別寬行印表機,其中一款是EPSON LQ-1600K。這種印表機也自帶GB-2312 24×24漢字硬字型檔。字型字形、列印速度和使用的方便性又升級了,它對HN1600P構成了致命的打擊。而我們的×××,卻沒能及時開發出列印軟體,讓它變成商品。香餑餑沒有吃下去,反而如鯁在喉,很被動。筆者聽說上述情況後,實地去看到一大批那麼好的印表機擱置在庫房裡,由於缺乏驅動程式,沒有軟體,無法使用,無法銷售,也無法宣傳。別人的24針印表機已面市,後續開發也失去了意義,HN1600P就不得不被無形地“槍斃”了。可惜這麼好的印表機,連“曇花一現”的機會都沒有

很多同行都沒有用過16針這個檔次的印表機,也不知道有HN1600P。不知您是否想過,在印表機歷史上何以沒有16針印表機的地位?

在回顧電子計算曆史的時候,這款產品的命運能夠提供啟示,從技術層面,直接看到軟體的重要性。還可以看到,影響技術發展的因素是多方面的,“市場”也是一隻無形的手。由此聯想,各個時期處在不同層面的決策者,管理者們,是不是有許多案例和經驗教訓可以梳理呢。

筆者前面介紹過的水文流速儀檢定課題用的就是這樣一臺印表機HN1600P,那就自己試著寫列印驅動程式吧。當然這並不輕鬆,對自己的技術和耐心都是一種挑戰。後來的情況是,這樣做苦頭多於快樂,教訓多於經驗。不順心的時候筆者還曾經後悔過,何必為了省那點錢而自討苦吃呢?

我們用8086/8088組合語言,寫了1000多行的驅動程式。程式一開始就要修改中斷向量表,保留MS-DOS的INT 17H原來的列印驅動程式入口地址,把我們的程式入口地址寫入中斷向量表中,讓機器改用我們自編的列印驅動程式。經過努力,最終很好地滿足了課題的列印要求。還寫了一個分頁、摺疊列印程式。把132行的整個頁面分作兩欄作為左右兩個頁面,左右兩個頁面逐行同時列印,可以摺疊起來裝訂,起到了節省紙張,便於攜帶的作用。列印指定文字檔案時既可以不帶行號,也可以加行號。這個功能是我們獨立開發的,在其它印表機上沒有,起碼當時還沒有。

在PC機沒有連網前,要是每臺PC配備一臺印表機,太浪費了。為了發揮印表機的效益,人們要停機拔插印表機,搬來搬去,讓印表機在機房裡為多人陸續使用。後來人們開發列印共享器,把4臺主機的印表機介面連線到列印共享器上,經列印共享器再與印表機相連。共享器上的晶片將各主機啟動的列印作業排隊,逐個作業列印出去。這樣印表機可以不動,同時歸四個人使用。我校實驗中心唐民山、張學麗、華曉麗等同事就開發過列印共享器。

90年代後隨著網路技術的發展,共享印表機就變得容易了,只要把印表機設定為網路印表機,就可以在區域網上共享

90年代有一款松下1121針式印表機。列印寬度窄行80行,有24х24點陣漢字字型檔,價格只1500元左右,很適合家用。筆者和同事家的都用了好幾年。唯一的毛病就是噪音太大,讓隔壁房間也聽著不舒服,老伴常提意見,要我等會兒再打。在有了一臺彩噴印表機後對它才冷落下來。有意思的是,這款印表機十多年後市場上還在賣,價格都保持在1500元左右,這在IT市場上是不是也創下一個奇蹟呢。

筆者用的彩色噴墨印表機是EPSON PHOTO 895,EPSON公司把它定位為中檔的噴打。用噴墨印表機便進入了可以列印照片的時期。這款機器最顯著特點是列印彩色照片,色彩不太鮮豔,顯得比較自然。

彩色噴打除了有漂亮的列印效果,還有一個顯著優點就是沒有噪音,它默默無聞地埋頭工作。使用介面大為改善,印表機上有幾個按鈕,可以控制走紙、更換墨盒、列印測試頁。與主機用USB口連線,十分方便。還配備了一組實用程式,可以隨時顯示墨水餘量,提供噴頭、噴嘴檢測、清洗等功能。更換墨盒的操作也完全在軟體幫助下互動地進行。這種機器使用確實方便。

彩噴的最大問題是墨盒貴,消耗大。EPSON原裝墨盒黑色加彩色要200多塊錢一套,而且常年保持這個價。列印一張A4紙的文件成本要幾毛錢,照片要幾塊錢。EPSON公司規定只能用它的原裝墨盒才能得到保修和相關服務,我一直按照其要求,用原裝墨盒。後來看到其它印表機用相容墨盒也可以,而且我們2000年在辦公室使用佳能噴墨機的時候曾經用針頭注墨水,也能列印。於是也曾經買來相容墨盒用在我的印表機上,果然可以打。不過當印表機出了問題往EPSON維修站送修的時候,發生過這種情況,當修好取機時,他試機確實好了。可是筆者到附近電腦城的小店子買了一對相容墨盒,不能正常列印,只好回頭找他,說還沒修好。維修人員改用他們的原裝墨盒試機卻又是好的。他說是我的墨盒問題,我只好當場再次購買了EPSON原裝盒,它又好了,這讓筆者信服用原裝墨盒的必要性。

彩噴印表機還有一個問題,長時間不用時,列印頭可能會乾,導致噴嘴堵塞。08年暑假沒有用它,秋天黑色列印不連續了。先電子郵件問EPSON公司,工程師回答清洗不乾淨可以先等等,因為印表機有一定自己溶解乾枯墨水功能。後來不行,只好送修。沒想到搞了幾天,最後結論是無法修好了,要400多元換主機板。而這是一臺新噴打的價格,失去了修理價值。壞事變好事,該用鐳射印表機了。

1983年,Adobe公司提出PostScript頁面描述語言,1985年用於鐳射印表機。90年代中期後鐳射印表機流行起來。這種印表機將鐳射掃描技術和電子照相技術相結合。其基本工作原理是由計算機傳來的對頁面的二進位制資料資訊,通過視訊控制器轉換成視訊訊號,再由視訊介面/控制系統把視訊訊號轉換為鐳射驅動訊號,然後由鐳射掃描系統產生載有字元資訊的鐳射束,最後由電子照相系統使鐳射束成像並轉印到紙張上。

鐳射印表機字型質量最高,也沒有噪音。筆者現在使用的家用鐳射印表機是HP LaserJet P1007。它也用USB介面,印表機上有2MB記憶體,266MHz的處理器,故列印速度也高,每分鐘14頁。紙盒上可以放150頁A4紙。這款印表機當年購買價只840元,故價效比很高。軟體也不錯。有了它放在家裡,列印完全不成問題了。想打什麼就打什麼,文件、照片、網頁等,在相應介面上想打就啟動列印好了。也不用擔心假期一兩個月不用,碳粉會乾掉。

這臺印表機的故事是,它是越南產的,在包裝盒上明明白白印了“越南產品”(圖)。這是我在中國首次接觸和購買越南產品,而不是“Made in China”。這是惠普公司把在中國的生產轉向勞動力更低廉的越南的一個例證。

enter image description here

(與本文相關的更多內容可參看 彭民德《電子計算60年》第5章 個人計算靈活方便 電子工業出版社)

相關文章