IF "<Obey$Dir>"="@" THEN Set Obey$Dir ADFS::0.$.!LdrBoard
WimpSlot -min 580k -max 580k
LOAD <Obey$Dir>.!RunImage 8000
ADFCRC 8000 14A0C A94D1754 !RunImage
HideCommandWindow
IF ADFFS$CPUID>=&A10 THEN ADFRemapVideoMemory 12 80 ELSE ScreenSize 80
SpriteFree 280
RMEnsure WFS 0.0 RMLoad ADFFS:trackers.WFS
StoreCSD
Dir <Obey$Dir>
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT 0
ECHO <22><12><21>
FX 200,3
| Decode the BASIC file
LOAD !RunImage 80000
MEMA 80010 E24F091E E1A00000 >80044 EF000011
GO 80000
LOAD !RunImage 80000
MEMA 80010 E24F091E E2800044 >80044 EF000011
GO 80000
LOAD !RunImage 80000
MEMA 80010 E24F091E E2800088 >80044 EF000011
GO 80000
MEMA 82D4 EF000011
GO 80CC
LOAD !RunImage 80000
MEMA 80010 E3A00C83 E2800014 >80044 EF000011
GO 80000
LOAD !RunImage 80000
MEMA 80010 E3A00C83 E2800058 >80044 EF000011
GO 80000
LOAD !RunImage 80000
MEMA 80010 E3A00C83 E280009C >80044 EF000011
GO 80000
MEMA 83FC EF000011
GO 83C8
MEMA 17024 EF000011
GO 17000
| Now add some pacing
KEY 0 PAGE=&9000|MOLD|M20050DEFPROCw(w%):w%=TIME+w%/133:REPEATUNTILTIME>w%:ENDPROC|M1205IF normalsound=FALSE THEN SOUND2,-4,2000,1:PROCw(800):SOUND2,-4,2000,1:ENDPROC|M1210SOUND2,-15,120,30:PROCw(1200)|M1220SOUND2,-15,100,30:PROCw(1200)|M
KEY 1 1225SOUND2,-15,130,30:PROCw(1200)|M1725PROCw(1000):GCOL0:PLOT&45,BX2,BY2:PROCw(1000)|M2140PP3=PP3+.05:PP=PP+4:PROCw(700)|M2154PP3=PP3+.05:PP=PP+4:PROCw(700)|M2161PROCw(1000)|M2180PROCw(650)|M2270PROCw(300)|M2510PROCw(100):NEXT J:NEXT T|M
KEY 2 2496IF X3>940 OR BSZ2=0 THEN PROCw(10000):ENDPROC|M2520PROCw(200)|M4240COLOUR5:PRINTTAB(38,22);CLUB$(CLB):SOUND1,-15,100,1:PROCw(7000):GOTO4147|M4677SYS6,113,1:SYS6,112,1:MOUSEON2:PROCw(9000):VDU 26:GOTO 4590|M6620PROCw(900)|M6690PROCw(800)|M
KEY 3 4792IF CL$<"E" THEN MOUSEON0:COLOUR138:COLOUR6:PRINTTAB(6,9);"You must change course letter":PRINTTAB(14,10);"Press a key":PROCw(6000)|M5753IF X<10 OR X>930 OR Y<10 OR Y>950 THEN SOUND1,-15,60,10:PROCw(5000):SOUND1,-15,50,10:SHO(PL)=SH:GOTO5290|M
KEY 4 5790IF ABS(H)<.1AND ABS(VP)<.04AND ABS(HP)<.16THEN!(shad%+24)=0:CALLshadow:MOUSEON0:PROCholed:HOLED=1:PROCw(5000):GOTO5810|M5810IF X<10 OR X>930 OR Y<10 OR Y>950 THEN SOUND1,-15,60,10:PROCw(5000):SOUND1,-15,50,10:SHO(PL)=SH:GOTO5290|M
KEY 5 6720OSCLI("*SCHOOSE MN23"):GCOL8,0:PLOT&ED,336,40:PROCw(D)|M6730OSCLI("*SCHOOSE MN24"):GCOL8,0:PLOT&ED,336,40:PROCw(D)|M6740OSCLI("*SCHOOSE MN23"):GCOL8,0:PLOT&ED,336,40:PROCw(D)|M6750OSCLI("*SCHOOSE MN22"):GCOL8,0:PLOT&ED,336,40:PROCw(D)|M
KEY 6 6850IF HA=0 THEN PROCw(DS*.55) ELSE PROCw(500)|M7110IF FR=0 THEN OSCLI("*SCHOOSE MN25"):GCOL 8,0:PLOT &ED,336,40:FR=1:PROCw(2000)|M7120IF FR=1 THEN OSCLI("*SCHOOSE MN26"):GCOL 8,0:PLOT &ED,336,40:FR=2:PROCw(2000)|M
| Add a key debounce
KEY 7 5820REPEAT:MOUSE BX2,BY2,Z:UNTIL Z=0|M*UnSet Key$*|MRUN|F|M

FX 225,1
FX 21,0
FX 138,0,128
FX 138,0,129
FX 138,0,130
FX 138,0,131
FX 138,0,132
FX 138,0,133
FX 138,0,134
FX 138,0,135
BASIC
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT
IF ADFFS$CPUID>=&A10 THEN ADFRemapVideoMemory
RMEnsure WFS 1.32 Set kill$WFS 1
IF "<kill$WFS>"="" THEN RMKill WFS
UnSet kill$WFS
RestoreCSD