Publisher: Abacus – Numero: N/A – Recupero codice: Francesco Fiorentini
Aspettando l’uscita di RetroMagazine World numero 45 ho pensato di fare cosa gradita rilasciando il listato di questo gioco per Dragon 32/64 pubblicato nel 1982 dalla Abacus.
Questa volta non ho digitato il codice del programma, ho soltanto estrapolato il listato dalla cassetta del gioco e, se ve lo state chiedendo, non é semplice, ma nemmeno difficilissimo. Come per tutte le cose bisogna sapere come fare ed avere a disposizione gli strumenti giusti (prima o poi ve ne parleró).
The Water of Life – La storia
Il lontano mondo di Valgorin sta lentamente venendo sopraffatto dalle forze del male guidate dagli Stregoni dell’Occhio. A contrastare il male è l’anziano sovrano di Valgorin, il Grande Onin.
Gli Stregoni dell’Occhio hanno lanciato un grande incantesimo per portare il Sonno Eterno e Onin, pur essendo un potente sovrano, non può resistere al suo potere ancora a lungo. Con la morte di Onin, l’oscurità scenderà per sempre sul mondo di Valgorin.
Nei luoghi selvaggi della Valgorin si aggirano ancora alcuni degli anziani guerrieri Warlock. Come Pendragon, che è stato al fianco di Onin per molti anni, combattendo insieme le forze del male.
Con Onin prossimo alla morte, solo Pendragon può salvarlo ottenendo l’Acqua della Vita dal Castello Eterno. Purtroppo, il Castello Eterno si trova nelle Terre Oscure controllate dagli Stregoni dell’Occhio. Sarà necessario un grande coraggio e ingegno da parte di Pendragon per ottenere l’Acqua della Vita e salvare Onin.
Tu sei Pendragon – dopo aver vissuto per molti eoni, molte delle tue conoscenze sono state dimenticate. Se vuoi avere successo, dovrai reimparare le grandi parole magiche e trovare la strada per il Castello Eterno.
Titolo: The Water of Life
Piattaforma: Dragon 32/64
Linguaggio: Basic
Versione originale: David Jenkins
Pubblicazione: Abacus – 17 Novembre 1982
Recupero codice: Francesco Fiorentini
Anno: 2023
Download: The Water of Life
Note: Emulatore suggerito, XRoar
Scopo del gioco
Tu sei Pendragon – dopo aver vissuto per molti eoni, molte delle tue conoscenze sono state dimenticate. Se vuoi avere successo, dovrai reimparare le grandi parole magiche e trovare la strada per il Castello Eterno.
E, W, N, S – East, West, North, South
A – Attack, H – Halt and access Menu, S – Cast a spell
Durante i combattimenti digitate il corrispondente valore numerico per colpire l’avversario!
Qui di seguito trovate il codice da copiare sul vostro computer Dragon 32/64.
Il codice é pronto per essere eseguito su un emulatore, consigliamo XRoar.
Per caricare il codice sull’emulatore XRoar:
– salvate il listato in un file .bas
– da File -> Cassette -> Input Tape… scegliete il file .bas
– digitate il comando: CLOAD
– una volta terminato il caricamento, digitate RUN per eseguire il gioco
Chi volesse provare il gioco direttamente puó scaricare il file gioco dal sito World of Dragon, (si veda la voce Download).
Attenzione – Ci siamo resi conto che nel listato i caratteri ‘>’ e ‘<‘ potrebbero venir sostituiti dai rispettivi encoding html ‘>’ e ‘<’. Nel caso, sostituite questi valori nel listato prima di copiarlo sull’emulatore.
Listato: Valley of Death – Dragon32/64 – Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702 1 CLEAR5635
12 GOSUB40000
15 X=2:Y=2:LO=1:D1=1
20 DIMBB(3)
21 DIM W$(18)
25 DIMM$(12),MS(12),N1(12)
27 FORI=1TO12
28 READM$(I),MS(I),N1(I)
29 NEXTI
30 FORI=1TO18
31 READW$(I)
32 NEXTI
33 FORI=1TO9
34 READL$(I)
35 NEXTI
36 FORI=1TO 10
37 READ KL$(I)
38 NEXTI
39 FOR I=1 TO RND(5)
40 READ BE,BF,BG
41 NEXT I
55 GOTO80
60 IF SE=1 THEN80
65 CLS7
70 PRINT@195,"MAP COMES WITH EXPERIENCE";
75 FORN=1TO 3000:NEXTN:GOTO1000
80 PMODE1,1:SCREEN1,0:PCLS:COLOR2,1
90 BB$="BM6,2;D1F1D1L3ND2R2D3G1ND5E1R1NU2R1F1ND5H1U3R2ND2L3U1E1U1L1"
95 DRAW"S8"+BB$
96 GET(2,2)-(16,20),BB,G
100 IF SE=0 THEN1000
105 LINE(0,0)-(254,190),PSET,B
110 AA$="BM0,48;E7R4E3U4E3R3E4U4R4D4G6L3G2D5G2L1G2L4G8U4"
120 DRAW"S8"+AA$
130 DRAW"BM71,80;R4E4R1E3R2E1R2F1R2F7R2L2BL8L10E3R3F2"
150 DRAW"BM152,45;E8U4E5R5F2D1F3D4G2D1F4D1G5L4G2L12H1L2H1L1H3U1E2R4BR5E5R5D3F2G3L5U1H3"
170 DRAW"BM96,132;U6R6U6R6U6R6U6R6U6R6D3L3D6L6D6L6D6L6D6L6D3L2"
190 DRAW"BM80,40;E10F8H4E8F6G3E5F4"
210 DRAW"BM74,65;E8H3G3E4F2E7F10H5G5F5H8G2"
230 DRAW"BM174,156;U12L3E2U2R3D2R3U2R3D2R3U2R3D2F2L3D6R3D2R3U2R3D2R3U2R3D2R3U2R3U23L3E2U2R3D2R3U2R1BD34L31U4H3L1G3D4L2NR10L6G3D1R49BU3"
250 DRAW"BM52,148;U22R10D4BL3H1L2G1D1F1R2E1BR3D17L9"
280 DRAW"BM76,165;U4L1E3F3L1D4L3"
290 DRAW"BM90,170;U4L1E3F3L1D4L3"
300 DRAW"BM80,178;U4L1E3F3L1D4L3"
310 DRAW"BM64,184;U4L1E3F3L1D4L3"
330 DRAW"BM92,186;U4L1E3F3L1D4L3"
350 DRAW"BM10,78;U7NG3NF3U3NG3NF3U1"
360 DRAW"BM10,108;U7NG3NF3U3NG3NF3U1"
370 DRAW"BM32,68;U7NG3NF3U3NG3NF3U1"
380 DRAW"BM32,96;U7NG3NF3U3NG3NF3U1"
400 DRAW"BM50,72;U7NG3NF3U3NG3NF3U1"
410 DRAW"BM68,24;U7NG3NF3U3NG3NF3U1"
420 DRAW"BM68,50;U7NG3NF3U3NG3NF3U1"
460 PAINT(2,48),3,2
470 PAINT(152,56),3,2
480 PAINT(98,130),4,2
490 PAINT(180,136),,2
500 PAINT(188,150),4,2
510 PAINT(180,160),3,2
530 PAINT(78,163),4,2
540 PAINT(92,169),4,2
550 PAINT(82,177),4,2
560 PAINT(66,183),4,2
570 PAINT(94,180),4,2
580 PAINT(62,118),,2
590 PAINT(62,114),4,2
600 PAINT(96,78),4,2
610 DRAW"S8C1"+BB$
620 PUT(X,Y)-(X+14,Y+18),BB,PSET
650 FORN=1TO2000:NEXTN
1000 CLS5
1010 PRINT@0,"WHAT NOW, PENDRAGON?";:PRINT@64,"1.PROCEED";:PRINT@128,"2.REST";:PRINT@192,"3.STATUS";:PRINT@256,"4.MAP";
1015 PRINT@384,"ENTER:1/2/3/4"
1020 C$=INKEY$
1030 IF C$="1" THEN2000
1040 IF C$="2" THEN 3000
1050 IF C$="3" THEN 10000
1060 IF C$="4" THEN 60
1080 GOTO1020
2000 CLS3:GOTO9000
2002 PRINT@12,"proceed:";:PRINT@77,"NORTH ";:PRINT@104,"WEST";:PRINT@116,"EAST";:PRINT@141,"SOUTH ";:PRINT@238,"HALT";
2003 A$=INKEY$
2004 IF A$="N" THEN2020
2005 IF A$="S" THEN2030
2006 IF A$="W" THEN2050
2007 IF A$="E" THEN2040
2008 IF A$="H" THEN1000
2009 GOTO2003
2010 INPUTA$
2020 Y=Y-16:LO=LO-16:IF Y<2 THEN Y=2:LO=LO+16
2025 GOTO2065
2030 Y=Y+16:LO=LO+16:IFY>164THENY=164:LO=LO-16
2035 GOTO2065
2040 X=X+16:LO=LO+1:IFX>252THENX=252:LO=LO-1
2045 GOTO2065
2050 X=X-16:LO=LO-1:IFX<2THENX=2:LO=LO+1
2065 LX=0
2066 M=M+1:BF=BF-1:BD=BD+2
2071 GOTO2900
2075 IF LO=3ORLO=18ORLO=33ORLO=34THENLX=1:IFLX=1THEN30000
2076 IFLO=5ORLO=21ORLO=37ORLO=49ORLO=50ORLO=51ORLO=52ORLO=65ORLO=66ORLO=67ORLO=81ORLO=82ORLO=83ORLO=97THENLX=2:IFLX=2THEN30000
2077 IFLO=8ORLO=22ORLO=23ORLO=24ORLO=25ORLO=38ORLO=39ORLO=40ORLO=54ORLO=55THENLX=3:IFLX=3THEN30000
2078 IFLO=70ORLO=71THENLX=4:IFLX=4THEN30000
2079 IFLO=12ORLO=27ORLO=28ORLO=29ORLO=41ORLO=41ORLO=43ORLO=44ORLO=45ORLO=57ORLO=58ORLO=59ORLO=60THENLX=5:IFLX=5THEN30000
2080 IFLO=75ORLO=90ORLO=91ORLO=104ORLO=105ORLO=106ORLO=119ORLO=120THENLX=9:IFLX=9THEN30000
2081 IFLO=100ORLO=101ORLO=116ORLO=117ORLO=132ORLO=133THENLX=6:IFLX=6THEN30000
2082 IFLO=148ORLO=149ORLO=150ORLO=165ORLO=166ORLO=167THENLX=7:IFLX=7THEN30000
2083 IFLO=123ORLO=124ORLO=125ORLO=139ORLO=140ORLO=141ORLO=142ORLO=143ORLO=144ORLO=155ORLO=156ORLO=157ORLO=158ORLO=159ORLO=160THENLX=8:IFLX=8THEN30000
2086 IF LX>0 THEN30000
2100 GOTO2000
2900 RF=RND(TI)
2910 IF RF>0.75 THEN GOTO 24999
2920 IF RF<0.45 THEN GOTO 20000
2930 PRINT@361,"NOTHING.CONTINUE";
2940 FORN=1TO1000:NEXTN
2950 GOTO2075
3000 GOTO9200
3002 GOTO3100
3004 RE=0
3005 CLS0
3006 FORN=1TO25
3007 PRINT@INT(RND(TI)*500),CHR$(122);
3008 NEXTN
3010 BE=BE+RND(10)
3030 BF=BF+RND(10)
3040 BH=BH-RND(10):IF BH<=0 THEN BH=0
3045 IF BE>=75 THEN BE=75
3050 IF BF>=75 THEN BF=75
3055 DU=DU+INT(RE/2):DV=DV+RE
3060 FORN=90TO250STEP20:SOUND155,4
3070 NEXTN
3080 CLS
3090 GOTO1000
3100 RE=INT(RND(TI)*100)
3110 IF RE>40THEN3150
3120 GOTO3004
3150 CLS0
3159 ZY$=CHR$(128)
3160 PRINT@160,"the";ZY$;"forces";ZY$;"of";ZY$;"evil";ZY$;"are";ZY$;"too";ZY$;"close";:PRINT@233,"no";ZY$;"time";ZY$;"to";ZY$;"rest";
3170 FORN=1TO2000:NEXTN
3180 GOTO1000
4000 CLS0
4010 PRINT@174,"at";
4020 PRINT@(224+(15-(LEN(L$(LX))/2))),L$(LX);
4200 PRINT@492,"press";ZY$;"p";
4202 GOSUB20700
4210 GOTO2000
6000 CLS8
6010 PRINT@73,"YOU HAVE BEEN";:PRINT@140,"ATTACKED";
6020 IF N1>=1 AND RND(TI)<0.5 THEN
6030 ZB=ZB-2:IF ZB<=0 THEN 25480
6040 RF=INT(RND(TI)*10+1)
6050 ON RF GOTO6060,6070,6080,6090,6100,6110,6120,6130
6060 PRINT@230,"IT SWINGS AND MISSES";:GOTO6190
6070 PRINT@229,"YOU DEFLECT THE BLOW";:GOTO6190
6080 PRINT@234,"BUT HESITATES";:GOTO6190
6090 PRINT@235,"A BODY BLOW";:DX=5:GOTO6190
6100 PRINT@233,"A HEAD WOUND";:DX=8:GOTO6190
6110 PRINT@233,"A CHEST WOUND";:DX=6:GOTO6190
6120 PRINT@234,"A BLOW TO ARM";:DX=4:GOTO6190
6130 PRINT@235,"A BODY BLOW";:DX=3:GOTO6190
6140 PRINT@236,"LEGS HIT";
6150 IF RND(TI)<0.5 THEN6180
6160 DX=5
6180 PRINT@232,"SAVED BY ARMOUR!";
6190 BE=BE-DX:BF=BF-INT(DX/2)
6195 IF BE<=0 THEN7000
6196 IF BF<=0 THEN7000
6198 FORN=1TO2000:NEXTN
6200 GOTO25210
7000 CLS3
7020 IF DI=1 THEN8600
7030 PRINT@32,"*LIFE HAS FLED YOUR MORTAL BODY*";:PRINT@102,"SUCH AN INCOMPETENT";:PRINT@169,"WAS NOT WORTHY";:PRINT@234,"OF THE NAME";:PRINT@299,"pendragon";
7040 PLAY"O1V31T2L4GGL8GGL4B-AAGGF+G"
7045 FORN=1TO8
7050 PRINT@480," "
7055 NEXTN
7060 PRINT@489,"HOW YOU RATED":PRINT@480," ":PRINT@490,"EXPERIENCE:";BD:PRINT@40," ":PRINT@493,"GOLD:";BH:
7065 FORN=1TO6
7070 PRINT@480," "
7075 NEXTN
7080 RA=INT(((BD*(BH+1))+(DI*5)+(DG*8)+(DD*10))/(M/10))
7085 PRINT@298,"YOUR RATING:";RA:
7090 FORN=1TO2000:NEXTN
7100 PRINT@356,"IF YOU HAD THE CHANCE OF";:PRINT@393,"REINCARNATION";:PRINT@418,"WOULD YOU LIKE TO TRY AGAIN";:PRINT@459,"YES OR NO";
7102 FORN=1TO3
7103 PRINT@480," "
7104 NEXTN
7110 A$=INKEY$
7120 IF A$="Y" THEN7140
7130 GOTO7110
7140 RUN
8000 IF WA=1 THEN2000
8010 CLS8:OM=0
8030 IF DD=1 THEN8070
8040 PRINT@39,"YOU WILL NEED THE";:PRINT@104,"NECROMANCERS MAP";
8050 FORN=1TO2000:NEXTN
8060 GOTO2000
8070 IF DG=1 THEN8105
8080 PRINT@39,"YOU WILL NEED THE";:PRINT@105,"RING OF POWER";
8090 FORN=1TO2000:NEXTN
8100 GOTO2000
8105 OM=INT(RND(TI)*20)
8110 PRINT@195,"THE WATER OF LIFE AWAITS";:PRINT@229,"WHAT IS THE MAGIC WORD";
8120 GOSUB51000
8130 IF SP=1 THEN8190
8140 CLS7
8145 PRINT@235,"YOU FAILED";
8150 FORN=1TO1000:NEXTN
8160 GOTO2000
8190 CLS0:WA=1
8200 R$=CHR$(128)
8210 PRINT@108,"YOU";R$;"HAVE";:PRINT@168,"THE";R$;"WATER";R$;"OF";R$;"LIFE";
8220 FORN=1TO2000:NEXTN
8230 GOTO2000
8300 IF DG=1 THEN2000
8305 CLS8
8310 PRINT@41,"AT CAVE OF DOOM";:PRINT@70,"DO YOU WISH TO ENTER";:PRINT@108,"YES/NO?";
8312 A$=INKEY$
8313 IF A$="Y" THEN8317
8314 IF A$="N" THEN30420
8315 GOTO8312
8317 IF CB=1 THEN 8320
8318 PRINT@292,"NO USE. YOU HAVE NO LAMP";
8319 GOTO30420
8320 RF=RND(3)
8330 ON RF GOTO8340,8360,8360
8340 CLS8
8350 GOTO20500
8360 PRINT@294,"SOMETHING EVIL HERE";:PRINT@323,"DRAINING YOUR MAGIC POWERS";
8370 BG=BG-INT(BG/10)
8380 GOTO30420
8400 CLS8
8405 IF DI=1 THEN2000
8410 PRINT@44,"AT LAKE";:PRINT@70,"DO YOU WISH TO CROSS";:PRINT@105,"TO THE ISLAND?";:PRINT@140,"YES/NO?";
8415 A$=INKEY$
8420 IF A$="Y" THEN8435
8425 IF A$="N" THEN30520
8430 GOTO8415
8435 IF CL=1 THEN 8450
8440 PRINT@292,"NO USE. YOU HAVE NO BOAT";
8445 GOTO30520
8450 RF=RND(3)
8455 ON RF GOTO 8460,8470,8470
8460 CLS8
8465 GOTO20475
8470 GOTO8360
8500 IF DD=1 THEN2000
8505 CLS8
8510 PRINT@38,"AT TOWER OF THE EYE ";:PRINT@70,"DO YOU WISH TO ENTER";:PRINT@108,"YES/NO?";
8515 A$=INKEY$
8520 IF A$="Y" THEN8535
8525 IF A$="N" THEN30665
8530 GOTO8515
8535 IF CM=1 OR CA=1 THEN 8550
8540 PRINT@294,"NO USE. YOU HAVE NO";:PRINT@334,"ROPE";
8545 GOTO30665
8550 RF=RND(3)
8555 ON RF GOTO8560,8570,8570
8560 CLS8
8565 GOTO20525
8570 GOTO8360
8600 FORN=1TO8
8610 CLSN
8615 FORM=1TO20
8620 OO$="O3L2GBO4CDL4CO3BAG"
8621 NEXTM
8625 PLAY"T255V10"+OO$:PLAY"T255V20"+OO$:PLAY"T255V30"+OO$
8630 NEXTN
8640 PRINT@8,"THE SHIELD OF LIFE";:PRINT@43,"SAVED YOU";
8645 PRINT@162,"MAGIC ALL GONE AND VERY WEAK";
8650 BE=20:BF=20:BG=0:DI=0
8655 FORN=1TO4000:NEXTN
8660 GOTO2000
9000 IF BE<=0 THEN 7000
9010 IF BF<=0 THEN9100
9015 IF WA=1 AND LO=1 THEN9300
9016 IF WA=1 AND LO=2 THEN9300
9017 IF WA=1 AND LO=17 THEN9300
9030 IF BD>10 THEN SE=1
9040 GOTO2002
9100 CLS3
9110 PRINT@231,"YOU ARE TOO WEAK";:PRINT@262,"REST AND RECUPERATE";
9120 FORN=1TO2000:NEXTN
9130 GOTO1000
9200 CLS5
9202 IF BH<=0 THEN 9230
9204 GOTO3002
9230 PRINT@232,"NO GOLD-NO REST";
9240 FORN=1TO2000:NEXTN
9260 IF BF<=0 THEN7000
9270 GOTO1000
9280 RETURN
9300 CLS4
9310 FORN=1TO100
9320 PLAY"T255AC"
9330 NEXTN
9340 PRINT@66,"YOU ARE PENDRAGON THE MIGHTY";
9350 PRINT@138,"YOU HAVE WON";
9360 PRINT@224," EXPERIENCE:";BD:PRINT@245,"GOLD:";BH;
9370 RA=INT(((BD*(BH+1))+(DI*5)+(DG*8)+(DD*10)+(WA*500))/(M/10))
9380 PRINT@360,"YOUR RATING:"RA;
9390 GOTO9390
10000 CLS0
10050 IF BE<0 THEN BE=0
10055 IF BF<0 THEN BF=0
10100 PRINT@10,"<pendragon>";:PRINT@74,"POWER STATUS";:
10110 PRINT@128,"EXPERIENCE: ";BD:PRINT@160,"HEALTH : ";BE:PRINT@192,"STRENGTH : ";BF:PRINT@224,"MAGIC ":PRINT@256,"POWERS : ";BG:
10120 PRINT@288,"GOLD : ";BH
10130 PRINT@421,"SEE INVENTORY?YES/NO?";
10145 C$=INKEY$
10150 IFC$="N"THEN1000
10160 IFC$="Y"THEN10170
10165 GOTO10145
10170 CLS
10175 IF BG<=0 THEN DH=0
10180 PRINT@10,"POSSESSIONS:";
10190 PRINT@69,"ROPE :";CA;:PRINT@101,"LAMP :";CB;:PRINT@133,"BOAT :";CL;:PRINT@261,"CLOAK OF INVISIBILITY:";DF;
10191 PRINT@293,"PRECIOUS STONES :";GP;:PRINT@325,"NECROMANCERS MAP :";DD;:PRINT@357,"RING OF POWER :";DG;:PRINT@389,"SHIELD OF LIFE :";DI;:PRINT@421,"POWER STONES :";DH;:PRINT@490,"PRESS ENTER";
10192 SCREEN0,1
10200 A$=INKEY$
10202 IF A$=CHR$(13) THEN1000
10210 GOTO10200
20000 TX=0
20030 RF=INT(RND(TI)*13+1)
20040 CLS7
20050 PRINT@9,"SOMETHING HERE";:PRINT@73,"DO YOU SEARCH?";:PRINT@141,"YES/NO";
20060 A$=INKEY$
20070 IF A$="Y" THEN 20090
20080 IF A$="N" THEN 2075
20085 GOTO20060
20090 CLS5
20100 ON RF GOTO20300,20110,20130,20150,20180,20210,20285,20300,20320,20340,20360,20455,20375
20110 PRINT@203,"WATER HERE";:PRINT@262,"YOU DRINK YOUR FILL";
20120 DE=RND(15):BE=BE+DE:IF BE>75 THEN BE=75
20122 GOSUB20750
20125 GOTO21050
20130 PRINT@205,"FOOD";:PRINT@329,"EAT YOUR FILL";
20140 OD=RND(15):BF=BF+OD:IF BF>75 THEN BF=75
20142 GOSUB20750
20145 GOTO21050
20150 PRINT@109,"A ROPE";
20160 GOSUB21000
20165 IF NO=1THEN2075
20170 CA=CA+TX:IF CA>1 THEN CA=1
20175 GOTO21050
20180 PRINT@109,"A LAMP";
20190 GOSUB21000
20195 IF NO=1THEN2075
20200 CB=CB+TX:IF CB>1 THEN CB=1
20205 GOTO20150
20210 PRINT@109,"A BOAT";
20215 GOSUB21000
20217 IF NO=1THEN2075
20220 CL=CL+TX:IF CL>1 THEN CL=1
20225 GOTO21050
20285 G=INT(RND(TI)*20)+1
20287 PRINT@102,G;"PRECIOUS STONES";
20290 GOSUB21000
20291 IF NO=1THEN2075
20292 GP=GP+(G*TX)
20295 GOTO21050
20300 LD=INT(RND(TI)*30)+2
20305 PRINT@100,"A CACHE OF";LD;"GOLD PIECES";
20310 GOSUB21000
20311 IF NO=1THEN2075
20315 BH=BH+(LD*TX):GOTO21050
20320 DV=INT(RND(TI)*7+3)
20325 PRINT@104,DV;" POWER STONES";
20330 GOSUB21000
20331 IF NO=1THEN2075
20335 DH=DH+(DV*TX):BG=BG+((DV*TX)*RND(5)):GOTO21050
20340 PRINT@101,"A PLACE OF EVIL POWER";
20345 BG=BG-RND(10):IF BG<=0 THEN BG=0
20347 GOSUB20750
20350 GOTO21050
20360 PRINT@108,"A TRAP";:PRINT@195,"ESCAPING HAS WEAKENED YOU!";
20365 BF=BF-RND(7):IF BF<=0 THEN BF=0
20367 GOSUB20750
20370 GOTO21050
20375 PRINT@106,"AN AMBUSH!";:PRINT@163,"YOU HAVE LOST SOME OF YOUR";:PRINT@226,"POSSESSIONS WHILST FIGHTING";:PRINT@298,"YOUR WAY OUT";
20380 DH=DH-RND(7):IF DH<=0 THEN DH=0
20381 BH=BH-RND(20):IF BH<=0 THEN BH=0
20382 UW=RND(4):IF UW<2 THEN CA=0 AND CL=0
20383 UX=RND(4):IF UX<2THEN CJ=0 AND CB=0
20384 GOSUB20750
20385 GOTO21050
20455 IF DF=1 THEN20000
20460 PRINT@99,"THE CLOAK OF INVISIBILITY";
20465 GOSUB21000
20466 IF NO=1THEN2075
20470 DF=1:GOTO21050
20475 IF LX<>5 THEN 20000
20480 IF DI=1 THEN20000
20485 PRINT@102,"THE SHIELD OF LIFE";
20490 GOSUB21000
20491 IF NO=1THEN2075
20495 DI=1:GOTO21050
20500 IF LX<>4 THEN20000
20505 IF DG=1 THEN 20000
20510 PRINT@102,"THE RING OF POWER";
20515 GOSUB21000
20516 IF NO=1THEN2075
20520 DG=1:GOTO21050
20525 IF LX<>6 THEN20000
20530 IF DD=1 THEN 20000
20535 PRINT@102,"THE NECROMANCERS MAP";
20540 GOSUB21000
20541 IF NO=1THEN2075
20545 DD=1:GOTO21050
20600 NO=0:A$=INKEY$
20610 IF A$="Y" THEN21045
20620 IF A$="N" THEN NO=1:GOTO21046
20630 GOTO20600
20700 A$=INKEY$
20710 IF A$="P" THEN RETURN
20720 GOTO20700
20750 FORN=1TO1500:NEXTN
20755 RETURN
21000 PRINT@297,"DO YOU TAKE IT";:PRINT@333,"YES/NO";
21010 GOTO20600
21045 TX=1:BF=BF-3
21046 RETURN
21050 GOTO2075
24014 NEXTJ
24999 PRINT@390,"BEWARE!YOU HAVE MET";
25010 RF=INT((RND(TI)*12)+1)
25080 XC$=RIGHT$(M$(RF),LEN(M$(RF))-1)
25090 PRINT@(448+(32-LEN(XC$))/2),XC$;
25100 FORN=1TO2000:NEXTN
25110 PRINT@384," ":PRINT@416," ":PRINT@448," "
25120 ZB=INT(MS(RF)*D1)
25125 ZA=INT(BF*((BD*2)/100))
25126 XP=INT((ZB+1)/(ZA+1))*2
25200 IFRND(TI)<0.6ORDF=1THEN25210:ELSE25375
25205 DZ=0
25210 CLS4
25211 IF BE<=0 THEN 7000
25212 IF BF<=0 THEN BE=BE-BE
25215 DZ=DZ+INT((BD*(BF*.5))/100):IF DZ>25 THEN DZ=25
25220 T=0:DX=0:IF ZB<=0 THEN 25480
25221 CLS4
25222 PRINT@133,"ATTACK OR CAST A SPELL";
25223 KL=RND(10)-1
25224 PRINT@RND(127),KL;
25225 A$=INKEY$
25230 IF A$=KL$(KL+1) THEN 25300
25240 IF A$="S" THEN29350
25250 T=T+1:IF T>100 THEN25265
25260 GOTO25225
25265 CLS4
25270 DX=5:PRINT@204,"TOO SLOW";:PRINT@296,"YOU ARE WOUNDED";
25280 GOSUB25450
25281 IF BE<=0THEN7000
25282 IF BF<=0THEN9100
25283 IF ZA<=0THEN25510
25290 GOTO6000
25300 CLS4
25310 IF T<25 THEN RF=1
25311 IF T>24 AND T<28 THEN RF=2
25312 IF T>27 AND T<35 THEN RF=3
25313 IF T>34 THEN25265
25320 ON RF GOTO25325,25340,25355
25325 DZ=INT((DZ+10)/(MS(RF)/10)):DX=0:PRINT@201,"A MIGHTY BLOW";:GOSUB25450
25326 IF BE<=0THEN7000
25327 IF BF<=0THEN9100
25328 IF ZA<=0THEN25510
25335 GOTO25210
25340 DZ=INT((DZ+8)/(MS(RF)/10)):DX=1:PRINT@201,"A SWIFT STRIKE";
25345 GOSUB25450
25346 IF BE<=0THEN7000
25347 IF BF<=0THEN9100
25348 IF ZA<=0THEN25510
25350 GOTO25210
25355 DZ=INT((DZ+6)/(MS(RF)/10)):DX=2:PRINT@201,"HALF REPELLED";:GOSUB25450
25356 IF BE<=0THEN7000
25357 IF BF<=0THEN9100
25358 IF ZA<=0THEN25510
25360 GOTO25210
25375 CLS4
25380 PRINT@133,"SURPRISE ON YOUR SIDE";:DX=10:
25385 PRINT@201,"ATTACK OR RUN!";:PRINT@232,"OR CAST A SPELL";
25390 A$=INKEY$
25395 IF A$="A" THEN25300
25398 IF A$="S" THEN29350
25400 IF A$="R" THEN25420
25405 T=T+1:IF T>50 THEN 25265
25410 GOTO25390
25420 RU=RND(TI):IF TI<0.5 THEN 25210
25425 CLS
25430 PRINT@205,"LUCKY";:PRINT@233,"YOU ESCAPED!";:PRINT@300,"YOU COWARD";
25433 FORN=1TO1000:NEXTN
25435 BD=BD-3
25440 GOTO2950
25450 ZB=ZB-DZ:
25460 BE=BE-DX:BF=BF-INT(DX/2)
25470 FORN=1TO2500:NEXTN
25475 RETURN
25480 CLS4
25482 BD=BD+2+XP
25485 PRINT@137,"WE SALUTE YOU";:PRINT@203,"pendragon";:PRINT@265,"MIGHTY WARRIOR";
25495 FORN=1TO1000:NEXTN
25500 GOTO2950
25510 CLS4
25520 PRINT@199,"BATTLE INDECISIVE!";
25525 FORN=1TO1000:NEXTN:GOTO2950
25530 FORN=1TO750:NEXTN:GOTO1000
25550 PRINT@203,"pendragon";:PRINT@229,"ON YOUR WAY VICTORIOUS";
25560 BF=BF+(ZX-ZA):
25570 FORN=1TO750:NEXTN:RETURN
28000 CLS8
28010 PRINT@231,"TOO WEAK TO ATTACK";
28020 FORN=1TO750:NEXTN
28030 PRINT@296,"YOU ARE KILLED!!";
28040 FORN=1TO750:NEXTN
28050 RUN
29350 CLS0
29360 IFBG>10THEN29600
29370 PRINT@233,"POWER TOO WEAK";
29380 FORN=1TO750:NEXTN:MS=MS+10
29390 GOTO25270
29500 FORN=1TO8
29510 CLSN:GOSUB29550
29520 NEXTN
29530 RETURN
29550 FORX=1TO10
29560 X3=INT(RND(TI)*63):Y3=INT(RND(TI)*31)
29570 SET(X3,Y3,N-1)
29580 NEXTX
29590 RETURN
29600 CLS6
29605 L1$="ALL HAIL PENDRAGON"
29610 PRINT@10,"*CAST SPELL*";
29620 GOSUB51000
29630 IF SP<1 THEN29992
29640 CLS6
29645 BG=INT(BG*0.9)-T:IF BG<=0 THEN BG=0
29646 BD=BD+INT(N1/5)
29650 PRINT@326,L1$;
29660 FORN=1TO25:SOUND225,1
29670 NEXTN
29680 GOTO2000
29992 CLS6
29995 BG=INT(BG*0.75)-T:IF BG<=0 THEN BG=0
29997 GOTO25210
30000 PMODE1,3:SCREEN1,0:PCLS
30010 P1$="BM0,154;E3F2E2F2E2F2E2F2E2F2R2H3U39G2L3G1L3G1L3G1L3G1L2R2E1R3E1R3E1R3E1R3E3R3E2R3E4R2E4R2E3U2H1U2H1U4H1U2H1U3H1U3"
30020 P2$="BM88,36;E4R2E6F2E6F3R2F5NG5E3R2E2R1F6NG8R1E2R1E2R4E1R3F1R1F2NG3E2R1E2R2E1R4F4NG4E1R2F1R1E1"
30023 P4$="BM182,172;R3D3L3NU2D4BR6U7R3D3L3F4BR2U7NR3D3NR2D4R3BR2R3U4L3U3R3BR2R3L3D3R3D4NL3BR6U7R3D3L2"
30025 LINE(0,0)-(254,190),PSET,B
30030 ON LX GOTO 30100,30200,30300,30400,30500,30600,30700,30800,30900
30100 DRAWP1$
30110 DRAWP2$
30120 DRAW"BM72,54;F4R2F2R2F1R1F1R1F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R2F1R1"
30130 DRAW"BM40,86;R1F3R2F4R2F5R2F5R3F3R2F5R2F4R2F4R2F3D1F6D1F8"
30140 PAINT(12,100),4,4
30145 PAINT(120,4),3,4
30150 PAINT(140,100),3,4
30155 PAINT(4,180),2,4
30156 DRAW"C2"+P4$
30160 GOSUB20700
30165 D1=2
30170 GOTO4000
30200 DRAWP1$
30220 DRAW"BM84,48;F3R2F1R2F2R3F1R2F1R2F1R2F1R2F1R2F1R2E1R2E1R2E1R2E1R2E1R2E1R2E1R2E4R1E1R1E2R1E2R1E2U3H1U2H2U3H2U3H2"
30230 DRAW"BM118,64;F3D1F1D1F1D37G4R3E3F3E3F3E3F3E4F4R3H4U39E1U2E1U1E1GD1F2R3F1R3F1R3E1R3E1R3U1R4"
30240 DRAW"BM192,72;F4D12G2R2E2F1R1E1F2R2H2U12E1U1E2U1R3F1R1F1D3F3D3F2D36G4R3E3F4"
30250 DRAW"BM202,48;F3R1F2R1F2R1F2R1F2R1F2R1F3R2F1R1"
30260 PAINT(16,100),4,4
30270 PAINT(152,100),4,4
30275 PAINT(206,80),4,4
30280 PAINT(252,112),4,4
30282 PAINT(100,180),2,4
30283 DRAW"C3"+P4$
30285 GOSUB20700
30290 GOTO4000
30300 DRAW"BM0,48;E13R2E2F2E5F5D2F1D2F3D3F3NG3E6R2E1R2E5F8R2F1R1F4R3F4NG6E14R1E7F8R2F1R2F1R2E1R2E11"
30310 DRAW"BM0,158;E1U2E6U1E3U1E1U1E1H2U2E4R1E2R3E1R3E2R1E2R1E2R1E1R1E1R2E5R1E1R1E1R1E5R1F1R2F1R3F1R2F1R2F4R1F1R1F1R1F4R1F1R1F1R1F1R1F1NG10E3R2E1R2E1R2E4R2E1R1E2R1F7NG5E3R2E1R2E2"
30320 DRAW"BM76,86;G10L1G2L1G2L4G2F3D2G1D2G1D2G2D3G1D2F5R2F1R2F1R2F2R2F3R2F4D1"
30330 DRAW"BM80,114;R8F3NL7D6L4U3L2D3NR1L2U6H3D6F2"
30350 PAINT(4,4),3,4
30360 PAINT(20,172),2,4
30365 PAINT(88,118),2,4
30370 PAINT(88,122),2,4
30375 PAINT(82,122),2,4
30376 DRAW"C3"+P4$
30380 GOSUB20700
30390 GOTO4000
30400 GOTO8300
30420 FORN=1TO1500:NEXTN:GOTO4000
30500 GOTO8400
30520 FORN=1TO1500:NEXTN:GOTO4000
30600 DRAW"BM0,52;E1R2E2R2E4R2F7NG8E2R2E1R2E2R2E3R1E2R2E1R2E1R2E4F12NG5E5R3E4R3E6F4"
30605 DRAW"BM0,72;F3R2F3R2F3R2F3"
30610 DRAW"BM0,90;F4R2F3R2F3R1F1H1L1H2R3F1R1F1R4F1R3F3R2F1R2F1R2F1R2F3G3D1G3D1G4F2D2F1R1F3R1F5R3F1R3F4"
30615 DRAW"BM16,102;R9F1R4F1R3F1R3F1R3F1R2F1R2F2R1F1R1F6D1G2F2R6F1R4F1R3F1R3F2R39F3R3F1R2F1R3F1R2"
30620 DRAW"BM218,40;F2NF4D1ND52L3G1L3G1L4G1L3G1L2H1L3H1L4H1L3H1L3ND52L1NG3E19F16E2R2E3R2E4R2E3"
30625 DRAW"BM170,72;E2R2E1R6F1R2F2G2L2G1L6H1L2H1"
30630 PAINT(12,12),3,4
30635 PAINT(120,160),2,4
30640 PAINT(180,100),2,4
30642 PAINT(192,44),2,4
30645 PAINT(184,72),4,4
30646 DRAW"C3"+P4$
30650 GOSUB20700
30660 GOTO8500
30665 FORN=1TO1500:NEXTN:GOTO4000
30700 DRAWP1$
30710 DRAW"BM40,94;R21H5U13NR6D13L3NU12H5NU5F5R9NU12R4BU7U6R8D5L8BD7D1R14U11NR5U11NL14H8NL10F8D22L19F5R19D6L18F17R4H3U49E16NR45F16NR29G15NH16NR44D16BR15R22D17L21U17BL15L1D35NR44H3U35H11D35F11L4F14BL22L1H42L4"
30720 PAINT(20,100),4,4
30725 PAINT(72,100),2,4
30730 PAINT(120,4),3,4
30735 PAINT(100,46),2,4
30740 PAINT(78,64),4,4
30745 PAINT(100,62),3,4
30750 PAINT(200,12),2,4
30755 PAINT(164,24),2,4
30760 PAINT(220,44),2,4
30765 PAINT(140,56),2,4
30770 PAINT(200,80),2,4
30775 PAINT(144,100),4,4
30780 PAINT(216,116),3,4
30784 DRAW"C3"+P4$
30785 GOSUB20700
30790 GOTO4000
30800 DRAW"BM0,66;F7NG3E4F6E2F3"
30810 DRAW"BM200,0;G4R7D41L7D3L7U3L7D3L7U3L7D3L7U3L7U15R7H5U4L7D3L7U3L7D3L7U3L7D4G5R7D38R5NG27NR20U12E5R11F5D12NF27R78"
30820 DRAW"BM44,118;G18R14"
30830 DRAW"BM118,154;R69"
30840 DRAW"BM118,88;E14F8NG3E14F1E4F2"
30850 PAINT(4,4),3,4
30855 PAINT(72,72),2,4
30860 PAINT(34,140),3,4
30865 PAINT(76,120),4,4
30870 PAINT(160,144),3,4
30875 PAINT(76,160),2,4
30876 DRAW"C2"+P4$
30880 GOSUB20700
30890 GOTO8000
30900 GOTO4000
40000 CLS0
40010 R$=CHR$(128)
40020 PRINT@33,CHR$(238);:PRINT@62,CHR$(237);:PRINT@449,CHR$(235);:PRINT@478,CHR$(231);
40040 PRINT@139,"pendragon";:PRINT@233,"water";R$;"of";R$;"life";
40045 PRINT@335,"by";:PRINT@393,"david";R$;"jenkins";
40046 SCREEN0,1
40047 FORN=1TO2000:NEXTN
40050 FORN=1TO50
40051 PLAY"V20T255O3CFC"
40055 NEXTN
40060 RETURN
50010 DATA "BGIANT SPIDER",20,0,"HLIVING DEAD",25,10,"GHUNTER",35,0
50020 DATA "GMERCENARY",40,0,"ATROLL",40,5,"EDARK BIRDS",30,15,"AGOBLIN",30,17
50030 DATA "ADWARFS OF THE PIT",35,15,"ESOLDIERS OF THE MISTS",50,0,"CWRAITH",30,35
50040 DATA "ERIDER OF THE NIGHT",50,40,"DWARLOCKS OF THE EYE",50,50
51000 SP=0:A4=0
51002 IF BG<25 THEN A4=18
51003 IF BG>24 AND BG<35 THEN A4=13
51004 IF BG>34 AND BG<45 THEN A4=8
51005 IF BG>44 THEN A4=4
51010 RE=INT(RND(TI)*A4)
51100 A2=LEN(W$(RE))
51110 A3=0
51140 FORY1=1 TO LEN(W$(RE))
51150 PRINT@(32*9)+(Y1*2),"-";" "
51160 NEXTY1
51170 T2=0
51175 IF N1(RF)>BG THEN T2=2
51180 PRINT@(32*10),"SPELL!"
51190 PRINT@(32*11)," "
51200 F=0
51210 INPUTL$
51220 T2=T2+1
51230 IF T2=8 THEN51500
51350 IF L$=W$(RE) THEN51550
51360 FOR A=1 TO LEN(W$(RE))
51370 IF L$=MID$(W$(RE),A,1) THENGOSUB51440
51380 NEXTA
51381 IF A3=A2 THEN51550
51390 IF F=1 THEN51180
51400 PRINT@(32*11),"WRONG"
51410 FORN=1TO500:NEXTN
51420 PRINT@(32*11)," "
51430 GOTO51180
51440 PRINT@(32*8)+(A*2),L$;
51441 A3=A3+1
51450 F=1
51460 RETURN
51470 DATA"SAUCER","LINGER","COLONY","BECKON","SAUNTER","LINTLE","COLOUR","BECOME","SAUSAGE","LINCTUS"
51475 DATA"COLUMN","BECALM","FAVOUR","LINSEED","COLLIDE","BEAVER","COLONEL","BEAUTY"
51500 CLS4
51505 PRINT@234,"MAGIC FAILS!";
51510 FORN=1TO1500:NEXTN
51520 RETURN
51550 SP=1
51555 CLS0
51556 PRINT@236,"SUCCESS!";
51557 FORN=1TO1500:NEXTN
51560 RETURN
52000 DATA"river","forest","mountains","cave","lake","tower","village","castle","greatwall"
52050 DATA"0","1","2","3","4","5","6","7","8","9"
52100 DATA 40,40,15,45,45,20,50,50,10,60,60,25,70,70,15