ttmac.cs - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       ttmac.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 ..