[zxspectrum] Autodistruzione programma BASIC

  • From: Stefano Bodrato <stefano_bodrato@xxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Mon, 18 Jun 2007 08:41:08 +0200

> E' possibile fare in modo che un programma si autodistrugga appena terminat=> 
> o=20> il suo compito... rilasciando tutte le risorse impegnate?> Ho visto 
> farlo al mio editor assembler: appena partito f=E0 come un NEW ma => lo=20> 
> schermo ritorna subito alle impostazioni che avevo dato prima del LOAD e la=> 
> =20> parte BASIC svanisce nel nulla. Lo f=E0 in assembler ovviamente... e 
> sto=20> cercando di capirci qualcosa con il disassemblatore.> Non basta un 
> semplice NEW: non voglio perdere le mie impostazioni dello=20> schermo 
> (BORDER, PAPER e INK).> > Suggerite prego ;)> Pino
Un modo abbastanza elegante è questo...
Intanto devi conoscere il primo e l'ultimo numero di linea BASIC.
 
La routine è la seguente:
 
              ld hl,<prima linea programma>
              call $169e                    ; LINE-ADDR
              push hl
              ld hl,<ultima linea programma>
              call $169e                    ; LINE-ADDR
              pop de
              call $19e5                    ; RECLAIM-1 ,   cancella memoria 
BASIC da DE ad HL
              ret
 
Le variabili non vengono toccate, e puoi cancellare selettivamente solo alcune 
parti del programma (ad esempio puoi lasciare una REM con un messaggio).
 
_________________________________________________________________
Sai cosa è successo oggi?
http://notizie.msn.it

Other related posts: