Buonasera cari Sinclairisti, e ben ritrovati per svelare il mistero del
caricatore del Biturbo III =)
Effettivamente in quel pezzettino di BASIC ci sono un po' di trucchetti
sporchi e la linea non e' assolutamente in forma standard; nella fattispecie:
1- La lunghezza dichiarata nell'intestazione della linea BASIC (90 bytes)
non e' quella effettiva.
2- Dopo il comando RANDOMIZE USR (l'ultimo) manca completamente il
marcatore di fine riga (0x0D) e invece inizia immediatamente la routine
L/M. Manca anche il marcatore di fine programma (0x80). Dal punto di vista
dell'interprete BASIC, il programma sarebbe corrotto e un qualsiasi
tentativo di editing (anche il list) manderebbe in crash il sistema operativo.
3- Il "56" che compare nell'espressione del comando di lancio RANDOMIZE USR
(PEEK 23635+256*PEEK 23636+56), e' in realta' un 91 offuscato per
confondere le acque. Lo testimonia il valore FP memorizzato nella linea
(CHR$ 14), che e' l'unico effettivamente considerato dall'interprete BASIC
ai fini dell'esecuzione del programma.
Non essendo standard la struttura della linea BASIC, la versione attuale di
DamTape non puo' recuperare il programma in maniera corretta; non esistendo
una regola piu' generale che consenta a DamTape di discriminare la
struttura di una linea BASIC cosi' manomessa (punto 1), l'unica soluzione
sarebbe di prevedere il Biturbo III come caso speciale a parte.
E bravo il nostro GBMax! :)
Luca