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