[zxspectrum] bin2rem

  • From: "BODRATO Stefano" <Stefano.Bodrato@xxxxxxxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Mon, 25 Oct 2004 09:47:38 +0200

In risposta alle varie perplessità:
bin2rem semplicemente crea un programma BASIC con la fatidica linea REM 
contenente un file binario.


Può servire a diversi scopi, ed è per questo che non ci sono autorun o 
chiamate USR.

1) Includere un programma (rilocabile o meno) nello stesso blocco del BASIC:

1 REM !"£$!"£$!"£  (codice macchina)
2 RANDOMIZE USR (5+PEEK 23635+256*PEEK 23636)

Nel caso di programmi non rilocabili (compreso quanto generato con z88dk) 
utilizzare la locazione 23760 (la linea 2 può a questo punto essere 
semplificata con "RANDOMIZE USR 23760"), ma bisogna evitare di utilizzare 
l'interface 1 o altre interfacce disco e di caricare il programma senza averla 
mai attivata (un NEW prima del LOAD non guasta).
"zcc" di Z88DK dovrà essere lanciato con l'opzione "-zorg=23760"


2) Incorporare delle routine rilocabili in un programma BASIC

10 DEF FN l()=USR (PEEK 23637+256*PEEK 23638+5)
20 ...  <il programma continua>
30 LET x=FN l()
40 REM !"£$!"£$!"£  (routine 1)
50 ....  <il programma continua>
30 LET x=FN l()
40 REM !$%£"£$!"£$!"£  (routine 2)
60 ...

In questo caso ovviamente la linea REM dovrà essere rinumerata e aggiunta al 
BASIC con un MERGE.
Questo trucchetto l'avevamo inventato per il nostro "DOS in BASIC"... forte 
vero ?   Viene eseguito il codice macchina allocato nella REM della prossima 
linea di programma.

Other related posts: