It the worth type-in program ever typed by a French guy...
I have typed more than thousand programs, never more five hours to debug time per programs !
Code: Select all
# *** THE VALLEY OF ADVENTURE ***
# *******************************
# (C) ZX81 POSTER PROGRAM
# ZX81 + 16K RAMPAK.
#
# TYPED BY XAVSNAP
# AND YOU.
#
#
# ERRORS :
# LINE 2 : OFFSET DECAY.
# (23 REPEATED TWICE)=>ORIGINAL
# LINE 5 : OK (END OF LINE=BUFFER)
# LINE 490 : S$=??? => INIT TO " "
#
#
# RESERVED REM 36 BYTES.
#1 REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1 REM [HEX:\
0E,06,2A,0C,40,06,20,23,\
71,10,FC,23,23,11,1F,00,\
06,0D,71,19,71,23,23,10,\
F9,11,DF,FF,19,06,1E,23,\
71,10,FC,C9 ]
#
#
# RESERVED REM 41 BYTES.(REAL LENGHT 41 <>42)
#2 REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2 REM [HEX:\
3E,80,2A,0C,40,23,06,16,\
23,77,10,FC,06,0C,11,0C,\
00,ED,5A,77,11,15,00,ED,\
5A,77,10,F2,11,0C,00,ED,\
5A,06,16,77,23,10,FC,C9,\
3D ]
#
#
# RESERVED REM 240 BYTES. (<>239)
#3 REM XXXXXXXXXXXXXXXXXXXXXXXXXXXIT MISSESXXXXXXXXXXXXYOU AVOID THE BLOWXXXXXXXXXXXXIT HESITATESXXXXXXXXXXXXIT STRIKES YOUR HEADXXXXXXXXXXXXXXXXYOUR CHEST IS STRUCKXXXXXXXXXXXXXXXXYOUR ARM IS HITXXXXXXXXXXXXA BODY BLOWXXXXXXXXYOUR LEG IS HITXXXXX
3 REM [HEX:\
E1,7E,23,E5,FE,FF,C8,D7,\
18,F6,06,0A,3A,34,40,90,\
30,FD,80,3C,FE,01,20,11,\
CD,DB,40,2E,39,00,32,2E,\
38,38,2A,38,FF,01,00,00,\
C9,FE,02,20,1A,CD,DB,40,\
3E,34,3A,00,26,3B,34,2E,\
29,00,39,2D,2A,00,27,31,\
34,3C,FF,01,00,00,C9,FE,\
03,20,14,CD,DB,40,2E,39,\
00,2D,2A,38,2E,39,26,39,\
2A,38,FF,01,00,00,C9,FE,\
04,20,1C,CD,DB,40,2E,39,\
00,38,39,37,2E,30,2A,38,\
00,3E,34,3A,37,00,2D,2A,\
26,29,FF,01,03,00,C9,FE,\
05,28,04,FE,06,20,1C,CD,\
DB,40,3E,34,3A,37,00,28,\
2D,2A,38,39,00,2E,38,00,\
38,39,37,3A,28,30,FF,01,\
02,00,C9,FE,07,28,04,FE,\
08,20,17,CD,DB,40,3E,34,\
3A,37,00,26,37,32,00,2E,\
38,00,2D,2E,39,FF,01,01,\
00,C9,FE,09,20,13,CD,DB,\
40,26,00,27,34,29,3E,00,\
27,31,34,3C,FF,01,02,00,\
C9,CD,DB,40,3E,34,3A,37,\
00,31,2A,2C,00,2E,38,00,\
2D,2E,39,FF,01,01,00,C9,\
]
#
#
# RESERVED REM 98 BYTES (<>103)
#4 REM XXXXXXXXXXXGOLD =XXXXXXXCOMBAT STR= SKILL=XXXXXXXPSI.POWER = TURNS=XXXXXXXSTAMINA =XXX
4 REM [HEX:\
06,09,3E,00,D7,10,FD,C9,\
CD,DB,40,2C,34,31,29,00,\
14,FF,CD,D1,41,CD,DB,40,\
28,34,32,27,26,39,00,38,\
39,37,14,00,00,00,00,00,\
00,38,30,2E,31,31,14,FF,\
CD,D1,41,CD,DB,40,35,38,\
2E,1B,35,34,3C,2A,37,00,\
14,00,00,00,00,00,00,39,\
3A,37,33,38,14,FF,CD,D1,\
41,CD,DB,40,38,39,26,32,\
2E,33,26,00,00,00,14,FF,\
C9,00 ]
#
#
# RESERVED REM 109 BYTES
#5 REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 REM [HEX:\
01,01,01,05,07,05,01,02,\
08,05,04,03,03,06,02,03,\
01,01,05,04,07,08,01,3A,\
34,40,90,30,FD,80,3C,C9,\
06,64,CD,50,42,06,32,90,\
38,04,06,11,18,02,06,09,\
CD,50,42,4F,FE,0F,28,07,\
FE,10,28,0E,06,00,C9,3A,\
4F,42,06,04,90,38,D9,06,\
00,C9,06,64,CD,50,42,06,\
32,90,38,CC,06,00,C9,CD,\
78,42,21,38,42,09,7D,BB,\
C8,15,28,ED,23,18,F7 ]
#
#
#
# XAVSNAP --->
10 LET V=PEEK 16396+256*PEEK 16397
15 IF J$="n" THEN GOTO 50
20 PRINT"cONTINUE OR nEW GAME?"
30 GOSUB 600
40 IF G$="C" THEN GOTO 240
50 LET EX=K+H
60 DIM T(B)
70 LET TS=O
75 LET TN=O
# 80 LET TM=B
85 LET CF=O
115 LET G(H)=O
116 LET S(H)=O
120 PRINT ,,"HWO DARES THE VALLEY?"
123 INPUT J$
126 CLS
130 PRINT "CHARACTER TYPE",,,,"WIZARD...(1)",,"THINKER..(2)",,"BARBARIAN(3)","KEY 1-5","WARRIOR..(4)",,"CLERIC...(5)",,,," CHOOSE CAREFULLY"
140 GOSUB 600
150 IF G$<"1" OR G$>"5" THEN GOTO 140
155 LET A=VAL(G$)
160 GOSUB 160+A*10
162 PRINT AT H+A,CODE"@0A";CHR$ (A+CODE "@9C")
165 GOTO 230
168 PRINT "MAY THY GOD PROTECT THREE...."
#
170 LET P$="WIZARD"
174 LET P1=H1
175 LET PS=CODE"0"
176 LET C1=H/H1
178 LET CS=R+H
179 RETURN
#
180 LET P$="THINKER"
184 LET P1=B/H1
185 LET C1=B/K
186 LET CS=R+B
188 LET PS=CODE","
189 RETURN
#
190 LET P$="BARBARIAN"
194 LET P1=H/H1
195 LET C1=H1
196 LET CS=CODE"0"
198 LET PS=R+H
199 RETURN
#
200 LET P$="WARRIOR"
204 LET P1=H
205 LET C1=H+H/K
206 LET CS=CODE","
208 LET PS=R+B
209 RETURN
#
210 LET P$="CLERIC"
214 LET C1=H
215 LET CS=R-H
216 LET P1=H+H/K
218 LET PS=CS
219 RETURN
#
220 LET P$="DOLT"
224 LET P1=H
225 LET C1=H
226 LET CS=R-H
228 LET PS=CS
229 RETURN
#
235 LET C=CODE"’"
236 LET RX=77-INT(H1*P1**2.5)
237 LET RY=INT(42*(P1*H)**LN(P1**3.7))+75
238 LET RZ=125-INT(INT(P1)*12.5)
250 POKE 16418,O
275 GOSUB 5000
285 GOSUB 380
290 GOTO 2000
300 LET TV=O
303 LET G$=""
305 FOR I=H TO R*H1
310 IF INKEY$="" THEN GOTO 330
315 LET G$=INKEY$
320 GOTO 350
330 NEXT I
340 LET TV=H
350 GOSUB 490
355 RETURN
360 FOR I=H TO K+K
365 NEXT I
370 RETURN
380 PRINT AT R-K-H,O;
385 LET PZ=USR 16857
390 IF CS>RX THEN LET CS=RX
395 IF PS<K+B THEN LET PS=K+B
400 IF PS>RY THEN LET PS=RY
410 IF C>RZ THEN LET C=RZ
420 PRINT AT R-B-K,B+B;J$;",THE ";P$
425 IF T(H)=H THEN PRINT "AMULET+";T(2)
430 PRINT AT R-K-H,O;TAB B+B;TS,TAB(R+B);CS;" ",TAB B+B;EX,TAB R+B;PS;" ",TAB B+B;TN,TAB R+B;C;" ";
460 IF CF=H THEN GOTO 480
465 PRINT AT R-H,O;S$
475 GOTO 490
480 PRINT AT R-H,O;K$;" STR.=";MS;";";N;" "
490 PRINT AT R,O;S$;AT R,O;
499 RETURN
500 IF T(H1)<>B+B THEN GOTO 520
505 PRINT AT R,O;"THE AMULET PROTECTS YOU"
510 GOTO 60
520 GOSUB 550
525 GOSUB 490
530 LET G$="«go«meet«your«god«–"
533 LET F$=G$(H)
535 LET D$=G$(H1 TO )
536 LET G$=D$+F$
537 PRINT AT R,K;G$
540 GOTO 533
550 LET XR=INT(.067*(EX+TS/B)**(H/H1)+LN(EX/((TN+H)**(B/H1))))
560 PRINT AT R-H,O;S$;AT R-H,K;"your«rating«is ";XR
570 RETURN
600 LET G$=INKEY$
605 IF G$="" THEN GOTO 600
610 RETURN
#
650 PRINT AT R,O;"SAFE CASTLE:QUIT(Y/N)"
660 IF CS<R+H1 THEN LET CS=R+H1
670 POKE M+V,PK
680 LET PK=PEEK (W+V)
690 LET M=W
700 POKE M+V,QX
710 GOSUB 550
720 GOSUB 600
730 IF G$="Y" THEN GOTO 780
740 LET C=CODE"’"
750 PRINT AT R,O;"REFRESHED AND READY "
760 GOSUB 390
770 GOTO 2020
#
780 CLS
782 PRINT "SAVE GAME TO SAVE CHARACTER",,,"«goto« ———«",,,,,,"GOTO 10 TO PLAY AGAIN"
788 STOP
800 GOSUB 490
805 PRINT "SPELL NO.˜ OR ™"
810 GOSUB 300
815 IF TV=H THEN GOTO 3600
820 IF G$>"2" THEN GOTO 880
825 GOSUB 900+(80 AND G$="2")
830 GOSUB 390
833 IF C<=O THEN GOTO 3660
835 GOTO 830+(10*F)
840 GOTO 2020
850 GOTO 3830
#
#
860 GOTO 3575
870 PRINT"IT IS BEYOND YOUR POWER"
875 GOTO 3830
880 PRINT"NO SUCH SPELL"
885 GOTO 3830
890 PRINT"THE SPELL FAILS"
895 GOTO 3830
#
900 GOTO 928
902 PRINT"SLEEP YE BEAST"
906 IF RND>H/H1 THEN GOTO 918
907 GOSUB 430
908 PRINT"IT COLLAPSES"
910 LET EX=INT(EX+U/H1)
912 LET CF=O
914 LET F=H
916 RETURN
#
918 LET F=B+B
920 RETURN
#
922 IF C<=21 THEN GOTO 966
924 LET C=C-(R+B)
926 GOTO 982
#
928 IF C<=6 THEN GOTO 966
930 LET C=C-K-H
932 GOTO 902
940 PRINT"MISSED IT.."
942 GOTO 3830
950 IF MS<=O THEN LET MS=O
952 IF N<=O THEN LET N=O
954 GOSUB 410
956 GOTO 991
966 LET F=K
968 RETURN
970 LET F=H1
972 RETURN
#
980 IF PS<55 OR EX<2000 THEN GOTO 966
981 GOTO 922
#
982 PRINT"BURN YE DAMNED BEAST...."
983 IF RND<H/B THEN GOTO 918
984 LET D=INT((CS+PS*RND)-(10*N*RND))
985 IF D<=O THEN GOTO 982
986 IF MS=O THEN LET N=N-D
987 IF MS=O THEN GOTO 990
988 LET MS=MS-D
989 IF D>10 THEN LET N=INT(N-(D/B))
990 GOTO 950
#
991 PRINT"YOU INFLICT ";D;" DAMAGE"
992 IF MS+N>O THEN GOTO 970
993 GOSUB 410
994 PRINT"IT EXPIRES IN FLAMES"
995 LET EX=EX+U
996 LET CF=O
997 GOTO 914
#
1000 LET F=INT(H+RND*6)
1005 IF F=H1 OR F=K THEN LET F=F+H
1010 GOSUB 1020+(20*F)
1025 GOSUB 390
1030 GOTO 2020
#
1040 PRINT"CIRCLE OF EVIL"
1045 LET CS=CS+INT((FL+H)/H1)
1050 LET PS=PS-INT((FL+H)/H1)
1055 LET C=C-R+B
1060 IF C<=O THEN GOTO 500
1070 RETURN
#
1080 PRINT"A HOARD OF GOLD"
1090 LET TS=TS+INT(FL*RND*100+100)
1100 RETURN
#
1120 PRINT"A MAGICAL AREA"
1125 GOTO 1150
#
1140 PRINT"AN ANCIENT POWER AREA"
1150 LET PS=PS+H+H+INT(FL*P1)
1160 LET CS=CS+H+INT(FL*C1)
1170 LET C=C+R
1180 RETURN
#
1505 POKE M+V,O
1506 LET M=W
1507 LET PK=O
1508 POKE M+V,52
1510 LET RN=RND
1520 GOSUB 490
1535 IF S=B+B AND RN>.95 AND T(H1)=S AND T(B)=O THEN GOTO 1580
1545 IF S=K+H AND RN>.85 AND T(H)=O THEN GOTO 1590
1550 IF S=K AND RN>.7 AND T(H)=H AND T(H1)<B+B AND FL>T(H1) THEN GOTO 1600
1555 IF RN>.43 THEN PRINT "A WORTHLESS STONE"
1560 IF RN>.43 THEN GOTO 1650
1570 PRINT"A PRECIOUS STONE";
1575 GOTO 1630
#
1580 LET T(B)=H
1583 PRINT"the«helm«of«evanna"
1585 GOTO 1630
#
1590 LET T(H)=H
1593 PRINT"AMULET OF ALARIAN."
1595 GOTO 1630
#
1600 PRINT"AN AMULET STONE";
1610 IF RN>.85 THEN PRINT" WRONG ONE"
1615 IF RN>.85 THEN GOTO 1640
1620 PRINT" IT FITS."
1625 LET T(H1)=T(H1)+H
1630 LET TS=TS+100*(T(H)+T(H1)+T(B)+FL)
1660 GOTO 2370
#
2000 LET M=W
2010 LET PK=PEEK(W+V)
2015 POKE M+V,CODE"O"
2020 LET C=C+K+B+B
2024 GOSUB 490
2025 IF PK=CODE "." THEN GOTO 2040
2030 PRINT "WHICH DIRECTION ?"
2035 GOTO 2050
2040 PRINT "ON THE PATH: WHICH WAY ?"
2050 GOSUB 600
2055 IF G$<"1" OR G$>"9" THEN GOTO 2050
2060 LET A=VAL G$
2065 IF (G$="1" OR G$="4" OR G$="7") AND PEEK(W+V-1)=118 THEN GOTO 2050
2070 IF A>B THEN LET A=A-B
2075 IF A>B THEN GOTO 2070
2080 LET W=M+A-H1-33*(INT((VAL(G$)-H)/B)-H)
2090 LET TN=TN+H
2095 GOSUB 490
2100 LET QX=CODE"O"
2110 LET Q=PEEK(W+V)
2120 IF Q=O OR Q=K+K+H THEN GOTO 2250
2130 IF Q=CODE"" THEN GOTO 650
2135 IF S>B AND Q=CODE"«" THEN LET Q=B+B
2140 IF Q=B+B OR Q=K+K OR Q=CODE"T" THEN LET TN=TN-H
2145 IF Q=B+B OR Q=K+K OR Q=CODE"T" THEN GOTO 2030
2150 IF Q=CODE"W" OR Q=CODE"t" OR Q=CODE"S" OR Q=CODE"H" THEN GOTO 4500
2160 IF Q=CODE"X" OR Q=CODE"³" THEN GOTO 4600
2180 IF Q=R-B THEN GOTO 6000
2185 IF Q=CODE"«" OR (G$="5" AND PK=CODE"«") THEN LET QX=CODE"o"
2190 IF Q=CODE"«" OR (G$="5" AND PK=CODE"«") THEN LET C=C-R+B
2200 IF C<=O THEN GOTO 500
2260 POKE M+V,PK
2265 LET PK=PEEK(W+V)
2270 LET M=W
2280 POKE M+V,QX
2295 IF PK=CODE"." THEN GOTO 2350
2300 LET F=RND
2305 GOSUB 490
2310 IF F<H/(H+K) THEN GOTO 3000
2320 IF F>B/K THEN GOTO 1000
#
2350 PRINT"THERES NOTHING HERE"
2370 GOSUB 410
2380 GOTO 2020
3000 PRINT "BEWARE......."
3010 LET CF=H
3020 IF Q=CODE"«" OR PK=CODE"«" THEN GOTO 3050
3030 POKE 16975,FL
3040 LET F=USR 16985
3045 GOTO 3051
3050 LET F=INT(R-K-H+RND*H1)
3051 LET CX=H
3052 FOR I=H TO F-H
3053 LET CX=CX+CODE M$(CX)
3054 NEXT I
3110 LET K$=M$(CX+K TO CX+CODE M$(CX)-H)
3115 LET MS=CODE M$(CX+H)
3120 IF MS=O THEN GOTO 3140
3130 LET MS=INT((CS/B)+MS*FL**.2/(RND+H))
3140 LET N=CODE M$(CX+H1)
3145 IF N=O THEN GOTO 3160
3150 LET N=INT(N*FL**.2/(RND+H))
3160 LET U=INT((F+H)*(FL**(B/H1)))
3180 PRINT AT R,O;"AN EVIL ";K$
3190 LET E=39*LN(EX)/3.14
3195 GOSUB 480
3500 IF RND>.6 THEN GOTO 4000
3510 PRINT "aTTACK(hbls)/rETREAT ?"
3520 GOSUB 300
3530 IF G$="R" THEN GOTO 3900
3540 IF TV=H THEN GOTO 3600
3550 IF G$<>"A" THEN GOTO 4000
3570 GOSUB 490
3575 PRINT AT R,K+B;"’«strike«quickly«’"
3580 GOSUB 300
3590 IF TV=O THEN GOTO 3620
3600 PRINT"TOO SLOW....TOO SLOW.."
3610 LET HF=O
3615 GOTO 3830
3620 IF G$="S" THEN GOTO 800
3640 IF MS=O THEN PRINT "YOUR SWORD IS USELESS"
3645 IF MS=O THEN GOTO 3830
3650 LET C=C-H
3660 IF C<=O THEN PRINT "YOU ARE EXHAUSTED"
3665 IF C<=O THEN GOTO 500
3670 LET F=RND*10
3675 LET Z=O
3680 IF G$="H" AND (F<5 OR CS>MS*K) THEN LET Z=H1
3690 IF G$="B" AND (F<7 OR CS>MS*K) THEN LET Z=H
3700 IF G$="L" AND (F<9 OR CS>MS*K) THEN LET Z=.3
3705 IF Z<>O THEN GOTO 3730
3710 PRINT "YOU MISSED IT"
3720 LET HF=O
3725 GOTO 3830
3730 IF HF=O THEN GOTO 3740
3732 LET D=MS+INT(RND*9)
3734 LET HF=O
3735 GOTO 3760
3740 LET D=INT((((CS*50*RND)-(10*MS)+E)/100)*Z)
3745 IF D<O THEN LET D=O
3750 IF CS>(MS-D)*K THEN LET HF=H
3760 LET MS=MS-D
3765 IF MS<=O THEN LET MS=O
3770 PRINT "A HIT ..."
3790 IF D<>O THEN GOTO 3600
3792 PRINT "BUT NO DAMAGE"
3793 LET HF=O
3795 GOTO 3830
3800 PRINT D;" DAMAGE"
3802 GOSUB 390
3805 IF MS<=O THEN GOTO 3860
3820 IF HF=H THEN PRINT"THE ";K$;" STAGGERS..."
3830 GOSUB 390
3840 IF HF=H THEN GOTO 3570
3850 GOTO 4000
#
3860 PRINT "....KILLING THE MONSTER"
3870 LET EX=EX+U
3875 LET HF=O
3876 LET CF=O
3890 GOTO 2370
#
3900 PRINT "KNAVISH COWARD"
3905 LET CF=O
3910 GOTO 2370
#
4000 GOSUB 490
4005 PRINT "THE CREATURE ATTACKS"
4010 GOSUB 360
4020 IF MS=O THEN GOTO 4300
4030 IF MS<N AND N>B+B AND RND<H/H1 THEN GOTO 4300
4040 LET MS=MS-H
4045 IF MS<=O THEN GOTO 4240
4060 GOSUB 490
4070 LET Z=USR 16613
4080 IF Z=O THEN GOTO 4280
4160 LET G=INT((((MS*75*RND)-(10*CS)-E)/100)*Z)
4164 GOSUB 360
4165 GOSUB 490
4170 IF G<=O THEN LET G=O
4175 IF G=O THEN PRINT"...SAVED BY YOUR ARMOUR"
4177 IF G=O THEN GOTO 4280
4180 LET C=C-G
4190 IF G>9 THEN LET CS=INT(CS-G/6)
4210 PRINT "YOUR TAKE ";G;" DAMAGE"
4220 IF CS<=O OR C<=O THEN GOTO 500
4230 GOTO 4280
4240 PRINT AT R,O;"IN ITS DYING ATTEMPT"
4250 LET EX=INT(EX+U/H1)
4255 LET CF=O
4270 GOTO 2370
4280 GOSUB 390
4290 GOTO 2370
4300 PRINT AT R,O;"HURLING A LIGHTNING BOLT"
4310 LET G=INT (((180*N*RND)-(PS+E))/100)
4313 LET N=N-K-H
4315 IF G>9 THEN LET N=N-INT(G/5)
4320 GOSUB 360
4325 GOSUB 490
4330 IF N<=O THEN LET N=O
4335 IF N=O THEN GOTO 4240
4340 IF RND<H/K THEN GOTO 4410
4350 IF G<=O THEN LET G=O
4355 IF G=O THEN GOTO 4400
4360 PRINT "IT STRIKES HOME"
4370 GOSUB 390
4380 LET C=C-G
4385 IF G>9 THEN LET PS=INT(PS-G/K)
4390 GOTO 4210
4400 PRINT"YOUR PSI SHIELD PROTECTS YOU"
4405 GOTO 4280
4410 PRINT "MISSED YOU"
4415 GOTO 4280
4500 IF Q=CODE"H" AND PK=CODE"«" THEN GOTO 2020
4510 FOR I=B TO K+K
4520 LET N(I)=INT (K+RND*5)
4530 IF N(I)=K+H THEN GOTO 4520
4540 NEXT I
4550 IF S=H THEN LET MP=H
4560 LET P(B)=INT(R*RND+H1)
4650 LET C=C-K-B-B
4660 POKE M+V,O
4670 POKE W+V,QX
4680 IF Q=CODE"³" THEN LET S=H
4685 IF Q=CODE"³" THEN LET FL=H
4690 IF Q<>CODE"X" THEN GOTO 4720
4693 IF S=K THEN LET S=H
4695 IF S=K THEN LET FL=H
4700 IF S=K+H OR S=B+B THEN LET S=S-B
4705 IF S=K+H OR S=B+B THEN LET FL=FL-K
4710 IF S=K+H OR S=B+B THEN LET M=MW
4715 LET XP=O
4720 IF Q<>CODE"W" AND Q<>CODE"S" THEN GOTO 4750
4726 IF Q=CODE"W" THEN LET S=B
4728 IF Q=CODE"W" THEN LET FL=B
4730 IF Q=CODE"S" THEN LET S=H1
4732 IF Q=CODE"S" THEN LET FL=S
4734 LET X=INT(H+5*RND)
4740 LET Y=P(B)
4750 IF Q=CODE"t" THEN LET S=K
4755 IF Q=CODE"t" THEN LET FL=H1
4760 IF Q<>CODE"H" THEN GOTO 4780
4763 LET S=S+B
4765 LET FL=FL+K
4770 LET MW=M
4780 IF FL>K+K THEN LET FL=FL-K
4781 GOSUB 5000+\
(300 AND S=H1)+\
(310 AND S=B)+\
(500 AND S=K)+\
(510 AND S>=K+H)
4793 GOSUB 380
4795 GOTO 2000
5000 CLS
5001 POKE ZZ,H
5002 POKE ZZ+H,K+H
5003 POKE ZZ+H1,K
5004 POKE ZZ+B,K+B
5005 POKE ZZ+K,K+K
5006 LET S=H
5007 LET FL=H
5010 POKE 16515,6
5020 LET ZP=USR 16514
5040 IF G(H)<>O THEN GOTO 5160
5050 LET M=H+(33*INT(11*RND+H))
5051 LET L=M
5052 LET MP=M
5053 LET W=M
5054 LET G(H)=M
5060 POKE M+V,149
5070 FOR I=B TO 33
5075 IF RND>H/H1 THEN GOTO 5090
5080 LET L1=L+34
5085 GOTO 5100
5090 LET L1=L-32
5100 IF L1<34 OR L1>396 THEN GOTO 5075
5110 LET G(I)=L1
5120 LET L=L1
5130 POKE G(I)+V,27
5140 NEXT I
5150 POKE G(33)+V,149
5155 GOTO 5200
5165 POKE G(H)+V,149
5170 FOR I=B TO 33
5175 POKE G(I)+V,27
5180 NEXT I
5190 POKE G(33)+V,149
5200 IF S(H)<>O THEN GOTO 5250
5210 FOR I=H TO K+H
5220 LET S(I)=33*INT(H+RND*11)+INT (H1+RND*28)
5230 IF PEEK(S(I)+V)<>O OR PEEK(S(I)+H+V)<>O THEN GOTO 5220
5240 NEXT I
5250 POKE S(H)+V,60
5255 POKE S(H)+H+V,60
5260 POKE S(H+H)+V,60
5265 POKE S(H+H)+H+V,60
5270 POKE S(B)+V,56
5275 POKE S(B)+H+V,56
5280 POKE S(K)+V,56
5285 POKE S(K)+V,56
5290 POKE S(K+1)+V,185
5292 LET M=MP
5294 LET W=M
5297 RETURN
5300 POKE ZZ,H
5301 POKE ZZ+H,B+B
5302 POKE ZZ+H1,O
5303 POKE ZZ+B,O
5304 POKE ZZ+K,O
5307 LET PD=O
5308 LET PC=CODE"¾"
5309 GOTO 5320
5310 POKE ZZ,H
5311 POKE ZZ+H,H+K
5312 POKE ZZ+H1,B+B
5313 POKE ZZ+B,K+K
5314 POKE ZZ+K,O
5315 LET PC=CODE"T"
5320 LET PK=O
5325 CLS
5330 FOR I=H TO 50
5335 LET N=33*INT(H1+RND*11)+INT(H1+RND*28)
5340 POKE N+V,PC
5345 NEXT I
5350 PRINT AT X,Y;"««®";AT X+H,Y-H;"®««®«";AT X+H1,Y-H1;"«« ®««";AT X+B,Y-H1; "««H®®««";AT X+K,Y-H;"««««®««";AT X+K+H,Y;" ««®";AT X+B+B,Y+H1;"«"
5385 POKE 16515,136
5390 LET ZP=USR 16514
5399 POKE 345+V,O
5400 LET W=345
5405 IF Q=CODE"X" THEN LET M=MW
5407 IF Q=CODE"X" THEN LET W=H
5410 RETURN
#
5500 POKE ZZ,H
5501 POKE ZZ+H,H+K
5502 POKE ZZ+H1,B
5503 POKE ZZ+B,B+K
5504 POKE ZZ+B,O
5505 GOTO 5515
#
5510 POKE ZZ,K+H
5511 POKE ZZ+H,H1
5512 POKE ZZ+H1,B
5513 POKE ZZ+B,O
5514 LET P(FL)=P(B)
5515 LET HX=N(FL)
5516 LET PK=O
5518 LET P=O
5520 CLS
5540 LET PZ=USR 16556
5560 LET L1=CODE"9"
5570 FOR J=H TO B
5575 IF P(FL)>32 OR P(FL)<H THEN LET P(FL)=H
5580 LET D(J)=VAL Z$(P(FL))
5585 LET P(FL)=P(FL)+H
5590 IF D(J)<>9 THEN GOTO 5595
5592 LET P(FL)=H
5593 LET D(J)=B
5595 LET P=P+H
5600 NEXT J
5610 FOR I=O TO HX
5615 LET PC=CODE"«"
5620 LET L=L1+(33*I)
5625 IF L>386 THEN GOTO 5720
5630 IF I=H THEN LET PC=O
5640 IF D(H)=O THEN LET PC=CODE"«"
5645 IF D(H)=O THEN GOTO 5660
5650 POKE L+D(H)+V,PC
5655 LET PC=CODE"«"
5660 IF I=B THEN LET PC=O
5670 POKE L+D(H)+D(H1)+V,PC
5675 LET PC=CODE"«"
5680 IF I=K THEN LET PC=O
5690 POKE L+D(H)+D(H1)+D(B)+V,PC
5695 LET PC=CODE"«"
5700 NEXT I
5710 LET L1=L1+(33*HX)+33
5715 GOTO 5610
5720 LET L1=CODE"9"
5730 FOR J=H TO K
5740 LET L=L1+(33*J*(HX+H))
5750 FOR I=H TO R-K
5760 IF L>353 THEN GOTO 5810
5770 IF I=H1 OR I=B*HX OR I=R-B-B THEN GOTO 5790
5780 POKE L+I+V,PC
5790 NEXT I
5800 NEXT J
5810 IF S=K+H OR S=B+B THEN GOTO 5840
5820 IF FL/H1=INT(FL/H1) THEN POKE 418+V,R-B
5825 IF FL/H1=INT(FL/H1) THEN GOTO 5840
5830 POKE 36+V,R-B
5840 IF FL=H1 OR S=K+H OR S=B+B THEN POKE 446+V,61
5850 IF XP=O THEN LET W=413
5855 LET XP=H
5860 PRINT AT K*B+H1,H;
5865 IF S=K+H THEN GOTO 5930
5870 IF S=B+B THEN GOTO 5910
5880 PRINT "ZAEXON/S TOWER,L=";FL-H
5890 GOTO 5940
5910 PRINT "VOUNIM/S LAIR"
5920 GOTO 5960
5930 PRINT "Y/NAGIOTH TEMPLE"
5940 LET P(FL+H)=P(FL)+P
5960 IF FL<K OR RND<.3 THEN RETURN
5970 FOR I=H TO INT(RND*5+H1)
5980 LET N1=33*INT(H+RND*12)+INT(K+RND*17)
5992 IF PEEK(V+N1)<>O THEN GOTO 5980
5993 POKE N1+V,23
5995 NEXT I
5997 RETURN
6000 POKE W+V,52
6010 POKE M+V,O
6020 PRINT AT R,O;"STAIRS u/d ?"
6030 LET TV=FL
6040 GOSUB 600
6050 IF G$="U" THEN LET FL=FL+H
6055 IF G$="U" THEN GOTO 6070
6056 IF G$<>"D" THEN GOTO 6040
6060 LET FL=FL-H
6070 IF FL>K+B OR FL<H1 THEN GOTO 6090
6080 GOTO 4780
6090 PRINT AT R,O;"IT/S BLOCKED"
6092 GOSUB 360
6095 LET FL=TV
6099 GOTO 6020
#<--- XAVSNAP.
#
#
#
# 7000 REM ** LOAD MC CODES **
7000 FAST
#.
#---------------------
# 7002 REM INIT REM 1
#---------------------
# 7003 LET OFFSET=16514
# 7004 LET C=256
# 7005 LET C$="\
#0E062A0C40062023\
#7110FC2323111F00\
#060D711971232310\
#F911DFFF19061E23\
#7110FCC9"
# CHECK OK.
#.
# 7006 FOR R=OFFSET TO OFFSET+35
# 7007 POKE R,CODE C$(1)*16+CODE C$(2)-476
# 7008 LET C$=C$(3 TO )
# 7009 NEXT R
#.
#---------------------
# 7010 REM INIT REM 2
#---------------------
# 7011 LET OFFSET=16556
# TWO REDUNDENT "23"
# 7012 LET C$="\
#3E802A0C402306\
#16237710FC060C11\
#0C00ED5A77111500\
#ED5A7710F2110C00\
#ED5A0616772310FC\
#C9"
# CHECK OK.
# 7013 FOR R=OFFSET TO OFFSET+39
# 7014 POKE R,CODE C$(1)*16+CODE C$(2)-476
# 7015 LET C$=C$(3 TO )
# 7016 NEXT R
#.
#---------------------
# 7020 REM INIT REM 3
#---------------------
# 7021 LET OFFSET=16603
# 7022 LET C$="\
#E17E23E5FEFFC8D7\
#18F6060A3A344090\
#30FD803CFE022011\
#CDDB40$$$$00$$$$$$$$$$$$FF\
#010000C9FE02201A\
#CDDB40$$$$$$00$$$$$$$$$$00$$$$$$00$$$$$$$$FF\
#010000C9FE032014\
#CDDB40$$$$00$$$$$$$$$$$$$$$$$$FF\
#010000C9FE04201C\
#CDDB40$$$$00$$$$$$$$$$$$$$00$$$$$$$$00$$$$$$$$FF\
#010300C9FE052804\
#FE06201CCDDB40\
#$$$$$$$$00$$$$$$$$$$00$$$$00$$$$$$$$$$$$FF010200\
#C9FE072804FE0820\
#17CDDB40$$$$$$$$00$$$$$$00$$$$00$$$$$$\
#FF010100C9FE0920\
#13CDDB40$$00$$$$$$$$00$$$$$$$$FF\
#010200C9CDDB40\
#$$$$$$$$00$$$$$$00$$$$00$$$$$$FF010100C9"
# CHECK OK.
#.
# 7023 FOR R=OFFSET TO OFFSET+239
# 7024 IF C$(1)+C$(2)="$$" THEN GOTO 7026
# 7025 POKE R,CODE C$(1)*16+CODE C$(2)-476
# 7026 LET C$=C$(3 TO )
# 7027 NEXT R
#.
#---------------------
# 7030 REM INIT REM 4
#---------------------
#7031 LET OFFSET=16849
# 7032 LET C$="\
#06093E00D710FDC9\
#CDDB40$$$$$$$$00$$FFCDD1\
#41CDDB40$$$$$$$$$$$$00$$$$$$$$000000000000\
#$$$$$$$$$$$$FFCDD141CDDB\
#40$$$$$$$$$$$$$$$$$$00$$000000000000$$$$$$$$$$$$FF\
#CDD141CDDB40$$$$$$$$$$$$$$000000$$\
#FFC9"
# CHECK OK.
#.
# 7033 FOR R=OFFSET TO OFFSET+96
# 7034 IF C$(1)+C$(2)="$$" THEN GOTO 7026
# 7035 POKE R,CODE C$(1)*16+CODE C$(2)-476
# 7036 LET C$=C$(3 TO )
# 7037 NEXT R
#.
#---------------------
# 7040 REM INIT REM 5
#---------------------
# 7041 LET OFFSET=16953
# 7042 LET C$="\
#0101010507050102\
#0805040303060203\
#010000000000013A\
#34409030FD803CC9\
#0664CD5042063290\
#3804061118020609\
#CD50424FFE0F2807\
#FE10280E0600C93A\
#4F4206049038D906\
#00C90664CD504206\
#329038CC0600C9\
#0000000000000000\
#0000000000000000\
#000000000000"
# CHECK OK.
#.
# 7043 FOR R=OFFSET TO OFFSET+108
# 7045 POKE R,CODE C$(1)*16+CODE C$(2)-476
# 7046 LET C$=C$(3 TO )
# 7047 NEXT R
#.
#..
8010 LET O=PI-PI
8020 LET H=PI/PI
8030 LET B=INT PI
8040 LET K=CODE"¹"
8050 LET H1=CODE"·"
8060 LET R=CODE"*"
8065 LET XP=O
8070 LET ZZ=16970
8080 DIM D(4)
8090 DIM G(33)
8100 DIM P(9)
8110 DIM N(9)
8120 DIM S(5)
8121 DIM S$(32)
8122 LET J$="n"
8130 LET Z$="47364465360384355383450636464749"
8140 LET M$="\
@0A¾ AWOLFEN\
@0E¾ AHOB-GOBLIN\
@07¾ AORC\
@0C¼¸EFIRE-IMP\
@0E< GROCK-TROLL\
@09¿£EHARPY\
@08* AOGRE\
@10 ;BBARROW-WIGHT\
@0A>:HLIZARD\
@0E,=EFIRE-GIANT\
@12H VTHUNDER-LIZARD\
@0C7;CMINOTAUR\
@0A 2CWRAITH\
@0A8£FWYVERN\
@0AM=BDRAGON\
@0F HCRING-WRAITH\
@0AMMABALROG\
@0D??LWATER-IMP\
@0AM LKRAKEN"
8200 SLOW
9000 SAVE "VALLEY"
9001 GOTO 10
I ever run the game and checked the code for the $5600 memory offset... no problems.