This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
|
|
|
-
Entry name:Knights and Chalices
-
Category:Games
-
Publisher/Developer:ANALOG Computing, BELLCOM - Public Domain Library
-
Year:1983
Listing 1
0REM>>KNIGHTSANDCHALICES<< 1REM>>byBruceWillard<< 3REM 5GOTO4000 10GOTO3000 30KN=C2:POS=POS1:IFPR=C1THENPOS=POS2:KN=C1 40MOVE=POS 50S=STICK(PR):IFS=C15THENGOSUB160:GOTO50 60MOVE=POS+(S<C8)-C1*(S>C8ANDS<12)+(S=C5ORS=C9ORS=13)*C20-C20*(S=C6ORS=C10ORS=14) 65GOSUBC200+80*PR 70GOTO50 80IFNOTPRANDLT2THENPR=C1:LT2=LT2-C1:GOTO100 90IFPRANDLT1THENPR=C0:LT1=LT1-C1 100IFLT1ANDLT2THEN80 110IFPLR<>C1THENPR=NOTPR 120IFMR1ORMR2THENGOSUB2540 130POKE77,C0:GOTO30 140I=PEEK(16):IFI>128THENI=I-128:POKE16,I:POKE53774,I 150RETURN 160RESTORE191+CHAL1*(NOTPR)+CHAL2*PR:IFKN=C3THENRESTORE192 170B=ADDR+(KN)*C8+C7:FORY=C8TOC4STEP-C2:READC:POKEB,C:SOUNDC0,125,C4*PR,Y 180FORZ=C1TOC4:NEXTZ:SOUNDC0,C0,C0,C0:FORZ=C1TOC5*RND(C0)+C3:NEXTZ:NEXTY:RETURN 191DATA34,68,136 192DATA68,34,17 200P=S1-C1+MOVE:IFP<S1ORP>S1+C139THEN360 210IF(MOVE-C1)/C20=INT((MOVE-C1)/C20)ANDPOS/C20=INT(POS/C20)THEN360 220IFMOVE/C20=INT(MOVE/C20)AND(POS-C1)/C20=INT((POS-C1)/C20)THEN360 230T=ASC(SCR$(P)):IFTANDT<>194THEN370 240TPOS=NOTTPOS:SCR$(P,P)=CHR$(194*TPOS):S=STICK(C0):IFS=C15ANDSTRIG(C0)THENGOSUB160:GOTO240 250IFNOTSTRIG(C0)THENGOSUB500:POP:GOTO80 260SCR$(P,P)=C0$:MOVE=POS:RETURN 280P=S2-C1+MOVE:IFP<S2ORP>S2+C139THEN360 290IF(MOVE-C1)/C20=INT((MOVE-C1)/C20)ANDPOS/C20=INT(POS/C20)THEN360 300IFMOVE/C20=INT(MOVE/C20)AND(POS-C1)/C20=INT((POS-C1)/C20)THEN360 310T=ASC(SCR$(P)):IFTANDT<>129THEN370 320TPOS=NOTTPOS:SCR$(P,P)=CHR$(129*TPOS):S=STICK(C1):IFS=C15ANDSTRIG(C1)THENGOSUB160:GOTO320 330IFNOTSTRIG(C1)THENGOSUB700:POP:GOTO80 340SCR$(P,P)=C0$:MOVE=POS:RETURN 360FORY=C8TOC0STEP-C1:SOUNDC1,C200,C8,Y:FORZ=C0TOC5:NEXTZ:NEXTY:MOVE=POS:RETURN 370T=ASC(SCR$(P)):IF(T<>22ORPOS<>58)ANDT<>24THEN410 380SCREEN(PR)=NOTSCREEN(PR):GOSUB1500+PR*C20+SCREEN(PR)*C10 385FORX=C1TOC10:SOUNDC0,C100,C8,C8:FORY=C1TOC5:NEXTY 390SOUNDC0,C0,C0,C0:FORY=C1TOC10:NEXTY:SOUNDC0,C200,C4,C8:FORY=C1TOC5:NEXTY 395SOUNDC0,C0,C0,C0:FORY=C1TOC10:NEXTY 400NEXTX:POP:GOTO80 410T=ASC(SCR$(P)):IFKEY1ANDCHAL1AND(T=205ORT=206)THEN3300 420T=ASC(SCR$(P)):IFKEY2ANDCHAL2AND(T=141ORT=142)THEN3300 430GOTO360 500SC=MOVE+C140*SCREEN(PR):IFASC(SC1$(SC))THEN530 510IFSCREEN(PR)THEN520 515SC1A$(POS1,POS1)=C0$:SC1A$(MOVE,MOVE)=CHR$(194):POS1=MOVE:SCR$(S1,S1+C139)=SC1A$:RETURN 520SC1B$(POS1,POS1)=C0$:SC1B$(MOVE,MOVE)=CHR$(194):POS1=MOVE:SCR$(S1,S1+C139)=SC1B$:RETURN 530IFASC(SC1$(SC))<>207THEN560 540KEY1=C1:GOSUB1540:FORX=C90TOC100:SCR$(P,P)=CHR$(207):SOUNDC0,C100,14,C10 550FORY=C1TOC15:NEXTY:SOUNDC0,C200,C10,C10-X/C10:SCR$(P,P)=C0$:NEXTX:GOTO510 560IFASC(SC1$(SC))<>208THEN580 570GOSUB1540:FORX=C90TOC100:SCR$(P,P)=CHR$(208):SOUNDC0,C150,14,C10:GOTO550 580FORX=C1TOC20:IFASC(SC1$(SC))=ASC(TEMP$(X))THEN600 590NEXTX:IFASC(SC1$(SC))=C8THEN1310 600ONXGOTO810,810,810,810,1000,1000,1070,1070,1090,1090,1200,1200,1200,1200,1070,1070,1070,1070,1220,1290 610RETURN 700SC=MOVE+C140*SCREEN(PR):IFASC(SC2$(SC))THEN730 710IFSCREEN(PR)THEN720 715SC2A$(POS2,POS2)=C0$:SC2A$(MOVE,MOVE)=CHR$(129):POS2=MOVE:SCR$(S2,S2+C139)=SC2A$:RETURN 720SC2B$(POS2,POS2)=C0$:SC2B$(MOVE,MOVE)=CHR$(129):POS2=MOVE:SCR$(S2,S2+C139)=SC2B$:RETURN 730IFASC(SC2$(SC))<>143THEN760 740KEY2=C1:GOSUB1560:FORX=C90TOC100:SCR$(P,P)=CHR$(143):SOUNDC0,215,14,C10 750FORY=C1TOC15:NEXTY:SOUNDC0,C100,C10,C10-X/C10:SCR$(P,P)=C0$:NEXTX:GOTO710 760IFASC(SC2$(SC))<>144THEN780 770GOSUB1560:FORX=C90TOC100:SCR$(P,P)=CHR$(144):SOUNDC0,120,14,C10:GOTO750 780FORX=C1TOC20:IFASC(SC2$(SC))=ASC(TEMP$(X))THEN600 790NEXTX:IFASC(SC2$(SC))=C9THEN1310 800RETURN 810D=P-C1:IFD/C20=INT(D/C20)THEND=P+C1 820SCR$(P,P)=TEMP$(X):SCR$(D,D)=CHR$(153):FORY=C0TOC7:RESTORE910+Y:FORZ=C0TOC7 830READA:POKEADDR+C8*25+Z,A:SOUNDC0,C200,C0,Y*2:NEXTZ:NEXTY 835FORY=C7TOC0STEP-C1:RESTORE910+Y:FORZ=C0TOC7 840READA:POKEADDR+C8*25+Z,A:SOUNDC0,C100,C0,Y+C2:NEXTZ:NEXTY:FORZ=C2TOC30STEPC2 850IFNOTPRANDASC(P1$(Z))=ASC(TEMP$(X+C10))THEN880 860IFPRANDASC(P2$(Z))=ASC(TEMP$(X+C10))THEN880 870NEXTZ:GOSUB1600+PR*C20+SCREEN(PR)*C10:LT1=LT1+X*(NOTPR):LT2=LT2+X*PR:GOTO510+PR*C200 880FORY=-C150TOC150STEPC10:SOUNDC0,ABS(Y),C6,C10-ABS(Y)/C15:POKE53768,129:NEXTY:POKE53768,C0 890IFPRTHENSC2$(SC,SC)=C0$:P2$(Z,Z)=TEMP$(X):SCR$(450,479)=P2$:GOTO710 900SC1$(SC,SC)=C0$:P1$(Z,Z)=TEMP$(X):SCR$(C10,39)=P1$:GOTO510 910DATA0,0,0,0,0,0,0,0 911DATA0,0,0,2,2,0,0,0 912DATA0,0,4,6,6,0,0,0 913DATA0,0,12,14,6,8,0,0 914DATA0,16,12,30,6,24,0,0 915DATA0,48,12,62,6,24,32,0 916DATA64,48,12,126,6,88,32,64 917DATA192,48,12,254,6,88,160,64 1000SCR$(P,P)=TEMP$(X):KN=C3:FORI=C1TOC6:GOSUB160:NEXTI:KN=C1+(NOTPR) 1010FORI=110TO80STEP-C1:SOUNDC0,I,C4,(110-I)/C2:POKE53768,65:NEXTI 1015FORI=C0TO14:SOUNDC0,125,C6,14-I:NEXTI 1020FORZ=C2TOC30STEPC2:IF(PRANDASC(P2$(Z))=144)OR(NOTPRANDASC(P1$(Z))=208)THEN1050 1030NEXTZ:LT1=LT1+(PR=C0):LT2=LT2+PR:GOSUB1600+C20*PR+C10*SCREEN(PR):MOVE=SCREEN(PR)*43+(NOTSCREEN(PR))*81 1040GOTO510+C200*PR 1050IFPRTHENP2$(Z,Z)=TEMP$(X):SCR$(450,479)=P2$:SC2$(SC,SC)=C0$:GOTO710 1060P1$(Z,Z)=TEMP$(X):SCR$(C10,39)=P1$:SC1$(SC,SC)=C0$:GOTO510 1070SCR$(P,P)=TEMP$(X):FORZ=C50TOC150:SOUNDC0,Z+C15,12,C15-Z/C10:SOUNDC1,Z,C10,C15-Z/C10:NEXTZ 1080LT1=LT1+C3*(NOTPR):LT2=LT2+C3*PR:GOSUB1600+C20*PR+C10*SCREEN(PR):RETURN 1090SCR$(P,P)=CHR$(C10):FORZ=C1TOC20:RESTORE1190 1095FORI=C0TOC2:READA:POKEADDR+C8*C10+I,A:SOUNDC0,C50,14,C6:NEXTI 1100FORI=C0TOC2:READA:POKEADDR+80+I,A:SOUNDC0,C10,14,C8:NEXTI:NEXTZ 1110FORZ=C50TOC150:SOUNDC0,Z,14,C8:NEXTZ:FORZ=C10TOC0STEP-C1:SOUNDC0,C200,C0,Z:NEXTZ 1120IFPRANDNOTSCREEN(PR)THENSC2A$(POS2,POS2)=C0$ 1130IFPRANDSCREEN(PR)THENSC2B$(POS2,POS2)=C0$ 1140IFNOTPRANDNOTSCREEN(PR)THENSC1A$(POS1,POS1)=C0$ 1150IFNOTPRANDSCREEN(PR)THENSC1B$(POS1,POS1)=C0$ 1160P=POS+(PR*S2)+((NOTPR)*S1)-C1:SCR$(P,P)=C0$:GOSUB1600+C20*PR+C10*SCREEN(PR) 1170P=SCREEN(PR)*M2+(NOTSCREEN(PR))*M1:IFPRTHENPOS2=P:P=S2+P-C1:SCR$(P,P)=CHR$(129):MR2=C1:RETURN 1180POS1=P:P=S1+P-C1:SCR$(P,P)=CHR$(194):MR1=C1:RETURN 1190DATA160,78,170,64,174,74 1200FORZ=C1TOC20:SOUNDC0,C100,C10,Z/C2:SCR$(P,P)=TEMP$(X):FORI=C1TOC10:NEXTI:SOUNDC0,C50,C10,C10-Z/C2 1210SCR$(P,P)=C0$:FORI=C1TOC10:NEXTI:NEXTZ:GOSUB1540+C20*PR:GOTO510+C200*PR 1220FORZ=C1TOC6:SCR$(P,P)="]":FORI=C200TOC150STEP-C1:SOUNDC0,I,C8,C8:NEXTI:SCR$(P,P)="[" 1230FORI=C100TOC150:SOUNDC0,I,C8,C6:NEXTI:NEXTZ:FORZ=C2TOC30STEPC2 1240IF(PRANDASC(P2$(Z))=C30)OR(NOTPRANDASC(P1$(Z))=C30)THEN1260 1250NEXTZ:SCR$(P,P)=C0$:LT1=LT1+C2*(NOTPR):LT2=LT2+C2*PR:RETURN 1260FORI=C1TOC4:FORA=C50TOC20STEP-C1:SOUNDC0,A,14,C8:NEXTA:NEXTI:SOUNDC0,C0,C0,C0 1270IFPRTHENSC2$(SC,SC)=C0$:P2$(Z,Z)=TEMP$(X):SCR$(450,479)=P2$:GOTO710 1280SC1$(SC,SC)=C0$:P1$(Z,Z)=TEMP$(X):SCR$(C10,39)=P1$:GOTO510 1290FORZ=C1TOC15:FORI=C10TOC0STEP-C2:SOUNDC0,I*C10,14,I:NEXTI:SCR$(P,P)=CHR$(C30) 1295FORI=C10TOC0STEP-C1 1300SOUNDC0,I*C20,C10,I:SCR$(P,P)=C0$:NEXTI:NEXTZ:GOSUB1540+C20*PR:GOTO510+C200*PR 1310SCR$(P,P)=CHR$(25):FORX=-C5TOC5:Y=ABS(X):A=C0 1320RESTORE1360+Y:FORZ=-120TO160STEPC40:I=ABS(Z):SOUNDC0,I,14,Y*C2:SOUNDC1,I+1,14,C2*Y 1330READD:POKEADDR+C8*25+A,D:A=A+C1:NEXTZ:NEXTX:SOUNDC0,C0,C0,C0:SOUNDC1,C0,C0,C0:IFPRTHENCHAL2=C1 1340RESTORE2380:FORI=C0TOC7:READA:POKEADDR+C8*(C1+(PR=C0))+I,A:NEXTI 1345GOSUB1540+C20*PR:IFNOTPRTHENCHAL1=C1 1350GOTO510+C200*PR 1360DATA129,0,0,0,0,0,0,129 1361DATA129,66,0,0,0,0,66,129 1362DATA0,66,38,0,0,38,66,0 1363DATA0,0,38,24,24,38,0,0 1364DATA0,0,0,24,24,0,0,0 1365DATA0,0,0,0,0,0,0,0 1500POS1=58:SC1A$(POS1,POS1)=CHR$(194):SC1B$(POS,POS)=C0$:SCR$(S1,S1+C139)=SC1A$:RETURN 1510POS1=43:SC1B$(POS1,POS1)=CHR$(194):SC1A$(POS,POS)=C0$:SCR$(S1,S1+C139)=SC1B$:RETURN 1520POS2=58:SC2A$(POS2,POS2)=CHR$(129):SC2B$(POS,POS)=C0$:SCR$(S2,S2+C139)=SC2A$:RETURN 1530POS2=43:SC2B$(POS2,POS2)=CHR$(129):SC2A$(POS,POS)=C0$:SCR$(S2,S2+C139)=SC2B$:RETURN 1540FORZ=C2TOC30STEPC2:IFASC(P1$(Z))THENNEXTZ:RETURN 1550P1$(Z,Z)=SC1$(SC):SCR$(C10,39)=P1$:SC1$(SC,SC)=C0$:RETURN 1560FORZ=C2TOC30STEPC2:IFASC(P2$(Z))THENNEXTZ:RETURN 1570P2$(Z,Z)=SC2$(SC):SCR$(450,479)=P2$:SC2$(SC,SC)=C0$:RETURN 1600SC1A$(MOVE,MOVE)=TEMP$(X):MOVE=POS1:RETURN 1610SC1B$(MOVE,MOVE)=TEMP$(X):MOVE=POS1:RETURN 1620SC2A$(MOVE,MOVE)=TEMP$(X):MOVE=POS2:RETURN 1630SC2B$(MOVE,MOVE)=TEMP$(X):MOVE=POS2:RETURN 2000GRAPHICS17+(PLR=C1):GOSUB140:POSITIONC3,C5:?#C6;"" 2010SETCOLORC0,C0,C10:SETCOLORC1,13,C6:SETCOLORC2,C4,C4:SETCOLORC3,C8,C4:GOTO2030 2020DIMA$(C40):RAMTOP=PEEK(106)-C8:POKE106,RAMTOP:CHBAS=RAMTOP:ADDR=CHBAS*C256:PAGE=C4 2025RESTORE2055:FORX=C1TOC40:READA:A$(X)=CHR$(A):NEXTX 2030A=USR(ADR(A$),ADDR,PAGE) 2040RESTORE2100:FORX=C1TOC30:IFX=17THENX=19 2050FORY=C0TOC7:READA:POKEADDR+X*C8+Y,A:NEXTY:NEXTX 2055DATA104,104,133,207,104,133,206,104,104,133,212,169,0,133,204,169,224,133,205,162 2057DATA1,160,0,177,204,145,206,200,208,249,230,205,230,207,232,228,212,208,240,96 2060POKEC756,CHBAS 2070DLL=PEEK(560)+C256*PEEK(561)+C4:DLH=DLL+C1 2080IFNOTPLRTHENRETURN 2090REMALTCHARSET 2100DATA0,18,20,155,125,125,124,136 2110DATA0,18,20,155,125,125,124,136 2120DATA44,68,140,252,76,44,18,99 2130DATA0,60,126,235,175,219,118,60 2140DATA122,205,206,15,23,5,1,62 2150DATA56,126,251,95,238,126,24,24 2160DATA60,126,247,255,106,60,24,24 2170DATA0,255,60,126,60,24,24,60 2180DATA127,85,127,62,28,8,8,62 2190DATA64,174,74,0,126,14,62,127 2200DATA146,243,243,97,97,115,127,127 2210DATA73,207,207,134,134,206,254,254 2220DATA127,126,124,116,116,84,84,127 2230DATA254,126,62,46,46,42,42,254 2240DATA0,96,191,149,208,96,0,0 2250DATA32,16,146,127,146,16,16,32 2260DATA0,64,32,255,32,64,0,0 2270DATA0,24,102,177,48,32,0,0 2280DATA0,0,32,48,177,102,24,0 2290DATA0,3,7,13,25,255,5,1 2300DATA0,255,66,66,66,255,66,66 2310DATA0,192,224,176,152,255,160,128 2320DATA0,0,0,0,0,0,0,0 2330DATA60,126,255,255,255,255,126,60 2340DATA195,153,126,60,24,24,36,66 2350DATA85,127,42,42,62,62,62,62 2360DATA24,60,126,153,219,36,66,129 2370DATA127,85,85,85,85,85,85,127 2380DATA0,72,40,217,190,190,62,17 2400POSITIONC1,C8:?#C6;"PREPAREFORBATTLE" 2410SCR$=C0$:SCR$(480)=C0$:SCR$(C2)=SCR$:SC1A$=SCR$:SC2A$=SCR$:SC1B$=SCR$:SC2B$=SCR$:S1=61:S2=C261 2420SCR$(221)="+.)'(43":SCR$(229)="!.$":SCR$(233)="#(!,)#%3":SCR$(41)="TUTUTUTUTUTUTUTUTUTU":SCR$(201)=SCR$(41) 2430SCR$(241)="UTUTUTUTUTUTUTUTUTUT":SCR$(401)=SCR$(241):SCR$="":SCR$(8)="":SCR$(441)="" 2435SCR$(448)=CHR$(146) 2440FORX=C1TOC10 2450Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC1A$(Y))THEN2450 2460SC1A$(Y,Y)=CHR$(Z) 2470Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC1B$(Y))THEN2470 2480SC1B$(Y,Y)=CHR$(Z) 2490Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC2A$(Y))THEN2490 2500SC2A$(Y,Y)=CHR$(Z) 2510Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC2B$(Y))THEN2510 2520SC2B$(Y,Y)=CHR$(Z):NEXTX:SC1A$(21)="":SC1A$(41)="":SC2A$(21)=CHR$(139):SC2A$(22)=CHR$(140) 2525SC2A$(41)=CHR$(141):SC2A$(42)=CHR$(142):SC1A$(59)=CHR$(22):SC1A$(60)=CHR$(23) 2530SC1B$(41)=CHR$(23):SC1B$(42)=CHR$(24):SC1B$(43)=C0$:SC2A$(59,60)=SC1A$(59):SC2B$(41,43)=SC1B$(41) 2540M1=C140:M2=C20:SC1A$(M1,M1)=CHR$(28):SC2A$(M1,M1)=CHR$(28):SC1B$(M2,M2)=CHR$(28):SC1B$(M1)=C0$ 2545SC2B$(M2,M2)=CHR$(28):IFMR1ORMR2THENRETURN 2550SC1$(1,C140)=SC1A$:SC1$(C141,C280)=SC1B$:SC2$(1,C140)=SC2A$:SC2$(C141,C280)=SC2B$:POS1=81:POS2=81 2560SC1A$(POS1,POS1)=CHR$(194):SC2A$(POS2,POS2)=CHR$(194):SC1$(POS1,POS1)=C0$:SC2$(POS2,POS2)=C0$ 2570SCR$(S1,S1+C139)=SC1A$:SCR$(S2,S2+C139)=SC2A$ 2580SC1$(58,58)="]":SC2$(58,58)="]":SC1A$(58,58)=C0$:SC2A$(58,58)=C0$ 2590RESTORE2850:FORX=C1TO18:READY:TEMP$(X)=CHR$(Y):NEXTX:FORX=C1TO18:IFX=C5THENA=C0 2600Y=INT(C139*RND(C0)+C1):IFY=POS1ORASC(SC1$(Y))THEN2600 2610SC1$(Y,Y)=TEMP$(X) 2620Y=INT(C139*RND(C0)+C141):IFY=C261ORASC(SC1$(Y))THEN2620 2630SC1$(Y,Y)=TEMP$(X):IFNOTATHENA=C1:GOTO2600 2640IFX=C5THENX=C6:A=C0 2650Y=INT(C139*RND(C0)+C1):IFY=POS2ORASC(SC2$(Y))THEN2650 2660SC2$(Y,Y)=TEMP$(X) 2670Y=INT(C139*RND(C0)+C141):IFY=C261ORASC(SC2$(Y))THEN2670 2680SC2$(Y,Y)=TEMP$(X):IFNOTATHENA=C1:GOTO2650 2690NEXTX 2700Y=INT(C279*RND(C0)+C1):IFY=POS1ORY=C261ORASC(SC1$(Y))THEN2700 2710SC1$(Y,Y)=CHR$(207) 2720Y=INT(C279*RND(C0)+C1):IFY=POS2ORY=C261ORASC(SC2$(Y))THEN2720 2730SC2$(Y,Y)=CHR$(143) 2740FORX=C1TOC4 2750Y=INT(C279*RND(C0)+C1):IFY=POS1ORY=C261ORASC(SC1$(Y))THEN2750 2760SC1$(Y,Y)=CHR$(208) 2770Y=INT(C279*RND(C0)+C1):IFY=POS2ORY=C261ORASC(SC2$(Y))THEN2770 2780SC2$(Y,Y)=CHR$(144):NEXTX 2790Y=INT(C139*RND(C0)+C1):IFY=POS1ORASC(SC1$(Y))THEN2790 2800SC1$(Y,Y)=CHR$(C30) 2810Y=INT(C139*RND(C0)+C1):IFY=POS2ORASC(SC2$(Y))THEN2810 2820SC2$(Y,Y)=CHR$(C30) 2830SA=ADR(SCR$):SH=INT(SA/C256):SL=SA-SH*C256:POKEDLL,SL:POKEDLH,SH 2840TEMP$(C20-C1,C20-C1)="]":TEMP$(C20,C20)=CHR$(C30) 2850DATA133,197,69,5,131,195,132,132,10,10,147,211,83,19,218,218,218,218 2860X=INT(C141*RND(C0)+C140):IFASC(SC1$(X))THEN2860 2870SC1$(X,X)=CHR$(C8):Y=INT(C4*RND(C0)+C1):X=X-C1:IFX>C140THENIFNOTASC(SC1$(X))THENSC1$(X,X)=TEMP$(Y) 2880X=X+21:IFX<C281THENIFNOTASC(SC1$(X))THENSC1$(X,X)=TEMP$(Y) 2890X=X-C40:IFX>159THENIFNOTASC(SC1$(X))THENSC1$(X,X)=TEMP$(Y) 2900X=INT(C141*RND(C0)+C141):IFASC(SC2$(X))THEN2900 2910SC2$(X,X)=CHR$(C9):Y=INT(C4*RND(C0)+C1):X=X-C1:IFX>C140THENIFNOTASC(SC2$(X))THENSC2$(X,X)=TEMP$(Y) 2920X=X+21:IFX<C281THENIFNOTASC(SC2$(X))THENSC2$(X,X)=TEMP$(Y) 2930X=X-C40:IFX>159THENIFNOTASC(SC2$(X))THENSC2$(X,X)=TEMP$(Y) 2940GOTO30 3000CLR:C0=0:C1=1:C2=2:C3=3:C4=4:C5=5:C6=6:C7=7:C8=8:C9=9:C10=10:C20=20:C30=30:C40=40:C140=140 3002C200=200:C255=255:C256=256:C141=141:C280=280:C261=261 3003C15=15:C50=50:C150=150:C756=756:C139=139:C279=279:C281=281:C656=656:C657=657:C764=764:C90=90:C100=100 3005GRAPHICSC2:GOSUB140 3010POKE710,C0:POKE708,148:POKE752,C1:POKEC656,C0:POKEC657,14:?"INITIALIZING":GOSUB2020:PR=C0:KN=C1 3020DIMF1$(1):F1A=ADR(F1$):F2L=(1-((F1A/4096)-INT(F1A/4096)))*4096:IFF2L<1800THENDIMF2$(F2L+2) 3022DIMSCR$(480),SC2$(C280),SC1$(C280),SC1A$(C140),SC2A$(C140),SC1B$(C140),SC2B$(C140),TEMP$(C20),C0$(C1) 3025SCR$="":SCR$(C10)=CHR$(C1):C0$=CHR$(C0) 3030DIMP1$(C30),P2$(C30),SCREEN(C1):SCREEN(C0)=C0:SCREEN(C1)=C0:P1$=C0$:P1$(C30)=C0$:P1$(C2)=P1$:P2$=P1$:?"" 3040DIMPL1$(C20),PL2$(C20):FORX=C10TOC1STEP-C1:POSITIONC0,C3:?#C6;SCR$(X,C10):GOSUB160:NEXTX 3050FORX=C9TO18:POSITIONX,C3:?#C6;SCR$(C9,C10):GOSUB160:NEXTX:POSITION19,C3:?#C6;"" 3060SCR$="and":SCR$(12)=CHR$(C1) 3070FORX=12TOC1STEP-C1:POSITIONC0,C5:?#C6;SCR$(X,12):GOSUB160:NEXTX 3080FORX=11TO18:POSITIONX,C5:?#C6;SCR$(11,12):GOSUB160:NEXTX:POSITION19,C5:?#C6;"" 3090SCR$="CHALICES":SCR$(19)=CHR$(C1) 3100FORX=19TOC1STEP-C1:POSITIONC0,C7:?#C6;SCR$(X,19):GOSUB160:NEXTX 3110GOSUB160:POSITION19,C5:?#C6;"" 3120SCR$="BYBRUCEWILLARD":SCR$(29)=CHR$(34):KN=C2 3130FORX=29TOC1STEP-C2:POKEC656,C0:POKEC657,C0:?SCR$(X,29):GOSUB160:NEXTX 3140POKEC656,C1:POKEC657,C10:?"PRESS1FOR1PLAYER":POKEC656,C2:POKEC657,11:?"OR2FOR2PLAYERS" 3150OPEN#C1,C4,C0,"K:" 3160GET#C1,PLR:IFPLR<49ORPLR>C50THENPOKEC764,C255:GOTO3160 3170PLR=PLR-48:CLOSE#C1 3180?"":POKEC656,C0:POKEC657,C10:?"PLAYER1":POKEC656,C1 3185POKEC657,C10:?"LORDORLADY":POKEC656,C2 3190POKEC657,C10:INPUTPL1$:?"":POKEC656,C0 3195POKEC657,C10:?"ANDYOURNAME":POKEC656,C1:POKEC657,C10 3200INPUTTEMP$:PL1$(C6)=TEMP$:FORI=C1TOLEN(PL1$):PL1$(I,I)=CHR$(ASC(PL1$(I))+160):NEXTI:PL1$(C5,C5)="" 3210IFPLR=C1THEN3250 3220?"":POKEC656,C0:POKEC657,C10:?"PLAYER2":POKEC656,C1 3225POKEC657,C10:?"LORDORLADY":POKEC656,C2 3230POKEC657,C10:INPUTPL2$:?"":POKEC656,C0 3235POKEC657,C10:?"ANDYOURNAME":POKEC656,C1:POKEC657,C10 3240INPUTTEMP$:PL2$(C6)=TEMP$:FORI=1TOLEN(PL2$):PL2$(I,I)=CHR$(ASC(PL2$(I))+128):NEXTI 3250PL2$(C5,C5)=CHR$(128):GOTO2000 3300POKE106,RAMTOP+C8:GRAPHICS17:GOSUB140 3310SETCOLORC0,C0,C10:SETCOLORC1,13,C6:SETCOLORC2,C4,C4:SETCOLORC3,C8,C4:POKEC756,224:POSITIONC2,C5 3320?#C6;"CONGRATULATIONS":IFPRTHENPL1$=PL2$ 3330A=19-LEN(PL1$):A=INT(A/C2):POSITIONA,C7:?#C6;PL1$:IFPLR=C1THENGOSUB3400:GOTO3360 3340POSITIONC4,C10:?#C6;"youbested":POSITIONC4,11:?#C6;"youropponent":POSITIONC4,14:?#C6;"therealm" 3350POSITIONC4,C15:?#C6;"salutesyou" 3360POSITIONC1,C20:?#C6;"ANOTHERCHALLENGE?":POSITIONC7,22:?#C6;"(Y/N)":POKEC764,C255 3370A=PEEK(C764):IFA=C255THEN3370 3380POKEC764,C255:IFA=35THENEND 3390CLR:GOTO10 3400A=C100-LT1:B=PEEK(1536):POSITIONC4,C15:?#C6;"HIGHSCORE:" 3410IFA>BTHENPOKE1536,A:FORX=C1TOLEN(PL1$):POKE1537+X,ASC(PL1$(X)):NEXTX:POKE1537,LEN(PL1$) 3420POSITIONC2,C10:?#C6;"thyscorewas";A:POSITIONC2,12:?#C6;"thycoatofarms":POSITIONC2,13 3430?#C6;"isa";:IFLT1<C20THEN?#C6;"lion":GOTO3480 3440IFLT1<C30THEN?#C6;"horse":GOTO3480 3450IFLT1<C40THEN?#C6;"goat":GOTO3480 3460IFLT1<C50THEN?#C6;"duck":GOTO3480 3470?#C6;"snail" 3480B=PEEK(1536):C=PEEK(1537):FORX=C1TOC:PL1$(X,X)=CHR$(PEEK(1537+X)):NEXTX 3490L=17-C:L=INT(L/C2):POSITIONL,17:?#C6;PL1$(C1,C);"";B:RETURN 4000REMSCENERIO 4010GRAPHICS0:SETCOLOR2,7,0:POKE752,1 4015?"":POSITION2,11:?"YOUAREABOUTTOEMBARKONAQUEST!!":FORDLAY=1TO500:NEXTDLAY 4020?"":?"YourgoodKinghasbeenrobbedbyanevilKingofhisroyalChaliceand," 4030?"asafurtherinsult,lockedoutofhisowncastle." 4040?:?"YouareselectedashisfavoriteLord(orLady)toretrievetheChalice" 4050?"andthekeytoopentheroyalcastle." 4060?:?"Therearemanyobstaclesinyourway.Dragons,enemyarchers,agiantape," 4070?"lakesandlavapoolsabound,nottomentiontheevilkingsthemselves!Of" 4080?"coursetherearealsoobjectstoaidyoursearch,suchasswords,abow" 4090?"andarrow,andanapecage.However,youmusthavetherightdefensefor" 4100?"thedangerthreateningyou!" 4110?:?:?:?"PRESS<START>"; 4120FORDLAY=1TO100:NEXTDLAY:IFPEEK(53279)<>6THEN4120 4130?"":?"YourobjectiveistoobtaintheroyalChaliceandthekeytotheroyal" 4140?"castle,whilebeingdelayedaslittleaspossiblebythedangersawaiting" 4150?"you.Ifyoushouldrunintosomethingnastywithouttheproperprotection," 4160?"youwilllosetimeorbetransported!Anememyarcherwillsendyoutothe" 4170?"beginningofthepathyouareon,andtheevilkingswillsendyoutothe" 4180?"prisonatthecornerofthescreen!" 4190?:?"WhenyoufinallyreturntothecastleyourgratefulKingwillgrantyoua" 4200?"CoatofArmsappropriatetoyourfearlesseffort.Onwiththequest..." 4220?:?:?:?:?"PRESS<START>" 4230FORDLAY=1TO100:NEXTDLAY:IFPEEK(53279)<>6THEN4230 4240GOTO10
References
Listing downloads
Downloads
Copyright holder
