1 /* Include segment tseg.incl.pl1 --- declaration for Tape DSM-DCM Interface Segment */
 2 /*   Modified 10 July 1973 by MJ Grady */
 3 /*   Modified 7/79 by R.J.C. Kissel to add a version number, tracks, density, and drive_name, and get rid of drive_number. */
 4 /*   Modified 5 August 1981 by Chris Jones to add speed specification */
 5 
 6 /* NB:  tape_ansi_cseg.incl.pl1 has a parallel version of this tseg declared in it.  Any changes made here MUST
 7    be made there too. */
 8 
 9 /* format: style4,delnl,insnl,indattr,ifthen,dclind9 */
10 dcl      (
11          nbuffs                 init (12),                  /* # of buffers in structure */
12          max_rec_size           init (2080)
13          )                      fixed bin (17) int static;  /* Max # of words that may be transmitted (2 * 1040) */
14 
15 dcl      tsegp                  ptr;                        /* Used to access Ring-0/Ring-4 shared structure */
16 dcl      tseg_version_2         fixed bin internal static options (constant) init (2);
17 
18 declare  1 tseg                 based (tsegp) aligned,
19            2 version_num        fixed bin,
20            2 areap              ptr,                        /* pointer to DSM area */
21            2 ev_chan            fixed bin (71),             /* event channel number */
22            2 write_sw           fixed bin (1),              /* 0 = read, 1 = write */
23            2 sync               fixed bin (1),              /* non-zero for synchronous i/o */
24            2 get_size           fixed bin (1),              /* ON for record sizes to be returned */
25            2 ws_segno           bit (18),                   /* segment number of IOI workspace */
26            2 drive_name         char (32),                  /* physical drive name. */
27            2 tracks             fixed bin,                  /* 0 = 9-track, 1 = 7-track. */
28            2 density            bit (36),                   /* bits are 200, 556, 800 1600, 6250 respectively. */
29            2 speed              bit (36),                   /* bits are 75, 125, 200 ips respectively */
30            2 pad99 bit (36),                                /* so that buffers start on an evenword boundary */
31            2 buffer_offset      fixed bin (12),             /* offset (from 1) of first buffer to be processed */
32            2 buffer_count       fixed bin (12),             /* number of buffers to be processed */
33            2 completion_status  fixed bin (2),              /* 0 = no pending i/o or no status */
34                                                             /* 1 = normal termination of i/o */
35                                                             /* 2 = non-zero major status from previous i/o */
36            2 hardware_status    bit (36) aligned,           /* major and sub-status */
37            2 error_buffer       fixed bin (12),             /* buffer in which i/o error occurred */
38            2 command_count      fixed bin (12),             /* number of non-data commands to execute */
39            2 command_queue      (10) fixed bin (6) aligned, /* non-data-transfer commands */
40            2 bufferptr          (12) fixed bin (18) aligned,/* relative ptrs to buffers */
41            2 buffer_size        (12) fixed bin (18) aligned,/* size of buffer */
42            2 mode               (12) fixed bin (2) aligned, /* 0 = bin, 1 = bcd, 2 = 9 track */
43            2 buffer             (12) bit (37440) aligned,   /* data buffers - 1040 words */
44            2 dsm_area           area ((100 /* strictly nominal */));
45                                                             /* DSM workspace */
46 
47 /* End include segment tseg.incl.pl1 */