COMPILATION LISTING OF SEGMENT init_printer_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 02/02/88 1647.2 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 12 /* Printer initialization routine: initializes a newly-attached printer; it also is used to reset the printer's line and 13* page counters and printer modes when required by the I/O daemon */ 14 15 /* Created: 21 October 1974 by Noel I. Morris */ 16 /* Modified: 10 March 1977 by Noel I. Morris */ 17 /* Modified: 12 September 1980 by G. Palter to reset pci.flags (new member of structure) */ 18 /* Modified: 26 November 1981 as part of the fix to entry 0035 (phx11995) from the io_daemon error list: 19* If a print file contains the sequence "ESC c" which is the start of the skip to logical channel printer escape 20* sequence, the I/O daemon will scan without printing all subsequent print data looking for the ETX character which 21* terminates the sequence even though non-numeric characters are encountered before the ETX. (This sequence consists 22* of "ESC c" followed by a number from 1 to 16 followed by the ETX). The daemon continues looking for the ETX across 23* requests causing an unknown amount of printed output to be lost */ 24 25 26 init_printer_: 27 procedure (pip, pcip, iop, rcode); 28 29 dcl iop entry (bit (36) aligned, bit (2) aligned, ptr, fixed bin (12), bit (1) aligned), 30 /* procedure to do I/O */ 31 rcode fixed bin (35); /* error code */ 32 /* 1 => bad configuration data */ 33 /* 2 => unable to read detailed status */ 34 /* 3 => unable to load train image */ 35 /* 4 => unable to load VFC image */ 36 /* 5 => printer does not need train or VFC image */ 37 38 dcl i fixed bin, /* iteration index */ 39 reset_idcw bit (36) aligned, /* to build a reset status idcw */ 40 errsw bit (1) aligned; /* I/O procedure error indicator */ 41 42 dcl printer_images_$n_images fixed bin ext, 43 printer_images_$image_numbers (10) fixed bin ext, 44 printer_images_$image_base ext, 45 printer_images_$image_offsets (10) fixed bin (18) ext, 46 printer_images_$image_lengths (10) fixed bin (12) ext, 47 pr2_conv_$pr2_conv_ ext, 48 pr3_conv_$pr3_conv_ ext; 49 50 dcl (addr, addrel, bin, bit, null, size, string) builtin; 51 52 53 54 1 1 1 2 /* Begin include file ...... prt_info.incl.pl1 */ 1 3 /* last modified 6/12/75 by Noel I. Morris */ 1 4 1 5 dcl pip ptr; /* pointer to printer info structure */ 1 6 1 7 dcl 1 prt_info based (pip) aligned, /* printer info structure */ 1 8 2 devname char (4), /* name of device */ 1 9 2 devx fixed bin, /* device index */ 1 10 2 model fixed bin, /* printer model number */ 1 11 2 type fixed bin, /* printer type number */ 1 12 2 train fixed bin, /* print train ID */ 1 13 2 line_length fixed bin, /* max length of printed line */ 1 14 2 print_idcw bit (36), /* IDCW to print 1 line */ 1 15 2 term_idcw bit (36); /* IDCW to stop printer channel */ 1 16 1 17 /* End of include file ...... prt_info.incl.pl1 */ 1 18 55 56 2 1 /* BEGIN INCLUDE FILE ... printer_types.incl.pl1 */ 2 2 2 3 dcl models (13) fixed bin static options (constant) init /* table of printer model numbers */ 2 4 (202, 300, 301, 302, 303, 304, 401, 402, 901, 1000, 1200, 1201, 1600); 2 5 2 6 dcl types (13) fixed bin static options (constant) init /* table of corresponding printer types */ 2 7 ( 1, 2, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4, 4); 2 8 2 9 dcl nmodels fixed bin static options (constant) init (13); /* number of models known */ 2 10 2 11 dcl (default_line_length init (136), /* default print line length */ 2 12 default_page_length init (60), /* default print page length */ 2 13 default_lpi init (6) /* default lines per inch */ 2 14 ) fixed bin static options (constant); 2 15 2 16 dcl WRITE (4) bit (6) aligned static options (constant) init /* printer write edited commands */ 2 17 ("011000"b, "011000"b, "011100"b, "011100"b); 2 18 2 19 dcl WRITE_NE_SLEW (4) bit (6) aligned static options (constant) init /* printer write non-edited commands */ 2 20 ("001001"b, "001001"b, "001101"b, "001101"b); 2 21 2 22 dcl LOAD_IMAGE (4) bit (6) aligned static options (constant) init /* printer load image buffer commands */ 2 23 ("000000"b, "001100"b, "000001"b, "000001"b); 2 24 2 25 dcl LOAD_VFC (4) bit (6) aligned static options (constant) init /* printer load VFC image commands */ 2 26 ("000000"b, "000000"b, "000000"b, "000101"b); 2 27 2 28 dcl READ_STATUS (4) bit (6) aligned static options (constant) init /* printer read detailed status command */ 2 29 ("000000"b, "000000"b, "000000"b, "000011"b); 2 30 2 31 /* END INCLUDE FILE ... printer_types.incl.pl1 */ 2 32 57 58 59 60 61 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 62 63 64 65 66 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 67 68 69 70 71 72 rcode = 0; /* Clear error code. */ 73 74 do i = 1 to nmodels; /* Search for model number. */ 75 if prt_info.model = models (i) then go to model_found; 76 end; 77 78 rcode = 1; /* Unable to find legitimate model number. */ 79 return; 80 81 82 model_found: 83 prt_info.type = types (i); /* Extract printer type. */ 84 if prt_info.line_length = -1 then /* If line size not supplied ... */ 85 prt_info.line_length = default_line_length; /* Use default line length. */ 86 87 if pcip ^= null () then /* If conversion info structure provided ... */ 88 if prt_info.type = 1 then /* If BCD type printer ... */ 89 pci.cv_proc = addr (pr2_conv_$pr2_conv_); /* Set conversion procedure. */ 90 else /* If ASCII type printer ... */ 91 pci.cv_proc = addr (pr3_conv_$pr3_conv_); 92 93 94 prt_info.print_idcw = make_idcw (WRITE (prt_info.type)); 95 /* Initialize IDCW to print line. */ 96 97 prt_info.term_idcw = make_idcw ("100000"b); /* Initialize IDCW to stop printer. */ 98 idcwp = addr (prt_info.term_idcw); /* Get pointer to IDCW. */ 99 idcw.chan_cmd = "000010"b; /* Make it non-data transfer operation. */ 100 idcw.count = bit (bin (1, 6)); 101 102 if pcip ^= null () then do; /* If conversion structure provided ... */ 103 pci.phys_line_length = prt_info.line_length; /* Set physical line limitation. */ 104 pci.phys_page_length = default_page_length + 6; /* Set length of physical page. */ 105 pci.lpi = default_lpi; /* Set number of lines per inch. */ 106 107 call reset (pcip); /* Reset line counters and modes. */ 108 109 pci.level = 0; /* Reset conversion info just once. */ 110 pci.pos = 0; 111 pci.line = 1; 112 pci.slew_residue = 0; 113 pci.label_nelem = 0; 114 pci.temp = "0"b; 115 end; 116 117 118 119 120 if READ_STATUS (prt_info.type) then do; /* If detailed status to be read ... */ 121 122 /* call iop (make_idcw (READ_STATUS (type)), "10"b, addr (printerstatus), size (printerstatus), 123* /* errsw); 124* /* if errsw then do; 125* /* rcode = 2; /* unable to read status */ 126 /* return; 127* /* end; 128**/ 129 end; 130 131 /* Do a reset status operation to clear out any old status from previous user. */ 132 133 reset_idcw = make_idcw ("100000"b); /* Build skelton idcw */ 134 idcwp = addr (reset_idcw); /* get base of it */ 135 idcw.chan_cmd = "000010"b; /* make it non-data transfer */ 136 idcw.count = "000001"b; 137 call iop (reset_idcw, "00"b, null, 0, errsw); 138 if errsw then do; 139 rcode = 2; 140 return; 141 end; 142 143 144 call load_image (pip, pcip, iop, rcode); /* Make call to load train image. */ 145 if rcode = 5 then rcode = 0; /* this model can't do it, that's OK */ 146 147 /* make a separate call to load the VFC image */ 148 149 return; 150 151 152 153 154 load_image: entry (pip, pcip, iop, rcode); 155 156 rcode = 0; /* Clear the error code. */ 157 158 if LOAD_IMAGE (prt_info.type) then do; /* If image must be loaded ... */ 159 do i = 1 to printer_images_$n_images; /* Search for appropriate image. */ 160 if prt_info.train = printer_images_$image_numbers (i) then 161 go to image_found; 162 end; 163 164 rcode = 1; /* Image not found. */ 165 return; 166 167 image_found: 168 call iop (make_idcw (LOAD_IMAGE (prt_info.type)), "01"b, 169 addrel (addr (printer_images_$image_base), printer_images_$image_offsets (i)), 170 printer_images_$image_lengths (i), 171 errsw); 172 if errsw then 173 rcode = 3; /* unable to load train image */ 174 end; 175 176 else /* This model printer does not have train image. */ 177 rcode = 5; 178 179 return; 180 181 182 183 184 load_vfc: entry (pip, pcip, iop, rcode); 185 186 dcl 1 vfc_image aligned, /* print VFC image */ 187 (2 lpi fixed bin (8), /* lines per inch */ 188 2 image_length fixed bin (8), /* number of lines represented by image */ 189 2 toip, /* top of inside page info */ 190 3 line fixed bin (8), /* line number */ 191 3 pattern bit (9), /* VFC pattern */ 192 2 boip, /* bottom of inside page info */ 193 3 line fixed bin (8), /* line number */ 194 3 pattern bit (9), /* VFC pattern */ 195 2 toop, /* top of outside page info */ 196 3 line fixed bin (8), /* line number */ 197 3 pattern bit (9), /* VFC pattern */ 198 2 boop, /* bottom of outside page info */ 199 3 line fixed bin (8), /* line number */ 200 3 pattern bit (9), /* VFC pattern */ 201 2 pad bit (18)) unal; /* fill out last word */ 202 203 dcl (toip_pattern init ("113"b3), /* top of inside page pattern */ 204 toop_pattern init ("111"b3), /* top of outside page pattern */ 205 bop_pattern init ("060"b3)) /* bottom of page pattern */ 206 bit (9) static options (constant); 207 208 rcode = 0; /* Clear the error code. */ 209 210 if LOAD_VFC (prt_info.type) then do; /* If VFC image must be loaded ... */ 211 vfc_image.lpi = pci.lpi; /* Fill in the VFC image. */ 212 vfc_image.image_length = 2 * pci.phys_page_length; 213 vfc_image.toip.line = 4; 214 vfc_image.toip.pattern = toip_pattern; 215 vfc_image.boip.line = pci.phys_page_length - 2; 216 vfc_image.boip.pattern = bop_pattern; 217 vfc_image.toop.line = pci.phys_page_length + 4; 218 vfc_image.toop.pattern = toop_pattern; 219 vfc_image.boop.line = 2 * pci.phys_page_length - 2; 220 vfc_image.boop.pattern = bop_pattern; 221 vfc_image.pad = "0"b; 222 223 call iop (make_idcw (LOAD_VFC (prt_info.type)), "01"b, addr (vfc_image), size (vfc_image), errsw); 224 if errsw then 225 rcode = 4; /* unable to load VFC image */ 226 end; 227 228 else /* This model printer does not support VFC image. */ 229 rcode = 5; 230 231 return; 232 233 234 235 236 make_idcw: proc (cmd) returns (bit (36) aligned); /* interal proc to make IDCW */ 237 238 dcl cmd bit (6) aligned; /* command code */ 239 240 dcl 1 i like idcw aligned auto; /* automatic copy of IDCW */ 241 242 243 string (i) = "0"b; /* Clear IDCW. */ 244 i.command = cmd; /* Copy command code. */ 245 i.device = "000001"b; /* Set device code. */ 246 i.code = "111"b; /* Set IDCW ID bits. */ 247 248 return (string (i)); /* Return completed IDCW. */ 249 250 251 end make_idcw; 252 253 254 255 256 reset: entry (pcip); /* Entry to reset counters and modes. */ 257 258 259 pci.lmarg = 0; 260 pci.rmarg = pci.phys_line_length; 261 pci.page_length = pci.phys_page_length - pci.lpi; 262 pci.sheets_per_page = 1; 263 pci.line_count = 0; 264 pci.page_count = 0; 265 pci.func = 0; 266 pci.modes = "0"b; 267 pci.flags = "0"b; 268 pci.top_label_line = ""; 269 pci.bot_label_line = ""; 270 pci.top_label_length = 0; 271 pci.bot_label_length = 0; 272 pci.esc_state = 0; 273 pci.esc_num = 0; 274 275 return; 276 277 278 279 end init_printer_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/02/88 1535.6 init_printer_.pl1 >special_ldd>install>MR12.2-1019>init_printer_.pl1 55 1 08/29/75 1310.5 prt_info.incl.pl1 >ldd>include>prt_info.incl.pl1 57 2 06/18/82 1915.4 printer_types.incl.pl1 >ldd>include>printer_types.incl.pl1 62 3 02/02/88 1529.2 prt_conv_info.incl.pl1 >special_ldd>install>MR12.2-1019>prt_conv_info.incl.pl1 67 4 05/06/74 1742.1 iom_pcw.incl.pl1 >ldd>include>iom_pcw.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. LOAD_IMAGE 000010 constant bit(6) initial array dcl 2-22 set ref 158 167* 167* LOAD_VFC 000004 constant bit(6) initial array dcl 2-25 set ref 210 223* 223* READ_STATUS 000000 constant bit(6) initial array dcl 2-28 ref 120 WRITE 000014 constant bit(6) initial array dcl 2-16 set ref 94* addr builtin function dcl 50 ref 87 90 98 134 167 167 223 223 addrel builtin function dcl 50 ref 167 167 bin builtin function dcl 50 ref 100 bit builtin function dcl 50 ref 100 boip 1 000106 automatic structure level 2 packed unaligned dcl 186 boop 2 000106 automatic structure level 2 packed unaligned dcl 186 bop_pattern constant bit(9) initial unaligned dcl 203 ref 216 220 bot_label_length 122 based fixed bin(17,0) level 2 dcl 3-15 set ref 271* bot_label_line 57 based char(136) level 2 dcl 3-15 set ref 269* chan_cmd 0(24) based bit(6) level 2 packed unaligned dcl 4-21 set ref 99* 135* cmd parameter bit(6) dcl 238 ref 236 244 code 0(18) 000124 automatic bit(3) level 2 packed unaligned dcl 240 set ref 246* command 000124 automatic bit(6) level 2 packed unaligned dcl 240 set ref 244* count 0(30) based bit(6) level 2 packed unaligned dcl 4-21 set ref 100* 136* cv_proc based pointer level 2 dcl 3-15 set ref 87* 90* default_line_length constant fixed bin(17,0) initial dcl 2-11 ref 84 default_lpi constant fixed bin(17,0) initial dcl 2-11 ref 105 default_page_length constant fixed bin(17,0) initial dcl 2-11 ref 104 device 0(06) 000124 automatic bit(6) level 2 packed unaligned dcl 240 set ref 245* errsw 000102 automatic bit(1) dcl 38 set ref 137* 138 167* 172 223* 224 esc_num 334 based fixed bin(17,0) level 2 dcl 3-15 set ref 273* esc_state 333 based fixed bin(17,0) level 2 dcl 3-15 set ref 272* flags 14(12) based structure level 2 packed unaligned dcl 3-15 set ref 267* func 13 based fixed bin(17,0) level 2 dcl 3-15 set ref 265* i 000124 automatic structure level 1 dcl 240 in procedure "make_idcw" set ref 243* 248 i 000100 automatic fixed bin(17,0) dcl 38 in procedure "init_printer_" set ref 74* 75* 82 159* 160* 167 167 167 idcw based structure level 1 dcl 4-21 idcwp 000104 automatic pointer dcl 4-19 set ref 98* 99 100 134* 135 136 image_length 0(09) 000106 automatic fixed bin(8,0) level 2 packed unaligned dcl 186 set ref 212* iop parameter entry variable dcl 29 set ref 26 137 144* 154 167 184 223 label_nelem 327 based fixed bin(17,0) level 2 dcl 3-15 set ref 113* level 323 based fixed bin(17,0) level 2 dcl 3-15 set ref 109* line 1(18) 000106 automatic fixed bin(8,0) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 217* line 325 based fixed bin(17,0) level 2 in structure "pci" dcl 3-15 in procedure "init_printer_" set ref 111* line 1 000106 automatic fixed bin(8,0) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 215* line 0(18) 000106 automatic fixed bin(8,0) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 213* line 2 000106 automatic fixed bin(8,0) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 219* line_count 11 based fixed bin(17,0) level 2 dcl 3-15 set ref 263* line_length 5 based fixed bin(17,0) level 2 dcl 1-7 set ref 84 84* 103 lmarg 2 based fixed bin(17,0) level 2 dcl 3-15 set ref 259* lpi 000106 automatic fixed bin(8,0) level 2 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 211* lpi 7 based fixed bin(17,0) level 2 in structure "pci" dcl 3-15 in procedure "init_printer_" set ref 105* 211 261 model 2 based fixed bin(17,0) level 2 dcl 1-7 ref 75 models 000035 constant fixed bin(17,0) initial array dcl 2-3 ref 75 modes 14 based structure level 2 packed unaligned dcl 3-15 set ref 266* nmodels constant fixed bin(17,0) initial dcl 2-9 ref 74 null builtin function dcl 50 ref 87 102 137 137 pad 2(18) 000106 automatic bit(18) level 2 packed unaligned dcl 186 set ref 221* page_count 12 based fixed bin(17,0) level 2 dcl 3-15 set ref 264* page_length 4 based fixed bin(17,0) level 2 dcl 3-15 set ref 261* pattern 1(27) 000106 automatic bit(9) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 218* pattern 0(27) 000106 automatic bit(9) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 214* pattern 1(09) 000106 automatic bit(9) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 216* pattern 2(09) 000106 automatic bit(9) level 3 in structure "vfc_image" packed unaligned dcl 186 in procedure "init_printer_" set ref 220* pci based structure level 1 dcl 3-15 pcip parameter pointer dcl 3-13 set ref 26 87 87 90 102 103 104 105 107* 109 110 111 112 113 114 144* 154 184 211 212 215 217 219 256 259 260 260 261 261 261 262 263 264 265 266 267 268 269 270 271 272 273 phys_line_length 5 based fixed bin(17,0) level 2 dcl 3-15 set ref 103* 260 phys_page_length 6 based fixed bin(17,0) level 2 dcl 3-15 set ref 104* 212 215 217 219 261 pip parameter pointer dcl 1-5 set ref 26 75 82 84 84 87 94 94 97 98 103 120 144* 154 158 160 167 167 184 210 223 223 pos 324 based fixed bin(17,0) level 2 dcl 3-15 set ref 110* pr2_conv_$pr2_conv_ 000022 external static fixed bin(17,0) dcl 42 set ref 87 pr3_conv_$pr3_conv_ 000024 external static fixed bin(17,0) dcl 42 set ref 90 print_idcw 6 based bit(36) level 2 dcl 1-7 set ref 94* printer_images_$image_base 000014 external static fixed bin(17,0) dcl 42 set ref 167 167 printer_images_$image_lengths 000020 external static fixed bin(12,0) array dcl 42 set ref 167* printer_images_$image_numbers 000012 external static fixed bin(17,0) array dcl 42 ref 160 printer_images_$image_offsets 000016 external static fixed bin(18,0) array dcl 42 ref 167 167 printer_images_$n_images 000010 external static fixed bin(17,0) dcl 42 ref 159 prt_info based structure level 1 dcl 1-7 rcode parameter fixed bin(35,0) dcl 29 set ref 26 72* 78* 139* 144* 145 145* 154 156* 164* 172* 176* 184 208* 224* 228* reset_idcw 000101 automatic bit(36) dcl 38 set ref 133* 134 137* rmarg 3 based fixed bin(17,0) level 2 dcl 3-15 set ref 260* sheets_per_page 10 based fixed bin(17,0) level 2 dcl 3-15 set ref 262* size builtin function dcl 50 ref 223 223 slew_residue 326 based fixed bin(17,0) level 2 dcl 3-15 set ref 112* string builtin function dcl 50 set ref 243* 248 temp 335 based bit(36) level 2 dcl 3-15 set ref 114* term_idcw 7 based bit(36) level 2 dcl 1-7 set ref 97* 98 toip 0(18) 000106 automatic structure level 2 packed unaligned dcl 186 toip_pattern constant bit(9) initial unaligned dcl 203 ref 214 toop 1(18) 000106 automatic structure level 2 packed unaligned dcl 186 toop_pattern constant bit(9) initial unaligned dcl 203 ref 218 top_label_length 121 based fixed bin(17,0) level 2 dcl 3-15 set ref 270* top_label_line 15 based char(136) level 2 dcl 3-15 set ref 268* train 4 based fixed bin(17,0) level 2 dcl 1-7 ref 160 type 3 based fixed bin(17,0) level 2 dcl 1-7 set ref 82* 87 94 120 158 167 167 210 223 223 types 000020 constant fixed bin(17,0) initial array dcl 2-6 ref 82 vfc_image 000106 automatic structure level 1 dcl 186 set ref 223 223 223 223 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. WRITE_NE_SLEW internal static bit(6) initial array dcl 2-19 pcw based structure level 1 dcl 4-6 pcwp automatic pointer dcl 4-4 NAMES DECLARED BY EXPLICIT CONTEXT. image_found 000420 constant label dcl 167 ref 160 init_printer_ 000067 constant entry external dcl 26 load_image 000352 constant entry external dcl 154 ref 144 load_vfc 000500 constant entry external dcl 184 make_idcw 000723 constant entry internal dcl 236 ref 94 97 133 167 167 223 223 model_found 000124 constant label dcl 82 ref 75 reset 000633 constant entry external dcl 256 ref 107 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1112 1140 763 1122 Length 1420 763 26 243 127 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME init_printer_ 114 external procedure is an external procedure. make_idcw internal procedure shares stack frame of external procedure init_printer_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME init_printer_ 000100 i init_printer_ 000101 reset_idcw init_printer_ 000102 errsw init_printer_ 000104 idcwp init_printer_ 000106 vfc_image init_printer_ 000124 i make_idcw THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var call_ext_in return_mac ext_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. pr2_conv_$pr2_conv_ pr3_conv_$pr3_conv_ printer_images_$image_base printer_images_$image_lengths printer_images_$image_numbers printer_images_$image_offsets printer_images_$n_images LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000062 72 000077 74 000100 75 000107 76 000116 78 000120 79 000123 82 000124 84 000126 87 000133 90 000147 94 000153 97 000166 98 000203 99 000210 100 000212 102 000217 103 000223 104 000227 105 000231 107 000233 109 000241 110 000244 111 000245 112 000247 113 000250 114 000251 120 000252 133 000260 134 000264 135 000266 136 000270 137 000272 138 000316 139 000321 140 000324 144 000325 145 000342 149 000347 154 000350 156 000362 158 000364 159 000371 160 000401 162 000412 164 000414 165 000417 167 000420 172 000464 174 000472 176 000473 179 000475 184 000476 208 000510 210 000512 211 000517 212 000524 213 000531 214 000533 215 000535 216 000541 217 000543 218 000547 219 000551 220 000555 221 000557 223 000561 224 000616 226 000624 228 000625 231 000627 256 000630 259 000643 260 000646 261 000650 262 000653 263 000655 264 000656 265 000657 266 000660 267 000700 268 000710 269 000713 270 000716 271 000717 272 000720 273 000721 275 000722 236 000723 243 000725 244 000726 245 000730 246 000732 248 000734 ----------------------------------------------------------- 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