With the .for directive you can generate loops as in modern programming languages. The .for directive takes an init expression list, a boolean expression, and an iteration list separated by a semicolon. The last two arguments and the body are executed as long as the boolean expression evaluates to true.
// Prints the numbers from 0 to 9 .for(var i=0;i<10;i++) .print "Number " + i // Make data for a sine wave .for(var i=0;i<256;i++) .byte round(127.5+127.5*sin(toRadians(360*i/256)))
Since argument 1 and 3 are lists, you can leave them out, or you can write several expressions separated by comma:
// Print the numbers from 0 to 9
.var i=0
.for (;i<10;) {
.print i
.eval i++
}
// Sum the numbers from 0 to 9 and print the sum at each step
.for(var i=0, var sum=0;i<10;sum=sum+i,i++)
.print “The sum at step “ + I “ is “ + sum
With the for loop you can quickly generate tables and unroll loops. You can, for example, do a classic ‘blitter fill’ routine like this:
.var blitterBuffer=$3000
.var charset=$3800
.for (x=0;x<16;x++) {
.for(var y=0;y<128;y++) {
if (var y=0) lda blitterBuffer+x*128+y
else eor blitterBuffer+x*128+y
sta charset+x*128+y
}
}





