home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / vmsnet / sources / 436 < prev    next >
Encoding:
Internet Message Format  |  1992-11-06  |  31.3 KB

  1. Path: sparky!uunet!stanford.edu!agate!spool.mu.edu!uwm.edu!cs.utexas.edu!usc!news.service.uci.edu!unogate!mvb.saic.com!vmsnet-sources
  2. Newsgroups: vmsnet.sources
  3. From: brent@uwovax.uwo.ca (Brent Sterner)
  4. Subject: NOTICE for VMS, part 01/01
  5. Organization: University of Western Ont, London
  6. Date: Thu, 05 Nov 1992 18:44:33 GMT
  7. Message-ID: <8998937@MVB.SAIC.COM>
  8. Lines: 763
  9. Approved: Mark.Berryman@Mvb.Saic.Com
  10.  
  11. Submitted-by: brent@uwovax.uwo.ca (Brent Sterner)
  12. Posting-number: Volume 3, Issue 241
  13. Archive-name: notice/part01
  14.  
  15. $! ------------------ CUT HERE -----------------------
  16. $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))'
  17. $!
  18. $! This archive created by VMS_SHARE Version 8.1
  19. $!   On  5-NOV-1992 10:28:14.60   By user BERRYMAN    
  20. $!
  21. $! The VMS_SHARE software that created this archive
  22. $!    was written by  Andy Harper, Kings College London UK
  23. $!    -- September 1992
  24. $!
  25. $! Credit is due to these people for their original ideas:
  26. $!    James Gray, Michael Bednarek 
  27. $!
  28. $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
  29. $! AND EXECUTE AS A COMMAND PROCEDURE  (  @name  )
  30. $!
  31. $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
  32. $!       1. AAAREADME.1ST;1
  33. $!       2. NOTICE.01;2
  34. $!       3. NOTICE.02;2
  35. $!       4. NOTICE.03;1
  36. $!       5. NOTICE.05;1
  37. $!       6. NOTICE.09;1
  38. $!       7. NOTICE.10;1
  39. $!       8. NOTICE.COM;2
  40. $!       9. NOTICE.HLP;3
  41. $!
  42. $set="set"
  43. $set symbol/scope=(nolocal,noglobal)
  44. $f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID"))
  45. $e="write sys$error  ""%UNPACK"", "
  46. $w="write sys$output ""%UNPACK"", "
  47. $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!"
  48. $ ve=f$getsyi("version")
  49. $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start
  50. $ e "-E-OLDVER, Must run at least VMS 4.4"
  51. $ v=f$verify(v)
  52. $ exit 44
  53. $unpack: subroutine ! P1=filename, P2=checksum, P3=attributes
  54. $ if f$search(P1) .eqs. "" then $ goto file_absent
  55. $ e "-W-EXISTS, File ''P1' exists. Skipped."
  56. $ delete 'f'*
  57. $ exit
  58. $file_absent:
  59. $ if f$parse(P1) .nes. "" then $ goto dirok
  60. $ dn=f$parse(P1,,,"DIRECTORY")
  61. $ w "-I-CREDIR, Creating directory ''dn'"
  62. $ create/dir 'dn'
  63. $ if $status then $ goto dirok
  64. $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped."
  65. $ delete 'f'*
  66. $ exit
  67. $dirok:
  68. $ w "-I-UNPACK, Unpacking file ''P1'"
  69. $ n=P1
  70. $ if P3 .nes. "" then $ n=f
  71. $ if .not. f$verify() then $ define/user sys$output nl:
  72. $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n'
  73. PROCEDURE GetHex LOCAL x1,x2;x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,
  74. ERASE_CHARACTER(1))-1;RETURN 16*x1+x2;ENDPROCEDURE;
  75. PROCEDURE SkipPartsep LOOP EXITIF INDEX(ERASE_LINE,"-+-+-+-+-+-+-+-+")=1;
  76. ENDLOOP;ENDPROCEDURE;
  77. PROCEDURE ExpandChar CASE CURRENT_CHARACTER FROM ' ' TO 'z' ["`"]
  78. :ERASE_CHARACTER(1);COPY_TEXT(ASCII(GetHex));[" "]:ERASE_CHARACTER(1);[
  79. OUTRANGE,INRANGE]:MOVE_HORIZONTAL(1);ENDCASE;ENDPROCEDURE;
  80. PROCEDURE ProcessLine s:=ERASE_CHARACTER(1);LOOP EXITIF CURRENT_OFFSET>=LENGTH(
  81. CURRENT_LINE);ExpandChar;ENDLOOP;IF s="V" THEN APPEND_LINE;ENDIF;ENDPROCEDURE;
  82. PROCEDURE AdvanceLine MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);
  83. ENDPROCEDURE;PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)=
  84. END_OF(b);IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;
  85. ELSE ProcessLine;AdvanceLine;ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,
  86. "UNPACK");SET(SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=
  87. GET_INFO(COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,
  88. GET_INFO(COMMAND_LINE,"output_file"));QUIT;
  89. $ if p3 .eqs. "" then $ goto dl
  90. $ open/write fdl &f
  91. $ write fdl "RECORD"
  92. $ write fdl P3
  93. $ close fdl
  94. $ w "-I-CONVRFM, Converting record format to ", P3
  95. $ convert/fdl=&f &f-1 &P1
  96. $dl: delete 'f'*
  97. $ if P2 .eqs. "" then $ goto ckskip
  98. $ checksum 'P1'
  99. $ if checksum$checksum .nes. P2 then $ -
  100.   e "-E-CHKSMFAIL, Checksum of ''P1' failed."
  101. $ exit
  102. $ckskip: e "-W-CHKSUMSKIP, checksum validation unavailable for ''P1'"
  103. $ endsubroutine
  104. $start:
  105. $!
  106. $ create 'f'
  107. X`20`20`20This`20is`20the`20UWO`20CCS`20notice`20facility`20for`20HYDRA,`20a
  108. V`20VMS`20system.`20`20It`20is
  109. Xused`20to`20display`20important`20system`20notices`20to`20users`20when`20they
  110. V`20login.
  111. X
  112. XWARNING:`20`20Read`20the`20caveat`20in`20NOTICE.COM`20before`20you`20use`20thi
  113. Vs`20facility!
  114. X=======
  115. X
  116. X
  117. XFiles:
  118. X-----
  119. X
  120. XAAAREADME.1ST`09-`20this`20text.
  121. XNOTICE.01`09\
  122. XNOTICE.02`09`20\
  123. XNOTICE.05`09`20`20>--`20`20Saample`20notice`20files.
  124. XNOTICE.09`09`20/
  125. XNOTICE.10`09/
  126. XNOTICE.COM`09-`20The`20main`20com`20file`20with`20installation
  127. X`09`09`20`20directions`20provided`20at`20the`20end.
  128. XNOTICE.HLP`09-`20Help`20file`20sources.
  129. $ call unpack AAAREADME.1ST;1 1795177039 ""
  130. $!
  131. $ create 'f'
  132. XNew`20system`20notice`20facility
  133. X
  134. XThere`20is`20a`20new`20notice`20facility`20available.`20`20You`20are`20current
  135. Vly
  136. Xusing`20it`20to`20view`20this`20system`20notice.`20`20NOTICE`20has`20effect
  137. V`20only
  138. Xif`20you`20are`20logged`20on`20interactively.
  139. X
  140. XThe`20new`20notice`20facility`20is`20very`20similar`20to`20the`20earlier`20ver
  141. Vsion.
  142. XHowever,`20you`20may`20also`20type
  143. X
  144. X`20`20`20`20$`20NOTICE`20ALL`09`09to`20view`20all`20system`20notices
  145. X`20`20`20`20$`20NOTICE`20UNREAD`09`09to`20view`20unread`20system`20notices
  146. X`20`20`20`20$`20NOTICE`20nn`09`09`09to`20view`20system`20notice`20"nn"
  147. X`20`20`20`20$`20NOTICE`20DISABLE`09`09to`20disable`20"unread"`20notices
  148. X`09`09`09`09(for`20example`20at`20login`20time)
  149. X`20`20`20`20$`20NOTICE`20ENABLE`09`09to`20enable`20"unread"`20notices
  150. X`09`09`09`09(reverses`20the`20DISABLE`20function)
  151. X
  152. Xat`20any`20time`20after`20you`20are`20logged`20in.
  153. X
  154. XFor`20on-line`20help`20with`20NOTICE,`20type
  155. X
  156. X`20`20`20`20$`20HELP`20NOTICE`20`20`20<cr>
  157. X
  158. XPlease`20report`20problems`20to`20the`20program`20consultant.
  159. $ call unpack NOTICE.01;2 1080510803 ""
  160. $!
  161. $ create 'f'
  162. XCCS`20Charging`20and`20Accounting`20Policy`20(1991-92)
  163. X
  164. XThis`20document`20is`20available`20in`20the`20sys$help`20disk`20area.
  165. XTo`20view`20it,`20type
  166. X
  167. X$`20TYPE/PAGE`20SYS$HELP:CCS.POLICY`20`20`20<cr>
  168. X
  169. XThe`20file`20may`20be`20printed`20if`20you`20would`20like`20hard`20copy.
  170. $ call unpack NOTICE.02;2 1679064564 ""
  171. $!
  172. $ create 'f'
  173. XCCS`20prices`20are`20in`20sys$help
  174. XFor`20more`20information`20about`20CCS`20prices`20enter:
  175. X
  176. X$`20TYPE/PAGE`20SYS$HELP:CCS.PRICES
  177. X
  178. $ call unpack NOTICE.03;1 1365971511 ""
  179. $!
  180. $ create 'f'
  181. XDepartmental`20computing`20expenditures
  182. X
  183. XThe`20latest`20departmental`20computing`20expenditures`20are
  184. Xavailable`20in`20the`20notice`20area.`20`20To`20view`20it,`20type
  185. X
  186. X$`20TYPE/PAGE`20NOTICE:REPORT.DEP`20`20`20`20<cr>
  187. X
  188. XThe`20file`20may`20be`20printed`20if`20you`20would`20like`20hard`20copy.
  189. $ call unpack NOTICE.05;1 222452932 ""
  190. $!
  191. $ create 'f'
  192. XCCS`20Services`20Price`20List`20(effective`20May`201,`201991)
  193. X
  194. XThe`20CCS`20Services`20Price`20List`20document`20is`20available`20in`20the
  195. Xsys$help`20disk`20area.`20`20To`20view`20it,`20type
  196. X
  197. X$`20TYPE/PAGE`20SYS$HELP:CCS.PRICES`20`20`20<cr>
  198. X
  199. XThe`20file`20may`20be`20printed`20if`20you`20would`20like`20hard`20copy.
  200. $ call unpack NOTICE.09;1 1081016876 ""
  201. $!
  202. $ create 'f'
  203. XMicro`20Lab`20Availability`20Schedule
  204. X
  205. XThe`20current`20Micro`20Lab`20Availability`20Schedule`20is`20available
  206. Xin`20the`20notice`20area.`20`20To`20view`20it,`20type
  207. X
  208. X$`20TYPE/PAGE`20NOTICE:PC.LAB`20`20`20`20<cr>
  209. X
  210. XThe`20file`20may`20be`20printed`20if`20you`20would`20like`20hard`20copy.
  211. $ call unpack NOTICE.10;1 1181305932 ""
  212. $!
  213. $ create 'f'
  214. X$`20!`09NOTICE.COM.`09NOTICE.COM`20is`20a`20command`20procedure`20for`20displa
  215. Vying
  216. X$`20!`09==========`09system`20notices.`20`20Written`20by`20Brent`20Sterner,
  217. V`20CCS,`20UWO.
  218. X$`20!`09`09`09Copyright`20(c)`201991.`20`20Permission`20is`20granted`20to`20co
  219. Vpy,
  220. X$`20!`09`09`09modify,`20and`20use`20this`20procedure`20and`20it's`20techniques
  221. V
  222. X$`20!`09`09`09provided`20the`20source`20is`20acknowledged.
  223. X$`20!`09`09`09
  224. X$`20!`09WARNING:`20`20This`20command`20procedure`20plays`20a`20game`20with`20t
  225. Vhe`20expiry`20date
  226. X$`20!`09-------`09`20`20of`20each`20user's`20home`20directory.`20`20For`20an
  227. V`20explanation,`20refer
  228. X$`20!`09`09`20`20to`20the`20functionality`20details`20which`20can`20be`20found
  229. V`20at`20the
  230. X$`20!`09`09`20`20end`20of`20this`20file.`20`20There`20is`20also`20an`20accompa
  231. Vnying`20help
  232. X$`20!`09`09`20`20file`20suitable`20for`20including`20in`20a`20help`20library,
  233. V`20such`20as
  234. X$`20!`09`09`20`20sys$help:helplib.hlb.
  235. X$`20!
  236. X$`20!
  237. X$`20!`09NOTICE:`09This`20procedure`20does`20*nothing*`20if`20we`20are`20not
  238. V`20interactive!
  239. X$`20!`09------
  240. X$`09`09IF`20F$MODE()`20.NES.`20"INTERACTIVE"`20THEN`20EXIT
  241. X$`20!
  242. X$`20!`09Assumes`20the`20logical`20"NOTICE"`20has`20been`20defined`20which`20in
  243. Vdicates`20where
  244. X$`20!`09the`20notice`20messages`20reside.`20`20On`20the`20author's`20system,
  245. V`20the`20following
  246. X$`20!`09line`20appears`20in`20systartup_v5.com:
  247. X$`20!
  248. X$`20!`09`09DEFINE/SYSTEM`09notice`09ccsdisk:`5B1_2.notice`5D
  249. X$`20!
  250. X$`20!`09Translate`20the`20logical.
  251. X$`20!
  252. X$`09notice_log`20=`20f$trnlnm("notice","LNM$SYSTEM_TABLE")
  253. X$`20!
  254. X$`20!`09This`20symbol`20is`20a`20flag`20date.`20`20When`20used`20as`20the`20ex
  255. Vpiry`20date`20for`20a
  256. X$`20!`09user's`20sys$login`20home`20directory,`20it`20means`20"do`20not`20disp
  257. Vlay`20unread
  258. X$`20!`09notices"`20to`20the`20NOTICE`20UNREAD`20command.
  259. X$`20!
  260. X$`09suppress_notices`20=`20"1-jan-9999"
  261. X$`20!
  262. X$`20!`09Establish`20the`20basics.`20`20When`20did`20this`20user`20last`20read
  263. V`20system`20notices?
  264. X$`20!
  265. X$`09t1`20=`20f$trnlnm("sys$login")`09`09!`20User`20login`20directory.
  266. X$`09t2`20=`20f$parse("sys$login",,,"DIRECTORY")`20-`20"`5B"`20-`20"`5D"`20+
  267. V`20".DIR"
  268. X$`09t3`20=`20t1`20-`20"`5D"`20+`20".-`5D''t2'"`09`09!`20"sys$login"`20file`20s
  269. Vpec.
  270. X$`20!
  271. X$`20!`20`20The`20expiry`20date`20of`20the`20home`20directory`20is`20set`20to
  272. V`20100`20years`20(exactly)
  273. X$`20!`20`20after`20the`20date/time`20the`20user`20reads`20system`20notices.
  274. V`20`20So,`20...
  275. X$`09t4`20=`20f$cvtime(f$file_attributes(t3,"EDT"))`20`20!`20100`20years`20high
  276. V.
  277. X$`09t5`20=`20f$extract(0,4,t4)`09`09`09`20`20`20`20!`20The`20year...
  278. X$`09t6`20=`20"''t4'"`20-`20"''t5'"`09`09`09`20`20`20`20!`20`20`20`20`20`20`20
  279. V`20`20...`20the`20rest.
  280. X$`09t7`20=`20f$string(t5-100)`20+`20"''t6'"`09`09`20`20`20`20!`20Reconstructiv
  281. Ve`20surgery.
  282. X$`20!
  283. X$`20!`09Figure`20out`20"now"`20in`20a`20similar`20way,`20but`20add`20100`20yea
  284. Vrs`20to`20that.
  285. X$`09n1`20=`20f$time()`09`09`09`09`20`20`20`20!`20Establish`20this`20moment.
  286. X$`09n2`20=`20f$cvtime(n1,"ABSOLUTE","DATE")`09`20`20`20`20!`20Date`20part.
  287. X$`09n3`20=`20f$edit(n1-n2,"TRIM")`09`09`20`20`20`20!`20Time`20part.
  288. X$`09n4`20=`20f$cvtime(n1,"ABSOLUTE","YEAR")`09`20`20`20`20!`20This`20year.
  289. X$`09n5`20=`20n2`20-`20n4`20+`20f$string(n4+100)`20`20-
  290. X`09`09+`20":"`20+`20n3`09`09`09`20`20`20`20!`20"now"`20+`20100`20years.
  291. X$`20!
  292. X$`20!`09Decide`20what`20to`20do`20now.`20`20This`20depends`20on`20P1.`09!\
  293. X$`20if`20"''p1'"`20`20`20`20.eqs.`20""`20`20`20`20`20`20`20`20then`20goto`20pr
  294. Vompt`09!`20\`20`20`20`20
  295. X$`20if`20"''p1'"`20`20`20`20.eqs.`20"LIST"`20`20`20`20then`20goto`20prompt`09!
  296. V`20`20\`20`20`20Split`20up
  297. X$`20if`20f$type(p1)`20.eqs.`20"INTEGER"`20then`20goto`20integer`09!`20`20`20\
  298. V`20`20here,`20and
  299. X$`20if`20"''p1'"`20`20`20`20.eqs.`20"ALL"`20`20`20`20`20then`20goto`20all`09
  300. V`09!`20`20`20/`20`20meet`20up`20at
  301. X$`20if`20"''p1'"`20`20`20`20.eqs.`20"UNREAD"`09then`20goto`20unread`09!`20`20/
  302. V`20`20`20the`20"exit".
  303. X$`20if`20"''p1'"`20`20`20`20.eqs.`20"DISABLE"`20then`20goto`20disable`09!`20/
  304. X$`20if`20"''p1'"`20`20`20`20.eqs.`20"ENABLE"`20`20then`20goto`20enable`09!/
  305. X
  306. X$`20!
  307. X$`20!
  308. X$`20!`09If`20we`20cannot`20decide`20what`20to`20do,`20complain`20and`20exit.
  309. X$`20DIAGNOSTIC:
  310. X$`20type`20sys$input
  311. X%NOTICE-W-IVKEYW,`20unrecognized`20keyword`20-`20check`20validity`20and`20spel
  312. Vling
  313. X$`20write`20sys$output`20"`20\''p1'\"
  314. X$`20exit
  315. X$`20!
  316. X$`20!`09---------------------------------------------------------------
  317. X$`20!
  318. X$`20ENABLE:`09!`20Here`20to`20"enable"`20display`20of`20unread`20system`20noti
  319. Vces.
  320. X$`09set`20file/expiration_date=today`20't3
  321. X$`09write`20sys$output`09`09-
  322. X`09`09"%NOTICE-I-ENABLED,`20Unread`20notice`20display`20is`20now`20enabled"
  323. X$`09exit
  324. X$`20!
  325. X$`20!`09---------------------------------------------------------------
  326. X$`20!
  327. X$`20DISABLE:`09!`20Here`20to`20"disable"`20display`20of`20unread`20system`20no
  328. Vtices.
  329. X$`09set`20file/expiration_date='suppress_notices`20't3
  330. X$`09write`20sys$output`09`09-
  331. X`09`09"%NOTICE-I-DISABLED,`20Unread`20notice`20display`20is`20now`20disabled"
  332. X$`09exit
  333. X$`20!
  334. X$`20!`09---------------------------------------------------------------
  335. X$`20!
  336. X$`20UNREAD:`09!`20Here`20to`20display`20unread`20notices.
  337. X$`09temp`20=`20f$cvtime(suppress_notices)
  338. X$`09if`20"''t4'"`20.eqs.`20"''temp'"`20
  339. X$`09`20`20`20then`20write`20sys$output`09-
  340. X`09`20`20`20`20`20"%NOTICE-I-DISABLED,`20Unread`20notice`20display`20is`20curr
  341. Vently`20disabled"
  342. X$`09`20`20`20exit
  343. X$`09endif
  344. X$`20!
  345. X$`20`20`20`20`20`20`20notice_count`20=`200`09`09`09!`20Notice`20counter.
  346. X$`20`20`20`20`20`20`20notice_file`20=`20""`09`09`09!`20File`20name`20of`20noti
  347. Vce...
  348. X$`20UNREAD_LOOP:
  349. X$`09gosub`20notice_file`09`09`09!`20notice`20file`20candidate.
  350. X$`09if`20"''notice_file'"`20.nes.`20""
  351. X$`09`20`20`20`20then`09`09`09`09!`20When`20was`20this`20file`20revised?
  352. X$`09`09file_time`20=`20f$cvtime(f$file_attributes(notice_file,"RDT"))
  353. X$`09`09if`20"''file_time'"`20.gts.`20"''t7'"`09!`20If`20an`20unseen`20file`20.
  354. V..
  355. X$`09`09`20`20`20`20then`20type`20'notice_file`09!`20`20`20`20`20`20`20`20`20..
  356. V.`20type`20it`20out.
  357. X$`09`09`20`20`20`20notice_count`20=`20notice_count`20+`201`09!`20...`20and`20c
  358. Vount`20it.
  359. X$`09`20`20`20`20`20`20`20`20`20`20`20`20write`20sys$output`20""`09`09!`20Be
  360. V`20tidy.
  361. X$`09`20`20`20`20`20`20`20`20`20`20`20`20inquire`20dummy`20`09`09-
  362. X`09`09"`09`09`09<Press`20RETURN`20to`20continue>`20"
  363. X$`09`09endif`09`09`09`09!`20Otherwise,`20ignore`20it.
  364. X$`09`09goto`20unread_loop
  365. X$`09else`09`09`09`09`09!`20Here`20to`20stamp`20sys$login`20...
  366. X$`09`09set`20file/expiration_date="''n5'"`20't3
  367. X$`09endif
  368. X$`20exit
  369. X$`20!
  370. X$`20!`09---------------------------------------------------------------
  371. X$`20!
  372. X$`20ALL:`09`09!`20Here`20to`20display`20"all"`20current`20notices.
  373. X$`09notice_count`20=`200
  374. X$`09notice_file`20:==`20""
  375. X$`20ALL_LOOP:
  376. X$`09gosub`20notice_file`09`09`09!`20notice`20file`20candidate.
  377. X$`09if`20"''notice_file'"`20.nes.`20""
  378. X$`09`20`20`20`20then`20`20`20`20type`20'notice_file`09`09!`20Got`20one.`20`20T
  379. Vype`20it`20out.
  380. X$`09`20`20`20`20`20`20`20`20`20`20`20`20write`20sys$output`20""`09`09!`20Be
  381. V`20tidy.
  382. X$`09`20`20`20`20`20`20`20`20`20`20`20`20inquire`20dummy`20`09`09-
  383. X`09`09"`09`09`09<Press`20RETURN`20to`20continue>`20"
  384. X$`09`20`20`20`20`20`20`20`20`20`20`20`20notice_count`20=`20notice_count`20+
  385. V`201`09!`20Count`20me.
  386. X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20goto`20all_loop`20
  387. V`20`20`20`20`20`20`20`20`09!`20Loop`20through`20each`20file
  388. X$`09`20`20`20`20else`09`09`09`09!`20No`20more`20files,`20so...
  389. X$`09`09temp`20=`20f$cvtime(suppress_notices)
  390. X$`09`09if`20"''t4'"`20.nes.`20"''temp'"`20
  391. X$`09`09`20`20`20`20then`20set`20file/expiration_date="''n5'"`20't3`20`20!`20st
  392. Vamp`20sys$login
  393. X$`09`09`20`20`20`20else`20write`20sys$output`09-
  394. X`09`09`20`20"%NOTICE-I-DISABLED,`20Unread`20notice`20display`20is`20still`20di
  395. Vsabled"
  396. X$`09`09endif
  397. X$`09endif
  398. X$`20`20`20`20`20`20`20if`20notice_count`20.eq.`200`20then`09`09-
  399. X`09`09write`20sys$output`20"%NOTICE-W-NONOTICE,`20no`20notices`20found"
  400. X$`09exit
  401. X$`20!
  402. X$`20!`09---------------------------------------------------------------
  403. X$`20!
  404. X$`20INTEGER:`09!`20Here`20to`20display`20notice.<n>.
  405. X
  406. X$`20!`20Add`20a`20leading`20zero`20to`20p1`20if`20necessary`20...
  407. X$`09temp`20=`20"0000"`20+`20"''p1'"
  408. X$`09number`20=`20f$extract(f$length(temp)-2,2,temp)
  409. X$`09file`20=`20f$search("''notice_log'notice.''number';")
  410. X$`09if`20"''file'"`20.eqs.`20""
  411. X$`09`20`20`20`20then`20`20`20`20write`20sys$output`20"%NOTICE-W-NONOTICE,`20no
  412. V`20notice`20found"
  413. X$`09`20`20`20`20else`20`20`20`20write`20sys$output`20"`20`20`20`20Notice`20''p
  414. V1':"
  415. X$`09`20`20`20`20`20`20`20`20`20`20`20`20type`20'file
  416. X$`09endif
  417. X$`09exit
  418. X$`20!
  419. X$`20!`09---------------------------------------------------------------
  420. X$`20!
  421. X$`20PROMPT:`09!`20Here`20to`20decide`20which`20message`20to`20display.
  422. X$`09notice_count`20=`200
  423. X$`09notice_file`20=`20""
  424. X$`20PROMPT_loop:
  425. X$`09gosub`20notice_file
  426. X$`09if`20"''notice_file'"`20.nes.`20""
  427. X$`09`20`20`20`20then`20`20`20`20open/read/share=read`20note`20'notice_file
  428. X$`09`09`20`20`20`20read`20note`20first_record
  429. X$`09`09`20`20`20`20close`20note
  430. X$`20!`20Tidy`20up`20leading`20zeros...
  431. X$`09`09`20`20`20`20num`20=`20ftype
  432. X$`09`09`20`20`20`20if`20num`20.lt`2010`20then`20num`20=`20num`20-`20"0"
  433. X$`20!`20Pad`20with`20spaces...
  434. X$`09`09`20`20`20`20temp`20=`20"`20`20`20`20"`20+`20num
  435. X$`09`09`20`20`20`20num`20=`20f$extract(f$length(temp)-4,4,temp)
  436. X$`09`09`20`20`20`20display`20=`20"''num'"`20+`20"`09''first_record'"
  437. X$`09`09`20`20`20`20if`20notice_count`20.eq.`200`20then`20write`20sys$output
  438. V`09-
  439. X`09`09`09`09`09`09`09"Notice`09Subject"
  440. X$`09`09`20`20`20`20write`20sys$output`20"''display'"
  441. X$`09`20`20`20`20`20`20`20`20`20`20`20`20notice_count`20=`20notice_count`20+
  442. V`201
  443. X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20goto`20prompt_loop
  444. V`20`20`20`20`20`20`20`20`20!`20Loop`20through`20each`20file.
  445. X$`09endif
  446. X$`20`20`20`20`20`20`20if`20notice_count`20.eq.`200
  447. X$`09`20`20`20`20then`20`20`20`20write`20sys$output`20"%NOTICE-W-NONOTICE,`20no
  448. V`20notices`20found"
  449. X$`09`20`20`20`20else`20`20`20`20inquire`20number`20"Notice`20number`20you`20wo
  450. Vuld`20like`20to`20see"
  451. X$`09`09`20`20`20`20if`20"''number'"`20.eqs.`20""`20then`20exit
  452. X$`20!`20Add`20a`20leading`20zero`20if`20necessary`20...
  453. X$`09`09`20`20`20`20temp`20=`20"0000"`20+`20"''number'"
  454. X$`09`09`20`20`20`20number`20=`20f$extract(f$length(temp)-2,2,temp)
  455. X$`09`09`20`20`20`20file`20=`20f$search("''notice_log'notice.''number';")
  456. X$`09`09`20`20`20`20if`20"''file'"`20.eqs.`20""`20then`20goto`20prompt
  457. X$`09`09`20`20`20`20type`20'file
  458. X$`09endif
  459. X$`09exit
  460. X$`20!
  461. X$`20!`09-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20
  462. V`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20
  463. V`20-`20`20-`20`20-`20`20-`20`20-
  464. X$`20!`09-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20
  465. V`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20`20-`20
  466. V`20-`20`20-`20`20-`20`20-`20`20-
  467. X$`20!
  468. X$`20!`09GOSUB`20to`20this`20routine`20to`20locate`20the`20next`20notice`20file
  469. V...
  470. X$`20notice_file:`09`09`09!`20Locate`20the`20next`20notice`20file.
  471. X$`20loop:
  472. X$`09notice_file`20=`20f$search("''notice_log'notice.*;")`20!`20Find`20a`20noti
  473. Vce`20candidate.
  474. X$`09if`20"''notice_file'"`20.eqs.`20""`20then`20return`20`20`20`20`20!`20""
  475. V`20means`20no`20more.
  476. X$`09ftype`20=`20f$parse(notice_file,,,"TYPE")`20-`20"."`20`20!`20File`20extens
  477. Vion`20(no`20dot).
  478. X$`09if`20f$type(ftype)`20.nes.`20"INTEGER"`20then`20goto`20loop
  479. X$`20`09`09`09`09`09`09!`20Ignore`20inappropriate`20files.
  480. X$`20return`09`09`09`09`09!`20Return
  481. X$`20exit`09`09`09`09!`20Just`20in`20case`20my`20DCL`20ain't`20so`20good...
  482. X$`20!
  483. X$`20!`09================================================================
  484. X$`20!`09================================================================
  485. X$`20!`09================================================================
  486. X$`20!`09================================================================
  487. X$`20!`09================`20`20`20`20D`20O`20C`20U`20M`20E`20N`20T`20A`20T`20I
  488. V`20O`20N`20`20`20`20===============
  489. X$`20!`09================================================================
  490. X$`20!`09================================================================
  491. X$`20!`09================`20`20`20`20`20Procedure`20`20`20Description`20`20`20
  492. V`20`20===============
  493. X$`20!`09================================================================
  494. X$`20!`09================================================================
  495. X$`20!`09================================================================
  496. X$`20!`09================================================================
  497. X$`20!
  498. X$`20!
  499. X$`20!`09NOTICE.COM.`09NOTICE.COM`20is`20a`20command`20procedure`20for`20displa
  500. Vying
  501. X$`20!`09==========`09system`20notices.`20`20Written`20by`20Brent`20Sterner,
  502. V`20CCS,`20UWO.
  503. X$`20!`09`09`09Copyright`20(c)`201991.`20`20Permission`20is`20granted`20to`20co
  504. Vpy,
  505. X$`20!`09`09`09modify,`20and`20use`20this`20procedure`20and`20it's`20techniques
  506. V
  507. X$`20!`09`09`09provided`20the`20source`20is`20acknowledged.
  508. X$`20!
  509. X$`20!`09Suggestions...`09Please`20send`20suggestions`20for`20improving`20this
  510. V`20command
  511. X$`20!`09`09`09procedure`20to`20the`20author:
  512. X$`20!
  513. X$`20!`09Brent`20Sterner`20`20`20Manager,`20Academic`20Technical`20Support
  514. X$`20!`09`20`20`20`20Fast:`09<BRENT@uwo.ca>`09`09<129.100.2.13>
  515. X$`20!`09`20`20`20`20Telephone:`09(519)661-2151`20x6036
  516. X$`20!`09`20`20`20`20Slow:`09Computing`20`26`20Communications`20Services,
  517. X$`20!`09`09`09Natural`20Sciences`20Building,
  518. X$`20!`09`09`09The`20University`20of`20Western`20Ontario,
  519. X$`20!`09`09`09London,`20Ontario,`20Canada`20`20`20`20N6A`205B7
  520. X$`20!
  521. X$`20!`09Technical`20details:
  522. X$`20!
  523. X$`20!`09`20`20`20`20WARNING:`09NOTICE.COM`20abuses`20the`20expiry`20date`20on
  524. V`20each`20user's
  525. X$`20!`09`20`20`20`20-------`09home`20directory`20in`20the`20following`20way.
  526. V`20`20Whenever
  527. X$`20!`09`09`09system`20notices`20are`20"caught`20up"`20(with`20either`20the
  528. X$`20!`09`09`09"ALL"`20or`20"UNREAD"`20parameters,`20the`20expiry`20date
  529. X$`20!`09`09`09for`20the`20user's`20home`20directory`20is`20set`20to`20"now"
  530. X$`20!`09`09`09plus`20100`20years.`20`20The`20"UNREAD"`20option`20extracts
  531. X$`20!`09`09`09this`20expiry`20date,`20subtracts`20100`20years,`20and`20checks
  532. X$`20!`09`09`09the`20"revised"`20date/time`20of`20each`20notice`20file.
  533. X$`20!`09`09`09This`20has`20had`20no`20adverse`20side`20effects`20at`20this`20s
  534. Vite.
  535. X$`20!`09`09`09However,`20no`20guarantee`20can`20be`20made`20that`20your`20site
  536. V
  537. X$`20!`09`09`09will`20not`20be`20affected`20in`20some`20way.
  538. X$`20!
  539. X$`20!`09`09`09Additionally,`20a`20user`20can`20disable`20(and`20re-enable)
  540. X$`20!`09`09`09"unread"`20notices.`20`20The`20special`20date`20indicated`20by
  541. X$`20!`09`09`09the`20symbol`20"uppress_notices"`20flags`20"unread"`20notice
  542. X$`20!`09`09`09suppression.
  543. X$`20!
  544. X$`20!`09`09NOTICE.COM`20depends`20on`20a`20system`20logical,`20NOTICE,`20and
  545. V`20the
  546. X$`20!`09`09symbol`20NOTICE`20which`20invokes`20NOTICE.COM.`20`20Specifically,
  547. X$`20!`09`09at`20the`20author's`20site,`20the`20following`20definition`20appear
  548. Vs
  549. X$`20!`09`09in`20systartup_v5.com:
  550. X$`20!
  551. X$`20!`09`09`20`20`20`20$`20DEFINE/SYSTEM`20`20notice`20`20ccsdisk:`5B1_2.notic
  552. Ve`5D
  553. X$`20!
  554. X$`20!`09`09and`20sylogin.com`20contains`20the`20line:
  555. X$`20!
  556. X$`20!`09`09`20`20`20`20$`20NOT*ICE`20:==`20"@NOTICE:NOTICE.COM"
  557. X$`20!
  558. X$`20!`09`09Operations`20staff`20have`20complete`20control`20of`20this`20area.
  559. X$`20!`09`09Their`20duties`20include`20management`20of`20the`20system`20notice
  560. X$`20!`09`09data`20files`20which`20are`20kept`20there.`20`20By`20convention,
  561. V`20any
  562. X$`20!`09`09file`20in`20this`20area`20named`20NOTICE.nn`20(where`20the`20lexica
  563. Vl
  564. X$`20!`09`09f$type(nn)`20is`20"INTEGER")`20is`20a`20system`20notice`20file.`20
  565. V`20As
  566. X$`20!`09`09a`20practical`20matter,`20always`20use`20a`20two`20digit`20extensio
  567. Vn
  568. X$`20!`09`09for`20the`20file,`20to`20prevent`20notice.10`20preceding`20notice.9
  569. V.
  570. X$`20!`09`09
  571. X$`20!`09Call`20via`20(assuming`20NOT*ICE`20:==`20@NOTICE.COM):
  572. X$`20!`09`20`20`20`20$`20NOTICE`20UNREAD`09-`20Display`20unread`20notices`20via
  573. V`20the`20TYPE
  574. X$`20!`09`09`09`09`20`20command.`20`20The`20user`20must`20type`20a`20<cr>
  575. X$`20!`09`09`09`09`20`20after`20each`20message`20before`20he`20sees`20the
  576. X$`20!`09`09`09`09`20`20next`20message.`20`20After`20all`20unread`20notices
  577. X$`20!`09`09`09`09`20`20have`20been`20displayed,`20the`20expiry`20field
  578. X$`20!`09`09`09`09`20`20of`20sys$login`20is`20corrupted`20with`20the
  579. X$`20!`09`09`09`09`20`20current`20date/time`20"plus`20100`20years".
  580. X$`20!`09`09`09`09`20`20This`20is`20the`20login`20behaviour.
  581. X$`20!`09`20`20`20`20$`20NOTICE`20ALL`09-`20Display`20all`20messages`20(read
  582. V`20or`20not)`20via
  583. X$`20!`09`09`09`09`20`20the`20TYPE`20command.`20`20The`20user`20must`20type
  584. X$`20!`09`09`09`09`20`20a`20<cr>`20after`20each`20message`20before`20he`20sees
  585. X$`20!`09`09`09`09`20`20the`20next`20message.`20`20The`20expiry`20field`20of
  586. X$`20!`09`09`09`09`20`20sys$login`20is`20then`20updated`20as`20in`20"UNREAD".
  587. X$`20!`09`20`20`20`20$`20NOTICE`20<n>`09-`20Display`20system`20notice`20"n"`20o
  588. Vnly.`20`20Does`20not
  589. X$`20!`09`09`09`09`20`20update`20sys$login`20(user`20may`20see`20this`20system
  590. X$`20!`09`09`09`09`20`20notice`20again`20at`20login).
  591. X$`20!`09`20`20`20`20$`20NOTICE`20LIST`09-`20Displays`20the`20first`20line`20fr
  592. Vom`20all`20available
  593. X$`20!`09`09`09`09`20`20system`20notices,`20prompts`20user`20for`20which`20to
  594. X$`20!`09`09`09`09`20`20display,`20and`20does`20so.`20`20A`20conversational
  595. X$`20!`09`09`09`09`20`20version`20of`20NOTICE`20<n>.`20`20Does`20not`20update
  596. X$`20!`09`09`09`09`20`20sys$login`20(user`20may`20see`20this`20message`20again)
  597. V.
  598. X$`20!`09`09`09`09`20`20This`20is`20the`20default`20behaviour`20if`20NOTICE
  599. X$`20!`09`09`09`09`20`20is`20run`20with`20no`20parameter`20specified.
  600. X$`20!
  601. X$`20!`09`20`20`20`20$`20NOTICE`20DISABLE`09-`20Disables`20the`20display`20of
  602. V`20unread`20notices.
  603. X$`20!
  604. X$`20!`09`20`20`20`20$`20NOTICE`20ENABLE`09-`20Enables`20normal`20behaviour`20o
  605. Vf`20NOTICE`20UNREAD.
  606. X$`20!
  607. X$`20!
  608. X$`20!
  609. X$`20!`09INSTALLATION:
  610. X$`20!`09------------
  611. X$`20!`09`09Installation`20is`20straightforward:
  612. X$`20!`09`090)`20BEWARE:`20`20Before`20you`20begin,`20read`20the`20caveat`20abo
  613. Vut`20how
  614. X$`20!`09`09`20`20`20------`20`20`20this`20procedure`20abuses`20the`20expiry
  615. V`20date`20on`20each
  616. X$`20!`09`09`20`20`20`20`20`20`20`20`20`20`20`20user's`20sys$login`20file.`20
  617. V`20Our`20site`20uses`20volume
  618. X$`20!`09`09`20`20`20`20`20`20`20`20`20`20`20`20retention,`20and`20this`20has
  619. V`20not`20caused`20us`20any
  620. X$`20!`09`09`20`20`20`20`20`20`20`20`20`20`20`20observed`20ill`20behaviour.`20
  621. V`20But`20I`20offer`20no
  622. X$`20!`09`09`20`20`20`20`20`20`20`20`20`20`20`20guarantee`20it`20won't`20hurt
  623. V`20your`20site`20in`20some`20way.
  624. X$`20!`09`091)`20Create`20a`20suitable`20directory`20in`20which`20to`20keep`20s
  625. Vystem
  626. X$`20!`09`09`20`20`20notices.`20`20At`20our`20site,`20they`20are`20kept`20in
  627. V`20a`20directory
  628. X$`20!`09`09`20`20`20called`20CCSDISK:`5B1_2.NOTICE`5D.
  629. X$`20!`09`092)`20Create`20a`20system`20logical`20NOTICE`20pointing`20to`20this
  630. X$`20!`09`09`20`20`20directory.`20`20At`20our`20site,`20the`20systartup_v5.com
  631. V`20file
  632. X$`20!`09`09`20`20`20does`20this`20at`20boot`20time`20with`20the`20command:
  633. X$`20!`09`09`09DEFINE/SYSTEM`09notice`09ccsdisk:`5B1_2.notice`5D
  634. X$`20!`09`093)`20Copy`20this`20command`20procedure`20into`20a`20permanent`20hom
  635. Ve.
  636. X$`20!`09`09`20`20`20At`20CCS,`20we`20keep`20the`20command`20procedure`20in`20t
  637. Vhe`20"notice"
  638. X$`20!`09`09`20`20`20directory,`20CCSDISK:`5B1_2.NOTICE`5D.`20`20Make`20sure
  639. V`20the`20file
  640. X$`20!`09`09`20`20`20protection`20on`20this`20file`20allows`20world`20read`20(W
  641. V:R)`20access.
  642. X$`20!`09`094)`20Define`20the`20NOTICE`20symbol`20for`20every`20user`20at`20log
  643. Vin`20time.
  644. X$`20!`09`09`20`20`20At`20CCS,`20sylogin.com`20contains`20the`20line:
  645. X$`20!`09`09`09$`20NOTICE`20:==`20"@NOTICE:NOTICE.COM"
  646. X$`20!`09`095)`20Create`20some`20notice`20files`20in`20the`20notice`20area.`20
  647. V`20Notice
  648. X$`20!`09`09`20`20`20files`20have`20the`20name`20convention`20NOTICE.nn,`20wher
  649. Ve`20"nn"
  650. X$`20!`09`09`20`20`20is`20an`20integer.`20`20It`20is`20best`20to`20make`20"nn"
  651. V`20a`20two`20digit
  652. X$`20!`09`09`20`20`20integer`20(ie`20use`20"04",`20not`20"4")`20to`20cause`20VM
  653. VS`20to`20locate
  654. X$`20!`09`09`20`20`20notice`20files`20in`20numerical`20order.`20`20(File`20orde
  655. Vr`20in`20VMS
  656. X$`20!`09`09`20`20`20is`20text-based,`20so`20"file.10"`20will`20precede`20"file
  657. V.9"`20in
  658. X$`20!`09`09`20`20`20a`20directory`20or`20lexical`20file`20search.)
  659. X$`20!`09`096)`20Note`20that`20the`20"LIST"`20parameter`20causes`20the`20first
  660. V`20line
  661. X$`20!`09`09`20`20`20of`20each`20notice`20file`20to`20be`20displayed.`20`20This
  662. V`20feature`20is
  663. X$`20!`09`09`20`20`20intended`20to`20provide`20a`20"header"`20or`20title`20for
  664. V`20each`20notice.
  665. X$`20!`09`09`20`20`20Experiment`20with`20this`20first`20line`20until`20you`20ac
  666. Vhieve`20the
  667. X$`20!`09`09`20`20`20results`20you`20desire.
  668. X$`20!`09`097)`20NOTICE.HLP`20exists,`20and`20is`20suitable`20for`20including
  669. V`20in
  670. X$`20!`09`09`20`20`20your`20local`20help`20library.`20`20See`20the`20"VMS`20Lib
  671. Vrarian`20Utility`20
  672. X$`20!`09`09`20`20`20Manual"`20if`20you`20would`20like`20to`20install`20NOTICE.
  673. VHLP.
  674. $ call unpack NOTICE.COM;2 175904062 ""
  675. $!
  676. $ create 'f'
  677. X1`20`20NOTICE
  678. X`20`20`20Displays`20system`20notices`20if`20you`20are`20logged`20on`20interact
  679. Vively.
  680. X`20`20`20(In`20every`20other`20mode,`20NOTICE`20does`20nothing).`20`20The`20NO
  681. VTICE
  682. X`20`20`20command`20can:
  683. X
  684. X`20`20`20`20`20o`20`20Display`20every`20existing`20system`20notice.
  685. X
  686. X`20`20`20`20`20o`20`20Display`20a`20list`20of`20existing`20system`20notices.
  687. X
  688. X`20`20`20`20`20o`20`20Display`20a`20specific`20system`20notice.
  689. X
  690. X`20`20`20`20`20o`20`20Display`20system`20notices`20which`20you`20have`20not
  691. V`20yet`20seen.
  692. X
  693. X`20`20`20`20`20o`20`20Disable`20or`20disable`20viewing`20of`20"unseen"`20syste
  694. Vm`20notices.
  695. X
  696. X`20`20`20Format
  697. X
  698. X`20`20`20`20`20`20`20`20NOTICE`20`20`5Bparameter`5D
  699. X
  700. X2`20`20PARAMETERS
  701. X
  702. X<n>
  703. X`20`20`20Displays`20system`20notice`20number`20<n>`20if`20it`20exists.
  704. X
  705. XALL
  706. X`20`20`20Displays`20every`20existing`20system`20notice.
  707. X
  708. XUNREAD
  709. X`20`20`20Displays`20system`20notices`20which`20you`20have`20not`20yet`20seen.
  710. V`20`20This
  711. X`20`20`20form`20of`20the`20NOTICE`20command`20is`20invoked`20automatically`20e
  712. Vvery
  713. X`20`20`20time`20you`20login`20an`20interactive`20session`20on`20CCS's`20VAX
  714. V`20system,
  715. X`20`20`20in`20an`20attempt`20to`20ensure`20you`20are`20aware`20of`20the`20stat
  716. Ve`20of`20the
  717. X`20`20`20system.`20`20You`20may`20enable`20or`20disable`20this`20behaviour`20b
  718. Vy`20using
  719. X`20`20`20the`20ENABLE`20or`20DISABLE`20parameters`20(see`20below).
  720. X
  721. XLIST
  722. X`20`20`20Displays`20a`20list`20of`20existing`20system`20notices`20and`20lets
  723. V`20you
  724. X`20`20`20select`20which`20notice`20your`20would`20like`20to`20see.`20`20This
  725. V`20is`20the
  726. X`20`20`20default`20behaviour`20of`20the`20NOTICE`20command`20for`20an`20intera
  727. Vctive
  728. X`20`20`20session`20if`20no`20parameter`20is`20specified.
  729. X
  730. XDISABLE
  731. X`20`20`20Flags`20your`20account`20so`20that`20unread`20system`20notices`20are
  732. V`20not`20displayed
  733. X`20`20`20(see`20"UNREAD"`20parameter).`20`20Since`20"NOTICE`20UNREAD"`20is`20i
  734. Vnvoked`20when
  735. X`20`20`20you`20login,`20use`20of`20this`20parameter`20effectively`20cancels
  736. V`20interactive
  737. X`20`20`20system`20notices`20at`20login`20time.
  738. X
  739. XENABLE
  740. X`20`20`20Flags`20your`20account`20so`20that`20unread`20system`20notices`20are
  741. V`20displayed
  742. X`20`20`20(see`20"UNREAD"`20parameter).`20`20Since`20it`20is`20not`20clear`20wh
  743. Vich`20system
  744. X`20`20`20notices`20you`20have`20not`20seen,`20the`20effect`20on`20the`20next
  745. V`20"NOTICE`20UNREAD"
  746. X`20`20`20command`20is`20to`20display`20every`20existing`20system`20notice.
  747. X
  748. X
  749. X`20`20`20Note`20that`20in`20all`20system`20notice`20displays,`20the`20notice
  750. V`20numbers
  751. X`20`20`20need`20not`20be`20consecutive.`20`20The`20notice`20number`20is`20simp
  752. Vly`20a
  753. X`20`20`20convenient`20reference`20for`20you`20and`20for`20operations`20staff
  754. V`20who
  755. X`20`20`20maintain`20system`20notices.
  756. X
  757. X2`20`20EXAMPLE
  758. X
  759. X`20`20`201.`20`20$`20NOTICE
  760. X`20`20`20`20`20`20`20Notice`20`20Subject
  761. X`20`20`20`20`20`20`20`20`20`201`20`20`20`20Micro`20Lab`20Schedule
  762. X`20`20`20`20`20`20`20`20`20`202`20`20`20`20CCS`20POLICY
  763. X`20`20`20`20`20`20`20`20`20`204`20`20`20`20CCS`20PRICES
  764. X`20`20`20`20`20`20`20`20`2015`20`20`20`20DEPARTMENTAL`20EXPENDITURES
  765. X`20`20`20`20`20`20`20Notice`20number`20you`20would`20like`20to`20see:`202
  766. X`20`20`20`20`20`20`20CCS`20POLICY
  767. X
  768. X`20`20`20`20`20`20`20For`20more`20information`20about`20CCS`20policy`20enter:
  769. X
  770. X`20`20`20`20`20`20`20$`20TYPE/PAGE`20SYS$HELP:CCS.POLICY
  771. $ call unpack NOTICE.HLP;3 1783080640 ""
  772. $ v=f$verify(v)
  773. $ exit
  774.