ASSEMBLY LISTING OF SEGMENT >spec>sup>6.2a>load_fnp_util_.alm ASSEMBLED ON: 11/05/82 1446.7 mst Fri OPTIONS USED: list ASSEMBLED BY: ALM Version 6.4 April 1981 ASSEMBLER CREATED: 11/03/82 1423.6 mst Wed  1 " ***********************************************************  2 " * *  3 " * Copyright, (C) Honeywell Information Systems Inc., 1982 *  4 " * *  5 " * Copyright (c) 1972 by Massachusetts Institute of *  6 " * Technology and Honeywell Information Systems, Inc. *  7 " * *  8 " ***********************************************************  9  10 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  11 "  12 " load_fnp_util_: stuff forload_fnp_ best done in ALM.  13 "  14 " fnp_parity: to compute two odd parity bits on the 15 " two 18 bit halves of a word. 16 "  17 " checksum: to add up a checksum of a bunch of 36  18 " bit words. used while bootloading an FNP.  19 "  20 "  21 " Created for new tty DIM on 01/13/75 by Mike Grady.  22 "  23 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  24  000000 25 name load_fnp_util_  26  27 " 28  29 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  30 "  31 " FNP_PARITY ENTRY  32 "  33 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  34  000000 35 segdef fnp_parity  36  000000 37 fnp_parity: 000000 aa 0 00002 3521 20 38 epp2 ap|2,* get ptr to arg ptr  000001 aa 2 00000 3521 20 39 epp2 pr2|0,* get ptr to arg  000002 aa 2 00000 2351 00 40 lda pr2|0 get the word to do parity on  000003 aa 000022 7710 00 41 arl 18 shift down high 18 bits  000004 aa 000000 7740 00 42 gtb 0 this does the parity  000005 aa 000001 3150 07 43 cana 1,dl is it odd now?  000006 aa 000003 6010 04 44 tnz 3,ic yes, do other half  45  000007 aa 040000 2350 07 46 lda bit21,dl get the parity bit  000010 aa 2 00000 2551 00 47 orsa pr2|0 put into word  48  000011 aa 2 00000 2351 00 49 lda pr2|0 get the word again 000012 aa 777777 3750 07 50 ana -1,dl leave only lower bits  000013 aa 000000 7740 00 51 gtb 0 do parity again 000014 aa 000001 3150 07 52 cana 1,dl is this half odd?  000015 aa 000003 6010 04 53 tnz 3,ic yes, we are done 54  000016 aa 020000 2350 07 55 lda bit22,dl get other parity bit 000017 aa 2 00000 2551 00 56 orsa pr2|0 put into word  57  000020 aa 7 00044 7101 20 58 short_return done 59  040000 60 bool bit21,040000 parity for first 18 bits 020000 61 bool bit22,020000 parity for second 18 or all 36  62  63 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  64 "  65 " CHECKSUM ENTRY  66 "  67 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  68  000021 69 entry checksum 70  71 temp temp  72  000021 aa 000060 6270 00 73 checksum: push  000022 aa 7 00040 2721 20 000023 aa 0 00002 3521 20 74 epp2 ap|2,* get the ptr to the arg  000024 aa 2 00000 3521 20 75 epp2 pr2|0,* get the ptr to the data to checksum  76  000025 aa 0 00004 2361 20 77 ldq ap|4,* get the count  78  000026 aa 004000 6340 07 79 ldi indic,dl set the overflow mask  000027 aa 6 00050 7541 00 80 sti temp setup indicator register 81  000030 aa 2 00000 2351 00 82 lda pr2|0 get the first word  000031 aa 000001 1760 07 83 sbq 1,dl decrement count  000032 aa 2 00001 5075 00 84 awd pr2|1 bump ptr  85  000033 aa 6 00050 6341 00 86 loop: ldi temp restore indicators  000034 aa 2 00000 0711 00 87 awca pr2|0 add in next word  000035 aa 6 00050 7541 00 88 sti temp save indicators  89  000036 aa 2 00001 5075 00 90 awd pr2|1 bump ptr  000037 aa 000001 1760 07 91 sbq 1,dl decrement count  000040 0a 000033 6010 00 92 tnz loop do more  93  000041 aa 0 00006 7551 20 94 sta ap|6,* return the checksum  000042 aa 7 00042 7101 20 95 return 96  004000 97 bool indic,004000  98  99 end  ENTRY SEQUENCES  000043 5a 000012 0000 00 000044 aa 7 00046 2721 20 000045 0a 000021 7100 00 NO LITERALS  NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000046 5a 000003 000000 000047 5a 000035 600000 000050 aa 000000 000000 000051 55 000012 000002 000052 5a 000002 400003 000053 55 000006 000012 000054 aa 016 154 157 141 000055 aa 144 137 146 156 000056 aa 160 137 165 164 000057 aa 151 154 137 000 000060 55 000020 000003 000061 0a 000044 500000 000062 55 000015 000003 000063 aa 010 143 150 145 checksum  000064 aa 143 153 163 165 000065 aa 155 000 000 000 000066 55 000026 000012 000067 0a 000000 400000 000070 55 000023 000003 000071 aa 012 146 156 160 fnp_parity  000072 aa 137 160 141 162 000073 aa 151 164 171 000 000074 55 000002 000020 000075 6a 000000 400002 000076 55 000031 000003 000077 aa 014 163 171 155 symbol_table  000100 aa 142 157 154 137 000101 aa 164 141 142 154 000102 aa 145 000 000 000 DEFINITIONS HASH TABLE  000103 aa 000000 000015 000104 aa 000000 000000 000105 5a 000012 000000 000106 aa 000000 000000 000107 5a 000020 000000 000110 aa 000000 000000 000111 aa 000000 000000 000112 5a 000026 000000 000113 aa 000000 000000 000114 aa 000000 000000 000115 aa 000000 000000 000116 aa 000000 000000 000117 aa 000000 000000 000120 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  000121 aa 000001 000000 000122 aa 000000 000000 INTERNAL EXPRESSION WORDS 000123 aa 000000 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000046 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 111316 000005 aa 510113 575622 000006 aa 000000 111321 000007 aa 131746 573507 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 000121 000020 aa 000000 000103 000021 aa 000000 000110 000022 aa 000113 000103 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 040066 056064 000030 aa 040040 101160 000031 aa 162151 154040 000032 aa 061071 070061 000033 aa 040040 040040 000034 aa 110157 154155 000035 aa 163164 145144 000036 aa 164056 123171 000037 aa 163115 141151 000040 aa 156164 056141 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 000001 000066 aa 000072 000041 000067 aa 113171 303223 000070 aa 000000 111321 000071 aa 131752 600000 000072 aa 076163 160145 >spec>sup>6.2a>load_fnp_util_.alm  000073 aa 143076 163165 000074 aa 160076 066056 000075 aa 062141 076154 000076 aa 157141 144137 000077 aa 146156 160137 000100 aa 165164 151154 000101 aa 137056 141154 000102 aa 155040 040040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  40000 bit21 load_fnp_util_: 46, 60. 20000 bit22 load_fnp_util_: 55, 61. 21 checksum load_fnp_util_: 69, 73. 0 fnp_parity load_fnp_util_: 35, 37. 4000 indic load_fnp_util_: 79, 97. 33 loop load_fnp_util_: 86, 92. 50 temp load_fnp_util_: 71, 80, 86, 88. 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