home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
17 Bit Software 1: Collection A
/
17Bit_Collection_A.iso
/
files
/
1069.dms
/
1069.adf
/
autoexec.amos
/
autoexec.amosSourceCode
next >
Wrap
AMOS Source Code
|
1989-08-17
|
24KB
|
904 lines
Rem
Rem Atic Atac (c) Neil Chinnery 1991
Rem
Dir$="ATIC:"
Close Workbench
Close Editor
Get Disc Fonts
Screen Open 0,320,200,16,Lowres
Rem
Procedure TITES
Dir$="ATIC:"
NEILS=Free
Load Iff "text",0
Rem Load "sptites.abk"
Screen Open 1,640,200,16,Lowres
Get Palette 0
Screen Hide 0
Hide
Curs Off
Flash Off
For F=0 To 15
SCO$(F)=Hex$(Colour(F),3)
Next F
Screen 1
Screen To Front 1
Cls 0
Screen Display 1,114,40,640,200
Screen 1
Cls 0
Screen Hide 1
Erase 3
Load "idea.abk"
Music 1
Paper 0
Cls 0
Double Buffer
LAB1:
Cls 0
Screen Show 1
Set Font 2
Paper 0
Ink 2,0
Text 120,170,"S - Start Game"
Text 120,190,"I - Instructions"
Bob 1,118,50,60
Bob 2,118,100,61
T$="Let R0=1; M: Let X=X+R0; If X<5 Jump A; If X>230 Jump B; Pause; Jump M;"
T$=T$+"A: Let R0=1; Pause; Jump M; B: Let R0=-1; Pause; Jump M"
U$="Let R0=-1; M: Let X=X+R0; If X<5 Jump A; If X>230 Jump B; Pause; Jump M;"
U$=U$+"A: Let R0=1; Pause; Jump M; B: Let R0=-1; Pause; Jump M"
Channel 1 To Bob 1
Channel 2 To Bob 2
Amal 1,T$
Amal 2,U$
Amal On
YFLAG=0
Repeat
NI$=Inkey$
If NI$="i" Then YFLAG=1
If NI$="s" Then YFLAG=2
Until YFLAG<>0
If YFLAG=2 Then Goto STRT
Cls 0
Bob Off 1
Bob Off 2
Amal Off
Text 70,10,"Welcome to Atic Atac"
Text 10,40," The idea of the game is quite simple."
Text 10,50," You are locked in a haunted house "
Text 10,60," and you must find the three parts"
Text 10,70," of a key that unlocks the door. "
Text 10,80," You must find them before you lose"
Text 10,90," all of your energy."
Text 10,100," To help you along the way you will"
Text 10,110," find various coloured keys that will"
Text 10,120," unlock certain doors. You can also"
Text 10,130," throw your weapon at the various"
Text 10,140," nasties that will appear."
Text 10,155," Movement is controlled by the"
Text 10,165," joystick and to pick up or drop "
Text 10,175," objects tap the space bar."
Text 10,195," Music On/Off is the N and M Keys"
While Inkey$=""
Wend
Goto LAB1
STRT:
Bob Off 1
Bob Off 2
Amal Off
Screen Close 1
Music Off
End Proc
Rem
Procedure INITGAME
Erase 3
Load "happy.abk"
Led Off
Rem Load "sprites.abk"
Get Sprite Palette
Screen Open 1,640,200,16,Lowres
Screen Open 3,320,200,16,Lowres
Screen Display 3,128,100,640,200
Screen Display 1,128,49,280,200
Screen 3
Curs Off
Flash Off
Hide
Screen To Front 1
Screen 1
Get Sprite Palette
Curs Off
Flash Off
Cls 0
Hide
Double Buffer
Screen 3
Get Palette 1
Cls 0
End Proc
Rem
Procedure DRROOM
F=Free
For F=0 To 63
Bob Off(F)
Next F
Amal Off
R$=Str$(ROOMNO)
R=Len(R$)
R$="R"+Right$(R$,R-1)
Restore R$
Read STAIRS,TRAP,TRGT,N,NC,S,SC,E,EC,W,WC
NASTIES=0
Cls 0
I=Rnd(15)
If I=0 or I=3 Then I=4
Ink(I)
If STAIRS>0 Then Goto STAIRS
Box 10,10 To 250,190
Box 30,30 To 230,170
Draw 10,10 To 30,30
Draw 230,170 To 250,190
Draw 250,10 To 230,30
Draw 10,190 To 30,170
If TRAP=1 Then Bob 5,120,80,18
If ROOMNO=48 Then Bob 59,229,60,53 : Bob 60,229,90,54
If(N>0) and(NC=1) Then Bob 1,120,0,1
If(S>0) and(SC=1) Then Bob 2,120,169,4
If(W>0) and(WC=1) Then Bob 3,0,80,5
If(E>0) and(EC=1) Then Bob 4,229,80,12
If(N>0) and(NC=2) Then Bob 1,120,0,2
If(S>0) and(SC=2) Then Bob 2,120,169,11
If(W>0) and(WC=2) Then Bob 3,0,80,6
If(E>0) and(EC=2) Then Bob 4,229,80,13
If(N>0) and(NC=3) Then Bob 1,120,0,20
If(S>0) and(SC=3) Then Bob 2,120,169,22
If(W>0) and(WC=3) Then Bob 3,0,80,23
If(E>0) and(EC=3) Then Bob 4,229,80,21
If(N>0) and(NC=4) Then Bob 1,120,0,28
If(S>0) and(SC=4) Then Bob 2,120,169,30
If(W>0) and(WC=4) Then Bob 3,0,80,31
If(E>0) and(EC=4) Then Bob 4,229,80,29
If(N>0) and(NC=5) Then Bob 1,120,0,24
If(S>0) and(SC=5) Then Bob 2,120,169,26
If(W>0) and(WC=5) Then Bob 3,0,80,27
If(E>0) and(EC=5) Then Bob 4,229,80,25
If(N>0) and(NC>0) and OPDRS(ROOMNO,1)=1 Then Bob 1,,,14
If(S>0) and(SC>0) and OPDRS(ROOMNO,2)=1 Then Bob 2,,,16
If(W>0) and(WC>0) and OPDRS(ROOMNO,3)=1 Then Bob 3,,,17
If(E>0) and(EC>0) and OPDRS(ROOMNO,4)=1 Then Bob 4,,,15
Goto ESTAIRS
STAIRS:
If STAIRS=1 Then Proc UPSTAIRS
If STAIRS=2 Then Proc DSTAIRS
ESTAIRS:
DRS=2
Amal Off
Bob 63,X,Y,SHAPE
Channel 3 To Bob 63
Amal 3,B$
For F=1 To 10
If OBJS(F,1)=ROOMNO Then Bob 5+F,OBJS(F,2),OBJS(F,3),OBS(F)
Next F
R=Rnd(99)+1
P=Rnd(3)+1
Q=Rnd(100)+50
V=Rnd(50)+50
If R<20 Then Bob 17,Q,V,(39+P)
FFLAG=0
If PERCENT(ROOMNO)=0 Then SCORE=SCORE+1 : PERCENT(ROOMNO)=1
Amal On 3
If STAIRS=1 or STAIRS=2 Then Goto EDROOM
If ROOMNO<51 or ROOMNO>75 Then Goto EDROOM
R=Rnd(99)+1
If R<80 Then Pop Proc
R=Rnd(4)+1
T=1
While R>1
Dec R
Q=Rnd(150)+50
V=Rnd(50)+50
U=Rnd(1)
Bob 30+T,Q,V,44+U
T=T+1
Wend
EDROOM:
End Proc
Rem
Procedure UPSTAIRS
Box 10,10 To 250,190
TLX=10
TLY=180
BLX=250
BLY=190
Repeat
Box TLX,TLY To BLX,BLY
Add TLX,5
TLY=TLY-10
Dec BLX
Dec BLX
Dec BLX
Dec BLX
Dec BLX
BLY=BLY-10
Until TLY=10
Bob 1,120,0,1
End Proc
Rem
Procedure DSTAIRS
Box 10,10 To 250,190
TLX=95
TLY=10
BLX=165
BLY=20
Repeat
Box TLX,TLY To BLX,BLY
TLX=TLX-5
TLY=TLY+10
BLX=BLX+5
BLY=BLY+10
Until TLY=180
Bob 2,120,169,4
End Proc
Rem
Procedure WEAPON
FFLAG=1
Channel 2 To Bob 62
X=X Bob(63)
Y=Y Bob(63)
Bob 62,X,Y,64
If Jright(1) Then Bob 62,X+20,Y,37
If Jleft(1) Then Bob 62,X-20,Y,37
If Jup(1) Then Bob 62,X,Y-20,37
If Jdown(1) Then Bob 62,X,Y+20,37
A$="Anim 0,(64,5)(65,5)(66,5)(67,5);"
A$=A$+"Let R2=0; If J1&1 Jump O; If J1&2 Jump N; L: If J1&4 Jump Q;"
A$=A$+"If J1&8 Jump P; U: If R1=0 Jump V; M: Let X=X+R0; Let Y=Y+R1;"
A$=A$+"If R2>3 Jump T;"
A$=A$+"E: If X>250 Jump A;"
A$=A$+"F: If X<10 Jump B;"
A$=A$+"G: If Y>190 Jump C;"
A$=A$+"H: If Y<10 Jump D;"
A$=A$+"Pause; Jump M; A: Let R0=-5; Let R2=R2+1; Jump F; B: Let R0=5; Let R2=R2+1; Jump G;"
A$=A$+"C: Let R1=-5; Let R2=R2+1; Jump H; D: Let R1=5; Let R2=R2+1; Jump M; O: Let R1=-5; Jump L;"
A$=A$+"N: Let R1=5: Jump L; Q: Let R0=-5; Jump U; P: Let R0=5; Jump U;"
A$=A$+"V: If R0=0 Jump W; Pause; Jump M; W: Let R1=5; Let R0=5; Pause; Jump M; T: Let R2=0"
Amal 2,A$
Amal On 2
Sam Play 1
End Proc
Rem
Procedure SETUPMAIN
B$="M: If J1&1 Jump O; If J1&2 Jump N; L: If J1&4 Jump Q;"
B$=B$+"If J1&8 Jump P;"
B$=B$+"F: If X>220 Jump A;"
B$=B$+"G: If X<20 Jump B;"
B$=B$+"H: If Y>150 Jump C;"
B$=B$+"K: If Y<10 Jump D;"
B$=B$+"Jump M; A: Let X=X-1; Jump H; B: Let X=X+1; Jump H;"
B$=B$+"C: Let Y=Y-1; Jump M; D: Let Y=Y+1; Jump M; O: Let Y=Y-1; Jump L;"
B$=B$+"N: Let Y=Y+1; Jump L; Q: Let X=X-1;Jump F; P: Let X=X+1; Jump F;"
End Proc
Rem
Procedure MVEBOB
If Fire(1) and FFLAG=0 Then Proc WEAPON
If Inkey$=" " and DROP=0 Then Goto PICKDROP
If Inkey$="n" and MP=0 Then MP=1 : Music 1 : Tempo 18
If Inkey$="m" and MP=1 Then MP=0 : Music Stop
If DROP>0 Then DROP=DROP-1
Pop Proc
PICKDROP:
DROP=2
C=Bob Col(63)
If C=0 Then Proc DROP : Pop Proc
F=6
FOUND=0
Repeat
If Col(F) Then FOUND=F
Inc F
Until F=17
If FOUND=0 Then Proc DROP : Pop Proc
If(FOUND-5)=5 or(FOUND-5)=6 Then Proc DROP : Pop Proc
F=BAG(3)
If F=1 Then RKEY=0
If F=2 Then BKEY=0
If F=3 Then YKEY=0
If F=4 Then GKEY=0
If F=0 Then BAG(3)=BAG(2) : BAG(2)=BAG(1) : Goto DROPPED
X=X Bob(63)
Y=Y Bob(63)
OBJS(F,1)=ROOMNO
OBJS(F,2)=X
OBJS(F,3)=Y
BAG(3)=BAG(2)
BAG(2)=BAG(1)
Bob 5+F,X,Y,OBS(F)
Proc DRBAG
DROPPED:
Bob Off FOUND
F=FOUND-5
BAG(1)=F
If F=1 Then RKEY=1
If F=2 Then BKEY=1
If F=3 Then YKEY=1
If F=4 Then GKEY=1
OBJS(F,1)=9999
OBJS(F,2)=0
OBJS(F,3)=0
Proc DRBAG
End Proc
Rem
Procedure DROP
F=BAG(3)
X=X Bob(63)
Y=Y Bob(63)
If F=1 Then RKEY=0
If F=2 Then BKEY=0
If F=3 Then YKEY=0
If F=4 Then GKEY=0
If F=0 Then BAG(3)=BAG(2) : BAG(2)=BAG(1) : BAG(1)=0 : Proc DRBAG : Pop Proc
OBJS(F,1)=ROOMNO
OBJS(F,2)=X
OBJS(F,3)=Y
EMPTY:
BAG(3)=BAG(2)
BAG(2)=BAG(1)
BAG(1)=0
Bob 5+F,X,Y,OBS(F)
Proc DRBAG
End Proc
Rem
Procedure CHWEAP
C=Bob Col(62)
If Not Chanmv(2) Then FFLAG=0 : Amal Off 2 : Bob Off 62
If C=0 Then Pop Proc
For F=20 To 28
If Col(F) Then Bob Off F : Amal Off(F-15)
Next F
End Proc
Rem
Procedure CHECKCOL
C=Bob Col(63)
If C=0 Then Pop Proc
If Col(17) Then Proc FOOD : Pop Proc
If Col(31) or Col(32) or Col(33) or Col(34) or Col(35) Then Proc ENERGYDOWN : Pop Proc
If Col(5) and DRS=1 Then Proc WOOSH : DETCOL=1 : X=120 : Y=80
If Col(20) or Col(21) or Col(22) or Col(23) or Col(24) or Col(25) or Col(26) or Col(27) or Col(28) Then Proc ENERGYDOWN : Pop Proc
If Col(5) and DRS=0 Then Pop Proc
If Col(1) and OPDRS(ROOMNO,1)=1 Then DETCOL=1 : Y=144 : X=120 : SHAPE=10 : ROOMNO=N : Pop Proc
If Col(2) and OPDRS(ROOMNO,2)=1 Then DETCOL=1 : Y=22 : X=120 : SHAPE=10 : ROOMNO=S : Pop Proc
If Col(3) and OPDRS(ROOMNO,3)=1 Then DETCOL=1 : X=204 : Y=80 : SHAPE=10 : ROOMNO=W : Pop Proc
If Col(4) and OPDRS(ROOMNO,4)=1 Then DETCOL=1 : X=28 : Y=80 : SHAPE=10 : ROOMNO=E : Pop Proc
If Col(1) and DRS=1 and NC=1 Then ROOMNO=N : DETCOL=1 : Y=144 : X=120 : SHAPE=10
If Col(2) and DRS=1 and SC=1 Then ROOMNO=S : DETCOL=1 : Y=22 : X=120 : SHAPE=10
If Col(3) and DRS=1 and WC=1 Then ROOMNO=W : DETCOL=1 : X=204 : Y=80 : SHAPE=10
If Col(4) and DRS=1 and EC=1 Then ROOMNO=E : DETCOL=1 : X=28 : Y=80 : SHAPE=10
If Col(1) and NC=2 and BKEY=1 Then DETCOL=1 : Y=144 : X=120 : SHAPE=10 : OPDRS(ROOMNO,1)=1 : ROOMNO=N
If Col(1) and NC=3 and RKEY=1 Then DETCOL=1 : Y=144 : X=120 : SHAPE=10 : OPDRS(ROOMNO,1)=1 : ROOMNO=N
If Col(1) and NC=4 and YKEY=1 Then DETCOL=1 : Y=144 : X=120 : SHAPE=10 : OPDRS(ROOMNO,1)=1 : ROOMNO=N
If Col(1) and NC=5 and GKEY=1 Then DETCOL=1 : Y=144 : X=120 : SHAPE=10 : OPDRS(ROOMNO,1)=1 : ROOMNO=N
If Col(2) and SC=2 and BKEY=1 Then DETCOL=1 : Y=22 : X=120 : SHAPE=10 : OPDRS(ROOMNO,2)=1 : ROOMNO=S
If Col(2) and SC=3 and RKEY=1 Then DETCOL=1 : Y=22 : X=120 : SHAPE=10 : OPDRS(ROOMNO,2)=1 : ROOMNO=S
If Col(2) and SC=4 and YKEY=1 Then DETCOL=1 : Y=22 : X=120 : SHAPE=10 : OPDRS(ROOMNO,2)=1 : ROOMNO=S
If Col(2) and SC=5 and GKEY=1 Then DETCOL=1 : Y=22 : X=120 : SHAPE=10 : OPDRS(ROOMNO,2)=1 : ROOMNO=S
If Col(3) and WC=2 and BKEY=1 Then DETCOL=1 : X=204 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,3)=1 : ROOMNO=W
If Col(3) and WC=3 and RKEY=1 Then DETCOL=1 : X=204 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,3)=1 : ROOMNO=W
If Col(3) and WC=4 and YKEY=1 Then DETCOL=1 : X=204 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,3)=1 : ROOMNO=W
If Col(3) and WC=5 and GKEY=1 Then DETCOL=1 : X=204 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,3)=1 : ROOMNO=W
If Col(4) and EC=2 and BKEY=1 Then DETCOL=1 : X=28 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,4)=1 : ROOMNO=E
If Col(4) and EC=3 and RKEY=1 Then DETCOL=1 : X=28 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,4)=1 : ROOMNO=E
If Col(4) and EC=4 and YKEY=1 Then DETCOL=1 : X=28 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,4)=1 : ROOMNO=E
If Col(4) and EC=5 and GKEY=1 Then DETCOL=1 : X=28 : Y=80 : SHAPE=10 : OPDRS(ROOMNO,4)=1 : ROOMNO=E
If(Col(59) or Col(60)) and(BAG(1)=7 and BAG(2)=8 and BAG(3)=9) Then FINISHED=1
End Proc
Rem
Procedure DROC
Add DRS,1,1 To 2
If DRS=2 Then Goto CDR
If NC=1 Then Bob 1,,,3
If SC=1 Then Bob 2,,,8
If EC=1 Then Bob 4,,,7
If WC=1 Then Bob 3,,,9
If TRAP=1 Then Bob 5,,,19
Goto EDRS
CDR:
If NC=1 Then Bob 1,,,1
If SC=1 Then Bob 2,,,4
If EC=1 Then Bob 4,,,12
If WC=1 Then Bob 3,,,5
If TRAP=1 Then Bob 5,,,18
EDRS:
End Proc
Rem
Procedure WOOSH
For F=1 To 63
Bob Off(F)
Next F
Cls 0
I=Rnd(15)
If I=0 or I=3 Then I=4
Ink(I)
Draw 130,0 To 130,200
Draw 190,0 To 190,200
Bob 63,145,0,SHAPE
A$="M 0,200,100"
Channel 1 To Bob 63
Amal 1,A$
Sam Play 2
Amal On 1
Repeat
AMFLAG=Chanmv(1)
Until AMFLAG=0
ROOMNO=TRGT
End Proc
Rem
Procedure DRBAG
Screen 3
For F=1 To 3
If BAG(F)>0 Then Paste Bob 70+(F*30),160,OBS(BAG(F))
If BAG(F)=0 Then Paste Bob 70+(F*30),160,36
Next F
Screen 1
End Proc
Rem
Procedure DRLIVES
Screen 3
For F=1 To LIVES
Paste Bob -30+(F*30),170,10
Next F
Ink 4
Polygon 100,193 To 140,193 To 140,195 To 100,195 To 100,193
Ink 5
Polygon 140,193 To 300,193 To 300,195 To 140,195 To 140,193
Screen 1
End Proc
Rem
Procedure ENERGYDOWN
ENERGY2=12
Dec ENERGY
F=ENERGY+101
Screen 3
Ink 0
Draw F,193 To F,195
If ENERGY=0 Then DEAD=1
Screen 1
End Proc
Rem
Procedure LOSTLIFE
Dec LIVES
Sam Play 3
If LIVES=0 Then GAMEOVER=1
ENERGY=200
ENERGY2=12
Screen 3
Paste Bob -30+((LIVES+1)*30),170,36
Screen 1
X=X Bob(63)
Y=Y Bob(63)
Bob Off 63
If LIVES=2 Then OBJS(5,1)=ROOMNO : OBJS(5,2)=X : OBJS(5,3)=Y : Paste Bob X,Y,38 : Screen 3 : Paste Bob -30+((LIVES+1)*30),170,38 : Screen 1
If LIVES=1 Then OBJS(6,1)=ROOMNO : OBJS(6,2)=X : OBJS(6,3)=Y : Paste Bob X,Y,39 : Screen 3 : Paste Bob -30+((LIVES+1)*30),170,39 : Screen 1
Proc DRLIVES
ROOMNO=48
DEAD=0
Wait 150
End Proc
Rem
Procedure FOOD
Bob Off 17
OLDENERGY=ENERGY
ENERGY=ENERGY+10
If ENERGY>200 Then ENERGY=200
Screen 3
Ink 4
If ENERGY>40 Then Polygon 100,193 To 140,193 To 140,195 To 100,195 To 100,193
If ENERGY<40 Then Polygon 100,193 To 100+ENERGY,193 To 100+ENERGY,195 To 100+ENERGY,195 To 100,193
Ink 5
If ENERGY>40 Then Polygon 140,193 To 100+ENERGY,193 To 100+ENERGY,195 To 140,195 To 140,193
Screen 1
End Proc
Rem
Procedure ADSPR
Dec ADSPR2
If ADSPR2>0 Then Pop Proc
ADSPR2=25
If NASTIES=8 Then Pop Proc
Inc NASTIES
Q=Rnd(220)+30
V=Rnd(150)+30
T=Rnd(6)+1
Bob 19+NASTIES,Q,V,T+45
Channel 4+NASTIES To Bob 19+NASTIES
If T=1 Then Amal 4+NASTIES,K$
If T=2 Then Amal 4+NASTIES,E$
If T=3 Then Amal 4+NASTIES,F$
If T=4 Then Amal 4+NASTIES,G$
If T=5 Then Amal 4+NASTIES,H$
If T=6 Then Amal 4+NASTIES,E$
If T=7 Then Amal 4+NASTIES,G$
Amal On 4+NASTIES
End Proc
Rem
Procedure SETUPASTR
K$="Let R0=2; Let R1=3;"
K$=K$+"M: Let X=X+R0; Let Y=Y+R1;"
K$=K$+"If X>240 Jump A;"
K$=K$+"F: If X<10 Jump B;"
K$=K$+"G: If Y>170 Jump C;"
K$=K$+"H: If Y<10 Jump D;"
K$=K$+"Pause; Jump M; A: Let R0=-2; Pause; Jump G; B: Let R0=2; Pause; Jump G;"
K$=K$+"C: Let R1=-3; Pause; Jump M; D: Let R1=3; Pause; Jump M"
E$="Let R0=-2; Let R1=2;"
E$=E$+"M: Let X=X+R0; Let Y=Y+R1;"
E$=E$+"If X>240 Jump A;"
E$=E$+"F: If X<10 Jump B;"
E$=E$+"G: If Y>170 Jump C;"
E$=E$+"H: If Y<10 Jump D;"
E$=E$+"Pause; Jump M; A: Let R0=-2; Pause; Jump G; B: Let R0=2; Pause; Jump G;"
E$=E$+"C: Let R1=-1; Pause; Jump M; D: Let R1=1; Pause; Jump M"
F$="Let R0=2; Let R1=-2;"
F$=F$+"M: Let X=X+R0; Let Y=Y+R1;"
F$=F$+"If X>240 Jump A;"
F$=F$+"F: If X<10 Jump B;"
F$=F$+"G: If Y>170 Jump C;"
F$=F$+"H: If Y<10 Jump D;"
F$=F$+"Pause; Jump M; A: Let R0=-1; Pause; Jump G; B: Let R0=1; Pause; Jump G;"
F$=F$+"C: Let R1=-1; Pause; Jump M; D: Let R1=1; Pause; Jump M"
G$="Let R0=-1; Let R1=-1;"
G$=G$+"M: Let X=X+R0; Let Y=Y+R1;"
G$=G$+"If X>240 Jump A;"
G$=G$+"F: If X<10 Jump B;"
G$=G$+"G: If Y>170 Jump C;"
G$=G$+"H: If Y<10 Jump D;"
G$=G$+"Pause; Jump M; A: Let R0=-1; Pause; Jump G; B: Let R0=1; Pause; Jump G;"
G$=G$+"C: Let R1=-1; Pause; Jump M; D: Let R1=1; Pause; Jump M"
H$="Let R0=1; Let R1=2;"
H$=H$+"M: Let X=X+R0; Let Y=Y+R1;"
H$=H$+"If X>240 Jump A;"
H$=H$+"F: If X<10 Jump B;"
H$=H$+"G: If Y>170 Jump C;"
H$=H$+"H: If Y<10 Jump D;"
H$=H$+"Pause; Jump M; A: Let R0=-1; Pause; Jump G; B: Let R0=1; Pause; Jump G;"
H$=H$+"C: Let R1=-2; Pause; Jump M; D: Let R1=2; Pause; Jump M"
I$="Let R0=-1; Let R1=2;"
I$=I$+"M: Let X=X+R0; Let Y=Y+R1;"
I$=I$+"If X>240 Jump A;"
I$=I$+"F: If X<10 Jump B;"
I$=I$+"G: If Y>170 Jump C;"
I$=I$+"H: If Y<10 Jump D;"
I$=I$+"Pause; Jump M; A: Let R0=-1; Pause; Jump G; B: Let R0=1; Pause; Jump G;"
I$=I$+"C: Let R1=-2; Pause; Jump M; D: Let R1=2; Pause; Jump M"
End Proc
Rem
Procedure SETUPSTART
DEAD=0
SPEED=2
SHAPE=10
ROOMNO=48
DRS=2
BAG(1)=0
BAG(2)=0
BAG(3)=0
OBJS(1,1)=57
OBJS(1,2)=100
OBJS(1,3)=100
OBJS(2,1)=31
OBJS(2,2)=100
OBJS(2,3)=100
OBJS(4,1)=56
OBJS(4,2)=100
OBJS(4,3)=100
OBJS(3,1)=8
OBJS(3,2)=100
OBJS(3,3)=100
OBJS(7,1)=82
OBJS(7,2)=100
OBJS(7,3)=100
OBJS(8,1)=25
OBJS(8,2)=100
OBJS(8,3)=100
OBJS(9,1)=66
OBJS(9,2)=50
OBJS(9,3)=100
RKEY=0
BKEY=0
GKEY=0
YKEY=0
OBS(1)=32
OBS(2)=33
OBS(3)=34
OBS(4)=35
OBS(5)=38
OBS(6)=39
OBS(7)=55
OBS(8)=56
OBS(9)=57
SCORE=0
LIVES=3
ENERGY2=12
ENERGY=200
DEAD=0
X=120
Y=80
ADSPR=25
GAMEOVER=0
FINISHED=0
MP=1
End Proc
Rem
Rem main game code
Rem
Rem
Dim PERCENT(108)
Dim BAG(3)
Dim OPDRS(108,4)
Dim OBJS(10,3)
Dim OBS(10)
Dim SCO$(16)
Global X,Y,SPEED,STAIRS,TRAP,TRGT,N,NC,S,SC,E,EC,W,WC,DETCOL,ROOMNO,SHAPE
Global DRS,RKEY,BKEY,GKEY,YKEY,SCORE,BAG(),LIVES,OPDRS(),OBJS(),OBS()
Global DROP,PERCENT(),FFLAG,B$,ENERGY,ENERGY2,DEAD,GAMEOVER,NASTIES
Global K$,E$,F$,G$,H$,I$,J$,ADSPR2,FINISHED,MP,SCO$()
Rem
STRTGME:
Proc TITES
Proc SETUPSTART
Proc INITGAME
Screen 3
Paper 0
Screen 1
Proc SETUPMAIN
Proc SETUPASTR
Proc DRROOM
Proc DRBAG
Proc DRLIVES
Music 1
Tempo 18
While GAMEOVER=0
Proc MVEBOB
Proc ADSPR
If FFLAG=1 Then Proc CHWEAP
DETCOL=0
Proc CHECKCOL
If FINISHED=1 Then GAMEOVER=1 : Goto ELOP
If DEAD=1 Then Goto CHDEAD
If DETCOL=1 Then Proc DRROOM
R=Rnd(99)+1
If R>95 Then Proc DROC
Screen 3
Locate 1,20
Print "SCORE:";
Print SCORE;"%"
Locate 1,19
Print "ROOM:"; : Print ROOMNO; : Print " "
Screen 1
Dec ENERGY2
DEAD=0
If ENERGY2=0 Then Proc ENERGYDOWN
CHDEAD:
If DEAD=1 Then Proc LOSTLIFE : Proc DRROOM
If FFLAG=1 Then Proc CHWEAP
Wait Vbl
ELOP:
Wend
If FINISHED=1 Then Goto FINGME
Amal Off
Music Off
Set Font 1
For F=0 To 63
Bob Off(F)
Next F
Screen Close 3
Screen 1
For F=0 To 15
Colour F,Val(SCO$(F))
Next F
Music 1
Cls 0
Locate 10,10
Bob 1,80,50,58
Bob 2,80,100,59
Ink 2,0
Text 80,170,"(c) NPCSOFT 1991"
T$="M: Move 0,-20,20; Pause; Move 0,20,20; Pause; Jump M"
U$="M: Move 0,20,20; Pause; Move 0,-20,20; Pause; Jump M"
Channel 1 To Bob 1
Channel 2 To Bob 2
Amal 1,T$
Amal 2,U$
Amal On
Tempo 14
For F=13 To 5 Step -1
Wait 100
Tempo F
Next F
While Inkey$=""
Wend
Amal Off
Bob Off 1
Bob Off 2
Screen Close 1
Screen Hide 0
Music Off
F=Free
Goto STRTGME
FINGME:
Amal Off
Screen Close 3
Cls 0
Screen Close 1
Cls 0
Screen Open 1,640,200,16,Lowres
Screen Display 1,114,40,640,200
Screen 1
Cls 0
Double Buffer
For F=0 To 15
Colour F,Val(SCO$(F))
Next F
Music Off
For F=0 To 63
Bob Off(F)
Next F
Cls 0
Erase 3
Load "queen.abk"
Bob 6,30,10,62
Bob 7,190,10,63
T$="M: Move 160,0,160; Pause; Move -160,0,160; Pause; Jump M"
U$="M: Move -160,0,160; Pause; Move 160,0,160; Pause; Jump M"
Channel 6 To Bob 6
Channel 7 To Bob 7
Amal 6,T$
Amal 7,U$
Set Font 2
Ink 2,0
Text 80,170,"(C) NPCSOFT 1991"
NPC$=" AUtotest(Let R1=Vu(R0)*1.5 If R1=0 eXit else Direct Start)"
NPC$=NPC$+"Start: Let R2=R1; Let X=R0*64; Let X=X+60; Let Y=RA-R1; Pause;"
NPC$=NPC$+" Move 0,R2,RB; Wait;"
Amreg(0)=150 : Amreg(1)=25
For N=0 To 3
Bob N,N*64+60,Amreg(0),49
Channel N To Bob N
Amal N,"Let R0="+Str$(N)+NPC$
Next N
Amal On
Music 1
Tempo 18
While Inkey$=""
Wend
Amal Off
Bob Off 0
Bob Off 1
Bob Off 2
Bob Off 3
Bob Off 6
Bob Off 7
Screen Close 1
Screen Hide 0
Music Off
F=Free
Goto STRTGME
Rem
Rem Room Data (Map)
Rem
Rem 1st floor
Rem
R1: Data 0,0,0,2,2,5,1,0,0,8,1
R2: Data 0,0,0,3,1,1,1,0,0,0,0
R3: Data 0,0,0,4,3,2,1,0,0,10,1
R4: Data 1,0,0,108,1,0,0,0,0,0,0
R5: Data 0,0,0,1,1,6,1,0,0,11,1
R6: Data 0,0,0,5,1,7,1,0,0,0,0
R7: Data 0,0,0,6,1,0,0,0,0,13,1
R8: Data 0,0,0,9,1,11,1,1,1,0,0
R9: Data 0,0,0,10,1,8,1,0,0,0,0
R10: Data 0,0,0,0,0,0,0,3,1,14,1
R11: Data 0,0,0,8,1,12,1,5,1,0,0
R12: Data 0,1,40,11,1,13,1,0,0,0,0
R13: Data 0,0,0,12,1,0,0,7,1,0,0
R14: Data 0,0,0,0,0,0,0,10,1,15,1
R15: Data 0,0,0,0,0,16,1,14,1,0,0
R16: Data 0,0,0,15,1,17,1,0,0,0,0
R17: Data 0,0,0,16,1,18,1,0,0,0,0
R18: Data 0,0,0,17,1,20,1,19,1,0,0
R19: Data 0,0,0,21,1,23,1,0,0,0,0
R20: Data 0,0,0,18,1,25,5,0,0,0,0
R21: Data 0,0,0,22,1,19,1,0,0,0,0
R22: Data 0,1,36,0,0,0,0,0,0,0,0
R23: Data 0,0,0,19,1,24,1,0,0,0,0
R24: Data 2,0,0,0,0,32,1,0,0,0,0
R25: Data 2,0,0,0,0,26,1,0,0,0,0
Rem
Rem ground floor
Rem
R26: Data 0,0,0,27,1,0,0,0,0,0,0
R27: Data 0,0,0,0,0,26,1,33,1,0,0
R28: Data 0,0,0,29,1,0,0,34,1,0,0
R29: Data 0,0,0,30,5,28,1,0,0,0,0
R30: Data 0,0,0,31,1,29,1,36,2,0,0
R31: Data 0,0,0,0,0,30,1,0,0,0,0
R32: Data 2,0,0,0,0,57,1,0,0,0,0
R33: Data 0,0,0,34,1,32,4,40,2,27,1
R34: Data 0,0,0,0,0,0,0,0,0,28,1
R35: Data 0,0,0,36,3,0,0,42,1,0,0
R36: Data 0,0,0,37,5,35,3,43,4,30,2
R37: Data 0,0,0,38,1,36,5,0,0,0,0
R38: Data 0,1,63,0,0,37,1,0,0,0,0
R39: Data 0,0,0,40,2,0,0,45,1,0,0
R40: Data 0,1,65,41,2,39,2,0,0,33,2
R41: Data 0,0,0,42,1,40,2,0,0,0,0
R42: Data 0,0,0,43,1,41,1,48,1,35,1
R43: Data 0,0,0,44,1,42,1,49,1,36,4
R44: Data 0,0,0,0,0,43,1,0,0,37,1
R45: Data 0,1,70,46,1,0,0,0,0,39,1
R46: Data 0,0,0,0,0,45,1,0,0,0,0
R47: Data 0,0,0,0,0,46,1,0,0,0,0
R48: Data 0,0,0,49,1,47,1,0,0,42,1
R49: Data 0,0,0,50,1,48,1,0,0,0,0
R50: Data 1,0,0,4,1,0,0,0,0,0,0
Rem
Rem Basement
Rem
R51: Data 0,0,0,52,1,0,0,0,0,0,0
R52: Data 0,0,0,53,1,51,1,58,1,0,0
R53: Data 0,0,0,54,1,52,1,72,1,0,0
R54: Data 0,0,0,55,4,53,1,60,1,0,0
R55: Data 0,0,0,56,1,54,1,0,0,0,0
R56: Data 0,0,0,0,0,55,1,0,0,0,0
R57: Data 0,0,0,58,1,0,0,0,0,0,0
R58: Data 0,0,0,0,0,57,1,65,1,52,1
R59: Data 0,0,0,60,1,0,0,66,3,0,0
R60: Data 0,0,0,0,0,59,1,0,0,54,1
R61: Data 0,0,0,0,0,60,1,0,0,0,0
R62: Data 0,0,0,0,0,61,1,0,0,0,0
R63: Data 0,0,0,0,0,62,1,0,0,0,0
R64: Data 0,0,0,65,1,0,0,0,0,0,0
R65: Data 0,0,0,0,0,64,1,71,1,58,1
R66: Data 0,0,0,0,0,0,0,0,0,59,1
R67: Data 0,0,0,68,1,0,0,0,0,0,0
R68: Data 0,0,0,69,1,67,1,74,1,0,0
R69: Data 1,0,0,50,1,0,0,0,0,0,0
R70: Data 0,0,0,71,1,0,0,0,0,0,0
R71: Data 0,0,0,72,1,70,1,0,0,65,1
R72: Data 0,0,0,73,1,71,1,0,0,0,0
R73: Data 0,0,0,74,1,72,1,0,0,0,0
R74: Data 0,0,0,75,1,73,1,0,0,68,1
R75: Data 1,0,0,45,1,0,0,0,0,0,0
Rem
Rem The Atic !
Rem
R76: Data 2,0,0,0,0,13,1,0,0,0,0
R77: Data 0,0,0,0,0,76,1,84,1,0,0
R78: Data 0,0,0,0,0,77,1,0,0,0,0
R79: Data 0,0,0,0,0,78,1,0,0,0,0
R80: Data 0,0,0,81,2,79,1,87,1,0,0
R81: Data 0,0,0,0,0,80,1,0,0,0,0
R82: Data 0,1,97,0,0,0,0,89,4,0,0
R83: Data 2,0,0,0,0,24,1,0,0,0,0
R84: Data 0,0,0,0,0,83,5,0,0,77,1
R85: Data 0,0,0,0,0,0,0,92,1,0,0
R86: Data 0,0,0,87,1,85,1,0,0,0,0
R87: Data 0,1,22,0,0,0,0,94,1,80,1
R88: Data 0,0,0,89,1,0,0,95,1,0,0
R89: Data 0,0,0,0,0,88,1,96,1,82,4
R90: Data 2,0,0,0,0,39,1,0,0,0,0
R91: Data 0,1,12,0,0,90,4,98,1,0,0
R92: Data 0,0,0,93,1,0,0,0,0,0,0
R93: Data 0,0,0,0,0,92,1,0,0,86,1
R94: Data 0,0,0,0,0,0,0,101,5,87,1
R95: Data 0,0,0,0,0,0,0,102,1,88,1
R96: Data 0,0,0,0,0,95,1,103,1,89,2
R97: Data 0,0,0,98,1,0,0,104,3,0,0
R98: Data 0,0,0,99,1,97,1,0,0,91,1
R99: Data 0,0,0,100,1,98,1,0,0,92,1
R100: Data 0,0,0,0,0,99,1,106,1,0,0
R101: Data 0,0,0,102,4,0,0,0,0,94,3
R102: Data 0,0,0,0,0,101,4,0,0,95,1
R103: Data 0,1,10,0,0,0,0,108,1,96,1
R104: Data 0,0,0,105,1,0,0,0,0,97,3
R105: Data 0,0,0,106,1,104,2,0,0,0,0
R106: Data 0,0,0,107,5,105,3,0,0,0,0
R107: Data 0,0,0,108,1,106,4,0,0,0,0
R108: Data 0,0,0,0,0,107,5,0,0,103,1