COMPILATION LISTING OF SEGMENT dtm Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/07/87 1508.0 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-08-14,Flegel), approve(87-07-15,MCR7580), 11* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 12* Created. 13* 2) change(86-08-28,Flegel), approve(87-07-15,MCR7580), 14* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 15* Looks for the switch attached to mowse_io_ rather than always to 16* user_i/o. 17* 3) change(86-10-07,Flegel), approve(87-07-15,MCR7580), 18* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 19* Removes the syn_ attached above mowse_io_. Change to find support new 20* names for io switches, added call to flush both subchannels being 21* transmitted. 22* 4) change(86-10-09,Flegel), approve(87-07-15,MCR7580), 23* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 24* Masked around critical switch movements. 25* 5) change(86-10-10,Flegel), approve(87-07-15,MCR7580), 26* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 27* Look for user_terminal_ as we cannot detach with the video system 28* invoked. 29* 6) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 30* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 31* Approved. 32* 7) change(86-12-03,Flegel), approve(86-12-03,MCR7580), 33* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 34* Removed flushing of background subchannel. 35* 8) change(86-12-11,Flegel), approve(86-12-11,MCR7580), 36* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 37* Removed external static "interactive_initiated_disconnect" and replaced 38* with a call iox_$close_file to mowse_i/o to tell mowse_io_ what kind of 39* disconnect to perform with the PC. 40* END HISTORY COMMENTS */ 41 42 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 43 dtm: 44 detach_mowse: 45 proc (); 46 47 /* : PROGRAM FUNCTION 48* 49*Detach the MOWSE environment. 50**/ 51 52 /* : NOTES 53**/ 54 55 /* MISC VARIABLES */ 56 dcl new_mask bit (36) aligned; /* IPS mask */ 57 dcl old_mask bit (36) aligned; /* IPS mask */ 58 dcl syn_iocb_ptr ptr; /* The iocb attached to the syn_ for mowse_i/o */ 59 dcl iocb_ptr ptr; /* The iocb attached before mowse_io_ */ 60 dcl mowse_iocb_ptr ptr; 61 dcl code fixed bin (35); 62 63 /* STRUCTURES */ 64 dcl 01 fsc like mowse_io_flush_subchannel_info automatic; 65 66 /* EXTERNAL STATIC */ 67 68 /* SYSTEM CALLS */ 69 dcl hcs_$set_ips_mask entry (bit (36) aligned, bit (36) aligned); 70 dcl hcs_$reset_ips_mask entry (bit (36) aligned, bit (36) aligned); 71 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 72 dcl terminate_process_ entry (char (*), ptr); 73 dcl iox_$destroy_iocb entry (ptr, fixed bin (35)); 74 dcl iox_$look_iocb entry (char (*), ptr, fixed bin (35)); 75 dcl com_err_ entry () options (variable); 76 dcl iox_$move_attach entry (ptr, ptr, fixed bin (35)); 77 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 78 dcl iox_$close entry (ptr, fixed bin (35)); 79 dcl iox_$close_file entry (ptr, char (*), fixed bin (35)); 80 81 82 /* SYSTEM CALL SUPPORT */ 83 dcl ws_error_$ws_video_invoked 84 fixed bin (35) ext static; 85 dcl error_table_$unable_to_do_io 86 fixed bin (35) ext static; 87 88 89 /* EXTERNAL CALLS */ 90 dcl get_at_ entry (char (*), char (*), ptr, fixed bin (35)); 91 92 93 /* EXTERNAL CALL SUPPORT */ 94 95 96 /* BUILTINS */ 97 dcl addr builtin; 98 99 100 /* CONDITIONS */ 101 102 103 /* CONSTANTS */ 104 dcl dtm_name char (12) int static options (constant) 105 init ("detach_mowse"); 106 107 /* */ 108 /* INITIALIZATION */ 109 110 111 /* MAIN */ 112 113 /* : If mowse_i/o not found, return */ 114 115 call iox_$look_iocb ("mowse_tty", mowse_iocb_ptr, code); 116 if code ^= 0 then do; 117 call com_err_ (code, dtm_name, "While looking for mowse_tty."); 118 return; 119 end; 120 121 /* : Find the mowse_i/o switch */ 122 123 call iox_$look_iocb ("mowse_i/o", syn_iocb_ptr, code); 124 if code ^= 0 then do; 125 call com_err_ (code, dtm_name, "While looking for mowse_i/o."); 126 return; 127 end; 128 129 /* : Look for the user_terminal_ IOCB so that if it exists, the detachment 130* will fail */ 131 132 call iox_$look_iocb ("user_terminal_", iocb_ptr, code); 133 if code = 0 then do; 134 call com_err_ (ws_error_$ws_video_invoked, dtm_name, 135 "MOWSE not detached."); 136 return; 137 end; 138 139 /* : Flush both FG and BG subchannels */ 140 141 fsc.version = mowse_io_info_version_1; 142 fsc.subchannel = FG; 143 call iox_$control (syn_iocb_ptr, "flush_subchannel", addr (fsc), 144 (0)); 145 146 /* : Find the switch attached to mowse_io_ */ 147 148 call get_at_ ("syn_", "mowse_i/o", iocb_ptr, code); 149 if code ^= 0 then do; 150 call com_err_ (code, dtm_name, 151 "Finding iocb attached to mowse_io_."); 152 return; 153 end; 154 155 /* : Close MOWSE */ 156 157 call iox_$close_file (iocb_ptr, "confirmed_disconnect", code); 158 159 if code ^= 0 then do; 160 call com_err_ (code, dtm_name, 161 "While closing ^a.", iocb_ptr -> iocb.name); 162 return; 163 end; 164 165 /* : Detach MOWSE */ 166 167 new_mask = ""b; 168 call hcs_$set_ips_mask (new_mask, old_mask); 169 call iox_$detach_iocb (iocb_ptr, code); 170 if code ^= 0 then do; 171 call hcs_$reset_ips_mask (old_mask, new_mask); 172 call fatal_return (); 173 end; 174 175 /* : Attach the iocb above mowse_i/o to tty_ */ 176 177 call iox_$move_attach (mowse_iocb_ptr, iocb_ptr, code); 178 if code ^= 0 then do; 179 call hcs_$reset_ips_mask (old_mask, new_mask); 180 call fatal_return (); 181 end; 182 call hcs_$reset_ips_mask (old_mask, new_mask); 183 184 /* : Destroy the iocb to mowse_tty (it is in limbo as the switches have been 185* moved around from foo_i/o to tty_) */ 186 187 call iox_$destroy_iocb (mowse_iocb_ptr, code); 188 if code ^= 0 then do; 189 call com_err_ (code, dtm_name, "Destroying ^a.", 190 mowse_iocb_ptr -> iocb.name); 191 return; 192 end; 193 194 /* : Close the mowse_i/o (It better be there or all of MOWSE would not have 195* been working properly) */ 196 197 call iox_$close (syn_iocb_ptr, (0)); 198 call iox_$detach_iocb (syn_iocb_ptr, (0)); 199 call iox_$destroy_iocb (syn_iocb_ptr, (0)); 200 201 /* */ 202 /* INTERNAL PROCEDURES */ 203 204 /* : *** fatal_return: Internal procedure for detach_mowse *** */ 205 206 fatal_return: 207 proc (); 208 209 /* : PROCEDURE FUNCTION 210* 211*Invoke a call to terminate_process because something really bad has happened. 212**/ 213 214 /* STRUCTURES */ 215 dcl 01 fatal_error_info aligned, 216 02 version fixed bin, /* Must be 0 */ 217 02 status_code fixed bin (35); /* Error code to terminate_process_ */ 218 219 220 fatal_error_info.version = 0; 221 fatal_error_info.status_code = error_table_$unable_to_do_io; 222 call terminate_process_ ("fatal_error", addr (fatal_error_info)); 223 224 end fatal_return; 225 226 227 /* INCLUDE FILES */ 1 1 1 2 dcl 1 iocb aligned based (iocb_ptr), 1 3 /* I/O control block. */ 1 4 2 iocb_version fixed init (1), /* Version number of structure. */ 1 5 2 name char (32), /* I/O name of this block. */ 1 6 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 1 7 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 1 8 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 1 9 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 1 10 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 1 11 2 reserved bit (72), /* Reserved for future use. */ 1 12 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 1 13 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 1 14 /* open(p,mode,not_used,s) */ 1 15 2 close entry (ptr, fixed (35)),/* close(p,s) */ 1 16 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 17 /* get_line(p,bufptr,buflen,actlen,s) */ 1 18 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 19 /* get_chars(p,bufptr,buflen,actlen,s) */ 1 20 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 1 21 /* put_chars(p,bufptr,buflen,s) */ 1 22 2 modes entry (ptr, char (*), char (*), fixed (35)), 1 23 /* modes(p,newmode,oldmode,s) */ 1 24 2 position entry (ptr, fixed, fixed (21), fixed (35)), 1 25 /* position(p,u1,u2,s) */ 1 26 2 control entry (ptr, char (*), ptr, fixed (35)), 1 27 /* control(p,order,infptr,s) */ 1 28 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 29 /* read_record(p,bufptr,buflen,actlen,s) */ 1 30 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 1 31 /* write_record(p,bufptr,buflen,s) */ 1 32 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 1 33 /* rewrite_record(p,bufptr,buflen,s) */ 1 34 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 1 35 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 36 /* seek_key(p,key,len,s) */ 1 37 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 38 /* read_key(p,key,len,s) */ 1 39 2 read_length entry (ptr, fixed (21), fixed (35)); 1 40 /* read_length(p,len,s) */ 1 41 228 2 1 /* BEGIN INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-05-17,Smith), approve(86-12-16,MCR7580), 2 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 6* Created to define MOWSE message formats. 2 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 2 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 9* Approved. 2 10* 3) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 2 11* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 2 12* Changes to support async call channels. 2 13* END HISTORY COMMENTS */ 2 14 2 15 /* Message Channels */ 2 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 2 17 dcl BG fixed bin int static options (constant) init (0); 2 18 /* Fore ground */ 2 19 dcl FG fixed bin int static options (constant) init (1); 2 20 /* Back ground */ 2 21 2 22 /* Message types: 2 23* 2 24*Each intersystem message is labelled with one of the following types. Upon 2 25*reciept of the message suitable action is undertaken. This scheme was 2 26*introduced to allow the transmission of messsages longer than the maximum 2 27*packet size. 2 28**/ 2 29 2 30 /* Templates for the various messages used throughout the mowse environment. 2 31* Non-allocatable */ 2 32 2 33 dcl message_len fixed bin init (6); 2 34 dcl message_ptr ptr; 2 35 2 36 /* expected format of message */ 2 37 2 38 dcl 01 input_message based (message_ptr), 2 39 02 header, 2 40 03 system char (1) unal, 2 41 03 major char (1) unal, 2 42 03 minor char (1) unal, 2 43 03 source_system char (1) unal, 2 44 03 source_major char (1) unal, 2 45 02 data char (message_len - 5) unal; 2 46 2 47 /* expected format of message to be handled by mowse internal execute command */ 2 48 2 49 dcl 01 execom_message based (message_ptr), 2 50 02 header, 2 51 03 system char (1) unal, 2 52 03 major char (1) unal, 2 53 03 minor char (1) unal, 2 54 03 source_system char (1) unal, 2 55 03 source_major char (1) unal, 2 56 02 data, 2 57 03 cmd_id fixed bin (17) unal, 2 58 03 command char (message_len - 7) unal; 2 59 2 60 /* expected format of message recieved when a request to alter a CAT table 2 61* is made by a remote system */ 2 62 2 63 dcl 01 alter_cat_message based (message_ptr), 2 64 02 header, 2 65 03 system char (1) unal, 2 66 03 major char (1) unal, 2 67 03 minor char (1) unal, 2 68 03 source_system char (1) unal, 2 69 03 source_major char (1) unal, 2 70 02 data, 2 71 03 major char unal, 2 72 03 major_name char (CAPABILITY_NAME_LENGTH) unal; 2 73 2 74 /* Template used to parse message recieved from some remote system. */ 2 75 2 76 dcl 01 event_message based (message_ptr), 2 77 02 header, 2 78 03 system char (1) unal, 2 79 03 major char (1) unal, 2 80 03 msg_type char (1) unal; 2 81 2 82 /* format of message of MORE type */ 2 83 2 84 dcl 01 request_more_message 2 85 based (message_ptr), 2 86 02 header, 2 87 03 system char (1) unal, 2 88 03 major char (1) unal, 2 89 03 more char (1) unal, 2 90 03 source_system char (1) unal, 2 91 03 source_major char (1) unal, 2 92 03 source_minor char (1) unal; 2 93 2 94 /* format of message of CONTINUE type */ 2 95 2 96 dcl 01 more_remaining_message 2 97 based (message_ptr), 2 98 02 header, 2 99 03 system char (1) unal, 2 100 03 major char (1) unal, 2 101 03 continue char (1) unal, 2 102 03 minor char (1) unal, 2 103 03 source_system char (1) unal, 2 104 03 source_major char (1) unal, 2 105 02 data, 2 106 03 data_buf char (message_len - 6) unal; 2 107 2 108 /* format of message of LAST type */ 2 109 2 110 dcl 01 last_message based (message_ptr), 2 111 02 header, 2 112 03 system char (1) unal, 2 113 03 major char (1) unal, 2 114 03 minor char (1) unal, 2 115 03 source_system char (1) unal, 2 116 03 source_major char (1) unal, 2 117 02 data, 2 118 03 data_buf char (message_len - 5) unal; 2 119 2 120 /* Execute_command_reply message format */ 2 121 2 122 dcl 01 execom_reply_msg based (message_ptr), 2 123 02 header, 2 124 03 system char (1) unal, 2 125 03 major char (1) unal, 2 126 03 minor char (1) unal, 2 127 03 source_system char (1) unal, 2 128 03 source_major char (1) unal, 2 129 02 data, 2 130 03 cmd_id fixed bin unal, 2 131 03 status char unal; 2 132 2 133 /* Used to manage partial messages destined for any application */ 2 134 2 135 dcl msg_node_ptr ptr; 2 136 dcl 01 message_node based (msg_node_ptr), 2 137 02 major fixed bin, 2 138 02 partial_msg_list_ptr 2 139 ptr, 2 140 02 next_node ptr, 2 141 02 prev_node ptr, 2 142 02 last_part_msg ptr; 2 143 2 144 dcl part_msg_ptr ptr; 2 145 dcl 01 partial_message based (part_msg_ptr), 2 146 02 msg_ptr ptr, 2 147 02 msg_len fixed bin, 2 148 02 next_msg ptr; 2 149 2 150 2 151 dcl part_msg_length fixed bin; 2 152 dcl part_msg char (part_msg_length) based; 2 153 2 154 /* Trace information structure */ 2 155 dcl 01 trace_message_info, 2 156 02 direction fixed bin, 2 157 02 from_system fixed bin, 2 158 02 from_major fixed bin, 2 159 02 dest_system fixed bin, 2 160 02 dest_major fixed bin, 2 161 02 dest_minor fixed bin, 2 162 02 msg_type fixed bin, 2 163 02 message char (PACKET_SIZE) var; 2 164 2 165 /* END INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 229 3 1 /* BEGIN INCLUDE FILE: mowse_io_control_info.incl.pl1 * * * * * * * * * * * * */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-06-15,Flegel), approve(86-12-16,MCR7580), 3 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 6* Created for control support for mowse_io_. 3 7* 2) change(86-08-01,Flegel), approve(86-12-16,MCR7580), 3 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 9* Changed version fields to char (8) and 3 10* installed version constant. 3 11* 3) change(86-10-08,Flegel), approve(86-12-16,MCR7580), 3 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 13* Added flush_subchannel_info structure. 3 14* 4) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 3 15* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 16* Approved. 3 17* 5) change(86-12-05,Flegel), approve(86-12-05,MCR7580), 3 18* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 19* Added mowse_io_set_video_mode_info structure. 3 20* 6) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 3 21* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 3 22* Changes to support async call channels. 3 23* END HISTORY COMMENTS */ 3 24 3 25 /* : Version number */ 3 26 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 3 27 dcl mowse_io_info_version_1 3 28 char (8) int static options (constant) 3 29 init ("miover_1"); 3 30 3 31 /* : Mowse store info structure */ 3 32 dcl mowse_io_store_info_ptr 3 33 ptr; 3 34 dcl 01 mowse_io_store_info based (mowse_io_store_info_ptr), 3 35 02 version char (8), 3 36 02 info_ptr ptr; /* Pointer to mowse_info_ structure */ 3 37 3 38 /* : Mowse info structure */ 3 39 dcl mowse_io_info_ptr ptr; 3 40 dcl 01 mowse_io_info based (mowse_io_info_ptr), 3 41 02 version char (8), 3 42 02 mcb_ptr ptr, /* Pointer to mowse_mcb */ 3 43 02 info_ptr ptr; /* Pointer to Mowse information (CATs etc.) */ 3 44 3 45 /* : Control info overlay for debug_on */ 3 46 dcl mowse_io_debug_info_ptr 3 47 ptr; 3 48 dcl 01 mowse_io_debug_info based (mowse_io_debug_info_ptr), 3 49 02 version char (8), 3 50 02 segment_name char (512) var; /* Debug file name */ 3 51 3 52 /* : Control info overlay for get_terminal_emulator_state */ 3 53 dcl mowse_io_terminal_state_ptr 3 54 ptr; 3 55 dcl 01 mowse_io_terminal_state 3 56 based (mowse_io_terminal_state_ptr), 3 57 02 version char (8), 3 58 02 state bit (1) unal, /* WSTERM state */ 3 59 02 mbz bit (35) unal; 3 60 3 61 /* : Control info overlay for send_message and send_local_message */ 3 62 dcl mowse_io_message_ptr ptr; 3 63 dcl 01 mowse_io_message based (mowse_io_message_ptr), 3 64 02 version char (8), 3 65 02 channel fixed bin, /* Channel of message */ 3 66 02 io_message_ptr ptr, /* Pointer to the nonvarying message */ 3 67 02 io_message_len fixed bin (21); /* Length of message */ 3 68 3 69 /* : Control info overlay for put_to_sleep */ 3 70 dcl mowse_io_sleep_info_ptr 3 71 ptr; 3 72 dcl 01 mowse_io_sleep_info based (mowse_io_sleep_info_ptr), 3 73 02 version char (8), 3 74 02 major_index fixed bin, /* CAT index of sleeper */ 3 75 02 sleep_seconds fixed bin; /* Sleep interval */ 3 76 3 77 /* : Control info for flush_subchannel */ 3 78 dcl mowse_io_flush_subchannel_info_ptr 3 79 ptr; 3 80 dcl 01 mowse_io_flush_subchannel_info 3 81 based (mowse_io_flush_subchannel_info_ptr), 3 82 02 version char (8), 3 83 02 subchannel fixed bin; /* The subchannel to be flushed (BG/FG) */ 3 84 3 85 /* : Control info to set the video mode */ 3 86 dcl mowse_io_set_video_mode_info_ptr 3 87 ptr; 3 88 dcl 01 mowse_io_set_video_mode_info 3 89 based (mowse_io_set_video_mode_info_ptr), 3 90 02 version char (8), 3 91 02 mode bit (1) unal, /* On or off */ 3 92 02 mbz bit (35) unal; 3 93 3 94 /* END INCLUDE FILE: mowse_io_control_info.incl.pl1 * * * * * * * * * * * * */ 230 4 1 /* BEGIN INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(86-09-17,Flegel), approve(86-12-16,MCR7580), 4 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 6* Created. 4 7* 2) change(86-10-03,Flegel), approve(86-12-16,MCR7580), 4 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 9* Combined mowse_minor_caps.incl.pl1 and 4 10* mowse.incl.pl1 so that programmer only needs include mowse.incl.pl1 4 11* 3) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 4 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 13* Approved. 4 14* 4) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 4 15* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 4 16* Changes to support async call channels. 4 17* END HISTORY COMMENTS */ 4 18 4 19 /* Name of MOWSE temp seg for data */ 4 20 4 21 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 4 22 dcl temp_seg_name char (6) init ("MOWSE_"); 4 23 4 24 /* Version number */ 4 25 4 26 dcl MOWSE_VERSION_ char (8) int static options (constant) init ("version1"); 4 27 4 28 /* System identification */ 4 29 4 30 dcl LOCAL_SYSTEM fixed bin int static options (constant) init (32); 4 31 dcl REMOTE_SYSTEM fixed bin int static options (constant) init (33); 4 32 4 33 /* Status request return codes */ 4 34 4 35 dcl STATUS_SUCCESS fixed bin (8) int static options (constant) 4 36 init (32); 4 37 dcl STATUS_FAILED fixed bin (8) int static options (constant) 4 38 init (33); 4 39 4 40 /* Input/output capability buffer size limits */ 4 41 4 42 dcl MINIMUM_BUFFER_SIZE fixed bin int static options (constant) init (128); 4 43 dcl MAXIMUM_BUFFER_SIZE fixed bin int static options (constant) init (65536); 4 44 dcl MAXIMUM_BG_SIZE fixed bin int static options (constant) init (512); 4 45 4 46 /* Packet size (communication) constants */ 4 47 4 48 dcl PACKET_SIZE fixed bin int static options (constant) init (124); 4 49 dcl MAXIMUM_PACKET_SIZE fixed bin int static options (constant) init (118); 4 50 4 51 /* Query message constants */ 4 52 4 53 dcl SEND_QUERY fixed bin int static options (constant) init (128); 4 54 dcl ACCEPT fixed bin int static options (constant) init (32); 4 55 dcl REJECT fixed bin int static options (constant) init (33); 4 56 4 57 /* Trace information constants */ 4 58 4 59 dcl RECEIVE fixed bin int static options (constant) init (1); 4 60 dcl SEND fixed bin int static options (constant) init (0); 4 61 4 62 /* Limits on dedicated minor capabilities */ 4 63 4 64 dcl MINIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (32); 4 65 dcl MAXIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (63); 4 66 dcl MINIMUM_USER_MINOR fixed bin int static options (constant) init (64); 4 67 dcl MAXIMUM_USER_MINOR fixed bin int static options (constant) init (127); 4 68 4 69 /* Dedicated Minor Capabilities */ 4 70 4 71 dcl LAST fixed bin int static options (constant) init (0); 4 72 dcl EXECUTE_COMMAND_REPLY fixed bin int static options (constant) init (32); 4 73 dcl EXECUTE_CAPABILITY_REPLY 4 74 fixed bin int static options (constant) init (33); 4 75 dcl FAIL_CAPABILITY fixed bin int static options (constant) init (33); 4 76 dcl INTERNAL fixed bin int static options (constant) init (32); 4 77 dcl EXECUTE_COMMAND fixed bin int static options (constant) init (34); 4 78 dcl ADD_TO_REMOTE_CAT fixed bin int static options (constant) init (35); 4 79 dcl DELETE_FROM_REMOTE_CAT fixed bin int static options (constant) init (36); 4 80 dcl SUSPEND_APPLICATION fixed bin int static options (constant) init (37); 4 81 dcl RESUME_APPLICATION fixed bin int static options (constant) init (38); 4 82 dcl TERMINATE_APPLICATION fixed bin int static options (constant) init (39); 4 83 dcl RESET_APPLICATION fixed bin int static options (constant) init (40); 4 84 dcl RESET_REPLY fixed bin int static options (constant) init (41); 4 85 dcl WAKE_UP fixed bin int static options (constant) init (42); 4 86 dcl STATUS fixed bin int static options (constant) init (43); 4 87 dcl OVERFLOWED_BUFFER fixed bin int static options (constant) init (44); 4 88 dcl SYSTEM_ERROR fixed bin int static options (constant) init (45); 4 89 dcl QUERY_REPLY fixed bin int static options (constant) init (46); 4 90 dcl RESPONSE_CONNECT fixed bin int static options (constant) init (47); 4 91 dcl RESPONSE_DISCONNECT fixed bin int static options (constant) init (48); 4 92 dcl REQUEST_CONNECT fixed bin int static options (constant) init (49); 4 93 dcl REQUEST_DISCONNECT fixed bin int static options (constant) init (50); 4 94 dcl CONTINUE fixed bin int static options (constant) init (51); 4 95 dcl MORE fixed bin int static options (constant) init (52); 4 96 dcl SET_SLEEP_FLAG fixed bin int static options (constant) init (53); 4 97 dcl RESET_SLEEP_FLAG fixed bin int static options (constant) init (54); 4 98 dcl SET_SUSPEND fixed bin int static options (constant) init (55); 4 99 dcl RESET_SUSPEND fixed bin int static options (constant) init (56); 4 100 dcl STATUS_REPLY fixed bin int static options (constant) init (57); 4 101 4 102 /* Foreground */ 4 103 4 104 dcl FG_CONTROL_MESSAGE fixed bin int static options (constant) init (33); 4 105 dcl FG_BREAK fixed bin int static options (constant) init (34); 4 106 dcl FG_TERMINAL_DATA fixed bin int static options (constant) init (35); 4 107 dcl FG_MORE_DATA fixed bin int static options (constant) init (36); 4 108 dcl PUT_TO_BACKGROUND_BUFFER 4 109 fixed bin int static options (constant) init (37); 4 110 dcl PUT_TO_QUERY_MESSAGE_BUFFER 4 111 fixed bin int static options (constant) init (38); 4 112 4 113 /* END INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 231 232 233 /* : END */ 234 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/07/87 1455.0 dtm.pl1 >special_ldd>install>MR12.1-1075>dtm.pl1 228 1 07/02/81 1905.0 iocbv.incl.pl1 >ldd>include>iocbv.incl.pl1 229 2 08/07/87 1447.1 mowse_messages.incl.pl1 >special_ldd>install>MR12.1-1075>mowse_messages.incl.pl1 230 3 08/07/87 1445.8 mowse_io_control_info.incl.pl1 >special_ldd>install>MR12.1-1075>mowse_io_control_info.incl.pl1 231 4 08/07/87 1445.8 mowse.incl.pl1 >special_ldd>install>MR12.1-1075>mowse.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. FG constant fixed bin(17,0) initial dcl 2-19 ref 142 PACKET_SIZE constant fixed bin(17,0) initial dcl 4-48 ref 2-155 addr builtin function dcl 97 ref 143 143 222 222 code 000110 automatic fixed bin(35,0) dcl 61 set ref 115* 116 117* 123* 124 125* 132* 133 148* 149 150* 157* 159 160* 169* 170 177* 178 187* 188 189* com_err_ 000024 constant entry external dcl 75 ref 117 125 134 150 160 189 dtm_name 000002 constant char(12) initial unaligned dcl 104 set ref 117* 125* 134* 150* 160* 189* error_table_$unable_to_do_io 000040 external static fixed bin(35,0) dcl 85 ref 221 fatal_error_info 000130 automatic structure level 1 dcl 215 set ref 222 222 fsc 000111 automatic structure level 1 unaligned dcl 64 set ref 143 143 get_at_ 000042 constant entry external dcl 90 ref 148 hcs_$reset_ips_mask 000012 constant entry external dcl 70 ref 171 179 182 hcs_$set_ips_mask 000010 constant entry external dcl 69 ref 168 iocb based structure level 1 dcl 1-2 iocb_ptr 000104 automatic pointer dcl 59 set ref 132* 148* 157* 160 169* 177* iox_$close 000032 constant entry external dcl 78 ref 197 iox_$close_file 000034 constant entry external dcl 79 ref 157 iox_$control 000014 constant entry external dcl 71 ref 143 iox_$destroy_iocb 000020 constant entry external dcl 73 ref 187 199 iox_$detach_iocb 000030 constant entry external dcl 77 ref 169 198 iox_$look_iocb 000022 constant entry external dcl 74 ref 115 123 132 iox_$move_attach 000026 constant entry external dcl 76 ref 177 message_len 000114 automatic fixed bin(17,0) initial dcl 2-33 set ref 2-33* mowse_io_flush_subchannel_info based structure level 1 unaligned dcl 3-80 mowse_io_info_version_1 000000 constant char(8) initial unaligned dcl 3-27 ref 141 mowse_iocb_ptr 000106 automatic pointer dcl 60 set ref 115* 177* 187* 189 name 1 based char(32) level 2 dcl 1-2 set ref 160* 189* new_mask 000100 automatic bit(36) dcl 56 set ref 167* 168* 171* 179* 182* old_mask 000101 automatic bit(36) dcl 57 set ref 168* 171* 179* 182* status_code 1 000130 automatic fixed bin(35,0) level 2 dcl 215 set ref 221* subchannel 2 000111 automatic fixed bin(17,0) level 2 dcl 64 set ref 142* syn_iocb_ptr 000102 automatic pointer dcl 58 set ref 123* 143* 197* 198* 199* temp_seg_name 000116 automatic char(6) initial unaligned dcl 4-22 set ref 4-22* terminate_process_ 000016 constant entry external dcl 72 ref 222 version 000111 automatic char(8) level 2 in structure "fsc" packed unaligned dcl 64 in procedure "detach_mowse" set ref 141* version 000130 automatic fixed bin(17,0) level 2 in structure "fatal_error_info" dcl 215 in procedure "fatal_return" set ref 220* ws_error_$ws_video_invoked 000036 external static fixed bin(35,0) dcl 83 set ref 134* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT internal static fixed bin(17,0) initial dcl 4-54 ADD_TO_REMOTE_CAT internal static fixed bin(17,0) initial dcl 4-78 BG internal static fixed bin(17,0) initial dcl 2-17 CONTINUE internal static fixed bin(17,0) initial dcl 4-94 DELETE_FROM_REMOTE_CAT internal static fixed bin(17,0) initial dcl 4-79 EXECUTE_CAPABILITY_REPLY internal static fixed bin(17,0) initial dcl 4-73 EXECUTE_COMMAND internal static fixed bin(17,0) initial dcl 4-77 EXECUTE_COMMAND_REPLY internal static fixed bin(17,0) initial dcl 4-72 FAIL_CAPABILITY internal static fixed bin(17,0) initial dcl 4-75 FG_BREAK internal static fixed bin(17,0) initial dcl 4-105 FG_CONTROL_MESSAGE internal static fixed bin(17,0) initial dcl 4-104 FG_MORE_DATA internal static fixed bin(17,0) initial dcl 4-107 FG_TERMINAL_DATA internal static fixed bin(17,0) initial dcl 4-106 INTERNAL internal static fixed bin(17,0) initial dcl 4-76 LAST internal static fixed bin(17,0) initial dcl 4-71 LOCAL_SYSTEM internal static fixed bin(17,0) initial dcl 4-30 MAXIMUM_BG_SIZE internal static fixed bin(17,0) initial dcl 4-44 MAXIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 4-43 MAXIMUM_PACKET_SIZE internal static fixed bin(17,0) initial dcl 4-49 MAXIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 4-65 MAXIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 4-67 MINIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 4-42 MINIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 4-64 MINIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 4-66 MORE internal static fixed bin(17,0) initial dcl 4-95 MOWSE_VERSION_ internal static char(8) initial unaligned dcl 4-26 OVERFLOWED_BUFFER internal static fixed bin(17,0) initial dcl 4-87 PUT_TO_BACKGROUND_BUFFER internal static fixed bin(17,0) initial dcl 4-108 PUT_TO_QUERY_MESSAGE_BUFFER internal static fixed bin(17,0) initial dcl 4-110 QUERY_REPLY internal static fixed bin(17,0) initial dcl 4-89 RECEIVE internal static fixed bin(17,0) initial dcl 4-59 REJECT internal static fixed bin(17,0) initial dcl 4-55 REMOTE_SYSTEM internal static fixed bin(17,0) initial dcl 4-31 REQUEST_CONNECT internal static fixed bin(17,0) initial dcl 4-92 REQUEST_DISCONNECT internal static fixed bin(17,0) initial dcl 4-93 RESET_APPLICATION internal static fixed bin(17,0) initial dcl 4-83 RESET_REPLY internal static fixed bin(17,0) initial dcl 4-84 RESET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 4-97 RESET_SUSPEND internal static fixed bin(17,0) initial dcl 4-99 RESPONSE_CONNECT internal static fixed bin(17,0) initial dcl 4-90 RESPONSE_DISCONNECT internal static fixed bin(17,0) initial dcl 4-91 RESUME_APPLICATION internal static fixed bin(17,0) initial dcl 4-81 SEND internal static fixed bin(17,0) initial dcl 4-60 SEND_QUERY internal static fixed bin(17,0) initial dcl 4-53 SET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 4-96 SET_SUSPEND internal static fixed bin(17,0) initial dcl 4-98 STATUS internal static fixed bin(17,0) initial dcl 4-86 STATUS_FAILED internal static fixed bin(8,0) initial dcl 4-37 STATUS_REPLY internal static fixed bin(17,0) initial dcl 4-100 STATUS_SUCCESS internal static fixed bin(8,0) initial dcl 4-35 SUSPEND_APPLICATION internal static fixed bin(17,0) initial dcl 4-80 SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 4-88 TERMINATE_APPLICATION internal static fixed bin(17,0) initial dcl 4-82 WAKE_UP internal static fixed bin(17,0) initial dcl 4-85 alter_cat_message based structure level 1 packed unaligned dcl 2-63 event_message based structure level 1 packed unaligned dcl 2-76 execom_message based structure level 1 packed unaligned dcl 2-49 execom_reply_msg based structure level 1 packed unaligned dcl 2-122 input_message based structure level 1 packed unaligned dcl 2-38 last_message based structure level 1 packed unaligned dcl 2-110 message_node based structure level 1 unaligned dcl 2-136 message_ptr automatic pointer dcl 2-34 more_remaining_message based structure level 1 packed unaligned dcl 2-96 mowse_io_debug_info based structure level 1 unaligned dcl 3-48 mowse_io_debug_info_ptr automatic pointer dcl 3-46 mowse_io_flush_subchannel_info_ptr automatic pointer dcl 3-78 mowse_io_info based structure level 1 unaligned dcl 3-40 mowse_io_info_ptr automatic pointer dcl 3-39 mowse_io_message based structure level 1 unaligned dcl 3-63 mowse_io_message_ptr automatic pointer dcl 3-62 mowse_io_set_video_mode_info based structure level 1 packed unaligned dcl 3-88 mowse_io_set_video_mode_info_ptr automatic pointer dcl 3-86 mowse_io_sleep_info based structure level 1 unaligned dcl 3-72 mowse_io_sleep_info_ptr automatic pointer dcl 3-70 mowse_io_store_info based structure level 1 unaligned dcl 3-34 mowse_io_store_info_ptr automatic pointer dcl 3-32 mowse_io_terminal_state based structure level 1 packed unaligned dcl 3-55 mowse_io_terminal_state_ptr automatic pointer dcl 3-53 msg_node_ptr automatic pointer dcl 2-135 part_msg based char unaligned dcl 2-152 part_msg_length automatic fixed bin(17,0) dcl 2-151 part_msg_ptr automatic pointer dcl 2-144 partial_message based structure level 1 unaligned dcl 2-145 request_more_message based structure level 1 packed unaligned dcl 2-84 trace_message_info automatic structure level 1 unaligned dcl 2-155 NAMES DECLARED BY EXPLICIT CONTEXT. detach_mowse 000137 constant entry external dcl 43 dtm 000147 constant entry external dcl 43 fatal_return 001002 constant entry internal dcl 206 ref 172 180 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1230 1274 1032 1240 Length 1572 1032 44 261 175 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME detach_mowse 160 external procedure is an external procedure. fatal_return internal procedure shares stack frame of external procedure detach_mowse. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME detach_mowse 000100 new_mask detach_mowse 000101 old_mask detach_mowse 000102 syn_iocb_ptr detach_mowse 000104 iocb_ptr detach_mowse 000106 mowse_iocb_ptr detach_mowse 000110 code detach_mowse 000111 fsc detach_mowse 000114 message_len detach_mowse 000116 temp_seg_name detach_mowse 000130 fatal_error_info fatal_return THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac alloc_auto_adj ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ get_at_ hcs_$reset_ips_mask hcs_$set_ips_mask iox_$close iox_$close_file iox_$control iox_$destroy_iocb iox_$detach_iocb iox_$look_iocb iox_$move_attach terminate_process_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unable_to_do_io ws_error_$ws_video_invoked LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 33 000122 2 155 000124 4 22 000132 43 000136 115 000155 116 000202 117 000204 118 000230 123 000231 124 000257 125 000261 126 000305 132 000306 133 000335 134 000337 136 000363 141 000364 142 000367 143 000371 148 000426 149 000462 150 000464 152 000510 157 000511 159 000540 160 000542 162 000573 167 000574 168 000575 169 000606 170 000617 171 000621 172 000632 177 000633 178 000646 179 000650 180 000661 182 000662 187 000673 188 000704 189 000706 191 000742 197 000743 198 000755 199 000767 234 001001 206 001002 220 001003 221 001004 222 001007 224 001031 ----------------------------------------------------------- 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