10 REM > Example17 20 :: 30 REM © 2000 Martin Penny 40 :: 50 ON ERROR GOTO 730 60 :: 70 MODE 12 80 OFF 90 COLOUR 0, 4 100 COLOUR 7, 3 110 DIM D% 4095 120 L% = D% + 4096 130 FOR T% = 0 TO 1 140 OPT% = 8 + T% * 3 150 IF OPT% AND 1 THEN VDU 14 160 IF OPT% AND 1 THEN PRINT 170 P% = D% 180 [OPT OPT% 190 : 200 .Code% 210 STMFD R13!, {R8 - R12, R14} 220 .LevelZero% 230 SWI "OS_NewLine" 240 ADR R0, LevelZeroText% 250 BL Print% 260 ADR R14, Return% 270 ADR R15, LevelOne% 280 .Return% 290 ADR R0, LevelZeroText% 300 BL Print% 310 SWI "OS_NewLine" 320 .Exit% 330 LDMFD R13!, {R8 - R12, R15} 340 : 350 .LevelOne% 360 STMFD R13!, {R14} 370 SWI "OS_NewLine" 380 ADR R0, LevelOneText% 390 BL Print% 400 SWI "OS_NewLine" 410 LDMFD R13!, {R15} 420 : 430 .Print% 440 SWI "OS_Write0" 450 SWI "OS_NewLine" 460 MOV R15, R14 470 : 480 .LevelZeroText% 490 EQUS "This is the main body - label ""LevelZero%""." 500 EQUB 0 510 ALIGN 520 : 530 .LevelOneText% 540 EQUS "This is level one - label ""LevelOne%""." 550 EQUB 0 560 ALIGN 570 : 580 .End% 590 : 600 ] 610 IF OPT% AND 1 THEN PRINT 620 IF OPT% AND 1 THEN VDU 15 630 NEXT T% 640 PRINT 650 PRINT "-- Press ENTER to continue --" 660 PRINT 670 REPEAT UNTIL GET = 13 680 CLS 690 CALL Code% 700 ON 710 END 720 :: 730 VDU 15 740 PRINT REPORT$; " at line "; ERL 750 ON 760 END