Macros are fun. Having the right macro – especially one you’ve struggled to write yourself – is like a Get Out of Jail Free card. When the software you depend on doesn’t do what it claims to do, or what you need it to do, then sometimes a good macro will provide a way of escape.

Microsoft’s Visual Basic for Applications (VBA) is a good example.

Continue reading “Macros”

Technical Writing

Huge Specifications

Earlier in my career I had been responsible for writing Data Sheets and Application Notes. My new position, working on MHL, involved writing and editing the specification and compliance test spec, each of which were several hundred pages long. And they had multiple contributors, and multiple iterations of edits, corrections, clarifications, re-writes, etc.

Microsoft had improved Word since the 1990s, but it still was not an out-of-the-box content management tool. The company had struggled to justify putting in place a real content management tool, and – at best – had installed a document repository. So, what was I to do to manage the changes and reviews and approvals for these massive documents?

The work I was doing in Word was already seen as ‘magic’ by most of my peers. They were terrific engineers, but had never been called on to master Word.


I thought back to work I had done in Visual Basic some years before. I read up on the macro usage and object-oriented structure of Word. And, working in spare time for a couple of weeks, developed some lengthy macros, and a style of tracking changes, that served the team well for over 5 years.

Many times a question would come up: “Who requested this change on page XXX?” With the change history and notes in the document itself, I could answer this each time. When reviewers groaned at having to re-read the next draft, again at hundreds of pages, I explained, “You can just review the changes by using the history at the back of the document.” A sigh of relief, and the project moved forward.

I used the same approach to partially automate checking for field names used throughout the compliance test specification, and to generate various versions of the form to be used by customers with that spec. I searched for, but never really found, the best tool to migrate such form automation from Office documents to XML or even to Wiki pages. This is a challenge for the next project.

First Chip Software Tool

Silicon Image eventually came out with a chip which couldn’t be controlled by simple register reads and writes. The chip designers created a device which could accept a video input stream and scale the image to a new resolution. It could also superimpose a message or picture onto the stream: an on-screen display (OSD) message.QFP package

To define and modify these OSD messages (text or picture) one had to program a lot of registers for font, color, character strings and image. It was not practical to do this with peek-and-poke instructions.

I saw a problem waiting for a solution!

Continue reading “First Chip Software Tool”

Mainframe Word Processing?

Well, yes, the title is a blatant attempt to squeeze a few keywords into one phrase. But, yes, there was word processing on mainframe computers, even before there were PCs.
This is the story of bending such a text processing system to do my will.

Back in the olden days, there were things called “mainframe computers”. They got that name because they were in mainly big – very big – frames, and computed, and were kept in air-conditioned rooms while human beings lived in the heat and humidity that had been their lot in life for generations. Ah, to be a mainframe technician! It meant staying cool in the weather of the East Coast. But anyway, these massive machines were connected to terminals, each providing typed input and showing the output of programs running on the computer in a time-shared environment. Sounds like client-server? Well, not so far off.

Well, the mainframes had programs which could format text into printed materials. These were text processors. The output was printed on equally massive line printers in the same air-conditioned room as the mainframe. One had to walk down the hall to get one’s “print-out’, and check it for errors. IBM had a very good example of this system with their IBM/370’s and their Script/VS text processing program.

This was the beast that had to be tamed.

Continue reading “Mainframe Word Processing?”