Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_24.ADF » P/ABC-M

P/ABC-M

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 » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_24.ADF
Filename: P/ABC-M
Read OK:
File size: 0A4F bytes
Load address: 1900
Exec address: FFFF8023
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10 REM Machine code alphasort from book ISBN 0003831507
   20 REM Works by comparing two strings and putting them into order,then checking another pair and moving them into order
   30 NUMBER=&70:CYCLE=&72:POINTER1=&74
   40 POINTER2=&76:FLAG=&78:string1=&79
   50 string2=&7B:length1=&7D:length2=&7E
   60 DIM SORT 500
   70 FOR PASS=0 TO 2 STEP 2
   80 P%=SORT
   90 [OPT PASS
  100 LDA &0601
  110 STA CYCLE
  120 LDA &0602
  130 STA CYCLE+1
  140 LDY #1
  150 LDA (CYCLE),Y
  160 STA NUMBER+1
  170 DEY
  180 SEC
  190 LDA (CYCLE),Y
  200 SBC #1
  210 STA NUMBER
  220 BCS OUTERLOOP
  230 DEC NUMBER+1
  240 .OUTERLOOP
  250 LDA #0
  260 STA FLAG
  270 STA CYCLE
  280 STA CYCLE+1
  290 LDA &0604
  300 STA POINTER2
  310 LDA &0605
  320 STA POINTER2+1
  330 .INNERLOOP
  340 LDA POINTER2+1
  350 STA POINTER1+1
  360 LDA POINTER2
  370 STA POINTER1
  380 CLC
  390 ADC #4
  400 STA POINTER2
  410 BCC SKIP
  420 INC POINTER2+1
  430 .SKIP
  440 LDY #0
  450 LDA (POINTER1),Y
  460 STA string1
  470 LDA (POINTER2),Y
  480 STA string2
  490 INY
  500 LDA (POINTER1),Y
  510 STA string1+1
  520 LDA (POINTER2),Y
  530 STA string2+1
  540 LDY #3
  550 LDA (POINTER1),Y
  560 STA length1
  570 LDA (POINTER2),Y
  580 STA length2
  590 LDY #0
  600 .COMPLOOP
  610 LDA (string2),Y
  620 CMP (string1),Y
  630 BCC SWOP
  640 BNE NOSWOP
  650 INY
  660 CPY length1
  670 BEQ NOSWOP
  680 CPY length2
  690 BEQ SWOP
  700 BNE COMPLOOP
  710 .STAGE
  720 BNE OUTERLOOP
  730 .SWOP
  740 LDY #3
  750 STY FLAG
  760 .SWOPLOOP
  770 LDA (POINTER1),Y
  780 TAX
  790 LDA (POINTER2),Y
  800 STA (POINTER1),Y
  810 TXA
  820 STA (POINTER2),Y
  830 DEY
  840 BPL SWOPLOOP
  850 .NOSWOP
  860 INC CYCLE
  870 BNE SKIP2
  880 INC CYCLE+1
  890.SKIP2
  900 LDA CYCLE
  910 CMP NUMBER
  920 BNE INNERLOOP
  930 LDA CYCLE+1
  940 CMP NUMBER+1
  950 BNE INNERLOOP
  960 LDA FLAG
  970 BEQ FLAGCLEAR
  980 LDA NUMBER
  990 SEC
 1000 SBC #1
 1010 STA NUMBER
 1020 BCS SKIP3
 1030 DEC NUMBER+1
 1040 .SKIP3
 1050 LDA NUMBER
 1060 BNE STAGE
 1070 LDA NUMBER+1
 1080 BNE STAGE
 1090 .FLAGCLEAR
 1100 RTS:]
 1110 NEXT PASS
 1120 REM Basic from here onwards is your program that uses the above sorter
 1130 CLS
 1140 INPUT"NUMBER OF STRINGS ";NUMBER%
 1150 IF NUMBER%>1000 THEN PRINT"TOO MANY":GOTO 1140:REM Alters depending on screen mode
 1160 PRINT
 1170 DIM ARRAY$(NUMBER%)
 1180 REM Randomly generates 10 letter strings
 1190 PRINT:PRINT"STRINGS ARE..."
 1200 PRINT
 1210 FOR N%=1 TO NUMBER%
 1220 string$=""
 1230 FOR Z%=1 TO RND(10)
 1240 K$=CHR$(RND(26)+64)
 1250 string$=string$+K$
 1260 NEXT Z%
 1270 ARRAY$(N%)=string$
 1280 PRINT ARRAY$(N%)
 1290 NEXT N%
 1300 PRINT:PRINT"NOW SORTING..."
 1310 REM Turn timer on,note that variable names must be the same as used in the code
 1320 HERE%=TIME
 1330 CALL SORT,NUMBER%,ARRAY$(1)
 1340 NOW%=TIME
 1350 FOR N%=1 TO NUMBER%
 1360 PRINT ARRAY$(N%)
 1370 NEXT N%
 1380 PRINT:PRINT"SORTED ";NUMBER%;" ITEMS IN ";(NOW%-HERE%)/100;" SECONDS"
 1390 REM Time @ 10 lttrs: 1700=146s ; 400=7.9s ; 100=0.49s

7 � Machine code alphasort from book ISBN 0003831507
w � Works by comparing two strings and putting them into order,then checking another pair and moving them into order
& NUMBER=&70:CYCLE=&72:POINTER1=&74
(& POINTER2=&76:FLAG=&78:string1=&79
2( string2=&7B:length1=&7D:length2=&7E
< � SORT 500
F � PASS=0 � 2 � 2
P P%=SORT
Z [OPT PASS
d LDA &0601
n STA CYCLE
x LDA &0602
� STA CYCLE+1
� LDY #1
� LDA (CYCLE),Y
� STA NUMBER+1
� DEY
� SEC
� LDA (CYCLE),Y
� SBC #1
� STA NUMBER
� BCS OUTERLOOP
� DEC NUMBER+1
� .OUTERLOOP
� LDA #0

 STA FLAG
 STA CYCLE
 STA CYCLE+1
" LDA &0604
, STA POINTER2
6 LDA &0605
@ STA POINTER2+1
J .INNERLOOP
T LDA POINTER2+1
^ STA POINTER1+1
h LDA POINTER2
r STA POINTER1
| CLC
� ADC #4
� STA POINTER2
�
 BCC SKIP
� INC POINTER2+1
�
 .SKIP
� LDY #0
� LDA (POINTER1),Y
� STA string1
� LDA (POINTER2),Y
� STA string2
� INY
� LDA (POINTER1),Y
� STA string1+1
 LDA (POINTER2),Y
 STA string2+1
 LDY #3
& LDA (POINTER1),Y
0 STA length1
: LDA (POINTER2),Y
D STA length2
N LDY #0
X .COMPLOOP
b LDA (string2),Y
l CMP (string1),Y
v
 BCC SWOP
� BNE NOSWOP
� INY
� CPY length1
� BEQ NOSWOP
� CPY length2
�
 BEQ SWOP
� BNE COMPLOOP
� .STAGE
� BNE OUTERLOOP
�
 .SWOP
� LDY #3
�
 STY FLAG
� .SWOPLOOP
 LDA (POINTER1),Y
 TAX
 LDA (POINTER2),Y
  STA (POINTER1),Y
* TXA
4 STA (POINTER2),Y
> DEY
H BPL SWOPLOOP
R .NOSWOP
\ INC CYCLE
f BNE SKIP2
p INC CYCLE+1
z
.SKIP2
� LDA CYCLE
� CMP NUMBER
� BNE INNERLOOP
� LDA CYCLE+1
� CMP NUMBER+1
� BNE INNERLOOP
�
 LDA FLAG
� BEQ FLAGCLEAR
� LDA NUMBER
� SEC
� SBC #1
� STA NUMBER
� BCS SKIP3
 DEC NUMBER+1
 .SKIP3
 LDA NUMBER
$ BNE STAGE
. LDA NUMBER+1
8 BNE STAGE
B .FLAGCLEAR
L
 RTS:]
V � PASS
`I � Basic from here onwards is your program that uses the above sorter
j �
t" �"NUMBER OF STRINGS ";NUMBER%
~J � NUMBER%>1000 � �"TOO MANY":� �DtD:� Alters depending on screen mode
� �
� � ARRAY$(NUMBER%)
�+ � Randomly generates 10 letter strings
� �:�"STRINGS ARE..."
� �
� � N%=1 � NUMBER%
� string$=""
� � Z%=1 � �(10)
� K$=�(�(26)+64)
� string$=string$+K$
�	 � Z%
� ARRAY$(N%)=string$
 � ARRAY$(N%)

	 � N%
 �:�"NOW SORTING..."
R � Turn timer on,note that variable names must be the same as used in the code
( HERE%=�
2 � SORT,NUMBER%,ARRAY$(1)
< NOW%=�
F � N%=1 � NUMBER%
P � ARRAY$(N%)
Z	 � N%
dB �:�"SORTED ";NUMBER%;" ITEMS IN ";(NOW%-HERE%)/100;" SECONDS"
n8 � Time @ 10 lttrs: 1700=146s ; 400=7.9s ; 100=0.49s
�
00000000  0d 00 0a 37 20 f4 20 4d  61 63 68 69 6e 65 20 63  |...7 . Machine c|
00000010  6f 64 65 20 61 6c 70 68  61 73 6f 72 74 20 66 72  |ode alphasort fr|
00000020  6f 6d 20 62 6f 6f 6b 20  49 53 42 4e 20 30 30 30  |om book ISBN 000|
00000030  33 38 33 31 35 30 37 0d  00 14 77 20 f4 20 57 6f  |3831507...w . Wo|
00000040  72 6b 73 20 62 79 20 63  6f 6d 70 61 72 69 6e 67  |rks by comparing|
00000050  20 74 77 6f 20 73 74 72  69 6e 67 73 20 61 6e 64  | two strings and|
00000060  20 70 75 74 74 69 6e 67  20 74 68 65 6d 20 69 6e  | putting them in|
00000070  74 6f 20 6f 72 64 65 72  2c 74 68 65 6e 20 63 68  |to order,then ch|
00000080  65 63 6b 69 6e 67 20 61  6e 6f 74 68 65 72 20 70  |ecking another p|
00000090  61 69 72 20 61 6e 64 20  6d 6f 76 69 6e 67 20 74  |air and moving t|
000000a0  68 65 6d 20 69 6e 74 6f  20 6f 72 64 65 72 0d 00  |hem into order..|
000000b0  1e 26 20 4e 55 4d 42 45  52 3d 26 37 30 3a 43 59  |.& NUMBER=&70:CY|
000000c0  43 4c 45 3d 26 37 32 3a  50 4f 49 4e 54 45 52 31  |CLE=&72:POINTER1|
000000d0  3d 26 37 34 0d 00 28 26  20 50 4f 49 4e 54 45 52  |=&74..(& POINTER|
000000e0  32 3d 26 37 36 3a 46 4c  41 47 3d 26 37 38 3a 73  |2=&76:FLAG=&78:s|
000000f0  74 72 69 6e 67 31 3d 26  37 39 0d 00 32 28 20 73  |tring1=&79..2( s|
00000100  74 72 69 6e 67 32 3d 26  37 42 3a 6c 65 6e 67 74  |tring2=&7B:lengt|
00000110  68 31 3d 26 37 44 3a 6c  65 6e 67 74 68 32 3d 26  |h1=&7D:length2=&|
00000120  37 45 0d 00 3c 0f 20 de  20 53 4f 52 54 20 35 30  |7E..<. . SORT 50|
00000130  30 0d 00 46 15 20 e3 20  50 41 53 53 3d 30 20 b8  |0..F. . PASS=0 .|
00000140  20 32 20 88 20 32 0d 00  50 0c 20 50 25 3d 53 4f  | 2 . 2..P. P%=SO|
00000150  52 54 0d 00 5a 0e 20 5b  4f 50 54 20 50 41 53 53  |RT..Z. [OPT PASS|
00000160  0d 00 64 0e 20 4c 44 41  20 26 30 36 30 31 0d 00  |..d. LDA &0601..|
00000170  6e 0e 20 53 54 41 20 43  59 43 4c 45 0d 00 78 0e  |n. STA CYCLE..x.|
00000180  20 4c 44 41 20 26 30 36  30 32 0d 00 82 10 20 53  | LDA &0602.... S|
00000190  54 41 20 43 59 43 4c 45  2b 31 0d 00 8c 0b 20 4c  |TA CYCLE+1.... L|
000001a0  44 59 20 23 31 0d 00 96  12 20 4c 44 41 20 28 43  |DY #1.... LDA (C|
000001b0  59 43 4c 45 29 2c 59 0d  00 a0 11 20 53 54 41 20  |YCLE),Y.... STA |
000001c0  4e 55 4d 42 45 52 2b 31  0d 00 aa 08 20 44 45 59  |NUMBER+1.... DEY|
000001d0  0d 00 b4 08 20 53 45 43  0d 00 be 12 20 4c 44 41  |.... SEC.... LDA|
000001e0  20 28 43 59 43 4c 45 29  2c 59 0d 00 c8 0b 20 53  | (CYCLE),Y.... S|
000001f0  42 43 20 23 31 0d 00 d2  0f 20 53 54 41 20 4e 55  |BC #1.... STA NU|
00000200  4d 42 45 52 0d 00 dc 12  20 42 43 53 20 4f 55 54  |MBER.... BCS OUT|
00000210  45 52 4c 4f 4f 50 0d 00  e6 11 20 44 45 43 20 4e  |ERLOOP.... DEC N|
00000220  55 4d 42 45 52 2b 31 0d  00 f0 0f 20 2e 4f 55 54  |UMBER+1.... .OUT|
00000230  45 52 4c 4f 4f 50 0d 00  fa 0b 20 4c 44 41 20 23  |ERLOOP.... LDA #|
00000240  30 0d 01 04 0d 20 53 54  41 20 46 4c 41 47 0d 01  |0.... STA FLAG..|
00000250  0e 0e 20 53 54 41 20 43  59 43 4c 45 0d 01 18 10  |.. STA CYCLE....|
00000260  20 53 54 41 20 43 59 43  4c 45 2b 31 0d 01 22 0e  | STA CYCLE+1..".|
00000270  20 4c 44 41 20 26 30 36  30 34 0d 01 2c 11 20 53  | LDA &0604..,. S|
00000280  54 41 20 50 4f 49 4e 54  45 52 32 0d 01 36 0e 20  |TA POINTER2..6. |
00000290  4c 44 41 20 26 30 36 30  35 0d 01 40 13 20 53 54  |LDA &0605..@. ST|
000002a0  41 20 50 4f 49 4e 54 45  52 32 2b 31 0d 01 4a 0f  |A POINTER2+1..J.|
000002b0  20 2e 49 4e 4e 45 52 4c  4f 4f 50 0d 01 54 13 20  | .INNERLOOP..T. |
000002c0  4c 44 41 20 50 4f 49 4e  54 45 52 32 2b 31 0d 01  |LDA POINTER2+1..|
000002d0  5e 13 20 53 54 41 20 50  4f 49 4e 54 45 52 31 2b  |^. STA POINTER1+|
000002e0  31 0d 01 68 11 20 4c 44  41 20 50 4f 49 4e 54 45  |1..h. LDA POINTE|
000002f0  52 32 0d 01 72 11 20 53  54 41 20 50 4f 49 4e 54  |R2..r. STA POINT|
00000300  45 52 31 0d 01 7c 08 20  43 4c 43 0d 01 86 0b 20  |ER1..|. CLC.... |
00000310  41 44 43 20 23 34 0d 01  90 11 20 53 54 41 20 50  |ADC #4.... STA P|
00000320  4f 49 4e 54 45 52 32 0d  01 9a 0d 20 42 43 43 20  |OINTER2.... BCC |
00000330  53 4b 49 50 0d 01 a4 13  20 49 4e 43 20 50 4f 49  |SKIP.... INC POI|
00000340  4e 54 45 52 32 2b 31 0d  01 ae 0a 20 2e 53 4b 49  |NTER2+1.... .SKI|
00000350  50 0d 01 b8 0b 20 4c 44  59 20 23 30 0d 01 c2 15  |P.... LDY #0....|
00000360  20 4c 44 41 20 28 50 4f  49 4e 54 45 52 31 29 2c  | LDA (POINTER1),|
00000370  59 0d 01 cc 10 20 53 54  41 20 73 74 72 69 6e 67  |Y.... STA string|
00000380  31 0d 01 d6 15 20 4c 44  41 20 28 50 4f 49 4e 54  |1.... LDA (POINT|
00000390  45 52 32 29 2c 59 0d 01  e0 10 20 53 54 41 20 73  |ER2),Y.... STA s|
000003a0  74 72 69 6e 67 32 0d 01  ea 08 20 49 4e 59 0d 01  |tring2.... INY..|
000003b0  f4 15 20 4c 44 41 20 28  50 4f 49 4e 54 45 52 31  |.. LDA (POINTER1|
000003c0  29 2c 59 0d 01 fe 12 20  53 54 41 20 73 74 72 69  |),Y.... STA stri|
000003d0  6e 67 31 2b 31 0d 02 08  15 20 4c 44 41 20 28 50  |ng1+1.... LDA (P|
000003e0  4f 49 4e 54 45 52 32 29  2c 59 0d 02 12 12 20 53  |OINTER2),Y.... S|
000003f0  54 41 20 73 74 72 69 6e  67 32 2b 31 0d 02 1c 0b  |TA string2+1....|
00000400  20 4c 44 59 20 23 33 0d  02 26 15 20 4c 44 41 20  | LDY #3..&. LDA |
00000410  28 50 4f 49 4e 54 45 52  31 29 2c 59 0d 02 30 10  |(POINTER1),Y..0.|
00000420  20 53 54 41 20 6c 65 6e  67 74 68 31 0d 02 3a 15  | STA length1..:.|
00000430  20 4c 44 41 20 28 50 4f  49 4e 54 45 52 32 29 2c  | LDA (POINTER2),|
00000440  59 0d 02 44 10 20 53 54  41 20 6c 65 6e 67 74 68  |Y..D. STA length|
00000450  32 0d 02 4e 0b 20 4c 44  59 20 23 30 0d 02 58 0e  |2..N. LDY #0..X.|
00000460  20 2e 43 4f 4d 50 4c 4f  4f 50 0d 02 62 14 20 4c  | .COMPLOOP..b. L|
00000470  44 41 20 28 73 74 72 69  6e 67 32 29 2c 59 0d 02  |DA (string2),Y..|
00000480  6c 14 20 43 4d 50 20 28  73 74 72 69 6e 67 31 29  |l. CMP (string1)|
00000490  2c 59 0d 02 76 0d 20 42  43 43 20 53 57 4f 50 0d  |,Y..v. BCC SWOP.|
000004a0  02 80 0f 20 42 4e 45 20  4e 4f 53 57 4f 50 0d 02  |... BNE NOSWOP..|
000004b0  8a 08 20 49 4e 59 0d 02  94 10 20 43 50 59 20 6c  |.. INY.... CPY l|
000004c0  65 6e 67 74 68 31 0d 02  9e 0f 20 42 45 51 20 4e  |ength1.... BEQ N|
000004d0  4f 53 57 4f 50 0d 02 a8  10 20 43 50 59 20 6c 65  |OSWOP.... CPY le|
000004e0  6e 67 74 68 32 0d 02 b2  0d 20 42 45 51 20 53 57  |ngth2.... BEQ SW|
000004f0  4f 50 0d 02 bc 11 20 42  4e 45 20 43 4f 4d 50 4c  |OP.... BNE COMPL|
00000500  4f 4f 50 0d 02 c6 0b 20  2e 53 54 41 47 45 0d 02  |OOP.... .STAGE..|
00000510  d0 12 20 42 4e 45 20 4f  55 54 45 52 4c 4f 4f 50  |.. BNE OUTERLOOP|
00000520  0d 02 da 0a 20 2e 53 57  4f 50 0d 02 e4 0b 20 4c  |.... .SWOP.... L|
00000530  44 59 20 23 33 0d 02 ee  0d 20 53 54 59 20 46 4c  |DY #3.... STY FL|
00000540  41 47 0d 02 f8 0e 20 2e  53 57 4f 50 4c 4f 4f 50  |AG.... .SWOPLOOP|
00000550  0d 03 02 15 20 4c 44 41  20 28 50 4f 49 4e 54 45  |.... LDA (POINTE|
00000560  52 31 29 2c 59 0d 03 0c  08 20 54 41 58 0d 03 16  |R1),Y.... TAX...|
00000570  15 20 4c 44 41 20 28 50  4f 49 4e 54 45 52 32 29  |. LDA (POINTER2)|
00000580  2c 59 0d 03 20 15 20 53  54 41 20 28 50 4f 49 4e  |,Y.. . STA (POIN|
00000590  54 45 52 31 29 2c 59 0d  03 2a 08 20 54 58 41 0d  |TER1),Y..*. TXA.|
000005a0  03 34 15 20 53 54 41 20  28 50 4f 49 4e 54 45 52  |.4. STA (POINTER|
000005b0  32 29 2c 59 0d 03 3e 08  20 44 45 59 0d 03 48 11  |2),Y..>. DEY..H.|
000005c0  20 42 50 4c 20 53 57 4f  50 4c 4f 4f 50 0d 03 52  | BPL SWOPLOOP..R|
000005d0  0c 20 2e 4e 4f 53 57 4f  50 0d 03 5c 0e 20 49 4e  |. .NOSWOP..\. IN|
000005e0  43 20 43 59 43 4c 45 0d  03 66 0e 20 42 4e 45 20  |C CYCLE..f. BNE |
000005f0  53 4b 49 50 32 0d 03 70  10 20 49 4e 43 20 43 59  |SKIP2..p. INC CY|
00000600  43 4c 45 2b 31 0d 03 7a  0a 2e 53 4b 49 50 32 0d  |CLE+1..z..SKIP2.|
00000610  03 84 0e 20 4c 44 41 20  43 59 43 4c 45 0d 03 8e  |... LDA CYCLE...|
00000620  0f 20 43 4d 50 20 4e 55  4d 42 45 52 0d 03 98 12  |. CMP NUMBER....|
00000630  20 42 4e 45 20 49 4e 4e  45 52 4c 4f 4f 50 0d 03  | BNE INNERLOOP..|
00000640  a2 10 20 4c 44 41 20 43  59 43 4c 45 2b 31 0d 03  |.. LDA CYCLE+1..|
00000650  ac 11 20 43 4d 50 20 4e  55 4d 42 45 52 2b 31 0d  |.. CMP NUMBER+1.|
00000660  03 b6 12 20 42 4e 45 20  49 4e 4e 45 52 4c 4f 4f  |... BNE INNERLOO|
00000670  50 0d 03 c0 0d 20 4c 44  41 20 46 4c 41 47 0d 03  |P.... LDA FLAG..|
00000680  ca 12 20 42 45 51 20 46  4c 41 47 43 4c 45 41 52  |.. BEQ FLAGCLEAR|
00000690  0d 03 d4 0f 20 4c 44 41  20 4e 55 4d 42 45 52 0d  |.... LDA NUMBER.|
000006a0  03 de 08 20 53 45 43 0d  03 e8 0b 20 53 42 43 20  |... SEC.... SBC |
000006b0  23 31 0d 03 f2 0f 20 53  54 41 20 4e 55 4d 42 45  |#1.... STA NUMBE|
000006c0  52 0d 03 fc 0e 20 42 43  53 20 53 4b 49 50 33 0d  |R.... BCS SKIP3.|
000006d0  04 06 11 20 44 45 43 20  4e 55 4d 42 45 52 2b 31  |... DEC NUMBER+1|
000006e0  0d 04 10 0b 20 2e 53 4b  49 50 33 0d 04 1a 0f 20  |.... .SKIP3.... |
000006f0  4c 44 41 20 4e 55 4d 42  45 52 0d 04 24 0e 20 42  |LDA NUMBER..$. B|
00000700  4e 45 20 53 54 41 47 45  0d 04 2e 11 20 4c 44 41  |NE STAGE.... LDA|
00000710  20 4e 55 4d 42 45 52 2b  31 0d 04 38 0e 20 42 4e  | NUMBER+1..8. BN|
00000720  45 20 53 54 41 47 45 0d  04 42 0f 20 2e 46 4c 41  |E STAGE..B. .FLA|
00000730  47 43 4c 45 41 52 0d 04  4c 0a 20 52 54 53 3a 5d  |GCLEAR..L. RTS:]|
00000740  0d 04 56 0b 20 ed 20 50  41 53 53 0d 04 60 49 20  |..V. . PASS..`I |
00000750  f4 20 42 61 73 69 63 20  66 72 6f 6d 20 68 65 72  |. Basic from her|
00000760  65 20 6f 6e 77 61 72 64  73 20 69 73 20 79 6f 75  |e onwards is you|
00000770  72 20 70 72 6f 67 72 61  6d 20 74 68 61 74 20 75  |r program that u|
00000780  73 65 73 20 74 68 65 20  61 62 6f 76 65 20 73 6f  |ses the above so|
00000790  72 74 65 72 0d 04 6a 06  20 db 0d 04 74 22 20 e8  |rter..j. ...t" .|
000007a0  22 4e 55 4d 42 45 52 20  4f 46 20 53 54 52 49 4e  |"NUMBER OF STRIN|
000007b0  47 53 20 22 3b 4e 55 4d  42 45 52 25 0d 04 7e 4a  |GS ";NUMBER%..~J|
000007c0  20 e7 20 4e 55 4d 42 45  52 25 3e 31 30 30 30 20  | . NUMBER%>1000 |
000007d0  8c 20 f1 22 54 4f 4f 20  4d 41 4e 59 22 3a e5 20  |. ."TOO MANY":. |
000007e0  8d 44 74 44 3a f4 20 41  6c 74 65 72 73 20 64 65  |.DtD:. Alters de|
000007f0  70 65 6e 64 69 6e 67 20  6f 6e 20 73 63 72 65 65  |pending on scree|
00000800  6e 20 6d 6f 64 65 0d 04  88 06 20 f1 0d 04 92 16  |n mode.... .....|
00000810  20 de 20 41 52 52 41 59  24 28 4e 55 4d 42 45 52  | . ARRAY$(NUMBER|
00000820  25 29 0d 04 9c 2b 20 f4  20 52 61 6e 64 6f 6d 6c  |%)...+ . Randoml|
00000830  79 20 67 65 6e 65 72 61  74 65 73 20 31 30 20 6c  |y generates 10 l|
00000840  65 74 74 65 72 20 73 74  72 69 6e 67 73 0d 04 a6  |etter strings...|
00000850  18 20 f1 3a f1 22 53 54  52 49 4e 47 53 20 41 52  |. .:."STRINGS AR|
00000860  45 2e 2e 2e 22 0d 04 b0  06 20 f1 0d 04 ba 15 20  |E...".... ..... |
00000870  e3 20 4e 25 3d 31 20 b8  20 4e 55 4d 42 45 52 25  |. N%=1 . NUMBER%|
00000880  0d 04 c4 0f 20 73 74 72  69 6e 67 24 3d 22 22 0d  |.... string$="".|
00000890  04 ce 13 20 e3 20 5a 25  3d 31 20 b8 20 b3 28 31  |... . Z%=1 . .(1|
000008a0  30 29 0d 04 d8 13 20 4b  24 3d bd 28 b3 28 32 36  |0).... K$=.(.(26|
000008b0  29 2b 36 34 29 0d 04 e2  17 20 73 74 72 69 6e 67  |)+64).... string|
000008c0  24 3d 73 74 72 69 6e 67  24 2b 4b 24 0d 04 ec 09  |$=string$+K$....|
000008d0  20 ed 20 5a 25 0d 04 f6  17 20 41 52 52 41 59 24  | . Z%.... ARRAY$|
000008e0  28 4e 25 29 3d 73 74 72  69 6e 67 24 0d 05 00 11  |(N%)=string$....|
000008f0  20 f1 20 41 52 52 41 59  24 28 4e 25 29 0d 05 0a  | . ARRAY$(N%)...|
00000900  09 20 ed 20 4e 25 0d 05  14 18 20 f1 3a f1 22 4e  |. . N%.... .:."N|
00000910  4f 57 20 53 4f 52 54 49  4e 47 2e 2e 2e 22 0d 05  |OW SORTING..."..|
00000920  1e 52 20 f4 20 54 75 72  6e 20 74 69 6d 65 72 20  |.R . Turn timer |
00000930  6f 6e 2c 6e 6f 74 65 20  74 68 61 74 20 76 61 72  |on,note that var|
00000940  69 61 62 6c 65 20 6e 61  6d 65 73 20 6d 75 73 74  |iable names must|
00000950  20 62 65 20 74 68 65 20  73 61 6d 65 20 61 73 20  | be the same as |
00000960  75 73 65 64 20 69 6e 20  74 68 65 20 63 6f 64 65  |used in the code|
00000970  0d 05 28 0c 20 48 45 52  45 25 3d 91 0d 05 32 1d  |..(. HERE%=...2.|
00000980  20 d6 20 53 4f 52 54 2c  4e 55 4d 42 45 52 25 2c  | . SORT,NUMBER%,|
00000990  41 52 52 41 59 24 28 31  29 0d 05 3c 0b 20 4e 4f  |ARRAY$(1)..<. NO|
000009a0  57 25 3d 91 0d 05 46 15  20 e3 20 4e 25 3d 31 20  |W%=...F. . N%=1 |
000009b0  b8 20 4e 55 4d 42 45 52  25 0d 05 50 11 20 f1 20  |. NUMBER%..P. . |
000009c0  41 52 52 41 59 24 28 4e  25 29 0d 05 5a 09 20 ed  |ARRAY$(N%)..Z. .|
000009d0  20 4e 25 0d 05 64 42 20  f1 3a f1 22 53 4f 52 54  | N%..dB .:."SORT|
000009e0  45 44 20 22 3b 4e 55 4d  42 45 52 25 3b 22 20 49  |ED ";NUMBER%;" I|
000009f0  54 45 4d 53 20 49 4e 20  22 3b 28 4e 4f 57 25 2d  |TEMS IN ";(NOW%-|
00000a00  48 45 52 45 25 29 2f 31  30 30 3b 22 20 53 45 43  |HERE%)/100;" SEC|
00000a10  4f 4e 44 53 22 0d 05 6e  38 20 f4 20 54 69 6d 65  |ONDS"..n8 . Time|
00000a20  20 40 20 31 30 20 6c 74  74 72 73 3a 20 31 37 30  | @ 10 lttrs: 170|
00000a30  30 3d 31 34 36 73 20 3b  20 34 30 30 3d 37 2e 39  |0=146s ; 400=7.9|
00000a40  73 20 3b 20 31 30 30 3d  30 2e 34 39 73 0d ff     |s ; 100=0.49s..|
00000a4f
P/ABC-M.m0
P/ABC-M.m1
P/ABC-M.m2
P/ABC-M.m4
P/ABC-M.m5