User Tools

Site Tools


en:la_ville_infernale

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

  • Program listing in high-circulation magazines of the time

la_ville_infernal_programa_01.jpg la_ville_infernal_programa_02.jpg la_ville_infernal_programa_03.jpg la_ville_infernal_programa_04.jpg

la_ville_infernal_programa_05.jpg la_ville_infernal_programa_06.jpg la_ville_infernal_programa_07.jpg la_ville_infernal_programa_08.jpg

la_ville_infernal_programa_09.jpg la_ville_infernal_programa_10.jpg la_ville_infernal_programa_11.jpg la_ville_infernal_programa_12.jpg

Download

en/la_ville_infernale.txt · Last modified: 2022/06/30 12:06 by jevicac