Home » Archimedes archive » Acorn User » AU 1997-04 A.adf » Extras1 » MenuBar2/!MenuBar/Overlays/Sort

MenuBar2/!MenuBar/Overlays/Sort

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-04 A.adf » Extras1
Filename: MenuBar2/!MenuBar/Overlays/Sort
Read OK:
File size: 038F bytes
Load address: 0000
Exec address: 0000
File contents
 1013REM> Sort
 1014DEFPROCp(u$):LOCALJ%,L%:FORJ%=1TOw%:L%=Z%(J%):PROCK(L%,u$):NEXT:ENDPROC
 1015DEFPROCK(G%,u$):LOCALJ%,yl%,e%,jy%,B_%,X%,B%,W%,A$,N%,M%,bu%:IFu$<>"name"ANDu$<>"type"THENENDPROC
 1016M%=A%(G%):h%=FNF(G%):X%=FNM(h%):IFX%<2THENENDPROC
 1017SYS&406C0:jy%=Ru%:B_%=V_%:CASEu$OF
 1018WHEN"name":bu%=4:FORJ%=1TOX%:$jy%=$S%(G%,J%):!B_%=jy%:jy%+=&c:B_%+=4:NEXT
 1019WHEN"type":bu%=3:FORJ%=1TOX%:W%=FNP(FNC(G%,J%)):IFW%=4096THENW%=8193
 1020!jy%=W%:!B_%=jy%:jy%+=&c:B_%+=4:NEXT
 1021ENDCASE:yl%=!V_%:SYS79,X%,V_%,bu%:W%=V_%:FORJ%=1TOX%:Z%=!W%:Ty%=Z%-yl%+&c:J%(J%)=Ty%DIV&c:W%+=4:NEXT:FORJ%=1TOX%:F$(J%)=$S%(G%,J%):NEXT:FORJ%=1TOX%:g%=J%(J%):$S%(G%,J%)=F$(g%):NEXT:FORJ%=1TOX%:F$(J%)=$F%(G%,J%):NEXT:FORJ%=1TOX%:g%=J%(J%):$F%(G%,J%)=F$(g%):NEXT:FORJ%=1TOX%
 1022A%!0=M%:A%!4=J%:SYS&400CE,,A%:B%=A%!24:W%(J%)=B%:NEXT:FORJ%=1TOX%:g%=J%(J%):B%=W%(g%):PROCM(M%,J%,B%):NEXT:FORJ%=1TOX%:W%=FNG(h%)+(J%-1)*4:W%(J%)=!W%:NEXT:FORJ%=1TOX%:g%=J%(J%):W%=FNG(h%)+(J%-1)*4:!W%=W%(g%):NEXT:FORJ%=1TOX%:N%=FNV(G%,J%):W%(J%)=N%:NEXT:FORJ%=1TOX%:g%=J%(J%):N%=W%(g%)
 1023PROCB(G%,J%,N%):NEXT:l%=TRUE:PROCO(M%):SYS&406C2:ENDPROC
��> Sort
�3��p(u$):�J%,L%:�J%=1�w%:L%=Z%(J%):�K(L%,u$):�:�
�P��K(G%,u$):�J%,yl%,e%,jy%,B_%,X%,B%,W%,A$,N%,M%,bu%:�u$<>"name"�u$<>"type"��
�)M%=A%(G%):h%=�F(G%):X%=�M(h%):�X%<2��
�"ș&406C0:jy%=Ru%:B_%=V_%:Ȏu$�
�D�"name":bu%=4:�J%=1�X%:$jy%=$S%(G%,J%):!B_%=jy%:jy%+=&c:B_%+=4:�
�<�"type":bu%=3:�J%=1�X%:W%=�P(�C(G%,J%)):�W%=4096�W%=8193
�%!jy%=W%:!B_%=jy%:jy%+=&c:B_%+=4:�
���:yl%=!V_%:ș79,X%,V_%,bu%:W%=V_%:�J%=1�X%:Z%=!W%:Ty%=Z%-yl%+&c:J%(J%)=Ty%�&c:W%+=4:�:�J%=1�X%:F$(J%)=$S%(G%,J%):�:�J%=1�X%:g%=J%(J%):$S%(G%,J%)=F$(g%):�:�J%=1�X%:F$(J%)=$F%(G%,J%):�:�J%=1�X%:g%=J%(J%):$F%(G%,J%)=F$(g%):�:�J%=1�X%
��A%!0=M%:A%!4=J%:ș&400CE,,A%:B%=A%!24:W%(J%)=B%:�:�J%=1�X%:g%=J%(J%):B%=W%(g%):�M(M%,J%,B%):�:�J%=1�X%:W%=�G(h%)+(J%-1)*4:W%(J%)=!W%:�:�J%=1�X%:g%=J%(J%):W%=�G(h%)+(J%-1)*4:!W%=W%(g%):�:�J%=1�X%:N%=�V(G%,J%):W%(J%)=N%:�:�J%=1�X%:g%=J%(J%):N%=W%(g%)
�)�B(G%,J%,N%):�:l%=�:�O(M%):ș&406C2:�
�
00000000  0d 03 f5 0b f4 3e 20 53  6f 72 74 0d 03 f6 33 dd  |.....> Sort...3.|
00000010  f2 70 28 75 24 29 3a ea  4a 25 2c 4c 25 3a e3 4a  |.p(u$):.J%,L%:.J|
00000020  25 3d 31 b8 77 25 3a 4c  25 3d 5a 25 28 4a 25 29  |%=1.w%:L%=Z%(J%)|
00000030  3a f2 4b 28 4c 25 2c 75  24 29 3a ed 3a e1 0d 03  |:.K(L%,u$):.:...|
00000040  f7 50 dd f2 4b 28 47 25  2c 75 24 29 3a ea 4a 25  |.P..K(G%,u$):.J%|
00000050  2c 79 6c 25 2c 65 25 2c  6a 79 25 2c 42 5f 25 2c  |,yl%,e%,jy%,B_%,|
00000060  58 25 2c 42 25 2c 57 25  2c 41 24 2c 4e 25 2c 4d  |X%,B%,W%,A$,N%,M|
00000070  25 2c 62 75 25 3a e7 75  24 3c 3e 22 6e 61 6d 65  |%,bu%:.u$<>"name|
00000080  22 80 75 24 3c 3e 22 74  79 70 65 22 8c e1 0d 03  |".u$<>"type"....|
00000090  f8 29 4d 25 3d 41 25 28  47 25 29 3a 68 25 3d a4  |.)M%=A%(G%):h%=.|
000000a0  46 28 47 25 29 3a 58 25  3d a4 4d 28 68 25 29 3a  |F(G%):X%=.M(h%):|
000000b0  e7 58 25 3c 32 8c e1 0d  03 f9 22 c8 99 26 34 30  |.X%<2....."..&40|
000000c0  36 43 30 3a 6a 79 25 3d  52 75 25 3a 42 5f 25 3d  |6C0:jy%=Ru%:B_%=|
000000d0  56 5f 25 3a c8 8e 75 24  ca 0d 03 fa 44 c9 22 6e  |V_%:..u$....D."n|
000000e0  61 6d 65 22 3a 62 75 25  3d 34 3a e3 4a 25 3d 31  |ame":bu%=4:.J%=1|
000000f0  b8 58 25 3a 24 6a 79 25  3d 24 53 25 28 47 25 2c  |.X%:$jy%=$S%(G%,|
00000100  4a 25 29 3a 21 42 5f 25  3d 6a 79 25 3a 6a 79 25  |J%):!B_%=jy%:jy%|
00000110  2b 3d 26 63 3a 42 5f 25  2b 3d 34 3a ed 0d 03 fb  |+=&c:B_%+=4:....|
00000120  3c c9 22 74 79 70 65 22  3a 62 75 25 3d 33 3a e3  |<."type":bu%=3:.|
00000130  4a 25 3d 31 b8 58 25 3a  57 25 3d a4 50 28 a4 43  |J%=1.X%:W%=.P(.C|
00000140  28 47 25 2c 4a 25 29 29  3a e7 57 25 3d 34 30 39  |(G%,J%)):.W%=409|
00000150  36 8c 57 25 3d 38 31 39  33 0d 03 fc 25 21 6a 79  |6.W%=8193...%!jy|
00000160  25 3d 57 25 3a 21 42 5f  25 3d 6a 79 25 3a 6a 79  |%=W%:!B_%=jy%:jy|
00000170  25 2b 3d 26 63 3a 42 5f  25 2b 3d 34 3a ed 0d 03  |%+=&c:B_%+=4:...|
00000180  fd ea cb 3a 79 6c 25 3d  21 56 5f 25 3a c8 99 37  |...:yl%=!V_%:..7|
00000190  39 2c 58 25 2c 56 5f 25  2c 62 75 25 3a 57 25 3d  |9,X%,V_%,bu%:W%=|
000001a0  56 5f 25 3a e3 4a 25 3d  31 b8 58 25 3a 5a 25 3d  |V_%:.J%=1.X%:Z%=|
000001b0  21 57 25 3a 54 79 25 3d  5a 25 2d 79 6c 25 2b 26  |!W%:Ty%=Z%-yl%+&|
000001c0  63 3a 4a 25 28 4a 25 29  3d 54 79 25 81 26 63 3a  |c:J%(J%)=Ty%.&c:|
000001d0  57 25 2b 3d 34 3a ed 3a  e3 4a 25 3d 31 b8 58 25  |W%+=4:.:.J%=1.X%|
000001e0  3a 46 24 28 4a 25 29 3d  24 53 25 28 47 25 2c 4a  |:F$(J%)=$S%(G%,J|
000001f0  25 29 3a ed 3a e3 4a 25  3d 31 b8 58 25 3a 67 25  |%):.:.J%=1.X%:g%|
00000200  3d 4a 25 28 4a 25 29 3a  24 53 25 28 47 25 2c 4a  |=J%(J%):$S%(G%,J|
00000210  25 29 3d 46 24 28 67 25  29 3a ed 3a e3 4a 25 3d  |%)=F$(g%):.:.J%=|
00000220  31 b8 58 25 3a 46 24 28  4a 25 29 3d 24 46 25 28  |1.X%:F$(J%)=$F%(|
00000230  47 25 2c 4a 25 29 3a ed  3a e3 4a 25 3d 31 b8 58  |G%,J%):.:.J%=1.X|
00000240  25 3a 67 25 3d 4a 25 28  4a 25 29 3a 24 46 25 28  |%:g%=J%(J%):$F%(|
00000250  47 25 2c 4a 25 29 3d 46  24 28 67 25 29 3a ed 3a  |G%,J%)=F$(g%):.:|
00000260  e3 4a 25 3d 31 b8 58 25  0d 03 fe fc 41 25 21 30  |.J%=1.X%....A%!0|
00000270  3d 4d 25 3a 41 25 21 34  3d 4a 25 3a c8 99 26 34  |=M%:A%!4=J%:..&4|
00000280  30 30 43 45 2c 2c 41 25  3a 42 25 3d 41 25 21 32  |00CE,,A%:B%=A%!2|
00000290  34 3a 57 25 28 4a 25 29  3d 42 25 3a ed 3a e3 4a  |4:W%(J%)=B%:.:.J|
000002a0  25 3d 31 b8 58 25 3a 67  25 3d 4a 25 28 4a 25 29  |%=1.X%:g%=J%(J%)|
000002b0  3a 42 25 3d 57 25 28 67  25 29 3a f2 4d 28 4d 25  |:B%=W%(g%):.M(M%|
000002c0  2c 4a 25 2c 42 25 29 3a  ed 3a e3 4a 25 3d 31 b8  |,J%,B%):.:.J%=1.|
000002d0  58 25 3a 57 25 3d a4 47  28 68 25 29 2b 28 4a 25  |X%:W%=.G(h%)+(J%|
000002e0  2d 31 29 2a 34 3a 57 25  28 4a 25 29 3d 21 57 25  |-1)*4:W%(J%)=!W%|
000002f0  3a ed 3a e3 4a 25 3d 31  b8 58 25 3a 67 25 3d 4a  |:.:.J%=1.X%:g%=J|
00000300  25 28 4a 25 29 3a 57 25  3d a4 47 28 68 25 29 2b  |%(J%):W%=.G(h%)+|
00000310  28 4a 25 2d 31 29 2a 34  3a 21 57 25 3d 57 25 28  |(J%-1)*4:!W%=W%(|
00000320  67 25 29 3a ed 3a e3 4a  25 3d 31 b8 58 25 3a 4e  |g%):.:.J%=1.X%:N|
00000330  25 3d a4 56 28 47 25 2c  4a 25 29 3a 57 25 28 4a  |%=.V(G%,J%):W%(J|
00000340  25 29 3d 4e 25 3a ed 3a  e3 4a 25 3d 31 b8 58 25  |%)=N%:.:.J%=1.X%|
00000350  3a 67 25 3d 4a 25 28 4a  25 29 3a 4e 25 3d 57 25  |:g%=J%(J%):N%=W%|
00000360  28 67 25 29 0d 03 ff 29  f2 42 28 47 25 2c 4a 25  |(g%)...).B(G%,J%|
00000370  2c 4e 25 29 3a ed 3a 6c  25 3d b9 3a f2 4f 28 4d  |,N%):.:l%=.:.O(M|
00000380  25 29 3a c8 99 26 34 30  36 43 32 3a e1 0d ff     |%):..&406C2:...|
0000038f