Bruce – Commodore VIC20 – Basic V2

LIST – Aprile 1985 – Numero 04-1985

Prosegue senza sosta la nostra avventura alla (ri)scoperta dei listati che hanno fatto la storia dell’informatica, in collaborazione con i nostri lettori. Questa volta ci ha contattati Nello Galiano (iNG73) offrendoci di pubblicare sulla rubrica RetroLiPS il listato che ha digitato ed adattato.

Nello, che era giá stato ospite di queste pagine, ci ha inoltre fornito una descrizione del suo operato e le istruzioni per eseguire questo gioco.

Titolo: Bruce
Piattaforma: Commodore VIC20
Linguaggio: Basic V2
Versione originale: A. Farinelli e S. Cervellera
Pubblicazione: LIST 04-1985
Anno: 1985
Trascrizione listato ed adattamento: Nello Galliano (iNG73)
Anno: 2023
Download: bruce.d81

Istruzioni

Aiuta il tuo amico BRUCE a raccogliere gli oggetti contenuti nelle varie stanze che dovrá poi portare alla sua donzella.

Attenzione peró a non tornare dalla donzella a mani vuote, a non urtare contro le mine, contro gli ostacoli, contro il muro e fai anche molta attenzione ai terribili guardiani degli oggetti.
Premi il tasto FIRE.

Ma sentiamo cosa ci racconta Nello.
Ho trascritto il listato di BRUCE, un gioco per Commodore Vic20 espanso a 16k, da una scansione del numero di aprile 1985 (avevo 12 anni allora!) della rivista LIST.

Il programma è composto da una prima parte, il loader, e da una seconda parte con il gioco vero e proprio. È stato piuttosto impegnativo trascrivere i caratteri speciali delle schermate (5) di gioco, soprattutto dare le corrette spaziature: vedi la figura seguente che mostra una parte del listato dove vengono stampate le schermate!

Ho fatto un lungo lavoro di debug. Ho cercato di modificare il listato originale il meno possibile.
Solo alcuni piccoli interventi sono stati necessari:

  • sostituzione della variabile pi con ip perché pi veniva interpretato come pi-greco
  • modifica di una linea di codice nella routine di lettura del joystick
  • modifica della routine di caricamento da cassetta a disco

Non ho trovato in rete il listato già digitato da altri e ho anche provato a contattare gli autori, ahimè senza successo finora. Il gioco è molto ben fatto. Ci sono almeno 3 diverse musichette in game, effetti sonori e ben cinque livelli di gioco.

Riporto qui di seguito l’introduzione e la descrizione del listato come da rivista LIST:

Il gioco è stato ideato per il VIC 20 con l’aggiunta dell’espansione di memoria da 16K e per l’uso del joystick. Il programma presentato comprende due parti: la prima, oltre a contenere una breve presentazione ed il caricamento automatico della seconda, serve a creare, per mezzo di  uno spostamento dell’inizio BASIC, uno spazio in cui verranno allocati 69 caratteri in HIRES e una routine in linguaggio macchina per la musichetta di sottofondo. Il programma vero e proprio è nella seconda parte.

Scopo del gioco è quello di guidare il piccolo omino nella raccolta di vari oggetti da portare poi alla propria donzella. Occhio a non urtare i muri, agli ostacoli, ai mostri, alle mine e, … a non tornare dalla donzella se non dopo aver raccolto tutti gli oggetti contenuti nella scena. Superato il quinto livello la conclusione del gioco riserva una dolce scenetta con musica d’accompagnamento.

STRUTTURA della prima parte
10-25    presentazione
30-35    spostamento BASIC da 4608 a 6670
40-         caricamento seconda parte

STRUTTURA della seconda parte
16-70    assegnazione dei valori ai vettori
75-85    caricamento caratteri e routine in L.M.
90-198 inizializzazione
200-212 routine primo quadro
300-314 routine secondo quadro
400-414 routine terzo quadro
500-514 routine quarto quadro
600-616 routine quinto quadro
700-750 scenetta finale
800-840 fine gioco
900-905 controllo musica in L.M.
1000-1020 disegno primo quadro
1100-1118 disegno secondo quadro
1200-1218 disegno terzo quadro
1300-1318 disegno quarto quadro
1400-1418 disegno quinto quadro
1500-1510 esplosione
1600-1620 prelevamento oggetti
1700-1720 completamento quadro
1800-1805 musica a seguito dell’urto contro i muri e ostacoli
1900-1950 musica finale
3000-3035 istruzioni
5000-5012 controllo joystick
5100-5130 controllo primo quadro
5200-5230 controllo secondo quadro
5300-5330 controllo terzo quadro
5400-5430 controllo quarto quadro
5500-5530 controllo quinto quadro
9000-9010 discesa schermo
9100-9110 salita schermo
9500-9510 controllo e stampa punti e record.

ISTRUZIONI PER L’USO

Aprire VICE in emulazione VIC20 (eseguire xvic.exe  dalla cartella bin del VICE, per es: C:\GTK3VICE-3.5-win64\GTK3VICE-3.5-win64\bin)

In Vice, menu settings, impostare il modello VIC20 PAL e l’espansione di memoria 16KiB

Riavviare l’emulatore o effettuare l’hard reset da VICE per rendere effettive le modifiche.

Riavviato il VICE in emulazione VIC20 a 16K, dal menu File, collegare l’unità disco Image drive #8 e caricare l’immagine disco “brucedsk.d81”

A questo punto, dal prompt del BASIC, digitare l’istruzione LOAD ”BRUCE”,8 per caricare la prima parte del gioco.

Attendere il caricamento del loader; una volta caricata la prima parte del gioco, digitare RUN

Il primo programma, una volta avviato, mostrerà il titolo del gioco e farà partire automaticamente il caricamento della seconda parte, ovvero il gioco vero e proprio.

Una volta caricato il secondo programma (BRUCE2.prg) digitare RUN e il gioco è fatto.

Chi volesse provare subito il gioco, puó scaricarlo da qui: bruce.d81

Nota bene: Il listato é stato recuperato dalla rivista correggendo manualmente i key code per essere utilizzati all’interno del CBM prg Studio.

Attenzione – Ci siamo resi conto che nel listato i caratteri ‘>’ e ‘<‘ potrebbero venir sostituiti dai rispettivi encoding html ‘&gt’ e ‘&lt’. Nel caso, sostituite questi valori direttamente su CBM prg Studio.

Listato: Bruce – Commodore VIC20 – Basic V2


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
0 rem*** Trascritto e adattato da NelloGaliano iNG73 09-2023 ***
1 rem*****************
2 rem*   farinelli   *
3 rem*      &        *
4 rem*  cervellera   *
5 rem*via  valdossola*
6 rem*n. 28 cap 40134*
7 rem*    bologna    *
8 rem*               *
9 rem*****************
10 print"{clear}":poke36865,150:poke36879,42:gosub100
15 forp=150to38step-1:poke36865,p:poke36878,int(p/10)
20 poke36877,281-p:poke36875,261-p:nextp:forr=0to200:nextr
25 fort=0to126:poke36877,253-t:poke36875,233-t:nextt
30 poke43,14:poke44,26:poke6669,0:poke45,16:poke46,26
35 poke47,16:poke48,26:poke49,16:poke50,26
40 print"load "CHR$(34)"bruce2"CHR$(34)",8":POKE198,4:FORT=631TO633:POKET,145:NEXT:POKE634,13:rem print"loading part 2":poke198,7:poke631,76:poke632,207:poke633,13:poke634,82:poke635,213:poke636,13
50 end
100 print"{home}{down}{reverse on}{blue}{sh pound}{space*3}{sh pound}{space*3}{sh pound} {sh pound} {sh pound}{space*3}{sh pound}{space*3}{right}{sh pound}"
105 print"{up}{reverse on}{cyan}{space*3}{blue} {cyan}{space*3}{blue} {cyan} {blue} {cyan} {blue} {cyan}{space*3}{blue}{reverse off}{sh pound}{reverse on}{cyan}{space*3}{reverse off}{blue}{sh pound}{right}{reverse on}{cyan*2} "
110 print"{up}{reverse on} {blue} {cyan} {blue} {reverse on}{cyan} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {right*2}{cyan} {blue} {right*3}{cyan} "
120 print"{up}{reverse on}  {blue}  {cyan}  {blue}  {cyan} {blue} {cyan} {blue} {cyan} {blue} {right*2}{cyan}  {blue}{reverse off}{sh pound}{reverse on}{right*2}{cyan} "
125 print"{up}{reverse on}   {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {right*2}{cyan} {blue} {right*3}{cyan} "
130 print"{up}{reverse on} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue} {cyan} {blue}   {cyan} {blue}   {right}{sh pound}"
135 print"{up}{reverse on}{cyan}   {reverse off}{blue}{sh pound}{reverse on}{cyan} {blue}{reverse off}{sh pound}{reverse on}{cyan} {reverse off}{blue}{sh pound}{reverse on}{cyan}   {reverse off}{blue}{sh pound}{reverse on}{cyan}   {reverse off}{blue}{sh pound}{reverse on}{cyan}   {reverse off}{blue}{sh pound}{right}{reverse on}{cyan} "
140 print"{yellow}{down}{right*10}by"
145 print"farinelli & cervellera{white}"
150 return

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
0 rem*****************
1 rem*     bruce     *
2 rem*      by       *
3 rem* farinelli a.  *
4 rem*      &        *
5 rem* cervellera s. *
6 rem*via  valdossola*
7 rem*n. 28 cap 40134*
8 rem*    bologna    *
9 rem*               *
10 rem****************
11 rem *** Trascritto e adattato da NelloGaliano iNG73, 09-2023 ***
12 rem wait37151,64
13 hm=0:re=0:pu=0:poke36879,110:print"{clear}{home}{down*6}{yellow}"
14 print"U{C*20}IB{space*20}HB  attendere prego!  H";
15 print"B{space*20}HJ{F*20}K"
16 dimaa(7),a0(7),a1(3),a2(3),a3(3),a4(7),a5(7),a6(7),a7(7),a8(2),a9(2),bb(2),b0(2)
18 dimb1(2),b2(2),b3(2),b4(2),b5(2),b6(2),b7(2),vv%(12),cc(7),c0(7),c1(5),c2(46)
20 forw=0to7:readv:aa(w)=v:next:forw=0to7:readv:a0(w)=v:next
25 forw=0to3:readv:a1(w)=v:next:forw=0to3:readv:a2(w)=v:next
30 forw=0to3:readv:a3(w)=v:next:forw=0to7:readv:a4(w)=v:next
35 forw=0to7:readv:a5(w)=v:next:forw=0to7:readv:a6(w)=v:next
40 forw=0to7:readv:a7(w)=v:next:forw=0to2:readv:a8(w)=v:next
45 forw=0to2:readv:a9(w)=v:next:forw=0to2:readv:bb(w)=v:next
50 forw=0to2:readv:b0(w)=v:next:forw=0to2:readv:b1(w)=v:next
55 forw=0to2:readv:b2(w)=v:next:forw=0to2:readv:b3(w)=v:next
60 forw=0to2:readv:b4(w)=v:next:forw=0to2:readv:b5(w)=v:next
65 forw=0to2:readv:b6(w)=v:next:forw=0to2:readv:b7(w)=v:next
70 forw=0to7:readv:cc(w)=v:next:forw=0to7:readv:c0(w)=v:next
75 forw=5672to5887:pokew,peek(w+27096):next:forw=5120to5671:readv:pokew,v:next
80 forw=0to5:readv:c1(w)=v:next:forw=0to46:readv:c2(w)=v:next
85 forw=6500to6669:readv:pokew,v:next:forw=1to12:readv:vv%(w)=v:next
90 deffna(s)=vv%(asc(mid$(a$,s,1))-64):deffnb(s)=val(mid$(a$,s,1))
100 data4537,4538,4539,4540,4541,4542,4543,4544,4527,4528,4529,4530,4531,4532,4533,4534
102 data4342,4364,4386,4408,4222,4245,4268,4291,4530,4531,4532,4533,4164,4186,4208,4209
104 data4210,4188,4166,4165,4431,4453,4475,4476,4477,4455,4433,4432,4268,4290,4312,4313
106 data4314,4292,4270,4269,4553,4554,4555,4533,4511,4510,4509,4531,4275,4254,4233,4494
108 data4495,4496,4391,4370,4349,4290,4269,4248,4486,4465,4444,4230,4208,4186,4539,4517
110 data4495,4570,4549,4528,4509,4510,4511,4348,4349,4350,4202,4181,4160
112 data225,215,215,219,215,223,225,0,120,60,60,120,240,120,120,5
114 data24,60,152,126,25,24,40,68,24,60,25,126,152,24,20,34,60,66,165,129,102,60,36,24
116 data60,90,126,36,24,60,24,102,129,90,60,90,126,36,36,66,60,126,219,147,255,255,255
118 data85,102,102,0,255,102,111,102,68,102,102,66,126,102,102,66,102
119 data24,60,84,254,60,24,8,8,24,24,129
120 data126,24,60,126,36,24,60,24,60,90,24,36,66,0,0,0,16,0,0,0,0,0,65,34,0,165,0,36,66
122 data16,130,84,0,0,84,130,16,0,0,4,31,47,255,255,66,56,68,56,16,16,24,16,24,12,16,108
124 data254,254,254,124,56,102,60,24,60,102,110,102,60,255,0,170,85,170,86,36,60,124,68
126 data68,68,124,16,84,42,255,213,171,213,171,23,171,255,252,132,48,72,204,252,2,1,0
128 data16,16,16,56,124,124,56,0,64,32,24,24,4,2,0,8,28,54,28,8,16,32,32,255,133,135,133
130 data135,133,255,66,126,66,126,66,126,86,126,36,255,137,255,231,195,231,255,66,0,124
132 data56,16,124,92,108,124,81,138,84,52,255,255,126,60,1,2,4,8,16,224,96,160,102,60,24
134 data24,24,60,126,255,0,0,0,0,0,0,0,0,24,44,122,110,60,24,24,60,0,0,0,0,0,0,0,0,16,9
136 data35,23,28,28,28,28,60,66,129,153,153,129,66,60,119,119,119,0,238,238,238,0
138 data255,34,34,34,255,68,68,68,255,157,247,127,235,63,238,255,0,0,238,168,236
140 data200,174,0,0,0,238,138,138,138,238,0,0,0,236,170,234,202,174,0,0,0,29,21,29,17,17
142 data0,0,0,85,92,84,84,212,0,0,0,208,144,144,144,144,0,0,0,77,73,77,73,108,0,0,0
144 data90,82,90,210,155,0,56,108,198,198,198,108,56,0,24,120,24,24,24,24,126,0,124,198
146 data6,12,56,96,254,0,124,198,6,28,6,198,124,0,28,60,116,230,254,12,12,0,254,192,252
148 data6,6,198,124,0,60,96,192,252,198,198,124,0,254,198,12,24,48,96,96,0,124,198,198
150 data124,198,198,124,0,124,198,198,126,6,12,120,0,0,234,142,234,42,234,0,0,0,233,170
151 data236,170,169,0,0,3,3,3,1,1,3,3,3,184,184,184,16,16,184,248,184,3,3,7,15,3,5,9,5
152 data184,184,248,248,16,16,16,176,60,126,189,24,24,126,189,189,60,60,60,24,24,126,189
153 data189,60,60,126,255,24,24,24,60,60,60,60,60,24,24,24,60,54,127,127,127,62,28,8,0
154 data215,225,231,235,231,235,231,229,231,229,231,223,228,225,183219,207219,219000
155 data195,207,219,159223,207223,217,207,217,223,183225,207225,219000,207,231,229,231
156 data229,231,223,228,225,183219,207219,219000,195,207,219,159223,207223,217000,207
158 data225,223,183219,207219,219000
160 data25,197,203,208,0,208,0,197,0,197,203,208,0,208,0,197,0,197,203,208,0,208,0,211
162 data0,208,208,203,203,203,203,0,0,193,197,203,0,203,0,193,0,193,197,203,0,203,0,193
164 data0,193,197,216,0,216,0,211,211,203,203,197,197,197,197,0,0,50,1,165,197,201,39
166 data208,28,165,197,201,39,240,250,169,61,141,67,3,173,166,25,201,0,240,5,169,0,76
168 data198,25,169,1,141,166,25,173,166,25,201,0,208,6,169,0,141,11,144,96,173,67,3,201
170 data63,208,8,169,0,141,67,3,76,232,25,238,67,3,169,101,133,1,169,25,133,2,172,67,3
172 data177,1,141,11,144,96,32,167,25,76,14,26,165,162,201,9,176,1,96,233,8,133,162,76
174 data201,25,0,215,219,223,225,228,231,232,234,235,237,239,240
190 v=36878:v1=v-1:v2=v-2:v3=v-3:v4=v-4:ip=4238:pd=4194:x=ip:y=33792:s=1
192 te=0:jj=37154:j0=37152:j1=37137:j2=369:j3=365:j4=357:j5=245:j6=127:j7=255:lm=6655
194 mk=5170:nk=5194:su=36881
196 ifhm=0thengosub9000:gosub3000:pu=0:vi=3
198 pokev,15:pokev-9,205
200 x=ip:te=0:poke6663,8:poke6658,8:print"{clear}":pokev+1,30:gosub1000:gosub9100:gosub900
202 fort=0to7:syslm:r=0:pokex,r:pokeaa(t)+y,6:pokea0(t)+y,0:pokeaa(t),5:pokea0(t),5
204 syslm:gosub5000:syslm:ifpeek(x)<>32thengosub5100:gosub9500
206 syslm:r=1:pokex,r:pokex+y,0:syslm:ifx=aa(t)orx=a0(t)thengosub1500:gosub1000
208 syslm:ifte=2andx=pdthengosub1700:gosub9000:goto300
210 syslm:pokeaa(t),32:pokea0(t),32:next
212 goto202
300 x=ip:te=0:poke6663,7:poke6658,7:print"{clear}":pokev+1,8:gosub1100:gosub9100:gosub900
302 fort=0to3:syslm:r=0:pokex,r:pokea1(t)+y,7:pokea2(t)+y,7:pokea3(t)+y,7
304 syslm:pokea1(t),4:pokea2(t),4:pokea3(t),4:syslm:gosub5000:syslm
306 ifpeek(x)<>32thengosub5200:gosub9500
308 syslm:r=1:pokex,r:pokex+y,1:syslm:ifx=a1(t)orx=a2(t)orx=a3(t)thengosub1500:gosub1100
310 syslm:ifte=3andx=pdthengosub1700:gosub9000:goto400
312 syslm:pokea1(t),32:pokea2(t),32:pokea3(t),32:next
314 goto302
400 x=ip:te=0:poke6663,6:poke6658,6:print"{clear}":pokev+1,204:gosub1200:gosub9100:gosub900
402 fort=0to7:syslm:r=0:pokex,r:pokea4(t)+y,0:pokea5(t)+y,0:pokea6(t)+y,0:pokea7(t)+y,0
404 syslm:pokea4(t),2:pokea5(t),2:pokea6(t),2:pokea7(t),2:syslm:gosub5000:syslm
406 ifpeek(x)<>32thengosub5300:gosub9500
408 syslm:r=1:pokex,r:pokex+y,0:syslm
409 ifx=a4(t)orx=a5(t)orx=a6(t)orx=a7(t)thengosub1500:gosub1200
410 syslm:ifte=4andx=pdthengosub1700:gosub9000:goto500
412 syslm:pokea4(t),32:pokea5(t),32:pokea6(t),32:pokea7(t),32:next
414 goto402
500 x=ip:te=0:poke6663,5:poke6658,5:print"{clear}":pokev+1,159:gosub1300:gosub9100:gosub900
502 fort=0to2:syslm:r=0:pokex,r:pokea8(t)+y,6:pokea9(t)+y,6:pokebb(t)+y,6:pokeb0(t)+y,6
504 pokeb1(t)+y,6:syslm:pokea8(t),8:pokea9(t),8:pokebb(t),8:pokeb0(t),8:pokeb1(t),8
506 syslm:gosub5000:syslm:ifpeek(x)<>32thengosub5400:gosub9500
508 syslm:r=1:pokex,r:pokex+y,0:syslm
509 ifx=a8(t)orx=a9(t)orx=bb(t)orx=b0(t)orx=b1(t)thengosub1500:gosub1300
510 syslm:ifte=5andx=pdthengosub1700:gosub9000:goto600
512 syslm:pokea8(t),32:pokea9(t),32:pokebb(t),32:pokeb0(t),32:pokeb1(t),32:next
514 goto502
600 x=ip:te=0:poke6663,4:poke6658,4:print"{clear}":pokev+1,171:gosub1400:gosub9100:gosub900
602 fort=0to2:syslm:r=0:pokex,r:pokeb2(t)+y,6:pokeb3(t)+y,6:pokeb4(t)+y,6:syslm
604 pokeb5(t)+y,6:pokeb6(t)+y,6:pokeb7(t)+y,6:syslm:pokeb2(t),3:pokeb3(t),3:pokeb4(t),3
606 pokeb5(t),3:pokeb6(t),3:pokeb7(t),3:syslm:gosub5000:syslm
608 ifpeek(x)<>32thengosub5500:gosub9500
610 syslm:r=1:pokex,r:pokex+y,0:syslm
611 ifx=b2(t)orx=b3(t)orx=b4(t)orx=b5(t)orx=b6(t)orx=b7(t)thengosub1500:gosub1400
612 syslm:ifte=6andx=pdthengosub1700:gosub1900:gosub9000:goto700
614 syslm:pokeb2(t),32:pokeb3(t),32:pokeb4(t),32:pokeb5(t),32:pokeb6(t),32:syslm
616 pokeb7(t),32:next:goto602
700 pokev+1,30:print"{clear}":vi=vi+1
705 print"{home}{red}{D*22}";:forz=0to20:print"D                    D";:next
710 print"{D*21}{home}";:poke4601,68:poke4601+y,2:gosub9100
715 poke646,int(rnd(0)*6)+2:print"{home}{down*5}{right*10}:;{down}{left*2}<={down}{left*2}>?"
720 forz=250to150step-20:pokev4,z:pokev2,z:next:pokev4,0:pokev2,0
725 forz=1to150:nextz
730 print"{home}{down*5}{right*10}  {down}{left*2}{sh asterisk}A{down}{left}{left}BC"
735 forz=1to160:nextz
740 print"{home}{down*12}{right*3}D  HTRUQNRJSYND":print"{home}{down*15}{right*4}D UWJRN  K1 D"
741 rem**tasti shift + d htruqnrjsynd       d uwjrn k1 d*****
745 ifpeek(197)<>39then715
750 pu=pu+300:gosub9000:hm=1:goto190
800 pokev-9,192:hm=0:pokev+1,8:print"{clear}"
805 print"{home}{white}UCCCCCCCCCCCCCCCCCCCCI";:forz=0to20:print"B{space*20}H";:next
810 print"J{sh asterisk*20}{home}";:poke4601,75:poke4601+y,1:gosub9100
814 poke646,int(rnd(0)*6)+1
815 print"{home}{down*3}{right*3}bruce e' triste!{right*3}{down*3}{right}non sei stato capace{right*2}di aiutarlo nel suo{right*3}";
820 print"intento di sposare  {right*2}la dolce donzella."
825 print"{down*2}{right*3}vuoi riprovarci?":print"{down}{right*7}({reverse on}s{reverse off} o {reverse on}n{reverse off})";:u$=""
830 getu$:ifu$="s"goto190
835 ifu$="n"thenpokev+1,26:print"{clear}{home}{black}";:end
840 goto814
900 poke253,218:poke254,31:poke835,0:poke162,0
905 return
1000 print"{home}{black}+,-      ()*       j  {red}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   %%%%%%%%%%";
1002 print"%%%%%%%%%{black}kik{red}%%%%%%%%%%%%%%%%%%%   %%%%%%%%%%%%%%%%%%%   %%%%%%%%%%";
1004 print"%%%%%%%%%   %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%";
1006 print"%%%   {black}k{blue} $   $ {black}k{blue}  ${red}%%%%%%%{blue} $     $       {red}%%%%%%%{blue}   $    {black}k   {blue}${red}  ";
1008 print"%%%%%%%{black}k  {red}%%%%  %%%   %%%%%%%{blue} $ {red}%%%%%%%%% {black}k{red} %%%%%   {black}k{blue}  $ {red}%%%%{blue}    ";
1010 print"$   {red}%%        %%%% {black}k{blue}    ${red} %%  {blue}$  {black}k{red}  %%%%        %%{black}k      k{red}%%%%{blue}  $";
1012 print"$ {black}k{red}  %%{black}     k{red}  %%%%{blue}${red}       %% {black}k{blue} $$   {red}%%%%";
1014 print"        %%        %%%% {black}n  k{red}   %%{blue}$  $   {black}o{red}%%%%  {black}k   {blue}$ {red}%";
1016 print"%%%%%%%%%{black}./ 1{red}%%%%%%%%{black}";:poke4601,37:poke4601+y,2:og=10:gosub9500
1020 return
1100 print"{home}{white}+,-      ()*       j  {purple}{'*31}   ''''     '";
1102 print"{'*9}{yellow}kik{purple}'''' {yellow}k k{purple} ''''''''''   ''''{red} $ {yellow}r{purple} ''''''''''' '''''    '";
1104 print"{'*9}   {'*4}   {'*12} {yellow}k{purple}    '     ''''''''''  {red}$ {yellow}k {purple}' {yellow}k   {purple}'";
1106 print"{'*9}           {yellow}k{purple}''   {yellow}k{purple}  ''''''{yellow}k k{purple} ''''''  {yellow}k   {purple}'{red}  $          ";
1108 print"{purple}''      '    {yellow}k{red} $    $${purple}''  {red}${purple}   '{yellow}k k     k    {purple}'' {yellow}s{red}${yellow} k {purple}'   '''''''";
1110 print" ''''  {red}${purple}   ' {yellow}k{purple} ''''      ''   {yellow}k   {red}$  {purple}'''' {red}$ {yellow}k  {purple}''  {yellow}k   k k {purple}''''";
1112 print" {red}$    {purple}''   {yellow}k      {purple}''''    {yellow}k {purple}'' {yellow}k{red}$   {purple}''''''''{yellow}k    k{purple}''  {red}$   {purple}";
1114 print"'''''''' {white}t {red}$  {purple}''  {red}$   {purple}''''''''   {red}$  {purple}''''''''''{white}./ 2{purple}''''''''{white}";
1116 poke4601,39:poke4601+y,4:og=20:gosub9500
1118 return
1200 print"{home}{blue}+,-      ()*       j  {purple}{'*23}     '''   ''''     ''";
1202 print"     '''{blue}kik{purple}''''{blue}k  k {purple}''  {black}p {blue}k{purple}'''   '''' {red}$   {purple}''{blue}k    {purple}'''' '''''";
1204 print"     {purple}''   {red}$ {purple}'''' ''''' {blue}k k {purple}''{blue}k    {purple}'''' '''''     ''    {blue}k       ";
1206 print"{purple}'     {black}q{purple} '' '    {blue}k  k  {purple}' {blue}k {purple}'   '' ' {blue}k {red}$  {purple}'''     '''''''''''' {red}${purple}";
1208 print"'''  {blue}k      {purple}''    {red}$  ${purple}'''''''{blue}k  k {purple}''  {blue}k   k  {purple}'' {blue}k    {red}$  {purple}''{red}$  {purple}";
1210 print"'''''  '   {blue}k  k  {purple}''   {blue}k   {purple}' {blue}k{purple}'{blue}k {purple}''''''''' {blue}k   {black}u {purple}'  '  '  {red}$  {blue}k";
1212 print"{purple}'' {red}$     {purple}'  ' {blue}k{purple}' {blue}k{red}$$  {purple}'' {red}$     {purple}'' '         '' {red}$   $ {purple}' ''{blue}k   ";
1214 print"  {black}v  {purple}''    {blue}k k{purple}'  '  '{blue}k    {red}${purple}''  '    '''''''   {blue}k  {purple}'" ;
1216 print"'''''''''{blue}./ 3{purple}''''''''{blue}";:poke4601,39:poke4601+y,4:og=30:gosub9500
1218 return
1300 print"{home}{blue}+,-      ()*       j  {red}{'*23}{black}k    {red}%{black}k{red}%   %%%%%  {blue}$ {red}%";
1302 print"%   {black}k k {red}%{black}kik{red}%%%%  {blue}$$ {red}%% {black}k{blue}$    {red}%   %%{black}k k    {red}%% %%%%% %% %%%     ";
1304 print"{black}k {red}%% {black}k{blue}$  {red}% {black}k{red}%   % {black}k{red}%    %%     %    {black}k    {red}%    %%{black}k   {black}w{red}% %%%%%";
1306 print" {blue}$ {red}%{black}k k{black}x{red}%%%%%%%% %{black}y  {red}%   %%%%%%%%%%%   % % %%{black}k   k  {red}%%     {black}k {red}";
1308 print"%%% %%%%{blue}$   ${red}%%%%%%%  %   %     {blue}$  {red}%%{black}z   {red}% {black}k{red}%   %{black}k {red}%%%%%%%%{blue}$$ ";
1310 print"{red}%  %%  %  %{black}[ {black}k{blue}$ {red}%% {blue}$  {red}% {blue}$ {red}%{black}k {red}% {black}k{red}%     {red}%% {blue}$ {black}k{red}%   %  %  %";
1312 print"   {black}k {red}%%{blue}$$  {red}%%{black}k {red}% {black}k{red}%{black}k {red}%    {black}k{red}%%    %%  %  %  %{black}k    {red}%% {blue}$$    ";
1314 print"{black}k{red}%% % {black}k{red}% {black}k k {red}%% {blue}$ {black}k {blue}$         $$$$ {red}%%     %%%%%%%%%      %";
1316 print"%%%%%%%%%{blue}./ 4{red}%%%%%%%%{blue}";:poke4601,37:poke4601+y,2:og=40:gosub9500
1318 return
1400 print"{home}{black}+,-      ()*       j  {yellow}%%%%%%%%%%%%%%%%%%%%%%%  {white}k{yellow}%   %   %  %  {white}k  {yellow}%";
1402 print"% {white}k {yellow}%%{white}k {yellow}%{black}kik{yellow}% {white}k{yellow}%{black}{pound}    {yellow}%%    %  %   %{white}k {yellow}% {white}k   {yellow}%%  {white}k {yellow}%{white}k{yellow}%%%";
1404 print" %%% %%%%% %%   {black}]{yellow}% {white}k {yellow}% %     {white}k{yellow}%  %% {red}$ ${yellow}%%% {white}k  {red}$  $$ {yellow}%  %% %%%%";
1406 print" %       {white}k{red}$ {yellow}%  %%    {white}k {yellow}% %%%%%  {red}${white}k{yellow}%  %%  %  {red}${yellow}% % {black}^ {yellow}%       %%";
1408 print" {red}${yellow}%{red}$  {yellow}% %   % {red}$ {white}k  k{yellow}%%  % {red}$ {yellow}% %{white}k k{yellow}%  {red}${yellow}% {white}k {yellow}%%{white}k {yellow}%     %% {white}k";
1410 print"{yellow}% {white}k {yellow}%{white}k  {yellow}%%% %%%%% %{white}k  {yellow}%   %  {white}k{yellow}%%   %    % {white}k {yellow}%%% % {white}k {yellow}%%{white}k {red}${yellow}%";
1412 print"{red}$ {white}k {yellow}%%      %%%%%%   %    %%%{white}k k      {yellow}%%   %%% {white}k{yellow}%%%%%%%{white}k   k{yellow}%% {white}k";
1414 print"  {black}{arrow left}{yellow}%  %{yellow}%{white}k   {yellow}%     %%    {white}k{yellow}%{white}k       {yellow}% {white}k k {yellow}%%  {red}$  {yellow}%%%%%%  {black}!{yellow}%";
1416 print"  {black}#  {yellow}%%%%%%%%{black}./ 5{yellow}%%%%%%%%%%{black}";:poke4601,37:poke4601+y,7:og=50:gosub9500
1418 return
1500 pokev3,0:forz=240to128step-1:pokex,12:pokev1,z:pokex,13:next:pokev1,0
1505 x=ip:te=0:vi=vi-1:ifvi=0thengosub9000:goto800
1510 gosub900:return
1600 pokev3,0:forz=0to5:pokev2,c1(z):fori=0to55:next:ifz=3thenfori=1to80:nexti,z
1610 next:fori=0to70:next:pokev2,0:te=te+1:pu=pu+og
1620 gosub900:return
1700 pokev3,0:forz=0to46:print"{home}{down*2}{right*9}   {left*3}{down*2}   ";:pokenk,0:pokenk+2,153
1705 pokenk+5,24:pokev2,c2(z)-1000*int(c2(z)/1000):pokev3,int(c2(z)/1000)
1710 print"{home}{down*2}{right*9}{red}D D{left*3}{down*2}D D";:pokenk,129:pokenk+2,24:pokenk+5,36:rem**str$=shift+d
1715 forzz=1to80:nextzz,z:pokev2,0:pokev3,0:pu=pu+100
1720 gosub900:return
1800 pokev3,0:forz=0to7:pokev2,cc(z):fortt=1toc0(z):next:pokev2,0:next
1805 x=ip:te=0:gosub900:return
1900 pokev3,0:s=1:t=0:pokev,13:print"{home}{down*3}{right*10}{black}f";
1905 a$="b8l8c8k7h1f8j4i4g8g4e4i8d6c1d1a8e6d1e1d8f4d2f2d8i2d2f2i2b8l8c8k7h1f8j4i4g8g4e4"
1910 a$=a$+"i8d6c1d1a8f4e2f2i8e8i4e4d4d4@1@1d4d4c1c1"
1915 ii=fna(s):jj=fna(s+2):mm=fnb(s+1):nn=fnb(s+3):s=s+4:k=0
1920 ifs=115thenpokev3,0:pokev2,0:goto1940
1925 pokemk,0:pokemk+1,255:pokemk+5,34:forz=1tonn:pokev2,jj:pokev3,ii
1926 forzz=1to50:nextzz,z
1930 pokemk,153:pokemk+1,102:pokemk+5,68:k=k+nn:ifk=mmthent=.2+(ii=0orjj=0)*0.2:goto1915
1935 jj=fn a(s):nn=fn b(s+1):s=s+2:t=.3:goto1925
1940 print"{home}{down*2}{right*9}{red}DDD{down}{left*3}D{black}g{red}D{down}{left*3}DDD";:forz=0to200:pokev+1,251:pokev+1,252
1941 rem** str$ =shift+d*
1945 pokev+1,253:pokev+1,254:pokev+1,255:next
1950 return
3000 pokev+1,26:pokev-9,194:print"{clear}{black}"
3005 print"{home}     B R U C E  !     {down}Aiuta il tuo amico    BRUCE a raccogliere   gli";
3010 print" oggetti contenuti nelle varie stanze chedovra' poi portare al-la sua ";
3015 print"donzella.      Attenzione pero' a nontornare dalla donzellaa mani vuote,";
3020 print" a non   urtare contro le mine,contro gli ostacoli,  contro il muro e fai  ";
3025 print"anche molta attenzioneai terribili guardianidegli oggetti!"
3030 print"{down*3}PREMI IL TASTO FIRE.";:gosub9100:wait37137,32,32:gosub9000
3035 return
5000 pokejj,j6:j=peek(j1)+peek(j0)-1:pokex,32: rem aggiunto -1 per joystick su emulatore
5002 ifj=j2thenx=x-22
5004 ifj=j3thenx=x+22
5006 ifj=j4thenx=x-1
5008 ifj=j5thenx=x+1
5010 pokejj,j7
5012 return
5100 ifpeek(x)=37orpeek(x)=38orpeek(x)=36thengosub1800:gosub1000:return
5110 ifpeek(x)=14orpeek(x)=15thengosub1600
5120 ifpeek(x)=11orpeek(x)=5orpeek(x)=9thengosub1500:gosub1000
5130 return
5200 ifpeek(x)=36orpeek(x)=39thengosub1800:gosub1100:return
5210 ifpeek(x)=18orpeek(x)=19orpeek(x)=20thengosub1600
5220 ifpeek(x)=9orpeek(x)=4orpeek(x)=11thengosub1500:gosub1100
5230 return
5300 ifpeek(x)=36orpeek(x)=39thengosub1800:gosub1200:return
5310 ifpeek(x)=16orpeek(x)=17orpeek(x)=21orpeek(x)=22thengosub1600
5320 ifpeek(x)=9orpeek(x)=11orpeek(x)=2thengosub1500:gosub1200
5330 return
5400 ifpeek(x)=36orpeek(x)=37thengosub1800:gosub1300:return
5410 ifpeek(x)=23orpeek(x)=24orpeek(x)=25orpeek(x)=26orpeek(x)=27thengosub1600
5420 ifpeek(x)=9orpeek(x)=11orpeek(x)=8thengosub1500:gosub1300
5430 return
5500 ifpeek(x)=36orpeek(x)=37thengosub1800:gosub1400:return
5510 ifpeek(x)=28orpeek(x)=29orpeek(x)=30thengosub1600
5515 ifpeek(x)=31orpeek(x)=33orpeek(x)=35thengosub1600
5520 ifpeek(x)=9orpeek(x)=11orpeek(x)=3thengosub1500:gosub1400
5530 return
9000 pokev,15
9005 forz=38to155:pokesu,z:pokev4,z+100:pokev3,z+100:next:pokev4,0:pokev3,0
9010 return
9100 pokev,15
9105 forz=155to38step-1:pokesu,z:pokev4,z+100:pokev3,z+100:next:pokev4,0:pokev3,0
9110 return
9500 ifpu>rethenre=pu
9505 print"{home}{right*3}"pu"{home}{right*12}"re"{home}{right*20}"vi
9510 return

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.