
|
[zxspectrum]
||
[Date Prev]
[10-2007 Date Index]
[Date Next]
||
[Thread Prev]
[10-2007 Thread Index]
[Thread Next]
[zxspectrum] Re: Rivista RUN
- From: Giovanni Caristi <caristi@xxxxxxx>
- To: zxspectrum@xxxxxxxxxxxxx
- Date: Tue, 9 Oct 2007 09:17:53 +0200
Il giorno 09/ott/07, alle ore 00:22, Cesare Falco ha scritto:
Esempio classico i loader dei programmi protetti, che mostravano uno
striminzito listatino basic, che faceva delle delle poke ad indirizzi
misteriosamente sballati; se si provava ad editare il listato, non
funzionava più! (forse addirittura a listarlo, non ricordo)
no, solo editando le righe
Sì, perché portando la riga giù, all'atto del
Il tutto perché lo Spectrum faceva "caching", memorizzando i valori
numerici in dei campi nascosti dopo i byte che rappresentavano le
cifre, per accedervi più velocemente.
più propriamente, non sono campi nascosti... il Sinclari Basic è un
linguaggio interpretato e i numeri vengono memorizzati già in forma
binaria per velocizzare l'esecuzione. Normalmente il numero
memorizzato
in forma binaria coincide con quello digitato e mostrato dal comando
LIST, ma bastano un paio di poke ben assestate per cambiare le
carte in
tavola...
Era esattamente quello che volevo dire :) Probabilmente mi sono
espresso male.
Si tratta di alcuni byte posti dopo la rappresentazione ASCII del
numero, nella copia del listato in memoria, e che, ovviamene, non
compaiono a video, perché il comando LIST mostra solo la
rappresentazione ASCII.
Dunque era possibile creare delle linee che mostravano dei numeri
mentre in realtà ne usavano altri!
esattamente! un trucco usatissimo, insieme a quello di modificare il
numero di riga per renderla non editabile.
Vero! :)
E aggiungere caratteri non
ascii in coda al listato (sempre a mezzo di poke o simili) impediva
anch
e l'esecuzione del comando MERGE (che come noto veniva utilizzato per
impedire l'autorun di un file di tipo basic.
Rivero! :) Che spasso ;)
Editando la linea veniva rieffettuato il caching, distruggendo
l'informazione nascosta!
semplicemente il numero memorizzato veniva ricalcolato come se tu
avessi
nuovamente inserito il numero
Anche qui, volevo dire esattamente questo :) Evidentemente ieri sera
non ero molto lucido.
Giovanni
|

|