Classic Computer Magazine Archive A.N.A.L.O.G. ISSUE 63 / AUGUST 1988 / PAGE 10

Train Crazy



by Colin Faller


Welcome to Train Crazy, a game that. will have you hopping mad. Your character is Oscar the Ostrich. Oscar is not only crazy, but train crazy, as you will soon find out. Oscar prefers the fresh air and likes to travel on top of the train. No problem, of course, until the train comes to a tunnel and Oscar has to run for his life! What's worse is that the London railway company doesn't like birds traveling on top of their trains, and so have hung several chains from the overhead wires to deter the "roof riders." They have also hung up some tempting diamonds in the hopes that Oscar will jump up and crack his head. But Oscar is smarter than that and can often grab the diamonds for himself.
    To help Oscar survive you must duck under the chains and jump up to collect the diamonds, as well as jump between carriages and avoid the tunnel. The higher the level, the more obstacles there are. You will find it harder to get the diamonds as you progress. At the end of each level, Oscar will jump off the train, and your score will be displayed. You will then start the next level or, if you have lost a life, restart the existing level. Oscar has five lives each game.
    There are four ways to lose a life: 1) by getting knocked off the train in the tunnel, 2) by hitting one of the obstacles, 3) by running out of energy and 4) by jumping too soon for the diamonds and knocking yourself out.

Typing it in
    First type Listing 1, using Basic Editor II to check your typing, and then save the file to disk as TRAIN1.BAS. Now type Listing 2 (checking it with Basic Editor II, of course), and then save the file to disk as TRAIN2.BAS.

Playing the game
    The game is loaded in two parts. Part 1 loads the character set and scrolling routine and draws the train. It'll take about 33 seconds. When Part 1 is finished, it'll load Part 2 automatically.
    After a few more seconds of initialization, you will hear the train whistle and be ready to play. Use a joystick in Port 1. Press either the fire button or the START key to begin.
    Moving the joystick up will cause Oscar to jump up to catch the diamonds, jump over obstacles or jump from carriage to carriage. You must be careful not to jump too soon or you will hit the objects above the diamonds and lose a life. Moving the joystick down makes Oscar duck to avoid the hanging chains.
    Each time you press the fire button, Oscar will move forward. If you take your finger off, he will move back with the train. If you don't keep him moving, he will go into the tunnel and lose a life.
    When you first start the game, you are given 28 energy units, but these decrease as the game progresses. Each time you get a diamond, you get 200 points and an extra three energy units; so you must collect diamonds to complete the game. Each diamond collected will be displayed at the top of the screen.
    When the game is over, you'll be rated according to your score as follows:
TRY AGAIN - less than 4,000 points,
GOOD - 4,000 to 9,999 points,
GREAT - 10,000 to 14,999 points,
EXCELLENT - over 15,000 points.
    To play again press either the START key or SYSTEM RESET.
    My highest score to date is 16,455 in ten levels. Can you do better?

There are four ways to
lose a life: I) by getting
knocked off the train in
the tunnel, 2) by hitting
one of the obstacles, 3)
by running out of
energy and 4) by
jumping too soon for
the diamonds and
knocking yourself out.


LISTING 1: BASIC

QK 1 REM *****************************
GT 2 REM **   TRAIN CRAZY (pt 1)    **
NG 3 REM **          BY             **
OA 4 REM **     COLIN  FALLER       **
ZD 5 REM **-------------------------**
EZ 6 REM **     COPYRIGHT 1988      **
MZ 7 REM **   BY ANALOG COMPUTING   **
QR 8 REM *****************************
FH 9 GRAPHICS 8:GOSUB 18:GOTO 100
TX 10 GRAPHICS 2+16:POKE 559,0:SETCOLOR 3
  
,1,14:SETCOLOR 4,13,8:SETCOLOR 1,0,0:S
   ETCOLOR 0,6,2:SETCOLOR 2 9,4
GT 11 ? #6;"    "
YV 12 ? #6;"    "
VT 13 ? #6;"         "
GY 14 ? #6;"         "
WQ 15 ? #6;"    COLIN FALLER"
NX 16 ? #6;"    "
WS 17 ? #6;" characters "
LC 18 ? #6;"      "
EF 19 ? #6;"     "
YX 20 ? #6;? #6;""
LT 21 ? #6;" reading ":POKE 559,
  
34:RETURN
VX 100 RAMTOP=PEEK(106):RESTORE 2000:STAR
  
T=RAMTOP-8:CH=256*START
GW 109 REM
PU 110 FOR I=CH TO CH+727 STEP 7:READ A1,
  
B1,C1,D1,E1,F1,G1:POKE I,A1:POKE I+1,B
  
1:POKE I+2,C1:POKE I+3,D1:POKE I+4,E1
SA 115 POKE I+5,F1:POKE I+6,G1:POSITION 1
  
3,6:? #6;39911-I;" ":NEXT I
UY 120 FOR I=CH+776 TO CH+994 STEP 7:READ
  
A2,B2,C2,D2,E2,F2,G2:POKE I,A2:POKE I
  
+1,B2:POKE I+2,C2:POKE I+3,D2
JA 122 POKE I+4,E2:POKE I+5,F2:POKE I+6,G
  
2:POSITION 13,6:? #6;39905-I;" ":NEXT
  
I
KA 130 TEMP=RAMTOP-20:DM=256*TEMP:FOR I=1
  
536 TO 1538:POKE I,112:NEXT I:BOTTOM=D
  
M+2816
FU 148 FOR V=2 TO 110 STEP 37:RESTORE 400
  
:FOR X=V TO V+36:POSITION 13,7:? #6;11
  
2-X;" ":READ A,B,C,D,E,F,G,H
JK 145 POKE DM+256*4+X,A:POKE DM+256*5+X,
  
B:POKE DM+256*6+X,C:POKE DM+256*7+X,D:
  
POKE DM+256*8+X,E+100
EK 147 POKE DM+256*9+X,F:POKE DM+256*10+X
  
,G:POKE DM+256*11+X,H
NF 150 POKE DM+256*4+X+111,A:POKE DM+256*
  
5+X+111,B:POKE DM+256*6+X+111,C:POKE D
  
M+256*7+X+111,D
WS 154 POKE DM+256*8+X+111,E+100:POKE DM+
  
256*9+X+111,F:POKE DM+256*10+X+111,G:P
  
OKE DM+256*11+X+111,H:NEXT X:NEXT V
IW 200 RESTORE 205:FOR V=1 TO 6:READ O:PO
  
KE DM+256*0+O,53:NEXT V
SE 205 DATA 20,58,97,133,168,206
JN 250 FOR C=224 TO 255:POKE DM+256*11+C,
  
39:NEXT C
RN 255 FOR O=39 TO 200 STEP 37:POKE DM+25
  
6*3+O,248:NEXT O:FOR O=38 TO 200 STEP
  
37:POKE DM+256*3+O,247:NEXT O
PN 300 RESTORE 500:FOR I=1578 TO 1637:REA
  
D A:POKE I,A:POSITION 13,8:? #6;1578+5
  
9-I;" ":NEXT I
OQ 320 RESTORE 330:FOR T=1 TO 14:READ OI:
  
POKE DM+256*0+OI,165:POKE DM+256*1+OI,
  
166:POKE DM+256*2+OI,149:NEXT T
UG
330 DATA 25,35,46,69,79,92,183,127,137
  
,161,175,182,197,222
DH 340 POKE DM+256*3+222,248
WT 350 RESTORE 365:FOR N=41 TO 223 STEP 3
  
7:READ OP:POKE DM+256*8+N,OP:POKE DM+2
  
56*8+N+17,OP:POKE DM+256*8+N+29,OP
EP 368 NEXT N:POKE 559,0
IR 365 DATA 159,160,161,162,163
LC 370 POKE 1575,65:POKE 1576,0:POKE 1577
  
,6:POKE 560,0:POKE 561,6:POKE 764,255
CS 375 POKE 53256,1:POKE 53277 2:GOSUB 10
XF 380 POSITION 2,11:? #6;" T
  
WO":RUN "D:TRAIN2.BAS"
LC 399 REM
UV 400 DATA 2,3,3,3,-76,170,48,39,1,68,69
   ,
69,33,43,1,49,1,70,71,65,58,44,1,50,1
   ,
72,73,74,42,45,1,51,1,75,0,76,29,45
MB 401 DATA 1,39,1,75,8,76,29,46,1,39,1,7
  
5,8,76,29,47,1,39,1,77,78,79,29,43,1,3
  
9,1,88,81,82,29,43,1,49,1,75,8,76,29
ZJ 402 DATA 44,1,50,1,75,8,76,29,45,1,51,
  
1,75,0,76,29,25,0,39,1,77,78,79,29,1,2
  
5,39,1,80,81,82,29,1,25,39,1,75,8,76
XG 403 DATA 29,1,25,39,1,75,0,76,29,1,25,
  
39,1,75,0,76,29,1,25,39,1,77,78,79,29,
  
1,25,39,1,68,69,69,33,1,25,39,1,70
BC 404 DATA 71,65,58,1,25,39,1,72,73,74,4
  
2,1,25,39,1,75,8,76,29,1,25,39,1,75,0,
  
76,29,1,25,39,1,75,0,76,29,1,25,39,1
CC 405 DATA 77,78,79,29,1,25,39,1,88,81,8
  
2,29,25,8,39,1,75,8,76,29,43,1,49,1,75
  
,0,76,29,44,1,58,1,75,0,76,29,45,1,51
TV 406 DATA 1,77,78,79,29,45,1,39,1,68,69
   ,
69,33,46,1,39,1,70,71,65,58,47,1,39,1
  
,72,73,74,42,43,1,39,1,75,8,76,29,43
QR 407 DATA 1,49,1,75,0,76,29,44,1,50,1,7
  
7,78,79,29,45,1,51,26,27,27,27,-72,169
  
,52,39
 YQ 499 REM
JT 500 DATA 104,169,0,133,203,141,4,212,1
  
60,59,162,6,169,7,76,92
UU 501 DATA 228,198,203,165,203,141,4,212
  
,16,31,169,7,133,203
QP 502 DATA 141,4,212,238,4,6,173,4,6,201
  
,234,208,2,169,0,162
K5 503 DATA 0,157,4,6,232,232,232,224,39,
  
208,246,76,98,228
AL 599 REM
JD 999 REM
GI 2000 DATA 0,0,0,0,0,0,0,0,255,255,255,
  
255,255,255,255,255,0,7,29,117,85,85,8
  
5,85,85,85,85,85,85,85,85,85,252,253
SV 2001 DATA 253,253,253,253,253,253,253,
  
253,253,253,253,253,253,253,0,255,255,
  
131,131,131,131,131,255,131,131,131
SG 2002 DATA 131,131,131,131,127,127,126,
  
126,126,126,126,127,126,126,126,126,12
  
6,126,126,126,126,126,126,126,126
NN 2003 DATA 127,127,127,255,24,24,24,24,
  
24,24,255,0,0,0,0,0,0,255,255,255,255,
  
127,127,127,127,127,255,127,127,127
NQ 2004 DATA 127,127,127,127,127,127,127,
  
127,127,127,255,255,255,255,255,254,25
  
4,254,254,254,255,254,254,254,254
MY 2005 DATA 254,254,254,254,254,254,254,
  
254,254,255,255,255,127,127,127,127,25
  
5,255,255,255,255,255,255,127,127,127
SF 2006 DATA 127,127,56,16,56,16,0,0,0,0,
   0
,255,255,255,255,255,255,255,0,127,12
  
7,127,127,127,127,127,85,85,85,85,85
AD 2007 DATA 85,85,127,255,255,255,255,25
  
5,0,0,0,0,224,184,174,170,170,170,170,
  
170,170,170,170,170,170,170,170,170
HP 2008 DATA 170,170,170,170,170,170,254,
  
255,195,153,145,137,153,195,255,255,23
  
1,199,231,231,231,129,255,255,195,153
ZG 2009 DATA 243,231,207,129,255,255,129,
  
243,231,243,153,195,255,255,243,227,19
  
5,147,129,243,255,255,129,159,131,249
ZO 2010 DATA 153,195,255,255,195,159,131,
  
153,153,195,255,0,0,0,0,0,0,0,255,254,
  
16,56,40,56,16,56,40,56,16,56,40
ZK 2011 DATA 56,16,56,40,0,0,0,0,255,0,25
  
5,255,16,40,68,130,68,40,16,0,0,224,63
   ,
249,15,0,0,0,0,7,252,207,112,0,0,0
HR 2012 DATA 255,255,255,255,255,0,0,1,25
  
5,255,255,255,255,0,126,255,255,255,25
  
5,255,255,0,0,128,255,255,255,255,255
SV 2013 DATA 15,31,255,255,255,255,255,25
  
5,248,248,255,0,0,255,255,143,15,0,0,1
  
27,3,1,0,255,0,255,255,255,255,255
QV 2014 DATA 126,255,0,255,255,254,192,12
  
8,0,255,0,255,255,0 0,255,255,241,240,
  
0,0,254,16,124,16,5,16,56,16,0,255
KO 2015 DATA 255,255,255,255,255,128,0,0,
   0
,0,0,0,0,132,0,0,0,0,0,0,0,33,0,0,0,0
  
,0,0,124,254,16,56,124,254,124
JU 2059 DATA 56,16,0,127,127,127,127,127,
  
127,62,0
ZC 2060 DATA 0,63,127,127,127,127,127,127
FA 2061 DATA 0,255,255,255,255,255,255,0
BL 2062 DATA 0,240,252,254,254,255,255,25
  
5
PC 2063 DATA 0,0,0,0,255,255,255,255
EG 2064 DATA 127,127,127,127,254,254,252,
  
248
VT 2065 DATA 255,255,255,0,0,0,0,0
CP 2066 DATA 254,255,255,255,127,127,127,
  
127
EV 2067 DATA 0,7,31,63,63,127,127,127
BR 2068 DATA 255,255,255,127,127,127,127,
  
127
AQ 2069 DATA 127,255,255,255,255,255,255,
   0

YR 2070 DATA 0,62,127,127,127,127,127,127
OD 2071 DATA 0,0,0,128,192,224,240,248
XN 2072 DATA 252,254,255,255,255,127,63,3
  
1
EW 2073 DATA 15,7,3,1,0,0,0,0
KZ 2074 DATA 127,127,255,255,255,255,255,
  
255
FC 2075 DATA 255,255,255,255,255,127,127,
  
127
WJ 2076 DATA 127,127,127,63,63,31,7,0
GL 2077 DATA 127,127,127,62,0,0,0,0
WV 2078 DATA 0,0,0,0,62,127,127,127
NE 2079 DATA 255,255,255,254,254,252,240,
  
0
JJ 2080 DATA 0,255,255,255,255,255,255,3
CQ 2081 DATA 0,254,255,255,255,255,254,25
  
2
DK 2082 DATA 3,7,15,15,31,63,63,127
ZR 2083 DATA 248,248,240,224,224,192,128,
  
128
SF 2084 DATA 0,1,1,3,7,7,15,31
NF 2085 DATA 255,254,252,252,248,240,240,
  
224
EQ 2086 DATA 31,63,127,127,127,127,63,0
BH 2087 DATA 192,255,255,255,255,255,255,
   0

LW 2088 DATA 127,63,63,31,15,7,3,1
KW 2089 DATA 0,128,193,227,247,255,255,25
  
5
WK 2090 DATA 127,254,254,252,248,240,224,
  
192
EF 2091 DATA 198,124,124,198,198,192,192,
  
198
UN 2092 DATA 198,124,124,198,198,198,198,
  
198
LU 2093 DATA 192,254,192,192,192,192,192,
  
192
IH 2094 DATA 24,126,126,24,24,24,24,24
CK 2095 DATA 198,198,198,230,246,254,222,
  
206
OT 2096 DATA 192,192,254,192,192,248,192,
  
192
SI
2097 DATA 198,198,124,198,198,198,254,
  
198
OM 2098 DATA 192,254,254,192,192,248,192,
  
192
XN 2099 DATA 204,198,252,198,198,198,252,
  
216
LN 2100 DATA 0,63,127,127,127,127,63,0
FK 2101 DATA 0,255,255,255,255,255,255,12
  
7
UY 2102 DATA 0,252,254,254,254,254,252,0
WY 2103 DATA 127,127,127,127,127,127,127,
  
127
LM 2104 DATA 252,198,198,204,198,198,252,
  
0
DD 2105 DATA 195,195,182,60,24,24,24,0
PM 2110 DATA 198,126,124,198,192,192,222,
  
198
IH 2111 DATA 24,24,198,198,198,110,60,24
UN 2112 DATA 0,0,126,126,126,126,126,126
LI 2113 DATA 56,16,198,198,198,198,198,10
   8

JR 2114 DATA 198,124,124,198,192,124,6,6
MG 2200 DATA 204,248,248,204,198,198,198,
  
198
YK 2201 DATA 198,198,198,238,254,254,214,
  
198
FT 2202 DATA 24,126,24,56,120,24,24,24
ZF 2203 DATA 192,254,124,198,6,12,56,96
OC 2204 DATA 198,124,124,198,6,28,6,6
ZL 2205 DATA 12,12,12,28,60,108,204,254
JO 2206 DATA 198,124,254,192,192,252,6,6
CC 2222 DATA 0,85,0,0,0,0,0,0
AM 2223 DATA 0,0,0,0,0,0,0,0


LISTING 2: BASIC

QK 1 REM *****************************
HW 2 REM **   TRAIN CRAZY (pt 2)    **
NG 3 REM **          BY             **
OA 4 REM **     COLIN FALLER        **
ZD 5 REM **-------------------------**
EZ 6 REM **     COPYRIGHT 1988      **
MZ 7 REM **   BY ANALOG COMPUTING   **
QR 8 REM *****************************
FF 9 POKE 2,52:POKE 3,185:POKE 9,2:TRAP 3
  
0000
H
R 10 POKE 559,0
QF 11 POKE 53248,0:POKE 53250,0:POKE 5325
  
1,0:POKE 53249,0:LEV=0:SC=0:LI=6:LP=0:
  
Q=0:GH=0:BA=5:CX=32:GOTO 50
WV 12 RESTORE 13:FOR V=1 TO 6:READ O:POKE
   
DM+256*1+O,104:NEXT V
ML 13 DATA 20,58,97,133,168,206
LQ 14 FOR T=38 TO 200 STEP 37:POKE DM+256
  
*3+T,247:POKE DM+256*3+T+1,248:NEXT T
IP 15 GRAPHICS 0:POKE 559,0:POKE 82,0:RES
  
TORE 30:DL=PEEK(560)+PEEK(561)*256+3:P
  
OKE 752,1:P=USR(1578)
MX 20 POKE DL,70:POKE 560,35:FOR A=3 TO 1
  
9:READ B:POKE DL+A,B:NEXT A
WV 30 DATA 2,2,2,2,2,2,3,2,6,14,18,6,1,15
  
,6,3,7
BO 40 POSITION 32,0:? "
  

   
WK
45 ? ,"      
  
  
":POKE 623 2
WV 46 POSITION 24,5:? "
   ":
POSITION 7,7:? "no"
UE 47 POS
ITION 10,8:? "abcde  fcchi"POS
   ITION 18,9:? "":GOTO 65

AY 50 RAMTOP=PEEK(106)
BR 51 START=RAMTOP-8:CH=256*START:POKE 75
  
6,START
SI 52 TEMP=RAMTOP-20:DM=256*TEMP:FOR I=15
  
36 TO 1538:POKE I,112:NEXT I
VP 53 FOR I=1539 TO 1572 STEP 3:POKE 1,87
  
:POKE I+1,0:POKE I+2,TEMP:TEMP=TEMP+1:
  
NEXT I:GOTO 12
RM 65 POSITION 1,0:? "
  
:POSITION 8,10:? "
  

IV 90 RAMTOP=PEEK(106):SETCOLOR 0,0,0:SET
  
COLOR 4,13,8:SETCOLOR 1,1,14:SETCOLOR
  
3,6,6:SETCOLOR 2,9,4
CD 95 START=RAMTOP-8:CH=256*START:POKE 75
  
6,START
MY 98 GOTO 118
XE 100 POSITION 1,0:? "
   ":POSITION 9,10:? "
   ";:GOSUB 105
SU 101 POSITION 1,0:? "
  
":POSITION 9,10:? "
   ";:GOSUB 105

WD 102 POSITION 1,0:? "
   "
:POSITION 9,10:? "
   ";:
GOSUB 105
NX 103 POSITION 1,0:? "
   ";POSITION 9,10:? "
   ";GOSUB 105:GOTO 100
GW 105 IF PEEK(53279)=6 THEN GOTO 298
JQ 107 IF STRIG(0)=0 THEN GOTO 290
TZ 108 AS=AS+128:BGT=4:IF AS=256 THEN AS=
   0
:BGT=BGT=0
OP 109 SOUND 1,AS,8,BGT:RETURN
XT 110 DIM PM$(2048)
JF 120 PM$(1)=CHRS(0):PM$(2048)=CHR$(0):P
  
M$(2)=PM$
UR 130 DIM C$(128):C$(1)=CHR$(0):C$(128)=
  
CHR$(0):C$(2)=C$
YB 140 DIM P$(170):POKE 559,35
XV 150 RESTORE 170:FOR L=1 TO 160 STEP 7:
  
READ A,B,C,D,E,F,G:CA=CA+128
RQ 160 P$(L,L)=CHR$(A):P$(L+1,L+1)=CHR$(B
   )
:P$(L+2,L+2)=CHR$(C):P$(L+3,L+3)=CHR$
  
(D):P$(L+4,L+4)=CHR$(E)
MA 164 P$(L+5,L+5)=CHR$(F):P$(L+6,L+6)=CH
  
R$(G):SOUND 1,CA,8,4:NEXT L
PF 165 SOUND 1,50,10,3:FOR T=1 TO 75
HC 166 NEXT T:SOUND 1,0,0,0:FOR T=1 TO 75
  
:NEXT T:SOUND 1,50,10,3
AK 170 DATA 0,0,0,0,24,52,63,60,152,216,2
  
20,124,60,24,52,98,130,131,0,0
VC 171 DATA 0,0,0,48,104,126,120,152,220,
  
220,124,56,24,56,208,136,12,0,0,0
BU 172 DATA 0,0,0,24,52,63,60,152,216,220
  
,124,60,24,24,112,80,24,0,0
QE 173 DATA 0,0,0,24,52,63,60,152,216,220
  
,124,60,8,8,8,8,28,0,0
XV 174 DATA 0,0,0,24,52,63,60,152,216,220
  
,124,60,24,28,52,34,51,0,0
QJ 175 DATA 0,0,0,0,0,24,52,63,60,152,220
  
,124,60,8 8,8,28,0,0,0,0,0
QX 176 DATA 255,255,255,255,255,255,255,2
  
55,255,255,255,255,255,255,255,255,255
  
,255,255,255
YS 177 DATA 255,255,255,255,255,255,254,2
  
54,252,252,248,248,240,240,224,224,192
  
,192,0,0
AZ 190 A=ADR(PM$)
QN 200 PMBASE=INT(A/1024)*1024
VN 210 IF PMBASE<A THEN PMBASE=PMBASE+102
  
4
DV 220 S=PMBASE-A
UR 230 POKE 54279,PMBASE/256
ZV 240 P0=S+512:P1=S+640:P2=S+768:P3=S+89
  
6
JV 250 POKE 53257,2:POKE 705,61:POKE 559,
  
43:POKE 53277,2
BP 260 POKE 53249,0:Y=34:I=58
UL 270 PM$(P1+Y,P1+Y+19)=P$(I,I+19)
MI 280 POKE 764,255:POKE 704,18:POKE 706,
  
16:POKE 707,18:POKE 53248,0:POKE 53251
  
,0:POKE 53250,0
PR 282 I=139
YX 283 POKE 53256,1:POKE 53258,1:POKE 532
  
59,1
RE 284 FOR U=0 TO 90 STEP 20:PM$(P2+U,P2+
  
U+19)=P$(120,I):NEXT U
TI 285 FOR U=0 TO 80 STEP 20:PMS(P3+U,P3+
  
U+19)=P$(120,I):NEXT U
HT 286 FOR U=0 TO 100 STEP 20:PM$(P0+U,P0
  
+U+19)=P$(120,I):NEXT U
Y5 287 PM$(P3+82,P3+82+19)=P$(140,140+19)
  
:PM$(P0+113,P0+113+10)=P$(I,I+10)
LZ 289 FOR T=1 TO 43 STEP 3:POKE 53248,T:
  
POKE 53250,13+T:POKE 53251,27+T:NEXT T
  
:GOTO 100
JY 290 SOUND 1,50,10,3:FOR T=1 TO 75:NEXT
   
T:SOUND 1,0,0,0:FOR T=1 TO 75:NERT T:
  
SOUND 1,50,10,3
WD 300 RAMTOP=PEEK(106)
PC 310 START=RAMTOP-8:CH=256*START:POKE 7
  
56,START
JQ 320 TEMP=RAMTOP-20:DM=256*TEMP:FOR I=1
  
536 TO 1538:POKE I,112:NEXT I:POKE 559
   ,0
JJ 321 POKE 623,2:POKE 53277,2:U=USR(1578
  
):? ""
LU 323 POSITION 28,0:? "
   ";
DE 325 ? "        hehipq
   "
FE 326 POSITION 14,4:? "
         
udgybe
  
ut H H H H H H    Cdsht "
CT 327 POSITION 37,7:? "
  
   ";
XE 328 ? "
  
"
LH 330 FOR I=1539 TO 1572 STEP 3:POKE 1,8
  
7:POKE I+1,0:POKE I+2,TEMP:TEMP=TEMP+1
  
:NEXT I
NH 333 RESTORE 335:FOR N=1 TO 20:READ OP:
  
POKE DM+256*3+OP,0:NEXT N:SOUND 1,0,0,
   0

RM 335 DATA 53,87,156,140,100,118,170,191
   ,
20,134,178,211,20,61,123,201,43,145,1
  
64,206
EM 340 SETCOLOR 1,1,14:SETCOLOR 4,13,8:SE
  
TCOLOR 0,0,0:SETCOLOR 3,13,8:SETCOLOR
  
2,9,4
FJ
365 RESTORE 366:POKE DL,76:POKE 560,35
   :FOR A=3 TO 14:READ B:POKE DL+A,B:NEXT
   
A:POKE 559,43
DI
366 DATA 14,3,15,14,3,15,14,10,14,1,3,
  
6
DY 400 POKE 764,255:POKE 53249,90:TT=0:ZX
  
=0:POKE 752,1
JF 420 TT=0:Y=34:X=90:I=1:SC=SC+X
WX 421 POKE 53278,0:SOUND 1,0,0,0
ON 422 O=O+1:1F O=7 THEN TT=TT+1:POSITION
   
34-TT+ZX,2:? " ":O=0:IF TT-ZX=28 THEN
   
3000
PG 423 S=STICK(0):IF S=14 THEN GOTO 600
MH 431 IF S=13 THEN I=96:X=X-1:GOTO 470
ZE 433 IF STRIG(0)=0 THEN X=X+1:GOTO 455
LR 444 GOTO 5000
BR
455 IF X>160 THEN X=160
VB
459 I=I+19:IF I>78 THEN SOUND 1,250,10
  
,8:I=1:SC=SC+12:SOUNO 1,0,0,0
NJ 460 GOTO 500
PO 470 IF X<53 THEN GOTO 3000
RP 500 POKE 53249,X
UC 510 PM$(P1+Y,P1+Y+19)=P$(I,I+19)
LR 515 IF PEEK(53252)>10 THEN 20000
AL 516 IF PEEK(53253)>0 THEN 10000
OM 520 GOTO 422
SB
600 I=3:V=238:FOR Y=36 TO 22 STEP -2:V
  
=V-10:SOUND 1,V,10,5:IF PEEK(53253)>0
  
THEN 10000
IH 610 PM$(PI+Y,P1+Y+19)=P$(I,I+19):NEXT
  
Y
DD
620 I=3:V=120:FOR Y=22 TO 37 STEP 2:V=
  
V+10:SOUND 1,V,10,5:IF PEEK(53253)>0 T
  
HEN 3000
IL 630 PM$(PI+Y,P1+Y+19)=P$(I,I+19):NEXT
   Y
VB
635 I=58:PM$(P1+34,P1+53)=P$(I,I+19)
IM 700 Y=34:I=58:SOUND 1,0,0,0:GOTO 422
UZ 900 POKE DM+256*3+222,0:I=3:FOR Y=37 T
   O
30 STEP -1:SOUND 1,Y+Y+Y+Y+Y+Y+Y,10,
  
5
IK 910 PM$(P1+Y,P1+Y+19)=P$(I,I+19):NEXT
  
Y
KZ
920 I=22:FOR Y=30 TO 90 STEP 2:SOUND 1
   ,Y+Y,10,5
JG 922 I=I+19:IF I>78 THEN I=1
IO
930 PM$(P1+Y,P1+Y+19)=P$(I,I+19):NEXT
  
Y
UV 2000 GRAPHICS 2+16:POKE 559,0:SETCOLOR
   
0,1,14:SETCOLOR 4,13,8:SETCOLOR 1,0,0
  
:SETCOLOR 3,6,6:SETCOLOR 2,9,4
TX 2005 LEV=LEV+1:? #6;"       "
  
? #6; ""
AF 2010 ? #6;"      ";LEV:? #6;""
DT
2020 ? #6;"      ";INT(SC)+215:?
    #
6;""
XH 2022 ? #6;"      ";LI-1
RF 2050 POKE 705,61:POKE 559,42
OU 2060 I=22:FOR Y=X TO 222:POKE 53249,Y:
  
SOUND 1,0,0,0
RR 2070 I=I+19:IF I>78 THEN SOUND 1,250,1
  
0,5:I=1
BZ 2080 PM$(P1+90,P1+90+19)=P$(I,I+19):PO
  
SITION 12,4:? #6;INT(SC+Y):NEXT Y
UY 2090 I=115:FOR Y=10 TO 128 STEP 5
DY 2095 PM$(P1+Y,P1+Y+19)=P$(I,I+19):NEXT
    Y
:SOUND 1,0,0,0:POSITION 12,2:? #6;LE
  
V+1
GN 2098 POSITION 7,8:? #6;"":POS
  
ITION 12,2:? #6;LEV+1:CY=0
VS 2099 FOR Y=0 TO 100:CY=CY+86:SOUND 1,C
  
Y,16,6:NEXT Y:LL=LL+1:SOUND 1,0,0,0
CB 2130 IF LL=6 THEN LL=1
TA 2200 RESTORE 2250+LL:FOR N=1 TO 4:READ
   
OP:POKE DM+256*3+OP,185:NEXT N:POKE 5
  
59,0
BW
2210 GRAPHICS 0:POKE 559,0:RAMTOP=PEEK
  
(106)
ES 2220 START=RAMTOP-8:CH=256*START:POKE
  
756,START
DR 2225 TEMP=RAMTOP-20:DM=256*TEMP:FOR I=
  
1536 TO 1538:POKE I,112:NEXT I
PO 2230 FOR I=1539 TO 1572 STEP 3:POKE I,
  
87:POKE I+1,0:POKE I+2,TEMP:TEMP=TEMP+
  
1:NEXT I:GOSUB 2300:GOTO 340
YL 2251 DATA 53,87,156,140
IW 2252 DATA 100,118,170,191
QY 2253 DATA 28,134,178,211
LT 2254 DATA 20,61,123,201
QX 2255 DATA 43,145,164,206
UR 2300 POKE DM+256*3+222,248:POSITION 28
   ,0
:? "
  
";
BX
2310 ? "        hehipq
  
"
CY 2320 POSITION 14,4:? "
  
         udgvb
  
eut H H H H H H"
JG 2321 POSITION 12+BN,6:? "zyxw":POSITI
  
ON 6,6:? "Cdsht ":POSITION 13,6:? "
    "
SH 2330 POSITION 37,7:? "
  

  
";
NH 2340 ? "
  
":POKE 705,61:LP=0:BA=5:CX=
  
32
CJ 2350 RESTORE 2355:FOR V=1 TO 6:READ O:
  
POKE DM+256*1+0,104:NEXT V:Q=0:GH=0
AJ 2355 DATA 20,58,97,133,168,206
HT 2360 FOR T=38 TO 200 STEP 37:POKE DM+2
  
56*3+T,247:POKE DM+256*3+T+1,248:NEXT
  
T:RETURN
IO 3000 FOR T=0 TO 255 STEP 15 :POKE 705,T
  
:SOUND 1,T,10,8:NEXT T
CA 3001 FOR T=255 TO 0 STEP -15:POKE 705,
  
T:SOUND 1,T,10,8:NEXT T:SOUND 1,0,0,0:
  
POKE 53249,0:LI=LI-1
VE 3002 GRAPHICS 2+16:POKE 559,0:SETCOLOR
   
0,1,14:SETCOLOR 4,13,8:SETCOLOR 1,0,0
  
:SETCOLOR 3,6,6:SETCOLOR 2 9,4
MI 3005 ? #6;"        ":? #6;""
DD 3010 ? #6;"      ";LEV+1:? #6;""
DU 3020 ? #6;"      ";INT(SC)+215:?
    #
6;""
YR 3025 ? #6;"      ";LI
ZJ 3026 POKE 559,42:FOR U=1 TO 200:NEXT U
  
:IF LI=1 THEN POSITION 12,6:? #6;"0":F
  
OR UO=1 TO 200:NEXT UO:GOTO 4000
UZ 3090 I=115:FOR Y=10 TO 128 STEP 5
HC 3095 PM$(P1+Y,P1+Y+19)=P$(I,I+19):NEXT
    Y
:POSITION 12,6:? #6;LI-1
OD 3098 POSITION 7,8:? #6;""
ZE 3099 FOR Y=2400 TO 0 STEP -25:SOUND 1,
  
Y+Y,10,6:NEXT Y:POKE 559,0:BN=BN-1:GOT
   O
2210
ZD 4000 GRAPHICS 2+16:POKE 559,0:SETCOLOR
   
0,0,0:SETCOLOR 4,13,8:SETCOLOR 1,1,14
  
:SETCOLOR 3,6,6:SETCOLOR 2,9,4:V=0
YK
4001 POKE 559,43
KM 4005 FOR T=2 TO 12:V=V+128:FOR O=0 TO
   8
:NEXT O:SOUND 1,V,8,6:POSITION T,1:?
   #
6;" ":NEXT T:POSITION 13,1
WQ 4006 ? #6;"     ":POSITION 9,0"? #6;"
   "