COMPILATION LISTING OF SEGMENT prtdim_util Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 02/02/88 1646.3 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* ****************************************************** 7* * * 8* * * 9* * Copyright (c) 1972 by Massachusetts Institute of * 10* * Technology and Honeywell Information Systems, Inc. * 11* * * 12* * * 13* ****************************************************** */ 14 15 /* PRTDIM_UTIL - Utility Functions for the Multics printer DIM. 16* coded 6/12/75 by Noel I. Morris */ 17 /* Modified 83-10-21 by E. N. Kittlitz for eurc/urmpc partitioning */ 18 19 prtdim_util$init: proc (sdb_ptr, rcode); 20 21 dcl rcode fixed bin (35); /* error code */ 22 23 dcl temp_iom_stat bit (72) aligned, /* temp area to hold iom status */ 24 load_proc entry (ptr, ptr, entry, fixed bin (35)) variable, /* procedure to load train or VFC image */ 25 save_buffer (100) fixed bin (35), /* holding buffer for workspace */ 26 wseg_low (100) fixed bin (35) based (wsegp), /* for saving and restoring workspace */ 27 ecode fixed bin (35); /* internal error code */ 28 29 dcl ipc_$block entry (ptr, ptr, fixed bin (35)), 30 ioi_$connect entry (fixed bin, fixed bin (18), fixed bin (35)), 31 init_printer_ entry (ptr, ptr, entry, fixed bin (35)), 32 init_printer_$load_image entry (ptr, ptr, entry, fixed bin (35)), 33 init_printer_$load_vfc entry (ptr, ptr, entry, fixed bin (35)), 34 analyze_device_stat_ entry (char (*) aligned, ptr, bit (72) aligned, bit (18) aligned), 35 analyze_system_fault_ entry (char (*) aligned, bit (72) aligned); 36 37 dcl error_table_$net_timeout fixed bin (35) ext, 38 error_table_$no_operation fixed bin (35) ext, 39 prt_status_table_$prt_status_table_ ext; 40 41 dcl 1 ipc_message aligned, /* structure for receiving ipc_ message */ 42 2 chname fixed bin (71), 43 2 message fixed bin (71), 44 2 sender bit (36), 45 2 origin, 46 3 devsignal bit (18), 47 3 ring bit (18), 48 2 channel_index fixed bin; 49 50 dcl (addr, addrel, bit, rel, string) builtin; 51 52 53 /* */ 54 55 1 1 /* BEGIN INCLUDE FILE ... prt_sdb.incl.pl1 */ 1 2 /* Note: there is a corresponding prt_sdb.incl.alm */ 1 3 1 4 /* Created 10/28/74 by Noel I. Morris */ 1 5 /* Modified 3/15/77 by Noel I. Morris */ 1 6 /* Modified 1/25/78 by J. C. Whitmore to merge prtdim and spooling_dim versions */ 1 7 /* Modified: 27 November 1981 by G. Palter to add reload_vfc_train_after_special flag */ 1 8 /* Modified: 16 August 1983 by E. N. Kittlitz for new printer dim */ 1 9 1 10 dcl sdb_ptr ptr; /* pointer to stream data block */ 1 11 1 12 dcl 1 sdb aligned based (sdb_ptr), /* printer stream data block */ 1 13 2 outer_module_name char (32) aligned, 1 14 2 device_name_list_ptr pointer, 1 15 2 device_name, 1 16 3 next_device_ptr pointer, 1 17 3 name_size fixed bin (17), 1 18 3 name char (32) aligned, 1 19 2 ev_list aligned, /* Event list for ipc_ */ 1 20 3 count fixed bin (17), /* Event count = Always one */ 1 21 3 evchan fixed bin (71), /* Event channel name */ 1 22 2 stream_name char (32), /* stream name of this attachment */ 1 23 2 areap ptr, /* pointer to system free area */ 1 24 2 info like prt_info aligned, /* printer info */ 1 25 2 conv_info like pci aligned, /* conversion info */ 1 26 2 chars_printed fixed bin (35), /* input chars processed since "reset" */ 1 27 2 stop_every fixed bin, /* non-zero to stop after number of pages */ 1 28 2 stop_counter fixed bin, /* page stop counter */ 1 29 2 mode, /* additional modes */ 1 30 (3 single_page bit (1), /* "1"b to stop after each page */ 1 31 3 noprint bit (1), /* "1"b to suppress printing */ 1 32 3 pad bit (34)) unal, 1 33 2 rcp_id bit (36), /* RCP attachment ID */ 1 34 2 wsegp ptr, /* pointer to IOI working segment */ 1 35 2 running bit (1), /* "1"b if channel running */ 1 36 2 bgin fixed bin (18), /* index to oldest print line */ 1 37 2 stop fixed bin (18), /* index to next print line */ 1 38 2 prev fixed bin (18), /* index to previous print line */ 1 39 2 wait_flag bit (1) aligned, /* non-zero if waiting for special */ 1 40 2 marker_count fixed bin, /* counter for marker status insertion */ 1 41 2 paper_low bit (1) aligned, /* "1"b if paper low */ 1 42 2 error_count fixed bin, /* error counter */ 1 43 2 buffer_ptr ptr, /* pointer to output buffer (spooler) */ 1 44 2 spool_info (56) fixed bin, /* place to store spooling_info */ 1 45 2 reload_vfc_train_after_special bit (1) aligned, /* "1"b if VFC/train images should be reloaded after next 1 46* special interrupt */ 1 47 2 max_dcw_size fixed bin (12) uns unal, /* max wordcount of dcw */ 1 48 2 max_dcws fixed bin (6) uns unal, /* max dcws per idcw/buffer */ 1 49 2 n_dcws fixed bin (6) uns unal, /* current limit of dcws/buffer */ 1 50 2 b_begin fixed bin (3) uns unal, /* buffer index */ 1 51 2 b_stop fixed bin (3) uns unal, /* likewise */ 1 52 2 max_buffers fixed bin (3) uns unal, /* number of buffers allocated */ 1 53 2 n_buffers fixed bin (3) uns unal, /* number of buffers in use now */ 1 54 2 data_begin fixed bin (18) uns unal, /* first data word */ 1 55 2 data_end fixed bin (18) uns unal, /* size of working space in words */ 1 56 2 status_ptr ptr unal, /* ioi status area */ 1 57 2 flags aligned, 1 58 3 aborting bit (1) unal, /* next attempt to do i/o gets error and resets */ 1 59 3 eurc bit (1) unal, /* true if we know we are using EURC */ 1 60 3 flags_pad bit (16) unal, 1 61 2 version fixed bin unal, 1 62 2 status_table ptr unal, /* for analyze_device_stat_ */ 1 63 2 null_line_data bit (36) aligned, 1 64 2 null_line_dcw bit (36) aligned, 1 65 2 alarm_time fixed bin (71) unaligned; /* current timer_manager_ limit */ 1 66 dcl prt_bufferp ptr; 1 67 1 68 dcl 1 prt_buffer aligned based (prt_bufferp), 1 69 2 header, 1 70 3 number fixed bin (6) uns unal, 1 71 3 busy bit (1) unal, 1 72 3 pad bit (4) unal, 1 73 3 dcw_count fixed bin (7) uns unal, 1 74 3 data_ends fixed bin (18) uns unal, 1 75 2 idcw bit (36), 1 76 2 ddcw (sdb.max_dcws + 1) bit (36) aligned; 1 77 1 78 dcl wseg (0:sdb.data_end - 1) bit (36) aligned based (sdb.wsegp); /* the IOI buffer segment */ 1 79 dcl 1 prt_buffers (0:sdb.max_buffers - 1) aligned like prt_buffer based (sdb.wsegp); 1 80 1 81 /* NOTE: The Spooling_dim IO Module also uses this include file, 1 82* as it uses the printer stream also. If changes are made to this include file, 1 83* see to it that the changes are also reflected in the Spooling_dim procedures. 1 84* The spooling_dim uses the standard printer_dim order and changemode procedures. 1 85* JCW 1/25/78 */ 1 86 1 87 /* END INCLUDE FILE ... prt_sdb.incl.pl1 */ 56 57 2 1 2 2 /* Begin include file ...... prt_info.incl.pl1 */ 2 3 /* last modified 6/12/75 by Noel I. Morris */ 2 4 2 5 dcl pip ptr; /* pointer to printer info structure */ 2 6 2 7 dcl 1 prt_info based (pip) aligned, /* printer info structure */ 2 8 2 devname char (4), /* name of device */ 2 9 2 devx fixed bin, /* device index */ 2 10 2 model fixed bin, /* printer model number */ 2 11 2 type fixed bin, /* printer type number */ 2 12 2 train fixed bin, /* print train ID */ 2 13 2 line_length fixed bin, /* max length of printed line */ 2 14 2 print_idcw bit (36), /* IDCW to print 1 line */ 2 15 2 term_idcw bit (36); /* IDCW to stop printer channel */ 2 16 2 17 /* End of include file ...... prt_info.incl.pl1 */ 2 18 58 59 60 61 /* */ 62 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 63 64 65 66 /* */ 67 4 1 4 2 /* Begin include file ...... iom_pcw.incl.pl1 */ 4 3 4 4 dcl pcwp ptr; /* pointer to PCW */ 4 5 4 6 dcl 1 pcw based (pcwp) aligned, /* Peripheral Control Word */ 4 7 (2 command bit (6), /* device command */ 4 8 2 device bit (6), /* device code */ 4 9 2 ext bit (6), /* address extension */ 4 10 2 code bit (3), /* should be "111"b for PCW */ 4 11 2 mask bit (1), /* channel mask bit */ 4 12 2 control bit (2), /* terminate/proceed and marker control bits */ 4 13 2 chan_cmd bit (6), /* type of I/O operation */ 4 14 2 count bit (6), /* record count or control character */ 4 15 2 mbz1 bit (3), 4 16 2 channel bit (6), /* channel number */ 4 17 2 mbz2 bit (27)) unal; 4 18 4 19 dcl idcwp ptr; /* pointer to IDCW */ 4 20 4 21 dcl 1 idcw based (idcwp) aligned, /* Instruction DCW */ 4 22 (2 command bit (6), /* device command */ 4 23 2 device bit (6), /* device code */ 4 24 2 ext bit (6), /* address extension */ 4 25 2 code bit (3), /* should be "111"b for PCW */ 4 26 2 ext_ctl bit (1), /* "1"b if address extension to be used */ 4 27 2 control bit (2), /* terminate/proceed and marker control bits */ 4 28 2 chan_cmd bit (6), /* type of I/O operation */ 4 29 2 count bit (6)) unal; /* record count or control character */ 4 30 4 31 /* End include file ...... iom_pcw.incl.pl1 */ 4 32 68 69 5 1 5 2 /* Begin include file ...... iom_dcw.incl.pl1 */ 5 3 5 4 dcl dcwp ptr, /* pointer to DCW */ 5 5 tdcwp ptr; /* pointer to TDCW */ 5 6 5 7 dcl 1 dcw based (dcwp) aligned, /* Data Control Word */ 5 8 (2 address bit (18), /* address for data transfer */ 5 9 2 char_pos bit (3), /* character position */ 5 10 2 m64 bit (1), /* non-zero for mod 64 address */ 5 11 2 type bit (2), /* DCW type */ 5 12 2 tally bit (12)) unal; /* tally for data transfer */ 5 13 5 14 dcl 1 tdcw based (tdcwp) aligned, /* Transfer DCW */ 5 15 (2 address bit (18), /* address to transfer to */ 5 16 2 mbz1 bit (4), 5 17 2 type bit (2), /* should be "10"b for TDCW */ 5 18 2 mbz2 bit (9), 5 19 2 ec bit (1), /* non-zero to set LPW AE bit */ 5 20 2 res bit (1), /* non-zero to restrict further use of IDCW */ 5 21 2 rel bit (1)) unal; /* non-zero to set relative mode after transfer */ 5 22 5 23 /* End of include file ...... iom_dcw.incl.pl1 */ 5 24 70 71 72 /* */ 73 6 1 6 2 /* Begin include file ...... ioi_stat.incl.pl1 */ 6 3 /* Last modified 3/24/75 by Noel I. Morris */ 6 4 6 5 dcl isp ptr; /* pointer to status structure */ 6 6 6 7 dcl 1 istat based (isp) aligned, /* I/O Interfacer status structure */ 6 8 2 completion, /* completion flags */ 6 9 (3 st bit (1), /* "1"b if status returned */ 6 10 3 er bit (1), /* "1"b if status indicates error condition */ 6 11 3 run bit (1), /* "1"b if channel still running */ 6 12 3 time_out bit (1)) unal, /* "1"b if time-out occurred */ 6 13 2 level fixed bin (3), /* IOM interrupt level */ 6 14 2 offset fixed bin (18), /* DCW list offset */ 6 15 2 absaddr fixed bin (24), /* absolute address of workspace */ 6 16 2 iom_stat bit (72), /* IOM status */ 6 17 2 lpw bit (72); /* LPW residue */ 6 18 6 19 dcl imp ptr; /* pointer to message structure */ 6 20 6 21 dcl 1 imess based (imp) aligned, /* I/O Interfacer event message structure */ 6 22 (2 completion like istat.completion, /* completion flags */ 6 23 2 pad bit (11), 6 24 2 level bit (3), /* interrupt level */ 6 25 2 offset bit (18), /* DCW list offset */ 6 26 2 status bit (36)) unal; /* first 36 bits of status */ 6 27 6 28 /* End of include file ...... ioi_stat.incl.pl1 */ 6 29 74 75 76 77 /* */ 78 79 pip = addr (sdb.info); /* Get pointer to printer info. */ 80 pcip = addr (sdb.conv_info); /* Get pointer to conversion info. */ 81 82 call init_printer_ (pip, pcip, sync_io, rcode); /* Initialize the printer information. */ 83 84 sdb.stop_every, 85 sdb.stop_counter = 0; /* Initialize page stop counters. */ 86 sdb.mode = "0"b; /* Clear all mode bits. */ 87 88 return; 89 90 91 /* */ 92 93 load_image: entry (sdb_ptr, rcode); 94 95 96 load_proc = init_printer_$load_image; /* Set procedure pointer. */ 97 go to load_join; /* Join common code. */ 98 99 100 101 102 load_vfc: entry (sdb_ptr, rcode); 103 104 105 load_proc = init_printer_$load_vfc; /* Set procedure pointer. */ 106 107 load_join: 108 pip = addr (sdb.info); /* Get pointer to printer info. */ 109 pcip = addr (sdb.conv_info); /* Get pointer to conversion info. */ 110 111 save_buffer = wseg_low; /* Save the contents of the workspace. */ 112 113 call load_proc (pip, pcip, sync_io, rcode); /* Call out to load the train or VFC image. */ 114 115 wseg_low = save_buffer; /* Restore the workspace. */ 116 117 if rcode = 5 then /* If invalid operation for thi model ... */ 118 rcode = error_table_$no_operation; /* Reflect appropriate error code. */ 119 120 return; 121 122 123 /* */ 124 125 sync_io: proc (i, rw, d, l, e); /* internal proc to do synchronous I/O */ 126 127 dcl i bit (36) aligned, /* IDCW */ 128 rw bit (2) aligned, /* RW bits */ 129 d ptr, /* pointer to data */ 130 l fixed bin (12), /* length of data */ 131 e bit (1) aligned; /* error flag */ 132 133 dcl sdata (l) fixed bin based, /* for copying data */ 134 dp ptr, /* pointer to place for data */ 135 b bit (18) aligned; /* status flags */ 136 137 138 idcwp = wsegp; /* Get pointer to place for IDCW. */ 139 string (idcw) = i; /* Copy the IDCW. */ 140 141 dcwp = addrel (idcwp, 1); /* Get pointer to data xfer DCW. */ 142 dp = addrel (dcwp, 1); /* Get pointer to place for data. */ 143 144 string (dcw) = "0"b; /* Clear the DCW. */ 145 dcw.address = rel (dp); /* Insert address. */ 146 dcw.tally = bit (l); /* And tally. */ 147 148 if rw & "01"b then /* If writing ... */ 149 dp -> sdata = d -> sdata; /* Copy the data in workspace segment. */ 150 151 redo_sync: 152 call ioi_$connect (prt_info.devx, 0, ecode); /* Fire up the IOM. */ 153 if ecode ^= 0 then do; /* This should not happen. */ 154 e = "1"b; 155 return; 156 end; 157 158 159 /* */ 160 161 sync_wait: 162 call ipc_$block (addr (sdb.ev_list), addr (ipc_message), ecode); 163 if ecode ^= 0 then do; /* Wait for I/O to complete. */ 164 e = "1"b; 165 return; 166 end; 167 168 imp = addr (ipc_message.message); /* get pointer to ioi event message */ 169 if imess.level = "111"b then go to redo_sync; /* if this is a special interupt */ 170 171 if imess.st then do; /* if status is present */ 172 if imess.time_out then do; /* if timeout occured */ 173 e = "1"b; /* error occured */ 174 ecode = error_table_$net_timeout; /* caused by time out */ 175 return; 176 end; 177 178 temp_iom_stat = imess.status; /* copy status to double word */ 179 if imess.level = "011"b then do; /* If termination ... */ 180 if imess.er then /* If error ... */ 181 call analyze_device_stat_ (prt_info.devname, addr (prt_status_table_$prt_status_table_), 182 temp_iom_stat, b); 183 end; /* Analyze the status. */ 184 185 else if imess.level = "001"b then /* If system fault ... */ 186 call analyze_system_fault_ (prt_info.devname, temp_iom_stat); 187 188 if imess.er then go to sync_wait; /* If error, wait for special. */ 189 end; 190 else go to sync_wait; /* If no status, try for more. */ 191 192 if rw & "10"b then /* If reading ... */ 193 d -> sdata = dp -> sdata; /* Copy the data. */ 194 195 e = "0"b; /* Clear the error switch. */ 196 197 return; /* Return to caller. */ 198 199 200 end sync_io; 201 202 203 204 205 end prtdim_util$init; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/02/88 1535.7 prtdim_util.pl1 >special_ldd>install>MR12.2-1019>prtdim_util.pl1 56 1 11/04/83 1107.6 prt_sdb.incl.pl1 >ldd>include>prt_sdb.incl.pl1 58 2 08/29/75 1310.5 prt_info.incl.pl1 >ldd>include>prt_info.incl.pl1 63 3 02/02/88 1529.2 prt_conv_info.incl.pl1 >special_ldd>install>MR12.2-1019>prt_conv_info.incl.pl1 68 4 05/06/74 1742.1 iom_pcw.incl.pl1 >ldd>include>iom_pcw.incl.pl1 70 5 11/12/74 1550.1 iom_dcw.incl.pl1 >ldd>include>iom_dcw.incl.pl1 74 6 08/17/79 2215.0 ioi_stat.incl.pl1 >ldd>include>ioi_stat.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. addr builtin function dcl 50 ref 79 80 107 109 161 161 161 161 168 180 180 addrel builtin function dcl 50 ref 141 142 address based bit(18) level 2 packed unaligned dcl 5-7 set ref 145* analyze_device_stat_ 000022 constant entry external dcl 29 ref 180 analyze_system_fault_ 000024 constant entry external dcl 29 ref 185 b 000102 automatic bit(18) dcl 133 set ref 180* bit builtin function dcl 50 ref 146 completion based structure level 2 in structure "imess" packed unaligned dcl 6-21 in procedure "prtdim_util$init" completion based structure level 2 in structure "istat" dcl 6-7 in procedure "prtdim_util$init" conv_info 54 based structure level 2 dcl 1-12 set ref 80 109 d parameter pointer dcl 127 ref 125 148 192 dcw based structure level 1 dcl 5-7 set ref 144* dcwp 000272 automatic pointer dcl 5-4 set ref 141* 142 144 145 146 devname based char(4) level 2 dcl 2-7 set ref 180* 185* devx 1 based fixed bin(17,0) level 2 dcl 2-7 set ref 151* dp 000100 automatic pointer dcl 133 set ref 142* 145 148 192 e parameter bit(1) dcl 127 set ref 125 154* 164* 173* 195* ecode 000252 automatic fixed bin(35,0) dcl 23 set ref 151* 153 161* 163 174* er 0(01) based bit(1) level 3 packed unaligned dcl 6-21 ref 180 188 error_table_$net_timeout 000026 external static fixed bin(35,0) dcl 37 ref 174 error_table_$no_operation 000030 external static fixed bin(35,0) dcl 37 ref 117 ev_list 26 based structure level 2 dcl 1-12 set ref 161 161 i parameter bit(36) dcl 127 ref 125 139 idcw based structure level 1 dcl 4-21 set ref 139* idcwp 000270 automatic pointer dcl 4-19 set ref 138* 139 141 imess based structure level 1 dcl 6-21 imp 000274 automatic pointer dcl 6-19 set ref 168* 169 171 172 178 179 180 185 188 info 44 based structure level 2 dcl 1-12 set ref 79 107 init_printer_ 000014 constant entry external dcl 29 ref 82 init_printer_$load_image 000016 constant entry external dcl 29 ref 96 init_printer_$load_vfc 000020 constant entry external dcl 29 ref 105 ioi_$connect 000012 constant entry external dcl 29 ref 151 ipc_$block 000010 constant entry external dcl 29 ref 161 ipc_message 000254 automatic structure level 1 dcl 41 set ref 161 161 istat based structure level 1 dcl 6-7 l parameter fixed bin(12,0) dcl 127 ref 125 146 148 192 level 0(15) based bit(3) level 2 packed unaligned dcl 6-21 ref 169 179 185 load_proc 000102 automatic entry variable dcl 23 set ref 96* 105* 113 message 2 000254 automatic fixed bin(71,0) level 2 dcl 41 set ref 168 mode 415 based structure level 2 dcl 1-12 set ref 86* pci based structure level 1 dcl 3-15 pcip 000266 automatic pointer dcl 3-13 set ref 80* 82* 109* 113* pip 000264 automatic pointer dcl 2-5 set ref 79* 82* 107* 113* 151 180 185 prt_buffer based structure level 1 dcl 1-68 prt_info based structure level 1 dcl 2-7 prt_status_table_$prt_status_table_ 000032 external static fixed bin(17,0) dcl 37 set ref 180 180 rcode parameter fixed bin(35,0) dcl 21 set ref 19 82* 93 102 113* 117 117* rel builtin function dcl 50 ref 145 rw parameter bit(2) dcl 127 ref 125 148 192 save_buffer 000106 automatic fixed bin(35,0) array dcl 23 set ref 111* 115 sdata based fixed bin(17,0) array dcl 133 set ref 148* 148 192* 192 sdb based structure level 1 dcl 1-12 sdb_ptr parameter pointer dcl 1-10 ref 19 79 80 84 84 86 93 102 107 109 111 115 138 161 161 st based bit(1) level 3 packed unaligned dcl 6-21 ref 171 status 1 based bit(36) level 2 packed unaligned dcl 6-21 ref 178 stop_counter 414 based fixed bin(17,0) level 2 dcl 1-12 set ref 84* stop_every 413 based fixed bin(17,0) level 2 dcl 1-12 set ref 84* string builtin function dcl 50 set ref 139* 144* tally 0(24) based bit(12) level 2 packed unaligned dcl 5-7 set ref 146* temp_iom_stat 000100 automatic bit(72) dcl 23 set ref 178* 180* 185* time_out 0(03) based bit(1) level 3 packed unaligned dcl 6-21 ref 172 wseg_low based fixed bin(35,0) array dcl 23 set ref 111 115* wsegp 420 based pointer level 2 dcl 1-12 ref 111 115 138 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. isp automatic pointer dcl 6-5 pcw based structure level 1 dcl 4-6 pcwp automatic pointer dcl 4-4 prt_bufferp automatic pointer dcl 1-66 prt_buffers based structure array level 1 dcl 1-79 tdcw based structure level 1 dcl 5-14 tdcwp automatic pointer dcl 5-4 wseg based bit(36) array dcl 1-78 NAMES DECLARED BY EXPLICIT CONTEXT. load_image 000066 constant entry external dcl 93 load_join 000115 constant label dcl 107 ref 97 load_vfc 000103 constant entry external dcl 102 prtdim_util$init 000015 constant entry external dcl 19 redo_sync 000236 constant label dcl 151 ref 169 sync_io 000166 constant entry internal dcl 125 ref 82 82 113 113 sync_wait 000263 constant label dcl 161 ref 171 188 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 640 674 452 650 Length 1202 452 34 271 165 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME prtdim_util$init 216 external procedure is an external procedure. sync_io 98 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME prtdim_util$init 000100 temp_iom_stat prtdim_util$init 000102 load_proc prtdim_util$init 000106 save_buffer prtdim_util$init 000252 ecode prtdim_util$init 000254 ipc_message prtdim_util$init 000264 pip prtdim_util$init 000266 pcip prtdim_util$init 000270 idcwp prtdim_util$init 000272 dcwp prtdim_util$init 000274 imp prtdim_util$init sync_io 000100 dp sync_io 000102 b sync_io THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var call_ext_out_desc call_ext_out return_mac ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. analyze_device_stat_ analyze_system_fault_ init_printer_ init_printer_$load_image init_printer_$load_vfc ioi_$connect ipc_$block THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$net_timeout error_table_$no_operation prt_status_table_$prt_status_table_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000011 79 000022 80 000027 82 000031 84 000050 86 000055 88 000063 93 000064 96 000073 97 000100 102 000101 105 000110 107 000115 109 000122 111 000124 113 000130 115 000147 117 000156 120 000164 125 000165 138 000173 139 000201 141 000204 142 000207 144 000211 145 000212 146 000215 148 000223 151 000236 153 000254 154 000257 155 000262 161 000263 163 000306 164 000311 165 000314 168 000315 169 000317 171 000324 172 000330 173 000333 174 000336 175 000341 178 000342 179 000345 180 000350 183 000402 185 000403 188 000422 192 000426 195 000443 197 000444 ----------------------------------------------------------- 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