[zxspectrum] Re: Lo Z80 colpisce ancora...

  • From: "Stefano Bodrato" <stefano_bodrato@xxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sat, 4 Jun 2011 10:21:14 +0200

Chiunque abbia uno Spectrum classico (48K o Plus) può provare, occorre spegnere e riaccendere fisicamente lo ZX e >battere: RANDOMIZE USR 46578 .. il computer dovrebbe mettersi mette in uno stato simile a quando viene dato il LOAD "".
in realtà si tratta di una routine save con uscita audio tipo load ...

Ok, ok.. non è importante cosa fa ma il fatto che succede qualcosa di diverso.. nella locazione 46578 dopo il reset c'è 'zero', NOP, niente ! Se la chiamata USR la si fa alla locazione precedente o successiva (dove naturalmente c'è sempre 'zero'), non si ottiene lo stesso effetto, mentre sarebbe logico aspettarsi che lo Z80, passati tutti i NOP, arrivi in fondo alla memoria, dove c'è la stack, e si comporti sempre nello stesso modo.

Il punto è che spostandosi in quella precisa locazione con il comando USR *solo* subito dopo un reset il BASIC fa qualcosa di diverso, forse salta per sbaglio direttamente in ROM, oppure marchia lo stack in modo differente. Supponendo che il problema stia nell'inizializzazione dei registri dello Z80 mi sembra ragionevole pensare che la Disciple inserisca del codice extra al momento del reset che cambia lo stato iniziale dei registri.


Other related posts: