[zxspectrum] Re: Loader curioso

  • From: Paolo Ferraris <pieffe8@xxxxxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Wed, 14 Jan 2004 08:41:45 -0600

Salvando un blocco di memoria contenente le variabili di sistema ed il programma BASIC, il programma continua ad essere eseguito dall'istruzione successiva al SAVE. Nel caso proposto, il programma BASIC poteva essere qualcosa del genere:

 10 SAVE "GAME" CODE 23552, <abbastanza da coprire tutto il programma>
 20 RANDOMIZE USR <dopo il REM della prossima riga>
 30 REM <turbo load routine>

Chiaramente la routine di caricamento si deve rilocare nella memoria alta altrimenti non funge.

Stefano wrote:

In questi giorni mi è capitato di parlare di loader con Stefano Bodrato che
mi ha spiegato chiaramente come funzionavano i famosi biturbo delle
cassettine delle edicole e discutendo di cio' mi è venuto in mente che
quand'ero piccino avevo il gioco originale Halls of the things il quale
anzichè caricarsi col load normale andava caricato con un load "" code .
Sembra quindi che non abbia alcun blocco basic. Nonostante cio' terminato il
primo blocchetto di load code parte subito un turbo senza alcuna riga sul
border e terminato lo "Screen$" il gioco è caricato. La cosa che non
riuscivo a capire e che Stefano mi ha spiegato e' che dopo il load code non
c'e' alcuna istruzione basic che faccia eseguire tale codice macchina ad un
indirizzo ben preciso come potrebbe essere la classica chiamata Randomize
usr <indirizzo iniziale l/m> ma in realtà tale codice contenete il turbo
viene eseguita. Se ho ben capito questo è dovuto al fatto che la locazione
del load code va a "interferire" col sinclair basic o qualcosa del genere..
e che quindi è come se la chiamata USR <indirizzo> esistesse davvero.








Other related posts: