Ho avuto la necessità di decodificare il valore di una variabile BASIC
quando ho studiato il programma 1K ZX Chess; ho trovato tutte le
informazioni necessarie nel capitolo 27 del manuale dello spectrum.
Nella fattispecie, se vai alla pagina:
https://gzuliani.bitbucket.io/sinclair/scacchi-1k.html
e cerchi la
stringa "valore di X", trovi il procedimento che ho seguito.
Ciao,
Gianfranco
----Messaggio originale----
Da: e.m.giordano@emagsoftware.
it
Data: 12-nov-2017 15.55
A: "The ZX Spectrum Mailing-List"
<zxspectrum@xxxxxxxxxxxxx>
Ogg: [zxspectrum] ZXBas e numeri
Quando
iniziai a scrivere ZXBas cercai qualche informazione su come
tradurre
un numero nella rappresentazione usata dal Basic dello Spectrum
ma non
trovai niente di chiaro. Quindi decisi di usare i VAL(), nel
senso che
nel sorgente tradotto trovate, ad esempio:
VAL( "12.34" )
invece di
12.34
Questa è una buona idea anche perché fa risparmiare memoria. Il
problema
però è che rallenta anche un po' l'esecuzione e in certi casi
questo è
inaccettabile. Quindi vorrei metterci uno switch per poter
scegliere se
usare la normale rappresentazione oppure il VAL(). Ma non
trovando
descritto in modo chiaro il formato usato nello Spectrum non
sono in
grado di farlo.
Qualcuno sa dove trovare una descrizione
chiara di come viene
memorizzato un numero floating-point nei 5 bytes
che vengono usati per
rappresentarlo nel Basic dello Spectrum?
EMG
--
http://www.emagsoftware.ithttp://www.emagsoftware.it/emgmusichttp://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg