COMPILATION LISTING OF SEGMENT bsort Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 02/15/96 0224.5 mst Thu Options: optimize table map list 1 /* Sample program1 for Project Rosetta Stone 2* 3* Coded by Barry L. Wolman on 9 December 1972 */ 4 5 bsort: procedure(a,b,n); 6 7 dcl (a,b) dimension(*) fixed binary, 8 n fixed binary; 9 10 dcl (m,i,t) fixed binary, 11 c bit(1); 12 13 m = n; 14 15 do i = 1 to n; 16 b(i) = a(i); 17 end; 18 19 20 loop: c = "0"b; 21 m = m - 1; 22 23 do i = 1 to m; 24 if b(i) > b(i+i) 25 then do; 26 c = "1"b; 27 28 t = b(i); 29 b(i) = b(i+1); 30 b(i+i) = t; 31 end; 32 end; 33 34 if c then goto loop; 35 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/15/96 0213.1 bsort.pl1 >udd>Bull>Dickson>bsort.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. a parameter fixed bin(17,0) array dcl 7 ref 5 16 b parameter fixed bin(17,0) array dcl 7 set ref 5 16* 24 24 28 29* 29 30* c 000103 automatic bit(1) packed unaligned dcl 10 set ref 20* 26* 34 i 000101 automatic fixed bin(17,0) dcl 10 set ref 15* 16 16* 23* 24 24 24 28 29 29 30 30* m 000100 automatic fixed bin(17,0) dcl 10 set ref 13* 21* 21 23 n parameter fixed bin(17,0) dcl 7 ref 5 13 15 t 000102 automatic fixed bin(17,0) dcl 10 set ref 28* 30 NAMES DECLARED BY EXPLICIT CONTEXT. bsort 000043 constant entry external dcl 5 loop 000106 constant label dcl 20 ref 34 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 214 226 165 224 Length 574 165 12 332 26 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bsort 73 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bsort 000100 m bsort 000101 i bsort 000102 t bsort 000103 c bsort THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. return_mac ext_entry_desc int_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 5 000037 13 000050 15 000053 16 000061 17 000104 20 000106 21 000107 23 000111 24 000121 26 000145 28 000147 29 000150 30 000156 32 000160 34 000162 35 000164 CONSTANTS 000000 aa 404000000021 000001 aa 404100000021 000002 aa 400000000000 000003 aa 400000000000 000004 aa 400000000000 ENCODED VALUES virtual origin of a 000005 aa 000100 7270 07 lxl7 64,dl 000006 aa 7 00034 3521 20 epp2 pr7|28,* 000007 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 000010 aa 000002000000 000011 aa 000000000000 000012 aa 6 00040 3735 20 epp7 pr6|32,* 000013 aa 7 00042 3715 20 epp5 pr7|34,* 000014 aa 5 00000 3535 20 epp3 pr5|0,* 000015 aa 3 00003 2361 00 ldq pr3|3 000016 aa 3 00001 4021 00 mpy pr3|1 000017 aa 6 00032 3515 20 epp1 pr6|26,* 000020 aa 1 00004 7561 20 stq pr1|4,* 000021 aa 0 00631 7101 00 tra pr0|409 return_mac virtual origin of b 000022 aa 000100 7270 07 lxl7 64,dl 000023 aa 7 00034 3521 20 epp2 pr7|28,* 000024 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 000025 aa 000002000000 000026 aa 000000000000 000027 aa 6 00040 3735 20 epp7 pr6|32,* 000030 aa 7 00042 3715 20 epp5 pr7|34,* 000031 aa 5 00002 3535 20 epp3 pr5|2,* 000032 aa 3 00003 2361 00 ldq pr3|3 000033 aa 3 00001 4021 00 mpy pr3|1 000034 aa 6 00032 3515 20 epp1 pr6|26,* 000035 aa 1 00004 7561 20 stq pr1|4,* 000036 aa 0 00631 7101 00 tra pr0|409 return_mac BEGIN PROCEDURE bsort ENTRY TO bsort STATEMENT 1 ON LINE 5 bsort: procedure(a,b,n); 000037 at 000003000001 000040 tt 000001000000 000041 ta 000037000000 000042 da 000022300000 000043 aa 000120 6270 00 eax7 80 000044 aa 7 00034 3521 20 epp2 pr7|28,* 000045 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000046 aa 000006000000 000047 2s 000010000125 STATEMENT 1 ON LINE 13 m = n; 000050 aa 6 00032 3735 20 epp7 pr6|26,* 000051 aa 7 00006 2361 20 ldq pr7|6,* n 000052 aa 6 00100 7561 00 stq pr6|64 m STATEMENT 1 ON LINE 15 do i = 1 to n; 000053 aa 6 00104 7561 00 stq pr6|68 000054 aa 000001 2360 07 ldq 1,dl 000055 aa 6 00101 7561 00 stq pr6|65 i 000056 aa 6 00101 2361 00 ldq pr6|65 i 000057 aa 6 00104 1161 00 cmpq pr6|68 000060 aa 000026 6054 04 tpnz 22,ic 000106 STATEMENT 1 ON LINE 16 b(i) = a(i); 000061 aa 6 00042 3735 20 epp7 pr6|34,* 000062 aa 7 00002 3715 20 epp5 pr7|2,* 000063 aa 5 00003 2361 00 ldq pr5|3 000064 aa 5 00001 4021 00 mpy pr5|1 000065 aa 6 00106 7561 00 stq pr6|70 000066 aa 5 00003 2361 00 ldq pr5|3 000067 aa 6 00101 4021 00 mpy pr6|65 i 000070 aa 6 00106 1761 00 sbq pr6|70 000071 aa 7 00000 3535 20 epp3 pr7|0,* 000072 aa 000000 6270 06 eax7 0,ql 000073 aa 3 00003 2361 00 ldq pr3|3 000074 aa 3 00001 4021 00 mpy pr3|1 000075 aa 6 00107 7561 00 stq pr6|71 000076 aa 3 00003 2361 00 ldq pr3|3 000077 aa 6 00101 4021 00 mpy pr6|65 i 000100 aa 6 00107 1761 00 sbq pr6|71 000101 aa 6 00032 3515 20 epp1 pr6|26,* 000102 aa 1 00002 2361 66 ldq pr1|2,*ql a 000103 aa 1 00004 7561 77 stq pr1|4,*7 b STATEMENT 1 ON LINE 17 end; 000104 aa 6 00101 0541 00 aos pr6|65 i 000105 aa 777751 7100 04 tra -23,ic 000056 STATEMENT 1 ON LINE 20 loop: c = "0"b; 000106 aa 6 00103 4501 00 stz pr6|67 c STATEMENT 1 ON LINE 21 m = m - 1; 000107 aa 000001 3360 07 lcq 1,dl 000110 aa 6 00100 0561 00 asq pr6|64 m STATEMENT 1 ON LINE 23 do i = 1 to m; 000111 aa 6 00100 2361 00 ldq pr6|64 m 000112 aa 6 00105 7561 00 stq pr6|69 000113 aa 000001 2360 07 ldq 1,dl 000114 aa 6 00101 7561 00 stq pr6|65 i 000115 aa 000000 0110 03 nop 0,du 000116 aa 6 00101 2361 00 ldq pr6|65 i 000117 aa 6 00105 1161 00 cmpq pr6|69 000120 aa 000042 6054 04 tpnz 34,ic 000162 STATEMENT 1 ON LINE 24 if b(i) > b(i+i) then do; 000121 aa 6 00042 3735 20 epp7 pr6|34,* 000122 aa 7 00002 3715 20 epp5 pr7|2,* 000123 aa 5 00003 2361 00 ldq pr5|3 000124 aa 5 00001 4021 00 mpy pr5|1 000125 aa 6 00106 7561 00 stq pr6|70 000126 aa 5 00003 2361 00 ldq pr5|3 000127 aa 6 00101 4021 00 mpy pr6|65 i 000130 aa 6 00106 1761 00 sbq pr6|70 000131 aa 000000 6270 06 eax7 0,ql 000132 aa 6 00101 2361 00 ldq pr6|65 i 000133 aa 6 00101 0761 00 adq pr6|65 i 000134 aa 5 00003 4021 00 mpy pr5|3 000135 aa 6 00106 1761 00 sbq pr6|70 000136 aa 000000 6260 06 eax6 0,ql 000137 aa 6 00032 3535 20 epp3 pr6|26,* 000140 aa 3 00004 2361 77 ldq pr3|4,*7 b 000141 aa 3 00004 1161 76 cmpq pr3|4,*6 b 000142 aa 6 00110 7461 00 stx6 pr6|72 000143 aa 6 00107 7471 00 stx7 pr6|71 000144 aa 000014 6044 04 tmoz 12,ic 000160 STATEMENT 1 ON LINE 26 c = "1"b; 000145 aa 400000 2350 03 lda 131072,du 000146 aa 6 00103 7551 00 sta pr6|67 c STATEMENT 1 ON LINE 28 t = b(i); 000147 aa 6 00102 7561 00 stq pr6|66 t STATEMENT 1 ON LINE 29 b(i) = b(i+1); 000150 aa 6 00101 2361 00 ldq pr6|65 i 000151 aa 000001 0760 07 adq 1,dl 000152 aa 5 00003 4021 00 mpy pr5|3 000153 aa 6 00106 1761 00 sbq pr6|70 000154 aa 3 00004 2361 66 ldq pr3|4,*ql b 000155 aa 3 00004 7561 77 stq pr3|4,*7 b STATEMENT 1 ON LINE 30 b(i+i) = t; 000156 aa 6 00102 2361 00 ldq pr6|66 t 000157 aa 3 00004 7561 76 stq pr3|4,*6 b STATEMENT 1 ON LINE 31 end; STATEMENT 1 ON LINE 32 end; 000160 aa 6 00101 0541 00 aos pr6|65 i 000161 aa 777735 7100 04 tra -35,ic 000116 STATEMENT 1 ON LINE 34 if c then goto loop; 000162 aa 6 00103 2351 00 lda pr6|67 c 000163 aa 777723 6010 04 tnz -45,ic 000106 STATEMENT 1 ON LINE 35 end; 000164 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE bsort