color scroll

Aloittaja virgo, kesäkuu 20, 2011, 10:35

« edellinen - seuraava »

virgo

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
Genetic-PET C64 BBS:
g-point.tunk.org port 1025

Genetic-point Amiga BBS:
g-point.tunk.org port 500