[zxspectrum] Re: Aggiornamento ZXAsm 1.12

  • From: Luca Alimandi <luca.alimandi@xxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Thu, 04 Jun 2015 19:12:02 +0200

Il 04/06/2015 10:00, Enrico Maria Giordano ha scritto:



Il 04/06/2015 07:22, Luca Alimandi ha scritto:

Non so se posso fare qualche richiesta. vedi tu se pensi possano
essere modifiche utili:

1) le direttive DEFB, DEFW, DEFM e DEFS potrebbero essere
equivalenti a DB, DW, DM e DS (si digitano un po' più
rapidamente...)

Potrei farlo molto facilmente ma vorrei capire perché introdurre questa
variante. Certamente il fatto che tu l'abbia usata non giustifica la sua
introduzione, altrimenti poi dovrei aggiungere qualsiasi altra variante
fantasiosa che mi venga proposta, non ti pare?

2) la separazione tra vari elementi nelle direttive di cui sopra
viene fatta con il punto e virgola ";".

No, non ci sono elementi in quelle direttive. Che cosa intendi? E il
punto e virgola viene sempre considerato l'inizio di un commento (fino a
fine riga) a meno che non sia tra le virgolette.

Si potrebbe usare anche la virgola "," (sarebbe un po' più veloce da
digitare...)

Non ho capito.

3) spesso all'interno di un DEFM devo inserire caratteri mediante il
loro codice ASCII (ad es.: DEFM "Vado a capo";13).

DEFM "Vado a capo"
DEFB 13

Ma nella stessa riga sembra che non posso inserire caratteri e byte.

Infatti no, non si può.

Non si può fare in modo che vengano automaticamente trattati come
caratteri anche se sono inseriti in forma numerica?

Mi sembra che l'esempio sopra sia sufficiente, no?

4) in alcuni codici ho usato l'istruzione LD rr,(IX), che in realtà
andrebbe scritta LD rr,(IX+0). Non si può fare in modo che se dopo
IX e IY non c'è specificato un valore questo venga interpretato come
+0 ?

Forse sì, ma non è più pulito il sorgente se viene specificato sempre anche il displacement?

5) c'è qualcosa che non quadra forse con le istruzioni di shift e
rotazione dei bit. In particolare con RLD e RRD. Potresti
ricontrollare che non vi siano errori nella compilazione?

RLD viene tradotto come 237 111 e mi sembra giusto. RRD viene tradotto come 237 103 e mi sembra giusto anche questo. Puoi farmi un esempio minimale di un codice che sospetti che non venga compilato correttamente?

EMG

--
EMAG Software Homepage: http://www.emagsoftware.it
The EMG Music page: http://www.emagsoftware.it/emgmusic
The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: http://www.emagsoftware.it/tbosg


Mi spiego con un esempio.
Quando occorre inserire un gran numero consecutivo di definizioni di bytes o words, la possibilità di inserire più elementi in una riga è molto comodo, non solo perché occorre digitare meno: per ogni byte dovrei fare una riga con la direttiva DEFB, mentre ponendo in una riga più elementi posso scrivere:

DEFB 10,21,33,106,78,14,0,0,15,1,65,78

Invece di;

DEFB 10
DEFB 21
DEFB 33
DEFB 106
DEFB 78
DEFB 14
DEFB 0
DEFB 0
DEFB 15
DEFB 1
DEFB 65
DEFB 78

Prova a cronometrare quanto ci metti a digitare nei dei casi e capirai cosa intendo!

Inoltre il sorgente è più facilmente controllabile; ad esempio se una sequenza di 8 byte rappresenta la mappatura di una carattere, vedere gli 8 byte in una stessa riga, oltre a raggrupparli visivamente, ne facilità il controllo (forse sarà perché sono un po' dislessico, ma a me sembra che sia così!).

Inoltre il listato si accorcia di parecchio e non devi scrollare in continuazione su e giù (è lo stesso motivo per cui c'è una bella differenza tra avere righe da 32 e da 64 caratteri...)

Comunque non lo devi fare se non sei d'accordo. Era solo un suggerimento... Grazie lo stesso! :-)

--

|_ /-\


Other related posts: