COMPILATION LISTING OF SEGMENT tolts_ttyio_display_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/09/86 1526.2 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* format: style4 */ 12 tolts_ttyio_display_: proc (event_ptr); 13 14 /* 15* This procedure displays each line of a queued terminal io message and is driven by IPC 16* call channels. The first call is initiated by the tolts_qttyio_ subroutine waking up the 17* tty_issue_event channel. Further calls on this event channel are inhibited until the 18* entire message has been displayed. After the first line of a message is displayed, all 19* subsequent lines are output by waking up the tty_display_event channel. The tty_display 20* event channel will call the entry tolts_ttyio_display_$nxt_line until all lines of the 21* message are output. After the last line of a message is displayed, the event channel 22* tty_ccc_event is woken up. This calls the routine tolts_ttyio_end_ for message completion. 23* Message routing is determined by the value of the message entry page number 24* (mes_buf.page). If the page number has a value from 0 to 9, then the message is routed to 25* the user_output io switch. If the page number has a value greater than or equal to 20, 26* then the message is routed to the io switch defined by tolts_info.pf_iocbp. The page 27* number is then corrected to its true value (0 to 9) before the tolts_ttyio_end_ entry is 28* signalled. 29**/ 30 31 32 /* External Entries */ 33 34 dcl hcs_$wakeup entry (bit (36) aligned, 35 fixed bin (71), ptr, fixed bin (35)); /* arg 3 is suppose to be fixed bin (71) */ 36 dcl (com_err_, ioa_$ioa_switch_nnl) entry options (variable); 37 dcl terminate_process_ entry (char (*), ptr); 38 dcl ipc_$cutoff entry (fixed bin (71), fixed bin (35)); 39 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 40 41 /* Entry Parameters */ 42 43 dcl event_ptr ptr; 44 45 /* Automatic */ 46 47 dcl (mep, iocbp) ptr; 48 dcl page fixed bin; 49 dcl error fixed bin (35); 50 dcl npnl bit (1); 51 52 /* structures and based variables */ 53 54 dcl 1 event_info based (event_ptr), 55 2 causing_event fixed bin (71), 56 2 cmp ptr, 57 2 sender bit (36), 58 2 origin, 59 3 signal bit (18) unaligned, 60 3 ring bit (18) unaligned, 61 2 in_data_pointer ptr; 62 63 64 dcl 1 fatal_desc aligned, 65 2 version fixed bin, 66 2 fatal_code fixed bin (35); 67 68 dcl 1 mes_buf based (mep) aligned, /* template for a message queue entry */ 69 2 page fixed bin, /* test page number issuing io */ 70 2 nlines fixed bin, /* number of array elements in message */ 71 2 cline fixed bin, /* line number currently being displayed */ 72 2 lines (nlines) char (136), /* array of message lines */ 73 2 nxt_mes char (1); /* method to get to next message */ 74 75 /* Builtins */ 76 77 dcl (addr, null) builtin; 78 79 /* Static */ 80 81 dcl (iox_$user_output, iox_$user_io) ptr ext; 82 83 84 call ipc_$cutoff (tolts_info.tty_issue_event, error); /* inhibit further calls from tolts_qttyio_ */ 85 if error ^= 0 then do; 86 disaster: 87 call com_err_ (error, "tolts_ttyio_display_", "fatal error, terminating process"); 88 fatal_desc.fatal_code = error; 89 fatal_desc.version = 0; 90 call terminate_process_ ("fatal_error", addr (fatal_desc)); 91 end; 92 93 /* entry to display more than one line (after first line) */ 94 95 nxt_line: entry (event_ptr); 96 97 mep = event_info.cmp; /* copy message ptr */ 98 tolts_info.term_io_in_prog = "1"b; /* set io in progress flag */ 99 if tolts_info.optflag ^= 0 then do; /* has a quit been signalled? */ 100 call wakeup (tolts_info.tty_ccc_event, "1"b);/* yes signal tolts_ttyio_end_ */ 101 return; 102 end; 103 mes_buf.cline = mes_buf.cline + 1; /* increment current line number */ 104 105 /* determine if going to printer or terminel */ 106 107 page = mes_buf.page; /* copy page number */ 108 if page >= 20 then do; /* if printer flag set */ 109 if tolts_info.pf_iocbp ^= null then /* if print file iocb ptr good */ 110 iocbp = tolts_info.pf_iocbp; /* output to print file switch */ 111 else iocbp = iox_$user_output; /* go to terminal */ 112 page = page - 20; /* get right page number */ 113 end; 114 else iocbp = iox_$user_output; /* otherwise go to terminal */ 115 116 /* determine if line should end with newline character */ 117 118 npnl = "0"b; /* default is to output new line */ 119 if page = 9 | page = 19 then /* if exec read, no newline */ 120 if mes_buf.cline = mes_buf.nlines then /* and this is the last line of message */ 121 npnl = "1"b; 122 else ; 123 else if page > 0 & page ^= 10 then /* if not exec write */ 124 if tolts_info.tadio (page).optrd then /* and test page requesting options */ 125 if mes_buf.cline = mes_buf.nlines then /* and this is the last line of message */ 126 npnl = "1"b; /* don't put out newline */ 127 call ioa_$ioa_switch_nnl (iocbp, "^a^[ ^;^/^]", 128 mes_buf.lines (mes_buf.cline), npnl); /* display line */ 129 if mes_buf.cline = mes_buf.nlines | tolts_info.optflag ^= 0 then /* last line or quit? */ 130 call wakeup (tolts_info.tty_ccc_event, "1"b);/* wake up tolts_ttyio_end_ */ 131 else call wakeup (tolts_info.tty_display_event, "0"b); /* otherwise, wakeup ourself */ 132 call iox_$control (iox_$user_io, "start", null, error); /* allow cleanup of any blocks */ 133 return; 134 135 136 /* wakeup - subroutine to wakeup requested event channel */ 137 138 wakeup: proc (e_chan, last_line); 139 140 dcl e_chan fixed bin (71); 141 dcl last_line bit (1); 142 143 if last_line then /* if last line of message.... */ 144 if mes_buf.page >= 20 then /* and if printer output */ 145 mes_buf.page = mes_buf.page - 20; /* correct page number for tolts_ttyio_end_ */ 146 call hcs_$wakeup (tolts_info.process, e_chan, mep, error); /* wakeup desired channel */ 147 if error ^= 0 then /* if some problem... */ 148 go to disaster; /* terminate process */ 149 150 end wakeup; 151 152 1 1 /* BEGIN INCLUDE FILE tolts_info.incl.pl1 */ 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 /****^ HISTORY COMMENTS: 1 10* 1) change(80-03-24,Fakoury), approve(), audit(86-11-25,Martinson), 1 11* install(86-12-04,MR12.0-1235): 1 12* to add second sct for 500/501 MTAR 1 13* 2) change(80-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 14* install(86-12-04,MR12.0-1235): 1 15* to init rcp_area and alt_rcp_area to 0. 1 16* 3) change(81-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 17* install(86-12-04,MR12.0-1235): 1 18* to add new statements for colts. 1 19* 4) change(81-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 20* install(86-12-04,MR12.0-1235): 1 21* to increase the dcw_list size. 1 22* 5) change(82-04-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 23* install(86-12-04,MR12.0-1235): 1 24* to add crcst and redefine devsct. 1 25* 6) change(82-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 26* install(86-12-04,MR12.0-1235): 1 27* to increase the console buffer size for mtar. 1 28* 7) change(82-11-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 29* install(86-12-04,MR12.0-1235): 1 30* for 128chan support. 1 31* 8) change(83-07-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 32* install(86-12-04,MR12.0-1235): 1 33* to increase the dcw_list size for mtar perm file track repair. 1 34* 9) change(84-04-10,Fakoury), approve(86-08-21,MCR7514), 1 35* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 36* to add sct_info needed to support the DAU & DIPPER. 1 37* 10) change(85-02-21,Fakoury), approve(86-08-21,MCR7514), 1 38* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 39* 2/85 to support test nio request. 1 40* 11) change(85-04-01,Fakoury), approve(86-08-21,MCR7514), 1 41* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 42* for extended status store. 1 43* 12) change(85-12-21,Fakoury), approve(86-08-21,MCR7514), 1 44* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 45* for Colts Responder changes. 1 46* 13) change(86-02-01,Fakoury), approve(86-08-20,MCR7514), 1 47* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 48* implement the test nio request. 1 49* support of a Colts responder test request. 1 50* END HISTORY COMMENTS */ 1 51 1 52 1 53 1 54 1 55 1 56 1 57 /* format: style4,ifthenstmt,ifthen,ind3,ll125,lineconind1 */ 1 58 1 59 dcl polt_io_type fixed bin int static options (constant) init (0); 1 60 dcl itr_io_type fixed bin int static options (constant) init (1); 1 61 dcl mdr_io_type fixed bin int static options (constant) init (2); 1 62 dcl mtar_io_type fixed bin int static options (constant) init (3); 1 63 dcl firm_ld_io_type fixed bin int static options (constant) init (4); 1 64 dcl mtc_io_type fixed bin int static options (constant) init (5); 1 65 dcl mtg_io_type fixed bin int static options (constant) init (6); 1 66 dcl mdc_io_type fixed bin int static options (constant) init (7); 1 67 dcl mhp_io_type fixed bin int static options (constant) init (8); 1 68 dcl mca_io_type fixed bin int static options (constant) init (9); 1 69 dcl rspd_io_type fixed bin int static options (constant) init (10); 1 70 1 71 dcl tolts_infop ptr external static; /* ext static ptr to tolts_info structure */ 1 72 dcl colts_info_ptr ptr; /* ptr to individual test page data */ 1 73 dcl io_info_ptr ptr; /* ptr to individual test page data */ 1 74 dcl dmap ptr; /* pointer to dial_manager_arg */ 1 75 dcl 1 tolts_info based (tolts_infop) aligned, /* data structure used for tolts routines */ 1 76 2 cdtptr ptr, 1 77 2 df_iocbp ptr, /* deckfile iocb ptr */ 1 78 2 dm_event fixed bin (71), /* dial_manager event_channel */ 1 79 2 exec char (4), /* executive name (polt, molt, colt etc) */ 1 80 2 exec_dta_cnt fixed bin, /* inter slave request count */ 1 81 2 exec_page_count fixed bin, /* number of test pages active */ 1 82 2 exec_term_io_wait bit (1), /* waiting for io to complete for exec termination */ 1 83 2 execp ptr, /* ptr to slave polt or molt segment */ 1 84 2 file_attach bit (1), /* = "1"b if print file attached */ 1 85 2 file_open bit (1), /* = "1"b if print file open */ 1 86 2 finish_cond bit (1), /* = "1"b if finish condition has been signaled */ 1 87 2 first_request_done bit (1), /* first terminal io request complete */ 1 88 2 gc_date bit (36), /* gcos 6 char bcd date (set at init time, updated at rollover) */ 1 89 2 gewake_active bit (1), /* = "1"b if gewake alarm timer is active */ 1 90 2 gewake_event fixed bin (71), /* gewake alarm timer event channel id */ 1 91 2 glob_int_cnt fixed bin, /* total number of outstanding test IOs */ 1 92 2 hdir char (168), /* users home directory pathname */ 1 93 2 init_time fixed bin (71), /* gcos time of executive initialize (mme poinit) */ 1 94 2 max_to fixed bin (71), /* max ioi timeout ( from rcp_$check_attach) */ 1 95 2 max_wks_sz fixed bin (19), /* max ioi wkspace size (from rcp_$check_attach) */ 1 96 2 micro_time fixed bin (71), /* time at midnight in usecs. (set at init time, updated at rollover */ 1 97 2 optflag fixed bin, /* option request flag */ 1 98 2 padx (2) fixed bin, /* reserved area */ 1 99 2 pf_iocbp ptr, /* print file iocb ptr */ 1 100 2 pf_name char (32), /* seg name of print file */ 1 101 2 process bit (36), /* T & D users process id */ 1 102 2 quith_event fixed bin (71), /* quit handler event call channel id */ 1 103 2 special_fault bit (1), /* error on reconnect after special int */ 1 104 2 term_io_in_prog bit (1), /* terminal io in progress */ 1 105 2 term_io_req_cnt fixed bin, /* outstanding terminal io requests */ 1 106 2 tty_ccc_event fixed bin (71), /* term io courtesy call event call channel id */ 1 107 2 tty_display_event fixed bin (71), /* term io display event channel id */ 1 108 2 tty_issue_event fixed bin (71), /* term io issue event call channel id */ 1 109 2 wks_sz fixed bin, /* workspace size in words (4096 for polts, 6144 for molts) */ 1 110 2 exec_dta (16), /* inter slave request queue */ 1 111 3 word (4) bit (36), /* inter slave data */ 1 112 2 ccc_queue, /* courtesy call queue */ 1 113 3 ccc_requests fixed bin, /* courtesy call requests */ 1 114 3 icivlu (16) bit (36), /* ic and ind of courtesy call routine */ 1 115 2 isc_queue, /* interslave communication queue */ 1 116 3 icivlu bit (36), /* ic and i of queue entry */ 1 117 3 status_add fixed bin, /* :: */ 1 118 3 data_add fixed bin, /* :: */ 1 119 1 120 2 tadio (8), /* T & D user io rqt queue */ 1 121 3 optrd bit (1), /* = "1"b if options are to be read */ 1 122 3 inuse bit (1), /* = "1"b if queue entry in use */ 1 123 3 return_word (3) bit (36), /* data returned from mme tadiod */ 1 124 3 option bit (6 * 84), /* bcd option string */ 1 125 2 wait_list, /* wait list for dispatcher block */ 1 126 3 nchan fixed bin, /* number of event wait channels */ 1 127 3 wait_pad fixed bin, /* will make wait_event_id on even boundary */ 1 128 3 wait_event_id (2) fixed bin (71), /* dispatcher event wait chan id */ 1 129 2 clt_sw char (32), 1 130 2 att_desc char (32), 1 131 2 cdt_pointer ptr, /* save pointer to cdt */ 1 132 2 fnp_exec_cnt fixed bin init (0), 1 133 2 fnp (0:7), 1 134 3 exec_active bit (1) init ("0"b), 1 135 3 exec_chan char (32), 1 136 3 status_word bit (36) init ("0"b), 1 137 3 fnp_execp ptr, 1 138 3 type fixed bin, 1 139 3 exec_type_code bit (6) init ("0"b), 1 140 3 cdt_name (8) char (32) init ("empty"), /* cdt name built from test request */ 1 141 3 dm_arg like dial_manager_arg, 1 142 2 mess_buf, /* terminal io message buffers */ 1 143 3 first ptr, /* ptr to start of message buffer */ 1 144 3 nxt ptr, /* ptr to nxt queue entry */ 1 145 3 term_queue (8192) fixed bin, /* message queu as fixed bin */ 1 146 3 q_end bit (0), /* to find end of queue */ 1 147 3 q_pad (1024) fixed bin, /* padding area */ 1 148 3 mult_ans char (28) varying, /* answer to local Multics question */ 1 149 3 cv_buf char (4000) varying, /* temporary conversion storage */ 1 150 2 colts_pages (8) like colts_info, 1 151 2 pages (8) like io_info, /* test pages (8 posible) */ 1 152 2 firm_buf (10240) fixed bin; /* storage for loading firmware */ 1 153 1 154 1 155 dcl 1 io_info based (io_info_ptr) aligned, /* this maps test pages in tolts_info */ 1 156 2 alloc_wait bit (1), /* = "1"b if waiting for delayed allocation */ 1 157 2 allocated bit (1), /* = "1"b if device allocated to this page */ 1 158 2 alt_dev_flag bit (1), /* = "1"b if 2nd logical device configured (MTAR 500/501 only */ 1 159 2 alt_device_index fixed bin (12), /* ioi device index */ 1 160 2 alt_device_name char (8), /* alternate allocated device name */ 1 161 2 alt_rcp_area (24) fixed bin init (0), /* alternate device rcp */ 1 162 2 alt_rcp_id bit (36) aligned, /* rcp id for alternate attach/check_attach */ 1 163 2 attach_err fixed bin (35), /* error code returned durning attach */ 1 164 2 cata_cycle bit (1), /* cycle check for cata */ 1 165 2 cat_name char (10), /* itr or mdr catalog suffix */ 1 166 2 n_keys fixed bin aligned, /* number of catalog keys below */ 1 167 2 cata_keys (10) char (24) aligned, /* array of catalog keys */ 1 168 2 catp ptr, /* ptr to itr or mdr catalog in deckfile */ 1 169 2 catx fixed bin, /* current cata_info.index */ 1 170 2 ccu_pun bit (1), /* = "1"b if ccu to be used as punch */ 1 171 2 chan_suspended bit (1), /* = "1"b if channel has been suspended */ 1 172 2 chan_time fixed bin (35), /* channel time (in 1/64th miliseconds) */ 1 173 2 con_time fixed bin (35), /* abs time of connect (in 1/64 th miliseconds) */ 1 174 2 cur_wks_sz fixed bin, /* current size of ioi workspace (normally tolts_info.wks_sz) */ 1 175 2 dcw_list (330) bit (36), /* test page dcw list in unaltered form */ 1 176 2 dev_busy bit (1), /* = "1"b if device busy before */ 1 177 2 device_index fixed bin (12), /* ioi device index */ 1 178 2 device_name char (8), /* allocated device name (in ascii) */ 1 179 2 ev_ch_ass bit (1), /* = "1"b if status event chan assigned to this page */ 1 180 2 ext_status_add fixed bin, /* extended status store address */ 1 181 2 fnp_num fixed bin, 1 182 2 fpinfo_ptr ptr, /* ptr to rspd info table */ 1 183 2 ignore_term bit (1), /* = "1"b if term int to be ignored, wait for special (ITR) */ 1 184 2 in_use bit (1), /* = "1"b if this test page in use */ 1 185 2 int_time fixed bin (35), /* abs time of interrupt (in 1/64 th miliseconds) */ 1 186 2 io_in_progress bit (1), /* = "1"b if io in progress for this page */ 1 187 2 io_trc_flag bit (1), /* = "1"b if io is being traced */ 1 188 2 io_type fixed bin, /* 0 = polt, 1 = ITR, 2 = MDR, 3 = MTAR, 4 = firmware load */ 1 189 2 iocp ptr, 1 190 2 ipc_attached bit (1), 1 191 2 ipc_id char (3), 1 192 2 ipc_number fixed bin, 1 193 2 lostit_time fixed bin (35), /* lost interrupt time in 1/64 th miliseconds */ 1 194 2 mca_attach_state fixed bin, 1 195 2 mcata_idx fixed bin, /* mca catalog indexer */ 1 196 2 mcata_nkeys fixed bin aligned, /* no of keys in a mca catalog */ 1 197 2 mcata_keys (100) char (24) aligned, /* mca catalog entries */ 1 198 2 mca_ioi_idx fixed bin, /* ioi index of attached mca / 1 199* 2 mca_iop ptr, /* mca io ptr */ 1 200 2 mca_workspace_ptr ptr, 1 201 2 mpc_dev_cnt fixed bin, /* if urmpc to be booted, # of devices */ 1 202 2 nff bit (1), /* = "1"b new format flag */ 1 203 2 num_connects fixed bin, /* number of connects issued by this page */ 1 204 2 p2_att bit (1), /* ="1"b if alternate device is attached (MTAR 500/501 only) */ 1 205 2 p_att bit (1), /* = "1"b if perp. device attached to this page */ 1 206 2 page_base fixed bin (18) uns, /* base of this test page in slave seg */ 1 207 2 pcwa bit (36), /* pcw */ 1 208 2 rcp_area (24) fixed bin init (0), /* storage for rcp device info */ 1 209 2 rcp_id bit (36) aligned, /* rcp id for attach/check_attach */ 1 210 2 rcp_name char (32), /* rcp name for this device */ 1 211 2 rcp_state fixed bin, /* rcp attach state flag */ 1 212 2 release_chan bit (1), /* = "1"b if ioi_$release devices to be called */ 1 213 2 rew_wait bit (1), /* = "1"b if waiting for special on rewind complete */ 1 214 2 sp_flag bit (1), /* = "1"b if special status available */ 1 215 2 sp_status bit (36), /* special interrupt status storage */ 1 216 2 spare1 bit (1), 1 217 2 status_add fixed bin, /* address to store status in test page */ 1 218 2 status_event fixed bin (71), /* io completion status event call channel id */ 1 219 2 suspend_chan bit (1), /* = "1"b if ioi_$suspend devices to be called */ 1 220 2 tolts_rspd_wksp ptr, 1 221 2 test_hdr char (16), /* test header used for Multics local messages */ 1 222 2 tio_off fixed bin (18), /* dcw list offset for ioi */ 1 223 2 to_no_cc bit (1), /* = "1"b if timeout expected (set after mme ipcw) */ 1 224 2 workspace_ptr ptr, /* ioi workspace ptr */ 1 225 2 altsct, /* sct for MTAR alternate device */ 1 226 (3 w1, /* device sct word 1 */ 1 227 4 type_code bit (6), /* gcos 3 type code (see dd14 app. a) */ 1 228 4 device_no bit (6), /* device number */ 1 229 4 com_prph bit (1), /* = "1"b if common perph. device */ 1 230 4 hi_speed bit (1), /* = "1"b if hi speed printer */ 1 231 4 ll160 bit (1), /* = "1"b if 160 collum printer */ 1 232 4 pad1 bit (2), 1 233 4 cr501_pr54 bit (1), /* either a cr501 or pr54 device */ 1 234 4 icc bit (11), /* iom and channel (true channel index) */ 1 235 4 pad2 bit (7), 1 236 3 w2, /* device sct word 2 */ 1 237 4 ptrain fixed bin (14), /* print train number */ 1 238 4 nmods bit (3), /* not used in Multics */ 1 239 4 pad4 bit (3), 1 240 4 den_cap bit (4), /* density capability for tapes */ 1 241 4 pad5 bit (11)) unaligned, 1 242 2 crcst, /* controller sct */ 1 243 (3 pad1 bit (1), 1 244 3 volatile bit (1), /* reloadable firmware */ 1 245 3 mpc bit (1), /* = "1"b if mpc */ 1 246 3 pad2 bit (4), 1 247 3 ms500 bit (1), /* = "1"b if mss500 device */ 1 248 3 mtp610 bit (1), /* = "1"b if mtp 610 device */ 1 249 3 pad3 bit (27)) unaligned, 1 250 2 dev_firm (4), /* storage for device firmware edit names */ 1 251 3 edit_name char (4), /* for urmpc firmware */ 1 252 3 mask bit (36), /* port mask for this firmware */ 1 253 2 devsct, /* 2 word device sct entry */ 1 254 (3 w1, /* device sct word 1 */ 1 255 4 type_code bit (6), /* gcos 3 type code (see dd14 app. a) */ 1 256 4 device_no bit (6), /* device number */ 1 257 4 com_prph bit (1), /* = "1"b if common perph. device */ 1 258 4 hi_speed bit (1), /* = "1"b if hi speed printer */ 1 259 4 ll160 bit (1), /* = "1"b if 160 collum printer */ 1 260 4 pad1 bit (2), 1 261 4 cr501_pr54 bit (1), /* either a cr501 or pr54 device */ 1 262 4 icc bit (11), /* iom and channel (true channel index) */ 1 263 4 pad2 bit (7), 1 264 3 w2, /* device sct word 2 */ 1 265 4 ptrain fixed bin (14), /* print train number */ 1 266 4 nmods bit (3), /* not used in Multics */ 1 267 4 pad4 bit (3), 1 268 4 den_cap bit (4), /* density capability for tapes */ 1 269 4 pad5 bit (11)) unaligned, 1 270 2 icivlu, /* ic and i for courtesy call on io completion */ 1 271 3 ic bit (18) unaligned, /* instruction counter */ 1 272 3 ind bit (18) unaligned, /* indicator register */ 1 273 2 sct_info, 1 274 (3 cntsct bit (18), /* unchanged from before */ 1 275 3 ioc_type bit (4), /* 0 = IOM, 1 = IMU, 2 = IOX */ 1 276 3 cnt_type bit (4), /* 0 = MPC, 1 = DAU, 2 = EURC, 3 = FIPS */ 1 277 3 pad1 bit (1), 1 278 3 xioc_type bit (4), /* not used in Multics */ 1 279 3 xcnt_type bit (4), /* not used in Multics */ 1 280 3 pad2 bit (1)) unaligned, 1 281 2 test_req aligned, 1 282 (3 fnccss bit (18), 1 283 3 tt bit (6), 1 284 3 pad1 bit (6)) unaligned; 1 285 1 286 1 287 dcl 1 colts_info aligned based (colts_info_ptr), 1 288 2 cdt_name char (32), 1 289 2 chanp pointer, /* iox pointer to chan under test */ 1 290 2 dm_arg aligned like dial_manager_arg, 1 291 2 fnp_num fixed bin (4), 1 292 2 in_use bit (1) unaligned init ("0"b), 1 293 2 status_word bit (36) aligned init ("0"b), 1 294 2 type_code bit (6) unaligned init ("0"b); 1 295 1 296 1 297 1 298 2 1 /* BEGIN INCLUDE FILE ... dial_manager_arg.incl.pl1 */ 2 2 2 3 /* Modified by E. N. Kittlitz 11/80 to add reservation string, move dial-out 2 4* destination from dial_qualifier, add dial_message. 2 5* Modified by Robert Coren 4/83 to add required access class stuff. 2 6* Modified 1984-08-27 BIM for V4, privileged_operation. 2 7**/ 2 8 2 9 2 10 dcl dial_manager_arg_version_2 fixed bin internal static initial (2) options (constant); 2 11 dcl dial_manager_arg_version_3 fixed bin internal static initial (3) options (constant); 2 12 dcl dial_manager_arg_version_4 fixed bin internal static initial (4) options (constant); 2 13 2 14 dcl 1 dial_manager_arg based aligned, 2 15 2 version fixed bin, /* = 4 */ 2 16 2 dial_qualifier char (22), /* identify different processes with same process group id */ 2 17 2 dial_channel fixed bin (71), /* event wait channel */ 2 18 2 channel_name char (32), /* channel name for privileged attach */ 2 19 /* limit of version 1 structure */ 2 20 2 dial_out_destination char (32), /* dial-out destination (e.g. phone_no) */ 2 21 2 reservation_string char (256), /* reservation string */ 2 22 2 dial_message fixed bin (71), /* OUTPUT: A.S. message received by dial_manager_ */ 2 23 /* limit of version 2 structure */ 2 24 2 access_class bit (72), /* access class to be associated with the attachment */ 2 25 2 flags aligned, 2 26 3 access_class_required bit (1) unaligned, /* indicates whether to enforce access_class */ 2 27 3 privileged_operation bit (1) unaligned, /* for accept_dials, accepts dials from */ 2 28 /* system_low:access_class */ 2 29 /* no effect on other operations yet. */ 2 30 3 mbz bit (34) unaligned; /* must be zero */ 2 31 2 32 /* END INCLUDE FILE ... dial_manager_arg.incl.pl1 */ 1 299 1 300 1 301 1 302 1 303 1 304 /* END INCLUDE FILE tolts_info.incl.pl1 */ 153 154 155 end tolts_ttyio_display_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/09/86 1522.8 tolts_ttyio_display_.pl1 >special_ldd>install>MR12.0-1235>tolts_ttyio_display_.pl1 153 1 12/09/86 1521.3 tolts_info.incl.pl1 >special_ldd>install>MR12.0-1235>tolts_info.incl.pl1 1-299 2 09/13/84 0921.5 dial_manager_arg.incl.pl1 >ldd>include>dial_manager_arg.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. addr builtin function dcl 77 ref 90 90 cline 2 based fixed bin(17,0) level 2 dcl 68 set ref 103* 103 119 123 127 129 cmp 2 based pointer level 2 dcl 54 ref 97 colts_info based structure level 1 dcl 1-287 com_err_ 000012 constant entry external dcl 36 ref 86 dial_manager_arg based structure level 1 dcl 2-14 e_chan parameter fixed bin(71,0) dcl 140 set ref 138 146* error 000105 automatic fixed bin(35,0) dcl 49 set ref 84* 85 86* 88 132* 146* 147 event_info based structure level 1 unaligned dcl 54 event_ptr parameter pointer dcl 43 ref 12 95 97 fatal_code 1 000110 automatic fixed bin(35,0) level 2 dcl 64 set ref 88* fatal_desc 000110 automatic structure level 1 dcl 64 set ref 90 90 hcs_$wakeup 000010 constant entry external dcl 34 ref 146 io_info based structure level 1 dcl 1-155 ioa_$ioa_switch_nnl 000014 constant entry external dcl 36 ref 127 iocbp 000102 automatic pointer dcl 47 set ref 109* 111* 114* 127* iox_$control 000022 constant entry external dcl 39 ref 132 iox_$user_io 000026 external static pointer dcl 81 set ref 132* iox_$user_output 000024 external static pointer dcl 81 ref 111 114 ipc_$cutoff 000020 constant entry external dcl 38 ref 84 last_line parameter bit(1) unaligned dcl 141 ref 138 143 lines 3 based char(136) array level 2 dcl 68 set ref 127* mep 000100 automatic pointer dcl 47 set ref 97* 103 103 107 119 119 123 123 127 127 129 129 143 143 143 146* mes_buf based structure level 1 dcl 68 nlines 1 based fixed bin(17,0) level 2 dcl 68 ref 119 123 129 npnl 000106 automatic bit(1) unaligned dcl 50 set ref 118* 119* 123* 127* null builtin function dcl 77 ref 109 132 132 optflag 110 based fixed bin(17,0) level 2 dcl 1-75 ref 99 129 optrd 271 based bit(1) array level 3 dcl 1-75 ref 123 page based fixed bin(17,0) level 2 in structure "mes_buf" dcl 68 in procedure "tolts_ttyio_display_" set ref 107 143 143* 143 page 000104 automatic fixed bin(17,0) dcl 48 in procedure "tolts_ttyio_display_" set ref 107* 108 112* 112 119 119 123 123 123 pf_iocbp 114 based pointer level 2 dcl 1-75 ref 109 109 process 126 based bit(36) level 2 dcl 1-75 set ref 146* tadio 271 based structure array level 2 dcl 1-75 term_io_in_prog 133 based bit(1) level 2 dcl 1-75 set ref 98* terminate_process_ 000016 constant entry external dcl 37 ref 90 tolts_info based structure level 1 dcl 1-75 tolts_infop 000030 external static pointer dcl 1-71 ref 84 98 99 100 109 109 123 129 129 131 146 tty_ccc_event 136 based fixed bin(71,0) level 2 dcl 1-75 set ref 100* 129* tty_display_event 140 based fixed bin(71,0) level 2 dcl 1-75 set ref 131* tty_issue_event 142 based fixed bin(71,0) level 2 dcl 1-75 set ref 84* version 000110 automatic fixed bin(17,0) level 2 dcl 64 set ref 89* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. colts_info_ptr automatic pointer dcl 1-72 dial_manager_arg_version_2 internal static fixed bin(17,0) initial dcl 2-10 dial_manager_arg_version_3 internal static fixed bin(17,0) initial dcl 2-11 dial_manager_arg_version_4 internal static fixed bin(17,0) initial dcl 2-12 dmap automatic pointer dcl 1-74 firm_ld_io_type internal static fixed bin(17,0) initial dcl 1-63 io_info_ptr automatic pointer dcl 1-73 itr_io_type internal static fixed bin(17,0) initial dcl 1-60 mca_io_type internal static fixed bin(17,0) initial dcl 1-68 mdc_io_type internal static fixed bin(17,0) initial dcl 1-66 mdr_io_type internal static fixed bin(17,0) initial dcl 1-61 mhp_io_type internal static fixed bin(17,0) initial dcl 1-67 mtar_io_type internal static fixed bin(17,0) initial dcl 1-62 mtc_io_type internal static fixed bin(17,0) initial dcl 1-64 mtg_io_type internal static fixed bin(17,0) initial dcl 1-65 polt_io_type internal static fixed bin(17,0) initial dcl 1-59 rspd_io_type internal static fixed bin(17,0) initial dcl 1-69 NAMES DECLARED BY EXPLICIT CONTEXT. disaster 000065 constant label dcl 86 ref 147 nxt_line 000151 constant entry external dcl 95 tolts_ttyio_display_ 000044 constant entry external dcl 12 wakeup 000407 constant entry internal dcl 138 ref 100 129 131 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 602 634 446 612 Length 1064 446 32 214 134 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tolts_ttyio_display_ 142 external procedure is an external procedure. wakeup internal procedure shares stack frame of external procedure tolts_ttyio_display_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tolts_ttyio_display_ 000100 mep tolts_ttyio_display_ 000102 iocbp tolts_ttyio_display_ 000104 page tolts_ttyio_display_ 000105 error tolts_ttyio_display_ 000106 npnl tolts_ttyio_display_ 000110 fatal_desc tolts_ttyio_display_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ hcs_$wakeup ioa_$ioa_switch_nnl iox_$control ipc_$cutoff terminate_process_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io iox_$user_output tolts_infop LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000041 84 000051 85 000063 86 000065 88 000117 89 000121 90 000122 95 000146 97 000156 98 000163 99 000170 100 000172 101 000203 103 000204 107 000205 108 000207 109 000211 111 000220 112 000223 113 000225 114 000226 118 000231 119 000232 122 000244 123 000245 127 000261 129 000315 131 000344 132 000356 133 000406 138 000407 143 000411 146 000423 147 000443 150 000445 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved