1 CALL &BB48:BORDER 0:MEMORY &6B5F:IF PEEK(63)<>0 THEN 2 ELSE LOAD"code0",&8000:CALL &8000
2 PAPER 0:LOCATE 24,20:PRINT "     ":DI:GOSUB 95:LOAD"code2",&8D00:LOAD"code1",&6B60:CALL &9F65:DIM o$(100):LOAD"fcmo1",&7260:IF PEEK(61)=1 THEN POKE 100,1:fo$="fcob":fp$="fcp1"ELSE fo$="fo":fp$="fcps" 
4 POKE63,0:GOSUB100:GOSUB208:EI
5 ej=0:CLS#2:CLS#3:GOSUB90
7 GOSUB10000
8 DI:GOSUB 220:IF PEEK(A8+2048)=0 THEN PEN 1 ELSE PEN 0 
9 EI:GOSUB 250:GOSUB 9200:GOTO 500
90 INK0,0:INK1,25:INK3,18:POKE&9273,PEEK(&94D7):CALL&9270:RETURN
95 J=PEEK(&9FCB):hr=PEEK(&9FCC):mn=PEEK(&9FCD):P4=PEEK(&9FD3):FORb1=1TO5:M(b1)=PEEK(&9FD3+b1):NEXT:FORb1=1TO5:B(b1)=PEEK(&9FD8+b1):NEXT:M=PEEK(&9DFE):B=PEEK(&9DFF):RETURN
100 WINDOW#2,25,37,7,17:WINDOW#3,2,21,2,21:PEN#2,0:PAPER#2,1:CLS#2:PAPER#3,3:OPENINfp$:fi=1:WHILENOTEOF:INPUT#9,P1$(fi):fi=fi+1:WEND:CLOSEIN:OPENINfo$:fi=1:WHILENOTEOF:INPUT#9,o$(fi):fi=fi+1:WEND:CLOSEIN:GOSUB9000:PEN2:PAPER0:LOCATE27,3
109 PRINT"JR":LOCATE 32,3:PRINT"HR":LOCATE 37,3:PRINT"MN":GOSUB 112:EVERY 249.600000024,1 GOSUB 114:RETURN
112 POKE &94D3,x:POKE &94D4,y:cb=ca-(10*INT(ca/10)):IF cb=0 THEN cb=10
113 POKE &94D5,((cb-1)*20)+x:POKE &94D6,(INT(ca/10)*20)+y:POKE &94D7,ca:RETURN 
114 GOSUB90:mn=mn+1:IFmn=60THENIFhr=23THENJ=J+1:hr=0:mn=0:ELSEhr=hr+1:mn=0:GOSUB300
116 rt$=STR$(mn):GOSUB120:mn$=rt$:rt$=STR$(hr):GOSUB120:hr$=rt$:rt$=STR$(J):GOSUB120:J$=rt$:PEN1:PAPER0:LOCATE25,3:PRINT J$:LOCATE30,3:PRINT hr$:LOCATE35,3:PRINT mn$:RETURN
120 IFVAL(rt$)<10THENrt$="0"+RIGHT$(rt$,1):RETURNELSErt$=RIGHT$(rt$,2):RETURN
208 FORa=1TO320STEP64:PLOT14+a,382:DRAWR0,-318,0:PLOT14,384-a:DRAWR320,0:NEXT:PLOT14,64:DRAWR320,0,0:RETURN
220 A8=49234.0+(x+(x-2))+(80*(y-2))+80:O=INT(A8/256):POKE60,O:POKE61,A8-(256*O):POKE62,160:POKE63,80:CALL&A000:RETURN
250 oq=0:PRINT CHR$(22);CHR$(1):LOCATEx+1,y+1:PAPER3:PRINT CHR$(249):PRINT CHR$(22);CHR$(0):GOSUB208:SOUND1,2000,1,15:RETURN
270 R0=0:FORb1=1TO100:GOSUB9090:IFpr=1THEN272ELSENEXT:RETURN
272 IFN6=0THENPRINT#2:PRINT#2,"vous voyez":PRINT#2,N3;N4$:RETURN
274 WHILER0<N6:R0=R0+1
276 CALL&9E00:IFPEEK(&9E07)=18THENPRINT#2:PRINT#2," Il n'y a":PRINT#2," rien...":WEND:PRINT#2:PRINT#2,"il y a":PRINT#2,N3;N4$:ch=1:RETURNELSEIFPEEK(&9E07)=30THEN276ELSERETURN
300 IFN5=1THENRETURNELSEFORr1=1TO5:IFpv(r1)=0THEN308ELSEfe(r1)=fe(r1)-1:M(r1)=M(r1)+1:B(r1)=B(r1)+1:IFM(r1)>48+fe(r1)THENfe(r1)=fe(r1)-4
305 IFB(r1)>10+CINT(fe(r1)/2)THENfe(r1)=fe(r1)-5
306 IFfe(r1)<2THENpv(r1)=pv(r1)-INT(RND(1)*10)+1
308 NEXT:GOSUB9110:RETURN
350 ej=1:PAPER#3,0:CLS#3:PEN#3,3:INK3,18:PRINT#3:PRINT#3:PEN#3,1:PRINT#3,"  SANTE DU GROUPE":PRINT#3:PRINT#3:FORr2=1TO5:sa$="":sb$="":sc$="":IFpv(r2)=0THEN357ELSEIFM(r2)>10+CINT(fe(r2)/2)THENsa$="faim"
352 IFB(r2)>5+CINT(fe(r2)/4)THENsb$="soif"
354 IFfe(r2)<6-CINT(fe(r2)/4)THENsc$="sommeil"
355 PEN#3,2:IFsa$=""ANDsb$=""ANDsc$=""THENPRINT#3," ";UPPER$(ps$(r2));:PEN#3,3:PRINT#3," va bien":GOTO357
356 PEN#3,2:PRINT#3," ";UPPER$(ps$(r2));:PEN#3,3:PRINT#3," a ";sa$:PRINT#3,STRING$(LEN(ps$(r2))+3," ");sb$:PRINT#3,STRING$(LEN(ps$(r2))+3," ");sc$
357 NEXT:v0=1:v1=4:GOSUB400:IFt%=1THENP1$="mange"ELSEIFt%=2THENP1$="boit"ELSEIFt%=3THENP1$="dort"ELSEIFt%=4THEN878ELSE357
360 IFP1$="boit"ANDB=0ORP1$="mange"ANDM=0THENGOSUB910:GOTO878ELSECLS#2:PRINT#2," Qui ";P1$:GOSUB490
362 CALL&9E00:IFPEEK(&9E07)<6THENt%=PEEK(&9E07):GOTO364ELSE362
364 IF P1$="dort"THEN 380 ELSE IF P1$="boit"THEN pv(t%)=pv(t%)+(50*INT(RND(1)*6)):fe(t%)=fe(t%)+2
366 IFP1$="mange"THENM=M-1:M(t%)=0ELSEB=B-1:B(t%)=0
368 IFP1$="mange"ANDM>0THEN500ELSEIFP1$="boit"ANDB>0THEN500
370 IFP1$="mange"THENa1=22:a2=40:a3=78:a4=81:a5=98:a6=101ELSEIFP1$="boit"THENa1=15:a2=19:a3=39:a4=45:a5=81:a6=84
372 fi=0:OPENIN"fcob":WHILENOTEOF:fi=fi+1:INPUT#9,k$:IFfi>a1ANDfi<a2ORfi>a3ANDfi<a4ORfi>a5ANDfi<a6THENo$(fi)=k$
374 WEND:CLOSEIN:GOSUB710:GOTO878
380 drm=0:CLS #2:PRINT#2:PRINT#2:PEN#2,1:PAPER#2,2:PRINT#2,"             ":PRINT#2," TIR ou COPY ":PRINT#2,"   pour le   ":PRINT#2,"  reveiller  ":N5=1:PEN#2,0:PAPER#2,1
382 CALL &9E00:IF PEEK(&9E07)<>30 THEN fe(t%)=fe(t%)+INT(drm):N5=0:GOTO 878 ELSE IF drm>5 OR fe(t%)+INT(drm)>19 THEN 382 ELSE drm=drm+0.01:GOTO 382 
400 RESTORE790:PRINT#2:PRINT#2:FORb1=1TOv0:READk$:NEXT:CLS#2:FORb1=1TOv1:READk$:PEN#2,0:PAPER#2,1:PRINT#2,k$;STRING$(9-LEN(k$),".");:PEN#2,1:PAPER#2,2:PRINT#2,b1:NEXT
410 CALL&9E00:IFPEEK(&9E07)<v1+1THENt%=PEEK(&9E07):PEN#2,0:PAPER#2,1:RETURNELSE410
490 PRINT#2:PRINT#2:FORr1=1TO5:IFpv(r1)=0THEN495ELSEPEN#2,0:PAPER#2,1:PRINT#2,UPPER$(ps$(r1));STRING$(9-LEN(ps$(r1)),".");:PEN#2,1:PAPER#2,2:PRINT#2,r1
495 NEXT:PEN#2,0:PAPER#2,1:RETURN
500 wt=wt+1:IFwt=10THENwt=0:GOSUB3000
502 CALL&9E00:PEN1:PAPER0:CALL&94D0
600 ca=PEEK(&94D7):ONPEEK(&9E07)GOTO610,610,610,610,610,950,950,950,950,610,610,610,610,800,880,350,612,615,700,720,610,610,610,610,610,610,610,610,610,500
610 SOUND1,478,10,15:GOTO500
612 DI:ej=1:PAPER#3,0:CLS#3:INK1,25:INK3,11:INK2,6:GOSUB660:CALL&9F9C:CALL&8000:GOSUB900:CALL&9FA5
613 CALL&9E00:IFPEEK(&9E07)<>30THENEI:PAPER#3,3:CLS#3:INK3,18:GOTO670ELSE613
615 PRINT#2:PRINT#2," Il n'y a":PRINT#2," rien...":GOSUB270:GOTO500
650 CLS#2:GOSUB910:GOTO500
660 M1=PEEK(&94D3):M2=PEEK(&94D4):M3=PEEK(&94D5):M4=PEEK(&94D6):M5=PEEK(&94D7):RETURN
670 POKE&94D3,M1:POKE&94D4,M2:POKE&94D5,M3:POKE&94D6,M4:POKE&94D7,M5:CALL&9F65:ej=0:GOTO7
700 CLS#2:FORb1=1TO100:GOSUB9090:IFpr=1THENIFch=1THENPRINT#2,"Qui prend ?":GOSUB490ELSE650ELSENEXT:GOTO650
702 CALL&9E00:IFPEEK(&9E07)<6THENt%=PEEK(&9E07):IFP(t%)>P4+fe(t%)THEN650ELSEo$(b1)=LEFT$(o$(b1),5)+"p"+RIGHT$(STR$(t%),1):P(t%)=P(t%)+(P^2+0.5):ch=0:GOSUB710:GOTO600ELSE702
710 CLS#2:LOCATE24,21:PRINT"OK":SOUND1,478,10,15:FORt=1TO500:NEXT:LOCATE24,21:PRINT"  ":RETURN
720 CLS#2:PRINT#2,"Qui laisse ?":GOSUB490
722 CALL&9E00:IFPEEK(&9E07)<6THENFORb1=1TO100:IFMID$(o$(b1),6,1)="p"ANDVAL(MID$(o$(b1),7,1))=PEEK(&9E07)THEN724ELSENEXT:GOTO650ELSE722
724 PAPER#3,0:CLS#3:PRINT#3:PEN#3,1:PRINT#3,UPPER$(ps$(PEEK(&9E07)));:PEN#3,3:PRINT#3," peut laisser:":PEN#3,2:FORb1=1TO100:IFMID$(o$(b1),6,1)="p"ANDVAL(MID$(o$(b1),7,1))=PEEK(&9E07)THENGOSUB9100:PRINT#3,N4$ELSE728
727 CALL&9E00:IFPEEK(&9E07)=20THEN734ELSEIFPEEK(&9E07)=30THEN727
728 NEXT:PRINT#3,"Rien d'autre..."
729 CALL&9E00:IFPEEK(&9E07)=30THEN729ELSE878
734 P(VAL(MID$(o$(b1),7,1)))=P(VAL(MID$(o$(b1),7,1)))-(P^2+0.5):IFca<10THENca$="00"+RIGHT$(STR$(ca),1)ELSEIFca<100THENca$="0"+RIGHT$(STR$(ca),2)ELSEca$=RIGHT$(STR$(ca),3)
736 IFx<10THENx$="0"+RIGHT$(STR$(x),1)ELSEx$=RIGHT$(STR$(x),2)
737 IFy<10THENy$="0"+RIGHT$(STR$(y),1)ELSEy$=RIGHT$(STR$(y),2)
738 o$(b1)=LEFT$(o$(b1),5)+ca$+x$+y$:GOSUB710:GOTO878
780 DATA unvitri 102106206111201,hypno   102110405001101,emera   4051206102222,fusis   000008602020033,tanaris 
782 DATA ishtar,belgora 102107504120001,granhalf203110705220401,emera   000090812220403,dormahot203130810320202
784 DATA ishtar,fusis   000008603030035,tanaris,zephir  102120305220101,polyg
786 DATA epee DEINOS,collier eternel,baton de GOLANUR,cristal noir,medaillon de CALAAN,rubis de TANARIS,potion,fiole,parchemin,rouleau de papier,sac,jambon,poulet,cochon,cerf,sanglier,champignon,fruit,poisson,eau,vin,liqueur,couteau,epee,bouclier,heaume
788 DATA hache,masse,arc,lance,hussite,pointe,musette,sandale,etoffe,cape,draperie,pain,vin,eau,bibelot,antidote,pepites,lampe,torche,allumeur,legumes,luth 
790 DATA rien,BOIRE,MANGER,DORMIR,FIN 
795 DATA G1Guerrier,M3Magicien,E2Elfe,C3Clerc,H2Chevalier,V2Voleur,N4Nain,T4Tinigen
800 ej=1:PAPER#3,0:CLS#3:PEN#3,1:INK3,2:GOSUB900:tr=1
802 PEN#3,3:LOCATE#3,1,6:PRINT#3,"Force       :":LOCATE#3,1,7:PRINT#3,"Intelligence:":LOCATE#3,1,4:PRINT#3,"Niveau      :":LOCATE#3,1,15:PRINT#3,"Sort(s):":LOCATE#3,1,8:PRINT#3,"Sagesse     :":LOCATE#3,1,9:PRINT#3,"Dexterite   :":LOCATE#3,1,10
821 PRINT#3,"Clsse armure:":LOCATE#3,1,11:PRINT#3,"Pts de vie  :":LOCATE#3,1,12:PRINT#3,"Monnaie     :":LOCATE#3,1,13:PRINT#3,"Experience  :":PEN#3,3:LOCATE#3,16,11:PRINT#3,"0000":LOCATE#3,16,12:PRINT#3,"0000":LOCATE#3,14,13:PRINT#3,"000000":PEN#3,1
822 LOCATE#3,17,4:PRINT#3,N(tr):FORn1=1TO5:LOCATE#3,10,14+n1:PRINT#3,STRING$(10," "):NEXT:IFpv(tr)<1THENCLS#3:LOCATE#3,9,8:PRINT#3,"MORT"
824 PEN#3,2:LOCATE#3,1,2:PRINT#3,STRING$(19," "):LOCATE#3,10-(LEN(ps$(tr))/2),2:PRINT#3,UPPER$(ps$(tr)):IFpv(tr)<1THEN870ELSELOCATE#3,1,5:PRINT#3,C$(tr);"     ":PEN#3,1:LOCATE#3,17,6:PRINT#3,fe(tr)
825 LOCATE#3,17,7:PRINT#3,I(tr):LOCATE#3,17,8:PRINT#3,S(tr):LOCATE#3,17,9:PRINT#3,D(tr):LOCATE#3,17,10:PRINT#3,E(tr):LOCATE#3,20-(LEN(STR$(pv(tr)))-1),11:PRINT#3,RIGHT$(STR$(pv(tr)),LEN(STR$(pv(tr)))-1):LOCATE#3,20-(LEN(STR$(mn(tr)))-1),12
826 PRINT#3,RIGHT$(STR$(mn(tr)),LEN(STR$(mn(tr)))-1):LOCATE#3,20-(LEN(STR$(ex(tr)))-1),13:PRINT#3,RIGHT$(STR$(ex(tr)),LEN(STR$(ex(tr)))-1)
830 IF ST$(tr)="" OR ST$(tr)=" " THEN LOCATE#3,10,15:PRINT#3,"AUCUN SORT":GOTO 870 ELSE FOR n1=1 TO LEN(ST$(tr)):s1$=MID$(ST$(tr),n1,1):GOSUB 895 
840 FORn2=1TO5:READs2$:IFs1$=LEFT$(s2$,1)THENLOCATE#3,12,15+n2:PRINT#3,UPPER$(LEFT$(s2$,8))
850 NEXT:NEXT
870 CALL&9E00:IFPEEK(&9E07)<>30THENtr=tr+1ELSE870
876 IFP1$(tr)=""THEN878ELSE802
878 ej=0:CLS#3:GOSUB90:PAPER#3,3:CLS#3:GOTO5
880 ej=1:I0=0:PAPER#3,0:CLS#3:tr=0:PEN#3,3:INK3,20:FORr1=1TO5:IFpv(r1)=0THEN890ELSEPEN#3,1:PRINT#3:PRINT#3,UPPER$(ps$(r1));:PEN#3,3:PRINT#3," porte :"
884 PEN#3,2:FORr2=1TO100:o2$="p"+RIGHT$(STR$(r1),1):IFMID$(o$(r2),6,2)=o2$THENcd=VAL(LEFT$(o$(r2),2)):RESTORE786:I0=1:FORr3=1TOcd:READN4$:NEXT:PRINT#3,N4$
885 NEXT:IFI0=0THENPRINT#3,"rien"
888 CALL&9E00:IFPEEK(&9E07)<>30THEN890ELSE888
890 I0=0:NEXT:GOTO878
895 IFN(tr)=1THENRESTORE780ELSEIFN(tr)=2THENRESTORE782ELSERESTORE784
896 RETURN
900 CLS#2:PAPER#2,1:PEN#2,2:PRINT#2,"APPUYER sur ":PRINT#2,"TIR ou COPY ":PRINT#2,"pour passer":PAPER#2,1:PEN#2,0:RETURN
910 FORb1=1TO2:FORb2=1TO400:NEXT:PEN1:PAPER2:LOCATE24,21:PRINT" impossible ":FORb2=1TO400:NEXT:PEN1:PAPER0:LOCATE24,21:PRINT"            ":NEXT:RETURN
950 CLS#2:ca=PEEK(&94D7):x=PEEK(&94D3):y=PEEK(&94D4):POKE&92C3,ca:POKE&92C4,x:POKE&92C5,y:CALL&9340:CALL&938E:CALL&6BE3:IFPEEK(&6C63)=0THEN960ELSEGOSUB1000:GOTO12000
960 EI:IFca=ctTHEN8ELSE7
1000 POKE&9FCB,J:POKE&9FCC,hr:POKE&9FCD,mn:POKE&9FCE,1:POKE&9FCF,1:POKE&9FD3,P4:FORb1=1TO5:POKE&9FD3+b1,M(b1):NEXT:FORb1=1TO5:POKE&9FD8+b1,B(b1):NEXT:POKE&9FDE,M:POKE&9FDF,B:POKE&9FE0,PEEK((256*PEEK(&6C62)+PEEK(&6C61)+2))-48:RETURN
3000 IFej=1THENRETURNELSEPOKE&8F93,0:POKE&8F3A,PEEK(&94D3):POKE&8F3B,PEEK(&94D4):POKE&8F39,PEEK(&94D7):CALL&8F30:IFPEEK(&8F40)=1THEN3100ELSERETURN
3100 CLS #2:DI:A9=(256*PEEK(&8F3F))+PEEK(&8F3E):M0=A9:W=PEEK(A9):w4=PEEK(A9+11):FOR r4=1 TO w4:F(r4)=PEEK(A9+1):P2(r4)=(256*PEEK(A9+6))+PEEK(A9+5):P0(r4)=(256*PEEK(A9+8))+PEEK(A9+7):NEXT:I1=PEEK(A9+2):D=PEEK(A9+3):AC=PEEK(A9+4) 
3110 ej=1:INK 3,9:INK 2,6:CLS#3:GOSUB 208:GOSUB 660:CALL &9F95:POKE &8410,PEEK(&8F3E):POKE &8411,PEEK(&8F3F):AB=&8383:FOR r1=1 TO 5:POKE AB+8,C(r1):P2=INT(pv(r1)/256):P3=pv(r1)-(256*P2):POKE AB+15,P3:POKE AB+16,P2:AB=AB+22:NEXT:PEN 0:PAPER 1:LOCATE 25,13
3115 PRINT"BOUGEZ:":FORpr=1TO5:IFpv(pr)=0THEN3116ELSELOCATE32,12+pr:PRINT UPPER$(LEFT$(ps$(pr),6))
3116 NEXT:CALL&8380
3120 AA=&83F1:FORE=0TO24:IFPEEK(AA+E)>0ANDPEEK(AA+E)<6THEN3130
3125 NEXT:GOTO4000
3130 A7=AA+E:D0=(E+1)-(5*INT((E)/5)):IF PEEK(A7-5)>5 AND PEEK(A7-5)<15 AND(A7-5)>&83F0 THEN nm=PEEK(A7-5):GOSUB 5000:IF pv(nu)=0 THEN 3125 
3140 IFPEEK(A7+5)>5ANDPEEK(A7+5)<15AND(A7+5)<&8409THENnm=PEEK(A7+5):GOSUB5000:IFpv(nu)=0THEN3125
3150 IFPEEK(A7+1)>5ANDPEEK(A7+1)<15ANDD0<5THENnm=PEEK(A7+1):GOSUB5000:IFpv(nu)=0THEN3125
3160 IFPEEK(A7-1)>5ANDPEEK(A7-1)<15ANDD0>1THENnm=PEEK(A7-1):GOSUB5000:GOTO3125ELSE3125
4000 CLS#2:PEN0:PAPER1:LOCATE25,12:PRINT"Autre combat";:PEN1:PAPER2:PRINT"1":PEN0:PAPER1:LOCATE25,13:PRINT"Retraite....";:PEN1:PAPER2:PRINT"2":PEN1:PAPER0
4010 CALL&9E00:IFPEEK(&9E07)=2THENV=0:GOTO4600ELSEIFPEEK(&9E07)=1THEN4020ELSE4010
4020 CLS#3:CLS#2:POKEM0+11,w4:GOSUB208:CALL&8380:GOTO3120:FORZ=1TOw4:F=F+F(Z):P6=P6+P2(Z):P0=P0+P0(Z):NEXT:F=INT(F/w4):P6=INT(P6/w4):P0=INT(P0/w4):POKEM0+1,F:V3=INT(P6/256):V4=P6-V3
4500 POKEM0+6,V3:POKEM0+5,V4:V3=INT(P0/256):V4=P0-V3:POKEM0+8,V3:POKEM0+7,V4:POKEM0+11,w4:RETURN
4600 CALL&9FA5:IFV=1THENPOKEM0+14,ca-10:GOTO670ELSEy=y+2:IFy>20THENy=20
4601 x=x-2:IFx<1THENx=1
4602 POKEM0+9,ABS(PEEK(M0+9)-5):POKEM0+10,ABS(PEEK(M0+10)-5):ca=M5:GOSUB112:CALL&9F65:ej=0:GOTO7
5000 V=0:nu=PEEK(AA+E):IFnu>5THENRETURNELSEnm=nm-5:CLS#2:PRINT#2:PRINT#2:PRINT#2,ps$(nu):PRINT#2,"combat contre":PRINT#2,"un monstre...":GOSUB9320
5010 PEN#2,0:PAPER#2,1:CLS#2:LOCATE#2,1,4:PRINT#2,"Combattre..":LOCATE#2,1,5:PRINT#2,"Sort(s)....":LOCATE#2,1,6:PRINT#2,"Fuir.......":PAPER#2,2:PEN#2,1:FORb1=1TO3:LOCATE#2,12,3+b1:PRINT#2,RIGHT$(STR$(b1),1):NEXT:PEN#2,0:PAPER#2,1
5020 CALL&84A1:CALL&9E00:t%=PEEK(&9E07):IFt%=1THEN5030ELSEIFt%=2THEN5260
5022 IFt%=3THENP5=INT(RND(1)*60)+20:ex(nu)=ex(nu)-P5:PRINT#2,ps$(nu):PRINT#2,"perd :":PRINT#2,P5;"points":PRINT#2,"experience":GOSUB9320:GOSUB9110:RETURNELSE5020
5030 CLS#2:cd=0:cp=0:c1=0:CALL&9F65:PEN1:PAPER0
5040 CALL&84A1:CALL&9E00:IFPEEK(&9E07)<>30THENRETURNELSEGOSUB9300:GOSUB9315
5050 GOSUB9110:IFc1=0THENms$=ps$(nu):GOSUB9400:ms$="attaque":GOSUB9400ELSEms$="le monstre":GOSUB9400:ms$="attaque":GOSUB9400
5060 GOSUB 9110:IF c1=0 THEN cd=(4*fe(nu))+(3*D(nu))+2*I(nu)+E(nu)+((INT(LOG10(ABS(ABS(ex(nu))+1)))*3)*N(nu))+INT(RND(1)*5)+t3%*N(nu):cp=(4*(20-AC))+(3*F(nm))+(2*D)+I1+(INT(LOG10(ABS(P0(nm))+1))*3)+INT(RND(1)*5):GOTO 5080
5070 cd=(4*F(nm))+(3*D)+2*I1+AC+(INT(LOG10(ABS(P0(nm)+1)))*3)+INT(RND(1)*5):cp=(4*(20-E(nu)))+(3*fe(nu))+(2*D(nu))+I(nu)+((INT(LOG10(ex(nu)+1))*3)*N(nu))+INT(RND(1)*5)+t3%*N(nu)
5080 IFcd>cpANDc1=0THENms$="et touche...":GOSUB9400:GOTO5120
5090 IFcd>cpANDc1=1THENms$="vous etes":GOSUB9400:ms$="touche...":GOSUB9400:GOTO5130
5100 IFcd<cpANDc1=0THENms$="et rate...":GOSUB9400:GOTO5140
5110 IFcd<cpANDc1=1THENms$="il vous a":GOSUB9400:ms$="rate...":GOSUB9400:GOTO5150ELSE5050
5120 ex(nu)=ex(nu)+(cd-cp):F(nm)=F(nm)-1:P0(nm)=P0(nm)-(cd-cp):P2(nm)=P2(nm)-((cd-cp)*5):GOSUB9110:GOTO5160
5130 P0(nm)=P0(nm)+(cd-cp):fe(nu)=fe(nu)-1:ex(nu)=ex(nu)-(cd-cp):pv(nu)=pv(nu)-((cd-cp)*5):GOSUB9110:GOTO5160
5140 fe(nu)=fe(nu)-1:P0(nm)=P0(nm)+(cp-cd):GOSUB9110:GOTO5160
5150 F(nm)=F(nm)-1:ex(nu)=ex(nu)+(cp-cd):GOSUB9110
5160 IFP2(nm)<1THENCLS#2:PEN0:PAPER1:PRINT#2,"Un monstre   est aneanti":w4=w4-1:IFw4<1THENV=1:GOTO4600ELSEFORE0=0TO24:IFPEEK(&83F1+E0)=nm+5THENPOKE&83F1+E0,0:CALL&84A1:RETURNELSENEXT
5170 IFP2(nm)<(INT(100/w4)+I1+INT(RND(1)*100))THEN5175ELSE5230
5175 fu=INT(RND(1)*10):IFfu>5THENCLS#2:PRINT#2,"le monstre   fuit..."ELSE5230
5176 IF w4=1 THEN V=1:GOTO 4600 ELSE FOR E0=0 TO 24:IF PEEK(&83F1+E0)=nm+5 THEN A7=&83F1+E0:D0=(E0+1)-(5*INT((E0)/5))ELSE NEXT  
5180 IFPEEK(A7-5)=0AND(A7-5)>&83F0THENPOKEA7-5,nm+5:GOTO5200
5182 IFPEEK(A7+5)=0AND(A7+5)<&8409THENPOKEA7+5,nm+5:GOTO5200
5184 IFPEEK(A7+1)=0ANDD0<5THENPOKEA7+1,nm+5:GOTO5200
5186 IFPEEK(A7-1)=0ANDD0>1THENPOKEA7-1,nm+5
5189 PRINT#2,"Mais  il  ne peut  pas... ":GOSUB9320:CLS#2:GOTO5230
5200 POKEA7,0:CALL&84A1:RETURN
5230 IF pv(nu)<1 THEN 9210 ELSE IF c1=0 AND cd>cp AND(cd-cp)>30 THEN c1=0:GOTO 5040
5240 IFc1=1ANDcd>cpAND(cd-cp)>30THENc1=1:GOTO5040
5250 IFc1=0THENc1=1:GOTO5050ELSEc1=0:GOTO5040
5260 IFST$(nu)=""THENGOSUB910:GOTO5010ELSEtr=nu:GOSUB895
5262 CLS#2:PRINT#2," Quel sort : ":FORn%=1TO5:READst$:st$=LEFT$(st$,8):PEN0:PAPER1:LOCATE25,10+n%:PRINT UPPER$(st$);"...":PEN2:PAPER1:LOCATE36,10+n%:PRINT n%:NEXT:PEN0:PAPER1
5300 CALL&9E00:t%=PEEK(&9E07):IFt%=30THEN5300ELSEIFN(nu)=1THENIFt%=5THENGOSUB910:GOTO5010ELSE5305ELSEIFN(nu)=2THENIFt%=1THENGOSUB910:GOTO5010ELSE5305ELSEIFt%=1ORt%=3ORt%=5THENGOSUB910:GOTO5010
5305 tr=nu:GOSUB895:FORn%=1TOt%:READst$:NEXT:FORn1%=1TOLEN(ST$(nu)):S7$=MID$(ST$(nu),n1%,1):IFLEFT$(st$,1)=S7$THEN5340ELSENEXT:GOSUB910:GOTO5010
5340 s4$=LEFT$(st$,8):s5$=MID$(st$,9,4):t1%=VAL(MID$(st$,13,2)):t2%=VAL(MID$(st$,15,1)):t3%=VAL(MID$(st$,16,2)):s6$=MID$(st$,18,6):S$=LEFT$(s4$,1):FORn%=1TOw4:P2(nm)=P2(nm)-t1%:NEXT:pv(nu)=pv(nu)-t2%:CLS#2
5360 PRINT#2,UPPER$(ps$(nu));"lance le sort";s4$:GOSUB9320:t4%=VAL(LEFT$(s5$,2)):t5%=VAL(RIGHT$(s5$,2)):FORi=80TO220STEP12:INK3,24:SOUND1,i,10:INK3,9:NEXT:FORi=220TO80STEP-12:INK3,24:SOUND2,i,5:INK3,9:NEXT
5365 IFW>t4%ANDW<t5%THEN5390ELSE5400
5370 IFS$="u"ORS$="b"THENIFI1>15THEN5390ELSE5400
5380 IFS$="f"ANDI1>16THEN5390ELSE5400
5390 PRINT#2,"le sort est  contre par   le monstre":t3%=0:GOSUB9320:GOTO5440
5400 FORk=1TO6:t5%=VAL(MID$(s6$,k,1))
5410 IFk=1THENfe(nu)=fe(nu)+t5%ELSEIFk=2THENFORr4=1TOw4:F(r4)=F(r4)-t5%:NEXTELSEIFk=3THEND(nu)=D(nu)+t5%ELSEIFk=4THEND=D-t5%ELSEIFk=5THENE(nu)=E(nu)-t5%ELSEIFk=6THENC=C+t5%
5420 ex(nu)=ex(nu)+(t5%*w4):NEXT:PRINT#2,"et touche le monstre":GOSUB9110
5440 IFLEFT$(st$,1)="d"THEN5010ELSEst$="":FORn%=1TOLEN(ST$(nu)):IFn%=n1%THEN5445ELSEst$=st$+MID$(ST$(nu),n%,1)
5445 NEXT:ST$(nu)=st$:GOTO5010
9000 FORnp=1TO5:IFP1$(np)=""THEN9020
9010 IFASC(LEFT$(P1$(np),1))<57THENGOSUB9030ELSEps$(np)=ps$(np)+LEFT$(P1$(np),1):P1$(np)=RIGHT$(P1$(np),LEN(P1$(np))-1):GOTO9010
9020 NEXT:RETURN
9030 fe(np)=VAL(LEFT$(P1$(np),2)):I(np)=VAL(MID$(P1$(np),3,2)):S(np)=VAL(MID$(P1$(np),5,2)):D(np)=VAL(MID$(P1$(np),7,2)):E(np)=VAL(MID$(P1$(np),9,2)):pv(np)=VAL(MID$(P1$(np),11,4)):mn(np)=VAL(MID$(P1$(np),15,4))
9040 ex(np)=VAL(MID$(P1$(np),19,6)):C$(np)=MID$(P1$(np),25,1):x=VAL(MID$(P1$(np),26,2)):y=VAL(MID$(P1$(np),28,2)):ca=VAL(MID$(P1$(np),30,2)):ST$(np)=MID$(P1$(np),33,3):N(np)=VAL(MID$(P1$(np),32,1)):RESTORE 795:FOR b1=1 TO 8 
9050 READcc$:IFLEFT$(cc$,1)=C$(np)THENC(np)=VAL(MID$(cc$,2,1)):C$(np)=RIGHT$(cc$,LEN(cc$)-2)
9060 NEXT:IFI(np)<9ORS(np)<9THENST$(np)=""
9080 RETURN
9090 pr=0:C3$=MID$(o$(b1),6,3):IFASC(C3$)>64THENRETURNELSEC3=VAL(C3$):xo=VAL(MID$(o$(b1),9,2)):yo=VAL(RIGHT$(o$(b1),2)):IFC3=caANDxo=xANDyo=yTHEN9100ELSERETURN
9100 pr=1:RESTORE786:cd=VAL(LEFT$(o$(b1),2)):FORb2=1TOcd:READN4$:NEXT:P=VAL(MID$(o$(b1),3,1)):N6=VAL(MID$(o$(b1),4,1)):N6=N6+CINT(RND(1)*10):N3=VAL(MID$(o$(b1),5,1)):RETURN
9110 FORC2=1TO5:vt=fe(C2):GOSUB9180:fe(C2)=vt:vt=I(C2):GOSUB9180:I(C2)=vt:vt=S(C2):GOSUB9180:S(C2)=vt:vt=D(C2):GOSUB9180:D(C2)=vt:vt=E(C2):GOSUB9180:E(C2)=vt
9120 IFpv(C2)<1THENpv(C2)=0ELSEIFpv(C2)>1000THENpv(C2)=1000
9130 IFmn(C2)<1THENmn(C2)=0ELSEIFmn(C2)>9999THENmn(C2)=9999
9140 IF ex(C2)<0 THEN ex(C2)=0 ELSE IF ex(C2)>(30000*N(c2)) THEN N(C2)=N(C2)+1
9145 IF N(C2)>3 THEN N(C2)=3:ex(C2)=90000.0
9150 NEXT:FORR=1TOw4:IFF(R)<1THENF(R)=0ELSEIFF(R)>20THENF(R)=20
9152 IFP2(R)<1THENP2(R)=0ELSEIFP2(R)>1000THENP2(R)=1000
9154 IFP0(R)<1THENP0(R)=0ELSEIFP0(R)>30000THENP0(R)=30000
9160 NEXT:vt=I1:GOSUB9180:I1=vt:vt=S0:GOSUB9180:S0=vt:vt=D:GOSUB9180:D=vt:vt=C:GOSUB9180:C=vt:RETURN
9180 IFvt<1THENvt=0:RETURNELSEIFvt>20THENvt=20:RETURNELSERETURN
9200 M6=0:FORH=1TO5:IFpv(H)>1THENM6=1
9205 NEXT:IF M6=0 THEN CLEAR:MEMORY &9FFF:RUN"f&f3"ELSE RETURN
9210 GOSUB 9200:CLS#2:PRINT#2:PRINT#2,UPPER$(ps$(nu)):PRINT#2,"est mort...":pv(nu)=0:POKE AA+E,0:AB=&8383+((nu-1)*22):POKE AB+15,0:POKE AB+16,0:POKE AB+8,0:CALL &84A1:GOSUB 9320:GOSUB 9320:RETURN 
9300 PEN1:PAPER2:LOCATE25,9:PRINT STRING$(13," "):LOCATE25,9:PRINT ps$(nu):LOCATE25,13:PRINT"Un monstre   ":PEN0:PAPER1:l=10:GOSUB9310:l=14:GOSUB9310:RETURN
9310 PEN0:PAPER1:LOCATE25,l:PRINT"Force...   00":LOCATE25,l+1:PRINT"Pt Vie.. 0000":LOCATE25,l+2:PRINT"Pt Exp..00000":RETURN
9315 C0=fe(nu):l=10:GOSUB9318:C0=pv(nu):l=11:GOSUB9318:C0=ex(nu):l=12:GOSUB9318:C0=F(nm):l=14:GOSUB9318:C0=P2(nm):l=15:GOSUB9318:C0=P0(nm):l=16:GOSUB9318:RETURN
9318 C0$=RIGHT$(STR$(C0),LEN(STR$(C0))-1):LOCATE38-LEN(C0$),l:PEN2:PAPER1:PRINT C0$:RETURN
9320 FORT0=1TO1000:NEXT:RETURN
9400 IFLEN(ms$)<13THENms$=ms$+" ":GOTO9400ELSEPEN1:PAPER3:LOCATE25,8:PRINT ms$:GOSUB9320:LOCATE25,8:PEN0:PAPER1:PRINT STRING$(13," "):RETURN
10000 DI:CLS#2:ct=ca:S3=1:CALL&8DC0:INK1,25:INK3,18:POKE&9273,PEEK(&94D7):CALL&9270:POKE&92C3,PEEK(&94D7):POKE&92C4,PEEK(&94D3):POKE&92C5,PEEK(&94D4):CALL&92D2:EI:POKE&8F93,1:POKE&8F3A,PEEK(&94D3):POKE&8F3B,PEEK(&94D4):POKE&8F39,PEEK(&94D7)
10010 CALL&8F30:IFPEEK(&8F40)=1THEN5000ELSERETURN
12000 MEMORY&8FFF:A0=&8FFF:FORb1=1TO5:POKEA0+1,fe(b1):POKEA0+2,I(b1):POKEA0+3,S(b1):POKEA0+4,D(b1):POKEA0+5,E(b1):v1=INT(pv(b1)/256):v2=pv(b1)-(256*v1):POKEA0+6,v2:POKEA0+7,v1:v1=INT(mn(b1)/256)
12030 v2=mn(b1)-(256*v1):POKEA0+8,v2:POKEA0+9,v1:v1=INT(ex(b1)/256):v2=ex(b1)-(256*v1):POKEA0+10,v2:POKEA0+11,v1:POKEA0+12,x:POKEA0+13,y:POKEA0+14,ca:POKEA0+15,N(b1)
12035 IFLEN(ST$(b1))<3THENST$(b1)=ST$(b1)+" ":GOTO12035
12040 FORn0=1TO3:POKEA0+15+n0,ASC(MID$(ST$(b1),n0,1)):NEXT:A0=A0+18:NEXT:a$="fo":|ERA,@a$:OPENOUT"fo":FORb1=1TO100:PRINT#9,o$(b1):NEXT:CLOSEOUT:CLEAR:RUN"transit"
