COMPILATION LISTING OF SEGMENT pps_control Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 02/02/88 1648.5 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 pps_control: proc (iocb_ptr_arg, order_arg, info_ptr, code); 12 13 14 15 /* PARAMETERS */ 16 17 18 dcl code fixed bin (35); 19 dcl info_ptr ptr; 20 dcl iocb_ptr_arg ptr; 21 dcl order_arg char (*); 22 23 24 /* ENTRY CONSTANTS */ 25 26 27 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 28 dcl iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 29 dcl pps_print$flush entry (ptr, fixed bin (35)); 30 dcl pps_report_man_$attach entry (ptr, fixed bin (35)); 31 dcl pps_report_man_$init entry (ptr, fixed bin (35)); 32 dcl pps_report_man_$start entry (ptr, fixed bin (35)); 33 dcl pps_report_man_$stop entry (ptr, fixed bin (35)); 34 35 36 /* EXTERNAL DATA */ 37 38 39 dcl error_table_$bad_arg fixed bin (35) ext; 40 dcl error_table_$inconsistent fixed bin (35) ext; 41 dcl error_table_$no_operation fixed bin (35) ext; 42 dcl error_table_$not_open fixed bin (35) ext; 43 44 45 /* BUILTIN FUNCTIONS */ 46 47 48 dcl addr builtin; 49 dcl divide builtin; 50 dcl hbound builtin; 51 dcl length builtin; 52 dcl min builtin; 53 dcl null builtin; 54 dcl rtrim builtin; 55 dcl substr builtin; 56 57 58 /* AUTOMATIC STORAGE */ 59 60 61 dcl cpi fixed dec (5, 1); 62 dcl i fixed bin; 63 dcl iocb_ptr ptr; 64 dcl lpi fixed dec (5, 1); 65 dcl ppscbd_ptr ptr; 66 dcl sheet_length fixed dec (5, 1); 67 dcl sheet_width fixed dec (5, 1); 68 69 70 /* CONSTANTS */ 71 72 73 dcl NL char (1) static internal options (constant) init (" 74 "); 75 dcl ORDER_NAME_ARRAY (19) char (24) static internal options (constant) init ( 76 "io_call", 77 "page_labels", 78 "get_ppscb_info", 79 "set_ppscb_info", 80 "retain_all", 81 "retain_none", 82 "inside_page", 83 "outside_page", 84 "end_of_page", 85 "reset", 86 "get_count", 87 "get_position", 88 "set_position", 89 "channel_stops", 90 "paper_info", 91 "runout", 92 "get_error_count", 93 "pps_paper_info", 94 "new_report"); 95 96 97 /* INTERNAL STATIC */ 98 99 100 101 102 /* BASED VARIABLES */ 103 104 iocb_ptr = iocb_ptr_arg -> iocb.actual_iocb_ptr; 105 ppsab_ptr = iocb.attach_data_ptr; 106 code = 0; 107 108 109 do i = 1 to hbound (ORDER_NAME_ARRAY, 1); 110 if order_arg = ORDER_NAME_ARRAY (i) then goto PROCESS_ORDER (i); 111 end; 112 code = error_table_$no_operation; 113 return; 114 115 116 PROCESS_ORDER (1): /* io_call */ 117 118 return; 119 120 121 PROCESS_ORDER (2): /* page_labels */ 122 123 if info_ptr = null () then do; 124 pps_pci.top_label_length, 125 pps_pci.bot_label_length = 0; 126 end; 127 else if pps_pci.modes.overflow_off then 128 code = error_table_$inconsistent; 129 else do; 130 orderp = info_ptr; 131 pps_pci.bot_label_line = page_labels.bottom_label; 132 pps_pci.bot_label_length = min (length (rtrim (page_labels.bottom_label)), length (pps_pci.bot_label_line)); 133 pps_pci.top_label_line = page_labels.top_label; 134 pps_pci.top_label_length = min (length (rtrim (page_labels.top_label)), length (pps_pci.top_label_line)); 135 end; 136 return; 137 138 139 PROCESS_ORDER (3): /* get_ppscb_info */ 140 141 ppscbd_ptr = info_ptr; 142 ppscb_data.dir_name = ppsab.ppscb_dir; 143 ppscb_data.entry_name = ppsab.ppscb_entry; 144 ppscb_data.name = ppsab.ppscb_name; 145 ppscb_data.ppscb_ptr = ppsab.ppscb_ptr; 146 return; 147 148 149 PROCESS_ORDER (4): /* set_ppscb_info */ 150 151 ppscbd_ptr = info_ptr; 152 ppsab.ppscb_dir = ppscb_data.dir_name; 153 ppsab.ppscb_entry = ppscb_data.entry_name; 154 ppsab.ppscb_name = ppscb_data.name; 155 ppsab.ppscb_ptr = ppscb_data.ppscb_ptr; 156 return; 157 158 159 PROCESS_ORDER (5): /* retain_all */ 160 161 if iocb.open_descrip_ptr ^= null () then do; 162 call iox_$control (ppsab.target_iocb_ptr, "retain_all", null (), code); 163 if code ^= 0 then return; 164 end; 165 ppsab.retain_option = "all"; 166 return; 167 168 169 PROCESS_ORDER (6): /* retain_none */ 170 171 if iocb.open_descrip_ptr ^= null () then do; 172 call iox_$control (ppsab.target_iocb_ptr, "retain_none", null (), code); 173 if code ^= 0 then return; 174 end; 175 ppsab.retain_option = "none"; 176 return; 177 178 179 PROCESS_ORDER (7): /* inside_page */ 180 181 182 PROCESS_ORDER (8): /* outside_page */ 183 184 if iocb.open_descrip_ptr = null () then goto NOT_OPEN; 185 pps_pci.func = 1; 186 call iox_$put_chars (ppsab.target_iocb_ptr, addr (NL), length (NL), code); 187 pps_pci.func = 0; 188 return; 189 190 191 PROCESS_ORDER (9): /* end_of_page */ 192 193 if iocb.open_descrip_ptr = null () then goto NOT_OPEN; 194 pps_pci.func = 3; 195 call iox_$put_chars (ppsab.target_iocb_ptr, addr (NL), length (NL), code); 196 pps_pci.func = 0; 197 return; 198 199 200 PROCESS_ORDER (10): /* reset */ 201 202 ppsab.modes.no_print = "0"b; 203 ppsab.modes.single_page = "0"b; 204 ppsab.stop_every = 0; 205 ppsab.chars_printed = 0; 206 return; 207 208 209 PROCESS_ORDER (11): /* get_count */ 210 211 orderp = info_ptr; 212 counts.line = pps_pci.line; 213 counts.page_length = pps_pci.page_length; 214 counts.lmarg = pps_pci.lmarg; 215 counts.rmarg = pps_pci.rmarg; 216 counts.line_count = pps_pci.line_count; 217 counts.page_count = pps_pci.page_count * pps_pci.sheets_per_page; 218 return; 219 220 221 PROCESS_ORDER (12): /* get_position */ 222 223 orderp = info_ptr; 224 position_data.line_number = pps_pci.line; /* which line we are printing */ 225 position_data.page_number = pps_pci.page_count * pps_pci.sheets_per_page; /* which phys page number */ 226 position_data.total_lines = pps_pci.line_count; /* lines printed since "reset" order */ 227 position_data.total_chars = ppsab.chars_printed; 228 return; 229 230 231 PROCESS_ORDER (13): /* set_position */ 232 233 pps_pci.line_count = position_data.total_lines; 234 pps_pci.page_count = divide (position_data.page_number, pps_pci.sheets_per_page, 17); 235 ppsab.chars_printed = position_data.total_chars; 236 return; 237 238 239 PROCESS_ORDER (14): /* channel_stops */ 240 241 do i = 1 to hbound (pps_pci.form_stops, 1); 242 pps_pci.form_stops (i).lbits = "0"b || substr (channel_stops (i), 1, 8); 243 pps_pci.form_stops (i).rbits = "1"b || substr (channel_stops (i), 9, 8); 244 end; 245 return; 246 247 248 PROCESS_ORDER (15): /* paper_info */ 249 250 lpi = paper_info.lines_per_inch; 251 cpi = 12.5; 252 sheet_length = divide (paper_info.phys_page_length, lpi, 5, 1); 253 sheet_width = divide (paper_info.phys_line_length, cpi, 5, 1); 254 call Set_Page_Size (); 255 return; 256 257 258 PROCESS_ORDER (16): /* runout */ 259 260 call pps_print$flush (iocb_ptr, code); 261 return; 262 263 264 PROCESS_ORDER (17): /* get_error_count */ 265 266 orderp = info_ptr; 267 ret_error_count = 0; 268 return; 269 270 271 PROCESS_ORDER (18): /* pps_paper_info */ 272 273 ppspip = info_ptr; 274 sheet_length = pps_paper_info.sheet_length; 275 sheet_width = pps_paper_info.sheet_width; 276 lpi = pps_paper_info.lines_per_inch; 277 cpi = pps_paper_info.chars_per_inch; 278 call Set_Page_Size (); 279 return; 280 281 282 PROCESS_ORDER (19): /* new_report */ 283 284 if ppsab.retain_option = "none" then do; 285 call iox_$control(ppsab.target_iocb_ptr,"retain_all",null(),code); 286 if code ^= 0 then return; 287 end; 288 289 call pps_report_man_$stop (iocb_ptr, code); 290 if code ^= 0 then goto RESET_RETAIN; 291 292 ppsab.file_number = ppsab.file_number+1; 293 294 call pps_report_man_$attach (iocb_ptr, code); 295 if code ^= 0 then goto RESET_RETAIN; 296 call pps_report_man_$init (iocb_ptr, code); 297 if code ^= 0 then goto RESET_RETAIN; 298 call pps_report_man_$start (iocb_ptr, code); 299 300 301 RESET_RETAIN: 302 303 if ppsab.retain_option = "none" then 304 call iox_$control(ppsab.target_iocb_ptr,"retain_none",null(),(0)); 305 306 return; 307 308 309 NOT_OPEN: 310 311 code = error_table_$not_open; 312 return; 313 314 Set_Page_Size: proc (); 315 316 317 dcl cpii fixed bin; 318 dcl lpii fixed bin; 319 dcl sli fixed bin; 320 dcl swi fixed bin; 321 322 323 do cpii = 1 to hbound (CPI, 1); 324 if CPI (cpii) = cpi then goto CPI_OK; 325 end; 326 code = error_table_$bad_arg; 327 return; 328 329 330 CPI_OK: 331 332 do lpii = 1 to hbound (LPI, 1); 333 if LPI (lpii) = lpi then goto LPI_OK; 334 end; 335 code = error_table_$bad_arg; 336 return; 337 338 339 LPI_OK: 340 341 do swi = 1 to hbound (PAPER_WIDTH, 1); 342 if PAPER_WIDTH (swi) = sheet_width then goto PW_OK; 343 end; 344 code = error_table_$bad_arg; 345 return; 346 347 348 PW_OK: 349 350 do sli = 1 to hbound (PAPER_LENGTH, 1); 351 if PAPER_LENGTH (sli) = sheet_length then goto PL_OK; 352 end; 353 code = error_table_$bad_arg; 354 return; 355 356 357 PL_OK: 358 359 pps_pci.phys_page_length = sheet_length*lpi-4; 360 pps_pci.phys_line_length = min (132, sheet_width*cpi-4); 361 pps_pci.lpi = 4; 362 ppsab.cpii = cpii; 363 ppsab.lpii = lpii; 364 ppsab.swi = swi; 365 ppsab.sli = sli; 366 return; 367 368 369 end Set_Page_Size; 370 1 1 1 2 dcl 1 iocb aligned based (iocb_ptr), 1 3 /* I/O control block. */ 1 4 2 iocb_version fixed init (1), /* Version number of structure. */ 1 5 2 name char (32), /* I/O name of this block. */ 1 6 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 1 7 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 1 8 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 1 9 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 1 10 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 1 11 2 reserved bit (72), /* Reserved for future use. */ 1 12 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 1 13 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 1 14 /* open(p,mode,not_used,s) */ 1 15 2 close entry (ptr, fixed (35)),/* close(p,s) */ 1 16 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 17 /* get_line(p,bufptr,buflen,actlen,s) */ 1 18 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 19 /* get_chars(p,bufptr,buflen,actlen,s) */ 1 20 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 1 21 /* put_chars(p,bufptr,buflen,s) */ 1 22 2 modes entry (ptr, char (*), char (*), fixed (35)), 1 23 /* modes(p,newmode,oldmode,s) */ 1 24 2 position entry (ptr, fixed, fixed (21), fixed (35)), 1 25 /* position(p,u1,u2,s) */ 1 26 2 control entry (ptr, char (*), ptr, fixed (35)), 1 27 /* control(p,order,infptr,s) */ 1 28 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 29 /* read_record(p,bufptr,buflen,actlen,s) */ 1 30 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 1 31 /* write_record(p,bufptr,buflen,s) */ 1 32 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 1 33 /* rewrite_record(p,bufptr,buflen,s) */ 1 34 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 1 35 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 36 /* seek_key(p,key,len,s) */ 1 37 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 38 /* read_key(p,key,len,s) */ 1 39 2 read_length entry (ptr, fixed (21), fixed (35)); 1 40 /* read_length(p,len,s) */ 1 41 371 372 2 1 /* Begin include file ... pps_attach_block.incl.pl1 */ 2 2 2 3 2 4 dcl pps_attach_block_version_1 fixed bin static internal options (constant) init (1); 2 5 dcl ppsab_ptr ptr; 2 6 2 7 dcl 1 ppsab based (ppsab_ptr) aligned, 2 8 2 version fixed bin, 2 9 2 attach_descrip char (256) varying, 2 10 2 target_name char (32) unal, 2 11 2 target_attach_descrip char (256) unal, 2 12 2 detach_time_attach_descrip char (256) unal, 2 13 2 target_iocb_ptr ptr, 2 14 2 modes, 2 15 3 debug bit (1) unal, 2 16 3 no_print bit (1) unal, 2 17 3 single_page bit (1) unal, 2 18 2 ppscb_dir char (168) unal, 2 19 2 ppscb_entry char (32) unal, 2 20 2 ppscb_name char (32) unal, 2 21 2 ppscb_ptr ptr, 2 22 2 tape_density fixed bin, 2 23 2 file_number fixed bin, 2 24 2 file_name char (17), 2 25 2 retain_option char (4) varying, 2 26 2 volids char (256) varying, 2 27 2 open_descrip char (256) varying, 2 28 2 table_ptr ptr, 2 29 2 mvt_entry entry, 2 30 2 stop_every fixed bin (71), 2 31 2 stop_count fixed bin (71), 2 32 2 chars_printed fixed bin (35), 2 33 2 paper_info, 2 34 3 cpii fixed bin, 2 35 3 lpii fixed bin, 2 36 3 swi fixed bin, 2 37 3 sli fixed bin, 2 38 2 pps_pci like pci; 2 39 3 1 3 2 /* BEGIN INCLUDE FILE ... prt_conv_info.incl.pl1 */ 3 3 /* Modified: 12 September 1980 by G. Palter */ 3 4 3 5 3 6 /****^ HISTORY COMMENTS: 3 7* 1) change(87-05-10,Gilcrease), approve(87-07-31,MCR7686), 3 8* audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 3 9* Add modes.line_nbrs, flags.(eol eof) bits for eor -nb. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 dcl pcip ptr; /* pointer to conversion info structure */ 3 14 3 15 dcl 1 pci based (pcip) aligned, /* printer conversion info structure */ 3 16 2 cv_proc ptr, /* pointer to character conversion procedure */ 3 17 2 lmarg fixed bin, /* left margin indentation */ 3 18 2 rmarg fixed bin, /* right margin limit */ 3 19 2 page_length fixed bin, /* number of lines on page */ 3 20 2 phys_line_length fixed bin, /* physical width of paper */ 3 21 2 phys_page_length fixed bin, /* physical length of paper */ 3 22 2 lpi fixed bin, /* lines per inch */ 3 23 2 sheets_per_page fixed bin, /* sheets of paper per logical page */ 3 24 2 line_count fixed bin, /* count of converted lines */ 3 25 2 page_count fixed bin, /* count of converted pages */ 3 26 2 func fixed bin, /* special conversion function */ 3 27 /* 0 => normal conversion */ 3 28 /* 1 => change NL to FF */ 3 29 /* 2 => change NL to top inside page */ 3 30 /* 3 => change NL to end of page */ 3 31 /* 4 => change NL to top of outside page */ 3 32 (2 modes, /* conversion modes */ 3 33 3 overflow_off bit (1), /* "1"b to suppress end of page overflow */ 3 34 3 single_space bit (1), /* "1"b to change all forms advance chars to NL */ 3 35 3 non_edited bit (1), /* "1"b to print ASCII control chars */ 3 36 3 truncate bit (1), /* "1"b to truncate lines that are too long */ 3 37 3 esc bit (1), /* "1"b to process ESC character */ 3 38 3 ctl_char bit (1), /* "1"b to output control characters */ 3 39 3 line_nbrs bit (1), /* "1"b to output line numbers */ 3 40 3 pci_pad bit (5), 3 41 2 flags, /* flags internal to prt_conv_ */ 3 42 3 ignore_next_ff bit (1), /* ON => prt_conv_ just output a FF; ignore next character if 3 43* it's a FF */ 3 44 3 eol bit (1), /* "1"b = end-of-line encountered */ 3 45 3 eof bit (1), /* "1"b = end-of-segment encountered */ 3 46 3 flags_pad bit (3), 3 47 2 coroutine_modes, 3 48 3 upper_case bit(1), /* "1"b to convert to upper case */ 3 49 3 ht bit(1), /* "1"b to skip tab conversion */ 3 50 3 coroutine_pad bit(13), 3 51 3 slew_table_idx bit(3) ) unal, /* slew table index */ 3 52 2 top_label_line char (136), /* contains an optional top of page label */ 3 53 2 bot_label_line char (136), /* contains an optional bottom of page label */ 3 54 2 top_label_length fixed bin, /* length of top label line */ 3 55 2 bot_label_length fixed bin, /* length of bottom label line */ 3 56 2 form_stops (256) unal, /* logical form stops */ 3 57 3 lbits bit (9), /* leftmost bits */ 3 58 3 rbits bit (9), /* rightmost bits */ 3 59 3 60 /* The following items are for internal use by the print conversion procedure. 3 61* They should be zeroed once and then never referenced again. */ 3 62 3 63 2 level fixed bin, /* overstrike level */ 3 64 2 pos fixed bin, /* print position at end of incomplete line */ 3 65 2 line fixed bin, /* current line number */ 3 66 2 slew_residue fixed bin, /* number of lines remaining to be slewed */ 3 67 2 label_nelem fixed bin, /* characters remaining in label */ 3 68 2 label_wksp ptr, /* pointer to label being processed */ 3 69 2 sav_pos fixed bin, /* position saved during label processing */ 3 70 2 esc_state fixed bin, /* state of ESC processing */ 3 71 2 esc_num fixed bin, /* number following ESC sequence */ 3 72 2 temp bit (36); /* conversion proc temporary */ 3 73 3 74 /* End of include file ...... prt_conv_info.incl.pl1 */ 3 75 2 40 2 41 2 42 2 43 /* End include file ... pps_attach_block.incl.pl1 */ 373 374 4 1 /* Begin include file ...... prt_order_info.incl.pl1 */ 4 2 /* Created 3/15/77 by Noel I. Morris */ 4 3 4 4 dcl orderp ptr; /* pointer to order info structure */ 4 5 4 6 dcl 1 counts based (orderp) aligned, /* structure used in "get_count" order */ 4 7 2 line fixed bin, /* line number */ 4 8 2 page_length fixed bin, /* length of page */ 4 9 2 lmarg fixed bin, /* left margin indentation */ 4 10 2 rmarg fixed bin, /* line length */ 4 11 2 line_count fixed bin, /* count of lines printed */ 4 12 2 page_count fixed bin; /* count of pages printed */ 4 13 4 14 dcl 1 position_data based (orderp) aligned, /* structure for "get_position" & "set_position" orders */ 4 15 2 line_number fixed bin (35), /* current line on the page */ 4 16 2 page_number fixed bin (35), /* current page number */ 4 17 2 total_lines fixed bin (35), /* lines printed since reset */ 4 18 2 total_chars fixed bin (35), /* chars processed since reset */ 4 19 2 pad(4) fixed bin; /* for the future */ 4 20 4 21 dcl 1 page_labels based (orderp) aligned, /* structure used in "page_labels" order */ 4 22 2 top_label char (136), /* label for top of page */ 4 23 2 bottom_label char (136); /* label for bottom of page */ 4 24 4 25 dcl channel_stops (256) bit (16) based (orderp) unal; /* structure used in "channel_stops" order */ 4 26 4 27 dcl 1 paper_info based (orderp) aligned, /* structure used in "paper_info" order */ 4 28 2 phys_page_length fixed bin, /* physical page length */ 4 29 2 phys_line_length fixed bin, /* physical line length */ 4 30 2 lines_per_inch fixed bin; /* lines per inch spacing */ 4 31 4 32 dcl ret_error_count fixed bin based (orderp); /* variable used for "get_error_count" order */ 4 33 4 34 /* End of include file ...... prt_order_info.incl.pl1 */ 375 376 5 1 /* Begin include file ... pps_paper_info.incl.pl1 */ 5 2 5 3 5 4 dcl ppspip ptr; /* Pointer to paper info structure. */ 5 5 5 6 dcl 1 pps_paper_info aligned based (ppspip), 5 7 2 sheet_width fixed dec (5, 1), /* Width of the page in inches. */ 5 8 2 sheet_length fixed dec (5, 1), /* Length of the page in inches. */ 5 9 2 lines_per_inch fixed dec (5, 1), /* Number of print lines per inch. */ 5 10 2 chars_per_inch fixed dec (5, 1); /* Number of printed characters per inch. */ 5 11 5 12 5 13 /* End include file ... pps_paper_info.incl.pl1 */ 377 378 6 1 /* Begin include file ... pps_paper_sizes.incl.pl1 */ 6 2 6 3 6 4 dcl PAPER_WIDTH (6) fixed dec (5, 1) static internal options (constant) init ( 6 5 5.0, 5.5, 7.5, 8.0, 8.5, 11.0); 6 6 6 7 dcl PAPER_LENGTH (14) fixed dec (5, 1) static internal options (constant) init ( 6 8 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 7.0, 8.0, 8.5, 10.0, 11.0, 12.0, 14.0); 6 9 6 10 dcl CPI (2) fixed dec (5, 1) static internal options (constant) init ( 6 11 10.0, 12.5); 6 12 6 13 dcl LPI (4) fixed dec (5, 1) static internal options (constant) init ( 6 14 4, 6, 8, 10); 6 15 6 16 6 17 /* End include file ... pps_paper_sizes.incl.pl1 */ 379 380 7 1 /* Begin include file ... pps_control_block_info.incl.pl1 */ 7 2 7 3 7 4 dcl 1 ppscb_data aligned based (ppscbd_ptr), 7 5 2 dir_name char (168), /* Directory name containing the ppscb segment. */ 7 6 2 entry_name char (32), /* Entry name of the ppscb segment. */ 7 7 2 name char (32), /* Name of the particular control block. */ 7 8 2 ppscb_ptr ptr; /* Pointer to the ppscb. */ 7 9 7 10 7 11 /* End include file ... pps_control_block_info.incl.pl1 */ 381 382 383 384 end pps_control; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/02/88 1540.0 pps_control.pl1 >special_ldd>install>MR12.2-1019>pps_control.pl1 371 1 07/02/81 1905.0 iocbv.incl.pl1 >ldd>include>iocbv.incl.pl1 373 2 03/27/82 0438.0 pps_attach_block.incl.pl1 >ldd>include>pps_attach_block.incl.pl1 2-40 3 02/02/88 1529.2 prt_conv_info.incl.pl1 >special_ldd>install>MR12.2-1019>prt_conv_info.incl.pl1 375 4 09/28/78 1359.8 prt_order_info.incl.pl1 >ldd>include>prt_order_info.incl.pl1 377 5 03/27/82 0438.1 pps_paper_info.incl.pl1 >ldd>include>pps_paper_info.incl.pl1 379 6 03/27/82 0438.2 pps_paper_sizes.incl.pl1 >ldd>include>pps_paper_sizes.incl.pl1 381 7 03/27/82 0438.1 pps_control_block_info.incl.pl1 >ldd>include>pps_control_block_info.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. CPI 000033 constant fixed dec(5,1) initial array dcl 6-10 ref 323 324 LPI 000023 constant fixed dec(5,1) initial array dcl 6-13 ref 330 333 NL 000271 constant char(1) initial unaligned dcl 73 set ref 186 186 186 186 195 195 195 195 ORDER_NAME_ARRAY 000107 constant char(24) initial array unaligned dcl 75 ref 109 110 PAPER_LENGTH 000037 constant fixed dec(5,1) initial array dcl 6-7 ref 348 351 PAPER_WIDTH 000073 constant fixed dec(5,1) initial array dcl 6-4 ref 339 342 actual_iocb_ptr 12 based pointer level 2 dcl 1-2 ref 104 addr builtin function dcl 48 ref 186 186 195 195 attach_data_ptr 16 based pointer level 2 dcl 1-2 ref 105 bot_label_length 770 based fixed bin(17,0) level 3 dcl 2-7 set ref 124* 132* bot_label_line 725 based char(136) level 3 dcl 2-7 set ref 131* 132 bottom_label 42 based char(136) level 2 dcl 4-21 ref 131 132 channel_stops based bit(16) array unaligned dcl 4-25 ref 242 243 chars_per_inch 6 based fixed dec(5,1) level 2 dcl 5-6 ref 277 chars_printed 640 based fixed bin(35,0) level 2 dcl 2-7 set ref 205* 227 235* code parameter fixed bin(35,0) dcl 18 set ref 11 106* 112* 127* 162* 163 172* 173 186* 195* 258* 285* 286 289* 290 294* 295 296* 297 298* 309* 326* 335* 344* 353* counts based structure level 1 dcl 4-6 cpi 000100 automatic fixed dec(5,1) dcl 61 set ref 251* 253 277* 324 360 cpii 000132 automatic fixed bin(17,0) dcl 317 in procedure "Set_Page_Size" set ref 323* 324* 362 cpii 641 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 362* dir_name based char(168) level 2 dcl 7-4 set ref 142* 152 divide builtin function dcl 49 ref 234 252 253 entry_name 52 based char(32) level 2 dcl 7-4 set ref 143* 153 error_table_$bad_arg 000026 external static fixed bin(35,0) dcl 39 ref 326 335 344 353 error_table_$inconsistent 000030 external static fixed bin(35,0) dcl 40 ref 127 error_table_$no_operation 000032 external static fixed bin(35,0) dcl 41 ref 112 error_table_$not_open 000034 external static fixed bin(35,0) dcl 42 ref 309 file_number 413 based fixed bin(17,0) level 2 dcl 2-7 set ref 292* 292 form_stops 771 based structure array level 3 packed unaligned dcl 2-7 set ref 239 func 661 based fixed bin(17,0) level 3 dcl 2-7 set ref 185* 187* 194* 196* hbound builtin function dcl 50 ref 109 239 323 330 339 348 i 000102 automatic fixed bin(17,0) dcl 62 set ref 109* 110 110* 239* 242 242 243 243* info_ptr parameter pointer dcl 19 ref 11 121 130 139 149 209 221 264 271 iocb based structure level 1 dcl 1-2 iocb_ptr 000104 automatic pointer dcl 63 set ref 104* 105 159 169 179 191 258* 289* 294* 296* 298* iocb_ptr_arg parameter pointer dcl 20 ref 11 104 iox_$control 000010 constant entry external dcl 27 ref 162 172 285 301 iox_$put_chars 000012 constant entry external dcl 28 ref 186 195 lbits 771 based bit(9) array level 4 packed unaligned dcl 2-7 set ref 242* length builtin function dcl 51 ref 132 132 134 134 186 186 195 195 line 1173 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" ref 212 224 line based fixed bin(17,0) level 2 in structure "counts" dcl 4-6 in procedure "pps_control" set ref 212* line_count 4 based fixed bin(17,0) level 2 in structure "counts" dcl 4-6 in procedure "pps_control" set ref 216* line_count 657 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 216 226 231* line_number based fixed bin(35,0) level 2 dcl 4-14 set ref 224* lines_per_inch 4 based fixed dec(5,1) level 2 in structure "pps_paper_info" dcl 5-6 in procedure "pps_control" ref 276 lines_per_inch 2 based fixed bin(17,0) level 2 in structure "paper_info" dcl 4-27 in procedure "pps_control" ref 248 lmarg 650 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" ref 214 lmarg 2 based fixed bin(17,0) level 2 in structure "counts" dcl 4-6 in procedure "pps_control" set ref 214* lpi 000106 automatic fixed dec(5,1) dcl 64 in procedure "pps_control" set ref 248* 252 276* 333 357 lpi 655 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 361* lpii 000133 automatic fixed bin(17,0) dcl 318 in procedure "Set_Page_Size" set ref 330* 333* 363 lpii 642 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 363* min builtin function dcl 52 ref 132 134 360 modes 314 based structure level 2 in structure "ppsab" dcl 2-7 in procedure "pps_control" modes 662 based structure level 3 in structure "ppsab" packed unaligned dcl 2-7 in procedure "pps_control" name 62 based char(32) level 2 dcl 7-4 set ref 144* 154 no_print 314(01) based bit(1) level 3 packed unaligned dcl 2-7 set ref 200* null builtin function dcl 53 ref 121 159 162 162 169 172 172 179 191 285 285 301 301 open_descrip_ptr 20 based pointer level 2 dcl 1-2 ref 159 169 179 191 order_arg parameter char unaligned dcl 21 ref 11 110 orderp 000120 automatic pointer dcl 4-4 set ref 130* 131 132 133 134 209* 212 213 214 215 216 217 221* 224 225 226 227 231 234 235 242 243 248 252 253 264* 267 overflow_off 662 based bit(1) level 4 packed unaligned dcl 2-7 ref 127 page_count 5 based fixed bin(17,0) level 2 in structure "counts" dcl 4-6 in procedure "pps_control" set ref 217* page_count 660 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 217 225 234* page_labels based structure level 1 dcl 4-21 page_length 652 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" ref 213 page_length 1 based fixed bin(17,0) level 2 in structure "counts" dcl 4-6 in procedure "pps_control" set ref 213* page_number 1 based fixed bin(35,0) level 2 dcl 4-14 set ref 225* 234 paper_info 641 based structure level 2 in structure "ppsab" dcl 2-7 in procedure "pps_control" paper_info based structure level 1 dcl 4-27 in procedure "pps_control" pci based structure level 1 dcl 3-15 phys_line_length 653 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 360* phys_line_length 1 based fixed bin(17,0) level 2 in structure "paper_info" dcl 4-27 in procedure "pps_control" ref 253 phys_page_length 654 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 357* phys_page_length based fixed bin(17,0) level 2 in structure "paper_info" dcl 4-27 in procedure "pps_control" ref 252 position_data based structure level 1 dcl 4-14 pps_paper_info based structure level 1 dcl 5-6 pps_pci 646 based structure level 2 dcl 2-7 pps_print$flush 000014 constant entry external dcl 29 ref 258 pps_report_man_$attach 000016 constant entry external dcl 30 ref 294 pps_report_man_$init 000020 constant entry external dcl 31 ref 296 pps_report_man_$start 000022 constant entry external dcl 32 ref 298 pps_report_man_$stop 000024 constant entry external dcl 33 ref 289 ppsab based structure level 1 dcl 2-7 ppsab_ptr 000116 automatic pointer dcl 2-5 set ref 105* 124 124 127 131 132 132 133 134 134 142 143 144 145 152 153 154 155 162 165 172 175 185 186 187 194 195 196 200 203 204 205 212 213 214 215 216 217 217 224 225 225 226 227 231 234 234 235 239 242 243 282 285 292 292 301 301 357 360 361 362 363 364 365 ppscb_data based structure level 1 dcl 7-4 ppscb_dir 315 based char(168) level 2 packed unaligned dcl 2-7 set ref 142 152* ppscb_entry 367 based char(32) level 2 packed unaligned dcl 2-7 set ref 143 153* ppscb_name 377 based char(32) level 2 packed unaligned dcl 2-7 set ref 144 154* ppscb_ptr 72 based pointer level 2 in structure "ppscb_data" dcl 7-4 in procedure "pps_control" set ref 145* 155 ppscb_ptr 410 based pointer level 2 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 145 155* ppscbd_ptr 000110 automatic pointer dcl 65 set ref 139* 142 143 144 145 149* 152 153 154 155 ppspip 000122 automatic pointer dcl 5-4 set ref 271* 274 275 276 277 rbits 771(09) based bit(9) array level 4 packed unaligned dcl 2-7 set ref 243* ret_error_count based fixed bin(17,0) dcl 4-32 set ref 267* retain_option 421 based varying char(4) level 2 dcl 2-7 set ref 165* 175* 282 301 rmarg 3 based fixed bin(17,0) level 2 in structure "counts" dcl 4-6 in procedure "pps_control" set ref 215* rmarg 651 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" ref 215 rtrim builtin function dcl 54 ref 132 134 sheet_length 000112 automatic fixed dec(5,1) dcl 66 in procedure "pps_control" set ref 252* 274* 351 357 sheet_length 2 based fixed dec(5,1) level 2 in structure "pps_paper_info" dcl 5-6 in procedure "pps_control" ref 274 sheet_width based fixed dec(5,1) level 2 in structure "pps_paper_info" dcl 5-6 in procedure "pps_control" ref 275 sheet_width 000114 automatic fixed dec(5,1) dcl 67 in procedure "pps_control" set ref 253* 275* 342 360 sheets_per_page 656 based fixed bin(17,0) level 3 dcl 2-7 ref 217 225 234 single_page 314(02) based bit(1) level 3 packed unaligned dcl 2-7 set ref 203* sli 000134 automatic fixed bin(17,0) dcl 319 in procedure "Set_Page_Size" set ref 348* 351* 365 sli 644 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 365* stop_every 634 based fixed bin(71,0) level 2 dcl 2-7 set ref 204* substr builtin function dcl 55 ref 242 243 swi 643 based fixed bin(17,0) level 3 in structure "ppsab" dcl 2-7 in procedure "pps_control" set ref 364* swi 000135 automatic fixed bin(17,0) dcl 320 in procedure "Set_Page_Size" set ref 339* 342* 364 target_iocb_ptr 312 based pointer level 2 dcl 2-7 set ref 162* 172* 186* 195* 285* 301* top_label based char(136) level 2 dcl 4-21 ref 133 134 top_label_length 767 based fixed bin(17,0) level 3 dcl 2-7 set ref 124* 134* top_label_line 663 based char(136) level 3 dcl 2-7 set ref 133* 134 total_chars 3 based fixed bin(35,0) level 2 dcl 4-14 set ref 227* 235 total_lines 2 based fixed bin(35,0) level 2 dcl 4-14 set ref 226* 231 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. pcip automatic pointer dcl 3-13 pps_attach_block_version_1 internal static fixed bin(17,0) initial dcl 2-4 NAMES DECLARED BY EXPLICIT CONTEXT. CPI_OK 001424 constant label dcl 330 ref 324 LPI_OK 001446 constant label dcl 339 ref 333 NOT_OPEN 001375 constant label dcl 309 ref 179 191 PL_OK 001512 constant label dcl 357 set ref 351 PROCESS_ORDER 000000 constant label array(19) dcl 116 ref 110 PW_OK 001470 constant label dcl 348 ref 342 RESET_RETAIN 001333 constant label dcl 301 ref 290 295 297 Set_Page_Size 001401 constant entry internal dcl 314 ref 254 278 pps_control 000323 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1740 1776 1601 1750 Length 2334 1601 36 321 136 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pps_control 160 external procedure is an external procedure. Set_Page_Size internal procedure shares stack frame of external procedure pps_control. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME pps_control 000100 cpi pps_control 000102 i pps_control 000104 iocb_ptr pps_control 000106 lpi pps_control 000110 ppscbd_ptr pps_control 000112 sheet_length pps_control 000114 sheet_width pps_control 000116 ppsab_ptr pps_control 000120 orderp pps_control 000122 ppspip pps_control 000132 cpii Set_Page_Size 000133 lpii Set_Page_Size 000134 sli Set_Page_Size 000135 swi Set_Page_Size THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry_desc real_to_real_truncatdivide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. iox_$control iox_$put_chars pps_print$flush pps_report_man_$attach pps_report_man_$init pps_report_man_$start pps_report_man_$stop THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$inconsistent error_table_$no_operation error_table_$not_open LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000316 104 000336 105 000343 106 000345 109 000346 110 000353 111 000366 112 000370 113 000374 116 000375 121 000376 124 000402 126 000405 127 000406 130 000416 131 000421 132 000424 133 000441 134 000444 136 000461 139 000462 142 000465 143 000471 144 000474 145 000477 146 000501 149 000502 152 000505 153 000511 154 000514 155 000517 156 000521 159 000522 162 000527 163 000563 165 000566 166 000573 169 000574 172 000601 173 000634 175 000637 176 000644 179 000645 185 000652 186 000655 187 000676 188 000700 191 000701 194 000706 195 000711 196 000732 197 000734 200 000735 203 000740 204 000742 205 000744 206 000745 209 000746 212 000751 213 000754 214 000756 215 000760 216 000762 217 000764 218 000767 221 000770 224 000773 225 000776 226 001001 227 001003 228 001005 231 001006 234 001012 235 001015 236 001017 239 001020 242 001025 243 001044 244 001056 245 001060 248 001061 251 001070 252 001073 253 001120 254 001146 255 001147 258 001150 261 001161 264 001162 267 001165 268 001166 271 001167 274 001172 275 001175 276 001200 277 001203 278 001206 279 001207 282 001210 285 001216 286 001251 289 001254 290 001265 292 001270 294 001272 295 001303 296 001306 297 001317 298 001322 301 001333 306 001374 309 001375 312 001400 314 001401 323 001402 324 001407 325 001415 326 001417 327 001423 330 001424 333 001431 334 001437 335 001441 336 001445 339 001446 342 001453 343 001461 344 001463 345 001467 348 001470 351 001475 352 001503 353 001505 354 001511 357 001512 360 001531 361 001561 362 001563 363 001565 364 001567 365 001571 366 001573 ----------------------------------------------------------- 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