1 /* ***********************************************************
2 * *
3 * Copyright, C Honeywell Information Systems Inc., 1982 *
4 * *
5 * Copyright c 1972 by Massachusetts Institute of *
6 * Technology and Honeywell Information Systems, Inc. *
7 * *
8 *********************************************************** */
9
10 /* format: style2 */
11 stringrange stringsize:
12 pl1_data:
13 proc;
14
15 /*
16 Converted to create_data_segment_ 07/07/76 by Bernard Greenberg
17 Modified: 27 Dec 1976 by Richard Barnes for after, before, ltrim, rtrim
18 Modified: 30 Dec 1976 by RAB for collate9 and high9
19 Modified: 17 Feb 1977 by RAB for -check_ansi
20 Modified: April 1977 to add codeptr, currentsize, clock, environmentptr,
21 maxlength, stackbaseptr, stackframeptr,
22 stacq, vclock by RHS
23 Modified: 10 May 1977 by RAB to fix 1573 sum & prod
24 Modified 770519 by PG to add substraddr
25 Modified: 12 July 1977 by RAB to fix maxlength & change stacq definition
26 Modified: 29 Mar 1978 by PCK to add codeptr, environmentptr, stackbaseptr, and stackframeptr
27 Modified 790202 by PG to add byte and rank
28 Modified 830101 by BIM add addcharno addbitno addwordno setcharno
29 setbitno setwordno, remove substraddr.
30 */
31
32 dcl create_data_segment_ ext entry ptr fixed bin 35 aligned;
33 dcl com_err_ entry options variable;
34 dcl 1 cdsa like cds_args aligned;
35 dcl get_temp_segments_ release_temp_segments_
36 entry char * * ptr fixed bin 35;
37 dcl cleanup stringrange stringsize error
38 condition;
39 dcl code fixed bin 35;
40 dcl myname char 10 init "pl1_data" static internal options constant;
41 dcl segptrs 1 ptr init null ;
42
43
44 dcl i j fixed bin 15;
45
46 dcl p ptr;
47
48
49 dcl addr collate divide substr unspec null
50 builtin;
51
52 dcl ioa_ entry options variable;
53
54 dcl collating_overlay 0:511 bit 9 unal based addr p -> long_collating_sequence;
55
56 dcl 1 pl1_data based p,
57 2 long_collating_sequence
58 char 512 aligned,
59 2 builtin_name,
60 3 number_of_names fixed bin 15,
61 3 description 127 refer pl1_data.number_of_names,
62 4 name char 14,
63 4 aggregate_result
64 bit 1,
65 4 nonstandard bit 1,
66 4 unused bit 7,
67 4 opcode bit 9,
68 4 reserve_list_number
69 fixed bin 15,
70 4 jump_index fixed bin 15,
71 4 check_indicator
72 fixed bin 15,
73 4 number1 fixed bin 15,
74 4 number2 fixed bin 15,
75 4 number_of_descriptions
76 fixed bin 15,
77 4 descriptor 4,
78 5 check_code fixed bin 15,
79 5 type bit 36 aligned;
80
81 /* check_indicator resulting action:
82
83 1 number1 is required number of arguments
84 2 number1 is minimum number of arguments
85 3 number1 is minimum number of arguments,
86 number2 is maximum number of arguments.
87
88 check_code resulting action:
89
90 1 argument must be of this type
91 2 argument should be converted to this type
92 3 argument should be converted to float binary
93 4 argument should be converted to arithmetic type
94 5 argument should be converted to integer type
95 6 argument should be real decimal fixed constant
96 7 argument should be converted to string type
97 8 argument must either be a bit string or real fixed binary
98 9 argument must be variable
99 10 argument must be computational
100 11 argument must be real and converted to float binary
101 12 argument must be entry, label, or format value
102 */
103
104
105 %include cds_args;
106
107 %include mask;
108 %include op_codes;
109 %include system;
110
111 /* ^L */
112
113 on stringsize
114 begin;
115 call com_err_ 0 myname "Stringsize condition raised.";
116 signal error;
117 end;
118 on cleanup call release_temp_segments_ myname segptrs 0;
119 call get_temp_segments_ myname segptrs code;
120 if code ^= 0
121 then do;
122 call com_err_ code myname "Getting temp segments";
123 return;
124 end;
125
126 p = segptrs 1;
127
128 /* ^L */
129
130 i = 1;
131 p -> builtin_name.description i.name = "abs";
132 p -> builtin_name.description i.aggregate_result = "1"b;
133 p -> builtin_name.description i.opcode = abs_fun;
134 p -> builtin_name.description i.jump_index = 13;
135 p -> builtin_name.description i.check_indicator = 1;
136 p -> builtin_name.description i.number1 = 1;
137 p -> builtin_name.description i.number_of_descriptions = 1;
138 p -> builtin_name.description i.descriptor 1.check_code = 4;
139
140 i = i + 1;
141 p -> builtin_name.description i.name = "acos";
142 p -> builtin_name.description i.aggregate_result = "1"b;
143 p -> builtin_name.description i.opcode = acos_fun;
144 p -> builtin_name.description i.reserve_list_number = 85;
145 p -> builtin_name.description i.jump_index = 54;
146 p -> builtin_name.description i.check_indicator = 1;
147 p -> builtin_name.description i.number1 = 1;
148 p -> builtin_name.description i.number_of_descriptions = 1;
149 p -> builtin_name.description i.descriptor 1.check_code = 11;
150
151 i = i + 1;
152 p -> builtin_name.description i.name = "add";
153 p -> builtin_name.description i.aggregate_result = "1"b;
154 p -> builtin_name.description i.opcode = add;
155 p -> builtin_name.description i.jump_index = 14;
156 p -> builtin_name.description i.check_indicator = 3;
157 p -> builtin_name.description i.number1 = 3;
158 p -> builtin_name.description i.number2 = 4;
159 p -> builtin_name.description i.number_of_descriptions = 4;
160 p -> builtin_name.description i.descriptor 3.check_code = 6;
161 p -> builtin_name.description i.descriptor 4.check_code = 6;
162
163 i = i + 1;
164 p -> builtin_name.description i.name = "addr";
165 p -> builtin_name.description i.opcode = addr_fun;
166 p -> builtin_name.description i.jump_index = 33;
167 p -> builtin_name.description i.check_indicator = 1;
168 p -> builtin_name.description i.number1 = 1;
169 p -> builtin_name.description i.number_of_descriptions = 1;
170 p -> builtin_name.description i.descriptor 1.check_code = 9;
171
172 i = i + 1;
173 p -> builtin_name.description i.name = "addrel";/* multics function */
174 p -> builtin_name.description i.opcode = addrel_fun;
175 p -> builtin_name.description i.nonstandard = "1"b;
176 p -> builtin_name.description i.jump_index = 41;
177 p -> builtin_name.description i.check_indicator = 1;
178 p -> builtin_name.description i.number1 = 2;
179 p -> builtin_name.description i.number_of_descriptions = 2;
180 p -> builtin_name.description i.descriptor 1.check_code = 1;
181 p -> builtin_name.description i.descriptor 1.type = pointer_type;
182 p -> builtin_name.description i.descriptor 2.check_code = 8;
183 i = i + 1;
184 p -> builtin_name.description i.name = "addwordno";/* multics function */
185 p -> builtin_name.description i.opcode = addrel_fun;
186 p -> builtin_name.description i.nonstandard = "1"b;
187 p -> builtin_name.description i.jump_index = 41;
188 p -> builtin_name.description i.check_indicator = 1;
189 p -> builtin_name.description i.number1 = 2;
190 p -> builtin_name.description i.number_of_descriptions = 2;
191 p -> builtin_name.description i.descriptor 1.check_code = 1;
192 p -> builtin_name.description i.descriptor 1.type = pointer_type;
193 p -> builtin_name.description i.descriptor 2.check_code = 5;
194
195 i = i + 1;
196 p -> builtin_name.description i.name = "allocation";
197 p -> builtin_name.description i.opcode = allocation_fun;
198 p -> builtin_name.description i.jump_index = 36;
199 p -> builtin_name.description i.check_indicator = 1;
200 p -> builtin_name.description i.number1 = 1;
201
202 i = i + 1;
203 p -> builtin_name.description i.name = "allocn";
204 p -> builtin_name.description i.opcode = allocation_fun;
205 p -> builtin_name.description i.jump_index = 36;
206 p -> builtin_name.description i.check_indicator = 1;
207 p -> builtin_name.description i.number1 = 1;
208
209 i = i + 1;
210 p -> builtin_name.description i.name = "after";
211 p -> builtin_name.description i.aggregate_result = "1"b;
212 p -> builtin_name.description i.opcode = index_after_fun;
213 p -> builtin_name.description i.jump_index = 55;
214 p -> builtin_name.description i.check_indicator = 1;
215 p -> builtin_name.description i.number1 = 2;
216
217 i = i + 1;
218 p -> builtin_name.description i.name = "asin";
219 p -> builtin_name.description i.aggregate_result = "1"b;
220 p -> builtin_name.description i.opcode = asin_fun;
221 p -> builtin_name.description i.reserve_list_number = 77;
222 p -> builtin_name.description i.jump_index = 54;
223 p -> builtin_name.description i.check_indicator = 1;
224 p -> builtin_name.description i.number1 = 1;
225 p -> builtin_name.description i.number_of_descriptions = 1;
226 p -> builtin_name.description i.descriptor 1.check_code = 11;
227
228 i = i + 1;
229 p -> builtin_name.description i.name = "atan";
230 p -> builtin_name.description i.aggregate_result = "1"b;
231 p -> builtin_name.description i.opcode = atan_fun;
232 p -> builtin_name.description i.reserve_list_number = 93;
233 p -> builtin_name.description i.jump_index = 54;
234 p -> builtin_name.description i.check_indicator = 3;
235 p -> builtin_name.description i.number1 = 1;
236 p -> builtin_name.description i.number2 = 2;
237 p -> builtin_name.description i.number_of_descriptions = 2;
238 p -> builtin_name.description i.descriptor 1.check_code = 11;
239 p -> builtin_name.description i.descriptor 2.check_code = 11;
240
241 i = i + 1;
242 p -> builtin_name.description i.name = "atand";
243 p -> builtin_name.description i.aggregate_result = "1"b;
244 p -> builtin_name.description i.opcode = atand_fun;
245 p -> builtin_name.description i.reserve_list_number = 97;
246 p -> builtin_name.description i.jump_index = 54;
247 p -> builtin_name.description i.check_indicator = 3;
248 p -> builtin_name.description i.number1 = 1;
249 p -> builtin_name.description i.number2 = 2;
250 p -> builtin_name.description i.number_of_descriptions = 2;
251 p -> builtin_name.description i.descriptor 1.check_code = 11;
252 p -> builtin_name.description i.descriptor 2.check_code = 11;
253
254 i = i + 1;
255 p -> builtin_name.description i.name = "atanh";
256 p -> builtin_name.description i.aggregate_result = "1"b;
257 p -> builtin_name.description i.reserve_list_number = 45;
258 p -> builtin_name.description i.jump_index = 25;
259 p -> builtin_name.description i.check_indicator = 1;
260 p -> builtin_name.description i.number1 = 1;
261 p -> builtin_name.description i.number_of_descriptions = 1;
262 p -> builtin_name.description i.descriptor 1.check_code = 3;
263
264 i = i + 1;
265 p -> builtin_name.description i.name = "baseno";/* multics function */
266 p -> builtin_name.description i.opcode = baseno_fun;
267 p -> builtin_name.description i.nonstandard = "1"b;
268 p -> builtin_name.description i.jump_index = 39;
269 p -> builtin_name.description i.check_indicator = 1;
270 /* Exact # of args */
271 p -> builtin_name.description i.number1 = 1; /* One argument */
272 p -> builtin_name.description i.number_of_descriptions = 1;
273
274 i = i + 1;
275 p -> builtin_name.description i.name = "segno"; /* multics function */
276 p -> builtin_name.description i.opcode = segno_fun;
277 p -> builtin_name.description i.nonstandard = "1"b;
278 p -> builtin_name.description i.jump_index = 70;
279 p -> builtin_name.description i.check_indicator = 1;
280 p -> builtin_name.description i.number1 = 1;
281 p -> builtin_name.description i.number_of_descriptions = 1;
282
283 i = i + 1;
284 p -> builtin_name.description i.name = "baseptr";
285 /* multics function */
286 p -> builtin_name.description i.opcode = baseptr_fun;
287 p -> builtin_name.description i.nonstandard = "1"b;
288 p -> builtin_name.description i.jump_index = 41;
289 p -> builtin_name.description i.check_indicator = 1;
290 p -> builtin_name.description i.number1 = 1;
291 p -> builtin_name.description i.number_of_descriptions = 1;
292 p -> builtin_name.description i.descriptor 1.check_code = 8;
293
294 i = i + 1;
295 p -> builtin_name.description i.name = "before";
296 p -> builtin_name.description i.aggregate_result = "1"b;
297 p -> builtin_name.description i.opcode = index_before_fun;
298 p -> builtin_name.description i.jump_index = 56;
299 p -> builtin_name.description i.check_indicator = 1;
300 p -> builtin_name.description i.number1 = 2;
301
302 i = i + 1;
303 p -> builtin_name.description i.name = "bin";
304 p -> builtin_name.description i.aggregate_result = "1"b;
305 p -> builtin_name.description i.jump_index = 15;
306 p -> builtin_name.description i.check_indicator = 3;
307 p -> builtin_name.description i.number1 = 1;
308 p -> builtin_name.description i.number2 = 3;
309 p -> builtin_name.description i.number_of_descriptions = 3;
310 p -> builtin_name.description i.descriptor 1.check_code = 10;
311 p -> builtin_name.description i.descriptor 1.type = binary_mask;
312 p -> builtin_name.description i.descriptor 2.check_code = 6;
313 p -> builtin_name.description i.descriptor 3.check_code = 6;
314
315 i = i + 1;
316 p -> builtin_name.description i.name = "binary";
317 p -> builtin_name.description i.aggregate_result = "1"b;
318 p -> builtin_name.description i.jump_index = 15;
319 p -> builtin_name.description i.check_indicator = 3;
320 p -> builtin_name.description i.number1 = 1;
321 p -> builtin_name.description i.number2 = 3;
322 p -> builtin_name.description i.number_of_descriptions = 3;
323 p -> builtin_name.description i.descriptor 1.check_code = 10;
324 p -> builtin_name.description i.descriptor 1.type = binary_mask;
325 p -> builtin_name.description i.descriptor 2.check_code = 6;
326 p -> builtin_name.description i.descriptor 3.check_code = 6;
327
328 i = i + 1;
329 p -> builtin_name.description i.name = "bit";
330 p -> builtin_name.description i.aggregate_result = "1"b;
331 p -> builtin_name.description i.jump_index = 18;
332 p -> builtin_name.description i.check_indicator = 3;
333 p -> builtin_name.description i.number1 = 1;
334 p -> builtin_name.description i.number2 = 2;
335 p -> builtin_name.description i.number_of_descriptions = 2;
336 p -> builtin_name.description i.descriptor 1.check_code = 10;
337 p -> builtin_name.description i.descriptor 1.type = bit_mask;
338 p -> builtin_name.description i.descriptor 2.check_code = 5;
339
340 i = i + 1;
341 p -> builtin_name.description i.name = "bool";
342 p -> builtin_name.description i.aggregate_result = "1"b;
343 p -> builtin_name.description i.opcode = bool_fun;
344 p -> builtin_name.description i.jump_index = 23;
345 p -> builtin_name.description i.check_indicator = 1;
346 p -> builtin_name.description i.number1 = 3;
347 p -> builtin_name.description i.number_of_descriptions = 3;
348 p -> builtin_name.description i.descriptor 1.check_code = 2;
349 p -> builtin_name.description i.descriptor 1.type = bit_mask;
350 p -> builtin_name.description i.descriptor 2.check_code = 2;
351 p -> builtin_name.description i.descriptor 2.type = bit_mask;
352 p -> builtin_name.description i.descriptor 3.check_code = 2;
353 p -> builtin_name.description i.descriptor 3.type = bit_mask;
354
355 i = i + 1;
356 p -> builtin_name.description i.name = "byte"; /* multics function */
357 p -> builtin_name.description i.aggregate_result = "1"b;
358 p -> builtin_name.description i.nonstandard = "1"b;
359 p -> builtin_name.description i.opcode = byte_fun;
360 p -> builtin_name.description i.jump_index = 68;
361 p -> builtin_name.description i.check_indicator = 1;
362 p -> builtin_name.description i.number1 = 1;
363 p -> builtin_name.description i.number_of_descriptions = 1;
364 p -> builtin_name.description i.descriptor 1.check_code = 2;
365 p -> builtin_name.description i.descriptor 1.type = fixed_binary_real_mask;
366
367 i = i + 1;
368 p -> builtin_name.description i.name = "ceil";
369 p -> builtin_name.description i.aggregate_result = "1"b;
370 p -> builtin_name.description i.opcode = ceil_fun;
371 p -> builtin_name.description i.jump_index = 16;
372 p -> builtin_name.description i.check_indicator = 1;
373 p -> builtin_name.description i.number1 = 1;
374 p -> builtin_name.description i.number_of_descriptions = 1;
375 p -> builtin_name.description i.descriptor 1.check_code = 4;
376
377 i = i + 1;
378 p -> builtin_name.description i.name = "char";
379 p -> builtin_name.description i.aggregate_result = "1"b;
380 p -> builtin_name.description i.jump_index = 18;
381 p -> builtin_name.description i.check_indicator = 3;
382 p -> builtin_name.description i.number1 = 1;
383 p -> builtin_name.description i.number2 = 2;
384 p -> builtin_name.description i.number_of_descriptions = 2;
385 p -> builtin_name.description i.descriptor 1.check_code = 10;
386 p -> builtin_name.description i.descriptor 1.type = char_mask;
387 p -> builtin_name.description i.descriptor 2.check_code = 5;
388
389 i = i + 1;
390 p -> builtin_name.description i.name = "character";
391 p -> builtin_name.description i.aggregate_result = "1"b;
392 p -> builtin_name.description i.jump_index = 18;
393 p -> builtin_name.description i.check_indicator = 3;
394 p -> builtin_name.description i.number1 = 1;
395 p -> builtin_name.description i.number2 = 2;
396 p -> builtin_name.description i.number_of_descriptions = 2;
397 p -> builtin_name.description i.descriptor 1.check_code = 10;
398 p -> builtin_name.description i.descriptor 1.type = char_mask;
399 p -> builtin_name.description i.descriptor 2.check_code = 5;
400
401 i = i + 1;
402 p -> builtin_name.description i.name = "clock"; /* multics function */
403 p -> builtin_name.description i.nonstandard = "1"b;
404 p -> builtin_name.description i.opcode = clock_fun;
405 p -> builtin_name.description i.jump_index = 62;
406 p -> builtin_name.description i.check_indicator = 1;
407 p -> builtin_name.description i.number1 = 0;
408
409 i = i + 1;
410 p -> builtin_name.description i.name = "codeptr";
411 /* multics function */
412 p -> builtin_name.description i.nonstandard = "1"b;
413 p -> builtin_name.description i.aggregate_result = "1"b;
414 p -> builtin_name.description i.opcode = codeptr_fun;
415 p -> builtin_name.description i.jump_index = 63;
416 p -> builtin_name.description i.check_indicator = 1;
417 p -> builtin_name.description i.number1 = 1;
418 p -> builtin_name.description i.number_of_descriptions = 1;
419 p -> builtin_name.description i.descriptor 1.check_code = 12;
420
421 i = i + 1;
422 p -> builtin_name.description i.name = "collate";
423 p -> builtin_name.description i.jump_index = 1;
424 p -> builtin_name.description i.check_indicator = 1;
425 p -> builtin_name.description i.number1 = 0;
426
427 i = i + 1;
428 p -> builtin_name.description i.name = "collate9";
429 /* multics function */
430 p -> builtin_name.description i.nonstandard = "1"b;
431 p -> builtin_name.description i.jump_index = 59;
432 p -> builtin_name.description i.check_indicator = 1;
433 p -> builtin_name.description i.number1 = 0;
434
435 i = i + 1;
436 p -> builtin_name.description i.name = "complex";
437 p -> builtin_name.description i.aggregate_result = "1"b;
438 p -> builtin_name.description i.opcode = complex_fun;
439 p -> builtin_name.description i.jump_index = 17;
440 p -> builtin_name.description i.check_indicator = 1;
441 p -> builtin_name.description i.number1 = 2;
442
443 i = i + 1;
444 p -> builtin_name.description i.name = "conjg";
445 p -> builtin_name.description i.aggregate_result = "1"b;
446 p -> builtin_name.description i.opcode = conjg_fun;
447 p -> builtin_name.description i.jump_index = 50;
448 p -> builtin_name.description i.check_indicator = 1;
449 p -> builtin_name.description i.number1 = 1;
450 p -> builtin_name.description i.number_of_descriptions = 1;
451 p -> builtin_name.description i.descriptor 1.check_code = 1;
452 p -> builtin_name.description i.descriptor 1.type = complex_mask;
453
454 i = i + 1;
455 p -> builtin_name.description i.name = "convert";
456 /* multics function */
457 p -> builtin_name.description i.nonstandard = "1"b;
458 p -> builtin_name.description i.jump_index = 46;
459 p -> builtin_name.description i.check_indicator = 1;
460 p -> builtin_name.description i.number1 = 2;
461
462 i = i + 1;
463 p -> builtin_name.description i.name = "copy";
464 p -> builtin_name.description i.aggregate_result = "1"b;
465 p -> builtin_name.description i.opcode = repeat_fun;
466 p -> builtin_name.description i.jump_index = 9;
467 p -> builtin_name.description i.check_indicator = 1;
468 p -> builtin_name.description i.number1 = 2;
469 p -> builtin_name.description i.number_of_descriptions = 2;
470 p -> builtin_name.description i.descriptor 1.check_code = 7;
471 p -> builtin_name.description i.descriptor 2.check_code = 5;
472
473 i = i + 1;
474 p -> builtin_name.description i.name = "cos";
475 p -> builtin_name.description i.aggregate_result = "1"b;
476 p -> builtin_name.description i.opcode = cos_fun;
477 p -> builtin_name.description i.reserve_list_number = 61;
478 p -> builtin_name.description i.jump_index = 54;
479 p -> builtin_name.description i.check_indicator = 1;
480 p -> builtin_name.description i.number1 = 1;
481 p -> builtin_name.description i.number_of_descriptions = 1;
482 p -> builtin_name.description i.descriptor 1.check_code = 3;
483
484 i = i + 1;
485 p -> builtin_name.description i.name = "cosd";
486 p -> builtin_name.description i.aggregate_result = "1"b;
487 p -> builtin_name.description i.opcode = cosd_fun;
488 p -> builtin_name.description i.reserve_list_number = 65;
489 p -> builtin_name.description i.jump_index = 54;
490 p -> builtin_name.description i.check_indicator = 1;
491 p -> builtin_name.description i.number1 = 1;
492 p -> builtin_name.description i.number_of_descriptions = 1;
493 p -> builtin_name.description i.descriptor 1.check_code = 11;
494
495 i = i + 1;
496 p -> builtin_name.description i.name = "cosh";
497 p -> builtin_name.description i.aggregate_result = "1"b;
498 p -> builtin_name.description i.reserve_list_number = 113;
499 p -> builtin_name.description i.jump_index = 25;
500 p -> builtin_name.description i.check_indicator = 1;
501 p -> builtin_name.description i.number1 = 1;
502 p -> builtin_name.description i.number_of_descriptions = 1;
503 p -> builtin_name.description i.descriptor 1.check_code = 3;
504
505 i = i + 1;
506 p -> builtin_name.description i.name = "cplx";
507 p -> builtin_name.description i.aggregate_result = "1"b;
508 p -> builtin_name.description i.opcode = complex_fun;
509 p -> builtin_name.description i.jump_index = 17;
510 p -> builtin_name.description i.check_indicator = 1;
511 p -> builtin_name.description i.number1 = 2;
512
513 i = i + 1;
514 p -> builtin_name.description i.name = "currentsize";
515 /* multics function */
516 p -> builtin_name.description i.nonstandard = "1"b;
517 p -> builtin_name.description i.jump_index = 64;
518 p -> builtin_name.description i.check_indicator = 1;
519 p -> builtin_name.description i.number1 = 1;
520
521 i = i + 1;
522 p -> builtin_name.description i.name = "date";
523 p -> builtin_name.description i.reserve_list_number = 186;
524 p -> builtin_name.description i.jump_index = 31;
525 p -> builtin_name.description i.check_indicator = 1;
526 p -> builtin_name.description i.number1 = 0;
527
528 i = i + 1;
529 p -> builtin_name.description i.name = "dec";
530 p -> builtin_name.description i.aggregate_result = "1"b;
531 p -> builtin_name.description i.jump_index = 15;
532 p -> builtin_name.description i.check_indicator = 3;
533 p -> builtin_name.description i.number1 = 1;
534 p -> builtin_name.description i.number2 = 3;
535 p -> builtin_name.description i.number_of_descriptions = 3;
536 p -> builtin_name.description i.descriptor 1.check_code = 10;
537 p -> builtin_name.description i.descriptor 1.type = decimal_mask;
538 p -> builtin_name.description i.descriptor 2.check_code = 6;
539 p -> builtin_name.description i.descriptor 3.check_code = 6;
540
541 i = i + 1;
542 p -> builtin_name.description i.name = "decat";
543 p -> builtin_name.description i.aggregate_result = "1"b;
544 p -> builtin_name.description i.reserve_list_number = 190;
545 p -> builtin_name.description i.jump_index = 24;
546 p -> builtin_name.description i.check_indicator = 1;
547 p -> builtin_name.description i.number1 = 3;
548
549 i = i + 1;
550 p -> builtin_name.description i.name = "decimal";
551 p -> builtin_name.description i.aggregate_result = "1"b;
552 p -> builtin_name.description i.jump_index = 15;
553 p -> builtin_name.description i.check_indicator = 3;
554 p -> builtin_name.description i.number1 = 1;
555 p -> builtin_name.description i.number2 = 3;
556 p -> builtin_name.description i.number_of_descriptions = 3;
557 p -> builtin_name.description i.descriptor 1.check_code = 10;
558 p -> builtin_name.description i.descriptor 1.type = decimal_mask;
559 p -> builtin_name.description i.descriptor 2.check_code = 6;
560 p -> builtin_name.description i.descriptor 3.check_code = 6;
561
562 i = i + 1;
563 p -> builtin_name.description i.name = "dim";
564 p -> builtin_name.description i.opcode = sub;
565 p -> builtin_name.description i.reserve_list_number = 3;
566 /* third argument in call to bounds_ */
567 p -> builtin_name.description i.jump_index = 26;
568 p -> builtin_name.description i.check_indicator = 1;
569 p -> builtin_name.description i.number1 = 2;
570 p -> builtin_name.description i.number_of_descriptions = 2;
571 p -> builtin_name.description i.descriptor 2.check_code = 5;
572
573 i = i + 1;
574 p -> builtin_name.description i.name = "dimension";
575 p -> builtin_name.description i.opcode = sub;
576 p -> builtin_name.description i.reserve_list_number = 3;
577 /* third argument in call to bounds_ */
578 p -> builtin_name.description i.jump_index = 26;
579 p -> builtin_name.description i.check_indicator = 1;
580 p -> builtin_name.description i.number1 = 2;
581 p -> builtin_name.description i.number_of_descriptions = 2;
582 p -> builtin_name.description i.descriptor 2.check_code = 5;
583
584 i = i + 1;
585 p -> builtin_name.description i.name = "divide";
586 p -> builtin_name.description i.aggregate_result = "1"b;
587 p -> builtin_name.description i.opcode = div;
588 p -> builtin_name.description i.jump_index = 14;
589 p -> builtin_name.description i.check_indicator = 3;
590 p -> builtin_name.description i.number1 = 3;
591 p -> builtin_name.description i.number2 = 4;
592 p -> builtin_name.description i.number_of_descriptions = 4;
593 p -> builtin_name.description i.descriptor 3.check_code = 6;
594 p -> builtin_name.description i.descriptor 4.check_code = 6;
595
596 i = i + 1;
597 p -> builtin_name.description i.name = "dot";
598 p -> builtin_name.description i.opcode = add;
599 p -> builtin_name.description i.jump_index = 45;
600 p -> builtin_name.description i.check_indicator = 3;
601 p -> builtin_name.description i.number1 = 3;
602 p -> builtin_name.description i.number2 = 4;
603 p -> builtin_name.description i.number_of_descriptions = 4;
604 p -> builtin_name.description i.descriptor 3.check_code = 6;
605 p -> builtin_name.description i.descriptor 4.check_code = 6;
606
607 i = i + 1;
608 p -> builtin_name.description i.name = "empty";
609 p -> builtin_name.description i.jump_index = 28;
610 p -> builtin_name.description i.check_indicator = 1;
611 p -> builtin_name.description i.number1 = 0;
612
613 i = i + 1;
614 p -> builtin_name.description i.name = "environmentptr";
615 /* multics function */
616 p -> builtin_name.description i.nonstandard = "1"b;
617 p -> builtin_name.description i.aggregate_result = "1"b;
618 p -> builtin_name.description i.opcode = environmentptr_fun;
619 p -> builtin_name.description i.jump_index = 63;
620 p -> builtin_name.description i.check_indicator = 1;
621 p -> builtin_name.description i.number1 = 1;
622 p -> builtin_name.description i.number_of_descriptions = 1;
623 p -> builtin_name.description i.descriptor 1.check_code = 12;
624
625 i = i + 1;
626 p -> builtin_name.description i.name = "erf";
627 p -> builtin_name.description i.aggregate_result = "1"b;
628 p -> builtin_name.description i.reserve_list_number = 129;
629 p -> builtin_name.description i.jump_index = 25;
630 p -> builtin_name.description i.check_indicator = 1;
631 p -> builtin_name.description i.number1 = 1;
632 p -> builtin_name.description i.number_of_descriptions = 1;
633 p -> builtin_name.description i.descriptor 1.check_code = 11;
634
635 i = i + 1;
636 p -> builtin_name.description i.name = "erfc";
637 p -> builtin_name.description i.aggregate_result = "1"b;
638 p -> builtin_name.description i.reserve_list_number = 133;
639 p -> builtin_name.description i.jump_index = 25;
640 p -> builtin_name.description i.check_indicator = 1;
641 p -> builtin_name.description i.number1 = 1;
642 p -> builtin_name.description i.number_of_descriptions = 1;
643 p -> builtin_name.description i.descriptor 1.check_code = 11;
644
645 i = i + 1;
646 p -> builtin_name.description i.name = "exp";
647 p -> builtin_name.description i.aggregate_result = "1"b;
648 p -> builtin_name.description i.opcode = exp_fun;
649 p -> builtin_name.description i.reserve_list_number = 29;
650 p -> builtin_name.description i.jump_index = 54;
651 p -> builtin_name.description i.check_indicator = 1;
652 p -> builtin_name.description i.number1 = 1;
653 p -> builtin_name.description i.number_of_descriptions = 1;
654 p -> builtin_name.description i.descriptor 1.check_code = 3;
655
656 i = i + 1;
657 p -> builtin_name.description i.name = "fixed";
658 p -> builtin_name.description i.aggregate_result = "1"b;
659 p -> builtin_name.description i.jump_index = 3;
660 p -> builtin_name.description i.check_indicator = 3;
661 p -> builtin_name.description i.number1 = 1;
662 p -> builtin_name.description i.number2 = 3;
663 p -> builtin_name.description i.number_of_descriptions = 3;
664 p -> builtin_name.description i.descriptor 1.check_code = 10;
665 p -> builtin_name.description i.descriptor 2.check_code = 6;
666 p -> builtin_name.description i.descriptor 3.check_code = 6;
667
668 i = i + 1;
669 p -> builtin_name.description i.name = "float";
670 p -> builtin_name.description i.aggregate_result = "1"b;
671 p -> builtin_name.description i.jump_index = 2;
672 p -> builtin_name.description i.check_indicator = 3;
673 p -> builtin_name.description i.number1 = 1;
674 p -> builtin_name.description i.number2 = 2;
675 p -> builtin_name.description i.number_of_descriptions = 2;
676 p -> builtin_name.description i.descriptor 1.check_code = 10;
677 p -> builtin_name.description i.descriptor 2.check_code = 6;
678
679 i = i + 1;
680 p -> builtin_name.description i.name = "floor";
681 p -> builtin_name.description i.aggregate_result = "1"b;
682 p -> builtin_name.description i.opcode = floor_fun;
683 p -> builtin_name.description i.jump_index = 16;
684 p -> builtin_name.description i.check_indicator = 1;
685 p -> builtin_name.description i.number1 = 1;
686 p -> builtin_name.description i.number_of_descriptions = 1;
687 p -> builtin_name.description i.descriptor 1.check_code = 4;
688
689 i = i + 1;
690 p -> builtin_name.description i.name = "hbound";
691 p -> builtin_name.description i.reserve_list_number = 2;
692 /* third argument in call to bounds_ */
693 p -> builtin_name.description i.jump_index = 26;
694 p -> builtin_name.description i.check_indicator = 1;
695 p -> builtin_name.description i.number1 = 2;
696 p -> builtin_name.description i.number_of_descriptions = 2;
697 p -> builtin_name.description i.descriptor 2.check_code = 5;
698
699 i = i + 1;
700 p -> builtin_name.description i.name = "high";
701 p -> builtin_name.description i.opcode = repeat_fun;
702 p -> builtin_name.description i.jump_index = 5;
703 p -> builtin_name.description i.check_indicator = 1;
704 p -> builtin_name.description i.number1 = 1;
705 p -> builtin_name.description i.number_of_descriptions = 1;
706 p -> builtin_name.description i.descriptor 1.check_code = 5;
707
708 i = i + 1;
709 p -> builtin_name.description i.name = "high9"; /* multics function */
710 p -> builtin_name.description i.nonstandard = "1"b;
711 p -> builtin_name.description i.opcode = repeat_fun;
712 p -> builtin_name.description i.jump_index = 60;
713 p -> builtin_name.description i.check_indicator = 1;
714 p -> builtin_name.description i.number1 = 1;
715 p -> builtin_name.description i.number_of_descriptions = 1;
716 p -> builtin_name.description i.descriptor 1.check_code = 5;
717
718 i = i + 1;
719 p -> builtin_name.description i.name = "imag";
720 p -> builtin_name.description i.aggregate_result = "1"b;
721 p -> builtin_name.description i.opcode = imag_fun;
722 p -> builtin_name.description i.jump_index = 19;
723 p -> builtin_name.description i.check_indicator = 1;
724 p -> builtin_name.description i.number1 = 1;
725 p -> builtin_name.description i.number_of_descriptions = 1;
726 p -> builtin_name.description i.descriptor 1.check_code = 1;
727 p -> builtin_name.description i.descriptor 1.type = complex_mask;
728
729 i = i + 1;
730 p -> builtin_name.description i.name = "index";
731 p -> builtin_name.description i.aggregate_result = "1"b;
732 p -> builtin_name.description i.opcode = index_fun;
733 p -> builtin_name.description i.jump_index = 6;
734 p -> builtin_name.description i.check_indicator = 1;
735 p -> builtin_name.description i.number1 = 2;
736
737 i = i + 1;
738 p -> builtin_name.description i.name = "lbound";
739 p -> builtin_name.description i.reserve_list_number = 1;
740 /* third argument in call to bounds_ */
741 p -> builtin_name.description i.jump_index = 26;
742 p -> builtin_name.description i.check_indicator = 1;
743 p -> builtin_name.description i.number1 = 2;
744 p -> builtin_name.description i.number_of_descriptions = 2;
745 p -> builtin_name.description i.descriptor 2.check_code = 5;
746
747 i = i + 1;
748 p -> builtin_name.description i.name = "length";
749 p -> builtin_name.description i.aggregate_result = "1"b;
750 p -> builtin_name.description i.opcode = length_fun;
751 p -> builtin_name.description i.jump_index = 7;
752 p -> builtin_name.description i.check_indicator = 1;
753 p -> builtin_name.description i.number1 = 1;
754 p -> builtin_name.description i.number_of_descriptions = 1;
755 p -> builtin_name.description i.descriptor 1.check_code = 7;
756
757 i = i + 1;
758 p -> builtin_name.description i.name = "lineno";
759 p -> builtin_name.description i.reserve_list_number = 183;
760 p -> builtin_name.description i.jump_index = 30;
761 p -> builtin_name.description i.check_indicator = 1;
762 p -> builtin_name.description i.number1 = 1;
763 p -> builtin_name.description i.number_of_descriptions = 1;
764 p -> builtin_name.description i.descriptor 1.check_code = 1;
765 p -> builtin_name.description i.descriptor 1.type = file_mask;
766
767 i = i + 1;
768 p -> builtin_name.description i.name = "log";
769 p -> builtin_name.description i.aggregate_result = "1"b;
770 p -> builtin_name.description i.opcode = log_fun;
771 p -> builtin_name.description i.reserve_list_number = 33;
772 p -> builtin_name.description i.jump_index = 54;
773 p -> builtin_name.description i.check_indicator = 1;
774 p -> builtin_name.description i.number1 = 1;
775 p -> builtin_name.description i.number_of_descriptions = 1;
776 p -> builtin_name.description i.descriptor 1.check_code = 3;
777
778 i = i + 1;
779 p -> builtin_name.description i.name = "log10";
780 p -> builtin_name.description i.aggregate_result = "1"b;
781 p -> builtin_name.description i.opcode = log10_fun;
782 p -> builtin_name.description i.reserve_list_number = 41;
783 p -> builtin_name.description i.jump_index = 54;
784 p -> builtin_name.description i.check_indicator = 1;
785 p -> builtin_name.description i.number1 = 1;
786 p -> builtin_name.description i.number_of_descriptions = 1;
787 p -> builtin_name.description i.descriptor 1.check_code = 11;
788
789 i = i + 1;
790 p -> builtin_name.description i.name = "log2";
791 p -> builtin_name.description i.aggregate_result = "1"b;
792 p -> builtin_name.description i.opcode = log2_fun;
793 p -> builtin_name.description i.reserve_list_number = 37;
794 p -> builtin_name.description i.jump_index = 54;
795 p -> builtin_name.description i.check_indicator = 1;
796 p -> builtin_name.description i.number1 = 1;
797 p -> builtin_name.description i.number_of_descriptions = 1;
798 p -> builtin_name.description i.descriptor 1.check_code = 11;
799
800 i = i + 1;
801 p -> builtin_name.description i.name = "low";
802 p -> builtin_name.description i.opcode = repeat_fun;
803 p -> builtin_name.description i.jump_index = 8;
804 p -> builtin_name.description i.check_indicator = 1;
805 p -> builtin_name.description i.number1 = 1;
806 p -> builtin_name.description i.number_of_descriptions = 1;
807 p -> builtin_name.description i.descriptor 1.check_code = 5;
808
809 i = i + 1;
810 p -> builtin_name.description i.name = "ltrim"; /* multics function */
811 p -> builtin_name.description i.nonstandard = "1"b;
812 p -> builtin_name.description i.aggregate_result = "1"b;
813 p -> builtin_name.description i.opcode = verify_ltrim_fun;
814 p -> builtin_name.description i.jump_index = 57;
815 p -> builtin_name.description i.check_indicator = 3;
816 p -> builtin_name.description i.number1 = 1;
817 p -> builtin_name.description i.number2 = 2;
818 p -> builtin_name.description i.number_of_descriptions = 2;
819 p -> builtin_name.description i.descriptor 1.check_code = 2;
820 p -> builtin_name.description i.descriptor 1.type = char_mask;
821 p -> builtin_name.description i.descriptor 2.check_code = 2;
822 p -> builtin_name.description i.descriptor 2.type = char_mask;
823
824 i = i + 1;
825 p -> builtin_name.description i.name = "max";
826 p -> builtin_name.description i.aggregate_result = "1"b;
827 p -> builtin_name.description i.opcode = max_fun;
828 p -> builtin_name.description i.jump_index = 20;
829 p -> builtin_name.description i.check_indicator = 2;
830 p -> builtin_name.description i.number1 = 2;
831
832 i = i + 1;
833 p -> builtin_name.description i.name = "maxlength";
834 /* multics function */
835 p -> builtin_name.description i.nonstandard = "1"b;
836 p -> builtin_name.description i.aggregate_result = "1"b;
837 p -> builtin_name.description i.jump_index = 65;
838 p -> builtin_name.description i.check_indicator = 1;
839 p -> builtin_name.description i.number1 = 1;
840 p -> builtin_name.description i.number_of_descriptions = 1;
841 p -> builtin_name.description i.descriptor 1.check_code = 7;
842
843 i = i + 1;
844 p -> builtin_name.description i.name = "min";
845 p -> builtin_name.description i.aggregate_result = "1"b;
846 p -> builtin_name.description i.opcode = min_fun;
847 p -> builtin_name.description i.jump_index = 20;
848 p -> builtin_name.description i.check_indicator = 2;
849 p -> builtin_name.description i.number1 = 2;
850
851 i = i + 1;
852 p -> builtin_name.description i.name = "mod";
853 p -> builtin_name.description i.aggregate_result = "1"b;
854 p -> builtin_name.description i.opcode = pl1_mod_fun;
855 p -> builtin_name.description i.jump_index = 21;
856 p -> builtin_name.description i.check_indicator = 1;
857 p -> builtin_name.description i.number1 = 2;
858
859 i = i + 1;
860 p -> builtin_name.description i.name = "multiply";
861 p -> builtin_name.description i.aggregate_result = "1"b;
862 p -> builtin_name.description i.opcode = mult;
863 p -> builtin_name.description i.jump_index = 14;
864 p -> builtin_name.description i.check_indicator = 3;
865 p -> builtin_name.description i.number1 = 3;
866 p -> builtin_name.description i.number2 = 4;
867 p -> builtin_name.description i.number_of_descriptions = 4;
868 p -> builtin_name.description i.descriptor 3.check_code = 6;
869 p -> builtin_name.description i.descriptor 4.check_code = 6;
870
871 i = i + 1;
872 p -> builtin_name.description i.name = "null";
873 p -> builtin_name.description i.jump_index = 29;
874 p -> builtin_name.description i.check_indicator = 1;
875 p -> builtin_name.description i.number1 = 0;
876
877 i = i + 1;
878 p -> builtin_name.description i.name = "nullo"; /* multics function */
879 p -> builtin_name.description i.nonstandard = "1"b;
880 p -> builtin_name.description i.jump_index = 44;
881 p -> builtin_name.description i.check_indicator = 1;
882 p -> builtin_name.description i.number1 = 0;
883
884 i = i + 1;
885 p -> builtin_name.description i.name = "offset";
886 p -> builtin_name.description i.opcode = off_fun;
887 p -> builtin_name.description i.jump_index = 35;
888 p -> builtin_name.description i.check_indicator = 1;
889 p -> builtin_name.description i.number1 = 2;
890 p -> builtin_name.description i.number_of_descriptions = 2;
891 p -> builtin_name.description i.descriptor 1.check_code = 1;
892 p -> builtin_name.description i.descriptor 1.type = pointer_type;
893 p -> builtin_name.description i.descriptor 2.check_code = 1;
894 p -> builtin_name.description i.descriptor 2.type = area_mask;
895
896 i = i + 1;
897 p -> builtin_name.description i.name = "onchar";
898 p -> builtin_name.description i.reserve_list_number = 9;
899 p -> builtin_name.description i.jump_index = 51;
900 p -> builtin_name.description i.check_indicator = 1;
901 p -> builtin_name.description i.number1 = 0;
902
903 i = i + 1;
904 p -> builtin_name.description i.name = "oncode";
905 p -> builtin_name.description i.reserve_list_number = 10;
906 p -> builtin_name.description i.jump_index = 53;
907 p -> builtin_name.description i.check_indicator = 1;
908 p -> builtin_name.description i.number1 = 0;
909
910 i = i + 1;
911 p -> builtin_name.description i.name = "onfield";
912 p -> builtin_name.description i.reserve_list_number = 8;
913 p -> builtin_name.description i.jump_index = 42;
914 p -> builtin_name.description i.check_indicator = 1;
915 p -> builtin_name.description i.number1 = 0;
916
917 i = i + 1;
918 p -> builtin_name.description i.name = "onfile";
919 p -> builtin_name.description i.reserve_list_number = 12;
920 p -> builtin_name.description i.jump_index = 42;
921 p -> builtin_name.description i.check_indicator = 1;
922 p -> builtin_name.description i.number1 = 0;
923
924 i = i + 1;
925 p -> builtin_name.description i.name = "onkey";
926 p -> builtin_name.description i.reserve_list_number = 13;
927 p -> builtin_name.description i.jump_index = 42;
928 p -> builtin_name.description i.check_indicator = 1;
929 p -> builtin_name.description i.number1 = 0;
930
931 i = i + 1;
932 p -> builtin_name.description i.name = "onloc";
933 p -> builtin_name.description i.reserve_list_number = 7;
934 p -> builtin_name.description i.jump_index = 42;
935 p -> builtin_name.description i.check_indicator = 1;
936 p -> builtin_name.description i.number1 = 0;
937
938 i = i + 1;
939 p -> builtin_name.description i.name = "onsource";
940 p -> builtin_name.description i.reserve_list_number = 14;
941 p -> builtin_name.description i.jump_index = 52;
942 p -> builtin_name.description i.check_indicator = 1;
943 p -> builtin_name.description i.number1 = 0;
944
945 i = i + 1;
946 p -> builtin_name.description i.name = "pageno";
947 p -> builtin_name.description i.reserve_list_number = 184;
948 p -> builtin_name.description i.jump_index = 30;
949 p -> builtin_name.description i.check_indicator = 1;
950 p -> builtin_name.description i.number1 = 1;
951 p -> builtin_name.description i.number_of_descriptions = 1;
952 p -> builtin_name.description i.descriptor 1.check_code = 1;
953 p -> builtin_name.description i.descriptor 1.type = file_mask;
954
955 i = i + 1;
956 p -> builtin_name.description i.name = "pointer";
957 p -> builtin_name.description i.opcode = ptr_fun;
958 p -> builtin_name.description i.jump_index = 34;
959 p -> builtin_name.description i.check_indicator = 1;
960 p -> builtin_name.description i.number1 = 2;
961
962 i = i + 1;
963 p -> builtin_name.description i.name = "setwordno"; /* multics function */
964 p -> builtin_name.description i.opcode = ptr_fun;
965 p -> builtin_name.description i.jump_index = 34;
966 p -> builtin_name.description i.check_indicator = 1;
967 p -> builtin_name.description i.number1 = 2;
968 p -> builtin_name.description i.number_of_descriptions = 2;
969 p -> builtin_name.description i.descriptor 1.check_code = 1;
970 p -> builtin_name.description i.descriptor 1.type = pointer_type;
971 p -> builtin_name.description i.descriptor 2.check_code = 5;
972
973 i = i + 1;
974 p -> builtin_name.description i.name = "prec";
975 p -> builtin_name.description i.aggregate_result = "1"b;
976 p -> builtin_name.description i.jump_index = 4;
977 p -> builtin_name.description i.check_indicator = 3;
978 p -> builtin_name.description i.number1 = 2;
979 p -> builtin_name.description i.number2 = 3;
980 p -> builtin_name.description i.number_of_descriptions = 3;
981 p -> builtin_name.description i.descriptor 1.check_code = 10;
982 p -> builtin_name.description i.descriptor 2.check_code = 6;
983 p -> builtin_name.description i.descriptor 3.check_code = 6;
984
985 i = i + 1;
986 p -> builtin_name.description i.name = "precision";
987 p -> builtin_name.description i.aggregate_result = "1"b;
988 p -> builtin_name.description i.jump_index = 4;
989 p -> builtin_name.description i.check_indicator = 3;
990 p -> builtin_name.description i.number1 = 2;
991 p -> builtin_name.description i.number2 = 3;
992 p -> builtin_name.description i.number_of_descriptions = 3;
993 p -> builtin_name.description i.descriptor 1.check_code = 10;
994 p -> builtin_name.description i.descriptor 2.check_code = 6;
995 p -> builtin_name.description i.descriptor 3.check_code = 6;
996
997 i = i + 1;
998 p -> builtin_name.description i.name = "prod";
999 p -> builtin_name.description i.opcode = mult;
1000 p -> builtin_name.description i.jump_index = 43;
1001 p -> builtin_name.description i.check_indicator = 1;
1002 p -> builtin_name.description i.number1 = 1;
1003 p -> builtin_name.description i.number_of_descriptions = 1;
1004 p -> builtin_name.description i.descriptor 1.check_code = 10;
1005
1006 i = i + 1;
1007 p -> builtin_name.description i.name = "ptr";
1008 p -> builtin_name.description i.opcode = ptr_fun;
1009 p -> builtin_name.description i.jump_index = 34;
1010 p -> builtin_name.description i.check_indicator = 1;
1011 p -> builtin_name.description i.number1 = 2;
1012
1013 i = i + 1;
1014 p -> builtin_name.description i.name = "rank"; /* multics function */
1015 p -> builtin_name.description i.aggregate_result = "1"b;
1016 p -> builtin_name.description i.nonstandard = "1"b;
1017 p -> builtin_name.description i.opcode = rank_fun;
1018 p -> builtin_name.description i.jump_index = 69;
1019 p -> builtin_name.description i.check_indicator = 1;
1020 p -> builtin_name.description i.number1 = 1;
1021 p -> builtin_name.description i.number_of_descriptions = 1;
1022 p -> builtin_name.description i.descriptor 1.check_code = 1;
1023 p -> builtin_name.description i.descriptor 1.type = char_mask;
1024
1025 i = i + 1;
1026 p -> builtin_name.description i.name = "real";
1027 p -> builtin_name.description i.aggregate_result = "1"b;
1028 p -> builtin_name.description i.opcode = real_fun;
1029 p -> builtin_name.description i.jump_index = 19;
1030 p -> builtin_name.description i.check_indicator = 1;
1031 p -> builtin_name.description i.number1 = 1;
1032 p -> builtin_name.description i.number_of_descriptions = 1;
1033 p -> builtin_name.description i.descriptor 1.check_code = 1;
1034 p -> builtin_name.description i.descriptor 1.type = complex_mask;
1035
1036 i = i + 1;
1037 p -> builtin_name.description i.name = "rel"; /* multics function */
1038 p -> builtin_name.description i.opcode = rel_fun;
1039 p -> builtin_name.description i.nonstandard = "1"b;
1040 p -> builtin_name.description i.jump_index = 39;
1041 p -> builtin_name.description i.check_indicator = 1;
1042 p -> builtin_name.description i.number1 = 1;
1043 p -> builtin_name.description i.number_of_descriptions = 1;
1044
1045 i = i + 1;
1046 p -> builtin_name.description i.name = "wordno";/* multics function */
1047 p -> builtin_name.description i.opcode = wordno_fun;
1048 p -> builtin_name.description i.nonstandard = "1"b;
1049 p -> builtin_name.description i.jump_index = 71;
1050 p -> builtin_name.description i.check_indicator = 1;
1051 p -> builtin_name.description i.number1 = 1;
1052 p -> builtin_name.description i.number_of_descriptions = 1;
1053
1054 i = i + 1;
1055 p -> builtin_name.description i.name = "charno";
1056 p -> builtin_name.description i.opcode = charno_fun;
1057 p -> builtin_name.description i.nonstandard = "1"b;
1058 p -> builtin_name.description i.jump_index = 71;
1059 p -> builtin_name.description i.check_indicator = 1;
1060 p -> builtin_name.description i.number1 = 1;
1061 p -> builtin_name.description i.number_of_descriptions = 1;
1062
1063 i = i + 1;
1064 p -> builtin_name.description i.name = "bitno";
1065 p -> builtin_name.description i.opcode = bitno_fun;
1066 p -> builtin_name.description i.nonstandard = "1"b;
1067 p -> builtin_name.description i.jump_index = 71;
1068 p -> builtin_name.description i.check_indicator = 1;
1069 p -> builtin_name.description i.number1 = 1;
1070 p -> builtin_name.description i.number_of_descriptions = 1;
1071
1072 begin;
1073 declare NAMES 4 char 12 init "setcharno" "addcharno" "setbitno" "addbitno"
1074 int static options constant;
1075 declare OP 4 bit 9
1076 init setcharno_fun addcharno_fun setbitno_fun addbitno_fun;
1077
1078 declare nx fixed bin;
1079
1080 do nx = 1 to 4;
1081 i = i + 1;
1082 p -> builtin_name.description i.name = NAMES nx;
1083 p -> builtin_name.description i.opcode = OP nx;
1084 p -> builtin_name.description i.jump_index = 74;
1085 p -> builtin_name.description i.check_indicator = 1;
1086 /* fixed argument count */
1087 p -> builtin_name.description i.number1 = 2;
1088 p -> builtin_name.description i.number_of_descriptions = 2;
1089 p -> builtin_name.description i.descriptor 1.check_code = 1;
1090 p -> builtin_name.description i.descriptor 1.type = pointer_type;
1091 p -> builtin_name.description i.descriptor 2.check_code = 5;
1092 end;
1093 end;
1094 i = i + 1;
1095 p -> builtin_name.description i.name = "reverse";
1096 p -> builtin_name.description i.aggregate_result = "1"b;
1097 p -> builtin_name.description i.opcode = reverse_fun;
1098 p -> builtin_name.description i.jump_index = 27;
1099 p -> builtin_name.description i.check_indicator = 1;
1100 p -> builtin_name.description i.number1 = 1;
1101 p -> builtin_name.description i.number_of_descriptions = 1;
1102 p -> builtin_name.description i.descriptor 1.check_code = 7;
1103
1104 i = i + 1;
1105 p -> builtin_name.description i.name = "round";
1106 p -> builtin_name.description i.aggregate_result = "1"b;
1107 p -> builtin_name.description i.opcode = round_fun;
1108 p -> builtin_name.description i.jump_index = 22;
1109 p -> builtin_name.description i.check_indicator = 1;
1110 p -> builtin_name.description i.number1 = 2;
1111 p -> builtin_name.description i.number_of_descriptions = 4;
1112 p -> builtin_name.description i.descriptor 1.check_code = 4;
1113 p -> builtin_name.description i.descriptor 2.check_code = 6;
1114
1115 i = i + 1;
1116 p -> builtin_name.description i.name = "rtrim"; /* multics function */
1117 p -> builtin_name.description i.nonstandard = "1"b;
1118 p -> builtin_name.description i.aggregate_result = "1"b;
1119 p -> builtin_name.description i.opcode = verify_rtrim_fun;
1120 p -> builtin_name.description i.jump_index = 58;
1121 p -> builtin_name.description i.check_indicator = 3;
1122 p -> builtin_name.description i.number1 = 1;
1123 p -> builtin_name.description i.number2 = 2;
1124 p -> builtin_name.description i.number_of_descriptions = 2;
1125 p -> builtin_name.description i.descriptor 1.check_code = 2;
1126 p -> builtin_name.description i.descriptor 1.type = char_mask;
1127 p -> builtin_name.description i.descriptor 2.check_code = 2;
1128 p -> builtin_name.description i.descriptor 2.type = char_mask;
1129
1130 i = i + 1;
1131 p -> builtin_name.description i.name = "search";/* multics function */
1132 p -> builtin_name.description i.nonstandard = "1"b;
1133 p -> builtin_name.description i.aggregate_result = "1"b;
1134 p -> builtin_name.description i.opcode = search_fun;
1135 p -> builtin_name.description i.jump_index = 37;
1136 p -> builtin_name.description i.check_indicator = 1;
1137 p -> builtin_name.description i.number1 = 2;
1138 p -> builtin_name.description i.number_of_descriptions = 2;
1139 p -> builtin_name.description i.descriptor 1.check_code = 2;
1140 p -> builtin_name.description i.descriptor 1.type = char_mask;
1141 p -> builtin_name.description i.descriptor 2.check_code = 2;
1142 p -> builtin_name.description i.descriptor 2.type = char_mask;
1143
1144 i = i + 1;
1145 p -> builtin_name.description i.name = "sign";
1146 p -> builtin_name.description i.aggregate_result = "1"b;
1147 p -> builtin_name.description i.opcode = sign_fun;
1148 p -> builtin_name.description i.jump_index = 38;
1149 p -> builtin_name.description i.check_indicator = 1;
1150 p -> builtin_name.description i.number1 = 1;
1151 p -> builtin_name.description i.number_of_descriptions = 1;
1152 p -> builtin_name.description i.descriptor 1.check_code = 4;
1153
1154 i = i + 1;
1155 p -> builtin_name.description i.name = "sin";
1156 p -> builtin_name.description i.aggregate_result = "1"b;
1157 p -> builtin_name.description i.opcode = sin_fun;
1158 p -> builtin_name.description i.reserve_list_number = 53;
1159 p -> builtin_name.description i.jump_index = 54;
1160 p -> builtin_name.description i.check_indicator = 1;
1161 p -> builtin_name.description i.number1 = 1;
1162 p -> builtin_name.description i.number_of_descriptions = 1;
1163 p -> builtin_name.description i.descriptor 1.check_code = 3;
1164
1165 i = i + 1;
1166 p -> builtin_name.description i.name = "sind";
1167 p -> builtin_name.description i.aggregate_result = "1"b;
1168 p -> builtin_name.description i.opcode = sind_fun;
1169 p -> builtin_name.description i.reserve_list_number = 57;
1170 p -> builtin_name.description i.jump_index = 54;
1171 p -> builtin_name.description i.check_indicator = 1;
1172 p -> builtin_name.description i.number1 = 1;
1173 p -> builtin_name.description i.number_of_descriptions = 1;
1174 p -> builtin_name.description i.descriptor 1.check_code = 11;
1175
1176 i = i + 1;
1177 p -> builtin_name.description i.name = "sinh";
1178 p -> builtin_name.description i.aggregate_result = "1"b;
1179 p -> builtin_name.description i.reserve_list_number = 109;
1180 p -> builtin_name.description i.jump_index = 25;
1181 p -> builtin_name.description i.check_indicator = 1;
1182 p -> builtin_name.description i.number1 = 1;
1183 p -> builtin_name.description i.number_of_descriptions = 1;
1184 p -> builtin_name.description i.descriptor 1.check_code = 3;
1185
1186 i = i + 1;
1187 p -> builtin_name.description i.name = "size"; /* multics function */
1188 p -> builtin_name.description i.nonstandard = "1"b;
1189 p -> builtin_name.description i.jump_index = 47;
1190 p -> builtin_name.description i.check_indicator = 1;
1191 p -> builtin_name.description i.number1 = 1;
1192
1193 i = i + 1;
1194 p -> builtin_name.description i.name = "sqrt";
1195 p -> builtin_name.description i.aggregate_result = "1"b;
1196 p -> builtin_name.description i.opcode = sqrt_fun;
1197 p -> builtin_name.description i.reserve_list_number = 25;
1198 p -> builtin_name.description i.jump_index = 54;
1199 p -> builtin_name.description i.check_indicator = 1;
1200 p -> builtin_name.description i.number1 = 1;
1201 p -> builtin_name.description i.number_of_descriptions = 1;
1202 p -> builtin_name.description i.descriptor 1.check_code = 3;
1203
1204 i = i + 1;
1205 p -> builtin_name.description i.name = "stac"; /* multics function */
1206 p -> builtin_name.description i.nonstandard = "1"b;
1207 p -> builtin_name.description i.opcode = lock_fun;
1208 p -> builtin_name.description i.jump_index = 40;
1209 p -> builtin_name.description i.check_indicator = 1;
1210 p -> builtin_name.description i.number1 = 2;
1211 p -> builtin_name.description i.number_of_descriptions = 2;
1212 p -> builtin_name.description i.descriptor 1.check_code = 1;
1213 p -> builtin_name.description i.descriptor 1.type = pointer_type;
1214 p -> builtin_name.description i.descriptor 2.check_code = 1;
1215 p -> builtin_name.description i.descriptor 2.type = bit_mask;
1216
1217 i = i + 1;
1218 p -> builtin_name.description i.name = "stackbaseptr";
1219 /* multics function */
1220 p -> builtin_name.description i.nonstandard = "1"b;
1221 p -> builtin_name.description i.opcode = stackbaseptr_fun;
1222 p -> builtin_name.description i.jump_index = 61;
1223 p -> builtin_name.description i.check_indicator = 1;
1224 p -> builtin_name.description i.number1 = 0;
1225
1226 i = i + 1;
1227 p -> builtin_name.description i.name = "stackframeptr";
1228 /* multics function */
1229 p -> builtin_name.description i.nonstandard = "1"b;
1230 p -> builtin_name.description i.opcode = stackframeptr_fun;
1231 p -> builtin_name.description i.jump_index = 61;
1232 p -> builtin_name.description i.check_indicator = 1;
1233 p -> builtin_name.description i.number1 = 0;
1234
1235 i = i + 1;
1236 p -> builtin_name.description i.name = "stacq"; /* multics function */
1237 p -> builtin_name.description i.nonstandard = "1"b;
1238 p -> builtin_name.description i.opcode = stacq_fun;
1239 p -> builtin_name.description i.jump_index = 66;
1240 p -> builtin_name.description i.check_indicator = 1;
1241 p -> builtin_name.description i.number1 = 3;
1242 p -> builtin_name.description i.number_of_descriptions = 3;
1243 p -> builtin_name.description i.descriptor 1.check_code = 1;
1244 p -> builtin_name.description i.descriptor 1.type = bit_mask;
1245 p -> builtin_name.description i.descriptor 2.check_code = 1;
1246 p -> builtin_name.description i.descriptor 2.type = bit_mask;
1247 p -> builtin_name.description i.descriptor 3.check_code = 1;
1248 p -> builtin_name.description i.descriptor 3.type = bit_mask;
1249
1250 i = i + 1;
1251 p -> builtin_name.description i.name = "string";
1252 p -> builtin_name.description i.jump_index = 10;
1253 p -> builtin_name.description i.check_indicator = 1;
1254 p -> builtin_name.description i.number1 = 1;
1255
1256 i = i + 1;
1257 p -> builtin_name.description i.name = "substr";
1258 p -> builtin_name.description i.aggregate_result = "1"b;
1259 p -> builtin_name.description i.jump_index = 11;
1260 p -> builtin_name.description i.check_indicator = 3;
1261 p -> builtin_name.description i.number1 = 2;
1262 p -> builtin_name.description i.number2 = 3;
1263 p -> builtin_name.description i.number_of_descriptions = 3;
1264 p -> builtin_name.description i.descriptor 1.check_code = 7;
1265 p -> builtin_name.description i.descriptor 2.check_code = 5;
1266 p -> builtin_name.description i.descriptor 3.check_code = 5;
1267
1268 i = i + 1;
1269 p -> builtin_name.description i.name = "subtract";
1270 p -> builtin_name.description i.aggregate_result = "1"b;
1271 p -> builtin_name.description i.opcode = sub;
1272 p -> builtin_name.description i.jump_index = 14;
1273 p -> builtin_name.description i.check_indicator = 3;
1274 p -> builtin_name.description i.number1 = 3;
1275 p -> builtin_name.description i.number2 = 4;
1276 p -> builtin_name.description i.number_of_descriptions = 4;
1277 p -> builtin_name.description i.descriptor 3.check_code = 6;
1278 p -> builtin_name.description i.descriptor 4.check_code = 6;
1279
1280 i = i + 1;
1281 p -> builtin_name.description i.name = "sum";
1282 p -> builtin_name.description i.opcode = add;
1283 p -> builtin_name.description i.jump_index = 43;
1284 p -> builtin_name.description i.check_indicator = 1;
1285 p -> builtin_name.description i.number1 = 1;
1286 p -> builtin_name.description i.number_of_descriptions = 1;
1287 p -> builtin_name.description i.descriptor 1.check_code = 10;
1288
1289 i = i + 1;
1290 p -> builtin_name.description i.name = "tan";
1291 p -> builtin_name.description i.aggregate_result = "1"b;
1292 p -> builtin_name.description i.opcode = tan_fun;
1293 p -> builtin_name.description i.reserve_list_number = 69;
1294 p -> builtin_name.description i.jump_index = 54;
1295 p -> builtin_name.description i.check_indicator = 1;
1296 p -> builtin_name.description i.number1 = 1;
1297 p -> builtin_name.description i.number_of_descriptions = 1;
1298 p -> builtin_name.description i.descriptor 1.check_code = 3;
1299
1300 i = i + 1;
1301 p -> builtin_name.description i.name = "tand";
1302 p -> builtin_name.description i.aggregate_result = "1"b;
1303 p -> builtin_name.description i.opcode = tand_fun;
1304 p -> builtin_name.description i.reserve_list_number = 73;
1305 p -> builtin_name.description i.jump_index = 54;
1306 p -> builtin_name.description i.check_indicator = 1;
1307 p -> builtin_name.description i.number1 = 1;
1308 p -> builtin_name.description i.number_of_descriptions = 1;
1309 p -> builtin_name.description i.descriptor 1.check_code = 11;
1310
1311 i = i + 1;
1312 p -> builtin_name.description i.name = "tanh";
1313 p -> builtin_name.description i.aggregate_result = "1"b;
1314 p -> builtin_name.description i.reserve_list_number = 117;
1315 p -> builtin_name.description i.jump_index = 25;
1316 p -> builtin_name.description i.check_indicator = 1;
1317 p -> builtin_name.description i.number1 = 1;
1318 p -> builtin_name.description i.number_of_descriptions = 1;
1319 p -> builtin_name.description i.descriptor 1.check_code = 3;
1320
1321 i = i + 1;
1322 p -> builtin_name.description i.name = "time";
1323 p -> builtin_name.description i.reserve_list_number = 187;
1324 p -> builtin_name.description i.jump_index = 32;
1325 p -> builtin_name.description i.check_indicator = 1;
1326 p -> builtin_name.description i.number1 = 0;
1327
1328 i = i + 1;
1329 p -> builtin_name.description i.name = "translate";
1330 p -> builtin_name.description i.aggregate_result = "1"b;
1331 p -> builtin_name.description i.opcode = translate_fun;
1332 p -> builtin_name.description i.jump_index = 49;
1333 p -> builtin_name.description i.check_indicator = 3;
1334 p -> builtin_name.description i.number1 = 2;
1335 p -> builtin_name.description i.number2 = 3;
1336 p -> builtin_name.description i.number_of_descriptions = 3;
1337 p -> builtin_name.description i.descriptor 1.check_code = 2;
1338 p -> builtin_name.description i.descriptor 1.type = char_mask;
1339 p -> builtin_name.description i.descriptor 2.check_code = 2;
1340 p -> builtin_name.description i.descriptor 2.type = char_mask;
1341 p -> builtin_name.description i.descriptor 3.check_code = 2;
1342 p -> builtin_name.description i.descriptor 3.type = char_mask;
1343
1344 i = i + 1;
1345 p -> builtin_name.description i.name = "trunc";
1346 p -> builtin_name.description i.aggregate_result = "1"b;
1347 p -> builtin_name.description i.opcode = trunc_fun;
1348 p -> builtin_name.description i.jump_index = 16;
1349 p -> builtin_name.description i.check_indicator = 1;
1350 p -> builtin_name.description i.number1 = 1;
1351 p -> builtin_name.description i.number_of_descriptions = 1;
1352 p -> builtin_name.description i.descriptor 1.check_code = 4;
1353
1354 i = i + 1;
1355 p -> builtin_name.description i.name = "unspec";
1356 p -> builtin_name.description i.jump_index = 12;
1357 p -> builtin_name.description i.check_indicator = 1;
1358 p -> builtin_name.description i.number1 = 1;
1359
1360 i = i + 1;
1361 p -> builtin_name.description i.name = "valid";
1362 p -> builtin_name.description i.reserve_list_number = 185;
1363 p -> builtin_name.description i.jump_index = 48;
1364 p -> builtin_name.description i.check_indicator = 1;
1365 p -> builtin_name.description i.number1 = 1;
1366
1367 i = i + 1;
1368 p -> builtin_name.description i.name = "vclock";/* multics function */
1369 p -> builtin_name.description i.nonstandard = "1"b;
1370 p -> builtin_name.description i.opcode = vclock_fun;
1371 p -> builtin_name.description i.jump_index = 62;
1372 p -> builtin_name.description i.check_indicator = 1;
1373 p -> builtin_name.description i.number1 = 0;
1374
1375 i = i + 1;
1376 p -> builtin_name.description i.name = "verify";
1377 p -> builtin_name.description i.aggregate_result = "1"b;
1378 p -> builtin_name.description i.opcode = verify_fun;
1379 p -> builtin_name.description i.jump_index = 37;
1380 p -> builtin_name.description i.check_indicator = 1;
1381 p -> builtin_name.description i.number1 = 2;
1382 p -> builtin_name.description i.number_of_descriptions = 2;
1383 p -> builtin_name.description i.descriptor 1.check_code = 2;
1384 p -> builtin_name.description i.descriptor 1.type = char_mask;
1385 p -> builtin_name.description i.descriptor 2.check_code = 2;
1386 p -> builtin_name.description i.descriptor 2.type = char_mask;
1387
1388 p -> builtin_name.number_of_names = i;
1389
1390 call ioa_ "^a: ^d names processed." myname i;
1391
1392 /* prepare long_collating_sequence */
1393
1394 substr p -> long_collating_sequence 1 128 = collate ;
1395 do j = 128 to 511;
1396 collating_overlay j = bit fixed j 9 9;
1397 end;
1398
1399 /* now call create_data_segment_ */
1400
1401 unspec cdsa = "0"b;
1402 cdsa.have_text = "1"b;
1403 cdsa.sections 1.p = p;
1404 cdsa.sections 1.len = divide length unspec pl1_data 36 17 0;
1405 cdsa.sections 1.struct_name = "pl1_data";
1406 cdsa.seg_name = myname;
1407
1408 call create_data_segment_ addr cdsa code;
1409 if code ^= 0
1410 then call com_err_ code myname "Creating ^a data segment" myname;
1411
1412 call release_temp_segments_ myname segptrs 0;
1413 end pl1_data;