8-Bit Software Online Conversion
Amazed Knight. Game - Listing
10ONERRORMODE6:REPORT:PRINTERR" ON LI
NE ";ERL:IF ERR=17 RUN
20 *KEY10 CHAIN"CHEAT"|M
30VDU23,253,85,84,92,92,190,190,182,1
82;23,254,160,96,32,32,32,32,32,32;23,25
5,182,182,182,162,162,162,162,162;23,243
,8,28,28,28,28,54,119,99;23,249,32,32,32
,32,32,32,32,32
40MODE4:VDU19,0,7,0,0,0:VDU19,1,0,0,0
,0
50VDU5:GCOL0,1:MOVE800,850:VDU243;249
:MOVE800,820:VDU253;254:MOVE800,790:VDU2
55;249
60PROCassemble:VDU7:VDU23,243,66,66,6
6,102,24,24,24,60;23,244,25,17,63,57,57,
17,17,25;23,245,48,48,48,120,72,72,120,1
20
70VDU23,246,162,229,231,167,217,255,1
79,243;23,247,7,5,125,85,87,0,0,0;23,248
,255,255,255,255,255,255,255,255;23,249,
152,136,252,156,156,136,136,152;23,250,1
6,40,68,68,130,170,130,146
80VDU23,251,248,248,216,136,216,248,1
12,32;23,252,24,36,66,24,60,90,153,24;23
,253,25,25,63,89,153,61,37,37;23,254,126
,255,219,255,231,255,66,66;23,255,60,60,
60,60,60,36,36,36
90 *FX11,10
100 *FX12,2
110 *FX213,81
120 *FX214,18
130MODE5
140 X%=540:Y%=50:VDU5:MOVEX%,Y%:GCOL0,
3:VDU253:key%=0:bo%=0:shi%=0:cas%=0:or%=
0:go%=0:gold%=0:F%=1:A%=0:PROCmap: *FX11
,20
150 ?&42C=15:*FX12,4
160VDU5:MOVEX%,Y%:GCOL0,3:VDU253:REPEA
T: V%=X%+(Y%*256)
165*FX21
170IFA%=0ANDcas%<4VDU5:MOVE515,525:GCO
L0,0:PRINT"Prison":PROCmove:PROCno
180IFA%=0ANDcas%>3PROCmove:PROCelev
190IFA%=1ANDcas%=0PROCmove:PROCone
200IFA%=1ANDcas%>0VDU19,0,2,0,0,0:PROC
move:PROCten
210IFA%<>1ANDcas%>0VDU19,0,0,0,0,0
220IFA%=2PROCmove:PROCtwo
230IFA%=3PROCmove:PROCthree
240IFA%=4PROCmove:PROCfour
250IFA%=5PROCmove:PROCfive
260IFA%=6PROCmove:PROCsix
270IFA%=8PROCmove:PROCate
280IFA%=7PROCmove:PROCsev
290IFA%=9PROCmove:PROCnine
300UNTILFALSE
310DEFPROCmap:CALL&900:VDU19,1,RND(7),
0,0,0:IFA%=2PROCcar(1040,360,3,228)
320A%=(A%)MOD10:ENDPROC
330DEFPROCassemble:map=&50:addr=&52:xc
ount=&54:ycount=&55:index=&56:new=&70:VD
U4:PRINTTAB(8,6)"AMAZED KNIGHT" :PRINTTA
B(8,7)"by V.Horgan" :PRINT:PRINT"(The st
ory so far)"
340PRINT" You are the Knight-errant Si
r Guy Gormless setting out through
the Muddled Maze to save the Lady
Euphoria who is held captive in the dr
eaded Maze Manor."
350PRINT"You have 15 Gold Coins - 1O f
or the ransom and 5 for travelling e
xpenses. You must collect 4 gold goble
ts,3 from castles and one in Maze,befor
e entry to the Manor"
360PRINT"In the Manor you must find th
e Lady Euphoria ( a tall lady with s
traggly hair) and hand over the ranso
m."
370PRINT"The Manor is full of traps an
d guards but also the means of getting
past them.Do not tarry.Time in the Mano
r costs Gold Coins.":PRINT
380PRINT"Use the Cursor 'arrows' for m
ovement.If in difficulty consult the Ora
cle.If in Prison press H to get out.(A
gold coin is charged for this ' servi
ce'(Bribe)."
390 PRINT"For further Help contact the
Citizen's Advice Bureau by pressing
BREAK":FORpass=0TO2STEP2:P%=&900:[ OPT p
ass:SEI:ASL A:TAY:LDA table,Y:STA map
400LDA table+1,Y:STA map+1:LDA #&80:ST
A addr :LDA #&5A:STA addr+1:LDY #0:ST
Y index :LDY #10:STY ycount:.yloop:LD
A addr+1:PHA:LDA addr:PHA:LDA #5:STA xco
unt:.xloop:LDA addr:STA new:LDA addr+1:S
TA new+1:LDY index:INC index
410LDA (map),Y:PHA:LSR A:LSR A:LSR A:L
SR A :JSR print:LDA addr:ADC #4*8:STA ne
w
420LDA addr+1:ADC #0:STA new+1:PLA:AND
#&0F:JSR print:LDA addr:ADC #8*8:STA add
r:LDA addr+1:ADC #0:STA addr+1
430DEC xcount:BNE xloop:PLA:ADC #(3*&1
40)MOD256:STA addr
440PLA:ADC #(3*&140)DIV256:STA addr+1
450DEC ycount:BNE yloop:CLI:RTS:.mult:
EQUW 0:EQUW 1*96
460EQUW 2*96
470EQUW 3*96
480EQUW 4*96
490EQUW 5*96
500EQUW 6*96
510EQUW 7*96
520EQUW 8*96
530EQUW 9*96
540EQUW 10*96
550EQUW 11*96
560EQUW 12*96
570EQUW 13*96
580EQUW 14*96
590EQUW 15*96
600.print:ASL A:TAY
610LDA mult,Y:ADC #spritesMOD256 ½s
et data:STA ploop+1:LDA mult+1,Y:ADC #sp
ritesDIV256:STA ploop+2:LDX #3:.ploop1:L
DY #31:.ploop:LDA &3000,Y:STA (new),Y:DE
Y:BPL ploop:CLC:LDA new:ADC #&40:STA new
:LDA new+1:ADC #&1:STA new+1
620LDA ploop+1:ADC #32:STA ploop+1:LDA
ploop+2:ADC #0:STA ploop+2:.p1:DEX:BNE
ploop1:RTS:.table:EQUW scr0:EQUW scr1:EQ
UW scr2:EQUW scr3:EQUW scr4:EQUW scr5:EQ
UW scr6:EQUW scr7:EQUW scr8:EQUW scr9:OP
TFNscrdata: :.sprites:EQUSSTRING$(96,CHR
$0)
630OPTFNsprdata:]:NEXT:PRINT"Press SPA
CE to start":REPEATUNTILGET=32:ENDPROC
640DEFFNsprdata:RESTORE660:FORI%=0TO1*
4*24-1STEP4
650READa$:[ OPT pass:EQUDEVAL("&"+a$):
]:NEXT:=pass
660DATA0F0F0F0F,0F0F0F0F,0F0F0F0F,0F0F
0F0F,0F0F0F0F,0F0F0F0F,0F0F0F0F,0F0F0F0F
,0F0F0F0F,0F0F0F0F,0F0F0F0F,0F0F0F0F,0F0
F0F0F,0F0F0F0F,0F0F0F0F,0F0F0F0F,0F0F0F0
F,0F0F0F0F,0F0F0F0F,0F0F0F0F,0F0F0F0F,0F
0F0F0F,0F0F0F0F,0F0F0F0F
670DEFFNscrdata:RESTORE690:scr0=P%:scr
1=P%+50:scr2=P%+100:scr3=P%+150:scr4=P%+
200:scr5=P%+250:scr6=P%+300:scr7=P%+350:
scr8=P%+400:scr9=P%+450:FORK%=0TO1:FORY%
=1TO50 :READa$:FORX%=1TO5 :[ OPT pass:EQ
UBEVAL("&"+LEFT$(a$,2)) :]:a$=MID$(a$,3)
:NEXT:NEXT:NEXT:=pass
680REMScreen 0
690DATA1111011111
700DATA1000000011
710DATA1010111011
720DATA1010101011
730DATA0010111000
740DATA1010000001
750DATA1011111101
760DATA1000011101
770DATA0011011000
780DATA1111011111
790REMScreen 1
800DATA1111011111
810DATA1111010001
820DATA1000000101
830DATA1010111101
840DATA0010110100
850DATA1010110101
860DATA1000110001
870DATA1011111111
880DATA1000011000
890DATA1111011111
900REMScreen 2
910DATA1111011111
920DATA1001000001
930DATA1000001101
940DATA1111101101
950DATA0011101100
960DATA1000100001
970DATA1110111101
980DATA1110011101
990DATA0000011000
1000DATA1111011111
1010REMScreen 3
1020DATA1111011111
1030DATA1110001111
1040DATA1000101111
1050DATA1011101111
1060DATA0010000000
1070DATA1010101011
1080DATA1010000111
1090DATA1011111111
1100DATA0000011000
1110DATA1111010111
1120REMMap 4
1130DATA1111011111
1140DATA1000000001
1150DATA1010101101
1160DATA1010101101
1170DATA0010101100
1180DATA1110101111
1190DATA1110101011
1200DATA1110101000
1210DATA0000001111
1220DATA1111011111
1230REMMap 5
1240DATA1111011111
1250DATA1111000001
1260DATA1000100101
1270DATA1110101101
1280DATA0000100100
1290DATA1110110101
1300DATA1010100101
1310DATA0000101101
1320DATA1111001001
1330DATA1111011111
1340REMMap 6
1350DATA1111011111
1360DATA1000000001
1370DATA1011011101
1380DATA1010010001
1390DATA0000110100
1400DATA1010000101
1410DATA1011101011
1420DATA1011101011
1430DATA1000001000
1440DATA1111011111
1450REMMap 7
1460DATA0000000001
1470DATA1110011111
1480DATA1111000000
1490DATA1011111111
1500DATA0001111100
1510DATA1010000001
1520DATA1111101011
1530DATA1111011101
1540DATA1111000000
1550DATA1111011111
1560REMMap 8
1570DATA1111011111
1580DATA1110010001
1590DATA1110110101
1600DATA1100110101
1610DATA0001100100
1620DATA1110001101
1630DATA1000111001
1640DATA1011111011
1650DATA0000011001
1660DATA1111011111
1670REMMap 9
1680DATA1111011111
1690DATA1111011111
1700DATA0000000001
1710DATA1111110111
1720DATA0000000000
1730DATA1111101101
1740DATA1111111101
1750DATA1111111101
1760DATA0000000001
1770DATA1111011111
1780DEFPROCmove: *FX4,1
1790 X=GET:IFX=136ANDPOINT(X%-60,Y%)<>1
PROCbounce(X%-120,Y%,249)
1800IFX=137ANDPOINT(X%+140,Y%)<>1PROCbo
unce(X%+120,Y%,244)
1810IFX=139ANDPOINT(X%+25,Y%+50)<>1PROC
bounce(X%,Y%+100,253)
1820IFX=138ANDPOINT(X%+25,Y%-100)<>1PRO
Cbounce(X%,Y%-100,253)
1830IFX=72PROChelp
1840IFK%<9PROCclear:PROCfin:END
1850PROCscr:PROCnote:ENDPROC
1860DEFPROCno :PROCqu(RND(2)+1,900,850,
"@"):IFV%=218500PROCpriso
1870IFbo%=0PROCcar(300,850,3,245)
1880IFkey%=0PROCcar(900,650,3,247)
1890IFV%=167300ANDkey%=0PROCcar(900,650
,0,247):key%=1
1900IFV%=217900ANDbo%=0PROCcar(300,850,
0,245):bo%=1
1910PROCaccr(1260,0,60):PROCaccr(-60,1,
1140):PROCups(1050,0,50):PROCups(-50,1,9
50):ENDPROC
1920DEFPROCone:IFgold%<1PROCqu(2,900,15
0,"o")
1930PROCqu(RND(3),1020,750,"@"):IFV%=19
3020PROCpriso
1940PROCqu(RND(3),180,450,"@"):IFV%=115
380PROCpriso
1950PROCqu(3,1020,850,"?"):IFV%=218620P
ROCbounce(180,550,253)
1960IFshi%<1PROCcar(780,350,3,251)
1970IFbo%<2PROCguard(1,420,550)
1980IFV%=90380PROCcar(780,350,0,251):sh
i%=1
1990IFV%=192180PROCbounce(1020,350,253)
2000IFV%=115980PROCbounce(540,150,253)
2010IFV%=115620ANDbo%=1PROCguard(3,420,
550)
2020IFV%=39300ANDgold%<1 K%=K%+1:gold%=
1:PROCqu(0,900,150,"o"):VDU7
2030PROCups(-50,0,950):PROCaccr(1260,3,
60):PROCaccr(-60,1,1140):PROCups(1050,0,
50):ENDPROC
2040DEFPROCtwo: F%=2:PROCcar(180,850,3,
246):IFbo%<3PROCguard(1,340,770)ELSEIFbo
%>3PROCguard(3,340,770)
2050IFV%=217780ANDkey%=1ANDshi%=1 cas%=
1:PROCnote:VDU7
2060IFbo%<4PROCcar(1020,150,2,245)
2070IFV%=39420PROCcar(1020,150,0,245):b
o%=4
2080IFV%=90620ANDbo%=4PROCbounce(300,45
0,253)
2090PROCqu(RND(3),900,850,"@"):IFV%=218
500PROCpriso
2100PROCqu(RND(3),540,250,"@"):IFV%=645
40PROCpriso
2110PROCqu(RND(2),540,150,"@"):PROCups(
-50,3,950):PROCups(1050,2,50):PROCaccr(1
260,3,60):PROCaccr(-60,2,1140):ENDPROC
2120DEFPROCthree:PROCqu(3,540,550,"?"):
IFgold%<2PROCqu(2,900,150,"o")
2130IFbo%<2PROCguard(1,420,150)
2140IFor%<1PROCora(2,420,450)
2150IFor%=2PROCora(2,180,750):PROCqu(RN
D(2)+1,660,850,"@")
2160PROCqu(RND(2),1020,550,"@"):IFV%=39
300ANDgold%<2 K%=K%+1:gold%=2:PROCqu(0,9
00,150,"o"):VDU7
2170IFV%=141340 or%=1:PROCora(0,420,450
):PROCora(2,900,450)
2180IFV%=141700ANDor%=1PROCora(0,900,45
0):PROCora(2,420,450)
2190IFV%=90140PROCbounce(660,550,253)
2200IFV%=141940ANDor%=1 or%=2:PROCora(0
,420,450):PROCora(2,180,750)
2210IFV%=218260ANDor%=2ANDbo%<2PROCpris
o
2220IFV%=192180ANDor%=2ANDcas%=0 bo%=2:
PROCmes(" E and S")
2230PROCaccr(-60,1,1140):PROCaccr(1260,
3,60):IFcas%=1PROCups(1050,1,50)ELSEPROC
ups(1050,3,50)
2240PROCaccr(-60,1,1140):PROCups(-50,2,
950):ENDPROC
2250DEFPROCfour:VDU19,0,0,0,0,0:IFor%=3
PROCcar(180,850,2,245)
2260IFV%=217780ANDor%=3ANDcas%=9 or%=4:
bo%=10:PROCcar(180,850,0,245)
2270 F%=3:PROCguard(1,420,350):IFkey%<4
PROCguard(1,1020,650)
2280IFbo%<5PROCcar(180,850,3,245)
2290IFV%=217780ANDbo%=4 bo%=5:PROCcar(1
80,850,0,245)
2300IFV%=64420ANDbo%=5PROCguard(0,420,3
50)
2310PROCqu(RND(3),420,650,"@"):IFV%=166
820ANDkey%<2PROCpriso
2320IFkey%<2PROCcar(420,450,3,247)
2330IFV%=115620 key%=2:PROCcar(420,450,
0,247)
2340IFkey%=2PROCcar(180,550,2,245)
2350IFshi%<2PROCcar(900,350,3,251):IFV%
=90500 shi%=2:PROCcar(900,350,0,251)
2360IFV%=141460ANDkey%=4ANDshi%<2 bo%=6
:PROCmes("Lights On")
2370IFV%=140980ANDbo%=5 key%=3:PROCcar(
180,550,0,245)
2380IFV%=218500ANDkey%=3 key%=4:PROCgua
rd(0,1020,650)
2390IFV%=167420PROCqu(3,660,550,"?")
2400IFbo%=8PROCcar(1020,850,3,245):IFV%
=218620ANDcas%=8 bo%=9:PROCcar(1020,850,
0,245)
2410IFcas%>3PROCups(1050,9,50)ELSEPROCu
ps(1050,4,50)
2420PROCaccr(-60,3,1140):PROCaccr(1260,
5,60):PROCups(-50,5,950):ENDPROC
2430DEFPROCfive: F%=3:PROCcar(780,450,3
,246):IFshi%=2PROCcar(300,750,2,245)
2440IFshi%>1PROCqu(RND(2),180,350,"@"):
PROCqu(RND(3),420,450,"@")
2450IFshi%=2ANDV%=89780PROCbounce(420,5
50,253)ELSEIFshi%=2ANDV%=115620PROCpriso
2460IFshi%<4PROCguard(1,660,650):IFgold
%<3PROCqu(2,1020,150,"o")
2470IFgold%=3PROCguard(1,1020,850)
2480IFV%=192300ANDshi%=2 shi%=3:PROCcar
(300,750,0,245)
2490IFV%=192660ANDshi%=3 shi%=4:PROCgua
rd(0,660,650)
2500IFV%=141220ANDbo%<6VDU19,1,0,0,0,0
2510IFV%=39420ANDgold%<3 K%=K%+1:gold%=
3:PROCqu(0,1020,150,"o"):VDU7
2520IFV%=115980 cas%=2:VDU7:go%=0:PROCn
ote
2530PROCaccr(1260,5,60):PROCaccr(-60,4,
1140):PROCups(-50,5,950):IFcas%=2PROCups
(1050,1,50)ELSEPROCups(1050,5,50)
2540ENDPROC
2550DEFPROCsix:IFkey%=7PROCcar(1020,850
,2,245)
2560IFV%=218620ANDkey%=7PROCcar(1020,85
0,0,245):key%=8:cas%=7
2570 F%=4:IFbo%<8PROCguard(1,420,550):I
FV%=217900PROCbounce(1020,550,253)
2580PROCcar(420,650,3,246):PROCqu(RND(3
),540,650,"@"):IFV%=166940PROCpriso
2590IFkey%<5PROCcar(900,350,3,247)
2600IFV%=90500 key%=5:PROCcar(900,350,0
,247)
2610IFV%=141100ANDshi%=5PROCguard(0,420
,550):bo%=8
2620IFV%=166820ANDshi%=5ANDkey%=5 cas%=
3:VDU7:PROCnote
2630IFcas%=3PROCcar(900,350,2,243)
2640IFV%=90500ANDcas%=3PROCcar(900,350,
0,243):cas%=4:PROCnote
2650IFY%=1050ANDcas%<4PROCbounce(300,85
0,253)ELSEIFY%=1050ANDcas%>3PROCups(1050
,0,50)
2660PROCaccr(-60,8,1140):PROCaccr(1260,
8,60):PROCups(-50,8,950):ENDPROC
2670DEFPROCate:IFgold%<4PROCqu(2,1020,1
50,"o")
2680IFshi%<5PROCcar(900,850,3,251)
2690IFV%=39420ANDgold%<4 K%=K%+1:gold%=
4:PROCqu(0,1020,150,"o"):VDU7
2700IFgold%=4PROCqu(RND(3),660,450,"@")
2710IFV%=115860ANDgold%=4ANDshi%<5PROCp
riso
2720IFV%=90620ANDgold%>3PROCbounce(540,
150,253)
2730IFV%=218500 shi%=5:PROCcar(900,850,
0,251)
2740IFbo%<7PROCcar(420,650,3,245):IFV%=
166820ANDshi%=5 bo%=7:PROCcar(420,650,0,
245)
2750IFV%=89780ANDcas%=3PROCbounce(1020,
850,253)
2760PROCaccr(1260,8,60):PROCaccr(-60,6,
1140):PROCups(1050,6,50):PROCups(-50,6,9
50):ENDPROC
2770DEFPROCsev: F%=5:VDU20:VDU5:GCOL0,3
:MOVE700,800:PRINT"Manor":MOVE750,250:PR
INT"+++":PROCcar(800,350,2,250) :IFca
s%<9PROClad(3,780,450)
2780IF shi%<6PROCcar(1020,250,3,251)
2790IFshi%<7PROCcar(540,250,2,251)
2800IFV%=65020PROCcar(1020,250,0,251):s
hi%=6:TIME=0
2810IFV%=64540ANDshi%=6PROCcar(540,250,
0,251):shi%=7
2820IFV%=116100ANDcas%<9PROCbounce(900,
350,253):PROClad(0,780,450):cas%=9:PROCq
u(RND(3),660,350,"@"):VDU7
2830IFV%=90260PROCpriso
2840IFcas%>8PROCora(2,420,850):PROClad(
3,300,550)
2850IFV%=192660ANDor%<5PROCbounce(1140,
750,253):VDU7
2860IFV%=218020ANDor%=5 or%=6:PROCmes("
N then E")
2870IFV%=140980PROCclear:VDU26:PROCwin:
END
2880PROCaccr(1260,9,60):PROCups(-50,6,9
50):PROCups(1050,9,50):ENDPROC
2890DEFPROCnine:IFbo%<9PROCguard(1,1020
,450)
2900IFbo%<10PROCguard(1,440,770)
2910IFor%<3PROCqu(RND(2),1020,750,"@")
2920IFV%=193020 or%=3:PROCqu(0,1020,750
,"@")
2930IFshi%>6ANDgold%<5PROCqu(2,1020,750
,"o")
2940IFV%=193020ANDgold%<5ANDshi%>6 K%=K
%+1:gold%=5:PROCqu(0,1020,750,"o"):VDU7
2950MOVE60,550:GCOL0,2:PRINT"?":IFV%=14
0860ANDshi%<7PROCpriso
2960IFV%=192300ANDor%=4PROCqu(RND(2),66
0,450,"@")
2970IFV%=115860ANDor%=4 or%=5:PROCqu(0,
660,450,"@")
2980IFor%<6PROCaccr(1260,9,60)
2990IFor%>5PROCaccr(1260,7,60)
3000PROCups(-50,4,950):PROCaccr(-60,7,1
140):PROCups(1050,7,50) :ENDPROC
3010DEFPROCten:PROCqu(RND(2),180,750,"@
"):PROCora(3,780,550):IFgo%<4PROCguard(1
,550,900)
3020PROCqu(RND(3),1020,750,"@"):IFV%=19
3020PROCpriso
3030IFV%=192180ANDgo%=0PROCguard(1,180,
550):go%=1
3040IFV%=90380ANDgo%<3PROCguard(1,780,4
50):go%=2
3050IFV%=192180ANDgo%=2PROCguard(1,540,
750):PROCguard(0,550,900):go%=3
3060IFgo%=3PROCguard(1,780,750)
3070IFV%=141580ANDgo%=3 go%=4
3080IFcas%>1PROCups(-50,5,950)ELSEPROCu
ps(-50,3,950)
3090IFcas%>1PROCups(1050,6,50)ELSEPROCu
ps(1050,4,50)
3100PROCaccr(-60,1,1140):PROCaccr(1260,
1,60):ENDPROC
3110DEFPROCelev:IFcas%<8PROCguard(1,540
,950)
3120IFkey%=5PROCcar(900,150,2,245)
3130IFcas%=5PROCguard(1,180,650)
3140IFcas%<7PROCguard(1,420,650)
3150IFV%=39300 key%=6:PROCcar(900,150,0
,245):cas%=5
3160IFkey%=6PROCcar(300,850,2,245)
3170IFV%=89780ANDcas%=5 cas%=6:PROCguar
d(0,180,650)
3180IFV%=217900ANDkey%=6PROCcar(300,850
,0,245):key%=7:PROCbounce(660,450,253)
3190IFV%=218140ANDcas%=7PROCguard(0,540
,950):cas%=8
3200PROCups(-50,6,950):PROCaccr(1260,0,
60):PROCaccr(-60,0,1140):PROCups(1050,7,
50):ENDPROC
3210DEFPROCaccr(q%,r%,s%):IFX%=q% A%=r%
:PROCmap:PROCbounce(s%,Y%,253)
3220ENDPROC
3230DEFPROCups(q%,r%,s%):IFY%=q% A%=r%:
PROCmap:PROCbounce(X%,s%,253)
3240ENDPROC
3250DEFPROCmes(me$):VDU7:VDU4:VDU28,10,
3,19,2:COLOUR129:CLS:COLOUR0:PRINTme$:VD
U5:ENDPROC
3260DEFPROCguard(c%,x%,y%):GCOL0,c%:MOV
Ex%,y%:VDU254:MOVEx%,(y%-30):VDU248:ENDP
ROC
3270DEFPROCora(c%,x%,y%):GCOL0,c%:VDU5:
MOVEx%,y%:VDU250:MOVE(x%-5),y%-30:VDU243
:ENDPROC
3280DEFPROClad(c%,x%,y%):GCOL0,c%:MOVEx
%,y%:VDU252:MOVEx%,y%-30:VDU255:ENDPROC
3290DEFPROChelp: K%=K%-1:IFF%=1 A%=0:PR
OCmap:PROCbounce(540,150,253)ELSEIFF%=2
A%=2:PROCmap:PROCbounce(660,650,253)ELSE
IFF%=3 A%=4:PROCmap:PROCbounce(540,150,2
53)ELSEIFF%=4 A%=6:PROCmap:PROCbounce(54
0,150,253)
3300ENDPROC
3310DEFPROCbounce(x%,y%,cr%):GCOL0,0:MO
VEX%,Y%:VDU248 : X%=x%:Y%=y%:GCOL0,3:MOV
EX%,Y%:VDUcr%:ENDPROC
3320DEFPROCqu(c%,x%,y%,a$) :VDU5:GCOL0,
c%:MOVEx%,y%:PRINTa$:ENDPROC
3330DEFPROCpriso: A%=0:PROCmap:PROCboun
ce(660,650,253):VDU7:ENDPROC
3340DEFPROCcar(x%,y%,c%,f%) :VDU5:MOVEx
%,y%:GCOL0,c%:VDUf% :ENDPROC
3350DEFPROCnote:VDU4:VDU28,1,31,6,30:CO
LOUR129:CLS:COLOUR0:IFcas%=1PRINTCHR$243
3360IFcas%=2PRINTCHR$243;CHR$243
3370IFcas%=3PRINTCHR$243;CHR$243;CHR$24
3
3380IFcas%=4PRINTCHR$243;CHR$243;CHR$24
3;CHR$243
3390VDU5:ENDPROC
3400DEFPROCclear:CLS:VDU19,128,131,0,0,
0:VDU19,3,4,0,0,0:VDU7:ENDPROC
3410DEFPROCfin:PRINTTAB(1,1)"Finito Sir
Guy!":PRINT"You have been rash":PRINT"w
ith the cash and":PRINT"have not enough
to":PRINT"pay the ransom.":PRINT:PRINT"P
ress SPACE for" :PRINT"another attempt."
3420 PRINT:PRINT"(Psst! Sir Gormless":P
RINT"-a word in your ear":PRINT"If you g
et fed up":PRINT"bouncing back from":PRI
NT"that ugly Oracle in":PRINT"the Manor,
then try":PRINT"LISTING the whole"
3430 PRINT"program and":PRINT"deleting
the PROC":PRINT"bounce command":PRINT"re
sponsible.!":PRINT"Clever,eh?)":REPEAT U
NTIL GET=32
3440 CLS:VDU20:GOTO 140:ENDPROC
3450DEFPROCscr: V%=X%+(Y%*256)
3460VDU4:VDU28,0,3,6,1:COLOUR129:CLS:CO
LOUR0 : @%=&00002:PRINT"Coins":PRINT" ";
K%:IFshi%>5VDU28,11,31,19,30:COLOUR129:C
LS:COLOUR0
3470 @%=&20103 :IFshi%>5PRINTTIME/6000"
min"
3480IFTIME>6000ANDshi%>5 K%=K%-1:TIME=0
:VDU7
3490ENDPROC
3500DEFPROCwin:VDU4:@%=&00002:PRINTTAB(
2,5)"Congratulations!":PRINT:PRINT"You h
ave done it" :PRINT:PRINT"with ";K%-10"
coins to":PRINT:PRINT"spare making you a
" :PRINT:PRINT"Grade ";K%-10" Knight":PR
INT:PRINT"(On the financial"
3510 PRINT:PRINT"scale!":ENDPROC