COMPILATION LISTING OF SEGMENT spooling_dim_write_ 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.3 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 spooling_dim_write_: proc (a_sdbp, wkspptr, offset, nelem, nelemt, status); 12 13 /* SPOOLING_DIM_WRITE_ -- called each time a dprint request is to be spooled out onto tape. 14* The spooling tape is written via the tape_ansi_ IO Module. 15* 0) Created 12/4/74 by Janice B. Phillipps 16* 1) Updated for new prtdim_ and new IO Driver design 7/21/75 by J.Phillipps. 17* 2) Modified 1/31/78 by J. C. Whitmore for prtdim-spoolingdim merge. 18**/ 19 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 */ 20 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 21 3 1 /* BEGIN INCLUDE FILE ... spooling_info.incl.pl1 */ 3 2 /* Spooling IO Module control structure. Created 11/4/74 by Janice Phillipps */ 3 3 /* Modified 1/25/78 by J. C. Whitmore during spool driver update */ 3 4 3 5 dcl sip ptr; /* pointer to spooling info structure */ 3 6 3 7 dcl 1 spooling_info based (sip) aligned, /* spooling info structure */ 3 8 2 version fixed bin, /* version of structure */ 3 9 2 pad1 fixed bin, /* space broken for ptr allocation */ 3 10 2 iocbp ptr, /* ptr to io control block used by tape_ansi_ */ 3 11 2 switch_name char (32), /* name of io switch attached to tape_ansi_ */ 3 12 2 nvols fixed bin, /* number of tape volumes requested */ 3 13 2 density char (4), 3 14 2 block_lnth char (4), 3 15 2 volids (3) char (6), /* array of tape volume ids */ 3 16 2 filesetid char (6), /* name of current ansi file set */ 3 17 2 comment char (64), /* comment to operator at mount */ 3 18 2 phys_line_length fixed bin, 3 19 2 phys_page_length fixed bin, 3 20 2 filenumber fixed bin, /* number of current file on tape */ 3 21 2 static_number char (6) aligned, 3 22 2 flgs, 3 23 3 fst_call bit (1) unaligned, /* indicates first time thru attach code */ 3 24 3 lst_call bit (1) unaligned, /* indicates spooling tape will be detached */ 3 25 3 io_sw bit (1) unaligned, /* = "1"b if ring in tape */ 3 26 3 vol_mount bit (1) unaligned, 3 27 3 pad1 bit (32) unaligned, 3 28 2 spooling_limits, 3 29 3 spool_file_limit_sw fixed bin, /* = 1 when reached specified spooling file limit */ 3 30 3 spool_line_limit_sw fixed bin, /* = 1 when reached specifid spooling line limit */ 3 31 3 file_limit fixed bin (35), /* count of files to spool until */ 3 32 3 line_limit fixed bin (35), /* count of lines to spool until */ 3 33 2 spooling_file_count fixed bin (35), /* count of files spooled so far */ 3 34 2 spooling_line_count fixed bin (35); /* count of lines spooled so far */ 3 35 3 36 dcl spooling_info_version_4 fixed bin int static init (4) options (constant); 3 37 3 38 3 39 /* END INCLUDE FILE ... spooling_info.incl.pl1 */ 22 4 1 4 2 /* BEGIN INCLUDE FILE ... prt_conv_info.incl.pl1 */ 4 3 /* Modified: 12 September 1980 by G. Palter */ 4 4 4 5 4 6 /****^ HISTORY COMMENTS: 4 7* 1) change(87-05-10,Gilcrease), approve(87-07-31,MCR7686), 4 8* audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 4 9* Add modes.line_nbrs, flags.(eol eof) bits for eor -nb. 4 10* END HISTORY COMMENTS */ 4 11 4 12 4 13 dcl pcip ptr; /* pointer to conversion info structure */ 4 14 4 15 dcl 1 pci based (pcip) aligned, /* printer conversion info structure */ 4 16 2 cv_proc ptr, /* pointer to character conversion procedure */ 4 17 2 lmarg fixed bin, /* left margin indentation */ 4 18 2 rmarg fixed bin, /* right margin limit */ 4 19 2 page_length fixed bin, /* number of lines on page */ 4 20 2 phys_line_length fixed bin, /* physical width of paper */ 4 21 2 phys_page_length fixed bin, /* physical length of paper */ 4 22 2 lpi fixed bin, /* lines per inch */ 4 23 2 sheets_per_page fixed bin, /* sheets of paper per logical page */ 4 24 2 line_count fixed bin, /* count of converted lines */ 4 25 2 page_count fixed bin, /* count of converted pages */ 4 26 2 func fixed bin, /* special conversion function */ 4 27 /* 0 => normal conversion */ 4 28 /* 1 => change NL to FF */ 4 29 /* 2 => change NL to top inside page */ 4 30 /* 3 => change NL to end of page */ 4 31 /* 4 => change NL to top of outside page */ 4 32 (2 modes, /* conversion modes */ 4 33 3 overflow_off bit (1), /* "1"b to suppress end of page overflow */ 4 34 3 single_space bit (1), /* "1"b to change all forms advance chars to NL */ 4 35 3 non_edited bit (1), /* "1"b to print ASCII control chars */ 4 36 3 truncate bit (1), /* "1"b to truncate lines that are too long */ 4 37 3 esc bit (1), /* "1"b to process ESC character */ 4 38 3 ctl_char bit (1), /* "1"b to output control characters */ 4 39 3 line_nbrs bit (1), /* "1"b to output line numbers */ 4 40 3 pci_pad bit (5), 4 41 2 flags, /* flags internal to prt_conv_ */ 4 42 3 ignore_next_ff bit (1), /* ON => prt_conv_ just output a FF; ignore next character if 4 43* it's a FF */ 4 44 3 eol bit (1), /* "1"b = end-of-line encountered */ 4 45 3 eof bit (1), /* "1"b = end-of-segment encountered */ 4 46 3 flags_pad bit (3), 4 47 2 coroutine_modes, 4 48 3 upper_case bit(1), /* "1"b to convert to upper case */ 4 49 3 ht bit(1), /* "1"b to skip tab conversion */ 4 50 3 coroutine_pad bit(13), 4 51 3 slew_table_idx bit(3) ) unal, /* slew table index */ 4 52 2 top_label_line char (136), /* contains an optional top of page label */ 4 53 2 bot_label_line char (136), /* contains an optional bottom of page label */ 4 54 2 top_label_length fixed bin, /* length of top label line */ 4 55 2 bot_label_length fixed bin, /* length of bottom label line */ 4 56 2 form_stops (256) unal, /* logical form stops */ 4 57 3 lbits bit (9), /* leftmost bits */ 4 58 3 rbits bit (9), /* rightmost bits */ 4 59 4 60 /* The following items are for internal use by the print conversion procedure. 4 61* They should be zeroed once and then never referenced again. */ 4 62 4 63 2 level fixed bin, /* overstrike level */ 4 64 2 pos fixed bin, /* print position at end of incomplete line */ 4 65 2 line fixed bin, /* current line number */ 4 66 2 slew_residue fixed bin, /* number of lines remaining to be slewed */ 4 67 2 label_nelem fixed bin, /* characters remaining in label */ 4 68 2 label_wksp ptr, /* pointer to label being processed */ 4 69 2 sav_pos fixed bin, /* position saved during label processing */ 4 70 2 esc_state fixed bin, /* state of ESC processing */ 4 71 2 esc_num fixed bin, /* number following ESC sequence */ 4 72 2 temp bit (36); /* conversion proc temporary */ 4 73 4 74 /* End of include file ...... prt_conv_info.incl.pl1 */ 4 75 23 5 1 5 2 /* BEGIN INCLUDE FILE ... status.incl.pl1 */ 5 3 /* Overlay for ios status string. Created 11/4/74 by J. Phillipps */ 5 4 5 5 dcl 1 stat based (addr (status)) aligned, 5 6 2 fbpart fixed bin (35), /* error_table_ entry overlay */ 5 7 2 ios, 5 8 (3 pad1 bit (4), 5 9 3 bit41_trans_term bit (1), /* bit 41 -- transaction terminated */ 5 10 3 pad2 bit (10), 5 11 3 bit52_ion_detached bit (1), /* bit 52 -- ioname detached */ 5 12 2 pad3 bit (20)) unaligned; 5 13 5 14 /* END INCLUDE FILE ... status.incl.pl1 */ 24 25 26 dcl (addr, substr, null) builtin; 27 28 dcl (command_question, quit) condition; 29 30 dcl a_sdbp ptr, 31 bp ptr, /* ptr to buffer of converted output (from prt_conv_) */ 32 buf_len21 fixed bin (21), 33 char_cnt fixed bin (18), /* count of characters in output */ 34 code fixed bin (35), 35 inp ptr, /* ptr to of input for ptr_conv. Bit offset keeps track of pos */ 36 iocbp ptr, /* ptr to ansi dim control block */ 37 lnth fixed bin (18), /* length of input from output_request */ 38 nelem fixed bin, 39 nelemt fixed bin, 40 offset fixed bin, 41 offst fixed bin, 42 statp ptr, /* ptr to status string */ 43 status bit (72) aligned, 44 wkspptr ptr; 45 46 dcl wksp char (1) based unal; /* used for getting pointer to input string */ 47 48 dcl spool_static_$norestart fixed bin ext; /* ext switch set when spooling is to terminate */ 49 dcl spool_static_$file_attch fixed bin ext; 50 dcl spool_static_$debug fixed bin ext; 51 52 dcl error_table_$tape_error fixed bin (35) ext; 53 dcl error_table_$fatal_error fixed bin (35) ext; 54 dcl error_table_$no_operation fixed bin (35) ext; 55 dcl error_table_$eov_on_write fixed bin (35) ext; 56 dcl error_table_$not_open fixed bin (35) ext; 57 dcl error_table_$dev_nt_assnd fixed bin (35) ext; 58 dcl error_table_$device_end fixed bin (35) ext; 59 60 61 dcl com_err_ entry options (variable); 62 dcl ioa_ entry options (variable); 63 dcl iox_$write_record entry (ptr, ptr, fixed bin (21), fixed bin (35)); 64 dcl prt_conv_ entry (ptr, fixed bin (18), ptr, fixed bin (18), ptr); 65 dcl spooling_dim_order_ entry (ptr, char (*) aligned, ptr, bit (72) aligned); 66 dcl spooling_question_handler_ entry (ptr, fixed bin (35)); 67 68 69 70 71 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 72 sdb_ptr = a_sdbp; /* ptr to stream data block */ 73 statp = addr (status); /* ptr to overlay of ios status string */ 74 sip = addr (sdb.spool_info); /* ptr to spooling control structure */ 75 pcip = addr (sdb.conv_info); /* ptr to spooling conversion structure */ 76 status = (72)"0"b; 77 code = 0; 78 79 if spooling_info.version ^= spooling_info_version_4 then do; 80 stat.fbpart = error_table_$fatal_error; 81 return; 82 end; 83 84 on command_question begin; /* tape_ansi_ asks a lot of questions */ 85 call spooling_question_handler_ (sip, code); 86 if code ^= 0 then do; 87 spool_static_$norestart = 1; /* this will stop everything */ 88 if spool_static_$file_attch = 1 then 89 call ioa_ ("spooling_dim_write_: Last print request may not be fully processed."); 90 stat.fbpart = error_table_$device_end; 91 go to finish; 92 end; 93 end; 94 95 lnth = nelem; /* length of a line of current request */ 96 char_cnt = 0; /* length of spooled line returned from prt_conv_ */ 97 offst = offset; /* offset from input ptr */ 98 inp = addr (substr (wkspptr -> wksp, offset + 1, 1)); /* ptr to line to write */ 99 nelemt = 0; /* initial number of elements returned is zero */ 100 101 iocbp = sip -> spooling_info.iocbp; /* io control block ptr */ 102 if iocbp = null | spooling_info.vol_mount = "0"b then do; 103 stat.fbpart = error_table_$dev_nt_assnd; 104 return; 105 end; 106 bp = sdb_ptr -> sdb.buffer_ptr; /* ptr to output buffer */ 107 108 if spool_static_$norestart = 1 then do; 109 stat.fbpart = error_table_$device_end; 110 return; 111 end; 112 113 /* Now code convert user's dprint request line by line */ 114 115 do while (lnth > 0); /* loop until all elements transmitted */ 116 call prt_conv_ (inp, lnth, (bp), char_cnt, pcip); /* do code conversion */ 117 nelemt = nelem - lnth; /* undate number of chars transmitted */ 118 buf_len21 = char_cnt; 119 120 call iox_$write_record (iocbp, bp, buf_len21, code); /* call to put line out on tape */ 121 if code ^= 0 then do; /* process errors */ 122 if code = error_table_$no_operation then do; /* tape put up without ring */ 123 spool_static_$norestart = 1; /* thats all this time */ 124 if spool_static_$debug = 1 then 125 call ioa_ ("spooling_dim_write_: tape mounted without ring and trying to write."); 126 stat.fbpart = code; 127 end; 128 else if code = error_table_$tape_error then do; /* unrecoverable error */ 129 call spooling_dim_order_ (sdb_ptr, "demount_tape", null (), status); 130 spool_static_$norestart = 1; 131 stat.fbpart = error_table_$dev_nt_assnd; 132 end; 133 else do; 134 stat.fbpart = code; 135 if code = error_table_$not_open then 136 call ioa_ ("Trying to write when file not open."); 137 else if code = error_table_$eov_on_write then /* hit end of tape */ 138 call ioa_ ("Hit end of tape mark while writing."); 139 else do; 140 call com_err_ (code, "spooling_dim_write_", "error writing file: detaching current file."); 141 call spooling_dim_order_ (sdb_ptr, "file_close", null (), status); /* close and detach file */ 142 end; 143 end; 144 go to finish; 145 end; 146 end; 147 148 finish: sdb.chars_printed = sdb.chars_printed + nelem - lnth; /* bump the total count */ 149 150 return; 151 152 153 end spooling_dim_write_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/02/88 1541.5 spooling_dim_write_.pl1 >special_ldd>install>MR12.2-1019>spooling_dim_write_.pl1 20 1 11/04/83 1107.6 prt_sdb.incl.pl1 >ldd>include>prt_sdb.incl.pl1 21 2 08/29/75 1310.5 prt_info.incl.pl1 >ldd>include>prt_info.incl.pl1 22 3 02/23/78 1619.8 spooling_info.incl.pl1 >ldd>include>spooling_info.incl.pl1 23 4 02/02/88 1529.2 prt_conv_info.incl.pl1 >special_ldd>install>MR12.2-1019>prt_conv_info.incl.pl1 24 5 02/05/76 1532.2 status.incl.pl1 >ldd>include>status.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. a_sdbp parameter pointer dcl 30 ref 11 72 addr builtin function dcl 26 ref 73 74 75 80 90 98 103 109 126 131 134 bp 000114 automatic pointer dcl 30 set ref 106* 116 120* buf_len21 000116 automatic fixed bin(21,0) dcl 30 set ref 118* 120* buffer_ptr 432 based pointer level 2 dcl 1-12 ref 106 char_cnt 000117 automatic fixed bin(18,0) dcl 30 set ref 96* 116* 118 chars_printed 412 based fixed bin(35,0) level 2 dcl 1-12 set ref 148* 148 code 000120 automatic fixed bin(35,0) dcl 30 set ref 77* 85* 86 120* 121 122 126 128 134 135 137 140* com_err_ 000034 constant entry external dcl 61 ref 140 command_question 000106 stack reference condition dcl 28 ref 84 conv_info 54 based structure level 2 dcl 1-12 set ref 75 error_table_$dev_nt_assnd 000030 external static fixed bin(35,0) dcl 57 ref 103 131 error_table_$device_end 000032 external static fixed bin(35,0) dcl 58 ref 90 109 error_table_$eov_on_write 000024 external static fixed bin(35,0) dcl 55 ref 137 error_table_$fatal_error 000020 external static fixed bin(35,0) dcl 53 ref 80 error_table_$no_operation 000022 external static fixed bin(35,0) dcl 54 ref 122 error_table_$not_open 000026 external static fixed bin(35,0) dcl 56 ref 135 error_table_$tape_error 000016 external static fixed bin(35,0) dcl 52 ref 128 fbpart based fixed bin(35,0) level 2 dcl 5-5 set ref 80* 90* 103* 109* 126* 131* 134* flgs 54 based structure level 2 dcl 3-7 inp 000122 automatic pointer dcl 30 set ref 98* 116* ioa_ 000036 constant entry external dcl 62 ref 88 124 135 137 iocbp 000124 automatic pointer dcl 30 in procedure "spooling_dim_write_" set ref 101* 102 120* iocbp 2 based pointer level 2 in structure "spooling_info" dcl 3-7 in procedure "spooling_dim_write_" ref 101 iox_$write_record 000040 constant entry external dcl 63 ref 120 lnth 000126 automatic fixed bin(18,0) dcl 30 set ref 95* 115 116* 117 148 nelem parameter fixed bin(17,0) dcl 30 ref 11 95 117 148 nelemt parameter fixed bin(17,0) dcl 30 set ref 11 99* 117* null builtin function dcl 26 ref 102 129 129 141 141 offset parameter fixed bin(17,0) dcl 30 ref 11 97 98 offst 000127 automatic fixed bin(17,0) dcl 30 set ref 97* pci based structure level 1 dcl 4-15 pcip 000104 automatic pointer dcl 4-13 set ref 75* 116* prt_buffer based structure level 1 dcl 1-68 prt_conv_ 000042 constant entry external dcl 64 ref 116 prt_info based structure level 1 dcl 2-7 sdb based structure level 1 dcl 1-12 sdb_ptr 000100 automatic pointer dcl 1-10 set ref 72* 74 75 106 129* 141* 148 148 sip 000102 automatic pointer dcl 3-5 set ref 74* 79 85* 101 102 spool_info 434 based fixed bin(17,0) array level 2 dcl 1-12 set ref 74 spool_static_$debug 000014 external static fixed bin(17,0) dcl 50 ref 124 spool_static_$file_attch 000012 external static fixed bin(17,0) dcl 49 ref 88 spool_static_$norestart 000010 external static fixed bin(17,0) dcl 48 set ref 87* 108 123* 130* spooling_dim_order_ 000044 constant entry external dcl 65 ref 129 141 spooling_info based structure level 1 dcl 3-7 spooling_info_version_4 constant fixed bin(17,0) initial dcl 3-36 ref 79 spooling_question_handler_ 000046 constant entry external dcl 66 ref 85 stat based structure level 1 dcl 5-5 statp 000130 automatic pointer dcl 30 set ref 73* status parameter bit(72) dcl 30 set ref 11 73 76* 80 90 103 109 126 129* 131 134 141* substr builtin function dcl 26 ref 98 version based fixed bin(17,0) level 2 dcl 3-7 ref 79 vol_mount 54(03) based bit(1) level 3 packed unaligned dcl 3-7 ref 102 wksp based char(1) unaligned dcl 46 set ref 98 wkspptr parameter pointer dcl 30 ref 11 98 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. pip automatic pointer dcl 2-5 prt_bufferp automatic pointer dcl 1-66 prt_buffers based structure array level 1 dcl 1-79 quit 000000 stack reference condition dcl 28 wseg based bit(36) array dcl 1-78 NAMES DECLARED BY EXPLICIT CONTEXT. finish 000613 constant label dcl 148 ref 91 144 spooling_dim_write_ 000144 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 1046 1116 625 1056 Length 1424 625 50 272 220 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME spooling_dim_write_ 140 external procedure is an external procedure. on unit on line 84 87 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME spooling_dim_write_ 000100 sdb_ptr spooling_dim_write_ 000102 sip spooling_dim_write_ 000104 pcip spooling_dim_write_ 000114 bp spooling_dim_write_ 000116 buf_len21 spooling_dim_write_ 000117 char_cnt spooling_dim_write_ 000120 code spooling_dim_write_ 000122 inp spooling_dim_write_ 000124 iocbp spooling_dim_write_ 000126 lnth spooling_dim_write_ 000127 offst spooling_dim_write_ 000130 statp spooling_dim_write_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ ioa_ iox_$write_record prt_conv_ spooling_dim_order_ spooling_question_handler_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$dev_nt_assnd error_table_$device_end error_table_$eov_on_write error_table_$fatal_error error_table_$no_operation error_table_$not_open error_table_$tape_error spool_static_$debug spool_static_$file_attch spool_static_$norestart LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000136 72 000151 73 000155 74 000157 75 000161 76 000163 77 000167 79 000170 80 000173 81 000175 84 000176 85 000212 86 000223 87 000226 88 000231 90 000247 91 000254 93 000257 95 000260 96 000263 97 000264 98 000266 99 000272 101 000273 102 000276 103 000306 104 000311 106 000312 108 000315 109 000321 110 000323 115 000324 116 000326 117 000347 118 000353 120 000355 121 000372 122 000374 123 000377 124 000401 126 000417 127 000422 128 000423 129 000425 130 000460 131 000463 132 000466 134 000467 135 000471 137 000507 140 000525 141 000556 144 000611 146 000612 148 000613 150 000624 ----------------------------------------------------------- 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