1 /* BEGIN INCLUDE FILE...imft_logical_record.incl.pl1 */
 2 
 3 /* Defines an IMFT logical record. Such records are passed by imft_io_ to the
 4    write_record entries of imft_COMM_ I/O modules, and returned by the read_record
 5    entries of such modules. */
 6 
 7 /* Written January 4, 1983 by Robert Coren */
 8 
 9 declare ilr_ptr pointer;
10 declare imft_logical_record_length fixed bin (21);
11 
12 declare 1 imft_logical_record aligned based (ilr_ptr),
13         2 header,
14           3 version char (8),
15           3 type fixed bin,                                 /* types are defined in _imft_std_commands.incl.pl1 */
16           3 length fixed bin (21),                          /* in characters */
17           3 flags,
18             4 binary bit (1) unaligned,                     /* ON => record contains characters with 9th bit on */
19             4 eight_bit bit (1) unaligned,                  /* ON => record contains characters with 8th bit on */
20             4 pad bit (34) unaligned,
21         2 contents character (imft_logical_record_length refer (imft_logical_record.length));
22 
23 /* NOTE: flags.binary and flags.eight_bit should never both be on in the same
24    record. If neither is on, every character in the record fits in 7 bits.
25 */
26 
27 dcl  1 imft_logical_record_header aligned like imft_logical_record.header;
28                                                             /* so we can use size builtin on it */
29 
30 declare  IMFT_LOGICAL_RECORD_VERSION_1 char (8) internal static options (constant) init ("ILR_0001");
31 
32 declare IMFT_MAX_RECORD_LENGTH fixed bin (21) internal static options (constant) init (4096);
33 
34 /* END INCLUDE FILE...imft_logical_record.incl.pl1 */