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  */