Newsgroup: it.comp.software.emulatori
Titolo: Domande di programmazione Spectrum etc...

 da fare? L'ho visto solo sul C64!!!
Perche' il VIC-II del C=64 ha l'hardware scrolling di 8 pixel sia in x
che in y, lo spectrum... ummm.. hhhmmmm.. ha lo z80 e basta.
-- 
-=[]=---iAN CooG/TWT+HokutoForce---=[]=-
Line noise? What fh=.hElL is.LinS nfise?

 che in y, lo spectrum... ummm.. hhhmmmm.. ha lo z80 e basta.
Per rendersi conto di come sia facile ottenere questo effetto su C64 bastano
le seguenti 5 righe BASIC:
10 X=INT(RND(0)*8)
20 Y=INT(RND(0)*8)
30 POKE53265,(PEEK(53265)AND252)ORX
40 POKE53270,(PEEK(53270)AND252)ORY
50 GOTO10
Riferimenti su:
http://www.funet.fi/pub/cbm/maps/C64.MemoryMap
--
Retrocensitevi! Su:
http://www.retrocensimento.bbk.com
http://www.retrocensimento.cjb.net


Non ricordo quale fosse la sintassi corretta per lo spectrum per accedere
direttamente a locazioni di memoria, ma anche lì era possibile con lo stesso
numero di righe, ma qual tipo di effetti preferivo realizzarli in assembly,
lo z-80 usa un set di istruzioni superiore in tutto e per tutto a quello
degli altri processori di pari fascia ed età.

 pari fascia ed età.
Il set di istruzioni non c'entra una cippa! Quelle 5 linee basic
interagiscono con il VIC-II, e NON con la CPU, e non fa alcuna differenza
"realizzare in assembly" oppure no.
Se lo preferisci in assembly, potrebbe fare + o - cosi' (la funzione RND e'
simulata con un LDA su $A2, che dipende dal timer)
.C:c000   A5 A2      LDA $A2
.C:c002   29 07      AND #$07
.C:c004   8D 00 20   STA $2000
.C:c007   A5 A2      LDA $A2
.C:c009   29 07      AND #$07
.C:c00b   8D 01 20   STA $2001
.C:c00e   AD 11 D0   LDA $D011
.C:c011   29 FC      AND #$FC
.C:c013   0D 00 20   ORA $2000
.C:c016   8D 11 D0   STA $D011
.C:c019   AD 16 D0   LDA $D016
.C:c01c   29 FC      AND #$FC
.C:c01e   0D 01 20   ORA $2001
.C:c021   8D 16 D0   STA $D016
.C:c024   4C 00 C0   JMP $C000



Come ti dicevo prima ho messo da parte già da un po' lo spectrum e ti
aggiungo che da qualche anno anche lo z-80,  ora lavoro su piattaforme x86,
pic e processori embedded dedicati ad usi specifici, e molte cose le
realizzo ancora in assembly.
Tornando invece al mio post, dicevo solo che tra le altre cose facevo anche
quello in assembly e che secondo me le potenzialità dello z-80 erano
fenomenali per l'epoca.
Ora, non credo sia necessario precisare che in un programa realizzato
interamente in assembly 5 righe in basic non ci azzeccano niente, ergo: la
scelta dell'assembly era una necessità più che una scelta.
Ciao e alla prossima.

 superiore in tutto e per tutto a quello degli altri processori di
<no flame intended>
Non e' "superiore", ci sono solo piu' istruzioni e registri.
Peccato che impieghino piu' cicli macchina che sul 65xx e quindi quello
che fa uno spectrum a 3.5MHz lo fa anche un C64 a 0.98 Mhz
</no flame intended>
-- 
-=[]=---iAN CooG/HokutoForce+TWT---=[]=-
Documentation - The worst part of programming.


Il paragone mi sembra esagerato, ma tieni presente che lo z80 può lavorare
su parole di 16 bit, il che non è poco per un processore dell'epoca, e da
ciò che ho potuto constatare ha avuto vita molto più lunga del 65xx,
soprattutto per la sua flessibilità.

 ergo: la scelta dell'assembly era una necessità più che una scelta.
Non e' questo il discorso: ho anche postato un piccolo programma assembly
che fa la stessa cosa. Sullo Spectrum non sarebbe stato di sicuro un
*piccolo* programma, dal momento che su C64 e' sufficiente scrivere in una
locazione mentre su Spectrum no.
Tutto qui.
Alla prossima.
