10 REM > Example09 20 :: 30 REM © 2000 Martin Penny 40 :: 50 ON ERROR GOTO 650 60 :: 70 MODE 12 80 OFF 90 COLOUR 0, 4 100 COLOUR 7, 3 110 S% = 262144 120 DIM X% S%-1 130 DIM Y% S%-1 140 DIM D% 4095 150 L% = D% + 4096 160 FOR T% = 0 TO 1 170 OPT% = 8 + T% * 3 180 IF OPT% AND 1 THEN VDU 14 190 IF OPT% AND 1 THEN PRINT 200 P% = D% 210 [OPT OPT% 220 : 230 .Code% 240 STMFD R13!, {R8 - R12, R14} 250 LDR R8, Block1% 260 LDR R9, Block2% 270 LDR R10, Size% 280 MOV R11, #0 290 .Loop% 300 LDMIA R8!, {R0 - R7} 310 STMIA R9!, {R0 - R7} 320 ADD R11, R11, #32 330 CMPS R11, R10 340 BNE Loop% 350 .Exit% 360 LDMFD R13!, {R8 - R12, R15} 370 : 380 .Block1% 390 EQUD 0 400 : 410 .Block2% 420 EQUD 0 430 : 440 .Size% 450 EQUD 0 460 : 470 .End% 480 : 490 ] 500 IF OPT% AND 1 THEN PRINT 510 IF OPT% AND 1 THEN VDU 15 520 NEXT T% 530 !Block1% = X% 540 !Block2% = Y% 550 !Size% = S% 560 PRINT 570 PRINT "Copying..." 580 T% = TIME 590 CALL Code% 600 PRINT "Done. That took "; STR$(TIME - T%); " centiseconds." 610 PRINT 620 ON 630 END 640 :: 650 VDU 15 660 PRINT REPORT$; " at line "; ERL 670 ON 680 END