COMPILATION LISTING OF SEGMENT plot_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/18/82 1641.7 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ****************************************************** 10* * * 11* * * 12* * Copyright (c) 1972 by Massachusetts Institute of * 13* * Technology and Honeywell Information Systems, Inc. * 14* * * 15* * * 16* ****************************************************** */ 17 18 plot_: proc (xparam, yparam, xydim, vec_sw, symbol); 19 20 /* Multics Graphics Plotting Package 21* Written circa 9/12/70 by C. D. Tavares 22* Modified 03/03/75 by CDT to fix numeric values: values on axes sometimes represented logs, not values. 23* Modified 06/06/75 by CDT to fix bug: user-supplied scale factors for any log plotting were not being "logged" themselves. 24* Modified 04/23/80 by CDT to make values on log axes appear as "e4.5" instead of "6.997524"(!) 25* and to change calls to com_err_ to sub_err_. Also added gullibility checks in user value-setting entries 26* and added heuristic to force axis values that were two orders of magnitude smaller than their compatriots to zero. 27* Last modified 03/29/81 by Steve Carlock to increase the number of points that can be plotted. */ 28 29 30 dcl (xparam (*), yparam (*)) float bin, 31 code fixed bin (35), 32 i fixed bin, 33 ioa_$rsnnl ext entry options (variable), 34 sub_err_ ext entry options (variable), 35 (x (xydim) based (xptr), y (xydim) based (yptr)) float bin, 36 (xptr, yptr) pointer, 37 (xlabel, ylabel, title) char (100) varying static initial (""), 38 symbol char (1), 39 error_table_$bad_arg ext fixed bin (35) static, 40 (type, grid_sw) fixed bin static initial (1), 41 eq_scl_sw fixed bin static initial (0), 42 vec_sw fixed bin, 43 xydim fixed bin; 44 45 dcl Plot_width float bin static options (constant) initial (8e2); 46 47 dcl cleanup condition; 48 49 dcl jfx fixed bin, 50 log10_of_base float bin static initial (1e0), 51 wipe_me fixed bin static initial (1), 52 (xmin, xmax, ymin, ymax) float bin static, 53 (j, vtic, htic) fixed bin, 54 (abspread, jfl) float bin, 55 (incrx, incry) float bin static, 56 compensation float bin, 57 (xlines, ylines) fixed bin internal static, 58 (gxincr, gyincr) float bin static, 59 (abs, binary, divide, fixed, float, index, length, log10, ltrim, max, mod, null, substr) builtin; 60 1 1 /* --------------- BEGIN include file graphic_etypes.incl.pl1 --------------- */ 1 2 1 3 /* Types of position, mode, and other effectors for the 1 4* Multics General Graphic System */ 1 5 1 6 1 7 /* Null code */ 1 8 1 9 dcl (Null initial (-1), 1 10 1 11 /* Position codes */ 1 12 1 13 Setposition initial (0), 1 14 Setpoint initial (1), 1 15 Vector initial (2), 1 16 Shift initial (3), 1 17 Point initial (4), 1 18 1 19 /* Mode codes, with values where appropriate */ 1 20 1 21 Scaling initial (8), 1 22 Rotation initial (9), 1 23 Clipping initial (10), 1 24 1 25 Intensity initial (16), 1 26 Full_intensity initial (7), 1 27 Half_intensity initial (3), 1 28 Invisible initial (0), 1 29 1 30 Linetype initial (17), 1 31 Solid initial (0), 1 32 Dashed initial (1), 1 33 Dotted initial (2), 1 34 Dash_dotted initial (3), 1 35 Long_dashed initial (4), 1 36 1 37 Sensitivity initial (18), 1 38 Sensitive initial (1), 1 39 Insensitive initial (0), 1 40 1 41 Blink initial (19), 1 42 Steady initial (0), 1 43 Blinking initial (1), 1 44 1 45 Color initial (20), 1 46 1 47 Symbol initial (24), 1 48 1 49 /* Text code, with legal alignments */ 1 50 1 51 Text initial (25), 1 52 Upper_left initial (1), 1 53 Upper_center initial (2), 1 54 Upper_right initial (3), 1 55 Left initial (4), 1 56 Center initial (5), 1 57 Right initial (6), 1 58 Lower_left initial (7), 1 59 Lower_center initial (8), 1 60 Lower_right initial (9), 1 61 1 62 /* Datablock code */ 1 63 1 64 Datablock initial (26), 1 65 1 66 /* Structural effector codes */ 1 67 1 68 List initial (32), 1 69 Array initial (33), 1 70 1 71 /* Merge codes for gm_$get_struc and gm_$put_struc */ 1 72 1 73 On_dup_error initial (0), /* allow no name duplications */ 1 74 On_dup_source initial (1), /* on name dup, force move (use source copy) */ 1 75 On_dup_target_then_nulls initial (2), /* on name dup, use target copy, for nondup symbols create null ones */ 1 76 On_dup_target_then_source initial (3), /* on name dup, use target copy, for nondup symbols, use source copy */ 1 77 1 78 /* Device codes for graphic input devices */ 1 79 1 80 Terminal_program initial (0), 1 81 Keyboard initial (1), 1 82 Mouse initial (2), 1 83 Joystick initial (3), 1 84 Tablet_and_pen initial (4), 1 85 Light_pen initial (5), 1 86 Trackball initial (6), 1 87 Any_device initial (63)) /* 63 is equivalent to -1 in SPI */ 1 88 1 89 fixed bin internal static options (constant); 1 90 1 91 /* ---------------- END include file graphic_etypes.incl.pl1 ---------------- */ 61 62 2 1 /* --------------- BEGIN include file plot_entry_dcls.incl.pl1 --------------- */ 2 2 2 3 dcl plot_ ext entry (float bin dimension (*), float bin dimension (*), fixed bin, fixed bin, char (1)), 2 4 plot_$setup ext entry (char (*), char (*), char (*), fixed bin, float bin, fixed bin, fixed bin), 2 5 plot_$scale ext entry (float bin, float bin, float bin, float bin); 2 6 2 7 dcl (Vectors_only initial (1), /* vec_sw; fourth arg to plot_ */ 2 8 Vectors_and_symbols initial (2), 2 9 Symbols_only initial (3), 2 10 2 11 Linear_linear initial (1), /* type; fourth arg to plot_$setup */ 2 12 Log_linear initial (2), 2 13 Linear_log initial (3), 2 14 Log_log initial (4), 2 15 2 16 Tick_marks initial (0), /* grid_sw; fifth arg to plot_$setup */ 2 17 Dotted_grid initial (1), 2 18 Solid_grid initial (2), 2 19 No_grid initial (3), 2 20 2 21 Normal_scaling initial (0), /* eq_scale_sw; sixth arg to plot_$setup */ 2 22 Equal_scaling initial (1)) fixed bin static options (constant); 2 23 2 24 /* ---------------- END include file plot_entry_dcls.incl.pl1 ---------------- */ 63 64 3 1 /* *************** BEGIN INCLUDE FILE gm_entry_dcls.incl.pl1 *************** */ 3 2 3 3 dcl (graphic_manipulator_$init, 3 4 gm_$init) entry (fixed bin (35)); 3 5 3 6 dcl (graphic_manipulator_$segp, 3 7 gm_$segp) entry (pointer, fixed bin (35)); 3 8 3 9 dcl (graphic_manipulator_$create_position, 3 10 gm_$create_position, 3 11 graphic_manipulator_$cpos, 3 12 gm_$cpos) entry (fixed bin, float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 3 13 3 14 dcl (graphic_manipulator_$create_mode, 3 15 gm_$create_mode, 3 16 graphic_manipulator_$cmode, 3 17 gm_$cmode) entry (fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 18 3 19 dcl (graphic_manipulator_$create_scale, 3 20 gm_$create_scale, 3 21 graphic_manipulator_$cscale, 3 22 gm_$cscale) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 3 23 3 24 dcl (graphic_manipulator_$create_rotation, 3 25 gm_$create_rotation, 3 26 graphic_manipulator_$crot, 3 27 gm_$crot) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 3 28 3 29 dcl (graphic_manipulator_$create_clip, 3 30 gm_$create_clip, 3 31 graphic_manipulator_$cclip, 3 32 gm_$cclip) entry (float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), 3 33 fixed bin (35)) returns (fixed bin (18)); 3 34 3 35 dcl (graphic_manipulator_$create_color, 3 36 gm_$create_color, 3 37 graphic_manipulator_$ccolor, 3 38 gm_$ccolor) entry (fixed bin, fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 39 3 40 dcl (graphic_manipulator_$create_text, 3 41 gm_$create_text, 3 42 graphic_manipulator_$ctext, 3 43 gm_$ctext) entry (fixed bin, fixed bin, char (*), fixed bin (35)) returns (fixed bin (18)); 3 44 3 45 dcl (graphic_manipulator_$create_data, 3 46 gm_$create_data, 3 47 graphic_manipulator_$cdata, 3 48 gm_$cdata) entry (fixed bin, bit (*), fixed bin (35)) returns (fixed bin (18)); 3 49 3 50 dcl (graphic_manipulator_$create_list, 3 51 gm_$create_list, 3 52 graphic_manipulator_$clist, 3 53 gm_$clist) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 54 3 55 dcl (graphic_manipulator_$create_array, 3 56 gm_$create_array, 3 57 graphic_manipulator_$carray, 3 58 gm_$carray) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 59 3 60 dcl (graphic_manipulator_$assign_name, 3 61 gm_$assign_name) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 62 3 63 dcl (graphic_manipulator_$find_structure, 3 64 gm_$find_structure, 3 65 graphic_manipulator_$fstruc, 3 66 gm_$fstruc) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 67 3 68 dcl (graphic_manipulator_$add_element, 3 69 gm_$add_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)); 3 70 3 71 dcl (graphic_manipulator_$replace_element, 3 72 gm_$replace_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 73 3 74 dcl (graphic_manipulator_$replace_node, 3 75 gm_$replace_node) entry (fixed bin (18), fixed bin (18), fixed bin (35)); 3 76 3 77 dcl (graphic_manipulator_$remove_symbol, 3 78 gm_$remove_symbol) entry (char (*), fixed bin (35)); 3 79 3 80 dcl (graphic_manipulator_$replicate, 3 81 gm_$replicate) entry (fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 82 3 83 dcl (graphic_manipulator_$examine_type, 3 84 gm_$examine_type) entry (fixed bin (18), bit (1) aligned, fixed bin, fixed bin (35)); 3 85 3 86 dcl (graphic_manipulator_$examine_position, 3 87 gm_$examine_position, 3 88 graphic_manipulator_$epos, 3 89 gm_$epos) entry (fixed bin (18), fixed bin, float bin, float bin, float bin, fixed bin (35)); 3 90 3 91 dcl (graphic_manipulator_$examine_mode, 3 92 gm_$examine_mode, 3 93 graphic_manipulator_$emode, 3 94 gm_$emode) entry (fixed bin (18), fixed bin, fixed bin, fixed bin (35)); 3 95 3 96 dcl (graphic_manipulator_$examine_color, 3 97 gm_$examine_color, 3 98 graphic_manipulator_$ecolor, 3 99 gm_$ecolor) entry (fixed bin (18), fixed bin, fixed bin, fixed bin, fixed bin (35)); 3 100 3 101 dcl (graphic_manipulator_$examine_mapping, 3 102 gm_$examine_mapping, 3 103 graphic_manipulator_$emap, 3 104 gm_$emap) entry (fixed bin (18), fixed bin, float bin dimension (*), fixed bin, fixed bin (35)); 3 105 3 106 dcl (graphic_manipulator_$examine_contents, 3 107 gm_$examine_contents) entry (fixed bin (18), fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 3 108 3 109 dcl (graphic_manipulator_$examine_list, 3 110 gm_$examine_list, 3 111 graphic_manipulator_$elist, 3 112 gm_$elist) entry (fixed bin (18), dimension (*) fixed bin (18), fixed bin, fixed bin (35)); 3 113 3 114 dcl (graphic_manipulator_$examine_symtab, 3 115 graphic_manipulator_$esymtab, 3 116 gm_$examine_symtab, 3 117 gm_$esymtab) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 3 118 3 119 dcl (graphic_manipulator_$examine_symbol, 3 120 gm_$examine_symbol, 3 121 graphic_manipulator_$esymbol, 3 122 gm_$esymbol) entry (fixed bin (18), fixed bin (18), fixed bin, char (*), fixed bin (35)); 3 123 3 124 dcl (graphic_manipulator_$examine_text, 3 125 gm_$examine_text, 3 126 graphic_manipulator_$etext, 3 127 gm_$etext) entry (fixed bin (18), fixed bin, fixed bin, char (*), fixed bin (35)); 3 128 3 129 dcl (graphic_manipulator_$examine_data, 3 130 gm_$examine_data, 3 131 graphic_manipulator_$edata, 3 132 gm_$edata) entry (fixed bin (18), fixed bin, bit (*), fixed bin (35)); 3 133 3 134 dcl (graphic_manipulator_$get_struc, 3 135 gm_$get_struc, 3 136 graphic_manipulator_$gstruc, 3 137 gm_$gstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 3 138 3 139 dcl (graphic_manipulator_$put_struc, 3 140 gm_$put_struc, 3 141 graphic_manipulator_$pstruc, 3 142 gm_$pstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 3 143 3 144 dcl (graphic_manipulator_$save_file, 3 145 gm_$save_file) entry (char (*), char (*), fixed bin (35)); 3 146 3 147 dcl (graphic_manipulator_$use_file, 3 148 gm_$use_file) entry (char (*), char (*), fixed bin (35)); 3 149 3 150 /* **************** END INCLUDE FILE gm_entry_dcls.incl.pl1 **************** */ 65 66 4 1 /* *************** BEGIN INCLUDE FILE gc_entry_dcls.incl.pl1 *************** */ 4 2 4 3 dcl (graphic_compiler_$tree_ptr, 4 4 gc_$tree_ptr) entry returns (pointer); 4 5 4 6 dcl (graphic_compiler_$return_string, 4 7 gc_$return_string, 4 8 graphic_compiler_$rs, 4 9 gc_$rs) entry (fixed bin (18), pointer, fixed bin, fixed bin (35)); 4 10 4 11 dcl (graphic_compiler_$display_append, 4 12 gc_$display_append, 4 13 graphic_compiler_$da, 4 14 gc_$da) entry (fixed bin (18), fixed bin (35)); 4 15 4 16 dcl (graphic_compiler_$display_append_switch, 4 17 gc_$display_append_switch, 4 18 graphic_compiler_$da_switch, 4 19 gc_$da_switch) entry (fixed bin (18), fixed bin (35), pointer); 4 20 4 21 dcl (graphic_compiler_$display, 4 22 gc_$display, 4 23 graphic_compiler_$d, 4 24 gc_$d) entry (fixed bin (18), fixed bin (35)); 4 25 4 26 dcl (graphic_compiler_$display_switch, 4 27 gc_$display_switch, 4 28 graphic_compiler_$d_switch, 4 29 gc_$d_switch) entry (fixed bin (18), fixed bin (35), pointer); 4 30 4 31 dcl (graphic_compiler_$load, 4 32 gc_$load, 4 33 graphic_compiler_$l, 4 34 gc_$l) entry (fixed bin (18), fixed bin (35)); 4 35 4 36 dcl (graphic_compiler_$load_switch, 4 37 gc_$load_switch, 4 38 graphic_compiler_$l_switch, 4 39 gc_$l_switch) entry (fixed bin (18), fixed bin (35), pointer); 4 40 4 41 dcl (graphic_compiler_$display_name_append, 4 42 gc_$display_name_append, 4 43 graphic_compiler_$dna, 4 44 gc_$dna) entry (char (*), fixed bin (35)); 4 45 4 46 dcl (graphic_compiler_$display_name_append_switch, 4 47 gc_$display_name_append_switch, 4 48 graphic_compiler_$dna_switch, 4 49 gc_$dna_switch) entry (char (*), fixed bin (35), pointer); 4 50 4 51 dcl (graphic_compiler_$display_name, 4 52 gc_$display_name, 4 53 graphic_compiler_$dn, 4 54 gc_$dn) entry (char (*), fixed bin (35)); 4 55 4 56 dcl (graphic_compiler_$display_name_switch, 4 57 gc_$display_name_switch, 4 58 graphic_compiler_$dn_switch, 4 59 gc_$dn_switch) entry (char (*), fixed bin (35), pointer); 4 60 4 61 dcl (graphic_compiler_$load_name, 4 62 gc_$load_name, 4 63 graphic_compiler_$ln, 4 64 gc_$ln) entry (char (*), fixed bin (35)); 4 65 4 66 dcl (graphic_compiler_$load_name_switch, 4 67 gc_$load_name_switch, 4 68 graphic_compiler_$ln_switch, 4 69 gc_$ln_switch) entry (char (*), fixed bin (35), pointer); 4 70 4 71 dcl (graphic_compiler_$prune_tree, 4 72 gc_$prune_tree) entry (fixed bin (35)); 4 73 4 74 /* **************** END INCLUDE FILE gc_entry_dcls.incl.pl1 **************** */ 67 68 69 70 dcl (g, h) (200) fixed bin (18), 71 string char (40) varying; 72 73 dcl (xcoord, ycoord, oxc, oyc) float bin, 74 fig fixed bin (18), 75 temp_array (1) fixed bin (18), 76 current_sublist fixed bin (18), 77 figure fixed bin (18); 78 79 dcl sys_area_p pointer static initial (null), 80 sys_area area based (sys_area_p), 81 get_system_free_area_ ext entry returns (pointer); 82 83 default (float) binary; /* Let me explain why I did this: */ 84 85 /* If you don't do this, all the constants in the program of the form 86* 1e0, 2e-1, etc. are made into decimal quantities by the compiler. This 87* is not only slow, but the compiler has bugs so that it doesn't always work. It 88* produces over and underflows, illegal procedures, no execute permissions, and 89* other unpalatable things. Maintainers, just be forewarned it's there, and why. */ 90 91 call graphic_manipulator_$init (code); /* initialize graphics */ 92 if code ^= 0 then goto crump; 93 94 if sys_area_p = null then sys_area_p = get_system_free_area_ (); 95 96 xptr, yptr = null; 97 98 on cleanup call clean_up; 99 100 allocate x in (sys_area), y in (sys_area); 101 /* get the arrays needed in this entry */ 102 103 do i = 1 to xydim; 104 x (i) = xparam (i); 105 y (i) = yparam (i); 106 end; 107 108 if type ^= Linear_linear then do; /* We have some logarithms to compute... */ 109 if type ^= Linear_log then call make_log (x); /* must log x values */ 110 if type ^= Log_linear then call make_log (y); /* must log y values */ 111 end; 112 113 make_log: proc (array); 114 115 dcl array (*) float bin parameter; 116 117 do i = 1 to xydim; /* because logb(n) = loga(n)/loga(b) */ 118 array (i) = log10 (array (i))/log10_of_base; 119 end; 120 end make_log; 121 122 123 if wipe_me = 0 then fig = 0; /* grid already out there */ 124 125 else do; /* first plot, must figure out some stuff */ 126 127 if have_minmaxes then do; /* use user-supplied scaling factors */ 128 129 if mod (type, 2) = 0 then do; /* take log of the x axis factors */ 130 xmax = log10 (static_xmax) / log10_of_base; 131 xmin = log10 (static_xmin) / log10_of_base; 132 end; 133 else do; /* else the x-axis is linear, just copy */ 134 xmax = static_xmax; 135 xmin = static_xmin; 136 end; 137 138 if type > 2 then do; /* take log of the y-axis */ 139 ymax = log10 (static_ymax) / log10_of_base; 140 ymin = log10 (static_ymin) / log10_of_base; 141 end; 142 else do; /* else the y-axis is linear, just copy */ 143 ymax = static_ymax; 144 ymin = static_ymin; 145 end; 146 end; 147 148 else do; 149 xmin, xmax = x (1); /* find max and min values by linear sort */ 150 ymin, ymax = y (1); 151 152 do i = 2 to xydim; 153 if x (i) > xmax then xmax = x (i); 154 if x (i) < xmin then xmin = x (i); 155 if y (i) > ymax then ymax = y (i); 156 if y (i) < ymin then ymin = y (i); 157 end; 158 end; 159 160 call make_grid; 161 162 end; 163 164 /* -------------------------------------------------------------- */ 165 166 make_grid: proc; 167 168 /* Puts good-looking grid into fig */ 169 170 call scale_plot (xmax, xmin, incrx, gxincr, xlines); 171 call scale_plot (ymax, ymin, incry, gyincr, ylines); 172 173 scale_plot: proc (maxval, minval, incrval, gincrval, nlines); /* figures out proper dimensions and tic values */ 174 175 dcl (maxval, minval, incrval, gincrval) float bin parameter, 176 nlines fixed bin parameter; 177 178 dcl spread float bin, 179 fixjunk fixed bin, 180 floatjunk float bin; 181 182 spread = maxval - minval; 183 184 if spread = 0e0 then /* flat line graph */ 185 if minval = 0e0 then do; /* at zero, yet */ 186 minval = -1e-2; /* as good as anything */ 187 maxval = 1e-2; 188 spread = 2e-2; 189 end; 190 else do; /* flat line but not at zero */ 191 maxval = maxval + (0.1e0 * abs (maxval)); 192 minval = minval - (0.1e0 * abs (minval)); 193 spread = maxval - minval; 194 end; 195 196 floatjunk = log10 (spread); /* what power of ten are we talking about */ 197 if floatjunk < 0 then floatjunk = floatjunk - 1e0; /* adjust for funnies in definition of log */ 198 fixjunk = floatjunk; /* discard the mantissa */ 199 abspread = spread / 1e1**fixjunk; /* abspread is a "non-dimensionalized spread", guaranteed */ 200 /* to be: 1e0 <= abspread < 10e0 */ 201 202 /* Now we figure out useful values for the tic marks. We will increment tic marks by the following non-dimensionalized 203* values only: 1, 2, 2.5, and 5. This makes the graph more readable than if we chose to increment them by 204* 1.275 or something like that. The following algorithm is guaranteed to produce a plot of 5 to 11 intervals (6 to 12 lines) 205* using one of the useful interval values. The cutoff constants in the code below are chosen from the 206* maximum range of values representable on a 12-line plot at each interval value. */ 207 208 if abspread < 1.1e0 then incrval = 1.00000e1 ** (fixjunk - 1); /* use interval of 1 */ 209 else if abspread < 2.2e0 then incrval = 0.200000e0 * 1e1 ** fixjunk; /* use interval of 2 */ 210 else if abspread < 2.75 then incrval = 0.2500000e0 * 1e1 ** fixjunk; /* use interval of 2.5 */ 211 else if abspread < 5.5 then incrval = 0.5000000e0 * 1e1 ** fixjunk; /* use interval of 5 */ 212 else incrval = 1e1 ** fixjunk; /* use interval of 1 at one higher power (10) */ 213 214 if minval < 0 then compensation = -.99999e0; /* round to next wider integer */ 215 else compensation = 0; 216 217 minval = fixed (binary (minval / incrval) + compensation) * incrval; 218 219 if maxval < 0 then compensation = 0; /* round to next wider integer */ 220 else compensation = .99999e0; 221 222 maxval = fixed (binary (maxval / incrval) + compensation) * incrval; 223 224 nlines = (maxval - minval) / incrval + 1e-1; /* number of lines in grid */ 225 gincrval = Plot_width / nlines; /* in points */ 226 227 return; 228 229 end scale_plot; 230 231 if eq_scl_sw = Equal_scaling then do; /* user wants graph scaled equally on both axes */ 232 if incrx < incry then do; 233 gxincr = gyincr; 234 xlines = ylines; 235 incrx = incry; 236 end; 237 else do; 238 gyincr = gxincr; 239 ylines = xlines; 240 incry = incrx; 241 end; 242 jfl = max (xmax - xmin, ymax - ymin); 243 xmin = (xmax + xmin)/2e0 - jfl/2e0; 244 xmax = xmin + jfl; 245 ymin = (ymax + ymin)/2e0 - jfl/2e0; 246 ymax = ymin + jfl; 247 end; 248 249 /* BEGIN GRAPHIC GRID GENERATION */ 250 251 if grid_sw = No_grid then do; /* no grid wanted */ 252 fig = 0; 253 return; 254 end; 255 256 257 if grid_sw = Tick_marks then do; /* two axes with tic marks */ 258 g (1) = graphic_manipulator_$create_position (Shift, -5e0, 0e0, 0e0, code); /* create tic marks */ 259 if code ^= 0 then goto crump; 260 g (2) = graphic_manipulator_$create_position (Vector, 1e1, 0e0, 0e0, code); 261 if code ^= 0 then goto crump; 262 g (3) = graphic_manipulator_$create_position (Shift, -5e0, 0e0, 0e0, code); 263 if code ^= 0 then goto crump; 264 htic = graphic_manipulator_$create_array (g, 3, code); 265 if code ^= 0 then goto crump; 266 g (1) = graphic_manipulator_$create_position (Shift, 0e0, -5e0, 0e0, code); 267 if code ^= 0 then goto crump; 268 g (2) = graphic_manipulator_$create_position (Vector, 0e0, 1e1, 0e0, code); 269 if code ^= 0 then goto crump; 270 g (3) = graphic_manipulator_$create_position (Shift, 0e0, -5e0, 0e0, code); 271 if code ^= 0 then goto crump; 272 vtic = graphic_manipulator_$create_array (g, 3, code); 273 if code ^= 0 then goto crump; 274 275 g (1) = graphic_manipulator_$create_mode (Linetype, Dashed, code); 276 if code ^= 0 then goto crump; 277 g (2) = graphic_manipulator_$create_position (Setposition, -35e1, -4e2, 0e0, code); 278 if code ^= 0 then goto crump; 279 280 do i = 3 to 2 * xlines + 1 by 2; /* create two axes grid with tic marks in graphic structure */ 281 g (i) = graphic_manipulator_$create_position (Vector, gxincr, 0e0, 0e0, code); 282 if code ^= 0 then goto crump; 283 g (i+1) = vtic; 284 end; 285 286 g (i) = graphic_manipulator_$create_position (Setposition, -35e1, -4e2, 0e0, code); 287 if code ^= 0 then goto crump; 288 289 do i = i + 1 to i + 2 * ylines - 1 by 2; 290 g (i) = graphic_manipulator_$create_position (Vector, 0e0, gyincr, 0e0, code); 291 if code ^= 0 then goto crump; 292 g (i+1) = htic; 293 end; 294 end; 295 296 else do; 297 if grid_sw = Solid_grid then g (1) = graphic_manipulator_$create_mode (Linetype, Solid, code); /* want solid grid */ 298 else g (1) = graphic_manipulator_$create_mode (Linetype, Dashed, code); /* default is dashed grid */ 299 if code ^= 0 then goto crump; 300 g (2) = graphic_manipulator_$create_position (Setposition, -35e1, -4e2, 0e0, code); 301 if code ^= 0 then goto crump; 302 do i = 3 to xlines * 2 + 1 by 2; /* draw x lines */ 303 g (i) = graphic_manipulator_$create_position (Vector, 0e0, Plot_width, 0e0, code); 304 if code ^= 0 then goto crump; 305 g (i+1) = graphic_manipulator_$create_position (Setposition, float (divide (i-1, 2, 17, 0) * gxincr - 350), -4e2, 0e0, code); 306 if code ^= 0 then goto crump; 307 end; 308 g (i) = g (3); 309 g (i+1) = g (2); 310 jfx = i; 311 do i = i+2 to ylines * 2 + i by 2; /* draw y lines */ 312 g (i) = graphic_manipulator_$create_position (Vector, Plot_width, 0e0, 0e0, code); 313 if code ^= 0 then goto crump; 314 g (i+1) = graphic_manipulator_$create_position (Setposition, -35e1, float (divide (i-jfx, 2, 17, 0) * gyincr - 400), 0e0, code); 315 if code ^= 0 then goto crump; 316 end; 317 g (i) = g (jfx + 2); 318 i = i + 1; 319 end; 320 321 jfx = i; /* save running position variable */ 322 do i = 0 to ylines; /* draw y coordinate values */ 323 jfl = ymin + i * incry; 324 if abs (jfl) * 1e2 < incry then jfl = 0e0; /* anything that much less than increment gotta be zero */ 325 call ioa_$rsnnl ("^[^6f^;^7f^]", string, 0, (type > 2), jfl); 326 if index (string, "e") > 0 then call ioa_$rsnnl ("^[^3e^;^4e^]", string, 0, (type > 2), jfl); 327 string = ltrim (string); 328 if substr (string, length (string), 1) = "." then 329 string = substr (string, 1, length (string) - 1); 330 if type > 2 then string = "e" || string; 331 g (jfx+2*i) = graphic_manipulator_$create_position (Setposition, -370, float (i*gyincr - 400), 0e0, code); 332 if code ^= 0 then goto crump; 333 g (jfx + 1+2*i) = graphic_manipulator_$create_text (Right, length (string), (string), code); 334 if code ^= 0 then goto crump; 335 end; 336 337 jfx = jfx + 2 * ylines + 2; 338 do i = 0 to xlines; /* draw x coordinate values */ 339 jfl = xmin + i * incrx; 340 if abs (jfl) * 1e2 < incrx then jfl = 0e0; /* anything that much less than increment gotta be zero */ 341 call ioa_$rsnnl ("^[^6f^;^7f^]", string, 0, (mod (type, 2) = 0), jfl); 342 if index (string, "e") > 0 then call ioa_$rsnnl ("^[^3e^;^4e^]", string, 0, (mod (type, 2) = 0), jfl); 343 string = ltrim (string); 344 if substr (string, length (string), 1) = "." then 345 string = substr (string, 1, length (string) - 1); 346 if mod (type, 2) = 0 then string = "e" || string; 347 if mod (i, 2) = 1 348 then g (jfx+2*i) = graphic_manipulator_$create_position (Setposition, float (i*gxincr - 350), -41e1, 0e0, code); 349 else g (jfx+2*i) = graphic_manipulator_$create_position (Setposition, float (i*gxincr - 350), -44e1, 0e0, code); 350 if code ^= 0 then goto crump; 351 g (jfx + 1+2*i) = graphic_manipulator_$create_text (Upper_center, length (string), (string), code); 352 if code ^= 0 then goto crump; 353 end; 354 355 i = jfx + 2 * xlines + 2; /* update running position counter */ 356 g (i) = graphic_manipulator_$create_mode (Linetype, Solid, code); /* get back to solid mode wherever we are */ 357 if code ^= 0 then goto crump; 358 359 if xlabel ^= "" then do; 360 g (i+1) = graphic_manipulator_$create_position (Setposition, 50, -500, 0, code); 361 if code ^= 0 then goto crump; 362 g (i+2) = graphic_manipulator_$create_text (Lower_center, length (xlabel), (xlabel), code); 363 if code ^= 0 then goto crump; 364 end; 365 else g (i+1), g (i+2) = 0; /* called from FORTRAN and don't want label */ 366 if ylabel ^= "" then do; 367 jfx = float (length (ylabel))/2e0 * 2.5e1; /* 25 is dist, between chars */ 368 do j = 1 to length (ylabel); /* make it come out vertical */ 369 h (2*j-1) = graphic_manipulator_$create_position (Setposition, -51e1, float (jfx - 25*j), 0e0, code); 370 if code ^= 0 then goto crump; 371 h (2*j) = graphic_manipulator_$create_text (Upper_center, 1, substr (ylabel, j, 1), code); 372 if code ^= 0 then goto crump; 373 end; 374 g (i+3) = graphic_manipulator_$create_array (h, 2*j-2, code); 375 if code ^= 0 then goto crump; 376 end; 377 else g (i+3) = 0; 378 379 if title ^= "" then do; 380 h (1) = graphic_manipulator_$create_position (Setposition, 50, 450, 0, code); 381 if code ^= 0 then goto crump; 382 h (2) = graphic_manipulator_$create_text (Lower_center, length (title), (title), code); 383 if code ^= 0 then goto crump; 384 g (i+4) = graphic_manipulator_$create_array (h, 2, code); 385 if code ^= 0 then goto crump; 386 end; 387 388 else g (i+4) = 0; 389 390 391 fig = graphic_manipulator_$create_array (g, i+4, code); 392 if code ^= 0 then goto crump; 393 return; 394 395 end make_grid; 396 397 /* -------------------------------------------------------------- */ 398 399 /* BEGIN FIGURE GENERATION */ 400 401 /* initialize the list with the grid (if it exists) */ 402 403 temp_array (1) = fig; 404 405 current_sublist = graphic_manipulator_$create_array (temp_array, 1, code); 406 407 if (code ^= 0) 408 then goto crump; 409 410 figure = current_sublist; /* The 'master' list */ 411 412 /* plot points of figure */ 413 414 do i = 1 to xydim; 415 416 xcoord = fixed ((x (i)-xmin) * gxincr / incrx - 350); 417 ycoord = fixed ((y (i)-ymin) * gyincr / incry - 400); 418 if i = 1 then fig = graphic_manipulator_$create_position (Setposition, xcoord, ycoord, 0e0, code); 419 else if vec_sw < Symbols_only 420 then fig = graphic_manipulator_$create_position (Vector, xcoord - oxc, ycoord - oyc, 0, code); 421 else fig = graphic_manipulator_$create_position (Shift, xcoord - oxc, ycoord - oyc, 0e0, code); /* doesn't want connecting Vectors */ 422 if code ^= 0 then goto crump; 423 424 call append_element (fig, code); 425 426 if (code ^= 0) 427 then goto crump; 428 429 if vec_sw >= Vectors_and_symbols then do; 430 431 fig = graphic_manipulator_$create_text (Center, 1, symbol, code); /* wants symbol plotted in place of Point */ 432 if code ^= 0 then goto crump; 433 434 call append_element (fig, code); 435 436 if (code ^= 0) 437 then goto crump; 438 439 end; 440 441 oxc = xcoord; oyc = ycoord; /* here we go round the loop */ 442 end; 443 444 figure = graphic_manipulator_$assign_name ("plot_display_list_", (figure), code); 445 if code ^= 0 then goto crump; 446 447 if wipe_me = 1 then call graphic_compiler_$display (figure, code); /* we want an erase */ 448 else call graphic_compiler_$display_append (figure, code); /* scribble over what's up there */ 449 eq_scl_sw, wipe_me = 0; /* reset static stuff */ 450 have_minmaxes = ""b; 451 xlabel, ylabel, title = ""; 452 grid_sw = 1; 453 if code ^= 0 then 454 crump: call sub_err_ (code, "plot_", "h", null, 0, "Error while creating plot."); 455 456 call clean_up; 457 458 clean_up: proc; 459 460 if xptr ^= null then free x in (sys_area); 461 if yptr ^= null then free y in (sys_area); 462 463 end clean_up; 464 465 return; 466 467 /* The following entries are used to set certain static variables 468* so that plot_ knows exactly what to do on each call. 469* $scale uses common code. 470* 471* $initf is an init callable from FORTRAN. */ 472 473 474 setup: entry (title1, xlabel1, ylabel1, type1, base1, grid_sw1, eq_scl_sw1); 475 476 dcl rtrim builtin; 477 478 title = rtrim (title1); 479 480 init: entry (xlabel1, ylabel1, type1, base1, grid_sw1, eq_scl_sw1); 481 482 dcl (xlabel1, ylabel1, title1) char (*), 483 (type1, grid_sw1, eq_scl_sw1) fixed bin, 484 base1 float bin; 485 486 dcl base float bin static; 487 488 xlabel = rtrim (xlabel1); 489 ylabel = rtrim (ylabel1); 490 call initialize_rest_of_stuff; 491 return; 492 493 /* ---------------------------------------- */ 494 495 initialize_rest_of_stuff: proc; 496 497 type = validate (type1, Linear_linear, Log_log, Linear_linear, "type", "linear-linear"); 498 grid_sw = validate (grid_sw1, Tick_marks, No_grid, Dotted_grid, "grid_sw", "dotted grid"); 499 eq_scl_sw = validate (eq_scl_sw1, Normal_scaling, Equal_scaling, Normal_scaling, "eq_scl_sw", "normal scaling"); 500 wipe_me = 1; 501 have_minmaxes = ""b; 502 base = base1; 503 if base <= 0e0 then log10_of_base = 0; 504 else log10_of_base = log10 (base); 505 506 end initialize_rest_of_stuff; 507 508 /* ---------------------------------------- */ 509 510 initf: entry (xlabel1, i1, ylabel1, j1, type1, base1, grid_sw1, eq_scl_sw1); 511 512 dcl (i1, j1) fixed bin; 513 514 xlabel = substr (xlabel1, 1, max (0, i1)); 515 ylabel = substr (ylabel1, 1, max (0, j1)); 516 call initialize_rest_of_stuff; 517 return; 518 519 /* ----------------------------------------------- */ 520 521 validate: proc (inval, minval, maxval, defaultval, item, description) returns (fixed bin); 522 523 dcl (inval, minval, maxval, defaultval) fixed bin parameter, 524 (item, description) char (*) parameter; 525 526 if inval ^< minval then 527 if inval ^> maxval then 528 return (inval); 529 530 call sub_err_ (error_table_$bad_arg, "plot_", "h", null, 0, 531 "^a (^d) not between ^d and ^d.^/Type ""start"" for default value (^a).", 532 item, inval, minval, maxval, description); 533 return (defaultval); 534 535 end validate; 536 537 /* ----------------------------------------------- */ 538 539 scale: entry (xmin1, xmax1, ymin1, ymax1); 540 541 dcl (xmin1, xmax1, ymin1, ymax1) float bin parameter, 542 (static_xmin, static_xmax, static_ymin, static_ymax) float bin static initial (0), 543 have_minmaxes bit (1) aligned static initial (""b); 544 545 if have_minmaxes then return; 546 call check_range ("x", xmin1, xmax1); 547 call check_range ("y", ymin1, ymax1); 548 have_minmaxes = "1"b; 549 static_xmin = xmin1; 550 static_xmax = xmax1; 551 static_ymin = ymin1; 552 static_ymax = ymax1; 553 return; 554 555 /* ------------------------------------------ */ 556 557 check_range: proc (axisname, minval, maxval); 558 559 dcl axisname char (1) parameter, 560 (minval, maxval) float bin parameter; 561 562 if minval < maxval then return; 563 564 call sub_err_ (error_table_$bad_arg, "plot_", "h", null, 0, 565 "Specified minimum value for ^a axis (^f) not less than max value (^f).^/Type ""start"" to use default scaling.", 566 axisname, minval, maxval); 567 goto return_and_forget_it; 568 569 end check_range; 570 571 return_and_forget_it: return; 572 573 /* ------------------------------------------ */ 574 575 append_element: proc (item, code); 576 577 dcl item fixed bin (18); 578 dcl code fixed bin (35); 579 580 dcl temp fixed bin (18); 581 dcl fudge (2) fixed bin (18); 582 dcl graphic_error_table_$lsm_blk_len fixed bin (35) static external; 583 584 call graphic_manipulator_$add_element (current_sublist, -1, item, code); 585 586 if (code ^= graphic_error_table_$lsm_blk_len) /* it worked or it */ 587 then return; /* was something we couldn't handle */ 588 589 fudge (1) = 0; /* leave room for what is now at */ 590 /* the end of the current sublist */ 591 592 fudge (2) = item; /* the new item goes in slot number 2 */ 593 594 temp = graphic_manipulator_$create_array (fudge, 2, code); 595 /* create the 'new' current sublist */ 596 597 if (code ^= 0) 598 then return; /* caller handles any errors */ 599 600 fudge (1) = graphic_manipulator_$replace_element (current_sublist, -1, temp, code); 601 /* now chain the new list onto the end of the old list. */ 602 /* By doing things this way, we don't have to worry about */ 603 /* copying active modes from one list to another */ 604 605 if (code ^= 0) 606 then return; 607 608 current_sublist = temp; /* make the new list the current list. */ 609 610 temp = graphic_manipulator_$replace_element (current_sublist, 1, fudge (1), code); 611 /* save the old item we took */ 612 /* from the old list in it's proper */ 613 /* position */ 614 615 return; /* and return with whatever code resulted. */ 616 617 end append_element; 618 619 end plot_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/18/82 1625.7 plot_.pl1 >dumps>old>recomp>plot_.pl1 61 1 03/27/82 0439.2 graphic_etypes.incl.pl1 >ldd>include>graphic_etypes.incl.pl1 63 2 06/07/77 1233.5 plot_entry_dcls.incl.pl1 >ldd>include>plot_entry_dcls.incl.pl1 65 3 08/27/75 1700.7 gm_entry_dcls.incl.pl1 >ldd>include>gm_entry_dcls.incl.pl1 67 4 08/13/81 2035.4 gc_entry_dcls.incl.pl1 >ldd>include>gc_entry_dcls.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. Center 000050 constant fixed bin(17,0) initial dcl 1-9 set ref 431* Dashed 000053 constant fixed bin(17,0) initial dcl 1-9 set ref 275* 298* Dotted_grid 000053 constant fixed bin(17,0) initial dcl 2-7 set ref 498* Equal_scaling 000053 constant fixed bin(17,0) initial dcl 2-7 set ref 231 499* Linear_linear 000053 constant fixed bin(17,0) initial dcl 2-7 set ref 108 497* 497* Linear_log constant fixed bin(17,0) initial dcl 2-7 ref 109 Linetype 000027 constant fixed bin(17,0) initial dcl 1-9 set ref 275* 297* 298* 356* Log_linear constant fixed bin(17,0) initial dcl 2-7 ref 110 Log_log 000046 constant fixed bin(17,0) initial dcl 2-7 set ref 497* Lower_center 000030 constant fixed bin(17,0) initial dcl 1-9 set ref 362* 382* No_grid 000045 constant fixed bin(17,0) initial dcl 2-7 set ref 251 498* Normal_scaling 000040 constant fixed bin(17,0) initial dcl 2-7 set ref 499* 499* Plot_width 000000 constant float bin(27) initial dcl 45 set ref 225 303* 312* Right 000031 constant fixed bin(17,0) initial dcl 1-9 set ref 333* Setposition 000040 constant fixed bin(17,0) initial dcl 1-9 set ref 277* 286* 300* 305* 314* 331* 347* 349* 360* 369* 380* 418* Shift 000045 constant fixed bin(17,0) initial dcl 1-9 set ref 258* 262* 266* 270* 421* Solid 000040 constant fixed bin(17,0) initial dcl 1-9 set ref 297* 356* Solid_grid constant fixed bin(17,0) initial dcl 2-7 ref 297 Symbols_only constant fixed bin(17,0) initial dcl 2-7 ref 419 Tick_marks 000040 constant fixed bin(17,0) initial dcl 2-7 set ref 257 498* Upper_center 000052 constant fixed bin(17,0) initial dcl 1-9 set ref 351* 371* Vector 000052 constant fixed bin(17,0) initial dcl 1-9 set ref 260* 268* 281* 290* 303* 312* 419* Vectors_and_symbols constant fixed bin(17,0) initial dcl 2-7 ref 429 abs builtin function dcl 49 ref 191 192 324 340 abspread 000120 automatic float bin(27) dcl 49 set ref 199* 208 209 210 211 array parameter float bin(27) array dcl 115 set ref 113 118* 118 axisname parameter char(1) unaligned dcl 559 set ref 557 564* base 000150 internal static float bin(27) dcl 486 set ref 502* 503 504 base1 parameter float bin(27) dcl 482 ref 474 480 502 510 binary builtin function dcl 49 ref 217 222 cleanup 000106 stack reference condition dcl 47 ref 98 code parameter fixed bin(35,0) dcl 578 in procedure "append_element" set ref 575 584* 586 594* 597 600* 605 610* code 000100 automatic fixed bin(35,0) dcl 30 in procedure "plot_" set ref 91* 92 258* 259 260* 261 262* 263 264* 265 266* 267 268* 269 270* 271 272* 273 275* 276 277* 278 281* 282 286* 287 290* 291 297* 298* 299 300* 301 303* 304 305* 306 312* 313 314* 315 331* 332 333* 334 347* 349* 350 351* 352 356* 357 360* 361 362* 363 369* 370 371* 372 374* 375 380* 381 382* 383 384* 385 391* 392 405* 407 418* 419* 421* 422 424* 426 431* 432 434* 436 444* 445 447* 448* 453 453* compensation 000122 automatic float bin(27) dcl 49 set ref 214* 215* 217 219* 220* 222 current_sublist 000764 automatic fixed bin(18,0) dcl 73 set ref 405* 410 584* 600* 608* 610* defaultval parameter fixed bin(17,0) dcl 523 ref 521 533 description parameter char unaligned dcl 523 set ref 521 530* divide builtin function dcl 49 ref 305 305 314 314 eq_scl_sw 000130 internal static fixed bin(17,0) initial dcl 30 set ref 231 449* 499* eq_scl_sw1 parameter fixed bin(17,0) dcl 482 set ref 474 480 499* 510 error_table_$bad_arg 000162 external static fixed bin(35,0) dcl 30 set ref 530* 564* fig 000762 automatic fixed bin(18,0) dcl 73 set ref 123* 252* 391* 403 418* 419* 421* 424* 431* 434* figure 000765 automatic fixed bin(18,0) dcl 73 set ref 410* 444* 444 447* 448* fixed builtin function dcl 49 ref 217 222 416 417 fixjunk 001047 automatic fixed bin(17,0) dcl 178 set ref 198* 199 208 209 210 211 212 float builtin function dcl 49 ref 305 305 314 314 331 331 347 347 349 349 367 369 369 floatjunk 001050 automatic float bin(27) dcl 178 set ref 196* 197 197* 197 198 fudge 001104 automatic fixed bin(18,0) array dcl 581 set ref 589* 592* 594* 600* 610* g 000123 automatic fixed bin(18,0) array dcl 70 set ref 258* 260* 262* 264* 266* 268* 270* 272* 275* 277* 281* 283* 286* 290* 292* 297* 298* 300* 303* 305* 308* 308 309* 309 312* 314* 317* 317 331* 333* 347* 349* 351* 356* 360* 362* 365* 365* 374* 377* 384* 388* 391* get_system_free_area_ 000210 constant entry external dcl 79 ref 94 gincrval parameter float bin(27) dcl 175 set ref 173 225* graphic_compiler_$display 000206 constant entry external dcl 4-21 ref 447 graphic_compiler_$display_append 000204 constant entry external dcl 4-11 ref 448 graphic_error_table_$lsm_blk_len 000212 external static fixed bin(35,0) dcl 582 ref 586 graphic_manipulator_$add_element 000200 constant entry external dcl 3-68 ref 584 graphic_manipulator_$assign_name 000176 constant entry external dcl 3-60 ref 444 graphic_manipulator_$create_array 000174 constant entry external dcl 3-55 ref 264 272 374 384 391 405 594 graphic_manipulator_$create_mode 000170 constant entry external dcl 3-14 ref 275 297 298 356 graphic_manipulator_$create_position 000166 constant entry external dcl 3-9 ref 258 260 262 266 268 270 277 281 286 290 300 303 305 312 314 331 347 349 360 369 380 418 419 421 graphic_manipulator_$create_text 000172 constant entry external dcl 3-40 ref 333 351 362 371 382 431 graphic_manipulator_$init 000164 constant entry external dcl 3-3 ref 91 graphic_manipulator_$replace_element 000202 constant entry external dcl 3-71 ref 600 610 grid_sw 000127 internal static fixed bin(17,0) initial dcl 30 set ref 251 257 297 452* 498* grid_sw1 parameter fixed bin(17,0) dcl 482 set ref 474 480 498* 510 gxincr 000143 internal static float bin(27) dcl 49 set ref 170* 233* 238 281* 305 305 347 347 349 349 416 gyincr 000144 internal static float bin(27) dcl 49 set ref 171* 233 238* 290* 314 314 331 331 417 h 000433 automatic fixed bin(18,0) array dcl 70 set ref 369* 371* 374* 380* 382* 384* have_minmaxes 000155 internal static bit(1) initial dcl 541 set ref 127 450* 501* 545 548* htic 000117 automatic fixed bin(17,0) dcl 49 set ref 264* 292 i 000101 automatic fixed bin(17,0) dcl 30 set ref 103* 104 104 105 105* 117* 118 118* 152* 153 153 154 154 155 155 156 156* 280* 281 283* 286 289* 289 289* 290 292* 302* 303 305 305 305* 308 309 310 311* 311 311* 312 314 314 314* 317 318* 318 321 322* 323 331 331 331 333* 338* 339 347 347 347 347 349 349 349 351* 355* 356 360 362 365 365 374 377 384 388 391 414* 416 417 418* i1 parameter fixed bin(17,0) dcl 512 ref 510 514 incrval parameter float bin(27) dcl 175 set ref 173 208* 209* 210* 211* 212* 217 217 222 222 224 incrx 000137 internal static float bin(27) dcl 49 set ref 170* 232 235* 240 339 340 416 incry 000140 internal static float bin(27) dcl 49 set ref 171* 232 235 240* 323 324 417 index builtin function dcl 49 ref 326 342 inval parameter fixed bin(17,0) dcl 523 set ref 521 526 526 526 530* ioa_$rsnnl 000156 constant entry external dcl 30 ref 325 326 341 342 item parameter fixed bin(18,0) dcl 577 in procedure "append_element" set ref 575 584* 592 item parameter char unaligned dcl 523 in procedure "validate" set ref 521 530* j 000115 automatic fixed bin(17,0) dcl 49 set ref 368* 369 369 369 371 371 371* 374 j1 parameter fixed bin(17,0) dcl 512 ref 510 515 jfl 000121 automatic float bin(27) dcl 49 set ref 242* 243 244 245 246 323* 324 324* 325* 326* 339* 340 340* 341* 342* jfx 000114 automatic fixed bin(17,0) dcl 49 set ref 310* 314 314 317 321* 331 333 337* 337 347 349 351 355 367* 369 369 length builtin function dcl 49 ref 328 328 333 333 344 344 351 351 362 362 367 368 382 382 log10 builtin function dcl 49 ref 118 130 131 139 140 196 504 log10_of_base 000131 internal static float bin(27) initial dcl 49 set ref 118 130 131 139 140 503* 504* ltrim builtin function dcl 49 ref 327 343 max builtin function dcl 49 ref 242 514 515 maxval parameter float bin(27) dcl 559 in procedure "check_range" set ref 557 562 564* maxval parameter fixed bin(17,0) dcl 523 in procedure "validate" set ref 521 526 530* maxval parameter float bin(27) dcl 175 in procedure "scale_plot" set ref 173 182 187* 191* 191 191 193 219 222* 222 224 minval parameter float bin(27) dcl 175 in procedure "scale_plot" set ref 173 182 184 186* 192* 192 192 193 214 217* 217 224 minval parameter fixed bin(17,0) dcl 523 in procedure "validate" set ref 521 526 530* minval parameter float bin(27) dcl 559 in procedure "check_range" set ref 557 562 564* mod builtin function dcl 49 ref 129 341 342 346 347 nlines parameter fixed bin(17,0) dcl 175 set ref 173 224* 225 null builtin function dcl 49 ref 94 96 453 453 460 461 530 530 564 564 oxc 000760 automatic float bin(27) dcl 73 set ref 419 421 441* oyc 000761 automatic float bin(27) dcl 73 set ref 419 421 441* rtrim builtin function dcl 476 ref 478 488 489 spread 001046 automatic float bin(27) dcl 178 set ref 182* 184 188* 193* 196 199 static_xmax 000152 internal static float bin(27) initial dcl 541 set ref 130 134 550* static_xmin 000151 internal static float bin(27) initial dcl 541 set ref 131 135 549* static_ymax 000154 internal static float bin(27) initial dcl 541 set ref 139 143 552* static_ymin 000153 internal static float bin(27) initial dcl 541 set ref 140 144 551* string 000743 automatic varying char(40) dcl 70 set ref 325* 326 326* 327* 327 328 328 328* 328 328 330* 330 333 333 333 341* 342 342* 343* 343 344 344 344* 344 344 346* 346 351 351 351 sub_err_ 000160 constant entry external dcl 30 ref 453 530 564 substr builtin function dcl 49 ref 328 328 344 344 371 371 514 515 symbol parameter char(1) unaligned dcl 30 set ref 18 431* sys_area based area(1024) dcl 79 ref 100 100 460 461 sys_area_p 000146 internal static pointer initial dcl 79 set ref 94 94* 100 100 460 461 temp 001102 automatic fixed bin(18,0) dcl 580 set ref 594* 600* 608 610* temp_array 000763 automatic fixed bin(18,0) array dcl 73 set ref 403* 405* title 000074 internal static varying char(100) initial dcl 30 set ref 379 382 382 382 451* 478* title1 parameter char unaligned dcl 482 ref 474 478 type 000126 internal static fixed bin(17,0) initial dcl 30 set ref 108 109 110 129 138 325 326 330 341 342 346 497* type1 parameter fixed bin(17,0) dcl 482 set ref 474 480 497* 510 vec_sw parameter fixed bin(17,0) dcl 30 ref 18 419 429 vtic 000116 automatic fixed bin(17,0) dcl 49 set ref 272* 283 wipe_me 000132 internal static fixed bin(17,0) initial dcl 49 set ref 123 447 449* 500* x based float bin(27) array dcl 30 set ref 100 104* 109* 149 153 153 154 154 416 460 xcoord 000756 automatic float bin(27) dcl 73 set ref 416* 418* 419 421 441 xlabel 000010 internal static varying char(100) initial dcl 30 set ref 359 362 362 362 451* 488* 514* xlabel1 parameter char unaligned dcl 482 ref 474 480 488 510 514 xlines 000141 internal static fixed bin(17,0) dcl 49 set ref 170* 234* 239 280 302 338 355 xmax 000134 internal static float bin(27) dcl 49 set ref 130* 134* 149* 153 153* 170* 242 243 244* xmax1 parameter float bin(27) dcl 541 set ref 539 546* 550 xmin 000133 internal static float bin(27) dcl 49 set ref 131* 135* 149* 154 154* 170* 242 243* 243 244 339 416 xmin1 parameter float bin(27) dcl 541 set ref 539 546* 549 xparam parameter float bin(27) array dcl 30 ref 18 104 xptr 000102 automatic pointer dcl 30 set ref 96* 100* 104 109 149 153 153 154 154 416 460 460 xydim parameter fixed bin(17,0) dcl 30 ref 18 100 100 103 109 110 117 152 414 460 461 y based float bin(27) array dcl 30 set ref 100 105* 110* 150 155 155 156 156 417 461 ycoord 000757 automatic float bin(27) dcl 73 set ref 417* 418* 419 421 441 ylabel 000042 internal static varying char(100) initial dcl 30 set ref 366 367 368 371 371 451* 489* 515* ylabel1 parameter char unaligned dcl 482 ref 474 480 489 510 515 ylines 000142 internal static fixed bin(17,0) dcl 49 set ref 171* 234 239* 289 311 322 337 ymax 000136 internal static float bin(27) dcl 49 set ref 139* 143* 150* 155 155* 171* 242 245 246* ymax1 parameter float bin(27) dcl 541 set ref 539 547* 552 ymin 000135 internal static float bin(27) dcl 49 set ref 140* 144* 150* 156 156* 171* 242 245* 245 246 323 417 ymin1 parameter float bin(27) dcl 541 set ref 539 547* 551 yparam parameter float bin(27) array dcl 30 ref 18 105 yptr 000104 automatic pointer dcl 30 set ref 96* 100* 105 110 150 155 155 156 156 417 461 461 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Any_device internal static fixed bin(17,0) initial dcl 1-9 Array internal static fixed bin(17,0) initial dcl 1-9 Blink internal static fixed bin(17,0) initial dcl 1-9 Blinking internal static fixed bin(17,0) initial dcl 1-9 Clipping internal static fixed bin(17,0) initial dcl 1-9 Color internal static fixed bin(17,0) initial dcl 1-9 Dash_dotted internal static fixed bin(17,0) initial dcl 1-9 Datablock internal static fixed bin(17,0) initial dcl 1-9 Dotted internal static fixed bin(17,0) initial dcl 1-9 Full_intensity internal static fixed bin(17,0) initial dcl 1-9 Half_intensity internal static fixed bin(17,0) initial dcl 1-9 Insensitive internal static fixed bin(17,0) initial dcl 1-9 Intensity internal static fixed bin(17,0) initial dcl 1-9 Invisible internal static fixed bin(17,0) initial dcl 1-9 Joystick internal static fixed bin(17,0) initial dcl 1-9 Keyboard internal static fixed bin(17,0) initial dcl 1-9 Left internal static fixed bin(17,0) initial dcl 1-9 Light_pen internal static fixed bin(17,0) initial dcl 1-9 List internal static fixed bin(17,0) initial dcl 1-9 Long_dashed internal static fixed bin(17,0) initial dcl 1-9 Lower_left internal static fixed bin(17,0) initial dcl 1-9 Lower_right internal static fixed bin(17,0) initial dcl 1-9 Mouse internal static fixed bin(17,0) initial dcl 1-9 Null internal static fixed bin(17,0) initial dcl 1-9 On_dup_error internal static fixed bin(17,0) initial dcl 1-9 On_dup_source internal static fixed bin(17,0) initial dcl 1-9 On_dup_target_then_nulls internal static fixed bin(17,0) initial dcl 1-9 On_dup_target_then_source internal static fixed bin(17,0) initial dcl 1-9 Point internal static fixed bin(17,0) initial dcl 1-9 Rotation internal static fixed bin(17,0) initial dcl 1-9 Scaling internal static fixed bin(17,0) initial dcl 1-9 Sensitive internal static fixed bin(17,0) initial dcl 1-9 Sensitivity internal static fixed bin(17,0) initial dcl 1-9 Setpoint internal static fixed bin(17,0) initial dcl 1-9 Steady internal static fixed bin(17,0) initial dcl 1-9 Symbol internal static fixed bin(17,0) initial dcl 1-9 Tablet_and_pen internal static fixed bin(17,0) initial dcl 1-9 Terminal_program internal static fixed bin(17,0) initial dcl 1-9 Text internal static fixed bin(17,0) initial dcl 1-9 Trackball internal static fixed bin(17,0) initial dcl 1-9 Upper_left internal static fixed bin(17,0) initial dcl 1-9 Upper_right internal static fixed bin(17,0) initial dcl 1-9 Vectors_only internal static fixed bin(17,0) initial dcl 2-7 gc_$d 000000 constant entry external dcl 4-21 gc_$d_switch 000000 constant entry external dcl 4-26 gc_$da 000000 constant entry external dcl 4-11 gc_$da_switch 000000 constant entry external dcl 4-16 gc_$display 000000 constant entry external dcl 4-21 gc_$display_append 000000 constant entry external dcl 4-11 gc_$display_append_switch 000000 constant entry external dcl 4-16 gc_$display_name 000000 constant entry external dcl 4-51 gc_$display_name_append 000000 constant entry external dcl 4-41 gc_$display_name_append_switch 000000 constant entry external dcl 4-46 gc_$display_name_switch 000000 constant entry external dcl 4-56 gc_$display_switch 000000 constant entry external dcl 4-26 gc_$dn 000000 constant entry external dcl 4-51 gc_$dn_switch 000000 constant entry external dcl 4-56 gc_$dna 000000 constant entry external dcl 4-41 gc_$dna_switch 000000 constant entry external dcl 4-46 gc_$l 000000 constant entry external dcl 4-31 gc_$l_switch 000000 constant entry external dcl 4-36 gc_$ln 000000 constant entry external dcl 4-61 gc_$ln_switch 000000 constant entry external dcl 4-66 gc_$load 000000 constant entry external dcl 4-31 gc_$load_name 000000 constant entry external dcl 4-61 gc_$load_name_switch 000000 constant entry external dcl 4-66 gc_$load_switch 000000 constant entry external dcl 4-36 gc_$prune_tree 000000 constant entry external dcl 4-71 gc_$return_string 000000 constant entry external dcl 4-6 gc_$rs 000000 constant entry external dcl 4-6 gc_$tree_ptr 000000 constant entry external dcl 4-3 gm_$add_element 000000 constant entry external dcl 3-68 gm_$assign_name 000000 constant entry external dcl 3-60 gm_$carray 000000 constant entry external dcl 3-55 gm_$cclip 000000 constant entry external dcl 3-29 gm_$ccolor 000000 constant entry external dcl 3-35 gm_$cdata 000000 constant entry external dcl 3-45 gm_$clist 000000 constant entry external dcl 3-50 gm_$cmode 000000 constant entry external dcl 3-14 gm_$cpos 000000 constant entry external dcl 3-9 gm_$create_array 000000 constant entry external dcl 3-55 gm_$create_clip 000000 constant entry external dcl 3-29 gm_$create_color 000000 constant entry external dcl 3-35 gm_$create_data 000000 constant entry external dcl 3-45 gm_$create_list 000000 constant entry external dcl 3-50 gm_$create_mode 000000 constant entry external dcl 3-14 gm_$create_position 000000 constant entry external dcl 3-9 gm_$create_rotation 000000 constant entry external dcl 3-24 gm_$create_scale 000000 constant entry external dcl 3-19 gm_$create_text 000000 constant entry external dcl 3-40 gm_$crot 000000 constant entry external dcl 3-24 gm_$cscale 000000 constant entry external dcl 3-19 gm_$ctext 000000 constant entry external dcl 3-40 gm_$ecolor 000000 constant entry external dcl 3-96 gm_$edata 000000 constant entry external dcl 3-129 gm_$elist 000000 constant entry external dcl 3-109 gm_$emap 000000 constant entry external dcl 3-101 gm_$emode 000000 constant entry external dcl 3-91 gm_$epos 000000 constant entry external dcl 3-86 gm_$esymbol 000000 constant entry external dcl 3-119 gm_$esymtab 000000 constant entry external dcl 3-114 gm_$etext 000000 constant entry external dcl 3-124 gm_$examine_color 000000 constant entry external dcl 3-96 gm_$examine_contents 000000 constant entry external dcl 3-106 gm_$examine_data 000000 constant entry external dcl 3-129 gm_$examine_list 000000 constant entry external dcl 3-109 gm_$examine_mapping 000000 constant entry external dcl 3-101 gm_$examine_mode 000000 constant entry external dcl 3-91 gm_$examine_position 000000 constant entry external dcl 3-86 gm_$examine_symbol 000000 constant entry external dcl 3-119 gm_$examine_symtab 000000 constant entry external dcl 3-114 gm_$examine_text 000000 constant entry external dcl 3-124 gm_$examine_type 000000 constant entry external dcl 3-83 gm_$find_structure 000000 constant entry external dcl 3-63 gm_$fstruc 000000 constant entry external dcl 3-63 gm_$get_struc 000000 constant entry external dcl 3-134 gm_$gstruc 000000 constant entry external dcl 3-134 gm_$init 000000 constant entry external dcl 3-3 gm_$pstruc 000000 constant entry external dcl 3-139 gm_$put_struc 000000 constant entry external dcl 3-139 gm_$remove_symbol 000000 constant entry external dcl 3-77 gm_$replace_element 000000 constant entry external dcl 3-71 gm_$replace_node 000000 constant entry external dcl 3-74 gm_$replicate 000000 constant entry external dcl 3-80 gm_$save_file 000000 constant entry external dcl 3-144 gm_$segp 000000 constant entry external dcl 3-6 gm_$use_file 000000 constant entry external dcl 3-147 graphic_compiler_$d 000000 constant entry external dcl 4-21 graphic_compiler_$d_switch 000000 constant entry external dcl 4-26 graphic_compiler_$da 000000 constant entry external dcl 4-11 graphic_compiler_$da_switch 000000 constant entry external dcl 4-16 graphic_compiler_$display_append_switch 000000 constant entry external dcl 4-16 graphic_compiler_$display_name 000000 constant entry external dcl 4-51 graphic_compiler_$display_name_append 000000 constant entry external dcl 4-41 graphic_compiler_$display_name_append_switch 000000 constant entry external dcl 4-46 graphic_compiler_$display_name_switch 000000 constant entry external dcl 4-56 graphic_compiler_$display_switch 000000 constant entry external dcl 4-26 graphic_compiler_$dn 000000 constant entry external dcl 4-51 graphic_compiler_$dn_switch 000000 constant entry external dcl 4-56 graphic_compiler_$dna 000000 constant entry external dcl 4-41 graphic_compiler_$dna_switch 000000 constant entry external dcl 4-46 graphic_compiler_$l 000000 constant entry external dcl 4-31 graphic_compiler_$l_switch 000000 constant entry external dcl 4-36 graphic_compiler_$ln 000000 constant entry external dcl 4-61 graphic_compiler_$ln_switch 000000 constant entry external dcl 4-66 graphic_compiler_$load 000000 constant entry external dcl 4-31 graphic_compiler_$load_name 000000 constant entry external dcl 4-61 graphic_compiler_$load_name_switch 000000 constant entry external dcl 4-66 graphic_compiler_$load_switch 000000 constant entry external dcl 4-36 graphic_compiler_$prune_tree 000000 constant entry external dcl 4-71 graphic_compiler_$return_string 000000 constant entry external dcl 4-6 graphic_compiler_$rs 000000 constant entry external dcl 4-6 graphic_compiler_$tree_ptr 000000 constant entry external dcl 4-3 graphic_manipulator_$carray 000000 constant entry external dcl 3-55 graphic_manipulator_$cclip 000000 constant entry external dcl 3-29 graphic_manipulator_$ccolor 000000 constant entry external dcl 3-35 graphic_manipulator_$cdata 000000 constant entry external dcl 3-45 graphic_manipulator_$clist 000000 constant entry external dcl 3-50 graphic_manipulator_$cmode 000000 constant entry external dcl 3-14 graphic_manipulator_$cpos 000000 constant entry external dcl 3-9 graphic_manipulator_$create_clip 000000 constant entry external dcl 3-29 graphic_manipulator_$create_color 000000 constant entry external dcl 3-35 graphic_manipulator_$create_data 000000 constant entry external dcl 3-45 graphic_manipulator_$create_list 000000 constant entry external dcl 3-50 graphic_manipulator_$create_rotation 000000 constant entry external dcl 3-24 graphic_manipulator_$create_scale 000000 constant entry external dcl 3-19 graphic_manipulator_$crot 000000 constant entry external dcl 3-24 graphic_manipulator_$cscale 000000 constant entry external dcl 3-19 graphic_manipulator_$ctext 000000 constant entry external dcl 3-40 graphic_manipulator_$ecolor 000000 constant entry external dcl 3-96 graphic_manipulator_$edata 000000 constant entry external dcl 3-129 graphic_manipulator_$elist 000000 constant entry external dcl 3-109 graphic_manipulator_$emap 000000 constant entry external dcl 3-101 graphic_manipulator_$emode 000000 constant entry external dcl 3-91 graphic_manipulator_$epos 000000 constant entry external dcl 3-86 graphic_manipulator_$esymbol 000000 constant entry external dcl 3-119 graphic_manipulator_$esymtab 000000 constant entry external dcl 3-114 graphic_manipulator_$etext 000000 constant entry external dcl 3-124 graphic_manipulator_$examine_color 000000 constant entry external dcl 3-96 graphic_manipulator_$examine_contents 000000 constant entry external dcl 3-106 graphic_manipulator_$examine_data 000000 constant entry external dcl 3-129 graphic_manipulator_$examine_list 000000 constant entry external dcl 3-109 graphic_manipulator_$examine_mapping 000000 constant entry external dcl 3-101 graphic_manipulator_$examine_mode 000000 constant entry external dcl 3-91 graphic_manipulator_$examine_position 000000 constant entry external dcl 3-86 graphic_manipulator_$examine_symbol 000000 constant entry external dcl 3-119 graphic_manipulator_$examine_symtab 000000 constant entry external dcl 3-114 graphic_manipulator_$examine_text 000000 constant entry external dcl 3-124 graphic_manipulator_$examine_type 000000 constant entry external dcl 3-83 graphic_manipulator_$find_structure 000000 constant entry external dcl 3-63 graphic_manipulator_$fstruc 000000 constant entry external dcl 3-63 graphic_manipulator_$get_struc 000000 constant entry external dcl 3-134 graphic_manipulator_$gstruc 000000 constant entry external dcl 3-134 graphic_manipulator_$pstruc 000000 constant entry external dcl 3-139 graphic_manipulator_$put_struc 000000 constant entry external dcl 3-139 graphic_manipulator_$remove_symbol 000000 constant entry external dcl 3-77 graphic_manipulator_$replace_node 000000 constant entry external dcl 3-74 graphic_manipulator_$replicate 000000 constant entry external dcl 3-80 graphic_manipulator_$save_file 000000 constant entry external dcl 3-144 graphic_manipulator_$segp 000000 constant entry external dcl 3-6 graphic_manipulator_$use_file 000000 constant entry external dcl 3-147 plot_ 000000 constant entry external dcl 2-3 plot_$scale 000000 constant entry external dcl 2-3 plot_$setup 000000 constant entry external dcl 2-3 NAMES DECLARED BY EXPLICIT CONTEXT. append_element 005342 constant entry internal dcl 575 ref 424 434 check_range 005250 constant entry internal dcl 557 ref 546 547 clean_up 004704 constant entry internal dcl 458 ref 98 456 crump 001145 constant label dcl 453 ref 92 259 261 263 265 267 269 271 273 276 278 282 287 291 299 301 304 306 313 315 332 334 350 352 357 361 363 370 372 375 381 383 385 392 407 422 426 432 436 445 init 001316 constant entry external dcl 480 initf 001432 constant entry external dcl 510 initialize_rest_of_stuff 004730 constant entry internal dcl 495 ref 490 516 make_grid 001643 constant entry internal dcl 166 ref 160 make_log 001602 constant entry internal dcl 113 ref 109 110 plot_ 000225 constant entry external dcl 18 return_and_forget_it 001601 constant label dcl 571 ref 567 scale 001522 constant entry external dcl 539 scale_plot 004514 constant entry internal dcl 173 ref 170 171 setup 001227 constant entry external dcl 474 validate 005124 constant entry internal dcl 521 ref 497 498 499 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5756 6172 5510 5766 Length 6576 5510 214 367 245 146 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME plot_ 1008 external procedure is an external procedure. on unit on line 98 64 on unit make_log internal procedure shares stack frame of external procedure plot_. make_grid internal procedure shares stack frame of external procedure plot_. scale_plot internal procedure shares stack frame of external procedure plot_. clean_up 64 internal procedure is called by several nonquick procedures. initialize_rest_of_stuff internal procedure shares stack frame of external procedure plot_. validate internal procedure shares stack frame of external procedure plot_. check_range internal procedure shares stack frame of external procedure plot_. append_element internal procedure shares stack frame of external procedure plot_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xlabel plot_ 000042 ylabel plot_ 000074 title plot_ 000126 type plot_ 000127 grid_sw plot_ 000130 eq_scl_sw plot_ 000131 log10_of_base plot_ 000132 wipe_me plot_ 000133 xmin plot_ 000134 xmax plot_ 000135 ymin plot_ 000136 ymax plot_ 000137 incrx plot_ 000140 incry plot_ 000141 xlines plot_ 000142 ylines plot_ 000143 gxincr plot_ 000144 gyincr plot_ 000146 sys_area_p plot_ 000150 base plot_ 000151 static_xmin plot_ 000152 static_xmax plot_ 000153 static_ymin plot_ 000154 static_ymax plot_ 000155 have_minmaxes plot_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME plot_ 000100 code plot_ 000101 i plot_ 000102 xptr plot_ 000104 yptr plot_ 000114 jfx plot_ 000115 j plot_ 000116 vtic plot_ 000117 htic plot_ 000120 abspread plot_ 000121 jfl plot_ 000122 compensation plot_ 000123 g plot_ 000433 h plot_ 000743 string plot_ 000756 xcoord plot_ 000757 ycoord plot_ 000760 oxc plot_ 000761 oyc plot_ 000762 fig plot_ 000763 temp_array plot_ 000764 current_sublist plot_ 000765 figure plot_ 001046 spread scale_plot 001047 fixjunk scale_plot 001050 floatjunk scale_plot 001102 temp append_element 001104 fudge append_element THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 r_g_a r_e_as alloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return fl2_to_fx1 mod_fx1 enable shorten_stack ext_entry ext_entry_desc int_entry log10 real_p_int alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_system_free_area_ graphic_compiler_$display graphic_compiler_$display_append graphic_manipulator_$add_element graphic_manipulator_$assign_name graphic_manipulator_$create_array graphic_manipulator_$create_mode graphic_manipulator_$create_position graphic_manipulator_$create_text graphic_manipulator_$init graphic_manipulator_$replace_element ioa_$rsnnl sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg graphic_error_table_$lsm_blk_len LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000220 91 000232 92 000240 94 000242 96 000255 98 000260 100 000302 103 000320 104 000330 105 000345 106 000357 108 000361 109 000365 110 000410 123 000435 127 000442 129 000444 130 000450 131 000456 132 000464 134 000465 135 000467 138 000471 139 000474 140 000502 141 000510 143 000511 144 000513 146 000515 149 000516 150 000521 152 000524 153 000534 154 000542 155 000547 156 000554 157 000560 160 000562 403 000563 405 000565 407 000614 410 000616 414 000620 416 000630 417 000642 418 000654 419 000702 421 000737 422 000767 424 000771 426 000773 429 000775 431 001001 432 001033 434 001035 436 001037 441 001041 441 001043 442 001045 444 001047 445 001103 447 001105 448 001122 449 001132 450 001135 451 001136 452 001141 453 001143 456 001214 465 001220 474 001221 478 001263 480 001307 488 001345 489 001373 490 001421 491 001422 510 001423 514 001461 515 001477 516 001513 517 001514 539 001515 545 001527 546 001532 547 001547 548 001564 549 001567 550 001572 551 001574 552 001576 553 001600 571 001601 113 001602 117 001606 118 001616 119 001640 120 001642 166 001643 170 001644 171 001663 231 001702 232 001706 233 001711 234 001713 235 001715 236 001717 238 001720 239 001722 240 001724 242 001726 243 001737 244 001746 245 001750 246 001760 251 001762 252 001765 253 001766 257 001767 258 001771 259 002016 260 002020 261 002046 262 002050 263 002076 264 002100 265 002131 266 002133 267 002162 268 002164 269 002213 270 002215 271 002244 272 002246 273 002277 275 002301 276 002316 277 002320 278 002347 280 002351 281 002363 282 002410 283 002412 284 002415 286 002420 287 002450 289 002452 290 002464 291 002511 292 002513 293 002516 294 002521 297 002522 298 002541 299 002555 300 002557 301 002606 302 002610 303 002622 304 002647 305 002651 306 002706 307 002710 308 002713 309 002716 310 002720 311 002722 312 002734 313 002761 314 002763 315 003020 316 003022 317 003025 318 003031 321 003032 322 003034 323 003043 324 003050 325 003057 326 003121 327 003175 328 003217 330 003232 331 003257 332 003315 333 003317 334 003363 335 003366 337 003370 338 003376 339 003404 340 003411 341 003420 342 003463 343 003540 344 003562 346 003575 347 003623 349 003666 350 003722 351 003724 352 003773 353 003776 355 004000 356 004006 357 004022 359 004024 360 004032 361 004061 362 004063 363 004125 364 004130 365 004131 366 004134 367 004142 368 004150 369 004157 370 004216 371 004220 372 004260 373 004262 374 004264 375 004315 376 004317 377 004320 379 004322 380 004330 381 004356 382 004360 383 004421 384 004424 385 004454 386 004456 388 004457 391 004461 392 004511 393 004513 173 004514 182 004516 184 004521 186 004524 187 004526 188 004530 189 004532 191 004533 192 004541 193 004550 196 004553 197 004556 198 004561 199 004563 208 004572 209 004606 210 004615 211 004624 212 004633 214 004636 215 004643 217 004645 219 004654 220 004661 222 004663 224 004672 225 004677 227 004702 458 004703 460 004711 461 004720 463 004727 495 004730 497 004731 498 004774 499 005040 500 005105 501 005110 502 005111 503 005113 504 005117 506 005123 521 005124 526 005142 530 005152 533 005244 557 005250 562 005252 564 005256 567 005341 575 005342 584 005344 586 005364 589 005372 592 005373 594 005375 597 005423 600 005427 605 005450 608 005454 610 005456 615 005477 ----------------------------------------------------------- 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