10
20
30 MODE 0
40 PRINT "Pre-allocate strings? Y/N ";:REPEATA%=GETAND&DF:UNTILA%=89 OR A%=78
50 IF A%=89:PRINT"Yes" ELSE PRINT"No"
60 IF A%=89:A$=STRING$(255,"*"):B$=STRING$(255,"*")
70 IF A%=89:C$=STRING$(255,"*"):D$=STRING$(255,"*")
80 X%=0
90 REPEAT
100 A%=RND AND 3:L%=RND AND 255
110 IF A%=0:A$=STRING$(L%,"*")
120 IF A%=1:B$=STRING$(L%,"*")
130 IF A%=2:C$=STRING$(L%,"*")
140 IF A%=3:D$=STRING$(L%,"*")
150 DIM A%-1:U%=A%-LOMEM
160 PRINT CHR$13;"Heap used: ";U%;" ";U%DIV4;" per string ";CHR$8;
170 DRAW X%,U%DIV16
180 X%=X%+1:IF X%>1279:X%=0:MOVE X%,U%DIV16
190 UNTIL FALSE