| Game can only run from floppy
IfThere <Obey$Dir>.F1031801 THEN ADFMount <Obey$Dir>.F1031801
IF "<Obey$Dir>"="@" THEN Set Obey$Dir ADFS::MASTER.$.!SALOON
Set SALOON$DIR <Obey$Dir>
Set SALOON2$DIR <SALOON$DIR>.<160>
Set SALOON3$DIR $
RMAFree 200K
FontFree 16K
IF ADFFS$OSVersion>=&35000 THEN WimpSlot -min 1500K -max 1500K ELSE WimpSlot -min 630K -max 1500K
LOAD <SALOON2$DIR>.ZFiler 10000
ADFCRC 10000 10C5C 5E19E7F8 ZFiler
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory 13 160 ELSE Screensize 160K
HideCommandWindow
StoreCSD
DIR <Obey$Dir>
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT 0
| Fix stack corruption in ZFiler
|  Load init code from disc
MEMA 10128 E3A0500C >10138 E2555001 1AFFFFFA EF020011
GO 10104
|  Fix stack corruption on Initialise
MEMA 10104 EA00000E >101D0 E8BD803F
|  Prevent hang on Terminate
MEMA 101FC EF020020 >1020C EF020020 >10220 EF020020 >10234 EF020020 >10244 EF020020 >10254 EF020020 >10258 E1A00000
|  Fix stack corruption in FindV handler
MEMA 1047C E92D40C0 >10498 08BDC0C0 >1049C E8BD80C0 >1051C E8BDC0C0
ADFInsertModule 10000 C5C
ECHO <22><13>
FX 112,2
FX 113,1
ADFScreenLoad <SALOON2$DIR>.SALOON
FX 112,1
FX 113,2
ADFPause 200
| Bug fix: Disc swap code relies on the bug above
KEY 0 860FORa%=1TO32:SYS&60184,,a%:NEXT:QUIT|MRUN|F|M
ECHO <21>
FX 225,1
FX 21,0
FX 138,0,128
BASIC -load <SALOON2$DIR>.OBJECT %*0

RMLOAD <SALOON2$DIR>.EN1
RMLOAD <SALOON2$DIR>.EN2
RMLOAD <SALOON2$DIR>.EN3
RMLOAD <SALOON2$DIR>.GEAR
RMLOAD <SALOON2$DIR>.SKID
RMLOAD <SALOON2$DIR>.SCREAM
RMLOAD <SALOON2$DIR>.THUD
RMLOAD <SALOON2$DIR>.HORN
PRINT <SALOON2$DIR>.RACECHAR
ADFClipScreen 5:4 0 22
ADFScreenBorders ON
| Fix illegal instructions
KEY 0 750FORa%=START% TO START%+MEMSIZE% STEP4:IF!a%=&E96D4000 THEN !a%=&E92D4000:NEXT ELSE NEXT|MRUN|F|M
ECHO <21>
FX 21,0
FX 138,0,128
BASIC -load <SALOON2$DIR>.RACE
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory
UnSet SALOON$DIR
UnSet SALOON2$DIR
UnSet SALOON3$DIR
UnSet Key$0
ADFScreenBorders OFF
ADFClipScreen
RestoreCSD