COMPILATION LISTING OF SEGMENT ws_tty_write_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 01/24/89 0849.0 mst Tue 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-12-05,RBarstad), approve(86-12-11,MCR7585), 11* audit(87-06-05,Gilcrease), install(87-08-07,MR12.1-1075): 12* Created. 13* END HISTORY COMMENTS */ 14 15 /* format: style3,^ifthenstmt,indthenelse,^indnoniterdo,^indprocbody,initcol3,dclind5,idind32 */ 16 ws_tty_write_: 17 proc (); 18 return; 19 20 /* ------------------------ DESCRIPTION ---------------------------------- */ 21 22 /****^ VERSION 1.10 23* 24* ws_tty_write_ entries to support video mode in MOWSE 25* 26* ws_tty_write_$write 27* ws_tty_write_$write_whole_string 28* 29**/ 30 31 /* ------------------------ PARAMETERS ----------------------------------- */ 32 33 dcl I_mark_flag bit (1) parm; /* whether to set a mark on write_whole_string entry */ 34 dcl I_n_chars_to_write fixed bin (21) parm; /* maximum number of chars to return */ 35 dcl I_offset fixed bin (21) parm; /* offset in buffer to start at */ 36 dcl I_buffer_ptr ptr parm; /* pointer to caller's buffer */ 37 dcl I_string char (*) parm; 38 dcl I_iocb_ptr ptr parm; /* tty index (actually also device index ) */ 39 dcl O_code fixed bin (35) parm; /* error code */ 40 dcl O_n_chars_written fixed bin (21) parm; /* actual number of characters returned */ 41 dcl O_state fixed bin parm; /* tty state, 1 ignored, 2 listening, 5 dialed */ 42 43 /* ------------------------ AUTOMATIC ------------------------------------ */ 44 45 dcl code fixed bin (35); /* error code */ 46 dcl iocb_ptr ptr; /* iocb pointer for iox */ 47 dcl mark_flag bit (1); /* whether to set a mark on write_whole_string entry */ 48 dcl n_chars_to_write fixed bin (21); /* maximum number of chars to return */ 49 dcl n_chars_written fixed bin (21); /* actual number of characters returned */ 50 dcl offset fixed bin (21); /* offset in buffer to start at */ 51 dcl buffer_ptr ptr; /* pointer to caller's buffer */ 52 dcl state fixed bin; /* tty state, 1 ignored, 2 listening, 5 dialed */ 53 dcl write_ptr ptr; /* the right ptr to the data to write */ 54 55 /* ------------------------ BASED ---------------------------------------- */ 56 57 dcl based_chars (0:offset) char (1) based unal; 58 /* to bump write ptr */ 59 60 /* ------------------------ CONSTANTS ------------------------------------ */ 61 62 dcl ( 63 ME char (13) init ("ws_tty_write_"), 64 FALSE bit (1) init ("0"b), 65 TRUE bit (1) init ("1"b) 66 ) internal static options (constant); 67 68 /* ------------------------ EXTERNALS ------------------------------------ */ 69 70 dcl (error_table_$bad_arg) fixed bin (35) external static; 71 72 /* ------------------------ ENTRIES -------------------------------------- */ 73 74 dcl ws_tty_mgr_$ok_iocb entry (ptr, ptr, ptr, fixed bin (35)) returns (bit (1)); 75 dcl ws_tty_mgr_$send_text entry (ptr, ptr, fixed bin (21)); 76 dcl ws_trace_ entry () options (variable); 77 78 /* ------------------------ BUILTINS and CONDITIONS ---------------------- */ 79 80 dcl (addr, length) builtin; 81 82 /* dcl cleanup condition; */ 83 84 85 /* ------------------------ PROGRAM -------------------------------------- */ 86 87 write: 88 entry (I_iocb_ptr, I_buffer_ptr, I_offset, I_n_chars_to_write, O_n_chars_written, O_state, O_code); 89 90 /**** get parameters */ 91 buffer_ptr = I_buffer_ptr; 92 offset = I_offset; 93 n_chars_to_write = I_n_chars_to_write; 94 95 /**** init */ 96 code = 0; 97 state = 0; 98 n_chars_written = 0; 99 100 if ws_tty_data$Flags.Trace = TRUE 101 then call ws_trace_ ("^a$write entry: iocb_ptr=^p, buffer=^p, offset=^i, chars=^i.", ME, I_iocb_ptr, buffer_ptr, 102 offset, n_chars_to_write); 103 104 /**** check environment */ 105 if ^ws_tty_mgr_$ok_iocb (I_iocb_ptr, iocb_ptr, mowse_io_data_ptr, code) 106 then goto write_exit; 107 108 mowse_io_data.ws.flags.mark_set = FALSE; 109 110 /**** check size of write */ 111 if n_chars_to_write < 0 112 then do; 113 code = error_table_$bad_arg; 114 goto write_exit; 115 end; 116 117 if n_chars_to_write = 0 118 then goto write_done; 119 120 /**** find the portion of the caller's buffer to write */ 121 write_ptr = addr (buffer_ptr -> based_chars (offset)); 122 n_chars_written = n_chars_to_write; 123 124 /**** write it */ 125 call ws_tty_mgr_$send_text (iocb_ptr, write_ptr, n_chars_written); 126 127 write_done: 128 O_n_chars_written = n_chars_written; 129 130 write_exit: 131 if ws_tty_data$Flags.Trace = TRUE 132 then call ws_trace_ ("^a$write exit: n_chars_written=^i, state=^i, code=^i.^/", ME, n_chars_written, state, 133 code); 134 135 O_state = state; 136 O_code = code; 137 return; 138 139 write_whole_string: 140 entry (I_iocb_ptr, I_string, I_mark_flag, O_n_chars_written, O_state, O_code); 141 142 /**** get parameters */ 143 mark_flag = I_mark_flag; 144 145 /**** init */ 146 code = 0; 147 state = 0; 148 n_chars_written = 0; 149 offset = 0; 150 151 if ws_tty_data$Flags.Trace 152 then call ws_trace_ ("^a$write_whole_string entry: iocb_ptr=^p, string='^a', mark=^i.", ME, I_iocb_ptr, 153 I_string, mark_flag); 154 155 /**** check environment */ 156 if ^ws_tty_mgr_$ok_iocb (I_iocb_ptr, iocb_ptr, mowse_io_data_ptr, code) 157 then goto write_whole_string_exit; 158 159 mowse_io_data.ws.flags.mark_set = mark_flag; /* for the benefit of read_with_mark */ 160 161 /**** get pointers and string sizes */ 162 write_ptr = addr (I_string); 163 n_chars_to_write = length (I_string); 164 165 if n_chars_to_write = 0 166 then goto write_whole_done; 167 168 /**** write it */ 169 call ws_tty_mgr_$send_text (iocb_ptr, write_ptr, n_chars_to_write); 170 n_chars_written = n_chars_to_write; 171 172 write_whole_done: 173 O_n_chars_written = n_chars_written; 174 175 write_whole_string_exit: 176 if ws_tty_data$Flags.Trace = TRUE 177 then call ws_trace_ ("^a$write_whole_string exit: n_chars_written=^i, state=^i, code=^i.^/", ME, 178 n_chars_written, state, code); 179 180 O_state = state; 181 O_code = code; 182 return; 183 184 /* ------------------------ END PROGRAM ---------------------------------- */ 185 186 /* ------------------------ INTERNAL PROCEDURES -------------------------- */ 187 188 /* ------------------------ INCLUDES ------------------------------------- */ 189 1 1 /* BEGIN INCLUDE FILE ws_control_ids */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-06-05,RBarstad), approve(86-12-11,MCR7585), 1 5* audit(87-01-28,Gilcrease), install(87-08-07,MR12.1-1075): 1 6* ws_tty_ <-> WSTERM message control ids 1 7* 2) change(87-01-15,RBarstad), approve(87-01-15,MCR7585), 1 8* audit(87-01-28,Gilcrease), install(87-08-07,MR12.1-1075): 1 9* added control message flags 1 10* END HISTORY COMMENTS */ 1 11 1 12 /* message control ids */ 1 13 dcl ( 1 14 WS_ABORT init ("ABT"), 1 15 WS_ENTER_SYNC_MODE init ("ESM"), 1 16 WS_SYNC_MODE_ENTERED init ("SME"), 1 17 WS_EXIT_SYNC_MODE init ("XSM"), 1 18 WS_SYNC_MODE_EXITED init ("SMX"), 1 19 WS_END_ECHOED_INPUT init ("EEI"), 1 20 WS_END_NON_ECHOED_INPUT init ("ENI"), 1 21 WS_READ_WITH_NO_ECHO init ("RNE"), 1 22 WS_READ_WITH_ECHO init ("RWE"), 1 23 WS_SET_BREAK_TABLE init ("SBT"), 1 24 WS_SET_TTY_MODES init ("STM"), 1 25 WS_ECHOED_INPUT_CHARS init ("EIC"), 1 26 WS_UNECHOED_INPUT_CHARS init ("UIC"), 1 27 WS_PRINTER_ON init ("PON"), 1 28 WS_PRINTER_OFF init ("POF"), 1 29 WS_DISPLAY_TEXT init ("DTX"), 1 30 WS_ORDER init ("ORD") 1 31 ) char (3) internal static options (constant); 1 32 1 33 /* control message flags */ 1 34 dcl ( 1 35 WS_FLAG_NONE init ("000000000"b), 1 36 WS_FLAG_NO_BLOCK init ("010000000"b) /* don't block on read */ 1 37 ) bit (9) internal static options (constant); 1 38 1 39 /* END INCLUDE FILE ws_control_ids */ 190 191 2 1 /* BEGIN INCLUDE FILE ws_tty_data */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-12-05,RBarstad), approve(86-12-11,MCR7585), 2 5* audit(86-12-12,Gilcrease), install(87-08-07,MR12.1-1075): 2 6* ws_tty_ external static 2 7* END HISTORY COMMENTS */ 2 8 2 9 dcl 1 ws_tty_data$Flags aligned external static, 2 10 3 Debug bit (1) unaligned, 2 11 3 Trace bit (1) unaligned, 2 12 3 Pad bit (34) unaligned; 2 13 2 14 /* END INCLUDE FILE ws_tty_data */ 192 193 3 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 3 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 3 3* version number to IOX2. */ 3 4 /* format: style2 */ 3 5 3 6 dcl 1 iocb aligned based, /* I/O control block. */ 3 7 2 version character (4) aligned, /* IOX2 */ 3 8 2 name char (32), /* I/O name of this block. */ 3 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 3 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 3 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 3 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 3 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 3 14 2 reserved bit (72), /* Reserved for future use. */ 3 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 3 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 3 17 /* open(p,mode,not_used,s) */ 3 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 3 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 20 /* get_line(p,bufptr,buflen,actlen,s) */ 3 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 3 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 3 24 /* put_chars(p,bufptr,buflen,s) */ 3 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 3 26 /* modes(p,newmode,oldmode,s) */ 3 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 3 28 /* position(p,u1,u2,s) */ 3 29 2 control entry (ptr, char (*), ptr, fixed (35)), 3 30 /* control(p,order,infptr,s) */ 3 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 32 /* read_record(p,bufptr,buflen,actlen,s) */ 3 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 3 34 /* write_record(p,bufptr,buflen,s) */ 3 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 3 36 /* rewrite_record(p,bufptr,buflen,s) */ 3 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 3 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 39 /* seek_key(p,key,len,s) */ 3 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 41 /* read_key(p,key,len,s) */ 3 42 2 read_length entry (ptr, fixed (21), fixed (35)), 3 43 /* read_length(p,len,s) */ 3 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 3 45 /* open_file(p,mode,desc,not_used,s) */ 3 46 2 close_file entry (ptr, char (*), fixed bin (35)), 3 47 /* close_file(p,desc,s) */ 3 48 2 detach entry (ptr, char (*), fixed bin (35)); 3 49 /* detach(p,desc,s) */ 3 50 3 51 declare iox_$iocb_version_sentinel 3 52 character (4) aligned external static; 3 53 3 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 194 195 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 * * * * * * * * * * * * */ 196 197 198 end ws_tty_write_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/24/89 0849.0 ws_tty_write_.pl1 >spec>install>MR12.3-1012>ws_tty_write_.pl1 190 1 08/10/87 1335.8 ws_control_ids.incl.pl1 >ldd>include>ws_control_ids.incl.pl1 192 2 08/10/87 1335.8 ws_tty_data.incl.pl1 >ldd>include>ws_tty_data.incl.pl1 194 3 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 196 4 01/24/89 0847.4 mowse_io_data.incl.pl1 >spec>install>MR12.3-1012>mowse_io_data.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. FALSE constant bit(1) initial packed unaligned dcl 62 ref 108 I_buffer_ptr parameter pointer dcl 36 ref 87 91 I_iocb_ptr parameter pointer dcl 38 set ref 87 100* 105* 139 151* 156* I_mark_flag parameter bit(1) packed unaligned dcl 33 ref 139 143 I_n_chars_to_write parameter fixed bin(21,0) dcl 34 ref 87 93 I_offset parameter fixed bin(21,0) dcl 35 ref 87 92 I_string parameter char packed unaligned dcl 37 set ref 139 151* 162 163 ME 000000 constant char(13) initial packed unaligned dcl 62 set ref 100* 130* 151* 175* O_code parameter fixed bin(35,0) dcl 39 set ref 87 136* 139 181* O_n_chars_written parameter fixed bin(21,0) dcl 40 set ref 87 127* 139 172* O_state parameter fixed bin(17,0) dcl 41 set ref 87 135* 139 180* TRUE constant bit(1) initial packed unaligned dcl 62 ref 100 130 175 Trace 0(01) 000020 external static bit(1) level 2 packed packed unaligned dcl 2-9 ref 100 130 151 175 addr builtin function dcl 80 ref 121 162 based_chars based char(1) array packed unaligned dcl 57 set ref 121 buffer_ptr 000110 automatic pointer dcl 51 set ref 91* 100* 121 code 000100 automatic fixed bin(35,0) dcl 45 set ref 96* 105* 113* 130* 136 146* 156* 175* 181 error_table_$bad_arg 000010 external static fixed bin(35,0) dcl 70 ref 113 flags 327 based structure level 3 packed packed unaligned dcl 4-18 iocb_ptr 000102 automatic pointer dcl 46 set ref 105* 125* 156* 169* length builtin function dcl 80 ref 163 mark_flag 000104 automatic bit(1) packed unaligned dcl 47 set ref 143* 151* 159 mark_set 327(02) based bit(1) level 4 packed packed unaligned dcl 4-18 set ref 108* 159* mowse_io_data based structure level 1 unaligned dcl 4-18 mowse_io_data_ptr 000116 automatic pointer dcl 4-17 set ref 105* 108 156* 159 n_chars_to_write 000105 automatic fixed bin(21,0) dcl 48 set ref 93* 100* 111 117 122 163* 165 169* 170 n_chars_written 000106 automatic fixed bin(21,0) dcl 49 set ref 98* 122* 125* 127 130* 148* 170* 172 175* offset 000107 automatic fixed bin(21,0) dcl 50 set ref 92* 100* 121 149* state 000112 automatic fixed bin(17,0) dcl 52 set ref 97* 130* 135 147* 175* 180 wait_info based structure level 1 unaligned dcl 4-126 write_ptr 000114 automatic pointer dcl 53 set ref 121* 125* 162* 169* ws 327 based structure level 2 unaligned dcl 4-18 ws_trace_ 000016 constant entry external dcl 76 ref 100 130 151 175 ws_tty_data$Flags 000020 external static structure level 1 dcl 2-9 ws_tty_mgr_$ok_iocb 000012 constant entry external dcl 74 ref 105 156 ws_tty_mgr_$send_text 000014 constant entry external dcl 75 ref 125 169 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. WS_ABORT internal static char(3) initial packed unaligned dcl 1-13 WS_DISPLAY_TEXT internal static char(3) initial packed unaligned dcl 1-13 WS_ECHOED_INPUT_CHARS internal static char(3) initial packed unaligned dcl 1-13 WS_END_ECHOED_INPUT internal static char(3) initial packed unaligned dcl 1-13 WS_END_NON_ECHOED_INPUT internal static char(3) initial packed unaligned dcl 1-13 WS_ENTER_SYNC_MODE internal static char(3) initial packed unaligned dcl 1-13 WS_EXIT_SYNC_MODE internal static char(3) initial packed unaligned dcl 1-13 WS_FLAG_NONE internal static bit(9) initial packed unaligned dcl 1-34 WS_FLAG_NO_BLOCK internal static bit(9) initial packed unaligned dcl 1-34 WS_ORDER internal static char(3) initial packed unaligned dcl 1-13 WS_PRINTER_OFF internal static char(3) initial packed unaligned dcl 1-13 WS_PRINTER_ON internal static char(3) initial packed unaligned dcl 1-13 WS_READ_WITH_ECHO internal static char(3) initial packed unaligned dcl 1-13 WS_READ_WITH_NO_ECHO internal static char(3) initial packed unaligned dcl 1-13 WS_SET_BREAK_TABLE internal static char(3) initial packed unaligned dcl 1-13 WS_SET_TTY_MODES internal static char(3) initial packed unaligned dcl 1-13 WS_SYNC_MODE_ENTERED internal static char(3) initial packed unaligned dcl 1-13 WS_SYNC_MODE_EXITED internal static char(3) initial packed unaligned dcl 1-13 WS_UNECHOED_INPUT_CHARS internal static char(3) initial packed unaligned dcl 1-13 iocb based structure level 1 dcl 3-6 iox_$iocb_version_sentinel external static char(4) dcl 3-51 NAMES DECLARED BY EXPLICIT CONTEXT. write 000132 constant entry external dcl 87 write_done 000301 constant label dcl 127 set ref 117 write_exit 000303 constant label dcl 130 ref 105 114 write_whole_done 000527 constant label dcl 172 set ref 165 write_whole_string 000357 constant entry external dcl 139 write_whole_string_exit 000531 constant label dcl 175 ref 156 ws_tty_write_ 000116 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 710 732 600 720 Length 1204 600 22 235 107 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ws_tty_write_ 152 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ws_tty_write_ 000100 code ws_tty_write_ 000102 iocb_ptr ws_tty_write_ 000104 mark_flag ws_tty_write_ 000105 n_chars_to_write ws_tty_write_ 000106 n_chars_written ws_tty_write_ 000107 offset ws_tty_write_ 000110 buffer_ptr ws_tty_write_ 000112 state ws_tty_write_ 000114 write_ptr ws_tty_write_ 000116 mowse_io_data_ptr ws_tty_write_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ws_trace_ ws_tty_mgr_$ok_iocb ws_tty_mgr_$send_text THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg ws_tty_data$Flags LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000115 18 000123 87 000124 91 000146 92 000152 93 000154 96 000156 97 000157 98 000160 100 000161 105 000224 108 000247 111 000252 113 000254 114 000257 117 000260 121 000261 122 000265 125 000266 127 000301 130 000303 135 000344 136 000346 137 000350 139 000351 143 000401 146 000407 147 000410 148 000411 149 000412 151 000413 156 000453 159 000476 162 000504 163 000507 165 000511 169 000512 170 000525 172 000527 175 000531 180 000572 181 000574 182 000576 ----------------------------------------------------------- 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