en:la_ville_infernale
Table of Contents
LA VILLE INFERNALE
Info
Author | Michael Fernandez |
---|---|
Computer | Amstrad PCW 8256 / 8512 / 9512 |
Year | 1988 |
Gender | Adventures |
Controls | Keyboard |
Languages | Spanish - French |
Status | Preserved |
Screenshot
Description
This game is part of the brilliance of a loud and crazy race in an exotic environment while crossing a French city. Good enough to satisfy a thirst for adventure. This wonderful program lives the agony of an unlucky driver in the middle of nowhere in a deep France. Our mission is to leave from the south of the city (the entrance to it) and to leave through the north coast of the city (exit of the city). If we succeed, we will have won the game, but we will find ourselves with several problems in the attempt, among which, engine breakage, punctures, aggressions, arrests, crashes, etc. The truth is that a fun game in which we will spend pleasant moments. Yes, and a lot of stress.
Listing
- Listing 1 - VILLE.BAS
5 ' a sauver sous le nom VILLE.BAS 6 ' 10 OPTION RUN 20 REM ******* VILLE INFERNALE ******* 30 REM copyright FERNANDEZ michel 40 MEMORY &HF605 [ 972 ] 50 code=HIMEM-400:ad.jeu=code-256*8 60 MEMORY &HF605 70 echange.jeu=code+3 80 x$=CHR$(27):curson$=x$+"e":cursoff$=x$+"f" 90 cls$=x$+"E"+x$+"H":inv$=x$+"p":norm$=x$+"q" 100 DEF Fllcu$ (li, co)=x$+"Y"+CHR$(32+li)+CHR$(32+co) 110 DEF FNfe$(li,co,nl,nc)=x$+"X"+CHR$(32+1i)+CHR$(32+co)+CHR$(31+nl)+CHR$(31+nc) 120 PRINT FNfe$(0,0,32,90);cls$;cursoff$;FNcu$(0,19);"* * L A V I L L E I N F E R N A L E * * ":PRINT FNcu$(2,27);"copiright 1986 FERNANDEZ michel" 130 PRINT:PRINT" ** REGLES DU JEU **":PRINT:PRINT" Au volant de votre voiture vous vous dirigez vers Paris.":PRINT"Vous abordez une ville inconnue, vous devez la traverser du SUD au NORD.":PRINT:PRINT"DANS CETTEVILLE DE 1600 CARREFOURS SONT REPARTIS:" 140 PRINT"80 banques; 80 postes de police, 90 garages, 90 postes d'essence.":PRINT:PRINT"POUR VOUS AIDEZ:":PRINT"Boussole, Niveaux (essence et argent)":PRINT"Alarmes (essence, argent, consommation, roue de secours)." 150 PRINT:PRINT"POUR VOUS GENER:":PRINT"Panne de boussole, Panne mécanique, Crevaisons, Agressions, Controles de police.":PRINT:PRINT"ARRETS POSSIBLES:":PRINT"Banque -> niveau argent remis au maximum.":PRINT"Essense -> plein du réservoir (â payer!)" 160 PRINT"Garage -> remise en état du véhicule (boussole, roue de secours, carburateur).":PRINT"Poste de police -> arret obligatoire si paneeau STOP (controle).":PRINT:PRINT" ATTENTION La ville n'est pas sure: vous pouvez vous faire dévaliser !" 170 PRINT FNfe$(31,0,1,90);FNcu$(0,40);"PATIENTEZ"; 180 OPEN "i",1,"vcode.txt" 190 i=code:WHILE NOT (EOF(1)):INPUT #1,octet:POKE i,octet:i=i+1:WEND:CLOSE #1 200 carad=i:carceh=carad+9:POKE car ech+1,INT(ad.jeu/256):POKE carech,ad.jeu-256*PEEK (carech+1) 210 OPEN "i",1,"vjeu.car" 220 i=-1:FOR t=1 TO 128:INPUT #1,b$:FOR j=1 TO 31 STEP 2:i=i+1:m$=MID$(b$,j,2): POKE ad.jeu+i,195:CLOSE #1 230 PRINT cls$;FNcu$(0,36);CHR$ (7); "PRESSEZ UNE TOUCHE"; 240 WHILE INKEY$<>"":WEND: WHILE INKEY$="":WEND 250 PRINT FNfe$(4,0,28,90);cls$;"** FIN DU JEU **":PRINT:PRINT"VOUS GAGNEZ SI vous ressortez de la ville coté NORD.":PRINT: PRINT"VOUS PERDEZ SI:":PRINT"Vous tombez en panne d'essence." 260 PRINT"Vous n'avez pas assez d'argent pour payer (essence, réparations,contraventions).":PRINT"Vous nevous arretez pas au controle de police.":PRINT"Vous succombez á la fatigue (plus de 200 km.).":PRINT"Vous ressortez coté SUD." 270 PRINT:PRINT"En fin de partie votre trajet vous est dévoilé avec possibilité de voir les emplacements des différents points d'arret.":PRINT:PRINT"LES COMMANDES:":PRINT" curseur gauche = tourner à gauche curseur droite = tourner à droite" 280 PRINT"curseur haut = aller tout droit curseur bas = arret (pouressence, banque, garage, police)": PRINT:PRINT"QUELQUES CONSEILS:": PRINT"Passez souvent au garage (réparations garanties pour 10 km.)." 290 PRINT"Surveillez vos alarmes (si alarme argent, pas assez pour réparations)." 300 PRINT:PRINT"N'hésitez pas à utiliser papier et crayon (le nord est vite perdu).":PRINT"Gardez votre calme (les bifurcations sont souvent défavorables).":PRINT:PRINT" B O N N E R O U T E" 310 PRINT FNfe$(31,0,1,90);FNcu$(0,40);"PATIENTEZ"; 320 CALL echange.jeu 330 CLOSE 1 340 CLEAR, 62981!: MEMORY 62981!: RUN"v1
- Listing 2 - V1.BAS
10 ' La ville infernale 20 ' 30 ' a sauver sous le nom V1.BAS 40 ' 50 ' RSX basic etendu 60 ' 70 MEMORY &HF3FF 80 DATA C5,D5,23,7E,32,B0,F4,23,7E,32,B1,F4,3E,80,32,B2,F4,3E,F4,32,B3,F4,11,B0,F4,0E,98,CD,05,00,11,80,F4,0E,13,CD,05,00,11,80,F4,0E,16,CD,05,00,E1,5E,23,56,E1,4E,23,46,D5,C5 9O DATA ED,53,00,F4,ED,43,02,F4,0E,1A,11,00,F4,CD,05,00,0E,15,11,80,F4,CD,05,00,E1,29,24,44,Dl,C5,D5,0E,1A,CD,05,00,11,80,F4,0E,15,CD,05,00,D1,EB,11,80,00,19,EB,C1,10,E7,11,80,F4,0E,10,CD,05,00,C9 100 DATA D5,23,7E,32,B0,F4,23,7E,32,B1,F4,3E,80,32,B2,F4,3E,F4,32,B3,F4,11,B0,F4,0E,98,CD,05,00,11,80,F4,0E,0F,CD,05,00,FE,00,C0,11,00,F4,0E,lA,CD,05,00,11,80,F4,0E,14,CD,05,00 110 DATA E1,5E,23,56,2A,02,F4,E5,29,44,D5,78,FE,00,28,18,C5,D5,0E,1A,CD,05,00,11,80,F4,0E,14,CD,05,00,E1,11,80,00,19,EB,C1,10,E8,D5,C1,EB,D1,AF,ED,52,EB,E1,ED,52,C5,E5,11,00,F4 120 DATA 0E,1A,CD,05,00,ll,80,F4,0E,14,CD,05,00,C1,21,00,F4,D1,ED,B0,11,80,F4,0E,10,CD,05,00,C9 130 FOR i=1 TO 119; READ n$:n=VAL("&h"+n$):POKE &HF4DF+i,n:NEXT 140 FOR i=1 TO l41: READ n$:n=VAL("&h"+n$):POKE &HF556+i,n:NEXT 150 RUN"v2
- Listing 3 - V2.BAS
10 ' La ville infernale 20 ' 30 ' a sauver sous le nom V2.BAS 40 ' 50 ' RSX graphique 60 ' 70 bload%=&HF557:adorig=&HF080:dep%=HIMEM-65536!:dep%=dep%-654:MEMORY HIMEM-655 80 nom$="VGRAPH.BIN":CALL bload%(nom$,dep%) 90 DATA F09AF09EF0A4F0A8F0AEF0CDF0E6F0F5 100 DATA F100F10BF112F119F128F12BF17FF19A 110 DATA F1A9F1CCF1F1F1F4F1F9F218F21BF220 120 DATA F22DF271F290 130 DATA F080F0CDF090F095F0D8F0DEF0F5F100F128F10BF19AF112 140 DATA F080F0D0F091F096F0DBF0DEF0F8F100F12BF1OBF19DF112 150 DIM table(51):m=0:FOR i=1 TO 6:READ a$;lena=LEN(a$)/4 160 FOR j=1 TO lena:b=VAL("&h"+MID$(a$,4*j-3,4))-adorig+dep% 170 m=m+1;table(m)=b:NEXT j: NEXT i 180 FOR i=1 TO 27:b=table(i) 190 df=PEEK(b+2)*256+PEEK(b+1)-adorig+dep%:df1=FIX(df/256) 200 df2=df-256*df1:POKE b+1,df2:POKE b+2,df1:NEXT i 210 m=&HF5FF:FOR i=28 TO 39:b=table(i):b1=FIX(b/256):b2=b-256*b1 220 IF b2<0 THEN b2=b2+256 230 IF b1<0 THEN b1=B1+255 240 POKE m-1,b2:POKE m,b1:m=m-2:NEXT i 250 m=&HF500:FOR i=40 TO 51:b=table (i):b1=FIX(b/256):b2=b-256*b1 260 IF b2<0 THEN b2=b2+256 270 IF b1<O THEN b1=b1+255 280 POKE m,&HC3:POKE m+1,b2:POKE m+2,b1:m=m+3:NEXT i 290 RUN"v3
- Listing 4 - V3.BAS
1 ' a sauver sous le nom V3.BAS 2 ' 3 ' programme principal 4 ' 10 OPTION RUN 20 REM ******* VILLE INFERNALE ************* 30 REM copyright FERNANDEZ michel 40 DEFINT a-d:DEFINT f-z:DIM vi$(7) 50 DEF FNwp(x)=UNT(PEEK(x)+256*PEEK(x+1)) 60 gcls=FNwp(&HF5FE):gorigin=FNwp(&HF5FC):gmode=FNwp(&HF5FA) 70 gvideo=FNwp(&HF5F8):gxpos=FNwp(&HF5F6):gypos=FNwp(&HF5F4) 80 gmove=FNwp(&HF5F2):gmover=FNwp(&HF5F0):gplot=FNwp(&HF5EE) 90 gplotr=FNwp(&HF5EC):gdraw=FNwp(&HF5EA):gdrawr=FNwp(&HF5E8) 100 x$=CHR$(27):curson$=x$+"e":cursoff$=x$+"f" 110 cls$=x$+"E"+x$+"H":inv$=x$+"p":norm$=x$+"q" 120 DEF FNcu$(li,co)=x$+"Y"+CHR$(32+li)+CHR$(32+co) 130 DEF FNfe$(li,co,nl,nc)=x$+"X"+CHR$(32+li)+CHR$(32+co)+CHR$(31+nl)+CHR$(31+nc) 140 z1$=CHR$(170)+CHR$(165)+CHR$(165)+CHR$(172):z2$=CHR$(165)+CHR$(165)+CHR$(171)+CHR$(172):z3$=CHR$(173)+CHRS(165)+CHR$(171)+CHR$(165):z4$=CHRS(173)+CHR$(171)+CHR$(165)+CHR$(165) 150 z5$=CHR$(165)+CHR$(165)+CHR$(170):z6$=CHR$(165)+CHR$(171)+CHR$(165):z7$=" "+CHRS(174)+" " 160 z8$=" "+CHR$(198)+CHR$(254)+" "+CHR$(196)+CHR$(252)+" "+CHR$(196)+CHR$(197)+" "+CHR$(253)+CHR$(197)+" "+CHR$(255)+CHR$(199)+" " 170 GOTO 1090 180 PRINT FNfe$(22,0,11,90);cls$;FNfe$(0,0,32,90);STRING$(12,7);FNcu$(9,9);" ":PRINT FNfe$(2,21,13,50):RETURN 182 PRINT FNfe$(22,0,11,90);cls$;FNfe$(0,0,32,90);CHRS(7);FNcu$(9,9);" ":PRINT FNfe$(2,21,13,50):RETURN 185 PRINT FNfe$(22,0,11,90);cls$;FNfe$(0,0,32,90);STRING$(12,7);FNcu$(9,9);" ":PRINT FNfe$(2,21,13,50);cls$:RETURN 190 PRINT STRING$(12,161)+ÇHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(12,160) 200 PRINT STRING$(11,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(11,160) 210 PRINT STRING$(10,161)+CHR$(184)+STRINGS(2,185)+CHR$(187)+" "+CHR$(186)+STRINGS(2,185)+CHR$(183)+STRING$(l0,l60) 220 PRINT STRING$(9,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(9,160) 230 PRINT STRING$(8,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(8,160) 240 RETURN 250 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(174)+CHR$(162)+STRING$(3,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(3,160)+CHR$(163)+CHR$(174)+" "+CHR$(188)+STRING$(12,160) 260 PRINT STRING$(12,161)+CHR$(189)+z1$+STRING$(2,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(2,160)+z3$+CHR$(188)+STRING$(12,160) 270 PRINT STRING$(12,161)+CHR$(189)+z2$+CHR$(161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+CHR$(160)+z4$+CHR$(188)+STRING$(12,160) 280 PRINT STRING$(12,l61)+CHR$(189)+z1$+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+z3$+CHR$(188)+STRING$(12,160) 290 PRINT STRING$(12,161)+CHR$(189)+STRING$(6,185)+CHR$(187)+" "+CHR$(186)+STRING$(6,185)+CHR$(188)+STRING$ (12,160) 300 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(188)+STRING$(12,160) 310 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(188)+STRING$(12,160) 320 PRINT STRING$(l2,161)+CHR$(189)+STRING$(3,185)+CHRS(187)+z8$+CHR$(186)+STRING$(3,185)+CHR$(188)+STRING$(12,160) 330 RETURN 340 PRINT STRING$(20,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(20,160) 350 PRINT STRING$(19,l61)+CHR$(184)+STRING$(2,l85)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(19,160) 360 PRINT STRING$(18,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(18,160) 370 PRINT STRING$(17,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(17,160) 380 PRINT STRING$(16,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(16,160) 390 PRINT STRING$(15,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(15,160) 400 PRINT STRING$(14,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(14,160) 410 PRINT STRING$(13,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+z8$+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(13,160) 420 RETURN 430 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(174)+CHR$(162)+STRING$(3,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(20,160) 440 PRINT STRING$(12,161)+CHR$(189)+z1$+STRING$(2,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRINGS(2,185)+CHR$(183)+STRING$(19,160) 450 PRINT STRING$(12,161)+CHR$(189)+z2$+CHR$(161)+CHR$(184)+STRING$(2,185)+CHRS(187)+" "+CHRS(186)+STRING$(2,185)+CHR$(183)+STRING$(18,160) 460 PRINT STRING$(12,161)+CHR$(189)+z1$+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(17,160) 470 PRINT STRING$(12,161)+CHR$(189)+STRING$(6,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(16,160) 480 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(186)+STRIG$(2,185)+CHR$(183)+STRING$(15,16) 490 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(186)+STRING$(2,185)+CHRS(183)+STRING$(14,16) 500 PRINT STRING$(12,161)+CHR$(189)+STRINGS(3,185)+CHRS(187)tz8$+CHR$(186)+STRING$(2,185)+CHRS(183)+STRING$(13,160) 510 RETURN 520 PRINT STRING$(20,161)+CHR$(184)+STRINGS(2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(3,160)+CHR$(163)+CHRS(174)+" "+CHR$(188)+STRING$(12,160) 530 PRINT STRING$(19,161)+CHR$(184)+STRING$(2,185)+CHRS(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(2,160)+z4$+CHR$(188)+STRING$(12,160) 540 PRINT STRING$(18,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHRS(186)+STRING$(2,185)+CHR$(183)+CHR$(160)+z3$+CHR$(188)+STRING$(12,160) 550 PRINT STRING$(17,161)+CHR$(184)+STRING$C2,185)+CHR$(187)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+z4$+CHR$(188)+STRING$(12,160) 560 PRINT STRING$(16,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(186)+STRINGS(6,185)+CHR$(188)+STRING$(12,160) 570 PRINT STRING$(15,161)+CHRS(184)+STRING$(2,185)+CHRS(187)+" "+CHR$(188)+STRING$(12,160) 580 PRINT STRING$(14,161)+CHRS(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(188)+STRING$(12,160) 590 PRINT STRING$(13,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+z8$+CHR$(186)+STRING$(3,185)+CHR$(188)+STRING$(12,160) 600 RETURN 610 PRINT STRING$(12,161)+CHR$(189)+z7$+z7$+z7$+z7$+z7$+z7$+z7$+z7$+CHR$(188)+STRING$(12,160) 620 PRINT STRING$(12,161)+CHRS(189)+z5$+z5$+z5$+z5$+z5$+z5$+z5$+STRING$(3,165)+CHRS(188)+STRING$(12,160) 630 PRINT STRING$(12,161)+CHR$(189)+z6$+z6$+z6$+z6$+z6$+z6$+z6$+z6$+CHR$(188)+STRING$(12,160) 640 PRINT STRING$(12,161)+CHR$(189)+z5$+z5$+z5$+z5$+z5$+z5$+z5$+STRING$(3,165)+CHR$(188)+STRING$(12,160) 650 PRINT STRING$(12,161)+CHR$(189)+STRING$(24,185)+CHRS(188)+STRING$(12,160) 660 PRINT STRING$(12,161)+CHR$(189)+" "+CHRS(188)+STRING$(12,160) 670 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(188)+STRING$(12,160) 680 PRINT STRING$(12,161)+CHRS(189)+STRING$(3,185)+CHR$(187)+z8$+CHR$(186)+STRING$(3,185)+CHR$(188)+STRING$(12,160) 690 RETURN 700 PRINT STRING$(12,161)+CHR$(189)+z7$+z7$+z7$+z7$+z7$+z7$+" "+CHR$(174)+CHRS(188)+STRINGS(16,160) 710 PRINT STRING$(12,161)+ChR$(189)+z5$+z5$+z5$+z5$+z55+z5$+CHR$(165)+CHR$(165)+CHR$(188)+STRING$(16,160) 720 PRINT STRING$(12,161)tCHR$(189)+z6$+z6$tz6$+z6$+z6$+z6$+CHR$(165)+CHR$(171)+CHR$(188)+STRING$(16,160) 730 PRINT STRING$(12,161)+CHR$(189)+z5$+z5$+z5$+z5$+z5$+z5$+CHR$(165)+CHR$(165)+CHR$(188)+STRING$(16,160) 740 PRINT STRING$(12,161)+CHR$(189)+STRING$(20,185)+CHR$(183)+STRING$(16,160) 750 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(15,160) 760 PRINT STRING$(12,161)+CHR$(189)+" "+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(14,160) 770 PRINT STRING$(12,161)+CHR$(189)+STRING$(3,185)+CHRS(187)+z8$+CHR$(186)+STRING$(2,185)+CHR$(183)+STRING$(13,160) 780 RETURN 790 PRINT STRING$(16,161)+CHR$(189)+CHR$(174)+" "+z7$+z7$+z$+z7$+z7$+z7$+CHR$(188)+STRING$(12,160) 800 PRINT STRING$(16,161)+CHR$(189)+CHR$(165)+CHR$(172)+z5$+z5$+z5$+z5$+z5$+STRING$(3,165)+CHR$(188)+STRING$(12,160) 810 PRINT STRING$(16,161)+CHR$(189)+CHR$(171)+CHR$(165)+z6$+z6$+z6$+z6$+z6$+z6$+CHR$(188)+STRING$(12,160) 820 PRINT STRING$(16,161)+CHR$(189)+CHR$(165)+CHR$(172)+z5$+z5$+z5$+z5$+z5$+STRING$(3,165)+CHR$(188)+STRING$(12,160) 830 PRINT STRING$(16,161)+CHR$(184)+STRING$(20,185)+CHR$(188)+STRING$(12,160) 840 PRINT STRING$(15,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(188)+STRING$(12,160) 850 PRINT STRING$(14,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+" "+CHR$(188)tSTRING$(12,160) 860 PRINT STRING$(13,161)+CHR$(184)+STRING$(2,185)+CHR$(187)+z8$+CHR$(186)+STRING$(3,185)+CHR$(188)+STRING$(12,160) 870 RETURN 880 PRINT FNcu$(0,0);CHR$(7):PRINT FNcu$(0,0):PRINT CHR$(161)+CHR$(189)+z7$+z7$+z7$+CHR$(162) 890 PRINT CHR$(161)+CHR$(189)+z5$+z5$+z5$+CHR$(172):PRINT CHR$(161)+CHR$(189)+z6$+z6$+z6$+CHR$(172):PRINT CHR$(161)+CHR$(189)+z5$+z5$+z5$+CHR$(172) 900 PRINT CHR$(161)+CHR$(189)+STRING$(8,165)+STRING$(2,172) 910 PRINT CHR$(161)+CHR$(189)+nm$+CHR$(162)+CHR$(162) 920 PRINT CHR$(161)+CHR$(189)+" "+CHR$(194)+STRING$(2,190)+CHR$(251)+STRING$(2,190)+CHR$(193)+STRING$(2,162) 930 PRINT CHR$(161)+CHR$(189)+" "+CHR$(163)+" "+CHR$(174)+" "+STRING$(3,162) 940 PRINT CHR$(161)+CHR$(189)+CHR$(164)+CHR$(177)+STRING$(2,164)+CHR$(195)+STRING$(2,164)+STRING$(3,178) 950 PRINT CHR$(161)+CHR$(184)+STRING$(10,185) 960 PRINT CHR$(184)+STRING$(10,185):PRINT STRING$(10,185):PRINT STRING$(9,185) 970 RETURN 980 IF cl=1 THEN RETURN 990 PRINT FNcu$(10,22);CHR$(184)+STRING$(4,185)+CHR$(183) 1000 PRINT FNcu$(11,22);CHR$(185)+"STOP"+CHR$(185) 1010 PRINT FNcu$(12,22);CHR$(186)+STRING$(4,185)+CHR$(187) 1020 PRINT FNcu$(13,23);CHR$(176)+" "+CHR$(175) 1030 RETURN 1040 PRINT CHR$(7); 1050 WHILE INKEY$<>"":WEND:q$="" 1060 q$=INKEY$:rzz=RND:IF q$=CHR$(13)THEN RETURN 1070 IF q$="" THEN 1060 1080 q$=UPPER$(q$):RETURN 1090 PRINT FNfe$(31,0,1,90);cls$;:PRINT FNfe$(0,0,32,90);FNcu$(31,15);cursoff$;"DEBUT DU VOYAGE";:GOSUB 3160:GOSUB 1650:GOSUB 2250:GOSUB 2260 1100 GOSUB 1800 1110 IF y<7 THEN y1=y-1:GOTO 1180 1120 IF y<13 THEN y1=y-7:GOTO 1180 1130 IF y<19 THEN y1-y-13:GOTO 1180 1140 IF y<25 THEN y1 y-19:GOTO 1180 1150 IF y<31 THEN y1=y-25:GOTO 1180 1160 IF y<37 THEN y1=y-31:GOTO 1180 1170 IF y<43 THEN y1=y-37 1180 LI=INT(y/6.1)+1:lo=x+(40*y1) 1190 z=VAL(MID$(vi$(li),lo,1)) 1200 GOSUB 2200:GOSUB 2140 1210 IF ar=1 THEN ar=0:GOTO 1225 1220 PRINT FNfe$(2,21,13,50);cls$ 1225 PRINT FNfe$(1,21,15,51):ON k GOSUB 250,340,430,520,700,610,790:GOSUB 190 1230 IF z=0 THEN 1310 1240 ON z GOTO 1250,1260,1270,1280 1250 nm$=" GARAGE ":GOTO 1300 1260 nm$=" ESSENCE":GOTO 1300 1270 nm$=" BANQUE ":GOTO 1300 1280 nm$=" POLICE ":GOTO 1290 1290 GOSUB 880:GOSUB 980:GOTO 1310 1300 GOSUB 880 1310 PRINT FNfe$(22,0,11,90);cls$;FNcu$(2,36);"QUE FAITES-VOUS ?";FNcu$(4,36);"tout droit ( ";CHR$(131);" )":PRINT FNcu$(5;36);"tourne à droite ( ";CHR$(132);" )";FNcu$(6,36);"tourne à gauche ( ";CHR$(134);" )":PRINT FNcu$(7,36);"arret ( ";CHR$(133);" )"; 1320 WHILE INKEY$<>"" :WEND 1330 FF=RND:q$=INKEY$:IF Q$=""THEN 1330 1340 IF ASC(q$)=1 THEN q=1:GOTO 1390 1350 IF ASC(q$)=6 THEN q=2:GOTO 1390 1360 IF ASC(q$)=30 THEN q=3:GOTO 1390 1370 IF ASC(q$)=31 THEN q=4:GOTO 1390 1380 PRINT CHR$(7);;GOT0 1330 1390 PRINT cls$:IF z=4 AND cl=0 AND q<>3 THEN 2550 1400 IF (q=1 AND c2=2)OR(q=2 AND c3=2)OR(q=4 AND c1=2)THEN 2570 1410 IF q=3 THEN 2620 1420 d1=q:cl=0:e=e-cs:km=km+1 1430 IF e<0 THEN 2990 1440 PRINT FNfe$(0,0,32,90):GOSUB 2260 1450 IF km=200 THEN 3060 1460 IF EN>0 OR km<4 THEN 1520 1470 J=INT(RND*30)+1 1480 IF J=23 AND P<5 THEN 2270 1490 IF J=11 AND P<10 AND AG<2 AND a>0 THEN 2390 1500 IF (J=5 OR J=16) AND CS-1 AND P<10 THEN 2460 1510 IF (J=8 OR J=27 OR J=2) AND BL=1 AND P<10 THEN 2510 1520 en=en-1 1530 ON d1 GOTO 1540,1560,2620,1570 1540 D=D-1:IF D=0 THEN D=4 1550 GOTO 1570 1560 D=D+1: IF D=5 THEN D=1 1570 IF D=l THEN Y=Y-1:F$=f$+"1" 1580 IF D=2 THEN X=X+1:F$=f$+"2" 1590 IF D=3 THEN Y=Y+1:F$=f$+"3" 1600 IF D=4 THEN X=X-1:F$=f$+"4" 1610 P=P-1:IF P<0 THEN P=0 1620 IF Y=0 THEN 3020 1630 IF Y=41 THEN 3100 1640 GOTO 1100 1650 PRINT CURSOFF$;FNfe$(0,0,32,90);cls$;STRING$(29,32);"L A V I L L E I N F E R N A L E" 1660 PRINT FNfe$(1,20,16,53);c]s$;CHR$(166)+STRING$(50,164)+CHR$(167):FOR i=0 TO 12:PRINT CHR$(162)+STRING$(50,32)+CHR$(163):NEXT:PRINT CHR$(169)+STRING$(50,165)+CHR$(168); 1670 PRINT FNfe$(0,0,32,90);FNcu$(16,0);STRING$(18,164)+CHR$(129)+STRING$(9,164)+CHR$(129)+STRING$(9,164)+CHR$(129)+STRING$(9,164)+CHR$(129)+STRING$(9,164)+CHR$(129)+STRING$(9,164)+CHR$(129)+STRINGI(9,164)+CHR$(129)+STRING$(10,164);CHR$(167); 1680 PRINT CHR$(163)+" ARGENT"+CHR$(162)+STRING$(80,32)+CHR$(163); 1690 PRINT CHR$(163)+" "+STRING$(9,130)+CHR$(127)+STRING$(9,130)+CHR$(127)+STRING$(9,130)+CHR$(127)+STRING$(9,130)+CHR$(127)+STRING$(9,130)+CHR$(127)+STRING$(9,130)+CHR$(127)+STRING$(9,130)+CHR$(127)+STRING$(10,130)+CHR$(163); 1700 PRINT CHR$(163)+"ESSENCE"+CHR$(162)+STRING$(80,32)+CHR$(163); 1710 PRINT STRING$(18,165)+CHR$(128)+STRING$(9,165)+CHR$(128)+STRING$(9,165)+CHR$(128)+STRING$(9,165)+CHR$(128)+STRING$(9,165)+CHR$(128)+STRING$(9,165)+CHR$(128)+STRING$(9,165)+CHRs(128)+STRINGs(10,165)+CHR$(168); 1720 PRINT FNcu$(4,4);"* BOUSSOLE *";FNcu$(6,6);CHR$(191)+STRING$(5,165)+CHR$(192);FNcu$(7,5);CHR$(191)+" N "+CHR$(192);FNcu$(8,4);CHR$(191)+" "+CHR$(194)+CHR$(190)+CHR$(193)+" "+CHR$(192); 1730 PRINT FNcu$(9,3);CHR$(162)+" O "+CHR$(163)+" "+CHR$(162)+" E "+CHR$(163);FNcu$(10,4);CHR$(192)+" "+CHR$(175)+CHR$(190)+CHR$(176)+" "+CHR$(191) 1740 PRINT FNcu$(11,5);CHR$(192)+" S "+CHR$(191);FNcu$(12,6);CHR$(192)+STRING$(5,164)+CHR$(191) 1750 PRINT FNcu$(1,77);"* ALARMES *";FNcu$(2,75);CHR$(194)+STRING$(13,190)+CHR$(193);FNcu$(3,75);CHR$(163)+STRING$(13,32)+CHR$(162);FNcu$(4,75);CHR$(163)+STRING$(13,190)+CHR$(162) 1760 PRINT FNcu$(5,75);CHR$(163)+STRING$(13,32)+CHR$(162);FNcu$(6,75);CHR$(163)+STRING$(13,190)+CHR$(162);FNCU$(7,75);CHR$(163)+STRING$(13,32)+CHR$(162) 1770 PRINT FNcuS(8,75);CHR$(163)+STRING$(13,190)+CHR$(162);FNcu$(9,75);CHR$(163)+STRING$(13,32)+CHR$(162);FNcu$(10,75);CHR$(175)+STRING$(13,190)+CHRS(176) 1780 PRINT FNCU$(12,75);"* KILOMETRAGE *";FNCU$(13,79);CHR$(194)+STRING$(5,190)+CHR$(193);FNCU$(14,79);CHR$(163)+" 0 "+CHR$(162);FNCU$(15,79);CHR$(175)+STRING$(5,190)+CHR$(176) 1790 RETURN 1800 IF BL=0 THEN 1820 1810 IF KM=O THEN K=1:RETURN 1820 FF=INT(RND*20)+1 1830 IF FF=4 OR FF=8 OR FF=20 THEN K=1:GOTO 1900 1840 IF FF=7 OR FF=16 THEN K=2:GOTO 1900 1850 IF FF=1 OR FF=9 THEN K=3:GOTO 1900 1860 IF FF=3 OR FF=14 THEN K=4:GOTO 1900 1870 IF FF=5 OR FF=10 OR FF=13 THEN K=5;GOTO 1900 1880 IF FF=6 OR FF=12 OR FF=18 THEN K=7:GOTO 1900 1890 K=6 1900 IF K=1 THEN c1=3:c2=3:c3=3 1910 IF K=2 THEN c1=3;c2=2:c3=2 1920 IF K=3 THEN c1=3:c3=3:c3=2 1930 IF K=4 THEN c1=3:c2=2:c3=3 1940 IF K=5 THEN c1=2:c2=3:c3=2 1950 IF K=6 THEN c1=2:c2=3:c3=3 1960 IF K=7 THEN c1=2:c2=2:c3=3 1970 ON D GOTO 1980,2020,2060,2100 1980 IF X=1 AND C2=3 THEN 1820 1990 IF X=40 AND C3=3 THEN 1820 2000 IF Y=1 AND(X<19 OR X>21) AND C1=3 THEN 1820 2010 RETURN 2020 IF X=40 AND C1=3 THEN 1820 2030 IF Y=1 AND(X<19 OR X>21) AND C2=3 THEN 1820 2040 IF Y=40 AND(X<19 OR X>21) AND C3=3 THEN 1820 2050 RETURN 2060 IF X=1 AND C3=3 THEN 1820 2070 IF X=40 AND C2=3 THEN 1820 2080 IF Y=40 AND(X<19 OR X>21) AND C1=3 THEN 1820 2090 RETURN 2100 IF X=1 AND C1=3 THEN 1820 2110 IF Y=1 AND(X<19 OR X>21) AND C3=3 THEN 1820 2120 IF Y=40 AND(X<19 OR X>21) AND C2=3 THEN 1820 2130 RETURN 2140 IF b1=0 THEN b$="?":GOTO 2200 2150 IF d=1 THEN b$=CHR$(131):GOTO 2190 2160 IF d=2 THEN b$=CHR$(132):GOTO 2190 2170 IF d=3 THEN b$=CHR$(133):GOTO 2190 2180 IF d=4 THEN b$=CHR$(134) 2190 PRINT FNfe$(0,0,32,90);FNcu$(9,9);b$:RETURN 2200 IF E<10 THEN AL1$=" ESSENCE " ELSE AL1$=" " 2210 IF A<20 THEN AL2$=" ARGENT " ELSE AL2$=" " 2220 IF CS=2 THEN AL3$="CONSOMMATION " ELSE AL3$=" " 2230 IF RS=0 THEN AL4$="ROUE SECOUES " ELSE AL4$=" " 2240 PRINT FNfe$(0,0,32,90):PRINT FNcu$(3,76);al1$;FNcu$(5,76);al2$;FNcu$(7,76);al3$;FNcù$(9,76);al4$:RETURN 2250 PRINT FNfe$(0,0,32,90):PRINT FNcu$(18,9);STRING$(a,185)+SPACE$(80-a):RETURN 2260 PRINT FNfe$(0,0,32,90):PRINT FNcu$(20,9);STRING$(e,185)+SPACE$(80-e):PRINT FNcu$(9,9);b$;PRINT FNcu$(14,81);USING"###";km;RETURN 2270 GOSUB 180:PRINT FNcu$(7,15);" C R E V A I S O N ";FNfe$(22,0,11,90); 2280 PRINT" VOUS VENEZ DE CREVER !!!" 2290 IF RS<1 THEN 2350 2300 PRINT:PRINT"Heureusement pour vous votre roue de secours est en bon état.":PRINT:PRINT"VOUS VOUS DEPANNEZ.":rs=0 2310 PRINT:PRINT"Vous pouvez repart ir mais... vous n'avez plus de roue de secours.":PRINT:PRINT"FAITES REPARER AU PROCHAIN GARAGE.":GOSUB 2200 2320 PRINT FNfe$(22,0,11,90);FNcu$(10,40);"PRESSEZ <ESPACE>";:GOSUB 1050:PRINT cls$ 2330 EN=1:GOTO 1530 2340 PRINT FNfe$(22,0,11,90);FNcu$(10,40);"PRESSEZ <ESPACE>";:GOSUB 1050:PRINT cls$:GOTO 1200 2350 PRINT:PRINT"HE! OUT!! VOUS AVEZ QUATRE ROUES.... ET VOTRE ROUE DE SECOURS EST CREVEE." 2360 PRINT:PRINT"Vous devez faire venir un dépanneur... et cela n'est pas gratuit.":a=a-20:IF a>0 THEN PRINT:PRINT"VOUS POUVEZ REPARTIR MAIS... surveillez votre argent.":GOSUB 2250:GOTO 2320 2370 GOTO 2720 2390 GOSUB 180:PRINT FNcu$(7,15);" A G R E S S I O N ";FNfe$(22,0,11,90); 2400 PRINT" VOUS ETES VICTIME D'UNE AGRESSION.":IF AG=1 THEN 2430 2410 PRINT:PRINT"Sous la menace vous donnez la moitie de votre argent.":A=INT(A/2):AG=1 2420 PRINT:PRINT"VOUS POUVEZ REPARTIR. MAIS... TROUVEZ VITE UNE BANQUE":GOSUB 2250:GOTO 2320 2430 PRINT:PRINT"HE ! OUI !!! ENCORE!!!" 2440 PRINT:PRINT"Vos voleurs ont compris qu'il vous restait de l'argent." 2450 PRINT:PRINT"ILS VOUS PRENNENT LE RESTE !!!":A=0:AG=2:GOTO 2420 2460 GOSUB 180:PRINT FNcu$(7,9);" P A N N E M E C A N I Q U E ';FNfe$(22,0,11,90); 2470 PRINT" VOUS AVEZ DES ENNUIS MECANIQUES !!" 2480 PRINT:PRINT"VOTRE CARBURATEUR EST DEREGLE. Votre consommation d'essence double.":CS=2 2490 PRINT:PRINT"VOUS POUVEZ REPARTIR. MAIS... Pensez a faire régler votre voiture." 2500 GOTO 2320 2510 GOSUB 180:PRINT FNcu$(7,16);"B O U S S O L E ";FNfe$(22,0,11,90); 2520 PRINT" VOTRE BOUSSOLE SE BLOQUE." 2530 PRINT:PRINT"RIEN NE VOUS INDIQUE MAINTENANT VOTRE DIRECTION !!!" 2540 PRINT:PRINT"A vous de ne pas perdre le nord !!":BL=0:GOTO 2490 2550 GOSUB 180:PRINT FNcu$(7,10);"D E L I T D E F U I T E ";FNfe$(22,0,11,90); 2560 PRINT"VOUS VENEZ DE FORCER UN BARRAGE DE POLICE...":PRINT:PRINT"CETTE ACTION VOUS OBLIGE A TERMINER VOTRE VOYAGE...":PRINT:PRINT" E N P R I S O N":GOTO 3130 2570 GOSUB 180:PRINT FNcu$(7,10);" P E R C U S S I O N M U R ";FNfe$(22,0,11,90); 2580 PRINT" VOUS VENEZ DE PERCUTER UN MUR !!":ar=1 2590 PRINT:PRINT"La réparation est trés onéreuse. Faites attention que diable !!" 2600 PRINT:PRINT"Il faut payer le carrossier":a=a-30:IF a>0 THEN PRINT:PRINT"VOUS POUVEZ REPARTIR... mais surveillez votre argent":GOSUB 2250:GOTO 2340 2610 GOTO 2720 2620 GOSUB 182:ar=1:PRINT FNcu$(7,18);" A R R E T ";FNfe$(22,0,11,90); 2630 IF Z>0 THEN 2660 2640 PRINT" LA RUE EST PARFAITEMENT DESERTE.":PRINT;PRINT"A part vous reposer, rien n'explique cette manoeuvre." 2650 PRINT:PRINT"VOUS FERIEZ MIEUX DE REPARTIR... Vous encombrez la chaussée.":GOTO 2340 2660 IF Z>1 THEN 2730 2670 PRINT"VOUS ETES AU GARAGE ...Votre voiture passe en révision." 2680 PRINT:PRINT"REPARATIONS EFFECT UEES... IL NE VOUS RESTE PLUS QU'A PAYER.":A=A-20 2690 IF A<0 THEN 2720 2700 PRINT:PRINT"VOUS POUVEZ REPART MAIS... Surveillez votre argent !!" 2710 RS=1:P=20:CS=1:BL=1:GOSUB 2250:GOSUB 2200:GOTO 2340 2720 PRINT:PRINT CHR$(7);"VOUS N'AVEZ PAS ASSEZ D'ARGENT... Vous finissez donc votre voyage...":PRINT:PRINT" E N P R I S O N":GOTO 3130 2730 IF Z>2 THEN 2810 2740 PRINT"VOUS ETES A LA POMPE A ESSENCE." 2750 IF E=80 THEN 2790 2760 PRINT:PRINT"LE POMPISTE FAIT LE PLEIN... Il ne vous reste plus qu'a payer." 2770 E=80-E:E=E/2:A=INT(A-E):E=80:IF A<O THEN 2720 2780 PRINT:PRINT"VOUS POUVEZ REPARTIR. MAIS... Surveillez votre argent !!":GOSUB 2260:GOSUB 2250:GOTO 2340 2790 PRINT:PRINT"ARRET INUTILE, RESERVOIR PLEIN.":PRINT:PRINT"Pour ne pas avoir l'air ridicule, vous faites vérifier vos pneux.":PRINT:PRINT"Cela vous coute cinq francs." 2800 A=A-5:IF A<0 THEN 2720 ELSE 2780 2810 IF Z>3 THEN 2860 2820 PRINT"VOUS ETES DANS LA BANQUE.":IF A<80 THEN 2840 2830 PRINT:PRINT"VOUS ETES TETE EN L'AIR... Votre avoir est déjà au maximum.":PRINT:PRINT"VOUS AVEZ L'AIR RIDICULE... Vous n'avez plus qu'à repartir...":GOTO 2340 2840 PRINT;PRINT"VOUS COMPLETEZ VOTRE AVOIR AU MAXIMUM." 2850 AG=O:A=80:PRINT:PRINT"VOUS POUVEZ REPARTIR. MAIS... Attention aux voleurs !!":GOSUB 2250:GOTO 2340 2860 IF cl=1 THEN 2640 2870 PRINT"GONTROLE DE POLICE... UN POLICIER EXAMINE VOTRE VOITURE...":CL=1:EN=2 2880 IF P<5 THEN 2900 2890 PRINT:PRINT"VOTRE VOITURE EST EN BON ETAT.":PRINT:PRINT"Vous pouvez reprendre votre route.":GOTO 2340 2900 FF=INT(RND*11)+1 2910 IF FF=5 OR FF=11 THEN 2890 2920 IF FF=2 OR FF=6 OR FF=9 THEN 2970 2930 IF FF=1 OR FF=7 OR FF=10 THEN 2980 2940 PRINT:PRINT"VOS PNEUX SONT EN MAUVAIS ÉTAT !!. "; 2950 PRINT"Vous devez payer une contravention.";CHR$(7):A=A-20 2960 IF A<O THEN 2720 ELSE 2780 2970 PRINT:PRINT"VOTRE ECLAIRAGE EST DEFFECTUEUX !!. ";:GOTO 2950 2980 PRINT:PRINT"VOTRE VOITURE EST TROP BRUYANTE !!.";:GOTO 2950 2990 GOSUB 185:PRINT FNcu$(7,9);" P A N N E D ' E S S E N C E ";FNfe$(22,0,11,90); 3000 PRINT"VOUS ETES EN PANNE D'ESSENCS !!":PRINT:PRINT"DOMMAGE POUR VOUS MAIS... Votre voyage se termineici." 3010 PRINT:PRINT"La prochaine foissoyez prévoyant ... PRENEZ LE TRAIN !!!!":GOTO 3150 3020 GOSUB 185:GOSUB 185:PRINT FNcu$(7,19);" G A G N E ";FNfe$(22,0,11,90); 3030 PRINT"B R A V O !!! VOUS ETES ENFIN PARVENU A TRAVERSER CETTE DROLE DE VILLE." 3040 PRINT:PRINT"Vous y avez mis le temps !!! VOUS AVEZ PARCOURU : ";KM;" kilomètres" 3050 PRINT:PRINT"VOUS POUVEZ FAIRE MIEUX... La prochaine fois prenez un plan !":GOTO 3150 3060 GOSUB 185:PRINT FNcu$(7,16);" A C C I D E N T ";FNfe$(22,0,11,90); 3070 PRINT"VOUS ETES VICTIME D'UN ACCIDENT...":PRINT:PRINT"APRES 200 Km PARCOURUS DANS CETTE VILLE..." 3080 PRINT:PRINT"LA FATIGUE VOUS A SURPRIS... VOUS FINISSEZ VOTRE VOY AGE..." 3090 PRINT:PRINT" A L ' H O P I T A L":GOTO 3150 3100 GOSUB 185:PRINT FNcu$(7,11);" R E T O U R D E P A R T "; FNfe$(22,0,11,90); 3110 PRINT"D O M M A G E !! VOUS VENEZ DE SORTIR DE LA VILLE" 3120 PRINT:PRINT"A L'ENDROIT OU VOUS ETES ENTRE... Vu votre sens de l'orientation...': PRINT:PRINT"laissez votre voiture et... VOYAGEZ PAR LE TRAIN...":PRINT:PRINT"Et sans vous tromper de direction... :GOTO 3150 3130 PRINT FNfe$(22,0,11,90);FNcu$(10,40);"PRESSEZ <ESPACE>";:GOSUB 1040:PRINT FNfe$(2,21,13,50);cls$:PRINT:PRINT" VOUS ETES EN PRISON":PRINT:PRINT" IL FAIT FROID MAIS COURAGE !!!" 3140 PRINT:PRINT:PRINT" DANS QUELQUES JOURS VOTRE FAMILLE":PRINT:PRINT" VIENDRA CERTAINEMENT VOUS VOIR !!" 3150 PRINT FNfe$(22,0,11,90);FNcu$(10,40);"PRESSEZ <ESPACE>";:GOSUB 1040:GOTO 3410 3160 PRINT CHR$(7);FNcu$(31,36);"PRESSEZ UNE TOUCHE";:WHILE INKEY$<>"":WEND 3170 WHILE INKEY$="":x=RND:WEND 3180 FOR i=1 TO 7:vi$(I)=STRING$(240,48):NEXT:f$="" 3190 PRINT cls$:PRINT FNcu$(l0,29);"UN INSTANT LA VILLE SE CONSTRUIT";CHR$ (7) 3200 A=80:E=80:D=1:P=20 3210 K=1:CS=1:BL=1:AG=0:CL=0:KM=0:RS=1 3220 FOR I=1 TO 80 3230 X=INT(RND*1600)+1:li=INT(x/240.1)+1:lo=x-(240*(li-1)):IF MID$(vi$(li),lo,1)<>"0" THEN 3230 3240 IF x=20 OR x=1580 THEN 3230 3250 MID$(vi$(li),lo,1)="3":NEXT i 3260 FOR I=1 TO 80 3270 X=INT(RND*1600)+1:li=INT(x/240.1)+1;lo=x-(240*(1i-1)):IF MID$(vi$(li),lo,1)<>"0" THEN 3270 3280 IF x=20 OR x=1580 THEN 3270 3290 MID$(vi$(li),lo,1)="4":NEXT i 3300 PRINT FNcu$(14,2l);"ENCORE UN PEU DE PATIENCE LE PETON N'EST PASSEC !!!";CHR$(7) 3310 FOR I=1 TO 90 3320 X=INT(RND*1600)+1:li=INT(x/240.1)+1:lo=x-(240*(li-1)):IF MID$(vi$(li),lo,1)<>"0" THEN 3320 3330 IF x=20 OR x=1580 THEN 3320 3340 MID$(vi$(li),lo,1)="2":NEXT i 3350 FOR I=1 TO 90 3360 X=INT(RND*1600)+1:li=INT(x/240.1)+1:lo=x-(240*(li-1)):IF MID$(vi$(li),lo,1)<>"0" THEN 3360 3370 IF x=20 OR x=1580 THEN 3360 3380 MID$(vi$(li),lo,1)="1":NEXT i 3390 X=20:Y=40 3400 PRINT CHR$(7):RETURN 3410 CALL gcls:PRINT FNfe$(0,0,32,90);cls$;cursoff$:GOTO 3450 3420 CALL gdraw(a%,b%):RETURN 3430 CALL gmove(a%,b%):RETURN 3450 a%=0:b%=0:CALL gorigin(a%,b%):CALL gmode(a%) 3460 a%=388:b%=210:GOSUB 3430:a%=536:GOSUB 3420:a%=561:GOSUB 3430:a%=716:GOSUB 3420:b%=46:GOSUB 3420:a%=561:GOSUB 3420:a%=536:GOSUB 3430:a%=388:GOSUB 3420:b%=210:GOSUB 3420 347O PRINT FNcu$(1,26);"* * V O T R E P A R C O U R S * *";FNcu$(4,65);"sortie";FNcu$(27,65);"entrée";FNcu$(4,1);"DISTANCE PARCOURUE ";USING"###";km:PRINT FNcu$(4,24);"kilomètres" 3472 PRINT FNcu$(7,5);"POSITIONNEMENT":PRINT:PRINT" E -> esences":PRINT:PRINT" G -> garages":PRINT:PRINT" B -> banques":PRINT:PRINT" P -> polices":PRINT:PRINT" T -> total" 3475 ff=500:GOSUB 3480:GOTO 3560 3480 a%=549:b%=44:GOSUB 3430:b%=50:GOSUB 3420 3490 a%=549:b%=50:FOR i=1 TO LEN(f$):j=VAL(MID$(f$,i,1)) 3500 ON j GOTO 3510,3520,3530,3540 3510 b%=B%+4:GOT0 3550 3520 a%=a%+8:GOTO 3550 3530 b%=b%-4:GOTO 3550 3540 a%=a%-8 3550 GOSBUB 3420:FOR t=1 to ff:NEXT t:NEXT i:a%=a%-1:GOSUB 3430:a%=a%+3:GOSUB 3420:b%=b%+1:GDSUB 3430:a%=a%-3:GOSUB 3420:RETURN 3560 PRINT FNfe$(24,0,11,46);cls$;"VOULEZ-VOUS UN POSITIONNEMENT ? (O/N)";GOSUB 1040 3570 IF q$<>"O"THEN RUN 3580 PRINT cls$;"LEQUEL ? ( E-G-B-P-T )":GOSUB 1040 3590 IF q$="E"THEN a$="2":GOTO 3650 3600 IF q$="G"THEN a$="1":GOTO 3650 3610 IF q$="B"THEN a$="3":GOTO 3650 3620 IF q$="P"THEN of="4":GOTO 3650 3622 IF q$="T"THEN of="5":GOTO 3650 3624 GOTO 3560 3630 IF a$="5"THEN 3635 3632 IF MIDs(vi$(j),d,1)=a$ THEN GOSUB 3642:RETURN ELSE RETURN 3635 IF MID$(vi$(j),d,1)<>"0" THEN GOSUB 3642:RETURN ELSE RETURN 3642 CALL gmove(a%,b%):a%=a%+3:CALL gdraw(a%,b%):RETURN 3650 PRINT cls$;Q$;FNfe$(6,49,20,40);cls$:ff=1:GOSUB 3480 3652 b%=205:FOR j=1 TO 7 3660 FOR i=1 TO 40:a%=387+(i*8):d=i:GOSUB 3630 3662 NEXT:b%=b%-4 3670 FOR i=1 TO 40:a%=387+(i*8):d=i+40:GOSUB 3630 3672 NEXT:b%=b%-4 3680 FOR i=1 TO 40:a%=387+(i*8):d=i+80:GOSUB 3630 3682 NEXT:b%=b%-4 3690 FOR i=1 TO 40:a%=387+(i*8):d=i+120:GOSUB 3630 3692 NEXT:b%=b%-4 3700 FOR i=1 TO 40:a%=387+(i*8):d=i+160:GOSUB 3630 3702 NEXT:b%=b%-4 3710 FOR i=1 TO 40:a%=387+(i*8):d=i+200:GOSUB 3630 3712 NEXT:b%=b%-4:NEXT j:GOTO 3560
- Listing 5 - CHARGE1.BAS
10 ' La ville infernale - chargeur 20 ' 30 ' CHARGEUR 1 - chargeur de RSX basic etendu 40 ' 50 MEMORY &HF3FF 60 DATA C5,D5,23,7E,32,B0,F4,23,7E,32,B1,F4,3E,80,32,B2,F4,3E,F4,32,B3,F4,11,B0,F4,0E,98,CD,05,00,11,80,F4,0E,13,CD,05,00,11,80,F4,0E,16,CD,05,00,E1,5E,23,56,E1,4E,23,46,D5,C5 70 DATA ED,53,00,F4,ED,43,02,F4,0E,1A,11,00,F4,CD,05,00,0E,15,11,80,F4,CD,05,00,E1,29,24,44,D1,C5,D5,0E,1A,CD,05,00,11,80,F4,0E,15,CD,05,00,D1,EB,11,80,00,19,EB,C1,10,E7,11,80,F4,0E,10,CD,05,00,C9 80 DATA D5,23,7E,32,B0,F4,23,7E,32,B1,F4,3E,80,32,B2,F4,3E,F4,32,B3,F4,11,B0,F4,0E,98,CD,05,00,11,80,F4,0E,0F,CD,05,00,FE,00,C0,11,00,F4,0E,1A,CD,05,00,11,80,F4,0E,14,CD,05,00 90 DATA E1,5E,23,56,2A,02,F4,E5,29,44,D5,78,FE,00,28,18,C5,D5,0E,lA,CD,05,00,11,80,F4,0E,14,CD,05,00,E1,11,80,00,19,EB,C1,10,E8,D5,C1,EB,D1,AF,ED,52,EB,E1,ED,52,C5,E5,11,00,F4 100 DATA 0E,1A,CD,05,00,11,80,F4,0E,14,CD,05,00,C1,21,00,F4,D1,ED,B0,11,80,F4,0E,10,CD,05,00,C9 110 FOR i=1 TO 119:READ n$:n=VAL("&h"+n$):POKE &HF4DF+i,n:NEXT 120 FOR i=1 TO 141:READ n$:n=VAL("&h"+n$):POKE &HF556+i,n:NEXT 130 DELETE 50-130
- Listing 6 - CHARGE2.BAS
10 ' La ville infernale - chargeur 2 20 ' 30 ' CHARGEUR 2 - a effacer apres lancement 40 ' 50 ' chargeur de RSX graphique 60 ' 70 ' ATTENTION ce chargeur ne fonctionne qu'apres 80 ' avoir lancé le RSX basic étend (vchargel) 90 ' 100 MEMORY &HF07F:bsave%=&HF4E0:nom$="VGRAPH.BIN" 110 DATA 07CF079406AA07DC07E609460A1C0A36 120 DATA 09B00B48092A0974053805E006A6054E 130 DATA 07170B420B5606B20B10062D097407F1 140 DATA 092E097E0A180AFE0A120805086A0886 150 DATA 0A7F098209EC0A61086F04FC04110553 160 DATA 0623 170 DATA CD5AFCC200AF2180F50630772310FCC9 180 DATA 7E3280F5C97E3D200AAF32C2F13C32BF 190 DATA F11808AF32BFF13C32C2F101020621BD 200 DATA F15EE5C5CD0500C1E12310F5C91B6300 210 DATA 1B62004E2346C5EB5E2356E1C9CDC3F1 220 DATA 2286F5ED5388F5C9ED5B82F51804ED5B 230 DATA 84F5732372C9CDC3F1E52A88F519EBC1 240 DATA 2A86F509C9CDE6F12282F5ED5384F5C9 250 DATA CD19F22282F5ED5384F5C9CD19F2CD18 260 DATA F5C9CDl9F2CD1EF5C9CDC3F1E52A84F5 270 DATA 19EBC12A82F509C9CDE6F10134F2CD5A 280 DATA FCE900C9E57B2F5FD5E5CB3FCB3FCB3F 290 DATA 5F21005A06082930011910FAEBE1CB3C 300 DATA CB1DCB3CCB1DCB3D190603CB25CB1410 310 DATA FA11305919D17BE60716005F19D17BE6 320 DATA 0720043E801807473E80CB3F10FC5ECD 330 DATA 84F277C9573A80F5FE00280BFE012803 340 DATA 7AABC97A2FA3C97AB3C9CDE6F1EBD5E5 350 DATA E52A82F5B7ED52E5C1FABCF22A82F5EB 360 DATA 2282F52A84F5E32284F51808210000B7 370 DATA ED42E5C1D12A84F5B7ED52EBF2E1F221 380 DATA 0000B7ED52E5D1B7ED42210100303118 390 DATA 0AD5E1B7ED4221FFFF301322B0F4C5E1 400 DATA AF32ABF332B8F33E2332C2F31826E52A 410 DATA 82F5092282F52A84F5B7ED522284F5E1 420 DATA 22B0F4C5E1EB3EEB32ABF332B8F33E13 430 DATA 32C2F3AF32B2F413ED53B4F423CDCCF3 440 DATA 22B6F4ED53B8F4ED4BB4F4C5D1CB3ACB 450 DATA 1BC5ED4BB6F42AB8F419EB2AB4F4B7ED 460 DATA 52300719EBB7ED52EB03D53AB2F4B728 470 DATA 1D2A82F5E5D1092282F5E5C10B2A84F5 480 DATA E5CDABF3D12AB0F4192284F5181D2A84 490 DATA F5E5D1092284F5E5C10BEBED5B82F5D5 500 DATA CDABF3D12AB0F4192282F5D1C10B78B1 510 DATA 209FE12284F5E12282F5C9EBE5D56960 520 DATA B7ED524D4403E1D1EBC5D5E5CD18F5E1 530 DATA D1C1130BAFB920F1B820EEC9C5EB0601 540 DATA 7CB720097ABD3805652E0006097B957A 550 DATA 9C3805042930F63F3F78444D2100003D 560 DATA 2003181729F5781F47791F4F7B917A98 570 DATA 3805577B915F2CF13D20E937C1C9 580 DATA F09AF09EF0A4F0A8F0AEF0CDF0E6F0F5 590 DATA Fl00F10BF112F119F128F12BF17FF19A 600 DATA F1A9F1CCF1F1F1F4F1F9F218F21BF220 610 DATA F22DF271F290 620 DIM test%(41):m=0:FOR i=1 TO 6:READ a$:lena=LEN(a$)/4 630 FOR j=1 TO lena:b=VAL("&h"+MID$(a$,4*(j-1)+1,4)):m=m+1:test%(m)=b:NEXT j: NEXT i 640 m=&HF080-1:FOR i=1 TO 41:READ a$:lena=LEN(a$)/2:tot=0 650 FOR j=1 TO lena:b=VAL("&h"+MID$(a$,2*j-1,2)):m=m+1:tot=tot+b:POKE m,b:NEXT j 660 IF tot<>test%(i) THEN PRINT" Erreur en ligne ",160+10*i," ou en ligne ",110+10*FIX((i-1)/8),HEX$(tot,4),HEX$(test%(i),4) 670 NEXT i 680 FOR i=1 TO 4:READ a$:lena=LEN(a$)/4 690 FOR j=1 TO lena:b=VAL("&h"+MID$(a$,4*j-3,4)) 700 POKE b+2,(PEEK(b+2)-1):NEXT j:NEXT i 710 dep%=&HF080:lon%=654:CALL brave%(nom$,dep%,lon%)
- Listing 7 - CHARGE3.BAS
10 ' La ville infernale - chargeur 3 20 ' 30 ' CHARGEUR 3 - a effacer aprés lancement 40 ' 50 'chargèur pour transfert de table de caractères 60' 70 OPEN "O",1,"VCODE.TXT" 80 FOR i=1 TO 11:READ a$:FOR j=1 TO 31 STEP 2:a=VAL("&H"+MIDS(a$,j,2)):PRINT #1,a:NEXT j,i 90 PRINT #1,16,238,201:CLOSE #1 100 DATA C395F4C3B2F4C3E7F4DD210100DD6E00 110 DATA DD660111570019113000010300EDB0C9 120 DATA CD7EF4019FF4F7E900C9DD2131F5DD5E 130 DATA 00DD56012100E8010008EDB0C9CD7EF4 140 DATA 01BCF4F7E900C9DD2131F5DD5E00DD56 150 DATA 01D5DDE1FD2100B8010008FD6600DD6E 160 DATA 00DD7400FD7500DD23FD230B3EFFB820 170 DATA EAC9CD7EF401F1F4F7E900C9DD2128F5 180 DATA DD6E002600292929EB2100B819E5DDE1 190 DATA FD2131F5FD6E00FD660119E5FDE10608 200 DATA DD6E00FD6600FD7500DD7400DD23FD23
- Listing 8 - CHARGE4.BAS
10 ' La ville infernale - chargeur 4 20 ' 30 ' ce chargeur est à effacer aprés utilisation 40 ' 50 'chargeur 4 - pour nouvelle table de caractères 60 ' 70 OPEN "O",1,"VJEU.CAR" 80 FOR i=1 TO 128:READ b$:PRINT #1,b$ 90 NEXT i:PRINT #1,"C3":CLOSE #1 100 DATA 000066DBDBDB66003C42819981423C00 110 DATA FEC6C0C0C0C0C0001038386C6CC6FE00 120 DATA 3C42A599A5423C000000002418240000 130 DATA 000018007E0018000000181800666600 140 DATA FE6C6C6C6C6C6C00181818187E3C1800 150 DATA FEC6603060C6FE00002060FEFE602000 160 DATA 00080CFEFE0C08000018187E18187E00 170 DATA 002466FFFF6624007CC6C6C6C66GEE00 180 DATA 000073DECCDE73007CC6C6FCC6C6F8C0 190 DATA 66663C6666663C003C603C6666663C00 200 DATA 00001E307C301E00386CC6FEC6603800 210 DATA 00C06030386CC60000006666667C6060 220 DATA 0000FE6C6C6C6C0000003C66667C6060 230 DATA 00007ED8D8D870000073CE1818180C00 240 DATA 03063C66663C60C000E63C18386CC700 250 DATA 03066666663C60C0000066C3DBDB7EO0 260 DATA 00000000000000001818181818001800 270 DATA 6C6C6C00000000006C6CFE6CFE6C6C00 280 DATA 183E583C1A7C180000C6CC183066C600 290 DATA 386C3876DCCC76001818180000000000 300 DATA 0C18303030180C0030180C0C0C183000 310 DATA 00663CFF3C6600000018187E18180000 320 DATA 00000000001818300000007E00000000 330 DATA 0000000000181800060C183060C08000 340 DATA 386CCED6E66C38001838181818187E00 350 DATA 3C66063C60667E003C66061C06663COO 360 DATA 1C3C6CCCFE0C1E007E62607C06663COO 370 DATA 3C66607C66663C007E66060C18181800 380 DATA 3C66663C66663C003C66663E06663C00 390 DATA 00001818001818000000181800181830 400 DATA 0C1830603018C00000007E007E000000 410 DATA 6030180C183060003C66660C18001800 420 DATA 300C780C7CCC7600183C66667E666600 430 DATA FC66667C6666FC003C66C0C0C0663C00 440 DATA F86C6666666CF800FE6268786862FE00 450 DATA FE6268786860F0003C66C0C0CE663E00 460 DATA 6666667E666666007E18181818187E00 470 DATA 1E0C0C0CCCCC7800E6666C786C66E600 480 DATA F06060606266FE00C6EEFEFED6C6C600 490 DATA C6E6F6DECEC6C6007CC6C6C6C6C67C00 500 DATA FC66667C6060F0007CC6C6C6DACC7600 510 DATA FC66667C6C66E6003C66603C06663C00 520 DATA 7E5A181818183C006666666666663C00 530 DATA 66666666663C1800C6C6C6D6FEEEC600 540 DATA C66C38386CC6C6006666663C18183C00 550 DATA FEC68C183266FE003844380000000000 560 DATA 00003C60603C00181E30386C3818F000 570 DATA 183C7E181818180000000000000000FF 580 DATA 30180C00000000000000780C7CCC7600 590 DATA E0607C666666DC0000003C6660663C00 600 DATA 1C0C7CCCCCCC760000003C667E603C00 610 DATA 1C3630783030780000003E66663E067C 620 DATA E0607C666666E6001800381818183C00 630 DATA 06000E060666663CE060666C786CE600 640 DATA 3818181818183C0000006CFED6D6C600 650 DATA 0000DC666666660000003C6666663C00 660 DATA 0000DC66667C60F0000076CCCC7C0C1E 670 DATA 0000DC766060F00000003C603C067C00 680 DATA 30307C3030361C000000666666663E00 690 DATA 00006666663C18000000C6D6D6FE6C00 700 DATA 0000C66C386CC60000006666663E067C 710 DATA 00007E4C18327E000C303C667E603C00 720 DATA 300C006666663C00300C3C667E603C00 730 DATA 0066000000000000FF030300000303FF 740 DATA FF0303000000000000000000000303FF 750 DATA FF000000000000FF183C7EFF18181800 760 DATA 000C0EFFFF0E0C00181818FF7E3C1800 770 DATA 003070FFFF7030002424272020272424 780 DATA 242424E4E42424242424240404FC0000 790 DATA 0000FF0000FF00002424E70000FF0000 800 DATA 0000FC0404E424242424E40404E42424 810 DATA 0000FF0000E724242424E70000E72424 820 DATA 00000018180000001818181818000000 830 DATA 0000001F1F0000001818181F0F000000 840 DATA 00000018181818181818181818181818 850 DATA 0000000F1F1818lS18lS181F1F181818 860 DATA 000000F8F8000000181818F8F0000000 870 DATA 000000FFFF000000181818FFFF000000 880 DATA 000000F0F818l818l818l8F8F8181818 890 DATA 000000FFFF181818181818FFFF181818 900 DATA 8080A090888482800101050911214101 910 DATA 0303030303030303C0C0C0C0C0C0C0C0 920 DATA 00000000000000FFFF00000000000000 930 DATA 00000000000000030000000000000000 940 DATA C0000000000000000300000000000000 950 DATA FF01010101010101FF08080808080808 960 DATA FF03030303030303FFC0C0C0C0C0C0C0 970 DATA 0808080808080808C0C0C0FF00000000 980 DATA 030303FF00000000C0C0C0C0C0C0C0FF 990 DATA 03030303030303FFFF80808080808080 1000 DATA FFFFFFFFFFFFFFFFFF18181818181818 1010 DATA 18181818181818FF8040A050A854AA55 1020 DATA 000102050A152A55AA55AA55AA55AA55 1030 DATA AA552A150A050201AA54A850A0408000 1040 DATA C0C0C0D0C8C4C2C00303030B13234303 1050 DATA 000000FF000000000102040810204080 1060 DATA 8040201008040201000000FF03030303 1070 DATA 000000FFC0C0C0C008O80808080808FF 1080 DATA 030307070F0F1F1F8080C0C0E0E0F0F0 1090 DATA 0103070FlF3F7FFF80C0E0F0F8FCFEFF 1100 DATA 18663C6666663C001866666666663C00 1110 DATA 300C183C667E6600300C7E607C607E00 1120 DATA 300C7E1818187E00300C3C6666663C00 1130 DATA 300C666666663C006600663C18181800 1140 DATA 6600183C667E660066007E607C607E00 1150 DATA 66007E1818187E0066003C6666663C00 1160 DATA 6600666666663C003C66C0C0663C0018 1170 DATA 3E78D8FED8D8DE001800183C667E6600 1180 DATA 7ACCCED6E666BC00324C0066766E6600 1190 DATA 324C003C667E6600324C3C6666663C00 1200 DATA C0300C30CC30C0000618601866180600 1210 DATA 060C7E187E3060000000324C007E0000 1220 DATA 0C30780C7CCC76000E18187018180E00 1230 DATA 0C30003818183C000C30003C66663C00 1240 DATA 0C30006666663E001866780C7CCC7600 1250 DATA 18663C667E603C001866003818183C00 1260 DATA 1866003C66663C001866006666663C00 1270 DATA 7CC6DEDEDEC07C007018180E18187000 1280 DATA 300C003818183C00300C003C66663C00 1290 DATA 181818181818180066006666663E067C 1300 DATA 6600780C7CCC760066003C667E603C00 1310 DATA 6600381818183C006600003C66663C00 1320 DATA 6600006666663E00C06030180C060200 1330 DATA 00006C1A7ED86E001800780C7CCC7600 1340 DATA 00007ACCD666BC00324C00DC66666600 1350 DATA 324C780C7CCC7600000000FF08080808 1360 DATA F8F8F0F0E0E0C0C01F1F0F0F07070303 1370 DATA FFFEFCF8F0E0C080FF7F3F1F0F070301
Controls
↑ = Follow direct ← = Turn left → = Turn right ↓ = Stop
Loading the program
1.- Insert the CP/M disc on side 2 2.- Write BASIC and wait for it to load 3.- Remove the CP/M disk and insert the disk containing La Villa Infernal 4.- Type run "Chargue1" and press the "ENTER" key
Extras
Download
- La Ville Infernal in spanish (game in dsk format, compressed with zip)
- La Ville Infernal in french (game in dsk format, compressed with zip)
Links
en/la_ville_infernale.txt · Last modified: 2022/06/30 11:06 by jevicac