  | 
»  | 
 | 
  
 | 
 | 
 bit1                     =     0 .. 1;
 bit2                     =     0 .. 3;
 bit8                     =     0 .. 255;
 bit14                    =     0 .. 16383;
 bit16                    =     0 .. 65535;
 bit31                    =     0 .. 2147483647;
  |  
 
 buffer_type =
          record
              case boolean of
                true:   (buff_str : string[n]);
                false:  (buff_len : integer;
                         buffer   : packed array [1..n]);
              end;
 Array size: 4 + n + 1 bytes
n represents a user-defined size.
 |  
 
 buffer_info_type =
          record
          buffer_offset  : integer; (0.0 @ 4.0)
          pathname_len   : integer; (4.0 @ 4.0)
          end;
 Record size: 8 bytes
 Alignment:   4 bytes
 |  
 
 clock_type =
    crunched record
    case bit32 of 
       1: ( hour        : bit8;     (0.0 @ 1.0)
            min         : bit8;     (1.0 @ 1.0)
            sec         : bit8;     (2.0 @ 1.0)
            ten_sec     : bit8;     (3.0 @ 1.0)
       2: ( clock_funct : bit32;    (0.0 @ 4.0)  
    end;
 Record size: 4 bytes
 Alignment:   4 bytes
 |  
 
 datestr_type =
    record
    month_str    : packed array[1..3] of char;  (0.0 @ 3.0)
    day_of_week  : packed array[1..3] of char;  (3.0 @ 3.0)
 end;
 Record size: 6 bytes
 Alignment: 1 byte
 |  
 
 date_type = 
    record
    year         : integer;  (0.0 @ 4.0)
    month        : integer;  (4.0 @ 4.0)
    day_of_month : integer;  (8.0 @ 4.0)
 end;
 Record size: 12 bytes
 Alignment: 4 bytes 
 |  
 
  device_name_type    =
          packed array[1..18] of char;                 (0.0  @ 18.0)
 Array size: 18 bytes
 Element size: 1 byte
 Alignment : 1 byte
 |  
 
  directory_name_type  =
          record
            user    : packed array[1..16] of char ;    (0.0  @ 16.0)
            group   : packed array[1..16] of char ;    (16.0 @ 16.0)
            account : packed array[1..16] of char ;    (32.0 @ 16.0)
          end ;
 Record size: 48 bytes
 Alignment  :  4 bytes
 The values for the user, group, and account must be upper-case.
 |  
 
drives_type =
record
  cnt          : integer;
  drives_ldevs : array [1..n] of integer;
end;
n represents a user-defined size.
Record size : 4 + 4n bytes
Alignment   : 4 bytes
  |  
 
  dstsrec_type  =
          record
            cnt     : integer;                         (0.0 @ 4.0)
            dstinfo :
               array[1..n] of
                  record
                     dstno   : integer;                (0.0 @ 4.0)
                     dstva   : anyptr;                 (4.0 @ 8.0)
                  end ;
          end ;
 Record size: 12n + 4 bytes
 Alignment  : 4 bytes
 n represents a user-defined size.
 |  
 
  filename_type   =
          record
            filename  : packed array[1..16] of char;      (0.0  @ 16.0)
            group     : packed array[1..16] of char;      (16.0 @ 16.0)
            account   : packed array[1..16] of char;      (32.0 @ 16.0)
          end ;
 Record size: 48 bytes
 Alignment  : 1 byte
 All three arrays are always returned padded, with blanks on the right.
 Most interfaces accept them, when a file name is input, to be flushed
 with blanks on the right.
 |  
 
  fnamerec_type       = record
                        cnt       : integer
                        fnames    : array[1..n] of
                                     filename_type;
                        end;
 Record size: 4 + 20n bytes
 Alignment  : 4 bytes
 |  
 
  fnumpid_type  =
          record
            fnum    : integer;                               (0.0 @ 4.0)
            pid     : longint_type;                          (4.0 @ 8.0)
          end ;
 Record size: 12 bytes
 Alignment  : 4 bytes
 |  
 
  i32rec_type       = record
                      cnt      : integer;
                      ints     : array[1..n] of integer;
                      end;
 Record size: 4 + 4n bytes 
 Alignment  : 4 bytes
 |  
 
  i64rec_type      = record
                      cnt      : integer;
                      lints    : array[1..n] of longint;
                      end;
 Record size: 4 + 8n bytes
 Alignment  : 4 bytes
 |  
 
  item_array_type  =
       
        array[1..n] of globalanypointer;
 Array size: 8n bytes
 Element size: 8 bytes
 Alignment: 4 bytes
 n represents a user defined size.
 |  
 
  itemstatus_array_type  =
        array[1..n] of status_type;
 Array size: 4n bytes
 Element size: 4 bytes
 Alignment:  4 bytes
 n represents a user defined size.
 |  
 
  itemnum_array_type  =
        array[1..n] of integer;
 Array size: 4n bytes
 Element size: 4 bytes
 Alignment:  4 bytes
 n represents a user defined size.
 |  
 
  jskey_type          =
          integer;                                           (0.0 @ 4.0)
 Alignment  : 4 bytes
 |  
 
  jsdev_type  =
          record
            device_class  : boolean;                         ( 0.0 @ 1.0 )
            output_device : integer;                         ( 4.0 @ 4.0)
          end ;
 Record size: 8 bytes
 Alignment  : 4 bytes
 |  
 
  jsnum_type          =
          packed record
            js_type : bit2;                                  ( 0.0 @ 0.2 )
            js_num  : bit14;                                 ( 0.2 @ 1.6 )
            js_ext  : shortint;                              ( 2.0 @ 2.0 )
          end ;
 Record size: 4 bytes
 Alignment  : 4 bytes 
 The js_type field can have a value of 1 or 2; 1 indicates a session
 and 2 indicates a job. The js_num field can have any value from 1-16383.
 |  
 
  logon_desc_type   =
          record
            job_name    : pac16;                             ( 0.0 @ 16.0)
            acct_name   : pac16;                             (16.0 @ 16.0)
            acct_pass   : pac16;                             (32.0 @ 16.0)
            user_name   : pac16;                             (48.0 @ 16.0)
            user_pass   : pac16;                             (64.0 @ 16.0)
            group_name  : pac16;                             (80.0 @ 16.0)
            group_pass  : pac16;                             (96.0 @ 16.0)
          end ;
 Record size: 112 bytes
 Alignment  : 1 byte
 |  
 
  longint_type  =
          record
            left    : integer;                               (0.0 @ 4.0)
            right   : integer;                               (4.0 @ 4.0)
          end ;
 Record size: 8 bytes
 Alignment  : 4 bytes
 |  
 
 max_pathlen =  1024
This value can be retrieved from AIFSCGET, item 3062.
  |  
 
 max_pathname_type =
          packed array [ 1 .. max_pathlen ] of char;
 Array size: max_pathlen bytes   Element Size: 1 byte
 Alignment: 1 byte
 |  
 
  message_buffer_type   =
          packed array[1..n] of char;
 Array size: n bytes
 Element size: 1 byte
 Alignment : 1 byte
 The type is user-defined. n represents any number <= 32767.
 |  
 
media_label_type =
record
  media_name : packed array [1..32] of char;      (0.0 @ 20.0)
  subname1   : packed array [1..16] of char;     (20.0 @ 10.0)
  subname2   : packed array [1..16] of char;     (20.0 @ 10.0)
end;
Record size : 64 bytes
Alignment   : 1 byte
  |  
 
mm_side_type =
record
  media_label  : media_label_type;               (0.0 @ 40.0)
  volume_label : packed array[1..8] of char;    (40.0 @ 8.0)
end;
Record size : 72 bytes
Alignment   : 1 byte
  |  
 
mm_slot_info_type =
record
  slot_number : integer;                 (0.0 @ 4.0)
  slot_state  : mm_slot_state_type;      (4.0 @ 1.0)
  side_a      : mm_side_type;            (5.0 @ 48.0)
  side_b      : mm_side_type;           (4D.0 @ 48.0)
end;
Record size : 152 bytes
Alignment   : 4 bytes
  |  
 
mm_slot_state_type =
  (empty_slot, full_slot, rsvd_slot);
  |  
 
  mpe_name_type      =
      packed array[1..16] of char;       (0.0 @ 16)
 Array size: 16 bytes
 Alignment : 1 byte
 |  
 
  pac8               =
          packed array[1..8] of char;                  (0.0 @ 8.0)
 Array size: 8 bytes
 Element size: 1 byte
 Alignment : 1 byte
 |  
 
  pac16               =
          packed array[1..16] of char;                 (0.0 @ 16.0)
 Array size: 16 bytes
 Element size: 1 byte
 Alignment : 1 byte
 |  
 
  pac18               =
          packed array[1..18] of char;                 (0.0 @ 18.0)
 Array size: 18 bytes
 Element size: 1 byte
 Alignment : 1 byte
 |  
 
  pac32               =
          packed array[1..32] of char;                 (0.0 @ 32.0)
 Array size: 32 bytes
 Element size: 1 byte
 Alignment : 1 byte
 |  
 
  pac34               =
          packed array[1..34] of char;                 (0.0 @ 34.0)
 Array size: 34 bytes
 Element size: 1 byte
 Alignment : 1 byte
 |  
 
  pac256               =
          packed array[1..256] of char;                (0.0 @ 256.0)
 Array size: 256 bytes
 Element size: 1 byte
 Alignment : 1 byte
 |  
 
path_identifier   =  $alignment 4$
          record
               ufid        :  ufid_type;
               link_id     :  bit32;
               parent_ufid :  ufid_type;
          end;
 Record size: 44 bytes
 Alignment : 4 bytes
 |  
 
path_id_rec_type   =  $alignment 4$
          record
               cnt         :  integer;
               path_ids    :  rec [1..n] of path_identifier;
          end;
 n represents a user-defined size.
 Record size: 4 + 44n bytes
 Alignment : 4 bytes
 |  
 
pathname_type =
          record
              case boolean of
                 true:  (path_str :  string [n]);
                 false: (path_rec :  record
                           length      :  integer;
                           pathname    :  packed array [1..n] of char;
                           end);
                 end;
 Record size : 4 + n + 1 bytes
 Alignment   : 4 bytes
 n represents a user-defined size.    Currently the maximum pathname
 length is 1024 bytes.
 |  
 
  pid_type  =
          record
            left    : integer;                               (0.0 @ 4.0)
            right   : integer;                               (4.0 @ 4.0)
          end ;
 Record size: 8 bytes
 Alignment  : 4 bytes
 |  
 
  recfnumpid_type  =
          record
            count   : integer;                               (0.0 @ 4.0)
            fnumpid : array[1..n] of fnumpid_type            (4.0 @ 12n.0)
          end ;
 Record size: 12n + 4 bytes
 Alignment  : 4 bytes
 n represents a user-defined size.
 |  
 
  search_key_type             =
          record
            case integer of
               1: ( key_js_num  : integer );                  (0.0 @ 4.0)
               2: ( key_pid     : longint_type );             (0.0 @ 8.0)
               3: ( key_ufid    : ufid_type );                (0.0 @ 20.0)
               4: ( key_fname   : filename_type );            (0.0 @ 48.0)
               5: ( key_dname   : directory_name_type );      (0.0 @ 48.0)
               6: ( key_sfnum   : integer );                  (0.0 @ 4.0)
               7: ( key_portid  : integer );                  (0.0 @ 4.0)
               8: ( key_portnm  : pac16 );                    (0.0 @ 16.0)
               9: ( key_plfd    : localanyptr );              (0.0 @ 4.0)
              10: ( key_js_ind  : integer );                  (0.0 @ 4.0)
              11: ( key_pid_ind : integer );                  (0.0 @ 4.0)
              12: ( key_ldev    : integer );                  (0.0 @ 4.0)
              13: ( key_va      : bit64   );                  (0.0 @ 8.0)
              14: ( key_int     : integer );                  (0.0 @ 4.0)
              15: ( key_class   : pac16   );                  (0.0 @ 16.0)
              16: ( key_pathname: max_pathname_type );        (0.0 @ 1024.0)
         end ;
 Record size: 1024 bytes
 Alignment  : 4 bytes
 |  
 
  sel_eq_type       =
          record
             stringlen: integer ;                            (0.0 @ 4.0) 
             str : packed array[1..280] of char ;            (4.0 @ 280.0)
             housekeep: bit8;                                (280.0 @ 1.0)
          end ;
 Record size: 288 bytes
 Alignment  : 4 bytes
 |  
 
  spf_id_type       =
          packed record
             case boolean of
                true: ( id_number  : bit31;                  (0.0 @ 3.7)
                        i_or_o_flag: bit1);                  (3.7 @ 0.1)
                false: ( all: integer);                      (0.0 @ 4.0)
          end ;
 Record size: 4 bytes
 Alignment  : 4 bytes
 |  
 
  status_type     =
          record
            case boolean of
               true  : ( all: integer );                     (0.0 @ 4.0)
               false : ( info  : shortint;                   (0.0 @ 2.0)
                         subsys: shortint );                 (2.0 @ 2.0)
          end ;
 Record size: 4 bytes
 Alignment  : 4 bytes
 |  
 
storage_slot_type =
record
  lower_limit  : integer;
  upper_limit  : integer;
  slot_info    : array [1..n] of mm_slot_info_type;
end;
n represents a user-defined size.
Record size : 4 + 4 + 152n
Alignment   : 4 bytes
  |  
 
  t_vol_class_name =
       packed array[1..32] of char;                         (0.0 @ 32.0)
 Array size : 32 bytes
 Alignment  : 1  byte
 |  
 
  t_volume_name    =
       packed array [1..16] of char;                        (0.0 @ 16.0)
 Array size : 16 bytes
 Alignment  : 1  byte
 |  
 
  t_vol_set_name   = 
       packed array[1..32] of char;                        (0.0 @ 32.0) 
 |  
 
  ufidrec_type           = record
                           cnt          : integer;
                           ufids        : array[1..n] of
                                          ufid_type;
                           end; 
 |  
 
  ufid_type        =
          record
                 ufid : packed array[1..20] of char;     (0.0 @ 14.0)
          end ;
 Array size: 20 bytes
 Element size: 1 byte
 Alignment : 4 bytes
 |  
 
key_workgroup_type =
record
 wgindex           : integer;            (0.0 @ 4.0)
 creation_count    : integer;            (4.0 @ 4.0)
end;
Record Size  : 8 bytes
Alignment    : 4 bytes
  
  |  
 
pac20 =
   packed array[1..20] of char;          (0.0 @ 14.0)
Array size: 20 bytes
Element size: 1 byte
Alignment : 1 byte
  |  
  
 |