10 REM > Example21 20 :: 30 REM © 2000 Martin Penny 40 :: 50 ON ERROR GOTO 770 60 :: 70 MODE 12 80 OFF 90 COLOUR 0, 4 100 COLOUR 7, 3 110 SYS "OS_SWINumberFromString",,"OS_WriteI" TO WriteI% 120 DIM B% 255 130 DIM D% 4095 140 L% = D% + 4096 150 FOR T% = 0 TO 1 160 OPT% = 8 + T% * 3 170 IF OPT% AND 1 THEN VDU 14 180 IF OPT% AND 1 THEN PRINT 190 P% = D% 200 [OPT OPT% 210 : 220 .Code% 230 STMFD R13!, {R8 - R12, R14} 240 SWI "OS_NewLine" 250 MOV R8, #0 260 ADR R9, Registers% 270 STMIA R9, {R0 - R7} 280 .Loop% 290 SWI WriteI% + ASC(" ") 300 SWI WriteI% + ASC(" ") 310 ADD R0, R8, #ASC("A") 320 SWI "OS_WriteC" 330 SWI WriteI% + ASC("%") 340 SWI WriteI% + ASC(" ") 350 SWI WriteI% + ASC(" ") 360 SWI WriteI% + ASC("&") 370 LDR R0, [R9, R8, LSL #2] 380 LDR R1, Buffer% 390 MOV R2, #256 400 SWI "OS_ConvertHex8" 410 SWI "OS_Write0" 420 SWI "OS_NewLine" 430 ADD R8, R8, #1 440 CMPS R8, #8 450 BNE Loop% 460 SWI "OS_NewLine" 470 .Exit% 480 LDMFD R13!, {R8 - R12, R15} 490 : 500 .Registers% 510 EQUD 0 520 EQUD 0 530 EQUD 0 540 EQUD 0 550 EQUD 0 560 EQUD 0 570 EQUD 0 580 EQUD 0 590 : 600 .Buffer% 610 EQUD B% 620 : 630 .End% 640 : 650 ] 660 IF OPT% AND 1 THEN PRINT 670 IF OPT% AND 1 THEN VDU 15 680 NEXT T% 690 PRINT 700 PRINT "-- Press ENTER to continue --" 710 REPEAT UNTIL GET = 13 720 CLS 730 ON 740 CALL Code% 750 END 760 :: 770 VDU 15 780 PRINT REPORT$; " at line "; ERL 790 ON 800 END