StoreCSD
DIR ADFS::0.$
HideCommandWindow
Set Alias$L. LOAD %%0
Set Alerion$Dir ADFS::0.$.!BOOT
RMAFree 200
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory 13 160 ELSE ScreenSize 160

WimpSlot -min 512k -max 512k
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT 0
IF ADFFS$OSVersion>=&35000 THEN ADFEmulateRISCOS 2.00

ADFVoices 4
RMEnsure BANG 1.23 RMLoad <Alerion$Dir>.SBANG
RMEnsure MORT 1.23 RMLoad <Alerion$Dir>.SMORT
RMEnsure WAVE 1.23 RMLoad <Alerion$Dir>.SWAVE
RMEnsure HOME 1.23 RMLoad <Alerion$Dir>.SHOME

PRINT <Alerion$Dir>.Font
ADFJoystickKeys J1 R=79 L=78 U=70 D=87 B1=71 B2=94
| X/Right     - Right
| Z/Left      - Left
| //Down      - Down
| '/Up        - Up
| RETURN/B1   - Fire
| ALT/B2      - Alternate fire

| Fix bug in event handler, which doesn't check for event 4
ECHO <21>
KEY 0 1121P%=&29168:[OPT 0:TEQ R0,#4:MOVNE PC,R14:LDR R0,&29160:SUBS R0,R0,#1:MOVEQ R0,#3:STR R0,&29160:MOV R0,#4:MOVEQ PC,R14:STMFD R13!,{R0-R12,R14}:LDR R14,&29164:LDR R14,[R14,#0]|M
KEY 1 1122LDR R0,&29154:SUB R0,R14,R0:LDR R5,&2915C:ADD R0,R0,R5:CMP R0,R14:SUBGE R0,R0,#&14000:LDR R1,&29158:SUB R1,R14,R1:MOV R2,#240:.L%|M1123
KEY 2 LDMIA R0!,{R3-R12}:STMIA R1!,{R3-R12}:
KEY 3 |M1124LDMIA R0!,{R3-R6}:STMIA R1!,{R3-R6}:ADD R0,R0,#&40:ADD R1,R1,#&40:CMP R0,R14:SUBGE R0,R0,#&14000:SUBS R2,R2,#1:BNE L%:LDMFD R13!,{R0-R12,PC}:]|M
KEY 4 431P%=&11490:[TEQ R0,#4:MOVNE PC,R14:STMFD R13!,{R0-R12,R14}:LDR R12,&1142C:LDR R11,&11430:MOV R9,#560:.L% LDMIA R12!,{R0-R7}:STMIA R11!,{R0-R7}:SUBS R9,R9,#1:BNE L%:B&1229C:]|M
| Bugfix: Page Zero access - 26AC0
| Prevent modification of hardware vectors - 26B24
KEY 5 1125P%=&26AC0:[OPT0:LDR R0,&26AA4:LDRB R0,[R0]:]:P%=&26B24:[OPT0:B&26B38:]|M*UnSet key$*|MRUN|F|M

FX 225,1
FX 21,0
FX 138,0,128
FX 138,0,129
FX 138,0,130
FX 138,0,130
FX 138,0,130
FX 138,0,130
FX 138,0,130
FX 138,0,130
FX 138,0,131
FX 138,0,132
FX 138,0,133
BASIC -load <Alerion$Dir>.MENU
ADFJoystickKeys
Unset Alias$L.
RMKill BANG
RMKill MORT
RMKill WAVE
RMKill HOME
IF ADFFS$CPUID>=&A10 THEN GOARM3JIT
IF ADFFS$OSVersion>=&35000 THEN ADFRemapVideoMemory
IF ADFFS$OSVersion>=&35000 THEN ADFEmulateRISCOS
UnSet Alerion$Dir
ADFVoices 8
RestoreCSD