1 &version 2
2 &- ***********************************************************
3 &- * *
4 &- * Copyright, C Honeywell Bull Inc., 1987 *
5 &- * *
6 &- * Copyright, C Honeywell Information Systems Inc., 1982 *
7 &- * *
8 &- * Copyright c 1972 by Massachusetts Institute of *
9 &- * Technology and Honeywell Information Systems, Inc. *
10 &- * *
11 &- ***********************************************************
12 &-
13 &trace off
14 &goto &ec_name
15 &-
16 &- ACCOUNTING COLD START SECTION, FOR INITIALIZING SYSTEM FILES
17 &- AFTER A "boot -cold".
18 &-
19 &- UP TO DATE AS OF ANSWERING SERVICE 17.0 MR12.1
20 &-
21 &- Modified by T. Casey, June 1976, for MR4.0
22 &- Modified by T. Casey, December 1976, for MR5.0
23 &- Modified by T. Casey and B. Greenberg, September 1977 for MR6.0
24 &- Modified by F. W. Martinson, January 1978 for MR7.0
25 &- Modified by C. Hornig, August 1979, for MR8.0
26 &- Modified by T. Casey, February 1980, for MR8.0
27 &- Modified by R. Holmstedt, July 1981, for MR9.0
28 &- Modified by F. W. Martinson, August 1981, for MR9.0 final changes
29 &- Modified by R. Holmstedt, May, 1982, for MR10.0
30 &- Modified by G. Palter, October 1983, to create the mail table
31 &- MR10.2
32 &- Modified by R. Holmstedt, Nov. 1983, for final changes.
33 &- Modified 84-09-21 by E. Swenson for MR11, A.S. 14.2.
34 &- Modified 1984-12-11 by BIM for new value.
35 &- Modified 1984-01-28 by Steve Herbst, preregister and give
36 &- necessary access to Data_Management.Daemon.
37 &- Modified 1985-03-21 by E. Swenson to use set_acl instead of
38 &- ms_set_acl to avoid warning messages. Note that the
39 &- current AS version is 16.1.
40 &- Modified 1985-03-29 by E. Swenson to create the directory
41 &- >system_control_1>mc_acs.
42 &- Modified 1985-04-23 by E. Swenson to make Data_Management setup
43 &- work.
44 &- Modified 1985-05-05 by Art Beattie to correct minor bugs.
45 &-
46 &-
47 &- HISTORY COMMENTS:
48 &- 1) change1987-08-28Lippard, approve1987-02-09PBF7616,
49 &- audit1987-08-28Farley, install1987-09-01MR12.1-1095:
50 &- Modified to create and set_acl on set_proc_required.acs in
51 &- >sc1>admin_acs.
52 &- 2) change2016-01-20Swenson, approve2016-01-20MCR10007,
53 &- audit2016-04-03GDixon, install2016-04-04MR12.6e-10007:
54 &- Fixed acct_start_up.ec to give w access to >sc1>syserr_log>** and
55 &- >sc1>as_logs>** to *.SysAdmin and to set up IACLs on these directories
56 &- so that future log segments have the required access to allow
57 &- move_log_segments to work.
58 &- 3) change2016-12-27Swenson, approve2016-12-27MCR10018,
59 &- audit2016-12-27GDixon, install2016-12-27MR12.6f-0005:
60 &- Fixed typo in message regarding completion of SAT installation.
61 &- END HISTORY COMMENTS
62 &-
63 &-
64 &- ---------------------------------------------------------------------------
65 &- U T I L I T Y F U N C T I O N S
66 &-
67 &- These exec_com "subroutines" are placed at the beginning of the
68 &- segment for efficiency, since exec_com performs a linear search of
69 &- the segment, from the beginning, to find the label, when executing
70 &- the &goto &ec_name at the beginning of the segment.
71 &- ---------------------------------------------------------------------------
72 &-
73 &label make_dir
74 &trace off
75 &if ¬ exists directory &1
76 &then &do
77 create_dir &1
78 &if &exists argument &3
79 &then &do
80 move_quota &1 &3
81 &if &equal wd > &then move_dir_quota &1 &3
82 &if &equal wd >udd &then move_dir_quota &1 &3
83 &if &equal wd >user_dir_dir &then move_dir_quota &1 &3
84 &end
85 &end
86 &- Set the ACL appropriately
87 set_acl &1 sma *.SysDaemon sma *.SysAdmin &f4
88 &- Get rid of redundant acl term for Initializer.SysDaemon
89 delete_acl &1 -brief
90 set_iacl_seg &1 rw *.SysAdmin
91 set_iacl_dir &1 sma *.SysAdmin
92 &- Add the specified name
93 &if ¬ equal x x&2
94 &then &if ¬ exists entry &2 &then add_name &1 &2
95 &-
96 &quit
97 &-
98 &- ------------------------------------------------------------
99 &-
100 &label dir_addname
101 &trace off
102 &- USAGE ec &ec_dir>dir_addname PRIMARY_NAME ADDITIONAL_NAMES
103 &- &1 &f2
104 &-
105 &if &exists directory &1
106 &then &do
107 &if &exists argument &2
108 &then add_name &1 &f2 -brief
109 &end
110 &else &print asu.ec: directory &1 not found. Unable to add names to it.
111 &quit
112 &-
113 &- add_project: This entry will create one project with the specified
114 &- name and other information. It calls new_proj to create the project.
115 &-
116 &label add_project
117 &trace off
118 &if ¬ exists argument &6 &then &do
119 &print add_project.ec: Usage: ec add_project Name Alias Title Quota Attributes Min_Ring
120 &quit
121 &end
122 &set NAME &1
123 &set ALIAS &2
124 &set TITLE "&3"
125 &set QUOTA &4
126 &-
127 &if &equal &r5 ""
128 &then &set ATTRIBUTES ""
129 &else &set ATTRIBUTES &5
130 &-
131 &set MIN_RING &6
132 &attach
133 new_proj &NAME
134 &- Title
135 &TITLE
136 &- Investigator
137 System Administration
138 &- Investigator Address
139 System Administration
140 &- Supervisor
141 =
142 &- Phone
143 unknown_phone
144 &- Account
145 nonbill
146 &- req
147 nonbill
148 &- amount
149
150 &- cutoff
151
152 &- billing name
153 System Administration
154 &- Billing Address
155 System Administration
156 &- Alias
157 &ALIAS
158 &- Administrator
159
160 &- abs-max-fg-cpu
161
162 &- auth
163 system_low
164 &- audit
165
166 &- quota
167 "A
168 &- dir_quota
169
170 &- rate structure
171
172 &- group
173 System
174 &- groups
175
176 &- Attributes
177 &ATTRIBUTES
178 &- grace
179
180 &- min_ring
181 &MIN_RING
182 &- max_ring
183
184 &- pdir_quota
185 1000
186 &- max_fg
187
188 &- max_bg
189
190 &- review?
191 no
192 &- project dir LV
193
194 &- Users add a dummy we will replace the PMF later
195 SA1
196 .
197 &detach
198 &quit
199 &-
200 &- add_person: This entry adds a user_id to the PNT by calling new_user.
201 &-
202 &label add_person
203 &trace off
204 &if ¬ exists argument &3
205 &then &do
206 &print asu.ec add_person.ec: Syntax is:
207 &print ec add_person Personid Default_Project Description Password
208 &quit
209 &end
210 &-
211 &if ¬ exists argument &4
212 &then &set PASSWORD ""
213 &else &set PASSWORD &4
214 &-
215 &attach
216 new_user
217 &- Enter full user name Last First I.
218 *&3
219 &- Enter mailing address
220 c/o System Administration
221 &- Enter programmer number or "none"
222 none
223 &- Enter notes
224 Default user
225 &- Enter default project id or "none"
226 &2
227 &- Password
228 &PASSWORD
229 &- Password Again
230 &PASSWORD
231 &- Network Input Password
232
233 &- Password Again
234
235 &- Please suggest a userid for <user name>
236 &1
237 &- Userid assigned is <userid>
238 &- Is this ok?
239 yes
240 &- More users to add?
241 no
242 &detach
243 &quit
244 &-
245 &- edit_ssu: This entry edits the system_start_up.ec to reflect the
246 &- use of a message coordinator terminal. It is only called if
247 &- a message coordinator channel has been specified in the call
248 &- to acct_start_up.ec.
249 &-
250 &label edit_ssu
251 &trace off
252 &if ¬ exists argument &2
253 &then &do
254 &print asu.ec: Syntax is:
255 &print asu.ec: ec edit_ssu ssu_path mc_channel
256 &quit
257 &end
258 &if ¬ exists entry &1
259 &then &do
260 &print asu.ec: System_start_up.ec segment &1 not found.
261 &quit
262 &end
263 &set SSU_PATH &1
264 &set MC_CHANNEL &2
265 &attach
266 qedx
267 r &SSU_PATH
268 /^& sc_command accept a.h000/a
269 sc_command accept &MC_CHANNEL
270 sc_command redefine default_vcons otw_ tty &MC_CHANNEL
271 \f
272 /^sc_command define scc tty otw_/s/otw_/&MC_CHANNEL/
273 /^sc_command define asc tty otw_/s/otw_/&MC_CHANNEL/
274 /^sc_command define ioc tty otw_/s/otw_/&MC_CHANNEL/
275 /^sc_command define bkc tty otw_/s/otw_/&MC_CHANNEL/
276 w
277 q
278 &detach
279 &quit
280 &-
281 &- ^L
282 &-
283 &- acct_start_up: This entry is the driver for the accounting startup
284 &- procedure. It sets up the directories off the root, sets up
285 &- >system_control_1, >udd>SysAdmin>admin, >udd>SysAdmin>library,
286 &- and other directories necessary for running a service Multics.
287 &- It registers various projects and various userids necessary for
288 &- proper running of Multics.
289 &-
290 &label acct_start_up
291 &label asu
292 &print asu.ec: Multics Accounting Startup version of 87-08-28 for MR12.1
293 &if ¬ exists argument &1
294 &then &do
295 &print asu.ec: Syntax is:
296 &print asu.ec: ec asu cold | cold2 channel
297 &quit
298 &end
299 &-
300 &if &exists argument &2
301 &then &set MC_CHANNEL &2
302 &else &set MC_CHANNEL otw_
303 &-
304 &if &exists argument &3
305 &then &set ROOT &3
306 &else &set ROOT >
307 &-
308 &-
309 &if &exists argument &4
310 &then &do
311 &set TEST true
312 &if &equal &4 lgtest
313 &then &trace on &all
314 &else &if &equal &4 test
315 &then &trace &command on
316 &end
317 &else &set TEST false
318 &-
319 &if &exists argument &5
320 &then &set RESTART_LABEL &5
321 &else &set RESTART_LABEL ""
322 &-
323 &set ACTION &1
324 &-
325 &if &equal &ROOT >
326 &then &do
327 &set TOOLS >system_library_tools
328 &set SC1 >system_control_1
329 &set UDD >user_dir_dir
330 &set SITE >site
331 &end
332 &else &do
333 &set TOOLS &ROOT>system_library_tools
334 &set SC1 &ROOT>system_control_1
335 &set UDD &ROOT>user_dir_dir
336 &set SITE &ROOT>site
337 &end
338 &-
339 &goto &ACTION
340 &-
341 &- &1 - cold, cold1, cold2, reload ACTION
342 &- &2 - a.hNNN
343 &- &3 - root directory
344 &- &4 - test flag
345 &- &4 - <restart label> RESTART_LABEL
346 &-
347 &- &1: cold and cold1 are synonymous, for the first part of coldstart
348 &- cold2 is for the second part of coldstart
349 &- reload stops after the first part of cold1, just before
350 &- the contents of >system_control_1 are initialized
351 &-
352 &- &2: F.ANSS is the terminal line reserved for the message coordinator
353 &- e.g. a.h000 but may also be "otw_"
354 &- where:
355 &- F = FNP tag a-h
356 &- A = Adaptor type h= hsla
357 &- N = Adaptor number 0-2 for hsla
358 &- SS = Decimal subchannel number of specified adaptor
359 &-
360 &- &3: The third argument is the pathname of the directory to be
361 &- used as the root directory. The test hierarhcy is built
362 &- starting at this directory rather than off the root.
363 &-
364 &- &4: Specifies the type of exec_com tracing to be used. If it is
365 &- lgtest, then both command and input tracing is done. If
366 &- it is test, then only command tracing is done.
367 &-
368 &- &5: the fifth argument allows the first part of coldstart to be
369 &- restarted at an arbitrary point, after it has aborted for some
370 &- reason. Coldstart can not be restarted from the beginning because
371 &- it assumes the segments that it creates do not exist yet and the
372 &- first "<thing> already exists; do you want to delete it?" question
373 &- would eat the rest of the exec_com looking for a "yes" or "no"
374 &- answer we run with &attach on all the time.
375 &-
376 &- To restart, do the following:
377 &- 1) Fix the problem that caused the abort.
378 &- 2) Optionally, re-execute the command that aborted.
379 &- 3) Choose a spot, either before or after the command that aborted,
380 &- at which to restart.
381 &- 4) Edit >tools>asu.ec, inserting some label at the chosen restart
382 &- point. A label of the form: &label restart_<name> is suggested,
383 &- to avoid possible conflicts with existing labels. Note: if there
384 &- is an existing label at or before the chosen restart point, and
385 &- it is certain that any intervening commands will not ask any
386 &- questions as a result of being executed twice, then the existing
387 &- label can be used, avoiding the need to edit asu.ec.
388 &- 5) change_wdir to the directory that should be the current working
389 &- directory at the chosen restart point read asu.ec to determine
390 &- this.
391 &- 6) ec >tools>asu Arg1 Arg2 "" "" <label>
392 &- e.g., ec >t>asu cold a.h000 "" "" restart_1
393 &- to restart at the inserted label &label restart_1.
394 &-
395 &- ============================================================================
396 &-
397 &label cold
398 &label cold1
399 &label part1
400 &label reload
401 &-
402 &if &equal &MC_CHANNEL otw_ &then &goto have_init_line
403 &if ¬ equal length &MC_CHANNEL 6 &then &goto illegal_line
404 &if ¬ equal substr &MC_CHANNEL 2 1 . &then &goto illegal_line
405 &if &equal index abcdefgh substr &MC_CHANNEL 1 1 0
406 &then &do
407 &print asu.ec: Illegal FNP tag specified for initializer terminal line, &MC_CHANNEL
408 &quit
409 &end
410 &if ¬ equal substr &MC_CHANNEL 2 2 .h
411 &then &do
412 &label illegal_line
413 &print asu.ec: &MC_CHANNEL must of form "F.ANSS" or be "otw_"
414 &print asu.ec: F = FNP tag. a-h
415 &print asu.ec: A = adaptor type h = hsla
416 &print asu.ec: N = Adaptor no. 0-2 for hsla
417 &print asu.ec: SS = decimal subchan number
418 &quit
419 &end
420 &-
421 &if &equal index 012 substr &MC_CHANNEL 4 1 0
422 &then &do
423 &print asu.ec: Illegal HSLA adapter number specified for initializer terminal line, &MC_CHANNEL
424 &quit
425 &end
426 &-
427 &if &greater substr &MC_CHANNEL 5 2 31
428 &then &do
429 &print asu.ec: Illegal HSLA subchannel specified for initializer terminal line, &MC_CHANNEL
430 &quit
431 &end
432 &-
433 &label have_init_line
434 &-
435 &if &exists argument &RESTART_LABEL
436 &then &do
437 &print asu.ec: will restart at label "&RESTART_LABEL"
438 &print asu.ec: your working directory is:
439 pwd
440 &attach
441 &goto &RESTART_LABEL
442 &end
443 &-
444 &- This section is to be run from the initializer console when the system
445 &- comes to console level after the cold boot. You should be in ring 4 at
446 &- this point, as a result of a "standard" command to the ring-1 environment
447 &- and in the root directory. In the "test" mode, the "root" is wdir at the
448 &- start of execution.
449 &-
450 &attach
451 &-
452 change_wdir &ROOT
453 &-
454 &print asu.ec: Root segment quota is:
455 get_quota
456 &print asu.ec: Root directory quota is:
457 get_dir_quota
458 &-
459 &print asu.ec: Setting up directories off the root
460 &-
461 &- First, put additional names onto directories reloaded from the
462 &- distribution tapes.
463 ec &ec_dir>dir_addname system_library_standard standard sss SSS
464 &+ system_library_languages languages lang LANG
465 ec &ec_dir>dir_addname system_library_tools tools t TOOLS T
466 ec &ec_dir>dir_addname system_library_obsolete obsolete obs OBS
467 ec &ec_dir>dir_addname system_library_tandd firmware firm
468 &-
469 &- Now, create some more directories
470 &-
471 ec &ec_dir>dir_addname system_control_1 sc1 system_control_dir
472 move_quota system_control_1 5000
473 set_acl system_control_1 sma *.SysAdmin s *.*.* -rp
474 set_iacl_dir system_control_1 sma *.SysAdmin s *.*.*
475 set_iacl_seg system_control_1 rw *.SysAdmin
476 &-
477 ec &ec_dir>make_dir user_dir_dir udd 20000
478 set_acl user_dir_dir sma *.SysAdmin s *.*.* -rp
479 set_iacl_dir user_dir_dir sma *.SysAdmin
480 set_iacl_seg user_dir_dir rw *.SysAdmin
481 &-
482 ec &ec_dir>make_dir documentation doc 1500
483 set_acl documentation sma *.SysAdmin s *.*.* -rp
484 set_iacl_dir documentation sma *.SysAdmin s *.*.*
485 set_iacl_seg documentation r *.*.*
486 &-
487 ec &ec_dir>make_dir library_dir_dir ldd 30000
488 set_acl library_dir_dir sma *.SysAdmin s *.*.* -rp
489 set_iacl_dir library_dir_dir sma *.SysAdmin s *.*.*
490 set_iacl_seg library_dir_dir r *.*.*
491 &-
492 ec &ec_dir>make_dir daemon_dir_dir ddd 2000
493 set_acl daemon_dir_dir sma *.SysAdmin sma *.Daemon s *.*.* -rp
494 set_iacl_dir daemon_dir_dir sma *.SysAdmin sma *.Daemon
495 set_iacl_seg daemon_dir_dir rw *.SysAdmin
496 &-
497 ec &ec_dir>make_dir site "" 5000
498 set_acl site sma *.SysAdmin s *.*.* -rp
499 set_iacl_seg site r *.*.*
500 set_iacl_dir site s *.*.*
501 &-
502 ec &ec_dir>make_dir dumps "" 5000
503 set_acl dumps sma *.SysAdmin sma *.Daemon -rp
504 set_iacl_dir dumps sma *.SysAdmin
505 set_iacl_seg dumps rw *.SysAdmin rw *.Daemon
506 &-
507 change_wdir dumps
508 ec &ec_dir>make_dir save_pdirs saved_pdirs
509 set_acl save_pdirs sma *.SysAdmin -rp
510 set_iacl_seg save_pdirs rw *.SysAdmin
511 &-
512 change_wdir &ROOT
513 &-
514 &- ***** in case this installation did not buy the unbundled software.
515 ec &ec_dir>make_dir system_library_unbundled unbundled 7000
516 ec &ec_dir>dir_addname system_library_unbundled unb UNB
517 set_acl system_library_unbundled sma *.SysAdmin s *.*.* -rp
518 &-
519 &- ***** also avoid trouble caused by >am not existing
520 ec &ec_dir>make_dir system_library_auth_maint auth_maint 1000
521 ec &ec_dir>dir_addname system_library_auth_maint am
522 set_acl system_library_auth_maint sma *.SysAdmin s *.*.* -rp
523 &-
524 &- ***** make directory for 3rd party software *****
525 ec &ec_dir>make_dir system_library_3rd_party sl3p 1000
526 set_acl system_library_3rd_party sma *.SysAdmin s *.*.* -rp
527 &-
528 &- Set default homedir for initializer if not "test" mode
529 &if ¬ &TEST
530 &then change_default_wdir system_control_1
531 &-
532 change_wdir documentation
533 ec &ec_dir>make_dir info_segments info
534 set_acl info_segments sma *.SysAdmin s *.*.* -rp
535 set_iacl_seg info_segments r *.*.*
536 &-
537 ec &ec_dir>make_dir iml_info
538 set_acl iml_info sma *.SysAdmin s *.*.* -rp
539 set_iacl_seg iml_info r *.*.*
540 &-
541 change_wdir &SITE
542 ec &ec_dir>make_dir mail_system_dir mail_system 0
543 ec &ec_dir>dir_addname mail_system_dir mlsys
544 set_acl mail_system_dir sma *.SysAdmin s *.*.* -rp
545 set_iacl_seg mail_system_dir r *.*.*
546 set_iacl_dir mail_system_dir s *.*.*
547 &-
548 change_wdir &ROOT
549 &-
550 &print asu.ec: Setting up directories off daemon_dir_dir
551 change_wdir daemon_dir_dir
552 ec &ec_dir>make_dir cards card_pool 500
553 set_acl cards sma *.SysAdmin s *.*.* -rp
554 ec &ec_dir>make_dir io_daemon_dir idd
555 set_acl idd sma *.SysAdmin s *.*.* -rp
556 &-
557 change_wdir io_daemon_dir
558 &print ssu.ec: Creating iod_tables.iodt
559 copy &TOOLS>iod_tables.iodt -force
560 set_acl iod_tables.iodt rw *.SysAdmin r *.*.* -rp
561 iod_tables_compiler iod_tables
562 set_acl iod_tables r *.*.* -rp
563 copy iod_tables iod_working_tables -force
564 set_acl iod_working_tables r *.*.* -rp
565 create_daemon_queues -dr wd
566 set_acl printer_1 2 3.ms adros *.SysDaemon.* adros *.SysAdmin aros *.*.* -rp
567 set_acl punch_1 2 3.ms adros *.SysDaemon.* adros *.SysAdmin aros *.*.* -rp
568 &-
569 &print asu.ec: Setting up directories off user_dir_dir
570 change_wdir &UDD
571 &-
572 &- Note that addnames will be placed on these directories automatically
573 &- by new_proj later on.
574 &-
575 ec &ec_dir>make_dir SysAdmin "" 5000
576 ec &ec_dir>make_dir SysDaemon "" 5000
577 ec &ec_dir>make_dir Daemon "" 1000 s *.Daemon
578 ec &ec_dir>make_dir Operator "" 100 s *.Operator
579 ec &ec_dir>make_dir Terminals "" 10 s *.Terminals
580 ec &ec_dir>make_dir HFED "" 5000 s *.HFED
581 &-
582 change_wdir &UDD>Daemon
583 ec &ec_dir>make_dir Volume_Dumper vld 0
584 set_acl Volume_Dumper sma *.SysAdmin sma Volume_Dumper.Daemon
585 &+ sma Volume_Reloader.Daemon sma Volume_Retriever.Daemon s *.Daemon -rp
586 set_iacl_seg Volume_Dumper rw *.SysAdmin rw Volume_Dumper.Daemon
587 &+ rw Volume_Reloader.Daemon rw Volume_Retriever.Daemon
588 &-
589 change_wdir &UDD>Daemon>Volume_Dumper
590 archive xf &TOOLS>asu_data volume_sys_vols.dump
591 delete sys_vols.dump -force -brief
592 rename volume_sys_vols.dump sys_vols.dump
593 set_acl sys_vols.dump lis -rp
594 &-
595 change_wdir &UDD>Operator
596 ec &ec_dir>make_dir Operator
597 set_acl Operator sma *.SysAdmin sma *.Operator -rp
598 &-
599 change_wdir &UDD>Terminals
600 ec &ec_dir>make_dir anonymous
601 set_acl anonymous sma *.SysAdmin sma *.Terminals -rp
602 &-
603 change_wdir &UDD>HFED
604 ec &ec_dir>make_dir anonymous
605 set_acl anonymous sma *.SysAdmin sma *.HFED -rp
606 &-
607 change_wdir &UDD>SysAdmin
608 ec &ec_dir>make_dir SA1 sa1
609 set_acl SA1 sma *.SysAdmin -rp
610 set_iacl_seg SA1 rw *.SysAdmin
611 &-
612 ec &ec_dir>make_dir Repair
613 set_acl Repair sma *.SysAdmin -rp
614 set_iacl_seg Repair rw *.SysAdmin
615 &-
616 change_wdir &UDD>SysDaemon
617 ec &ec_dir>make_dir IO
618 ec &ec_dir>make_dir Backup
619 ec &ec_dir>make_dir Dumper
620 ec &ec_dir>make_dir Retriever
621 ec &ec_dir>make_dir Repair
622 ec &ec_dir>make_dir Scavenger
623 ec &ec_dir>make_dir Salvager
624 ec &ec_dir>make_dir Utility
625 &-
626 copy &TOOLS>salvager_start_up.ec Salvager>start_up.ec -force
627 copy &TOOLS>scavenger_start_up.ec Scavenger>start_up.ec -force
628 copy &TOOLS>utility_start_up.ec Utility>start_up.ec -force
629 &-
630 cwd Backup
631 archive xf &TOOLS>asu_data hierarchy_sys_dirs.dump
632 delete sys_dirs.dump -force -brief
633 rename hierarchy_sys_dirs.dump sys_dirs.dump
634 set_acl sys_dirs.dump rw *.SysDaemon rw *.SysAdmin -rp
635 &-
636 cwd &SC1
637 &-
638 &if &equal &ACTION reload
639 &then &do
640 &print asu.ec: Root reload complete.
641 &print asu.ec: Ready for further reloads by daemons.
642 &quit
643 &end
644 &-
645 &- ^L
646 &-
647 &print asu.ec: Setting up contents of system_control_1
648 &print asu.ec: Creating administrative directories in system_control_1
649 &if &exists directory pdt
650 &then answer yes -bf delete pdt>** -force -brief
651 &if &exists directory update
652 &then answer yes -bf delete update>** -force -brief
653 ec &ec_dir>make_dir pdt
654 ec &ec_dir>make_dir heals_dir
655 ec &ec_dir>make_dir update
656 ec &ec_dir>make_dir volume_backup_accounts vba
657 &-
658 &- Set up directory for Message Coordinator ACS segments
659 &-
660 ec &ec_dir>make_dir mc_acs
661 &-
662 &- Set up ACSs for administratively controlled functions
663 &-
664 ec &ec_dir>make_dir admin_acs proxy
665 change_wdir admin_acs
666 delete ** -force -brief
667 create absentee_proxy.acs
668 set_acl absentee_proxy.acs e *.SysDaemon e *.SysAdmin -rp
669 create tandd.acs
670 set_acl tandd.acs rw *.SysAdmin -rp
671 create sat.install.acs
672 set_acl sat.install.acs rw *.SysAdmin -rp
673 create cdt.install.acs
674 set_acl cdt.install.acs rw *.SysAdmin -rp
675 create rtdt.install.acs
676 set_acl rtdt.install.acs rw *.SysAdmin -rp
677 create mgt.install.acs
678 set_acl mgt.install.acs rw *.SysAdmin -rp
679 create bump_user.acs
680 set_acl bump_user.acs rw Data_Management.Daemon -rp
681 create process_termination_monitor.acs
682 set_acl process_termination_monitor.acs rw Data_Management.Daemon -rp
683 create communications.acs
684 set_acl communications.acs rw *.SysDaemon rw *.SysAdmin -rp
685 create set_proc_required.acs
686 set_acl set_proc_required.acs rw *.SysDaemon rw *.SysAdmin rw *.SysMaint -rp
687 set_max_length **.acs 0
688 &-
689 change_wdir &SC1
690 &- copy default start_up.ec from tools
691 copy &TOOLS>start_up.ec -force
692 set_acl start_up.ec rw *.SysDaemon rw *.SysAdmin rw *.SysMaint r * -rp
693 srb start_up.ec 4 5 5
694 &- create segment necessary for running ISOLTS
695 &if ¬ exists segment opr_query_data
696 &then create opr_query_data
697 set_acl opr_query_data rw *.SysDaemon rw *.SysAdmin rw *.HFED -rp
698 &-
699 &print asu.ec: Creating message of the day and login help file
700 archive xf &TOOLS>asu_data message_of_the_day login_help connect_help
701 add_name message_of_the_day motd
702 set_acl motd rw *.SysAdmin r *.*.* -rp
703 &if ¬ exists link <documentation>info_segments>motd.info
704 &then link motd <documentation>info_segments>motd.info
705 &if ¬ exists link <documentation>info_segments>connect_help.info
706 &then link connect_help <documentation>info_segments>connect_help.info
707 &print asu.ec: Creating user tables, whotab, and log segments
708 &if ¬ exists segment answer_table &then create answer_table
709 &if ¬ exists segment daemon_user_table &then create daemon_user_table
710 &if ¬ exists segment absentee_user_table
711 &then create absentee_user_table
712 &if ¬ exists segment whotab
713 &then &do
714 create whotab
715 set_acl whotab rw *.SysDaemon r *.*.* -rp
716 &end
717 &if ¬ exists segment log &then create log
718 set_acl log r *.SysAdmin
719 &-
720 &- -------------------- installation_parms -------------------
721 &-
722 &if &exists segment installation_parms
723 &then delete installation_parms -force -brief
724 file_output pd>junk_
725 ed_installation_parms
726 default
727 yes
728 w
729 q
730 revert_output
731 set_acl installation_parms rw *.SysDaemon rw *.SysAdmin r *.*.* -replace
732 &-
733 &- -------------------- system_start_up.ec -------------------
734 &-
735 &print asu.ec: Creating system_start_up.ec
736 copy &TOOLS>system_start_up.ec -force
737 &if ¬ equal &MC_CHANNEL otw_
738 &then exec_com &ec_dir>edit_ssu system_start_up.ec &MC_CHANNEL
739 &-
740 &- ------------------- admin.ec -----------------------------
741 &-
742 &print asu.ec: Creating admin.ec and admin_1.ec
743 copy &TOOLS>admin.ec -force
744 copy &TOOLS>admin_1.ec -force
745 &-
746 &- ---------------------- PNT -------------------------------
747 &-
748 &print asu.ec: Setting up Person Name Table PNT
749 &if &TEST
750 &then pnt_manager_$test wd
751 &-
752 &if &exists entry PNT.pnt
753 &then delete PNT.pnt
754 create_pnt PNT.pnt -size 1000
755 set_acl PNT.pnt rw *.SysDaemon rw *.SysAdmin null * -replace
756 &-
757 change_wdir &ROOT
758 &-
759 &print asu.ec: Setting up administrative library.
760 exec_com &ec_dir>setup_sysadmin_lib &ROOT &TEST
761 &-
762 &print asu.ec: Setting up system administration data directory
763 exec_com &ec_dir>setup_sysadmin_admin &ROOT &TEST
764 &-
765 &print asu.ec: Setting up SA1.SysAdmin
766 change_wdir &UDD>SysAdmin>SA1
767 archive xf &TOOLS>asu_data SA1_start_up.ec
768 delete start_up.ec -force -brief
769 rename SA1_start_up.ec start_up.ec
770 set_acl start_up.ec rw *.SysAdmin -rp
771 &-
772 &if ¬ exists segment SA1.mbx
773 &then mbcr SA1.mbx
774 &- Following line commented out because suffix_mbx_$replace_acl
775 &- has a bug which blows out the system free area if called.
776 &-
777 &- set_acl SA1.mbx adros SA1.SysAdmin aros *.SysAdmin aos *.*.* -rp
778 &-
779 &print asu.ec: Creating links under ldd for the gls command
780 change_wdir &ROOT
781 change_wdir library_dir_dir
782 &if ¬ &TEST
783 &then answer yes ec &TOOLS>create_gls_links
784 &-
785 change_wdir &SC1
786 &print asu.ec: Continue with the next step in the Installation Instructions.
787 &print
788 &quit
789 &- ^L
790 &-
791 &- This section completes the accounting startup, by setting access for
792 &- all users on the various segments created by the answering service
793 &- when "multics" was typed, and installing the SAT and some PDT's, now
794 &- that "install" is turned on. Your environment should be in admin mode
795 &- on the initializer process in ring 4, with your working directory set
796 &- to >system_control_1.
797 &-
798 &label part2
799 &label cold2
800 &print asu.ec: Now setting all access.
801 &if ¬ exists directory rcp &then create_dir rcp
802 set_acl rcp sma *.SysAdmin
803 &-
804 set_acl as_logs sma *.SysAdmin
805 set_iacl_seg as_logs rw *.SysAdmin
806 set_acl as_logs>** rw *.SysAdmin -brief
807 &-
808 move_quota syserr_log 1000
809 set_acl syserr_log sma *.SysAdmin
810 set_iacl_seg syserr_log rw *.SysAdmin
811 set_acl syserr_log>** rw *.SysAdmin -brief
812 &-
813 set_acl admin_acs sma *.SysAdmin
814 &-
815 &- Next line sets access to all directories under the ROOT for *.SysAdmin
816 set_acl <dirs <** sma *.SysAdmin
817 &-
818 &if &exists segment login_help &then set_acl login_help r *.*.*
819 &if &exists segment connect_help &then set_acl connect_help r *.*.*
820 &if &exists segment whotab &then set_acl whotab r *.*.*
821 &if &exists segment motd &then set_acl motd r *.*.*
822 &if &exists segment ttt
823 &then &do
824 lsa ttt r *.*.*
825 srb ttt 4 5 5
826 &end
827 &if &exists segment rtdt
828 &then &do
829 set_acl rtdt r *.*.*
830 set_ring_brackets rtdt 4 5 5
831 &end
832 &- now to get the HEALS stuff going
833 set_acl heals_dir sma *.SysDaemon.* sma *.SysAdmin.* s *.HFED.*
834 &- in test mode the following will fail so skip if test
835 &if ¬ &TEST
836 &then &do
837 update_heals_log
838 set_acl heals_dir>heals_log rw *.SysDaemon.* rw *.SysAdmin.* r *.HFED.*
839 set_acl heals_dir>heals_log_info rw *.SysDaemon.* rw *.SysAdmin.* r *.HFED.*
840 &end
841 &-
842 &- Data_Management.Daemon needs access to several tables:
843 &-
844 set_acl >sc1>answer_table absentee_user_table daemon_user_table
845 &+ r Data_Management.Daemon
846 &-
847 change_wdir &UDD>SysAdmin>admin
848 &-
849 &print asu.ec: Now running daily_summary
850 daily_summary -nosum -nocutr
851 &-
852 &print asu.ec: Now installing SAT
853 install smf.cur.sat
854 &print asu.ec: Pausing 10 seconds to allow completion of SAT installation
855 pause 10
856 &print asu.ec: End of pause
857 &-
858 cwd &SC1
859 &-
860 &- set zero max length on the acs segments
861 set_max_length rcp>**.acs 0
862 &-
863 set_special_password operator_admin_mode -none
864 &print asu.ec: Entering admin mode currently does not require a password.
865 &print asu.ec: To set one, type the following command line which will prompt
866 &print asu.ec: for the password:
867 &print
868 &print asu.ec: set_special_password operator_admin_mode
869 &print
870 &print asu.ec: End of accounting cold start part 2.
871 &quit
872 &-
873 &label setup_sysadmin_lib
874 &trace off
875 &default &undefined false
876 &-
877 &- Arguments: &1 = root directory
878 &- &2 = test flag
879 &if ¬ &exists argument &1
880 &then &do
881 &print asu.ec setup_sysadmin_lib.ec: Argument 1 not supplied.
882 &quit
883 &end
884 &-
885 &set ROOT &1
886 &if &equal &ROOT >
887 &then &do
888 &set TOOLS >system_library_tools
889 &set UDD >user_dir_dir
890 &end
891 &else &do
892 &set TOOLS &ROOT>system_library_tools
893 &set UDD &ROOT>user_dir_dir
894 &end
895 &set WDIR &wd
896 &-
897 cwd &UDD>SysAdmin
898 ec &ec_dir>make_dir library lib
899 add_name library l
900 cwd library
901 &-
902 &print asu.ec: Creating sys_admin_data.
903 &if ¬ exists segment sys_admin_data
904 &then create sys_admin_data
905 &-
906 admin_util set b1 "INTER"
907 admin_util set b2 "DEPARTMENT"
908 admin_util set b3 "MAIL"
909 admin_util set user_accts "User Accounts Office"
910 admin_util set user_accts_addr "address"
911 admin_util set user_accts_phone "phone"
912 admin_util set attributes "anonymous,bumping,brief,vinitproc,vhomedir,
913 &+nostartup,^no_primary,^no_secondary,^no_edit_only,^daemon"
914 admin_util set group Other
915 admin_util set grace 2880
916 admin_util set init_ring 4
917 admin_util set max_ring 5
918 &-
919 &print asu.ec: Creating sys_admin.value.
920 answer yes -brief value_set -pn sys_admin accounting_start_up_time clock calendar_clock
921 &-
922 &- The values specified below are schedule dependent and can be
923 &- changed to conform to local operations.
924 &-
925 value_set -pn sys_admin crank_time 0300.
926 &- NOTE that disk_time should be before crank_time
927 value_set -pn sys_admin disk_time 0230.
928 value_set -pn sys_admin admin_online "SA1.SysAdmin"
929 value_set -pn sys_admin log_number 0
930 value_set -pn sys_admin abort_crank false
931 &-
932 &- The value command/active function allows an arbitrary set of named values
933 &- to be defined by value_set -pn sys_admin and later retrieved by value_get -pn sys_admin ....
934 &- The settings of the following values, used to address dprinted reports
935 &- to administrators and system programmers, are commented out to avoid
936 &- the printing of many copies of reports addressed to fictitious people
937 &- at a new installation. Reports addressed to undefined values are not
938 &- printed.
939 &-
940 &- The installation is advised to examine the following, and the usage
941 &- of these named values in master.ec crank and disk_auto sections and
942 &- biller.ec,
943 &- and set up values with appropriate names, defining the proper
944 &- recipients of the various reports, at this installation.
945 &-
946 &- By default, one copy of every report produced by the above ecs
947 &- will be dprinted addressed to "SYSTEM ADMINISTRATOR".
948 &-
949 value_set -pn sys_admin default_dest "SYSTEM"
950 value_set -pn sys_admin default_addr "ADMINISTRATOR"
951 &- value_set -pn sys_admin admin0 1_dest """ADMINISTRATOR"""
952 &- value_set -pn sys_admin admin0 1_addr "long_date"
953 &- value_set -pn sys_admin accts0_dest """USER ACCOUNTS"""
954 &- value_set -pn sys_admin accts0_addr "long_date"
955 &- value_set -pn sys_admin assurance0 1_dest """SYSTEM ASSURANCE"""
956 &- value_set -pn sys_admin assurance0 1_addr "long_date"
957 &- value_set -pn sys_admin sysprg0 1 2_dest """SYSTEM PROGRAMMING"""
958 &- value_set -pn sys_admin sysprg0 1 2_addr "long_date"
959 &- value_set -pn sys_admin director0 1 2 3 4 5 6 7_dest """DIRECTOR"""
960 &- value_set -pn sys_admin director0 1 2 3 4 5 6 7_addr "long_date"
961 &-
962 &print asu.ec: Creating prototype pmf for all normal projects
963 archive xf &TOOLS>asu_data prototype.pmf
964 archive xf &TOOLS>asu_data prototype_pmf
965 &-
966 &print asu.ec: Copying master.ec, biller.ec, err.ec, and util.ec
967 copy &TOOLS>master biller err util.ec -force
968 &-
969 &print asu.ec: Copying crank.absin
970 copy &TOOLS>crank.absin -force
971 add_name crank.absin dodrp.absin run.absin weekly.absin
972 &-
973 archive xf &TOOLS>asu_data daily_report.control
974 &-
975 &print asu.ec: Copying other miscellaneous segments
976 archive xf &TOOLS>asu_data accounts.info starname_list
977 copy &TOOLS>dds.absin *.ssl -force
978 &quit
979 &-
980 &label setup_sysadmin_admin
981 &trace off
982 &default &undefined false
983 &-
984 &- Arguments: &1 = root directory
985 &- &2 = test flag
986 &if ¬ exists argument &1
987 &then &do
988 &print asu.ec setup_sysadmin_admin.ec: Argument 1 not supplied.
989 &quit
990 &end
991 &-
992 &set ROOT &1
993 &if &exists argument &2
994 &then &set TEST &2
995 &else &set TEST false
996 &-
997 &if &equal &ROOT >
998 &then &do
999 &set TOOLS >system_library_tools
1000 &set UDD >user_dir_dir
1001 &set SC1 >system_control_1
1002 &set SITE >site
1003 &end
1004 &else &do
1005 &set TOOLS &ROOT>system_library_tools
1006 &set UDD &ROOT>user_dir_dir
1007 &set SC1 &ROOT>system_control_1
1008 &set SITE &ROOT>site
1009 &end
1010 &set WDIR &wd
1011 &-
1012 cwd &UDD>SysAdmin
1013 ec &ec_dir>make_dir admin a 2000
1014 change_wdir admin
1015 &-
1016 &- Link to sys_admin_data, value_seg, prototype.pmf, prototype_pmf, master.ec
1017 &- biller.ec, err.ec, util.ec, crank.absin, daily_report.control,
1018 &- accounts.info, syserr_select_file, log_select_file, starname_list,
1019 &- dds.absin
1020 &-
1021 &- Following line can be replaced with unlink ** -brief -force when available
1022 discard_output -osw error_output unlink ** -force
1023 &-
1024 link <lib>** -cpnm
1025 ec &ec_dir>make_dir history h
1026 ec &ec_dir>make_dir safe_pdts
1027 ec &ec_dir>make_dir safe_registries
1028 ec &ec_dir>make_dir HF
1029 &-
1030 &- -------------------- SAT -------------------
1031 &-
1032 &print asu.ec: Creating working copy of the System Administrator Table SAT
1033 delete smf.cur.sat -force -brief
1034 create_sat smf.cur.sat
1035 set_acl smf.cur.sat rw *.SysDaemon rw *.SysAdmin null * -replace
1036 &-
1037 admin_util set uwt 10 process_overseer_
1038 admin_util set uwt 10 project_start_up_
1039 admin_util set uwt 10 >system_library_tools>iod_overseer_
1040 &-
1041 admin_util set administrator1 *.SysAdmin
1042 admin_util set administrator2 *.SysDaemon
1043 &-
1044 &print asu.ec: Generating empty files for billing programs
1045 &if ¬ exists segment miscfile
1046 &then create miscfile
1047 &-
1048 delete projfile -force -brief
1049 create_projfile projfile
1050 &-
1051 delete reqfile -force -brief
1052 create_reqfile reqfile
1053 &-
1054 &- - - - - - - - - - - - - MGT - - - - - - - - - - - - -
1055 &-
1056 &print asu.ec: Creating Master Group Table MGT
1057 &if &exists segment MGT.mgt
1058 &then delete MGT.mgt -force
1059 file_output pd>junk_
1060 &attach
1061 ed_mgt MGT
1062 a System 4.0
1063 w
1064 q
1065 &detach
1066 revert_output
1067 &-
1068 copy MGT.mgt &SC1>mgt -force
1069 set_acl &SC1>mgt rw Initializer.SysDaemon r *.SysAdmin -replace
1070 &if ¬ exists entry &SC1>master_group_table
1071 &then add_name &SC1>mgt master_group_table
1072 &-
1073 &- Create various projects
1074 &if &TEST
1075 &then &do
1076 pnt_manager_$test wd
1077 new_proj$test &SC1 &UDD
1078 link &SC1>PNT.pnt
1079 &end
1080 &-
1081 &print asu.ec: Creating SysAdmin, SysDaemon, Daemon, Operator, HFED,
1082 &print asu.ec: and Terminals project
1083 &-
1084 file_output pd>junk_ -ssw user_i/o
1085 exec_com &ec_dir>add_project SysAdmin sa "System Administration" 3000
1086 &+ nobump,guaranteed_login,multip,nolist,dialok 1
1087 &-
1088 exec_com &ec_dir>add_project SysDaemon sd "Privileged System Daemons" 1000
1089 &+ nobump,guaranteed_login,multip,nolist,daemon,dialok 1
1090 &-
1091 exec_com &ec_dir>add_project Daemon dmn "System Daemons" 1000
1092 &+ nobump,guaranteed_login,multip,nolist,daemon,dialok 4
1093 &-
1094 exec_com &ec_dir>add_project Operator opr "System Operators" 100 "" 4
1095 exec_com &ec_dir>add_project HFED hfed "Honeywell Field Engineering" 100 "" 4
1096 exec_com &ec_dir>add_project Terminals terms "Terminal Repair" 100 "" 4
1097 &-
1098 revert_output -ssw user_i/o
1099 &-
1100 archive xf &TOOLS>asu_data SysAdmin.pmf SysDaemon.pmf Daemon.pmf
1101 &+ Operator.pmf HFED.pmf Terminals.pmf
1102 &-
1103 &print asu.ec: Installing SAT to define projects
1104 copy smf.cur.sat &SC1>sat -force
1105 set_acl &SC1>sat rw Initializer.SysDaemon rw *.SysAdmin -no_sysdaemon
1106 &+ -replace
1107 &-
1108 &print asu.ec: Converting PMFs to PDTs for SysAdmin, SysDaemon and Daemon
1109 cv_pmf SysAdmin SysDaemon Daemon.pmf
1110 &-
1111 &print asu.ec: Installing PDTs for SysAdmin, SysDaemon, and Daemon
1112 copy SysAdmin SysDaemon Daemon.pdt &SC1>pdt>== -force
1113 &-
1114 &print asu.ec: Putting PMFs away into pmf.archive
1115 &if &exists segment pmf.archive &then delete pmf.archive -force
1116 &-
1117 archive ad pmf SysAdmin.pmf SysDaemon.pmf Daemon.pmf
1118 &-
1119 &- ------------ URF, MAIL_TABLE -----------
1120 &-
1121 &print asu.ec: Creating URF, MAIL_TABLE with capacity of 1000 users
1122 &if &TEST &then new_user$new_user_test wd
1123 &if &TEST &then mail_table_priv_$test path &SITE>mail_system_dir
1124 &if &exists entry URF
1125 &then delete URF -force
1126 create_urf URF -size 1000
1127 &if &exists entry &SITE>mail_system_dir>MAIL_TABLE
1128 &then l_rename &SITE>mail_system_dir>MAIL_TABLE MAIL_TABLE.unique
1129 create_mail_table
1130 &-
1131 &print asu.ec: Registering Initial Users
1132 &-
1133 file_output pd>junk_
1134 ec &ec_dir>add_person Backup SysDaemon "System, Incremental Backup"
1135 ec &ec_dir>add_person Data_Management Daemon "System, Data Management Daemon"
1136 ec &ec_dir>add_person Dumper SysDaemon "System, Complete Dump"
1137 ec &ec_dir>add_person IO SysDaemon "System, Bulk IO"
1138 ec &ec_dir>add_person Operator Operator "System, Operator"
1139 ec &ec_dir>add_person Repair SysAdmin "System, Repair" repair
1140 ec &ec_dir>add_person Retriever SysDaemon "System, Retrievals"
1141 ec &ec_dir>add_person SA1 SysAdmin "System, Restricted Administrator"
1142 ec &ec_dir>add_person Salvager SysDaemon "System, Salvager"
1143 ec &ec_dir>add_person Scavenger SysDaemon "System, Scavenger"
1144 ec &ec_dir>add_person Utility SysDaemon "System, Monitor cleanup"
1145 ec &ec_dir>add_person Volume_Dumper Daemon "System, Volume Backup"
1146 ec &ec_dir>add_person Volume_Reloader Daemon "System, Volume Reload"
1147 ec &ec_dir>add_person Volume_Retriever Daemon "System, Volume Retrieve"
1148 &-
1149 &- Set must_change flag on for Repair since set a password for it
1150 &- Also give Repair the operator attribute so that it can execute
1151 &- operator commands.
1152 &-
1153 &attach
1154 new_user$cga Repair flags
1155 must_change,operator
1156 &detach
1157 &-
1158 revert_output
1159 delete pd>junk_
1160 &-
1161 &- -------------------- today.use_totals -------------------
1162 &-
1163 &print asu.ec: Creating use_totals segments
1164 reset_use_totals today.use_totals daily_report.control
1165 reset_use_totals yesterday.use_totals daily_report.control
1166 reset_use_totals last_month.use_totals daily_report.control
1167 &-
1168 &- -------------------- Terminal Type File --------------------
1169 &-
1170 &print asu.ec: Creating and installing Terminal Type File TTF
1171 copy &TOOLS>TTF.ttf -force
1172 cv_ttf TTF.ttf
1173 copy TTF.ttt &SC1>ttt -force
1174 set_acl &SC1>ttt rw Initializer.SysDaemon r * -replace
1175 srb &SC1>ttt 4 5 5
1176 &-
1177 &- -------------------- Channel Master File --------------------
1178 &-
1179 &print asu.ec: Creating and installing Channel Master File CMF
1180 copy &TOOLS>CMF.cmf -force
1181 cv_cmf CMF.cmf
1182 copy CMF.cdt &SC1>cdt -force
1183 set_acl &SC1>cdt rw Initializer.SysDaemon r *.SysAdmin -replace
1184 &-
1185 &- ------------- Resource Type Master File -------------
1186 &-
1187 &print asu.ec: Creating and installing Resource Type Master File RTMF
1188 copy &TOOLS>RTMF.rtmf -force
1189 cv_rtmf RTMF.rtmf
1190 copy RTMF.rtdt &SC1>rtdt -force
1191 set_acl &SC1>rtdt rw Initializer.SysDaemon r * -replace
1192 srb &SC1>rtdt 4 5 5
1193 &-
1194 &quit
1195 &-
1196 &- ***** END OF asu.ec *****
1197 &-
1198 &label &1
1199 &print asu.ec: Illegal argument &1
1200 &quit