[zxspectrum] Re: R: Visita di Luca Alimandi

  • From: Luca Alimandi <luca.alimandi@xxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Thu, 7 Jan 2016 01:26:07 +0100

Il 07/01/2016 00:24, Enrico Maria Giordano ha scritto:



Il 07/01/2016 00:23, Luca Alimandi ha scritto:

Allora, ho provato ZXASM 1.22 e sembra funzionare bene. La nuova
funzione è comodissima! Grazie!

Di niente, ottimo!

E' stato difficile? Hai dovuto veramente stravolgere il programma per
inserire questa nuova sintassi?

No, per fortuna ho trovato il modo di implementarla con modifiche minime.

Ci sono delle limitazioni da tenere presente?

Che io sappia no, ma provalo bene e fammi sapere se trovi anomalie o limitazioni.

EMG


Ho fatto un po' di test...

Ho notato che se alla fine della lista di operandi metto una serie di virgole senza i relativi valori, vengono semplicemente ignorate.
Non è sbagliato, ma sarebbe utile che venisse fatto notare: potrebbe essere una dimenticanza di chi scrive il codice.
Invece mettendole all'inizio della riga, l'analizzatore sintattico va in loop senza segnalare niente.

Inoltre ho visto che, a fronte di una linea di codice del tipo:
*DEFB    0,0,"0"*
viene restituito l'errore:
*program.ASM: Unterminated string at line 946
*invece dovrebbe essere correttamente interpretato con due valori 0 seguiti da un valore 48 (codice ascii del carattere "0")...*

*Invece la linea di codice seguente:
*DEFB    0,0,'0'*
restituisce l'errore:
*program.ASM:**Undefined label '0' at line 946*

Analogamente la linea di codice:
*DEFB    0,0,'z'*
e questo anche se la label z è stata inizializzata con:
*z    equ    0*

Invece funziona correttamente la linea di codice:
**DEFB    0,0,z*
*sempre avendo prima inizializzato la label z.

Spero siano indicazioni utili al debug del programma!



P.S. Non vorrei chiedere troppo (anche se penso che ormai la strada è più facile, avendo già già risolto la parte più rognosa), ma mi chiedevo se una funzione simile si potrebbe realizzare anche per una serie di word anziché di byte, ossia con la direttiva:

*DEFW w1,w2,w3*
dove w1, w2 e w3 sono label o valori a due byte (cioè valori a 16 bit). Fattibile?

--

|_ /-\

Other related posts: