Commodore 16 Scroll + Color-Washer
Suche
Index
FAQ
Kontakt
Zurück

Commodore 16 Scroll + Color-Washer



Bild


!to "scroll.prg",cbm
; Basicstart
TEDGraph1       = $FF06                        ; $FF06: TED Graphic-Register 1
TEDGraph2       = $FF07                        ; $FF07: TED Graphic-Register 2
TEDKLatch       = $FF08                        ; $FF08: TED Keyboard Latch
TEDIRQ          = $FF09                        ; $FF09: TED IRQ Status Register
TEDIRQM         = $FF0A                        ; $FF0A: TED IRQ Mask Register
TEDIRQR         = $FF0B                        ; $FF0B: TED Raster IRQ Register
TEDCUR_H        = $FF0C                        ; $FF0C: TED Cursor H
TEDCUR_L        = $FF0D                        ; $FF0D: TED Cursor L
TEDSND1         = $FF0E                        ; $FF0E: TED Sound Voice #1 L
TEDSND2         = $FF0F                        ; $FF0F: TED Sound Voice #2 L
TEDSND2H        = $FF10                        ; $FF10: TED Sound Voice #2 H
TEDSND          = $FF11                        ; $FF11: TED Sound Volume,on/off,Wave,D/A
TEDREG          = $FF12                        ; $FF12: TED Register
TEDREGA         = $FF13                        ; $FF13: TED Register
TEDVRAM         = $FF14                        ; $FF14: TED Video-RAM
TEDBACK         = $FF15                        ; $FF15: Background-Color
TEDCOL1         = $FF16                        ; $FF16: TED Color 1
TEDCOL2         = $FF17                        ; $FF17: TED Color 2
TEDCOL3         = $FF18                        ; $FF18: TED Color 3
TEDBORDER       = $FF19                        ; $FF19: TED BORDER
TEDCHARH        = $FF1A                        ; $FF1A: TED Char Position H
TEDRASTH        = $FF1C                        ; $FF1C: TED Rasterline H
TEDRASTL        = $FF1D                        ; $FF1D: TED Rasterline L
TEDRASTC        = $FF1E                        ; $FF1E: TED Rastercolumn
TEDRASTV        = $FF1F                        ; $FF1F: TED Raster vertical
TEDROM          = $FF3E                        ; $FF3E: TED ROM ON
TEDRAM          = $FF3F

*= $1000
!byte $00,$0c,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00
; main
*=$100d
;--------------------------------------------------
; Commodore 16 Scroll + Color-Washer
;--------------------------------------------------
screen=$0d90
get =$ffe4
colram =$0990
coldstart = $f2a4
                 ldx #$00
                 ldy #$00
                 sei
-                jsr wait
                 lda luma,x
                 jsr raster
                 sta TEDBORDER
                 and #$%11110001
                 ora #$01
                 jsr raster
                 sta TEDBACK
                 inx
                 cpx #$09
                 bne -
                 lda luma,x
                 jsr raster
                 sta TEDBACK
                 jsr start

raster:
                 pha
-                lda TEDRASTL
                 cmp #$ff
                 bne -
                 pla
                 rts

wait:
                 txa
                 pha
                 ldx #$00
--               ldy #$00
-                iny
                 bne -
                 inx
                 cpx #$30
                 bne --
                 pla
                 tax
                 rts

start:
                 sei
                 ldx #$ff
                 txs
                 lda #$93
                 jsr $ffd2
                 lda #$ff
                 sta $ff00
                 sta $ff01
                 sta $0a
                 sta $0b
                 lda #$00
                 sta $0c
                 sta TEDBACK
                 sta TEDBORDER
                 sta TEDGraph2
                 tax
                 lda #%01111111
-                sta $0990,x
                 inx
                 cpx #$28
                 bne -
                 lda #scroller
                 sta $0315
                 cli
                 jmp*
scroller:
                 lda #$7f
                 sta $fd30
                 sta $ff08
                 lda $ff08
                 cmp #$ef    ; space to end
                 beq exit

-                lda TEDRASTL
                 cmp #$00
                 bne -
                 dec $0a
                 lda $0a
                 and #$07
                 sta $0a
                 sta $ff07
                 cmp #$07
                 bne skip_hardscroll

                 ldx txtpos
                 inc txtpos
                 lda text,x
                 cmp #$00    ; at $00 repeat
                 bne +
                 ldx #00
                 stx txtpos
                 beq scroller
+                sta screen+39
scroll:
                 ldx #$00    ; hardscroll
--               lda screen+1,x
                 sta screen,x
                 inx
                 cpx #40
                 bne --
                 jsr col_washer
skip_hardscroll: pla
                 tay
                 pla
                 tax
                 pla
                 rti

exit:            jmp coldstart
col_washer:
                 ldx #$27
-                lda colors,x
                 sta colram,x
                 dex
                 bpl -
                 ldy colors+39
                 ldx #$27
-                lda colors-1,X
                 sta colors,X
                 dex
                 bne -
                 sty colors
                 rts


txtpos !by $00
text:
!scr " a tiny commodore c16 text scroll with green washing in luma stages. if you get"
!scr " bored about this text, press space to end ..... this is only a short demonstra"
!scr "tion for testing several ted registers.                   "
!by $00

colors:
!by $4c,$4c,$4c,$4c,$4c,$4c,$4c,$4c
!by $4c,$4c,$4c,$4c,$5c,$5c,$7c,$7c
!by $7c,$7c,$7c,$7c,$7c,$7c,$7c,$7c
!by $7c,$7c,$5c,$5c,$4c,$4c,$4c,$4c
!by $4c,$4c,$4c,$4c,$4c,$4c,$4c,$4c

luma:
!by $ee,$ee,$de,$ce,$be,$ae,$9e,$8e,$00,$00

 

Letzte Änderung: 2019-01-03 11:16:54
  Rubrik:  C16
Rubriken-Übersicht
 219 Besucher online 

Valid XHTML 1.0 Transitional Valid CSS!