|
|
1.1 root 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31: |associate(author;
32: incr A, clear T,
33: clear string T1 T2 T3
34: T4 T5 T6;
35:
36: store string A\nA T1,
37: store string I\nA T2,
38: store string L\nA T3,
39: store string D\nA T4,
40: store string E\nA T5,
41: store string R\nA T6;
42:
43: [name $;
44: incr T, set string T1 $;]
45: [initials $;
46: incr T, set string T2 $;]
47: [location $;
48: incr T, set string T3 $;]
49: [department $;
50: incr T, set string T4 $;]
51: [extension $;
52: incr T, set string T5 $;]
53: [room $;
54: incr T, set string T6 $;]
55: [$;
56: incr T,
57: set string T\nT $;])
58: |comment<summary: author (name, initials, location, department, extension, room for title box and coversheet)>
59:
60: |associate(document;
61: incr D, clear T,
62: clear string T1 T2 T3;
63:
64: store string S\nD T1,
65: store string F\nD T2,
66: store string W\nD T3;
67:
68: [number $;
69: incr T, set string T1 $;]
70: [file_case $;
71: incr T, set string T2 $;]
72: [work_program $;
73: incr T, set string T3 $;]
74: [$;
75: incr T,
76: set string T\nT $;])
77: |comment<summary: document (number, file_case, work_program for title box and coversheet)>
78:
79: |environment(title;
80: divert.input on TI;)
81: |comment<summary: title (title of document for title box and coversheet)>
82:
83: |environment(date;
84: divert.string DT;)
85: |comment<summary: date (date of tm for title box and coversheet)>
86:
87: |environment(abstract;
88: divert.input on AS;
89:
90: sawabstract on)
91: |comment<summary: abstract (abstract for coversheet)>
92:
93: |environment(keywords;
94: divert.input on KW;
95:
96: sawkeywords on)
97: |comment<summary: keywords (keywords for cover sheet)>
98:
99: |environment(titlebox;
100: ;
101:
102: new.page, indent.line +4.375i, string LO,
103: blank.lines 2, size -2, remember P0,
104: page.offset -.5i, text "subject:", new.line,
105: return P0, indent +4.875i, text "date:", blank.lines,
106: text "from:", indent -4.875i, new.line, page.offset +.5i, size +2,
107: line.length -3i, font bold, return P0, fill off,
108: macro TI, fill on, line.length +3i, new.line,
109: size -1,
110: |for i in 1 2 3 4 5 6 7 8 9 [
111: if begin "\nD>=$i",
112: new.line, text "Work Program ", string W$i,
113: text " File Case ", string F$i,
114: if end,
115: ]
116: size +1,
117: return P0, indent +4.75i, line.length +3i,
118: string DT,
119: |for i in 1 2 3 4 5 6 7 8 9 [
120: if begin "\nA>=$i",
121: blank.lines,
122: string A$i, new.line,
123: string L$i, text " ",
124: string D$i, new.line,
125: string R$i, text " ",
126: string E$i,
127: if end,
128: ]
129: line.length -3i, spacing on, blank.lines, fill off,
130: string S1, fill on, indent -4.75i, blank.lines 3,
131: center on, font roman, text italics "TECHNICAL MEMORANDUM",
132: center off, minimum.lines 2)
133: |comment<summary: titlebox (produce title box here)>
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153: |associate(mercury;
154: clear T, clear string T0 T1
155: T2 T3 T4 T5
156: T6 T7 T8 T9;
157:
158: if begin "@\*(T0@yes@",
159: incr M,
160: set string M\nM
161: "CHM - Chemistry and Materials",
162: if end,
163: if begin "@\*(T1@yes@",
164: incr M, set string M\nM
165: "CMM - Communications",
166: if end,
167: if begin "@\*(T2@yes@",
168: incr M, set string M\nM
169: "CMP - Computing",
170: if end,
171: if begin "@\*(T3@yes@",
172: incr M, set string M\nM
173: "ELC - Electronics",
174: if end,
175: if begin "@\*(T4@yes@",
176: incr M, set string M\nM
177: "LFS - Life Sciences",
178: if end,
179: if begin "@\*(T5@yes@",
180: incr M,
181: set string M\nM
182: "MAN - Manufacturing",
183: if end,
184: if begin "@\*(T6@yes@",
185: incr M,
186: set string M\nM
187: "MAS - Mathematics and Statistics",
188: if end,
189: if begin "@\*(T7@yes@",
190: incr M, set string M\nM
191: "MKT - Marketing",
192: if end,
193: if begin "@\*(T8@yes@",
194: incr M, set string M\nM
195: "PHY - Physics",
196: if end,
197: if begin "@\*(T9@yes@",
198: incr M, set string M\nM
199: "STD - Standards",
200: if end;
201:
202: [chm;
203: incr T, incr M,
204: set string M\nM
205: "CHM - Chemistry and Materials";]
206: [cmm;
207: incr T, incr M,
208: set string M\nM "CMM - Communications";]
209: [cmp;
210: incr T, incr M,
211: set string M\nM "CMP - Computing";]
212: [elc;
213: incr T, incr M,
214: set string M\nM "ELC - Electronics";]
215: [lfs;
216: incr T, incr M,
217: set string M\nM "LFS - Life Sciences";]
218: [man;
219: incr T, incr M,
220: set string M\nM "MAN - Manufacturing";]
221: [mas;
222: incr T, incr M,
223: set string M\nM
224: "MAS - Mathematics and Statistics";]
225: [mkt;
226: incr T, incr M,
227: set string M\nM "MKT - Marketing";]
228: [phy;
229: incr T, incr M,
230: set string M\nM "PHY - Physics";]
231: [std;
232: incr T, incr M,
233: set string M\nM "STD - Standards";]
234: [yes;
235: incr T,
236: set string T\nT yes;]
237: [no;
238: incr T,
239: set string T\nT no;])
240: |comment<summary: mercury (chm, cmm, cmp, elc, lfs, man, mas, mkt, phy, std mercury distribution for cover sheet)>
241:
242: |associate(proprietary_class;;;
243: [yes;
244: set string PC yes;]
245: [no;
246: set string PC no;])
247: |comment<summary: proprietary_class (proprietary classification for cover sheet)>
248:
249: |associate(government_security;;;
250: [yes;
251: set string GS yes;]
252: [no;
253: set string GS no;])
254: |comment<summary: government_security (government security clearance for cover sheet)>
255:
256: |associate(earlier;;;
257:
258: [document_number $;
259: set string EN $;]
260: [$;
261: set string EN $;])
262: |comment<summary: earlier (replacing earlier document_number for cover sheet)>
263:
264: |associate(att;;;
265:
266: [is_release yes;
267: set string AR yes;]
268: [is_release no;
269: set string AR no;]
270: [yes;
271: set string AR yes;]
272: [no;
273: set string AR no;])
274: |comment<summary: att (is_release for cover sheet)>
275:
276: |environment(dh_name;
277: divert.string DH;)
278: |comment<summary: dh_name (department head's name for cover sheet)>
279:
280: |environment(director_name;
281: divert.string DN;)
282: |comment<summary: director_name (director's name for cover sheet)>
283:
284: |environment(distribute_complete_memo;
285: divert.input on CM;)
286: |comment<summary: distribute_complete_memo (distribution list for complete memo for cover sheet)>
287:
288: |environment(distribute_cover_sheet;
289: divert.input on CS;)
290: |comment<summary: distribute_cover_sheet (distribution list for cover sheet for cover sheet)>
291:
292: |associate(add_totals;;;
293:
294: [text $;
295: add constant TP $, add constant OM $;]
296: [other $;
297: add constant OC $;]
298: [figures $;
299: add constant FG $;]
300: [tables $;
301: add constant TB $;]
302: [references $;
303: add constant RF $;])
304: |comment<summary: add_totals (text, other, figure, table, reference counts for cover sheet)>
305:
306: |environment(other;
307: store OM P;)
308: |comment<summary: other (end of text body/start of attached pages)>
309:
310: |environment(cover_sheet;
311: clear string PH PF, new.page, line.spacing 1,
312: inline off, size 10, inline on, font.family helvetica,
313: line.length 7.5i, page.length +.75i, page.offset .3i, indent 0,
314: cs_heading_page1,
315: cs_title,
316: cs_authors,
317: cs_numbers,
318: cs_keywords,
319: cs_mercury,
320: cs_abstract_part1,
321: cs_footer_page1,
322: cs_abstract_part2,
323: cs_heading_page2,
324: cs_distribution_list,
325: cs_spacing,
326: cs_government,
327: cs_att,
328: cs_signatures,
329: cs_proprietary,
330: cs_earlier,
331: cs_footer_page2,
332: cs_abstract_continuation,
333: cs_distribution_continuation;)
334: |comment<summary: cover_sheet (produce the coversheet here)>
335:
336: |environment(cs_heading_page1;
337: spacing on, goto 0.2i, inline off, size 16, space 18, font bold,
338: title "AT&T Bell Laboratories" " " "Document Cover Sheet",
339: title " " " " "for Technical Memorandum";
340:
341: thick.line)
342:
343: |environment(cs_title;
344: new.line, remember P0,
345: text bold "Title:", horizontal.motion 5.5i,
346: text bold "Author's Date:",
347: return P0,
348: indent +.5i, line.length 5.0i,
349: macro TI,
350: line.length 7.5i, indent -.5i,
351: return P0, blank.lines, indent.line 6i,
352: string DT, new.line;
353:
354: blank.lines -0.1i, thick.line)
355:
356: |environment(cs_authors;
357: tab.stops 1.5i 4.45i 5.7i 6.95i,
358: if else "\nA>1",
359: set string SS "s",
360: if else,
361: clear string SS,
362: tab, text bold "Author",
363: string bold SS,
364: tab, text bold "Location", tab, text bold "Ext.",
365: tab, text bold "Dept.",
366: tab.stops 4.2i 4.5i 5.5i 6.7i, indent .2i,
367: |for i in 1 2 3 4 5 6 7 8 9 [
368: if begin "\nA>=$i",
369: new.line, string A$i, tab,
370: string L$i, text " ", string R$i, tab,
371: string E$i, tab, string D$i,
372: if end,
373: ]
374: new.line;
375:
376: blank.lines -0.1i, thick.line)
377:
378: |environment(cs_numbers;
379: tab.stops 0.9i 3.4i 5.65i,
380: if else "\nD>1",
381: set string SS "s",
382: if else,
383: clear string SS,
384: tab, text bold "Document No",
385: string bold SS, text bold ".",
386: tab, text bold "Filing Case No",
387: string bold SS, text bold ".",
388: tab, text bold "Project No",
389: string bold SS, text bold ".",
390: tab.stops 0.8i 3.5i 5.75i,
391: |for i in 1 2 3 4 5 6 7 8 9 [
392: if begin "\nD>=$i",
393: new.line, tab, string S$i,
394: tab, string F$i, tab, string W$i,
395: if end,
396: ]
397: new.line;
398:
399: blank.lines -0.1i, thick.line)
400:
401: |environment(cs_keywords;
402: text bold "Keywords:",
403: blank.lines 0.1i, indent.line .2i, adjust off,
404: macro KW, new.line;
405:
406: blank.lines -0.1i, thick.line)
407:
408: |environment(cs_mercury;
409: tab.stops 2i 4i,
410: text bold "MERCURY Announcement Bulletin Sections:",
411: blank.lines 0.1i, indent .9i, inline off, size 8, space 10,
412: |for i in 1 4 7 [
413: if begin "\nM>=$i",
414: set i $i+1,
415: set j $i+2,
416: string M$i, tab,
417: string M\ni, tab,
418: string M\nj,
419: if end,
420: ]
421: ;
422:
423: blank.lines -0.1i, thick.line)
424:
425: |environment(cs_abstract_part1;
426: text bold "Abstract:", minimum.lines 0, paragraph,
427: remember P0;)
428:
429: |environment(cs_footer_page1;
430: goto 9.375i,
431: remember P1,
432: thick.line,
433:
434: store TT P, decr TT,
435: add TT TP, add TT OC,
436: add constant TT 2,
437: store OC TT, sub OC OM,
438: store TP TT, sub TP OC,
439: size -2,
440: text bold "Total Pages ", text "(including document cover sheet): ",
441: size +2, number TT,
442:
443: return P1, blank.lines .5i, indent .6i,
444: if else begin "@\*(PC@yes@",
445: text bold " AT&T \(em PROPRIETARY (Restricted)",
446: indent -.1i,
447: new.line, text "Solely for authorized persons having a need to know",
448: new.line, text "Use pursuant to Company Instructions.",
449: new.line, text "Requires Department Head approval (see below).",
450: if end,
451: if else begin,
452: text bold " AT&T \(em PROPRIETARY",
453: indent -.1i,
454: new.line, text "Use pursuant to Company Instructions",
455: if end,
456: indent 0,
457:
458: return P1, blank.lines .2i, indent.line 5.25i,
459: text bold "Mailing Label";)
460:
461: |environment(cs_abstract_part2;
462: return P0, indent .2i, line.length 7i,
463: invoke at constant 9.375i C0, macro AS,
464: if begin "@\n(.z@CO@",
465: invoke end, rename CO AS,
466: store diversionheight MA,
467: if end;
468:
469: invoke off C0, line.length 7.5i)
470:
471: |environment(cs_heading_page2;
472: new.page, spacing on, goto 0.2i,
473:
474: text bold "Initial Distribution Specifications",
475: horizontal.motion 3.0i,
476: string bold S1,
477: new.line;
478:
479: blank.lines -0.1i, thick.line)
480:
481: |environment(cs_distribution_list;
482: horizontal.motion 1.25i,
483: text bold "Complete Copy", horizontal.motion 2.75i,
484: text bold "Cover Sheet Only",
485: new.line, remember P0, fill off, indent .2i,
486: set T 6.25i,
487: if "!@\*(PC@yes@",
488: if "@\*(DH\*(DN@@",
489: add constant T 0.6875i,
490: if "!@\*(GS@yes@",
491: add constant T 0.25i,
492: if "\nA<=3",
493: add constant T 0.4375i,
494: if "\nA<=6",
495: add constant T 0.4375i,
496: if "@\*(EN@@",
497: add constant T 0.25i,
498: invoke on number T C0,
499: macro CM,
500: if else begin "@\n(.z@CO@",
501: invoke end, rename CO CM,
502: store diversionheight MM,
503: if end,
504: if else,
505: clear string CM,
506: return P0, indent 4i,
507: invoke on number T C0,
508: macro CS,
509: if else begin "@\n(.z@CO@",
510: invoke end, rename CO CS,
511: store diversionheight MS,
512: if end,
513: if else,
514: clear string CS;
515:
516: indent 0, invoke off C0)
517:
518: |environment(cs_spacing;
519: goto 6.75i,
520:
521: if "!@\*(PC@yes@",
522: if "@\*(DH\*(DN@@",
523: blank.lines 0.6875i,
524: if "!@\*(GS@yes@",
525: blank.lines 0.25i,
526: if "\nA<=3",
527: blank.lines 0.4375i,
528: if "\nA<=6",
529: blank.lines 0.4375i,
530: if "@\*(EN@@",
531: blank.lines 0.25i;
532:
533: thick.line)
534:
535: |environment(cs_government;
536: if begin "@\*(GS@yes@",
537: text bold "Government Security Classified",
538: blank.lines -0.1i, thick.line,
539: if end;)
540:
541: |environment(cs_att;
542: if else begin "@\*(AR@no@",
543: text bold "Future AT&T Distribution by ITDS - ",
544: text "Obtain approval for release to any AT&T employee",
545: blank.lines -0.1i, thick.line,
546: if end,
547: if else begin,
548: text bold "Future AT&T Distribution by ITDS - ",
549: text "Release to any AT&T employee (excluding contract employees)",
550: blank.lines -0.1i, thick.line,
551: if end;)
552:
553: |environment(cs_signatures;
554: if else "\nA>1",
555: set string SS "s",
556: if else,
557: clear string SS,
558: text bold "Author Signature",
559: string bold SS, new.line,
560: if "\nA=0",
561: blank.lines 0.4375i,
562: |for i in 0 3 6 [
563: tab.stops 2.635i 5.25i,
564: if "\nA>$i",
565: blank.lines 0.1i,
566: if "\nA=($i+1)",
567: line 2.25i,
568: if begin "\nA=($i+2)",
569: line 2.25i, tab, line 2.25i,
570: if end,
571: if begin "\nA>($i+2)",
572: line 2.25i, tab, line 2.25i, tab, line 2.25i,
573: if end,
574: new.line,
575: if begin "\nA>$i",
576: tab.stops 0.25i 2.875i 5.5i,
577: set i $i+1,
578: set j $i+2,
579: set k $i+3,
580: tab, string A\ni,
581: tab, string A\nj,
582: tab, string A\nk,
583: if end,
584: ]
585: ;
586:
587: blank.lines -0.1i, thick.line)
588:
589: |environment(cs_proprietary;
590: if begin "@\*(PC@yes@",
591: text bold "Organizational Approval ",
592: size -1, text "(Department Head approval required)", size +1,
593: if begin "@\*(DH\*(DN@@",
594: tab.stops .5i 4i,
595: blank.lines 0.1i,
596: tab, tab, line 3i,
597: new.line, tab.stops 7iR,
598: tab, text "Department Head",
599: blank.lines -0.1i, thick.line,
600: if end,
601: if end,
602: if begin "!@\*(DH\*(DN@@",
603: if begin "!@\*(PC@yes@",
604: text bold "Organizational Approval ",
605: size -1, text "(Optional)", size +1,
606: if end,
607: tab.stops .5i 4i,
608: blank.lines 0.1i,
609: if else begin "!@\*(DH@@",
610: if else begin "!@\*(DN@@",
611: tab, line 3i, tab, line 3i,
612: if end,
613: if else begin,
614: tab, tab, line 3i,
615: if end,
616: if end,
617: if else begin,
618: tab, tab, line 3i,
619: if end,
620: new.line, tab.stops .8i 4.3i,
621: if else begin "!@\*(DH@@",
622: if else begin "!@\*(DN@@",
623: tab,
624: string DH, text ", Department Head",
625: tab,
626: string DN, text ", Director",
627: if end,
628: if else begin,
629: tab, tab,
630: string DH, text ", Department Head",
631: if end,
632: if end,
633: if else begin,
634: tab, tab,
635: string DN, text ", Director",
636: if end,
637: blank.lines -0.1i, thick.line,
638: if end;)
639:
640: |environment(cs_earlier;
641: if begin "!@\*(EN@@",
642: text bold
643: "Supersedes or amends document number ",
644: string EN,
645: new.line, blank.lines -0.1i, thick.line,
646: if end;)
647:
648: |environment(cs_footer_page2;
649: text bold "For Use by Recipient of Cover Sheet:",
650: new.line, remember P0, size -3, space -4,
651: blank.lines -.1i, line.length 3.5i, indent .1i, indent.line -.1i,
652: text "Computing network users may order copies via the ",
653: text italics "library -k ", text "command;",
654: new.line, text "for information, type ",
655: text italics "man library ", text "after the ",
656: size -1, text "UNIX", size +1, text " prompt.",
657: new.line, blank.lines 0.05i, indent.line -.1i,
658: text "Otherwise:",
659: new.line,
660: text "Enter ", size -1, text "PAN", size +1, text " if ",
661: size -1, text "AT&T-BL (SS#", size +1, text " if non ",
662: size -1, text "AT&T-BL.) ", size +1, line 1.2i,
663: new.line, text "Return this sheet to any ",
664: size -1, text "ITDS", size +1, text " location.",
665: new.line, return P0, line.length 8.0i, indent 4i,
666: text "\ Internal Technical Document Service",
667: blank.lines, tab.stops 1i 2i 3i,
668: text "( ) AK 2H-28", tab, text "( ) IH 7M-103", tab,
669: text "( ) DR 2F-19", tab, text "( ) NW-ITDS", new.line,
670: text "( ) ALC 1B-102", tab, text "( ) MV 3L-19", tab,
671: text "( ) INH 1C-114", tab, text "( ) PR 5-2120", new.line,
672: text "( ) CB 30-2011", tab, text "( ) WH 3E-204", tab,
673: text "( ) IW 2Z-156", new.line,
674: text "( ) HO 4F-112", tab, tab, text "( ) MT 3B-117", new.line,
675: line.length 7.5i;
676:
677: indent 0, SPACE)
678:
679: |environment(cs_abstract_continuation;
680: if begin "\n(MA>0",
681: new.page, spacing on, goto 0.2i,
682:
683: horizontal.motion 5.2i, string bold S1,
684: new.line, blank.lines -0.1i, thick.line,
685:
686: new.line, text bold "Title:",
687: horizontal.motion 0.375i, macro TI,
688: new.line, blank.lines -0.1i, thick.line,
689:
690: center on, text bold "Abstract (continued)", new.line, center off,
691: fill off, macro AS, fill on,
692: blank.lines -0.1i, thick.line,
693: if end;)
694:
695: |environment(cs_distribution_continuation;
696: store T MM,
697: store totrap P0,
698: if "\n(MS>\nT",
699: store T MS,
700:
701: if begin "\nT>0",
702: if begin "\nT>=\n(P0",
703: new.page, spacing on, goto 0.2i,
704:
705: horizontal.motion 5.2i, string bold S1,
706: new.line, blank.lines -0.1i, thick.line,
707:
708: new.line, text bold "Title:",
709: horizontal.motion 0.375i, macro TI,
710: new.line, blank.lines -0.1i, thick.line,
711: if end,
712: new.line,
713:
714: remember P0,
715: if begin "\n(MM>0",
716: horizontal.motion 1.25i,
717: text bold "Complete Copy (continued)", new.line,
718: fill off, macro CM, fill on,
719: if begin "\n(MM>\n(MS",
720: blank.lines -0.1i, thick.line,
721: if end,
722: if end,
723:
724: if begin "\n(MS>0",
725: return P0, horizontal.motion 4.5i,
726: text bold "Cover Sheet Only (continued)", new.line,
727: fill off, macro CS, fill on,
728: if begin "\n(MS>=\n(MM",
729: blank.lines -0.1i, thick.line,
730: if end,
731: if end,
732: if end,
733: new.line;)
734:
735:
736: |environment(signature;
737: here on, minimum.lines 1, indent +30, line.length +3i,
738: |for i in 1 2 3 4 5 6 7 8 9 [
739: if begin "\nA>=$i",
740: blank.lines 3,
741: string bold A$i,
742: if end,
743: ]
744: line.length -3i, indent -30, blank.lines -1;
745:
746: minimum.lines 3)
747: |comment<summary: signature (signatures and typing credits)>
748:
749: |environment(:document;
750: clear A D M
751: OC TP OM,
752: clear string GS PC;)
753:
754: |environment(:document_save;
755: ;)
756:
757: |environment(:document_restore;
758: ;)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.