[TUHS] Nice video with Brian Kernighan

Rich Morin rdm at cfcl.com
Mon Aug 22 06:07:42 AEST 2022

> On Aug 21, 2022, at 08:09, John Cowan <cowan at ccil.org> wrote:
> On Sat, Aug 20, 2022 at 2:26 PM Rich Morin <rdm at cfcl.com> wrote:
> - used AWK to convert the data for use with my SunCore interpreter
> What is this SunCore of which you speak?  Dr. Google reports too many confounds. ...

I was able to find some web mentions of the relevant SunCore.  I've put a set of links below, which others may well be able to improve upon.  Anyway, the SunCore Graphics Package shipped with early versions of SunOS. It was a set of C libraries which allowed programs to draw on the bitmapped display.  My interpreter read simple text commands (eg, "fn_name arg_1 ..."), parsed them, and made the specified library calls.


P.S. For the curious...

The dendrogram plotting software, which ran on U of MD's IBM and Univac mainframes, generated line printer plot files.  These used characters such as dashes and vertical bars to draw the dendrogram "trees".  So, Vicki's code needed to scan the files, extract the shape of each tree, and generate plotting commands for my interpreter.

The production process for that part of Vicki's thesis was roughly as follows:

- hand-code data files in a common, human-friendly format (vi)
- convert into formats for the IBM and Univac software (AWK)
- upload and process the files, then download the results
- analyze the line printer plot files of dendrograms (AWK)
- generate commands for the SunCore interpreter (AWK)
- run the interpreter, generating diagrams on the display
- dump bitmap images of the displayed diagrams
- print the images, using a dot-matrix printer

The text portion of the thesis was generated using a different tool chain:

- create and/or edit the thesis text (vi)
- format the text for printing (nroff)
- print on an IBM I/O selectric (Datel 30)

Printing on the Datel 30 was complicated by several factors.  It wanted BCDIC correspondence code, rather than ASCII.  Also, it needed null characters to provide enough time for various activities (eg, print ball rotation, carriage returns, line feeds).  And, given that paper feeding was a manual process, we needed a way to initiate printing of a new page, reprint botched pages, etc.  So, I wrote a small utility program that handled all of this.

# Links





More information about the TUHS mailing list