[zxspectrum] Re: Bandito 2020

  • From: Massimo Raffaele <massimo.raffaele@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sat, 4 Apr 2020 21:56:53 +0200

Il giorno sab 4 apr 2020 alle ore 21:50 Paolo Ferraris <pieffe8@xxxxxxxxx>
ha scritto:

On Sat, Apr 4, 2020 at 12:33 PM Massimo Raffaele <
massimo.raffaele@xxxxxxxxx> wrote:

Il giorno sab 4 apr 2020 alle ore 20:22 Paolo Ferraris <pieffe8@xxxxxxxxx>
ha scritto:

Come gia` detto, :-)

"Il POKE sostituisce l'unico pezzo di codice L/M utile alla fine del
loader BASIC. Senza di questo alcuni simboli speciali come la pistola non
sono mostrati correttamente."


Sì ma non capisco... perché sostituisce quel codice? E' del tutto
inutile? (il codice)
Se il codice viene caricato si sballano i simboli speciali?
Quindi il Poke inserisce un Jump?


Ricapitoliamo

Il programma BASIC originale, dopo aver eseguito un CLEAR XXXXX e un LOAD
"" CODE, fa un RANDOMIZE USR 23XXX (numero preciso irrilevante), che fa
varie cose. Le piu` rillevanti sono:
1) Carica un blocco headerless all'indirizzo 49152)
2) Punta il set di caratteri all'indizzo 30976.
3) Salta all'indirizzo 32000 (il gioco parte)

Abbiamo determinato che il passo 1 e` inutile visto che non c'e` nessun
altro blocco da caricare. Anzi, a meno autorewind gli emulatori si bloccano.
Il passo 2 puo` essere sostituito dal POKE in questione.

Per cui l'intero caricamento puo` essere sostituito dalla sequente linea
BASIC:

CLEAR XXXXX: LOAD "" CODE: POKE 23606,XXX: RANDOMIZE USR 32000

Che e` esattamente quello che il codice di Alessandro fa.


Aaaaah, ora capisco!!!!
Grazie, spiegazione fantastica!
Max

Other related posts: