IF "<Obey$Dir>"="@" THEN Set Obey$Dir ADFS::0.$.!Squash

set Squash$Dir <Obey$Dir>
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory 13 80 ELSE ScreenSize 80
RMAFree 200
RMEnsure QTMTracker   1.43 RMLoad ADFFS:trackers.QTMModule
RMEnsure MusicModule2 0.02 RMLoad ADFFS:trackers.MusMod2
Mus2QTM_Linear_Effects
Set JSflag 0
IF ADFFS$OSVersion<&50000 THEN RMEnsure Joystick 0.0 Set JSflag 1
IF JSflag>0 THEN RMLoad ADFFS:extras.JoyMod

run <Squash$Dir>.squashmus

wimpslot -min 513k -max 513k
LOAD <Squash$Dir>.squashload
ADFCRC 8000 10C1F 69CFC928 Squashload
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT 0
| Unsquash
MEMA 8004 EF000011 >109CC E1A00000
GO 8000
| Set stack to &88000 so we can place corrective code
MEMA 86DC E3A0D922
| Fix bug in intro EventV code which presumes R3=&3200000
MEMA 8344 E3A01922 >87E4 E3A01922 >88000 E3300004 11B0F00E E92D5FFF E3A03632 EAFE06D9
| Correct JoyMod Joystick code
MEMA 9BCC 6A000002 >9BD4 13100A01 1A000025 EF0EFFC2 E3300000 1A000005 EF0EFFC0 E1A01000 >9BF4 E1800001
| Exit so we can patch the main game
MEMA 8814 EF000011
GO 8008

LOAD <Squash$Dir>.Squashgame 8000
| Unsquash
MEMA 8004 EF000011 >382C4 E1A00000
GO 8000
| Fix bug in IRQ handler, which doesn't preserve IRQ R14 on entry
MEMA 16C28 E52DE004 E1A0400F E3845003 E335F000 >16E14 E49DF004
MEMA 16CB8 EF0EFFC2 E3300000 1A00000D EF0EFFC0 E1A00000 | Fix Joy0
MEMA 16D80 EF0EFFC2 E3300000 1A00000D EF0EFFC1 E1A00000 | Fix Joy1
GO 8008

IF ADFFS$CPUID>=&A10 THEN GOARM3JIT
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory
IF JSflag>0 THEN RMEnsure Joystick 0.0 Set JSflag 0
IF JSflag>0 THEN RMKill Joystick
Unset JSflag
RMKill MusicModule2
RMKill QTMTracker
Unset Squash$Dir