ASSEMBLY LISTING OF SEGMENT >spec>on>6978-10/22/84>translate_strings_.alm ASSEMBLED ON: 10/22/84 1115.1 mst Mon OPTIONS USED: list ASSEMBLED BY: ALM Version 6.6 November 1982 ASSEMBLER CREATED: 09/21/83 1227.3 mst Wed  1 " ******************************************************  2 " * *  3 " * *  4 " * Copyright (c) 1972 by Massachusetts Institute of *  5 " * Technology and Honeywell Information Systems, Inc. *  6 " * *  7 " * *  8 " ******************************************************  9  10 " ******************************************************  11 " * *  12 " * *  13 " * Copyright, (C) Honeywell Information Systems *  14 " * Inc., 1980. *  15 " * *  16 " * *  17 " ******************************************************  18  000000 19 name translate_strings_  20  000001 21 equ p1,1  000002 22 equ p2,2  000003 23 equ p3,3  000004 24 equ p4,4  25  26 temp temp,temp1,temp2  27  28 include eis_bits  000100 1-1 bool ar,100  000040 1-2 bool rl,40 000020 1-3 bool id,20 1-4 "  000001 1-5 bool au,01 000002 1-6 bool qu,02 000003 1-7 bool du,03 000004 1-8 bool ic,04 000005 1-9 bool a,05  000005 1-10 bool al,05 000006 1-11 bool q,06  000006 1-12 bool ql,06 000010 1-13 bool x0,10 000011 1-14 bool x1,11 000012 1-15 bool x2,12 000013 1-16 bool x3,13 000014 1-17 bool x4,14 000015 1-18 bool x5,15 000016 1-19 bool x6,16 000017 1-20 bool x7,17 1-21 "  000003 1-22 bool move,03  000001 1-23 bool and,01  000007 1-24 bool or,07 000016 1-25 bool nand,16  000006 1-26 bool xor,6 000000 1-27 bool clear,0  000014 1-28 bool invert,14 1-29 "  000001 1-30 equ round,1  000001 1-31 equ truncate,1 29  000000 30 entry nine_to_six " a ninebit string to a sixbit string  000000 aa 000060 6270 00 31 nine_to_six: save  000001 aa 7 00040 2721 20 000002 0a 000106 7000 00 32 tsx0 get_args " get args in convenient regs 000003 aa 6 00050 7551 00 33 sta temp " change length of sixbit string from  000004 aa 000006 5060 07 34 div 6,dl " length in bits to length in  000005 aa 6 00050 2351 00 35 lda temp " sixbit chars and put back  000006 aa 1 00140 1605 40 36 mvt (ar+rl),(ar+rl),(ar),fill(000) " Do the magic  000007 aa 200000 000005 37 desc9a p2|0,a  000010 aa 300000 020006 38 desc6a p3|0,q  000011 aa 1 00000 0001 00 39 arg p1|0  000012 aa 7 00042 7101 20 40 return 41  000013 42 entry six_to_nine " The other way  000013 aa 000060 6270 00 43 six_to_nine: save  000014 aa 7 00040 2721 20 000015 0a 000106 7000 00 44 tsx0 get_args  000016 aa 6 00050 7561 00 45 stq temp " change length of sixbit string from  000017 aa 000044 7730 00 46 lrl 36 000020 aa 000006 5060 07 47 div 6,dl " length in bits to length in  000021 aa 000044 7370 00 48 lls 36 000022 aa 6 00050 2361 00 49 ldq temp " sixbit chars and put back  000023 aa 1 00140 1605 40 50 mvt (ar+rl),(ar+rl),(ar),fill(000) " wham. 000024 aa 200000 020005 51 desc6a p2|0,a  000025 aa 300000 000006 52 desc9a p3|0,q  000026 aa 1 00000 0001 00 53 arg p1|0  000027 aa 7 00042 7101 20 54 return 55  000030 56 entry nine_to_nine 000030 aa 000060 6270 00 57 nine_to_nine: save  000031 aa 7 00040 2721 20 000032 0a 000106 7000 00 58 tsx0 get_args  000033 aa 1 00140 1605 40 59 mvt (ar+rl),(ar+rl),(ar),fill(000) " faster than speeding bit 000034 aa 200000 000005 60 desc9a p2|0,a  000035 aa 300000 000006 61 desc9a p3|0,q  000036 aa 1 00000 0001 00 62 arg p1|0  000037 aa 7 00042 7101 20 63 return 64  000040 65 entry nine_to_four_ " a ninebit string to a fourbit string  000040 aa 000060 6270 00 66 nine_to_four_: save 000041 aa 7 00040 2721 20 000042 0a 000106 7000 00 67 tsx0 get_args " get args in convenient regs 000043 aa 6 00050 7551 00 68 sta temp " change length of fourbit string from 000044 aa 000044 5060 07 69 div 36,dl "get number of words  000045 aa 6 00051 7551 00 70 sta temp1 "store remainder  000046 aa 000010 4020 07 71 mpy 8,dl "q contains number of 4bit chars  72 "per number of words - remainder  000047 aa 6 00052 7561 00 73 stq temp2  000050 aa 6 00051 2361 00 74 ldq temp1 "now lets take care of remainderr 000051 aa 000011 5060 07 75 div 9,dl  000052 aa 000002 4020 07 76 mpy 2,dl "q now contains the number of 4 bit chars  77 "in the remainder 000053 aa 6 00052 0761 00 78 adq temp2 "add in even chars  000054 aa 6 00050 2351 00 79 lda temp " fourbit chars and put back  000055 aa 1 00140 1605 40 80 mvt (ar+rl),(ar+rl),(ar),fill(000) " Do the magic  000056 aa 200000 000005 81 desc9a p2|0,a  000057 aa 300000 040006 82 desc4a p3|0,q  000060 aa 1 00000 0001 00 83 arg p1|0  000061 aa 7 00042 7101 20 84 return 85  000062 86 entry four_to_nine_ " The other way  000062 aa 000060 6270 00 87 four_to_nine_: save 000063 aa 7 00040 2721 20 000064 0a 000106 7000 00 88 tsx0 get_args  000065 aa 6 00050 7561 00 89 stq temp " change length of fourbit string from 000066 aa 000044 7730 00 90 lrl 36 000067 aa 000044 5060 07 91 div 36,dl "get number of words  000070 aa 6 00051 7551 00 92 sta temp1 "store remainder  000071 aa 000010 4020 07 93 mpy 8,dl "q contains number of 4bit chars  94 "per number of words - remainder  000072 aa 6 00052 7561 00 95 stq temp2  000073 aa 6 00051 2361 00 96 ldq temp1 "now lets take care of remainderr 000074 aa 000011 5060 07 97 div 9,dl  000075 aa 000002 4020 07 98 mpy 2,dl "q now contains the number of 4 bit chars  99 "in the remainder 000076 aa 6 00052 0761 00 100 adq temp2 "add in even chars  000077 aa 000044 7370 00 101 lls 36 000100 aa 6 00050 2361 00 102 ldq temp " fourbit chars and put back  000101 aa 1 00140 1605 40 103 mvt (ar+rl),(ar+rl),(ar),fill(000) " wham. 000102 aa 200000 040005 104 desc4a p2|0,a  000103 aa 300000 000006 105 desc9a p3|0,q  000104 aa 1 00000 0001 00 106 arg p1|0  000105 aa 7 00042 7101 20 107 return 108  000106 109 get_args: " subr to get args into convenient regs  000106 aa 0 00002 3521 20 110 epp2 ap|2,* " get ptr to first arg  000107 aa 0 00010 3701 20 111 epp4 ap|8,* " get ptr to descriptor for first arg  000110 aa 4 00000 2351 00 112 lda p4|0 " pick out length element into a  000111 0a 000140 3750 00 113 ana =o000077777777 " get rid of description bits 000112 aa 0 00004 3535 20 114 epp3 ap|4,* " get ptr to second arg 000113 aa 0 00012 3701 20 115 epp4 ap|10,* " get ptr to descriptor for second arg 000114 aa 4 00000 2361 00 116 ldq p4|0 " pick out length element into q  000115 0a 000140 3760 00 117 anq =o000077777777 " get rid of description bits 000116 aa 0 00006 3701 20 118 epp4 ap|6,* " get ptr to table ptr  000117 aa 4 00000 3515 20 119 epp1 p4|0,* " get table ptr into p1 000120 aa 000000 7100 10 120 tra 0,x0 " and return  121  122 end  ENTRY SEQUENCES  000121 5a 000046 0000 00 000122 aa 7 00046 2721 20 000123 0a 000000 7100 00 000124 5a 000040 0000 00 000125 aa 7 00046 2721 20 000126 0a 000013 7100 00 000127 5a 000031 0000 00 000130 aa 7 00046 2721 20 000131 0a 000030 7100 00 000132 5a 000022 0000 00 000133 aa 7 00046 2721 20 000134 0a 000040 7100 00 000135 5a 000013 0000 00 000136 aa 7 00046 2721 20 000137 0a 000062 7100 00 LITERALS 000140 aa 000077 777777 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000141 5a 000003 000000 000142 5a 000063 600000 000143 aa 000000 000000 000144 55 000013 000002 000145 5a 000002 400003 000146 55 000006 000013 000147 aa 022 164 162 141 000150 aa 156 163 154 141 000151 aa 164 145 137 163 000152 aa 164 162 151 156 000153 aa 147 163 137 000 000154 55 000022 000003 000155 0a 000136 500000 000156 55 000016 000003 000157 aa 015 146 157 165 four_to_nine_  000160 aa 162 137 164 157 000161 aa 137 156 151 156 000162 aa 145 137 000 000 000163 55 000031 000013 000164 0a 000133 500000 000165 55 000025 000003 000166 aa 015 156 151 156 nine_to_four_  000167 aa 145 137 164 157 000170 aa 137 146 157 165 000171 aa 162 137 000 000 000172 55 000040 000022 000173 0a 000130 500000 000174 55 000034 000003 000175 aa 014 156 151 156 nine_to_nine  000176 aa 145 137 164 157 000177 aa 137 156 151 156 000200 aa 145 000 000 000 000201 55 000046 000031 000202 0a 000125 500000 000203 55 000043 000003 000204 aa 013 163 151 170 six_to_nine 000205 aa 137 164 157 137 000206 aa 156 151 156 145 000207 55 000054 000040 000210 0a 000122 500000 000211 55 000051 000003 000212 aa 013 156 151 156 nine_to_six 000213 aa 145 137 164 157 000214 aa 137 163 151 170 000215 55 000002 000046 000216 6a 000000 400002 000217 55 000057 000003 000220 aa 014 163 171 155 symbol_table  000221 aa 142 157 154 137 000222 aa 164 141 142 154 000223 aa 145 000 000 000 DEFINITIONS HASH TABLE  000224 aa 000000 000015 000225 aa 000000 000000 000226 aa 000000 000000 000227 5a 000046 000000 000230 aa 000000 000000 000231 aa 000000 000000 000232 5a 000022 000000 000233 5a 000054 000000 000234 5a 000040 000000 000235 aa 000000 000000 000236 aa 000000 000000 000237 5a 000031 000000 000240 5a 000013 000000 000241 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  000242 aa 000001 000000 000243 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000141 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000010 000007 a2 000000 000000 SYMBOL INFORMATION SYMBOL TABLE HEADER  000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000004 000004 aa 000000 112143 000005 aa 305203 523135 000006 aa 000000 113126 000007 aa 355712 206533 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000002 000002 000016 aa 000064 000000 000017 aa 000000 000146 000020 aa 000000 000122 000021 aa 000000 000134 000022 aa 000137 000122 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 040066 056066 000030 aa 040040 116157 000031 aa 166145 155142 000032 aa 145162 040061 000033 aa 071070 062040 000034 aa 107112 157150 000035 aa 156163 157156 000036 aa 056123 171163 000037 aa 115141 151156 000040 aa 164056 155040 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 154151 163164 000045 aa 040040 040040 000046 aa 040040 040040 000047 aa 040040 040040 000050 aa 040040 040040 000051 aa 040040 040040 000052 aa 040040 040040 000053 aa 040040 040040 000054 aa 040040 040040 000055 aa 040040 040040 000056 aa 040040 040040 000057 aa 040040 040040 000060 aa 040040 040040 000061 aa 040040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000002 000066 aa 000076 000055 000067 aa 131232 072537 000070 aa 000000 113126 000071 aa 347550 400000 000072 aa 000112 000036 000073 aa 043243 127522 000074 aa 000000 101621 000075 aa 351621 000000 000076 aa 076163 160145 >spec>on>6978-10/22/84>translate_strings_.alm  000077 aa 143076 157156 000100 aa 076066 071067 000101 aa 070055 061060 000102 aa 057062 062057 000103 aa 070064 076164 000104 aa 162141 156163 000105 aa 154141 164145 000106 aa 137163 164162 000107 aa 151156 147163 000110 aa 137056 141154 000111 aa 155040 040040 000112 aa 076154 144144 >ldd>include>eis_bits.incl.alm  000113 aa 076151 156143 000114 aa 154165 144145 000115 aa 076145 151163 000116 aa 137142 151164 000117 aa 163056 151156 000120 aa 143154 056141 000121 aa 154155 040040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  5 a translate_strings_: 37, 51, 60, 81, 104, eis_bits: 9. 5 al eis_bits: 10. 1 and eis_bits: 23. 100 ar translate_strings_: 36, 50, 59, 80, 103, eis_bits: 1. 1 au eis_bits: 5. 0 clear eis_bits: 27. 3 du eis_bits: 7. 62 four_to_nine_ translate_strings_: 86, 87.  106 get_args translate_strings_: 32, 44, 58, 67, 88, 109.  4 ic eis_bits: 8. 20 id eis_bits: 3. 14 invert eis_bits: 28. 3 move eis_bits: 22. 16 nand eis_bits: 25. 40 nine_to_four_ translate_strings_: 65, 66.  30 nine_to_nine translate_strings_: 56, 57.  0 nine_to_six translate_strings_: 30, 31.  7 or eis_bits: 24. 1 p1 translate_strings_: 21, 39, 53, 62, 83, 106.  2 p2 translate_strings_: 22, 37, 51, 60, 81, 104.  3 p3 translate_strings_: 23, 38, 52, 61, 82, 105.  4 p4 translate_strings_: 24, 112, 116, 119.  6 q translate_strings_: 38, 52, 61, 82, 105, eis_bits: 11. 6 ql eis_bits: 12. 2 qu eis_bits: 6. 40 rl translate_strings_: 36, 50, 59, 80, 103, eis_bits: 2. 1 round eis_bits: 30. 13 six_to_nine translate_strings_: 42, 43.  50 temp translate_strings_: 26, 33, 35, 45, 49, 68, 79, 89, 102. 51 temp1 translate_strings_: 26, 70, 74, 92, 96. 52 temp2 translate_strings_: 26, 73, 78, 95, 100. 1 truncate eis_bits: 31. 10 x0 eis_bits: 13. 11 x1 eis_bits: 14. 12 x2 eis_bits: 15. 13 x3 eis_bits: 16. 14 x4 eis_bits: 17. 15 x5 eis_bits: 18. 16 x6 eis_bits: 19. 17 x7 eis_bits: 20. 6 xor eis_bits: 26. NO FATAL ERRORS  ----------------------------------------------------------- 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