1 whassay: proc;
2
3 dcl 1 data_structure (0:16) static aligned,
4 2 one_liner char (60) varying init (
5 "Check out the new files command in my homedir.",
6 "will you be working late tonight?",
7 "How do I tell Multics to stop sending nacks?",
8 "Thanks",
9 "what is a type 9 link?",
10 "has anyone else tried it?",
11 "are you going to install the new stuff?",
12 "Which version should I use?",
13 "Somebody told me that was fixed.",
14 "How are you today?",
15 "last message garbled, repeat it.",
16 "I'm not sure I understand",
17 "is the stuff you're working with classified?",
18 "I can't, i'll be on vacation then.",
19 "what?",
20 "no",
21 "you have a phone call"),
22 2 already_used bit (1);
23
24 dcl n_used fixed bin static initial (-1);
25
26 dcl random_$uniform entry options (variable),
27 x float bin;
28
29 dcl (ioa_, com_err_) options (variable),
30 timer_manager_$alarm_call entry (fixed bin (71), bit (2), entry),
31 (code, screw) fixed bin (35),
32 whoptr pointer static initial (null);
33
34 dcl user_info_ ext entry options (variable),
35 screwee char (32) static;
36
37 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35));
38
39 %include whotab;
40
41 call hcs_$initiate (">system_control_1", "whotab", "", 0, 0, whoptr, code);
42 if whoptr = null () then return;
43
44 call user_info_ (screwee);
45
46 already_used = ""b;
47 n_used = 0;
48
49 call random_$uniform (x);
50 screw = 300+60*10*x;
51 call timer_manager_$alarm_call ((screw), "11"b, sendit);
52
53 return;
54
55 sendit: proc;
56
57 dcl found bit (1),
58 printed bit (1),
59 timer_manager_$reset_alarm_call ext entry (entry);
60
61 dcl date_time_string char(32);
62 dcl date_time_ entry (fixed bin (71), char (*));
63
64 dcl save_pers char (32), save_proj char (32);
65
66 dcl time float bin,
67 (i, j) fixed bin;
68
69 call timer_manager_$reset_alarm_call (sendit);
70
71 if n_used = dim (data_structure, 1) then return;
72
73 found = ""b;
74
75 do while (^found);
76 call random_$uniform (time);
77 j = time*laste+.999;
78
79 do i = j to laste while (^found);
80 save_pers = person (i);
81 save_proj = project (i);
82 if (active (i) ^= 0)
83 then if (anon (i) ^= 1)
84 then if (proc_type (i) = 1)
85 then if (save_pers ^= screwee)
86 then if (project (i) ^= "SysDaemon")
87 then found = "1"b;
88 end;
89
90 end;
91
92 printed = ""b;
93
94 do while (^printed);
95 call random_$uniform (time);
96 j = time * (hbound (one_liner, 1) + .999);
97 if ^already_used (j) then do;
98 printed, already_used (j) = "1"b;
99 n_used = n_used + 1;
100
101 call date_time_ (clock (), date_time_string);
102
103 call ioa_ ("^/^RFrom ^a.^a ^a: ^B^a", save_pers, save_proj, rtrim (date_time_string),
104 one_liner (j));
105
106 call random_$uniform (time);
107 call timer_manager_$alarm_call (900+60*10*time, "11"b, sendit);
108 end;
109 end;
110
111 end;
112
113 end whassay;