StoreCSD
DIR ADFS::0.$
HideCommandWindow
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory 15 160 ELSE ScreenSize 160
IF ADFFS$OSVersion>=&50000 THEN ADFEmulateRISCOS 3.11
IF ADFFS$OSVersion>=&50000 THEN ADFForceVSync 2

WimpSlot -min 640k -max 640k
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT 0
| Create fix-up code for delay code
MEMA A7000 E240E004 E92D5FFF E28F8070 E8B80003 E3300000 15801000 1AFFFFFB E8BD9FFF

| Add a timed key wait to the password screen
MEMA A7080 BD18 E3A00081 BD1C E3A01001 BD20 E3A02000 BD24 EF020006 BD28 E3320000 BD2C 0AFFFFFA BD30 E3A01000 BD34 E3A0200A BD38 EF020006

| Add a delay to the title screens
MEMA A7040 E92D0007 E3A00013 EF000006 E8BD0007 E2500001 EAFD8BFB
MEMA A70C8 A01C E3A00E34 A044 EA0273FD 0

| Bug fix: Relies on [R13] containing a return pointer when
|   code is called from BASIC
IF ADFFS$CPUID>=&A10 THEN JITMEMORYA 90A0 E92D0200 E92D4200

ADFScreenLoad ThunScreen
ECHO <23><1><0><0><0><0><0><0><0><0>
ADFPause 200

ADFJoystickKeys J1 U=70 D=87 L=78 R=79 B1=71 B2=88 B3=95
| Key     Joystick
| Z           - Left
| X           - Right
| @/"         - Up
| /           - Down
| Return  B1  - Fire
| Shift   B2  - Bomb
| SPACE   B3  - Start game

| Add in call to fix-up code
KEY 0 !(PAGE+&750)=&E8BD8100:P%=PAGE+&8C4:[MOV R1,#&08:STRB R1,PAGE+&371:LDR R1,[PC,#4]:STR R1,PAGE+&38C:B PAGE+&328:EQUD &EA02775B:]:P%=PAGE+&8AC:[B PAGE+&8C4:]|MThun=1:RUN|F|M

ECHO <21>
FX 225,1
FX 21,0
FX 138,0,128
BASIC -load ThundBoot
ADFJoystickKeys
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory
IF ADFFS$OSVersion>=&50000 THEN ADFEmulateRISCOS
IF ADFFS$OSVersion>=&50000 THEN ADFForceVSync 0
RestoreCSD