Random software
Random hardware
Random game
Knights and Chalices Knights and Chalices Knights and Chalices Knights and Chalices Knights and Chalices Knights and Chalices
Listing 1
0REM>>KNIGHTSANDCHALICES<<
1REM>>byBruceWillard<<
3REM
5GOTO4000
10GOTO3000
30KN=C2:POS=POS1:IFPR=C1THENPOS=POS2:KN=C1
40MOVE=POS
50S=STICK(PR):IFS=C15THENGOSUB160:GOTO50
60MOVE=POS+(S<C8)-C1*(S>C8ANDS<12)+(S=C5ORS=C9ORS=13)*C20-C20*(S=C6ORS=C10ORS=14)
65GOSUBC200+80*PR
70GOTO50
80IFNOTPRANDLT2THENPR=C1:LT2=LT2-C1:GOTO100
90IFPRANDLT1THENPR=C0:LT1=LT1-C1
100IFLT1ANDLT2THEN80
110IFPLR<>C1THENPR=NOTPR
120IFMR1ORMR2THENGOSUB2540
130POKE77,C0:GOTO30
140I=PEEK(16):IFI>128THENI=I-128:POKE16,I:POKE53774,I
150RETURN
160RESTORE191+CHAL1*(NOTPR)+CHAL2*PR:IFKN=C3THENRESTORE192
170B=ADDR+(KN)*C8+C7:FORY=C8TOC4STEP-C2:READC:POKEB,C:SOUNDC0,125,C4*PR,Y
180FORZ=C1TOC4:NEXTZ:SOUNDC0,C0,C0,C0:FORZ=C1TOC5*RND(C0)+C3:NEXTZ:NEXTY:RETURN
191DATA34,68,136
192DATA68,34,17
200P=S1-C1+MOVE:IFP<S1ORP>S1+C139THEN360
210IF(MOVE-C1)/C20=INT((MOVE-C1)/C20)ANDPOS/C20=INT(POS/C20)THEN360
220IFMOVE/C20=INT(MOVE/C20)AND(POS-C1)/C20=INT((POS-C1)/C20)THEN360
230T=ASC(SCR$(P)):IFTANDT<>194THEN370
240TPOS=NOTTPOS:SCR$(P,P)=CHR$(194*TPOS):S=STICK(C0):IFS=C15ANDSTRIG(C0)THENGOSUB160:GOTO240
250IFNOTSTRIG(C0)THENGOSUB500:POP:GOTO80
260SCR$(P,P)=C0$:MOVE=POS:RETURN
280P=S2-C1+MOVE:IFP<S2ORP>S2+C139THEN360
290IF(MOVE-C1)/C20=INT((MOVE-C1)/C20)ANDPOS/C20=INT(POS/C20)THEN360
300IFMOVE/C20=INT(MOVE/C20)AND(POS-C1)/C20=INT((POS-C1)/C20)THEN360
310T=ASC(SCR$(P)):IFTANDT<>129THEN370
320TPOS=NOTTPOS:SCR$(P,P)=CHR$(129*TPOS):S=STICK(C1):IFS=C15ANDSTRIG(C1)THENGOSUB160:GOTO320
330IFNOTSTRIG(C1)THENGOSUB700:POP:GOTO80
340SCR$(P,P)=C0$:MOVE=POS:RETURN
360FORY=C8TOC0STEP-C1:SOUNDC1,C200,C8,Y:FORZ=C0TOC5:NEXTZ:NEXTY:MOVE=POS:RETURN
370T=ASC(SCR$(P)):IF(T<>22ORPOS<>58)ANDT<>24THEN410
380SCREEN(PR)=NOTSCREEN(PR):GOSUB1500+PR*C20+SCREEN(PR)*C10
385FORX=C1TOC10:SOUNDC0,C100,C8,C8:FORY=C1TOC5:NEXTY
390SOUNDC0,C0,C0,C0:FORY=C1TOC10:NEXTY:SOUNDC0,C200,C4,C8:FORY=C1TOC5:NEXTY
395SOUNDC0,C0,C0,C0:FORY=C1TOC10:NEXTY
400NEXTX:POP:GOTO80
410T=ASC(SCR$(P)):IFKEY1ANDCHAL1AND(T=205ORT=206)THEN3300
420T=ASC(SCR$(P)):IFKEY2ANDCHAL2AND(T=141ORT=142)THEN3300
430GOTO360
500SC=MOVE+C140*SCREEN(PR):IFASC(SC1$(SC))THEN530
510IFSCREEN(PR)THEN520
515SC1A$(POS1,POS1)=C0$:SC1A$(MOVE,MOVE)=CHR$(194):POS1=MOVE:SCR$(S1,S1+C139)=SC1A$:RETURN
520SC1B$(POS1,POS1)=C0$:SC1B$(MOVE,MOVE)=CHR$(194):POS1=MOVE:SCR$(S1,S1+C139)=SC1B$:RETURN
530IFASC(SC1$(SC))<>207THEN560
540KEY1=C1:GOSUB1540:FORX=C90TOC100:SCR$(P,P)=CHR$(207):SOUNDC0,C100,14,C10
550FORY=C1TOC15:NEXTY:SOUNDC0,C200,C10,C10-X/C10:SCR$(P,P)=C0$:NEXTX:GOTO510
560IFASC(SC1$(SC))<>208THEN580
570GOSUB1540:FORX=C90TOC100:SCR$(P,P)=CHR$(208):SOUNDC0,C150,14,C10:GOTO550
580FORX=C1TOC20:IFASC(SC1$(SC))=ASC(TEMP$(X))THEN600
590NEXTX:IFASC(SC1$(SC))=C8THEN1310
600ONXGOTO810,810,810,810,1000,1000,1070,1070,1090,1090,1200,1200,1200,1200,1070,1070,1070,1070,1220,1290
610RETURN
700SC=MOVE+C140*SCREEN(PR):IFASC(SC2$(SC))THEN730
710IFSCREEN(PR)THEN720
715SC2A$(POS2,POS2)=C0$:SC2A$(MOVE,MOVE)=CHR$(129):POS2=MOVE:SCR$(S2,S2+C139)=SC2A$:RETURN
720SC2B$(POS2,POS2)=C0$:SC2B$(MOVE,MOVE)=CHR$(129):POS2=MOVE:SCR$(S2,S2+C139)=SC2B$:RETURN
730IFASC(SC2$(SC))<>143THEN760
740KEY2=C1:GOSUB1560:FORX=C90TOC100:SCR$(P,P)=CHR$(143):SOUNDC0,215,14,C10
750FORY=C1TOC15:NEXTY:SOUNDC0,C100,C10,C10-X/C10:SCR$(P,P)=C0$:NEXTX:GOTO710
760IFASC(SC2$(SC))<>144THEN780
770GOSUB1560:FORX=C90TOC100:SCR$(P,P)=CHR$(144):SOUNDC0,120,14,C10:GOTO750
780FORX=C1TOC20:IFASC(SC2$(SC))=ASC(TEMP$(X))THEN600
790NEXTX:IFASC(SC2$(SC))=C9THEN1310
800RETURN
810D=P-C1:IFD/C20=INT(D/C20)THEND=P+C1
820SCR$(P,P)=TEMP$(X):SCR$(D,D)=CHR$(153):FORY=C0TOC7:RESTORE910+Y:FORZ=C0TOC7
830READA:POKEADDR+C8*25+Z,A:SOUNDC0,C200,C0,Y*2:NEXTZ:NEXTY
835FORY=C7TOC0STEP-C1:RESTORE910+Y:FORZ=C0TOC7
840READA:POKEADDR+C8*25+Z,A:SOUNDC0,C100,C0,Y+C2:NEXTZ:NEXTY:FORZ=C2TOC30STEPC2
850IFNOTPRANDASC(P1$(Z))=ASC(TEMP$(X+C10))THEN880
860IFPRANDASC(P2$(Z))=ASC(TEMP$(X+C10))THEN880
870NEXTZ:GOSUB1600+PR*C20+SCREEN(PR)*C10:LT1=LT1+X*(NOTPR):LT2=LT2+X*PR:GOTO510+PR*C200
880FORY=-C150TOC150STEPC10:SOUNDC0,ABS(Y),C6,C10-ABS(Y)/C15:POKE53768,129:NEXTY:POKE53768,C0
890IFPRTHENSC2$(SC,SC)=C0$:P2$(Z,Z)=TEMP$(X):SCR$(450,479)=P2$:GOTO710
900SC1$(SC,SC)=C0$:P1$(Z,Z)=TEMP$(X):SCR$(C10,39)=P1$:GOTO510
910DATA0,0,0,0,0,0,0,0
911DATA0,0,0,2,2,0,0,0
912DATA0,0,4,6,6,0,0,0
913DATA0,0,12,14,6,8,0,0
914DATA0,16,12,30,6,24,0,0
915DATA0,48,12,62,6,24,32,0
916DATA64,48,12,126,6,88,32,64
917DATA192,48,12,254,6,88,160,64
1000SCR$(P,P)=TEMP$(X):KN=C3:FORI=C1TOC6:GOSUB160:NEXTI:KN=C1+(NOTPR)
1010FORI=110TO80STEP-C1:SOUNDC0,I,C4,(110-I)/C2:POKE53768,65:NEXTI
1015FORI=C0TO14:SOUNDC0,125,C6,14-I:NEXTI
1020FORZ=C2TOC30STEPC2:IF(PRANDASC(P2$(Z))=144)OR(NOTPRANDASC(P1$(Z))=208)THEN1050
1030NEXTZ:LT1=LT1+(PR=C0):LT2=LT2+PR:GOSUB1600+C20*PR+C10*SCREEN(PR):MOVE=SCREEN(PR)*43+(NOTSCREEN(PR))*81
1040GOTO510+C200*PR
1050IFPRTHENP2$(Z,Z)=TEMP$(X):SCR$(450,479)=P2$:SC2$(SC,SC)=C0$:GOTO710
1060P1$(Z,Z)=TEMP$(X):SCR$(C10,39)=P1$:SC1$(SC,SC)=C0$:GOTO510
1070SCR$(P,P)=TEMP$(X):FORZ=C50TOC150:SOUNDC0,Z+C15,12,C15-Z/C10:SOUNDC1,Z,C10,C15-Z/C10:NEXTZ
1080LT1=LT1+C3*(NOTPR):LT2=LT2+C3*PR:GOSUB1600+C20*PR+C10*SCREEN(PR):RETURN
1090SCR$(P,P)=CHR$(C10):FORZ=C1TOC20:RESTORE1190
1095FORI=C0TOC2:READA:POKEADDR+C8*C10+I,A:SOUNDC0,C50,14,C6:NEXTI
1100FORI=C0TOC2:READA:POKEADDR+80+I,A:SOUNDC0,C10,14,C8:NEXTI:NEXTZ
1110FORZ=C50TOC150:SOUNDC0,Z,14,C8:NEXTZ:FORZ=C10TOC0STEP-C1:SOUNDC0,C200,C0,Z:NEXTZ
1120IFPRANDNOTSCREEN(PR)THENSC2A$(POS2,POS2)=C0$
1130IFPRANDSCREEN(PR)THENSC2B$(POS2,POS2)=C0$
1140IFNOTPRANDNOTSCREEN(PR)THENSC1A$(POS1,POS1)=C0$
1150IFNOTPRANDSCREEN(PR)THENSC1B$(POS1,POS1)=C0$
1160P=POS+(PR*S2)+((NOTPR)*S1)-C1:SCR$(P,P)=C0$:GOSUB1600+C20*PR+C10*SCREEN(PR)
1170P=SCREEN(PR)*M2+(NOTSCREEN(PR))*M1:IFPRTHENPOS2=P:P=S2+P-C1:SCR$(P,P)=CHR$(129):MR2=C1:RETURN
1180POS1=P:P=S1+P-C1:SCR$(P,P)=CHR$(194):MR1=C1:RETURN
1190DATA160,78,170,64,174,74
1200FORZ=C1TOC20:SOUNDC0,C100,C10,Z/C2:SCR$(P,P)=TEMP$(X):FORI=C1TOC10:NEXTI:SOUNDC0,C50,C10,C10-Z/C2
1210SCR$(P,P)=C0$:FORI=C1TOC10:NEXTI:NEXTZ:GOSUB1540+C20*PR:GOTO510+C200*PR
1220FORZ=C1TOC6:SCR$(P,P)="]":FORI=C200TOC150STEP-C1:SOUNDC0,I,C8,C8:NEXTI:SCR$(P,P)="["
1230FORI=C100TOC150:SOUNDC0,I,C8,C6:NEXTI:NEXTZ:FORZ=C2TOC30STEPC2
1240IF(PRANDASC(P2$(Z))=C30)OR(NOTPRANDASC(P1$(Z))=C30)THEN1260
1250NEXTZ:SCR$(P,P)=C0$:LT1=LT1+C2*(NOTPR):LT2=LT2+C2*PR:RETURN
1260FORI=C1TOC4:FORA=C50TOC20STEP-C1:SOUNDC0,A,14,C8:NEXTA:NEXTI:SOUNDC0,C0,C0,C0
1270IFPRTHENSC2$(SC,SC)=C0$:P2$(Z,Z)=TEMP$(X):SCR$(450,479)=P2$:GOTO710
1280SC1$(SC,SC)=C0$:P1$(Z,Z)=TEMP$(X):SCR$(C10,39)=P1$:GOTO510
1290FORZ=C1TOC15:FORI=C10TOC0STEP-C2:SOUNDC0,I*C10,14,I:NEXTI:SCR$(P,P)=CHR$(C30)
1295FORI=C10TOC0STEP-C1
1300SOUNDC0,I*C20,C10,I:SCR$(P,P)=C0$:NEXTI:NEXTZ:GOSUB1540+C20*PR:GOTO510+C200*PR
1310SCR$(P,P)=CHR$(25):FORX=-C5TOC5:Y=ABS(X):A=C0
1320RESTORE1360+Y:FORZ=-120TO160STEPC40:I=ABS(Z):SOUNDC0,I,14,Y*C2:SOUNDC1,I+1,14,C2*Y
1330READD:POKEADDR+C8*25+A,D:A=A+C1:NEXTZ:NEXTX:SOUNDC0,C0,C0,C0:SOUNDC1,C0,C0,C0:IFPRTHENCHAL2=C1
1340RESTORE2380:FORI=C0TOC7:READA:POKEADDR+C8*(C1+(PR=C0))+I,A:NEXTI
1345GOSUB1540+C20*PR:IFNOTPRTHENCHAL1=C1
1350GOTO510+C200*PR
1360DATA129,0,0,0,0,0,0,129
1361DATA129,66,0,0,0,0,66,129
1362DATA0,66,38,0,0,38,66,0
1363DATA0,0,38,24,24,38,0,0
1364DATA0,0,0,24,24,0,0,0
1365DATA0,0,0,0,0,0,0,0
1500POS1=58:SC1A$(POS1,POS1)=CHR$(194):SC1B$(POS,POS)=C0$:SCR$(S1,S1+C139)=SC1A$:RETURN
1510POS1=43:SC1B$(POS1,POS1)=CHR$(194):SC1A$(POS,POS)=C0$:SCR$(S1,S1+C139)=SC1B$:RETURN
1520POS2=58:SC2A$(POS2,POS2)=CHR$(129):SC2B$(POS,POS)=C0$:SCR$(S2,S2+C139)=SC2A$:RETURN
1530POS2=43:SC2B$(POS2,POS2)=CHR$(129):SC2A$(POS,POS)=C0$:SCR$(S2,S2+C139)=SC2B$:RETURN
1540FORZ=C2TOC30STEPC2:IFASC(P1$(Z))THENNEXTZ:RETURN
1550P1$(Z,Z)=SC1$(SC):SCR$(C10,39)=P1$:SC1$(SC,SC)=C0$:RETURN
1560FORZ=C2TOC30STEPC2:IFASC(P2$(Z))THENNEXTZ:RETURN
1570P2$(Z,Z)=SC2$(SC):SCR$(450,479)=P2$:SC2$(SC,SC)=C0$:RETURN
1600SC1A$(MOVE,MOVE)=TEMP$(X):MOVE=POS1:RETURN
1610SC1B$(MOVE,MOVE)=TEMP$(X):MOVE=POS1:RETURN
1620SC2A$(MOVE,MOVE)=TEMP$(X):MOVE=POS2:RETURN
1630SC2B$(MOVE,MOVE)=TEMP$(X):MOVE=POS2:RETURN
2000GRAPHICS17+(PLR=C1):GOSUB140:POSITIONC3,C5:?#C6;""
2010SETCOLORC0,C0,C10:SETCOLORC1,13,C6:SETCOLORC2,C4,C4:SETCOLORC3,C8,C4:GOTO2030
2020DIMA$(C40):RAMTOP=PEEK(106)-C8:POKE106,RAMTOP:CHBAS=RAMTOP:ADDR=CHBAS*C256:PAGE=C4
2025RESTORE2055:FORX=C1TOC40:READA:A$(X)=CHR$(A):NEXTX
2030A=USR(ADR(A$),ADDR,PAGE)
2040RESTORE2100:FORX=C1TOC30:IFX=17THENX=19
2050FORY=C0TOC7:READA:POKEADDR+X*C8+Y,A:NEXTY:NEXTX
2055DATA104,104,133,207,104,133,206,104,104,133,212,169,0,133,204,169,224,133,205,162
2057DATA1,160,0,177,204,145,206,200,208,249,230,205,230,207,232,228,212,208,240,96
2060POKEC756,CHBAS
2070DLL=PEEK(560)+C256*PEEK(561)+C4:DLH=DLL+C1
2080IFNOTPLRTHENRETURN
2090REMALTCHARSET
2100DATA0,18,20,155,125,125,124,136
2110DATA0,18,20,155,125,125,124,136
2120DATA44,68,140,252,76,44,18,99
2130DATA0,60,126,235,175,219,118,60
2140DATA122,205,206,15,23,5,1,62
2150DATA56,126,251,95,238,126,24,24
2160DATA60,126,247,255,106,60,24,24
2170DATA0,255,60,126,60,24,24,60
2180DATA127,85,127,62,28,8,8,62
2190DATA64,174,74,0,126,14,62,127
2200DATA146,243,243,97,97,115,127,127
2210DATA73,207,207,134,134,206,254,254
2220DATA127,126,124,116,116,84,84,127
2230DATA254,126,62,46,46,42,42,254
2240DATA0,96,191,149,208,96,0,0
2250DATA32,16,146,127,146,16,16,32
2260DATA0,64,32,255,32,64,0,0
2270DATA0,24,102,177,48,32,0,0
2280DATA0,0,32,48,177,102,24,0
2290DATA0,3,7,13,25,255,5,1
2300DATA0,255,66,66,66,255,66,66
2310DATA0,192,224,176,152,255,160,128
2320DATA0,0,0,0,0,0,0,0
2330DATA60,126,255,255,255,255,126,60
2340DATA195,153,126,60,24,24,36,66
2350DATA85,127,42,42,62,62,62,62
2360DATA24,60,126,153,219,36,66,129
2370DATA127,85,85,85,85,85,85,127
2380DATA0,72,40,217,190,190,62,17
2400POSITIONC1,C8:?#C6;"PREPAREFORBATTLE"
2410SCR$=C0$:SCR$(480)=C0$:SCR$(C2)=SCR$:SC1A$=SCR$:SC2A$=SCR$:SC1B$=SCR$:SC2B$=SCR$:S1=61:S2=C261
2420SCR$(221)="+.)'(43":SCR$(229)="!.$":SCR$(233)="#(!,)#%3":SCR$(41)="TUTUTUTUTUTUTUTUTUTU":SCR$(201)=SCR$(41)
2430SCR$(241)="UTUTUTUTUTUTUTUTUTUT":SCR$(401)=SCR$(241):SCR$="":SCR$(8)="":SCR$(441)=""
2435SCR$(448)=CHR$(146)
2440FORX=C1TOC10
2450Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC1A$(Y))THEN2450
2460SC1A$(Y,Y)=CHR$(Z)
2470Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC1B$(Y))THEN2470
2480SC1B$(Y,Y)=CHR$(Z)
2490Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC2A$(Y))THEN2490
2500SC2A$(Y,Y)=CHR$(Z)
2510Y=INT(C140*RND(C0)+C1):Z=INT(C2*RND(C0)+70):IFASC(SC2B$(Y))THEN2510
2520SC2B$(Y,Y)=CHR$(Z):NEXTX:SC1A$(21)="":SC1A$(41)="":SC2A$(21)=CHR$(139):SC2A$(22)=CHR$(140)
2525SC2A$(41)=CHR$(141):SC2A$(42)=CHR$(142):SC1A$(59)=CHR$(22):SC1A$(60)=CHR$(23)
2530SC1B$(41)=CHR$(23):SC1B$(42)=CHR$(24):SC1B$(43)=C0$:SC2A$(59,60)=SC1A$(59):SC2B$(41,43)=SC1B$(41)
2540M1=C140:M2=C20:SC1A$(M1,M1)=CHR$(28):SC2A$(M1,M1)=CHR$(28):SC1B$(M2,M2)=CHR$(28):SC1B$(M1)=C0$
2545SC2B$(M2,M2)=CHR$(28):IFMR1ORMR2THENRETURN
2550SC1$(1,C140)=SC1A$:SC1$(C141,C280)=SC1B$:SC2$(1,C140)=SC2A$:SC2$(C141,C280)=SC2B$:POS1=81:POS2=81
2560SC1A$(POS1,POS1)=CHR$(194):SC2A$(POS2,POS2)=CHR$(194):SC1$(POS1,POS1)=C0$:SC2$(POS2,POS2)=C0$
2570SCR$(S1,S1+C139)=SC1A$:SCR$(S2,S2+C139)=SC2A$
2580SC1$(58,58)="]":SC2$(58,58)="]":SC1A$(58,58)=C0$:SC2A$(58,58)=C0$
2590RESTORE2850:FORX=C1TO18:READY:TEMP$(X)=CHR$(Y):NEXTX:FORX=C1TO18:IFX=C5THENA=C0
2600Y=INT(C139*RND(C0)+C1):IFY=POS1ORASC(SC1$(Y))THEN2600
2610SC1$(Y,Y)=TEMP$(X)
2620Y=INT(C139*RND(C0)+C141):IFY=C261ORASC(SC1$(Y))THEN2620
2630SC1$(Y,Y)=TEMP$(X):IFNOTATHENA=C1:GOTO2600
2640IFX=C5THENX=C6:A=C0
2650Y=INT(C139*RND(C0)+C1):IFY=POS2ORASC(SC2$(Y))THEN2650
2660SC2$(Y,Y)=TEMP$(X)
2670Y=INT(C139*RND(C0)+C141):IFY=C261ORASC(SC2$(Y))THEN2670
2680SC2$(Y,Y)=TEMP$(X):IFNOTATHENA=C1:GOTO2650
2690NEXTX
2700Y=INT(C279*RND(C0)+C1):IFY=POS1ORY=C261ORASC(SC1$(Y))THEN2700
2710SC1$(Y,Y)=CHR$(207)
2720Y=INT(C279*RND(C0)+C1):IFY=POS2ORY=C261ORASC(SC2$(Y))THEN2720
2730SC2$(Y,Y)=CHR$(143)
2740FORX=C1TOC4
2750Y=INT(C279*RND(C0)+C1):IFY=POS1ORY=C261ORASC(SC1$(Y))THEN2750
2760SC1$(Y,Y)=CHR$(208)
2770Y=INT(C279*RND(C0)+C1):IFY=POS2ORY=C261ORASC(SC2$(Y))THEN2770
2780SC2$(Y,Y)=CHR$(144):NEXTX
2790Y=INT(C139*RND(C0)+C1):IFY=POS1ORASC(SC1$(Y))THEN2790
2800SC1$(Y,Y)=CHR$(C30)
2810Y=INT(C139*RND(C0)+C1):IFY=POS2ORASC(SC2$(Y))THEN2810
2820SC2$(Y,Y)=CHR$(C30)
2830SA=ADR(SCR$):SH=INT(SA/C256):SL=SA-SH*C256:POKEDLL,SL:POKEDLH,SH
2840TEMP$(C20-C1,C20-C1)="]":TEMP$(C20,C20)=CHR$(C30)
2850DATA133,197,69,5,131,195,132,132,10,10,147,211,83,19,218,218,218,218
2860X=INT(C141*RND(C0)+C140):IFASC(SC1$(X))THEN2860
2870SC1$(X,X)=CHR$(C8):Y=INT(C4*RND(C0)+C1):X=X-C1:IFX>C140THENIFNOTASC(SC1$(X))THENSC1$(X,X)=TEMP$(Y)
2880X=X+21:IFX<C281THENIFNOTASC(SC1$(X))THENSC1$(X,X)=TEMP$(Y)
2890X=X-C40:IFX>159THENIFNOTASC(SC1$(X))THENSC1$(X,X)=TEMP$(Y)
2900X=INT(C141*RND(C0)+C141):IFASC(SC2$(X))THEN2900
2910SC2$(X,X)=CHR$(C9):Y=INT(C4*RND(C0)+C1):X=X-C1:IFX>C140THENIFNOTASC(SC2$(X))THENSC2$(X,X)=TEMP$(Y)
2920X=X+21:IFX<C281THENIFNOTASC(SC2$(X))THENSC2$(X,X)=TEMP$(Y)
2930X=X-C40:IFX>159THENIFNOTASC(SC2$(X))THENSC2$(X,X)=TEMP$(Y)
2940GOTO30
3000CLR: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
3002C200=200:C255=255:C256=256:C141=141:C280=280:C261=261
3003C15=15:C50=50:C150=150:C756=756:C139=139:C279=279:C281=281:C656=656:C657=657:C764=764:C90=90:C100=100
3005GRAPHICSC2:GOSUB140
3010POKE710,C0:POKE708,148:POKE752,C1:POKEC656,C0:POKEC657,14:?"INITIALIZING":GOSUB2020:PR=C0:KN=C1
3020DIMF1$(1):F1A=ADR(F1$):F2L=(1-((F1A/4096)-INT(F1A/4096)))*4096:IFF2L<1800THENDIMF2$(F2L+2)
3022DIMSCR$(480),SC2$(C280),SC1$(C280),SC1A$(C140),SC2A$(C140),SC1B$(C140),SC2B$(C140),TEMP$(C20),C0$(C1)
3025SCR$="":SCR$(C10)=CHR$(C1):C0$=CHR$(C0)
3030DIMP1$(C30),P2$(C30),SCREEN(C1):SCREEN(C0)=C0:SCREEN(C1)=C0:P1$=C0$:P1$(C30)=C0$:P1$(C2)=P1$:P2$=P1$:?""
3040DIMPL1$(C20),PL2$(C20):FORX=C10TOC1STEP-C1:POSITIONC0,C3:?#C6;SCR$(X,C10):GOSUB160:NEXTX
3050FORX=C9TO18:POSITIONX,C3:?#C6;SCR$(C9,C10):GOSUB160:NEXTX:POSITION19,C3:?#C6;""
3060SCR$="and":SCR$(12)=CHR$(C1)
3070FORX=12TOC1STEP-C1:POSITIONC0,C5:?#C6;SCR$(X,12):GOSUB160:NEXTX
3080FORX=11TO18:POSITIONX,C5:?#C6;SCR$(11,12):GOSUB160:NEXTX:POSITION19,C5:?#C6;""
3090SCR$="CHALICES":SCR$(19)=CHR$(C1)
3100FORX=19TOC1STEP-C1:POSITIONC0,C7:?#C6;SCR$(X,19):GOSUB160:NEXTX
3110GOSUB160:POSITION19,C5:?#C6;""
3120SCR$="BYBRUCEWILLARD":SCR$(29)=CHR$(34):KN=C2
3130FORX=29TOC1STEP-C2:POKEC656,C0:POKEC657,C0:?SCR$(X,29):GOSUB160:NEXTX
3140POKEC656,C1:POKEC657,C10:?"PRESS1FOR1PLAYER":POKEC656,C2:POKEC657,11:?"OR2FOR2PLAYERS"
3150OPEN#C1,C4,C0,"K:"
3160GET#C1,PLR:IFPLR<49ORPLR>C50THENPOKEC764,C255:GOTO3160
3170PLR=PLR-48:CLOSE#C1
3180?"":POKEC656,C0:POKEC657,C10:?"PLAYER1":POKEC656,C1
3185POKEC657,C10:?"LORDORLADY":POKEC656,C2
3190POKEC657,C10:INPUTPL1$:?"":POKEC656,C0
3195POKEC657,C10:?"ANDYOURNAME":POKEC656,C1:POKEC657,C10
3200INPUTTEMP$:PL1$(C6)=TEMP$:FORI=C1TOLEN(PL1$):PL1$(I,I)=CHR$(ASC(PL1$(I))+160):NEXTI:PL1$(C5,C5)=""
3210IFPLR=C1THEN3250
3220?"":POKEC656,C0:POKEC657,C10:?"PLAYER2":POKEC656,C1
3225POKEC657,C10:?"LORDORLADY":POKEC656,C2
3230POKEC657,C10:INPUTPL2$:?"":POKEC656,C0
3235POKEC657,C10:?"ANDYOURNAME":POKEC656,C1:POKEC657,C10
3240INPUTTEMP$:PL2$(C6)=TEMP$:FORI=1TOLEN(PL2$):PL2$(I,I)=CHR$(ASC(PL2$(I))+128):NEXTI
3250PL2$(C5,C5)=CHR$(128):GOTO2000
3300POKE106,RAMTOP+C8:GRAPHICS17:GOSUB140
3310SETCOLORC0,C0,C10:SETCOLORC1,13,C6:SETCOLORC2,C4,C4:SETCOLORC3,C8,C4:POKEC756,224:POSITIONC2,C5
3320?#C6;"CONGRATULATIONS":IFPRTHENPL1$=PL2$
3330A=19-LEN(PL1$):A=INT(A/C2):POSITIONA,C7:?#C6;PL1$:IFPLR=C1THENGOSUB3400:GOTO3360
3340POSITIONC4,C10:?#C6;"youbested":POSITIONC4,11:?#C6;"youropponent":POSITIONC4,14:?#C6;"therealm"
3350POSITIONC4,C15:?#C6;"salutesyou"
3360POSITIONC1,C20:?#C6;"ANOTHERCHALLENGE?":POSITIONC7,22:?#C6;"(Y/N)":POKEC764,C255
3370A=PEEK(C764):IFA=C255THEN3370
3380POKEC764,C255:IFA=35THENEND
3390CLR:GOTO10
3400A=C100-LT1:B=PEEK(1536):POSITIONC4,C15:?#C6;"HIGHSCORE:"
3410IFA>BTHENPOKE1536,A:FORX=C1TOLEN(PL1$):POKE1537+X,ASC(PL1$(X)):NEXTX:POKE1537,LEN(PL1$)
3420POSITIONC2,C10:?#C6;"thyscorewas";A:POSITIONC2,12:?#C6;"thycoatofarms":POSITIONC2,13
3430?#C6;"isa";:IFLT1<C20THEN?#C6;"lion":GOTO3480
3440IFLT1<C30THEN?#C6;"horse":GOTO3480
3450IFLT1<C40THEN?#C6;"goat":GOTO3480
3460IFLT1<C50THEN?#C6;"duck":GOTO3480
3470?#C6;"snail"
3480B=PEEK(1536):C=PEEK(1537):FORX=C1TOC:PL1$(X,X)=CHR$(PEEK(1537+X)):NEXTX
3490L=17-C:L=INT(L/C2):POSITIONL,17:?#C6;PL1$(C1,C);"";B:RETURN
4000REMSCENERIO
4010GRAPHICS0:SETCOLOR2,7,0:POKE752,1
4015?"":POSITION2,11:?"YOUAREABOUTTOEMBARKONAQUEST!!":FORDLAY=1TO500:NEXTDLAY
4020?"":?"YourgoodKinghasbeenrobbedbyanevilKingofhisroyalChaliceand,"
4030?"asafurtherinsult,lockedoutofhisowncastle."
4040?:?"YouareselectedashisfavoriteLord(orLady)toretrievetheChalice"
4050?"andthekeytoopentheroyalcastle."
4060?:?"Therearemanyobstaclesinyourway.Dragons,enemyarchers,agiantape,"
4070?"lakesandlavapoolsabound,nottomentiontheevilkingsthemselves!Of"
4080?"coursetherearealsoobjectstoaidyoursearch,suchasswords,abow"
4090?"andarrow,andanapecage.However,youmusthavetherightdefensefor"
4100?"thedangerthreateningyou!"
4110?:?:?:?"PRESS<START>";
4120FORDLAY=1TO100:NEXTDLAY:IFPEEK(53279)<>6THEN4120
4130?"":?"YourobjectiveistoobtaintheroyalChaliceandthekeytotheroyal"
4140?"castle,whilebeingdelayedaslittleaspossiblebythedangersawaiting"
4150?"you.Ifyoushouldrunintosomethingnastywithouttheproperprotection,"
4160?"youwilllosetimeorbetransported!Anememyarcherwillsendyoutothe"
4170?"beginningofthepathyouareon,andtheevilkingswillsendyoutothe"
4180?"prisonatthecornerofthescreen!"
4190?:?"WhenyoufinallyreturntothecastleyourgratefulKingwillgrantyoua"
4200?"CoatofArmsappropriatetoyourfearlesseffort.Onwiththequest..."
4220?:?:?:?:?"PRESS<START>"
4230FORDLAY=1TO100:NEXTDLAY:IFPEEK(53279)<>6THEN4230
4240GOTO10	

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!