COMPILATION LISTING OF SEGMENT spooling_dim_xtatch_ 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 12 /* SPOOLING_DIM_XTATCH_ -- handles the attach and detach functions for Multics Spooling IO Module. 13* 0) Created by Janice B. Phillipps 11/1/74. 14* 1) Updated 7/10/75 by J.Phillipps for new IO driver design. 15* 2) Modified 1/25/78 by J. C. Whitmore for new printer features and printer dim integration 16**/ 17 spooling_dim_xtatch_: proc; 18 1 1 1 2 /* BEGIN INCLUDE FILE ... status.incl.pl1 */ 1 3 /* Overlay for ios status string. Created 11/4/74 by J. Phillipps */ 1 4 1 5 dcl 1 stat based (addr (status)) aligned, 1 6 2 fbpart fixed bin (35), /* error_table_ entry overlay */ 1 7 2 ios, 1 8 (3 pad1 bit (4), 1 9 3 bit41_trans_term bit (1), /* bit 41 -- transaction terminated */ 1 10 3 pad2 bit (10), 1 11 3 bit52_ion_detached bit (1), /* bit 52 -- ioname detached */ 1 12 2 pad3 bit (20)) unaligned; 1 13 1 14 /* END INCLUDE FILE ... status.incl.pl1 */ 19 2 1 /* BEGIN INCLUDE FILE ... prt_sdb.incl.pl1 */ 2 2 /* Note: there is a corresponding prt_sdb.incl.alm */ 2 3 2 4 /* Created 10/28/74 by Noel I. Morris */ 2 5 /* Modified 3/15/77 by Noel I. Morris */ 2 6 /* Modified 1/25/78 by J. C. Whitmore to merge prtdim and spooling_dim versions */ 2 7 /* Modified: 27 November 1981 by G. Palter to add reload_vfc_train_after_special flag */ 2 8 /* Modified: 16 August 1983 by E. N. Kittlitz for new printer dim */ 2 9 2 10 dcl sdb_ptr ptr; /* pointer to stream data block */ 2 11 2 12 dcl 1 sdb aligned based (sdb_ptr), /* printer stream data block */ 2 13 2 outer_module_name char (32) aligned, 2 14 2 device_name_list_ptr pointer, 2 15 2 device_name, 2 16 3 next_device_ptr pointer, 2 17 3 name_size fixed bin (17), 2 18 3 name char (32) aligned, 2 19 2 ev_list aligned, /* Event list for ipc_ */ 2 20 3 count fixed bin (17), /* Event count = Always one */ 2 21 3 evchan fixed bin (71), /* Event channel name */ 2 22 2 stream_name char (32), /* stream name of this attachment */ 2 23 2 areap ptr, /* pointer to system free area */ 2 24 2 info like prt_info aligned, /* printer info */ 2 25 2 conv_info like pci aligned, /* conversion info */ 2 26 2 chars_printed fixed bin (35), /* input chars processed since "reset" */ 2 27 2 stop_every fixed bin, /* non-zero to stop after number of pages */ 2 28 2 stop_counter fixed bin, /* page stop counter */ 2 29 2 mode, /* additional modes */ 2 30 (3 single_page bit (1), /* "1"b to stop after each page */ 2 31 3 noprint bit (1), /* "1"b to suppress printing */ 2 32 3 pad bit (34)) unal, 2 33 2 rcp_id bit (36), /* RCP attachment ID */ 2 34 2 wsegp ptr, /* pointer to IOI working segment */ 2 35 2 running bit (1), /* "1"b if channel running */ 2 36 2 bgin fixed bin (18), /* index to oldest print line */ 2 37 2 stop fixed bin (18), /* index to next print line */ 2 38 2 prev fixed bin (18), /* index to previous print line */ 2 39 2 wait_flag bit (1) aligned, /* non-zero if waiting for special */ 2 40 2 marker_count fixed bin, /* counter for marker status insertion */ 2 41 2 paper_low bit (1) aligned, /* "1"b if paper low */ 2 42 2 error_count fixed bin, /* error counter */ 2 43 2 buffer_ptr ptr, /* pointer to output buffer (spooler) */ 2 44 2 spool_info (56) fixed bin, /* place to store spooling_info */ 2 45 2 reload_vfc_train_after_special bit (1) aligned, /* "1"b if VFC/train images should be reloaded after next 2 46* special interrupt */ 2 47 2 max_dcw_size fixed bin (12) uns unal, /* max wordcount of dcw */ 2 48 2 max_dcws fixed bin (6) uns unal, /* max dcws per idcw/buffer */ 2 49 2 n_dcws fixed bin (6) uns unal, /* current limit of dcws/buffer */ 2 50 2 b_begin fixed bin (3) uns unal, /* buffer index */ 2 51 2 b_stop fixed bin (3) uns unal, /* likewise */ 2 52 2 max_buffers fixed bin (3) uns unal, /* number of buffers allocated */ 2 53 2 n_buffers fixed bin (3) uns unal, /* number of buffers in use now */ 2 54 2 data_begin fixed bin (18) uns unal, /* first data word */ 2 55 2 data_end fixed bin (18) uns unal, /* size of working space in words */ 2 56 2 status_ptr ptr unal, /* ioi status area */ 2 57 2 flags aligned, 2 58 3 aborting bit (1) unal, /* next attempt to do i/o gets error and resets */ 2 59 3 eurc bit (1) unal, /* true if we know we are using EURC */ 2 60 3 flags_pad bit (16) unal, 2 61 2 version fixed bin unal, 2 62 2 status_table ptr unal, /* for analyze_device_stat_ */ 2 63 2 null_line_data bit (36) aligned, 2 64 2 null_line_dcw bit (36) aligned, 2 65 2 alarm_time fixed bin (71) unaligned; /* current timer_manager_ limit */ 2 66 dcl prt_bufferp ptr; 2 67 2 68 dcl 1 prt_buffer aligned based (prt_bufferp), 2 69 2 header, 2 70 3 number fixed bin (6) uns unal, 2 71 3 busy bit (1) unal, 2 72 3 pad bit (4) unal, 2 73 3 dcw_count fixed bin (7) uns unal, 2 74 3 data_ends fixed bin (18) uns unal, 2 75 2 idcw bit (36), 2 76 2 ddcw (sdb.max_dcws + 1) bit (36) aligned; 2 77 2 78 dcl wseg (0:sdb.data_end - 1) bit (36) aligned based (sdb.wsegp); /* the IOI buffer segment */ 2 79 dcl 1 prt_buffers (0:sdb.max_buffers - 1) aligned like prt_buffer based (sdb.wsegp); 2 80 2 81 /* NOTE: The Spooling_dim IO Module also uses this include file, 2 82* as it uses the printer stream also. If changes are made to this include file, 2 83* see to it that the changes are also reflected in the Spooling_dim procedures. 2 84* The spooling_dim uses the standard printer_dim order and changemode procedures. 2 85* JCW 1/25/78 */ 2 86 2 87 /* END INCLUDE FILE ... prt_sdb.incl.pl1 */ 20 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 21 4 1 4 2 /* Begin include file ...... prt_info.incl.pl1 */ 4 3 /* last modified 6/12/75 by Noel I. Morris */ 4 4 4 5 dcl pip ptr; /* pointer to printer info structure */ 4 6 4 7 dcl 1 prt_info based (pip) aligned, /* printer info structure */ 4 8 2 devname char (4), /* name of device */ 4 9 2 devx fixed bin, /* device index */ 4 10 2 model fixed bin, /* printer model number */ 4 11 2 type fixed bin, /* printer type number */ 4 12 2 train fixed bin, /* print train ID */ 4 13 2 line_length fixed bin, /* max length of printed line */ 4 14 2 print_idcw bit (36), /* IDCW to print 1 line */ 4 15 2 term_idcw bit (36); /* IDCW to stop printer channel */ 4 16 4 17 /* End of include file ...... prt_info.incl.pl1 */ 4 18 22 5 1 /* BEGIN INCLUDE FILE ... spooling_info.incl.pl1 */ 5 2 /* Spooling IO Module control structure. Created 11/4/74 by Janice Phillipps */ 5 3 /* Modified 1/25/78 by J. C. Whitmore during spool driver update */ 5 4 5 5 dcl sip ptr; /* pointer to spooling info structure */ 5 6 5 7 dcl 1 spooling_info based (sip) aligned, /* spooling info structure */ 5 8 2 version fixed bin, /* version of structure */ 5 9 2 pad1 fixed bin, /* space broken for ptr allocation */ 5 10 2 iocbp ptr, /* ptr to io control block used by tape_ansi_ */ 5 11 2 switch_name char (32), /* name of io switch attached to tape_ansi_ */ 5 12 2 nvols fixed bin, /* number of tape volumes requested */ 5 13 2 density char (4), 5 14 2 block_lnth char (4), 5 15 2 volids (3) char (6), /* array of tape volume ids */ 5 16 2 filesetid char (6), /* name of current ansi file set */ 5 17 2 comment char (64), /* comment to operator at mount */ 5 18 2 phys_line_length fixed bin, 5 19 2 phys_page_length fixed bin, 5 20 2 filenumber fixed bin, /* number of current file on tape */ 5 21 2 static_number char (6) aligned, 5 22 2 flgs, 5 23 3 fst_call bit (1) unaligned, /* indicates first time thru attach code */ 5 24 3 lst_call bit (1) unaligned, /* indicates spooling tape will be detached */ 5 25 3 io_sw bit (1) unaligned, /* = "1"b if ring in tape */ 5 26 3 vol_mount bit (1) unaligned, 5 27 3 pad1 bit (32) unaligned, 5 28 2 spooling_limits, 5 29 3 spool_file_limit_sw fixed bin, /* = 1 when reached specified spooling file limit */ 5 30 3 spool_line_limit_sw fixed bin, /* = 1 when reached specifid spooling line limit */ 5 31 3 file_limit fixed bin (35), /* count of files to spool until */ 5 32 3 line_limit fixed bin (35), /* count of lines to spool until */ 5 33 2 spooling_file_count fixed bin (35), /* count of files spooled so far */ 5 34 2 spooling_line_count fixed bin (35); /* count of lines spooled so far */ 5 35 5 36 dcl spooling_info_version_4 fixed bin int static init (4) options (constant); 5 37 5 38 5 39 /* END INCLUDE FILE ... spooling_info.incl.pl1 */ 23 24 25 dcl (addr, null, length, rtrim, string) builtin; 26 27 dcl code fixed bin (35), 28 ioname char (*), /* parameter (input) - stream attached */ 29 ioname2 char (*), /* parameter (input) - printer name */ 30 mode char (*), /* parameter (input) - attachment mode */ 31 device char (32), /* temp for device name */ 32 status bit (72) aligned, /* parameter (output) - status return */ 33 type char (*) aligned; /* parameter (input) - dim name */ 34 35 dcl listen_area area ((16374)) based (areap), 36 areap ptr; 37 38 dcl data_buf char (164) aligned based; /* output buffer for write entry */ 39 40 dcl spool_conv_$spool_conv_ ext; 41 dcl spool_static_$tally_printed fixed bin ext; /* tally printing flag initial zero */ 42 dcl spool_static_$debug fixed bin ext; 43 dcl spool_static_$file_attch fixed bin ext; 44 dcl spool_static_$norestart fixed bin ext; 45 46 dcl error_table_$no_room_for_dsb ext fixed bin (35); 47 dcl error_table_$ionmat fixed bin (35) ext; 48 49 50 dcl file_monitor_$cleanup entry (ptr, char (*), fixed bin (35)); 51 dcl get_spooling_data_$initial entry (ptr, char (*) aligned, fixed bin (35)); 52 dcl get_system_free_area_ entry (ptr); 53 dcl spooling_dim_order_ entry (ptr, char (*) aligned, ptr, bit (72) aligned); 54 55 56 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 57 attach: entry (ioname, type, ioname2, mode, status, sdb_ptr); 58 59 60 status = (72)"0"b; /* clear return ios status */ 61 if sdb_ptr ^= null () then do; 62 stat.fbpart = error_table_$ionmat; /* if multiple attachment return code */ 63 go to exit; 64 end; 65 66 call get_system_free_area_ (areap); /* get ptr to area in listen_ before alloc */ 67 allocate sdb in (listen_area) set (sdb_ptr); /* create stream data block */ 68 if sdb_ptr = null then do; 69 no_dsb: stat.fbpart = error_table_$no_room_for_dsb; /* woops. */ 70 go to exit; 71 end; 72 sdb.buffer_ptr = null; 73 allocate data_buf in (listen_area) set (sdb.buffer_ptr); 74 if sdb.buffer_ptr = null then do; 75 free sdb in (listen_area); /* we have to have both, else no attach */ 76 go to no_dsb; /* drop it */ 77 end; 78 79 sdb.buffer_ptr -> data_buf = ""; /* initialize to blank chars */ 80 81 /* Fill in stream data block */ 82 83 device = ioname2; /* see what we are to attach to */ 84 if device = "" then device = "tape_spool_out"; /* be sure we have a name */ 85 86 sdb.areap = areap; /* save ptr to free area */ 87 sdb.outer_module_name = "spooldim_"; /* name of this IO module */ 88 sdb.device_name_list_ptr = addr (sdb.device_name); /* set ptr */ 89 sdb.next_device_ptr = null; /* only one device allowed */ 90 sdb.stream_name = ioname; /* name of this attachment */ 91 sdb.device_name.name = device; /* put attached device name in sdb */ 92 sdb.name_size = length (rtrim (sdb.device_name.name)); 93 94 sip = addr (sdb.spool_info); /* get ptr to spooling info data base */ 95 96 /* initialize the structure as was done by initial attributes before 1/25/78 */ 97 98 spooling_info.version = spooling_info_version_4; /* the current version */ 99 spooling_info.switch_name = sdb.device_name.name; /* device is the switch attached to tape_ansi_ */ 100 spooling_info.iocbp = null; /* the switch is not attached yet */ 101 string (spooling_info.flgs) = ""b; 102 spooling_info.flgs.fst_call = "1"b; /* mark as the first attachment */ 103 104 spooling_info.flgs.io_sw = "1"b; /* mount tape with write ring */ 105 spooling_info.filesetid = ""; /* no previous ANSI file-set being processed */ 106 spooling_info.filenumber = 0; 107 spooling_info.spooling_line_count = 0; 108 spooling_info.spooling_file_count = 0; 109 spooling_info.phys_line_length = 132; /* this is the default for the spooling dim */ 110 spooling_info.phys_page_length = 66; /* assume 11 inch paper at 6 lpi */ 111 112 pcip = addr (sdb.conv_info); /* get ptr to code conversion info */ 113 114 /* Fill in conversion info -- to be used by prt_conv_ and spool_conv_ */ 115 116 pci.cv_proc = addr (spool_conv_$spool_conv_); /* formatting output proc */ 117 pci.phys_line_length = spooling_info.phys_line_length; /* sets wrapping column */ 118 pci.phys_page_length = spooling_info.phys_page_length; 119 pci.lpi = 6; /* the default lines per inch value */ 120 pci.level = 0; /* overstrike level */ 121 pci.pos = 0; /* print position at end of incomplete line */ 122 pci.line = 1; /* current line number */ 123 pci.slew_residue = 0; /* number of lines remaining to be slewed */ 124 pci.label_wksp = null (); /* pointer to label being processed */ 125 pci.label_nelem = 0; /* characters remaining in label */ 126 pci.sav_pos = 0; /* position saved during label processing */ 127 pci.esc_state = 0; 128 pci.esc_num = 0; 129 pci.temp = "0"b; /* conversion proc temporary */ 130 131 call spooling_dim_order_ (sdb_ptr, "reset", null, status); /* initialize prt_conv_ info */ 132 133 return; 134 135 136 137 detach: entry (sdb_ptr, ioname2, mode, status); 138 139 status = (72)"0"b; /* clear return status */ 140 sip = addr (sdb.spool_info); /* get ptr to spooling spool_info data base */ 141 142 if spooling_info.flgs.vol_mount then 143 call file_monitor_$cleanup (sip, "", code); /* drop tape if it is up */ 144 145 areap = sdb.areap; /* ptr to area */ 146 free sdb.buffer_ptr -> data_buf in (listen_area); 147 free sdb in (listen_area); /* free up allocated stream data block */ 148 149 exit: stat.ios.bit41_trans_term = "1"b; /* set transaction terminated bit */ 150 stat.ios.bit52_ion_detached = "1"b; /* set detach bit */ 151 152 153 154 return; 155 156 157 158 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 159 debug_on: entry; /* turns debug on */ 160 161 spool_static_$debug = 1; 162 return; 163 164 165 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 166 debug_off: entry; /* turns debug off */ 167 168 spool_static_$debug = 0; 169 return; 170 171 172 end spooling_dim_xtatch_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/02/88 1541.5 spooling_dim_xtatch_.pl1 >special_ldd>install>MR12.2-1019>spooling_dim_xtatch_.pl1 19 1 02/05/76 1532.2 status.incl.pl1 >ldd>include>status.incl.pl1 20 2 11/04/83 1107.6 prt_sdb.incl.pl1 >ldd>include>prt_sdb.incl.pl1 21 3 02/02/88 1529.2 prt_conv_info.incl.pl1 >special_ldd>install>MR12.2-1019>prt_conv_info.incl.pl1 22 4 08/29/75 1310.5 prt_info.incl.pl1 >ldd>include>prt_info.incl.pl1 23 5 02/23/78 1619.8 spooling_info.incl.pl1 >ldd>include>spooling_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. addr builtin function dcl 25 ref 62 69 88 94 112 116 140 149 150 areap 000116 automatic pointer dcl 35 in procedure "spooling_dim_xtatch_" set ref 66* 67 73 75 86 145* 146 147 areap 42 based pointer level 2 in structure "sdb" dcl 2-12 in procedure "spooling_dim_xtatch_" set ref 86* 145 bit41_trans_term 1(04) based bit(1) level 3 packed unaligned dcl 1-5 set ref 149* bit52_ion_detached 1(15) based bit(1) level 3 packed unaligned dcl 1-5 set ref 150* buffer_ptr 432 based pointer level 2 dcl 2-12 set ref 72* 73* 74 79 146 code 000104 automatic fixed bin(35,0) dcl 27 set ref 142* conv_info 54 based structure level 2 dcl 2-12 set ref 112 cv_proc based pointer level 2 dcl 3-15 set ref 116* data_buf based char(164) dcl 38 set ref 73 79* 146 device 000105 automatic char(32) unaligned dcl 27 set ref 83* 84 84* 91 device_name 12 based structure level 2 dcl 2-12 set ref 88 device_name_list_ptr 10 based pointer level 2 dcl 2-12 set ref 88* error_table_$ionmat 000016 external static fixed bin(35,0) dcl 47 ref 62 error_table_$no_room_for_dsb 000014 external static fixed bin(35,0) dcl 46 ref 69 esc_num 334 based fixed bin(17,0) level 2 dcl 3-15 set ref 128* esc_state 333 based fixed bin(17,0) level 2 dcl 3-15 set ref 127* fbpart based fixed bin(35,0) level 2 dcl 1-5 set ref 62* 69* file_monitor_$cleanup 000020 constant entry external dcl 50 ref 142 filenumber 51 based fixed bin(17,0) level 2 dcl 5-7 set ref 106* filesetid 25 based char(6) level 2 dcl 5-7 set ref 105* flgs 54 based structure level 2 dcl 5-7 set ref 101* fst_call 54 based bit(1) level 3 packed unaligned dcl 5-7 set ref 102* get_system_free_area_ 000022 constant entry external dcl 52 ref 66 io_sw 54(02) based bit(1) level 3 packed unaligned dcl 5-7 set ref 104* iocbp 2 based pointer level 2 dcl 5-7 set ref 100* ioname parameter char unaligned dcl 27 ref 57 90 ioname2 parameter char unaligned dcl 27 ref 57 83 137 ios 1 based structure level 2 dcl 1-5 label_nelem 327 based fixed bin(17,0) level 2 dcl 3-15 set ref 125* label_wksp 330 based pointer level 2 dcl 3-15 set ref 124* length builtin function dcl 25 ref 92 level 323 based fixed bin(17,0) level 2 dcl 3-15 set ref 120* line 325 based fixed bin(17,0) level 2 dcl 3-15 set ref 122* listen_area based area(16374) dcl 35 ref 67 73 75 146 147 lpi 7 based fixed bin(17,0) level 2 dcl 3-15 set ref 119* mode parameter char unaligned dcl 27 ref 57 137 name 15 based char(32) level 3 dcl 2-12 set ref 91* 92 99 name_size 14 based fixed bin(17,0) level 3 dcl 2-12 set ref 92* next_device_ptr 12 based pointer level 3 dcl 2-12 set ref 89* null builtin function dcl 25 ref 61 68 72 74 89 100 124 131 131 outer_module_name based char(32) level 2 dcl 2-12 set ref 87* pci based structure level 1 dcl 3-15 pcip 000100 automatic pointer dcl 3-13 set ref 112* 116 117 118 119 120 121 122 123 124 125 126 127 128 129 phys_line_length 5 based fixed bin(17,0) level 2 in structure "pci" dcl 3-15 in procedure "spooling_dim_xtatch_" set ref 117* phys_line_length 47 based fixed bin(17,0) level 2 in structure "spooling_info" dcl 5-7 in procedure "spooling_dim_xtatch_" set ref 109* 117 phys_page_length 6 based fixed bin(17,0) level 2 in structure "pci" dcl 3-15 in procedure "spooling_dim_xtatch_" set ref 118* phys_page_length 50 based fixed bin(17,0) level 2 in structure "spooling_info" dcl 5-7 in procedure "spooling_dim_xtatch_" set ref 110* 118 pos 324 based fixed bin(17,0) level 2 dcl 3-15 set ref 121* prt_buffer based structure level 1 dcl 2-68 prt_info based structure level 1 dcl 4-7 rtrim builtin function dcl 25 ref 92 sav_pos 332 based fixed bin(17,0) level 2 dcl 3-15 set ref 126* sdb based structure level 1 dcl 2-12 set ref 67 75 147 sdb_ptr parameter pointer dcl 2-10 set ref 57 61 67* 68 72 73 74 75 79 86 87 88 88 89 90 91 92 92 94 99 112 131* 137 140 145 146 147 sip 000102 automatic pointer dcl 5-5 set ref 94* 98 99 100 101 102 104 105 106 107 108 109 110 117 118 140* 142 142* slew_residue 326 based fixed bin(17,0) level 2 dcl 3-15 set ref 123* spool_conv_$spool_conv_ 000010 external static fixed bin(17,0) dcl 40 set ref 116 spool_info 434 based fixed bin(17,0) array level 2 dcl 2-12 set ref 94 140 spool_static_$debug 000012 external static fixed bin(17,0) dcl 42 set ref 161* 168* spooling_dim_order_ 000024 constant entry external dcl 53 ref 131 spooling_file_count 61 based fixed bin(35,0) level 2 dcl 5-7 set ref 108* spooling_info based structure level 1 dcl 5-7 spooling_info_version_4 constant fixed bin(17,0) initial dcl 5-36 ref 98 spooling_line_count 62 based fixed bin(35,0) level 2 dcl 5-7 set ref 107* stat based structure level 1 dcl 1-5 status parameter bit(72) dcl 27 set ref 57 60* 62 69 131* 137 139* 149 150 stream_name 32 based char(32) level 2 dcl 2-12 set ref 90* string builtin function dcl 25 set ref 101* switch_name 4 based char(32) level 2 dcl 5-7 set ref 99* temp 335 based bit(36) level 2 dcl 3-15 set ref 129* type parameter char dcl 27 ref 57 version based fixed bin(17,0) level 2 dcl 5-7 set ref 98* vol_mount 54(03) based bit(1) level 3 packed unaligned dcl 5-7 set ref 142 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. get_spooling_data_$initial 000000 constant entry external dcl 51 pip automatic pointer dcl 4-5 prt_bufferp automatic pointer dcl 2-66 prt_buffers based structure array level 1 dcl 2-79 spool_static_$file_attch external static fixed bin(17,0) dcl 43 spool_static_$norestart external static fixed bin(17,0) dcl 44 spool_static_$tally_printed external static fixed bin(17,0) dcl 41 wseg based bit(36) array dcl 2-78 NAMES DECLARED BY EXPLICIT CONTEXT. attach 000044 constant entry external dcl 57 debug_off 000474 constant entry external dcl 166 debug_on 000462 constant entry external dcl 159 detach 000364 constant entry external dcl 137 exit 000453 constant label dcl 149 ref 63 70 no_dsb 000133 constant label dcl 69 ref 76 spooling_dim_xtatch_ 000030 constant entry external dcl 17 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 652 700 504 662 Length 1174 504 26 257 146 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME spooling_dim_xtatch_ 122 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME spooling_dim_xtatch_ 000100 pcip spooling_dim_xtatch_ 000102 sip spooling_dim_xtatch_ 000104 code spooling_dim_xtatch_ 000105 device spooling_dim_xtatch_ 000116 areap spooling_dim_xtatch_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry ext_entry_desc op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. file_monitor_$cleanup get_system_free_area_ spooling_dim_order_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$ionmat error_table_$no_room_for_dsb spool_conv_$spool_conv_ spool_static_$debug LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000027 57 000035 60 000101 61 000105 62 000111 63 000113 66 000114 67 000122 68 000127 69 000133 70 000136 72 000137 73 000141 74 000150 75 000156 76 000160 79 000161 83 000165 84 000175 86 000204 87 000206 88 000213 89 000215 90 000221 91 000231 92 000234 94 000246 98 000250 99 000252 100 000255 101 000257 102 000260 104 000262 105 000264 106 000267 107 000270 108 000271 109 000272 110 000274 112 000276 116 000302 117 000305 118 000307 119 000311 120 000313 121 000314 122 000315 123 000317 124 000320 125 000322 126 000323 127 000324 128 000325 129 000326 131 000327 133 000356 137 000357 139 000407 140 000413 142 000417 145 000443 146 000447 147 000451 149 000453 150 000456 154 000460 159 000461 161 000467 162 000472 166 000473 168 000501 169 000503 ----------------------------------------------------------- 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