9base

revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log | Files | Refs | README | LICENSE

tmac.cs (21324B)


      1 '''\"					coversheet to match version 8/06/87
      2 '''\"						from comp center 1.30 7/20/87
      3 '''\"					1/22/97 spacing change in addresses;
      4 '''\"						email on separate line - mdm
      5 '''\" registers
      6 '''\"	a - abstract continuation flag - 0 (no), >0 (yes)
      7 '''\"	b - mercury selections counter
      8 '''\"	c - distribution continuation flag - 0 (no), 1 (yes)
      9 '''\"	d - flag for length calculation
     10 '''\"	e - complete copy basic distribution length
     11 '''\"	g - complete copy overflow distribution length
     12 '''\"	h - cover sheet basic distribution length
     13 '''\"	i - cover sheet overflow distribution length
     14 '''\"	k - keyword flag - 0 (none), 1 (some) - reused as scratch
     15 '''\"	l - number of vertical units per line - troff
     16 '''\"	m - memorandum type flag - 1 TM, 2 IM, 3 TC
     17 '''\"	n - document number counter
     18 '''\"	o - title flag - 0 (no), 1 (yes - vertical size of title diversion)
     19 '''\"	p - proprietary notice flag - 0 (none), 1 (default), 2(BR)
     20 '''\"	r - security flag - 0 (no), 1 (yes)
     21 '''\"	s - software flag - 0 (no), 1 (yes)
     22 '''\"	t - mark title position
     23 '''\"	u - author count
     24 '''\"	q v w x y z- scratch - but remembered
     25 '''\"	aa - ship to itds
     26 '''\" strings
     27 '''\"	a) b)- mercury info
     28 '''\"	d) - date
     29 '''\"	k) - keywords
     30 '''\"	N1 - first document number
     31 '''\"	p) q) r)- proprietary 1
     32 '''\"	s) - time stamp string
     33 '''\"	t) - memo type (TM, IM, TC)
     34 '''\"	v) - document nos
     35 '''\"	w) - filing case nos
     36 '''\"	x) - work project nos
     37 '''\"	e( - earlier document
     38 '''\"	m( n( o( p(- authors 1-3 sig
     39 '''\"	r( - responsible person
     40 '''\"	s( - S software string
     41 '''\"	t( - memo type ("for Technical Memorandum", etc.)
     42 '''\"	x( - Mailing Label or DRAFT
     43 '''\"	N2 N3- 2nd 3rd document number
     44 '''\" 	Fi - up to 3 filing cases
     45 '''\"	Xi - up to 3 work program numbers
     46 '''\" diversions
     47 '''\"	WB - abstract
     48 '''\"	ZI - author info section
     49 '''\"	ZC - complete copy addressee primary
     50 '''\"	ZO - complete copy addressee overflow
     51 '''\"	ZS - cover sheet addressee primary
     52 '''\"	ZD - cover sheet addressee overflow
     53 '''\"	ZN - document number info
     54 '''\"	WT - title
     55 '''\"
     56 '''\" initialization
     57 '''\"
     58 '''\"		get ms if not loaded
     59 .if !\n(PS .so /usr/lib/tmac/tmac.s
     60 .	\" to foil ms
     61 .if !'\*(d)'' \{\
     62 .	tm You're trying to load the coversheet macros twice - havoc will result
     63 .	tm I'm quitting to keep you from wasting paper
     64 .	ex \}
     65 .rn FE F6
     66 .nr ST 0
     67 .nr CS 1
     68 .ch NP 16i
     69 .ch FO 16i
     70 .ch FX 16i
     71 .ch BT 16i
     72 .nr FM .01i
     73 .nr 1T 1
     74 .nr BE 1
     75 .nr PI 5n
     76 .if !\n(PD .nr PD 0.3v
     77 .pl 11i
     78 .de FT
     79 .fp 1 H
     80 .fp 2 HI
     81 .fp 3 HB
     82 .fp 4 HX
     83 .ps 10
     84 .vs 12
     85 ..
     86 .de FB
     87 .ie !'\\*(TF'' .FP \\*(TF
     88 .el .FP times
     89 .ps 10
     90 .vs 12
     91 ..
     92 .FT
     93 .de FE
     94 .F6
     95 .nr F4 +\\n(FP
     96 ..
     97 .nr a 0 1
     98 .nr b 0 1
     99 .nr c 0
    100 .nr d 0
    101 .nr e 0
    102 .nr g 0
    103 .nr h 6
    104 .nr i 0
    105 .nr k 0
    106 .nr m 0
    107 .nr n 0 1
    108 .nr o 0
    109 .nr p 1
    110 .nr q 0
    111 .nr r 0
    112 .nr s 0
    113 .nr t 0
    114 .nr u 0 1
    115 .nr v 0
    116 .nr w 0
    117 .nr x 0
    118 .nr y 0
    119 .nr z 0
    120 .nr dv 0
    121 .if '\*(.T'aps' .nr dv 1
    122 '''\"	initialize units per vertical space
    123 .nr l 120
    124 .nr lp 66
    125 .nr np 2 1
    126 .af np i
    127 .nr tp 2 1
    128 .nr tc 2
    129 .af tc i
    130 .nr la 0
    131 .nr a1 0
    132 .nr a2 0
    133 .nr ar 0
    134 .nr u! 1
    135 .nr ud 1
    136 .nr ra 1
    137 .di ZI
    138 .di
    139 .di ZN
    140 .di
    141 .di ZC
    142 .di
    143 .di ZO
    144 .di
    145 .di ZS
    146 .di
    147 .di ZD
    148 .di
    149 '''\"initialize date string - keep for 1st pg of tm
    150 .if \n(mo-0 .ds d) January
    151 .if \n(mo-1 .ds d) February
    152 .if \n(mo-2 .ds d) March
    153 .if \n(mo-3 .ds d) April
    154 .if \n(mo-4 .ds d) May
    155 .if \n(mo-5 .ds d) June
    156 .if \n(mo-6 .ds d) July
    157 .if \n(mo-7 .ds d) August
    158 .if \n(mo-8 .ds d) September
    159 .if \n(mo-9 .ds d) October
    160 .if \n(mo-10 .ds d) November
    161 .if \n(mo-11 .ds d) December
    162 .as d) " \n(dy, 20\n(yr
    163 .ds DY \*(d)
    164 '''			\" initialize strings
    165 .ds m!
    166 .ds m(
    167 .ds n!
    168 .ds n(
    169 .ds o!
    170 .ds o(
    171 .ds x!
    172 .ds y!
    173 .ds z!
    174 '''			\" initialize proprietary notice
    175 .ds o) "Lucent Technologies \(em PROPRIETARY
    176 .ds p) "Use pursuant to Company Instructions
    177 .ds q)
    178 .ds r)
    179 '''			\" initialize trademark symbol
    180 .ds MT \v'-0.5m'\s-4TM\s+4\v'0.5m'
    181 .ds s) 0
    182 '''			\"initialize csmacro version string
    183 .ds ve MCSL (07/12/90)
    184 ....in 0
    185 '''\"
    186 '''			\" macros to collect information
    187 '''\"
    188 .de DT 				\" macro for date
    189 '''\"					store date if non-empty
    190 .if !'\\$1'' .ds d) \\$1 \\$2 \\$3 \\$4
    191 .ds DY \\$1 \\$2 \\$3 \\$4
    192 ..
    193 .de TI				\" macro for title -TI = mm(TL)
    194 .br
    195 .nr aa 0
    196 .nr TV 1
    197 .ds x( "Mailing Label \}
    198 .in 0
    199 .fi
    200 .ll 4.25i
    201 '''\"					diversion for title ZT = mm(tI)
    202 .di WT
    203 ..
    204 .de AH				\" macro for author info AH = mm(AU)
    205 '''\"		name loc dept ext room mail_addr company
    206 '''\"					don't count author unless non-empty
    207 .br
    208 .di
    209 .if !'\\$1'' .nr u \\n+u
    210 .nr AV \\nu
    211 .if \\nu=1 \{\
    212 .	br
    213 '''\"					end title diversion on first author
    214 .	di
    215 .	nr o \\n(dn
    216 .	ll
    217 .	nf
    218 .	ds d! \\$3
    219 .	nr m2 \\$3/10 \}
    220 .ta 0.3i 3.i 4i 5.5i
    221 .br
    222 .ds D\\nu \\$2 \\$3
    223 .ds \\nuL \\$5, x\\$4
    224 '''\"					append to author list ZI = mm(aV)
    225 .da ZI
    226 	\\$1	\\$2 \\$5	\\$4	\\$7
    227 .br
    228 .da
    229 .if !'\\$6'' \{\
    230 .da ZI
    231 	(\\$6)
    232 .br
    233 .da \}
    234 '''\"					end append; info for signature lines
    235 .AA \\nu "\\$1" \\$3 \\$2 "\\$4" \\$5 \\$6
    236 .ta 0.5i 1.0i 1.5i 2.0i 2.5i
    237 ..
    238 .de AA
    239 .\"ft 3
    240 .di M\\$1
    241 \\$2
    242 .di
    243 .di A\\$1
    244 \\$2
    245 .if !'\\$3'' Org. \\$3
    246 .if !'\\$4'' \\$4 \\$6
    247 .if !'\\$5'' \\$5
    248 .if !'\\$7'' \\$7
    249 .sp .05i
    250 .br
    251 .di
    252 .ft
    253 .sy echo \\$2 >/tmp/tt\\n($$
    254 .sy sed -f /usr/lib/tmac/name.sed /tmp/tt\\n($$ >/tmp/tx\\n($$
    255 .so /tmp/tx\\n($$
    256 .sy rm /tmp/tx\\n($$ /tmp/tt\\n($$
    257 .if \\$1<2 .ds T1 \\*(T1-gre
    258 .da G9
    259 \\$4-\\$3-\\*(T1
    260 .br
    261 .da
    262 .if !'\\*(d!'\\$3' \{\
    263 .	nr u! \\n(u!+1
    264 .	nr m3 \\$3/10
    265 .	if !\\n(m2=\\n(m3 .nr ud \\n(ud+1 \}
    266 .ie \\$1<4 \{\
    267 .	as m! \\l'2.25i'	
    268 .	as m( 	\\$2 \}
    269 .el .ie \\$1<7 \{\
    270 .	as n! \\l'2.25i'	
    271 .	as n(	\\$2 \}
    272 .el \{\
    273 .	as o! \\l'2.25i'	
    274 .	as o(	\\$2 \}
    275 ..
    276 .de TO	\"begin list of im to people
    277 .nr TO 1
    278 .di 1T
    279 ..
    280 .de ET		\"end list of im to people & output pg
    281 .di
    282 .SR
    283 ..
    284 .de AP				\" at&t responsible person AP = mm(rP)
    285 .br
    286 .di
    287 .if !'\\$1'' .ds r( \\$1
    288 .rm AP
    289 ..
    290 .de SA				\" macro for abstract info SA = mm(AS)
    291 .br
    292 .ie \\n(.$ \{\ 
    293 .ds a( \\$1
    294 .if '\\$1'no' .ds a(\}
    295 .el .ds a( ABSTRACT
    296 .nr CS 0
    297 .di
    298 .fi
    299 .nr LL 7.0i
    300 .FB
    301 .ft 1
    302 .di WB				\" WB = mm(aS)
    303 ..
    304 .de SE 				\" macro for end of abstract info SE = mm(AE)
    305 .br
    306 .di
    307 .nr la \\n(dn
    308 .nr CS 1
    309 .ll
    310 .FT
    311 .ft 1
    312 .nf
    313 ..
    314 .de KW				\" macro for keyword info KW = mm(OK)
    315 .ds k)
    316 .if !'\\$1'' .as k) \\$1
    317 .if !'\\$2'' .as k); \\$2
    318 .if !'\\$3'' .as k); \\$3
    319 .if !'\\$4'' .as k); \\$4
    320 .if !'\\$5'' .as k); \\$5
    321 .if !'\\$6'' .as k); \\$6
    322 .if !'\\$7'' .as k); \\$7
    323 .if !'\\$8'' .as k); \\$8
    324 .if !'\\$9'' .as k); \\$9
    325 '''\"					set k flag if we have some keywords
    326 .ie !'\\*(k)'' .nr k 1
    327 .el .nr k 0
    328 ..
    329 .de TY				\" macro for document type TY = mm(MT)
    330 .if '\\$1'TM' \{\
    331 .	nr m 1
    332 .	ds t) TM
    333 .	ds QF TECHNICAL MEMORANDUM
    334 .	ds t( "for Technical Memorandum \}
    335 .if '\\$1'IM' \{\
    336 .	nr m 2
    337 .	ds t) IM
    338 .	ds QF INTERNAL MEMORANDUM
    339 .	ds t( "for Internal Memorandum \}
    340 .if '\\$1'TC' \{\
    341 .	nr m 3
    342 .	ds t) TC
    343 .	ds QF TECHNICAL CORRESPONDENCE
    344 .	ds t( "for Technical Correspondence \}
    345 .ie '\\$2'y' .nr s 1
    346 .el .nr s 0
    347 ..
    348 .de NU				\" macro for document number info NU = mm(dN fC wP)
    349 .ie \\ns=1 .ds s( S
    350 .el .ds s(
    351 .ie \\n(wp=0 \{\
    352 .	ie '\\$5'' .ds CX 000000-0000
    353 .	el .ds CX \\$5
    354 .	ds X1 \\*(CX
    355 .	nr wp \\n(wp+1 \}
    356 .el \{\
    357 .	ds CX \\$5
    358 .	if !'\\$5'' \{\
    359 .		if \\n(wp=1 .ds X2 \\*(CX
    360 .		if \\n(wp=2 .ds X3 \\*(CX
    361 .		if \\n(wp=3 .ds X4 \\*(CX
    362 .		if \\n(wp=4 .ds X5 \\*(CX
    363 .		nr wp \\n(wp+1
    364 .		ds x) s\}\}
    365 .if !'\\$4'' \{\
    366 .	ie !\\n(fc=0 \{\
    367 .		if \\n(fc=1 .ds F2 \\$4
    368 .		if \\n(fc=2 .ds F3 \\$4
    369 .		if \\n(fc=3 .ds F4 \\$4
    370 .		if \\n(fc=4 .ds F5 \\$4
    371 .		ds w) s
    372 .		nr fc \\n(fc+1 \}
    373 .	el \{\
    374 .		ds F1 \\$4
    375 .		nr fc \\n(fc+1 \} \}
    376 .ie !'\\$1'' \{\
    377 .	ds NN \\$1-\\$2-\\$3\\*(t)\\*(s(
    378 .	if \\nn=0 .ds N1 \\*(NN
    379 .	if \\nn=1 \{\
    380 .		ds v) s
    381 .		ds N2 \\*(NN\}
    382 .	if \\nn=2 .ds N3 \\*(NN
    383 .	if \\nn=3 .ds N4 \\*(NN
    384 .	if \\nn=4 .ds N5 \\*(NN
    385 .	ie \\nn<4 .as x! \\l'2.25i'	
    386 .	el ie \\nn<7 .as y! \\l'2.25i'	
    387 .	el .as z! \\l'2.25i'	
    388 .	nr n \\n+n \}
    389 .if !'\\$6'' \{\
    390 .	ie !\\n(a!=0 \{\
    391 .		if \\n(a!=1 .as Z1 "	\\$6
    392 .		if \\n(a!=2 .as Z1 \\$6
    393 .		nr a! \\n(a!+1 \}
    394 .	el \{\
    395 .		ds Z1 "	\\$6
    396 .		nr a! \\n(a!+1 \} \}
    397 .el .ds NN
    398 .ta 0.8i 3.5i 5.55i
    399 .br
    400 .da ZN				\" ZN = mm(dM fC wO)
    401 	\\*(NN	\\$4	\\*(CX
    402 .br
    403 .da
    404 .ta 0.5i 1.0i 1.5i
    405 ..
    406 .de MY				\" macro for mercury selections MY = mm(mE)
    407 .ds a)
    408 .ds b)
    409 .if '\\$1'y' \{\
    410 .	as a) "	CHM - Chemistry and Materials
    411 .	nr b \\n+b \}
    412 .if '\\$2'y' \{\
    413 .	as a) "	CMM - Communications
    414 .	nr b \\n+b \}
    415 .if '\\$3'y' \{\
    416 .	as a) " 	CMP - Computing
    417 .	nr b \\n+b
    418 .	if \\nb=3 .rn a) b) \}
    419 .if '\\$4'y' \{\
    420 .	as a) "	ELC - Electronics
    421 .	nr b \\n+b
    422 .	if \\nb=3 .rn a) b) \}
    423 .if '\\$5'y' \{\
    424 .	as a) "	LFS - Life Sciences
    425 .	nr b \\n+b
    426 .	if \\nb=3 .rn a) b) \}
    427 .if '\\$6'y' \{\
    428 .	as a) "	MAS - Mathematics and Statistics
    429 .	nr b \\n+b
    430 .	if \\nb=3 .rn a) b) \}
    431 .	if \\nb<6 \{\
    432 .	if '\\$7'y' \{\
    433 .		as a) "	PHY - Physics
    434 .		nr b \\n+b
    435 .		if \\nb=3 .rn a) b) \} \}
    436 .	if \\nb<6 \{\
    437 .	if '\\$8'y' \{\
    438 .		as a) "	MAN - Manufacturing
    439 .		nr b \\n+b \} \}
    440 .if \\nb=3 .rn b) a)
    441 ..
    442 .de RL				\" lucent distribution ok RL = mm(rA or fA)
    443 .if '\\$1'n' .nr ra 2
    444 .rm RL
    445 ..
    446 .de ED				\" earlier document number ED = mm(eD)
    447 .if !'\\$1'' .ds e( \\$1
    448 .rm ED
    449 ..
    450 .de PR				\" macro for proprietary marking PR = mm(PM)
    451 .if '\\$1'BP' .nr p 1
    452 .if '\\$1'BR' \{\
    453 .	nr p 2
    454 .	ds o) "Lucent Technologies \(em PROPRIETARY (RESTRICTED)
    455 .	ds p) "Solely for authorized persons having a need to know
    456 .	ds q) "     pursuant to Company Instructions \}
    457 .if '\\$1'0' .nr p 0
    458 ..
    459 .de GS				\" GS = mm(gS)
    460 .nr r 1
    461 ..
    462 .de CI
    463 ..
    464 .de XE
    465 '''\"				basic distribution leng-to be tailored-set e & h
    466 .if \\nd=0 \{\
    467 .	nr d 1
    468 .	if \\nr=0 .nr e \\ne+2
    469 .	if \\nu<=3 .nr e \\ne+3
    470 .	if \\nu<=6 .nr e \\ne+3
    471 .	if \\nu<=9 .nr e \\ne+3
    472 .	if \\nn<=3 .nr e \\ne+2
    473 .	if \\nn<=6 .nr e \\ne+2
    474 .	if \\nn<=9 .nr e \\ne+2
    475 .	if \\n(ra<=2 .nr e \\ne-3
    476 .	nr e \\ne+27
    477 .	nr h \\ne \}
    478 ..
    479 .de CO				\" macro for complete copy addressees CO = mm(cC)
    480 .XE
    481 .ta 2.0i
    482 .nf
    483 .br
    484 .ie \\ne>0 \{\
    485 .	da ZC				\" ZC = mm(cA)
    486 .	ds y( \\$1
    487 .	ie '\\$1'y' .so /usr/lib/tmac/complet.1127
    488 .	el .if  !'\\$1'' .so /usr/lib/tmac/complet.\\*(y(
    489 .	dt \\ne OC \}
    490 .el .da ZC
    491 ..
    492 .de OC				\" macro for complete copy overflow - OC = mm(cD)
    493 .ta 2.0i
    494 .br
    495 .da
    496 .da ZO				\" ZO = mm(cO)
    497 .ie \\n(ar>0 .dt \\n(arv ZW
    498 .el .dt 55 ZW
    499 ..
    500 .de ZW
    501 .br
    502 .da
    503 .ie \\n(dn>0 .g (\\n(dn)/\\nl+4
    504 .da CZ
    505 ..
    506 .de CV				\" macro for cover sheet only addresses CV = mm(cS)
    507 .XE
    508 .ta 2.0i
    509 .nf
    510 .br
    511 .ie \\nh>0 \{\
    512 .	da ZS				\" ZS = mm(dA)
    513 .	ds y( \\$1
    514 .	ie '\\$1'y' .so /usr/lib/tmac/cover.1127
    515 .	el .if !'\\$1'' .so /usr/lib/tmac/cover.\\*(y(
    516 .	dt \\nh OV \}
    517 .el .da ZD
    518 ..
    519 .de OV				\" macro for cover sheet only overflow OV = mm(cT)
    520 .ta 2.0i
    521 .br
    522 .da
    523 .da ZD				\" ZD = mm(cO)
    524 .ie \\n(ar>0 .dt \\n(arv WW
    525 .el .dt 55 WW
    526 ..
    527 .de WW
    528 .br
    529 .da
    530 .if \\n(dn>0 .nr i (\\n(dn)/\\nl+4	\" was ie with no el
    531 .da DZ
    532 ..
    533 .de CE				\" ending all distribution diversions CE = mm(cE)
    534 .br
    535 .if "\\n(.z"ZC" \{\
    536 .	nr g 0
    537 .	rm OC \}
    538 .if "\\n(.z"ZO" \{\
    539 .	nr g -1
    540 .	rm OC \}
    541 .if "\\n(.z"CZ" \{\
    542 .	nr g -2
    543 .	rm OC \}
    544 .if "\\n(.z"ZS" \{\
    545 .	nr i 0
    546 .	rm OV \}
    547 .if "\\n(.z"ZD" \{\
    548 .	nr i -1
    549 .	rm OV \}
    550 .if "\\n(.z"DZ" \{\
    551 .	nr i -2
    552 .	rm )V \}
    553 .da
    554 .if \\ng=-1 \{\
    555 .	ie \\n(dn>0 .nr g (\\n(dn)/\\nl+4
    556 .	el .nr g 0 \}
    557 .if \\ni=-1 \{\
    558 .	ie \\n(dn>0 .nr i (\\n(dn)/\\nl+4
    559 .	el .nr i 0 \}
    560 ..
    561 '''\"
    562 '''\" macros to help format document
    563 '''\"
    564 .de HD
    565 .po .5i	\"was .25
    566 .if "\\*(.T"aps" .tl '--''--'
    567 .sp|0.2i
    568 ..
    569 .de FC				\" footer macro FC = mm(fO)
    570 .pl 11.0i
    571 'bp
    572 ..
    573 .de ST			\" macro for abstract overflow trap ST = mm(yY)
    574 .ZB
    575 .rm ST				\" ZB = mm(aT)
    576 ..
    577 .de ZB
    578 .ch ST 16i			\" macro for abstract overflow trap ZB = mm(aT)
    579 .if \\na>0 \{\
    580 .	ft 2
    581 .	ce
    582 (continued)
    583 .	ft 1 \}
    584 .pl 11.0i
    585 .nr a \\n+a
    586 .rn ZB XX
    587 'bp
    588 .rn XX ZB
    589 .wh -0.35i ZB
    590 .HC				\" HC = mm(cH)
    591 .HX				\" HX = mm(tH)
    592 'sp 0.05i
    593 .ce
    594 .ft 3
    595 Abstract (continued)
    596 .ft 1
    597 .in 0.2i
    598 'sp 1
    599 .FB
    600 ..
    601 .de TK				\" macro for thick lines TKK = mm(tK)
    602 .ps 24
    603 \l'7.5i'
    604 .ps
    605 ..
    606 .de HX				\" macro for Title headings and text HX = mm(tH)
    607 .TK
    608 'sp 0.05i
    609 '''\"					mark t - Title heading
    610 .mk t
    611 .ft 3
    612 Title:
    613 .ft
    614 'sp|\\ntu
    615 .in 0.7i
    616 .WT
    617 .in 0
    618 .ta 0.5i
    619 .nr q \\no/\\nl
    620 .ie \\nq>2 'sp|\\ntu+\\nq
    621 .el 'sp|\\ntu+2
    622 .TK
    623 .					\" m1 - mark end of title section - save
    624 .mk m1
    625 ..
    626 .de HC				\" macro for continuation header HC = mm(cH)
    627 .nr np \\n+(np
    628 .nf
    629 .in 0
    630 .FT
    631 .ft 3
    632 .ta 4.80i
    633 .nr tc \\n(tp
    634 	\\*(N1\f2 (page \\n(np of \\n(tc)
    635 .sp 0.1i
    636 ..
    637 .de DL				\" macro for distribution list headers DL = mm(dH)
    638 .ft 3
    639 .ta 1.0i 4.75i
    640 	\\$1	\\$2
    641 .sp 0.05i
    642 .ft 1
    643 .ta 0.5i 1.0i
    644 ..
    645 .de EJ				\" macro for ejecting continuation page EJ = mm(eP)
    646 'bp
    647 .wh 0 HD
    648 '''\"				put out continuation page header & title section
    649 .HC
    650 .HX
    651 ..
    652 .de CP				\" macro for continuation page CP = mm(cP)
    653 '''\"					calc vert. units for cc overflow (if any)
    654 .ie \\nv<=\\n(.t .nr v 1
    655 .el .nr v 0
    656 .if \\nv=1 .if \\nw<=\\n(.t .nr v 2
    657 .				\" check if cont page needs to be ejected
    658 .in 0
    659 .if \\nc=1 \{\
    660 .				\" - if no abstract overflow
    661 .	if \\na=0 .EJ
    662 .	if \\na>0 \{\
    663 .				\"or if abstract over but no room for list overfl
    664 .		ie \\nv<2 .EJ
    665 .				\" just tk line if abstract over & room for list
    666 .		el .TK \}
    667 .	FT
    668 .	ie \\ne=0 \{\
    669 .		if \\ng>4 .if \\ni>4 .DL "Complete Copy" "Cover Sheet Only"
    670 .		if \\ng>4 .if !\\ni>4 .DL "Complete Copy" ""
    671 .		if !\\ng>4 .if \\ni>4 .DL "" "Cover Sheet Only" \}
    672 .	el \{\
    673 .		if \\ng>4 .if \\ni>4 .DL "Complete Copy (continued)" "Cover Sheet Only (continued)"1
    674 .		if \\ng>4 .if !\\ni>4 .DL "Complete Copy (continued)" ""
    675 .		if !\\ng>4 .if \\ni>4 .DL "" "Cover Sheet Only (continued)" \}
    676 .	mk z
    677 .	nr q \\n(.t/\\nl
    678 '''\"					put out complete copy list overflow
    679 .	in 0.2i
    680 .	ZO
    681 .	in 0
    682 .	mk x
    683 .	sp|\\nzu
    684 .	in 4i
    685 '''\"					put out cover sheet list overflow
    686 .	ZD
    687 .	mk y
    688 .	in 0
    689 .	if \\nx-\\ny .sp|\\nxu
    690 .	TK \}
    691 ..
    692 .de ZP					\"compute total pages and diversion lengths
    693 '''\"				calculate vert. units for cc overflow (if any)
    694 .ie \\ng>4 .nr v (\\ng)*\\nl
    695 .el .nr v 0
    696 '''\"					also for cs overflow (if any)
    697 .ie \\ni>4 .nr w (\\ni)*\\nl
    698 .el .nr w 0
    699 .ie \\nv>\\nw .nr j \\nv
    700 .el .nr j \\nw
    701 .					\" set c=1 if either g or i >0
    702 .if \\ng>4 .nr c 1
    703 .if \\ni>4 .nr c 1
    704 .					\" calculate total pages in job (default 2)
    705 .					\" a1 - page 1 portion abstract (units)
    706 .nr a1 \\nyu-\\nxu-1v
    707 .ie \\n(la>\\n(a1 \{\
    708 .					\" ar - remainder abstract (units)
    709 .	nr ar \\n(la-\\n(a1
    710 .	nr tp \\n+(tp
    711 .					\" a2 - available continuation page space
    712 .					\" m1 is mark after tk line after title
    713 .					\" 2v for Abstract (continued) + one blank
    714 .	nr a2 11.0i-\\n(m1-2v
    715 .	ZZ \}
    716 .el .if \\nc>0 .nr tp \\n+(tp
    717 ..
    718 .de ZZ				\" ZZ = mm(t1)
    719 .ie \\n(ar>\\n(a2 \{\
    720 .	nr ar \\n(ar-\\n(a2
    721 .	nr tp \\n+(tp
    722 .	ZZ \}
    723 .el .if \\n(ar+\\nj>\\n(a2 .nr tp \\n+(tp
    724 ..
    725 '''\"
    726 '''\" main macro to handle output of cover sheet
    727 '''\"		mm(CS)
    728 .de SC
    729 .nr CS 0
    730 .nr ST 1
    731 .if \\nu=0 \{\
    732 .	tm WARNING: author must be supplied \}
    733 .if \\no=0 \{\
    734 .	tm WARNING: document title must be supplied \}
    735 .if \\nm=0 \{\
    736 .	tm WARNING: memorandum type undefined or unknown \}
    737 .if \\nm=1 .if \\nb=0 \{\
    738 .	tm WARNING: technical memoranda must have at least one mercury class \}
    739 .if \\nn=0 \{\
    740 .	tm WARNING: document number must be supplied \}
    741 .XE
    742 .ll 7.5i
    743 .ft 1
    744 .if \\n(nl .bp
    745 .in 0
    746 .HD
    747 '''\" the rs is to restore spacing - ditches big space at top
    748 .rs
    749 .sp1
    750 .sp 0.05i
    751 .nf
    752 .ps 16
    753 .ft 3
    754 .ta 4.85i
    755 .					\" put out page 1 heading
    756 	Document Cover Sheet
    757 .wh 0 HD
    758 .sp 0.1i
    759 .ta 0.15i 4.55i
    760 	\s36\(FA\s0	\\*(t( 
    761 .ft
    762 .ps 10
    763 .HX
    764 .sp 0.05i
    765 .ft 3
    766 .ie \\nu>1 .ds u) s
    767 .el .ds u)
    768 .ta 0.5i 3.0i 3.95i 5.25i
    769 	Author\\*(u) (Computer Address)	Location	Phone Number	Company (if other than BL)
    770 .ft
    771 '''\"					output author info
    772 .ZI
    773 .if !'\\*(r('' \{\
    774 .	ta 0.3i 2.6i
    775 	\\*(r(	(Responsible BL Person) \}
    776 .TK
    777 .sp 0.05i
    778 .ft 3
    779 .ta 1.0i 3.3i 5.55i
    780 	Document No\\*(v).	Filing Case No\\*(w).	Project No\\*(x).
    781 .ft
    782 .sp 0.05i
    783 '''\"					output document number
    784 .ZN
    785 .TK
    786 '''\"					output keywords if they exist
    787 .if \\nk>0 \{\
    788 .	ft 3
    789 Keywords:
    790 .	ft
    791 .	sp 0.05i
    792 .	ti 0.2i
    793 \\*(k)
    794 .	TK \}
    795 '''\"					output mercury info if it exists
    796 .if \\nb>0 \{\
    797 .	ft 3
    798 MERCURY Announcement Bulletin Sections
    799 .	ft
    800 .	sp 0.05i
    801 .	ta 0.6i 3.1i 5.6i
    802 .	ps 8
    803 .	if \\nb>3 \\*(b)
    804 \\*(a)
    805 .	ps
    806 .	TK \}
    807 .ft 3
    808 Abstract
    809 .ft
    810 .mk x
    811 .nr b1 \\nx/\\n(.v+1
    812 .nr b2 (\\n(b1*\\n(.v)-\\nx
    813 .sp \\n(b2u
    814 .mk x
    815 '''\" calculate position (19v includes 2v to print version at bottom of page)
    816 .nr y \\n(lpv-19v
    817 .if \\n(F4>0 .nr y \\ny-\\n(F4
    818 .sp|\\nyu
    819 .sp -1
    820 .ZP
    821 '''\"					handle abstract page 1 continuation
    822 .ie \\n(la>\\n(a1 \{\
    823 .	ce
    824 .	ft2
    825 (continued on page iii)
    826 .	ft1
    827 .	br \}
    828 .el .sp1
    829 .if \\n(F4>0 \{\
    830 .	FA
    831 .	FG \}
    832 .TK
    833 .ps 8
    834 .vs 10
    835 .nr qq \\$1+\\$2+\\n(tp
    836 \f3Total Pages\f1 (including document cover sheet):  \\s+2\\n(qq\\s-2
    837 .ie !'\\*(e('' \{\
    838 Supersedes or amends document number \\*(e(. \}
    839 .el .sp
    840 .ps
    841 .vs
    842 .mk z
    843 .sp .67i
    844 '''\"					output proprietary notice if it exists
    845 .if \\np>0 \{\
    846 .ft 2
    847 .ti (4i-\\w'\\*(o)'u)/2u
    848 \\*(o)
    849 .ft
    850 .ti (4i-\\w'\\*(p)'u)/2u
    851 \\*(p)
    852 .ti (4i-\\w'\\*(q)'u)/2u
    853 \\*(q) \}
    854 .sp |\\nzu+11v
    855 .ta 5.35i
    856 \\s8\\*(ve\\s0
    857 .ie !'\\*(s)'' \{\
    858 \s8Timestamp: \\*(s)\s0	BELL LABORATORIES \}
    859 .el \{\
    860 	BELL LABORATORIES \}
    861 .sp|\\nzu
    862 .sp 1
    863 .ft 3
    864 .ti 5.25i
    865 \\*(x(
    866 .ft
    867 .sp|\\nxu
    868 .in 0.2i
    869 .nf
    870 '''\"					abstract
    871 .if !\\n(la=\\n(a1 \{\
    872 .	wh -0.25i ST \}
    873 .pl \\nyu
    874 .ta 0.5i 1.0i 1.5i 2.0i 2.5i
    875 .FB
    876 .ft 1
    877 '''\"					output the abstract
    878 .WB
    879 .if \\n(la=\\n(a1 .sp-1
    880 .rn ZB XX
    881 .wh -0.25i FC
    882 '''\"					output continuation page
    883 .CP
    884 'bp
    885 .FT
    886 .ft 1
    887 .in 0
    888 .wh 0 HD
    889 .nf
    890 .ft 3
    891 .ta 5.00i
    892 .nr tc \\n(tp
    893 Initial Distribution Specifications	\\*(N1\f2 (page ii of \\n(tc)\f3
    894 .ft 1
    895 .TK
    896 .if \\ne>0 \{\
    897 .	DL "     Complete Copy" "     Cover Sheet Only"
    898 .	mk z
    899 '''\"					put out complete copy list
    900 .	in 0.2i
    901 .	ZC
    902 .	in 0
    903 .	if !\\ng=0 \{\
    904 .		ft 2
    905 .		ti 1.25i
    906 (continued)
    907 .		ft 1 \}
    908 .	sp|\\nzu
    909 .	in 4i
    910 '''\"					put out cover sheet list
    911 .	ZS
    912 .	if !\\ni=0 \{\
    913 .		ft 2
    914 .		ti 4.75i
    915 (continued)
    916 .		ft 1 \}
    917 .	in 0
    918 '''\"					starter space value - then tailor
    919 .	sp|5
    920 .	sp \\ne
    921 .	TK \}
    922 .if \\nr=1 \{\
    923 \f3Government Security Classified\f1
    924 .	ft 1
    925 .	sp -0.05i
    926 .	TK \}
    927 \f3Future Lucent Technologies Distribution by ITDS\f1
    928 .ti 0.5i
    929 .sp 0.05i
    930 .ie \\n(ra=2 \{\
    931 \f3DO NOT RELEASE\f1 to any Lucent Technologies employee without appropriate approval for each request. \}
    932 .el \{\
    933 \f3RELEASE\f1 to any Lucent Technologies employee (excluding contract employees). \}
    934 .TK
    935 '''\"					put out author signature section
    936 .ft 3
    937 Author Signature\\*(u)
    938 .ft 1
    939 .sp1
    940 .ta 2.635i 5.25i
    941 \\*(m!
    942 .ta 0.25i 2.875i 5.5i
    943 \\*(m(
    944 .if \\nu>3 \{\
    945 .	sp 0.1i
    946 .	ta 2.635i 5.25i
    947 \\*(n!
    948 .	ta 0.25i 2.875i 5.5i
    949 \\*(n( \}
    950 .if \\nu>6 \{\
    951 .	sp 0.1i
    952 .	ta 2.635i 5.25i
    953 \\*(o!
    954 .	ta 0.25i 2.875i 5.5i
    955 \\*(o( \}
    956 .sp -0.1i
    957 .TK
    958 '''\"					output organizational approval section
    959 .ie \\np>1 \{\
    960 \f3Organizational Approval\f1  (Department Head approval \f3required\ff1 for \f2\\*(o)\f1.) \}
    961 .el \{\
    962 \f3Organizational Approval\f1  (Optional) \}
    963 .sp 1
    964 .ta 2.635i 5.25i
    965 \\*(x!
    966 .	ta 0.25i 2.875i 5.5i
    967 \\*(Z1
    968 .if \\nn>3 \{\
    969 .	sp .1i
    970 .ta 2.635i 5.25i
    971 \\*(y! \}
    972 .if \\nn>6 \{\
    973 .	sp .1i
    974 \\*(z! \}
    975 .sp -0.1i
    976 .TK
    977 '''\"					recipient section always output
    978 .ft 3
    979 For Use by Recipient of Cover Sheet:
    980 .ft 1
    981 .ps -3
    982 .vs -4
    983 .sp.05i
    984 .mk z
    985  Computing network users may order copies via the \f2library \-k\f1 command;
    986   for information, type \f2man library\f1 after the UNIX prompt.
    987 '''.sp1
    988 .rn fo xx
    989  Otherwise:
    990   Enter PAN if BL (or SS# if non-BL). \l'1.5i'
    991   Return this sheet to any ITDS location.
    992 .sp|\\nzu
    993 .in 4i
    994 Internal Technical Document Service
    995 '''.sp1
    996 .ta 1i 2i 3i
    997 ( ) AK 2H-28	( ) IH 7M-103	( ) DR 2F-19	( ) NW-ITDS
    998 ( ) ALC 1B-102	( ) MV 1L-19	( ) INH 1C-114	( ) PR 5-2120
    999 ( ) CB 30-2011	( ) WH 3E-204	( ) IW 2Z-156
   1000 ( ) HO 4F-112		( ) MT 3B-117
   1001 .in
   1002 .ps
   1003 .vs
   1004 .SR
   1005 ..
   1006 .	\"IZ - initialization
   1007 .de IZ
   1008 .FB
   1009 .nr TN 0
   1010 .em EM
   1011 .po 1i
   1012 .nr PO 1i
   1013 .if \\n(FM=0 .nr FM 1i
   1014 .nr YY 0-\\n(FMu
   1015 .if !\\n(PD .if n nr PD 1v
   1016 .if t .if !\\n(PD .nr PD 0.3v
   1017 .wh 0 NP
   1018 .wh \\n(.pu-\\n(FMu FO
   1019 .ch FO 16i
   1020 .wh \\n(.pu-\\n(FMu FX
   1021 .ch FO \\n(.pu-\\n(FMu
   1022 .if t .wh -\\n(FMu/2u BT
   1023 .if n .wh -\\n(FMu/2u-1v BT
   1024 ..
   1025 .\"		macro to restore ms foiling
   1026 .de SR
   1027 .nr BE 0
   1028 .nr 1T 1
   1029 .nr FM 0
   1030 .nr PD 0
   1031 .nr HM 0
   1032 .nr KG 0
   1033 .nr FP 0
   1034 .nr GA 0
   1035 .nr FP 0
   1036 .\" changed rn F5 FE added rn FJ FS
   1037 .rn FK FE
   1038 .rn FJ FS
   1039 .if '\\$1'' .bp
   1040 .if !'\\$1'' \{\
   1041 .di ZA
   1042 .ce
   1043 \\*(a(
   1044 .sp
   1045 .WB
   1046 .di
   1047 .rn ZA WB\}
   1048 .nr FC -1
   1049 .nr % 1
   1050 .IZ
   1051 .rm IZ
   1052 .if '\\$1'' .RT
   1053 .ds MN \\*(N1 \\*(N2 \\*(N3 \\*(N4 \\*(N5
   1054 .nr MM \\nn
   1055 .nr MC \\n(fc
   1056 .nr MG \\n(wp
   1057 .nr NA \\nu
   1058 .if '\\n(ST'1' \{\
   1059 '''.so /usr/lib/tmac/tmac.rscover XXX
   1060 .so \*(.P/lib/tmac/tmac.rscover
   1061 . \" a line for troff to eat
   1062 .S1 \}
   1063 .ll 6i
   1064 .nr LL 6i
   1065 .rr a b c d e f g h i j k
   1066 .rr l m n o p q r s t u
   1067 .rr v w x y z np tp nc tc
   1068 .rr ud u! m2 dv
   1069 .rr lp np la a1 a2 ar wp fc m1
   1070 .rm DT TI AH SE KW TY NU MY
   1071 .rm PR CI CO OC CV OV CE HD
   1072 .rm FC ST TK HX HC DL EJ
   1073 .rm CP SC a) b) k) N1 p) q) r)
   1074 .rm N2 N3 N4 N5 X1 X2 X3 X4 X5
   1075 .rm X1 X2 X3 X4 X5 F1 F2 F3 F4
   1076 .rm F5
   1077 .rm d) o) s) ve m! n! o! e( r(
   1078 .rm x! y! z! x( d! ve u)
   1079 .rm t) w) x) y) z) a( b( c( m(
   1080 .rm n( o( p( s( t( SA ZI ZC ZO
   1081 .rm ZS ZD ZN FT FB CX NN GS
   1082 .rm ZB XX ZP ZZ
   1083 .rm TM IM MF MR LT OK RP TR
   1084 .rm TX AU AX AI AE SY S2 S0
   1085 .rm S3
   1086 ..
   1087 .de RP
   1088 .nr ST 2
   1089 .SS
   1090 ..
   1091 .de TR
   1092 .nr ST 3
   1093 .ds MN \\$1
   1094 .SS
   1095 ..
   1096 .de SS		\"RP or TR rename the world so old macros called
   1097 .rm SG
   1098 .nr CS 0
   1099 .nr BE 0
   1100 .nr 1T 0
   1101 .nr FM 0
   1102 .nr PD 0
   1103 .nr HM 0
   1104 .nr KG 0
   1105 .nr FP 0
   1106 .nr GA 0
   1107 .nr FP 0
   1108 .ll 6i
   1109 .nr LL 6i
   1110 .\" changed rn F5 FE added rn FJ FS
   1111 .rn F6 FE
   1112 .nr FC -1
   1113 .nr % 1
   1114 .IZ
   1115 .rm IZ
   1116 .pn 0
   1117 .de TI
   1118 .TL
   1119 \\..
   1120 .de SA
   1121 .AB \\\\$1
   1122 \\..
   1123 .de SE
   1124 .AE
   1125 \\..
   1126 .de AH
   1127 .AU
   1128 \\\\$1
   1129 \\..
   1130 .de DT
   1131 .ND \\\\$1 \\\\$2 \\\\$3
   1132 \\..
   1133 .br
   1134 .rr a b c d e f g h i j k
   1135 .rr l m n o p q r s t u
   1136 .rr v w x y z np tp nc tc
   1137 .rr ud u! m2 dv
   1138 .rr lp np la a1 a2 ar wp fc m1
   1139 .rm DT KW TY NU MY
   1140 .rm PR CI OC OV HD
   1141 .rm FC ST TK HX HC DL EJ
   1142 .rm CP SC a) b) k) N1 p) q) r)
   1143 .rm d) o) s) ve m! n! o! e( r(
   1144 .rm x! y! z! x( d! ve u)
   1145 .rm t) w) x) y) z) a( b( c( m(
   1146 .rm n( o( p( s( t( ZI ZC ZO
   1147 .rm ZS ZD ZN FT FB CX NN GS
   1148 .rm ZB XX ZP ZZ
   1149 .rm TM IM MF MR LT
   1150 ..