[Remind-Fans] The Good Old Days?

Ian! D. Allen idallen at idallen.ca
Sat Jan 1 02:42:20 EST 2022


> Finally somebody mentions something close to runoff :-)

Okay, you asked for it: In 2008 I was entrusted with a DVD with some
raw files copied from the 9-track tape archive save set from the
UofWaterloo MFCF Honeywell 36-bit-word GCOS mainframe machine that was
decommissioned in 1992.  The files were raw block copies of the tapes
in 36-bit proprietary Honeywell media code format.  The dates on the
save files ranged from 1972 through to 1992.  The files were not ASCII.

In 2012, for the 50th anniversary of our UW amateur theatre group "FASS",
one of our merry band wrote a Ruby program to decode the tape save
files on the DVD into ASCII so that we could look for old versions of the
scripts we wrote back then.  Our theatre group (http://fass.uwaterloo.ca/)
used the Honeywell ROFF system to format the scripts starting around 1975,
later moving to the locally-written "TF" system, based on ROFF:

    https://www.thinkage.ca/gcos/expl/tf/expl.html
    https://www.thinkage.ca/gcos/expl/tf/diff.html
    https://www.thinkage.ca/gcos/expl/tf/summ.html
    https://www.thinkage.ca/gcos/expl/tf/manu/manu.html

I wrote a 350-line ROFF/TF macro package that formatted scripts.  An excerpt:

    .zz -- Define a character abbreviation and print a cast of characters
    .at na
    .mg
                     . . . . . . . . . . . . . . . . . .
    .if "@2"<1 endif2
    .warning "'.na @1' needs long and short character names"
    .define_name "@1" "<@1>--UNDEFINED" "<@1>"
            ^^(@1_number).  <@1>    --NO~LONG~NAME--~       ~(--NO~SHORT~NAME--)
    .el endif2
    .if "@3"<1 endif3
    .warning "'.na @1' needs a third argument (short name)"
    .define_name "@1" "@2" "@2"
            ^^(@1_number).  <@1>    ^^(@1_longname)~        ~(--NO~SHORT~NAME--)
    .el endif3
    .define_name "@1" "@2" "@3"
            ^^(@1_number).  <@1>    ^^(@1_longname)~        ~(^^(@1_shortname))
    .en endif3
    .en endif2
    .mg

    .zz
    .en na

The macros would produce a script for the line printer that looked like this
(66 lines by 85 columns; overstriking to produce BOLD text has been removed):

    1:1              An Old-FASSioned Love Song           Page 1

                        Work Until You Drop

    Characters defined for this scene:

        1. <fo>    IVAN WORKIN . . . . . . . . . . . . (IVAN)
        2. <w1>    WANDA RAILROAD  . . . . . . . . .  (WANDA)
        3. <w2>    ALBA LIVLONGDAY . . . . . . . . . . (ALBA)
        4. <w3>    JUSTIN PASSATIMAWAY . . . . . . . (JUSTIN)
        5. <w4>    DINAH WONCHABLOW  . . . . . . . .  (DINAH)
        6. <be>    BELLA COSE  . . . . . . . . . . .  (BELLA)
        7. <kn>    ED NAUSEUM  . . . . . . . . . . . . . (ED)
        8. <ed>    IRMA GEDDON . . . . . . . . . . . . (IRMA)
        9. <to>    TOM FOOLERY . . . . . . . . . . . .  (TOM)
       10. <pa>    TYRONE SHOELACE . . . . . . . . . (TYRONE)
       11. <gy>    HARRY KRISHNA . . . . . . . . . .  (HARRY)
       12. <bo>    MENACHAM DEAD . . . . . . . . . (MENACHAM)
       13. <mo>    MOLLY CODDLE  . . . . . . . . . .  (MOLLY)
       14. <pr>    PRISCILLA CHARYBDIS . . . . .  (PRISCILLA)
       15. <ga>    GAYLE FORCE . . . . . . . . . . .  (GAYLE)
       16. <gr>    PENNY LANE  . . . . . . . . . . .  (PENNY)
       17. <la>    LANCE A. BOYLE  . . . . . . . . .  (LANCE)
       18. <va>    JOHNSON N. JOHNSON  . . . . . .  (JOHNSON)
       19. <eu>    EUSTACE CLARENCE SCRUBB . . . .  (EUSTACE)
       20. <se>    HERB N. BLIGHT  . . . . . . . . . . (HERB)
       21. <go>    MACK O. RONI  . . . . . . . . . . . (MACK)
       22. <em>    EMMANUEL GOLDSTEIN  . . . . . . (EMMANUEL)
       23. <mu>    MUFFY FORNOTHING  . . . . . . . .  (MUFFY)
       24. <cw>    CATHERINE WHEEL . . . . . . .  (CATHERINE)
       25. <cp>    CUPID . . . . . . . . . . . . . .  (CUPID)

    (THE  SCENE  TAKES  PLACE  IN  THE  (AS  YET UNFINISHED) ICR
    BUILDING.   AS  THE  CURTAIN  RISES,  A  GROUP  OF   WORKMEN
    (INCLUDING  WANDA,  ALBA,  JUSTIN  AND DINAH) ARE SCAMPERING
    ABOUT OVER  EVERYTHING.   IVAN,  CARRYING  A  CLIPBOARD,  IS
    SUPERVISING.  OFF TO ONE SIDE OF THE STAGE IS A SIGN READING
    "SAFETY FIRST!  ANYONE NOT WEARING PROTECTIVE GEAR  ON  SITE
    WILL  BE  SHOT  ON  SIGHT".   BACKSTAGE  ARE  SIGNS  READING
    "WILLIAM G.  DAVIS  INSTITUTE  FOR  COMPUTER  RESEARCH"  AND
    "COMPUTERIZED  UNDERGRADUATE PROGRAM FOR INTELLIGENT DATING"
    WITH THE INITIAL LETTERS WHICH SPELL  "CUPID"  DISTINGUISHED
    FROM  THE REST.  ALSO OFF TO ONE SIDE IS A LARGE FEATURELESS
    BOX WHICH WILL BECOME THE "INSTA-STAGE")

    (ENTER MENACHAM, WITH MACK AND CAMPUS COPS.   MACK  AND  THE
    CAMPUS COPS ARE ARMED)

    1-MENACHAM DEAD(1):   All  right,  who's the idiot in charge
       here?

    (IVAN STEPS FORWARD PROUDLY)

    2-IVAN WORKIN(1):  I'm the idiot in charge, sir.

    1:1 Page 1               FASS 1988            89/03/02-13:31

The macros were converted to nroff for use under Unix in later years,
which was a real pain because macro and register names had to be shortened
to only two characters.  An excerpt:

    .zz -- Define a character abbreviation and print a cast of characters
    .de na
    .TT "\\$1" "\\$2" "\\$3"
    .if \\nx==0 \{.
    \\*(WA '.na \\$1' needs one-character abbreviation.
         ?.   <\\$1>    --NO~LONG~NAME--~^A~(--NO~SHORT~NAME--)
    .\}
    .if \\nx==1 \{.
    \\*(WA '.na \\$1' needs long and short character names
    .DZ "\\$1" "<\\$1>--UNDEFINED" "<\\$1>"
         \\n(\\$1N. <\\$1>  --NO~LONG~NAME--~^A~(--NO~SHORT~NAME--)
    .\}
    .if \\nx==2 \{.
    \\*(WA '.na \\$1' needs a third argument (short name)
    .DZ "\\$1" "\\$2" "\\$2"
         \\n(\\$1N. <\\$1>  \\*(\\$1L~^A~(--NO~SHORT~NAME--)
    .\}
    .if \\nx==3  \{.
    .DZ "\\$1" "\\$2" "\\$3"
         \\n(\\$1N. <\\$1>  \\*(\\$1L~^A~(\\*(\\$1S)
    .\}
    ..

So, yes, almost RUNOFF!

-- 
| Ian! D. Allen, BA-Psych, MMath-CompSci  idallen at idallen.ca Ottawa CANADA
| Home: www.idallen.com  Contact Improvisation Dance: www.contactimprov.ca
| Former college professor of Free/Libre GNU+Linux @ teaching.idallen.com
| Improve democracy www.fairvote.ca and defend digital freedom www.eff.org


More information about the Remind-fans mailing list