10*TV255
20*FX4,1
30MODE7:PROCSETVDU :GOES=0
40DIM T%(13,5),P(13)
50FORI=1TO13:P(I)=I:NEXT
60FOR I=1 TO 13
70READ T%(I,1),T%(I,2),T%(I,3),T%(I,4
):NEXT
80DATA 5,17,5,18,9,12,9,13,15,12,15,1
1,15,8,15,9,17,10,16,10,17,6,16,6,23,17,
23,16,23,11,24,11,23,5,23,6,33,17,33,16,
33,11,32,11,33,5,33,6,36,10,37,10
90FORI=1TO13
100Z=RND(13)
110IF P(Z)<>-1 THEN T%(I,5)=P(Z):P(Z)=
-1 ELSE GOTO 100
120NEXT
130VDU23,1,0;0;0;0;
140PRINTTAB(9,10);CHR$141;
150PRINT" Nightmare Park "+CHR$156
160PRINTTAB(9,11);CHR$141;
170PRINT" Nightmare Park "+CHR$156
180PRINTTAB(10,20);" By John Henson"
190Z=INKEY(300)
200*TV3,1
210MODE6:PROCSETSCREEN:PROCVARS
220PROCMAP:VDU31,MX,MY,224
230REPEAT:REPEAT:Z=GET
240UNTIL Z<140 AND Z>135:XI=0:YI=0
250VDU31,MX,MY,224:GOES=GOES+1
260IFZ=136 XI=-1
270IFZ=137 XI=1
280IFZ=138 YI=1
290IFZ=139 YI=-1
300NP=FNPEEK(MX+XI,MY+YI)
310IFNP=226 OR NP=225 THEN CLS:PRINT"O
h Dear you should have kept off the g
rass because the Park-keeper has just m
owed you down!!!"':PROCDEAD
320IFNP=32 THEN GOTO 390
330VDU31,MX,MY,32:I=1:J=FALSE
340MX=MX+XI:MY=MY+YI
350REPEAT
360IF MX=T%(I,1) AND MY=T%(I,2) THEN M
X=T%(T%(I,5),3):MY=T%(T%(I,5),4):J=TRUE
370I=I+1:UNTIL J=TRUE
380VDU31,MX,MY,224:GOTO410
390VDU31,MX,MY,32,31,MX+XI,MY+YI,224
400MX=MX+XI:MY=MY+YI
410TERROR=RND(25)-1
420IFTERROR=LAST GOTO410ELSELAST=TERRO
R
430IF TERROR=0 PROCGAMBLER
440IF TERROR=1 PROCGORRILA
450IF TERROR=2 PROCMAD
460IF TERROR=3 PROCHAIL
470IF TERROR=4 PROCFOREST
480IF TERROR=5 PROCLION
490IF TERROR=6 PROCCRUSHER
500IF TERROR=7 PROCEDNA
510VDU31,MX,MY,224
520UNTIL MX=38 AND MY=10:*TV255
530MODE7:END
540DEFPROCSETSCREEN
550VDU23,0,9,7,0,0,0,0,0,0
560VDU23,0,4,38,0;0;0;19,7,3,0,0,0
570VDU23,1,0;0;0;0;
580ENDPROC
590DEFPROCVARS:LAST=-1:MX=1:MY=10:ENDP
ROC
600DEFPROCMAP
610PRINTSTRING$(40,CHR$(225));
620FOR Y=1 TO 22
630PRINT" ";STRING$(38,CHR$226);" ";
640NEXT Y:D$=" "+CHR$10+CHR$8
650PRINTSTRING$(40,CHR$(225));
660PRINTTAB(9,2)SPC(10)TAB(21,2)SPC(8)
TAB(9,15)SPC(5)TAB(11,5)SPC(1)TAB(11,6)S
PC(6)TAB(23,6)SPC(2)TAB(32,6)SPC(2)TAB(2
4,7)SPC(9)TAB(25,8)SPC(2)TAB(30,8)SPC(2)
TAB(24,9)SPC(2)
670PRINTTAB(31,9)SPC(2)TAB(18,3)SPC(1)
TAB(1,10)SPC(16)TAB(37,10)SPC(2)TAB(19,1
1)SPC(3)TAB(10,12)SPC(4)TAB(24,13)SPC(2)
TAB(31,13)SPC(2)TAB(25,14)SPC(2)TAB(30,1
4)SPC(2)TAB(11,4)SPC(8)
680PRINTTAB(3,15)SPC(5)TAB(24,15)SPC(9
)TAB(23,16)SPC(2)TAB(32,16)SPC(2)TAB(3,1
8)SPC(5)TAB(9,18)SPC(3)TAB(3,20)SPC(2)TA
B(4,21)SPC(8)TAB(13,21)SPC(3)TAB(21,21)S
PC(8)
690PRINTTAB(3,16)STRING$(4,D$)TAB(4,11
)STRING$(4,D$)TAB(24,9)STRING$(5,D$)TAB(
9,3)STRING$(7,D$)TAB(9,13)STRING$(5,D$)T
AB(13,13)STRING$(8,D$)TAB(11,19)STRING$(
2,D$)TAB(15,9)STRING$(3,D$)
700PRINTTAB(15,19)STRING$(2,D$)TAB(16,
17)STRING$(3,D$)TAB(17,15)STRING$(3,D$)T
AB(18,13)STRING$(3,D$)TAB(28,3)STRING$(4
,D$)TAB(28,16)STRING$(5,D$)TAB(32,10)STR
ING$(3,D$)
710PRINTTAB(7,15)STRING$(4,D$)TAB(19,1
2)STRING$(2,D$)TAB(21,2)STRING$(20,D$)
720FORI=1TO13:VDU31,T%(I,1),T%(I,2),22
9:NEXT
730PRINTTAB(2,2);"Keep";TAB(2,4);"Off"
;TAB(2,6);"The";TAB(2,8);"Grass"
740PRINTTAB(30,19)"NiteMare"TAB(32,21)
"Park"
750COLOUR0:COLOUR129
760PRINTTAB(13,0)"By John Henson"
770COLOUR7:COLOUR128
780ENDPROC
790DEFPROCSETVDU:FOR L%=128 TO 224 STE
P 96
800VDU23,L%,0,8,28,127,62,28,54,34
810VDU23,L%+1,255,255,255,255,255,255,
255,255
820VDU23,L%+2,85,170,85,170,85,170,85,
170
830VDU23,L%+3,60,126,126,126,24,24,24,
0
840VDU23,L%+4,60,126,255,126,102,102,1
02,102
850VDU23,L%+5,0,126,66,90,90,66,126,0:
NEXT
860ENDPROC
870DEFFNPEEK(X%,Y%)
880LOCAL A%,C% :A%=135:VDU31,X%,Y%
890C%=((USR(&FFF4) AND &FFFF)DIV&100)
900IF C%<128 THEN =C%
910=(C% MOD 32)+224
920DEFPROCGORRILA
930RESTORE 950
940CLS:N=RND(11)-1:FORI=1TON:READN$:NE
XT
950DATAWINSTON,HENRY,PERCIVAL,SIDNEY,A
LBERT,FREDRICK,RONALD,STANLEY,EDWARD,LIO
NEL
960PRINT"AARGH!, It's the EGOTISTICAL
GORRILLA"'
970PRINT"Tell him his name or be disma
ntled!!"
980PRINT'"It is revealed in a flash of
light."
990I=INKEY(500)
1000PRINTTAB(15,12);N$
1010 FOR I=1 TO 120*RND(2)+1:NEXT
1020PRINTTAB(15,12);" "
1030INPUT "What is his name ",n$
1040IF N$<>n$ PRINT'"Grrr! Snarl! You g
ot it ... ";:I=INKEY(200):PRINT"Wrong!":
PROCDEAD
1050PRINT'"Grrr! Snarl! You got it ...
";:I=INKEY(200):PRINT"Right!"
1060 I=INKEY(200):CLS:PROCMAP
1070ENDPROC
1080DEFPROCMAD
1090CLS
1100PRINT"AARGH!, It's the MAD MATHEMAT
ICIAN"
1110PRINT'"He says you must answer his
sum"'
1120PRINT"correctly in 15 seconds or el
se !!!!!"
1130S$=STR$(RND(10))+"+"+STR$(RND(10))+
"+"+STR$(RND(10))+"+"+STR$(RND(10))+"+"+
STR$(RND(10))+"+"+STR$(RND(10))
1140I=INKEY(300):PRINT''SPC(13);S$
1150T=TIME:PRINT:INPUT"Answer ",A
1160PRINT
1170IF A<>EVAL(S$) THEN PRINT"Wrong dum
my it was ";EVAL(S$)' ELSE PRINT"Right s
marty pants it was indeed ";EVAL(S$)'
1180IF TIME>T+1500 ANDA=EVAL(S$) THEN P
RINT"But you were too slow !!":I=INKEY(2
00):PROCDEAD ELSE IF TIME>T+1500 THEN PR
INT"But you were to slow anyway !!":I=IN
KEY(200):PROCDEAD
1190IFA<>EVAL(S$) THEN I=INKEY(200):PRO
CDEAD
1200I=INKEY(300)
1210CLS:PROCMAP:ENDPROC
1220DEFPROCGAMBLER :CLS
1230PRINT"AARGH!, It's the GRUESOME GAM
BLER"
1240PRINT'"He says you must guess if yo
ur dice will"'"be higher or lower than h
is"
1250D$=STR$(RND(6)):D1$=STR$(RND(6))
1260PRINT'"He rolls a ";D$
1270 PRINT'"You guess higher or lower (
H/L) ";:REPEAT:G$=GET$:UNTILG$="H" OR G$
="L":PRINTG$
1280 PRINT'"You roll a ";:I=INKEY(200):
PRINTD1$'
1290IF G$="H" AND D$<D1$ THEN 1320
1300IF G$="L" AND D$>D1$ THEN 1320
1310PRINT"Wrong! ha ha ha !!":PROCDEAD
1320PRINT"Grrr! Snarl! Right!":I=INKEY(
400)
1330CLS:PROCMAP:ENDPROC
1340DEFPROCHAIL :CLS
1350PRINT"Stand still and prepare yours
elf for a"''"HAIL OF BARBES."
1360FOR I=1 TO 7000:NEXT:CLS
1370PRINTTAB(19,19);CHR$(224)
1380C=0:REPEAT:X=RND(15)+24:Y=0
1390REPEAT VDU31,X,Y,ASC("X")
1400FOR I=1 TO 100:NEXT
1410X=X-1:Y=Y+1:UNTIL Y=20 OR X=0
1420IF FNPEEK(19,19)<>224 GOTO 1480
1430X=RND(16)-1:Y=0
1440REPEAT VDU31,X,Y,ASC("X")
1450FOR I=1 TO 100:NEXT
1460X=X+1:Y=Y+1:UNTIL Y=20 OR X=39
1470C=C+1:UNTIL C=5 OR FNPEEK(19,19)<>2
24
1480S=FNPEEK(19,19)
1490IFS<>224 THEN CLS:PRINT"Too bad, yo
u were hit by a BARB!":PROCDEAD
1500I=INKEY(400):CLS
1510PRINT'"You were lucky there."
1520 I=INKEY(200):CLS:PROCMAP:ENDPROC
1530DEFPROCFOREST:CLS
1540PRINT"You have 30 seconds to get ho
me( )"''"throught the forest, if you run
into any"'"trees you will break your ne
ck."''"Use arrow keys to move."
1550I=INKEY(600):CLS:N=32
1560PRINTSTRING$(40," ");
1570FORI=1TO22:PRINT" ";SPC(38);" ";:NE
XT
1580PRINTSTRING$(40," ");
1590FORI=1TO250:VDU31,RND(39)
1600VDURND(22),227:NEXT
1610VDU31,19,12,228
1620REPEAT:X=RND(37)+1:Y=RND(20)+1:UNTI
L FNPEEK(X,Y)=32
1630T=TIME:REPEAT
1640IT=TIME:REPEAT:D=INKEY(0)
1650VDU31,0,24:PRINT"TIME:";(INT(TIME-T
)/100);" ";
1660VDU31,X,Y,32
1670IF D=136 N=FNPEEK(X-1,Y):X=X-1
1680IF D=137 N=FNPEEK(X+1,Y):X=X+1
1690IF D=138 N=FNPEEK(X,Y+1):Y=Y+1
1700IF D=139 N=FNPEEK(X,Y-1):Y=Y-1
1710VDU31,X,Y,224
1720UNTIL TIME>IT+300 OR N<>32
1730IF N=227 OR N=228 THEN GOTO 1770
1740FORK%=1TO25
1750REPEAT:A%=RND(37)+1:B%=RND(20+1):UN
TIL FNPEEK(A%,B%)=32
1760VDU31,A%,B%,227:NEXT
1770UNTIL N<>32 OR TIME>T+3000
1780IF N=227 THEN CLS:PRINT"Oops! clums
y! you ran into a tree and"''"broke your
neck.":PROCDEAD
1790ET=TIME:IF ET>=T+3000 THEN CLS:PRIN
T"Ooops!, too long you have died!":PROCD
EAD
1800CLS:PRINT"Grrr! Snarl! Made it!!"
1810PRINT'"You are free to go now"
1820I=INKEY(200):CLS:PROCMAP:ENDPROC
1830DEFPROCDEAD
1840PRINT'"Another victim to chalk up o
n the"''"Park-keepers scoreboard."''"You
survived for ";GOES;" move";
1850IFGOES>1 PRINT"s."' ELSE PRINT"."'
1860PRINT'"Would you like to try again?
(Y/N) ";:REPEAT:A$=GET$:UNTIL A$="Y" OR
A$="N":PRINTA$
1870IF A$="Y" RUN ELSE OSCLI("TV255"):C
ALL !-4
1880DEFPROCLION:CLS
1890PRINT"Aaargh! It's the POTTY ZOO-KE
EPER!!"'
1900PRINT"Hidden behind one of three do
ors is a"''"lion!"''"You must pick a saf
e door."
1910FORY=10 TO 17:VDU31,4,Y:PRINT"
":VDU31,16,Y:PRINT" ":VDU31,27,Y
:PRINT" ":NEXT Y
1920VDU31,7,14:PRINT"1":VDU31,19,14:PRI
NT"2":VDU31,30,14:PRINT"3"
1930VDU31,0,20:PRINT "You choose door n
umber? ";
1940REPEAT:A$=GET$:UNTIL A$="1" OR A$="
2" OR A$="3":PRINTA$
1950D=VAL(A$):DOOR=RND(3):IF D=DOOR A$=
"LION!" ELSE A$="EMPTY"
1960IFD=1X=5
1970IFD=2X=17
1980IFD=3X=28
1990FORY=16 TO 11 STEP -1
2000VDU31,X,Y,32,32,32,32,32
2010SOUND&0011,-10,100-Y*3,-1:I=INKEY(1
00)
2020NEXT:SOUND&0011,0,0,0:VDU31,X,11:PR
INTA$:VDU31,0,22
2030IFD=DOOR PRINT"Aaargh! Grrr! Chomp!
Snarl! Crunch!":I=INKEY(200):CLS:PROCDE
AD
2040 PRINT"Phew! Escaped! That was luck
y.":I=INKEY(200):CLS:PROCMAP:ENDPROC
2050DEFPROCCRUSHER
2060CLS:PRINT"Oh! No! It's the Alphabet
Crusher!"''"You must press the right le
tter (A-Z) to"'"stop the roller advancin
g!"
2070l%=RND(27)-1:l%=ASC("A")+l%-1
2080L$=CHR$(l%)
2090I=INKEY(300):CLS
2100VDU31,19,20,224:SAME=FALSE
2110A%=-1:REPEAT:A%=A%+1:VDU31,0,A%:PRI
NTSTRING$(40," "):SOUND&0011,-10,A%*2+60
,-1
2120REPEAT:A$=GET$:UNTILA$<>""
2130IFA$=L$SAME=TRUE
2140UNTIL SAME OR A%=19
2150SOUND&0011,0,0,0
2160IFNOTSAME VDU31,0,20:PRINTSTRING$(4
0," "):SOUND0,-10,6,10
2170IFSAME VDU12:PRINT"Well done you st
opped the Crusher before"'"it was too la
te with the letter ";L$;".":FOR I=1 TO 9
000:NEXT:CLS:PROCMAP:ENDPROC
2180COLOUR0:COLOUR129
2190VDU12,31,0,7
2200PRINT"
"
2210PRINT"
"
2220PRINT"
"
2230PRINT"
"
2240PRINT"
"
2250I=INKEY(600):CLS:PROCDEAD:ENDPROC
2260DEFPROCEDNA
2270CLS:PRINT"The wicked witch Edna app
ears in a puff"''"of foul smelling smoke
. 'Your having"''"too much of an easy th
ing',she says."
2280PRINT'"Do you agree (Y/N) ?";
2290REPEAT:A$=GET$:UNTIL A$="Y" OR A$="
N"
2300PRINTA$'
2310IF RND(1)>.5 THEN N=TRUE ELSE N=FAL
SE
2320IF A$="Y" AND N PROCOK(1)
2330IF A$="N" AND N PROCOK(2)
2340IF A$="Y" AND NOT N PRINT"In that c
ase you wont mind going back"''"to the s
tart, will you?":PROCVARS
2350 IF A$="N" AND NOT N PRINT"Because
you argued with Edna she sends"''"you ba
ck to the start.":PROCVARS
2360I=INKEY(700):CLS:PROCMAP:ENDPROC
2370DEFPROCOK(Z)
2380IF Z=1 PRINT"Because you agree with
Edna she decides"''"to leave you be and
dissapears."
2390IF Z=2 PRINT"Oh oh! You shouldnt ar
gue with Edna."''"She raises her hands w
iggles her fingers"'"and zaps off in a h
uff."
2400ENDPROC