.IF XCRIBL THEN START . UNDERLINE ← ""; . FONT 1 "TIMESROMAN10" . FONT 2 "TIMESROMAN10I" . FONT 3 "GACHA10" . FONT 4 "MATH10" . FONT 5 "TIMESROMAN10B" . SELECT 1; .END ELSE UNDERLINE ← " "; ; .PAGEWIDTH ← IF XCRIBL THEN 79 ELSE 71; PAGEDEPTH ← 67; .PAGE FRAME PAGEWIDTH WIDE PAGEDEPTH HIGH; .TITLE AREA PREHEAD LINES 1 TO 2; .TITLE AREA HEADING LINES 3 TO 7; .AREA TEXT LINES 8 TO PAGEDEPTH; .<<TITLE AREA FOOTING LINES PAGEDEPTH-N+1 TO PAGEDEPTH;>> .PLACE PREHEAD; SELECT 1 .PLACE HEADING; SELECT 1 .PLACE TEXT; SELECT 1 .nofill preface 0; fill preface 1; .BEFORE PAGE .PLACE PREHEAD; .CENTER {FORUSE} .STANDARD TITLES .turn on "\↑{%" .oddleftborder ← evenleftborder ← 1000; .compact .at "~" phrase "~" "phrase" .macro indexer .at "~" phrase "~" "phrase" .turn on "{" .send index }~phrase~ {page}%{ .turn off . .at "~" phrase "~" "phrase" <<for standalone version>> .next page .at "[[" begin indent 0,0; nofill; .at "]]" end; continue; .at ";;" begin; nofill; .end; continue .MACRO KEEP(N) IF LINES LEQ N THEN NEXT PAGE;; .MACRO DOSEC(CNT, NSKIPS, NAME, LBL, LEVEL) BEGIN .FILL; NOJUST; INDENT INDENT2, INDENT2+5, 15; KEEP 6; SKIP NSKIPS .NEXT CNT .IF "LBL" NEQ NULL THEN LBL: {!}. NAME .SENDTOC(|{!}. NAME|, LEVEL) .END .MACRO SEC(NAME, LBL) DOSEC(SECTION, 2, |NAME|, LBL, 1) .SKIP 1 .MACRO SSEC(NAME, LBL) DOSEC(SSECTION, 1, |NAME|, LBL, 2) .MACRO SUBSEC(NAME, LBL) DOSEC(SSECTION, 1, |NAME|, LBL, 2) .MACRO SSSEC(NAME, LBL) DOSEC(SSSECTION, 1, |NAME|, LBL, 3) .COUNT SECTION FROM 1 TO 99; .COUNT SSECTION FROM 1 TO 99 IN SECTION PRINTING "!.1"; .COUNT SSSECTION FROM 1 TO 99 IN SSECTION PRINTING "!.1" .MACRO SH(HEAD!) SUBJECT ← "HEAD!"; .MACRO PTS BEGIN; NARROW 5,0; INDENT 0,2 .MACRO EPTS BREAK; END .MACRO DEFS BEGIN; NARROW 5,0; INDENT 0,26; TABS 27,30 .MACRO EDEFS BREAK; END .MACRO TOC INSERT CONTENTS; ISTOC←TRUE; PORTION BODY .MACRO SENDTOC(ENTRY,LEVEL) IF ISTOC THEN START .SEND CONTENTS ENTRY{PAGE} . .END .MACRO FINISH .IF ISTOC THEN START .PORTION CONTENTS; CENTER Contents .SKIP 4; NOFILL; RECEIVE; END .ISTOC←FALSE .MACRO SEE(LBL) "see page " ; PAGE! LBL .expur1←1;expur2←2;expur3←3; .FORUSE←"For Xerox Internal Use Only -- "&date; .macro expurgate(r) .if r="" then rr←1 else rr←r; .if rr=expur1 or rr=expur2 or rr=expur3 then start .macro question .tty←"Type 'X' if you want to expurgate."; .rr←tty;if rr="X" or rr="x" then start .tty←"Do you wish to expunge PARC material?"; .rr←tty;if rr="Y" or rr="y" then start . expur1←0; . FORUSE←"For Xerox Internal Use Only -- "&date; . end; .tty←"Do you wish to expunge experimental systems?"; .rr←tty;if rr="Y" or rr="y" then start . expur3←0; . FORUSE←"For Xerox Internal Use Only -- "&date; . end; .tty←"Do you wish to expunge proprietary material?"; .rr←tty;if rr="Y" or rr="y" then start . expur2←0; . FORUSE←"Cleared version of "&date; . tty←"Is this documentation for University of Rochester?"; . rr←tty; if rr="Y" or rr="y" then FORUSE←"For use only by University of Rochester"; . end; .end . .macro copyright .if expur2=0 then start .if XCRIBL then start %4c%* Xerox Corporation {year} .end else start Copyright Xerox Corporation {year} .end .end . .macro genindex .portion index .EVERY HEADING(|INDEX|,{date},{page}) .SKIP 3 .nofill .turn on "" .tabs 21,45 .letter ← phr ← waspg ← null; .at "~" phrase "~" pgno "%" .if ↑letter NEQ ↑"phrase"[1] then skip 1; .if ↑"phrase" NEQ ↑phr then . start . break . }phrase\ . \pgno{ . end .else . start . if pgno NEQ waspg then . start . if chars < 4 then . start . },{ . break . }\\pgno{ . end .else },pgno{; . end . end . phr ← "phrase"; . letter ← "phrase"[1]; . waspg ← pgno; . .receive "~~" .!und ← "---------------------------------------------------------------" . .macro italic(str) .turn on "%{"; .if xcribl then start . }%2str%*{ .end else start . }str{ <<really want to underline but too much confusion>> .end .turn off; . . .at "$&" str "&" italic(|str|) .macro under(str) .turn on "{"; .if xcribl then start . }str{ .end else start . }str{ .end .turn off; . . .at "$←" str "←" under(|str|) . .macro bolden(str) .turn on "%{"; .if xcribl then start . }%5str%*{ .end else start . }str{ .end .turn off; . . .at "$|" str "|" bolden(|str|)