1981-1982.
Highlight: First job using Unix and the C programming language.
Background: Linotype was in the publishing industry for a long time. The original Linotype machines were mechanical typesetting machines used by most newspapers. A mechanical keyboard would create a line of type and melted lead was used to cast a slug with that text. The slugs were then arranged manually to lay out a page of newsprint. I remember doing a class visit (high school?) to one of the newspapers in Montreal any seeing this done.
The Linotype group in Montreal had originally developed a computerized typesetting system using as a CPU the AES computer boards.
The team was building a new typesetting system based on the Zilog Z80 computer. The basic desktop hardware and software were developed by the team in Montreal. The new desktop stations had a network “bus” (multi-wire) design to support multiple users. The software was written in Z80 assembler. The video screen was a 24×80 character array (similar to old-style terminals). The SW implemented a markup language similar in concept to Unix nroff/troff (or HTML for the web).
The target output “printer” for the system was a laser typesetter. The laser would expose photographic film at a 1000×1000 dpi resolution. The film could then be developed and used to create photo-etched printing plates.
My resume at the time did include a short description of my microcomputer hobby. I was familiar with the Intel 8080 and Zilog Z80 computers. I had done operating system development (based on the CPM OS) and even some HW design and builds.
When I was hired, they were just starting work on a “Page Composition Terminal”. The PCT included the Z80 CPU so it fit within the Linotype local area network. A Motorola 68000 processor driving a graphics display added the ability to display the page layout without needing the laser printer and related photography processing expenses. Fonts definitions for the video display were taken from the laser printer.
My role was to implement the basics of the Z80/68000 inter-CPU communications and the OS core on the 68000. (There were 2 or 3 of us in the PCT team).
One project for the PCT was to decide on a high-level language to be used for the 68000 PCT SW. We evaluated Pascal and C. Settled on a C cross-compiler from a company called Whitesmiths that ran on a Digital PDP-11 Unix platform. (According to Wikipedia, Whitesmiths Ltd. was a software company founded in New York City by P.J. Plauger, Mark Krieger and Gabriel Pham… It sold … the first commercial C compiler, Whitesmiths C). This was my first exposure to Unix and the C programming language.
Story: This was my first experience working with a HW engineer — a very experienced HW engineer. One incident that I remember is a story I have told many times.
There was a problem in the CPU-CPU interface that I was convinced was a HW problem. The HW engineer was also convinced it was a SW problem. Did I mention he was very experienced? Rather that argue about who had to fix the problem, he suggested we take turns on how to debug the problem. First, we’d look for the HW problem. Then we’d look for the SW problem.
We spent several days debugging. Turned out, there was a bug in the HW… And there was a bug in the SW with the same symptom!
Story: Initial 68000 development used a 68000-based ICE using 8″ floppy disks for storage. One demo disk that came with the system was a port of the original Colossal Cave Adventure game. The first computer game I remember playing. Of course, we didn’t just play the game. We printed out the text files and reverse-engineered to create our own cheat-sheet. Phrases that are still stuck in my head: “xyzzy” is the magic word; “you are in a maze of twisty little passages, all the [same/different]”.
The group in Montreal was eventually laid off with HW/SW development consolidated in the US only. One day the manager of the Montreal group announced that Linotype would be closing down the group “in a few weeks”. (It was actually several months). Not much work got done in the office during those months.
Story: One of the junior HW engineers would only show up in the office for an hour or so every week to collect his pay check. We learned later that he had found a job elsewhere. So he collected the Linotype pay check (and the severance pay) in addition to his new job pay.
My side project in the pre-layoff period was to port the CP/M operating system to the Z80 CPU. I had a small collection of CP/M games and utilities (including a text editor) that I demo’ed to the team.
Story: I was not impressed by the manager at Linotype. I don’t remember precisely why. Probably related to office and company politics making it difficult to move the project ahead… Or maybe I was just an arrogant young a**hole. When the office closed down, I was going to tell him this, but decided that it was not worth it. Later in my career (at AES), he was hired as a manager for an interesting new project. He asked that I be assigned to the project. Good thing I had kept my mouth shut!