1 /* BEGIN fortran_buffer.incl.pl1        The external data base for fortran I/O. */
 2 
 3 /* Modified November 1976 by R.Schoeman.          */
 4 /* Modified:
 5                     25 Aug 83, MM - added the bit "using_tape_nstd"
 6                     23 Apr 82, HH - absorbed 'more_bits' into 'per_connection'.
 7                     14 Apr 82, HH - added 'switch_ready', 'eofs_are_records' & 'unwritten_eofs' for ENDFILE statement.
 8                     2 Nov 81, MEP - added last_rec field for inquire statement.
 9                     2 Sept 81, MEP - unlike Christ, I could not make 36 bits feed the multitudes.  Added more_bits.
10                     7 August 81, MEP - add blank
11                     12 May 1978, DSL - Add rewind_on_open.
12                     7 Sep 1977 by DSL - change terminal_file to allow_delete
13                     2 Aug 1977 by David Levin - add terminal_file and allow_reopen */
14 
15      dcl     fortran_buffer_ptr     ptr;
16      dcl     ptr_array              (1) ptr;                /* needed for call to get_temp_segments */
17 
18      declare 1 fortran_buffer_      based (fortran_buffer_ptr),
19                2 table              (0:99) aligned structure,
20                                                             /* each entry is THREE words */
21                  3 bits             unaligned structure,
22                                                             /*  FIRST WORD:  */
23                    4 installation_defined,
24                      5 default_input bit (1),
25                      5 default_output bit (1),
26                      5 printer_file bit (1),
27                    4 per_process,
28                      5 prompt       bit (1),
29                      5 defer_newline bit (1),
30                    4 per_connection,
31                      5 connected    bit (1),
32                      5 fortran_attached bit (1),
33                      5 fortran_opened bit (1),
34                      5 formatted_records bit (1),
35                      5 direction,
36                        6 in         bit (1),
37                        6 out        bit (1),
38                      5 allow,
39                        6 direct_access bit (1),
40                        6 seq_access bit (1),
41                        6 positioning bit (1),
42                      5 carriage_controllable bit (1),
43                      5 newline_needed bit (1),
44                      5 double_word_file bit (1),
45                      5 allow_reopen bit (1),
46                      5 allow_delete bit (1),
47                      5 rewind_on_open bit (1),
48                      5 blank_null   bit (1),
49                      5 type_of_io   bit (3),
50                      5 open_code    fixed bin (5),
51                      5 previous     fixed bin (5),
52                                                             /*  SECOND WORD:  */
53                      5 file_status  fixed binary (2) unsigned,
54                      5 has_been_deleted bit (1),
55                      5 last_rec     fixed binary (21),
56                      5 using_vfile  bit (1),
57                      5 using_tape_nstd bit(1),
58                      5 switch_ready bit (1),                /* switch attached & opened */
59                      5 eofs_are_records bit (1),
60                      5 unwritten_eofs fixed bin (3) unsigned,
61                      5 pad          bit (4),
62                                                             /*  THIRD WORD:  */
63                  3 switch_p         ptr unaligned,
64 
65 /* word of control bits */
66 
67                2 all_files_closed   bit (1) unal,
68                2 allocated_by_fortran
69                                     bit (1) unal,
70                2 terminal_needs_newline
71                                     bit (1),
72                2 fill               bit (33) unal,
73 
74 /* another control word; note strange alignment */
75 
76                2 maximum_buffer     fixed bin (26) unaligned,
77                                                             /* Use three bytes (chars). */
78                2 extra_char         char (1) unaligned,     /* "buf" must be on a word boundary */
79                2 buf                fixed bin;
80 
81      dcl     Max_unwritten_eofs     fixed bin static options (constant) init (7);
82 
83 /* END   fortran_buffer.incl.pl1 */