1 /* Begin include file ..... ibm3270_mpx_data.incl.pl1 */
  2 
  3 /* Describes ring-0 data bases used by the ibm3270 demultiplexer */
  4 /* Prepared May 1979 by Larry Johnson */
  5 
  6 dcl  mdp ptr;
  7 dcl  md_nchan fixed bin;
  8 
  9 dcl 1 md aligned based (mdp),                               /* Global data */
 10 
 11 /* Static items */
 12 
 13     2 event_channel fixed bin (71),                         /* Event channel to talk to AS over */
 14     2 processid bit (36),                                   /* AS processid */
 15     2 devx fixed bin,                                       /* Devx of major channel */
 16     2 name char (32),                                       /* Name of major channel */
 17     2 nchan fixed bin,                                      /* Count of subchannels */
 18     2 controller_address fixed bin,                         /* Address of controler, defaults to 0 */
 19     2 controller_poll_address char (1),
 20     2 controller_select_address char (1),
 21     2 general_poll_address char (1),
 22     2 dialup_info,                                          /* Data saved from dialup interrupt */
 23       3 line_type fixed bin,
 24       3 baud_rate fixed bin,
 25       3 max_buf_size fixed bin,
 26       3 buffer_pad fixed bin,
 27     2 chars unal,                                           /* Various ascii/ebcdic dependent chars */
 28       3 nl char (1),                                        /* Newline character */
 29       3 sba char (1),                                       /* Set-buffer-address code */
 30       3 stx char (1),                                       /* Start of text code */
 31       3 esc char (1),                                       /* Escape code */
 32       3 write char (1),                                     /* Function code for write */
 33       3 erase_write char (1),                               /* Function code for erase-write */
 34       3 ic char (1),                                        /* Insert cursor */
 35       3 etx char (1),                                       /* End of text */
 36       3 soh char (1),                                       /* Start of header */
 37       3 eot char (1),                                       /* End of transmission */
 38       3 percent char (1),                                   /* A "%" */
 39       3 slash char (1),                                     /* A "/" */
 40       3 letter_R char (1),                                  /* A "R" */
 41       3 etb char (1),                                       /* End of text block */
 42       3 enter char (1),                                     /* AID field for enter */
 43       3 clear char (1),                                     /* AID field for clear */
 44       3 pa1 char (1),                                       /* AID field for PA1 */
 45       3 pa2 char (1),                                       /* AID field for PA2 */
 46       3 pa3 char (1),                                       /* AID field for PA3 */
 47       3 bs char (1),                                        /* Backspace */
 48       3 cr char (1),                                        /* Carriage return */
 49       3 em char (1),                                        /* End of media */
 50       3 copy char (1),                                      /* Function code to copy a screen */
 51     2 action_chars unal,
 52       3 quit_key char (1),                                  /* Function code to interpret as quit */
 53       3 formfeed_key char (1),                              /* Function code to interpret as formfeed */
 54     2 address_tablep ptr,                                   /* Pointer to ebcdic or ascii table */
 55     2 chan_map (0:31) fixed bin (8) unal,                   /* Maps poll address into mde index */
 56 
 57 /* Dynamic items */
 58 
 59     2 last_poll_address char (1),                           /* Last poll address sent to FNP */
 60     2 first_control_chan fixed bin,                         /* First channal in control function queue */
 61     2 last_control_chan fixed bin,                          /* The last */
 62     2 last_select_address char (1),                         /* Likewise for select */
 63     2 first_write_chan fixed bin,                           /* First channel in write queue */
 64     2 last_write_chan fixed bin,                            /* Last channel in write queue */
 65     2 cur_write_chan fixed bin,                             /* If output in progres */
 66     2 write_chain_ptr ptr unal,                             /* For cur_write_chan */
 67     2 first_poll_chan fixed bin,                            /* First channel in poll queue */
 68     2 last_poll_chan fixed bin,                             /* Last channel in poll queue */
 69     2 input_chain_ptr ptr,                                  /* Currently accumulating input chain */
 70     2 input_count fixed bin,                                /* Its length */
 71     2 error_stat like ibm3270_meters,                       /* Error statstics */
 72     2 saved_meters_ptr ptr,                                 /* address of savedf copy of meters */
 73     2 flags,
 74       3 ascii bit (1) unal,                                 /* Use ascii protocol */
 75       3 debug bit (1) unal,
 76       3 loading bit (1) unal,                               /* Load in progress */
 77       3 loaded bit (1) unal,                                /* Load complete */
 78       3 started bit (1) unal,                               /* In started state */
 79       3 poll_in_progress bit (1) unal,                      /* FNP has device poll in progress */
 80       3 output_in_progress bit (1) unal,                    /* Working on output, goes off with line status */
 81       3 message_in_progress bit (1) unal,                   /* Working on output, goes off when data passed on */
 82       3 eot_sent bit (1) unal,                              /* If eot has been entor current output */
 83       3 send_output bit (1) unal,                           /* Mpx has been told send output */
 84       3 allow_raw3270 bit (1) unal,                         /* Sub-channels may use raw3270 mode */
 85       3 allow_copy bit (1) unal,                            /* Sub-channels may use copy feature */
 86       3 pad bit (24) unal,
 87     2 mde_entry (md_nchan refer (md.nchan)) like mde;       /* Per-channel data */
 88 
 89 dcl  address_table (0:63) char (1) unal based (md.address_tablep);
 90 
 91 dcl  mdep ptr;
 92 
 93 dcl 1 mde aligned based (mdep),                             /* Per channel data */
 94     2 devx fixed bin,                                       /* Devx of sub-channel */
 95     2 name char (3),                                        /* Last component of name, {p|d}NN */
 96     2 device_address char (1),                              /* Address for poll and selects */
 97     2 screen_size fixed bin,                                /* Number of characters on screen, 480/1920 */
 98     2 line_size fixed bin,                                  /* Number of characters on line, 40/80 */
 99     2 position fixed bin,                                   /* Where cursor should be */
100     2 next_write_chan fixed bin,                            /* Next channel in the write queue */
101     2 next_poll_chan fixed bin,                             /* Next channel in the poll queue */
102     2 next_control_chan fixed bin,                          /* Next channel in control function queue */
103     2 write_chain_ptr ptr unal,                             /* Pointer to write chain for this device */
104     2 flags,
105       3 listen bit (1) unal,
106       3 dialed bit (1) unal,
107       3 printer bit (1) unal,
108       3 hndlquit bit (1) unal,                              /* Setting of the mode */
109       3 waiting_for_ready bit (1) unal,                     /* Waiting for prinnr to finish */
110       3 erase_req bit (1) unal,                             /* Erase screen on next write */
111       3 sound_alarm bit (1) unal,                           /* Turn on beeper on next chance */
112       3 control_queued bit (1) unal,                        /* Channel in unlock queue */
113       3 end_of_page bit (1) unal,                           /* Waiting for responce to start output */
114       3 keyboard_restore bit (1) unal,                      /* Must unlock keyboard */
115       3 rawo bit (1) unal,                                  /* Current state of channels rawo mode */
116       3 rawi bit (1) unal,                                  /* Current state of channels rawi mode */
117       3 raw3270 bit (1) unal,                               /* Special raw mode for 3270's */
118       3 raw3270_in_effect bit (1) unal,                     /* Equals rawi & rawo & raw3270 */
119       3 write_queued bit (1) unal,
120       3 pad bit (21) unal;
121 
122 /* End include file ..... ibm3270_mpx_data.incl.pl1 */