1 /* BEGIN INCLUDE ......... prtseg ........... */ 2 3 /* For IOM printer DCM */ 4 5 dcl PRT_EVENT fixed bin int static init (60); 6 7 dcl interrupt_interval fixed bin (71) static init (30000000); /* Expect an interrupt within 30 seconds */ 8 9 dcl CHN_INACT fixed bin int static init (0); 10 dcl CHN_BUSY fixed bin int static init (1); 11 dcl CHN_ERR fixed bin int static init (2); 12 dcl CHN_WAIT fixed bin int static init (3); 13 14 dcl max_no_printers int static init (11); /* set up max number of printers */ 15 16 dcl (p, wp) ptr; 17 18 dcl 1 ps based (p) aligned, /* Per-printer history */ 19 2 devx fixed bin (12), /* device index from iom_manager */ 20 2 base fixed bin (24), /* abs. adr. of data area */ 21 2 dp ptr, /* ptr to data area */ 22 2 free fixed bin, /* first free word in data area */ 23 2 max_size fixed bin, /* max_size of free area */ 24 2 cur_index fixed bin (12), /* current DCW index */ 25 2 level fixed bin, /* for code conversion overprinting */ 26 2 wflag fixed bin, /* ON for user ring waiting */ 27 2 active fixed bin, /* 0 if DCW list is not active, 28 1 if DCW list is active, 29 2 if DCW list is not active 30 3 if waiting for special interrupt */ 31 2 status aligned, 32 3 major bit (4) unaligned, /* major device status */ 33 3 minor bit (6) unaligned, /* minor device status */ 34 3 channel_stat bit (3) unaligned, /* iom channel status */ 35 3 central_stat bit (3) unaligned, /* iom central status */ 36 3 controller_fault bit (4) unaligned, /* fault from controller */ 37 3 io_fault bit (6) unaligned, /* I/O fault code */ 38 3 power bit (1) unaligned, /* power status bit */ 39 2 connect_count fixed bin, /* # of times connected before interrupt came */ 40 2 interrupt_time fixed bin (71), /* time by which interrupt should have happened */ 41 2 ev_chan fixed bin (71), /* event channel from user ring */ 42 2 status_cell fixed bin (71), /* Saved status from get_status call */ 43 2 type fixed bin, /* printer type 300 or 202 */ 44 2 control_bits aligned, /* some spare bits */ 45 3 wait_notify bit (1) unal, /* if on we are using wait notify in detach */ 46 3 ovfl_off bit (1) unal, /* TRUE if no page-overflow checking. */ 47 3 single bit (1) unal, /* TRUE if forcing single space. */ 48 3 spare_bits bit (33) unal, /* spare parts */ 49 2 cur_line fixed bin, /* Line which will be printed next. (norm. 1-60) */ 50 2 max_line fixed bin, /* Maximum line on page. */ 51 2 indent fixed bin, /* Left margin. */ 52 2 line_lth fixed bin, /* Paper width in chars. */ 53 2 line_count fixed bin, /* Number of lines printed this file. */ 54 2 page_count fixed bin, /* Number of pages printed this file. */ 55 2 temp_indent fixed bin, /* If previous line did not end in NL, where it did end. */ 56 2 pcw fixed bin (35), /* Prototype PCW for this device.. reset status */ 57 2 write_dcw fixed bin (35), /* Prototype write IDCW */ 58 2 stop_idcw fixed bin (35), /* Prototype stopper IDCW */ 59 2 data fixed bin; /* Start of per-printer DCW and data area. must be even loc */ 60 61 dcl 1 wps based (wp) aligned, /* prthdr$ */ 62 2 num_printers fixed bin, /* number of printers available. set at init time */ 63 2 data_size fixed bin, /* data area to be allocated per printer */ 64 2 astep ptr, /* ast entry pointer for pc_abs */ 65 2 hold_lock bit (36), /* each bit says that its corr page is wired now */ 66 2 prtlock (11) bit (36); /* array of locks for per printer structures */ 67 68 /* END INCLUDE .......... prtseg ............. */