Ready64 Forum
Commodore 64 => Programmazione, Grafica e Musica => Topic aperto da: Jotaro - 05 Novembre 2010, 23:35:57
-
Ciao a tutti,
ultimamente ho visto nel forum un paio di post riguardanti effetti molto belli scritti rimanendo dentro il limite dei 64 bytes.
Questo è il mio piccolo contributo: uno sprite che viene creato e mosso in 64 bytes.
Niente di speciale... Avevo solo voglia di vedere se dopo quasi vent'anni riuscivo ancora a scrivere qualche riga in assembly.
*=$820
SEI ; No interrupt
LDA #$01
STA $D015; Abilito il primo sprite
LDA #$A0
STA $07F8; Fisso il puntatore sprite a $2800
STA $D000; Setto la posizione X dello sprite
START LDA #$33; Abilito la lettura della CHAR ROM
STA $01
COPYLOOP
LDA $D1AF,X; Copio i caratteri 6 e 4 dalla CHAR ROM
STA $2800,Y; Al buffer dello sprite
LDA $D19F,X
STA $2801,Y
INY
INY
INY
INX
CPX #$08
BNE COPYLOOP
LDA #$37; Spengo la lettura alla CHAR rom
STA $01
LOOP LDA $D012; Loop di wait basato sul raster
CMP #$7F
BNE LOOP
MOD INC $D001; Modifico la posizione Y dello sprite
BNE LOOP
LDA MOD; Ad ogni passaggio cambio la direzione
EOR #32; Y dello sprite modificando l'opcode
STA MOD; della riga "MOD" da INC a DEC e viceversa
BNE LOOP; C64 Forever
-
Molto carino, complimenti!
Direi che il tuo asm 6510 é tuttaltro che arrugginito...!
Attendiamo altri pezzi di codice!
NB:
... c'é spazio per ottimizzare e farci stare anche la "C"!
-
Ciao Freshness, grazie mille per i complimenti (complimenti ancor di più apprezzati perché provengono da un programmatore estremamente capace e preparato).
Il tempo è sempre tiranno (purtroppo), se avrò qualche istante da dedicare a qualche altro effetto non mancherò di postare immediatamente (la sfida dei 64 bytes è molto stimolante!).