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