Obey <Obey$Dir>.!Boot

| Check we're on RISC OS 3.1+
IF ADFFS$OSVersion<&31000 THEN Error ADFFS requires RISC OS 3.10 or later

| No AutoVIDC on RISC OS 3.5+
Set ADFFS$AutoVIDC Y
IF ADFFS$OSVersion>=&35000 THEN Set ADFFS$AutoVIDC N

| Pre-req module requirements for ZLib on all RISC OS versions
SetEval ADFFS$CLib 1
RMEnsure SharedCLibrary 0.0 SetEval ADFFS$CLib 0
IF ADFFS$CLib THEN RMEnsure SharedCLibrary 5.17 RMLoad ADFFS:CLib
RMEnsure SharedCLibrary 5.17 Error CLib needs updating
UnSet ADFFS$CLib

| Pre-req module requirements for ZLib and ADFFS on RISC OS versions below 3.7
IF ADFFS$OSVersion<&37000 THEN RMEnsure CallASWI 0.02 RMLoad ADFFS:CallASWI
IF ADFFS$OSVersion<&37000 THEN RMEnsure CallASWI 0.02 Error 0 Failed to load CallASWI module

| RMKill ZLib on RISC OS Select as it's bugged
SetEval zlib$running 0
IF ADFFS$OSVersion>=&40000 AND ADFFS$OSVersion<&50000 THEN SetEval zlib$running 1
IF zlib$running THEN RMEnsure ZLib 0.00 SetEval zlib$running 0
IF zlib$running THEN RMKill ZLib
UnSet zlib$running

| Pre-req module requirments for ADFFS
RMEnsure ZLib 0.02 RMLoad ADFFS:ZLib
RMEnsure ZLib 0.02 Error Failed to load ZLib module
RMEnsure ADFS 0.00 RMLoad ADFFS:ADFS

| Update VProtect if it's running
SetEval vprotect$running 1
RMEnsure VProtect 0.0 SetEval vprotect$running 0
IF vprotect$running THEN RMEnsure VProtect 5.0 RMLoad ADFFS:extras.VProtect
UnSet vprotect$running

| Load USBJoystick on capable machines
SetEval ADFFS$Joystick 1
RMEnsure USBDriver 0.0 SetEval ADFFS$Joystick 0
IF ADFFS$Joystick THEN RMEnsure USBJoystick 0.13 RMLoad ADFFS:USBJoystick
UnSet ADFFS$Joystick

| Load AutoVIDC on IOC
IF ADFFS$AutoVIDC="Y" AND ADFFS$LCDGM="Y" THEN RMEnsure AutoVIDC 2.11 RMLoad ADFFS:AutoVIDC
Unset ADFFS$AutoVIDC

| Load the file system which isn't going to return
Obey -c ADFFS:!Loader