COMPILATION LISTING OF SEGMENT plio2_qge_ Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1419.8 mst Mon Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 quick_get_edit_: 11 plio2_qge_: proc (pspp) options (support); 12 13 /* Written by R.Schoeman Spring 1977 to replace plio2_gve_ with faster algorithms & code. */ 14 /* Modified 780223 by PG to fix 1709 (get edit failed when very first thing was column format). */ 15 /* Modified 780406 by RAB to fix 1724 (seg fault with get string edit doing col format with no newline). */ 16 /* Modified 780718 by RAB to make slightly more quit-start proof */ 17 18 /* plio2_qge_$ 19* is called from the user's procedure to get one 20* value in edit-directed mode and, of course, to 21* perform such control functions as may correspond 22* to formats preceeding the next data format. 23* 24* This procedure is called from put_format_.alm in the operators, 25* which has already walked the format list and gotten the next prepared format 26* item. This procedure gets the input field of the length defined by that 27* format and does the necessary conversions, finally assigning the 28* value to the variable specified by the ps. 29* It is analagous to the latter half of put_format_.alm, which does 30* the output conversions for pl1 edit_directed io. 31**/ 32 33 dcl (erno init (999), ftype, nval, i, j, 34 radix_factor, first_bit, 35 to_move, targ_index, si, cc, 36 string_start, first_char_len, 37 old_nl, from_old_nl, 38 oncharind, icomplex) fixed bin (15); 39 40 dcl (char_pic_format, warned) bit (1) aligned; 41 42 dcl code fixed bin (35); 43 dcl x char (1) aligned; 44 dcl conname char (12); 45 dcl ctl_char char (1) aligned; 46 dcl ctl_chars char (4) aligned init ( 47 " 48 ") options (constant) int static; 49 50 /* The preceding four characters were , in order: carriage_return, horizontal tab, new_line, and new_page */ 51 52 dcl based_char256 char (256) based; 53 dcl based_packed_ptr ptr unaligned based; 54 dcl char_array (1000) char (1) unaligned based; 55 56 dcl 1 based_byte_array (60) unal based (addr (buffer (icomplex))), 57 2 unused bit (1) unal, 58 2 exp_fac fixed bin (7) unal; 59 60 dcl buf1000 char (1000); 61 dcl new_line char (1) aligned int static options (constant) init (" 62 "); 63 64 dcl tab char (1) aligned int static options (constant) init (" "); 65 66 67 68 dcl (error_table_$short_record, 69 error_table_$long_record, 70 error_table_$end_of_info) external static fixed bin (35); 71 72 dcl (pspp, psp, fp, pic_ptr, targ_ptr, in_ptr) ptr; 73 74 dcl 1 facts (2), 75 2 (pow, sc, iw, ef, use) fixed bin (15); 76 77 78 dcl 1 info_struct, 79 2 next_position fixed (21), /* output */ 80 2 last_position fixed (21); /* output */ 81 82 83 dcl (n_read, n_left, tk) fixed bin (21); 84 85 86 dcl 1 fb based (ps.format_area_p), 87 2 type fixed bin (15), 88 2 nval fixed bin (15), 89 2 val (3) fixed bin (15); 90 91 dcl 1 fbc (0:2) based (fp), 92 2 type fixed bin (15), 93 2 nval fixed bin (15), 94 2 val (3) fixed bin (15); 95 96 dcl types (2) fixed bin (17), 97 98 scale_prec (2) fixed bin (35), 99 100 1 fo (2) based (addr (scale_prec (1))) aligned, 101 2 scale fixed bin (17) unal, 102 2 prec fixed bin (17) unal; 103 104 dcl 1 dec_fixed (2) based (addr (space)) unal, 105 2 sign_of_mantissa char (1) unal, 106 2 mantissa char (info.inprec) unal; 107 108 dcl 1 dec_float (2) based (addr (space)) unal, 109 2 sign_of_mantissa char (1) unal, 110 2 mantissa char (info.inprec) unal, 111 2 unused bit (1) unal, 112 2 exponent fixed bin (7) unal; 113 114 dcl (dec_pos, e_pos, exp_sign_pos) fixed bin (17); 115 116 dcl buffer (2) char (64) aligned, 117 space char (128) aligned; 118 119 120 121 dcl (addr, addrel, fixed, index, min, max, mod, length, search, substr, unspec, reverse, size, 122 ltrim, rtrim) builtin; 123 124 125 dcl put_copy_ ext entry (ptr, fixed bin (21)); 126 127 dcl iox_$get_chars ext entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 128 dcl iox_$get_line ext entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 129 dcl plio2_signal_$s_ ext entry (ptr, char (*), char (*), fixed bin (15)); 130 dcl plio2_signal_$s_r_ ext entry (ptr, char (*), char (*), fixed bin (15)); 131 dcl plio2_signal_$conversion_error_ ext entry (ptr, char (*), fixed bin (15), ptr, fixed bin (15), fixed bin (15), fixed bin (15)); 132 dcl plio2_resig_ ext entry (ptr); 133 134 dcl conversion condition; 135 1 1 /* BEGIN INCLUDE FILE...pl1_stack_frame.incl.pl1 */ 1 2 /* This is an overlay for a stack frame giving pointers 1 3** set and used by pl/I programs only. 1 4**/ 1 5 1 6 dcl 1 pl1_stack_frame based aligned, 1 7 2 pad(32) fixed bin, 1 8 2 display_ptr ptr, /* pointer to stack frame of parent block */ 1 9 2 descriptor_ptr ptr, /* pointer to argument descriptor list */ 1 10 2 linkage_ptr ptr, /* pointer to base of linkage section */ 1 11 2 text_base_ptr ptr; /* pointer to base of text */ 1 12 1 13 /* END INCLUDE FILE ... pl1_stack_frame.incl.pl1 */ 136 2 1 /* BEGIN INCLUDE FILE ... desc_dcls.incl.pl1 */ 2 2 2 3 /* This include segment contains declarations for use with assign_ */ 2 4 2 5 dcl intype fixed bin (17), 2 6 outtype fixed bin (17); 2 7 2 8 dcl inscale_prec fixed bin (35), 2 9 outscale_prec fixed bin (35); 2 10 2 11 dcl 1 info based (addr (inscale_prec)) aligned, 2 12 2 inscale fixed bin (17) unal, 2 13 2 inprec fixed bin (17) unal; 2 14 2 15 dcl 1 outfo based (addr (outscale_prec)) aligned, 2 16 2 outscale fixed bin (17) unal, 2 17 2 outprec fixed bin (17) unal; 2 18 2 19 dcl inclength fixed bin(31) aligned based(addr(inscale_prec)); 2 20 dcl outclength fixed bin(31) aligned based(addr(outscale_prec)); 2 21 2 22 dcl char_to_numeric_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17)), 2 23 assign_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17), fixed bin (35)), 2 24 assign_round_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17), fixed bin (35)), 2 25 assign_truncate_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17), fixed bin (35)); 2 26 2 27 /* END INCLUDE FILE ... desc_dcls.incl.pl1 */ 137 3 1 dcl ( s_fixed_real_desc init( 1), 3 2 d_fixed_real_desc init( 2), 3 3 s_float_real_desc init( 3), 3 4 d_float_real_desc init( 4), 3 5 s_fixed_cplx_desc init( 5), 3 6 d_fixed_cplx_desc init( 6), 3 7 s_float_cplx_desc init( 7), 3 8 d_float_cplx_desc init( 8), 3 9 3 10 D_fixed_real_desc init( 9), 3 11 D_float_real_desc init(10), 3 12 D_fixed_cplx_desc init(11), 3 13 D_float_cplx_desc init(12), 3 14 3 15 pointer_desc init(13), 3 16 offset_desc init(14), 3 17 label_desc init(15), 3 18 entry_desc init(16), 3 19 structure_desc init(17), 3 20 area_desc init(18), 3 21 3 22 bit_desc init(19), 3 23 v_bit_desc init(20), 3 24 3 25 char_desc init(21), 3 26 v_char_desc init(22), 3 27 3 28 file_desc init(23) 3 29 ) fixed bin int static options(constant); 138 4 1 /* BEGIN INCLUDE FILE ... radix_factor_constants.incl.pl1 */ 4 2 4 3 /* The following array, "digits", although static, IS assigned to in some cases */ 4 4 /* so could never be "options(constant)!! */ 4 5 4 6 dcl digits(0:5) char(16) int static init( "0101010101010101", /* only 1st two digits are meaningful */ 4 7 "0101010101010101", /* only 1st 2 digits meaningful */ 4 8 "0123012301230123", /* only 1st 4 digits meaningful */ 4 9 "0123456701234567", /* only 1st 8 digits meaningful */ 4 10 "0123456789abcdef", /* all 16 digits meaningful */ 4 11 "0123456789ABCDEF"); /* all 16 digits meaningful */ 4 12 4 13 dcl capital_hex char(6) init("ABCDEF") int static options(constant); 4 14 4 15 dcl lower_case_hex char(6) init("abcdef") int static options(constant); 4 16 4 17 dcl expand_bit_chars(2:4) char(64) int static init( "00011011", 4 18 "000001010011100101110111", 4 19 "0000000100100011010001010110011110001001101010111100110111101111"); 4 20 4 21 dcl expand_bits(2:4) bit(64) int static init( "00011011"b, 4 22 "000001010011100101110111"b, 4 23 "0000000100100011010001010110011110001001101010111100110111101111"b); 4 24 4 25 /* END INCLUDE FILE ... radix_factor_constants.incl.pl1 */ 139 5 1 /* BEGIN INCLUDE FILE ... descriptor.incl.pl1 */ 5 2 5 3 dcl 1 desc_ aligned, 5 4 2 version2_ bit(1) unal, 5 5 2 type_ fixed bin(6) unsigned unal, 5 6 2 pack_ bit(1) unal, 5 7 2 dimension_ bit(4) unal, 5 8 2 scale_ fixed bin(11) unal, 5 9 2 precision_ fixed bin(11) unal; 5 10 5 11 /* END INCLUDE FILE ... descriptor.incl.pl1 */ 140 6 1 dcl type(24:28) fixed bin(15) int static init 6 2 ( 42, /* character */ 6 3 18, /* real fixed dec */ 6 4 22, /* cplx fixed dec */ 6 5 20, /* real float dec */ 6 6 24); /* cplx float dec */ 141 7 1 /* BEGIN INCLUDE FILE ... picture_image.incl.pl1 7 2* 7 3* James R. Davis 12 Mar 79 7 4**/ 7 5 7 6 dcl 1 picture_image aligned based, 7 7 2 type fixed bin (8) unal, 7 8 2 prec fixed bin (8) unal, /* precision or length of associated value */ 7 9 2 scale fixed bin (8) unal, /* for both fixed and float pictures, 7 10* =ndigits after "v" - scale_factor */ 7 11 2 piclength fixed bin (8) unal, /* length of picture_constant.chars, <64 7 12* =length of normalized-picture-string */ 7 13 2 varlength fixed bin (8) unal, /* length of pictured variable in chars, <64 7 14* =length of normalized_picture_string - "k" and "v" */ 7 15 2 scalefactor fixed bin (8) unal, /* value of pict-sc-f, -256<=x<256 */ 7 16 2 explength fixed bin (8) unal, /* length of exp field for float */ 7 17 2 drift_character char (1) unal, 7 18 2 chars char (0 refer (picture_image.piclength)) aligned; 7 19 7 20 dcl ( 7 21 picture_char_type init (24), 7 22 picture_realfix_type init (25), 7 23 picture_complexfix_type 7 24 init (26), 7 25 picture_realflo_type init (27), 7 26 picture_complexflo_type 7 27 init (28) 7 28 ) fixed bin (8) unal static internal options (constant); 7 29 7 30 /* END INCLUDE FILE ... picture_image.incl.pl1 */ 142 8 1 dcl ( char_picture init(24), 8 2 real_fixed_picture init(25), 8 3 cplx_fixed_picture init(26), 8 4 real_float_picture init(27), 8 5 cplx_float_picture init(28)) fixed bin int static options(constant); 143 9 1 /* BEGIN INCLUDE FILE ... picture_util.incl.pl1 */ 9 2 9 3 dcl pack_picture_ entry (char (1), char (1), char (1)), 9 4 unpack_picture_ entry (char (1), char (1), char (1)), 9 5 validate_picture_ entry (char (1), char (1), fixed bin (15), fixed bin (15)), 9 6 9 7 assign_type_d entry (bit (36) aligned, ptr, ptr, fixed bin (17), fixed bin (35)), 9 8 assign_type_p entry (ptr, fixed bin (17), fixed bin (35)), 9 9 9 10 char1 char (1) based; 9 11 9 12 /* END INCLUDE FILE ... picture_util.incl.pl1 */ 144 10 1 /* plio_format_codes.incl.pl1 10 2* run-time values - the 200 prefix has been dropped */ 10 3 dcl ( r_paren init(0), 10 4 l_paren init(1), 10 5 r_format init(2), 10 6 c_format init(3), 10 7 f_format init(4), 10 8 e_format init(5), 10 9 b_format init(6), 10 10 a_format init(7), 10 11 x_format init(8), 10 12 skip_format init(9), 10 13 column_format init(10), 10 14 page_format init(11), 10 15 line_format init(12), 10 16 picture_format init(13), 10 17 bn_format init(14)) 10 18 fixed bin(15) int static; 145 11 1 /* BEGIN INCLUDE FILE ... plio2_ps.incl.pl1 */ 11 2 /* Stream I/O data block used by PL/I I/O runtime routines. 11 3* 11 4* Modified: 31 January 1978 by RAB to change plio2_data_$fsb_thread to plio2_data_fsb_thread_ 11 5**/ 11 6 /* format: style3,idind30 */ 11 7 11 8 /* based */ 11 9 11 10 declare 1 ps aligned based (psp),/* items set NORMALLY by compiled procedures */ 11 11 2 stack_frame_p ptr, /* items set in block prologue */ 11 12 2 ST_top_p ptr, 11 13 2 ST_block_p ptr, 11 14 2 format_area_p ptr, 11 15 2 ss_list_p ptr, 11 16 2 ab_return, /* items set in prep call */ 11 17 3 abret (3) ptr, 11 18 2 source_p ptr, /* addr(fakefsb) for string option, 11 19* addr(file) for explicit file option */ 11 20 2 special_list_p ptr, /* addr(OKlist) for get data, addr(format_list) for edit */ 11 21 2 copy_file_p ptr, 11 22 2 job aligned, 11 23 3 explicit_file bit (1) unal, 11 24 3 string bit (1) unal, 11 25 3 varying_string bit (1) unal, 11 26 3 data bit (1) unal, 11 27 3 edit bit (1) unal, 11 28 3 list bit (1) unal, 11 29 3 get bit (1) unal, 11 30 3 put bit (1) unal, 11 31 3 page bit (1) unal, 11 32 3 line bit (1) unal, 11 33 3 skip bit (1) unal, 11 34 3 copy bit (1) unal, 11 35 3 p1p2 bit (1) unal, 11 36 3 bit_string bit (1) unal, /* for environment(stringvalue) */ 11 37 3 char_string bit (1) unal, 11 38 3 read bit (1) unal, 11 39 3 write bit (1) unal, 11 40 3 rewrite bit (1) unal, 11 41 3 delete bit (1) unal, 11 42 3 locate bit (1) unal, 11 43 3 key bit (1) unal, 11 44 3 keyto bit (1) unal, 11 45 3 keyfrom bit (1) unal, 11 46 3 set bit (1) unal, 11 47 3 into bit (1) unal, 11 48 3 ignore bit (1) unal, 11 49 3 from bit (1) unal, 11 50 3 version bit (6) unal, 11 51 3 not_byte_buffer bit (1) unal, 11 52 3 pad1 bit (1) unal, 11 53 3 packed_ptr bit (1) unal, 11 54 2 number fixed bin (15), 11 55 2 value_p ptr, /* items set NORMALLY by compiled procedures per transmission */ 11 56 2 descriptor bit (36) aligned, 11 57 2 length fixed bin (15), /* may be swallowed into descriptor */ 11 58 2 top_half bit (18) unal, 11 59 2 offset bit (18) unal, 11 60 2 prep fixed bin (15), /* items treated ABNORMALLY, written by user and PLIO */ 11 61 2 new_format fixed bin (15), 11 62 2 switch aligned, /* items used by PLIO and not touched by compiled procedures */ 11 63 3 first_field bit (1) unal, 11 64 3 file bit (1) unal, 11 65 3 transmit_error bit (1) unal, 11 66 3 semi_sep bit (1) unal, 11 67 3 pad2 bit (32) unal, 11 68 2 file_p ptr, 11 69 2 fsbp ptr, 11 70 2 auxp ptr, /* used as addr(ldidata) for GETs */ 11 71 2 fabp ptr, 11 72 2 fab2p ptr, 11 73 2 vp ptr, 11 74 2 descr bit (36) aligned, 11 75 2 start_copy fixed bin (15), 11 76 2 quick_stream_storage, 11 77 3 a_stored fixed bin (35), 11 78 3 q_stored fixed bin (35); 11 79 11 80 /* external static */ 11 81 11 82 declare ( 11 83 plio2_data_$pspstat, 11 84 plio2_data_$fsbpstat, 11 85 plio2_data_$badfsbp, 11 86 plio2_data_$fabpstat, 11 87 plio2_data_$fab2pstat, 11 88 plio2_data_$pliostringfsbp 11 89 ) ptr external static; 11 90 11 91 dcl plio2_data_fsb_thread_ ptr ext static initial (null); 11 92 /* *system var */ 11 93 11 94 declare ( 11 95 plio2_data_$badjob bit (36) aligned, 11 96 plio2_data_$undef_file_sw bit (1) aligned 11 97 ) external static; 11 98 11 99 /* END INCLUDE FILE ... plio2_ps.incl.pl1 */ 146 12 1 /* BEGIN INCLUDE FILE ... system.incl.pl1 */ 12 2 12 3 /* Modified: 25 Apr 1979 by PCK to implemnt 4-bit decimal */ 12 4 12 5 dcl ( max_p_flt_bin_1 initial(27), 12 6 max_p_flt_bin_2 initial(63), 12 7 max_p_fix_bin_1 initial(35), 12 8 max_p_fix_bin_2 initial(71), 12 9 12 10 max_p_dec initial(59), 12 11 max_p_bin_or_dec initial (71), /* max (max_p_fix_bin_2, max_p_dec) */ 12 12 12 13 min_scale initial(-128), 12 14 max_scale initial(+127), 12 15 max_bit_string initial(9437184), 12 16 max_char_string initial(1048576), 12 17 max_area_size initial(262144), 12 18 min_area_size initial(28), 12 19 12 20 max_bit_string_constant initial (253), /* max length of bit literals */ 12 21 max_char_string_constant initial (254), /* max length of character literals */ 12 22 max_identifier_length initial (256), 12 23 max_number_of_dimensions initial (127), 12 24 12 25 max_length_precision initial(24), 12 26 max_offset_precision initial(24), /* 18 bits for word offset + 6 bits for bit offset */ 12 27 12 28 max_words_per_variable initial (262144), 12 29 12 30 bits_per_word initial(36), 12 31 bits_per_double initial(72), 12 32 packed_digits_per_character initial(2), 12 33 characters_per_half initial(2), 12 34 characters_per_word initial(4), 12 35 characters_per_double initial(8), 12 36 12 37 bits_per_character initial(9), 12 38 bits_per_half initial(18), 12 39 bits_per_decimal_digit initial(9), 12 40 bits_per_binary_exponent initial(8), 12 41 bits_per_packed_ptr initial(36), 12 42 words_per_packed_pointer initial(1), 12 43 12 44 words_per_fix_bin_1 initial(1), 12 45 words_per_fix_bin_2 initial(2), 12 46 words_per_flt_bin_1 initial(1), 12 47 words_per_flt_bin_2 initial(2), 12 48 words_per_varying_string_header initial(1), 12 49 words_per_offset initial(1), 12 50 words_per_pointer initial(2), 12 51 words_per_label_var initial(4), 12 52 words_per_entry_var initial(4), 12 53 words_per_file_var initial(4), 12 54 words_per_format initial(4), 12 55 words_per_condition_var initial(6), 12 56 12 57 max_index_register_value initial(262143), 12 58 max_signed_index_register_value initial(131071), 12 59 12 60 max_signed_xreg_precision initial(17), 12 61 max_uns_xreg_precision initial(18), 12 62 12 63 default_area_size initial(1024), 12 64 default_flt_bin_p initial(27), 12 65 default_fix_bin_p initial(17), 12 66 default_flt_dec_p initial(10), 12 67 default_fix_dec_p initial(7)) fixed bin(31) internal static options(constant); 12 68 12 69 dcl bits_per_digit initial(4.5) fixed bin(31,1) internal static options(constant); 12 70 12 71 dcl ( integer_type initial("010000000000000000000100000001100000"b), 12 72 dec_integer_type initial("010000000000000000000100000010100000"b), 12 73 pointer_type initial("000001000000000000000100000000000000"b), 12 74 real_type initial("001000000000000000000100000001100000"b), 12 75 complex_type initial("001000000000000000000100000001010000"b), 12 76 builtin_type initial("000000000000000010000000000000000000"b), 12 77 storage_block_type initial("000000000000100000000000000000000000"b), 12 78 arg_desc_type initial("000000000001000000000000000000000000"b), 12 79 local_label_var_type initial("000000001000000000000100000100001000"b), 12 80 entry_var_type initial("000000000100000000000000000000001000"b), 12 81 bit_type initial("000100000000000000000000000000000000"b), 12 82 char_type initial("000010000000000000000000000000000000"b)) bit(36) aligned int static 12 83 options(constant); 12 84 12 85 /* END INCLUDE FILE ... system.incl.pl1 */ 147 148 149 150 /* QUICK declarations, i.e. dcls for quick_get_edit */ 151 152 dcl 1 def_desc structure aligned based (addr (ps.descr)) like desc_; 13 1 /* BEGIN INCLUDE FILE ... plio2_fsb.incl.pl1 */ 13 2 /* format: style3,idind30 */ 13 3 13 4 declare 1 fsb aligned based (fsbp), 13 5 2 switch aligned, 13 6 3 zot (2) bit (1) unaligned, 13 7 3 version_2 bit (1) unaligned, 13 8 3 open bit (1) unaligned, 13 9 3 print bit (1) unaligned, 13 10 3 input bit (1) unaligned, 13 11 3 output bit (1) unaligned, 13 12 3 update bit (1) unaligned, 13 13 3 stream bit (1) unaligned, 13 14 3 notkeyed bit (1) unaligned, 13 15 3 record bit (1) unaligned, 13 16 3 sequential bit (1) unaligned, 13 17 3 direct bit (1) unaligned, 13 18 3 interactive bit (1) unaligned, 13 19 3 not_used_1 bit (1) unaligned, 13 20 3 not_used_2 bit (1) unaligned, 13 21 3 stringvalue bit (1) unaligned, 13 22 3 keyed bit (1) unaligned, 13 23 3 namelist bit (1) unaligned, 13 24 3 implementation bit (1) unaligned, 13 25 3 not_used_4 bit (1) unaligned, /* old get-input eof flag */ 13 26 3 transmit_error bit (1) unaligned, 13 27 3 buffer_in_use bit (1) unaligned, 13 28 3 copy bit (1) unaligned, 13 29 3 detach bit (1) unaligned, 13 30 3 te_hold bit (1) unaligned, 13 31 3 not_used_5 bit (1) unaligned, 13 32 3 internal bit (1) unaligned, 13 33 3 threaded bit (1) unaligned, 13 34 3 fsb_in_use bit (1) unaligned, 13 35 3 console bit (1) unaligned, 13 36 3 emptyline bit (1) unaligned, 13 37 3 iox_close bit (1) unaligned, 13 38 3 xxx4 bit (1) unaligned, 13 39 3 xxx5 bit (1) unaligned, 13 40 3 xxx6 bit (1) unaligned, 13 41 2 nono aligned, 13 42 3 bit_string bit (1) unaligned, 13 43 3 not_used_3 bit (1) unaligned, 13 44 3 read bit (1) unaligned, 13 45 3 write bit (1) unaligned, 13 46 3 rewrite bit (1) unaligned, 13 47 3 delete bit (1) unaligned, 13 48 3 locate bit (1) unaligned, 13 49 3 key bit (1) unaligned, 13 50 3 keyto bit (1) unaligned, 13 51 3 keyfrom bit (1) unaligned, 13 52 3 set bit (1) unaligned, 13 53 3 into bit (1) unaligned, 13 54 3 ignore bit (1) unaligned, 13 55 3 from bit (1) unaligned, 13 56 3 nofrom bit (1) unaligned, 13 57 3 nokey bit (1) unaligned, 13 58 3 nokeyfrom bit (1) unaligned, 13 59 3 nolock bit (1) unaligned, 13 60 2 lsep fixed bin (15), /* (1,COMMA)(2,BL)(3,TAB)(4,NL)(5,SEMI) */ 13 61 2 iocb_p ptr unaligned, /* identifies data_set to iox_ */ 13 62 2 blc fixed bin (21), /* buffer's last character (input) */ 13 63 2 bsize fixed bin (21), /* size of buffer */ 13 64 2 bptr ptr, /* address of buffer */ 13 65 2 bnc fixed bin (15), /* next character in buffer */ 13 66 2 kol fixed bin (15), /* last column read from or written into */ 13 67 2 lsize fixed bin (15), /* line size (output) */ 13 68 2 lineno fixed bin (15), /* current line (output) - starts at 1 on each new page */ 13 69 2 psize fixed bin (35), /* page size (output) */ 13 70 2 pageno fixed bin (15), /* current page number, starts at 1 */ 13 71 2 limit fixed bin (15), 13 72 2 lnzc fixed bin (35), 13 73 2 filename char (32) aligned, /* declared file name */ 13 74 2 title char (32) unaligned,/* Multics I/O switch */ 13 75 2 fsb_thread ptr, 13 76 2 buffer (212) fixed bin (15), 13 77 2 path_name char (168) unal, /* title option */ 13 78 2 declared_attributes (2) bit (36) aligned; 13 79 13 80 declare xbuf char (1000) unaligned based (fsb.bptr); 13 81 13 82 /* END INCLUDE FILE ... plio2_fsb.incl.pl1 */ 153 154 155 dcl iocbp ptr; 156 dcl (targ_type) fixed bin (17) aligned; 157 158 dcl 1 scale_prec_ aligned, 159 2 scale fixed bin (17) unal, 160 2 prec fixed bin (17) unal; 161 162 dcl fb35_based fixed bin (35) based aligned; 163 164 dcl 1 s, 165 2 width fixed bin (17), 166 2 chars char (256); 167 168 dcl def_string char (256) varying based (addr (s)); 169 dcl imag_def_string varying char (256); 170 171 dcl bit_str bit (256) aligned; 172 dcl max_io_string_length int static options (constant) fixed bin (17) init (256); 173 174 /* */ 175 176 psp = pspp; 177 178 on conversion call plio2_resig_ (psp); 179 180 ps.auxp = addr (s); 181 icomplex = 1; /* This index is used to cycle through the 2 conversions 182* needed for a complex format. If its not a complex format, 183* this index is always "1". */ 184 nval = fb.nval; 185 ftype = fb.type; 186 iocbp = ps.fsbp -> fsb.iocb_p; 187 if ftype ^= bn_format 188 then s.width = fb.val (1); 189 else s.width = fb.val (2); 190 goto char_length_action (ftype); 191 192 char_length_action (3): /* complex stuff */ 193 194 fp = ps.format_area_p; 195 196 do i = 1 to 2; 197 if fbc (i).nval < 1 198 then goto err148; 199 200 facts.iw (i) = fbc (i).val (1); 201 if facts.iw (i) < 0 202 then goto err145; 203 end; 204 s.width = facts.iw (1) + facts.iw (2); 205 /* The length of a complex format item is the 206* sum of the lengths of its real & cplx parts. */ 207 208 /* INTENTIONAL FALL THROUGH HERE !! */ 209 210 char_length_action (1): 211 /* l_paren */ 212 char_length_action (2): 213 /* r_format */ 214 char_length_action (4): 215 /* f_format */ 216 char_length_action (5): 217 /* e_format */ 218 char_length_action (6): 219 /* b_format */ 220 char_length_action (7): 221 /* a_format */ 222 char_length_action (8): 223 /* x_format */ 224 char_length_action (13): 225 /* picture_format */ 226 char_length_action (14): /* normal input chars */ 227 /* bn_format */ 228 229 if nval < 1 230 then goto err148; 231 232 if s.width < 0 233 then goto err145; 234 else if s.width > max_io_string_length 235 then goto err149; 236 237 /* Although it would be nice to optimize the case of char input string going to 238* a char target, the problem of padding if too short and raising stringsize if too 239* long means that a prohibitive amount of processing by hand would have to be done. */ 240 241 if s.width>0 242 then do; 243 targ_ptr = addr (s.chars); 244 to_move = s.width; 245 call get_chars; /* targ_ptr & to_move are the pseudo_args */ 246 end; 247 248 249 goto process_format (ftype); 250 251 252 char_length_action (9): /* input lines */ 253 /* skip format */ 254 if nval < 1 255 then call get_skip (1); 256 else call get_skip (s.width); 257 258 259 goto all_done; 260 261 262 char_length_action (10): 263 /* column format */ 264 if fb.nval ^= 1 /* This test should be unnecessary, because compiler should prevent this case from occuring */ 265 then goto err148; 266 267 if fb.val (1) < 1 268 then goto err145; 269 else tk = fb.val (1)-1; 270 /* tk is the target column number, starting at 0, 271* therefore it is equal to the pl1 col #, 272* which starts at one, minus 1. */ 273 274 275 if fsb.kol = tk 276 then goto all_done; 277 278 warned = "0"b; 279 280 if fsb.kol > tk 281 then call get_skip (1); 282 /* If the present column is greater than the 283* desired column, look for that column on the 284* NEXT line. */ 285 286 n_left = chars_left_on_line (); 287 /* This internal subroutine returns the number of 288* chars left on the present line. If there are 289* enough to go to the requested column,move the 290* requisite distance, otherwise AG94 says skip to 291* the next line & you're done. */ 292 293 if n_left > tk-fsb.kol 294 then do; 295 to_move = tk-fsb.kol; 296 if to_move > 1000 297 then goto err180; 298 targ_ptr = addr (buf1000); 299 call get_chars; 300 if index (substr (buf1000, 1, to_move), tab) > 0 301 then call tab_in_col_input; 302 goto all_done; 303 end; 304 else do; 305 call get_skip (1); 306 goto all_done; 307 end; 308 309 char_length_action (11): 310 char_length_action (12): /* illegal input format */ 311 goto err147; 312 313 314 315 null_string: 316 intype = char_desc * 2; 317 in_ptr = addr (s.chars); 318 inscale_prec = 0; 319 goto final_conv; 320 321 process_format (3): /* complex */ 322 323 first_char_len = ps.format_area_p -> fbc (1).val (1); 324 imag_def_string = substr (def_string, first_char_len+1); 325 def_string = substr (def_string, 1, first_char_len); 326 327 do icomplex = 1 to 2; 328 329 ps.format_area_p = addrel (ps.format_area_p, size (fb)); 330 if icomplex = 2 331 then def_string = imag_def_string; 332 if fb.type = picture_format 333 then call p_format_proc; 334 else if fb.type = e_format 335 then call e_format_proc; 336 else if fb.type = f_format 337 then call f_format_proc; 338 else goto err259; 339 types (icomplex) = intype; 340 scale_prec (icomplex) = inscale_prec; 341 end; 342 343 ps.format_area_p = addrel (ps.format_area_p, -2* (size (fb))); 344 if types (1) = D_fixed_real_desc*2 345 & types (2) = D_fixed_real_desc*2 346 then do; 347 intype = D_fixed_real_desc*2+1; 348 info.inprec = min (max_p_dec, max (fo.prec (1)-fo.scale (1), fo.prec (2)-fo.scale (2))+max (fo.scale (1), fo.scale (2))+1); 349 info.inscale = max (fo.scale (1), fo.scale (2)); 350 351 do i = 1 to 2; 352 call assign_ (addr (dec_fixed (i)), intype, inscale_prec, addr (buffer (i)), 353 types (i), scale_prec (i)); 354 end; 355 356 intype = D_fixed_cplx_desc*2+1; 357 end; 358 else do; 359 intype = D_float_real_desc*2+1; 360 info.inprec = max (fo.prec (1), fo.prec (2)); 361 info.inscale = 0; 362 363 do i = 1 to 2; 364 call assign_ (addr (dec_float (i)), intype, inscale_prec, addr (buffer (i)), 365 types (i), scale_prec (i)); 366 end; 367 368 intype = D_float_cplx_desc*2+1; 369 end; 370 371 in_ptr = addr (space); 372 goto final_conv; 373 374 process_format (4): /* fixed format */ 375 string_start = 1; 376 in_ptr = addr (buffer (icomplex)); 377 call f_format_proc; 378 goto final_conv; 379 380 381 process_format (5): /* e_format */ 382 string_start = 1; 383 in_ptr = addr (buffer (icomplex)); 384 call e_format_proc; 385 goto final_conv; 386 387 388 process_format (6): /* b_format */ 389 process_format (14): /* bn_format */ 390 391 def_string = ltrim (rtrim (def_string)); 392 if s.width = 0 393 then goto null_string; 394 if ftype = b_format 395 | fb.val (1) = 1 396 then do; 397 call assign_ (addr (bit_str), bit_desc * 2, addr (s.width) -> fb35_based, addr (s.chars), char_desc * 2, addr (s.width) -> fb35_based); 398 radix_factor = 1; 399 end; 400 else do; 401 ce_return: 402 radix_factor = fb.val (1); 403 if s.width * radix_factor > max_io_string_length 404 then goto err144; 405 406 if radix_factor = 4 407 then if search (def_string, capital_hex) > 0 408 then substr (digits (4), 11, 6) = capital_hex; 409 else substr (digits (4), 11, 6) = lower_case_hex; 410 411 do i = 1 to length (def_string); 412 x = substr (def_string, i, 1); 413 si = index (digits (radix_factor), x); 414 if si = 0 415 then goto CE_for_bn; 416 first_bit = (radix_factor* (si-1))+1; 417 substr (bit_str, radix_factor* (i-1)+1, radix_factor) = 418 substr (expand_bits (radix_factor), first_bit, radix_factor); 419 end; 420 end; 421 422 in_ptr = addr (bit_str); 423 intype = bit_desc * 2; /* bit_desc * 2 */ 424 inscale_prec = s.width*radix_factor; 425 goto final_conv; 426 427 process_format (7): /* a_format */ 428 429 430 /* 1st figure out output type, from ps.descr & ps.value_p, then call assign_ */ 431 /* to convert it & store result in ps.value_p. */ 432 433 intype = char_desc * 2; /* char_desc * 2 */ 434 in_ptr = addr (s.chars); 435 inscale_prec = s.width; 436 437 final_conv: 438 if ps.descr = "0"b 439 then do; 440 pic_ptr = psp -> ps.stack_frame_p -> pl1_stack_frame.text_base_ptr; 441 pic_ptr = addrel (pic_ptr, psp -> ps.top_half); 442 443 call set_pic_args; 444 if targ_type = char_desc * 2 & ftype = picture_format & char_pic_format 445 then do; 446 if scale_prec_.prec < inscale_prec 447 then call plio2_signal_$s_ (psp, "stringsize", "quick_get_edit", -1); 448 else if scale_prec_.prec > inscale_prec 449 then substr (s.chars, s.width+1) = ""; 450 call pack_picture_ (ps.value_p -> char1, pic_ptr -> char1, 451 addr (s.chars) -> char1); 452 end; 453 else do; 454 call assign_ (addr (buffer (1)), targ_type, addr (scale_prec_) -> fb35_based, 455 in_ptr, intype, inscale_prec); 456 call pack_picture_ (ps.value_p -> char1, pic_ptr -> char1, addr (buffer (icomplex)) -> char1); 457 end; 458 goto all_done; 459 end; 460 unspec (desc_) = unspec (ps.descr); 461 targ_type = desc_.type_ * 2+ fixed (desc_.pack_, 17, 0); 462 if targ_type = v_char_desc * 2 | targ_type = v_bit_desc * 2 463 then targ_ptr = addrel (ps.value_p, -1); 464 else targ_ptr = ps.value_p; 465 scale_prec_.scale = desc_.scale_; 466 scale_prec_.prec = desc_.precision_; 467 call assign_ (targ_ptr, targ_type, addr (scale_prec_) -> fb35_based, 468 in_ptr, intype, inscale_prec); 469 goto all_done; 470 471 process_format (13): /* picture format */ 472 string_start = 1; 473 in_ptr = addr (buffer (icomplex)); 474 call p_format_proc; 475 goto final_conv; 476 477 478 /* */ 479 err180: 480 erno = 180; 481 goto allerr; 482 483 err181: 484 erno = 181; 485 goto allerr; 486 487 err182: 488 erno = 182; 489 goto allerr; 490 491 err145: 492 erno = 145; 493 goto allerr; 494 495 eof163: 496 erno = 163; 497 conname = "ENDFILE"; 498 goto sandr; 499 500 err147: 501 erno = 147; 502 goto allerr; 503 504 err162: 505 erno = 162; 506 goto allerr; 507 508 err163: 509 erno = 163; 510 goto allerr; 511 512 err148: 513 erno = 148; 514 goto allerr; 515 516 err144: 517 erno = 144; 518 goto allerr; 519 520 err149: 521 erno = 149; 522 goto allerr; 523 524 err150: 525 erno = 150; 526 goto allerr; 527 528 err216: 529 erno = 216; 530 goto allerr; 531 532 err217: 533 erno = 217; 534 goto allerr; 535 536 err259: 537 erno = 259; 538 goto allerr; 539 allerr: 540 conname = "ERROR"; 541 542 /* One can NEVER return from these error-raising calls except for conversion_error ! */ 543 544 sandr: 545 call plio2_signal_$s_r_ (psp, conname, "quick_get_edit", erno); 546 547 CE_for_bn: 548 call plio2_signal_$conversion_error_ (psp, "quick_get_edit_bn", 151, addr (s.chars), 1, 549 (s.width), i); 550 goto ce_return; 551 552 raise_transmit: 553 call plio2_signal_$s_r_ (psp, "TRANSMIT", "quick_get_edit", 183); 554 555 process_format (8): /* x_format is total ignore so KEEP label on all_done */ 556 all_done: 557 return; 558 /* */ 559 p_format_proc: proc; 560 561 pic_ptr = addr (fb.val (2)) -> based_packed_ptr; 562 val_pic: 563 call validate_picture_ (addr (s.chars) -> char1, pic_ptr -> char1, 564 erno, oncharind); 565 if erno ^= 0 566 then do; 567 call plio2_signal_$conversion_error_ (psp, "quick_get_edit", erno, 568 addr (s.chars), 1, (s.width), oncharind); 569 goto val_pic; 570 end; 571 if pic_ptr -> picture_image.type = char_picture /* char */ 572 then do; 573 in_ptr = addr (s.chars); 574 intype = char_desc * 2; 575 inscale_prec = s.width; 576 char_pic_format = "1"b; 577 end; 578 579 else do; 580 call unpack_picture_ (addr (buffer (icomplex)) -> char1, 581 pic_ptr -> char1, addr (s.chars) -> char1); 582 intype = type (pic_ptr -> picture_image.type); 583 info.inscale = pic_ptr -> picture_image.scale - pic_ptr -> picture_image.scalefactor; 584 info.inprec = pic_ptr -> picture_image.prec; /* type cant be char cause that already has been filtered out prior to unpack call */ 585 in_ptr = addr (buffer (icomplex)); 586 char_pic_format = "0"b; 587 end; 588 589 590 end p_format_proc; 591 592 /* */ 593 f_format_proc: proc; 594 595 def_string = ltrim (rtrim (def_string)); 596 dec_pos = index (def_string, "."); 597 598 if length (def_string) = 0 599 then def_string = "0"; /* else char_to_numeric will call it fixed bin, not fixed dec */ 600 601 call char_to_numeric_ (addr (buffer (icomplex)), intype, inscale_prec, addr (s.chars), length (def_string)); 602 603 if intype ^= D_fixed_real_desc*2 604 then goto err150; 605 606 if dec_pos > 0 607 then info.inscale = length (def_string) - dec_pos; 608 else if fb.nval > 1 609 then info.inscale = fb.val (2); 610 if fb.nval > 2 611 then info.inscale = info.inscale - fb.val (3); 612 613 if info.inscale < min_scale 614 then goto err217; 615 else if info.inscale > max_scale 616 then goto err216; 617 618 end f_format_proc; 619 620 /* */ 621 e_format_proc: proc; 622 623 def_string = ltrim (rtrim (def_string)); 624 dec_pos = index (def_string, "."); 625 e_pos = index (def_string, "e"); 626 if length (def_string) = 0 627 then def_string = "0e0"; /* KLUDGE to make zero-len string work */ 628 else do; 629 exp_sign_pos = search (substr (def_string, 2), "+-")+1; 630 631 if e_pos = 0 632 then if exp_sign_pos = 1 633 then def_string = def_string||"e0"; 634 else def_string = substr (def_string, 1, exp_sign_pos-1)||"e"||substr (def_string, exp_sign_pos); 635 end; 636 637 call char_to_numeric_ (addr (buffer (icomplex)), intype, inscale_prec, addr (s.chars), length (def_string)); 638 639 if intype ^= D_float_real_desc*2 640 then goto err182; 641 642 if dec_pos = 0 643 then if fb.val (2) ^= 0 644 then do; 645 based_byte_array (inscale_prec+2).exp_fac = based_byte_array (inscale_prec+2).exp_fac-fb.val (2); 646 if based_byte_array (inscale_prec+2).exp_fac > max_scale 647 then goto err216; 648 else if based_byte_array (inscale_prec+2).exp_fac < min_scale 649 then goto err217; 650 end; 651 652 653 end e_format_proc; 654 655 656 /* */ 657 set_pic_args: proc; 658 targ_type = type (pic_ptr -> picture_image.type); 659 scale_prec_.scale = pic_ptr -> picture_image.scale - pic_ptr -> picture_image.scalefactor; 660 if targ_type = char_desc * 2 /* char_desc * 2 */ 661 then scale_prec_.prec = pic_ptr -> picture_image.varlength; 662 else scale_prec_.prec = pic_ptr -> picture_image.prec; 663 end; 664 665 666 /* */ 667 get_chars: proc; 668 /* INPUT ARGS are targ_ptr, to_move */ 669 670 targ_index = 1; 671 672 scan: si = min (to_move, fsb.blc-fsb.bnc+1); 673 674 cc = search (substr (xbuf, fsb.bnc, si), ctl_chars); 675 676 if cc = 0 677 then do; 678 substr (targ_ptr -> based_char256, targ_index, si) = substr (xbuf, fsb.bnc, si); 679 fsb.bnc = fsb.bnc + si; 680 targ_index = targ_index + si; 681 fsb.kol = fsb.kol + si; 682 683 if to_move = si 684 then return; 685 686 to_move = to_move - si; 687 688 call refill_buffer; 689 690 if code ^= 0 691 then if targ_index = 1 692 then goto eof163; 693 else goto err163; 694 695 goto scan; 696 end; 697 698 ctl_char = substr (xbuf, fsb.bnc+cc-1, 1); 699 700 if ctl_char ^= tab 701 then do; 702 /* The remaining ctl chars are new_line, new_page, and carriage return */ 703 substr (targ_ptr -> based_char256, targ_index, cc-1) = substr (xbuf, fsb.bnc, cc-1); 704 to_move = to_move - cc + 1; 705 fsb.bnc = fsb.bnc+cc; 706 targ_index = targ_index+cc-1; 707 if ctl_char = new_line 708 then fsb.kol = 0; 709 else fsb.kol = fsb.kol+cc-1; 710 goto scan; 711 end; 712 713 substr (targ_ptr -> based_char256, targ_index, cc) = substr (xbuf, fsb.bnc, cc); 714 fsb.bnc = fsb.bnc+cc; 715 targ_index = targ_index+cc; 716 to_move = to_move-cc; 717 718 fsb.kol = fsb.kol + cc; 719 fsb.kol = fsb.kol+10-mod (fsb.kol, 10); 720 goto scan; 721 722 end get_chars; 723 /* */ 724 refill_buffer: proc; 725 726 if ps.copy 727 then do; 728 call put_copy_ (psp, fsb.blc); 729 ps.start_copy = 1; 730 end; 731 732 if ps.string 733 then goto err162; 734 735 fsb.blc = 0; /* protects us somewhat from quit-start */ 736 fsb.bnc = 1; /* .. */ 737 738 if fsb.console 739 then call iox_$get_line (iocbp, fsb.bptr, fsb.bsize, fsb.blc, code); 740 else call iox_$get_chars (iocbp, fsb.bptr, fsb.bsize, fsb.blc, code); 741 742 fsb.bnc = 1; 743 744 if code ^= 0 745 then if code = error_table_$long_record|code = error_table_$short_record 746 then code = 0; 747 else if code = error_table_$end_of_info 748 then ; 749 else goto raise_transmit; 750 751 752 753 end refill_buffer; 754 755 756 /* */ 757 chars_left_on_line: proc returns (fixed bin (21)); 758 759 dcl n_left fixed bin (21); 760 761 762 if fsb.blc = 0 /* never have read from file... */ 763 then call refill_buffer; 764 765 n_left = index (substr (xbuf, fsb.bnc, fsb.blc-fsb.bnc+1), new_line); 766 767 if n_left > 0 768 then return (n_left); 769 770 /* Have partial input line (no final NL). Find out why. */ 771 772 from_old_nl = index (reverse (substr (xbuf, 1, fsb.blc)), new_line); 773 774 if from_old_nl = 0 775 then do; 776 if ps.string 777 then return(fsb.blc - fsb.bnc + 1); 778 779 call iox_$get_line (iocbp, addr (xbuf), fsb.bsize, n_read, code); 780 781 if code = error_table_$end_of_info 782 then return (fsb.blc - fsb.bnc + 1); 783 else goto err181; 784 end; 785 786 /* It should be noted here that if we just returned 0, the col format 787* handling mechanism will shorty raise an end_of_file anyway, by calling 788* a guaranteed subsequent "get_skip(2)" */ 789 790 old_nl = fsb.blc-from_old_nl; 791 792 if ps.copy 793 then do; 794 call put_copy_ (psp, fsb.blc); 795 ps.start_copy = 1; 796 end; 797 798 if ps.string 799 then goto err162; 800 801 802 803 substr (xbuf, 1, from_old_nl) = substr (substr (xbuf, 1, from_old_nl), old_nl+1, from_old_nl); /* the +1 is to flush the last NL, too */ 804 call iox_$get_line (iocbp, addr (addr (xbuf) -> char_array (from_old_nl+1)), 805 fsb.bsize-from_old_nl, n_read, code); 806 if code ^= 0 807 then if code = error_table_$long_record 808 then goto err181; 809 else if code = error_table_$short_record|code = error_table_$end_of_info 810 then code = 0; 811 else goto raise_transmit; 812 813 814 fsb.bnc = fsb.bnc - old_nl; 815 fsb.blc = from_old_nl+n_read; 816 n_left = fsb.blc-fsb.bnc+1; 817 818 return (n_left); 819 end; 820 /* */ 821 get_skip: proc (skip_count_param); 822 823 dcl (skip_count, skip_count_param) fixed bin (17) aligned; 824 825 826 skip_count = skip_count_param; 827 fsb.kol = 0; 828 829 do while (skip_count > 0); 830 831 j = index (substr (xbuf, fsb.bnc, fsb.blc-fsb.bnc+1), new_line); 832 833 if j = 0 834 then do; 835 call refill_buffer; 836 837 if code ^= 0 838 then goto eof163; 839 840 end; 841 842 else do; 843 844 fsb.bnc = fsb.bnc + j; 845 skip_count = skip_count-1; 846 end; 847 848 end; 849 850 851 end; 852 853 854 /* */ 855 tab_in_col_input: proc; 856 857 if ^warned 858 then call plio2_signal_$s_ (psp, "ERROR", "quick_get_edit", 157); 859 860 warned = "1"b; 861 return; 862 863 end; 864 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1005.5 plio2_qge_.pl1 >spec>on>pl128d>plio2_qge_.pl1 136 1 05/06/74 1742.6 pl1_stack_frame.incl.pl1 >ldd>include>pl1_stack_frame.incl.pl1 137 2 11/30/78 1227.5 desc_dcls.incl.pl1 >ldd>include>desc_dcls.incl.pl1 138 3 01/12/79 1059.7 desc_types.incl.pl1 >ldd>include>desc_types.incl.pl1 139 4 09/14/77 1705.7 radix_factor_constants.incl.pl1 >ldd>include>radix_factor_constants.incl.pl1 140 5 11/30/78 1227.5 descriptor.incl.pl1 >ldd>include>descriptor.incl.pl1 141 6 05/06/74 1742.6 picture_desc_.incl.pl1 >ldd>include>picture_desc_.incl.pl1 142 7 06/28/79 1204.8 picture_image.incl.pl1 >ldd>include>picture_image.incl.pl1 143 8 05/03/76 1320.4 picture_types.incl.pl1 >ldd>include>picture_types.incl.pl1 144 9 09/14/77 1705.7 picture_util.incl.pl1 >ldd>include>picture_util.incl.pl1 145 10 12/08/76 1048.4 plio_format_codes.incl.pl1 >ldd>include>plio_format_codes.incl.pl1 146 11 08/13/81 2043.5 plio2_ps.incl.pl1 >ldd>include>plio2_ps.incl.pl1 147 12 10/03/83 1004.4 system.incl.pl1 >spec>on>pl128d>system.incl.pl1 153 13 08/13/81 2043.5 plio2_fsb.incl.pl1 >ldd>include>plio2_fsb.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. D_fixed_cplx_desc constant fixed bin(17,0) initial dcl 3-1 ref 356 D_fixed_real_desc constant fixed bin(17,0) initial dcl 3-1 ref 344 344 347 603 D_float_cplx_desc constant fixed bin(17,0) initial dcl 3-1 ref 368 D_float_real_desc constant fixed bin(17,0) initial dcl 3-1 ref 359 639 addr builtin function dcl 121 ref 180 243 298 317 324 325 325 330 348 348 348 348 348 348 348 349 349 349 352 352 352 352 352 352 352 352 352 352 360 360 360 361 364 364 364 364 364 364 364 364 364 364 371 376 383 388 388 397 397 397 397 397 397 406 411 412 422 434 450 454 454 454 456 467 473 547 547 561 562 567 567 573 580 580 583 584 585 595 595 596 598 598 601 601 601 601 601 601 606 606 608 610 610 613 615 623 623 624 625 626 626 629 631 631 634 634 634 637 637 637 637 637 637 645 645 646 648 779 779 804 804 804 804 addrel builtin function dcl 121 ref 329 343 441 462 assign_ 000066 constant entry external dcl 2-22 ref 352 364 397 454 467 auxp 44 based pointer level 2 dcl 11-10 set ref 180* b_format constant fixed bin(15,0) initial dcl 10-3 ref 394 based_byte_array based structure array level 1 packed unaligned dcl 56 based_char256 based char(256) unaligned dcl 52 set ref 678* 703* 713* based_packed_ptr based pointer unaligned dcl 53 ref 561 bit_desc constant fixed bin(17,0) initial dcl 3-1 ref 397 423 bit_str 001104 automatic bit(256) dcl 171 set ref 397 397 417* 422 blc 4 based fixed bin(21,0) level 2 dcl 13-4 set ref 672 728* 735* 738* 740* 762 765 772 776 781 790 794* 815* 816 831 bn_format constant fixed bin(15,0) initial dcl 10-3 ref 187 bnc 10 based fixed bin(15,0) level 2 dcl 13-4 set ref 672 674 678 679* 679 698 703 705* 705 713 714* 714 736* 742* 765 765 776 781 814* 814 816 831 831 844* 844 bptr 6 based pointer level 2 dcl 13-4 set ref 674 678 698 703 713 738* 740* 765 772 779 779 803 803 804 804 831 bsize 5 based fixed bin(21,0) level 2 dcl 13-4 set ref 738* 740* 779* 804 buf1000 000131 automatic char(1000) unaligned dcl 60 set ref 298 300 buffer 000563 automatic char(64) array dcl 116 set ref 352 352 364 364 376 383 454 454 456 473 580 585 601 601 637 637 645 645 646 648 capital_hex 000050 constant char(6) initial unaligned dcl 4-13 ref 406 406 cc 000112 automatic fixed bin(15,0) dcl 33 set ref 674* 676 698 703 703 704 705 706 709 713 713 714 715 716 718 char1 based char(1) unaligned dcl 9-3 set ref 450* 450* 450* 456* 456* 456* 562* 562* 580* 580* 580* char_array based char(1) array unaligned dcl 54 set ref 804 804 char_desc constant fixed bin(17,0) initial dcl 3-1 ref 315 397 427 444 574 660 char_pic_format 000121 automatic bit(1) dcl 40 set ref 444 576* 586* char_picture constant fixed bin(17,0) initial dcl 8-1 ref 571 char_to_numeric_ 000064 constant entry external dcl 2-22 ref 601 637 chars 1 000702 automatic char(256) level 2 packed unaligned dcl 164 set ref 243 317 397 397 434 448* 450 547 547 562 567 567 573 580 601 601 637 637 code 000123 automatic fixed bin(35,0) dcl 42 set ref 690 738* 740* 744 744 744 744* 747 779* 781 804* 806 806 809 809 809* 837 conname 000125 automatic char(12) unaligned dcl 44 set ref 497* 539* 544* console 0(30) based bit(1) level 3 packed unaligned dcl 13-4 ref 738 conversion 000664 stack reference condition dcl 134 ref 178 copy 26(11) based bit(1) level 3 packed unaligned dcl 11-10 ref 726 792 ctl_char 000130 automatic char(1) dcl 45 set ref 698* 700 707 ctl_chars 000052 constant char(4) initial dcl 46 ref 674 dec_fixed based structure array level 1 packed unaligned dcl 104 set ref 352 352 dec_float based structure array level 1 packed unaligned dcl 108 set ref 364 364 dec_pos 000560 automatic fixed bin(17,0) dcl 114 set ref 596* 606 606 624* 642 def_string based varying char(256) dcl 168 set ref 324 325* 325 330* 388* 388 406 411 412 595* 595 596 598 598* 601 601 606 623* 623 624 625 626 626* 629 631* 631 634* 634 634 637 637 desc_ 000674 automatic structure level 1 dcl 5-3 set ref 460* descr 54 based bit(36) level 2 dcl 11-10 ref 437 460 digits 000010 internal static char(16) initial array unaligned dcl 4-6 set ref 406* 409* 413 e_format constant fixed bin(15,0) initial dcl 10-3 ref 334 e_pos 000561 automatic fixed bin(17,0) dcl 114 set ref 625* 631 erno 000100 automatic fixed bin(15,0) initial dcl 33 set ref 33* 479* 483* 487* 491* 495* 500* 504* 508* 512* 516* 520* 524* 528* 532* 536* 544* 562* 565 567* error_table_$end_of_info 000044 external static fixed bin(35,0) dcl 68 ref 747 781 809 error_table_$long_record 000042 external static fixed bin(35,0) dcl 68 ref 744 806 error_table_$short_record 000040 external static fixed bin(35,0) dcl 68 ref 744 809 exp_fac 0(01) based fixed bin(7,0) array level 2 packed unaligned dcl 56 set ref 645* 645 646 648 exp_sign_pos 000562 automatic fixed bin(17,0) dcl 114 set ref 629* 631 634 634 expand_bits 000037 constant bit(64) initial array unaligned dcl 4-21 ref 417 f_format constant fixed bin(15,0) initial dcl 10-3 ref 336 facts 000536 automatic structure array level 1 unaligned dcl 74 fb based structure level 1 unaligned dcl 86 set ref 329 343 fb35_based based fixed bin(35,0) dcl 162 set ref 397* 397* 454* 467* fbc based structure array level 1 unaligned dcl 91 first_bit 000106 automatic fixed bin(15,0) dcl 33 set ref 416* 417 first_char_len 000114 automatic fixed bin(15,0) dcl 33 set ref 321* 324 325 fixed builtin function dcl 121 ref 461 fo based structure array level 1 dcl 96 format_area_p 6 based pointer level 2 dcl 11-10 set ref 184 185 187 189 192 262 267 269 321 329* 329 329 332 334 336 343* 343 343 394 401 561 608 608 610 610 642 645 fp 000526 automatic pointer dcl 72 set ref 192* 197 200 from_old_nl 000116 automatic fixed bin(15,0) dcl 33 set ref 772* 774 790 803 803 803 804 804 804 815 fsb based structure level 1 dcl 13-4 fsbp 42 based pointer level 2 dcl 11-10 ref 186 275 280 293 295 672 672 674 674 678 678 679 679 681 681 698 698 703 703 705 705 707 709 709 713 713 714 714 718 718 719 719 719 728 735 736 738 738 738 738 740 740 740 742 762 765 765 765 765 772 772 776 776 779 779 779 781 781 790 794 803 803 804 804 804 814 814 815 816 816 827 831 831 831 831 844 844 ftype 000101 automatic fixed bin(15,0) dcl 33 set ref 185* 187 190 249 394 444 i 000103 automatic fixed bin(15,0) dcl 33 set ref 196* 197 200 200 201* 351* 352 352 352 352 352 352* 363* 364 364 364 364 364 364* 411* 412 417* 547* icomplex 000120 automatic fixed bin(15,0) dcl 33 set ref 181* 327* 330 339 340* 376 383 456 473 580 585 601 601 637 637 645 645 646 648 imag_def_string 001003 automatic varying char(256) dcl 169 set ref 324* 330 in_ptr 000534 automatic pointer dcl 72 set ref 317* 371* 376* 383* 422* 434* 454* 467* 473* 573* 585* index builtin function dcl 121 ref 300 413 596 624 625 765 772 831 info based structure level 1 dcl 2-11 inprec 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-11 set ref 348* 352 352 352 352 360* 364 364 364 364 584* inscale based fixed bin(17,0) level 2 packed unaligned dcl 2-11 set ref 349* 361* 583* 606* 608* 610* 610 613 615 inscale_prec 000673 automatic fixed bin(35,0) dcl 2-8 set ref 318* 340 348 349 352 352 352 352 352* 360 361 364 364 364 364 364* 424* 435* 446 448 454* 467* 575* 583 584 601* 606 608 610 610 613 615 637* 645 645 646 648 intype 000672 automatic fixed bin(17,0) dcl 2-5 set ref 315* 339 347* 352* 356* 359* 364* 368* 423* 427* 454* 467* 574* 582* 601* 603 637* 639 iocb_p 3 based pointer level 2 packed unaligned dcl 13-4 ref 186 iocbp 000676 automatic pointer dcl 155 set ref 186* 738* 740* 779* 804* iox_$get_chars 000050 constant entry external dcl 127 ref 740 iox_$get_line 000052 constant entry external dcl 128 ref 738 779 804 iw 2 000536 automatic fixed bin(15,0) array level 2 dcl 74 set ref 200* 201 204 204 j 000104 automatic fixed bin(15,0) dcl 33 set ref 831* 833 844 job 26 based structure level 2 dcl 11-10 kol 11 based fixed bin(15,0) level 2 dcl 13-4 set ref 275 280 293 295 681* 681 707* 709* 709 718* 718 719* 719 719 827* length builtin function dcl 121 ref 411 598 601 601 606 626 637 637 lower_case_hex 000046 constant char(6) initial unaligned dcl 4-15 ref 409 ltrim builtin function dcl 121 ref 388 595 623 max builtin function dcl 121 ref 348 348 349 360 max_io_string_length constant fixed bin(17,0) initial dcl 172 ref 234 403 max_p_dec constant fixed bin(31,0) initial dcl 12-5 ref 348 max_scale constant fixed bin(31,0) initial dcl 12-5 ref 615 646 min builtin function dcl 121 ref 348 672 min_scale 004212 constant fixed bin(31,0) initial dcl 12-5 ref 613 648 mod builtin function dcl 121 ref 719 n_left 001170 automatic fixed bin(21,0) dcl 759 in procedure "chars_left_on_line" set ref 765* 767 767 816* 818 n_left 000551 automatic fixed bin(21,0) dcl 83 in procedure "plio2_qge_" set ref 286* 293 n_read 000550 automatic fixed bin(21,0) dcl 83 set ref 779* 804* 815 new_line constant char(1) initial dcl 61 ref 707 765 772 831 nval 1 based fixed bin(15,0) level 2 in structure "fb" dcl 86 in procedure "plio2_qge_" ref 184 262 608 610 nval 1 based fixed bin(15,0) array level 2 in structure "fbc" dcl 91 in procedure "plio2_qge_" ref 197 nval 000102 automatic fixed bin(15,0) dcl 33 in procedure "plio2_qge_" set ref 184* 210 252 old_nl 000115 automatic fixed bin(15,0) dcl 33 set ref 790* 803 814 oncharind 000117 automatic fixed bin(15,0) dcl 33 set ref 562* 567* pack_ 0(07) 000674 automatic bit(1) level 2 packed unaligned dcl 5-3 set ref 461 pack_picture_ 000070 constant entry external dcl 9-3 ref 450 456 pic_ptr 000530 automatic pointer dcl 72 set ref 440* 441* 441 450 456 561* 562 571 580 582 583 583 584 658 659 659 660 662 picture_format constant fixed bin(15,0) initial dcl 10-3 ref 332 444 picture_image based structure level 1 dcl 7-6 pl1_stack_frame based structure level 1 dcl 1-6 plio2_resig_ 000062 constant entry external dcl 132 ref 178 plio2_signal_$conversion_error_ 000060 constant entry external dcl 131 ref 547 567 plio2_signal_$s_ 000054 constant entry external dcl 129 ref 446 857 plio2_signal_$s_r_ 000056 constant entry external dcl 130 ref 544 552 prec 0(09) based fixed bin(8,0) level 2 in structure "picture_image" packed unaligned dcl 7-6 in procedure "plio2_qge_" ref 584 662 prec 0(18) based fixed bin(17,0) array level 2 in structure "fo" packed unaligned dcl 96 in procedure "plio2_qge_" ref 348 348 360 360 prec 0(18) 000701 automatic fixed bin(17,0) level 2 in structure "scale_prec_" packed unaligned dcl 158 in procedure "plio2_qge_" set ref 446 448 466* 660* 662* precision_ 0(24) 000674 automatic fixed bin(11,0) level 2 packed unaligned dcl 5-3 set ref 466 ps based structure level 1 dcl 11-10 psp 000524 automatic pointer dcl 72 set ref 176* 178* 180 184 185 186 187 189 192 262 267 269 275 280 293 295 321 329 329 329 332 334 336 343 343 343 394 401 437 440 441 446* 450 456 460 462 464 544* 547* 552* 561 567* 608 608 610 610 642 645 672 672 674 674 678 678 679 679 681 681 698 698 703 703 705 705 707 709 709 713 713 714 714 718 718 719 719 719 726 728* 728 729 732 735 736 738 738 738 738 740 740 740 742 762 765 765 765 765 772 772 776 776 776 779 779 779 781 781 790 792 794* 794 795 798 803 803 804 804 804 814 814 815 816 816 827 831 831 831 831 844 844 857* pspp parameter pointer dcl 72 ref 10 10 176 put_copy_ 000046 constant entry external dcl 125 ref 728 794 radix_factor 000105 automatic fixed bin(15,0) dcl 33 set ref 398* 401* 403 406 413 416 417 417 417 417 424 reverse builtin function dcl 121 ref 772 rtrim builtin function dcl 121 ref 388 595 623 s 000702 automatic structure level 1 unaligned dcl 164 set ref 180 324 325 325 330 388 388 406 411 412 595 595 596 598 598 601 601 606 623 623 624 625 626 626 629 631 631 634 634 634 637 637 scale 0(18) based fixed bin(8,0) level 2 in structure "picture_image" packed unaligned dcl 7-6 in procedure "plio2_qge_" ref 583 659 scale 000701 automatic fixed bin(17,0) level 2 in structure "scale_prec_" packed unaligned dcl 158 in procedure "plio2_qge_" set ref 465* 659* scale based fixed bin(17,0) array level 2 in structure "fo" packed unaligned dcl 96 in procedure "plio2_qge_" ref 348 348 348 348 349 349 scale_ 0(12) 000674 automatic fixed bin(11,0) level 2 packed unaligned dcl 5-3 set ref 465 scale_prec 000556 automatic fixed bin(35,0) array dcl 96 set ref 340* 348 348 348 348 348 348 349 349 352* 360 360 364* scale_prec_ 000701 automatic structure level 1 dcl 158 set ref 454 467 scalefactor 1(09) based fixed bin(8,0) level 2 packed unaligned dcl 7-6 ref 583 659 search builtin function dcl 121 ref 406 629 674 si 000111 automatic fixed bin(15,0) dcl 33 set ref 413* 414 416 672* 674 678 678 679 680 681 683 686 size builtin function dcl 121 ref 329 343 skip_count 001200 automatic fixed bin(17,0) dcl 823 set ref 826* 829 845* 845 skip_count_param parameter fixed bin(17,0) dcl 823 ref 821 826 space 000623 automatic char(128) dcl 116 set ref 352 352 364 364 371 stack_frame_p based pointer level 2 dcl 11-10 ref 440 start_copy 55 based fixed bin(15,0) level 2 dcl 11-10 set ref 729* 795* string 26(01) based bit(1) level 3 packed unaligned dcl 11-10 ref 732 776 798 string_start 000113 automatic fixed bin(15,0) dcl 33 set ref 374* 381* 471* substr builtin function dcl 121 set ref 300 324 325 406* 409* 412 417* 417 448* 629 634 634 674 678* 678 698 703* 703 713* 713 765 772 803* 803 803 831 switch based structure level 2 dcl 13-4 tab constant char(1) initial dcl 64 ref 300 700 targ_index 000110 automatic fixed bin(15,0) dcl 33 set ref 670* 678 680* 680 690 703 706* 706 713 715* 715 targ_ptr 000532 automatic pointer dcl 72 set ref 243* 298* 462* 464* 467* 678 703 713 targ_type 000700 automatic fixed bin(17,0) dcl 156 set ref 444 454* 461* 462 462 467* 658* 660 text_base_ptr 46 based pointer level 2 dcl 1-6 ref 440 tk 000552 automatic fixed bin(21,0) dcl 83 set ref 269* 275 280 293 295 to_move 000107 automatic fixed bin(15,0) dcl 33 set ref 244* 295* 296 300 672 683 686* 686 704* 704 716* 716 top_half 34 based bit(18) level 2 packed unaligned dcl 11-10 ref 441 type based fixed bin(15,0) level 2 in structure "fb" dcl 86 in procedure "plio2_qge_" ref 185 332 334 336 type 000032 constant fixed bin(15,0) initial array dcl 6-1 in procedure "plio2_qge_" ref 582 658 type based fixed bin(8,0) level 2 in structure "picture_image" packed unaligned dcl 7-6 in procedure "plio2_qge_" ref 571 582 658 type_ 0(01) 000674 automatic fixed bin(6,0) level 2 packed unsigned unaligned dcl 5-3 set ref 461 types 000554 automatic fixed bin(17,0) array dcl 96 set ref 339* 344 344 352* 364* unpack_picture_ 000072 constant entry external dcl 9-3 ref 580 unspec builtin function dcl 121 set ref 460* 460 v_bit_desc constant fixed bin(17,0) initial dcl 3-1 ref 462 v_char_desc constant fixed bin(17,0) initial dcl 3-1 ref 462 val 2 based fixed bin(15,0) array level 2 in structure "fb" dcl 86 in procedure "plio2_qge_" set ref 187 189 267 269 394 401 561 608 610 642 645 val 2 based fixed bin(15,0) array level 2 in structure "fbc" dcl 91 in procedure "plio2_qge_" ref 200 321 validate_picture_ 000074 constant entry external dcl 9-3 ref 562 value_p 30 based pointer level 2 dcl 11-10 ref 450 456 462 464 varlength 1 based fixed bin(8,0) level 2 packed unaligned dcl 7-6 ref 660 warned 000122 automatic bit(1) dcl 40 set ref 278* 857 860* width 000702 automatic fixed bin(17,0) level 2 dcl 164 set ref 187* 189* 204* 232 234 241 244 256* 392 397 397 403 424 435 448 547 567 575 x 000124 automatic char(1) dcl 43 set ref 412* 413 xbuf based char(1000) unaligned dcl 13-80 set ref 674 678 698 703 713 765 772 779 779 803* 803 804 804 831 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. a_format internal static fixed bin(15,0) initial dcl 10-3 area_desc internal static fixed bin(17,0) initial dcl 3-1 arg_desc_type internal static bit(36) initial dcl 12-71 assign_round_ 000000 constant entry external dcl 2-22 assign_truncate_ 000000 constant entry external dcl 2-22 assign_type_d 000000 constant entry external dcl 9-3 assign_type_p 000000 constant entry external dcl 9-3 bit_type internal static bit(36) initial dcl 12-71 bits_per_binary_exponent internal static fixed bin(31,0) initial dcl 12-5 bits_per_character internal static fixed bin(31,0) initial dcl 12-5 bits_per_decimal_digit internal static fixed bin(31,0) initial dcl 12-5 bits_per_digit internal static fixed bin(31,1) initial dcl 12-69 bits_per_double internal static fixed bin(31,0) initial dcl 12-5 bits_per_half internal static fixed bin(31,0) initial dcl 12-5 bits_per_packed_ptr internal static fixed bin(31,0) initial dcl 12-5 bits_per_word internal static fixed bin(31,0) initial dcl 12-5 builtin_type internal static bit(36) initial dcl 12-71 c_format internal static fixed bin(15,0) initial dcl 10-3 char_type internal static bit(36) initial dcl 12-71 characters_per_double internal static fixed bin(31,0) initial dcl 12-5 characters_per_half internal static fixed bin(31,0) initial dcl 12-5 characters_per_word internal static fixed bin(31,0) initial dcl 12-5 column_format internal static fixed bin(15,0) initial dcl 10-3 complex_type internal static bit(36) initial dcl 12-71 cplx_fixed_picture internal static fixed bin(17,0) initial dcl 8-1 cplx_float_picture internal static fixed bin(17,0) initial dcl 8-1 d_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 3-1 d_fixed_real_desc internal static fixed bin(17,0) initial dcl 3-1 d_float_cplx_desc internal static fixed bin(17,0) initial dcl 3-1 d_float_real_desc internal static fixed bin(17,0) initial dcl 3-1 dec_integer_type internal static bit(36) initial dcl 12-71 def_desc based structure level 1 dcl 152 default_area_size internal static fixed bin(31,0) initial dcl 12-5 default_fix_bin_p internal static fixed bin(31,0) initial dcl 12-5 default_fix_dec_p internal static fixed bin(31,0) initial dcl 12-5 default_flt_bin_p internal static fixed bin(31,0) initial dcl 12-5 default_flt_dec_p internal static fixed bin(31,0) initial dcl 12-5 entry_desc internal static fixed bin(17,0) initial dcl 3-1 entry_var_type internal static bit(36) initial dcl 12-71 expand_bit_chars internal static char(64) initial array unaligned dcl 4-17 file_desc internal static fixed bin(17,0) initial dcl 3-1 inclength based fixed bin(31,0) dcl 2-19 info_struct automatic structure level 1 unaligned dcl 78 integer_type internal static bit(36) initial dcl 12-71 l_paren internal static fixed bin(15,0) initial dcl 10-3 label_desc internal static fixed bin(17,0) initial dcl 3-1 line_format internal static fixed bin(15,0) initial dcl 10-3 local_label_var_type internal static bit(36) initial dcl 12-71 max_area_size internal static fixed bin(31,0) initial dcl 12-5 max_bit_string internal static fixed bin(31,0) initial dcl 12-5 max_bit_string_constant internal static fixed bin(31,0) initial dcl 12-5 max_char_string internal static fixed bin(31,0) initial dcl 12-5 max_char_string_constant internal static fixed bin(31,0) initial dcl 12-5 max_identifier_length internal static fixed bin(31,0) initial dcl 12-5 max_index_register_value internal static fixed bin(31,0) initial dcl 12-5 max_length_precision internal static fixed bin(31,0) initial dcl 12-5 max_number_of_dimensions internal static fixed bin(31,0) initial dcl 12-5 max_offset_precision internal static fixed bin(31,0) initial dcl 12-5 max_p_bin_or_dec internal static fixed bin(31,0) initial dcl 12-5 max_p_fix_bin_1 internal static fixed bin(31,0) initial dcl 12-5 max_p_fix_bin_2 internal static fixed bin(31,0) initial dcl 12-5 max_p_flt_bin_1 internal static fixed bin(31,0) initial dcl 12-5 max_p_flt_bin_2 internal static fixed bin(31,0) initial dcl 12-5 max_signed_index_register_value internal static fixed bin(31,0) initial dcl 12-5 max_signed_xreg_precision internal static fixed bin(31,0) initial dcl 12-5 max_uns_xreg_precision internal static fixed bin(31,0) initial dcl 12-5 max_words_per_variable internal static fixed bin(31,0) initial dcl 12-5 min_area_size internal static fixed bin(31,0) initial dcl 12-5 offset_desc internal static fixed bin(17,0) initial dcl 3-1 outclength based fixed bin(31,0) dcl 2-20 outfo based structure level 1 dcl 2-15 outscale_prec automatic fixed bin(35,0) dcl 2-8 outtype automatic fixed bin(17,0) dcl 2-5 packed_digits_per_character internal static fixed bin(31,0) initial dcl 12-5 page_format internal static fixed bin(15,0) initial dcl 10-3 picture_char_type internal static fixed bin(8,0) initial unaligned dcl 7-20 picture_complexfix_type internal static fixed bin(8,0) initial unaligned dcl 7-20 picture_complexflo_type internal static fixed bin(8,0) initial unaligned dcl 7-20 picture_realfix_type internal static fixed bin(8,0) initial unaligned dcl 7-20 picture_realflo_type internal static fixed bin(8,0) initial unaligned dcl 7-20 plio2_data_$badfsbp external static pointer dcl 11-82 plio2_data_$badjob external static bit(36) dcl 11-94 plio2_data_$fab2pstat external static pointer dcl 11-82 plio2_data_$fabpstat external static pointer dcl 11-82 plio2_data_$fsbpstat external static pointer dcl 11-82 plio2_data_$pliostringfsbp external static pointer dcl 11-82 plio2_data_$pspstat external static pointer dcl 11-82 plio2_data_$undef_file_sw external static bit(1) dcl 11-94 plio2_data_fsb_thread_ external static pointer initial dcl 11-91 pointer_desc internal static fixed bin(17,0) initial dcl 3-1 pointer_type internal static bit(36) initial dcl 12-71 r_format internal static fixed bin(15,0) initial dcl 10-3 r_paren internal static fixed bin(15,0) initial dcl 10-3 real_fixed_picture internal static fixed bin(17,0) initial dcl 8-1 real_float_picture internal static fixed bin(17,0) initial dcl 8-1 real_type internal static bit(36) initial dcl 12-71 s_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 3-1 s_fixed_real_desc internal static fixed bin(17,0) initial dcl 3-1 s_float_cplx_desc internal static fixed bin(17,0) initial dcl 3-1 s_float_real_desc internal static fixed bin(17,0) initial dcl 3-1 skip_format internal static fixed bin(15,0) initial dcl 10-3 storage_block_type internal static bit(36) initial dcl 12-71 structure_desc internal static fixed bin(17,0) initial dcl 3-1 words_per_condition_var internal static fixed bin(31,0) initial dcl 12-5 words_per_entry_var internal static fixed bin(31,0) initial dcl 12-5 words_per_file_var internal static fixed bin(31,0) initial dcl 12-5 words_per_fix_bin_1 internal static fixed bin(31,0) initial dcl 12-5 words_per_fix_bin_2 internal static fixed bin(31,0) initial dcl 12-5 words_per_flt_bin_1 internal static fixed bin(31,0) initial dcl 12-5 words_per_flt_bin_2 internal static fixed bin(31,0) initial dcl 12-5 words_per_format internal static fixed bin(31,0) initial dcl 12-5 words_per_label_var internal static fixed bin(31,0) initial dcl 12-5 words_per_offset internal static fixed bin(31,0) initial dcl 12-5 words_per_packed_pointer internal static fixed bin(31,0) initial dcl 12-5 words_per_pointer internal static fixed bin(31,0) initial dcl 12-5 words_per_varying_string_header internal static fixed bin(31,0) initial dcl 12-5 x_format internal static fixed bin(15,0) initial dcl 10-3 NAMES DECLARED BY EXPLICIT CONTEXT. CE_for_bn 001562 constant label dcl 547 ref 414 all_done 001673 constant label dcl 555 ref 259 275 302 306 458 469 allerr 001526 constant label dcl 539 set ref 481 485 489 493 502 506 510 514 518 522 526 530 534 538 ce_return 001041 constant label dcl 401 ref 550 char_length_action 000000 constant label array(14) dcl 192 set ref 190 chars_left_on_line 003035 constant entry internal dcl 757 ref 286 e_format_proc 002226 constant entry internal dcl 621 ref 334 384 eof163 001462 constant label dcl 495 ref 690 837 err144 001504 constant label dcl 516 ref 403 err145 001457 constant label dcl 491 ref 201 232 267 err147 001470 constant label dcl 500 ref 309 err148 001501 constant label dcl 512 ref 197 210 262 err149 001507 constant label dcl 520 ref 234 err150 001512 constant label dcl 524 ref 603 err162 001473 constant label dcl 504 ref 732 798 err163 001476 constant label dcl 508 ref 693 err180 001446 constant label dcl 479 ref 296 err181 001451 constant label dcl 483 ref 781 806 err182 001454 constant label dcl 487 ref 639 err216 001515 constant label dcl 528 ref 615 646 err217 001520 constant label dcl 532 ref 613 648 err259 001523 constant label dcl 536 ref 336 f_format_proc 002055 constant entry internal dcl 593 ref 336 377 final_conv 001173 constant label dcl 437 ref 319 372 378 385 425 475 get_chars 002553 constant entry internal dcl 667 ref 245 299 get_skip 003263 constant entry internal dcl 821 ref 252 256 280 305 null_string 000364 constant label dcl 315 ref 392 p_format_proc 001674 constant entry internal dcl 559 ref 332 474 plio2_qge_ 000123 constant entry external dcl 10 process_format 000016 constant label array(3:14) dcl 321 ref 249 quick_get_edit_ 000135 constant entry external dcl 10 raise_transmit 001636 constant label dcl 552 ref 747 809 refill_buffer 002722 constant entry internal dcl 724 ref 688 762 835 sandr 001531 constant label dcl 544 ref 498 scan 002556 constant label dcl 672 ref 695 710 720 set_pic_args 002515 constant entry internal dcl 657 ref 443 tab_in_col_input 003326 constant entry internal dcl 855 ref 300 val_pic 001701 constant label dcl 562 ref 569 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4432 4530 4216 4442 Length 5206 4216 76 442 214 30 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME plio2_qge_ 874 external procedure is an external procedure. on unit on line 178 68 on unit p_format_proc internal procedure shares stack frame of external procedure plio2_qge_. f_format_proc internal procedure shares stack frame of external procedure plio2_qge_. e_format_proc internal procedure shares stack frame of external procedure plio2_qge_. set_pic_args internal procedure shares stack frame of external procedure plio2_qge_. get_chars internal procedure shares stack frame of external procedure plio2_qge_. refill_buffer internal procedure shares stack frame of external procedure plio2_qge_. chars_left_on_line internal procedure shares stack frame of external procedure plio2_qge_. get_skip internal procedure shares stack frame of external procedure plio2_qge_. tab_in_col_input internal procedure shares stack frame of external procedure plio2_qge_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 digits plio2_qge_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME plio2_qge_ 000100 erno plio2_qge_ 000101 ftype plio2_qge_ 000102 nval plio2_qge_ 000103 i plio2_qge_ 000104 j plio2_qge_ 000105 radix_factor plio2_qge_ 000106 first_bit plio2_qge_ 000107 to_move plio2_qge_ 000110 targ_index plio2_qge_ 000111 si plio2_qge_ 000112 cc plio2_qge_ 000113 string_start plio2_qge_ 000114 first_char_len plio2_qge_ 000115 old_nl plio2_qge_ 000116 from_old_nl plio2_qge_ 000117 oncharind plio2_qge_ 000120 icomplex plio2_qge_ 000121 char_pic_format plio2_qge_ 000122 warned plio2_qge_ 000123 code plio2_qge_ 000124 x plio2_qge_ 000125 conname plio2_qge_ 000130 ctl_char plio2_qge_ 000131 buf1000 plio2_qge_ 000524 psp plio2_qge_ 000526 fp plio2_qge_ 000530 pic_ptr plio2_qge_ 000532 targ_ptr plio2_qge_ 000534 in_ptr plio2_qge_ 000536 facts plio2_qge_ 000550 n_read plio2_qge_ 000551 n_left plio2_qge_ 000552 tk plio2_qge_ 000554 types plio2_qge_ 000556 scale_prec plio2_qge_ 000560 dec_pos plio2_qge_ 000561 e_pos plio2_qge_ 000562 exp_sign_pos plio2_qge_ 000563 buffer plio2_qge_ 000623 space plio2_qge_ 000672 intype plio2_qge_ 000673 inscale_prec plio2_qge_ 000674 desc_ plio2_qge_ 000676 iocbp plio2_qge_ 000700 targ_type plio2_qge_ 000701 scale_prec_ plio2_qge_ 000702 s plio2_qge_ 001003 imag_def_string plio2_qge_ 001104 bit_str plio2_qge_ 001170 n_left chars_left_on_line 001200 skip_count get_skip THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return mod_fx1 enable shorten_stack ext_entry int_entry set_support THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. assign_ char_to_numeric_ iox_$get_chars iox_$get_line pack_picture_ plio2_resig_ plio2_signal_$conversion_error_ plio2_signal_$s_ plio2_signal_$s_r_ put_copy_ unpack_picture_ validate_picture_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$end_of_info error_table_$long_record error_table_$short_record LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 33 000114 10 000120 176 000144 178 000150 180 000175 181 000200 184 000202 185 000205 186 000207 187 000212 189 000217 190 000221 192 000223 196 000224 197 000231 200 000237 201 000242 203 000243 204 000245 210 000250 232 000253 234 000255 241 000257 243 000261 244 000263 245 000264 249 000265 252 000267 256 000277 259 000301 262 000302 267 000305 269 000310 275 000312 278 000314 280 000315 286 000322 293 000324 295 000332 296 000335 298 000337 299 000341 300 000342 302 000355 305 000356 306 000362 309 000363 315 000364 317 000366 318 000370 319 000371 321 000372 324 000376 325 000410 327 000415 329 000423 330 000427 332 000435 334 000442 336 000446 339 000451 340 000454 341 000456 343 000460 344 000465 347 000473 348 000475 349 000531 351 000543 352 000551 354 000612 356 000614 357 000616 359 000617 360 000621 361 000634 363 000636 364 000643 366 000710 368 000712 371 000714 372 000716 374 000717 376 000721 377 000725 378 000726 381 000727 383 000731 384 000735 385 000736 388 000737 392 000773 394 000775 397 001005 398 001036 399 001040 401 001041 403 001045 406 001050 409 001073 411 001077 412 001107 413 001113 414 001130 416 001131 417 001135 419 001153 422 001155 423 001157 424 001161 425 001164 427 001165 434 001167 435 001171 437 001173 440 001176 441 001201 443 001205 444 001206 446 001216 448 001264 450 001273 452 001307 454 001310 456 001333 458 001352 460 001353 461 001355 462 001367 464 001401 465 001403 466 001407 467 001414 469 001435 471 001436 473 001440 474 001444 475 001445 479 001446 481 001450 483 001451 485 001453 487 001454 489 001456 491 001457 493 001461 495 001462 497 001464 498 001467 500 001470 502 001472 504 001473 506 001475 508 001476 510 001500 512 001501 514 001503 516 001504 518 001506 520 001507 522 001511 524 001512 526 001514 528 001515 530 001517 532 001520 534 001522 536 001523 538 001525 539 001526 544 001531 547 001562 550 001635 552 001636 555 001673 559 001674 561 001675 562 001701 565 001716 567 001720 569 001767 571 001770 573 001774 574 001776 575 002000 576 002002 577 002004 580 002005 582 002023 583 002027 584 002042 585 002047 586 002053 590 002054 593 002055 595 002056 596 002112 598 002124 601 002134 603 002163 606 002166 608 002175 610 002205 613 002217 615 002223 618 002225 621 002226 623 002227 624 002263 625 002275 626 002307 629 002320 631 002333 634 002353 635 002415 637 002416 639 002445 642 002450 645 002456 646 002502 648 002511 650 002513 653 002514 657 002515 658 002516 659 002522 660 002535 662 002545 663 002552 667 002553 670 002554 672 002556 674 002567 676 002603 678 002604 679 002612 680 002614 681 002615 683 002616 686 002621 688 002623 690 002624 693 002631 695 002632 698 002633 700 002640 703 002643 704 002652 705 002656 706 002660 707 002663 709 002667 710 002673 713 002674 714 002702 715 002704 716 002705 718 002707 719 002711 720 002721 724 002722 726 002723 728 002727 729 002741 732 002744 735 002747 736 002751 738 002753 740 002776 742 003015 744 003021 747 003032 753 003034 757 003035 762 003037 765 003044 767 003064 772 003070 774 003102 776 003103 779 003114 781 003135 790 003151 792 003154 794 003157 795 003170 798 003173 803 003176 804 003205 806 003234 809 003241 814 003246 815 003252 816 003255 818 003260 821 003263 826 003265 827 003267 829 003272 831 003274 833 003314 835 003315 837 003316 840 003320 844 003321 845 003322 848 003324 851 003325 855 003326 857 003327 860 003366 861 003370 ----------------------------------------------------------- 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