What Hath Woz Wrought 沃兹做了什么

作者: Andy Hertzfeld 日期: September 1979 人物: Andy Hertzfeld, Steve Wozniak, Victor Bull 主题: Apple II, Prototypes, Printers 概括: The first product I developed for Apple

In the summer of 1979, I abandoned grad school to start working at Apple Computer as a systems programmer. I was already thoroughly obsessed with their main product, the Apple II, so it was a dream come true to become an Apple employee and meet the amazing people behind the company.

1979 年夏天,我放弃了研究生学业,开始在苹果电脑公司担任系统程序员。
我已经完全痴迷于他们的主要产品 Apple II,所以成为一名 Apple 员工并认识公司背后的出色人员是我的梦想成真。

I became even more excited when I found out about the first project that I was slated to work on: an inexpensive little graphical printer. Most printers were large, loud and expensive, printing by impacting an inky ribbon. Apple collaborated with a small, local start-up named Trendcom that had a different approach, relying on coated thermal paper that darkened when heat was applied. The “print-head” was a column of seven tiny thermal elements that got hot when enabled. It was almost silent as it glided across the page, printing up to 80 characters per line at 40 characters per second.

当我发现我要从事的第一个项目:一台廉价的小型图形打印机时,我变得更加兴奋。
大多数打印机体积大、噪音大且价格昂贵,通过撞击墨色带进行打印。
苹果与一家名为 Trendcom 的当地小型初创公司合作,该公司采取了不同的方法,依靠涂层热敏纸,加热时颜色会变暗。
“打印头”是一列由七个微型热敏元件组成的列,启用后会变热。它在页面上滑动时几乎没有声音,以每秒 40 个字符的速度每行打印最多 80 个字符。

Trendcom controlled their printer with a relatively expensive digital board that included a microprocessor and memory chips. Apple planned to buy printer mechanisms from Trendcom bereft of their digital board, saving almost a third of the total cost of the printer. Instead, we planned to use software on the Apple II to do most of the controlling. My job was to write that software.

Trendcom 使用相对昂贵的数字板控制他们的打印机,其中包括微处理器和存储芯片。
苹果计划从 Trendcom 购买没有数字板的打印机机制,这样可以节省打印机总成本的近三分之一。
相反,我们计划使用 Apple II 上的软件来完成大部分控制。
我的工作是编写该软件。

I was pleased by the similarities between the printer project and Apple’s floppy drive, an awesome design that was peak Woz, his crowning glory. Woz had taken a standard Shugart floppy drive, and discarded most of its pricey controller board, using the Apple II to do the work instead, which saved cost while increasing capacity, flexibility and performance. We were going to do essentially the same thing with the Trendcom printer, only this time I got to be Woz, or at least the software side of him.

我对打印机项目和苹果软盘驱动器之间的相似之处感到很高兴,这是一个很棒的设计,是沃兹的顶峰,他的最高荣耀。
Woz 采用了标准 Shugart 软盘驱动器,并放弃了大部分昂贵的控制器板,转而使用 Apple II 来完成这项工作,从而节省了成本,同时提高了容量、灵活性和性能。
我们打算对 Trendcom 打印机做基本上相同的事情,只是这次我必须成为沃兹,或者至少是他的软件方面。

The only other engineer on the project was Victor Bull, who was the hardware designer and project leader. Vic, who was smart with a dry sense of humor and a soft spoken, laconic manner, sat down with me on my second day of work and introduced me to the details of my new project. The printer software that I was to write would live on a 2K byte ROM chip on the interface board that Vic was designing. It needed to provide an easy way for the user to print the contents of their graphics screen and also to print 80 columns per line of text, from both Basic and Pascal. It also needed to be finished within a couple of months, so we could ship it in time for Christmas 1979, now less than five months away.

该项目中唯一的另一位工程师是 Victor Bull,他是硬件设计师和项目负责人。
维克很聪明,有一种冷幽默,说话轻声细语,态度简洁,在我工作的第二天,他和我坐下来,向我介绍了我的新项目的细节。
我要编写的打印机软件将运行在 Vic 设计的接口板上的 2K 字节 ROM 芯片上。
它需要为用户提供一种简单的方法来打印图形屏幕的内容,并从 Basic 和 Pascal 中打印每行文本 80 列。
它还需要在几个月内完成,这样我们就可以在 1979 年圣诞节之前及时发货,现在距离现在还有不到五个月的时间。

It took about a week to write the low level routines that managed the position and temperature of the thermal elements and paper. We decided that sending a “control-Q” to the printer should print whatever was displayed on the Apple II’s 280 by 192 graphics screen. After some coding and debugging, it was thrilling to watch the embryonic prototype print a sharp, clear rendition of the current hi-res screen.

编写管理热敏元件和纸张的位置和温度的低级例程大约花了一周的时间。
我们决定向打印机发送“control-Q”应该打印 Apple II 280 x 192 图形屏幕上显示的任何内容。
经过一些编码和调试后,看到胚胎原型打印出当前高分辨率屏幕的锐利、清晰的效果真是令人兴奋。

Finally, we were ready to try to print some text (which was harder than graphics since you had to worry about character generation and layout). I started considering what the Silentype’s initial utterance should be. Being a programmer, the first thing I thought of was “Hello, World!” but I knew we could probably do better than that so I started asking around for suggestions.

最后,我们准备尝试打印一些文本(这比图形更难,因为您必须担心字符生成和布局)。
我开始考虑 Silentype 最初的话语应该是什么。
作为一名程序员,我首先想到的是“Hello, World!”但我知道我们可能可以做得更好,所以我开始四处询问建议。

Someone mentioned that the first message ever sent electronically, tapped out in Morse code by Samuel Morse himself on May 24, 1844, was a bible quote, “What Hath God Wrought?”. In homage to both Samuel Morse and Steve Wozniak, we decided that the first official text printed by the printer should be “What Hath Woz Wrought?”. I wrote an Integer Basic program to print it out about 20 times and I saved the print-out for years but unfortunately lost it at some point, after it had mostly faded out anyway.

有人提到,第一条以电子方式发送的消息是塞缪尔·莫尔斯 (Samuel Morse) 本人于 1844 年 5 月 24 日用莫尔斯电码敲出的,其中引用了一句圣经:“上帝做了什么?”。
为了向塞缪尔·莫尔斯和史蒂夫·沃兹尼亚克致敬,我们决定打印机打印的第一个官方文本应该是“沃兹做了什么?”。
我编写了一个 Integer Basic 程序来打印它大约 20 次,并且我将打印输出保存了很多年,但不幸的是在某个时候它丢失了,无论如何,在它基本上已经消失之后。

I occasionally thought about what Apple marketing was going to call our new printer, but I never heard any discussion about it. I was afraid they would name it something generic, like “Apple Thermal Printer”, so I was pleased when George Johnson, the marketing person assigned to the project, stopped by and told me they had decided to christen it the “Apple Silentype”. As a lifelong punster I approved, even if it wasn’t a reference to the 5th verse of “Tangled Up In Blue” as I hoped.

我偶尔会想到苹果营销部门将如何称呼我们的新打印机,但我从未听到任何关于它的讨论。
我担心他们会给它起一个通用的名字,比如“Apple Thermal Printer”,所以当分配给该项目的营销人员 George Johnson 过来告诉我他们决定将其命名为“Apple Silentype”时,我很高兴。
作为一个终生的双关语者,我认可它,即使它不像我希望的那样引用了“Tangled Up In Blue”的第五节。

Vic was worried about the possibility of the software crashing while it was printing. It was possible for a thermal element to be inadvertently left on indefinitely, which could potentially ruin the thermal elements or even cause a fire. Vic solved the problem by adding a bit of hardware to cut current to elements that were left on for more than 10 milliseconds. He asked me to write a test to verify that his precaution was working as intended.

维克担心打印时软件可能会崩溃。
热元件有可能无意中无限期地保持开启状态,这可能会损坏热元件甚至引起火灾。
Vic 通过添加一些硬件来切断持续时间超过 10 毫秒的元件的电流,从而解决了这个问题。
他要求我编写一个测试来验证他的预防措施是否按预期发挥作用。

I wrote code to intentionally leave each thermal element on, to verify that Vic’s safety measure was effective. I was pleased to see that it worked perfectly, but also a little disappointed to miss more exciting behavior if it hadn’t. I thought of something else to try: what if I left an element on for 9.9 milliseconds, before turning it off for only 30 microseconds, then turning it back on again. It would effectively be on for more than 99% of the time while sidestepping Vic’s remedy. I couldn’t resist coding it up to see what would happen, so I fired up the modified test and nervously awaited the results.

我编写了代码故意让每个热元件保持打开状态,以验证 Vic 的安全措施是否有效。
我很高兴看到它完美地工作,但也有点失望,因为如果没有的话,我会错过更多令人兴奋的行为。
我想到了其他可以尝试的事情:如果我让一个元素打开 9.9 毫秒,然后将其关闭仅 30 微秒,然后再次打开它会怎么样。
它会在超过 99% 的时间里有效地开启,同时避开 Vic 的补救措施。 我无法抗拒对其进行编码,看看会发生什么,所以我启动了修改后的测试并紧张地等待结果。

At first nothing seemed to happen, except for a low volume humming sound emanating from the printer. Suddenly, after about five seconds, the paper started turning a deep, inky black, spreading out from the print-head organically, almost like a liquid, darker than I had ever seen before. I started smelling an acrid odor and noticed there were open flames near the print-head beginning to spread. I quickly reset the Apple II as I smothered the fire with my jacket. The foul smell drew a small crowd but mercifully no fire alarm.

起初似乎什么也没发生,除了打印机发出低音量的嗡嗡声。
突然,大约五秒钟后,纸张开始变成深邃的墨黑色,从打印头有机地散开,几乎像液体一样,比我以前见过的更黑。
我开始闻到一股刺鼻的气味,并注意到打印头附近有明火开始蔓延。我迅速重置了 Apple II,同时用夹克扑灭了火。
难闻的气味吸引了一小群人,但幸运的是没有火警警报。

Unfortunately, the experiment seemed to permanently damage the print-head; it burned out or possibly melted some of the thermal elements. The printer could no longer print text or graphics, but it still was able to set the paper on fire, so I kept it around for the occasional incendiary demo.

不幸的是,该实验似乎永久损坏了打印头;它烧坏或可能熔化了一些热元件。
打印机无法再打印文本或图形,但它仍然能够使纸张着火,所以我保留它以偶尔进行燃烧演示。

I finished the Silentype firmware around mid-September, which was theoretically early enough to meet our goal of a Christmas 1979 release, but Trendcom had a series of production issues that delayed shipments in any significant volume until early 1980. It sold pretty well for a while as the official printer for the Apple II, before it was replaced by the ImageWriter dot matrix printer around the end of 1983.

我在 9 月中旬左右完成了 Silentype 固件,理论上这足以满足我们 1979 年圣诞节发布的目标,但 Trendcom 遇到了一系列生产问题,导致大批量发货推迟到 1980 年初。
作为 Apple II 的官方打印机,它在一段时间内销量相当不错,随后在 1983 年底被 ImageWriter 点阵打印机取代。
目录