COMPILATION LISTING OF SEGMENT ws_tools_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 01/24/89 0850.0 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1987 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 10 ws_tools_: 11 proc (); 12 13 14 /* PROGRAM FUNCTION 15* 16*This is a collection of routines which need to be accessed from a number of 17*external entry points for the MOWSE protocol handling. 18**/ 19 20 21 /* NOTES 22**/ 23 24 /****^ HISTORY COMMENTS: 25* 1) change(87-05-28,Flegel), approve(87-06-23,MCR7649), 26* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 27* Created. 28* END HISTORY COMMENTS */ 29 30 /* INPUT PARAMETERS */ 31 dcl p_buffer_size fixed bin (21) parameter; /* Size of buffer */ 32 dcl p_buffer_ptr ptr parameter; /* Buffer to fill */ 33 dcl p_channel fixed bin; /* Channel ID */ 34 dcl p_mio_data_ptr ptr parameter; /* mowse_io_ data */ 35 dcl p_value fixed bin parameter; /* Value to be shifted */ 36 dcl p_shift fixed bin parameter; /* Value to be shifted */ 37 dcl p_packet_length fixed bin (21) parameter; /* Packet length */ 38 dcl p_chr char (1) parameter; /* Character to be CRCed */ 39 dcl p_seed fixed bin parameter; /* Value 0 to 63 wich is the seed for the calculation */ 40 41 /* OUTPUT PARAMETERS */ 42 43 /* MISC VARIABLES */ 44 dcl data_ptr ptr; 45 dcl rdatl fixed bin (21); /* Extracted data length */ 46 dcl space fixed bin (21); /* Space remaining in user_input queue */ 47 dcl buffer_size fixed bin (21); /* Local copy of buffer size */ 48 dcl buffer_ptr ptr; /* Local copy of buffer pointer */ 49 dcl mio_data_ptr ptr; /* mowse_io_ data pointer */ 50 dcl channel fixed bin; /* Channel ID */ 51 dcl i fixed bin; 52 dcl q fixed bin; /* Next quotient of division */ 53 dcl b fixed bin; /* Bit counter */ 54 dcl schr fixed bin; /* rank of crc shifted right 'b' times */ 55 dcl crc fixed bin; /* Accumulator */ 56 57 /* STRUCTURES */ 58 dcl buffer char (buffer_size) based (buffer_ptr); 59 dcl 01 mio_data like mowse_io_data based (mio_data_ptr); 60 61 /* SYSTEM CALLS */ 62 63 /* SYSTEM CALL SUPPORT */ 64 65 /* EXTERNAL CALLS */ 66 dcl ws_debug_$packet entry (char (*), ptr, fixed bin (21), ptr); 67 68 /* EXTERNAL CALL SUPPORT */ 69 70 /* BUILTINS */ 71 dcl byte builtin; 72 dcl null builtin; 73 dcl length builtin; 74 dcl hbound builtin; 75 dcl bool builtin; 76 dcl unspec builtin; 77 dcl divide builtin; 78 dcl mod builtin; 79 dcl rank builtin; 80 81 /* CONDITIONS */ 82 83 /* CONSTANTS */ 84 dcl False bit (1) int static options (constant) init ("0"b); 85 dcl Exp2 (0:16) fixed bin static options (constant) 86 init (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 87 2048, 4096, 8192, 1634, 3276, 65536); 88 89 /* */ 90 91 /* INITIALIZATION */ 92 93 /* MAIN */ 94 95 return; 96 97 /* */ 98 99 100 101 /* INTERNAL ENTRIES */ 102 103 104 /* *** Entry: ars - Internal entry for ws_tools_ *** */ 105 106 ars: 107 entry (p_value, p_shift) returns (fixed bin); 108 109 110 /* PROCEDURE FUNCTION 111* 112*Arithmetic shift right. 113**/ 114 115 /* NOTES 116**/ 117 118 return (divide (p_value, Exp2 (p_shift), 17, 0)); 119 120 /* */ 121 122 /* *** Entry: check_length - Internal entry for ws_tools_ *** */ 123 124 check_length: 125 entry (p_packet_length) returns (char (1)); 126 127 128 /* ENTRY FUNCTION 129* 130*Calculate the check length character. 131**/ 132 133 /* RETURNS: 134* 135*chklen = (p_length & 077) + 32 136**/ 137 138 /* NOTES 139**/ 140 141 return (byte (mod (p_packet_length, 64) + 32)); 142 143 /* */ 144 145 /* *** Entry: crc_char - Internal entry for ws_tools_ *** */ 146 147 crc_char: 148 entry (p_chr, p_seed) returns (fixed bin); 149 150 151 /* ENTRY FUNCTION 152* 153*Calculate a 6-bit CRC for a character based on a generator polynomial of: 154* x**6 + x**5 + x**2 + 1. 155**/ 156 157 /* RETURNS 158* 159*A value in the range 0 through 63 which is the desired CRC. 160**/ 161 162 /* NOTES 163* 164*The result of this function is the remainder produced by synthetic division 165*modulo 2 of a 7-bit integer (whose bits are the coefficients of the generator 166*polynomial) into a 14-bit integer (whose top 8 bits are those of the 167*character, in reverse order, and whose low 6 bits are the low 6 bits of the 168*seed). 169* 170*The CRC for a string of characters is calculated by calling crc_chr' once for 171*each character in the block, from first character to last. The seed for the 172*first character is 0 and the seed for each remaining character is the CRC 173*produced for the previous character. The CRC produced for the last character 174*is the CRC for the whole string. 175**/ 176 177 crc = p_seed; 178 schr = rank (p_chr); 179 180 /* For each bit in the character 181* - q = xor of low bits of crc and schr */ 182 183 do b = 0 to 7; 184 q = mod (crc + schr, 2); 185 crc = divide (crc, 2, 17); 186 if q ^= 0 then 187 unspec (crc) = 188 bool (unspec (crc), unspec (REVPOLY), XOR); 189 schr = divide (schr, 2, 17); 190 end; 191 192 return (crc); 193 194 /* */ 195 196 /* *** Entry: getdat - Internal entry for ws_tools_ *** */ 197 198 getdat: 199 entry (p_mio_data_ptr, p_channel, p_buffer_ptr, p_buffer_size) 200 returns (fixed bin (21)); 201 202 /* ENTRY FUNCTION 203* 204*Retreive a packet of data from the packet queue on the specified channel. 205*Update all necessary control info related to the extraction. 206**/ 207 208 /* RETURNS 209* 210*The amount of data extracted. 211**/ 212 213 /* NOTES 214**/ 215 216 mio_data_ptr = p_mio_data_ptr; 217 buffer_ptr = p_buffer_ptr; 218 buffer_size = p_buffer_size; 219 220 /* If the received data queue is empty, there is nothing to do. */ 221 222 if mio_data.r.psn (p_channel) = mio_data.s.nasn (p_channel) then 223 return (0); 224 225 /* If Disconnect is active, return 0 */ 226 227 if mio_data.switches.disconnect_active then 228 return (0); 229 230 /* If the foreground channel, then make sure there is enough space in the 231* user_input queue before getting it out */ 232 233 if p_channel = FG then do; 234 235 /* Calculate the amount of space in the input queue */ 236 237 if mio_data.user_input.in >= mio_data.user_input.out then 238 space = hbound (mio_data.user_input.queue, 1) - 239 mio_data.user_input.in 240 + mio_data.user_input.out - 1; 241 else 242 space = mio_data.user_input.out 243 - mio_data.user_input.out - 1; 244 245 /* If not enough space then return 0 for length */ 246 247 if space < length (mio_data.r.dat (FG, mio_data.s.nasn (FG))) 248 then 249 return (0); 250 end; 251 252 /* Extract the data in the head element of the queue. */ 253 254 rdatl = length (mio_data.r.dat (p_channel, mio_data.s.nasn (p_channel))); 255 buffer = mio_data.r.dat (p_channel, mio_data.s.nasn (p_channel)); 256 mio_data.s.nasn (p_channel) = 257 mod (mio_data.s.nasn (p_channel) + 1, SeqCnt); 258 259 return (rdatl); 260 261 /* */ 262 263 /* *** Entry: getldat - Internal entry for ws_tools_ *** */ 264 265 getldat: 266 entry (p_mio_data_ptr, p_channel, p_buffer_ptr) 267 returns (fixed bin (21)); 268 269 270 /* ENTRY FUNCTION 271* 272*Get any available received data from the local queue. 273**/ 274 275 /* NOTES 276* 277*Data is stored in Packet size packet size chunks to emulate what happens in 278*regards to remote packets, so they are extracted the same. 279**/ 280 281 mio_data_ptr = p_mio_data_ptr; 282 283 /* If the recevied data queue is empty there is nothing to do */ 284 285 if mio_data.l_dat (p_channel).out_ptr = null then 286 return (0); 287 288 /* If Disconnect is active, return 0 */ 289 290 if mio_data.disconnect_active then 291 return (0); 292 293 /* Extract the data from the head element of the queue */ 294 295 p_buffer_ptr = mio_data.l_dat (p_channel).out_ptr -> local_data_node.data_ptr; 296 rdatl = mio_data.l_dat (p_channel).out_ptr -> local_data_node.data_len; 297 298 /* Free the node from the queue */ 299 300 data_ptr = mio_data.l_dat (p_channel).out_ptr; 301 if data_ptr -> local_data_node.next = null then do; 302 mio_data.l_dat (p_channel).in_ptr = null; 303 mio_data.l_dat (p_channel).out_ptr = null; 304 end; 305 else 306 mio_data.l_dat (p_channel).out_ptr = 307 data_ptr -> local_data_node.next; 308 309 free data_ptr -> local_data_node; 310 data_ptr = null; 311 312 if mio_data.debug_iocb_ptr ^= null then 313 call ws_debug_$packet ("R:L:DAT-->", p_buffer_ptr, rdatl, 314 mio_data.debug_iocb_ptr); 315 316 return (rdatl); 317 318 /* */ 319 320 /* *** Entry: reset_data - Internal entry for ws_tools_ *** */ 321 322 reset_data: 323 entry (p_mio_data_ptr); 324 325 326 /* ENTRY FUNCTION 327* 328*To initialize the flow control related variables of the protocol. 329**/ 330 331 /* NOTES 332**/ 333 334 mio_data_ptr = p_mio_data_ptr; 335 336 /* Clear the receive packet queue */ 337 338 do i = 0 to RQS - 1; 339 mio_data.r.pkt (i) = ""; 340 end; 341 mio_data.r.pktin = 0; 342 mio_data.r.pktout = 0; 343 344 /* Clear the pending flags */ 345 346 mio_data.ds_pending (*) = False; 347 348 /* For each message channel */ 349 350 do channel = 0 to ChnCnt - 1; 351 352 /* Clear all receiving windows */ 353 354 do i = 0 to SeqCnt - 1; 355 mio_data.r.dat (channel, i) = ""; 356 end; 357 mio_data.r.ignoring (channel) = False; 358 mio_data.r.asn (channel) = 0; 359 mio_data.r.psn (channel) = 0; 360 361 /* : - Clear all sending channels */ 362 363 do i = 0 to SeqCnt - 1; 364 mio_data.s.dat (channel, i) = ""; 365 end; 366 mio_data.s.lasn (channel) = 0; 367 mio_data.s.nasn (channel) = 0; 368 mio_data.s.psn (channel) = 0; 369 end; 370 371 return; 372 373 /* */ 374 375 376 377 /* INTERNAL PROCEDURES */ 378 379 /* */ 380 381 382 383 /* INCLUDE FILES */ 1 1 /* BEGIN INCLUDE FILE: mowse_io_structures.incl.pl1 * * * * * * * * * * * * */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(86-11-11,Flegel), approve(87-07-15,MCR7580), 1 6* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 1 7* Created from portion of mowse_io_data.incl.pl1 1 8* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 1 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 1 10* Approved. 1 11* END HISTORY COMMENTS */ 1 12 1 13 /* : Structure for local data linked list queue */ 1 14 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 1 15 dcl 01 local_data_node based, 1 16 02 data_ptr ptr, /* Local data */ 1 17 02 data_len fixed bin (21), /* Amount of data */ 1 18 02 next ptr; /* Next in line */ 1 19 1 20 /* : Structure for link list of sleeping applications */ 1 21 dcl 01 mowse_io_sleep_node based, 1 22 02 major fixed bin, /* Capability index of sleeper */ 1 23 02 mbz bit (36), 1 24 02 when fixed bin (71), /* Multics wakeup time */ 1 25 02 next ptr, /* Next node in list */ 1 26 02 last ptr; /* Last node in list */ 1 27 1 28 /* END INCLUDE FILE: mowse_io_structures.incl.pl1 * * * * * * * * * * * * */ 384 2 1 /* BEGIN INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-09-17,Flegel), approve(86-12-16,MCR7580), 2 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 6* Created. 2 7* 2) change(86-10-03,Flegel), approve(86-12-16,MCR7580), 2 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 9* Combined mowse_minor_caps.incl.pl1 and 2 10* mowse.incl.pl1 so that programmer only needs include mowse.incl.pl1 2 11* 3) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 2 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 13* Approved. 2 14* 4) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 2 15* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 2 16* Changes to support async call channels. 2 17* END HISTORY COMMENTS */ 2 18 2 19 /* Name of MOWSE temp seg for data */ 2 20 2 21 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 2 22 dcl temp_seg_name char (6) init ("MOWSE_"); 2 23 2 24 /* Version number */ 2 25 2 26 dcl MOWSE_VERSION_ char (8) int static options (constant) init ("version1"); 2 27 2 28 /* System identification */ 2 29 2 30 dcl LOCAL_SYSTEM fixed bin int static options (constant) init (32); 2 31 dcl REMOTE_SYSTEM fixed bin int static options (constant) init (33); 2 32 2 33 /* Status request return codes */ 2 34 2 35 dcl STATUS_SUCCESS fixed bin (8) int static options (constant) 2 36 init (32); 2 37 dcl STATUS_FAILED fixed bin (8) int static options (constant) 2 38 init (33); 2 39 2 40 /* Input/output capability buffer size limits */ 2 41 2 42 dcl MINIMUM_BUFFER_SIZE fixed bin int static options (constant) init (128); 2 43 dcl MAXIMUM_BUFFER_SIZE fixed bin int static options (constant) init (65536); 2 44 dcl MAXIMUM_BG_SIZE fixed bin int static options (constant) init (512); 2 45 2 46 /* Packet size (communication) constants */ 2 47 2 48 dcl PACKET_SIZE fixed bin int static options (constant) init (124); 2 49 dcl MAXIMUM_PACKET_SIZE fixed bin int static options (constant) init (118); 2 50 2 51 /* Query message constants */ 2 52 2 53 dcl SEND_QUERY fixed bin int static options (constant) init (128); 2 54 dcl ACCEPT fixed bin int static options (constant) init (32); 2 55 dcl REJECT fixed bin int static options (constant) init (33); 2 56 2 57 /* Trace information constants */ 2 58 2 59 dcl RECEIVE fixed bin int static options (constant) init (1); 2 60 dcl SEND fixed bin int static options (constant) init (0); 2 61 2 62 /* Limits on dedicated minor capabilities */ 2 63 2 64 dcl MINIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (32); 2 65 dcl MAXIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (63); 2 66 dcl MINIMUM_USER_MINOR fixed bin int static options (constant) init (64); 2 67 dcl MAXIMUM_USER_MINOR fixed bin int static options (constant) init (127); 2 68 2 69 /* Dedicated Minor Capabilities */ 2 70 2 71 dcl LAST fixed bin int static options (constant) init (0); 2 72 dcl EXECUTE_COMMAND_REPLY fixed bin int static options (constant) init (32); 2 73 dcl EXECUTE_CAPABILITY_REPLY 2 74 fixed bin int static options (constant) init (33); 2 75 dcl FAIL_CAPABILITY fixed bin int static options (constant) init (33); 2 76 dcl INTERNAL fixed bin int static options (constant) init (32); 2 77 dcl EXECUTE_COMMAND fixed bin int static options (constant) init (34); 2 78 dcl ADD_TO_REMOTE_CAT fixed bin int static options (constant) init (35); 2 79 dcl DELETE_FROM_REMOTE_CAT fixed bin int static options (constant) init (36); 2 80 dcl SUSPEND_APPLICATION fixed bin int static options (constant) init (37); 2 81 dcl RESUME_APPLICATION fixed bin int static options (constant) init (38); 2 82 dcl TERMINATE_APPLICATION fixed bin int static options (constant) init (39); 2 83 dcl RESET_APPLICATION fixed bin int static options (constant) init (40); 2 84 dcl RESET_REPLY fixed bin int static options (constant) init (41); 2 85 dcl WAKE_UP fixed bin int static options (constant) init (42); 2 86 dcl STATUS fixed bin int static options (constant) init (43); 2 87 dcl OVERFLOWED_BUFFER fixed bin int static options (constant) init (44); 2 88 dcl SYSTEM_ERROR fixed bin int static options (constant) init (45); 2 89 dcl QUERY_REPLY fixed bin int static options (constant) init (46); 2 90 dcl RESPONSE_CONNECT fixed bin int static options (constant) init (47); 2 91 dcl RESPONSE_DISCONNECT fixed bin int static options (constant) init (48); 2 92 dcl REQUEST_CONNECT fixed bin int static options (constant) init (49); 2 93 dcl REQUEST_DISCONNECT fixed bin int static options (constant) init (50); 2 94 dcl CONTINUE fixed bin int static options (constant) init (51); 2 95 dcl MORE fixed bin int static options (constant) init (52); 2 96 dcl SET_SLEEP_FLAG fixed bin int static options (constant) init (53); 2 97 dcl RESET_SLEEP_FLAG fixed bin int static options (constant) init (54); 2 98 dcl SET_SUSPEND fixed bin int static options (constant) init (55); 2 99 dcl RESET_SUSPEND fixed bin int static options (constant) init (56); 2 100 dcl STATUS_REPLY fixed bin int static options (constant) init (57); 2 101 2 102 /* Foreground */ 2 103 2 104 dcl FG_CONTROL_MESSAGE fixed bin int static options (constant) init (33); 2 105 dcl FG_BREAK fixed bin int static options (constant) init (34); 2 106 dcl FG_TERMINAL_DATA fixed bin int static options (constant) init (35); 2 107 dcl FG_MORE_DATA fixed bin int static options (constant) init (36); 2 108 dcl PUT_TO_BACKGROUND_BUFFER 2 109 fixed bin int static options (constant) init (37); 2 110 dcl PUT_TO_QUERY_MESSAGE_BUFFER 2 111 fixed bin int static options (constant) init (38); 2 112 2 113 /* END INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 385 3 1 /* BEGIN INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-05-17,Smith), approve(86-12-16,MCR7580), 3 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 6* Created to define MOWSE message formats. 3 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 3 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 9* Approved. 3 10* 3) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 3 11* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 3 12* Changes to support async call channels. 3 13* END HISTORY COMMENTS */ 3 14 3 15 /* Message Channels */ 3 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 3 17 dcl BG fixed bin int static options (constant) init (0); 3 18 /* Fore ground */ 3 19 dcl FG fixed bin int static options (constant) init (1); 3 20 /* Back ground */ 3 21 3 22 /* Message types: 3 23* 3 24*Each intersystem message is labelled with one of the following types. Upon 3 25*reciept of the message suitable action is undertaken. This scheme was 3 26*introduced to allow the transmission of messsages longer than the maximum 3 27*packet size. 3 28**/ 3 29 3 30 /* Templates for the various messages used throughout the mowse environment. 3 31* Non-allocatable */ 3 32 3 33 dcl message_len fixed bin init (6); 3 34 dcl message_ptr ptr; 3 35 3 36 /* expected format of message */ 3 37 3 38 dcl 01 input_message based (message_ptr), 3 39 02 header, 3 40 03 system char (1) unal, 3 41 03 major char (1) unal, 3 42 03 minor char (1) unal, 3 43 03 source_system char (1) unal, 3 44 03 source_major char (1) unal, 3 45 02 data char (message_len - 5) unal; 3 46 3 47 /* expected format of message to be handled by mowse internal execute command */ 3 48 3 49 dcl 01 execom_message based (message_ptr), 3 50 02 header, 3 51 03 system char (1) unal, 3 52 03 major char (1) unal, 3 53 03 minor char (1) unal, 3 54 03 source_system char (1) unal, 3 55 03 source_major char (1) unal, 3 56 02 data, 3 57 03 cmd_id fixed bin (17) unal, 3 58 03 command char (message_len - 7) unal; 3 59 3 60 /* expected format of message recieved when a request to alter a CAT table 3 61* is made by a remote system */ 3 62 3 63 dcl 01 alter_cat_message based (message_ptr), 3 64 02 header, 3 65 03 system char (1) unal, 3 66 03 major char (1) unal, 3 67 03 minor char (1) unal, 3 68 03 source_system char (1) unal, 3 69 03 source_major char (1) unal, 3 70 02 data, 3 71 03 major char unal, 3 72 03 major_name char (CAPABILITY_NAME_LENGTH) unal; 3 73 3 74 /* Template used to parse message recieved from some remote system. */ 3 75 3 76 dcl 01 event_message based (message_ptr), 3 77 02 header, 3 78 03 system char (1) unal, 3 79 03 major char (1) unal, 3 80 03 msg_type char (1) unal; 3 81 3 82 /* format of message of MORE type */ 3 83 3 84 dcl 01 request_more_message 3 85 based (message_ptr), 3 86 02 header, 3 87 03 system char (1) unal, 3 88 03 major char (1) unal, 3 89 03 more char (1) unal, 3 90 03 source_system char (1) unal, 3 91 03 source_major char (1) unal, 3 92 03 source_minor char (1) unal; 3 93 3 94 /* format of message of CONTINUE type */ 3 95 3 96 dcl 01 more_remaining_message 3 97 based (message_ptr), 3 98 02 header, 3 99 03 system char (1) unal, 3 100 03 major char (1) unal, 3 101 03 continue char (1) unal, 3 102 03 minor char (1) unal, 3 103 03 source_system char (1) unal, 3 104 03 source_major char (1) unal, 3 105 02 data, 3 106 03 data_buf char (message_len - 6) unal; 3 107 3 108 /* format of message of LAST type */ 3 109 3 110 dcl 01 last_message based (message_ptr), 3 111 02 header, 3 112 03 system char (1) unal, 3 113 03 major char (1) unal, 3 114 03 minor char (1) unal, 3 115 03 source_system char (1) unal, 3 116 03 source_major char (1) unal, 3 117 02 data, 3 118 03 data_buf char (message_len - 5) unal; 3 119 3 120 /* Execute_command_reply message format */ 3 121 3 122 dcl 01 execom_reply_msg based (message_ptr), 3 123 02 header, 3 124 03 system char (1) unal, 3 125 03 major char (1) unal, 3 126 03 minor char (1) unal, 3 127 03 source_system char (1) unal, 3 128 03 source_major char (1) unal, 3 129 02 data, 3 130 03 cmd_id fixed bin unal, 3 131 03 status char unal; 3 132 3 133 /* Used to manage partial messages destined for any application */ 3 134 3 135 dcl msg_node_ptr ptr; 3 136 dcl 01 message_node based (msg_node_ptr), 3 137 02 major fixed bin, 3 138 02 partial_msg_list_ptr 3 139 ptr, 3 140 02 next_node ptr, 3 141 02 prev_node ptr, 3 142 02 last_part_msg ptr; 3 143 3 144 dcl part_msg_ptr ptr; 3 145 dcl 01 partial_message based (part_msg_ptr), 3 146 02 msg_ptr ptr, 3 147 02 msg_len fixed bin, 3 148 02 next_msg ptr; 3 149 3 150 3 151 dcl part_msg_length fixed bin; 3 152 dcl part_msg char (part_msg_length) based; 3 153 3 154 /* Trace information structure */ 3 155 dcl 01 trace_message_info, 3 156 02 direction fixed bin, 3 157 02 from_system fixed bin, 3 158 02 from_major fixed bin, 3 159 02 dest_system fixed bin, 3 160 02 dest_major fixed bin, 3 161 02 dest_minor fixed bin, 3 162 02 msg_type fixed bin, 3 163 02 message char (PACKET_SIZE) var; 3 164 3 165 /* END INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 386 4 1 /* BEGIN INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(87-04-16,Flegel), approve(87-07-15,MCR7580), 4 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 4 6* Created. 4 7* 2) change(87-06-23,Flegel), approve(87-06-23,MCR7649), 4 8* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 4 9* Converted to support the use of event channels. 4 10* 3) change(88-10-06,Flegel), approve(88-11-16,MCR8023), audit(88-12-12,Lee), 4 11* install(89-01-24,MR12.3-1012): 4 12* phx21215 - Added mowse_io_data.channel_info.foreground to use to generate 4 13* events when something happens in the foreground. 4 14* END HISTORY COMMENTS */ 4 15 4 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 4 17 dcl mowse_io_data_ptr ptr; 4 18 dcl 01 mowse_io_data based (mowse_io_data_ptr), 4 19 02 open_descrip char (19) var, 4 20 02 iocb_ptr ptr aligned, /* mowse_tty iocb pointer */ 4 21 02 default_iocb_ptr ptr aligned, /* mowse_i/o iocb pointer */ 4 22 02 attach_descrip char (256) var, /* Attach description */ 4 23 02 old_modes char (256) unal, /* Modes on previous iocb */ 4 24 4 25 02 current_modes char (256) unal, /* Current mode settings */ 4 26 02 WSTERM_modes (11) char (1), /* Encoded modes for WSTERM */ 4 27 02 cv_trans_struc_ptr ptr, /* Conversion table pointer */ 4 28 4 29 02 info_ptr ptr, /* Application control info seg */ 4 30 02 mcb_ptr ptr, /* Internal MCB to MOWSE */ 4 31 02 sleepers ptr, /* Queue of sleeping applications */ 4 32 02 dozers fixed bin (35), /* Number of unhandled sleeper wakeups */ 4 33 4 34 02 ws, /* Vidoe system control */ 4 35 03 flags, 4 36 04 trace bit (1) unal, 4 37 04 debug bit (1) unal, 4 38 04 mark_set bit (1) unal, 4 39 04 video_mode bit (1) unal, /* State (on/off) of video */ 4 40 04 more_input bit (1) unal, /* Last read unfinished */ 4 41 04 pad bit (31) unal, 4 42 03 read_count fixed bin (17), /* count of unfinished read commands sent */ 4 43 03 ips_mask bit (36) aligned, 4 44 4 45 02 sus_data, /* sus_ information */ 4 46 03 sus_entry ptr, /* Saved sus_ signal handler */ 4 47 03 activated bit (1) unal, /* If sus_ has been signaled */ 4 48 03 pad bit (35) unal, 4 49 4 50 02 channel_info, /* Event channel info */ 4 51 03 process_id bit (36) aligned, /* This process */ 4 52 03 wake_info, 4 53 04 wake_map (0:127) bit (1) unal, /* Break chars */ 4 54 04 pad bit (16) unal, 4 55 03 user_input like wait_info, /* Input wait channel */ 4 56 03 packet_transmitter like wait_info, /* Write events */ 4 57 03 packet_receiver, /* hcs_ events */ 4 58 04 channel fixed bin (71), /* Channel id */ 4 59 03 packet_dispatcher, /* Dispatch channels */ 4 60 04 sync_channel fixed bin (71), /* Process when quiet */ 4 61 04 async_channel fixed bin (71), /* Process NOW! */ 4 62 03 foreground, /* MF - phx21215 - read/write_status, get_event_channel info */ 4 63 04 channel fixed bin (71), /* Event channel */ 4 64 4 65 02 debug_iocb_ptr ptr, /* Debug file IOCB */ 4 66 02 trace_iocb_ptr ptr, /* Trace file IOCB */ 4 67 4 68 02 timer_info (8), 4 69 03 wakeup fixed bin (71), /* Seconds from last in queue */ 4 70 03 timer_id fixed bin, /* Who owns this wakeup */ 4 71 4 72 02 switches, /* Control switches */ 4 73 03 quit_enable bit (1) unal, /* Quit processing state */ 4 74 03 reset_write bit (1) unal, /* resetwrite requested */ 4 75 03 disconnect_active bit (1) unal, /* Disconnection occuring */ 4 76 03 rs_pending (2) bit (1) unal, /* Reset occuring */ 4 77 03 ds_pending (2) bit (1) unal, /* Disconnect occuring */ 4 78 03 br_pending bit (1) unal, /* Break occurring */ 4 79 03 brk_pending bit (1) unal, /* Break occuring (quit) */ 4 80 03 info_stored bit (1) unal, /* Info segment stored */ 4 81 03 connect_active bit (1) unal, /* Connection in progress */ 4 82 03 start_issued bit (1) unal, /* Indicates start order pending */ 4 83 03 pad bit (24) unal, 4 84 4 85 02 task, 4 86 03 active (0:2) bit (1) unal, /* Tasks which are active */ 4 87 03 pad bit (33) unal, 4 88 4 89 02 user_input, /* User_i/o input data */ 4 90 03 in fixed bin (21), /* Next free slot in repository */ 4 91 03 out fixed bin (21), /* Head of data */ 4 92 03 queue (0:4095) char (1), /* Repository */ 4 93 4 94 02 l_dat (0:1), /* Local data message queue */ 4 95 03 in_ptr ptr, /* Incoming messages */ 4 96 03 out_ptr ptr, /* Outgoing messages */ 4 97 4 98 02 r, /* Receiver data */ 4 99 03 eop char (1), /* End of packet character */ 4 100 03 sop char (1), /* Start of packet character */ 4 101 03 esc (0:2) char (1), /* 3 escape characters */ 4 102 03 esc_count fixed bin, /* Number of escaped chars in received packet */ 4 103 03 asn (0:1) fixed bin (3), /* Acknowledge sequence number */ 4 104 03 dat (0:1, 0:3) char (124) var, /* Data queues */ 4 105 03 pkt (0:2) char (129) var, /* Packet queue */ 4 106 03 pktin fixed bin, /* Next packet character in */ 4 107 03 pktout fixed bin, /* Head of packet */ 4 108 03 psn (0:1) fixed bin, /* SN for each channel */ 4 109 03 esckey bit (9) unal, /* Decoding 2nd character escape */ 4 110 03 ignoring (0:1) bit (1) unal, /* Ignore data during synchronization */ 4 111 03 pad bit (25) unal, 4 112 4 113 02 s, /* Sender data */ 4 114 03 eop char (1), /* End of packet character */ 4 115 03 sop char (1), /* Start of packet character */ 4 116 03 esc (0:2) char (1), /* 3 escape characters */ 4 117 03 dat (0:1, 0:3) char (124) var, /* Data queue */ 4 118 03 psn (0:1) fixed bin (3), /* Packet sequence number */ 4 119 03 lasn (0:1) fixed bin (3), /* Last ack sent */ 4 120 03 nasn (0:1) fixed bin (3), /* Next ack to be sent */ 4 121 03 escreq (0:255) bit (1) unal, /* Characters to be escaped */ 4 122 03 pad bit (32) unal; 4 123 4 124 /* Wait channel control struncture */ 4 125 4 126 dcl 01 wait_info based, 4 127 02 channel fixed bin (71) aligned, /* Channel ID */ 4 128 02 count fixed bin, /* Waiting count */ 4 129 02 flags, 4 130 03 transmitted bit (1) unal, /* Wakeup already generated */ 4 131 03 pad bit (35) unal; 4 132 4 133 /* END INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 387 5 1 /* BEGIN INCLUDE FILE: mowse_io_constants.incl.pl1 * * * * * * * * * * * * */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-11-06,Flegel), approve(87-07-15,MCR7580), 5 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 6* Created. 5 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 5 8* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 9* Approved. 5 10* END HISTORY COMMENTS */ 5 11 5 12 /* Protocol constants */ 5 13 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 5 14 dcl INIT_CRC fixed bin int static options (constant) init (63); 5 15 dcl CONVERT_CRC fixed bin int static options (constant) init (32); 5 16 dcl REVPOLY fixed bin int static options (constant) init (101001b); /* Bit N is coeff of x**(5-N) of generator */ 5 17 dcl OR bit (4) int static options (constant) init ("0111"b); 5 18 dcl XOR bit (4) int static options (constant) init ("0110"b); 5 19 dcl And bit (4) int static options (constant) init ("0001"b); 5 20 5 21 /* Debugging Switches */ 5 22 dcl DBGPKTS bit (1) int static options (constant) init ("0"b); 5 23 /* show packets */ 5 24 dcl DBGREJS bit (1) int static options (constant) init ("1"b); 5 25 /* diagnose rejects */ 5 26 dcl DBGXCHRS bit (1) int static options (constant) init ("0"b); 5 27 /* show extraneous received chars */ 5 28 5 29 /* ASCII Control Characters */ 5 30 5 31 dcl CR char (1) int static options (constant) 5 32 init (" "); 5 33 dcl ESC char (1) int static options (constant) 5 34 init (""); 5 35 dcl LF char (1) int static options (constant) 5 36 init (" 5 37 "); 5 38 dcl SI char (1) int static options (constant) 5 39 init (""); 5 40 dcl SO char (1) int static options (constant) 5 41 init (""); 5 42 dcl SOH char (1) int static options (constant) 5 43 init (""); 5 44 5 45 /* Protocol Bit-field Constants */ 5 46 dcl ChnCnt fixed bin int static options (constant) init (2); 5 47 /* no. logical channels */ 5 48 dcl SeqFld fixed bin int static options (constant) init (2); 5 49 /* no. bits in seq. field */ 5 50 dcl SeqCnt fixed bin int static options (constant) init (4); 5 51 /* 2**SeqFld */ 5 52 dcl SeqMsk fixed bin int static options (constant) init (3); 5 53 /* SeqCnt-1 */ 5 54 5 55 /* Protocol Byte-field Constants */ 5 56 dcl MaxDatLen fixed bin int static options (constant) init (124); 5 57 /* Maximum packet length */ 5 58 dcl SOPLen fixed bin int static options (constant) init (1); 5 59 /* Characters in SOP field */ 5 60 dcl TypLen fixed bin int static options (constant) init (1); 5 61 /* Characters in type field */ 5 62 dcl ChkLen fixed bin int static options (constant) init (1); 5 63 /* Characters in check field */ 5 64 dcl LenLen fixed bin int static options (constant) init (1); 5 65 /* Characters in length field */ 5 66 dcl EOPLen fixed bin int static options (constant) init (1); 5 67 /* Characters in EOP field */ 5 68 dcl MinPktLen fixed bin int static options (constant) init (5); 5 69 /* SOPLen+TypLen+LenLen+ChkLen+EOPLen */ 5 70 dcl MaxPktLen fixed bin int static options (constant) init (129); 5 71 /* MinPktLen+MaxDatLen */ 5 72 5 73 /* Protocol Packet Type Constants */ 5 74 dcl RstOff fixed bin (8) int static options (constant) 5 75 init (32); /* */ 5 76 dcl Request fixed bin (8) int static options (constant) 5 77 init (0); 5 78 dcl Confirm fixed bin (8) int static options (constant) 5 79 init (1); 5 80 dcl RstCnt fixed bin (8) int static options (constant) 5 81 init (2); /* Confirm+1 */ 5 82 dcl FGBrk fixed bin (8) int static options (constant) 5 83 init (36); /* BrkOff+2*FG*/ 5 84 dcl DisCon fixed bin (8) int static options (constant) 5 85 init (34); /* BrkOff+2*BG */ 5 86 dcl FastDis fixed bin (8) int static options (constant) 5 87 init (86); /* NakOff+NakCnt */ 5 88 dcl BrkOff fixed bin (8) int static options (constant) 5 89 init (34); /* RstOff+RstCnt */ 5 90 dcl BrkCnt fixed bin (8) int static options (constant) 5 91 init (4); /* ChnCnt*(Confirm+1) */ 5 92 dcl DatOff fixed bin (8) int static options (constant) 5 93 init (38); /* BrkOff+BrkCnt */ 5 94 dcl DatCnt fixed bin (8) int static options (constant) 5 95 init (32); /* ChnCnt*SeqCnt*SeqCnt */ 5 96 dcl AckOff fixed bin (8) int static options (constant) 5 97 init (70); /* DatOff+DatCnt */ 5 98 dcl AckCnt fixed bin (8) int static options (constant) 5 99 init (8); /* ChnCnt*SeqCnt */ 5 100 dcl NakOff fixed bin (8) int static options (constant) 5 101 init (78); /* AckOff+AckCnt */ 5 102 dcl NakCnt fixed bin (8) int static options (constant) 5 103 init (8); /* ChnCnt*SeqCnt */ 5 104 5 105 /* Protocol Parameters */ 5 106 dcl RQS fixed bin int static options (constant) init (2); 5 107 /* rcvchr's queue size (upper bound of r_pkt) */ 5 108 dcl RWS fixed bin int static options (constant) init (3); 5 109 /* Receiver's window size (upper bound of r_dat */ 5 110 dcl SWS fixed bin int static options (constant) init (3); 5 111 /* Sender's window size (upper bound of s_dat */ 5 112 dcl Lim_r_timer fixed bin int static options (constant) init (7); 5 113 /* Limit for r_timer */ 5 114 dcl Lim_s_timer fixed bin int static options (constant) init (15); 5 115 /* Limit for s_timer */ 5 116 dcl Lim_p_timer fixed bin int static options (constant) init (30); 5 117 /* Limit for pending_timer */ 5 118 dcl Timer_Interval fixed bin (71) int static options (constant) 5 119 init (125000); /* Next wakeup of timer */ 5 120 5 121 /* Tasking priority values */ 5 122 dcl Modem_Reader_Task fixed bin int static options (constant) init (0); 5 123 /* Modem Reader */ 5 124 dcl FG_task fixed bin int static options (constant) init (1); 5 125 /* FG processing */ 5 126 dcl BG_task fixed bin int static options (constant) init (2); 5 127 /* BG processing */ 5 128 dcl Idle bit (1) int static options (constant) init ("0"b); 5 129 /* Task not executing */ 5 130 5 131 /* Capability constants */ 5 132 dcl NO_MINOR fixed bin int static options (constant) init (-1); 5 133 5 134 /* WSTERM modes string indices */ 5 135 5 136 dcl WST_INIT_PL fixed bin int static options (constant) init (23); 5 137 dcl WST_INIT_LL fixed bin int static options (constant) init (79); 5 138 5 139 dcl WST_HEADER_1 fixed bin int static options (constant) init (1); 5 140 dcl WST_HEADER_2 fixed bin int static options (constant) init (2); 5 141 dcl WST_HEADER_3 fixed bin int static options (constant) init (3); 5 142 dcl WST_LENGTH_HIGH fixed bin int static options (constant) init (4); 5 143 dcl WST_LENGTH_LOW fixed bin int static options (constant) init (5); 5 144 dcl WST_MODES fixed bin int static options (constant) init (6); 5 145 dcl WST_KILL fixed bin int static options (constant) init (7); 5 146 dcl WST_ERASE fixed bin int static options (constant) init (8); 5 147 dcl WST_ESCAPE fixed bin int static options (constant) init (9); 5 148 dcl WST_LINE_LENGTH fixed bin int static options (constant) init (10); 5 149 dcl WST_PAGE_LENGTH fixed bin int static options (constant) init (11); 5 150 5 151 /* END INCLUDE FILE: mowse_io_constants.incl.pl1 * * * * * * * * * * * * */ 388 389 390 end ws_tools_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/24/89 0850.0 ws_tools_.pl1 >spec>install>MR12.3-1012>ws_tools_.pl1 384 1 08/10/87 1335.9 mowse_io_structures.incl.pl1 >ldd>include>mowse_io_structures.incl.pl1 385 2 08/10/87 1336.7 mowse.incl.pl1 >ldd>include>mowse.incl.pl1 386 3 08/10/87 1335.9 mowse_messages.incl.pl1 >ldd>include>mowse_messages.incl.pl1 387 4 01/24/89 0847.4 mowse_io_data.incl.pl1 >spec>install>MR12.3-1012>mowse_io_data.incl.pl1 388 5 08/10/87 1336.7 mowse_io_constants.incl.pl1 >ldd>include>mowse_io_constants.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. ChnCnt constant fixed bin(17,0) initial dcl 5-46 ref 350 Exp2 000000 constant fixed bin(17,0) initial array dcl 85 ref 118 FG constant fixed bin(17,0) initial dcl 3-19 ref 233 247 247 False constant bit(1) initial packed unaligned dcl 84 ref 346 357 PACKET_SIZE internal static fixed bin(17,0) initial dcl 2-48 ref 3-155 REVPOLY 001231 constant fixed bin(17,0) initial dcl 5-16 ref 186 RQS constant fixed bin(17,0) initial dcl 5-106 ref 338 SeqCnt 001230 constant fixed bin(17,0) initial dcl 5-50 ref 256 354 363 XOR constant bit(4) initial packed unaligned dcl 5-18 ref 186 asn 2447 based fixed bin(3,0) array level 3 dcl 59 set ref 358* b 000115 automatic fixed bin(17,0) dcl 53 set ref 183* bool builtin function dcl 75 ref 186 buffer based char packed unaligned dcl 58 set ref 255* buffer_ptr 000106 automatic pointer dcl 48 set ref 217* 255 buffer_size 000104 automatic fixed bin(21,0) dcl 47 set ref 218* 255 byte builtin function dcl 71 ref 141 channel 000112 automatic fixed bin(17,0) dcl 50 set ref 350* 355 357 358 359 364 366 367 368* crc 000117 automatic fixed bin(17,0) dcl 55 set ref 177* 184 185* 185 186* 186 192 dat 2451 based varying char(124) array level 3 in structure "mio_data" dcl 59 in procedure "ws_tools_" set ref 247 254 255 355* dat 3226 based varying char(124) array level 3 in structure "mio_data" dcl 59 in procedure "ws_tools_" set ref 364* data_len 2 based fixed bin(21,0) level 2 dcl 1-15 ref 296 data_ptr 000100 automatic pointer dcl 44 in procedure "ws_tools_" set ref 300* 301 305 309 310* data_ptr based pointer level 2 in structure "local_data_node" dcl 1-15 in procedure "ws_tools_" ref 295 debug_iocb_ptr 364 based pointer level 2 dcl 59 set ref 312 312* disconnect_active 430(02) based bit(1) level 3 packed packed unaligned dcl 59 ref 227 290 divide builtin function dcl 77 ref 118 185 189 ds_pending 430(05) based bit(1) array level 3 packed packed unaligned dcl 59 set ref 346* hbound builtin function dcl 74 ref 237 i 000113 automatic fixed bin(17,0) dcl 51 set ref 338* 339* 354* 355* 363* 364* ignoring 3223(09) based bit(1) array level 3 packed packed unaligned dcl 59 set ref 357* in 432 based fixed bin(21,0) level 3 dcl 59 ref 237 237 in_ptr 2434 based pointer array level 3 dcl 59 set ref 302* l_dat 2434 based structure array level 2 unaligned dcl 59 lasn 3630 based fixed bin(3,0) array level 3 dcl 59 set ref 366* length builtin function dcl 73 ref 247 254 local_data_node based structure level 1 unaligned dcl 1-15 ref 309 message_len 000122 automatic fixed bin(17,0) initial dcl 3-33 set ref 3-33* mio_data based structure level 1 unaligned dcl 59 mio_data_ptr 000110 automatic pointer dcl 49 set ref 216* 222 222 227 237 237 237 237 237 241 241 247 247 254 254 255 255 256 256 281* 285 290 295 296 300 302 303 305 312 312 334* 339 341 342 346 355 357 358 359 364 366 367 368 mod builtin function dcl 78 ref 141 184 256 mowse_io_data based structure level 1 unaligned dcl 4-18 nasn 3632 based fixed bin(3,0) array level 3 dcl 59 set ref 222 247 254 255 256* 256 367* next 4 based pointer level 2 dcl 1-15 ref 301 305 null builtin function dcl 72 ref 285 301 302 303 310 312 out 433 based fixed bin(21,0) level 3 dcl 59 ref 237 237 241 241 out_ptr 2436 based pointer array level 3 dcl 59 set ref 285 295 296 300 303* 305* p_buffer_ptr parameter pointer dcl 32 set ref 198 217 265 295* 312* p_buffer_size parameter fixed bin(21,0) dcl 31 ref 198 218 p_channel parameter fixed bin(17,0) dcl 33 ref 198 222 222 233 254 254 255 255 256 256 265 285 295 296 300 302 303 305 p_chr parameter char(1) packed unaligned dcl 38 ref 147 178 p_mio_data_ptr parameter pointer dcl 34 ref 198 216 265 281 322 334 p_packet_length parameter fixed bin(21,0) dcl 37 ref 124 141 p_seed parameter fixed bin(17,0) dcl 39 ref 147 177 p_shift parameter fixed bin(17,0) dcl 36 ref 106 118 p_value parameter fixed bin(17,0) dcl 35 ref 106 118 pkt 3051 based varying char(129) array level 3 dcl 59 set ref 339* pktin 3217 based fixed bin(17,0) level 3 dcl 59 set ref 341* pktout 3220 based fixed bin(17,0) level 3 dcl 59 set ref 342* psn 3626 based fixed bin(3,0) array level 3 in structure "mio_data" dcl 59 in procedure "ws_tools_" set ref 368* psn 3221 based fixed bin(17,0) array level 3 in structure "mio_data" dcl 59 in procedure "ws_tools_" set ref 222 359* q 000114 automatic fixed bin(17,0) dcl 52 set ref 184* 186 queue 434 based char(1) array level 3 packed packed unaligned dcl 59 ref 237 r 2444 based structure level 2 unaligned dcl 59 rank builtin function dcl 79 ref 178 rdatl 000102 automatic fixed bin(21,0) dcl 45 set ref 254* 259 296* 312* 316 s 3224 based structure level 2 unaligned dcl 59 schr 000116 automatic fixed bin(17,0) dcl 54 set ref 178* 184 189* 189 space 000103 automatic fixed bin(21,0) dcl 46 set ref 237* 241* 247 switches 430 based structure level 2 packed packed unaligned dcl 59 temp_seg_name 000120 automatic char(6) initial packed unaligned dcl 2-22 set ref 2-22* unspec builtin function dcl 76 set ref 186* 186 186 user_input 432 based structure level 2 unaligned dcl 59 wait_info based structure level 1 unaligned dcl 4-126 ws_debug_$packet 000010 constant entry external dcl 66 ref 312 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT internal static fixed bin(17,0) initial dcl 2-54 ADD_TO_REMOTE_CAT internal static fixed bin(17,0) initial dcl 2-78 AckCnt internal static fixed bin(8,0) initial dcl 5-98 AckOff internal static fixed bin(8,0) initial dcl 5-96 And internal static bit(4) initial packed unaligned dcl 5-19 BG internal static fixed bin(17,0) initial dcl 3-17 BG_task internal static fixed bin(17,0) initial dcl 5-126 BrkCnt internal static fixed bin(8,0) initial dcl 5-90 BrkOff internal static fixed bin(8,0) initial dcl 5-88 CONTINUE internal static fixed bin(17,0) initial dcl 2-94 CONVERT_CRC internal static fixed bin(17,0) initial dcl 5-15 CR internal static char(1) initial packed unaligned dcl 5-31 ChkLen internal static fixed bin(17,0) initial dcl 5-62 Confirm internal static fixed bin(8,0) initial dcl 5-78 DBGPKTS internal static bit(1) initial packed unaligned dcl 5-22 DBGREJS internal static bit(1) initial packed unaligned dcl 5-24 DBGXCHRS internal static bit(1) initial packed unaligned dcl 5-26 DELETE_FROM_REMOTE_CAT internal static fixed bin(17,0) initial dcl 2-79 DatCnt internal static fixed bin(8,0) initial dcl 5-94 DatOff internal static fixed bin(8,0) initial dcl 5-92 DisCon internal static fixed bin(8,0) initial dcl 5-84 EOPLen internal static fixed bin(17,0) initial dcl 5-66 ESC internal static char(1) initial packed unaligned dcl 5-33 EXECUTE_CAPABILITY_REPLY internal static fixed bin(17,0) initial dcl 2-73 EXECUTE_COMMAND internal static fixed bin(17,0) initial dcl 2-77 EXECUTE_COMMAND_REPLY internal static fixed bin(17,0) initial dcl 2-72 FAIL_CAPABILITY internal static fixed bin(17,0) initial dcl 2-75 FGBrk internal static fixed bin(8,0) initial dcl 5-82 FG_BREAK internal static fixed bin(17,0) initial dcl 2-105 FG_CONTROL_MESSAGE internal static fixed bin(17,0) initial dcl 2-104 FG_MORE_DATA internal static fixed bin(17,0) initial dcl 2-107 FG_TERMINAL_DATA internal static fixed bin(17,0) initial dcl 2-106 FG_task internal static fixed bin(17,0) initial dcl 5-124 FastDis internal static fixed bin(8,0) initial dcl 5-86 INIT_CRC internal static fixed bin(17,0) initial dcl 5-14 INTERNAL internal static fixed bin(17,0) initial dcl 2-76 Idle internal static bit(1) initial packed unaligned dcl 5-128 LAST internal static fixed bin(17,0) initial dcl 2-71 LF internal static char(1) initial packed unaligned dcl 5-35 LOCAL_SYSTEM internal static fixed bin(17,0) initial dcl 2-30 LenLen internal static fixed bin(17,0) initial dcl 5-64 Lim_p_timer internal static fixed bin(17,0) initial dcl 5-116 Lim_r_timer internal static fixed bin(17,0) initial dcl 5-112 Lim_s_timer internal static fixed bin(17,0) initial dcl 5-114 MAXIMUM_BG_SIZE internal static fixed bin(17,0) initial dcl 2-44 MAXIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 2-43 MAXIMUM_PACKET_SIZE internal static fixed bin(17,0) initial dcl 2-49 MAXIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 2-65 MAXIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 2-67 MINIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 2-42 MINIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 2-64 MINIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 2-66 MORE internal static fixed bin(17,0) initial dcl 2-95 MOWSE_VERSION_ internal static char(8) initial packed unaligned dcl 2-26 MaxDatLen internal static fixed bin(17,0) initial dcl 5-56 MaxPktLen internal static fixed bin(17,0) initial dcl 5-70 MinPktLen internal static fixed bin(17,0) initial dcl 5-68 Modem_Reader_Task internal static fixed bin(17,0) initial dcl 5-122 NO_MINOR internal static fixed bin(17,0) initial dcl 5-132 NakCnt internal static fixed bin(8,0) initial dcl 5-102 NakOff internal static fixed bin(8,0) initial dcl 5-100 OR internal static bit(4) initial packed unaligned dcl 5-17 OVERFLOWED_BUFFER internal static fixed bin(17,0) initial dcl 2-87 PUT_TO_BACKGROUND_BUFFER internal static fixed bin(17,0) initial dcl 2-108 PUT_TO_QUERY_MESSAGE_BUFFER internal static fixed bin(17,0) initial dcl 2-110 QUERY_REPLY internal static fixed bin(17,0) initial dcl 2-89 RECEIVE internal static fixed bin(17,0) initial dcl 2-59 REJECT internal static fixed bin(17,0) initial dcl 2-55 REMOTE_SYSTEM internal static fixed bin(17,0) initial dcl 2-31 REQUEST_CONNECT internal static fixed bin(17,0) initial dcl 2-92 REQUEST_DISCONNECT internal static fixed bin(17,0) initial dcl 2-93 RESET_APPLICATION internal static fixed bin(17,0) initial dcl 2-83 RESET_REPLY internal static fixed bin(17,0) initial dcl 2-84 RESET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 2-97 RESET_SUSPEND internal static fixed bin(17,0) initial dcl 2-99 RESPONSE_CONNECT internal static fixed bin(17,0) initial dcl 2-90 RESPONSE_DISCONNECT internal static fixed bin(17,0) initial dcl 2-91 RESUME_APPLICATION internal static fixed bin(17,0) initial dcl 2-81 RWS internal static fixed bin(17,0) initial dcl 5-108 Request internal static fixed bin(8,0) initial dcl 5-76 RstCnt internal static fixed bin(8,0) initial dcl 5-80 RstOff internal static fixed bin(8,0) initial dcl 5-74 SEND internal static fixed bin(17,0) initial dcl 2-60 SEND_QUERY internal static fixed bin(17,0) initial dcl 2-53 SET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 2-96 SET_SUSPEND internal static fixed bin(17,0) initial dcl 2-98 SI internal static char(1) initial packed unaligned dcl 5-38 SO internal static char(1) initial packed unaligned dcl 5-40 SOH internal static char(1) initial packed unaligned dcl 5-42 SOPLen internal static fixed bin(17,0) initial dcl 5-58 STATUS internal static fixed bin(17,0) initial dcl 2-86 STATUS_FAILED internal static fixed bin(8,0) initial dcl 2-37 STATUS_REPLY internal static fixed bin(17,0) initial dcl 2-100 STATUS_SUCCESS internal static fixed bin(8,0) initial dcl 2-35 SUSPEND_APPLICATION internal static fixed bin(17,0) initial dcl 2-80 SWS internal static fixed bin(17,0) initial dcl 5-110 SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 2-88 SeqFld internal static fixed bin(17,0) initial dcl 5-48 SeqMsk internal static fixed bin(17,0) initial dcl 5-52 TERMINATE_APPLICATION internal static fixed bin(17,0) initial dcl 2-82 Timer_Interval internal static fixed bin(71,0) initial dcl 5-118 TypLen internal static fixed bin(17,0) initial dcl 5-60 WAKE_UP internal static fixed bin(17,0) initial dcl 2-85 WST_ERASE internal static fixed bin(17,0) initial dcl 5-146 WST_ESCAPE internal static fixed bin(17,0) initial dcl 5-147 WST_HEADER_1 internal static fixed bin(17,0) initial dcl 5-139 WST_HEADER_2 internal static fixed bin(17,0) initial dcl 5-140 WST_HEADER_3 internal static fixed bin(17,0) initial dcl 5-141 WST_INIT_LL internal static fixed bin(17,0) initial dcl 5-137 WST_INIT_PL internal static fixed bin(17,0) initial dcl 5-136 WST_KILL internal static fixed bin(17,0) initial dcl 5-145 WST_LENGTH_HIGH internal static fixed bin(17,0) initial dcl 5-142 WST_LENGTH_LOW internal static fixed bin(17,0) initial dcl 5-143 WST_LINE_LENGTH internal static fixed bin(17,0) initial dcl 5-148 WST_MODES internal static fixed bin(17,0) initial dcl 5-144 WST_PAGE_LENGTH internal static fixed bin(17,0) initial dcl 5-149 alter_cat_message based structure level 1 packed packed unaligned dcl 3-63 event_message based structure level 1 packed packed unaligned dcl 3-76 execom_message based structure level 1 packed packed unaligned dcl 3-49 execom_reply_msg based structure level 1 packed packed unaligned dcl 3-122 input_message based structure level 1 packed packed unaligned dcl 3-38 last_message based structure level 1 packed packed unaligned dcl 3-110 message_node based structure level 1 unaligned dcl 3-136 message_ptr automatic pointer dcl 3-34 more_remaining_message based structure level 1 packed packed unaligned dcl 3-96 mowse_io_data_ptr automatic pointer dcl 4-17 mowse_io_sleep_node based structure level 1 unaligned dcl 1-21 msg_node_ptr automatic pointer dcl 3-135 part_msg based char packed unaligned dcl 3-152 part_msg_length automatic fixed bin(17,0) dcl 3-151 part_msg_ptr automatic pointer dcl 3-144 partial_message based structure level 1 unaligned dcl 3-145 request_more_message based structure level 1 packed packed unaligned dcl 3-84 trace_message_info automatic structure level 1 unaligned dcl 3-155 NAMES DECLARED BY EXPLICIT CONTEXT. ars 000104 constant entry external dcl 106 check_length 000161 constant entry external dcl 124 crc_char 000245 constant entry external dcl 147 getdat 000365 constant entry external dcl 198 getldat 000627 constant entry external dcl 265 reset_data 001051 constant entry external dcl 322 ws_tools_ 000053 constant entry external dcl 10 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1332 1344 1234 1342 Length 1626 1234 12 246 75 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ws_tools_ 258 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ws_tools_ 000100 data_ptr ws_tools_ 000102 rdatl ws_tools_ 000103 space ws_tools_ 000104 buffer_size ws_tools_ 000106 buffer_ptr ws_tools_ 000110 mio_data_ptr ws_tools_ 000112 channel ws_tools_ 000113 i ws_tools_ 000114 q ws_tools_ 000115 b ws_tools_ 000116 schr ws_tools_ 000117 crc ws_tools_ 000120 temp_seg_name ws_tools_ 000122 message_len ws_tools_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return_mac mdfx1 signal_op ext_entry any_to_any_truncate_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ws_debug_$packet NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 22 000044 3 33 000046 10 000052 95 000063 106 000100 118 000114 124 000155 141 000171 147 000241 177 000255 178 000260 183 000266 184 000273 185 000300 186 000303 189 000315 190 000320 192 000322 198 000360 216 000377 217 000403 218 000406 222 000410 227 000437 233 000465 237 000470 241 000501 247 000505 254 000542 255 000553 256 000561 259 000566 265 000622 281 000641 285 000645 290 000677 295 000725 296 000731 300 000734 301 000735 302 000741 303 000743 304 000744 305 000745 309 000747 310 000751 312 000753 316 001010 322 001046 334 001061 338 001065 339 001073 340 001076 341 001100 342 001102 346 001103 350 001121 354 001127 355 001135 356 001145 357 001147 358 001154 359 001155 363 001156 364 001165 365 001175 366 001177 367 001202 368 001203 369 001204 371 001206 ----------------------------------------------------------- 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