ajattelin heti laittaa koodin pätkän ihailtavaksi
ilmottakaa jos meni väärälle alueella ;-)
kehittelin tämän joskus kun ei mennyt jakeluun tuo keskeytys perusteinen versio
sanoivat että se oli yksin kertainen...
no itse en koskaan hogannut miten se toimi tämän keksimisen jälkeen
en sitten edes alkanut kaivamaan coodeista sitä toista tapaa
ohjelma saattaa sisältää aivo pieruja koska kirjoitin sen ulkomuistista
samainen coodi löytyy myös Zamzaran alku ruudusta kaksinkertaisella väri scrollilla (alirutiini)
Color Scroll:
*= $1000
start sei ; keskeytykset pois häiritsemästä
ldx line ; mihin kohtaa näyttöä halutaan väri raita
new lda color,x ; luetaan vastaavasta paikasta väri akkuun
loop cpx $d012 ; verrataan rasteri laskuriin
bne loop ; jos oikea rasteria ei löydy luetaan uudelleen
sta $d021 ; siirretään akun arvo tausta väri rekisteriin
inx ; lisätään x muuttujaa +1
cpx line_end ; verrataan onko jo näytetty kaikki 16kpl
bne new ; jos ei kierros jatkuu
jsr scroll ; viimeinen väri asetettu aika siirtää värien järjestystä alirutiinissa
jmp start ; aloitetaan uudelleen
line = #$40 ; aloitus rasteri ja värien paikan alin tavu
line_end = #$40+16 ; värien määrä listassa 16kpl
Scroll
ldy #0
lda color ;luetaan listan ensimmäinen väri talteen
pha ;pinoon
loop3 lda color+1,y
sta color,y
iny
cpy #16
bne loop3
pla ;palautetaan pinosta ensimmäinen väri
sta color+16 ;viimeiseksi
rts
; tärkeää ettei haku osoite mene ylimmän tavun ylitse muuten ajoitus sekoaa
; ja badline ehtii väliin !
*=$1140
; Värit
color .byte 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15