COMPILATION LISTING OF SEGMENT graphic_terminal_status_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/18/82 1640.2 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* ****************************************************** 8* * * 9* * * 10* * Copyright (c) 1972 by Massachusetts Institute of * 11* * Technology and Honeywell Information Systems, Inc. * 12* * * 13* * * 14* ****************************************************** */ 15 16 /* This program interprets error messages from intelligent graphic terminals. 17* Coded about Sept 1973 by C. D. Tavares 18* Last modified 2/10/75 by C. D. Tavares to make list indices DPI from SPI. */ 19 graphic_terminal_status_: proc; 20 return; 21 22 decode: entry (instring, error_code); 23 24 dcl instring char (*) parameter, 25 error_code fixed bin parameter; 26 27 dcl code fixed bin; 28 29 dcl keep_instring char (100) aligned static varying, 30 depth fixed bin static, 31 path (25) fixed bin static, 32 node fixed bin static, 33 static_error_code static fixed bin, 34 error_char char (1) static, 35 temp_array (1) fixed bin, 36 temp_string char (32); 37 38 dcl initted bit (1) static initial (""b) aligned, 39 error_list (0:64) static internal fixed bin (35) initial ((65) -1); 40 1 1 /* -------- BEGIN include file graphic_code_dcl.incl.pl1 ---------- */ 1 2 1 3 /* The following structure maintains a nonobvious positional relationship 1 4* with respect to the LSM block types as defined by the graphic compiler. 1 5* It therefore has an intimiate and delicate relationship with certain tables 1 6* defined in graphic_comp_specs.incl.pl1. */ 1 7 1 8 dcl 1 Graphic_Code_Structure aligned static options (constant), 1 9 2 Dynamic_and_structural_effectors aligned, 1 10 3 (Pause_char initial ("$"), 1 11 Reference_char initial ("%"), 1 12 Increment_char initial ("&"), 1 13 Alter_char initial ("'"), 1 14 Node_begin_char initial ("("), 1 15 Node_end_char initial (")"), 1 16 Control_char initial ("*"), 1 17 Display_char initial ("+"), 1 18 Query_char initial (","), 1 19 Erase_char initial ("-"), 1 20 Synchronize_char initial ("."), 1 21 Delete_char initial ("/")) char (1) unaligned, 1 22 2 Graphic_effectors aligned, 1 23 3 (Setposition_char initial ("0"), 1 24 Setpoint_char initial ("1"), 1 25 Vector_char initial ("2"), 1 26 Shift_char initial ("3"), 1 27 Point_char initial ("4")) char (1) unaligned, 1 28 3 Illegal_pad char (3) unaligned initial ((3)"U"), 1 29 2 Mapping_effectors aligned, 1 30 3 (Scaling_char initial ("5"), 1 31 Rotation_char initial ("6"), 1 32 Clipping_char initial ("7")) char (1) unaligned, 1 33 3 Illegal_pad char (5) unaligned initial ((5)"U"), 1 34 2 Mode_effectors aligned, 1 35 3 (Intensity_char initial ("8"), 1 36 Linetype_char initial ("9"), 1 37 Sensitivity_char initial (";"), 1 38 Blinking_char initial (":"), 1 39 Color_char initial ("<")) char (1) unaligned, 1 40 3 Illegal_pad char (3) unaligned initial ((3)"U"), 1 41 2 Special_effectors aligned, 1 42 3 (Symbol_char initial ("="), 1 43 Text_char initial (">"), 1 44 Datablock_char initial ("?")) char (1) unaligned, 1 45 3 Illegal_pad char (9) unaligned initial ((9)"U"); 1 46 1 47 dcl 1 Graphic_Defaults aligned static options (constant), 1 48 2 Mode_defaults aligned, 1 49 3 Intensity_default fixed bin initial (7), 1 50 3 Linetype_default fixed bin initial (0), 1 51 3 Blinking_default fixed bin initial (0), 1 52 3 Sensitivity_default fixed bin initial (0), 1 53 3 Color_default (3) fixed bin initial ((3)16), 1 54 2 Mapping_defaults aligned, 1 55 3 Scaling_default (3) float bin initial ((3)1e0), 1 56 3 Rotation_default (3) fixed bin initial ((3)0), 1 57 3 Clipping_default (3, 2) fixed bin initial ((3) (-2048, 2048)), 1 58 2 Identity_matrix (3, 3) float bin initial (1e0, (3)0e0, 1e0, (3)0e0, 1e0); 1 59 1 60 dcl Graphic_Element_Lengths (32 : 63) aligned static options (constant) initial 1 61 ((4)-1, /* not used */ 1 62 1, /* pause */ 4, /* reference */ 9, /* increment */ 9, /* alter */ 1 63 5, /* node begin */ 1, /* node end */ 4, /* control */ 4, /* display */ 1 64 3, /* query */ 1, /* erase */ 1, /* synchronize */ 4, /* delete */ 1 65 10, /* setposition */ 10, /* setpoint */ 10, /* vector */ 10, /* shift */ 1 66 10, /* point */ 10, /* scaling */ 7, /* rotation */ 13, /* clipping */ 1 67 2, /* intensity */ 2, /* line type */ 2, /* blinking */ 2, /* sensitivity */ 1 68 4, /* color */ 0, /* symbol */ 0, /* text */ 0 /* data */); 1 69 1 70 dcl zero_node_id char (3) static initial ("@@@") options (constant); 1 71 1 72 dcl request_for_status char (1) static aligned initial ("") options (constant); 1 73 1 74 dcl (List_char initial ("@"), 1 75 Array_char initial ("A")) char (1) aligned static options (constant); 1 76 1 77 /* --------- END include file graphic_code_dcl.incl.pl1 ----------- */ 41 42 43 keep_instring = instring; 44 depth, node = 0; 45 error_char = "@"; /* no error */ 46 47 if substr (keep_instring, 1, 1) ^= Node_begin_char then do; 48 code = 64; 49 goto return_error; 50 end; 51 52 temp_string = substr (keep_instring, 2, 1); 53 54 call graphic_code_util_$decode_spi (addr (temp_string), 1, temp_array); 55 code = temp_array (1); 56 57 if code = 0 then do; 58 if length (keep_instring) ^= 4 then code = 64; 59 else if substr (keep_instring, 3, 1) ^= Node_end_char then code = 64; 60 else return; 61 end; 62 63 error_char = substr (keep_instring, 3, 1); 64 65 temp_string = substr (keep_instring, 4, 3); 66 call graphic_code_util_$decode_uid (addr (temp_string), 1, temp_array); 67 node = temp_array (1); 68 69 temp_string = substr (keep_instring, 7, 1); 70 call graphic_code_util_$decode_spi (addr (temp_string), 1, temp_array); 71 depth = temp_array (1); 72 73 temp_string = substr (keep_instring, 8, depth*2); 74 call graphic_code_util_$decode_dpi (addr (temp_string), depth, path); 75 76 if length (keep_instring) ^= 9 + depth*2 then code = 64; 77 if substr (keep_instring, 8 + depth*2, 1) ^= Node_end_char then code = 64; 78 79 return_error: 80 if ^initted then call initialize_error_list; 81 82 error_code, static_error_code = error_list (code); 83 return; 84 85 initialize_error_list: proc options (no_quick_blocks); 86 2 1 /* --------- BEGIN graphic_terminal_errors.incl.pl1 --------- */ 2 2 2 3 dcl Graphic_terminal_errors (0:64) fixed bin (35) initial 2 4 (0, /* 00 */ 2 5 (7) graphic_error_table_$term_bad_err_no, /* 01 - 07 */ 2 6 graphic_error_table_$term_bad_effector, /* 10 */ 2 7 graphic_error_table_$term_bad_input_device, /* 11 */ 2 8 graphic_error_table_$term_bad_increment_eff, /* 12 */ 2 9 (5) graphic_error_table_$term_bad_err_no, /* 13 - 17 */ 2 10 graphic_error_table_$term_too_many_levels, /* 20 */ 2 11 graphic_error_table_$term_no_active_structure, /* 21 */ 2 12 graphic_error_table_$term_node_too_large, /* 22 */ 2 13 graphic_error_table_$term_no_room, /* 23 */ 2 14 graphic_error_table_$term_too_many_ends, /* 24 */ 2 15 (3) graphic_error_table_$term_bad_err_no, /* 25 - 27 */ 2 16 graphic_error_table_$term_node_not_found, /* 30 */ 2 17 graphic_error_table_$term_bad_increment_node, /* 31 */ 2 18 (36) graphic_error_table_$term_bad_err_no, /* 32 - 75 */ 2 19 graphic_error_table_$term_bad_message, /* 76 */ 2 20 graphic_error_table_$term_bad_parity, /* 77 */ 2 21 graphic_error_table_$term_bad_err_message /* 100 */ 2 22 ); 2 23 2 24 dcl (graphic_error_table_$term_bad_err_no, 2 25 graphic_error_table_$term_bad_effector, 2 26 graphic_error_table_$term_bad_input_device, 2 27 graphic_error_table_$term_bad_increment_eff, 2 28 graphic_error_table_$term_too_many_levels, 2 29 graphic_error_table_$term_no_active_structure, 2 30 graphic_error_table_$term_node_too_large, 2 31 graphic_error_table_$term_no_room, 2 32 graphic_error_table_$term_too_many_ends, 2 33 graphic_error_table_$term_node_not_found, 2 34 graphic_error_table_$term_bad_increment_node, 2 35 graphic_error_table_$term_bad_message, 2 36 graphic_error_table_$term_bad_parity, 2 37 graphic_error_table_$term_bad_err_message) fixed bin (35) static external; 2 38 2 39 /* ---------- END graphic_terminal_errors.incl.pl1 ---------- */ 87 88 89 error_list = Graphic_terminal_errors; 90 initted = "1"b; 91 return; 92 end; 93 94 95 96 interpret: entry (status_code, errchar, nd, dp, pth, error_code); 97 98 dcl (status_code, nd, dp, pth (*)) fixed bin parameter, 99 i fixed bin, 100 errchar char (1); 101 102 dcl error_table_$smallarg ext fixed bin; 103 104 error_code = 0; 105 status_code = static_error_code; 106 errchar = error_char; 107 nd = node; 108 dp = depth; 109 if dim (pth, 1) < depth then error_code = error_table_$smallarg; 110 else do i = 1 to depth; 111 pth (i) = path (i); 112 end; 113 114 return; 115 116 117 118 /* %include graphic_code_util_; */ 119 dcl (graphic_code_util_$decode_spi, 120 graphic_code_util_$decode_dpi, 121 graphic_code_util_$decode_uid) ext entry (pointer, fixed bin, (*) fixed bin); 122 123 end graphic_terminal_status_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/18/82 1627.9 graphic_terminal_status_.pl1 >dumps>old>recomp>graphic_terminal_status_.pl1 41 1 03/27/82 0439.2 graphic_code_dcl.incl.pl1 >ldd>include>graphic_code_dcl.incl.pl1 87 2 03/27/82 0439.3 graphic_terminal_errors.incl.pl1 >ldd>include>graphic_terminal_errors.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. Dynamic_and_structural_effectors 000000 constant structure level 2 dcl 1-8 Graphic_Code_Structure 000000 constant structure level 1 dcl 1-8 Graphic_terminal_errors 000100 automatic fixed bin(35,0) initial array dcl 2-3 set ref 89 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* 2-3* Node_begin_char 1 000000 constant char(1) initial level 3 packed unaligned dcl 1-8 ref 47 Node_end_char 1(09) 000000 constant char(1) initial level 3 packed unaligned dcl 1-8 ref 59 77 code 000100 automatic fixed bin(17,0) dcl 27 set ref 48* 55* 57 58* 59* 76* 77* 82 depth 000042 internal static fixed bin(17,0) dcl 29 set ref 44* 71* 73 74* 76 77 108 109 110 dp parameter fixed bin(17,0) dcl 98 set ref 96 108* errchar parameter char(1) unaligned dcl 98 set ref 96 106* error_char 000076 internal static char(1) unaligned dcl 29 set ref 45* 63* 106 error_code parameter fixed bin(17,0) dcl 24 set ref 22 82* 96 104* 109* error_list 000100 internal static fixed bin(35,0) initial array dcl 38 set ref 82 89* error_table_$smallarg 000202 external static fixed bin(17,0) dcl 102 ref 109 graphic_code_util_$decode_dpi 000206 constant entry external dcl 119 ref 74 graphic_code_util_$decode_spi 000204 constant entry external dcl 119 ref 54 70 graphic_code_util_$decode_uid 000210 constant entry external dcl 119 ref 66 graphic_error_table_$term_bad_effector 000214 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_bad_err_message 000244 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_bad_err_no 000212 external static fixed bin(35,0) dcl 2-24 ref 2-3 2-3 2-3 2-3 2-3 2-3 2-3 2-3 2-3 2-3 graphic_error_table_$term_bad_increment_eff 000220 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_bad_increment_node 000236 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_bad_input_device 000216 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_bad_message 000240 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_bad_parity 000242 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_no_active_structure 000224 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_no_room 000230 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_node_not_found 000234 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_node_too_large 000226 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_too_many_ends 000232 external static fixed bin(35,0) dcl 2-24 ref 2-3 graphic_error_table_$term_too_many_levels 000222 external static fixed bin(35,0) dcl 2-24 ref 2-3 i 000112 automatic fixed bin(17,0) dcl 98 set ref 110* 111 111* initted 000077 internal static bit(1) initial dcl 38 set ref 79 90* instring parameter char unaligned dcl 24 ref 22 43 keep_instring 000010 internal static varying char(100) dcl 29 set ref 43* 47 52 58 59 63 65 69 73 76 77 nd parameter fixed bin(17,0) dcl 98 set ref 96 107* node 000074 internal static fixed bin(17,0) dcl 29 set ref 44* 67* 107 path 000043 internal static fixed bin(17,0) array dcl 29 set ref 74* 111 pth parameter fixed bin(17,0) array dcl 98 set ref 96 109 111* static_error_code 000075 internal static fixed bin(17,0) dcl 29 set ref 82* 105 status_code parameter fixed bin(17,0) dcl 98 set ref 96 105* temp_array 000101 automatic fixed bin(17,0) array dcl 29 set ref 54* 55 66* 67 70* 71 temp_string 000102 automatic char(32) unaligned dcl 29 set ref 52* 54 54 65* 66 66 69* 70 70 73* 74 74 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Array_char internal static char(1) initial dcl 1-74 Graphic_Defaults internal static structure level 1 dcl 1-47 Graphic_Element_Lengths internal static fixed bin(17,0) initial array dcl 1-60 List_char internal static char(1) initial dcl 1-74 request_for_status internal static char(1) initial dcl 1-72 zero_node_id internal static char(3) initial unaligned dcl 1-70 NAMES DECLARED BY EXPLICIT CONTEXT. decode 000047 constant entry external dcl 22 graphic_terminal_status_ 000035 constant entry external dcl 19 initialize_error_list 000447 constant entry internal dcl 85 ref 79 interpret 000355 constant entry external dcl 96 return_error 000333 constant label dcl 79 ref 49 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 54 54 66 66 70 70 74 74 dim builtin function ref 109 length builtin function ref 58 76 substr builtin function ref 47 52 59 63 65 69 73 77 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1142 1410 633 1152 Length 1672 633 246 245 307 172 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME graphic_terminal_status_ 98 external procedure is an external procedure. initialize_error_list 132 internal procedure is declared options(non_quick). STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 keep_instring graphic_terminal_status_ 000042 depth graphic_terminal_status_ 000043 path graphic_terminal_status_ 000074 node graphic_terminal_status_ 000075 static_error_code graphic_terminal_status_ 000076 error_char graphic_terminal_status_ 000077 initted graphic_terminal_status_ 000100 error_list graphic_terminal_status_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME graphic_terminal_status_ 000100 code graphic_terminal_status_ 000101 temp_array graphic_terminal_status_ 000102 temp_string graphic_terminal_status_ 000112 i graphic_terminal_status_ initialize_error_list 000100 Graphic_terminal_errors initialize_error_list THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_int_this return ext_entry ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. graphic_code_util_$decode_dpi graphic_code_util_$decode_spi graphic_code_util_$decode_uid THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$smallarg graphic_error_table_$term_bad_effector graphic_error_table_$term_bad_err_message graphic_error_table_$term_bad_err_no graphic_error_table_$term_bad_increment_eff graphic_error_table_$term_bad_increment_node graphic_error_table_$term_bad_input_device graphic_error_table_$term_bad_message graphic_error_table_$term_bad_parity graphic_error_table_$term_no_active_structure graphic_error_table_$term_no_room graphic_error_table_$term_node_not_found graphic_error_table_$term_node_too_large graphic_error_table_$term_too_many_ends graphic_error_table_$term_too_many_levels LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000034 20 000042 22 000043 43 000065 44 000100 45 000102 47 000104 48 000113 49 000115 52 000116 54 000121 55 000145 57 000147 58 000150 59 000157 60 000173 63 000174 65 000201 66 000204 67 000230 69 000233 70 000236 71 000262 73 000265 74 000271 76 000313 77 000323 79 000333 82 000341 83 000346 96 000347 104 000365 105 000366 106 000372 107 000376 108 000400 109 000402 110 000416 111 000425 112 000443 114 000445 85 000446 2 3 000454 89 000625 90 000630 91 000632 ----------------------------------------------------------- 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