COMPILATION LISTING OF SEGMENT graphic_element_length_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/18/82 1638.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) Honeywell Information Systems Inc., 1981 * 11* * * 12* * * 13* *********************************************************** */ 14 15 /* ****************************************************** 16* * * 17* * * 18* * Copyright (c) 1972 by Massachusetts Institute of * 19* * Technology and Honeywell Information Systems, Inc. * 20* * * 21* * * 22* ****************************************************** */ 23 24 graphic_element_length_: proc (string, indx) returns (fixed bin); 25 26 /* This procedure returns the length of a single graphic effector string. 27* Written c. 1973 by C. D. Tavares 28* Last modified 04/25/80 by CDT to replace signal statement with call to sub_err_. */ 29 30 dcl string char (*) parameter, 31 indx fixed bin (21) parameter, 32 len fixed bin; 33 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 ----------- */ 34 35 36 dcl effector fixed bin, 37 temp_chars char (2) aligned, 38 fixed_array (1) fixed bin, 39 sub_err_ ext entry options (variable), 40 graphic_error_table_$unrecognized_effector ext fixed bin (35) static, 41 (addr, byte, divide, hbound, lbound, null, rank, substr) builtin; 42 43 dcl graphic_code_util_$decode_dpi ext entry (pointer, fixed bin, (*) fixed bin); 44 45 effector = rank (substr (string, indx, 1)); /* get effector value */ 46 if (effector < lbound (Graphic_Element_Lengths, 1)) | 47 (effector > hbound (Graphic_Element_Lengths, 1)) then 48 call sub_err_ (graphic_error_table_$unrecognized_effector, "graphic_element_length_", "s", null, 0, 49 """^a"" not a valid graphic effector.", byte (effector)); 50 /* stops the user cold, can't return. */ 51 52 len = Graphic_Element_Lengths (effector); /* takes care of simple cases */ 53 54 if len ^= 0 then return (len); 55 56 goto special_effector (effector); /* handle tough cases */ 57 58 special_effector (61): /* symbol */ 59 special_effector (62): /* text */ 60 effector = effector - 60; /* little kludge */ 61 62 temp_chars = substr (string, indx + effector, 2); /* length of text */ 63 call graphic_code_util_$decode_dpi (addr (temp_chars), 1, fixed_array); /* get numeric length */ 64 65 return (fixed_array (1) + effector + 2); 66 67 special_effector (63): /* data */ 68 temp_chars = substr (string, indx + 1, 2); /* get char length */ 69 call graphic_code_util_$decode_dpi (addr (temp_chars), 1, fixed_array); /* get numeric length */ 70 71 len = divide (fixed_array (1) + 5, 6, 17, 0) + 3; /* length in bits -> chars */ 72 73 return (len); 74 75 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/18/82 1627.8 graphic_element_length_.pl1 >dumps>old>recomp>graphic_element_length_.pl1 34 1 03/27/82 0439.2 graphic_code_dcl.incl.pl1 >ldd>include>graphic_code_dcl.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. Graphic_Element_Lengths 000003 constant fixed bin(17,0) initial array dcl 1-60 ref 46 46 52 addr builtin function dcl 36 ref 63 63 69 69 byte builtin function dcl 36 ref 46 46 divide builtin function dcl 36 ref 71 effector 000101 automatic fixed bin(17,0) dcl 36 set ref 45* 46 46 46 46 52 56 58* 58 62 65 fixed_array 000103 automatic fixed bin(17,0) array dcl 36 set ref 63* 65 69* 71 graphic_code_util_$decode_dpi 000014 constant entry external dcl 43 ref 63 69 graphic_error_table_$unrecognized_effector 000012 external static fixed bin(35,0) dcl 36 set ref 46* hbound builtin function dcl 36 ref 46 indx parameter fixed bin(21,0) dcl 30 ref 24 45 62 67 lbound builtin function dcl 36 ref 46 len 000100 automatic fixed bin(17,0) dcl 30 set ref 52* 54 54 71* 73 null builtin function dcl 36 ref 46 46 rank builtin function dcl 36 ref 45 string parameter char unaligned dcl 30 ref 24 45 62 67 sub_err_ 000010 constant entry external dcl 36 ref 46 substr builtin function dcl 36 ref 45 62 67 temp_chars 000102 automatic char(2) dcl 36 set ref 62* 63 63 67* 69 69 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Array_char internal static char(1) initial dcl 1-74 Graphic_Code_Structure internal static structure level 1 dcl 1-8 Graphic_Defaults internal static structure level 1 dcl 1-47 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. graphic_element_length_ 000105 constant entry external dcl 24 special_effector 000000 constant label array(61:63) dcl 58 ref 56 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 424 442 335 434 Length 634 335 16 156 67 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME graphic_element_length_ 120 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME graphic_element_length_ 000100 len graphic_element_length_ 000101 effector graphic_element_length_ 000102 temp_chars graphic_element_length_ 000103 fixed_array graphic_element_length_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. graphic_code_util_$decode_dpi sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. graphic_error_table_$unrecognized_effector LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 24 000101 45 000120 46 000130 52 000214 54 000217 56 000223 58 000224 62 000226 63 000236 65 000263 67 000271 69 000300 71 000325 73 000332 ----------------------------------------------------------- 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