COMPILATION LISTING OF SEGMENT tolts_ttyio_end_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/09/86 1527.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 12 /* Modified on 5/80 by R. Fakoury to check for mtar request. 13* Modified 12/80 by R. Fakoury to implement colts. 14* Modified 81/05 by R. Fakoury to correctly handle a Multics command request. 15* Modified 04/81 by R. Fakoury to allow clstal requests. 16* Modified 03/83 by Rick Fakoury to implement 'test msg' for operator/user communication. 17* Modified 08/16/83 by Rick Fakoury to allow partial config messages. 18* Modified 11/83 by Rick Fakoury to allow hyperchannel test request. 19* Modified 01/84 to allow input prior to first request. 20**/ 21 22 23 24 25 /****^ HISTORY COMMENTS: 26* 1) change(85-12-21,Fakoury), approve(86-08-21,MCR7514), 27* audit(86-11-11,Martinson), install(86-12-04,MR12.0-1235): 28* for a test nio request, 29* to allow the Colts responder (rsp) request, 30* set limit of Molts request line to 11 chars, 31* allow single character reply to a tolts query. 32* END HISTORY COMMENTS */ 33 34 35 36 37 38 /* This procedure is called (via the event call channel id tty_ccc_event) from tolts_ttyio_display_. 39* It functions to do any cleanup upon the completion of a terminal io message. If the io request was 40* for test page number 9, this is a read request folloiwing the message completion. If this is the 41* case, or if a quit was signaled during transmission of the last message, a call is made to 42* tolts_util_$query to get input from the user. The input requests are processed accordingly. */ 43 44 45 /* format: style4,ifthenstmt,ifthen,ind3,ll125,lineconind1 */ 46 tolts_ttyio_end_: proc (event_ptr); 47 48 49 /* External Entries */ 50 51 dcl hcs_$wakeup entry (bit (36) aligned, 52 fixed bin (71), ptr, fixed bin (35)); /* arg 3 is suppose to be fixed bin (71) */ 53 dcl (com_err_, ioa_) entry options (variable); 54 dcl terminate_process_ entry (char (*), ptr); 55 dcl ipc_$reconnect entry (fixed bin (71), fixed bin (35)); 56 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 57 dcl cu_$cp entry (ptr, fixed bin (21), fixed bin (35)); 58 dcl tolts_util_$opr_msg entry; 59 dcl tolts_util_$query entry (char (*), char (132) aligned, fixed bin, (32) char (28) varying, fixed bin); 60 dcl tolts_alm_util_$ascii_to_bci_ entry (char (*), bit (*)); 61 dcl tolts_pcd_ entry (char (6), char (*)); 62 dcl tolts_qttyio_ entry (char (*), fixed bin); 63 64 /* Entry Parameters */ 65 66 dcl event_ptr ptr; 67 68 /* Automatic */ 69 70 dcl com_string char (132) aligned; 71 dcl args (32) char (28) varying; 72 dcl ascii_in char (18); 73 dcl bcd_out bit (144); 74 dcl bcd_opt bit (6 * 84); 75 dcl (page, cmd_cnt, c_len, i, j, term_io_req_cnt_hld) fixed bin; 76 dcl mep ptr; 77 dcl error fixed bin (35); 78 dcl q_str char (5); 79 dcl NL char (1) int static options (constant) init (" 80 "); 81 82 /* structures and based variables */ 83 84 dcl bcd_request (4) bit (36) based (addr (bcd_out)); 85 dcl opt_str char (c_len) based (addr (com_string)); 86 87 88 dcl fnp_num (0:7) char (1) static options (constant) init 89 ("a", "b", "c", "d", "e", "f", "g", "h"); 90 dcl chn_num (0:14) char (2) static options (constant) init 91 ("77", "77", "77", "77", "77", "77", "h0", "h1", "h2", "l0", "l1", "l2", "l3", "l4", "l5"); 92 dcl cdt_fnp char (1); 93 dcl (cdt_chn, cdt_subchan) char (2); 94 95 dcl 1 event_info based (event_ptr), 96 2 causing_event fixed bin (71), 97 2 cmp ptr, 98 2 sender bit (36), 99 2 origin, 100 3 signal bit (18) unaligned, 101 3 ring bit (18) unaligned, 102 2 in_data_pointer ptr; 103 104 dcl 1 fatal_desc aligned, 105 2 version fixed bin, 106 2 fatal_code fixed bin (35); 107 108 dcl 1 mes_buf based (mep) aligned, /* template for a message queue entry */ 109 2 page fixed bin, /* test page number issuing io */ 110 2 nlines fixed bin, /* number of array elements in message */ 111 2 cline fixed bin, /* line number currently being displayed */ 112 2 lines (nlines) char (136), /* array of message lines */ 113 2 nxt_mes char (1); /* method to get to next message */ 114 115 /* Builtins */ 116 117 dcl (addr, bin, length, ltrim, null, search, substr) builtin; 118 dcl iox_$user_io ptr ext; 119 120 121 if ^tolts_info.term_io_in_prog then 122 return; /* not mine forget it */ 123 mep = event_info.cmp; /* get currnet message ptr */ 124 page = mes_buf.page; /* extract test page number */ 125 if tolts_info.optflag ^= 0 then q_str = NL || "??? "; /* if quit signaled output "??? " */ 126 else q_str = ""; 127 if page = 9 | page = 19 | tolts_info.optflag ^= 0 then do; /* exec read or quit signaled */ 128 tolts_info.optflag = 0; /* reset option request flag */ 129 requery: 130 call tolts_util_$query (q_str, com_string, c_len, args, cmd_cnt); /* get user input */ 131 if page = 19 then do; /* is it local Multics question? */ 132 tolts_info.mult_ans = substr (com_string, 1, 28); /* yes copy answer */ 133 go to ck_first; 134 end; 135 if c_len <= 2 then do; /* if user just typed nl */ 136 ck_first: 137 if ^tolts_info.first_request_done & page ^= 19 then do; /* and initial read not complete */ 138 q_str = NL || "??? "; /* set up questions for requery */ 139 go to requery; /* go ask again */ 140 end; 141 call reconnect; /* enable term io again */ 142 call wakeup (tolts_info.wait_list.wait_event_id (1), null); /* wake up dispatcher */ 143 return; 144 end; 145 else if args (1) = "reprint" then do; /* user wants to see last message */ 146 if page = 9 then /* it has already been printed */ 147 call ioa_ ("^as: Last message was complete and is not available for reprinting", 148 tolts_info.exec); 149 else do; 150 mes_buf.cline = 0; /* make tolts_ttyio_display_ start at beginning of message */ 151 call wakeup (tolts_info.tty_display_event, mep); /* signal restart of message */ 152 if tolts_info.first_request_done then /* if first request complete */ 153 call tolts_qttyio_ ("??? ", 9); /* queue up another read, but don't reconnect issue channel */ 154 return; 155 end; 156 end; 157 else if args (1) = "msg" then /* user wants to communicate with the operator */ 158 call tolts_util_$opr_msg; 159 else if args (1) = "E" | args (1) = "e" | substr (args (1), 1, 2) = ".." then do; /* user wants to execute Multics command */ 160 com_string = ltrim (substr (com_string, 2)); 161 if substr (args (1), 1, 2) = ".." then com_string = substr (com_string, 2); 162 term_io_req_cnt_hld = tolts_info.term_io_req_cnt; 163 tolts_info.term_io_req_cnt = 0; 164 call cu_$cp (addr (com_string), length (com_string), error); /* execute Multics command */ 165 tolts_info.term_io_req_cnt = term_io_req_cnt_hld; 166 end; 167 168 /* check for improper input */ 169 170 else if args (1) ^= "test" then /* input must be "test piccdd" etc */ 171 call ioa_ ("^as: (^a) invalid input;^/use ""test xx--""", 172 tolts_info.exec, com_string); 173 else if args (2) = "msg" then /* user wants to communicate with the operator */ 174 call tolts_util_$opr_msg; 175 else if args (2) = "pcd" then do; /* user wants to get config */ 176 if cmd_cnt = 3 then call tolts_pcd_ (((exec) || " "), (args (3))); 177 else call tolts_pcd_ (((exec) || " "), ("")); 178 call reconnect; /* reconnect ipc channel and give pcd a chance to come out */ 179 call wakeup (tolts_info.wait_list.wait_event_id (1), null); /* wakeup the dispatcher */ 180 return; 181 end; 182 else if tolts_info.exec = "polt" then /* if running polts */ 183 if search (args (2), "pwl") ^= 1 | length (args (2)) > 11 184 | substr (args (2), 1, 1) ^= "w" & length (args (2)) < 2 then /* improper input? */ 185 186 call ioa_ ("^as: (^a) invalid input, use:^/^a, ^[^a,^;^s^] ^a, ^a, or ^a", 187 188 tolts_info.exec, com_string, """test piccddooooo""", (tolts_info.first_request_done), 189 """test pxiccddoooo""", """test w""", """test lstal""", """test pcd"""); 190 else call test_request; /* enter test_request */ 191 else if tolts_info.exec = "molt" then /* if running molts */ 192 if search (args (2), "lmnw") ^= 1 /* if one of these errors */ 193 | length (args (2)) > 11 194 | substr (args (2), 1, 1) ^= "w" & length (args (2)) < 2 195 then call ioa_ ("^as: (^a) invalid input, use:^/^a, ^a, ^a,^/^a, ^a, ^a,^/^a, ^a, ^a,^/^a, ^a, ^a,^/^a, ^a, ^a,^/^a, ^a, or ^a", 196 tolts_info.exec, com_string, 197 """test mdciccooooo""", """test mdriccddooooo""", """test mhpiccooooo""", 198 """test mmticcddoooo""", """test mpciccooooo""", """test mpticcddooooo""", 199 """test mtgiccddoooo""", """test mxdciccoooo""", """test mxdriccddoooo""", 200 """test mxhpiccoooo""", """test mxmticcddoooo""", """test mxpciccoooo""", 201 """test mxpticcddoooo""", """test mxtgiccddoooo""", """test nioi""", 202 """test w""", """test lstal""", """test pcd"""); 203 else if length (args (2)) > 2 then do; 204 if (substr (args (2), 1, 3) = "mpc" | 205 substr (args (2), 1, 3) = "mdr") & 206 tolts_info.first_request_done then /* if user attempting to enter more than one page */ 207 call ioa_ ("^as: (^a) only one mpc (itr) or mdr test request may be active at one time", 208 tolts_info.exec, com_string); 209 else call test_request; /* enter test request */ 210 end; 211 212 else call test_request; /* enter test request */ 213 214 215 else if tolts_info.exec = "colt" then do; /* if running colts */ 216 if search (args (2), "cwl") ^= 1 | 217 length (args (2)) > 11 218 | substr (args (2), 1, 1) ^= "w" & length (args (2)) < 2 then do; 219 call ioa_ ("^as: (^a) invalid input, use: ^/^a, ^a, ^[^a, ^a,^;^2s^] ^a, ^a, or ^a", 220 tolts_info.exec, com_string, """test Cnccssooooo""", """test Cfrspd""", 221 (tolts_info.first_request_done), """test Cxccssoooo""", """test Cxfrspd""", 222 """test w""", """test lstal""", """test pcd"""); 223 go to ck_first; 224 end; 225 if search (args (2), "wl") ^= 1 226 & search (args (2), "loew") ^= 2 then do; 227 228 if search (args (2), "rsp") ^= 0 then do; 229 do j = lbound (tolts_info.pages, 1) to hbound (tolts_info.pages, 1); 230 if ^pages (j).in_use then do; 231 io_info_ptr = addr (pages (j)); 232 io_info.test_req.tt = "71"b3; 233 io_info.fnp_num = (bin (substr (args (2), 2, 1))); 234 j = 8; 235 end; 236 end; 237 end; 238 else do; 239 cdt_fnp = fnp_num (bin (substr (args (2), 2, 1))); 240 cdt_chn = chn_num (bin (substr (args (2), 3, 2))); 241 cdt_subchan = substr (args (2), 5, 2); 242 fnp (bin (substr (args (2), 2, 1))).exec_chan = cdt_fnp || "." || "c000"; 243 do j = 1 to 8; 244 if substr (fnp (bin (substr (args (2), 2, 1))).cdt_name (j), 1, 5) = "empty" then do; 245 fnp (bin (substr (args (2), 2, 1))).cdt_name (j) = cdt_fnp || "." || cdt_chn || cdt_subchan; 246 j = 8; 247 end; 248 end; 249 end; 250 end; 251 call test_request; 252 if substr (args (2), 2, 3) = "rsp" then io_info.test_req.fnccss = substr (bcd_out, 7, 18); 253 end; 254 255 go to ck_first; /* go reconnect */ 256 end; 257 if page = 0 | page = 10 | tolts_info.exec_term_io_wait then /* if exec io or waiting to abort */ 258 go to ck_first; /* go check if first request complete */ 259 if tolts_info.tadio (page).optrd then do; /* test page looking for options */ 260 tolts_info.tadio (page).optrd = "0"b; /* reset options flag */ 261 call tolts_util_$query ("", com_string, c_len, args, cmd_cnt); /* get user input */ 262 if c_len > 0 then do; /* if something entered.. */ 263 call tolts_alm_util_$ascii_to_bci_ (opt_str, bcd_opt); /* convert to bcd */ 264 substr (tolts_info.tadio (page).option, 1, c_len * 6) = substr (bcd_opt, 1, c_len * 6); /* move to buffer */ 265 end; 266 end; 267 else tolts_info.tadio (page).inuse = "0"b; /* release this tadio queue entry */ 268 i, tolts_info.exec_dta_cnt = tolts_info.exec_dta_cnt + 1; /* increment count */ 269 tolts_info.exec_dta (i).word (1) = tolts_info.tadio (page).return_word (1); 270 tolts_info.exec_dta (i).word (2) = tolts_info.tadio (page).return_word (2); 271 tolts_info.exec_dta (i).word (3) = tolts_info.tadio (page).return_word (3); 272 call reconnect; /* reconnect ipc channel */ 273 call wakeup (tolts_info.wait_list.wait_event_id (1), null); /* wake up dispatcher */ 274 return; /* thats all folks */ 275 276 277 /* reconnect - internal procedure to reconnect ipc channel */ 278 279 reconnect: proc; 280 281 /* re enable io issuing */ 282 283 tolts_info.term_io_in_prog = "0"b; 284 tolts_info.term_io_req_cnt = tolts_info.term_io_req_cnt - 1; 285 call ipc_$reconnect (tolts_info.tty_issue_event, error); 286 if error ^= 0 then do; /* term process if error */ 287 call com_err_ (error, "tolts_ttyio_end_", "fatal error, terminating process"); 288 fatal_desc.version = 0; 289 fatal_desc.fatal_code = error; 290 call terminate_process_ ("fatal_error", addr (fatal_desc)); 291 end; 292 call iox_$control (iox_$user_io, "start", null, error); /* allow cleanup of any blocks */ 293 end reconnect; 294 295 /* wakeup - internal procedure to issue wakeup to ipc wait channel */ 296 297 wakeup: proc (e_chan, wakeup_ptr); 298 299 dcl e_chan fixed bin (71); 300 dcl wakeup_ptr ptr; 301 302 /* issue wakeup to dispatcher */ 303 304 call hcs_$wakeup (tolts_info.process, e_chan, wakeup_ptr, error); 305 if error ^= 0 then do; /* term process if error */ 306 call com_err_ (error, "tolts_ttyio_end_", "fatal error, terminating process"); 307 fatal_desc.version = 0; 308 fatal_desc.fatal_code = error; 309 call terminate_process_ ("fatal_error", addr (fatal_desc)); 310 end; 311 end wakeup; 312 313 /* test_request - internal procedure to convert test request data and queue it up */ 314 315 test_request: proc; 316 317 ascii_in = args (2); /* copy data to convert */ 318 substr (ascii_in, 12, 7) = "10000t/"; /* use coded logical terminal 1 and "t/" tty code */ 319 call tolts_alm_util_$ascii_to_bci_ (ascii_in, bcd_out); /* convert to bcd */ 320 i, tolts_info.exec_dta_cnt = tolts_info.exec_dta_cnt + 1; /* increment count */ 321 tolts_info.exec_dta (i).word (*) = bcd_request (*); /* move the data to the queue */ 322 tolts_info.first_request_done = "1"b; /* set flag for dispatcher */ 323 324 end test_request; 325 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 */ 326 327 328 end tolts_ttyio_end_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/09/86 1521.0 tolts_ttyio_end_.pl1 >special_ldd>install>MR12.0-1235>tolts_ttyio_end_.pl1 326 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. NL constant char(1) initial unaligned dcl 79 ref 125 138 addr builtin function dcl 117 ref 164 164 231 263 290 290 309 309 321 args 000141 automatic varying char(28) array dcl 71 set ref 129* 145 157 159 159 159 161 170 173 175 176 182 182 182 182 191 191 191 191 203 204 204 216 216 216 216 225 225 228 233 239 240 241 242 244 245 252 261* 317 ascii_in 000541 automatic char(18) unaligned dcl 72 set ref 317* 318* 319* bcd_opt 000552 automatic bit(504) unaligned dcl 74 set ref 263* 264 bcd_out 000546 automatic bit(144) unaligned dcl 73 set ref 252 319* 321 bcd_request based bit(36) array unaligned dcl 84 ref 321 bin builtin function dcl 117 ref 233 239 240 242 244 245 c_len 000572 automatic fixed bin(17,0) dcl 75 set ref 129* 135 261* 262 263 263 264 264 cdt_chn 000605 automatic char(2) unaligned dcl 93 set ref 240* 245 cdt_fnp 000604 automatic char(1) unaligned dcl 92 set ref 239* 242 245 cdt_name 572 based char(32) initial array level 3 dcl 1-75 set ref 244 245* cdt_subchan 000606 automatic char(2) unaligned dcl 93 set ref 241* 245 chn_num 000000 constant char(2) initial array unaligned dcl 90 ref 240 cline 2 based fixed bin(17,0) level 2 dcl 108 set ref 150* cmd_cnt 000571 automatic fixed bin(17,0) dcl 75 set ref 129* 176 261* cmp 2 based pointer level 2 dcl 95 ref 123 colts_info based structure level 1 dcl 1-287 com_err_ 000012 constant entry external dcl 53 ref 287 306 com_string 000100 automatic char(132) dcl 70 set ref 129* 132 160* 160 161* 161 164 164 164 164 170* 182* 191* 204* 219* 261* 263 cu_$cp 000024 constant entry external dcl 57 ref 164 dial_manager_arg based structure level 1 dcl 2-14 e_chan parameter fixed bin(71,0) dcl 299 set ref 297 304* error 000600 automatic fixed bin(35,0) dcl 77 set ref 164* 285* 286 287* 289 292* 304* 305 306* 308 event_info based structure level 1 unaligned dcl 95 event_ptr parameter pointer dcl 66 ref 46 123 exec 6 based char(4) level 2 dcl 1-75 set ref 146* 170* 176 177 182 182* 191 191* 204* 215 219* exec_chan 555 based char(32) array level 3 dcl 1-75 set ref 242* exec_dta 145 based structure array level 2 dcl 1-75 exec_dta_cnt 7 based fixed bin(17,0) level 2 dcl 1-75 set ref 268 268* 320 320* exec_term_io_wait 11 based bit(1) level 2 dcl 1-75 ref 257 fatal_code 1 000610 automatic fixed bin(35,0) level 2 dcl 104 set ref 289* 308* fatal_desc 000610 automatic structure level 1 dcl 104 set ref 290 290 309 309 first_request_done 17 based bit(1) level 2 dcl 1-75 set ref 136 152 182 204 219 322* fnccss 2165 based bit(18) level 3 packed unaligned dcl 1-155 set ref 252* fnp 554 based structure array level 2 dcl 1-75 fnp_num 000010 constant char(1) initial array unaligned dcl 88 in procedure "tolts_ttyio_end_" ref 239 fnp_num 672 based fixed bin(17,0) level 2 in structure "io_info" dcl 1-155 in procedure "tolts_ttyio_end_" set ref 233* hcs_$wakeup 000010 constant entry external dcl 51 ref 304 i 000573 automatic fixed bin(17,0) dcl 75 set ref 268* 269 270 271 320* 321 in_use 32001 based bit(1) array level 3 dcl 1-75 set ref 230 inuse 272 based bit(1) array level 3 dcl 1-75 set ref 267* io_info based structure level 1 dcl 1-155 io_info_ptr 000612 automatic pointer dcl 1-73 set ref 231* 232 233 252 ioa_ 000014 constant entry external dcl 53 ref 146 170 182 191 204 219 iox_$control 000022 constant entry external dcl 56 ref 292 iox_$user_io 000040 external static pointer dcl 118 set ref 292* ipc_$reconnect 000020 constant entry external dcl 55 ref 285 j 000574 automatic fixed bin(17,0) dcl 75 set ref 229* 230 231 234* 243* 244 245 246* length builtin function dcl 117 ref 164 164 182 182 191 191 203 216 216 ltrim builtin function dcl 117 ref 160 mep 000576 automatic pointer dcl 76 set ref 123* 124 150 151* mes_buf based structure level 1 dcl 108 mess_buf 3334 based structure level 2 dcl 1-75 mult_ans 25340 based varying char(28) level 3 dcl 1-75 set ref 132* null builtin function dcl 117 ref 142 142 179 179 273 273 292 292 opt_str based char unaligned dcl 85 set ref 263* optflag 110 based fixed bin(17,0) level 2 dcl 1-75 set ref 125 127 128* option 276 based bit(504) array level 3 dcl 1-75 set ref 264* optrd 271 based bit(1) array level 3 dcl 1-75 set ref 259 260* page 000570 automatic fixed bin(17,0) dcl 75 in procedure "tolts_ttyio_end_" set ref 124* 127 127 131 136 146 257 257 259 260 264 267 269 270 271 page based fixed bin(17,0) level 2 in structure "mes_buf" dcl 108 in procedure "tolts_ttyio_end_" ref 124 pages 31102 based structure array level 2 dcl 1-75 set ref 229 229 231 process 126 based bit(36) level 2 dcl 1-75 set ref 304* q_str 000602 automatic char(5) unaligned dcl 78 set ref 125* 126* 129* 138* return_word 273 based bit(36) array level 3 dcl 1-75 ref 269 270 271 search builtin function dcl 117 ref 182 191 216 225 225 228 substr builtin function dcl 117 set ref 132 159 160 161 161 182 191 204 204 216 233 239 240 241 242 244 244 245 252 252 264* 264 318* 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 121 283* term_io_req_cnt 134 based fixed bin(17,0) level 2 dcl 1-75 set ref 162 163* 165* 284* 284 term_io_req_cnt_hld 000575 automatic fixed bin(17,0) dcl 75 set ref 162* 165 terminate_process_ 000016 constant entry external dcl 54 ref 290 309 test_req 2165 based structure level 2 dcl 1-155 tolts_alm_util_$ascii_to_bci_ 000032 constant entry external dcl 60 ref 263 319 tolts_info based structure level 1 dcl 1-75 tolts_infop 000042 external static pointer dcl 1-71 ref 121 125 127 128 132 136 142 146 151 152 162 163 165 170 176 177 179 182 182 182 191 191 204 204 215 219 219 229 229 230 231 242 244 245 257 259 260 264 267 268 268 269 269 270 270 271 271 273 283 284 284 285 304 320 320 321 322 tolts_pcd_ 000034 constant entry external dcl 61 ref 176 177 tolts_qttyio_ 000036 constant entry external dcl 62 ref 152 tolts_util_$opr_msg 000026 constant entry external dcl 58 ref 157 173 tolts_util_$query 000030 constant entry external dcl 59 ref 129 261 tt 2165(18) based bit(6) level 3 packed unaligned dcl 1-155 set ref 232* tty_display_event 140 based fixed bin(71,0) level 2 dcl 1-75 set ref 151* tty_issue_event 142 based fixed bin(71,0) level 2 dcl 1-75 set ref 285* version 000610 automatic fixed bin(17,0) level 2 dcl 104 set ref 288* 307* wait_event_id 524 based fixed bin(71,0) array level 3 dcl 1-75 set ref 142* 179* 273* wait_list 522 based structure level 2 dcl 1-75 wakeup_ptr parameter pointer dcl 300 set ref 297 304* word 145 based bit(36) array level 3 dcl 1-75 set ref 269* 270* 271* 321* 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 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. ck_first 000577 constant label dcl 136 ref 133 223 255 257 reconnect 002507 constant entry internal dcl 279 ref 141 178 272 requery 000530 constant label dcl 129 ref 139 test_request 002742 constant entry internal dcl 315 ref 190 209 212 251 tolts_ttyio_end_ 000465 constant entry external dcl 46 wakeup 002637 constant entry internal dcl 297 ref 142 151 179 273 NAMES DECLARED BY CONTEXT OR IMPLICATION. hbound builtin function ref 229 lbound builtin function ref 229 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4620 4664 4432 4630 Length 5142 4432 44 242 166 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tolts_ttyio_end_ 924 external procedure is an external procedure. reconnect internal procedure shares stack frame of external procedure tolts_ttyio_end_. wakeup internal procedure shares stack frame of external procedure tolts_ttyio_end_. test_request internal procedure shares stack frame of external procedure tolts_ttyio_end_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tolts_ttyio_end_ 000100 com_string tolts_ttyio_end_ 000141 args tolts_ttyio_end_ 000541 ascii_in tolts_ttyio_end_ 000546 bcd_out tolts_ttyio_end_ 000552 bcd_opt tolts_ttyio_end_ 000570 page tolts_ttyio_end_ 000571 cmd_cnt tolts_ttyio_end_ 000572 c_len tolts_ttyio_end_ 000573 i tolts_ttyio_end_ 000574 j tolts_ttyio_end_ 000575 term_io_req_cnt_hld tolts_ttyio_end_ 000576 mep tolts_ttyio_end_ 000600 error tolts_ttyio_end_ 000602 q_str tolts_ttyio_end_ 000604 cdt_fnp tolts_ttyio_end_ 000605 cdt_chn tolts_ttyio_end_ 000606 cdt_subchan tolts_ttyio_end_ 000610 fatal_desc tolts_ttyio_end_ 000612 io_info_ptr tolts_ttyio_end_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac mpfx2 shorten_stack ext_entry any_to_any_truncate_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$cp hcs_$wakeup ioa_ iox_$control ipc_$reconnect terminate_process_ tolts_alm_util_$ascii_to_bci_ tolts_pcd_ tolts_qttyio_ tolts_util_$opr_msg tolts_util_$query THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io tolts_infop LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 46 000462 121 000472 123 000476 124 000503 125 000505 126 000515 127 000520 128 000527 129 000530 131 000560 132 000563 133 000573 135 000574 136 000577 138 000607 139 000615 141 000616 142 000617 143 000634 145 000635 146 000642 150 000670 151 000672 152 000705 154 000732 156 000733 157 000734 159 000747 160 000766 161 001003 162 001011 163 001016 164 001017 165 001035 166 001042 170 001043 173 001077 175 001112 176 001117 177 001155 178 001200 179 001201 180 001216 182 001217 190 001354 191 001356 203 001646 204 001651 209 001706 210 001707 212 001710 215 001712 216 001714 219 001742 223 002063 225 002064 228 002114 229 002127 230 002135 231 002143 232 002145 233 002147 234 002164 236 002166 237 002170 239 002171 240 002210 241 002231 242 002234 243 002260 244 002265 245 002316 246 002333 248 002335 251 002337 252 002340 255 002350 257 002351 259 002357 260 002363 261 002364 262 002413 263 002415 264 002434 266 002447 267 002450 268 002451 269 002460 270 002464 271 002466 272 002470 273 002471 274 002506 279 002507 283 002510 284 002514 285 002516 286 002526 287 002530 288 002560 289 002561 290 002563 292 002606 293 002636 297 002637 304 002641 305 002661 306 002663 307 002713 308 002714 309 002716 311 002741 315 002742 317 002743 318 002747 319 002752 320 002767 321 002776 322 003020 324 003024 ----------------------------------------------------------- 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