COMPILATION LISTING OF SEGMENT bsort Compiled by: Multics PL/I Compiler, Release 33f, of February 11, 2017 Compiled at: BAN AI Systems Compiled on: 05/13/18 0913.9 est Sun Options: optimize list 1 /* Sample program #1 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+1) 25 then do; 26 c = "1"b; 27 28 t = b(i); 29 b(i) = b(i+1); 30 b(i+1) = 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 05/12/18 2342.3 bsort.pl1 >udd>User>CAnthony>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 28 29 29 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 000011 constant entry external dcl 5 loop 000054 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 152 162 127 162 Length 316 127 10 120 23 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bsort 72 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 NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. CONSTANTS 000000 aa 404000000021 000001 aa 404100000021 000002 aa 400000000000 000003 aa 400000000000 000004 aa 400000000000 BEGIN PROCEDURE bsort ENTRY TO bsort STATEMENT 1 ON LINE 5 bsort: procedure(a,b,n); 000005 at 000003000001 000006 tt 000001000000 000007 ta 000005000000 000010 da 000017300000 000011 aa 000120 6270 00 eax7 80 000012 aa 7 00034 3521 20 epp2 pr7|28,* 000013 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000014 aa 000006000000 000015 aa 000000000000 STATEMENT 1 ON LINE 13 m = n; 000016 aa 6 00032 3735 20 epp7 pr6|26,* 000017 aa 7 00006 2361 20 ldq pr7|6,* n 000020 aa 6 00100 7561 00 stq pr6|64 m STATEMENT 1 ON LINE 15 do i = 1 to n; 000021 aa 6 00104 7561 00 stq pr6|68 000022 aa 000001 2360 07 ldq 1,dl 000023 aa 6 00101 7561 00 stq pr6|65 i 000024 aa 6 00101 2361 00 ldq pr6|65 i 000025 aa 6 00104 1161 00 cmpq pr6|68 000026 aa 000026 6054 04 tpnz 22,ic 000054 STATEMENT 1 ON LINE 16 b(i) = a(i); 000027 aa 6 00042 3735 20 epp7 pr6|34,* 000030 aa 7 00002 3715 20 epp5 pr7|2,* 000031 aa 5 00003 2361 00 ldq pr5|3 000032 aa 5 00001 4021 00 mpy pr5|1 000033 aa 6 00106 7561 00 stq pr6|70 000034 aa 5 00003 2361 00 ldq pr5|3 000035 aa 6 00101 4021 00 mpy pr6|65 i 000036 aa 6 00106 1761 00 sbq pr6|70 000037 aa 7 00000 3535 20 epp3 pr7|0,* 000040 aa 000000 6270 06 eax7 0,ql 000041 aa 3 00003 2361 00 ldq pr3|3 000042 aa 3 00001 4021 00 mpy pr3|1 000043 aa 6 00107 7561 00 stq pr6|71 000044 aa 3 00003 2361 00 ldq pr3|3 000045 aa 6 00101 4021 00 mpy pr6|65 i 000046 aa 6 00107 1761 00 sbq pr6|71 000047 aa 6 00032 3515 20 epp1 pr6|26,* 000050 aa 1 00002 2361 66 ldq pr1|2,*ql a 000051 aa 1 00004 7561 77 stq pr1|4,*7 b STATEMENT 1 ON LINE 17 end; 000052 aa 6 00101 0541 00 aos pr6|65 i 000053 aa 777751 7100 04 tra -23,ic 000024 STATEMENT 1 ON LINE 20 loop: c = "0"b; 000054 aa 6 00103 4501 00 stz pr6|67 c STATEMENT 1 ON LINE 21 m = m - 1; 000055 aa 000001 3360 07 lcq 1,dl 000056 aa 6 00100 0561 00 asq pr6|64 m STATEMENT 1 ON LINE 23 do i = 1 to m; 000057 aa 6 00100 2361 00 ldq pr6|64 m 000060 aa 6 00105 7561 00 stq pr6|69 000061 aa 000001 2360 07 ldq 1,dl 000062 aa 6 00101 7561 00 stq pr6|65 i 000063 aa 000000 0110 03 nop 0,du 000064 aa 6 00101 2361 00 ldq pr6|65 i 000065 aa 6 00105 1161 00 cmpq pr6|69 000066 aa 000036 6054 04 tpnz 30,ic 000124 STATEMENT 1 ON LINE 24 if b(i) > b(i+1) then do; 000067 aa 6 00042 3735 20 epp7 pr6|34,* 000070 aa 7 00002 3715 20 epp5 pr7|2,* 000071 aa 5 00003 2361 00 ldq pr5|3 000072 aa 5 00001 4021 00 mpy pr5|1 000073 aa 6 00106 7561 00 stq pr6|70 000074 aa 5 00003 2361 00 ldq pr5|3 000075 aa 6 00101 4021 00 mpy pr6|65 i 000076 aa 6 00106 1761 00 sbq pr6|70 000077 aa 000000 6270 06 eax7 0,ql 000100 aa 6 00101 2361 00 ldq pr6|65 i 000101 aa 000001 0760 07 adq 1,dl 000102 aa 5 00003 4021 00 mpy pr5|3 000103 aa 6 00106 1761 00 sbq pr6|70 000104 aa 000000 6260 06 eax6 0,ql 000105 aa 6 00032 3535 20 epp3 pr6|26,* 000106 aa 3 00004 2361 77 ldq pr3|4,*7 b 000107 aa 3 00004 1161 76 cmpq pr3|4,*6 b 000110 aa 6 00106 7461 00 stx6 pr6|70 000111 aa 6 00107 7471 00 stx7 pr6|71 000112 aa 000010 6044 04 tmoz 8,ic 000122 STATEMENT 1 ON LINE 26 c = "1"b; 000113 aa 400000 2350 03 lda 131072,du 000114 aa 6 00103 7551 00 sta pr6|67 c STATEMENT 1 ON LINE 28 t = b(i); 000115 aa 6 00102 7561 00 stq pr6|66 t STATEMENT 1 ON LINE 29 b(i) = b(i+1); 000116 aa 3 00004 2361 76 ldq pr3|4,*6 b 000117 aa 3 00004 7561 77 stq pr3|4,*7 b STATEMENT 1 ON LINE 30 b(i+1) = t; 000120 aa 6 00102 2361 00 ldq pr6|66 t 000121 aa 3 00004 7561 76 stq pr3|4,*6 b STATEMENT 1 ON LINE 31 end; STATEMENT 1 ON LINE 32 end; 000122 aa 6 00101 0541 00 aos pr6|65 i 000123 aa 777741 7100 04 tra -31,ic 000064 STATEMENT 1 ON LINE 34 if c then goto loop; 000124 aa 6 00103 2351 00 lda pr6|67 c 000125 aa 777727 6010 04 tnz -41,ic 000054 STATEMENT 1 ON LINE 35 end; 000126 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE bsort