COMPILATION LISTING OF SEGMENT comp_
Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985
Compiled at: Honeywell Multics Op. - System M
Compiled on: 04/23/85 0942.3 mst Tue
Options: optimize map
1 /* ***********************************************************
2* * *
3* * *
4* * Copyright, (C) Honeywell Information Systems Inc., 1981 *
5* * Copyright, (C) Honeywell Information Systems Inc., 1980 *
6* * *
7* * *
8* *********************************************************** */
9
10 /* compose subroutine to process input files */
11
12 /* This routine is recursive since the controls processor must call it
13* to process inserted files. */
14
15 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
16
17 comp_:
18 proc;
19
20 /* LOCAL STORAGE */
21
22 dcl ascii_width fixed bin; /* width of ctl line in chars */
23 dcl blank_count fixed bin init (0);
24 dcl BREAK bit (1) static options (constant) init ("1"b);
25 dcl break_type fixed bin;
26 dcl CBARS bit (1) static options (constant) init ("1"b);
27 /* count of blanks inserted */
28 dcl char_index (1020) fixed bin (9)
29 /* for width measurement */
30 unsigned unaligned based (char_index_ptr);
31 dcl char_index_ptr ptr;
32 dcl col_space fixed bin (31); /* to advance table columns */
33 dcl EMPTY bit (1) static options (constant) init ("1"b);
34 dcl endinput bit (1); /* local copy of shared flag */
35 dcl EPILOGUE fixed bin static options (constant) init (4);
36 dcl ercd fixed bin (35); /* error code */
37 dcl fill_count fixed bin; /* tab fill count */
38 dcl head_used fixed bin (31); /* space taken by page header */
39 dcl htab_shift char (7) based (DCxx_p);
40 /* ctl string for htabbing */
41 dcl 1 htab_space like dclong_val; /* for inserting htab WS */
42 dcl (i, j) fixed bin; /* working index and string index */
43 dcl (ii, jj, k) fixed bin; /* working index */
44 /* for htab measuring */
45 dcl 1 meas1 aligned like text_entry.cur;
46 dcl 1 meas2 aligned like text_entry.cur;
47 dcl strndx fixed bin; /* working line scan index */
48 dcl TEXT bit (1) static options (constant) init ("1"b);
49 dcl text_added bit (1) aligned; /* text added to output buffer */
50 dcl text_flag bit (1); /* current block is in-line text */
51 dcl TRIM bit (1) static options (constant) init ("1"b);
52 dcl txtwidth fixed bin (31) init (0);
53 /* measured text width */
54
55 /* EXTERNAL STORAGE */
56
57 dcl (addrel, before, bin, copy, divide, index, length, max, min, mod, null,
58 rtrim, search, substr)
59 builtin;
60 dcl (comp_abort, end_output)
61 condition;
62
63 dcl iox_$put_chars entry (ptr, ptr, fixed (24), fixed (35));
64
65 if shared.bug_mode
66 then call ioa_ ("comp_: (^d ^d ^a pass=^d)", call_stack.index,
67 insert_data.index, shared.input_filename, shared.pass_counter);
68
69 htab_space.mark = DC1;
70 htab_space.type = type_slx; /* setup for htabbing */
71 htab_space.leng = 4;
72 DCxx_p = addr (htab_space);
73 call_box_ptr = call_stack.ptr (call_stack.index);
74 /* set ctl line overlay pointer */
75 char_index_ptr = addrel (ctl.ptr, 1);
76
77 call_box.lineno = 0; /* clear line counter for this file */
78 if call_stack.index = 0 /* set source file lineno */
79 then call_box.lineno0 = 0;
80 else call_box.lineno0 = call_box0.lineno;
81
82 endinput = shared.end_input; /* copy shared flag for recursion */
83 shared.end_input = "0"b; /* and reset it */
84 on end_output goto end_output_; /* end_output signal chain ends here */
85
86 read:
87 if shared.end_input /* did somebody signal? */
88 then goto end_input_;
89 if shared.end_output
90 then goto end_output_; /**/
91 /* read an input line */
92 call comp_read_$line (call_stack.ptr (call_stack.index), ctl_line, "0"b);
93 ctl.info = call_box.info;
94
95 if shared.end_input /* input EOF? */
96 then goto end_input_;
97
98 if shared.literal_mode /* a literal block? */
99 then
100 do;
101 if shared.lit_count = 0 /* if thats all, reset the flag */
102 then shared.literal_mode = "0"b;
103 else /* count lines */
104 shared.lit_count = shared.lit_count - 1;
105 end;
106
107 ctl.DVctl = "0"b; /* reset device ctl flag */
108 ctl.font = ctl.cur.font; /* propagate any font changes */
109
110 if index (ctl_line, " ") ^= 0 /* if any HTs in the line */
111 then
112 do;
113 ascii_width = 0; /* set up loop counters */
114 i, j = 1; /* and control indices */
115 do while (j > 0); /* as long as HTs are found */
116 j = index (substr (ctl_line, i), " ");
117 /* look for an HT */
118
119 if j > 0 /* if one was found */
120 then
121 do;
122
123 if j > 1 /* measure preceding text */
124 then
125 do;
126 do k = i to i + j - 2;
127 if char_index (k) >= 32 & char_index (k) <= 126
128 then ascii_width = ascii_width + 1;
129 else if char_index (k) = 8
130 then ascii_width = ascii_width - 1;
131 end;
132 ii = i + j - 1; /* position of HT in line */
133 end;
134 else ii = i; /* HT is the next character */
135
136 blank_count = /* blanks to next Multics tab */
137 10 - mod (ascii_width, 10);
138 ctl_line = substr (ctl_line, 1, ii - 1) ||
139 /* insert them */
140 copy (" ", blank_count) || substr (ctl_line, ii + 1);
141 i = ii + blank_count; /* adjust counters */
142 ascii_width = ascii_width + blank_count;
143 end;
144 end;
145 end;
146
147 if shared.table_mode
148 then
149 do; /* record current table column */
150 tblfmtptr = tbldata.fmt (tbldata.ndx).ptr;
151 tblcolndx = tblfmt.ccol;
152 tblcolptr = tblfmt.colptr (tblcolndx);
153 if tblcolndx = 0
154 then break_type = block_break;
155 else break_type = format_break;
156 end;
157
158 text_added = "1"b; /* preset text flag */
159
160 if length (ctl_line) = 0 /* special handling for null lines */
161 then
162 do;
163 null_line:
164 if shared.blkptr ^= null /* if there is an active block */
165 then
166 do;
167 if text.parms.title_mode /* a title block? */
168 then
169 do; /* count lines */
170 text.hdr.eqn_line_count = text.hdr.eqn_line_count - 1;
171 /* if thats all, reset flag */
172 if text.hdr.eqn_line_count = 0
173 then text.parms.title_mode = "0"b;
174 end; /**/
175 /* is there a header pending? */
176 if text.parms.hdrptr ^= null & ^shared.inserting_hfc
177 then call comp_title_block_ (text.parms.hdrptr);
178 end;
179
180 call comp_space_ (current_parms.linespace, shared.blkptr, TEXT, ^TRIM,
181 CBARS, "0"b);
182 if shared.table_mode
183 then call comp_break_ (break_type, -1);
184 else if ^text.parms.art
185 then call comp_break_ (block_break, 0);
186
187 goto read;
188 end; /**/
189 /* indented controls? then */
190 /* find first nonblank */
191 if shared.indctl.stk (shared.indctl.ndx)
192 then ctl.index = verify (ctl_line, " ");
193 else ctl.index = 1; /* else start a 1 */
194
195 /* control line? */
196 if index (substr (ctl_line, ctl.index), ".") = 1
197 & index (substr (ctl_line, ctl.index), ". ") ^= 1
198 & substr (ctl_line, ctl.index) ^= "."
199 & index (substr (ctl_line, ctl.index), ".. ") ^= 1
200 & substr (ctl_line, ctl.index) ^= ".."
201 & index (substr (ctl_line, ctl.index), "...") ^= 1
202 then
203 do;
204 if ^shared.literal_mode /* if not in literal mode */
205 | (shared.literal_mode & shared.lit_count < 0
206 /* or a non-cntng literal */
207 & (ctl_line = ".bel" /* and end literal */
208 | ctl_line = ".be")) /* or end all */
209 then
210 do;
211 tbl_:
212 if shared.table_mode /* table mode? */
213 then if tblfmt.context /* and format in context mode */
214 then
215 do; /**/
216 /* if there is a column index */
217 if index ("1234567890", substr (ctl_line, 2, 1)) ^= 0
218 then
219 do;
220 ctl.index = ctl.index + 1;
221 /* bad column? */
222 if bin (substr (ctl_line, ctl.index, 1))
223 > tblfmt.ncols
224 then
225 do;
226 call comp_report_ (2, 0,
227 "Column undefined for this format.",
228 addr (ctl.info), ctl_line);
229 goto read;
230 end; /**/
231 /* changing? */
232 if substr (ctl_line, ctl.index, 1) = "0"
233 & tblfmt.ccol ^= 10
234 | substr (ctl_line, ctl.index, 1) ^= "0"
235 & bin (substr (ctl_line, ctl.index, 1))
236 ^= tblfmt.ccol
237 then call comp_tbl_ctls_ (tac_ctl_index);
238 /* assure context mode */
239 tblfmt.context = "1"b;
240 /* strip column off input line */
241 if length (ctl_line) > 2
242 then ctl_line = substr (ctl_line, 3);
243 else ctl_line = "";
244 /* if changing columns */
245 if tblfmt.ccol ^= tblcolndx
246 then
247 do; /* leaving column 0? */
248 if tblcolndx = 0
249 then
250 do i = 1 to tblfmt.ncols;
251 tblfmt.colptr (i) -> tblcol.depth =
252 tblcol0.depth;
253 end; /**/
254 /* set to new column */
255 tblcolndx = tblfmt.ccol;
256 tblcolptr = tblfmt.colptr (tblcolndx);
257 ctl.font, ctl.cur.font =
258 tblcol.parms.fntstk
259 .entry (tblcol.parms.fntstk.index);
260
261 if shared.blkptr ^= null ()
262 then
263 do;
264 text.input.font, text.input.cur.font,
265 ctl.font, ctl.cur.font =
266 tblcol.parms.fntstk
267 .entry (tblcol.parms.fntstk.index);
268 text.input.quad, ctl.quad = tblcol.parms.quad;
269 end;
270 end; /**/
271 /* for a null line */
272 if ctl_line = ""
273 then goto null_line;
274 else goto text_;
275 end; /**/
276 /* a real control line */
277 else if substr (ctl_line, 1, 3) ^= ".ur"
278 then
279 do; /* clean up */
280 if shared.blkptr ^= null ()
281 then if text.input_line ^= ""
282 then call comp_break_ (format_break, 0);
283 end;
284 end; /**/
285 /* call control processor */
286 call comp_ctls_ (text_added);
287
288 if text_added & shared.table_mode & substr (ctl_line, 1, 1) = "."
289 & index ("1234567890", substr (ctl_line, 2, 1)) ^= 0
290 then if tbldata.fmt (tbldata.ndx).ptr -> tblfmt.context
291 then goto tbl_;
292 end;
293 end;
294
295 if shared.table_mode & text_added /* text line in table mode? */
296 then if tblfmt.context /* and format in context mode? */
297 then
298 do;
299 tblcolndx = tblfmt.ccol;
300 if tblcolndx ^= 0 /* going back to column 0? */
301 then
302 do; /* clean up */
303 if shared.blkptr ^= null ()
304 then if text.input_line ^= ""
305 then call comp_break_ (format_break, 0);
306 /* switch to column 0 */
307 tblcolndx, tblfmt.ccol = 0;
308 tblcolptr = tblfmt.colptr (0);
309 current_parms = tblcol.parms;
310
311 if shared.blkptr ^= null ()
312 then
313 do;
314 text.parms = current_parms;
315 text.input.quad, ctl.quad = current_parms.quad;
316 end; /**/
317 /* advance short columns */
318 do i = 0 to tblfmt.ncols;
319 tblfmt.colptr (i) -> tblcol.depth = tblfmt.maxdepth;
320 end;
321 end;
322 end;
323
324 /* text line */
325 text_:
326 if text_added /* if there's text to be added */
327 then
328 do;
329 if shared.blkptr = null () /* get a text block if one is needed */
330 then
331 do; /**/
332 /* head page if needed */
333 if ^option.galley_opt & ^page.hdr.headed & page.hdr.col_index >= 0
334 then call comp_head_page_ (head_used);
335
336 call comp_util_$getblk (page.hdr.col_index, shared.blkptr, "tx",
337 addr (current_parms), ^EMPTY);
338 end;
339
340 if (text.blktype = "oh" | text.blktype = "eh" | text.blktype = "of"
341 | text.blktype = "ef" | text.blktype = "tf"
342 | text.blktype = "th" | "0"b)
343 /* NAMED BLOCKS REPLACE "0"b */
344 then text_flag = "0"b;
345 else text_flag = "1"b; /**/
346 /* is there a header pending? */
347 if text.parms.hdrptr ^= null & ^shared.inserting_hfc
348 then if ^text.parms.title_mode
349 then call comp_title_block_ (text.parms.hdrptr);
350
351 text.input.lmarg = text.parms.left.indent - text.parms.left.undent;
352 text.input.rmarg =
353 text.parms.measure - text.parms.right.indent
354 + text.parms.right.undent;
355 text.input.net = text.input.rmarg - text.input.lmarg;
356
357 if shared.table_mode & ^text.parms.footnote
358 then
359 do;
360 text.input.lmarg = text.input.lmarg + tblcol.margin.left;
361 text.input.rmarg = text.input.rmarg + tblcol.margin.left;
362 end;
363
364 if ctl_line = "" /* a null line */
365 then goto null_line; /**/
366 /* if a filled block with leading */
367 if text.parms.fill_mode /* white space & there are leftovers */
368 then if index (" ", substr (ctl_line, 1, 1)) ^= 0
369 & length (text.input_line) > 0
370 then
371 do;
372 call comp_break_ (format_break, 0);
373 if text.input.oflo & ^text.parms.keep & text.hdr.colno >= 0
374 & ^shared.table_mode
375 then call comp_break_ (need_break, -2);
376
377 if shared.end_output
378 then goto return_;
379 end; /**/
380 /* any active htabs? */
381 if shared.htab_ptr ^= null ()
382 then if htab.chars ^= ""
383 then call do_htabs;
384
385 if ctl_line = "" /* if its empty after all that */
386 then goto null_line;
387
388 /* title block */
389 if text.parms.title_mode
390 then
391 do; /* count lines */
392 text.hdr.eqn_line_count = text.hdr.eqn_line_count - 1;
393 /* if thats all, reset flag */
394 if text.hdr.eqn_line_count = 0
395 then text.parms.title_mode = "0"b;
396 /* a
line? */
397 if index (ctl_line, shared.ttl_delim) = 1
398 then
399 do; /* clean up leftovers */
400 if length (text.input_line) > 0
401 then call comp_break_ (format_break, 0);
402
403 text.input_line = ctl_line;
404 text.input.info = ctl.info;
405
406 /**** if text.hdr.colno >= 0
407*/**** then */
408 call comp_hft_ctls_$title (shared.blkptr, addr (text.input),
409 text.input_line, text.parms.linespace);
410 /**** else call comp_util_$add_text (shared.blkptr, "0"b, "0"b, "0"b,
411*/**** (text.input.quad ^= quadl), ^text.input.art, "0"b,*/
412 /**** "0"b, /* text.input.oflo, */
413 /**** addr (text.input));*/
414
415 text.input.art = text.input.art | text.parms.art;
416 if text.input.art /* if an artwork line */
417 then
418 do;
419 text.hdr.art_count = text.hdr.art_count - 1;
420 if text.hdr.art_count = 0
421 then current_parms.art, text.parms.art = "0"b;
422 end;
423 end;
424
425 else goto plain; /* free line in a formatted block */
426 end;
427
428 /* column aligned table? */
429 else if shared.table_mode & tblcol.align.posn > 0
430 then
431 do; /* find the string */
432 strndx = index (ctl_line, tblcol.align.str);
433
434 if strndx > 0 /* if its there */
435 then
436 do; /* measure preceding text */
437 unspec (meas1) = "0"b;
438 call comp_measure_ (substr (ctl_line, 1, strndx - 1),
439 addr (text.input.font), "0"b, text.input.art,
440 text.input.quad, 0, addr (meas1), addr (meas2),
441 addr (ctl.info)); /* add to left margin undent */
442 text.parms.left.undent =
443 text.parms.left.undent + meas1.width + meas1.avg;
444 text.input.lmarg =
445 text.input.lmarg + text.parms.left.indent
446 - text.parms.left.undent;
447 text.input.net = text.input.rmarg - text.input.lmarg;
448 text.input.quad = quadl;
449 end;
450 goto plain;
451 end;
452
453 /* plain text */
454 else
455 do;
456 plain:
457 text.input.art = text.input.art | text.parms.art;
458 if text.input.art /* if an artwork line */
459 then
460 do;
461 text.hdr.art_count = text.hdr.art_count - 1;
462 if text.hdr.art_count = 0
463 then current_parms.art, text.parms.art = "0"b;
464 end; /**/
465 /* if not building a formatted block */
466 if ^text.parms.title_mode /* insert pending text heading */
467 & text.parms.hdrptr ^= null () & ^shared.inserting_hfc
468 then if text.parms.hdrptr -> hfcblk.hdr.count > 0
469 then call comp_title_block_ (text.parms.hdrptr);
470
471 if ^ctl.DVctl
472 then ctl.linespace = text.parms.linespace;
473 else
474 do;
475 text_flag = "0"b;
476 if ctl_line ^= wait_signal
477 then ctl.linespace = 0;
478 end;
479
480 /* if filling */
481 if text.parms.fill_mode & length (ctl_line) > 0
482 & ^text.parms.htab_mode
483 then
484 do;
485 call comp_fill_;
486 if shared.end_output
487 then goto return_;
488 end;
489
490 /* not filling */
491 else
492 do;
493 if (text.input.quad & just) | text.parms.htab_mode
494 then text.input.quad = quadl;
495
496 if ctl.DVctl
497 then text.input.linespace = 0;
498
499 if text.input.hanging
500 then
501 do;
502 unspec (meas1) = "0"b;
503 call comp_measure_ (ctl_line, addr (text.input.font), "0"b,
504 text.input.art, text.input.quad, 0, addr (meas1),
505 addr (meas2), addr (ctl.info));
506 if meas1.width + meas1.avg <= text.parms.left.undent
507 then text.input.linespace = 0;
508 else text.input.linespace = text.parms.linespace;
509 end;
510
511 text.input_line = ctl_line;
512 text.input.info = ctl.info;
513 text.input.cbar = text.parms.cbar;
514 text.parms.cbar.del = "0"b;
515
516 call comp_util_$add_text (shared.blkptr,
517 (text.input.quad ^= quadl), ^text.input.art, "0"b,
518 text.input.oflo, addr (text.input));
519 text.input_line = "";
520
521 if text.input.oflo & text.hdr.colno >= 0
522 & ^(shared.table_mode | text.parms.keep | text.parms.art)
523 then call comp_break_ (need_break, -2);
524
525 if shared.end_output
526 then goto end_output_;
527
528 if shared.blkptr ^= null/* is there still an active block? */
529 then
530 do;
531 text.input_line = "";
532 /* erase */
533 /* undents are used */
534 text.parms.left.undent, text.parms.right.undent = 0;
535 text.input.hanging, text.input.und_prot, ctl.hanging =
536 "0"b;
537 text.input.linespace, ctl.linespace = text.parms.linespace;
538
539 text.hdr.nofill_count = text.hdr.nofill_count - 1;
540 if text.hdr.nofill_count = 0
541 then call comp_format_ctls_ (fin_ctl_index);
542 end;
543 end;
544 end;
545 end;
546 goto read;
547
548 end_input_:
549 if shared.bug_mode
550 then call ioa_ ("end_input: (^d ^d ^a)", call_stack.index,
551 insert_data.index, shared.input_filename);
552
553 if call_stack.index > 0
554 then
555 do;
556 shared.end_input = endinput; /* restore the shared flag */
557 goto return_;
558 end;
559
560 end_output_:
561 if option.db_line_end = -1 /* debugging end_output? */
562 then shared.bug_mode = "1"b;
563
564 if shared.bug_mode
565 then call ioa_ ("end_output: (^a,^d)", shared.source_filename, ctl.lineno);
566
567 if shared.if_nest.ndx > 0 /* open if nest? */
568 then
569 do;
570 call comp_report_$ctlstr (2, 0,
571 addr (shared.if_nest (shared.if_nest.ndx).info),
572 shared.if_nest (shared.if_nest.ndx).line,
573 "Unterminated conditional execution (if) group.");
574 shared.if_nest.ndx = 0;
575 end;
576
577 ctl_line = ""; /* erase a possible control line */
578 if option.galley_opt /* force the flag in galley */
579 then shared.end_output = "1"b;
580
581 if shared.blkptr ^= null () /* if there is a block */
582 then
583 do;
584 if text.parms.title_mode /* unterminated special block */
585 then
586 do; /**/
587 /* clean it up */
588 call comp_break_ (format_break, 0);
589
590 if text.blktype = "tx"
591 then
592 do;
593 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line,
594 "Unterminated equation block.");
595 end;
596 else
597 do;
598 const.current_parms_ptr = text.hdr.parms_ptr;
599 shared.blkptr = text.hdr.blkptr;
600 end;
601 end;
602
603 if shared.ftn_mode /* unclosed footnote */
604 then
605 do;
606 ctl_line = ".bef";
607 call comp_block_ctls_ (bef_ctl_index);
608 end;
609
610 if shared.blkptr ^= null
611 then
612 do;
613 if shared.table_mode /* exit table mode */
614 then
615 do;
616 ctl.index = 5;
617 ctl_line = ".taf";
618 call comp_tbl_ctls_ (taf_ctl_index);
619 end;
620
621 else if text.blktype = "pi" /* unterminated picture? */
622 then call comp_block_ctls_ (bep_ctl_index);
623
624 else /* reset mode switches */
625 do; /* and finish the block */
626 text.parms.keep, text.parms.art = "0"b;
627 text.input.lmarg =
628 text.parms.left.indent - text.parms.left.undent;
629 text.input.rmarg =
630 text.parms.measure - text.parms.right.indent
631 + text.parms.right.undent;
632 text.input.net = text.input.rmarg - text.input.lmarg;
633
634 if shared.table_mode & ^text.parms.footnote
635 then
636 do;
637 text.input.lmarg = text.input.lmarg + tblcol.margin.left;
638 text.input.rmarg = text.input.rmarg + tblcol.margin.left;
639 end;
640
641 call comp_break_ (block_break, 0);
642 end;
643 end;
644 end;
645
646 if current_parms.cbar.del /* orphan delete mark? */
647 then
648 do;
649 call comp_space_ (current_parms.linespace, shared.blkptr, "1"b, "1"b,
650 "1"b, "0"b);
651 call comp_break_ (block_break, 0);
652 end;
653
654 if shared.picture.count > 0 /* put any pictures */
655 then call comp_util_$pictures (shared.blkptr);
656 /* are footnotes held? */
657 if shared.ftnblk_data_ptr ^= null () & shared.ftn_reset = "hold"
658 then if ftnblk_data.highndx > 0
659 then
660 do;
661 shared.purge_ftns = "1"b;
662 ctl_line = ".ift";
663 call comp_ctls_ ("0"b);
664 end; /**/
665 /* any leftovers? */
666 if page.hdr.used + col0.hdr.ftn.ct ^= 0 | shared.blkptr ^= null ()
667 then call comp_break_ (page_break, 0);
668
669 if shared.pass_counter <= 1 & ^option.check_opt & page.image_ptr ^= null
670 then
671 do;
672 page_record_ptr = addr (page_image.text_ptr -> record.page_record);
673 page_record.leng = 0;
674 call comp_dvt.outproc (EPILOGUE, 0);
675
676 if page_record.leng > 0
677 then
678 do;
679 call iox_$put_chars ((shared.compout_ptr), addr (page_record.text),
680 page_record.leng, ercd);
681 if ercd ^= 0
682 then
683 do;
684 call comp_report_ (2, ercd, "Writing epilogue.",
685 addr (ctl.info), "");
686 signal comp_abort;
687 return;
688 end;
689 end;
690 end;
691
692 return_:
693 if shared.bug_mode
694 & (shared.input_filename = option.db_file
695 | option.db_file = "ALLFILES")
696 then call ioa_ ("^5x(comp_: ^a)", shared.input_filename);
697
698 do_htabs:
699 proc;
700 txtwidth = /* set loop counters */
701 text.parms.left.indent - text.parms.left.undent;
702 i, j = 1; /* set line scan controls */
703
704 if length (ctl_line) > 0 /* adjust tabs */
705 then
706 do while (j > 0);
707 j = search (substr (ctl_line, i), htab.chars);
708 if j > 0 /* if a tab char was found */
709 then
710 do;
711 if j > 1 /* measure the preceding text */
712 then
713 do;
714 unspec (meas1) = "0"b;
715 call comp_measure_ (substr (ctl_line, i, j - 1),
716 addr (text.input.font), "0"b, text.input.art,
717 text.input.quad, 0, addr (meas1), addr (meas2),
718 addr (ctl.info));
719 txtwidth = txtwidth + meas1.width + meas1.avg;
720 ii = i + j - 1;
721 end;
722 else ii = i; /* tab char is next, no new text */
723 /* which tab character? */
724 jj = index (htab.chars, substr (ctl_line, ii, 1));
725 jj = htab.pats (jj); /* pattern index for that character */
726 /* find the stop column */
727 do k = 1 to htab.pattern (jj).count
728 while (txtwidth
729 >= htab.pattern (jj).stop (k) - shared.EN_width);
730 end;
731
732 if k <= htab.pattern (jj).count
733 /* if within given stops */
734 then
735 do;
736 htab_space.v1 = /* space needed */
737 htab.pattern (jj).stop (k) - txtwidth - shared.EN_width;
738
739 if htab_space.v1 > 0 /* if any to be inserted */
740 then
741 do;
742 if htab.pattern (jj).fill (k) = ""
743 /* if no given fill string */
744 then
745 do;
746 ctl_line =
747 substr (ctl_line, 1, ii - 1) || htab_shift
748 || substr (ctl_line, ii + 1);
749 ii = ii + 7;
750 end;
751
752 else
753 do; /* construct the fill string */
754 unspec (meas1) = "0"b;
755 call comp_measure_ ((htab.pattern (jj).fill (k)),
756 addr (text.input.font), "0"b, "0"b, "0"b, 0,
757 addr (meas1), addr (meas2), addr (ctl.info));
758 fill_count = /* number of fill strings needed */
759 divide (htab_space.v1, meas1.width + meas1.avg,
760 17, 0);
761 htab_space.v1 = htab_space.v1 -
762 /* extra space */
763 fill_count * (meas1.width + meas1.avg);
764 if htab_space.v1 > 0
765 then
766 do;
767 ctl_line =
768 substr (ctl_line, 1, ii - 1) || htab_shift
769 || substr (ctl_line, ii);
770 ii = ii + 7;
771 end;
772 ctl_line = substr (ctl_line, 1, ii - 1) ||
773 /* insert fill string */
774 copy (htab.pattern (jj).fill (k), fill_count)
775 || substr (ctl_line, ii + 1);
776 ii = ii
777 + fill_count
778 * length (htab.pattern (jj).fill (k));
779 end;
780
781 i = ii; /* adjust counters */
782 txtwidth = htab.pattern (jj).stop (k) - shared.EN_width;
783 end;
784
785 else /* htab char is next, just remove it */
786 ctl_line =
787 substr (ctl_line, 1, ii - 1)
788 || substr (ctl_line, ii + 1);
789 end;
790
791 else i = ii + 1; /* not within given stops, step over it */
792 end;
793 end;
794 end do_htabs;
795
1 1 /* BEGINE INCLUDE FILE comp_brktypes.incl.pl1 */
1 2
1 3 /* Written - 4/18 - EJW
1 4*
1 5* Defines constants for all the types of text breaks in compose */
1 6
1 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
1 8
1 9 dcl (
1 10 format_break init (0),
1 11 block_break init (1),
1 12 column_break init (2),
1 13 page_break init (3),
1 14 need_break init (4),
1 15 footnote_break init (5),
1 16 footer_break init (7)
1 17 ) fixed bin static options (constant);
1 18
1 19 /* END INCLUDE FILE comp_brktypes.incl.pl1 */
796
2 1 /* BEGIN INCLUDE FILE comp_ctl_index.incl.pl1 */
2 2
2 3 /* Written: 3/82 - EJW */
2 4
2 5 /* Vector index values for controls that must be globally known. */
2 6
2 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
2 8
2 9 dcl (
2 10 be_ctl_index init (22), /* block-end */
2 11 bef_ctl_index init (26), /* block-end-footnote */
2 12 bel_ctl_index init (28), /* block-end-literal */
2 13 bep_ctl_index init (30), /* block-end-picture */
2 14 fin_ctl_index init (76), /* fill-on */
2 15 ifi_ctl_index init (110), /* insert-file */
2 16 ift_ctl_index init (111), /* insert-footnotes */
2 17 tac_ctl_index init (145), /* table-column */
2 18 taf_ctl_index init (146) /* table-off */
2 19 ) fixed bin static options (constant);
2 20
2 21 /* END INCLUDE FILE comp_ctl_index.incl.pl1 */
797
3 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */
3 2
3 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
3 4
3 5 dcl 1 tblkdata /* data for allocated text blocks */
3 6 aligned based (shared.tblkdata_ptr),
3 7 2 block, /* block pool */
3 8 3 count fixed bin,
3 9 3 ptr (500) ptr, /* block pointers */
3 10 /* block state flags */
3 11 3 free (500) bit (1) unal,
3 12 2 line_area, /* line area pool */
3 13 3 count fixed bin,
3 14 3 ptr (500) ptr, /* area pointers */
3 15 /* area state flags */
3 16 3 free (500) bit (1) unal,
3 17 2 text_area, /* text area pool */
3 18 3 count fixed bin,
3 19 3 ptr (500) ptr, /* area pointers */
3 20 /* area state flags */
3 21 3 free (500) bit (1) unal,
3 22 3 string_area_count
3 23 fixed bin; /* line areas */
3 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24);
3 25 dcl line_area_ptr ptr init (null);
3 26 dcl 1 line_area aligned based (line_area_ptr),
3 27 2 next ptr, /* forward thread */
3 28 2 prev ptr, /* backward thread */
3 29 2 count fixed bin, /* number of lines allocated */
3 30 2 ndx fixed bin, /* index of current line */
3 31 2 pndx fixed bin, /* area pool index */
3 32 2 linptr (LINE_AREA_SIZE) ptr;
3 33 /* text areas */
3 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6);
3 35 dcl text_area_ptr ptr init (null);
3 36 dcl 1 text_area aligned based (text_area_ptr),
3 37 2 next ptr, /* forward thread */
3 38 2 count fixed bin, /* number of areas allocated */
3 39 2 ndx fixed bin, /* index of current strarea */
3 40 2 pndx fixed bin, /* area pool index */
3 41 2 strareaptr (TEXT_AREA_SIZE) ptr;
3 42 /* text string area */
3 43 dcl string_area (256) fixed bin based;
3 44 dcl txtstrptr ptr; /* current text string */
3 45 dcl txtstr char (1020) var based (txtstrptr);
3 46
3 47 dcl TEXT_VERSION fixed bin static options (constant) init (9);
3 48 /* general text block */
3 49 dcl 1 text aligned based (shared.blkptr),
3 50 2 version fixed bin, /* version of structure */
3 51 2 blkndx fixed bin, /* block data index */
3 52 2 blktype char (2), /* block type code */
3 53 /* dynamic block control stuff */
3 54 2 hdr aligned like text_header,
3 55 /* text read from input file */
3 56 2 input aligned like text_entry,
3 57 2 input_line char (1020) var,/* input buffer */
3 58 2 line_area,
3 59 3 first ptr, /* head of line area thread */
3 60 3 cur ptr, /* current line area */
3 61 2 next_text ptr, /* next text string */
3 62 /* text formatting parameters */
3 63 2 parms aligned like default_parms,
3 64 2 text_area,
3 65 3 first ptr, /* head of text area thread */
3 66 3 cur ptr; /* current text area */
3 67 /* an empty text block line */
3 68 dcl 1 text_entry aligned based (const.text_entry_ptr),
3 69 2 sws, /* unaligned switches, etc. */
3 70 3 art bit (1) unal, /* line has artwork */
3 71 3 cbar, /* change bar flags */
3 72 4 add bit (1) unal, /* text addition flag */
3 73 4 del bit (1) unal, /* text deletion flag */
3 74 4 mod bit (1) unal, /* text modification flag */
3 75 3 default bit (1) unal, /* 1 = default case as needed */
3 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */
3 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */
3 78 3 end_keep bit (1) unal, /* 1= line ends a keep */
3 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */
3 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */
3 81 3 hanging bit (1) unal, /* 1 = a hanging undent */
3 82 3 keep bit (1) unal, /* 1 = unsplittable line */
3 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */
3 84 3 oflo bit (1) unal, /* line causes overflow */
3 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */
3 86 3 quad bit (6) unal, /* text alignment flags */
3 87 3 space_added /* 1= line has added space */
3 88 bit (1) unal,
3 89 3 spcl, /* special entry - not output text */
3 90 4 file bit (1) unal, /* 1= output to special file */
3 91 4 blk_splt /* 1= action at block split time */
3 92 bit (1) unal,
3 93 4 page_mkup /* 1= action at page makeup time */
3 94 bit (1) unal,
3 95 3 table bit (1) unal, /* 1= line is a table entry */
3 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */
3 97 3 title bit (1) unal, /* 1= line is a */
3 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */
3 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */
3 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */
3 101 3 unswrds bit (1) unal, /* 1= underscore words only */
3 102 3 white bit (1) unal, /* 1= line is white space */
3 103 3 und_prot bit (1) unal, /* 1= undent is protected */
3 104 3 MBZ bit (4) unal,
3 105 2 art_start fixed bin unal, /* start of art string in line */
3 106 2 art_len fixed bin unal, /* length of art string in line */
3 107 2 cbar_level /* change level for cbars */
3 108 char (1) aligned,
3 109 2 cur, /* current scanning data for line */
3 110 3 chrct fixed bin, /* count of chars scanned */
3 111 3 gaps fixed bin, /* gap count */
3 112 3 width fixed bin (31), /* width of font chars */
3 113 3 min fixed bin (31), /* width of min spbnds */
3 114 3 avg fixed bin (31), /* width of avg spbnds */
3 115 3 max fixed bin (31), /* width of max spbnds */
3 116 3 font like fntstk_entry,
3 117 2 depth fixed bin (31), /* page depth for line */
3 118 /* font at start of line */
3 119 2 font like fntstk_entry,
3 120 2 index fixed bin (21), /* char index for line scanning */
3 121 2 info, /* stuff created during line input */
3 122 3 fileno fixed bin, /* input file index */
3 123 3 lineno fixed bin, /* input file line number */
3 124 3 lineno0 fixed bin, /* call_box0 line number */
3 125 2 linespace fixed bin (31), /* linespace value for the line */
3 126 2 lmarg fixed bin (31), /* adjusted left margin position */
3 127 2 mod_len fixed bin, /* length of modified text */
3 128 2 mod_start fixed bin, /* index for start of modified text */
3 129 2 net fixed bin (31), /* net line width for filling */
3 130 2 ptr ptr, /* pointer to the actual text */
3 131 2 rmarg fixed bin (31), /* adjusted right margin position */
3 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */
3 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */
3 134 2 tblcol fixed bin, /* column for table entries */
3 135 2 title_delim
3 136 char (1) unal, /* title delimiter if a */
3 137 2 title_index
3 138 fixed bin, /* block index for line */
3 139 2 width fixed bin (31), /* width of text */
3 140 2 ftn, /* footnote info for line */
3 141 3 ct fixed bin, /* number of footnote refs */
3 142 3 used fixed bin (31), /* space used */
3 143 3 e (40), /* limit is arbitrary */
3 144 4 blkndx fixed bin unal, /* block index of footnote - if this
3 145* value is 0, then .frf was used */
3 146 4 refno fixed bin unal; /* reference number */
3 147
3 148 dcl (
3 149 quadi init ("40"b3), /* set to the inside margin */
3 150 quado init ("20"b3), /* set to the outside margin */
3 151 quadl init ("10"b3), /* set left */
3 152 quadc init ("04"b3), /* set centered */
3 153 quadr init ("02"b3), /* set right */
3 154 just init ("01"b3) /* justified */
3 155 ) bit (6) static options (constant);
3 156 /* control line structure */
3 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr);
3 158 dcl ctl_line char (1020) var based (ctl.ptr);
3 159
3 160 dcl txtlinptr ptr; /* the current text line */
3 161 dcl 1 txtlin aligned like text_entry based (txtlinptr);
3 162 /* empty text header structure */
3 163 dcl 1 text_header aligned based (const.text_header_ptr),
3 164 2 sws, /* control switches */
3 165 3 art bit (1) unal, /* block has artwork */
3 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */
3 167 3 modified bit (1) unal, /* block contains modified lines */
3 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */
3 169 3 oflo_ftn bit (1) unal, /* overflow footnote */
3 170 3 tblblk bit (1) unal, /* a table block */
3 171 3 unref bit (1) unal, /* block is an unreffed footnote */
3 172 3 white bit (1) unal, /* block is a white space block */
3 173 3 picture bit (1) unal, /* picture block */
3 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */
3 175 3 MBZ bit (26) unal,
3 176 2 art_count fixed bin unal, /* to count input art lines */
3 177 2 blkptr ptr, /* pointer to suspended block */
3 178 2 cap_size fixed bin unal, /* line count of text caption */
3 179 2 cap_used fixed bin (31), /* size of text caption */
3 180 2 colno fixed bin unal, /* column owning the block */
3 181 2 count fixed bin unal, /* line count for block */
3 182 2 eqn_line_count
3 183 fixed bin unal, /* counter for equation lines */
3 184 2 first_text fixed bin unal, /* OBSOLETE */
3 185 2 ftn, /* footnotes */
3 186 3 ct fixed bin, /* count */
3 187 3 usd fixed bin (31), /* space used */
3 188 3 blkndx (40) fixed bin, /* footnote block index values */
3 189 2 head_size fixed bin, /* line count of text header */
3 190 2 head_used fixed bin (31), /* size of text header */
3 191 2 index fixed bin unal, /* block index of next output line */
3 192 2 keep_count fixed bin unal, /* to count input keep lines */
3 193 2 last_line fixed bin, /* last text line in column */
3 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */
3 195 2 name char (32) var, /* block name, if any */
3 196 2 nofill_count /* to count nofill lines */
3 197 fixed bin,
3 198 2 parms_ptr ptr, /* parms for suspended block */
3 199 2 refer fixed bin, /* inter-block reference */
3 200 2 refer_index /* OBSOLETE */
3 201 fixed bin, /* a reference */
3 202 2 split fixed bin, /* split point for balancing */
3 203 2 trl_ws fixed bin (31), /* trailing WS */
3 204 2 used fixed bin (31); /* page space used by a column/block */
3 205 /* text formatting parameters */
3 206 dcl 1 text_parms aligned like default_parms
3 207 based (const.text_parms_ptr);
3 208
3 209 dcl 1 current_parms
3 210 aligned like default_parms
3 211 based (const.current_parms_ptr);
3 212
3 213 dcl 1 default_parms
3 214 aligned based (const.default_parms_ptr),
3 215 2 sws, /* control switches */
3 216 3 quad bit (6) unal, /* text alignment mode */
3 217 3 art bit (1) unal, /* 1 = block countains artwork */
3 218 3 cbar, /* change bar flags */
3 219 4 add bit (1) unal, /* text addition flag */
3 220 4 del bit (1) unal, /* text deletion flag for next line */
3 221 4 mod bit (1) unal, /* text modification flag */
3 222 3 fill_mode
3 223 bit (1) unal, /* 1 = fill mode ON */
3 224 3 footnote bit (1) unal, /* block is a footnote */
3 225 3 hfc bit (1) unal, /* OBSOLETE */
3 226 3 htab_mode
3 227 bit (1) unal, /* 1 = horizontal tab mode ON */
3 228 3 keep bit (1) unal, /* keep mode */
3 229 3 page bit (1) unal, /* block belongs to page, not text */
3 230 3 title_mode
3 231 bit (1) unal, /* 0 = plain text, 1 = s OK */
3 232 3 MBZ bit (19) unal,
3 233 2 ftrptr ptr, /* text caption block */
3 234 2 cbar_level /* change level for cbars */
3 235 char (1) aligned,
3 236 2 hdrptr ptr, /* text header block */
3 237 2 left, /* left margin data */
3 238 3 indent fixed bin (31),
3 239 3 undent fixed bin (31),
3 240 2 linespace fixed bin (31), /* line spacing value */
3 241 2 measure fixed bin (31), /* line space for text */
3 242 /* right margin data */
3 243 2 right like default_parms.left,
3 244 2 fntstk, /* stack of last 20 font changes */
3 245 3 index fixed bin, /* which one in use */
3 246 /* entry(0) is the default */
3 247 3 entry (0:19) like fntstk_entry;
3 248
3 249 dcl hfcblk_ptr ptr;
3 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr);
3 251
3 252 /* END INCLUDE FILE comp_text.incl.pl1 */
798
4 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */
4 2
4 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
4 4
4 5 dcl 1 col /* the text column */
4 6 aligned based (shared.colptr),
4 7 2 blkptr (100) ptr, /* pointers to text blocks */
4 8 2 depth_adj fixed bin (31), /* for variable start depth */
4 9 2 ftrptr ptr, /* -> column footer */
4 10 2 ftrusd fixed bin (31), /* column footer space used */
4 11 2 gutter fixed bin (31), /* column separation */
4 12 2 hdr like colhdr, /* column control stuff */
4 13 2 hdrptr ptr, /* -> column header */
4 14 2 hdrusd fixed bin (31), /* column header space used */
4 15 2 margin, /* margin settings for column */
4 16 3 left fixed bin (31),
4 17 3 right fixed bin (31),
4 18 2 parms, /* text parms for the column */
4 19 3 measure fixed bin (31); /* column width */
4 20
4 21 dcl 1 colhdr aligned based (const.colhdrptr),
4 22 /* an empty column header */
4 23 2 balblk fixed bin, /* block to begin column balancing */
4 24 2 baldepth fixed bin (31), /* page depth at balance point */
4 25 2 balftn, /* footnotes at balance point */
4 26 3 ct fixed bin, /* count */
4 27 3 usd fixed bin (31), /* space used */
4 28 3 blkndx (40) fixed bin, /* block index values */
4 29 2 balusd fixed bin (31), /* space used up to balance point */
4 30 2 blkct fixed bin, /* text block count */
4 31 2 depth fixed bin (31), /* current page depth in the column */
4 32 2 ftn like balftn, /* footnotes */
4 33 2 pspc fixed bin (31), /* current white space */
4 34 2 net fixed bin (31), /* net usable space in the column */
4 35 2 used fixed bin (31); /* space used in this column */
4 36 /* for quick reference */
4 37 dcl 1 col0 aligned like col based (page.column_ptr (0));
4 38
4 39 /* END INCLUDE FILE comp_column.incl.pl1 */
799
5 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen
5 2* Modified: ??/81 - EJW - Addded type_wait
5 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file.
5 4**/
5 5
5 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */
5 7
5 8 dcl DCxx_p ptr; /* for qualification of embedded */
5 9 /* control strings */
5 10 /* an embedded control string */
5 11 dcl 1 dcxx unal based (DCxx_p),
5 12 2 mark char (1) unal, /* control marker - DC1 (\021) */
5 13 2 ctl,
5 14 3 type bit (3) unal, /* 000- device/writer control */
5 15 /* 001- */
5 16 /* 010- literal data */
5 17 /* 011- family/member/size data */
5 18 /* 100- shift */
5 19 /* 101- */
5 20 /* 110- vector */
5 21 /* 111- zero-offset vector */
5 22 3 fill1 bit (1) unal,
5 23 3 Xctl bit (2) unal, /* 00- no X value present */
5 24 /* 01- short X value */
5 25 /* 10- long X value */
5 26 3 fill2 bit (1) unal,
5 27 3 Yctl bit (2) unal, /* 00- no Y value present */
5 28 /* 01- short Y value present */
5 29 /* 10- long Y value present */
5 30 2 leng fixed bin (9) unal unsigned,
5 31 /* # of remaining bytes */
5 32 2 etc; /* the rest of the control bytes */
5 33 /* device/writer controls */
5 34 dcl 1 dcctl unal based (DCxx_p),
5 35 2 mark char (1) unal,
5 36 2 type char (1) unal, /* control type */
5 37 /* leng is always 0 for these */
5 38 2 leng fixed bin (9) unal unsigned;
5 39 dcl (
5 40 wait_signal init (" "), /* = 021001000 */
5 41 unstart_signal init (" "), /* = 021002000 */
5 42 unstop_signal init (" ") /* = 021003000 */
5 43 ) char (3) static options (constant);
5 44 /* the "literal" control string */
5 45 dcl 1 dclit unal based (DCxx_p),
5 46 2 mark char (1) unal,
5 47 2 type char (1) unal, /* control type */
5 48 2 leng fixed bin (9) unal unsigned,
5 49 /* width in milli-points of literal */
5 50 2 width fixed bin (31) unal,
5 51 /* actual literal, max length 509 */
5 52 2 data char (dclit.leng - 4);
5 53 /* long (31 bits) values */
5 54 dcl 1 dclong_val unal based (DCxx_p),
5 55 2 mark char (1) unal,
5 56 2 type char (1) unal, /* control type */
5 57 2 leng fixed bin (9) unal unsigned,
5 58 (
5 59 2 v1 fixed bin (31), /* long value */
5 60 2 v2 fixed bin (31) /* long value */
5 61 ) unal;
5 62 dcl (
5 63 dclong_len init (8), /* 2 long values */
5 64 dclong1_len init (4) /* 1 long value */
5 65 ) fixed bin static options (constant);
5 66 /* short (17 bit) values */
5 67 dcl 1 dcshort_val unal based (DCxx_p),
5 68 2 mark char (1) unal,
5 69 2 type char (1) unal, /* control type */
5 70 2 leng fixed bin (9) unal unsigned,
5 71 (
5 72 2 v1 fixed bin, /* short value */
5 73 2 v2 fixed bin /* short value */
5 74 ) unal;
5 75 dcl (
5 76 dcshort_len init (4), /* 2 short values */
5 77 dcshort1_len init (2) /* 1 short value */
5 78 ) fixed bin static options (constant);
5 79 /* a font change string */
5 80 dcl 1 dcfs unal based (DCxx_p),
5 81 2 mark char (1) unal, /* font/size data */
5 82 2 type char (1) unal, /* control type */
5 83 2 leng fixed bin (9) unal unsigned,
5 84 /* fnttbldata index */
5 85 2 f fixed bin (9) unal unsigned,
5 86 /* point size in milli-points */
5 87 2 p fixed bin (31) unal;
5 88 dcl dcfs_len fixed bin init (5) static options (constant);
5 89
5 90 dcl ( /* symbolic definitions of DC types */
5 91 type_wait init (""), /* writer wait */
5 92 type_unstart init (""), /* underscore start */
5 93 type_unstop init (""), /* underscore stop */
5 94 type_lit init (""), /* literal data */
5 95 type_font init (""), /* family/member/size data */
5 96 /* SHIFTS - */
5 97 type_sy init (""), /* -- no x, short y */
5 98 type_sly init (""), /* -- no x, long y */
5 99 type_sx init (""), /* -- short x, no y */
5 100 type_sxy init (" "), /* -- short x, short y */
5 101 type_slx init (""), /* -- long x, no y */
5 102 type_slxly init (""), /* -- long x, long y */
5 103 /* VECTORS */
5 104 type_vy init (""), /* -- no x, short y */
5 105 type_vly init (""), /* -- no x, long y */
5 106 type_vx init (""), /* -- short x, no y */
5 107 type_vxy init (""), /* -- short x, short y */
5 108 type_vlx init (""), /* -- long x, no y */
5 109 type_vlxly init (""), /* -- long x, long y */
5 110 /* ZERO-OFFSET VECTORS- */
5 111 type_v0y init (""), /* -- no x, short y */
5 112 type_v0ly init (""), /* -- no x, long y */
5 113 type_v0x init (""), /* -- short x, no y */
5 114 type_v0xy init (""), /* -- short x, short y */
5 115 type_v0lx init (""), /* -- long x, no y */
5 116 type_v0lxly init ("") /* -- long x, long y */
5 117 ) char (1) unal int static options (constant);
5 118
5 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */
800
6 1 /* BEGIN INCLUDE FILE - comp_dvid.incl.pl1 */
6 2
6 3 /* Written: JA Falksen - 6/81
6 4*/* Modified: EJ Wallman - 11/81 - Added comp_dvt.displayproc */
6 5 /* Modified: EJW - 1/82 - added length arg to comp_dvt.displayproc */
6 6 /* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc */
6 7 /* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to
6 8* (3) char (*) var. Version 4. */
6 9 /* Modified: 6/83 - EJW - Added error print control switch to calling
6 10* sequence for comp_dvt.displayproc. - Version 5. */
6 11
6 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
6 13
6 14 dcl comp_dvid_version
6 15 fixed bin static options (constant) init (5);
6 16
6 17 dcl 1 comp_dvid aligned based (const.dvidptr),
6 18 2 version fixed bin, /* version of this structure and */
6 19 /* of comp_dvt */
6 20 2 devname char (32), /* name of device */
6 21 2 dvt_r bit (18); /* device table offset */
6 22
6 23 /* END INCLUDE FILE - comp_dvid.incl.pl1 */
801
7 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */
7 2
7 3 /* Written: 9/80 - JA Falksen
7 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc
7 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc
7 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc
7 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to
7 8* (3) char (*) var. Version 4. */
7 9 /* Modified: 6/83 - EJW - Added error print control switch to calling
7 10* sequence for comp_dvt.displayproc. - Version 5.
7 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying.
7 12**/
7 13
7 14 /* All names which end in "_r"are offset values within the device table */
7 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */
7 16
7 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */
7 18
7 19 dcl 1 comp_dvt aligned based (const.devptr),
7 20 2 devclass char (32), /* what general kind of device is */
7 21 /* this, currently available: */
7 22 /* "printer" (includes terminals), */
7 23 /* "braille", "bitmap" */
7 24 2 outproc entry /* page output processor */
7 25 (fixed bin, /* function - 0=build */
7 26 /* 1=init page */
7 27 /* 2=init file */
7 28 /* 3=cleanup */
7 29 fixed bin (35)),/* error code */
7 30 2 footproc entry /* footnote reference proc */
7 31 ((3) char (*) var,
7 32 /* reference string (IN/OUT) */
7 33 ptr), /* comp_dvt_p (IN) */
7 34 2 artproc entry (), /* artwork proc */
7 35 /* dont know how to describe yet */
7 36 2 displayproc
7 37 entry /* string display interpreter */
7 38 (char (*) var, /* raw input string */
7 39 fixed bin (24), /* chars used in this call */
7 40 bit (1)) /* 1= dont show display errors */
7 41 returns (char (*) var),
7 42 /* interpreted output string */
7 43 /* following values are in millipoints */
7 44 2 min_WS fixed bin (31), /* minimum whitespace */
7 45 2 min_lead fixed bin (31), /* minimun lead */
7 46 2 vmt_min fixed bin (31), /* min usable .vmt */
7 47 2 vmb_min fixed bin (31), /* min usable .vmb */
7 48 2 def_vmt fixed bin (31), /* default .vmt */
7 49 2 def_vmh fixed bin (31), /* default .vmh */
7 50 2 def_vmf fixed bin (31), /* default .vmf */
7 51 2 def_vmb fixed bin (31), /* default .vmb */
7 52 2 pdw_max fixed bin (31), /* max page width available */
7 53 2 pdl_max fixed bin (31), /* max page length available, */
7 54 /* (0 = unlimited) */
7 55 2 upshift fixed bin (31), /* footnote reference shift */
7 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */
7 57 2 lettersp fixed bin (31), /* max letterspacing */
7 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */
7 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */
7 60 2 init_fam fixed bin, /* initial family index */
7 61 2 init_mem fixed bin, /* initial member index */
7 62 2 foot_fam fixed bin, /* initial foot family index */
7 63 2 foot_mem fixed bin, /* initial foot member index */
7 64 2 init_family
7 65 char (32), /* initial font family to use */
7 66 2 init_member
7 67 char (32), /* initial font member to use */
7 68 ( /* the following are offsets */
7 69 2 atd_r, /* attach desc for on-line output */
7 70 2 dvc_r, /* device control table relptr */
7 71 2 comment_r, /* comment string relptr */
7 72 2 cleanup_r, /* "cleanup" string relptr */
7 73 2 medsel_table_r /* media select table relptr */
7 74 ) bit (18) aligned,
7 75 2 foot_family
7 76 char (32), /* family for footnote reference */
7 77 2 foot_member
7 78 char (32), /* member for footnote reference */
7 79 /* if one was specified */
7 80 2 sws unaligned,
7 81 3 interleave /* 0- page block has lines in column */
7 82 bit (1), /* order left-to-right */
7 83 /* 1- page block has lines in line */
7 84 /* order top-to-bottom */
7 85 3 justifying /* 1- device justifies lines */
7 86 bit (1),
7 87 3 mbz bit (24),
7 88 3 endpage bit (9), /* EOP char if not "0"b */
7 89 2 open_mode fixed bin (35), /* when going to a file */
7 90 2 recleng fixed bin, /* length of tape records */
7 91 2 family_ct fixed bin, /* # families present */
7 92 2 family (comp_dvt.family_ct),
7 93 /* families of fonts defined */
7 94 3 member_r bit (18) aligned,
7 95 /* member table relptr */
7 96 3 name char (32); /* family name */
7 97
7 98
7 99 /* The usage formula for units: */
7 100 /* */
7 101 /* rel_units * length_in_points */
7 102 /* ---------------------------- = length_in_units */
7 103 /* points_per_EM */
7 104
7 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */
802
8 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */
8 2
8 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
8 4
8 5 dcl compose_severity_
8 6 fixed bin (35) ext static;
8 7 dcl comp_ entry;
8 8 dcl comp_art_ entry (ptr, bit (1));
8 9 dcl comp_block_ctls_
8 10 entry (fixed bin);
8 11 dcl comp_break_ entry (fixed bin, fixed bin);
8 12 dcl comp_break_ctls_
8 13 entry (fixed bin);
8 14 dcl comp_ctls_ entry (bit (1) aligned);
8 15 dcl comp_eject_page_
8 16 entry;
8 17 dcl comp_expr_eval_
8 18 entry (char (*) var, fixed bin (21), ptr, fixed bin,
8 19 fixed bin, bit (1), fixed bin (31), char (*) var,
8 20 bit (9), fixed bin (35));
8 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21),
8 22 fixed bin (21), fixed bin (21), ptr)
8 23 returns (char (*) var);
8 24 dcl comp_fill_ entry;
8 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned);
8 26 dcl comp_format_ctls_
8 27 entry (fixed bin);
8 28 dcl comp_get_file_$find
8 29 entry (char (*), ptr, char (*), bit (1), char (*) var,
8 30 fixed bin (35));
8 31 dcl comp_get_file_$open
8 32 entry (ptr, bit (1), fixed bin (35));
8 33 dcl comp_head_page_
8 34 entry (fixed bin (31));
8 35 dcl comp_hft_ctls_ entry (fixed bin);
8 36 dcl comp_hft_ctls_$title
8 37 entry (ptr, ptr, char (*) var, fixed bin (31));
8 38 dcl comp_init_$one entry;
8 39 dcl comp_init_$two entry;
8 40 dcl comp_init_$three
8 41 entry;
8 42 dcl comp_insert_ctls_
8 43 entry (fixed bin);
8 44 dcl comp_make_page_
8 45 entry (fixed bin, bit (1));
8 46 dcl comp_make_page_$cleanup
8 47 entry;
8 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6),
8 49 fixed bin (31), ptr, ptr, ptr);
8 50 dcl comp_read_$name
8 51 entry (char (*) var, fixed bin (21), fixed bin (21),
8 52 ptr) returns (char (*) var);
8 53 dcl comp_read_$number
8 54 entry (char (*) var, (*) fixed bin (31),
8 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35))
8 56 returns (fixed bin (31));
8 57 dcl comp_read_$line
8 58 entry (ptr, char (*) var, bit (1));
8 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr,
8 60 char (*) var);
8 61 dcl comp_report_$ctlstr
8 62 entry options (variable);
8 63 /**** (sev, code, info, line, ctl_str, args... */
8 64 dcl comp_report_$exact
8 65 entry (char (*), ptr);
8 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1),
8 67 bit (1));
8 68 dcl comp_tbl_ctls_ entry (fixed bin);
8 69 dcl comp_title_block_
8 70 entry (ptr);
8 71 dcl comp_update_symbol_
8 72 entry (bit (1), bit (1), bit (1), char (32),
8 73 char (*) var);
8 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr);
8 75 dcl comp_util_$add_text
8 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr);
8 77 dcl comp_util_$display
8 78 entry (char (*) var, fixed bin, bit (1))
8 79 returns (char (*) var);
8 80 dcl comp_util_$escape
8 81 entry (char (*) var, ptr);
8 82 dcl comp_util_$getblk
8 83 entry (fixed bin, ptr, char (2), ptr, bit (1));
8 84 dcl comp_util_$num_display
8 85 entry (ptr, fixed bin) returns (char (256) var);
8 86 dcl comp_util_$pageno
8 87 entry (fixed bin, char (*) var);
8 88 dcl comp_util_$pictures /* emit pending pictures */
8 89 entry /**/
8 90 (ptr); /* current text block */
8 91 dcl comp_util_$pop entry (char (32));
8 92 dcl comp_util_$push
8 93 entry (char (32));
8 94 dcl comp_util_$relblk
8 95 entry (fixed bin, ptr);
8 96 dcl comp_util_$replace_text
8 97 entry (ptr, bit (1), ptr, ptr);
8 98 dcl comp_util_$search_tree
8 99 entry (char (32), bit (1));
8 100 dcl comp_util_$set_bin
8 101 entry (fixed bin (31), char (32) var, fixed bin (31),
8 102 fixed bin (31), fixed bin (31), (*) fixed bin (31),
8 103 fixed bin (31));
8 104 dcl comp_util_$set_net_page
8 105 entry (bit (1));
8 106 dcl comp_util_$translate
8 107 entry (char (*) var) returns (char (*) var);
8 108 dcl comp_write_block_
8 109 entry (fixed bin);
8 110 dcl comp_write_page_
8 111 entry;
8 112
8 113 /* END INCLUDE FILE comp_entries.incl.pl1 */
803
9 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */
9 2
9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
9 4
9 5 dcl fntstk_eptr ptr; /* font stack entry structure */
9 6 dcl 1 fntstk_entry aligned based (fntstk_eptr),
9 7 2 bachelor bit (1), /* 1= has no members */
9 8 2 devfnt fixed bin, /* font in the device */
9 9 2 fam_name char (32), /* family name */
9 10 2 famndx fixed bin, /* family index */
9 11 2 fntptr ptr, /* font table pointer */
9 12 2 mem_name char (32), /* /member name (or null) */
9 13 2 memndx fixed bin, /* member index */
9 14 2 memptr ptr, /* member table pointer */
9 15 2 name char (65) var, /* font name */
9 16 2 size fixed bin (31), /* requested point size */
9 17 2 ps fixed bin (31), /* effective point size */
9 18 2 fcs_str char (8); /* FCS string */
9 19
9 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */
804
10 1 /* BEGIN INCLUDE FILE comp_footnotes.incl.pl1 */
10 2
10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
10 4
10 5 dcl 1 ftnblk_data aligned based (shared.ftnblk_data_ptr),
10 6 /* data for footnote blocks */
10 7 2 highndx fixed (35), /* highest active footnote index */
10 8 2 blkptr (250) ptr; /* block pointers */
10 9 /* footnote header data block */
10 10 dcl 1 ftnhdr aligned like text based (shared.footnote_header_ptr);
10 11 /* formatting parms for footnotes */
10 12 dcl 1 footnote_parms
10 13 aligned like default_parms
10 14 based (const.footnote_parms_ptr);
10 15
10 16 /* END INCLUDE FILE comp_footnotes.incl.pl1 */
805
11 1 /* BEGIN INCLUDE FILE comp_htab.incl.pl1 */
11 2
11 3 dcl 1 htab aligned based (shared.htab_ptr), /* horizontal tab pattern tables */
11 4 2 count fixed bin, /* number of defined patterns */
11 5 2 chars char (32) varying, /* active htab characters */
11 6 2 pats (32) fixed (8) unaligned, /* pattern index for each char above */
11 7 2 pattern (0:20), /* up to 20 patterns + one-shot */
11 8 3 name char (32), /* pattern name */
11 9 3 count fixed bin, /* number of tab stops */
11 10 3 stop (20) fixed bin (31),/* tab stop values */
11 11 3 fill (20) char (32) varying; /* fill string */
11 12
11 13 /* END INCLUDE FILE comp_htab.cinl.pl1 */
806
12 1 /* BEGIN INSERT FILE ... comp_insert.incl.pl1 */
12 2
12 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
12 4
12 5 dcl 1 insert_data aligned based (const.insert_data_ptr),
12 6 2 count fixed bin, /* count of allocated data blocks */
12 7 2 index fixed bin, /* the current block */
12 8 2 ptr (1000) ptr, /* insert file data block pointers */
12 9 2 ref_area, /* ref name string area data */
12 10 3 count fixed bin, /* count of allocated areas */
12 11 3 ptr (100) ptr; /* area pointers */
12 12 /* insert call stack */
12 13 dcl 1 call_stack aligned based (const.call_stk_ptr),
12 14 2 count fixed bin, /* count of allocated boxes */
12 15 2 index fixed bin, /* current stack index */
12 16 2 ptr (0:50) ptr; /* stack entry ptrs */
12 17 dcl call_box_ptr ptr;
12 18 dcl 1 call_box aligned like insert.file based (call_box_ptr);
12 19 dcl 1 call_box0 aligned like insert.file based (call_stack.ptr (0));
12 20
12 21 dcl 1 insert_refs aligned based, /* ref names structure */
12 22 2 count fixed bin, /* count of names in area */
12 23 2 index (60) fixed bin, /* insert_data index values */
12 24 2 name (60) char (32) unal;
12 25 /* the ref names */
12 26
12 27 dcl refname_str char (refstr_len) based (refstr_ptr);
12 28 /* for searching */
12 29 dcl refstr_len fixed bin; /* length of refname search string */
12 30 dcl refstr_ptr ptr; /* refname string pointer */
12 31 /* data for an insert file */
12 32 dcl 1 insert aligned based (shared.insert_ptr),
12 33 2 file, /* also used for source files */
12 34 3 charcount
12 35 fixed bin (21), /* segment character count */
12 36 3 comp_no fixed bin, /* msf component number */
12 37 3 dir char (168), /* containing dir */
12 38 3 entryname
12 39 char (32), /* primary entryname */
12 40 3 exit_lineno
12 41 fixed bin (35), /* line number of .ifi */
12 42 3 fcb_ptr ptr, /* FCB pointer for msf manager */
12 43 3 info like text_entry.info,
12 44 3 insert_ptr /* self pointer - needed when */
12 45 ptr, /* struc is in the call stack */
12 46 /* 3 ntext fixed bin (21), /* character count of text line */
12 47 3 path char (200) var, /* complete pathname */
12 48 3 pointer ptr, /* segment pointer */
12 49 3 posn fixed bin (21), /* input character position */
12 50 3 refname char (200) var, /* for source files only */
12 51 2 callers_name
12 52 char (100), /* refname of calling file */
12 53 2 dtcm bit (36), /* fs date-time-modified */
12 54 2 refndx fixed bin, /* CURRENT refname index for file */
12 55 2 thrb fixed bin unsigned,
12 56 /* backward thread index in insert stack */
12 57 2 label, /* label data per insert level */
12 58 3 count fixed bin,
12 59 3 line (250) fixed bin unsigned,
12 60 3 position (250) fixed bin (21),
12 61 3 value (250) char (32);
12 62
12 63 /* empty file data structure */
12 64 dcl 1 init_file_data
12 65 static options (constant),
12 66 2 charcount fixed bin (21) init (0),
12 67 /* segment character count */
12 68 2 comp_no fixed bin init (0),
12 69 /* msf component number */
12 70 2 dir char (168) init (""),
12 71 /* containing dir */
12 72 2 entryname char (32) init (""),
12 73 /* primary entryname */
12 74 2 exit_lineno
12 75 fixed bin (35) init (0),
12 76 /* line number of .ifi */
12 77 2 fcb_ptr ptr init (null),/* FCB pointer for msf manager */
12 78 2 info, /* stuff created during line input */
12 79 3 fileno /* input file index */
12 80 fixed bin init (0),
12 81 3 lineno /* input file line number */
12 82 fixed bin init (0),
12 83 3 lineno0 /* call_box0 line number */
12 84 fixed bin init (0),
12 85 2 insert_ptr ptr init (null),/* self pointer - needed when */
12 86 /* struc is in the call stack */
12 87 /* 2 ntext fixed bin (21) init (0),
12 88*/* /* character count of text line */
12 89 2 path char (200) var init (""),
12 90 /* complete pathname */
12 91 2 pointer ptr init (null),/* segment pointer */
12 92 2 posn fixed bin (21) init (1),
12 93 /* input character position */
12 94 2 refname char (200) var init ("");
12 95 /* for source files only */
12 96
12 97 /* END INSERT FILE ... comp_insert.incl.pl1 */
807
13 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */
13 2
13 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */
13 4
13 5 /* ASCII control characters */
13 6 dcl (
13 7 NUL init (" "), /* 000 */
13 8 SOH init (""), /* 001 */
13 9 STX init (""), /* 002 */
13 10 ETX init (""), /* 003 */
13 11 EOT init (""), /* 004 */
13 12 ENQ init (""), /* 005 */
13 13 ACK init (""), /* 006 */
13 14 BEL init (""), /* 007 */
13 15 BSP init (""), /* 010 */
13 16 HT init (" "),
13 17 /* 011 */
13 18 (NL, LF) init ("
13 19 "), /* 012 */
13 20 VT init (""), /* 013 */
13 21 FF init (""), /* 014 */
13 22 CR init ("
"), /* 015 */
13 23 (RRS, SO) init (""), /* 016 */
13 24 (BRS, SI) init (""), /* 017 */
13 25 DLE init (""), /* 020 */
13 26 DC1 init (""), /* 021 */
13 27 (DC2, HLF, HUGE) init (""), /* 022 */
13 28 DC3 init (""), /* 023 */
13 29 (DC4, HLR, THICK) init (""), /* 024 */
13 30 (NAK, MEDIUM) init (""), /* 025 */
13 31 SYN init (""), /* 026 */
13 32 (ETB, HAIR) init (""), /* 027 */
13 33 (CAN, STROKE) init (""), /* 030 */
13 34 oct031 init (""), /* 031 */
13 35 SUB init (""), /* 032 */
13 36 ESC init (""), /* 033 */
13 37 FS init (""), /* 034 */
13 38 GS init (""), /* 035 */
13 39 RS init (""), /* 036 */
13 40 US init (""), /* 037 */
13 41 (DEL, PAD) init (""), /* 177 */
13 42 /* compose meta-characters */
13 43 multiply init (""), /* 252 - multiply symbol */
13 44 pl_mi init (""), /* 253 - plus/minus sign */
13 45 nabla init (""), /* 254 */
13 46 EMdash init (""), /* 255 - EM dash */
13 47 slash init (""), /* 256 */
13 48 dagger init (""), /* 261 */
13 49 perpen init (""), /* 273 - perpendicular mark */
13 50 not_eq init (""), /* 275 - not-equal mark */
13 51 dbldag init (""), /* 301 - double daggar */
13 52 cright init (""), /* 303 - copyright mark */
13 53 delta init (""), /* 304 */
13 54 bullet init (""), /* 315 */
13 55 prll init (""), /* 316 - parallel mark */
13 56 PI init (""), /* 320 - uppercase Greek pi */
13 57 tmark init (""), /* 324 - trademark */
13 58 tfore init (""), /* 326 - therefore mark */
13 59 approx init (""), /* 332 - approximately-equal mark */
13 60 infin init (""), /* 337 - infinity */
13 61 theta init (""), /* 352 */
13 62 pi init (""), /* 360 - lowercase Greek pi */
13 63 square init (""), /* 375 */
13 64 overbar init (""), /* 376 */
13 65 PS init (""), /* 377 - punctuation space */
13 66 sup0 init (" "), /* 400 - superior digit 0 */
13 67 sup1 init (""), /* 401 - superior digit 1 */
13 68 sup2 init (""), /* 402 - superior digit 2 */
13 69 sup3 init (""), /* 403 - superior digit 3 */
13 70 sup4 init (""), /* 404 - superior digit 4 */
13 71 sup5 init (""), /* 405 - superior digit 5 */
13 72 sup6 init (""), /* 406 - superior digit 6 */
13 73 sup7 init (""), /* 407 - superior digit 7 */
13 74 sup8 init (""), /* 410 - superior digit 8 */
13 75 sup9 init (" "), /* 411 - superior digit 9 */
13 76 EM init ("
"), /* 412 - EM space */
13 77 EM_ init (""), /* 413 - EM aligned dash */
13 78 EN init (""), /* 414 - EN space */
13 79 EN_ init ("
"), /* 415 - EN aligned dash */
13 80 ENd init (""), /* 416 - EN dash */
13 81 THIN init (""), /* 417 - thinspace */
13 82 DEVIT init (""), /* 420 - device unit */
13 83 lquote init (""), /* 421 - left double quote */
13 84 rquote init (""), /* 422 - right double quote */
13 85 modmark init (""), /* 424 - text modification/addition mark */
13 86 delmark init (""), /* 430 - deletion mark */
13 87 vrule init ("Z"), /* 532 - vertical rule */
13 88 lslnt init ("^") /* 536 - left slant */
13 89 ) char (1) unaligned static options (constant);
13 90
13 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */
808
14 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */
14 2
14 3 dcl option_version fixed bin (35) static options (constant) init (2);
14 4
14 5 dcl 1 option aligned based (const.option_ptr), /* program options */
14 6 2 version fixed bin (35),
14 7 /* Options with parameters */
14 8 (2 argument_opt, /* -argument option flag */
14 9 2 cbar_opt, /* -change_bars option flag */
14 10 2 cbar_art_opt, /* -change_bars_art option flag */
14 11 2 debug_opt, /* -debug option flag */
14 12 2 db_all_opt, /* -debug_all option flag */
14 13 2 db_file_opt, /* -debug_file option flag */
14 14 2 device_opt, /* -device option flag */
14 15 2 execute_opt, /* -execute option flag */
14 16 2 from_opt, /* -from option flag */
14 17 2 galley_opt, /* -galley option flag */
14 18 2 hyph_opt, /* -hyphenation option flag */
14 19 2 indent_opt, /* -indent option flag */
14 20 2 input_file_opt, /* -input_file option flag */
14 21 2 linespace_opt, /* -linespace option flag */
14 22 2 output_file_opt, /* -output_file option flag */
14 23 2 pages_opt, /* -pages option flag */
14 24 2 page_chng_opt, /* -pages_changed option flag */
14 25 2 parameter_opt, /* -parameter option flag */
14 26 2 passes_opt, /* -passes option flag */
14 27 2 tdir_opt, /* -temp_dir option flag */
14 28 2 to_opt, /* -to option flag */
14 29 /* Options without parameters */
14 30 2 annot_opt, /* -annotate */
14 31 2 brief_opt, /* -brief option flag */
14 32 2 check_opt, /* -check option flag */
14 33 2 cws_opt, /* -cws option flag */
14 34 2 db_pause_opt, /* -debug_pause option flag */
14 35 2 noart_opt, /* -noart option flag */
14 36 2 nobell_opt, /* -no_bell option flag */
14 37 2 nofill_opt, /* -nofill option flag */
14 38 2 nohit_opt, /* -nohit option flag */
14 39 2 number_opt, /* -number option flag */
14 40 2 number_append_opt, /* -number_append option flag */
14 41 2 number_brief_opt, /* -number_brief option flag */
14 42 2 stop_opt, /* -stop option flag */
14 43 2 wait_opt) unal bit (1), /* -wait option flag */
14 44 2 MBZ bit (2) unal,
14 45 /* Optional parameters */
14 46 2 arg_count fixed bin, /* count of -ag values */
14 47 2 cbar, /* change bar data */
14 48 3 level char (1), /* change level character (ASCII NUL) */
14 49 3 place char (1), /* placement character */
14 50 3 space fixed bin (31), /* extra left margin space needed */
14 51 3 left, /* left margin mark data */
14 52 4 sep fixed bin (31), /* separation */
14 53 4 width fixed bin (31), /* mark width */
14 54 4 mark char (80) varying, /* the left margin mark */
14 55 3 right, /* right margin mark data */
14 56 4 sep fixed bin (31), /* separation */
14 57 4 width fixed bin (31), /* mark width */
14 58 4 mark char (80) varying, /* the right margin mark */
14 59 3 del, /* deletion mark data */
14 60 4 sep fixed bin (31), /* separation */
14 61 4 width fixed bin (31), /* mark width */
14 62 4 mark char (80) varying, /* the deletion mark */
14 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */
14 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */
14 65 2 db_file char (200) var, /* file pathanme for debug */
14 66 2 db_file_after fixed bin (35), /* debug file starting line */
14 67 2 db_line_end fixed bin (35), /* final line for -debug output */
14 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */
14 69 2 device char (32) varying, /* output device */
14 70 2 extra_indent fixed bin (31), /* extra indent value */
14 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */
14 72 2 line_1 fixed bin (35), /* initial line for output */
14 73 2 line_2 fixed bin (35), /* final line for output */
14 74 2 linespace fixed bin (31), /* line spacing value */
14 75 2 pglstct fixed bin (35), /* number of page list entries */
14 76 2 pglstndx fixed bin (35), /* index for -pages list */
14 77 2 pglst (0:49), /* list of requested pages */
14 78 3 from char (32) var,
14 79 3 to char (32) var,
14 80 2 parameter char (80) varying, /* parameter from command line */
14 81 2 passes fixed bin, /* passes remaining */
14 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */
14 83
14 84 /* END INCLUDE FILE comp_option.incl.pl1 */
14 85
809
15 1 /* BEGIN INCLUDE FILE ..... comp_output.incl.pl1 ..... 08/29/78 J Falksen */
15 2
15 3 /* This include file describes the format of compout files. "Ordinary" compout
15 4* files, i.e. printer or ascii, will be written to stream files. All others
15 5* are not dprint-able and are written to sequential files.
15 6*
15 7* The first record is a file header which contains information necessary for
15 8* processing by process_compout.
15 9*
15 10* Each record thereafter contains one page image of data */
15 11
15 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
15 13
15 14 dcl filedata_version_2
15 15 fixed bin static options (constant) init (2);
15 16 dcl filedata_version_3
15 17 fixed bin static options (constant) init (3);
15 18 dcl filedata_version_4
15 19 fixed bin static options (constant) init (4);
15 20
15 21 dcl fileheader_ptr ptr init (null);
15 22 dcl 1 fileheader aligned based (fileheader_ptr),
15 23 2 version fixed bin, /* version of this file */
15 24 2 device_class
15 25 char (32),
15 26 2 device_name /* generic device name */
15 27 char (32),
15 28 2 device char (32), /* logical device name */
15 29 2 recleng fixed bin, /* mag tape record length */
15 30 2 max_pages fixed bin, /* max pages/record, -1=unlimited */
15 31 /* max_files not defined version 2 */
15 32 2 max_files fixed bin, /* max files/tape, -1=unlimited */
15 33 /* page_len not defined in version 3 */
15 34 2 page_len fixed bin (21), /* page length */
15 35 2 cleanup_leng /* device cleanup string */
15 36 fixed bin,
15 37 2 cleanup char (l_cleanup),
15 38 2 comment_leng /* comment string - info for pco */
15 39 fixed bin,
15 40 2 comment char (l_comment);
15 41
15 42 dcl l_comment fixed bin; /* comment length */
15 43 dcl l_cleanup fixed bin; /* cleanup length */
15 44 /* data record */
15 45 dcl record_ptr ptr init (null);
15 46 dcl 1 record aligned based (record_ptr),
15 47 2 header,
15 48 3 pageid char (32), /* page identification
15 49* ("-1" means a galley block) */
15 50 3 changed bit (1) unal, /* 1- this is a changed page */
15 51 3 front bit (1) unal, /* 1- this is a front page */
15 52 3 pending bit (1) unal, /* 1- page has been processed
15 53* but not printed */
15 54 3 blank bit (1) unal, /* 1- intentional blank page */
15 55 3 MBZ bit (32) unal, /* pad to word boundary */
15 56 2 page_record
15 57 bit (36); /* base location of output structure */
15 58
15 59 /* The output writer returns a catenated set of text strings. Each string has
15 60* a control preface. The last string in the list has output.nextref = "0"b */
15 61
15 62 dcl page_record_ptr
15 63 ptr init (null);
15 64 dcl 1 page_record aligned based (page_record_ptr),
15 65 2 sws,
15 66 3 in_use bit (1) unal, /* 1- in use (so nextref ^= "0"b ) */
15 67 3 rawo bit (1) unal, /* 1- text needs raw mode */
15 68 3 halt bit (1) unal, /* 1- halt to change wheels */
15 69 3 halt2 bit (1) unal, /* 1- halt AFTER changing wheels */
15 70 3 halt3 bit (1) unal, /* reserved for future use */
15 71 3 halt4 bit (1) unal, /* 1- mid-page wait */
15 72 3 preface bit (1) unal, /* 1- control preface, this text */
15 73 /* must be processed whenever it */
15 74 /* is different than the */
15 75 /* previous one. */
15 76 3 id_preface /* 1- identification preface, this */
15 77 bit (1) unal, /* to be included only at the */
15 78 /* beginning of an output file. */
15 79 /* In general, they will never */
15 80 /* match each other (unless page */
15 81 /* ids are duplicated). */
15 82 3 pad bit (22) unal, /* pad to last byte */
15 83 3 pwheel fixed bin (6) unal uns,
15 84 2 leng fixed bin (24), /* actual output text */
15 85 2 text char (16384 refer (page_record.leng)),
15 86 2 nextref bit (36); /* location of next if any */
15 87
15 88 /* END INCLUDE FILE ..... comp_output.incl.pl1 ..... */
810
16 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */
16 2
16 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
16 4
16 5 dcl max_image_lines
16 6 fixed static options (constant) init (1000);
16 7 dcl max_cols fixed static options (constant) init (20);
16 8
16 9 dcl page_version fixed bin static options (constant) init (5);
16 10 /* composed page structure */
16 11 dcl 1 page aligned based (const.page_ptr),
16 12 2 version fixed bin, /* version of this structure */
16 13 2 parms aligned like page_parms,
16 14 /* page formatting parameters */
16 15 2 hdr aligned like page_header,
16 16 /* page control stuff */
16 17 2 image_ptr ptr, /* pointer to the madeup page image */
16 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */
16 19 2 col_image_ptr
16 20 (-2:21) ptr; /* pointers to column images */
16 21 /* col -1 is for line numbers and */
16 22 /* left margin change bars; */
16 23 /* col -2 is for */
16 24 /* right margin change bars */
16 25 /* and/or annotation * /
16 26* /* page control stuff */
16 27 dcl 1 page_header aligned based (const.page_header_ptr),
16 28 2 sws,
16 29 3 art bit (1) unal, /* 1 = header/footer art */
16 30 3 blankpage
16 31 bit (1) unal, /* 1 = intentional blank page */
16 32 3 frontpage
16 33 bit (1) unal, /* 1 = odd page number */
16 34 3 headed bit (1) unal, /* 1 = page header has been written */
16 35 3 modified bit (1) unal, /* 1 = page has been modified */
16 36 3 overflow bit (1) unal, /* OBSOLETE */
16 37 3 MBZ bit (12) unal,
16 38 3 dot_addltr
16 39 char (1) unal, /* dot page add letter, if any */
16 40 3 pgc_select
16 41 char (1) unal, /* for selecting change pages */
16 42 2 baldepth fixed bin (31), /* page depth at balance point */
16 43 2 balusd fixed bin (31), /* space used at balance point */
16 44 2 col_count fixed bin, /* highest value of col_index for the page */
16 45 2 col_index fixed bin, /* column index */
16 46 2 depth fixed bin (31), /* current page depth */
16 47 2 hdspc fixed bin (31), /* TOP white space */
16 48 2 lmarg fixed bin (31), /* left margin for this page */
16 49 2 net fixed bin (31), /* net usable space on the page */
16 50 2 pageno char (32) var, /* current page number */
16 51 2 used fixed bin (31); /* space already used on the page */
16 52
16 53 dcl page_image_version
16 54 fixed bin (35) static options (constant) init (2);
16 55 /* structure passed to writers */
16 56 dcl 1 page_image aligned based (page.image_ptr),
16 57 2 version fixed bin (35), /* structure version no */
16 58 2 count fixed bin, /* count of page image lines */
16 59 2 file_id char (32) var, /* compout identifier */
16 60 2 func fixed bin, /* function code; 0 = build,
16 61* 1 = intialize, 2 = cleanup */
16 62 2 text_ptr ptr, /* pointer to the text area */
16 63 /* the image lines */
16 64 2 line (max_image_lines),
16 65 3 sws,
16 66 4 quad bit (6) unal, /* text set position flags */
16 67 4 art bit (1) unal, /* 1 = artwork in the line */
16 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */
16 69 4 mrgtxt bit (1) unal, /* line number or marginal note */
16 70 4 white bit (1) unal, /* line is white */
16 71 4 MBZ bit (26) unal,
16 72 3 depth fixed bin (31), /* page depth for the text */
16 73 3 gaps fixed bin, /* number of WS gaps in the line */
16 74 3 info like text_entry.info,
16 75 /* input file info */
16 76 3 lead fixed bin (31), /* lead value if trailing WS */
16 77 3 lfnt fixed bin, /* font at the left margin */
16 78 3 lmarg fixed bin (31), /* text left margin position */
16 79 3 lsize fixed bin (31), /* pointsize at the left margin */
16 80 3 net fixed bin (31), /* net width for filling */
16 81 3 pos fixed bin (31), /* current horiz position */
16 82 3 ptr ptr, /* pointer to the text */
16 83 3 rmarg fixed bin (31), /* text right margin position */
16 84 3 width fixed bin (31); /* width of the text */
16 85 /* current page formatting parms */
16 86 dcl 1 page_parms aligned based (const.page_parms_ptr),
16 87 2 init_page_depth
16 88 fixed bin (31), /* initial page depth */
16 89 2 length fixed bin (31), /* page length */
16 90 2 lmarg, /* page left margin */
16 91 3 even fixed bin (31),
16 92 3 odd fixed bin (31),
16 93 2 margin, /* margin values */
16 94 3 top fixed bin (31),
16 95 3 header fixed bin (31),
16 96 3 footer fixed bin (31),
16 97 3 bottom fixed bin (31),
16 98 2 measure fixed bin (31), /* line space available for text */
16 99 2 net, /* net usable space on page */
16 100 3 even fixed bin (31), /* even pages */
16 101 3 odd fixed bin (31), /* odd pages */
16 102 /* arrays at the end */
16 103 2 cols, /* columns defined for the page */
16 104 3 bal bit (1) unal, /* column balancing control flag */
16 105 3 MBZ bit (17) unal,
16 106 3 count fixed bin unal; /* the number of columns */
16 107 /* default page formatting parms */
16 108 dcl 1 init_page_parms
16 109 aligned like page_parms
16 110 based (const.init_page_parms_ptr);
16 111
16 112 /* END INCLUDE FILE comp_page.incl.pl1 */
811
17 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */
17 2
17 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
17 4
17 5 dcl shared_version fixed bin (35) static options (constant) init (17);
17 6
17 7 dcl 1 shared aligned based (const.shared_ptr),
17 8 2 version fixed bin (35), /* version of this structure */
17 9 2 chars,
17 10 ( 3 sym_delim, /* delimiter for symbols */
17 11 3 ttl_delim, /* delimiter for title parts */
17 12 3 wrd_brkr /* word break character */
17 13 ) char (1) unal,
17 14 3 PAD char (1) unal,
17 15 2 cbar_type char (4) var, /* change bar type */
17 16 2 dot_add_letter /* dot page add letter */
17 17 char (1) var,
17 18 2 EN_width fixed bin (31), /* width of EN in current font */
17 19 2 eqn_refct fixed bin, /* equation reference counter */
17 20 2 footref_fcs /* footnote ref FCS string */
17 21 char (8) aligned,
17 22 2 ftn_reset char (8) var, /* footnote reset mode */
17 23 2 ftnrefct fixed bin, /* footnote ref counter */
17 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */
17 25 2 if_nest, /* if/then/else logic control */
17 26 3 ndx fixed bin, /* depth of logic nest */
17 27 3 e (25), /* nest entries */
17 28 /* .if control switch */
17 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */
17 30 4 info aligned like text_entry.info,
17 31 4 line char (256) var, /* the control line */
17 32 2 indctl, /* indent ctls stack */
17 33 3 ndx fixed bin, /* current level */
17 34 /* switch bits */
17 35 3 stk (0:35) bit (1) unal,
17 36 2 input_dirname
17 37 char (168) var, /* dir containing current input file */
17 38 2 input_filename
17 39 char (200) var, /* current input file name */
17 40 2 lead fixed bin (31), /* current linespacing value */
17 41 2 lit_count fixed bin (35), /* count of literal lines */
17 42 2 next_pagenmbr
17 43 char (32) var, /* next page number / */
17 44 2 output_file
17 45 char (32) var, /* output file identifier */
17 46 2 pagecount fixed bin, /* number of pages produced */
17 47 2 pagenum, /* page number structure */
17 48 3 index fixed bin, /* level currently counting */
17 49 (
17 50 3 sep char (1) unal, /* separator chars */
17 51 3 nmbr fixed bin (31), /* the counters */
17 52 3 mode /* display modes */
17 53 fixed bin (8) unal
17 54 ) dimension (20),
17 55 2 parameter char (254) var, /* command line parameter */
17 56 2 param_pres bit (1), /* passed parameter flag */
17 57 2 pass_counter
17 58 fixed bin, /* pass counter */
17 59 2 picture, /* picture blocks */
17 60 3 count fixed bin, /* number of them */
17 61 3 space fixed bin (31), /* total picture space */
17 62 3 blk (10), /* picture blocks */
17 63 4 type char (4), /* type = page/col */
17 64 4 place char (4), /* place = top/cen/bot */
17 65 4 ptr ptr, /* pointer to block */
17 66 4 size fixed bin (31), /* size of the picture */
17 67 2 ptrs,
17 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */
17 69 3 blank_footer_ptr, /* -> blank page footer */
17 70 3 blank_header_ptr, /* -> blank page header */
17 71 3 blank_text_ptr, /* -> blank page text */
17 72 3 blkptr, /* -> active text */
17 73 3 colptr, /* current column */
17 74 3 compout_ptr, /* iocb pointer for output */
17 75 3 compx_ptr, /* iocb pointer for compx file */
17 76 3 ctb_ptr, /* current line artwork table */
17 77 3 epftrptr, /* even page footer block */
17 78 3 ephdrptr, /* even page header block */
17 79 3 fcb_ptr, /* input file control block pointer */
17 80 3 ftnblk_data_ptr, /* footnote block data pointer */
17 81 3 footnote_header_ptr, /* footnote header "title" */
17 82 3 graphic_page_ptr, /* graphic output page */
17 83 3 hit_data_ptr, /* hit data pointer */
17 84 3 htab_ptr, /* horizontal tab tables */
17 85 3 hwrd_data_ptr, /* local hyphenation table */
17 86 3 insert_ptr, /* data entry for current input file */
17 87 3 opftrptr, /* odd page footer block */
17 88 3 ophdrptr, /* odd page header block */
17 89 3 ptb_ptr, /* previous line artwork table */
17 90 3 spcl_blkptr, /* "special" block pointer */
17 91 3 tbldata_ptr, /* table column data structure */
17 92 3 tblkdata_ptr, /* text block data array */
17 93 3 text_header_ptr /* empty text header structure */
17 94 ) ptr,
17 95 2 scale, /* space conversion scale factors */
17 96 3 horz fixed bin (31), /* horizontal */
17 97 3 vert fixed bin (31), /* vertical */
17 98 2 source_filename
17 99 char (200) var, /* current source file name */
17 100 2 sws, /* switch bits */
17 101 ( 3 bug_mode, /* debug mode */
17 102 3 compout_not_headed, /* compout is not headed */
17 103 3 end_input, /* EOF for current input file */
17 104 3 end_output, /* no more output is wanted */
17 105 3 firstpass, /* first pass over input */
17 106 3 ftn_mode, /* in footnote mode */
17 107 3 hyph_mode, /* hyphenating mode */
17 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */
17 109 3 literal_mode, /* literal line mode flag */
17 110 3 pageblock, /* blocks belong to page */
17 111 3 picture_mode, /* building a picture */
17 112 3 print_flag, /* producing output */
17 113 3 purge_ftns, /* purging footnotes */
17 114 3 suppress_footref, /* suppress next footnote ref */
17 115 3 table_mode /* table mode */
17 116 ) bit (1) unal,
17 117 3 MBZ bit (21) unal,
17 118 2 trans, /* trans table for .tr */
17 119 3 in char (128) var, /* input chars */
17 120 3 out char (128) var, /* output chars */
17 121 2 widow_size fixed bin (31), /* widow size */
17 122 2 widow_foot fixed bin (31); /* widow for footnotes */
17 123 /* to save shared data between files/passes */
17 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr);
17 125
17 126 dcl dot_addltr_symb_index
17 127 fixed bin static options (constant) init (12);
17 128 dcl max_text_lines fixed bin static options (constant) init (1000);
17 129 dcl mode_string char (16) static options (constant)
17 130 init ("arbihxocalaurlru");
17 131 /* value overlays */
17 132 dcl flag_value bit (1) based;
17 133 dcl num_value fixed bin (31) based;
17 134
17 135 /* END INCLUDE FILE comp_shared.incl.pl1 */
812
18 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */
18 2
18 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */
18 4
18 5 dcl 1 tbldata aligned based (shared.tbldata_ptr),
18 6 2 ct fixed bin, /* number of active table formats */
18 7 2 ndx fixed bin, /* index of current active format */
18 8 2 fmt (20), /* the format */
18 9 3 name char (32) var, /* name of the format */
18 10 3 ptr ptr; /* pointer to the format data */
18 11
18 12 dcl tblfmtndx fixed bin; /* current table format index */
18 13 dcl tblfmtptr ptr; /* -> current table format */
18 14 /* table format data */
18 15 dcl 1 tblfmt aligned based (tblfmtptr),
18 16 2 context bit (1), /* =1 if context mode */
18 17 2 ccol fixed bin, /* the current table column */
18 18 2 maxdepth fixed bin (31), /* max depth in table */
18 19 2 ncols fixed bin, /* number of columns in this format */
18 20 2 colptr (0:20) ptr; /* pointers to the columns */
18 21
18 22 dcl tblcolndx fixed bin; /* current table column index */
18 23 /* -> current table column */
18 24 dcl tblcolptr ptr init (null ());
18 25 /* table column data */
18 26 dcl 1 tblcol aligned based (tblcolptr),
18 27 2 align, /* column alignment mode */
18 28 3 posn fixed bin (31),
18 29 3 str char (32) var,
18 30 2 depth fixed bin (31), /* current depth for column */
18 31 2 gutter fixed bin (31),
18 32 2 leader char (16) var, /* leadering string */
18 33 2 margin,
18 34 3 left fixed bin (31),
18 35 3 right fixed bin (31),
18 36 2 valign bit (4) unal, /* vertical alignment flags */
18 37 2 MBZ bit (29) unal,
18 38 2 parms /* parms for columns */
18 39 aligned like default_parms;
18 40
18 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0));
18 42 /* -> previous table column */
18 43 dcl prvtblcolptr ptr init (null ());
18 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr);
18 45
18 46 dcl vtop bit (4) static options (constant) init ("1000"b);
18 47 dcl vcen bit (4) static options (constant) init ("0100"b);
18 48 dcl vbot bit (4) static options (constant) init ("0010"b);
18 49 dcl vjust bit (4) static options (constant) init ("0001"b);
18 50
18 51 /* END INCLUDE FILE comp_table.incl.pl1 */
813
19 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose
19 2*
19 3* This storage is converted from external (as declared) to internal by the
19 4* binder and contains items that must be accessible to both the bound and
19 5* unbound program. */
19 6
19 7 /* Written: ??/??/7? - EJW
19 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr
19 9* and removed the codes array; version 6.
19 10**/
19 11
19 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */
19 13
19 14 dcl 1 compstat$compconst
19 15 aligned like const ext static;
19 16
19 17 dcl const_version fixed bin (35) static options (constant) init (6);
19 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */
19 19 fixed bin static options (constant) init (80);
19 20 dcl MAX_TREE_AREAS /* number of tree areas */
19 21 fixed bin static options (constant) init (20);
19 22
19 23 dcl 1 const aligned based (compstat$compconst.ptr),
19 24 2 ptr ptr, /* self pointer - MUST BE FIRST */
19 25 2 version fixed bin (35), /* structure version */
19 26 2 art_symbols /* string of art symbols */
19 27 char (28) aligned,
19 28 2 builtin_count /* count of builtin variables */
19 29 fixed bin,
19 30 2 comp_dir char (200), /* dir in which compose lives */
19 31 2 comp_version
19 32 char (8) var, /* compose version id */
19 33 2 date_value char (8) var, /* current date */
19 34 2 dsm_name char (32), /* device support module name */
19 35 2 dvt_name char (32), /* device table name */
19 36 2 max_seg_chars
19 37 fixed bin (35), /* char count in a max seg */
19 38 2 null_str char (1) var, /* an empty string */
19 39 2 ptrs,
19 40 ( 3 call_stk_ptr, /* -> insert call stack */
19 41 3 colhdrptr, /* empty column header structure */
19 42 3 ctl_ptr, /* input line structure */
19 43 3 current_parms_ptr, /* current formatting parms */
19 44 3 default_parms_ptr, /* default initial text parms */
19 45 3 devptr, /* -> comp_dvt structure */
19 46 3 dvidptr, /* -> comp_dvid structure */
19 47 3 errblk_ptr, /* error message block pointer */
19 48 3 footnote_parms_ptr, /* footnote formatting parms */
19 49 3 fnttbldata_ptr, /* -> font table data */
19 50 3 global_area_ptr, /* per invocation storage */
19 51 3 init_page_parms_ptr, /* default initial page parms */
19 52 3 insert_data_ptr, /* insert file data block */
19 53 3 local_area_ptr, /* per file storage */
19 54 3 loctbl_ptr, /* for font copying */
19 55 3 option_ptr, /* program options block */
19 56 3 outproc_ptr, /* device writer for cleanup */
19 57 3 page_ptr, /* active page structure */
19 58 3 page_header_ptr, /* empty page header structure */
19 59 3 page_parms_ptr, /* page formatting parameter block */
19 60 3 save_shared_ptr, /* saved shared data */
19 61 3 shared_ptr, /* shared data structure */
19 62 3 text_entry_ptr, /* empty text entry structure */
19 63 3 text_header_ptr, /* empty text header structure */
19 64 3 text_parms_ptr, /* main body formatting parms */
19 65 3 tree_ptr /* symbol tree structure */
19 66 ) ptr,
19 67 2 time_value char (6) var; /* time at start */
19 68
19 69 /* Other external */
19 70 dcl (
19 71 ioa_,
19 72 ioa_$nnl
19 73 ) entry options (variable);
19 74 dcl iox_$error_output
19 75 ptr ext static, /* iocb pointer for error_output */
19 76 iox_$user_input
19 77 ptr ext static, /* iocb pointer for user_input */
19 78 iox_$user_output
19 79 ptr ext static; /* iocb pointer for user_output */
19 80 dcl sys_info$max_seg_size
19 81 fixed bin (18) ext static;
19 82
19 83 /* END INCLUDE FILE compstat.incl.pl1 */
814
815
816 end comp_;
SOURCE FILES USED IN THIS COMPILATION.
LINE NUMBER DATE MODIFIED NAME PATHNAME
0 04/23/85 0908.5 comp_.pl1 >spec>online>comp>comp_.pl1
796 1 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1
797 2 03/01/85 1411.8 comp_ctl_index.incl.pl1 >ldd>include>comp_ctl_index.incl.pl1
798 3 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1
799 4 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1
800 5 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1
801 6 03/01/85 1411.9 comp_dvid.incl.pl1 >ldd>include>comp_dvid.incl.pl1
802 7 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1
803 8 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1
804 9 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1
805 10 03/01/85 1412.0 comp_footnotes.incl.pl1 >ldd>include>comp_footnotes.incl.pl1
806 11 03/01/85 1412.0 comp_htab.incl.pl1 >ldd>include>comp_htab.incl.pl1
807 12 03/01/85 1412.0 comp_insert.incl.pl1 >ldd>include>comp_insert.incl.pl1
808 13 04/23/85 0912.3 comp_metacodes.incl.pl1 >spec>online>comp>comp_metacodes.incl.pl1
809 14 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1
810 15 03/01/85 1412.0 comp_output.incl.pl1 >ldd>include>comp_output.incl.pl1
811 16 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1
812 17 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1
813 18 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1
814 19 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1
NAMES DECLARED IN THIS COMPILATION.
IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES
(* indicates a set context)
NAMES DECLARED BY DECLARE STATEMENT.
CBARS 000027 constant bit(1) initial unaligned dcl 26 set ref 180*
DC1 constant char(1) initial unaligned dcl 13-6 ref 69
DCxx_p 000322 automatic pointer dcl 5-8 set ref 72* 746 767
DVctl 2(01) based bit(1) level 3 packed unaligned dcl 3-157 set ref 107* 471
496
EMPTY constant bit(1) initial unaligned dcl 33 ref 336
EN_width 6 based fixed bin(31,0) level 2 dcl 17-7 ref 727 736 782
EPILOGUE 000030 constant fixed bin(17,0) initial dcl 35 set ref 674*
TEXT 000027 constant bit(1) initial unaligned dcl 48 set ref 180*
TRIM constant bit(1) initial unaligned dcl 51 ref 180
addrel builtin function dcl 57 ref 75
align based structure level 2 dcl 18-26
art 1004(06) based bit(1) level 4 in structure "text" packed unaligned
dcl 3-49 in procedure "comp_" set ref 184 415 420*
456 462* 521 626*
art 0(06) based bit(1) level 3 in structure "current_parms" packed
unaligned dcl 3-209 in procedure "comp_" set ref
420* 462*
art 116 based bit(1) level 4 in structure "text" packed unaligned
dcl 3-49 in procedure "comp_" set ref 415* 415 416
438* 456* 456 458 503* 516 715*
art_count 5 based fixed bin(17,0) level 3 packed unaligned dcl 3-49 set ref 419* 419
420 461* 461 462
ascii_width 000100 automatic fixed bin(17,0) dcl 22 set ref 113* 127* 127 129* 129 136 142* 142
avg 4 000122 automatic fixed bin(31,0) level 2 dcl 45 set ref 442 506 719 758 761
balftn 2 based structure level 2 in structure "colhdr" dcl 4-21 in procedure
"comp_"
balftn 320 based structure level 3 in structure "col0" dcl 4-37 in procedure
"comp_"
balftn 320 based structure level 3 in structure "col" dcl 4-5 in procedure
"comp_"
bef_ctl_index 000003 constant fixed bin(17,0) initial dcl 2-9 set ref 607*
bep_ctl_index 000040 constant fixed bin(17,0) initial dcl 2-9 set ref 621*
bin builtin function dcl 57 ref 222 232
blank_count 000101 automatic fixed bin(17,0) initial dcl 23 set ref 23* 136* 138 141 142
blkptr 3752 based pointer level 3 in structure "shared" dcl 17-7 in procedure
"comp_" set ref 163 167 170 170 172 172 176 176
180* 184 261 264 264 268 280 280 303 303 311 314
315 329 336* 340 340 340 340 340 340 347 347 347
351 351 351 352 352 352 352 355 355 355 357 360
360 361 361 367 367 373 373 373 389 392 392 394
394 400 403 404 408* 408 408 408 408 415 415 415
416 419 419 420 420 438 438 438 438 442 442 444
444 444 444 447 447 447 448 456 456 456 458 461
461 462 462 466 466 466 466 471 481 481 493 493
493 496 499 503 503 503 503 506 506 508 508 511
512 513 513 514 516* 516 516 516 516 516 519 521
521 521 521 528 531 534 534 535 535 537 537 539
539 540 581 584 590 598 599* 599 610 621 626 626
627 627 627 629 629 629 629 632 632 632 634 637
637 638 638 649* 654* 666 700 700 715 715 715 715
755 755
blkptr 6 based pointer level 3 in structure "text" dcl 3-49 in procedure
"comp_" ref 599
blktype 2 based char(2) level 2 dcl 3-49 ref 340 340 340 340 340 340 590 621
block_break 000044 constant fixed bin(17,0) initial dcl 1-9 set ref 153 184* 641* 651*
break_type 000102 automatic fixed bin(17,0) dcl 25 set ref 153* 155* 182*
bug_mode 4113 based bit(1) level 3 packed unaligned dcl 17-7 set ref 65 548
560* 564 692
call_box based structure level 1 dcl 12-18
call_box0 based structure level 1 dcl 12-19
call_box_ptr 000324 automatic pointer dcl 12-17 set ref 73* 77 78 80 93
call_stack based structure level 1 dcl 12-13
call_stk_ptr 126 based pointer level 3 dcl 19-23 ref 65 73 73 78 80 92 92 548 553
cbar 1 based structure level 3 in structure "current_parms" dcl 3-209
in procedure "comp_"
cbar 1005 based structure level 4 in structure "text" dcl 3-49 in procedure
"comp_" set ref 513
cbar 117 based structure level 4 in structure "text" dcl 3-49 in procedure
"comp_" set ref 513*
ccol 1 based fixed bin(17,0) level 2 dcl 18-15 set ref 151 232 232 245 255 299
307*
char_index based fixed bin(9,0) array unsigned unaligned dcl 28 ref 127 127 129
char_index_ptr 000104 automatic pointer dcl 31 set ref 75* 127 127 129
chars 1 based structure level 2 in structure "shared" dcl 17-7 in procedure
"comp_"
chars 1 based varying char(32) level 2 in structure "htab" dcl 11-3 in procedure
"comp_" ref 381 707 724
check_opt 1(23) based bit(1) level 2 packed unaligned dcl 14-5 ref 669
col based structure level 1 dcl 4-5
col0 based structure level 1 dcl 4-37
col_index 21 based fixed bin(17,0) level 3 dcl 16-11 set ref 333 336*
colhdr based structure level 1 dcl 4-21
colno 12 based fixed bin(17,0) level 3 packed unaligned dcl 3-49 ref 373 521
colptr 4 based pointer array level 2 dcl 18-15 ref 152 251 251 256 308 319
column_ptr 42 based pointer array level 2 dcl 16-11 ref 666
comp_abort 000302 stack reference condition dcl 60 ref 686
comp_block_ctls_ 000012 constant entry external dcl 8-9 ref 607 621
comp_break_ 000014 constant entry external dcl 8-11 ref 182 184 280 303 372 373 400
521 588 641 651 666
comp_ctls_ 000016 constant entry external dcl 8-14 ref 286 663
comp_dvt based structure level 1 dcl 7-19
comp_fill_ 000020 constant entry external dcl 8-24 ref 485
comp_format_ctls_ 000022 constant entry external dcl 8-26 ref 540
comp_head_page_ 000024 constant entry external dcl 8-33 ref 333
comp_hft_ctls_$title 000026 constant entry external dcl 8-36 ref 408
comp_measure_ 000030 constant entry external dcl 8-48 ref 438 503 715 755
comp_read_$line 000032 constant entry external dcl 8-57 ref 92
comp_report_ 000034 constant entry external dcl 8-59 ref 226 684
comp_report_$ctlstr 000036 constant entry external dcl 8-61 ref 570 593
comp_space_ 000040 constant entry external dcl 8-66 ref 180 649
comp_tbl_ctls_ 000042 constant entry external dcl 8-68 ref 232 618
comp_title_block_ 000044 constant entry external dcl 8-69 ref 176 347 466
comp_util_$add_text 000046 constant entry external dcl 8-75 ref 516
comp_util_$getblk 000050 constant entry external dcl 8-82 ref 336
comp_util_$pictures 000052 constant entry external dcl 8-88 ref 654
compout_ptr 3756 based pointer level 3 dcl 17-7 ref 679
compstat$compconst 000054 external static structure level 1 dcl 19-14
const based structure level 1 dcl 19-23
context based bit(1) level 2 dcl 18-15 set ref 211 239* 288 295
copy builtin function dcl 57 ref 138 772
count 32 based fixed bin(17,0) array level 3 in structure "htab" dcl 11-3
in procedure "comp_" ref 727 732
count 3644 based fixed bin(17,0) level 3 in structure "shared" dcl 17-7 in procedure
"comp_" ref 654
count 12(18) based fixed bin(17,0) level 3 in structure "hfcblk" packed unaligned
dcl 3-250 in procedure "comp_" ref 466
ct 375 based fixed bin(17,0) level 4 dcl 4-37 ref 666
ctl based structure level 1 dcl 3-157
ctl_line based varying char(1020) dcl 3-158 set ref 92* 110 116 138* 138 138 160 191
196 196 196 196 196 196 204 204 217 222 226* 232
232 232 241 241* 241 243* 272 277 288 288 364 367
385 397 403 432 438 438 476 481 503* 511 577* 593*
606* 617* 662* 704 707 715 715 724 746* 746 746
767* 767 767 772* 772 772 785* 785 785
ctl_ptr 132 based pointer level 3 dcl 19-23 ref 75 92 93 107 108 108 110 116
138 138 138 160 191 191 193 196 196 196 196 196
196 196 196 196 196 196 196 204 204 217 220 220
222 222 226 226 226 232 232 232 232 232 232 241
241 241 243 257 257 264 264 268 272 277 288 288
315 364 367 385 397 403 404 432 438 438 438 438
471 471 476 476 481 496 503 503 503 511 512 535
537 564 577 593 593 593 606 616 617 662 684 684
704 707 715 715 715 715 724 746 746 746 755 755
767 767 767 772 772 772 785 785 785
cur 126 based structure level 3 in structure "ftnhdr" dcl 10-10 in procedure
"comp_"
cur 10 based structure level 2 in structure "ctl" dcl 3-157 in procedure
"comp_"
cur 126 based structure level 3 in structure "text" dcl 3-49 in procedure
"comp_"
cur 10 based structure level 2 in structure "txtlin" dcl 3-161 in procedure
"comp_"
cur 10 based structure level 2 in structure "text_entry" dcl 3-68
in procedure "comp_"
cur 126 based structure level 3 in structure "hfcblk" dcl 3-250 in procedure
"comp_"
current_parms based structure level 1 dcl 3-209 set ref 309* 314 336 336
current_parms_ptr 134 based pointer level 3 dcl 19-23 set ref 180 309 314 315 336 336
420 462 598* 646 649
db_file 116 based varying char(200) level 2 dcl 14-5 ref 692 692
db_line_end 202 based fixed bin(35,0) level 2 dcl 14-5 ref 560
dclong_val based structure level 1 packed unaligned dcl 5-54
default_parms based structure level 1 dcl 3-213
del 1(01) based bit(1) level 4 in structure "current_parms" packed
unaligned dcl 3-209 in procedure "comp_" set ref
646
del 1005(01) based bit(1) level 5 in structure "text" packed unaligned
dcl 3-49 in procedure "comp_" set ref 514*
depth 12 based fixed bin(31,0) level 2 in structure "tblcol" dcl 18-26 in procedure
"comp_" set ref 251* 319*
depth 12 based fixed bin(31,0) level 2 in structure "tblcol0" dcl 18-41
in procedure "comp_" ref 251
devptr 140 based pointer level 3 dcl 19-23 ref 674
divide builtin function dcl 57 ref 758
e 20 based structure array level 3 dcl 17-7
end_input 4113(02) based bit(1) level 3 packed unaligned dcl 17-7 set ref 82 83* 86
95 556*
end_output 4113(03) based bit(1) level 3 in structure "shared" packed unaligned
dcl 17-7 in procedure "comp_" set ref 89 377 486
525 578*
end_output 000310 stack reference condition dcl 60 in procedure "comp_" ref 84
endinput 000106 automatic bit(1) unaligned dcl 34 set ref 82* 556
entry 46 based structure array level 4 dcl 18-26 ref 257 264
eqn_line_count 13 based fixed bin(17,0) level 3 packed unaligned dcl 3-49 set ref 170* 170
172 392* 392 394
ercd 000107 automatic fixed bin(35,0) dcl 36 set ref 679* 681 684*
file based structure level 2 dcl 12-32
fileheader_ptr 000326 automatic pointer initial dcl 15-21 set ref 15-21*
fill 57 based varying char(32) array level 3 dcl 11-3 ref 742 755 772 776
fill_count 000110 automatic fixed bin(17,0) dcl 37 set ref 758* 761 772 776
fill_mode 1006 based bit(1) level 4 packed unaligned dcl 3-49 set ref 367 481
fin_ctl_index 000002 constant fixed bin(17,0) initial dcl 2-9 set ref 540*
fmt 2 based structure array level 2 dcl 18-5
fntstk 44 based structure level 3 dcl 18-26
fntstk_entry based structure level 1 dcl 9-6
font 216 based structure level 3 in structure "text" dcl 3-49 in procedure
"comp_" set ref 264* 438 438 503 503 715 715 755
755
font 16 based structure level 3 in structure "ctl" dcl 3-157 in procedure
"comp_" set ref 108 257* 264*
font 134 based structure level 4 in structure "text" dcl 3-49 in procedure
"comp_" set ref 264*
font 100 based structure level 2 in structure "ctl" dcl 3-157 in procedure
"comp_" set ref 108* 257* 264*
footnote 1006(01) based bit(1) level 4 packed unaligned dcl 3-49 set ref 357 634
format_break 000034 constant fixed bin(17,0) initial dcl 1-9 set ref 155 280* 303* 372* 400* 588*
ftn 375 based structure level 3 dcl 4-37
ftn_mode 4113(05) based bit(1) level 3 packed unaligned dcl 17-7 ref 603
ftn_reset 12 based varying char(8) level 2 dcl 17-7 ref 657
ftnblk_data based structure level 1 dcl 10-5
ftnblk_data_ptr 3772 based pointer level 3 dcl 17-7 ref 657 657
galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 14-5 ref 333 578
hanging 120(06) based bit(1) level 4 in structure "text" packed unaligned
dcl 3-49 in procedure "comp_" set ref 499 535*
hanging 2(06) based bit(1) level 3 in structure "ctl" packed unaligned
dcl 3-157 in procedure "comp_" set ref 535*
hdr 316 based structure level 2 in structure "col0" dcl 4-37 in procedure
"comp_"
hdr 4 based structure level 2 in structure "hfcblk" dcl 3-250 in procedure
"comp_"
hdr 15 based structure level 2 in structure "page" dcl 16-11 in procedure
"comp_"
hdr 4 based structure level 2 in structure "text" dcl 3-49 in procedure
"comp_"
hdrptr 1014 based pointer level 3 dcl 3-49 set ref 176 176* 347 347* 466 466
466*
head_used 000111 automatic fixed bin(31,0) dcl 38 set ref 333*
headed 15(03) based bit(1) level 4 packed unaligned dcl 16-11 ref 333
hfcblk based structure level 1 dcl 3-250
highndx based fixed bin(35,0) level 2 dcl 10-5 ref 657
htab based structure level 1 dcl 11-3
htab_mode 1006(03) based bit(1) level 4 packed unaligned dcl 3-49 set ref 481 493
htab_ptr 4002 based pointer level 3 dcl 17-7 ref 381 381 707 724 725 727 727 732
736 742 755 772 776 782
htab_shift based char(7) unaligned dcl 39 ref 746 767
htab_space 000112 automatic structure level 1 packed unaligned dcl 41 set ref 72
i 000115 automatic fixed bin(17,0) dcl 42 set ref 114* 116 126 126 132 134 141* 248*
251* 318* 319* 702* 707 715 715 720 722 781* 791*
if_nest 17 based structure level 2 dcl 17-7
ii 000117 automatic fixed bin(17,0) dcl 43 set ref 132* 134* 138 138 141 720* 722* 724
746 746 749* 749 767 767 770* 770 772 772 776* 776
781 785 785 791
image_ptr 40 based pointer level 2 dcl 16-11 ref 669 672
indctl 3315 based structure level 2 dcl 17-7
indent 1022 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure
"comp_" set ref 352 629
indent 1016 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure
"comp_" set ref 351 444 627 700
index builtin function dcl 57 in procedure "comp_" ref 110 116 196 196 196
196 217 288 367 397 432 724
index 1 based fixed bin(17,0) level 2 in structure "call_stack" dcl 12-13
in procedure "comp_" set ref 65* 73 78 92 548* 553
index 44 based fixed bin(17,0) level 4 in structure "tblcol" dcl 18-26 in procedure
"comp_" ref 257 264
index 160 based fixed bin(21,0) level 2 in structure "ctl" dcl 3-157 in procedure
"comp_" set ref 191* 193* 196 196 196 196 196 196
220* 220 222 232 232 232 616*
index 1 based fixed bin(17,0) level 2 in structure "insert_data" dcl 12-5
in procedure "comp_" set ref 65* 548*
info 277 based structure level 3 in structure "text" dcl 3-49 in procedure
"comp_" set ref 404* 512*
info 161 based structure level 2 in structure "ctl" dcl 3-157 in procedure
"comp_" set ref 93* 226 226 404 438 438 503 503
512 593 593 684 684 715 715 755 755
info 70 based structure level 2 in structure "call_box0" dcl 12-19
in procedure "comp_"
info 277 based structure level 3 in structure "hfcblk" dcl 3-250 in procedure
"comp_"
info 70 based structure level 2 in structure "call_box" dcl 12-18
in procedure "comp_" set ref 93
info 161 based structure level 2 in structure "txtlin" dcl 3-161 in procedure
"comp_"
info 21 based structure array level 4 in structure "shared" dcl 17-7
in procedure "comp_" set ref 570 570
info 277 based structure level 3 in structure "ftnhdr" dcl 10-10 in procedure
"comp_"
info 161 based structure level 2 in structure "text_entry" dcl 3-68
in procedure "comp_"
input 116 based structure level 2 dcl 3-49 set ref 408 408 516 516
input_filename 3372 based varying char(200) level 2 dcl 17-7 set ref 65* 548* 692 692*
input_line 375 based varying char(1020) level 2 dcl 3-49 set ref 280 303 367 400 403* 408*
511* 519* 531*
insert based structure level 1 dcl 12-32
insert_data based structure level 1 dcl 12-5
insert_data_ptr 156 based pointer level 3 dcl 19-23 ref 65 548
inserting_hfc 4113(07) based bit(1) level 3 packed unaligned dcl 17-7 ref 176 347 466
ioa_ 000056 constant entry external dcl 19-70 ref 65 548 564 692
iox_$put_chars 000010 constant entry external dcl 63 ref 679
j 000116 automatic fixed bin(17,0) dcl 42 set ref 114* 115 116* 119 123 126 132 702*
704 707* 708 711 715 715 720
jj 000120 automatic fixed bin(17,0) dcl 43 set ref 724* 725* 725 727 727 732 736 742 755
772 776 782
just constant bit(6) initial unaligned dcl 3-148 ref 493
k 000121 automatic fixed bin(17,0) dcl 43 set ref 126* 127 127 129* 727* 727* 732 736
742 755 772 776 782
keep 1006(04) based bit(1) level 4 packed unaligned dcl 3-49 set ref 373 521
626*
left 12 based structure level 2 in structure "text_parms" dcl 3-206
in procedure "comp_"
left 12 based structure level 2 in structure "default_parms" dcl 3-213
in procedure "comp_"
left 12 based structure level 2 in structure "current_parms" dcl 3-209
in procedure "comp_"
left 1016 based structure level 3 in structure "ftnhdr" dcl 10-10 in procedure
"comp_"
left 36 based structure level 3 in structure "tblcol" dcl 18-26 in procedure
"comp_"
left 21 based fixed bin(31,0) level 3 in structure "tblcol" dcl 18-26 in procedure
"comp_" ref 360 361 637 638
left 12 based structure level 2 in structure "footnote_parms" dcl 10-12
in procedure "comp_"
left 1016 based structure level 3 in structure "hfcblk" dcl 3-250 in procedure
"comp_"
left 1016 based structure level 3 in structure "text" dcl 3-49 in procedure
"comp_"
left 36 based structure level 3 in structure "tblcol0" dcl 18-41
in procedure "comp_"
left 36 based structure level 3 in structure "prvtblcol" dcl 18-44
in procedure "comp_"
leng 0(18) 000112 automatic fixed bin(9,0) level 2 in structure "htab_space" packed unsigned
unaligned dcl 41 in procedure "comp_" set ref 71*
leng 1 based fixed bin(24,0) level 2 in structure "page_record" dcl 15-64
in procedure "comp_" set ref 673* 676 679 679 679*
length builtin function dcl 57 ref 160 241 367 400 481 704 776
line 24 based varying char(256) array level 4 dcl 17-7 set ref 570*
line_area_ptr 000316 automatic pointer initial dcl 3-25 set ref 3-25*
lineno 71 based fixed bin(17,0) level 3 in structure "call_box0" dcl 12-19
in procedure "comp_" ref 80
lineno 162 based fixed bin(17,0) level 3 in structure "ctl" dcl 3-157 in procedure
"comp_" set ref 564*
lineno 71 based fixed bin(17,0) level 3 in structure "call_box" dcl 12-18
in procedure "comp_" set ref 77*
lineno0 72 based fixed bin(17,0) level 3 dcl 12-18 set ref 78* 80*
linespace 1020 based fixed bin(31,0) level 3 in structure "text" dcl 3-49 in procedure
"comp_" set ref 408* 471 508 537
linespace 164 based fixed bin(31,0) level 2 in structure "ctl" dcl 3-157 in procedure
"comp_" set ref 471* 476* 537*
linespace 14 based fixed bin(31,0) level 2 in structure "current_parms" dcl 3-209
in procedure "comp_" set ref 180* 649*
linespace 302 based fixed bin(31,0) level 3 in structure "text" dcl 3-49 in procedure
"comp_" set ref 496* 506* 508* 537*
lit_count 3456 based fixed bin(35,0) level 2 dcl 17-7 set ref 101 103* 103 204
literal_mode 4113(08) based bit(1) level 3 packed unaligned dcl 17-7 set ref 98 101*
204 204
lmarg 303 based fixed bin(31,0) level 3 dcl 3-49 set ref 351* 355 360* 360 444* 444
447 627* 632 637* 637
margin 21 based structure level 2 dcl 18-26
mark 000112 automatic char(1) level 2 packed unaligned dcl 41 set ref 69*
maxdepth 2 based fixed bin(31,0) level 2 dcl 18-15 ref 319
meas1 000122 automatic structure level 1 dcl 45 set ref 437* 438 438 502* 503 503
714* 715 715 754* 755 755
meas2 000210 automatic structure level 1 dcl 46 set ref 438 438 503 503 715 715 755
755
measure 1021 based fixed bin(31,0) level 3 dcl 3-49 set ref 352 629
mod builtin function dcl 57 ref 136
ncols 3 based fixed bin(17,0) level 2 dcl 18-15 ref 222 248 318
ndx 17 based fixed bin(17,0) level 3 in structure "shared" dcl 17-7 in procedure
"comp_" set ref 567 570 570 570 574*
ndx 1 based fixed bin(17,0) level 2 in structure "tbldata" dcl 18-5 in procedure
"comp_" ref 150 288
ndx 3315 based fixed bin(17,0) level 3 in structure "shared" dcl 17-7 in procedure
"comp_" ref 191
need_break 000030 constant fixed bin(17,0) initial dcl 1-9 set ref 373* 521*
net 306 based fixed bin(31,0) level 3 dcl 3-49 set ref 355* 447* 632*
nofill_count 104 based fixed bin(17,0) level 3 dcl 3-49 set ref 539* 539 540
null builtin function dcl 57 ref 163 176 261 280 303 311 329 347 381 466
528 581 610 657 666 669 3-25 3-35 15-21 15-45
15-62 18-24 18-43
oflo 120(09) based bit(1) level 4 packed unaligned dcl 3-49 set ref 373 516*
521
option based structure level 1 dcl 14-5
option_ptr 164 based pointer level 3 dcl 19-23 ref 333 560 578 669 692 692
outproc 10 based entry variable level 2 dcl 7-19 ref 674
page based structure level 1 dcl 16-11
page_break 000043 constant fixed bin(17,0) initial dcl 1-9 set ref 666*
page_header based structure level 1 dcl 16-27
page_image based structure level 1 dcl 16-56
page_parms based structure level 1 dcl 16-86
page_ptr 170 based pointer level 3 dcl 19-23 ref 333 333 336 666 666 669 672
page_record 11 based bit(36) level 2 in structure "record" dcl 15-46 in procedure
"comp_" set ref 672
page_record based structure level 1 dcl 15-64 in procedure "comp_"
page_record_ptr 000332 automatic pointer initial dcl 15-62 set ref 672* 673 676 679 679 679
15-62*
parms 1004 based structure level 2 in structure "text" dcl 3-49 in procedure
"comp_" set ref 314*
parms 24 based structure level 2 in structure "tblcol" dcl 18-26 in procedure
"comp_" ref 309
parms_ptr 106 based pointer level 3 dcl 3-49 ref 598
pass_counter 3643 based fixed bin(17,0) level 2 dcl 17-7 set ref 65* 669
pats 12 based fixed bin(8,0) array level 2 packed unaligned dcl 11-3 ref 725
pattern 22 based structure array level 2 dcl 11-3
picture 3644 based structure level 2 dcl 17-7
posn based fixed bin(31,0) level 3 dcl 18-26 ref 429
prvtblcolptr 000342 automatic pointer initial dcl 18-43 set ref 18-43*
ptr 172 based pointer level 2 in structure "ctl" dcl 3-157 in procedure
"comp_" ref 75 92 110 116 138 138 138 160 191 196
196 196 196 196 196 204 204 217 222 226 232 232
232 241 241 241 243 272 277 288 288 364 367 385
397 403 432 438 438 476 481 503 511 577 593 606
617 662 704 707 715 715 724 746 746 746 767 767
767 772 772 772 785 785 785
ptr 000054 external static pointer level 2 in structure "compstat$compconst" dcl 19-14
in procedure "comp_" ref 65 65 65 65 65 73 73 75
78 80 82 83 86 89 92 92 92 93 95 98 101 101 103
103 107 108 108 110 116 138 138 138 147 150 150
160 163 167 170 170 172 172 176 176 176 180 180
182 184 191 191 191 191 193 196 196 196 196 196
196 196 196 196 196 196 196 204 204 204 204 204
211 217 220 220 222 222 226 226 226 232 232 232
232 232 232 241 241 241 243 257 257 261 264 264
264 264 268 268 272 277 280 280 288 288 288 288
288 295 303 303 309 311 314 314 315 315 315 329
333 333 333 336 336 336 336 340 340 340 340 340
340 347 347 347 347 351 351 351 352 352 352 352
355 355 355 357 357 360 360 361 361 364 367 367
367 373 373 373 373 377 381 381 385 389 392 392
394 394 397 397 400 403 403 404 404 408 408 408
408 408 415 415 415 416 419 419 420 420 420 429
432 438 438 438 438 438 438 438 438 442 442 444
444 444 444 447 447 447 448 456 456 456 458 461
461 462 462 462 466 466 466 466 466 471 471 471
476 476 481 481 481 486 493 493 493 496 496 499
503 503 503 503 503 503 503 506 506 508 508 511
511 512 512 513 513 514 516 516 516 516 516 516
519 521 521 521 521 521 525 528 531 534 534 535
535 535 537 537 537 539 539 540 548 548 548 548
553 556 560 560 564 564 564 567 570 570 570 570
570 570 574 577 578 578 581 584 590 593 593 593
598 598 599 599 603 606 610 613 616 617 621 626
626 627 627 627 629 629 629 629 632 632 632 634
634 637 637 638 638 646 649 649 654 654 657 657
657 661 662 666 666 666 669 669 669 672 674 679
684 684 692 692 692 692 692 700 700 704 707 707
715 715 715 715 715 715 715 715 724 724 725 727
727 727 732 736 736 742 746 746 746 755 755 755
755 755 767 767 767 772 772 772 772 776 782 782
785 785 785
ptr 14 based pointer array level 3 in structure "tbldata" dcl 18-5
in procedure "comp_" ref 150 288
ptr 2 based pointer array level 2 in structure "call_stack" dcl 12-13
in procedure "comp_" set ref 73 80 92*
ptrs 126 based structure level 2 in structure "const" dcl 19-23 in procedure
"comp_"
ptrs 3742 based structure level 2 in structure "shared" dcl 17-7 in procedure
"comp_"
purge_ftns 4113(12) based bit(1) level 3 packed unaligned dcl 17-7 set ref 661*
quad 2(11) based bit(6) level 3 in structure "ctl" packed unaligned
dcl 3-157 in procedure "comp_" set ref 268* 315*
quad based bit(6) level 3 in structure "current_parms" packed
unaligned dcl 3-209 in procedure "comp_" set ref
315
quad 24 based bit(6) level 4 in structure "tblcol" packed unaligned
dcl 18-26 in procedure "comp_" ref 268
quad 120(11) based bit(6) level 4 in structure "text" packed unaligned
dcl 3-49 in procedure "comp_" set ref 268* 315*
438* 448* 493 493* 503* 516 715*
quadl constant bit(6) initial unaligned dcl 3-148 ref 448 493 516
record based structure level 1 dcl 15-46
record_ptr 000330 automatic pointer initial dcl 15-45 set ref 15-45*
right 1022 based structure level 3 dcl 3-49
rmarg 312 based fixed bin(31,0) level 3 dcl 3-49 set ref 352* 355 361* 361 447 629*
632 638* 638
search builtin function dcl 57 ref 707
shared based structure level 1 dcl 17-7
shared_ptr 200 based pointer level 3 dcl 19-23 ref 65 65 65 82 83 86 89 95 98 101
101 103 103 147 150 150 163 167 170 170 172 172
176 176 176 180 182 184 191 191 204 204 204 211
261 264 264 268 280 280 288 288 288 295 303 303
311 314 315 329 336 340 340 340 340 340 340 347
347 347 347 351 351 351 352 352 352 352 355 355
355 357 357 360 360 361 361 367 367 373 373 373
373 377 381 381 389 392 392 394 394 397 400 403
404 408 408 408 408 408 415 415 415 416 419 419
420 420 429 438 438 438 438 442 442 444 444 444
444 447 447 447 448 456 456 456 458 461 461 462
462 466 466 466 466 466 471 481 481 486 493 493
493 496 499 503 503 503 503 506 506 508 508 511
512 513 513 514 516 516 516 516 516 516 519 521
521 521 521 521 525 528 531 534 534 535 535 537
537 539 539 540 548 548 556 560 564 564 567 570
570 570 570 570 570 574 578 581 584 590 598 599
599 603 610 613 621 626 626 627 627 627 629 629
629 629 632 632 632 634 634 637 637 638 638 649
654 654 657 657 657 661 666 669 679 692 692 692
700 700 707 715 715 715 715 724 725 727 727 727
732 736 736 742 755 755 755 772 776 782 782
source_filename 4030 based varying char(200) level 2 dcl 17-7 set ref 564*
stk 3316 based bit(1) array level 3 packed unaligned dcl 17-7 ref 191
stop 33 based fixed bin(31,0) array level 3 dcl 11-3 ref 727 736 782
str 1 based varying char(32) level 3 dcl 18-26 ref 432
strndx 000276 automatic fixed bin(17,0) dcl 47 set ref 432* 434 438 438
substr builtin function dcl 57 ref 116 138 138 196 196 196 196 196 196 217
222 232 232 232 241 277 288 288 367 438 438 707
715 715 724 746 746 767 767 772 772 785 785
sws 15 based structure level 3 in structure "page" dcl 16-11 in procedure
"comp_"
sws 1004 based structure level 3 in structure "text" dcl 3-49 in procedure
"comp_"
sws based structure level 2 in structure "current_parms" dcl 3-209
in procedure "comp_"
sws based structure level 2 in structure "ctl" dcl 3-157 in procedure
"comp_"
sws 4113 based structure level 2 in structure "shared" dcl 17-7 in procedure
"comp_"
sws 116 based structure level 3 in structure "text" dcl 3-49 in procedure
"comp_"
sws 24 based structure level 3 in structure "tblcol" dcl 18-26 in procedure
"comp_"
table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 17-7 ref 147 182 211
288 295 357 373 429 521 613 634
tac_ctl_index 000001 constant fixed bin(17,0) initial dcl 2-9 set ref 232*
taf_ctl_index 000000 constant fixed bin(17,0) initial dcl 2-9 set ref 618*
tblcol based structure level 1 dcl 18-26
tblcol0 based structure level 1 dcl 18-41
tblcolndx 000336 automatic fixed bin(17,0) dcl 18-22 set ref 151* 152 153 245 248 255* 256 299*
300 307*
tblcolptr 000340 automatic pointer initial dcl 18-24 set ref 152* 256* 257 257 264 264
268 308* 309 360 361 429 432 637 638 18-24*
tbldata based structure level 1 dcl 18-5
tbldata_ptr 4020 based pointer level 3 dcl 17-7 ref 150 150 288 288
tblfmt based structure level 1 dcl 18-15
tblfmtptr 000334 automatic pointer dcl 18-13 set ref 150* 151 152 211 222 232 232 239
245 248 251 251 255 256 295 299 307 308 318 319
319
text based structure level 1 dcl 3-49 in procedure "comp_"
text 2 based char level 2 in structure "page_record" dcl 15-64
in procedure "comp_" set ref 679 679
text_added 000277 automatic bit(1) dcl 49 set ref 158* 286* 288 295 325
text_area_ptr 000320 automatic pointer initial dcl 3-35 set ref 3-35*
text_entry based structure level 1 dcl 3-68
text_flag 000300 automatic bit(1) unaligned dcl 50 set ref 340* 345* 475*
text_header based structure level 1 dcl 3-163
text_ptr 14 based pointer level 2 dcl 16-56 ref 672
title_mode 1006(06) based bit(1) level 4 packed unaligned dcl 3-49 set ref 167 172*
347 389 394* 466 584
ttl_delim 1(09) based char(1) level 3 packed unaligned dcl 17-7 ref 397
txtwidth 000301 automatic fixed bin(31,0) initial dcl 52 set ref 52* 700* 719* 719 727 736
782*
type 0(09) 000112 automatic char(1) level 2 packed unaligned dcl 41 set ref 70*
type_slx constant char(1) initial unaligned dcl 5-90 ref 70
und_prot 122(08) based bit(1) level 4 packed unaligned dcl 3-49 set ref 535*
undent 1017 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure
"comp_" set ref 351 442* 442 444 506 534* 627 700
undent 1023 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure
"comp_" set ref 352 534* 629
used 37 based fixed bin(31,0) level 3 dcl 16-11 ref 666
v1 0(27) 000112 automatic fixed bin(31,0) level 2 packed unaligned dcl 41 set ref 736* 739 758
761* 761 764
wait_signal 005113 constant char(3) initial unaligned dcl 5-39 ref 476
width 2 000122 automatic fixed bin(31,0) level 2 dcl 45 set ref 442 506 719 758 761
NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED.
ACK internal static char(1) initial unaligned dcl 13-6
BEL internal static char(1) initial unaligned dcl 13-6
BREAK internal static bit(1) initial unaligned dcl 24
BRS internal static char(1) initial unaligned dcl 13-6
BSP internal static char(1) initial unaligned dcl 13-6
CAN internal static char(1) initial unaligned dcl 13-6
CR internal static char(1) initial unaligned dcl 13-6
DC2 internal static char(1) initial unaligned dcl 13-6
DC3 internal static char(1) initial unaligned dcl 13-6
DC4 internal static char(1) initial unaligned dcl 13-6
DEL internal static char(1) initial unaligned dcl 13-6
DEVIT internal static char(1) initial unaligned dcl 13-6
DLE internal static char(1) initial unaligned dcl 13-6
EM internal static char(1) initial unaligned dcl 13-6
EM_ internal static char(1) initial unaligned dcl 13-6
EMdash internal static char(1) initial unaligned dcl 13-6
EN internal static char(1) initial unaligned dcl 13-6
ENQ internal static char(1) initial unaligned dcl 13-6
EN_ internal static char(1) initial unaligned dcl 13-6
ENd internal static char(1) initial unaligned dcl 13-6
EOT internal static char(1) initial unaligned dcl 13-6
ESC internal static char(1) initial unaligned dcl 13-6
ETB internal static char(1) initial unaligned dcl 13-6
ETX internal static char(1) initial unaligned dcl 13-6
FF internal static char(1) initial unaligned dcl 13-6
FS internal static char(1) initial unaligned dcl 13-6
GS internal static char(1) initial unaligned dcl 13-6
HAIR internal static char(1) initial unaligned dcl 13-6
HLF internal static char(1) initial unaligned dcl 13-6
HLR internal static char(1) initial unaligned dcl 13-6
HT internal static char(1) initial unaligned dcl 13-6
HUGE internal static char(1) initial unaligned dcl 13-6
LF internal static char(1) initial unaligned dcl 13-6
LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 3-24
MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 19-20
MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 19-18
MEDIUM internal static char(1) initial unaligned dcl 13-6
NAK internal static char(1) initial unaligned dcl 13-6
NL internal static char(1) initial unaligned dcl 13-6
NUL internal static char(1) initial unaligned dcl 13-6
PAD internal static char(1) initial unaligned dcl 13-6
PI internal static char(1) initial unaligned dcl 13-6
PS internal static char(1) initial unaligned dcl 13-6
RRS internal static char(1) initial unaligned dcl 13-6
RS internal static char(1) initial unaligned dcl 13-6
SI internal static char(1) initial unaligned dcl 13-6
SO internal static char(1) initial unaligned dcl 13-6
SOH internal static char(1) initial unaligned dcl 13-6
STROKE internal static char(1) initial unaligned dcl 13-6
STX internal static char(1) initial unaligned dcl 13-6
SUB internal static char(1) initial unaligned dcl 13-6
SYN internal static char(1) initial unaligned dcl 13-6
TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 3-34
TEXT_VERSION internal static fixed bin(17,0) initial dcl 3-47
THICK internal static char(1) initial unaligned dcl 13-6
THIN internal static char(1) initial unaligned dcl 13-6
US internal static char(1) initial unaligned dcl 13-6
VT internal static char(1) initial unaligned dcl 13-6
approx internal static char(1) initial unaligned dcl 13-6
be_ctl_index internal static fixed bin(17,0) initial dcl 2-9
before builtin function dcl 57
bel_ctl_index internal static fixed bin(17,0) initial dcl 2-9
bullet internal static char(1) initial unaligned dcl 13-6
col_space automatic fixed bin(31,0) dcl 32
column_break internal static fixed bin(17,0) initial dcl 1-9
comp_ 000000 constant entry external dcl 8-7
comp_art_ 000000 constant entry external dcl 8-8
comp_break_ctls_ 000000 constant entry external dcl 8-12
comp_dvid based structure level 1 dcl 6-17
comp_dvid_version internal static fixed bin(17,0) initial dcl 6-14
comp_eject_page_ 000000 constant entry external dcl 8-15
comp_expr_eval_ 000000 constant entry external dcl 8-17
comp_extr_str_ 000000 constant entry external dcl 8-21
comp_font_ 000000 constant entry external dcl 8-25
comp_get_file_$find 000000 constant entry external dcl 8-28
comp_get_file_$open 000000 constant entry external dcl 8-31
comp_hft_ctls_ 000000 constant entry external dcl 8-35
comp_init_$one 000000 constant entry external dcl 8-38
comp_init_$three 000000 constant entry external dcl 8-40
comp_init_$two 000000 constant entry external dcl 8-39
comp_insert_ctls_ 000000 constant entry external dcl 8-42
comp_make_page_ 000000 constant entry external dcl 8-44
comp_make_page_$cleanup 000000 constant entry external dcl 8-46
comp_read_$name 000000 constant entry external dcl 8-50
comp_read_$number 000000 constant entry external dcl 8-53
comp_report_$exact 000000 constant entry external dcl 8-64
comp_update_symbol_ 000000 constant entry external dcl 8-71
comp_use_ref_ 000000 constant entry external dcl 8-74
comp_util_$display 000000 constant entry external dcl 8-77
comp_util_$escape 000000 constant entry external dcl 8-80
comp_util_$num_display 000000 constant entry external dcl 8-84
comp_util_$pageno 000000 constant entry external dcl 8-86
comp_util_$pop 000000 constant entry external dcl 8-91
comp_util_$push 000000 constant entry external dcl 8-92
comp_util_$relblk 000000 constant entry external dcl 8-94
comp_util_$replace_text 000000 constant entry external dcl 8-96
comp_util_$search_tree 000000 constant entry external dcl 8-98
comp_util_$set_bin 000000 constant entry external dcl 8-100
comp_util_$set_net_page 000000 constant entry external dcl 8-104
comp_util_$translate 000000 constant entry external dcl 8-106
comp_write_block_ 000000 constant entry external dcl 8-108
comp_write_page_ 000000 constant entry external dcl 8-110
compose_severity_ external static fixed bin(35,0) dcl 8-5
const_version internal static fixed bin(35,0) initial dcl 19-17
cright internal static char(1) initial unaligned dcl 13-6
dagger internal static char(1) initial unaligned dcl 13-6
dbldag internal static char(1) initial unaligned dcl 13-6
dcctl based structure level 1 packed unaligned dcl 5-34
dcfs based structure level 1 packed unaligned dcl 5-80
dcfs_len internal static fixed bin(17,0) initial dcl 5-88
dclit based structure level 1 packed unaligned dcl 5-45
dclong1_len internal static fixed bin(17,0) initial dcl 5-62
dclong_len internal static fixed bin(17,0) initial dcl 5-62
dcshort1_len internal static fixed bin(17,0) initial dcl 5-75
dcshort_len internal static fixed bin(17,0) initial dcl 5-75
dcshort_val based structure level 1 packed unaligned dcl 5-67
dcxx based structure level 1 packed unaligned dcl 5-11
delmark internal static char(1) initial unaligned dcl 13-6
delta internal static char(1) initial unaligned dcl 13-6
dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 17-126
filedata_version_2 internal static fixed bin(17,0) initial dcl 15-14
filedata_version_3 internal static fixed bin(17,0) initial dcl 15-16
filedata_version_4 internal static fixed bin(17,0) initial dcl 15-18
fileheader based structure level 1 dcl 15-22
flag_value based bit(1) unaligned dcl 17-132
fntstk_eptr automatic pointer dcl 9-5
footer_break internal static fixed bin(17,0) initial dcl 1-9
footnote_break internal static fixed bin(17,0) initial dcl 1-9
footnote_parms based structure level 1 dcl 10-12
ftnhdr based structure level 1 dcl 10-10
hfcblk_ptr automatic pointer dcl 3-249
ifi_ctl_index internal static fixed bin(17,0) initial dcl 2-9
ift_ctl_index internal static fixed bin(17,0) initial dcl 2-9
infin internal static char(1) initial unaligned dcl 13-6
init_file_data internal static structure level 1 unaligned dcl 12-64
init_page_parms based structure level 1 dcl 16-108
insert_refs based structure level 1 dcl 12-21
ioa_$nnl 000000 constant entry external dcl 19-70
iox_$error_output external static pointer dcl 19-74
iox_$user_input external static pointer dcl 19-74
iox_$user_output external static pointer dcl 19-74
l_cleanup automatic fixed bin(17,0) dcl 15-43
l_comment automatic fixed bin(17,0) dcl 15-42
line_area based structure level 1 dcl 3-26
lquote internal static char(1) initial unaligned dcl 13-6
lslnt internal static char(1) initial unaligned dcl 13-6
max builtin function dcl 57
max_cols internal static fixed bin(17,0) initial dcl 16-7
max_image_lines internal static fixed bin(17,0) initial dcl 16-5
max_text_lines internal static fixed bin(17,0) initial dcl 17-128
min builtin function dcl 57
mode_string internal static char(16) initial unaligned dcl 17-129
modmark internal static char(1) initial unaligned dcl 13-6
multiply internal static char(1) initial unaligned dcl 13-6
nabla internal static char(1) initial unaligned dcl 13-6
not_eq internal static char(1) initial unaligned dcl 13-6
num_value based fixed bin(31,0) dcl 17-133
oct031 internal static char(1) initial unaligned dcl 13-6
option_version internal static fixed bin(35,0) initial dcl 14-3
overbar internal static char(1) initial unaligned dcl 13-6
page_image_version internal static fixed bin(35,0) initial dcl 16-53
page_version internal static fixed bin(17,0) initial dcl 16-9
perpen internal static char(1) initial unaligned dcl 13-6
pi internal static char(1) initial unaligned dcl 13-6
pl_mi internal static char(1) initial unaligned dcl 13-6
prll internal static char(1) initial unaligned dcl 13-6
prvtblcol based structure level 1 dcl 18-44
quadc internal static bit(6) initial unaligned dcl 3-148
quadi internal static bit(6) initial unaligned dcl 3-148
quado internal static bit(6) initial unaligned dcl 3-148
quadr internal static bit(6) initial unaligned dcl 3-148
refname_str based char unaligned dcl 12-27
refstr_len automatic fixed bin(17,0) dcl 12-29
refstr_ptr automatic pointer dcl 12-30
rquote internal static char(1) initial unaligned dcl 13-6
rtrim builtin function dcl 57
save_shared based structure level 1 dcl 17-124
shared_version internal static fixed bin(35,0) initial dcl 17-5
slash internal static char(1) initial unaligned dcl 13-6
square internal static char(1) initial unaligned dcl 13-6
string_area based fixed bin(17,0) array dcl 3-43
sup0 internal static char(1) initial unaligned dcl 13-6
sup1 internal static char(1) initial unaligned dcl 13-6
sup2 internal static char(1) initial unaligned dcl 13-6
sup3 internal static char(1) initial unaligned dcl 13-6
sup4 internal static char(1) initial unaligned dcl 13-6
sup5 internal static char(1) initial unaligned dcl 13-6
sup6 internal static char(1) initial unaligned dcl 13-6
sup7 internal static char(1) initial unaligned dcl 13-6
sup8 internal static char(1) initial unaligned dcl 13-6
sup9 internal static char(1) initial unaligned dcl 13-6
sys_info$max_seg_size external static fixed bin(18,0) dcl 19-80
tblfmtndx automatic fixed bin(17,0) dcl 18-12
tblkdata based structure level 1 dcl 3-5
text_area based structure level 1 dcl 3-36
text_parms based structure level 1 dcl 3-206
tfore internal static char(1) initial unaligned dcl 13-6
theta internal static char(1) initial unaligned dcl 13-6
tmark internal static char(1) initial unaligned dcl 13-6
txtlin based structure level 1 dcl 3-161
txtlinptr automatic pointer dcl 3-160
txtstr based varying char(1020) dcl 3-45
txtstrptr automatic pointer dcl 3-44
type_font internal static char(1) initial unaligned dcl 5-90
type_lit internal static char(1) initial unaligned dcl 5-90
type_slxly internal static char(1) initial unaligned dcl 5-90
type_sly internal static char(1) initial unaligned dcl 5-90
type_sx internal static char(1) initial unaligned dcl 5-90
type_sxy internal static char(1) initial unaligned dcl 5-90
type_sy internal static char(1) initial unaligned dcl 5-90
type_unstart internal static char(1) initial unaligned dcl 5-90
type_unstop internal static char(1) initial unaligned dcl 5-90
type_v0lx internal static char(1) initial unaligned dcl 5-90
type_v0lxly internal static char(1) initial unaligned dcl 5-90
type_v0ly internal static char(1) initial unaligned dcl 5-90
type_v0x internal static char(1) initial unaligned dcl 5-90
type_v0xy internal static char(1) initial unaligned dcl 5-90
type_v0y internal static char(1) initial unaligned dcl 5-90
type_vlx internal static char(1) initial unaligned dcl 5-90
type_vlxly internal static char(1) initial unaligned dcl 5-90
type_vly internal static char(1) initial unaligned dcl 5-90
type_vx internal static char(1) initial unaligned dcl 5-90
type_vxy internal static char(1) initial unaligned dcl 5-90
type_vy internal static char(1) initial unaligned dcl 5-90
type_wait internal static char(1) initial unaligned dcl 5-90
unstart_signal internal static char(3) initial unaligned dcl 5-39
unstop_signal internal static char(3) initial unaligned dcl 5-39
vbot internal static bit(4) initial unaligned dcl 18-48
vcen internal static bit(4) initial unaligned dcl 18-47
vjust internal static bit(4) initial unaligned dcl 18-49
vrule internal static char(1) initial unaligned dcl 13-6
vtop internal static bit(4) initial unaligned dcl 18-46
NAMES DECLARED BY EXPLICIT CONTEXT.
comp_ 000153 constant entry external dcl 17
do_htabs 004201 constant entry internal dcl 698 ref 381
end_input_ 003160 constant label dcl 548 ref 86 95
end_output_ 003231 constant label dcl 560 ref 84 89 525
null_line 000664 constant label dcl 163 ref 272 364 385
plain 002535 constant label dcl 456 ref 397 450
read 000315 constant label dcl 86 ref 187 229 546
return_ 004133 constant label dcl 692 ref 377 486 557
tbl_ 001161 constant label dcl 211 ref 288
text_ 001725 constant label dcl 325 ref 274
NAMES DECLARED BY CONTEXT OR IMPLICATION.
addr builtin function ref 72 226 226 336 336 408 408 438 438 438 438 438
438 438 438 503 503 503 503 503 503 503 503 516
516 570 570 593 593 672 679 679 684 684 715 715
715 715 715 715 715 715 755 755 755 755 755 755
755 755
unspec builtin function set ref 437 502* 714* 754*
verify builtin function ref 191
STORAGE REQUIREMENTS FOR THIS PROGRAM.
Object Text Link Symbol Defs Static
Start 0 0 5370 5450 5121 5400
Length 6310 5121 60 623 246 0
BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME
comp_ 984 external procedure is an external procedure.
on unit on line 84 64 on unit
do_htabs internal procedure shares stack frame of external procedure comp_.
STORAGE FOR AUTOMATIC VARIABLES.
STACK FRAME LOC IDENTIFIER BLOCK NAME
comp_ 000100 ascii_width comp_
000101 blank_count comp_
000102 break_type comp_
000104 char_index_ptr comp_
000106 endinput comp_
000107 ercd comp_
000110 fill_count comp_
000111 head_used comp_
000112 htab_space comp_
000115 i comp_
000116 j comp_
000117 ii comp_
000120 jj comp_
000121 k comp_
000122 meas1 comp_
000210 meas2 comp_
000276 strndx comp_
000277 text_added comp_
000300 text_flag comp_
000301 txtwidth comp_
000316 line_area_ptr comp_
000320 text_area_ptr comp_
000322 DCxx_p comp_
000324 call_box_ptr comp_
000326 fileheader_ptr comp_
000330 record_ptr comp_
000332 page_record_ptr comp_
000334 tblfmtptr comp_
000336 tblcolndx comp_
000340 tblcolptr comp_
000342 prvtblcolptr comp_
THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM.
r_ne_as alloc_cs cat_realloc_cs call_var call_ext_out_desc call_ext_out
return tra_ext mod_fx1 signal enable shorten_stack
ext_entry int_entry repeat set_cs_eis index_cs_eis search_eis
any_to_any_tr
THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM.
comp_block_ctls_ comp_break_ comp_ctls_ comp_fill_
comp_format_ctls_ comp_head_page_ comp_hft_ctls_$title comp_measure_
comp_read_$line comp_report_ comp_report_$ctlstr comp_space_
comp_tbl_ctls_ comp_title_block_ comp_util_$add_text comp_util_$getblk
comp_util_$pictures ioa_ iox_$put_chars
THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM.
compstat$compconst
LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC
17 000152 23 000160 52 000161 3 25 000162 3 35 000164 15 21 000165 15 45 000166
15 62 000167 18 24 000170 18 43 000171 65 000172 69 000233 70 000235 71 000237
72 000241 73 000243 75 000253 77 000257 78 000260 80 000264 82 000267
83 000274 84 000276 86 000315 89 000324 92 000327 93 000356 95 000370
98 000374 101 000377 103 000404 107 000412 108 000414 110 000417 113 000432
114 000433 115 000436 116 000440 119 000464 123 000465 126 000467 127 000477
129 000516 131 000522 132 000524 133 000530 134 000531 136 000533 138 000542
141 000620 142 000624 144 000626 147 000627 150 000636 151 000643 152 000645
153 000650 155 000655 158 000657 160 000661 163 000664 167 000674 170 000700
172 000705 176 000712 180 000727 182 000761 184 001003 187 001020 191 001021
193 001043 196 001045 204 001137 211 001161 217 001172 220 001205 222 001206
226 001231 229 001276 232 001277 239 001322 241 001324 243 001345 245 001346
248 001352 251 001363 253 001372 255 001374 256 001377 257 001402 261 001422
264 001432 268 001454 272 001467 274 001500 277 001501 280 001505 286 001530
288 001537 295 001575 299 001611 300 001614 303 001615 307 001640 308 001643
309 001645 311 001654 314 001663 315 001667 318 001705 319 001715 320 001723
325 001725 329 001730 333 001740 336 001760 340 002014 345 002042 347 002044
351 002064 352 002074 355 002100 357 002102 360 002110 361 002113 364 002115
367 002124 372 002142 373 002153 377 002206 381 002215 385 002233 389 002245
392 002252 394 002257 397 002264 400 002277 403 002312 404 002326 408 002334
415 002361 416 002372 419 002375 420 002402 426 002410 429 002411 432 002416
434 002426 437 002427 438 002432 442 002510 444 002521 447 002525 448 002530
450 002534 456 002535 458 002545 461 002550 462 002555 466 002563 471 002610
475 002624 476 002625 481 002634 485 002651 486 002655 488 002664 493 002665
496 002677 499 002703 502 002706 503 002711 506 002755 508 002770 511 002772
512 003003 513 003011 514 003013 516 003015 519 003055 521 003063 525 003114
528 003123 531 003127 534 003131 535 003133 537 003142 539 003145 540 003147
546 003157 548 003160 553 003214 556 003222 557 003230 560 003231 564 003243
567 003276 570 003304 574 003345 577 003352 578 003354 581 003363 584 003370
588 003374 590 003405 593 003415 595 003456 598 003457 599 003461 603 003467
606 003476 607 003504 610 003512 613 003522 616 003525 617 003530 618 003535
619 003543 621 003544 626 003557 627 003563 629 003566 632 003572 634 003574
637 003602 638 003605 641 003607 646 003620 649 003627 651 003656 654 003670
657 003704 661 003723 662 003725 663 003733 666 003743 669 003771 672 004011
673 004015 674 004016 676 004032 679 004035 681 004061 684 004063 686 004127
687 004132 692 004133 816 004200 698 004201 700 004202 702 004212 704 004215
707 004222 708 004245 711 004246 714 004250 715 004253 719 004334 720 004340
721 004344 722 004345 724 004347 725 004370 727 004377 730 004423 732 004425
736 004441 739 004454 742 004460 746 004475 749 004540 750 004543 754 004544
755 004547 758 004624 761 004635 764 004645 767 004651 770 004722 772 004725
776 005015 779 005026 781 005027 782 005031 783 005043 785 005044 789 005075
791 005077 793 005102 794 005103
-----------------------------------------------------------
Historical Background
This edition of the Multics software materials and documentation is provided and donated
to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc.
as a contribution to computer science knowledge.
This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology,
Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL
and BULL HN Information Systems Inc. to the development of this operating system.
Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970),
renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership
of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture
for managing computer hardware properly and for executing programs. Many subsequent operating systems
incorporated Multics principles.
Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc.,
as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. .
-----------------------------------------------------------
Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without
fee is hereby granted,provided that the below copyright notice and historical background appear in all copies
and that both the copyright notice and historical background and this permission notice appear in supporting
documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining
to distribution of the programs without specific prior written permission.
Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc.
Copyright 2006 by BULL HN Information Systems Inc.
Copyright 2006 by Bull SAS
All Rights Reserved