1 /* BEGIN INCLUDE FILE ... prt_sdb.incl.pl1 */
 2 /* Note: there is a corresponding prt_sdb.incl.alm */
 3 
 4 /* Created 10/28/74 by Noel I. Morris   */
 5 /* Modified 3/15/77 by Noel I. Morris   */
 6 /* Modified 1/25/78 by J. C. Whitmore to merge prtdim and spooling_dim versions */
 7 /* Modified: 27 November 1981 by G. Palter to add reload_vfc_train_after_special flag */
 8 /* Modified: 16 August 1983 by E. N. Kittlitz for new printer dim */
 9 
10 dcl  sdb_ptr ptr;                                           /* pointer to stream data block */
11 
12 dcl 1 sdb aligned based (sdb_ptr),                          /* printer stream data block */
13     2 outer_module_name char (32) aligned,
14     2 device_name_list_ptr pointer,
15     2 device_name,
16       3 next_device_ptr pointer,
17       3 name_size fixed bin (17),
18       3 name char (32) aligned,
19     2 ev_list aligned,                                      /* Event list for ipc_ */
20       3 count fixed bin (17),                               /* Event count = Always one */
21       3 evchan fixed bin (71),                              /* Event channel name */
22     2 stream_name char (32),                                /* stream name of this attachment */
23     2 areap ptr,                                            /* pointer to system free area */
24     2 info like prt_info aligned,                           /* printer info */
25     2 conv_info like pci aligned,                           /* conversion info */
26     2 chars_printed fixed bin (35),                         /* input chars processed since "reset" */
27     2 stop_every fixed bin,                                 /* non-zero to stop after number of pages */
28     2 stop_counter fixed bin,                               /* page stop counter */
29     2 mode,                                                 /* additional modes */
30      (3 single_page bit (1),                                /* "1"b to stop after each page */
31       3 noprint bit (1),                                    /* "1"b to suppress printing */
32       3 pad bit (34)) unal,
33     2 rcp_id bit (36),                                      /* RCP attachment ID */
34     2 wsegp ptr,                                            /* pointer to IOI working segment */
35     2 running bit (1),                                      /* "1"b if channel running */
36     2 bgin fixed bin (18),                                  /* index to oldest print line */
37     2 stop fixed bin (18),                                  /* index to next print line */
38     2 prev fixed bin (18),                                  /* index to previous print line */
39     2 wait_flag bit (1) aligned,                            /* non-zero if waiting for special */
40     2 marker_count fixed bin,                               /* counter for marker status insertion */
41     2 paper_low bit (1) aligned,                            /* "1"b if paper low */
42     2 error_count fixed bin,                                /* error counter */
43     2 buffer_ptr ptr,                                       /* pointer to output buffer (spooler) */
44     2 spool_info (56) fixed bin,                            /* place to store spooling_info */
45     2 reload_vfc_train_after_special bit (1) aligned,       /* "1"b if VFC/train images should be reloaded after next
46                                                                special interrupt */
47     2 max_dcw_size fixed bin (12) uns unal,                 /* max wordcount of dcw */
48     2 max_dcws fixed bin (6) uns unal,                      /* max dcws per idcw/buffer */
49     2 n_dcws fixed bin (6) uns unal,                        /* current limit of dcws/buffer */
50     2 b_begin fixed bin (3) uns unal,                       /* buffer index */
51     2 b_stop fixed bin (3) uns unal,                        /* likewise */
52     2 max_buffers fixed bin (3) uns unal,                   /* number of buffers allocated */
53     2 n_buffers fixed bin (3) uns unal,                     /* number of buffers in use now */
54     2 data_begin fixed bin (18) uns unal,                   /* first data word */
55     2 data_end fixed bin (18) uns unal,                     /* size of working space in words */
56     2 status_ptr ptr unal,                                  /* ioi status area */
57     2 flags aligned,
58       3 aborting bit (1) unal,                              /* next attempt to do i/o gets error and resets */
59       3 eurc bit (1) unal,                                  /* true if we know we are using EURC */
60       3 flags_pad bit (16) unal,
61     2 version fixed bin unal,
62     2 status_table ptr unal,                                /* for analyze_device_stat_ */
63     2 null_line_data bit (36) aligned,
64     2 null_line_dcw bit (36) aligned,
65     2 alarm_time fixed bin (71) unaligned;                  /* current timer_manager_ limit */
66 dcl  prt_bufferp ptr;
67 
68 dcl 1 prt_buffer aligned based (prt_bufferp),
69     2 header,
70       3 number fixed bin (6) uns unal,
71       3 busy bit (1) unal,
72       3 pad bit (4) unal,
73       3 dcw_count fixed bin (7) uns unal,
74       3 data_ends fixed bin (18) uns unal,
75     2 idcw bit (36),
76     2 ddcw (sdb.max_dcws + 1) bit (36) aligned;
77 
78 dcl  wseg (0:sdb.data_end - 1) bit (36) aligned based (sdb.wsegp);    /* the IOI buffer segment */
79 dcl 1 prt_buffers (0:sdb.max_buffers - 1) aligned like prt_buffer based (sdb.wsegp);
80 
81 /* NOTE:  The Spooling_dim IO Module also uses this include file,
82           as it uses the printer stream also. If changes are made to this include file,
83           see to it that the changes are also reflected in the Spooling_dim procedures.
84           The spooling_dim uses the standard printer_dim order and changemode procedures.
85           JCW 1/25/78  */
86 
87 /* END INCLUDE FILE ... prt_sdb.incl.pl1 */