1
0

tmac.cs 21 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150
  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 /sys/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 /sys/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 /sys/lib/tmac/complet.1127
  488. . el .if !'\\$1'' .so /sys/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 /sys/lib/tmac/cover.1127
  515. . el .if !'\\$1'' .so /sys/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 /sys/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. ..