' You can edit/alter this program til the cows come home for all I care.
' All I ask is that you leave the P.D/Copyright notice on the screen.
'
' Just press the key on the button (or click on the button with mouse key 1)
' to activate that button's menu.
'
' Click Mouse Key 2 to toggle between each column.
'
' All the calculations are precise to the button positions of this screen
' so if you want to alter the button positions then check the calculations
' before altering the button positions.
'
' Here are 2 useful ways to use this Loader -
'
' 1. Leave it like this (in Amos Basic) and call it 'Autoexec.Amos'
' for use with your Auto-Loading Ramos disk.
'
' 2. Compile it and then Execute it in your Startup-Sequence
' for use with your Auto-Boot Disk.
'
' I've used the Z range of Variables and Arrays so its easier for you to merge
' this loader into your own program. I.e. Most people start using Variables
' and Arrays from the A (or AA,AB,AC/AA,BB,CC etc) range before using the Z
' range in their programs. This loader has left you Variables ZS to ZZ to use.
' It's used Variables ZA to ZQ, Z and ZZ$. It's used Arrays ZR and Z$.
'
Close Editor : Screen Open 0,640,275,8,Hires : Curs Off : Screen Hide 0 : Get Sprite Palette : Flash Off : Cls 0 : Screen Display 0,128,33,640,275 : Screen Offset 0,0,0 : Paste Bob 0,7,3 : Paste Bob 320,7,4 : Dim Z$(17) : Dim ZR(7)
For Z=44 To 236 Step 24 : Paste Bob 8,Z,1 : Paste Bob 320,Z,1 : Next Z : Paper 3 : ZA=0 : For Z=6 To 30 Step 3 : Print At(2,Z);Z$(ZA);At(41,Z);Z$(ZA+9) : ZA=ZA+1 : Next Z : ZG=0 : ZH=0 : ZN=0
Paper 0 : Print At(8,6);"Text Reader";At(8,9);"IFF loader";At(8,12);"Packed Screen Loader";At(8,15);"PPMore File Loader";At(8,18);"Load Favourite Game";At(8,21);"Load a Amos Program" : Paper 7 : Print At(1,2);"You could use this space for your Logo"
Paper 0 : Print At(4,32);"Amos Loader is Public Domain - (c) John White, 1993. All rights reserved."
Limit Mouse 138,77 To 138,283 : X Mouse=138 : For Z=0 To 7 : ZR(Z)=Colour(Z) : Colour Z,0 : Next Z : Screen Show 0 : Fade 1,ZR(0),ZR(1),ZR(2),ZR(3),ZR(4),ZR(5),ZR(6),ZR(7) : Wait 15 : Paper 6
3
ZQ=1 : Reserve Zone 18 : For Z=44 To 236 Step 24 : Set Zone ZQ,6,Z To 38,Z+14 : ZQ=ZQ+1 : Next Z : For Z=44 To 236 Step 24 : Set Zone ZQ,320,Z To 350,Z+14 : ZQ=ZQ+1 : Next Z
4
ZZ$=Inkey$ : ZA=Scancode : ZB=Mouse Zone : ZC=Mouse Click : ZD=X Mouse : If ZC=0 and ZA<1 or ZA>9 Then If ZA<80 or ZA>88 Then Goto 4
If ZA=80 or ZB=1 and ZC=1 Then Paste Bob 8,44,2 : Wait Vbl : Print At(2,6);"F1"
If ZA=81 or ZB=2 and ZC=1 Then Paste Bob 8,68,2 : Wait Vbl : Print At(2,9);"F2"
If ZA=82 or ZB=3 and ZC=1 Then Paste Bob 8,92,2 : Wait Vbl : Print At(2,12);"F3"
If ZA=83 or ZB=4 and ZC=1 Then Paste Bob 8,116,2 : Wait Vbl : Print At(2,15);"F4"
If ZA=84 or ZB=5 and ZC=1 Then Paste Bob 8,140,2 : Wait Vbl : Print At(2,18);"F5"
If ZA=85 or ZB=6 and ZC=1 Then Paste Bob 8,164,2 : Wait Vbl : Print At(2,21);"F6"
If ZA=86 or ZB=7 and ZC=1 Then Paste Bob 8,188,2 : Wait Vbl : Print At(2,24);"F7"
If ZA=87 or ZB=8 and ZC=1 Then Paste Bob 8,212,2 : Wait Vbl : Print At(2,27);"F8"
If ZA=88 or ZB=9 and ZC=1 Then Paste Bob 8,236,2 : Wait Vbl : Print At(2,30);"F9"
If ZA=1 or ZB=10 and ZC=1 Then Paste Bob 320,44,2 : Wait Vbl : Print At(41,6);"01"
If ZA=2 or ZB=11 and ZC=1 Then Paste Bob 320,68,2 : Wait Vbl : Print At(41,9);"02"
If ZA=3 or ZB=12 and ZC=1 Then Paste Bob 320,92,2 : Wait Vbl : Print At(41,12);"03"
If ZA=4 or ZB=13 and ZC=1 Then Paste Bob 320,116,2 : Wait Vbl : Print At(41,15);"04"
If ZA=5 or ZB=14 and ZC=1 Then Paste Bob 320,140,2 : Wait Vbl : Print At(41,18);"05"
If ZA=6 or ZB=15 and ZC=1 Then Paste Bob 320,164,2 : Wait Vbl : Print At(41,21);"06"
If ZA=7 or ZB=16 and ZC=1 Then Paste Bob 320,188,2 : Wait Vbl : Print At(41,24);"07"
If ZA=8 or ZB=17 and ZC=1 Then Paste Bob 320,212,2 : Wait Vbl : Print At(41,27);"08"
If ZA=9 or ZB=18 and ZC=1 Then Paste Bob 320,236,2 : Wait Vbl : Print At(41,30);"09"
If ZD=138 and ZC=2 or ZA=33 Then Limit Mouse 294,77 To 294,283 : X Mouse=294
If ZD=294 and ZC=2 or ZA=32 Then Limit Mouse 138,77 To 138,283 : X Mouse=138
If ZA>0 Then Gosub 5 : Gosub 9
If ZB>0 and ZC=1 Then Gosub 7 : Gosub 9
Goto 4
5
If ZH=1 Then ZP=ZA : If ZP=ZM Then ZH=0 : Paper 6 : Paste Bob ZK,ZJ,2 : Wait Vbl : If ZM=>80 and ZM<89 Then Print At(2,ZL);Z$(ZM-80) Else Print At(41,ZL);Z$(ZM+8)
If ZH=1 and ZP<>ZM Then ZH=0 : Paper 3 : Paste Bob ZK,ZJ,1 : Wait Vbl : If ZM=>80 and ZM<89 Then Print At(2,ZL);Z$(ZM-80) Else Print At(41,ZL);Z$(ZM+8)
ZM=ZA : If ZH=0 and ZN=1 and ZM-79<>ZE or ZH=0 and ZN=1 and ZM+9<>ZE Then Gosub 8 : Paper 3 : Paste Bob ZF,ZI,1 : Wait Vbl : If ZE<10 Then Print At(2,ZE*3+3);Z$(ZE-1) Else Print At(41,ZE*3-24);Z$(ZE-1)
If ZH=0 and ZN=1 and ZM-79=ZE or ZH=0 and ZN=1 and ZM+9=ZE Then Gosub 8 : Paper 6 : Paste Bob ZF,ZI,2 : Wait Vbl : If ZE<10 Then Print At(2,ZE*3+3);Z$(ZE-1) Else Print At(41,ZE*3-24);Z$(ZE-1)
Gosub 6 : Add ZH,1 : Paper 6 : ZN=2 : Return
6
If ZA=80 or ZA=1 Then ZJ=44
If ZA=81 or ZA=2 Then ZJ=68
If ZA=82 or ZA=3 Then ZJ=92
If ZA=83 or ZA=4 Then ZJ=116
If ZA=84 or ZA=5 Then ZJ=140
If ZA=85 or ZA=6 Then ZJ=164
If ZA=86 or ZA=7 Then ZJ=188
If ZA=87 or ZA=8 Then ZJ=212
If ZA=88 or ZA=9 Then ZJ=236
If ZA=>80 and ZA<89 Then ZK=8 : ZL=ZA*3-234 Else ZK=320 : ZL=ZA*3+3
Return
7
If ZG=1 Then ZO=ZB : If ZO=ZE Then ZG=0 : Gosub 8 : Paper 6 : Paste Bob ZF,ZI,2 : Wait Vbl : If ZE<10 Then Print At(2,ZE*3+3);Z$(ZE-1) Else Print At(41,ZE*3-24);Z$(ZE-1)
If ZG=1 and ZO<>ZE Then ZG=0 : Gosub 8 : Paper 3 : Paste Bob ZF,ZI,1 : Wait Vbl : If ZE<10 Then Print At(2,ZE*3+3);Z$(ZE-1) Else Print At(41,ZE*3-24);Z$(ZE-1)
ZF=X Screen(ZD)-12 : ZE=ZB : If ZG=0 and ZN=2 and ZE<>ZM-79 or ZG=0 and ZN=2 and ZE<>ZM+9 Then Paper 3 : Paste Bob ZK,ZJ,1 : Wait Vbl : If ZM=>80 and ZM<89 Then Print At(2,ZL);Z$(ZM-80) Else Print At(41,ZL);Z$(ZM+8)
If ZG=0 and ZN=2 and ZE=ZM-79 or ZG=0 and ZN=2 and ZE=ZM+9 Then Paper 6 : Paste Bob ZK,ZJ,2 : Wait Vbl : If ZM=>80 and ZM<89 Then Print At(2,ZL);Z$(ZM-80) Else Print At(41,ZL);Z$(ZM+8)
Add ZG,1 : Paper 6 : ZN=1 : Return
8
If ZE=1 or ZE=10 Then ZI=44
If ZE=2 or ZE=11 Then ZI=68
If ZE=3 or ZE=12 Then ZI=92
If ZE=4 or ZE=13 Then ZI=116
If ZE=5 or ZE=14 Then ZI=140
If ZE=6 or ZE=15 Then ZI=164
If ZE=7 or ZE=16 Then ZI=188
If ZE=8 or ZE=17 Then ZI=212
If ZE=9 or ZE=18 Then ZI=236
Return
9
If ZB>0 and ZC=1 Then Gosub 10+ZB
If ZA=>80 and ZA<89 Then Gosub ZA-69
If ZA=>1 and ZA<10 Then Gosub 19+ZA
Return
11
Print At(1,32); : Cline : Print "You pressed ";Z$(0);" or the Mouse Key" : Return
12
Print At(1,32); : Cline : Print "You pressed ";Z$(1);" or the Mouse Key" : Return
13
Print At(1,32); : Cline : Print "You pressed ";Z$(2);" or the Mouse Key" : Return
14
Print At(1,32); : Cline : Print "You pressed ";Z$(3);" or the Mouse Key" : Return
15
Print At(1,32); : Cline : Print "You pressed ";Z$(4);" or the Mouse Key" : Return
16
Print At(1,32); : Cline : Print "You pressed ";Z$(5);" or the Mouse Key" : Return
17
Print At(1,32); : Cline : Print "You pressed ";Z$(6);" or the Mouse Key" : Return
18
Print At(1,32); : Cline : Print "You pressed ";Z$(7);" or the Mouse Key" : Return
19
Print At(1,32); : Cline : Print "You pressed ";Z$(8);" or the Mouse Key" : Return
20
Print At(1,32); : Cline : Print "You pressed ";Z$(9);" or the Mouse Key" : Return
21
Print At(1,32); : Cline : Print "You pressed ";Z$(10);" or the Mouse Key" : Return
22
Print At(1,32); : Cline : Print "You pressed ";Z$(11);" or the Mouse Key" : Return
23
Print At(1,32); : Cline : Print "You pressed ";Z$(12);" or the Mouse Key" : Return
24
Print At(1,32); : Cline : Print "You pressed ";Z$(13);" or the Mouse Key" : Return
25
Print At(1,32); : Cline : Print "You pressed ";Z$(14);" or the Mouse Key" : Return
26
Print At(1,32); : Cline : Print "You pressed ";Z$(15);" or the Mouse Key" : Return
27
Print At(1,32); : Cline : Print "You pressed ";Z$(16);" or the Mouse Key" : Return
28
Print At(1,32); : Cline : Print "You pressed ";Z$(17);" or the Mouse Key" : Return