1 /* BEGIN INCLUDE FILE gcos_utility_args_.incl.pl1 TAC, December, 1974 2 SCA, August, 1981 3 4 */ 5 6 /* Declarations of structures used to pass information from gcos_card_utility, 7 the command line interpreter, to the processing subroutine, gcos_card_utility_. */ 8 9 /* INPUT */ 10 11 dcl input_ptr ptr; 12 13 dcl 1 input aligned based (input_ptr), 14 15 /* following elements are in both input and output structures */ 16 2 sw fixed bin aligned, /* = input_code */ 17 2 file_name char (168) aligned, /* name of single input file */ 18 2 list_ptr ptr, /* ptr to list of input file names, snumbs, or edit names */ 19 2 list_count fixed bin aligned, /* number of names in list */ 20 2 list_name_size fixed bin aligned, /* length of names (168, 5, or 4) */ 21 2 tape_ptr ptr, /* ptr to input tape information structure */ 22 2 set fixed bin aligned, /* single_file, imcv, library, or multiple_files */ 23 2 format fixed bin aligned, /* ascii, gcos, or blocks */ 24 2 medium fixed bin aligned, /* raw, tape, or file */ 25 2 brief bit (1) aligned, /* suppress warning messages on input errors */ 26 2 truncate_ascii bit (1) aligned, /* truncate ascii input lines to 80 chars if necessary */ 27 2 comdk bit (1) aligned, /* decompress any comdks in input */ 28 2 long bit (1) aligned, /* display input list item names */ 29 30 /* following elements are only in input structure, but apply to all processing */ 31 2 debug bit (1) aligned, /* call db if any errors - both input and output */ 32 2 com_err bit (1) aligned, /* tells subroutine to call com_err_ if errors occur */ 33 34 /* following elements apply only to input processing */ 35 2 all bit (1) aligned, /* copy all jobs or library decks, into separate output files */ 36 2 no_canon bit (1) aligned, /* do not canonicalize ascii input */ 37 2 tabs_given bit (1) aligned, /* tabstops array (below) contains meaningful values */ 38 2 first_line fixed bin aligned, /* number of first input line to be copied */ 39 2 last_line fixed bin aligned, /* number of last input line to be copied */ 40 2 tabstops (10) fixed bin aligned; /* tabstops to use in canonicalization */ 41 42 dcl 1 input_list (input.list_count) aligned based (input.list_ptr), 43 2 used bit (1) aligned, /* on when item found and copied */ 44 2 names char (input.list_name_size) aligned; 45 46 dcl 1 input_tape aligned based (input.tape_ptr), 47 2 id char (32) aligned, /* tape reel number and optional ",Ntrack" */ 48 2 label char (12) aligned, /* file name to be found in tape label */ 49 2 tracks char (1) aligned, /* 7, 9, or blank if not given */ 50 2 retain bit (1) aligned, /* do not dismount tape at end of processing */ 51 2 attached bit (1) aligned, /* tape is still mounted from previous use of command */ 52 2 position fixed bin; /* file position, or 0 if not given */ 53 54 /* OUTPUT */ 55 56 dcl output_ptr ptr; 57 58 dcl 1 output aligned based (output_ptr), 59 60 /* following elements are in both input and output structures */ 61 2 sw fixed bin aligned, /* = output_code */ 62 2 file_name char (168) aligned, /* name of single output file */ 63 2 list_ptr ptr, /* ptr to list of output file names */ 64 2 list_count fixed bin aligned, /* number of names in list */ 65 2 list_name_size fixed bin aligned, /* length of names (will always be 168 - 66 included here to keep structures the same */ 67 2 tape_ptr ptr, /* ptr to output tape information structure */ 68 2 set fixed bin aligned, /* single_file, or multiple_files */ 69 2 format fixed bin aligned, /* ascii, gcos, or blocks */ 70 2 medium fixed bin aligned, /* raw, tape, or file */ 71 2 brief bit (1) aligned, /* suppress warning messages on output errors */ 72 2 truncate_ascii bit (1) aligned, /* remove trailing blanks from ascii output lines */ 73 2 comdk bit (1) aligned, /* compress all nondollar output cards */ 74 2 long bit (1) aligned, /* display names of items written to output */ 75 76 /* following elements apply only to output processing */ 77 2 append bit (1) aligned, /* append to existing output file */ 78 2 name_files bit (1) aligned, /* use snumbs or edit names for output file names */ 79 2 gcos_ascii bit (1) aligned, /* create gcos_ascii (media code 6) output from ASCII input */ 80 2 gcos_bcd bit (1) aligned; /* create gcos_bcd (media code 2) output from ASCII input */ 81 82 dcl 1 output_list (output.list_count) aligned based (output.list_ptr), 83 2 used bit (1) aligned, /* on when item has been written into */ 84 2 names char (output.list_name_size) aligned; 85 86 dcl 1 output_tape aligned based (output.tape_ptr), 87 2 id char (32) aligned, /* tape reel number, and optional ",Ntrack" */ 88 2 label char (12) aligned, /* file name to put into tape label */ 89 2 tracks char (1) aligned, /* 7, 9, or blank if not given */ 90 2 retain bit (1) aligned, /* do not dismount tape at end of processing */ 91 2 attached bit (1) aligned, /* tape is still mounted from previous use of command */ 92 2 position fixed bin; /* file position, or 0 if not given */ 93 94 /* For program readability, we assign names to the numeric values that the 95 multi-valued switches - sw, set, format, and medium - can have */ 96 97 dcl ( 98 input_code init (1), /* sw */ 99 output_code init (2), /* sw */ 100 101 single_file init (11), /* set */ 102 imcv init (12), /* set */ 103 library init (13), /* set */ 104 multiple_files init (14), /* set */ 105 106 ascii init (15), /* format */ 107 gcos init (16), /* format */ 108 blocks init (17), /* format */ 109 110 raw init (18), /* medium */ 111 tape init (19), /* medium */ 112 file init (20)) /* medium */ 113 114 int static fixed bin; 115 116 /* Overlays for input and output structures, 117 to allow the same code to set and examine either input or output information, 118 depending on the value of io_ptr */ 119 120 dcl io_ptr ptr; /* = either input_ptr or output_ptr */ 121 dcl 1 io like input aligned based (io_ptr); 122 dcl 1 io_tape like input_tape aligned based (io.tape_ptr); 123 dcl 1 io_list (io.list_count) aligned based (io.list_ptr), 124 2 used bit (1) aligned, 125 2 names char (io.list_name_size) aligned; 126 127 /* Stream names for tape and file attachments; selectable by io.sw */ 128 129 130 dcl tape_stream (2) char (32) int static aligned init ( "gcu_tape_input", 131 "gcu_tape_output"); 132 133 dcl file_stream (2) char (32) int static init ( "gcu_file_input", 134 "gcu_file_output"); 135 136 /* Names for messages; selectable by io.sw */ 137 138 dcl io_names (2) char (8) int static aligned init ( 139 "input", 140 "output"); 141 142 /* END INCLUDE FILE gcos_utility_args_.incl.pl1 */