IF "<Obey$Dir>"="@" THEN Set Obey$Dir ADFS::Frak.$.!Frak
HideCommandWindow
IfThere <Boot$Dir>.Choices.GEKonfig.GEKonfig then set GEKonfig$App <Boot$Dir>.Choices.Gekonfig.GEkonfig
IF "<GEKonfig$Dir>" = "" OR "<GEK$Configure>" = "" OR "<GEKonfig$App>" = "" THEN IF "<Obey$Dir>" = "ADFS::Frak.$.!Frak" THEN Set GEKRAM 1

| Use a RAM drive for preferences, if it's not been installed to HD
IF "<GEKRAM>" = "1" THEN RAMFSFree 32
IF "<GEKRAM>" = "1" THEN COPY <Obey$Dir>.^.!FrakInst.GEKonfig.!GEKonfig.GEKonfig RAM::0.$.GEKonfig ~CFR~V
IF "<GEKRAM>" = "1" THEN COPY <Obey$Dir>.^.Prefs RAM::0.$.Prefs ~CFR~V
IF "<GEKRAM>" = "1" THEN Set GEKonfig$Dir RAM::0.$.GEKonfig
IF "<GEKRAM>" = "1" THEN Set GEK$Configure RAM::0.$.Prefs
IF "<GEKRAM>" = "1" THEN Set GEKonfig$App RAM::0.$.GEKonfig.GEkonfig

Set Frak97$Dir <Obey$Dir>
IF "<FrakFiles$Dir>" = "" then Set FrakFiles$Dir <Frak97$Dir>.^.levels
Set File$Type_0fb GEKData
Set File$Type_03b GEKPack
Set Frak$Continue TRUE
If "<GEK$Configure>" = "" Then Set GEK$Configure <Frak97$Dir>.^.Prefs

IfThere <Boot$Dir>.Choices.GEKonfig.GEKonfig THEN SET GEKonfig$Dir <Boot$Dir>.Choices.Gekonfig
IfThere <Boot$Dir>.Choices.GEKonfig.GEKonfig THEN  SET GEKonfig$App <Boot$Dir>.Choices.GEKonfig.GEKonfig

IfThere <GEK$Configure> then If "<GEKOnfig$Dir>" = "" Then Error GEKonfig resources can not be found. else Error Default preferences file not found, please double-click on a Prefs file to play Frak!
If "<Wimp$Scrap>" = "" Then Error Scrap resources can not be found.

RMEnsure QTMTracker 1.45 RMLoad ADFFS:trackers.QTMModule
IF ADFFS$OSVersion>=&50000 THEN ADFEmulateRISCOS 3.50
Wimpslot -min 1700k -max 1700k
| Bugfix: Page Zero access caused by incorrect Wimp_Initialise
KEY 0 30DIM E%36,N%64:!E%=11:E%!4=12:E%!8=4:E%!12=5:E%!16=-1:SYS49,E%,E%+20:SYS&400c0,200,&4b534154,"?":SYS&42701,8 TO L%:Q%=FNE:A%=(Q%+L%+3)AND-4:PROCE(A%+Z%):SYS8,16,E$,A%:IF!A%=&48535153 THEN G%=(A%+Z%+3)AND-4|MRUN|F|M
ECHO <21>
FX 225,1
FX 21,0
FX 138,0,128
BASIC -load <Frak97$Dir>.Resources.Intro
IF ADFFS$OSVersion>=&50000 THEN GOARM4JIT 0
RMLoad <Frak97$Dir>.Resources.Squash

| Bugfix: Tries to *SAVE <Wimp$Scrap> 0 0
LOAD <Frak97$Dir>.Resources.Init
ADFCRC 8000 9310 3267ECA5 Resources.Init
MEMA 8024 E3E00000 EF0600EF
GO 8000
KEY 0 60ENDIF:SYS131077,"Save |<Wimp$Scrap> 8000+0"TO;C:IFC=7THEN|M80ENDIF:QUIT|MRUN|F|M
ECHO <21>
FX 21,0
FX 138,0,128
BASIC -load @00009000,00009314

RMEnsure FastSpr 3.01 RMLoad <Frak97$Dir>.Resources.FastSpr
IF ADFFS$OSVersion<&50000 THEN RMEnsure SlowVideo 1.00 RMLoad <Frak97$Dir>.Resources.SlowVideo
<Frak97$Dir>.Resources.PackSpr
| Bugfix: Tries to *SAVE <Wimp$Scrap> 0 0
LOAD <Frak97$Dir>.Resources.Main
ADFCRC 8000 160A1 DD1834C2 Resources.Main
MEMA 8028 E1A00000
GO 8000
KEY 0 14520SYS131077,"Save "+Za$+" 8000+0"TO;lc%|M500QUIT|MRUN|F|M
ECHO <21>
FX 21,0
FX 138,0,128
BASIC -load @00009000,000160A0

QTMClear
QTMStop
Unset GEK$Configure
Unset Frak$Continue
FX 20
FX 21,0
IF ADFFS$OSVersion>=&50000 THEN GOARM4JIT
IF ADFFS$OSVersion>=&50000 THEN ADFEmulateRISCOS
RMKill QTMTracker
IF "<GEKRAM>" = "1" THEN REMOVE RAM::0.$.Prefs
IF "<GEKRAM>" = "1" THEN REMOVE RAM::0.$.GEKonfig.Data.Data
IF "<GEKRAM>" = "1" THEN REMOVE RAM::0.$.GEKonfig.Data.Frak
IF "<GEKRAM>" = "1" THEN REMOVE RAM::0.$.GEKonfig.Data.Inkey
IF "<GEKRAM>" = "1" THEN REMOVE RAM::0.$.GEKonfig.Data
IF "<GEKRAM>" = "1" THEN REMOVE RAM::0.$.GEKonfig.GEKonfig
IF "<GEKRAM>" = "1" THEN REMOVE RAM::0.$.GEKonfig
Unset GEKRAM