1 ONERR GOTO 7500 10 REM MAIN MENU MURYADEN 15 & RECALL "SCRN.MENU",16384: & RECALL "USER.COMMUT",768: CALL 768:A = USR (0) 21 & RECALL "LIBRARY.MACROS",5857: & RECALL "LIBRARY.CHARSET",2049 23 A = USR (1): & SET0: & WINDOW0,40,0,24: CALL 16384: GOSUB 6000 25 DIM N$(9):N$(1) = "Cr{ation d'un personnage":N$(2) = "Utilitaires":N$(3) = "Commencer une partie":N$(4) = "Reprendre une partie":N$(5) = "Historique" 26 N$(6) = "Examiner un personnage":N$(7) = "Effacer un personnage":N$(8) = "Sp{cial Gros Bill":N$(9) = "Cr{er un PLAYER" 27 DIM KA(8),KB(8),KC(8),OB$(9),OB(9,6) 30 GOSUB 6220 40 & SCRN1,0 50 SC = 0:A = 0: INVERSE :ID = 15: GOSUB 250: NORMAL 60 GET A$ 65 N0 = 0:NN = 4 70 IF A$ = CHR$ (8) THEN & NOISE1,10,10: GOSUB 160: GOTO 60 80 IF A$ = CHR$ (21) THEN & NOISE1,10,10: GOSUB 200: GOTO 60 90 IF A$ = CHR$ (13) THEN 120 100 IF A$ = "Q" THEN 130 110 GOTO 60 120 ON A + 1 GOTO 260,15000,7100,8000,7000 130 & SCRN0,0: TEXT : HOME : PRINT "=Retour au menu": PRINT : PRINT "Ins{rez la disquette @ booter et appuyezsur RETURN..."; 140 WAIT - 16384,128: IF PEEK ( - 16384) = 155 THEN GOSUB 6220: & SCRN1,0: GOSUB 250: GOTO 50 150 CLEAR : PRINT : PR# 6 160 REM <- 165 GOSUB 250 170 IF A = N0 THEN A = NN: GOTO 190 180 A = A - 1 190 INVERSE : GOSUB 250: NORMAL : RETURN 200 REM -> 210 GOSUB 250 220 IF A = NN THEN A = N0: GOTO 240 230 A = A + 1 240 INVERSE : GOSUB 250: NORMAL : RETURN 250 HTAB 2: VTAB ID + A * 2: PRINT N$(A + SC + 1): RETURN 260 REM CREATION PERSO 261 GOSUB 6200 262 HTAB 1: VTAB 14: PRINT "Ins{rez la disquette PLAYER et appuyez sur une touche...": HTAB 11: VTAB 17: PRINT "=RETOUR AU MENU": GET A$ 263 IF A$ = CHR$ (27) THEN PC = 27: GOTO 330 264 HTAB 11: VTAB 17: PRINT SPC( 20): GOTO 3100 270 GOSUB 6200: GOSUB 5000:A = USR (3) 280 B$ = "":LIM = 14:X = 9:Y = 12: HTAB 9: VTAB 12: & SCRN1,1: GOSUB 2000 285 NM$ = B$ 290 FOR I = 1 TO 6: READ RACE$(I): NEXT I 300 RA = 1: GOTO 360 310 GET A$:PC = PEEK ( - 16384) 320 IF PC = 21 THEN RA = RA + 1: IF RA > 6 THEN RA = 1 330 IF PC = 27 THEN GOSUB 6230 340 IF PC = 8 THEN RA = RA - 1: IF RA < 1 THEN RA = 6 350 IF PC = 13 THEN PRINT " ": GOTO 600 360 HTAB 9: VTAB 13: PRINT SPC( 7);: HTAB 9: PRINT RACE$(RA); 370 GOTO 310 600 REM CARACTERISTIQUES 605 FOR I = 1 TO 6: FOR J = 1 TO 8: READ CA%(I,J): NEXT J: NEXT I 610 FOR I = 1 TO 8:KB%(I) = CA%(RA,I): NEXT I 620 FOR I = 1 TO 4:KA%(I) = KB%(I) + INT ( RND (1) * 4) + 1: HTAB 15: VTAB I + 13: PRINT STR$ (KA%(I)) + " ": NEXT I 630 HTAB 24: VTAB 17 640 GET A$ 650 IF A$ = "O" THEN HTAB 24: VTAB 17: PRINT "O": GOTO 700 660 IF A$ = "N" THEN HTAB 24: VTAB 17: PRINT "N": GOTO 620 665 IF A$ = CHR$ (27) THEN 6230 670 GOTO 640 700 REM CLASSE 720 KA%(5) = KB%(5) + INT (0.5 * (KA%(3) + KA%(4) - KB%(3) - KB%(4)) + .5) 730 KA%(6) = KB%(6) + INT (0.5 * (KA%(1) + KA%(2) - KB%(1) - KB%(2)) + .5) 740 KA%(7) = KB%(7) + INT (0.5 * (KA%(1) + KA%(4) - KB%(1) - KB%(4)) + .5) 750 KA%(8) = KB%(8) + INT (0.5 * (KA%(2) + KA%(4) - KB%(2) - KB%(4)) + .5) 760 FOR I = 5 TO 8: HTAB 15: VTAB I + 13: PRINT STR$ (KA%(I)) + " ": NEXT I 770 FOR I = 1 TO 4: READ CLASSE$(I): NEXT I 780 CL = 1: GOTO 850 790 GET A$:PC = PEEK ( - 16384) 800 IF PC = 21 THEN CL = CL + 1: IF CL > 4 THEN CL = 1 805 IF PC = 27 THEN 6230 810 IF PC = 8 THEN CL = CL - 1: IF CL < 1 THEN CL = 4 820 IF PC = 13 THEN PRINT " ": GOTO 870 850 HTAB 9: VTAB 22: PRINT SPC( 9);: HTAB 9: PRINT CLASSE$(CL); 860 GOTO 790 870 KA%(CL) = KA%(CL) + 5:KB%(CL) = KB%(CL) + 5: HTAB 15: VTAB 13 + CL: PRINT STR$ (KA%(CL)) 890 FOR I = 1 TO 4: READ TYPE$(I): NEXT I 900 TY = 1: GOTO 950 910 GET A$:PC = PEEK ( - 16384) 920 IF PC = 21 THEN TY = TY + 1: IF TY > 4 THEN TY = 1 925 IF PC = 27 THEN 6230 930 IF PC = 8 THEN TY = TY - 1: IF TY < 1 THEN TY = 4 940 IF PC = 13 THEN PRINT " ": GOTO 970 950 HTAB 9: VTAB 23: PRINT SPC( 10);: HTAB 9: PRINT TYPE$(TY); 960 GOTO 910 970 KB%(4 + TY) = KB%(4 + TY) + 5:KA%(4 + TY) = KA%(4 + TY) + 5: HTAB 15: VTAB 17 + TY: PRINT STR$ (KA%(4 + TY)) 980 HTAB 39: VTAB 23 985 GET A$ 990 IF A$ = "O" THEN HTAB 39: VTAB 23: PRINT "O": GOTO 1030 1000 IF A$ = "N" THEN HTAB 39: VTAB 23: PRINT "N": GOTO 6230 1010 IF A$ = CHR$ (27) THEN 6230 1020 GOTO 985 1030 REM SAUVEGARDE 1035 PL$ = "PLAYER": GOSUB 1040:PL$ = "USER.PLAYER": GOSUB 1040: GOTO 6230 1040 A = USR (0): & DEL PL$: & DEF PL$,2: & PRINT PL$ 1060 PRINT NM$: PRINT "1": PRINT "2": PRINT "26": PRINT "18" 1080 PRINT CL: PRINT RA 1100 FOR I = 1 TO 8: PRINT KA%(I): PRINT KB%(I): PRINT KA%(I): NEXT I 1130 PRINT "10": PRINT "0": PRINT "0" 1140 PRINT "0": PRINT "0": PRINT "0": PRINT "0": PRINT "0" 1500 & END :A = USR (1) 1510 RETURN 2000 REM INPUT 2015 GET A$:PC = PEEK ( - 16384) 2020 IF PC = 13 AND LEN (B$) > = 1 THEN PRINT " ": RETURN 2025 IF PC = 27 THEN 6230 2030 L = LEN (B$) 2050 IF PC = 127 THEN 2070 2055 IF L > = LIM THEN & MUSIC1,127,2: GOTO 2000 2060 GOTO 2110 2070 IF L < 1 THEN 2015 2080 B$ = MID$ (B$,1,L - 1): PRINT " " 2090 HTAB X: VTAB Y: PRINT B$;: GOTO 2015 2110 IF PC < 32 OR PC > 126 THEN 2015 2115 B$ = B$ + A$: GOTO 2090 2120 REM 2200 REM BONUS 3000 DATA Humain,Nain,Elfe,Hobbit,Orque,Gnome 3010 DATA 10,10,10,10,10,10,10,10 3020 DATA 10,05,10,10,15,05,15,10 3030 DATA 10,05,10,10,10,15,10,10 3040 DATA 05,10,05,20,10,05,15,10 3050 DATA 05,05,15,10,15,05,10,15 3060 DATA 10,15,00,15,05,15,10,10 3070 DATA Sorcier,Pr~tre,Guerrier,Voleur 3080 DATA R{sistant,Charmeur,Adroit,Attentif 3090 DATA Ext{rieur,Donjon Cyclope,Donjon Matriarche,Donjon N{cromant 3100 A = USR (0) 3110 & READ "PLAYER" 3120 INPUT N$ 3130 & END :A = USR (1) 3140 IF N$ = "*START*" THEN & NOISE10,20,10: HTAB 1: VTAB 17: INVERSE : PRINT "CE N'EST PAS UNE DISQUETTE PLAYER !!!": NORMAL : HTAB 16: VTAB 19: PRINT "": GET A$: GOTO 260 3150 IF N$ < > "*BLANKPLAYER*" THEN & NOISE10,1,40: HTAB 1: VTAB 17: PRINT "CETTE DISQUETTE CONTIENT DEJA LE PERSO: ": PRINT :A = INT ((40 - LEN (N$)) / 2): HTAB A: INVERSE : PRINT N$: NORMAL : HTAB 16: VTAB 23: PRINT "": GET A$: GOTO 260 3160 GOTO 270 5000 REM ECRAN CREATION PERSO 5010 HTAB 9: VTAB 8: & SET1: PRINT " !!!!!!!!&" 5020 PRINT " !!!!!!!$";: HTAB 18: PRINT "#!!!!!!!&" 5030 HTAB 9: VTAB 10: PRINT CHR$ (34)"''''''''%": VTAB 10 5040 FOR I = 1 TO 14: PRINT "$";: HTAB 26: PRINT "#": NEXT I 5050 PRINT CHR$ (34)"''''''''''''''''''''''''%" 5060 HTAB 29: VTAB 8: PRINT " !!!!!!!!&": HTAB 28: PRINT " $";: HTAB 38: PRINT "#&" 5070 HTAB 28: PRINT "$" CHR$ (34)"''''''''%#": FOR I = 1 TO 10: HTAB 28: PRINT "$";: HTAB 39: PRINT "#": NEXT I 5080 HTAB 28: PRINT CHR$ (34)"''''''''''%": & SET0 5090 HTAB 10: VTAB 9: PRINT "CREATION";: HTAB 30: PRINT "UTILISER": VTAB 12 5100 HTAB 2: PRINT "Nom :": HTAB 2: PRINT "Race :": HTAB 2: PRINT "Intelligence:": HTAB 2: PRINT "Sagesse.....:": HTAB 2: PRINT "Force.......:": HTAB 2: PRINT "Dext{rit{...: OKAY:" 5110 HTAB 2: PRINT "Vitalit{....:": HTAB 2: PRINT "Magn{tisme..:": HTAB 2: PRINT "Adresse.....:": HTAB 2: PRINT "Perception..:": HTAB 2: PRINT "Classe:": HTAB 2: PRINT "Type :" 5120 HTAB 30: VTAB 12: PRINT "CR=OKAY": HTAB 29: VTAB 14: PRINT "ESC=MENU": VTAB 16: HTAB 30: PRINT "<-=CHOIX": HTAB 30: VTAB 18: PRINT "->=CHOIX": HTAB 29: VTAB 20: PRINT "DEL": VTAB 23: HTAB 28: PRINT "Sauve(O/N):" 5130 RETURN 6000 REM MENU PRINCIPAL 6005 & SCRN1,0 6010 & SET1: HTAB 18: VTAB 8: PRINT " !!!!&": HTAB 18: PRINT "$";: HTAB 23: PRINT "#": HTAB 18: PRINT CHR$ (34)"''''%" 6020 HTAB 9: PRINT " !!!!!!!&": PRINT " !!!!!!!$";: HTAB 17: PRINT "#!!!!!!!!&": HTAB 9: PRINT CHR$ (34)"'''''''%": VTAB 13 6030 FOR I = 1 TO 11: PRINT "$";: HTAB 26: PRINT "#": NEXT I: PRINT CHR$ (34)"''''''''''''''''''''''''%" 6040 VTAB 11: HTAB 29: PRINT " !!!!!!!!&": HTAB 28: PRINT " $";: HTAB 38: PRINT "#&": HTAB 28: PRINT "$" CHR$ (34)"''''''''%#" 6050 FOR I = 1 TO 8: HTAB 28: PRINT "$";: HTAB 39: PRINT "#": NEXT I 6060 HTAB 28: PRINT CHR$ (34)"''''''''''%" 6070 & SET0: HTAB 19: VTAB 9: PRINT "MENU": HTAB 10: VTAB 12: PRINT "OPTIONS";: HTAB 30: PRINT "UTILISER": HTAB 2: VTAB 15: PRINT "Cr{ation d'un personnage": VTAB 17: HTAB 2: PRINT "Utilitaires": VTAB 19: HTAB 2: PRINT "Commencer une partie" 6080 HTAB 2: VTAB 21: PRINT "Reprendre une partie": HTAB 2: VTAB 23: PRINT "Historique" 6090 HTAB 29: VTAB 15: PRINT "Q =QUITTER": HTAB 29: VTAB 17: PRINT "<-=HAUT": HTAB 29: VTAB 19: PRINT "->=BAS": HTAB 29: VTAB 21: PRINT "CR=OKAY" 6100 RETURN 6200 & WINDOW0,40,6,24: & CLS: & WINDOW0,40,0,24: RETURN 6220 POKE - 16300,0: POKE - 16302,0: POKE - 16304,0: RETURN 6230 A = USR (2): GOSUB 6200: GOSUB 6000: CLEAR : GOTO 25 7000 & SCRN0,0: HOME : TEXT :A = USR (0): CLEAR : GOSUB 30000: & RECALL "HISTORIC",34304: & RECALL "PRINT.HISTORIC",44032:A = USR (1): HOME 7010 VTAB 9: HTAB 5: PRINT "Pendant le d{filement, utilisez:": PRINT : HTAB 10: PRINT " = Retour au menu": HTAB 10: PRINT " = Arreter/Repartir" 7015 PRINT : PRINT "APPUYEZ SUR UNE TOUCHE POUR COMMENCER..";: WAIT - 16384,128: POKE - 16368,0: CALL 44133: REM $AC65 7020 HTAB 1: VTAB 24: & SCRN1,0: CALL 44032: GET A$: GOSUB 6000: CLEAR : GOTO 25 7100 GOSUB 9000 7110 & RUN "LINKER.START",24576 7500 CALL 50688 8000 GOSUB 9000 8100 & RUN "LINKER.CONT",24576 9000 & SCRN0,0:A = USR (3):A = USR (0): HOME : TEXT : GOSUB 30000: & RECALL "GAME",16384: RETURN 9100 & SCRN0,0:A = USR (3):A = USR (0): HOME : TEXT : GOSUB 30000: RETURN 10000 REM UTILITAIRES 10010 GOSUB 6200: & SET1: & SCRN1,0 10020 HTAB 15: VTAB 8: PRINT " !!!!!!!!!!!&": HTAB 15: PRINT "$";: HTAB 27: PRINT "#": HTAB 15: PRINT CHR$ (34)"'''''''''''%" 10030 HTAB 9: VTAB 12: PRINT " !!!!!!!&": PRINT " !!!!!!!$";: HTAB 17: PRINT "#!!!!!!!!&": HTAB 9: VTAB 14: PRINT CHR$ (34)"'''''''%": HTAB 1: VTAB 14 10040 FOR I = 1 TO 9: PRINT "$";: HTAB 26: PRINT "#": NEXT I: PRINT CHR$ (34)"''''''''''''''''''''''''%" 10050 VTAB 12: HTAB 29: PRINT " !!!!!!!!&": HTAB 28: PRINT " $";: HTAB 38: PRINT "#&" 10060 HTAB 28: PRINT "$"; CHR$ (34)"''''''''%#": FOR I = 1 TO 8: HTAB 28: PRINT "$";: HTAB 39: PRINT "#": NEXT I 10070 HTAB 28: PRINT CHR$ (34)"''''''''''%" 10080 & SET0: HTAB 16: VTAB 9: PRINT "UTILITAIRES": HTAB 10: VTAB 13: PRINT "OPTIONS" 10090 HTAB 2: VTAB 16: PRINT "Examiner un personnage": HTAB 2: VTAB 18: PRINT "Effacer un personnage": HTAB 2: VTAB 20: PRINT "Sp{cial Gros Bill": HTAB 2: VTAB 22: PRINT "Cr{er un PLAYER" 10100 HTAB 30: VTAB 13: PRINT "UTILISER": HTAB 29: VTAB 16: PRINT "Q =QUITTER": HTAB 29: VTAB 18: PRINT "<-=CHOIX": HTAB 29: VTAB 20: PRINT "->=CHOIX": HTAB 29: VTAB 22: PRINT "CR=OKAY" 10110 RETURN 15000 GOSUB 10000 15010 SC = 5:ID = 16:A = 0: INVERSE : GOSUB 250: NORMAL 15020 GET A$ 15030 N0 = 0:NN = 3 15040 IF A$ = CHR$ (8) THEN & NOISE1,10,10: GOSUB 160: GOTO 15020 15050 IF A$ = CHR$ (21) THEN & NOISE1,10,10: GOSUB 200: GOTO 15020 15060 IF A$ = CHR$ (13) THEN 15090 15070 IF A$ = "Q" THEN 6230 15080 GOTO 15020 15090 ON A + 1 GOTO 15100,15900,17000,18000 15100 GOSUB 16000: IF B$ = CHR$ (27) THEN 15000 15110 A = USR (0): & READ "PLAYER": INPUT NM$,NA%,NU%,CY%,CX%,CL,RA 15120 FOR I = 1 TO 8: INPUT KA(I),KB(I),KC(I): NEXT I 15130 INPUT GP,XP,AR,PA,PR,EN,OB,LP 15140 IF OB = 0 THEN 15160 15150 FOR I = 1 TO OB: INPUT OB$(I): FOR J = 1 TO 6: INPUT OB(I,J): NEXT J: NEXT I 15160 & END :A = USR (1) 15170 & RELIRE3000: FOR I = 1 TO 6: READ RACE$(I): NEXT I 15180 & RELIRE3070: FOR I = 1 TO 4: READ CLASSE$(I): NEXT I 15190 & RELIRE3090: FOR I = 1 TO 4: READ LIEU$(I): NEXT I 15500 GOSUB 6200: PRINT : PRINT " NOM:";: HTAB 24: PRINT "CLASSE:": VTAB 10: HTAB 1: PRINT "LIEU:";: HTAB 26: PRINT "RACE:" 15510 VTAB 12: HTAB 3: PRINT "INT:";: HTAB 16: PRINT "SAG:";: HTAB 29: PRINT "FOR:": VTAB 14: HTAB 3: PRINT "DEX:";: HTAB 16: PRINT "VIT:";: HTAB 29: PRINT "MAG:" 15520 VTAB 16: HTAB 3: PRINT "ADR:";: HTAB 16: PRINT "PER:";: HTAB 29: PRINT "ARG:": VTAB 18: HTAB 1: PRINT "OBJETS:";: HTAB 29: PRINT "EXP:" 15530 VTAB 20: FOR I = 1 TO 5: PRINT I") ": NEXT I: VTAB 20: FOR I = 6 TO 9: HTAB 21: PRINT I") ": NEXT I 15540 HTAB 7: VTAB 8: PRINT NM$;: HTAB 32: PRINT CLASSE$(CL) 15550 VTAB 10: HTAB 7: IF NA% = 1 THEN PRINT LIEU$(1);: GOTO 15565 15560 PRINT LIEU$(NU% + 1); 15565 HTAB 32: PRINT RACE$(RA) 15570 HTAB 8: VTAB 12: PRINT KC(1)"/"KA(1);: HTAB 21: PRINT KC(2)"/"KA(2);: HTAB 34: PRINT KC(3)"/"KA(3) 15580 VTAB 14: HTAB 8: PRINT KC(4)"/"KA(4);: HTAB 21: PRINT KC(5)"/"KA(5);: HTAB 34: PRINT KC(6)"/"KA(6) 15590 VTAB 16: HTAB 8: PRINT KC(7)"/"KA(7);: HTAB 21: PRINT KC(8)"/"KA(8);: HTAB 34: PRINT GP 15600 VTAB 18: HTAB 34: PRINT XP: VTAB 20 15610 IF OB = 0 THEN 15800 15620 IF OB < 6 THEN FOR I = 1 TO OB: HTAB 3: GOSUB 15780: NEXT I: GOTO 15800 15630 FOR I = 1 TO 5: HTAB 3: GOSUB 15780: NEXT I: VTAB 20 15700 FOR I = 6 TO OB: HTAB 23: GOSUB 15780: NEXT I: GOTO 15800 15780 IF (I = AR) OR (I = PR) OR (I = PA) THEN INVERSE : PRINT OB$(I): NORMAL : RETURN 15790 PRINT OB$(I): RETURN 15800 GET A$: & RELIRE3000: GOTO 15000 15900 GOSUB 16000: IF B$ = CHR$ (27) THEN 15000 15910 GOTO 16060 16000 GOSUB 6200: HTAB 1: VTAB 14: PRINT "Ins{rez la disquette PLAYER et appuyez sur une touche...": HTAB 11: VTAB 17: PRINT "=RETOUR AU MENU": GET B$ 16010 IF B$ = CHR$ (27) THEN RETURN 16020 HTAB 11: VTAB 17: PRINT SPC( 20) 16030 A = USR (0): & READ "PLAYER": INPUT F$: & END :A = USR (1) 16040 IF F$ = "*START*" THEN & NOISE10,20,10: HTAB 1: VTAB 17: INVERSE : PRINT "CE N'EST PAS UNE DISQUETTE PLAYER !!!": NORMAL : HTAB 16: VTAB 19: PRINT "": GET A$: GOTO 16000 16050 IF F$ = "*BLANKPLAYER*" THEN & NOISE10,1,40: HTAB 1: VTAB 17: PRINT "Y-A PAS DE PERSO SUR LE DISK, BANANE !!": HTAB 16: VTAB 19: PRINT "": GET A$: GOTO 16000 16055 RETURN 16060 HTAB 1: VTAB 17: PRINT "J'EFFACE: ";: INVERSE : PRINT F$: NORMAL : PRINT : PRINT "CONFIRMATION (O/N):"; 16070 & SCRN1,1 16075 GET A$ 16080 IF A$ = "N" THEN PRINT A$: & SCRN1,0: GOTO 15900 16090 IF A$ = "O" THEN 16200 16100 GOTO 16075 16200 PRINT A$: & SCRN1,0: GOSUB 6200: HTAB 1: VTAB 14: PRINT "EFFACEMENT EN COURS..." 16210 A = USR (0): & DEL "PLAYER": & DEF "PLAYER",1: & PRINT "PLAYER": PRINT "*BLANKPLAYER*": & END :A = USR (1): GOTO 15000 17000 GOSUB 9100 17010 & RUN "GROS BILL",24576 18000 GOSUB 9100 18100 & RUN "PLAYER.OBJ",24576 20000 & READ "PLAYER": INPUT F$: & END 20010 IF F$ = "*START*" OR F$ = "*BLANKPLAYER*" THEN HOME : HTAB 9: VTAB 10: PRINT "INSEREZ LA FACE PLAYER": WAIT - 16384,128: POKE - 16368,0: GOTO 20000 20020 HOME : RETURN 30000 & READ "PLAYER": INPUT F$: & END 30010 IF F$ < > "*START*" THEN HOME : HTAB 8: VTAB 10: PRINT "INSEREZ LA FACE DE BOOT": WAIT - 16384,128: POKE - 16368,0: GOTO 30000 30020 HOME : RETURN