Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199610.adf » Regulars » StarInfo/Buckner/!1BigFile

StarInfo/Buckner/!1BigFile

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199610.adf » Regulars
Filename: StarInfo/Buckner/!1BigFile
Read OK:
File size: 2CFD bytes
Load address: 0000
Exec address: 0000
File contents
   10PROCinit
   20ON ERROR PROCerror
   30PROCmainmenu
   40END
   50
   60DEF PROCinit
   70LOCAL ERROR
   80 ON ERROR LOCAL REPORT:PRINT" at line ";ERL:ON:END
   90 DIM speed(3,10)
  100 MODE15:OFF
  110 PROCass
  120 n%=3
  130 type%=1 :REM 1=menu  2=proggy  3=Fast
  140REM  FTN         Normal        RPC600
  150speed(1,1)=5: speed(2,1)=20 :speed(3,1)=100
  160speed(1,2)=5: speed(2,2)=20 :speed(3,2)=100
  170speed(1,3)=5: speed(2,3)=20 :speed(3,3)=100
  180speed(1,4)=50: speed(2,4)=200 :speed(3,4)=1000
  190speed(1,5)=16: speed(2,5)=30 :speed(3,5)=100
  200speed(1,6)=50: speed(2,6)=200 :speed(3,6)=700
  210speed(1,7)=4: speed(2,7)=20 :speed(3,7)=100
  220speed(1,8)=50: speed(2,8)=200 :speed(3,8)=1000
  230 RESTORE ERROR
  240ENDPROC
  250
  260DEF PROCass
  270 DIM code 40960
  280 sp=13:lk=14:pc=15
  290 FORps%=0TO2STEP2
  300 P%=code
  310 [OPT ps%
  320
  330.Move
  340STMFD(sp)!,{lk}
  350;"Moves x & y"
  360 ADD R0,R0,R2:ADD R1,R1,R3
  370LDMFD(sp)!,{pc}
  380
  390.ChckP1
  400 STMFD(sp)!,{lk}
  410;"checks x"
  420 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
  430;"checks y"
  440 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#240:RSBGT R3,R3,#0
  450 LDMFD(sp)!,{pc}
  460
  470.ChckP2
  480 STMFD(sp)!,{lk}
  490;"checks x"
  500 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
  510;"checks y"
  520 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#230:RSBGT R3,R3,#0
  530 LDMFD(sp)!,{pc}
  540
  550.ChckP3
  560 STMFD(sp)!,{lk}
  570;"checks x"
  580 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
  590;"checks y"
  600 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#245:RSBGT R3,R3,#0
  610 LDMFD(sp)!,{pc}
  620
  630.ChckP4
  640 STMFD(sp)!,{lk}
  650;"checks x"
  660 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
  670;"checks y"
  680 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#230:RSBGT R3,R3,#0
  690 LDMFD(sp)!,{pc}
  700
  710.ChckP5
  720 STMFD(sp)!,{lk}
  730;"checks x"
  740 CMP R0,#8:RSBLT R2,R2,#0:ADDLT R0,R0,R2
  750 CMP R0,#632:RSBGT R2,R2,#0:ADDGT R0,R0,R2
  760;"checks y"
  770 CMP R1,#8:RSBLT R3,R3,#0:ADDLT R1,R1,R3
  780 CMP R1,#250:RSBGT R3,R3,#0:ADDGT R1,R1,R3
  790 LDMFD(sp)!,{pc}
  800
  810.ChckP6
  820 STMFD(sp)!,{lk}
  830;"checks x"
  840 CMP R0,#10:RSBLT R2,R2,#0:ADDLT R0,R0,R2
  850 CMP R0,#620:RSBGT R2,R2,#0:ADDGT R0,R0,R2
  860;"checks y"
  870 CMP R1,#10:RSBLT R3,R3,#0:ADDLT R1,R1,R3
  880 CMP R1,#240:RSBGT R3,R3,#0:ADDGT R1,R1,R3
  890 LDMFD(sp)!,{pc}
  900
  910.ChckP7
  920 STMFD(sp)!,{lk}
  930;"checks x"
  940 CMP R0,#10:RSBLT R2,R2,#0:ADDLT R0,R0,R2
  950 CMP R0,#600:RSBGT R2,R2,#0:ADDGT R0,R0,R2
  960;"checks y"
  970 CMP R1,#10:RSBLT R3,R3,#0:ADDLT R1,R1,R3
  980 CMP R1,#200:RSBGT R3,R3,#0:ADDGT R1,R1,R3
  990 LDMFD(sp)!,{pc}
 1000
 1010.ChckP8
 1020 STMFD(sp)!,{lk}
 1030;"checks x"
 1040 CMP R0,#20:RSBLT R2,R2,#0:ADDLT R0,R0,R2
 1050 CMP R0,#628:RSBGT R2,R2,#0:ADDGT R0,R0,R2
 1060;"checks y"
 1070 CMP R1,#10:RSBLT R3,R3,#0:ADDLT R1,R1,R3
 1080 CMP R1,#200:RSBGT R3,R3,#0:ADDGT R1,R1,R3
 1090 LDMFD(sp)!,{pc}
 1100
 1110.Delay
 1120 STMFD(sp)!,{lk}
 1130;"Delay count & changing colour & checking Escape state"
 1140 LDR R11,Wait
 1150.delay:SUBS R11,R11,#1:BGT delay
 1160 LDMFD(sp)!,{pc}
 1170
 1180
 1190
 1200.P1                 ;"Program 1!"
 1210 STMFD(sp)!,{lk}
 1220;"scr start,x,y,xd,yd,cl"
 1230 LDR R12,res:MOV R0,#12:MOV R1,#110:MOV R2,#2:MOV R3,#1:MOV R4,#1
 1240.p1l
 1250;"MLA R5,y,640,x -->  R5=x+(640*y)"
 1260 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 1270;"Plot sequence"
 1280 STRB R4,[R12,R5]:SUB R5,R5,#640:STRB R4,[R12,R5]:ADD R5,R5,#1280
 1290 STRB R4,[R12,R5]:SUB R5,R5,#640:SUB R5,R5,#1
 1300 STRB R4,[R12,R5]:ADD R5,R5,#2:STRB R4,[R12,R5]
 1310 BL Move
 1320 BL ChckP1
 1330 BL Delay
 1340 ADD R4,R4,#1
 1350 SWI "OS_ReadEscapeState":BCS P1E:B p1l
 1360.P1E
 1370 LDMFD(sp)!,{pc}
 1380
 1390.P2                 ;"Program 2!"
 1400 STMFD(sp)!,{lk}
 1410 LDR R12,res:ADR R10,p2tab:MOV R0,#10:MOV R1,#10:MOV R2,#2:MOV R3,#1:MOV R4,#1
 1420.p2
 1430;"MLA R5,y,640,x -->  R5=x+(640*y)"
 1440 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 1450;"Plots it"
 1460 LDR R9,[R10,#0]:STR R9,[R12,R5]
 1470 LDR R9,[R10,#4]:ADD R5,R5,#640:STR R9,[R12,R5]
 1480 LDR R9,[R10,#8]:ADD R5,R5,#640:STR R9,[R12,R5]
 1490 BL Move
 1500 BL ChckP2
 1510 BL Delay
 1520 SWI "OS_ReadEscapeState":BCS p2E:B p2
 1530.p2E
 1540 LDMFD(sp)!,{pc}
 1550
 1560.P3                ;"Program 3!"
 1570 STMFD(sp)!,{lk}
 1580 LDR R12,res:ADR R10,p3tab:MOV R0,#10:MOV R1,#30:MOV R2,#2:MOV R3,#1:MOV R4,#1
 1590.p3
 1600;"MLA R5,y,640,x -->  R5=x+(640*y)"
 1610 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 1620;"Plot sequence"
 1630 LDR R9,[R10,#0]:STR R9,[R12,R5]
 1640 LDR R9,[R10,#4]:ADD R5,R5,#640:STR R9,[R12,R5]
 1650 LDR R9,[R10,#8]:ADD R5,R5,#640:STR R9,[R12,R5]
 1660 BL Move
 1670 BL ChckP3
 1680 BL Delay
 1690 SWI "OS_ReadEscapeState":BCS p3E:B p3
 1700.p3E
 1710 LDMFD(sp)!,{pc}
 1720
 1730.P4                 ;"Program 4!"
 1740 STMFD(sp)!,{lk}
 1750 LDR R12,res:ADR R10,p4tab:MOV R0,#10:MOV R1,#10:MOV R2,#4:MOV R3,#1:MOV R4,#1
 1760.p4
 1770;"MLA R5,y,640,x -->  R5=x+(640*y)"
 1780 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 1790;"Plot sequence"
 1800 LDR R9,[R10,#0]:STR R9,[R12,R5]
 1810 LDR R9,[R10,#4]:ADD R5,R5,#640:STR R9,[R12,R5]
 1820 LDR R9,[R10,#8]:ADD R5,R5,#640:STR R9,[R12,R5]
 1830 BL Move
 1840 BL ChckP4
 1850 BL Delay
 1860 SWI "OS_ReadEscapeState":BCS p4E:B p4
 1870.p4E
 1880 LDMFD(sp)!,{pc}
 1890
 1900.P5                 ;"Guess! - Yes you got it! - Program 5!"
 1910 STMFD(sp)!,{lk}
 1920 LDR R12,res:ADR R10,p5tab:MOV R0,#10:MOV R1,#10:MOV R2,#3:MOV R3,#1:MOV R4,#1
 1930.p5
 1940 BL Move:BL ChckP5
 1950;"MLA R5,y,640,x -->  R5=x+(640*y)"
 1960 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 1970;"Plot sequence"
 1980 MOV R6,#0
 1990.p5l
 2000 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4:LDR R9,[R10,R6]
 2010 ADD R6,R6,#4:STR R9,[R12,R5]:CMP R6,#24:BLT p5l:BL Delay
 2020 SWI "OS_ReadEscapeState":BCS p5E:B p5
 2030.p5E
 2040 LDMFD(sp)!,{pc}
 2050
 2060.P6                 ;"Yet another Program (6)"
 2070 STMFD(sp)!,{lk}
 2080 LDR R12,res:ADR R10,p6tab:MOV R0,#10:MOV R1,#10:MOV R2,#2:MOV R3,#1:MOV R4,#1
 2090.p6
 2100 BL Move
 2110 BL ChckP6
 2120;"MLA R5,y,640,x -->  R5=x+(640*y)"
 2130 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 2140;"Plot sequence"
 2150 MOV R6,#0
 2160.p6l
 2170 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]
 2180 ADD R5,R5,#4:LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]
 2190 ADD R5,R5,#632:CMP R6,#48:BLT p6l:BL Delay
 2200 SWI "OS_ReadEscapeState":BCS p6E:B p6
 2210.p6E
 2220 LDMFD(sp)!,{pc}
 2230
 2240.P7                 ;"Proggy 7 - Well, Its a change!"
 2250 STMFD(sp)!,{lk}
 2260 LDR R12,res:ADR R10,p7tab:MOV R0,#10:MOV R1,#10:MOV R2,#3:MOV R3,#1:MOV R4,#1
 2270.p7
 2280;"Moves x & y"
 2290 ADD R0,R0,R2:ADD R1,R1,R3
 2300 BL ChckP7
 2310;"MLA R5,y,640,x -->  R5=x+(640*y)"
 2320 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 2330;"Plot sequence"
 2340 MOV R6,#0
 2350.p7l:LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4
 2360 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4
 2370 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#632
 2380 CMP R6,#48:BLT p7l:BL Delay
 2390 SWI "OS_ReadEscapeState":BCS p7E:B p7
 2400.p7E
 2410 LDMFD(sp)!,{pc}
 2420
 2430.P8                 ;"Can't be bothered - Program 8..."
 2440 STMFD(sp)!,{lk}
 2450 LDR R12,res:ADR R10,p8tab:MOV R0,#100:MOV R1,#10:MOV R2,#2:MOV R3,#1:MOV R4,#1
 2460.p8
 2470;"Moves x & y"
 2480 ADD R0,R0,R2:ADD R1,R1,R3
 2490 BL ChckP8
 2500;"MLA R5,y,640,x -->  R5=x+(640*y)"
 2510 ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
 2520;"Plot sequence"
 2530 MOV R6,#0
 2540.p8l
 2550 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4
 2560 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4
 2570 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#632
 2580 CMP R6,#48:BLT p8l:BL Delay
 2590 SWI "OS_ReadEscapeState":BCS p8E:B p8
 2600.p8E
 2610 LDMFD(sp)!,{pc}
 2620
 2630.p8tab
 2640 EQUD &CF000000:EQUD &CF0000CF:EQUD &000000AF
 2650 EQUD &CFCFCF00:EQUD &CF0000CF:EQUD &00AFAFAF
 2660 EQUD &AF000000:EQUD &CFCFAFAF:EQUD &000000CF
 2670 EQUD &AFAFAF00:EQUD &CFCFAFAF:EQUD &00CFCFCF
 2680
 2690.p7tab
 2700 EQUD &AAAA0000:EQUD &AA0000AA:EQUD &0000AAAA
 2710 EQUD &37373700:EQUD &37373737:EQUD &00373737
 2720 EQUD &37370000:EQUD &37373737:EQUD &00003737
 2730 EQUD &37000000:EQUD &37000037:EQUD &00000037
 2740
 2750.p6tab
 2760 EQUD &31310000:EQUD &31000031:EQUD &00003131
 2770 EQUD &31313100:EQUD &31313131:EQUD &00373731
 2780 EQUD &31310000:EQUD &31373737:EQUD &00003737
 2790 EQUD &31000000:EQUD &37000037:EQUD &00000037
 2800
 2810.p5tab
 2820 EQUD &22111111                     ;4 Bytes
 2830 EQUD &22221111                     ;8
 2840 EQUD &32222211                     ;12
 2850 EQUD &33222221                     ;16
 2860 EQUD &33333222                     ;20
 2870 EQUD &33333322                     ;24
 2880
 2890.p4tab
 2900 EQUD &00000006
 2910 EQUD &00000666
 2920 EQUD &00066666
 2930
 2940.p3tab
 2950 EQUD &11111666
 2960 EQUD &11116666
 2970 EQUD &11166666
 2980
 2990.p2tab
 3000 EQUD &66778899
 3010 EQUD &22334455
 3020 EQUD &11610011
 3030
 3040
 3050
 3060.twirl
 3070STMFD (sp)!,{lk}
 3080
 3090LDRR0,cx
 3100LDRR1,cxv
 3110ADDR0,R0,R1
 3120CMPR0,#320
 3130ADDLTR1,R1,#3
 3140SUBGTR1,R1,#3
 3150STRR0,cx
 3160STRR1,cxv
 3170
 3180LDRR0,cy
 3190LDRR1,cyv
 3200ADDR0,R0,R1
 3210CMPR0,#255
 3220ADDLTR1,R1,#2
 3230SUBGTR1,R1,#2
 3240STRR0,cy
 3250STRR1,cyv
 3260
 3270
 3280LDRR0,xp ;Load vars
 3290LDRR1,yp
 3300LDRR2,vx
 3310LDRR3,vy
 3320
 3330ADDR0,R0,R2 ;move pos
 3340ADDR1,R1,R3
 3350
 3360STRR0,xp ;store pos
 3370STRR1,yp
 3380
 3390MOVR0,R0,ASR #13 ;shift down
 3400MOVR1,R1,ASR #13
 3410
 3420LDRR8,am
 3430
 3440LDRR9,cx
 3450CMPR0,R9       ;Compare xp with centre (x) of screen
 3460ADDLTR2,R2,R8
 3470SUBGTR2,R2,R8
 3480
 3490LDRR9,cy
 3500CMPR1,R9       ;Compare yp with centre (y) of screen
 3510ADDLTR3,R3,R8
 3520SUBGTR3,R3,R8
 3530
 3540STRR2,vx  ;store (changed) xp & yp vars
 3550STRR3,vy
 3560
 3570ADDR5,R0,R1,ASL #9 ;get position on screen and colour and plot
 3580ADDR5,R5,R1,ASL #7
 3590LDRR6,cl
 3600LDRR7,res
 3610STRBR6,[R7,R5]
 3620
 3630LDMFD (sp)!,{pc}
 3640
 3650.cl:EQUD0
 3660.xp:EQUD0
 3670.yp:EQUD0
 3680.vx:EQUD0
 3690.vy:EQUD0
 3700.am:EQUD0
 3710.cx:EQUD0
 3720.cy:EQUD0
 3730.cxv:EQUD0
 3740.cyv:EQUD0
 3750
 3760
 3770
 3780
 3790
 3800.Wait:EQUD0
 3810.scr:EQUD148:EQUD6:EQUD7:EQUD-1
 3820.res:EQUD0:EQUD0:EQUD0:EQUD0
 3830 ]NEXT
 3840 SYS"OS_ReadVduVariables",scr,res
 3850ENDPROC
 3860
 3870DEF PROCmainmenu
 3880 MODE 15:OFF:SYS"OS_ReadVduVariables",scr,res
 3890 PRINTTAB(17,1);" Main Menu   (Honest!)"
 3900 COLOUR 12
 3910 PRINTTAB(15,5);"Options      (Not many!)"
 3920 PRINTTAB(17,6);"1. Faster than Normal (FTN)"
 3930 PRINTTAB(17,7);"2. Normal Speed (older machines)"
 3940 PRINTTAB(17,8);"3. RiscPC Speed (New machines)"
 3950 COLOUR 11
 3960 PRINTTAB(15,10);"Programs     (Just a Few!)"
 3970 PRINTTAB(17,11);"A. Moving quilt"
 3980 PRINTTAB(17,12);"B. Criss Cross"
 3990 PRINTTAB(17,13);"C. Criss X Up/Down"
 4000 PRINTTAB(17,14);"D. Something!"
 4010 PRINTTAB(17,15);"E. Wood?"
 4020 PRINTTAB(17,16);"F. 3D Inside Pyramids?"
 4030 PRINTTAB(17,17);"G. Something Else?"
 4040 PRINTTAB(17,18);"H. Tubes Maybe"
 4050 PRINTTAB(17,19);"I. Twirl 2"
 4060 PRINTTAB(7,23);"Twirl2 - Hi Res - Speed settings will not affect this proggy"
 4070 COLOUR 4
 4080 PRINTTAB(15,25);"Written by Vincent Buckner"
 4090 REPEAT
 4100  w$=INKEY$(.00001)
 4110  IF w$="1" THEN n%=1
 4120  IF w$="2" THEN n%=2
 4130  IF w$="3" THEN n%=3
 4140  COLOUR 3
 4150  IF n%=1 THEN PRINTTAB(21,3);"Speed - FTN   "
 4160  IF n%=2 THEN PRINTTAB(21,3);"Speed - Normal"
 4170  IF n%=3 THEN PRINTTAB(21,3);"Speed - RiscPC"
 4180  COLOUR 7
 4181  IF w$>="a" AND w$<="i" w$=CHR$(ASCw$-32)
 4190 UNTIL w$>="A" AND w$<="I"
 4200 CLS
 4210 IF w$="A" THEN type%=2:!Wait=speed(n%,1):CALL P1
 4220 IF w$="B" THEN type%=2:!Wait=speed(n%,2):CALL P2
 4230 IF w$="C" THEN type%=2:!Wait=speed(n%,3):CALL P3
 4240 IF w$="D" THEN type%=2:!Wait=speed(n%,4):CALL P4
 4250 IF w$="E" THEN type%=2:!Wait=speed(n%,5):CALL P5
 4260 IF w$="F" THEN type%=2:!Wait=speed(n%,6):CALL P6
 4270 IF w$="G" THEN type%=2:!Wait=speed(n%,7):CALL P7
 4280 IF w$="H" THEN type%=2:!Wait=speed(n%,8):CALL P8
 4290
 4300 IF w$="I" THEN
 4310  MODE21:OFF
 4320  SYS"OS_ReadVduVariables",scr,res
 4330  type%=2
 4340  !xp=(RND(150)+10)<<13
 4350  !yp=(RND(150)+10)<<13
 4360  !vx=RND(150)+40
 4370  !vy=RND(150)+40
 4380  !cl=255:!am=RND(16)
 4390  !cx=RND(18)+290:!cy=230+RND(18)
 4400  !cxv=RND(8):!cyv=RND(8)
 4410  ctr=0
 4420  REPEAT
 4430   CALL twirl
 4440   ctr+=1:IF ctr>3000 THEN ctr=0:!cl-=1:IF!cl<30 THEN !cl=255
 4450  UNTIL 1=2
 4460 ENDIF
 4470ENDPROC
 4480
 4490DEF PROCerror
 4500 IF ERR=17 THEN
 4510  IF type%=1 THEN END
 4520  IF type%=2 THEN type%=1:ENDPROC
 4530 ENDIF
 4540 IF ERR<>17 THEN
 4550  COLOUR 23
 4560  REPORT
 4570  PRINT" at line ";ERL
 4580  ON
 4590  END
 4600 ENDPROC
 4610ENDPROC

	�init
� � �error

�mainmenu
(�
2
<� �init
F� �
P � � � �:�" at line ";�:�:�
Z � speed(3,10)
d
 �15:�
n	 �ass
x	 n%=3
�( type%=1 :� 1=menu  2=proggy  3=Fast
�'�  FTN         Normal        RPC600
�/speed(1,1)=5: speed(2,1)=20 :speed(3,1)=100
�/speed(1,2)=5: speed(2,2)=20 :speed(3,2)=100
�/speed(1,3)=5: speed(2,3)=20 :speed(3,3)=100
�2speed(1,4)=50: speed(2,4)=200 :speed(3,4)=1000
�0speed(1,5)=16: speed(2,5)=30 :speed(3,5)=100
�1speed(1,6)=50: speed(2,6)=200 :speed(3,6)=700
�/speed(1,7)=4: speed(2,7)=20 :speed(3,7)=100
�2speed(1,8)=50: speed(2,8)=200 :speed(3,8)=1000
� � �
��
�

� �ass
 � code 40960
 sp=13:lk=14:pc=15
" �ps%=0�2�2
, P%=code
6
 [OPT ps%
@
J	.Move
TSTMFD(sp)!,{lk}
^;"Moves x & y"
h ADD R0,R0,R2:ADD R1,R1,R3
rLDMFD(sp)!,{pc}
|
�.ChckP1
� STMFD(sp)!,{lk}
�;"checks x"
�9 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
�;"checks y"
�9 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#240:RSBGT R3,R3,#0
� LDMFD(sp)!,{pc}
�
�.ChckP2
� STMFD(sp)!,{lk}
�;"checks x"
�9 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
�;"checks y"
9 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#230:RSBGT R3,R3,#0
 LDMFD(sp)!,{pc}

&.ChckP3
0 STMFD(sp)!,{lk}
:;"checks x"
D9 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
N;"checks y"
X9 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#245:RSBGT R3,R3,#0
b LDMFD(sp)!,{pc}
l
v.ChckP4
� STMFD(sp)!,{lk}
�;"checks x"
�9 CMP R0,#10:RSBLT R2,R2,#0:CMP R0,#600:RSBGT R2,R2,#0
�;"checks y"
�9 CMP R1,#10:RSBLT R3,R3,#0:CMP R1,#230:RSBGT R3,R3,#0
� LDMFD(sp)!,{pc}
�
�.ChckP5
� STMFD(sp)!,{lk}
�;"checks x"
�, CMP R0,#8:RSBLT R2,R2,#0:ADDLT R0,R0,R2
�. CMP R0,#632:RSBGT R2,R2,#0:ADDGT R0,R0,R2
�;"checks y"
, CMP R1,#8:RSBLT R3,R3,#0:ADDLT R1,R1,R3
. CMP R1,#250:RSBGT R3,R3,#0:ADDGT R1,R1,R3
 LDMFD(sp)!,{pc}
 
*.ChckP6
4 STMFD(sp)!,{lk}
>;"checks x"
H- CMP R0,#10:RSBLT R2,R2,#0:ADDLT R0,R0,R2
R. CMP R0,#620:RSBGT R2,R2,#0:ADDGT R0,R0,R2
\;"checks y"
f- CMP R1,#10:RSBLT R3,R3,#0:ADDLT R1,R1,R3
p. CMP R1,#240:RSBGT R3,R3,#0:ADDGT R1,R1,R3
z LDMFD(sp)!,{pc}
�
�.ChckP7
� STMFD(sp)!,{lk}
�;"checks x"
�- CMP R0,#10:RSBLT R2,R2,#0:ADDLT R0,R0,R2
�. CMP R0,#600:RSBGT R2,R2,#0:ADDGT R0,R0,R2
�;"checks y"
�- CMP R1,#10:RSBLT R3,R3,#0:ADDLT R1,R1,R3
�. CMP R1,#200:RSBGT R3,R3,#0:ADDGT R1,R1,R3
� LDMFD(sp)!,{pc}
�
�.ChckP8
� STMFD(sp)!,{lk}
;"checks x"
- CMP R0,#20:RSBLT R2,R2,#0:ADDLT R0,R0,R2
. CMP R0,#628:RSBGT R2,R2,#0:ADDGT R0,R0,R2
$;"checks y"
.- CMP R1,#10:RSBLT R3,R3,#0:ADDLT R1,R1,R3
8. CMP R1,#200:RSBGT R3,R3,#0:ADDGT R1,R1,R3
B LDMFD(sp)!,{pc}
L
V
.Delay
` STMFD(sp)!,{lk}
j<;"Delay count & changing colour & checking Escape state"
t LDR R11,Wait
~$.delay:SUBS R11,R11,#1:BGT delay
� LDMFD(sp)!,{pc}
�
�
�
�%.P1                 ;"Program 1!"
� STMFD(sp)!,{lk}
�;"scr start,x,y,xd,yd,cl"
�E LDR R12,res:MOV R0,#12:MOV R1,#110:MOV R2,#2:MOV R3,#1:MOV R4,#1
�.p1l
�';"MLA R5,y,640,x -->  R5=x+(640*y)"
�, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
�;"Plot sequence"
E STRB R4,[R12,R5]:SUB R5,R5,#640:STRB R4,[R12,R5]:ADD R5,R5,#1280

1 STRB R4,[R12,R5]:SUB R5,R5,#640:SUB R5,R5,#1
3 STRB R4,[R12,R5]:ADD R5,R5,#2:STRB R4,[R12,R5]
 BL Move
( BL ChckP1
2
 BL Delay
< ADD R4,R4,#1
F+ SWI "OS_ReadEscapeState":BCS P1E:B p1l
P.P1E
Z LDMFD(sp)!,{pc}
d
n%.P2                 ;"Program 2!"
x STMFD(sp)!,{lk}
�R LDR R12,res:ADR R10,p2tab:MOV R0,#10:MOV R1,#10:MOV R2,#2:MOV R3,#1:MOV R4,#1
�.p2
�';"MLA R5,y,640,x -->  R5=x+(640*y)"
�, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
�;"Plots it"
�$ LDR R9,[R10,#0]:STR R9,[R12,R5]
�3 LDR R9,[R10,#4]:ADD R5,R5,#640:STR R9,[R12,R5]
�3 LDR R9,[R10,#8]:ADD R5,R5,#640:STR R9,[R12,R5]
� BL Move
� BL ChckP2
�
 BL Delay
�* SWI "OS_ReadEscapeState":BCS p2E:B p2
�.p2E
 LDMFD(sp)!,{pc}

$.P3                ;"Program 3!"
" STMFD(sp)!,{lk}
,R LDR R12,res:ADR R10,p3tab:MOV R0,#10:MOV R1,#30:MOV R2,#2:MOV R3,#1:MOV R4,#1
6.p3
@';"MLA R5,y,640,x -->  R5=x+(640*y)"
J, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
T;"Plot sequence"
^$ LDR R9,[R10,#0]:STR R9,[R12,R5]
h3 LDR R9,[R10,#4]:ADD R5,R5,#640:STR R9,[R12,R5]
r3 LDR R9,[R10,#8]:ADD R5,R5,#640:STR R9,[R12,R5]
| BL Move
� BL ChckP3
�
 BL Delay
�* SWI "OS_ReadEscapeState":BCS p3E:B p3
�.p3E
� LDMFD(sp)!,{pc}
�
�%.P4                 ;"Program 4!"
� STMFD(sp)!,{lk}
�R LDR R12,res:ADR R10,p4tab:MOV R0,#10:MOV R1,#10:MOV R2,#4:MOV R3,#1:MOV R4,#1
�.p4
�';"MLA R5,y,640,x -->  R5=x+(640*y)"
�, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
�;"Plot sequence"
$ LDR R9,[R10,#0]:STR R9,[R12,R5]
3 LDR R9,[R10,#4]:ADD R5,R5,#640:STR R9,[R12,R5]
3 LDR R9,[R10,#8]:ADD R5,R5,#640:STR R9,[R12,R5]
& BL Move
0 BL ChckP4
:
 BL Delay
D* SWI "OS_ReadEscapeState":BCS p4E:B p4
N.p4E
X LDMFD(sp)!,{pc}
b
l@.P5                 ;"Guess! - Yes you got it! - Program 5!"
v STMFD(sp)!,{lk}
�R LDR R12,res:ADR R10,p5tab:MOV R0,#10:MOV R1,#10:MOV R2,#3:MOV R3,#1:MOV R4,#1
�.p5
� BL Move:BL ChckP5
�';"MLA R5,y,640,x -->  R5=x+(640*y)"
�, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
�;"Plot sequence"
� MOV R6,#0
�.p5l
�N LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4:LDR R9,[R10,R6]
�= ADD R6,R6,#4:STR R9,[R12,R5]:CMP R6,#24:BLT p5l:BL Delay
�* SWI "OS_ReadEscapeState":BCS p5E:B p5
�.p5E
� LDMFD(sp)!,{pc}

2.P6                 ;"Yet another Program (6)"
 STMFD(sp)!,{lk}
 R LDR R12,res:ADR R10,p6tab:MOV R0,#10:MOV R1,#10:MOV R2,#2:MOV R3,#1:MOV R4,#1
*.p6
4 BL Move
> BL ChckP6
H';"MLA R5,y,640,x -->  R5=x+(640*y)"
R, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
\;"Plot sequence"
f MOV R6,#0
p.p6l
z1 LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]
�> ADD R5,R5,#4:LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]
�/ ADD R5,R5,#632:CMP R6,#48:BLT p6l:BL Delay
�* SWI "OS_ReadEscapeState":BCS p6E:B p6
�.p6E
� LDMFD(sp)!,{pc}
�
�9.P7                 ;"Proggy 7 - Well, Its a change!"
� STMFD(sp)!,{lk}
�R LDR R12,res:ADR R10,p7tab:MOV R0,#10:MOV R1,#10:MOV R2,#3:MOV R3,#1:MOV R4,#1
�.p7
�;"Moves x & y"
� ADD R0,R0,R2:ADD R1,R1,R3
� BL ChckP7
	';"MLA R5,y,640,x -->  R5=x+(640*y)"
	, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
	;"Plot sequence"
	$ MOV R6,#0
	.B.p7l:LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4
	8> LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4
	B@ LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#632
	L  CMP R6,#48:BLT p7l:BL Delay
	V* SWI "OS_ReadEscapeState":BCS p7E:B p7
	`.p7E
	j LDMFD(sp)!,{pc}
	t
	~;.P8                 ;"Can't be bothered - Program 8..."
	� STMFD(sp)!,{lk}
	�S LDR R12,res:ADR R10,p8tab:MOV R0,#100:MOV R1,#10:MOV R2,#2:MOV R3,#1:MOV R4,#1
	�.p8
	�;"Moves x & y"
	� ADD R0,R0,R2:ADD R1,R1,R3
	� BL ChckP8
	�';"MLA R5,y,640,x -->  R5=x+(640*y)"
	�, ADD R5,R0,R1,ASL #9:ADD R5,R5,R1,ASL #7
	�;"Plot sequence"
	� MOV R6,#0
	�.p8l
	�> LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4
> LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#4

@ LDR R9,[R10,R6]:ADD R6,R6,#4:STR R9,[R12,R5]:ADD R5,R5,#632
  CMP R6,#48:BLT p8l:BL Delay
* SWI "OS_ReadEscapeState":BCS p8E:B p8
(.p8E
2 LDMFD(sp)!,{pc}
<
F
.p8tab
P1 EQUD &CF000000:EQUD &CF0000CF:EQUD &000000AF
Z1 EQUD &CFCFCF00:EQUD &CF0000CF:EQUD &00AFAFAF
d1 EQUD &AF000000:EQUD &CFCFAFAF:EQUD &000000CF
n1 EQUD &AFAFAF00:EQUD &CFCFAFAF:EQUD &00CFCFCF
x
�
.p7tab
�1 EQUD &AAAA0000:EQUD &AA0000AA:EQUD &0000AAAA
�1 EQUD &37373700:EQUD &37373737:EQUD &00373737
�1 EQUD &37370000:EQUD &37373737:EQUD &00003737
�1 EQUD &37000000:EQUD &37000037:EQUD &00000037
�
�
.p6tab
�1 EQUD &31310000:EQUD &31000031:EQUD &00003131
�1 EQUD &31313100:EQUD &31313131:EQUD &00373731
�1 EQUD &31310000:EQUD &31373737:EQUD &00003737
�1 EQUD &31000000:EQUD &37000037:EQUD &00000037
�
�
.p5tab
0 EQUD &22111111                     ;4 Bytes
* EQUD &22221111                     ;8
+ EQUD &32222211                     ;12
"+ EQUD &33222221                     ;16
,+ EQUD &33333222                     ;20
6+ EQUD &33333322                     ;24
@
J
.p4tab
T EQUD &00000006
^ EQUD &00000666
h EQUD &00066666
r
|
.p3tab
� EQUD &11111666
� EQUD &11116666
� EQUD &11166666
�
�
.p2tab
� EQUD &66778899
� EQUD &22334455
� EQUD &11610011
�
�
�
�
.twirl
�STMFD (sp)!,{lk}

LDRR0,cx

LDRR1,cxv
&ADDR0,R0,R1
0CMPR0,#320
:ADDLTR1,R1,#3
DSUBGTR1,R1,#3
NSTRR0,cx
X
STRR1,cxv
b
lLDRR0,cy
v
LDRR1,cyv
�ADDR0,R0,R1
�CMPR0,#255
�ADDLTR1,R1,#2
�SUBGTR1,R1,#2
�STRR0,cy
�
STRR1,cyv
�
�
�LDRR0,xp ;Load vars
�LDRR1,yp
�LDRR2,vx
�LDRR3,vy
�

ADDR0,R0,R2 ;move pos

ADDR1,R1,R3



 STRR0,xp ;store pos

*STRR1,yp

4

> MOVR0,R0,ASR #13 ;shift down

HMOVR1,R1,ASR #13

R

\LDRR8,am

f

pLDRR9,cx

z8CMPR0,R9       ;Compare xp with centre (x) of screen

�ADDLTR2,R2,R8

�SUBGTR2,R2,R8

�

�LDRR9,cy

�8CMPR1,R9       ;Compare yp with centre (y) of screen

�ADDLTR3,R3,R8

�SUBGTR3,R3,R8

�

�+STRR2,vx  ;store (changed) xp & yp vars

�STRR3,vy

�

�BADDR5,R0,R1,ASL #9 ;get position on screen and colour and plot

�ADDR5,R5,R1,ASL #7
LDRR6,cl

LDRR7,res
STRBR6,[R7,R5]
$
.LDMFD (sp)!,{pc}
8
B
.cl:EQUD0
L
.xp:EQUD0
V
.yp:EQUD0
`
.vx:EQUD0
j
.vy:EQUD0
t
.am:EQUD0
~
.cx:EQUD0
�
.cy:EQUD0
�.cxv:EQUD0
�.cyv:EQUD0
�
�
�
�
�
�.Wait:EQUD0
�#.scr:EQUD148:EQUD6:EQUD7:EQUD-1
� .res:EQUD0:EQUD0:EQUD0:EQUD0
� ]�
$ ș"OS_ReadVduVariables",scr,res

�

� �mainmenu
(+ � 15:�:ș"OS_ReadVduVariables",scr,res
2% �17,1);" Main Menu   (Honest!)"
<	 � 12
F' �15,5);"Options      (Not many!)"
P* �17,6);"1. Faster than Normal (FTN)"
Z/ �17,7);"2. Normal Speed (older machines)"
d- �17,8);"3. RiscPC Speed (New machines)"
n	 � 11
x* �15,10);"Programs     (Just a Few!)"
� �17,11);"A. Moving quilt"
� �17,12);"B. Criss Cross"
�" �17,13);"C. Criss X Up/Down"
� �17,14);"D. Something!"
� �17,15);"E. Wood?"
�& �17,16);"F. 3D Inside Pyramids?"
�" �17,17);"G. Something Else?"
� �17,18);"H. Tubes Maybe"
� �17,19);"I. Twirl 2"
�K �7,23);"Twirl2 - Hi Res - Speed settings will not affect this proggy"
� � 4
�* �15,25);"Written by Vincent Buckner"
� �
  w$=�(.00001)
  � w$="1" � n%=1
  � w$="2" � n%=2
"  � w$="3" � n%=3
,	  � 3
6'  � n%=1 � �21,3);"Speed - FTN   "
@'  � n%=2 � �21,3);"Speed - Normal"
J'  � n%=3 � �21,3);"Speed - RiscPC"
T	  � 7
U&  � w$>="a" � w$<="i" w$=�(�w$-32)
^ � w$>="A" � w$<="I"
h �
r. � w$="A" � type%=2:!Wait=speed(n%,1):� P1
|. � w$="B" � type%=2:!Wait=speed(n%,2):� P2
�. � w$="C" � type%=2:!Wait=speed(n%,3):� P3
�. � w$="D" � type%=2:!Wait=speed(n%,4):� P4
�. � w$="E" � type%=2:!Wait=speed(n%,5):� P5
�. � w$="F" � type%=2:!Wait=speed(n%,6):� P6
�. � w$="G" � type%=2:!Wait=speed(n%,7):� P7
�. � w$="H" � type%=2:!Wait=speed(n%,8):� P8
�
� � w$="I" �
�  �21:�
�%  ș"OS_ReadVduVariables",scr,res
�
  type%=2
�  !xp=(�(150)+10)<<13
�  !yp=(�(150)+10)<<13
  !vx=�(150)+40
  !vy=�(150)+40
  !cl=255:!am=�(16)
&!  !cx=�(18)+290:!cy=230+�(18)
0  !cxv=�(8):!cyv=�(8)
:  ctr=0
D  �
N   � twirl
X9   ctr+=1:� ctr>3000 � ctr=0:!cl-=1:�!cl<30 � !cl=255
b  � 1=2
l �
v�
�
�� �error
�
 � �=17 �
�  � type%=1 � �
�  � type%=2 � type%=1:�
� �
� � �<>17 �
�
  � 23
�  �
�  �" at line ";�
�  �
�  �
� �
�
�
00000000  0d 00 0a 09 f2 69 6e 69  74 0d 00 14 0e ee 20 85  |.....init..... .|
00000010  20 f2 65 72 72 6f 72 0d  00 1e 0d f2 6d 61 69 6e  | .error.....main|
00000020  6d 65 6e 75 0d 00 28 05  e0 0d 00 32 04 0d 00 3c  |menu..(....2...<|
00000030  0b dd 20 f2 69 6e 69 74  0d 00 46 07 ea 20 85 0d  |.. .init..F.. ..|
00000040  00 50 1f 20 ee 20 85 20  ea 20 f6 3a f1 22 20 61  |.P. . . . .:." a|
00000050  74 20 6c 69 6e 65 20 22  3b 9e 3a ee 3a e0 0d 00  |t line ";.:.:...|
00000060  5a 12 20 de 20 73 70 65  65 64 28 33 2c 31 30 29  |Z. . speed(3,10)|
00000070  0d 00 64 0a 20 eb 31 35  3a 87 0d 00 6e 09 20 f2  |..d. .15:...n. .|
00000080  61 73 73 0d 00 78 09 20  6e 25 3d 33 0d 00 82 28  |ass..x. n%=3...(|
00000090  20 74 79 70 65 25 3d 31  20 3a f4 20 31 3d 6d 65  | type%=1 :. 1=me|
000000a0  6e 75 20 20 32 3d 70 72  6f 67 67 79 20 20 33 3d  |nu  2=proggy  3=|
000000b0  46 61 73 74 0d 00 8c 27  f4 20 20 46 54 4e 20 20  |Fast...'.  FTN  |
000000c0  20 20 20 20 20 20 20 4e  6f 72 6d 61 6c 20 20 20  |       Normal   |
000000d0  20 20 20 20 20 52 50 43  36 30 30 0d 00 96 2f 73  |     RPC600.../s|
000000e0  70 65 65 64 28 31 2c 31  29 3d 35 3a 20 73 70 65  |peed(1,1)=5: spe|
000000f0  65 64 28 32 2c 31 29 3d  32 30 20 3a 73 70 65 65  |ed(2,1)=20 :spee|
00000100  64 28 33 2c 31 29 3d 31  30 30 0d 00 a0 2f 73 70  |d(3,1)=100.../sp|
00000110  65 65 64 28 31 2c 32 29  3d 35 3a 20 73 70 65 65  |eed(1,2)=5: spee|
00000120  64 28 32 2c 32 29 3d 32  30 20 3a 73 70 65 65 64  |d(2,2)=20 :speed|
00000130  28 33 2c 32 29 3d 31 30  30 0d 00 aa 2f 73 70 65  |(3,2)=100.../spe|
00000140  65 64 28 31 2c 33 29 3d  35 3a 20 73 70 65 65 64  |ed(1,3)=5: speed|
00000150  28 32 2c 33 29 3d 32 30  20 3a 73 70 65 65 64 28  |(2,3)=20 :speed(|
00000160  33 2c 33 29 3d 31 30 30  0d 00 b4 32 73 70 65 65  |3,3)=100...2spee|
00000170  64 28 31 2c 34 29 3d 35  30 3a 20 73 70 65 65 64  |d(1,4)=50: speed|
00000180  28 32 2c 34 29 3d 32 30  30 20 3a 73 70 65 65 64  |(2,4)=200 :speed|
00000190  28 33 2c 34 29 3d 31 30  30 30 0d 00 be 30 73 70  |(3,4)=1000...0sp|
000001a0  65 65 64 28 31 2c 35 29  3d 31 36 3a 20 73 70 65  |eed(1,5)=16: spe|
000001b0  65 64 28 32 2c 35 29 3d  33 30 20 3a 73 70 65 65  |ed(2,5)=30 :spee|
000001c0  64 28 33 2c 35 29 3d 31  30 30 0d 00 c8 31 73 70  |d(3,5)=100...1sp|
000001d0  65 65 64 28 31 2c 36 29  3d 35 30 3a 20 73 70 65  |eed(1,6)=50: spe|
000001e0  65 64 28 32 2c 36 29 3d  32 30 30 20 3a 73 70 65  |ed(2,6)=200 :spe|
000001f0  65 64 28 33 2c 36 29 3d  37 30 30 0d 00 d2 2f 73  |ed(3,6)=700.../s|
00000200  70 65 65 64 28 31 2c 37  29 3d 34 3a 20 73 70 65  |peed(1,7)=4: spe|
00000210  65 64 28 32 2c 37 29 3d  32 30 20 3a 73 70 65 65  |ed(2,7)=20 :spee|
00000220  64 28 33 2c 37 29 3d 31  30 30 0d 00 dc 32 73 70  |d(3,7)=100...2sp|
00000230  65 65 64 28 31 2c 38 29  3d 35 30 3a 20 73 70 65  |eed(1,8)=50: spe|
00000240  65 64 28 32 2c 38 29 3d  32 30 30 20 3a 73 70 65  |ed(2,8)=200 :spe|
00000250  65 64 28 33 2c 38 29 3d  31 30 30 30 0d 00 e6 08  |ed(3,8)=1000....|
00000260  20 f7 20 85 0d 00 f0 05  e1 0d 00 fa 04 0d 01 04  | . .............|
00000270  0a dd 20 f2 61 73 73 0d  01 0e 11 20 de 20 63 6f  |.. .ass.... . co|
00000280  64 65 20 34 30 39 36 30  0d 01 18 16 20 73 70 3d  |de 40960.... sp=|
00000290  31 33 3a 6c 6b 3d 31 34  3a 70 63 3d 31 35 0d 01  |13:lk=14:pc=15..|
000002a0  22 0f 20 e3 70 73 25 3d  30 b8 32 88 32 0d 01 2c  |". .ps%=0.2.2..,|
000002b0  0c 20 50 25 3d 63 6f 64  65 0d 01 36 0d 20 5b 4f  |. P%=code..6. [O|
000002c0  50 54 20 70 73 25 0d 01  40 04 0d 01 4a 09 2e 4d  |PT ps%..@...J..M|
000002d0  6f 76 65 0d 01 54 13 53  54 4d 46 44 28 73 70 29  |ove..T.STMFD(sp)|
000002e0  21 2c 7b 6c 6b 7d 0d 01  5e 12 3b 22 4d 6f 76 65  |!,{lk}..^.;"Move|
000002f0  73 20 78 20 26 20 79 22  0d 01 68 1e 20 41 44 44  |s x & y"..h. ADD|
00000300  20 52 30 2c 52 30 2c 52  32 3a 41 44 44 20 52 31  | R0,R0,R2:ADD R1|
00000310  2c 52 31 2c 52 33 0d 01  72 13 4c 44 4d 46 44 28  |,R1,R3..r.LDMFD(|
00000320  73 70 29 21 2c 7b 70 63  7d 0d 01 7c 04 0d 01 86  |sp)!,{pc}..|....|
00000330  0b 2e 43 68 63 6b 50 31  0d 01 90 14 20 53 54 4d  |..ChckP1.... STM|
00000340  46 44 28 73 70 29 21 2c  7b 6c 6b 7d 0d 01 9a 0f  |FD(sp)!,{lk}....|
00000350  3b 22 63 68 65 63 6b 73  20 78 22 0d 01 a4 39 20  |;"checks x"...9 |
00000360  43 4d 50 20 52 30 2c 23  31 30 3a 52 53 42 4c 54  |CMP R0,#10:RSBLT|
00000370  20 52 32 2c 52 32 2c 23  30 3a 43 4d 50 20 52 30  | R2,R2,#0:CMP R0|
00000380  2c 23 36 30 30 3a 52 53  42 47 54 20 52 32 2c 52  |,#600:RSBGT R2,R|
00000390  32 2c 23 30 0d 01 ae 0f  3b 22 63 68 65 63 6b 73  |2,#0....;"checks|
000003a0  20 79 22 0d 01 b8 39 20  43 4d 50 20 52 31 2c 23  | y"...9 CMP R1,#|
000003b0  31 30 3a 52 53 42 4c 54  20 52 33 2c 52 33 2c 23  |10:RSBLT R3,R3,#|
000003c0  30 3a 43 4d 50 20 52 31  2c 23 32 34 30 3a 52 53  |0:CMP R1,#240:RS|
000003d0  42 47 54 20 52 33 2c 52  33 2c 23 30 0d 01 c2 14  |BGT R3,R3,#0....|
000003e0  20 4c 44 4d 46 44 28 73  70 29 21 2c 7b 70 63 7d  | LDMFD(sp)!,{pc}|
000003f0  0d 01 cc 04 0d 01 d6 0b  2e 43 68 63 6b 50 32 0d  |.........ChckP2.|
00000400  01 e0 14 20 53 54 4d 46  44 28 73 70 29 21 2c 7b  |... STMFD(sp)!,{|
00000410  6c 6b 7d 0d 01 ea 0f 3b  22 63 68 65 63 6b 73 20  |lk}....;"checks |
00000420  78 22 0d 01 f4 39 20 43  4d 50 20 52 30 2c 23 31  |x"...9 CMP R0,#1|
00000430  30 3a 52 53 42 4c 54 20  52 32 2c 52 32 2c 23 30  |0:RSBLT R2,R2,#0|
00000440  3a 43 4d 50 20 52 30 2c  23 36 30 30 3a 52 53 42  |:CMP R0,#600:RSB|
00000450  47 54 20 52 32 2c 52 32  2c 23 30 0d 01 fe 0f 3b  |GT R2,R2,#0....;|
00000460  22 63 68 65 63 6b 73 20  79 22 0d 02 08 39 20 43  |"checks y"...9 C|
00000470  4d 50 20 52 31 2c 23 31  30 3a 52 53 42 4c 54 20  |MP R1,#10:RSBLT |
00000480  52 33 2c 52 33 2c 23 30  3a 43 4d 50 20 52 31 2c  |R3,R3,#0:CMP R1,|
00000490  23 32 33 30 3a 52 53 42  47 54 20 52 33 2c 52 33  |#230:RSBGT R3,R3|
000004a0  2c 23 30 0d 02 12 14 20  4c 44 4d 46 44 28 73 70  |,#0.... LDMFD(sp|
000004b0  29 21 2c 7b 70 63 7d 0d  02 1c 04 0d 02 26 0b 2e  |)!,{pc}......&..|
000004c0  43 68 63 6b 50 33 0d 02  30 14 20 53 54 4d 46 44  |ChckP3..0. STMFD|
000004d0  28 73 70 29 21 2c 7b 6c  6b 7d 0d 02 3a 0f 3b 22  |(sp)!,{lk}..:.;"|
000004e0  63 68 65 63 6b 73 20 78  22 0d 02 44 39 20 43 4d  |checks x"..D9 CM|
000004f0  50 20 52 30 2c 23 31 30  3a 52 53 42 4c 54 20 52  |P R0,#10:RSBLT R|
00000500  32 2c 52 32 2c 23 30 3a  43 4d 50 20 52 30 2c 23  |2,R2,#0:CMP R0,#|
00000510  36 30 30 3a 52 53 42 47  54 20 52 32 2c 52 32 2c  |600:RSBGT R2,R2,|
00000520  23 30 0d 02 4e 0f 3b 22  63 68 65 63 6b 73 20 79  |#0..N.;"checks y|
00000530  22 0d 02 58 39 20 43 4d  50 20 52 31 2c 23 31 30  |"..X9 CMP R1,#10|
00000540  3a 52 53 42 4c 54 20 52  33 2c 52 33 2c 23 30 3a  |:RSBLT R3,R3,#0:|
00000550  43 4d 50 20 52 31 2c 23  32 34 35 3a 52 53 42 47  |CMP R1,#245:RSBG|
00000560  54 20 52 33 2c 52 33 2c  23 30 0d 02 62 14 20 4c  |T R3,R3,#0..b. L|
00000570  44 4d 46 44 28 73 70 29  21 2c 7b 70 63 7d 0d 02  |DMFD(sp)!,{pc}..|
00000580  6c 04 0d 02 76 0b 2e 43  68 63 6b 50 34 0d 02 80  |l...v..ChckP4...|
00000590  14 20 53 54 4d 46 44 28  73 70 29 21 2c 7b 6c 6b  |. STMFD(sp)!,{lk|
000005a0  7d 0d 02 8a 0f 3b 22 63  68 65 63 6b 73 20 78 22  |}....;"checks x"|
000005b0  0d 02 94 39 20 43 4d 50  20 52 30 2c 23 31 30 3a  |...9 CMP R0,#10:|
000005c0  52 53 42 4c 54 20 52 32  2c 52 32 2c 23 30 3a 43  |RSBLT R2,R2,#0:C|
000005d0  4d 50 20 52 30 2c 23 36  30 30 3a 52 53 42 47 54  |MP R0,#600:RSBGT|
000005e0  20 52 32 2c 52 32 2c 23  30 0d 02 9e 0f 3b 22 63  | R2,R2,#0....;"c|
000005f0  68 65 63 6b 73 20 79 22  0d 02 a8 39 20 43 4d 50  |hecks y"...9 CMP|
00000600  20 52 31 2c 23 31 30 3a  52 53 42 4c 54 20 52 33  | R1,#10:RSBLT R3|
00000610  2c 52 33 2c 23 30 3a 43  4d 50 20 52 31 2c 23 32  |,R3,#0:CMP R1,#2|
00000620  33 30 3a 52 53 42 47 54  20 52 33 2c 52 33 2c 23  |30:RSBGT R3,R3,#|
00000630  30 0d 02 b2 14 20 4c 44  4d 46 44 28 73 70 29 21  |0.... LDMFD(sp)!|
00000640  2c 7b 70 63 7d 0d 02 bc  04 0d 02 c6 0b 2e 43 68  |,{pc}.........Ch|
00000650  63 6b 50 35 0d 02 d0 14  20 53 54 4d 46 44 28 73  |ckP5.... STMFD(s|
00000660  70 29 21 2c 7b 6c 6b 7d  0d 02 da 0f 3b 22 63 68  |p)!,{lk}....;"ch|
00000670  65 63 6b 73 20 78 22 0d  02 e4 2c 20 43 4d 50 20  |ecks x"..., CMP |
00000680  52 30 2c 23 38 3a 52 53  42 4c 54 20 52 32 2c 52  |R0,#8:RSBLT R2,R|
00000690  32 2c 23 30 3a 41 44 44  4c 54 20 52 30 2c 52 30  |2,#0:ADDLT R0,R0|
000006a0  2c 52 32 0d 02 ee 2e 20  43 4d 50 20 52 30 2c 23  |,R2.... CMP R0,#|
000006b0  36 33 32 3a 52 53 42 47  54 20 52 32 2c 52 32 2c  |632:RSBGT R2,R2,|
000006c0  23 30 3a 41 44 44 47 54  20 52 30 2c 52 30 2c 52  |#0:ADDGT R0,R0,R|
000006d0  32 0d 02 f8 0f 3b 22 63  68 65 63 6b 73 20 79 22  |2....;"checks y"|
000006e0  0d 03 02 2c 20 43 4d 50  20 52 31 2c 23 38 3a 52  |..., CMP R1,#8:R|
000006f0  53 42 4c 54 20 52 33 2c  52 33 2c 23 30 3a 41 44  |SBLT R3,R3,#0:AD|
00000700  44 4c 54 20 52 31 2c 52  31 2c 52 33 0d 03 0c 2e  |DLT R1,R1,R3....|
00000710  20 43 4d 50 20 52 31 2c  23 32 35 30 3a 52 53 42  | CMP R1,#250:RSB|
00000720  47 54 20 52 33 2c 52 33  2c 23 30 3a 41 44 44 47  |GT R3,R3,#0:ADDG|
00000730  54 20 52 31 2c 52 31 2c  52 33 0d 03 16 14 20 4c  |T R1,R1,R3.... L|
00000740  44 4d 46 44 28 73 70 29  21 2c 7b 70 63 7d 0d 03  |DMFD(sp)!,{pc}..|
00000750  20 04 0d 03 2a 0b 2e 43  68 63 6b 50 36 0d 03 34  | ...*..ChckP6..4|
00000760  14 20 53 54 4d 46 44 28  73 70 29 21 2c 7b 6c 6b  |. STMFD(sp)!,{lk|
00000770  7d 0d 03 3e 0f 3b 22 63  68 65 63 6b 73 20 78 22  |}..>.;"checks x"|
00000780  0d 03 48 2d 20 43 4d 50  20 52 30 2c 23 31 30 3a  |..H- CMP R0,#10:|
00000790  52 53 42 4c 54 20 52 32  2c 52 32 2c 23 30 3a 41  |RSBLT R2,R2,#0:A|
000007a0  44 44 4c 54 20 52 30 2c  52 30 2c 52 32 0d 03 52  |DDLT R0,R0,R2..R|
000007b0  2e 20 43 4d 50 20 52 30  2c 23 36 32 30 3a 52 53  |. CMP R0,#620:RS|
000007c0  42 47 54 20 52 32 2c 52  32 2c 23 30 3a 41 44 44  |BGT R2,R2,#0:ADD|
000007d0  47 54 20 52 30 2c 52 30  2c 52 32 0d 03 5c 0f 3b  |GT R0,R0,R2..\.;|
000007e0  22 63 68 65 63 6b 73 20  79 22 0d 03 66 2d 20 43  |"checks y"..f- C|
000007f0  4d 50 20 52 31 2c 23 31  30 3a 52 53 42 4c 54 20  |MP R1,#10:RSBLT |
00000800  52 33 2c 52 33 2c 23 30  3a 41 44 44 4c 54 20 52  |R3,R3,#0:ADDLT R|
00000810  31 2c 52 31 2c 52 33 0d  03 70 2e 20 43 4d 50 20  |1,R1,R3..p. CMP |
00000820  52 31 2c 23 32 34 30 3a  52 53 42 47 54 20 52 33  |R1,#240:RSBGT R3|
00000830  2c 52 33 2c 23 30 3a 41  44 44 47 54 20 52 31 2c  |,R3,#0:ADDGT R1,|
00000840  52 31 2c 52 33 0d 03 7a  14 20 4c 44 4d 46 44 28  |R1,R3..z. LDMFD(|
00000850  73 70 29 21 2c 7b 70 63  7d 0d 03 84 04 0d 03 8e  |sp)!,{pc}.......|
00000860  0b 2e 43 68 63 6b 50 37  0d 03 98 14 20 53 54 4d  |..ChckP7.... STM|
00000870  46 44 28 73 70 29 21 2c  7b 6c 6b 7d 0d 03 a2 0f  |FD(sp)!,{lk}....|
00000880  3b 22 63 68 65 63 6b 73  20 78 22 0d 03 ac 2d 20  |;"checks x"...- |
00000890  43 4d 50 20 52 30 2c 23  31 30 3a 52 53 42 4c 54  |CMP R0,#10:RSBLT|
000008a0  20 52 32 2c 52 32 2c 23  30 3a 41 44 44 4c 54 20  | R2,R2,#0:ADDLT |
000008b0  52 30 2c 52 30 2c 52 32  0d 03 b6 2e 20 43 4d 50  |R0,R0,R2.... CMP|
000008c0  20 52 30 2c 23 36 30 30  3a 52 53 42 47 54 20 52  | R0,#600:RSBGT R|
000008d0  32 2c 52 32 2c 23 30 3a  41 44 44 47 54 20 52 30  |2,R2,#0:ADDGT R0|
000008e0  2c 52 30 2c 52 32 0d 03  c0 0f 3b 22 63 68 65 63  |,R0,R2....;"chec|
000008f0  6b 73 20 79 22 0d 03 ca  2d 20 43 4d 50 20 52 31  |ks y"...- CMP R1|
00000900  2c 23 31 30 3a 52 53 42  4c 54 20 52 33 2c 52 33  |,#10:RSBLT R3,R3|
00000910  2c 23 30 3a 41 44 44 4c  54 20 52 31 2c 52 31 2c  |,#0:ADDLT R1,R1,|
00000920  52 33 0d 03 d4 2e 20 43  4d 50 20 52 31 2c 23 32  |R3.... CMP R1,#2|
00000930  30 30 3a 52 53 42 47 54  20 52 33 2c 52 33 2c 23  |00:RSBGT R3,R3,#|
00000940  30 3a 41 44 44 47 54 20  52 31 2c 52 31 2c 52 33  |0:ADDGT R1,R1,R3|
00000950  0d 03 de 14 20 4c 44 4d  46 44 28 73 70 29 21 2c  |.... LDMFD(sp)!,|
00000960  7b 70 63 7d 0d 03 e8 04  0d 03 f2 0b 2e 43 68 63  |{pc}.........Chc|
00000970  6b 50 38 0d 03 fc 14 20  53 54 4d 46 44 28 73 70  |kP8.... STMFD(sp|
00000980  29 21 2c 7b 6c 6b 7d 0d  04 06 0f 3b 22 63 68 65  |)!,{lk}....;"che|
00000990  63 6b 73 20 78 22 0d 04  10 2d 20 43 4d 50 20 52  |cks x"...- CMP R|
000009a0  30 2c 23 32 30 3a 52 53  42 4c 54 20 52 32 2c 52  |0,#20:RSBLT R2,R|
000009b0  32 2c 23 30 3a 41 44 44  4c 54 20 52 30 2c 52 30  |2,#0:ADDLT R0,R0|
000009c0  2c 52 32 0d 04 1a 2e 20  43 4d 50 20 52 30 2c 23  |,R2.... CMP R0,#|
000009d0  36 32 38 3a 52 53 42 47  54 20 52 32 2c 52 32 2c  |628:RSBGT R2,R2,|
000009e0  23 30 3a 41 44 44 47 54  20 52 30 2c 52 30 2c 52  |#0:ADDGT R0,R0,R|
000009f0  32 0d 04 24 0f 3b 22 63  68 65 63 6b 73 20 79 22  |2..$.;"checks y"|
00000a00  0d 04 2e 2d 20 43 4d 50  20 52 31 2c 23 31 30 3a  |...- CMP R1,#10:|
00000a10  52 53 42 4c 54 20 52 33  2c 52 33 2c 23 30 3a 41  |RSBLT R3,R3,#0:A|
00000a20  44 44 4c 54 20 52 31 2c  52 31 2c 52 33 0d 04 38  |DDLT R1,R1,R3..8|
00000a30  2e 20 43 4d 50 20 52 31  2c 23 32 30 30 3a 52 53  |. CMP R1,#200:RS|
00000a40  42 47 54 20 52 33 2c 52  33 2c 23 30 3a 41 44 44  |BGT R3,R3,#0:ADD|
00000a50  47 54 20 52 31 2c 52 31  2c 52 33 0d 04 42 14 20  |GT R1,R1,R3..B. |
00000a60  4c 44 4d 46 44 28 73 70  29 21 2c 7b 70 63 7d 0d  |LDMFD(sp)!,{pc}.|
00000a70  04 4c 04 0d 04 56 0a 2e  44 65 6c 61 79 0d 04 60  |.L...V..Delay..`|
00000a80  14 20 53 54 4d 46 44 28  73 70 29 21 2c 7b 6c 6b  |. STMFD(sp)!,{lk|
00000a90  7d 0d 04 6a 3c 3b 22 44  65 6c 61 79 20 63 6f 75  |}..j<;"Delay cou|
00000aa0  6e 74 20 26 20 63 68 61  6e 67 69 6e 67 20 63 6f  |nt & changing co|
00000ab0  6c 6f 75 72 20 26 20 63  68 65 63 6b 69 6e 67 20  |lour & checking |
00000ac0  45 73 63 61 70 65 20 73  74 61 74 65 22 0d 04 74  |Escape state"..t|
00000ad0  11 20 4c 44 52 20 52 31  31 2c 57 61 69 74 0d 04  |. LDR R11,Wait..|
00000ae0  7e 24 2e 64 65 6c 61 79  3a 53 55 42 53 20 52 31  |~$.delay:SUBS R1|
00000af0  31 2c 52 31 31 2c 23 31  3a 42 47 54 20 64 65 6c  |1,R11,#1:BGT del|
00000b00  61 79 0d 04 88 14 20 4c  44 4d 46 44 28 73 70 29  |ay.... LDMFD(sp)|
00000b10  21 2c 7b 70 63 7d 0d 04  92 04 0d 04 9c 04 0d 04  |!,{pc}..........|
00000b20  a6 04 0d 04 b0 25 2e 50  31 20 20 20 20 20 20 20  |.....%.P1       |
00000b30  20 20 20 20 20 20 20 20  20 20 3b 22 50 72 6f 67  |          ;"Prog|
00000b40  72 61 6d 20 31 21 22 0d  04 ba 14 20 53 54 4d 46  |ram 1!".... STMF|
00000b50  44 28 73 70 29 21 2c 7b  6c 6b 7d 0d 04 c4 1d 3b  |D(sp)!,{lk}....;|
00000b60  22 73 63 72 20 73 74 61  72 74 2c 78 2c 79 2c 78  |"scr start,x,y,x|
00000b70  64 2c 79 64 2c 63 6c 22  0d 04 ce 45 20 4c 44 52  |d,yd,cl"...E LDR|
00000b80  20 52 31 32 2c 72 65 73  3a 4d 4f 56 20 52 30 2c  | R12,res:MOV R0,|
00000b90  23 31 32 3a 4d 4f 56 20  52 31 2c 23 31 31 30 3a  |#12:MOV R1,#110:|
00000ba0  4d 4f 56 20 52 32 2c 23  32 3a 4d 4f 56 20 52 33  |MOV R2,#2:MOV R3|
00000bb0  2c 23 31 3a 4d 4f 56 20  52 34 2c 23 31 0d 04 d8  |,#1:MOV R4,#1...|
00000bc0  08 2e 70 31 6c 0d 04 e2  27 3b 22 4d 4c 41 20 52  |..p1l...';"MLA R|
00000bd0  35 2c 79 2c 36 34 30 2c  78 20 2d 2d 3e 20 20 52  |5,y,640,x -->  R|
00000be0  35 3d 78 2b 28 36 34 30  2a 79 29 22 0d 04 ec 2c  |5=x+(640*y)"...,|
00000bf0  20 41 44 44 20 52 35 2c  52 30 2c 52 31 2c 41 53  | ADD R5,R0,R1,AS|
00000c00  4c 20 23 39 3a 41 44 44  20 52 35 2c 52 35 2c 52  |L #9:ADD R5,R5,R|
00000c10  31 2c 41 53 4c 20 23 37  0d 04 f6 14 3b 22 50 6c  |1,ASL #7....;"Pl|
00000c20  6f 74 20 73 65 71 75 65  6e 63 65 22 0d 05 00 45  |ot sequence"...E|
00000c30  20 53 54 52 42 20 52 34  2c 5b 52 31 32 2c 52 35  | STRB R4,[R12,R5|
00000c40  5d 3a 53 55 42 20 52 35  2c 52 35 2c 23 36 34 30  |]:SUB R5,R5,#640|
00000c50  3a 53 54 52 42 20 52 34  2c 5b 52 31 32 2c 52 35  |:STRB R4,[R12,R5|
00000c60  5d 3a 41 44 44 20 52 35  2c 52 35 2c 23 31 32 38  |]:ADD R5,R5,#128|
00000c70  30 0d 05 0a 31 20 53 54  52 42 20 52 34 2c 5b 52  |0...1 STRB R4,[R|
00000c80  31 32 2c 52 35 5d 3a 53  55 42 20 52 35 2c 52 35  |12,R5]:SUB R5,R5|
00000c90  2c 23 36 34 30 3a 53 55  42 20 52 35 2c 52 35 2c  |,#640:SUB R5,R5,|
00000ca0  23 31 0d 05 14 33 20 53  54 52 42 20 52 34 2c 5b  |#1...3 STRB R4,[|
00000cb0  52 31 32 2c 52 35 5d 3a  41 44 44 20 52 35 2c 52  |R12,R5]:ADD R5,R|
00000cc0  35 2c 23 32 3a 53 54 52  42 20 52 34 2c 5b 52 31  |5,#2:STRB R4,[R1|
00000cd0  32 2c 52 35 5d 0d 05 1e  0c 20 42 4c 20 4d 6f 76  |2,R5].... BL Mov|
00000ce0  65 0d 05 28 0e 20 42 4c  20 43 68 63 6b 50 31 0d  |e..(. BL ChckP1.|
00000cf0  05 32 0d 20 42 4c 20 44  65 6c 61 79 0d 05 3c 11  |.2. BL Delay..<.|
00000d00  20 41 44 44 20 52 34 2c  52 34 2c 23 31 0d 05 46  | ADD R4,R4,#1..F|
00000d10  2b 20 53 57 49 20 22 4f  53 5f 52 65 61 64 45 73  |+ SWI "OS_ReadEs|
00000d20  63 61 70 65 53 74 61 74  65 22 3a 42 43 53 20 50  |capeState":BCS P|
00000d30  31 45 3a 42 20 70 31 6c  0d 05 50 08 2e 50 31 45  |1E:B p1l..P..P1E|
00000d40  0d 05 5a 14 20 4c 44 4d  46 44 28 73 70 29 21 2c  |..Z. LDMFD(sp)!,|
00000d50  7b 70 63 7d 0d 05 64 04  0d 05 6e 25 2e 50 32 20  |{pc}..d...n%.P2 |
00000d60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000d70  3b 22 50 72 6f 67 72 61  6d 20 32 21 22 0d 05 78  |;"Program 2!"..x|
00000d80  14 20 53 54 4d 46 44 28  73 70 29 21 2c 7b 6c 6b  |. STMFD(sp)!,{lk|
00000d90  7d 0d 05 82 52 20 4c 44  52 20 52 31 32 2c 72 65  |}...R LDR R12,re|
00000da0  73 3a 41 44 52 20 52 31  30 2c 70 32 74 61 62 3a  |s:ADR R10,p2tab:|
00000db0  4d 4f 56 20 52 30 2c 23  31 30 3a 4d 4f 56 20 52  |MOV R0,#10:MOV R|
00000dc0  31 2c 23 31 30 3a 4d 4f  56 20 52 32 2c 23 32 3a  |1,#10:MOV R2,#2:|
00000dd0  4d 4f 56 20 52 33 2c 23  31 3a 4d 4f 56 20 52 34  |MOV R3,#1:MOV R4|
00000de0  2c 23 31 0d 05 8c 07 2e  70 32 0d 05 96 27 3b 22  |,#1.....p2...';"|
00000df0  4d 4c 41 20 52 35 2c 79  2c 36 34 30 2c 78 20 2d  |MLA R5,y,640,x -|
00000e00  2d 3e 20 20 52 35 3d 78  2b 28 36 34 30 2a 79 29  |->  R5=x+(640*y)|
00000e10  22 0d 05 a0 2c 20 41 44  44 20 52 35 2c 52 30 2c  |"..., ADD R5,R0,|
00000e20  52 31 2c 41 53 4c 20 23  39 3a 41 44 44 20 52 35  |R1,ASL #9:ADD R5|
00000e30  2c 52 35 2c 52 31 2c 41  53 4c 20 23 37 0d 05 aa  |,R5,R1,ASL #7...|
00000e40  0f 3b 22 50 6c 6f 74 73  20 69 74 22 0d 05 b4 24  |.;"Plots it"...$|
00000e50  20 4c 44 52 20 52 39 2c  5b 52 31 30 2c 23 30 5d  | LDR R9,[R10,#0]|
00000e60  3a 53 54 52 20 52 39 2c  5b 52 31 32 2c 52 35 5d  |:STR R9,[R12,R5]|
00000e70  0d 05 be 33 20 4c 44 52  20 52 39 2c 5b 52 31 30  |...3 LDR R9,[R10|
00000e80  2c 23 34 5d 3a 41 44 44  20 52 35 2c 52 35 2c 23  |,#4]:ADD R5,R5,#|
00000e90  36 34 30 3a 53 54 52 20  52 39 2c 5b 52 31 32 2c  |640:STR R9,[R12,|
00000ea0  52 35 5d 0d 05 c8 33 20  4c 44 52 20 52 39 2c 5b  |R5]...3 LDR R9,[|
00000eb0  52 31 30 2c 23 38 5d 3a  41 44 44 20 52 35 2c 52  |R10,#8]:ADD R5,R|
00000ec0  35 2c 23 36 34 30 3a 53  54 52 20 52 39 2c 5b 52  |5,#640:STR R9,[R|
00000ed0  31 32 2c 52 35 5d 0d 05  d2 0c 20 42 4c 20 4d 6f  |12,R5].... BL Mo|
00000ee0  76 65 0d 05 dc 0e 20 42  4c 20 43 68 63 6b 50 32  |ve.... BL ChckP2|
00000ef0  0d 05 e6 0d 20 42 4c 20  44 65 6c 61 79 0d 05 f0  |.... BL Delay...|
00000f00  2a 20 53 57 49 20 22 4f  53 5f 52 65 61 64 45 73  |* SWI "OS_ReadEs|
00000f10  63 61 70 65 53 74 61 74  65 22 3a 42 43 53 20 70  |capeState":BCS p|
00000f20  32 45 3a 42 20 70 32 0d  05 fa 08 2e 70 32 45 0d  |2E:B p2.....p2E.|
00000f30  06 04 14 20 4c 44 4d 46  44 28 73 70 29 21 2c 7b  |... LDMFD(sp)!,{|
00000f40  70 63 7d 0d 06 0e 04 0d  06 18 24 2e 50 33 20 20  |pc}.......$.P3  |
00000f50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3b 22  |              ;"|
00000f60  50 72 6f 67 72 61 6d 20  33 21 22 0d 06 22 14 20  |Program 3!"..". |
00000f70  53 54 4d 46 44 28 73 70  29 21 2c 7b 6c 6b 7d 0d  |STMFD(sp)!,{lk}.|
00000f80  06 2c 52 20 4c 44 52 20  52 31 32 2c 72 65 73 3a  |.,R LDR R12,res:|
00000f90  41 44 52 20 52 31 30 2c  70 33 74 61 62 3a 4d 4f  |ADR R10,p3tab:MO|
00000fa0  56 20 52 30 2c 23 31 30  3a 4d 4f 56 20 52 31 2c  |V R0,#10:MOV R1,|
00000fb0  23 33 30 3a 4d 4f 56 20  52 32 2c 23 32 3a 4d 4f  |#30:MOV R2,#2:MO|
00000fc0  56 20 52 33 2c 23 31 3a  4d 4f 56 20 52 34 2c 23  |V R3,#1:MOV R4,#|
00000fd0  31 0d 06 36 07 2e 70 33  0d 06 40 27 3b 22 4d 4c  |1..6..p3..@';"ML|
00000fe0  41 20 52 35 2c 79 2c 36  34 30 2c 78 20 2d 2d 3e  |A R5,y,640,x -->|
00000ff0  20 20 52 35 3d 78 2b 28  36 34 30 2a 79 29 22 0d  |  R5=x+(640*y)".|
00001000  06 4a 2c 20 41 44 44 20  52 35 2c 52 30 2c 52 31  |.J, ADD R5,R0,R1|
00001010  2c 41 53 4c 20 23 39 3a  41 44 44 20 52 35 2c 52  |,ASL #9:ADD R5,R|
00001020  35 2c 52 31 2c 41 53 4c  20 23 37 0d 06 54 14 3b  |5,R1,ASL #7..T.;|
00001030  22 50 6c 6f 74 20 73 65  71 75 65 6e 63 65 22 0d  |"Plot sequence".|
00001040  06 5e 24 20 4c 44 52 20  52 39 2c 5b 52 31 30 2c  |.^$ LDR R9,[R10,|
00001050  23 30 5d 3a 53 54 52 20  52 39 2c 5b 52 31 32 2c  |#0]:STR R9,[R12,|
00001060  52 35 5d 0d 06 68 33 20  4c 44 52 20 52 39 2c 5b  |R5]..h3 LDR R9,[|
00001070  52 31 30 2c 23 34 5d 3a  41 44 44 20 52 35 2c 52  |R10,#4]:ADD R5,R|
00001080  35 2c 23 36 34 30 3a 53  54 52 20 52 39 2c 5b 52  |5,#640:STR R9,[R|
00001090  31 32 2c 52 35 5d 0d 06  72 33 20 4c 44 52 20 52  |12,R5]..r3 LDR R|
000010a0  39 2c 5b 52 31 30 2c 23  38 5d 3a 41 44 44 20 52  |9,[R10,#8]:ADD R|
000010b0  35 2c 52 35 2c 23 36 34  30 3a 53 54 52 20 52 39  |5,R5,#640:STR R9|
000010c0  2c 5b 52 31 32 2c 52 35  5d 0d 06 7c 0c 20 42 4c  |,[R12,R5]..|. BL|
000010d0  20 4d 6f 76 65 0d 06 86  0e 20 42 4c 20 43 68 63  | Move.... BL Chc|
000010e0  6b 50 33 0d 06 90 0d 20  42 4c 20 44 65 6c 61 79  |kP3.... BL Delay|
000010f0  0d 06 9a 2a 20 53 57 49  20 22 4f 53 5f 52 65 61  |...* SWI "OS_Rea|
00001100  64 45 73 63 61 70 65 53  74 61 74 65 22 3a 42 43  |dEscapeState":BC|
00001110  53 20 70 33 45 3a 42 20  70 33 0d 06 a4 08 2e 70  |S p3E:B p3.....p|
00001120  33 45 0d 06 ae 14 20 4c  44 4d 46 44 28 73 70 29  |3E.... LDMFD(sp)|
00001130  21 2c 7b 70 63 7d 0d 06  b8 04 0d 06 c2 25 2e 50  |!,{pc}.......%.P|
00001140  34 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |4               |
00001150  20 20 3b 22 50 72 6f 67  72 61 6d 20 34 21 22 0d  |  ;"Program 4!".|
00001160  06 cc 14 20 53 54 4d 46  44 28 73 70 29 21 2c 7b  |... STMFD(sp)!,{|
00001170  6c 6b 7d 0d 06 d6 52 20  4c 44 52 20 52 31 32 2c  |lk}...R LDR R12,|
00001180  72 65 73 3a 41 44 52 20  52 31 30 2c 70 34 74 61  |res:ADR R10,p4ta|
00001190  62 3a 4d 4f 56 20 52 30  2c 23 31 30 3a 4d 4f 56  |b:MOV R0,#10:MOV|
000011a0  20 52 31 2c 23 31 30 3a  4d 4f 56 20 52 32 2c 23  | R1,#10:MOV R2,#|
000011b0  34 3a 4d 4f 56 20 52 33  2c 23 31 3a 4d 4f 56 20  |4:MOV R3,#1:MOV |
000011c0  52 34 2c 23 31 0d 06 e0  07 2e 70 34 0d 06 ea 27  |R4,#1.....p4...'|
000011d0  3b 22 4d 4c 41 20 52 35  2c 79 2c 36 34 30 2c 78  |;"MLA R5,y,640,x|
000011e0  20 2d 2d 3e 20 20 52 35  3d 78 2b 28 36 34 30 2a  | -->  R5=x+(640*|
000011f0  79 29 22 0d 06 f4 2c 20  41 44 44 20 52 35 2c 52  |y)"..., ADD R5,R|
00001200  30 2c 52 31 2c 41 53 4c  20 23 39 3a 41 44 44 20  |0,R1,ASL #9:ADD |
00001210  52 35 2c 52 35 2c 52 31  2c 41 53 4c 20 23 37 0d  |R5,R5,R1,ASL #7.|
00001220  06 fe 14 3b 22 50 6c 6f  74 20 73 65 71 75 65 6e  |...;"Plot sequen|
00001230  63 65 22 0d 07 08 24 20  4c 44 52 20 52 39 2c 5b  |ce"...$ LDR R9,[|
00001240  52 31 30 2c 23 30 5d 3a  53 54 52 20 52 39 2c 5b  |R10,#0]:STR R9,[|
00001250  52 31 32 2c 52 35 5d 0d  07 12 33 20 4c 44 52 20  |R12,R5]...3 LDR |
00001260  52 39 2c 5b 52 31 30 2c  23 34 5d 3a 41 44 44 20  |R9,[R10,#4]:ADD |
00001270  52 35 2c 52 35 2c 23 36  34 30 3a 53 54 52 20 52  |R5,R5,#640:STR R|
00001280  39 2c 5b 52 31 32 2c 52  35 5d 0d 07 1c 33 20 4c  |9,[R12,R5]...3 L|
00001290  44 52 20 52 39 2c 5b 52  31 30 2c 23 38 5d 3a 41  |DR R9,[R10,#8]:A|
000012a0  44 44 20 52 35 2c 52 35  2c 23 36 34 30 3a 53 54  |DD R5,R5,#640:ST|
000012b0  52 20 52 39 2c 5b 52 31  32 2c 52 35 5d 0d 07 26  |R R9,[R12,R5]..&|
000012c0  0c 20 42 4c 20 4d 6f 76  65 0d 07 30 0e 20 42 4c  |. BL Move..0. BL|
000012d0  20 43 68 63 6b 50 34 0d  07 3a 0d 20 42 4c 20 44  | ChckP4..:. BL D|
000012e0  65 6c 61 79 0d 07 44 2a  20 53 57 49 20 22 4f 53  |elay..D* SWI "OS|
000012f0  5f 52 65 61 64 45 73 63  61 70 65 53 74 61 74 65  |_ReadEscapeState|
00001300  22 3a 42 43 53 20 70 34  45 3a 42 20 70 34 0d 07  |":BCS p4E:B p4..|
00001310  4e 08 2e 70 34 45 0d 07  58 14 20 4c 44 4d 46 44  |N..p4E..X. LDMFD|
00001320  28 73 70 29 21 2c 7b 70  63 7d 0d 07 62 04 0d 07  |(sp)!,{pc}..b...|
00001330  6c 40 2e 50 35 20 20 20  20 20 20 20 20 20 20 20  |l@.P5           |
00001340  20 20 20 20 20 20 3b 22  47 75 65 73 73 21 20 2d  |      ;"Guess! -|
00001350  20 59 65 73 20 79 6f 75  20 67 6f 74 20 69 74 21  | Yes you got it!|
00001360  20 2d 20 50 72 6f 67 72  61 6d 20 35 21 22 0d 07  | - Program 5!"..|
00001370  76 14 20 53 54 4d 46 44  28 73 70 29 21 2c 7b 6c  |v. STMFD(sp)!,{l|
00001380  6b 7d 0d 07 80 52 20 4c  44 52 20 52 31 32 2c 72  |k}...R LDR R12,r|
00001390  65 73 3a 41 44 52 20 52  31 30 2c 70 35 74 61 62  |es:ADR R10,p5tab|
000013a0  3a 4d 4f 56 20 52 30 2c  23 31 30 3a 4d 4f 56 20  |:MOV R0,#10:MOV |
000013b0  52 31 2c 23 31 30 3a 4d  4f 56 20 52 32 2c 23 33  |R1,#10:MOV R2,#3|
000013c0  3a 4d 4f 56 20 52 33 2c  23 31 3a 4d 4f 56 20 52  |:MOV R3,#1:MOV R|
000013d0  34 2c 23 31 0d 07 8a 07  2e 70 35 0d 07 94 16 20  |4,#1.....p5.... |
000013e0  42 4c 20 4d 6f 76 65 3a  42 4c 20 43 68 63 6b 50  |BL Move:BL ChckP|
000013f0  35 0d 07 9e 27 3b 22 4d  4c 41 20 52 35 2c 79 2c  |5...';"MLA R5,y,|
00001400  36 34 30 2c 78 20 2d 2d  3e 20 20 52 35 3d 78 2b  |640,x -->  R5=x+|
00001410  28 36 34 30 2a 79 29 22  0d 07 a8 2c 20 41 44 44  |(640*y)"..., ADD|
00001420  20 52 35 2c 52 30 2c 52  31 2c 41 53 4c 20 23 39  | R5,R0,R1,ASL #9|
00001430  3a 41 44 44 20 52 35 2c  52 35 2c 52 31 2c 41 53  |:ADD R5,R5,R1,AS|
00001440  4c 20 23 37 0d 07 b2 14  3b 22 50 6c 6f 74 20 73  |L #7....;"Plot s|
00001450  65 71 75 65 6e 63 65 22  0d 07 bc 0e 20 4d 4f 56  |equence".... MOV|
00001460  20 52 36 2c 23 30 0d 07  c6 08 2e 70 35 6c 0d 07  | R6,#0.....p5l..|
00001470  d0 4e 20 4c 44 52 20 52  39 2c 5b 52 31 30 2c 52  |.N LDR R9,[R10,R|
00001480  36 5d 3a 41 44 44 20 52  36 2c 52 36 2c 23 34 3a  |6]:ADD R6,R6,#4:|
00001490  53 54 52 20 52 39 2c 5b  52 31 32 2c 52 35 5d 3a  |STR R9,[R12,R5]:|
000014a0  41 44 44 20 52 35 2c 52  35 2c 23 34 3a 4c 44 52  |ADD R5,R5,#4:LDR|
000014b0  20 52 39 2c 5b 52 31 30  2c 52 36 5d 0d 07 da 3d  | R9,[R10,R6]...=|
000014c0  20 41 44 44 20 52 36 2c  52 36 2c 23 34 3a 53 54  | ADD R6,R6,#4:ST|
000014d0  52 20 52 39 2c 5b 52 31  32 2c 52 35 5d 3a 43 4d  |R R9,[R12,R5]:CM|
000014e0  50 20 52 36 2c 23 32 34  3a 42 4c 54 20 70 35 6c  |P R6,#24:BLT p5l|
000014f0  3a 42 4c 20 44 65 6c 61  79 0d 07 e4 2a 20 53 57  |:BL Delay...* SW|
00001500  49 20 22 4f 53 5f 52 65  61 64 45 73 63 61 70 65  |I "OS_ReadEscape|
00001510  53 74 61 74 65 22 3a 42  43 53 20 70 35 45 3a 42  |State":BCS p5E:B|
00001520  20 70 35 0d 07 ee 08 2e  70 35 45 0d 07 f8 14 20  | p5.....p5E.... |
00001530  4c 44 4d 46 44 28 73 70  29 21 2c 7b 70 63 7d 0d  |LDMFD(sp)!,{pc}.|
00001540  08 02 04 0d 08 0c 32 2e  50 36 20 20 20 20 20 20  |......2.P6      |
00001550  20 20 20 20 20 20 20 20  20 20 20 3b 22 59 65 74  |           ;"Yet|
00001560  20 61 6e 6f 74 68 65 72  20 50 72 6f 67 72 61 6d  | another Program|
00001570  20 28 36 29 22 0d 08 16  14 20 53 54 4d 46 44 28  | (6)".... STMFD(|
00001580  73 70 29 21 2c 7b 6c 6b  7d 0d 08 20 52 20 4c 44  |sp)!,{lk}.. R LD|
00001590  52 20 52 31 32 2c 72 65  73 3a 41 44 52 20 52 31  |R R12,res:ADR R1|
000015a0  30 2c 70 36 74 61 62 3a  4d 4f 56 20 52 30 2c 23  |0,p6tab:MOV R0,#|
000015b0  31 30 3a 4d 4f 56 20 52  31 2c 23 31 30 3a 4d 4f  |10:MOV R1,#10:MO|
000015c0  56 20 52 32 2c 23 32 3a  4d 4f 56 20 52 33 2c 23  |V R2,#2:MOV R3,#|
000015d0  31 3a 4d 4f 56 20 52 34  2c 23 31 0d 08 2a 07 2e  |1:MOV R4,#1..*..|
000015e0  70 36 0d 08 34 0c 20 42  4c 20 4d 6f 76 65 0d 08  |p6..4. BL Move..|
000015f0  3e 0e 20 42 4c 20 43 68  63 6b 50 36 0d 08 48 27  |>. BL ChckP6..H'|
00001600  3b 22 4d 4c 41 20 52 35  2c 79 2c 36 34 30 2c 78  |;"MLA R5,y,640,x|
00001610  20 2d 2d 3e 20 20 52 35  3d 78 2b 28 36 34 30 2a  | -->  R5=x+(640*|
00001620  79 29 22 0d 08 52 2c 20  41 44 44 20 52 35 2c 52  |y)"..R, ADD R5,R|
00001630  30 2c 52 31 2c 41 53 4c  20 23 39 3a 41 44 44 20  |0,R1,ASL #9:ADD |
00001640  52 35 2c 52 35 2c 52 31  2c 41 53 4c 20 23 37 0d  |R5,R5,R1,ASL #7.|
00001650  08 5c 14 3b 22 50 6c 6f  74 20 73 65 71 75 65 6e  |.\.;"Plot sequen|
00001660  63 65 22 0d 08 66 0e 20  4d 4f 56 20 52 36 2c 23  |ce"..f. MOV R6,#|
00001670  30 0d 08 70 08 2e 70 36  6c 0d 08 7a 31 20 4c 44  |0..p..p6l..z1 LD|
00001680  52 20 52 39 2c 5b 52 31  30 2c 52 36 5d 3a 41 44  |R R9,[R10,R6]:AD|
00001690  44 20 52 36 2c 52 36 2c  23 34 3a 53 54 52 20 52  |D R6,R6,#4:STR R|
000016a0  39 2c 5b 52 31 32 2c 52  35 5d 0d 08 84 3e 20 41  |9,[R12,R5]...> A|
000016b0  44 44 20 52 35 2c 52 35  2c 23 34 3a 4c 44 52 20  |DD R5,R5,#4:LDR |
000016c0  52 39 2c 5b 52 31 30 2c  52 36 5d 3a 41 44 44 20  |R9,[R10,R6]:ADD |
000016d0  52 36 2c 52 36 2c 23 34  3a 53 54 52 20 52 39 2c  |R6,R6,#4:STR R9,|
000016e0  5b 52 31 32 2c 52 35 5d  0d 08 8e 2f 20 41 44 44  |[R12,R5].../ ADD|
000016f0  20 52 35 2c 52 35 2c 23  36 33 32 3a 43 4d 50 20  | R5,R5,#632:CMP |
00001700  52 36 2c 23 34 38 3a 42  4c 54 20 70 36 6c 3a 42  |R6,#48:BLT p6l:B|
00001710  4c 20 44 65 6c 61 79 0d  08 98 2a 20 53 57 49 20  |L Delay...* SWI |
00001720  22 4f 53 5f 52 65 61 64  45 73 63 61 70 65 53 74  |"OS_ReadEscapeSt|
00001730  61 74 65 22 3a 42 43 53  20 70 36 45 3a 42 20 70  |ate":BCS p6E:B p|
00001740  36 0d 08 a2 08 2e 70 36  45 0d 08 ac 14 20 4c 44  |6.....p6E.... LD|
00001750  4d 46 44 28 73 70 29 21  2c 7b 70 63 7d 0d 08 b6  |MFD(sp)!,{pc}...|
00001760  04 0d 08 c0 39 2e 50 37  20 20 20 20 20 20 20 20  |....9.P7        |
00001770  20 20 20 20 20 20 20 20  20 3b 22 50 72 6f 67 67  |         ;"Progg|
00001780  79 20 37 20 2d 20 57 65  6c 6c 2c 20 49 74 73 20  |y 7 - Well, Its |
00001790  61 20 63 68 61 6e 67 65  21 22 0d 08 ca 14 20 53  |a change!".... S|
000017a0  54 4d 46 44 28 73 70 29  21 2c 7b 6c 6b 7d 0d 08  |TMFD(sp)!,{lk}..|
000017b0  d4 52 20 4c 44 52 20 52  31 32 2c 72 65 73 3a 41  |.R LDR R12,res:A|
000017c0  44 52 20 52 31 30 2c 70  37 74 61 62 3a 4d 4f 56  |DR R10,p7tab:MOV|
000017d0  20 52 30 2c 23 31 30 3a  4d 4f 56 20 52 31 2c 23  | R0,#10:MOV R1,#|
000017e0  31 30 3a 4d 4f 56 20 52  32 2c 23 33 3a 4d 4f 56  |10:MOV R2,#3:MOV|
000017f0  20 52 33 2c 23 31 3a 4d  4f 56 20 52 34 2c 23 31  | R3,#1:MOV R4,#1|
00001800  0d 08 de 07 2e 70 37 0d  08 e8 12 3b 22 4d 6f 76  |.....p7....;"Mov|
00001810  65 73 20 78 20 26 20 79  22 0d 08 f2 1e 20 41 44  |es x & y".... AD|
00001820  44 20 52 30 2c 52 30 2c  52 32 3a 41 44 44 20 52  |D R0,R0,R2:ADD R|
00001830  31 2c 52 31 2c 52 33 0d  08 fc 0e 20 42 4c 20 43  |1,R1,R3.... BL C|
00001840  68 63 6b 50 37 0d 09 06  27 3b 22 4d 4c 41 20 52  |hckP7...';"MLA R|
00001850  35 2c 79 2c 36 34 30 2c  78 20 2d 2d 3e 20 20 52  |5,y,640,x -->  R|
00001860  35 3d 78 2b 28 36 34 30  2a 79 29 22 0d 09 10 2c  |5=x+(640*y)"...,|
00001870  20 41 44 44 20 52 35 2c  52 30 2c 52 31 2c 41 53  | ADD R5,R0,R1,AS|
00001880  4c 20 23 39 3a 41 44 44  20 52 35 2c 52 35 2c 52  |L #9:ADD R5,R5,R|
00001890  31 2c 41 53 4c 20 23 37  0d 09 1a 14 3b 22 50 6c  |1,ASL #7....;"Pl|
000018a0  6f 74 20 73 65 71 75 65  6e 63 65 22 0d 09 24 0e  |ot sequence"..$.|
000018b0  20 4d 4f 56 20 52 36 2c  23 30 0d 09 2e 42 2e 70  | MOV R6,#0...B.p|
000018c0  37 6c 3a 4c 44 52 20 52  39 2c 5b 52 31 30 2c 52  |7l:LDR R9,[R10,R|
000018d0  36 5d 3a 41 44 44 20 52  36 2c 52 36 2c 23 34 3a  |6]:ADD R6,R6,#4:|
000018e0  53 54 52 20 52 39 2c 5b  52 31 32 2c 52 35 5d 3a  |STR R9,[R12,R5]:|
000018f0  41 44 44 20 52 35 2c 52  35 2c 23 34 0d 09 38 3e  |ADD R5,R5,#4..8>|
00001900  20 4c 44 52 20 52 39 2c  5b 52 31 30 2c 52 36 5d  | LDR R9,[R10,R6]|
00001910  3a 41 44 44 20 52 36 2c  52 36 2c 23 34 3a 53 54  |:ADD R6,R6,#4:ST|
00001920  52 20 52 39 2c 5b 52 31  32 2c 52 35 5d 3a 41 44  |R R9,[R12,R5]:AD|
00001930  44 20 52 35 2c 52 35 2c  23 34 0d 09 42 40 20 4c  |D R5,R5,#4..B@ L|
00001940  44 52 20 52 39 2c 5b 52  31 30 2c 52 36 5d 3a 41  |DR R9,[R10,R6]:A|
00001950  44 44 20 52 36 2c 52 36  2c 23 34 3a 53 54 52 20  |DD R6,R6,#4:STR |
00001960  52 39 2c 5b 52 31 32 2c  52 35 5d 3a 41 44 44 20  |R9,[R12,R5]:ADD |
00001970  52 35 2c 52 35 2c 23 36  33 32 0d 09 4c 20 20 43  |R5,R5,#632..L  C|
00001980  4d 50 20 52 36 2c 23 34  38 3a 42 4c 54 20 70 37  |MP R6,#48:BLT p7|
00001990  6c 3a 42 4c 20 44 65 6c  61 79 0d 09 56 2a 20 53  |l:BL Delay..V* S|
000019a0  57 49 20 22 4f 53 5f 52  65 61 64 45 73 63 61 70  |WI "OS_ReadEscap|
000019b0  65 53 74 61 74 65 22 3a  42 43 53 20 70 37 45 3a  |eState":BCS p7E:|
000019c0  42 20 70 37 0d 09 60 08  2e 70 37 45 0d 09 6a 14  |B p7..`..p7E..j.|
000019d0  20 4c 44 4d 46 44 28 73  70 29 21 2c 7b 70 63 7d  | LDMFD(sp)!,{pc}|
000019e0  0d 09 74 04 0d 09 7e 3b  2e 50 38 20 20 20 20 20  |..t...~;.P8     |
000019f0  20 20 20 20 20 20 20 20  20 20 20 20 3b 22 43 61  |            ;"Ca|
00001a00  6e 27 74 20 62 65 20 62  6f 74 68 65 72 65 64 20  |n't be bothered |
00001a10  2d 20 50 72 6f 67 72 61  6d 20 38 2e 2e 2e 22 0d  |- Program 8...".|
00001a20  09 88 14 20 53 54 4d 46  44 28 73 70 29 21 2c 7b  |... STMFD(sp)!,{|
00001a30  6c 6b 7d 0d 09 92 53 20  4c 44 52 20 52 31 32 2c  |lk}...S LDR R12,|
00001a40  72 65 73 3a 41 44 52 20  52 31 30 2c 70 38 74 61  |res:ADR R10,p8ta|
00001a50  62 3a 4d 4f 56 20 52 30  2c 23 31 30 30 3a 4d 4f  |b:MOV R0,#100:MO|
00001a60  56 20 52 31 2c 23 31 30  3a 4d 4f 56 20 52 32 2c  |V R1,#10:MOV R2,|
00001a70  23 32 3a 4d 4f 56 20 52  33 2c 23 31 3a 4d 4f 56  |#2:MOV R3,#1:MOV|
00001a80  20 52 34 2c 23 31 0d 09  9c 07 2e 70 38 0d 09 a6  | R4,#1.....p8...|
00001a90  12 3b 22 4d 6f 76 65 73  20 78 20 26 20 79 22 0d  |.;"Moves x & y".|
00001aa0  09 b0 1e 20 41 44 44 20  52 30 2c 52 30 2c 52 32  |... ADD R0,R0,R2|
00001ab0  3a 41 44 44 20 52 31 2c  52 31 2c 52 33 0d 09 ba  |:ADD R1,R1,R3...|
00001ac0  0e 20 42 4c 20 43 68 63  6b 50 38 0d 09 c4 27 3b  |. BL ChckP8...';|
00001ad0  22 4d 4c 41 20 52 35 2c  79 2c 36 34 30 2c 78 20  |"MLA R5,y,640,x |
00001ae0  2d 2d 3e 20 20 52 35 3d  78 2b 28 36 34 30 2a 79  |-->  R5=x+(640*y|
00001af0  29 22 0d 09 ce 2c 20 41  44 44 20 52 35 2c 52 30  |)"..., ADD R5,R0|
00001b00  2c 52 31 2c 41 53 4c 20  23 39 3a 41 44 44 20 52  |,R1,ASL #9:ADD R|
00001b10  35 2c 52 35 2c 52 31 2c  41 53 4c 20 23 37 0d 09  |5,R5,R1,ASL #7..|
00001b20  d8 14 3b 22 50 6c 6f 74  20 73 65 71 75 65 6e 63  |..;"Plot sequenc|
00001b30  65 22 0d 09 e2 0e 20 4d  4f 56 20 52 36 2c 23 30  |e".... MOV R6,#0|
00001b40  0d 09 ec 08 2e 70 38 6c  0d 09 f6 3e 20 4c 44 52  |.....p8l...> LDR|
00001b50  20 52 39 2c 5b 52 31 30  2c 52 36 5d 3a 41 44 44  | R9,[R10,R6]:ADD|
00001b60  20 52 36 2c 52 36 2c 23  34 3a 53 54 52 20 52 39  | R6,R6,#4:STR R9|
00001b70  2c 5b 52 31 32 2c 52 35  5d 3a 41 44 44 20 52 35  |,[R12,R5]:ADD R5|
00001b80  2c 52 35 2c 23 34 0d 0a  00 3e 20 4c 44 52 20 52  |,R5,#4...> LDR R|
00001b90  39 2c 5b 52 31 30 2c 52  36 5d 3a 41 44 44 20 52  |9,[R10,R6]:ADD R|
00001ba0  36 2c 52 36 2c 23 34 3a  53 54 52 20 52 39 2c 5b  |6,R6,#4:STR R9,[|
00001bb0  52 31 32 2c 52 35 5d 3a  41 44 44 20 52 35 2c 52  |R12,R5]:ADD R5,R|
00001bc0  35 2c 23 34 0d 0a 0a 40  20 4c 44 52 20 52 39 2c  |5,#4...@ LDR R9,|
00001bd0  5b 52 31 30 2c 52 36 5d  3a 41 44 44 20 52 36 2c  |[R10,R6]:ADD R6,|
00001be0  52 36 2c 23 34 3a 53 54  52 20 52 39 2c 5b 52 31  |R6,#4:STR R9,[R1|
00001bf0  32 2c 52 35 5d 3a 41 44  44 20 52 35 2c 52 35 2c  |2,R5]:ADD R5,R5,|
00001c00  23 36 33 32 0d 0a 14 20  20 43 4d 50 20 52 36 2c  |#632...  CMP R6,|
00001c10  23 34 38 3a 42 4c 54 20  70 38 6c 3a 42 4c 20 44  |#48:BLT p8l:BL D|
00001c20  65 6c 61 79 0d 0a 1e 2a  20 53 57 49 20 22 4f 53  |elay...* SWI "OS|
00001c30  5f 52 65 61 64 45 73 63  61 70 65 53 74 61 74 65  |_ReadEscapeState|
00001c40  22 3a 42 43 53 20 70 38  45 3a 42 20 70 38 0d 0a  |":BCS p8E:B p8..|
00001c50  28 08 2e 70 38 45 0d 0a  32 14 20 4c 44 4d 46 44  |(..p8E..2. LDMFD|
00001c60  28 73 70 29 21 2c 7b 70  63 7d 0d 0a 3c 04 0d 0a  |(sp)!,{pc}..<...|
00001c70  46 0a 2e 70 38 74 61 62  0d 0a 50 31 20 45 51 55  |F..p8tab..P1 EQU|
00001c80  44 20 26 43 46 30 30 30  30 30 30 3a 45 51 55 44  |D &CF000000:EQUD|
00001c90  20 26 43 46 30 30 30 30  43 46 3a 45 51 55 44 20  | &CF0000CF:EQUD |
00001ca0  26 30 30 30 30 30 30 41  46 0d 0a 5a 31 20 45 51  |&000000AF..Z1 EQ|
00001cb0  55 44 20 26 43 46 43 46  43 46 30 30 3a 45 51 55  |UD &CFCFCF00:EQU|
00001cc0  44 20 26 43 46 30 30 30  30 43 46 3a 45 51 55 44  |D &CF0000CF:EQUD|
00001cd0  20 26 30 30 41 46 41 46  41 46 0d 0a 64 31 20 45  | &00AFAFAF..d1 E|
00001ce0  51 55 44 20 26 41 46 30  30 30 30 30 30 3a 45 51  |QUD &AF000000:EQ|
00001cf0  55 44 20 26 43 46 43 46  41 46 41 46 3a 45 51 55  |UD &CFCFAFAF:EQU|
00001d00  44 20 26 30 30 30 30 30  30 43 46 0d 0a 6e 31 20  |D &000000CF..n1 |
00001d10  45 51 55 44 20 26 41 46  41 46 41 46 30 30 3a 45  |EQUD &AFAFAF00:E|
00001d20  51 55 44 20 26 43 46 43  46 41 46 41 46 3a 45 51  |QUD &CFCFAFAF:EQ|
00001d30  55 44 20 26 30 30 43 46  43 46 43 46 0d 0a 78 04  |UD &00CFCFCF..x.|
00001d40  0d 0a 82 0a 2e 70 37 74  61 62 0d 0a 8c 31 20 45  |.....p7tab...1 E|
00001d50  51 55 44 20 26 41 41 41  41 30 30 30 30 3a 45 51  |QUD &AAAA0000:EQ|
00001d60  55 44 20 26 41 41 30 30  30 30 41 41 3a 45 51 55  |UD &AA0000AA:EQU|
00001d70  44 20 26 30 30 30 30 41  41 41 41 0d 0a 96 31 20  |D &0000AAAA...1 |
00001d80  45 51 55 44 20 26 33 37  33 37 33 37 30 30 3a 45  |EQUD &37373700:E|
00001d90  51 55 44 20 26 33 37 33  37 33 37 33 37 3a 45 51  |QUD &37373737:EQ|
00001da0  55 44 20 26 30 30 33 37  33 37 33 37 0d 0a a0 31  |UD &00373737...1|
00001db0  20 45 51 55 44 20 26 33  37 33 37 30 30 30 30 3a  | EQUD &37370000:|
00001dc0  45 51 55 44 20 26 33 37  33 37 33 37 33 37 3a 45  |EQUD &37373737:E|
00001dd0  51 55 44 20 26 30 30 30  30 33 37 33 37 0d 0a aa  |QUD &00003737...|
00001de0  31 20 45 51 55 44 20 26  33 37 30 30 30 30 30 30  |1 EQUD &37000000|
00001df0  3a 45 51 55 44 20 26 33  37 30 30 30 30 33 37 3a  |:EQUD &37000037:|
00001e00  45 51 55 44 20 26 30 30  30 30 30 30 33 37 0d 0a  |EQUD &00000037..|
00001e10  b4 04 0d 0a be 0a 2e 70  36 74 61 62 0d 0a c8 31  |.......p6tab...1|
00001e20  20 45 51 55 44 20 26 33  31 33 31 30 30 30 30 3a  | EQUD &31310000:|
00001e30  45 51 55 44 20 26 33 31  30 30 30 30 33 31 3a 45  |EQUD &31000031:E|
00001e40  51 55 44 20 26 30 30 30  30 33 31 33 31 0d 0a d2  |QUD &00003131...|
00001e50  31 20 45 51 55 44 20 26  33 31 33 31 33 31 30 30  |1 EQUD &31313100|
00001e60  3a 45 51 55 44 20 26 33  31 33 31 33 31 33 31 3a  |:EQUD &31313131:|
00001e70  45 51 55 44 20 26 30 30  33 37 33 37 33 31 0d 0a  |EQUD &00373731..|
00001e80  dc 31 20 45 51 55 44 20  26 33 31 33 31 30 30 30  |.1 EQUD &3131000|
00001e90  30 3a 45 51 55 44 20 26  33 31 33 37 33 37 33 37  |0:EQUD &31373737|
00001ea0  3a 45 51 55 44 20 26 30  30 30 30 33 37 33 37 0d  |:EQUD &00003737.|
00001eb0  0a e6 31 20 45 51 55 44  20 26 33 31 30 30 30 30  |..1 EQUD &310000|
00001ec0  30 30 3a 45 51 55 44 20  26 33 37 30 30 30 30 33  |00:EQUD &3700003|
00001ed0  37 3a 45 51 55 44 20 26  30 30 30 30 30 30 33 37  |7:EQUD &00000037|
00001ee0  0d 0a f0 04 0d 0a fa 0a  2e 70 35 74 61 62 0d 0b  |.........p5tab..|
00001ef0  04 30 20 45 51 55 44 20  26 32 32 31 31 31 31 31  |.0 EQUD &2211111|
00001f00  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
00001f10  20 20 20 20 20 20 3b 34  20 42 79 74 65 73 0d 0b  |      ;4 Bytes..|
00001f20  0e 2a 20 45 51 55 44 20  26 32 32 32 32 31 31 31  |.* EQUD &2222111|
00001f30  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
00001f40  20 20 20 20 20 20 3b 38  0d 0b 18 2b 20 45 51 55  |      ;8...+ EQU|
00001f50  44 20 26 33 32 32 32 32  32 31 31 20 20 20 20 20  |D &32222211     |
00001f60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001f70  3b 31 32 0d 0b 22 2b 20  45 51 55 44 20 26 33 33  |;12.."+ EQUD &33|
00001f80  32 32 32 32 32 31 20 20  20 20 20 20 20 20 20 20  |222221          |
00001f90  20 20 20 20 20 20 20 20  20 20 20 3b 31 36 0d 0b  |           ;16..|
00001fa0  2c 2b 20 45 51 55 44 20  26 33 33 33 33 33 32 32  |,+ EQUD &3333322|
00001fb0  32 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |2               |
00001fc0  20 20 20 20 20 20 3b 32  30 0d 0b 36 2b 20 45 51  |      ;20..6+ EQ|
00001fd0  55 44 20 26 33 33 33 33  33 33 32 32 20 20 20 20  |UD &33333322    |
00001fe0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001ff0  20 3b 32 34 0d 0b 40 04  0d 0b 4a 0a 2e 70 34 74  | ;24..@...J..p4t|
00002000  61 62 0d 0b 54 13 20 45  51 55 44 20 26 30 30 30  |ab..T. EQUD &000|
00002010  30 30 30 30 36 0d 0b 5e  13 20 45 51 55 44 20 26  |00006..^. EQUD &|
00002020  30 30 30 30 30 36 36 36  0d 0b 68 13 20 45 51 55  |00000666..h. EQU|
00002030  44 20 26 30 30 30 36 36  36 36 36 0d 0b 72 04 0d  |D &00066666..r..|
00002040  0b 7c 0a 2e 70 33 74 61  62 0d 0b 86 13 20 45 51  |.|..p3tab.... EQ|
00002050  55 44 20 26 31 31 31 31  31 36 36 36 0d 0b 90 13  |UD &11111666....|
00002060  20 45 51 55 44 20 26 31  31 31 31 36 36 36 36 0d  | EQUD &11116666.|
00002070  0b 9a 13 20 45 51 55 44  20 26 31 31 31 36 36 36  |... EQUD &111666|
00002080  36 36 0d 0b a4 04 0d 0b  ae 0a 2e 70 32 74 61 62  |66.........p2tab|
00002090  0d 0b b8 13 20 45 51 55  44 20 26 36 36 37 37 38  |.... EQUD &66778|
000020a0  38 39 39 0d 0b c2 13 20  45 51 55 44 20 26 32 32  |899.... EQUD &22|
000020b0  33 33 34 34 35 35 0d 0b  cc 13 20 45 51 55 44 20  |334455.... EQUD |
000020c0  26 31 31 36 31 30 30 31  31 0d 0b d6 04 0d 0b e0  |&11610011.......|
000020d0  04 0d 0b ea 04 0d 0b f4  0a 2e 74 77 69 72 6c 0d  |..........twirl.|
000020e0  0b fe 14 53 54 4d 46 44  20 28 73 70 29 21 2c 7b  |...STMFD (sp)!,{|
000020f0  6c 6b 7d 0d 0c 08 04 0d  0c 12 0c 4c 44 52 52 30  |lk}........LDRR0|
00002100  2c 63 78 0d 0c 1c 0d 4c  44 52 52 31 2c 63 78 76  |,cx....LDRR1,cxv|
00002110  0d 0c 26 0f 41 44 44 52  30 2c 52 30 2c 52 31 0d  |..&.ADDR0,R0,R1.|
00002120  0c 30 0e 43 4d 50 52 30  2c 23 33 32 30 0d 0c 3a  |.0.CMPR0,#320..:|
00002130  11 41 44 44 4c 54 52 31  2c 52 31 2c 23 33 0d 0c  |.ADDLTR1,R1,#3..|
00002140  44 11 53 55 42 47 54 52  31 2c 52 31 2c 23 33 0d  |D.SUBGTR1,R1,#3.|
00002150  0c 4e 0c 53 54 52 52 30  2c 63 78 0d 0c 58 0d 53  |.N.STRR0,cx..X.S|
00002160  54 52 52 31 2c 63 78 76  0d 0c 62 04 0d 0c 6c 0c  |TRR1,cxv..b...l.|
00002170  4c 44 52 52 30 2c 63 79  0d 0c 76 0d 4c 44 52 52  |LDRR0,cy..v.LDRR|
00002180  31 2c 63 79 76 0d 0c 80  0f 41 44 44 52 30 2c 52  |1,cyv....ADDR0,R|
00002190  30 2c 52 31 0d 0c 8a 0e  43 4d 50 52 30 2c 23 32  |0,R1....CMPR0,#2|
000021a0  35 35 0d 0c 94 11 41 44  44 4c 54 52 31 2c 52 31  |55....ADDLTR1,R1|
000021b0  2c 23 32 0d 0c 9e 11 53  55 42 47 54 52 31 2c 52  |,#2....SUBGTR1,R|
000021c0  31 2c 23 32 0d 0c a8 0c  53 54 52 52 30 2c 63 79  |1,#2....STRR0,cy|
000021d0  0d 0c b2 0d 53 54 52 52  31 2c 63 79 76 0d 0c bc  |....STRR1,cyv...|
000021e0  04 0d 0c c6 04 0d 0c d0  17 4c 44 52 52 30 2c 78  |.........LDRR0,x|
000021f0  70 20 3b 4c 6f 61 64 20  76 61 72 73 0d 0c da 0c  |p ;Load vars....|
00002200  4c 44 52 52 31 2c 79 70  0d 0c e4 0c 4c 44 52 52  |LDRR1,yp....LDRR|
00002210  32 2c 76 78 0d 0c ee 0c  4c 44 52 52 33 2c 76 79  |2,vx....LDRR3,vy|
00002220  0d 0c f8 04 0d 0d 02 19  41 44 44 52 30 2c 52 30  |........ADDR0,R0|
00002230  2c 52 32 20 3b 6d 6f 76  65 20 70 6f 73 0d 0d 0c  |,R2 ;move pos...|
00002240  0f 41 44 44 52 31 2c 52  31 2c 52 33 0d 0d 16 04  |.ADDR1,R1,R3....|
00002250  0d 0d 20 17 53 54 52 52  30 2c 78 70 20 3b 73 74  |.. .STRR0,xp ;st|
00002260  6f 72 65 20 70 6f 73 0d  0d 2a 0c 53 54 52 52 31  |ore pos..*.STRR1|
00002270  2c 79 70 0d 0d 34 04 0d  0d 3e 20 4d 4f 56 52 30  |,yp..4...> MOVR0|
00002280  2c 52 30 2c 41 53 52 20  23 31 33 20 3b 73 68 69  |,R0,ASR #13 ;shi|
00002290  66 74 20 64 6f 77 6e 0d  0d 48 14 4d 4f 56 52 31  |ft down..H.MOVR1|
000022a0  2c 52 31 2c 41 53 52 20  23 31 33 0d 0d 52 04 0d  |,R1,ASR #13..R..|
000022b0  0d 5c 0c 4c 44 52 52 38  2c 61 6d 0d 0d 66 04 0d  |.\.LDRR8,am..f..|
000022c0  0d 70 0c 4c 44 52 52 39  2c 63 78 0d 0d 7a 38 43  |.p.LDRR9,cx..z8C|
000022d0  4d 50 52 30 2c 52 39 20  20 20 20 20 20 20 3b 43  |MPR0,R9       ;C|
000022e0  6f 6d 70 61 72 65 20 78  70 20 77 69 74 68 20 63  |ompare xp with c|
000022f0  65 6e 74 72 65 20 28 78  29 20 6f 66 20 73 63 72  |entre (x) of scr|
00002300  65 65 6e 0d 0d 84 11 41  44 44 4c 54 52 32 2c 52  |een....ADDLTR2,R|
00002310  32 2c 52 38 0d 0d 8e 11  53 55 42 47 54 52 32 2c  |2,R8....SUBGTR2,|
00002320  52 32 2c 52 38 0d 0d 98  04 0d 0d a2 0c 4c 44 52  |R2,R8........LDR|
00002330  52 39 2c 63 79 0d 0d ac  38 43 4d 50 52 31 2c 52  |R9,cy...8CMPR1,R|
00002340  39 20 20 20 20 20 20 20  3b 43 6f 6d 70 61 72 65  |9       ;Compare|
00002350  20 79 70 20 77 69 74 68  20 63 65 6e 74 72 65 20  | yp with centre |
00002360  28 79 29 20 6f 66 20 73  63 72 65 65 6e 0d 0d b6  |(y) of screen...|
00002370  11 41 44 44 4c 54 52 33  2c 52 33 2c 52 38 0d 0d  |.ADDLTR3,R3,R8..|
00002380  c0 11 53 55 42 47 54 52  33 2c 52 33 2c 52 38 0d  |..SUBGTR3,R3,R8.|
00002390  0d ca 04 0d 0d d4 2b 53  54 52 52 32 2c 76 78 20  |......+STRR2,vx |
000023a0  20 3b 73 74 6f 72 65 20  28 63 68 61 6e 67 65 64  | ;store (changed|
000023b0  29 20 78 70 20 26 20 79  70 20 76 61 72 73 0d 0d  |) xp & yp vars..|
000023c0  de 0c 53 54 52 52 33 2c  76 79 0d 0d e8 04 0d 0d  |..STRR3,vy......|
000023d0  f2 42 41 44 44 52 35 2c  52 30 2c 52 31 2c 41 53  |.BADDR5,R0,R1,AS|
000023e0  4c 20 23 39 20 3b 67 65  74 20 70 6f 73 69 74 69  |L #9 ;get positi|
000023f0  6f 6e 20 6f 6e 20 73 63  72 65 65 6e 20 61 6e 64  |on on screen and|
00002400  20 63 6f 6c 6f 75 72 20  61 6e 64 20 70 6c 6f 74  | colour and plot|
00002410  0d 0d fc 16 41 44 44 52  35 2c 52 35 2c 52 31 2c  |....ADDR5,R5,R1,|
00002420  41 53 4c 20 23 37 0d 0e  06 0c 4c 44 52 52 36 2c  |ASL #7....LDRR6,|
00002430  63 6c 0d 0e 10 0d 4c 44  52 52 37 2c 72 65 73 0d  |cl....LDRR7,res.|
00002440  0e 1a 12 53 54 52 42 52  36 2c 5b 52 37 2c 52 35  |...STRBR6,[R7,R5|
00002450  5d 0d 0e 24 04 0d 0e 2e  14 4c 44 4d 46 44 20 28  |]..$.....LDMFD (|
00002460  73 70 29 21 2c 7b 70 63  7d 0d 0e 38 04 0d 0e 42  |sp)!,{pc}..8...B|
00002470  0d 2e 63 6c 3a 45 51 55  44 30 0d 0e 4c 0d 2e 78  |..cl:EQUD0..L..x|
00002480  70 3a 45 51 55 44 30 0d  0e 56 0d 2e 79 70 3a 45  |p:EQUD0..V..yp:E|
00002490  51 55 44 30 0d 0e 60 0d  2e 76 78 3a 45 51 55 44  |QUD0..`..vx:EQUD|
000024a0  30 0d 0e 6a 0d 2e 76 79  3a 45 51 55 44 30 0d 0e  |0..j..vy:EQUD0..|
000024b0  74 0d 2e 61 6d 3a 45 51  55 44 30 0d 0e 7e 0d 2e  |t..am:EQUD0..~..|
000024c0  63 78 3a 45 51 55 44 30  0d 0e 88 0d 2e 63 79 3a  |cx:EQUD0.....cy:|
000024d0  45 51 55 44 30 0d 0e 92  0e 2e 63 78 76 3a 45 51  |EQUD0.....cxv:EQ|
000024e0  55 44 30 0d 0e 9c 0e 2e  63 79 76 3a 45 51 55 44  |UD0.....cyv:EQUD|
000024f0  30 0d 0e a6 04 0d 0e b0  04 0d 0e ba 04 0d 0e c4  |0...............|
00002500  04 0d 0e ce 04 0d 0e d8  0f 2e 57 61 69 74 3a 45  |..........Wait:E|
00002510  51 55 44 30 0d 0e e2 23  2e 73 63 72 3a 45 51 55  |QUD0...#.scr:EQU|
00002520  44 31 34 38 3a 45 51 55  44 36 3a 45 51 55 44 37  |D148:EQUD6:EQUD7|
00002530  3a 45 51 55 44 2d 31 0d  0e ec 20 2e 72 65 73 3a  |:EQUD-1... .res:|
00002540  45 51 55 44 30 3a 45 51  55 44 30 3a 45 51 55 44  |EQUD0:EQUD0:EQUD|
00002550  30 3a 45 51 55 44 30 0d  0e f6 07 20 5d ed 0d 0f  |0:EQUD0.... ]...|
00002560  00 24 20 c8 99 22 4f 53  5f 52 65 61 64 56 64 75  |.$ .."OS_ReadVdu|
00002570  56 61 72 69 61 62 6c 65  73 22 2c 73 63 72 2c 72  |Variables",scr,r|
00002580  65 73 0d 0f 0a 05 e1 0d  0f 14 04 0d 0f 1e 0f dd  |es..............|
00002590  20 f2 6d 61 69 6e 6d 65  6e 75 0d 0f 28 2b 20 eb  | .mainmenu..(+ .|
000025a0  20 31 35 3a 87 3a c8 99  22 4f 53 5f 52 65 61 64  | 15:.:.."OS_Read|
000025b0  56 64 75 56 61 72 69 61  62 6c 65 73 22 2c 73 63  |VduVariables",sc|
000025c0  72 2c 72 65 73 0d 0f 32  25 20 f1 8a 31 37 2c 31  |r,res..2% ..17,1|
000025d0  29 3b 22 20 4d 61 69 6e  20 4d 65 6e 75 20 20 20  |);" Main Menu   |
000025e0  28 48 6f 6e 65 73 74 21  29 22 0d 0f 3c 09 20 fb  |(Honest!)"..<. .|
000025f0  20 31 32 0d 0f 46 27 20  f1 8a 31 35 2c 35 29 3b  | 12..F' ..15,5);|
00002600  22 4f 70 74 69 6f 6e 73  20 20 20 20 20 20 28 4e  |"Options      (N|
00002610  6f 74 20 6d 61 6e 79 21  29 22 0d 0f 50 2a 20 f1  |ot many!)"..P* .|
00002620  8a 31 37 2c 36 29 3b 22  31 2e 20 46 61 73 74 65  |.17,6);"1. Faste|
00002630  72 20 74 68 61 6e 20 4e  6f 72 6d 61 6c 20 28 46  |r than Normal (F|
00002640  54 4e 29 22 0d 0f 5a 2f  20 f1 8a 31 37 2c 37 29  |TN)"..Z/ ..17,7)|
00002650  3b 22 32 2e 20 4e 6f 72  6d 61 6c 20 53 70 65 65  |;"2. Normal Spee|
00002660  64 20 28 6f 6c 64 65 72  20 6d 61 63 68 69 6e 65  |d (older machine|
00002670  73 29 22 0d 0f 64 2d 20  f1 8a 31 37 2c 38 29 3b  |s)"..d- ..17,8);|
00002680  22 33 2e 20 52 69 73 63  50 43 20 53 70 65 65 64  |"3. RiscPC Speed|
00002690  20 28 4e 65 77 20 6d 61  63 68 69 6e 65 73 29 22  | (New machines)"|
000026a0  0d 0f 6e 09 20 fb 20 31  31 0d 0f 78 2a 20 f1 8a  |..n. . 11..x* ..|
000026b0  31 35 2c 31 30 29 3b 22  50 72 6f 67 72 61 6d 73  |15,10);"Programs|
000026c0  20 20 20 20 20 28 4a 75  73 74 20 61 20 46 65 77  |     (Just a Few|
000026d0  21 29 22 0d 0f 82 1f 20  f1 8a 31 37 2c 31 31 29  |!)".... ..17,11)|
000026e0  3b 22 41 2e 20 4d 6f 76  69 6e 67 20 71 75 69 6c  |;"A. Moving quil|
000026f0  74 22 0d 0f 8c 1e 20 f1  8a 31 37 2c 31 32 29 3b  |t".... ..17,12);|
00002700  22 42 2e 20 43 72 69 73  73 20 43 72 6f 73 73 22  |"B. Criss Cross"|
00002710  0d 0f 96 22 20 f1 8a 31  37 2c 31 33 29 3b 22 43  |..." ..17,13);"C|
00002720  2e 20 43 72 69 73 73 20  58 20 55 70 2f 44 6f 77  |. Criss X Up/Dow|
00002730  6e 22 0d 0f a0 1d 20 f1  8a 31 37 2c 31 34 29 3b  |n".... ..17,14);|
00002740  22 44 2e 20 53 6f 6d 65  74 68 69 6e 67 21 22 0d  |"D. Something!".|
00002750  0f aa 18 20 f1 8a 31 37  2c 31 35 29 3b 22 45 2e  |... ..17,15);"E.|
00002760  20 57 6f 6f 64 3f 22 0d  0f b4 26 20 f1 8a 31 37  | Wood?"...& ..17|
00002770  2c 31 36 29 3b 22 46 2e  20 33 44 20 49 6e 73 69  |,16);"F. 3D Insi|
00002780  64 65 20 50 79 72 61 6d  69 64 73 3f 22 0d 0f be  |de Pyramids?"...|
00002790  22 20 f1 8a 31 37 2c 31  37 29 3b 22 47 2e 20 53  |" ..17,17);"G. S|
000027a0  6f 6d 65 74 68 69 6e 67  20 45 6c 73 65 3f 22 0d  |omething Else?".|
000027b0  0f c8 1e 20 f1 8a 31 37  2c 31 38 29 3b 22 48 2e  |... ..17,18);"H.|
000027c0  20 54 75 62 65 73 20 4d  61 79 62 65 22 0d 0f d2  | Tubes Maybe"...|
000027d0  1a 20 f1 8a 31 37 2c 31  39 29 3b 22 49 2e 20 54  |. ..17,19);"I. T|
000027e0  77 69 72 6c 20 32 22 0d  0f dc 4b 20 f1 8a 37 2c  |wirl 2"...K ..7,|
000027f0  32 33 29 3b 22 54 77 69  72 6c 32 20 2d 20 48 69  |23);"Twirl2 - Hi|
00002800  20 52 65 73 20 2d 20 53  70 65 65 64 20 73 65 74  | Res - Speed set|
00002810  74 69 6e 67 73 20 77 69  6c 6c 20 6e 6f 74 20 61  |tings will not a|
00002820  66 66 65 63 74 20 74 68  69 73 20 70 72 6f 67 67  |ffect this progg|
00002830  79 22 0d 0f e6 08 20 fb  20 34 0d 0f f0 2a 20 f1  |y".... . 4...* .|
00002840  8a 31 35 2c 32 35 29 3b  22 57 72 69 74 74 65 6e  |.15,25);"Written|
00002850  20 62 79 20 56 69 6e 63  65 6e 74 20 42 75 63 6b  | by Vincent Buck|
00002860  6e 65 72 22 0d 0f fa 06  20 f5 0d 10 04 12 20 20  |ner".... .....  |
00002870  77 24 3d bf 28 2e 30 30  30 30 31 29 0d 10 0e 15  |w$=.(.00001)....|
00002880  20 20 e7 20 77 24 3d 22  31 22 20 8c 20 6e 25 3d  |  . w$="1" . n%=|
00002890  31 0d 10 18 15 20 20 e7  20 77 24 3d 22 32 22 20  |1....  . w$="2" |
000028a0  8c 20 6e 25 3d 32 0d 10  22 15 20 20 e7 20 77 24  |. n%=2..".  . w$|
000028b0  3d 22 33 22 20 8c 20 6e  25 3d 33 0d 10 2c 09 20  |="3" . n%=3..,. |
000028c0  20 fb 20 33 0d 10 36 27  20 20 e7 20 6e 25 3d 31  | . 3..6'  . n%=1|
000028d0  20 8c 20 f1 8a 32 31 2c  33 29 3b 22 53 70 65 65  | . ..21,3);"Spee|
000028e0  64 20 2d 20 46 54 4e 20  20 20 22 0d 10 40 27 20  |d - FTN   "..@' |
000028f0  20 e7 20 6e 25 3d 32 20  8c 20 f1 8a 32 31 2c 33  | . n%=2 . ..21,3|
00002900  29 3b 22 53 70 65 65 64  20 2d 20 4e 6f 72 6d 61  |);"Speed - Norma|
00002910  6c 22 0d 10 4a 27 20 20  e7 20 6e 25 3d 33 20 8c  |l"..J'  . n%=3 .|
00002920  20 f1 8a 32 31 2c 33 29  3b 22 53 70 65 65 64 20  | ..21,3);"Speed |
00002930  2d 20 52 69 73 63 50 43  22 0d 10 54 09 20 20 fb  |- RiscPC"..T.  .|
00002940  20 37 0d 10 55 26 20 20  e7 20 77 24 3e 3d 22 61  | 7..U&  . w$>="a|
00002950  22 20 80 20 77 24 3c 3d  22 69 22 20 77 24 3d bd  |" . w$<="i" w$=.|
00002960  28 97 77 24 2d 33 32 29  0d 10 5e 18 20 fd 20 77  |(.w$-32)..^. . w|
00002970  24 3e 3d 22 41 22 20 80  20 77 24 3c 3d 22 49 22  |$>="A" . w$<="I"|
00002980  0d 10 68 06 20 db 0d 10  72 2e 20 e7 20 77 24 3d  |..h. ...r. . w$=|
00002990  22 41 22 20 8c 20 74 79  70 65 25 3d 32 3a 21 57  |"A" . type%=2:!W|
000029a0  61 69 74 3d 73 70 65 65  64 28 6e 25 2c 31 29 3a  |ait=speed(n%,1):|
000029b0  d6 20 50 31 0d 10 7c 2e  20 e7 20 77 24 3d 22 42  |. P1..|. . w$="B|
000029c0  22 20 8c 20 74 79 70 65  25 3d 32 3a 21 57 61 69  |" . type%=2:!Wai|
000029d0  74 3d 73 70 65 65 64 28  6e 25 2c 32 29 3a d6 20  |t=speed(n%,2):. |
000029e0  50 32 0d 10 86 2e 20 e7  20 77 24 3d 22 43 22 20  |P2.... . w$="C" |
000029f0  8c 20 74 79 70 65 25 3d  32 3a 21 57 61 69 74 3d  |. type%=2:!Wait=|
00002a00  73 70 65 65 64 28 6e 25  2c 33 29 3a d6 20 50 33  |speed(n%,3):. P3|
00002a10  0d 10 90 2e 20 e7 20 77  24 3d 22 44 22 20 8c 20  |.... . w$="D" . |
00002a20  74 79 70 65 25 3d 32 3a  21 57 61 69 74 3d 73 70  |type%=2:!Wait=sp|
00002a30  65 65 64 28 6e 25 2c 34  29 3a d6 20 50 34 0d 10  |eed(n%,4):. P4..|
00002a40  9a 2e 20 e7 20 77 24 3d  22 45 22 20 8c 20 74 79  |.. . w$="E" . ty|
00002a50  70 65 25 3d 32 3a 21 57  61 69 74 3d 73 70 65 65  |pe%=2:!Wait=spee|
00002a60  64 28 6e 25 2c 35 29 3a  d6 20 50 35 0d 10 a4 2e  |d(n%,5):. P5....|
00002a70  20 e7 20 77 24 3d 22 46  22 20 8c 20 74 79 70 65  | . w$="F" . type|
00002a80  25 3d 32 3a 21 57 61 69  74 3d 73 70 65 65 64 28  |%=2:!Wait=speed(|
00002a90  6e 25 2c 36 29 3a d6 20  50 36 0d 10 ae 2e 20 e7  |n%,6):. P6.... .|
00002aa0  20 77 24 3d 22 47 22 20  8c 20 74 79 70 65 25 3d  | w$="G" . type%=|
00002ab0  32 3a 21 57 61 69 74 3d  73 70 65 65 64 28 6e 25  |2:!Wait=speed(n%|
00002ac0  2c 37 29 3a d6 20 50 37  0d 10 b8 2e 20 e7 20 77  |,7):. P7.... . w|
00002ad0  24 3d 22 48 22 20 8c 20  74 79 70 65 25 3d 32 3a  |$="H" . type%=2:|
00002ae0  21 57 61 69 74 3d 73 70  65 65 64 28 6e 25 2c 38  |!Wait=speed(n%,8|
00002af0  29 3a d6 20 50 38 0d 10  c2 04 0d 10 cc 0f 20 e7  |):. P8........ .|
00002b00  20 77 24 3d 22 49 22 20  8c 0d 10 d6 0b 20 20 eb  | w$="I" .....  .|
00002b10  32 31 3a 87 0d 10 e0 25  20 20 c8 99 22 4f 53 5f  |21:....%  .."OS_|
00002b20  52 65 61 64 56 64 75 56  61 72 69 61 62 6c 65 73  |ReadVduVariables|
00002b30  22 2c 73 63 72 2c 72 65  73 0d 10 ea 0d 20 20 74  |",scr,res....  t|
00002b40  79 70 65 25 3d 32 0d 10  f4 19 20 20 21 78 70 3d  |ype%=2....  !xp=|
00002b50  28 b3 28 31 35 30 29 2b  31 30 29 3c 3c 31 33 0d  |(.(150)+10)<<13.|
00002b60  10 fe 19 20 20 21 79 70  3d 28 b3 28 31 35 30 29  |...  !yp=(.(150)|
00002b70  2b 31 30 29 3c 3c 31 33  0d 11 08 13 20 20 21 76  |+10)<<13....  !v|
00002b80  78 3d b3 28 31 35 30 29  2b 34 30 0d 11 12 13 20  |x=.(150)+40.... |
00002b90  20 21 76 79 3d b3 28 31  35 30 29 2b 34 30 0d 11  | !vy=.(150)+40..|
00002ba0  1c 17 20 20 21 63 6c 3d  32 35 35 3a 21 61 6d 3d  |..  !cl=255:!am=|
00002bb0  b3 28 31 36 29 0d 11 26  21 20 20 21 63 78 3d b3  |.(16)..&!  !cx=.|
00002bc0  28 31 38 29 2b 32 39 30  3a 21 63 79 3d 32 33 30  |(18)+290:!cy=230|
00002bd0  2b b3 28 31 38 29 0d 11  30 19 20 20 21 63 78 76  |+.(18)..0.  !cxv|
00002be0  3d b3 28 38 29 3a 21 63  79 76 3d b3 28 38 29 0d  |=.(8):!cyv=.(8).|
00002bf0  11 3a 0b 20 20 63 74 72  3d 30 0d 11 44 07 20 20  |.:.  ctr=0..D.  |
00002c00  f5 0d 11 4e 0e 20 20 20  d6 20 74 77 69 72 6c 0d  |...N.   . twirl.|
00002c10  11 58 39 20 20 20 63 74  72 2b 3d 31 3a e7 20 63  |.X9   ctr+=1:. c|
00002c20  74 72 3e 33 30 30 30 20  8c 20 63 74 72 3d 30 3a  |tr>3000 . ctr=0:|
00002c30  21 63 6c 2d 3d 31 3a e7  21 63 6c 3c 33 30 20 8c  |!cl-=1:.!cl<30 .|
00002c40  20 21 63 6c 3d 32 35 35  0d 11 62 0b 20 20 fd 20  | !cl=255..b.  . |
00002c50  31 3d 32 0d 11 6c 06 20  cd 0d 11 76 05 e1 0d 11  |1=2..l. ...v....|
00002c60  80 04 0d 11 8a 0c dd 20  f2 65 72 72 6f 72 0d 11  |....... .error..|
00002c70  94 0d 20 e7 20 9f 3d 31  37 20 8c 0d 11 9e 13 20  |.. . .=17 ..... |
00002c80  20 e7 20 74 79 70 65 25  3d 31 20 8c 20 e0 0d 11  | . type%=1 . ...|
00002c90  a8 1b 20 20 e7 20 74 79  70 65 25 3d 32 20 8c 20  |..  . type%=2 . |
00002ca0  74 79 70 65 25 3d 31 3a  e1 0d 11 b2 06 20 cd 0d  |type%=1:..... ..|
00002cb0  11 bc 0e 20 e7 20 9f 3c  3e 31 37 20 8c 0d 11 c6  |... . .<>17 ....|
00002cc0  0a 20 20 fb 20 32 33 0d  11 d0 07 20 20 f6 0d 11  |.  . 23....  ...|
00002cd0  da 14 20 20 f1 22 20 61  74 20 6c 69 6e 65 20 22  |..  ." at line "|
00002ce0  3b 9e 0d 11 e4 07 20 20  ee 0d 11 ee 07 20 20 e0  |;.....  .....  .|
00002cf0  0d 11 f8 06 20 e1 0d 12  02 05 e1 0d ff           |.... ........|
00002cfd