base:copper_style_fli_plasma
Table of Contents
Copper Style FLI Plasma
Concept
This type of plasma was invented on Amiga many years ago, where the copper co-processor was used for changing the background color for every 8th pixel. By applying sinus waves on both the X and Y axis, a plasmatic effect was achieved. This C64 version has been watered down in many ways in order to be implemented on a slower machine with less colors and no copper. First of all there is only colors on each 2nd rasterline, and the X-sinus only updates on each 2nd of these lines, i.e. every 4th rasterline. The colors are stored into FLI, and since you can have 2 colors for every byte, only 2 bytes need to be stored per char.
Source Code
;---------------------------------------------------------- ; Copper Style Plasma ;---------------------------------------------------------- ; Coded by Cruzer/CML 2002-2004 ; Asm: mxass ;---------------------------------------------------------- .la benderpointers = $02 .la go = $5e .la color0 = $5f .la color1 = $60 .la color2 = $61 .la benderadds = $e0 .la scrollbuf = $f0 .la tmp = $fe .la basic = $0800 ;09ff .la loadersrc = $0a00 ;0bff .la movezp = $0d00 ;0fff .la tune = $1000 ;1f7f .la main = $1e20 ;32ff .la d016lut = $3300 ;33ff .la jsrlut = $3400 ;34ff .la div64 = $3500 ;35ff .la benderlut = $3600 ;36ff .la sine2 = $3700 ;38ff .la sine3 = $3900 ;3cff .la colorlut0 = $3d00 ;3d7f .la colorlut1 = $3d80 ;3dff .la sine = $3e00 ;3fff .la bitmap = $4000 ;527f .la logo = $5280 ;5fff .la screens = $6000 ;67ff .la bender = $7000 ;77ff .la techtecher = $7800 ;7fff .la plasmers = $8000 ;bfff .la shower = $c000 ;cdff .la charset = $ce00 ;cfff .la scrolltext = $e000 ;efff .ba main .la border=$d020 ;---------------------------------------------------------- sei lda #$00 sta $d020 sta $d021 sta $d011 lda #$36 sta $01 jsr clearscreens jsr convertcolors jsr fetcheffect jsr makeplasmers jsr makeshower jsr makebender jsr maketechtecher jsr makemovezp jsr fliinit jsr colorinit jsr logoinit jsr makeluts jsr zpinit lda #$96 sta $dd00 lda #%00111111 sta $d015 lda #%00111111 sta $d017 lda #%01111111 sta $d01d lda #$00 sta $d027 sta $d028 sta $d029 sta $d02a sta $d02b sta $d02c lda #$3c sta $d001 sta $d003 lda #$66 sta $d005 sta $d007 lda #$90 sta $d009 sta $d00b lda #$27 sta $d000 sta $d004 sta $d008 lda #$18 sta $d002 sta $d006 sta $d00a lda #%11101010 sta $d010 lda #$1a sta $d00c lda #$4a sta $d00e lda #$f2 sta $d00d sta $d00f lda #$0d sta $d02d sta $d02e lda #$00 jsr $1000 ldx #$00 txa - sta $7f00,x inx bne - sta scrollbuf+0 sta scrollbuf+1 sta scrollbuf+2 sta scrollbuf+3 sta scrollbuf+4 cli sei lda #<irq1 sta $0314 lda #>irq1 sta $0315 lda #$7b sta $dc0d lda #$81 sta $d01a lda #$0b sta $d011 lda #$3b sta $d012 asl $d019 cli lda #$00 sta go -loop lda go beq -loop lda #$7b sta shower+$2e lda #$7c sta shower+$3d lda #$7e sta shower+$6a lda #$7a sta shower+$d3 jsr clearscreens jsr neweffect jsr fetcheffect jsr makebender jsr maketechtecher jsr colorinit jmp + ldx #$00 ldy #$40 - inx bne - iny bne - + lda #0 sta go lda #$3a sta shower+$d3 jmp -loop ;---------------------------------------------------------- - lda #$ff -c1 cmp $d012 bne -c1 lda #$11 -c2 cmp $d012 bne -c2 inc border jsr $10c1 lda #%00111111 sta $d017 lda #$7f sta $d011 jmp + irq1 inc border asl $d019 bit $ff bit $ff bit $ff jsr shower lda #$00 sta $d017 nop nop nop nop nop bit $ff inc border lda #$c8 sta $d016 lda #$80 sta $d018 lda go bne - jmp plasma pr lda #%00111111 sta $d017 lda #$7f sta $d011 inc border jsr $10c1 + spacecheck lda $dc01 cmp #$ef bne + lda #<fadeoutirq sta $0314 lda #>fadeoutirq sta $0315 lda #$00 sta $d012 asl $d019 sta fadecnt sta $d418 sta $d011 jmp ri + ;jsr fadectrl dec fxcnt bne + dec fxcnt+1 bpl + inc go ;lda #<irq2 ;sta $0314 ;lda #>irq2 ;sta $0315 ;lda #$3b ;sta $d012 ;asl $d019 ;lda #0 ;sta noisecnt + jsr scrollctrl lda #$36 sta $01 lda #0 sta border pla tay pla tax pla rti ;---------------------------------------------------------- fadeoutirq asl $d019 ldx fadecnt lda fadecolz,x sta $d020 lda fadecnt cmp #9 beq + inc fadecnt jmp +j + jmp loadnext +j jmp ri fadecolz .by $0,$b,$c,$f,$1,$1,$f,$c,$b,$0 loadnext sei lda #$37 sta $01 lda #$0a sta $d021 lda #$00 sta $d01a sta $d015 lda #$14 sta $d018 lda #$08 sta $2e lda #$03 sta $2f ldx #0 - lda loadersrc+$0000,x sta $c000,x lda loadersrc+$0100,x sta $c100,x inx bne - jmp $c1f0 ;---------------------------------------------------------- ri pla tay pla tax pla rti ;---------------------------------------------------------- fadectrl rts fxcnt .wo $0333 fadecnt .by 0 ;---------------------------------------------------------- rotate lda #<scrollbuf+4 sta asl1+1 ldx #4*3 - asl1 asl scrollbuf rol $7f42,x rol $7f41,x rol $7f40,x rol $7f02,x rol $7f01,x rol $7f00,x dec asl1+1 dex dex dex bpl - rts scrollctrl dec cw beq + rts + lda #6 sta cw lda #$35 sta $01 inc scrollpnt bne + inc sl1+2 + ldx scrollpnt sl1 lda scrolltext,x cmp #$ff bne + lda #$00 sta scrollpnt lda #>scrolltext sta sl1+2 rts + cmp #$00 beq + ldx #$ff stx $d015 + asl asl asl tax lda #$00 rol bne + +j lda charset,x sta scrollbuf+0 lda charset+1,x sta scrollbuf+1 lda charset+2,x sta scrollbuf+2 lda charset+3,x sta scrollbuf+3 lda charset+4,x sta scrollbuf+4 rts + lda charset+$100,x sta scrollbuf+0 lda charset+$101,x sta scrollbuf+1 lda charset+$102,x sta scrollbuf+2 lda charset+$103,x sta scrollbuf+3 lda charset+$104,x sta scrollbuf+4 rts scrollinit sei lda #$34 sta $01 ldx #$00 -loop sl2 lda scrolltext,x cmp #$ff bne + lda #$36 sta $01 rts + cmp #" " bne + lda #$00 jmp +j + cmp #"." bne + lda #27 jmp +j + cmp #"!" bne + lda #28 jmp +j + cmp #"," bne + lda #29 jmp +j + cmp #"-" bne + lda #30 jmp +j + cmp #":" bne + lda #31 jmp +j + cmp #"(" bne + lda #32 jmp +j + cmp #")" bne + lda #33 jmp +j + cmp #"?" bne + lda #34 jmp +j + cmp #"'" bne + lda #35 jmp +j + cmp #""" bne + lda #36 jmp +j + cmp #"0" bne + lda #40 jmp +j + cmp #"1" bne + lda #41 jmp +j + cmp #"2" bne + lda #42 jmp +j + cmp #"3" bne + lda #43 jmp +j + cmp #"4" bne + lda #44 jmp +j + cmp #"5" bne + lda #45 jmp +j + cmp #"6" bne + lda #46 jmp +j + cmp #"7" bne + lda #47 jmp +j + cmp #"8" bne + lda #48 jmp +j + cmp #"9" bne + lda #49 jmp +j + and #$1f +j ss2 sta scrolltext,x inx bne + inc sl2+2 inc ss2+2 lda ss2+2 cmp #$f0 bne + lda #$37 sta $01 - inc $d020 jmp - + jmp -loop cw .by 6 scrollpnt .by 0 ;---------------------------------------------------------- d011s .by $38,$39,$3a,$3b,$3c,$3d,$3e,$3f d018s .by $80,$80,$90,$90,$90,$90,$80,$80 logoshow lda #$c8 sta $d016 lda #$80 sta $d018 lda #$00 sta $d017 lda #$7a sta $d011 rts ;---------------------------------------------------------- clearscreens lda #$00 ldx #$00 - sta $6000,x sta $6400,x inx bne - - sta $6100,x sta $6500,x inx bne - - sta $6158,x sta $6558,x inx bne - rts ;---------------------------------------------------------- plasma ;rasterbender... ldx benderaddpnt lda benderaddpnt+1 clc adc #>sine3 sta +l+2 +l lda sine3,x sta benderadds clc bdispl adc #$00 sta benderadds+1 clc adc #$00 sta benderadds+2 clc adc #$00 sta benderadds+3 clc adc #$00 sta benderadds+4 clc adc #$00 sta benderadds+5 clc adc #$00 sta benderadds+6 clc adc #$00 sta benderadds+7 ldx benderpnt ldy benderpnt+1 jsr bender lda benderpnt clc adc benderspeed sta benderpnt lda benderpnt+1 clc adc benderspeed+1 sta benderpnt+1 lda benderaddpnt clc adc benderspeed+2 sta benderaddpnt lda benderaddpnt+1 adc #$00 and #$03 sta benderaddpnt+1 ;tech-tech... ;inc border lda techtecherpnt sta tmp ldy techtecherpnt+1 clc jsr techtecher lda techtecherpnt clc tts1 adc #$00 sta techtecherpnt tya ;lda techtecherpnt+1 clc tts2 adc #$00 sta techtecherpnt+1 ;inc border ;draw 4 segments ... lda #>movezp sta mzj+2 ldx #$03 -loop seg cpx #$00 bne + cp ldy #$00 jv jsr $8000 + cpx #$00 bne + ldy #$01 jsr $8080 + cpx #$00 bne + ldy #$02 jsr $8000 + cpx #$00 bne + ldy #$03 jsr $8080 + cpx #$00 bne + ldy #$04 jsr $8000 + cpx #$00 bne + ldy #$05 jsr $8080 + cpx #$00 bne + ldy #$06 jsr $8000 + cpx #$00 bne + ldy #$07 jsr $8080 + cpx #$00 bne + ldy #$08 jsr $8000 + cpx #$00 bne + ldy #$09 jsr $8080 + cpx #$00 bne + ldy #$0a jsr $8000 + cpx #$00 bne + ldy #$0b jsr $8080 + cpx #$00 bne + ldy #$0c jsr $8000 + cpx #$00 bne + ldy #$0d jsr $8080 + cpx #$00 bne + ldy #$0e jsr $8000 + cpx #$00 bne + ldy #$0f jsr $8080 + cpx #$00 bne + ldy #$10 jsr $8000 + cpx #$00 bne + ldy #$11 jsr $8080 + cpx #$00 bne + ldy #$12 jsr $8000 + cpx #$00 bne + ldy #$13 jsr $8080 + cpx #$00 bne + ldy #$14 jsr $8000 + cpx #$00 bne + ldy #$15 jsr $8080 + cpx #$00 bne + ldy #$16 jsr $8000 + cpx #$00 bne + ldy #$17 jsr $8080 + cpx #$00 bne + ldy #$18 jsr $8000 + cpx #$00 bne + ldy #$19 jsr $8080 + cpx #$00 bne + ldy #$1a jsr $8000 + cpx #$00 bne + ldy #$1b jsr $8080 + cpx #0 beq + ;inc border mzj jsr movezp ;dec border inc mzj+2 dex jmp -loop + jmp pr ;---------------------------------------------------------- makeluts ldx #$00 - txa lsr and #$07 ora #$d8 sta d016lut,x txa lsr lsr lsr lsr and #$03 eor #$03 asl asl asl asl ora #$80 sta jsrlut,x txa lsr lsr lsr lsr lsr lsr sta div64,x txa lsr and #$7f lsr bcc + ora #$80 + sta benderlut,x inx bne - rts ;---------------------------------------------------------- zpinit ;bender-pointers ... ldx #$00 lda #>colorlut0 - sta $03,x inx inx cpx #$52 bne - rts ;---------------------------------------------------------- makeplasmers lda #0 sta displace -loop3 lda #<plasmers sta $fe lda displace asl asl asl asl clc adc #>plasmers sta $ff lda #0 sta line -loop1 lda line asl tay lda +s1starts,y sta +s1+1 lda +s1starts+1,y sta +s1+2 lda displace asl clc adc #$02 sta +l1+1 ldx #0 -loop2 ldy #0 - lda plasmersrc,y sta ($fe),y iny cpy #5 bne - jsr yaddfe inc +l1+1 inc +l1+1 lda +s1+1 clc adc #1 sta +s1+1 lda +s1+2 adc #0 sta +s1+2 inx cpx #$19 bne -loop2 jsr putrts ;iny ;jsr yaddfe lda $fe and #$80 clc adc #$80 sta $fe lda $ff adc #$00 sta $ff inc line lda line cmp #$1c bne -loop1 inc displace lda displace cmp #4 beq + jmp -loop3 + rts line .by 0 displace .by 0 plasmersrc +l1 lda ($02),y +s1 sta $6118 +s1starts .wo $602f,$642f .wo $6057,$6457 .wo $607f,$647f .wo $60a7,$64a7 .wo $60cf,$64cf .wo $60f7,$64f7 .wo $611f,$651f .wo $6147,$6547 .wo $616f,$656f .wo $6197,$6597 .wo $61bf,$65bf .wo $61e7,$65e7 .wo $620f,$660f .wo $6237,$6637 .wo $625f,$665f .wo $6287,$6687 .wo $62af,$66af ;---------------------------------------------------------- makeshower lda #<shower sta $fe lda #>shower sta $ff lda #<scrollbuf sta aslz+1 lda #$00 sta aslz+2 lda #0 sta line -loop1 lda line and #$07 tax lda d011s,x sta +d11+1 sta +l2+1 sta +l4+1 lda d018s,x sta +d18+1 ldy #$18 lda line cmp #$78 bne + lda #$00 sta +d18+1 ldy #$17 + sty +d18+3 lda line cmp #9 bpl + lda +d11+1 ora #$70 sta +d11+1 + lda line cmp #5 bmi +copy1 lda line and #$07 cmp #$00 beq +copy2 cmp #$01 beq +copy2 cmp #$03 beq +copy2 cmp #$04 beq +copy2 cmp #$05 beq +copy2 cmp #$07 beq +copy2 +copy1 ldy #0 - lda showsrc,y sta ($fe),y iny cpy #15 bne - jsr yaddfe jmp +copyend +copy2 ldy #0 - lda showsrc1,y sta ($fe),y iny cpy #30 bne - jsr yaddfe lda rolz+16 cmp #$12 beq +copyend clc adc #$03 tax ora #$40 tay stx rolz+16 inx stx rolz+13 inx stx rolz+10 sty rolz+7 iny sty rolz+4 iny sty rolz+1 inc aslz+1 jmp +copyend +copyend lda +d16+1 clc adc #$01 sta +d16+1 adc #1 sta +ly+1 lda #$ff sta +ds+1 lda line and #$03 cmp #$01 bne + lda #$16 sta +ds+1 + inc line lda line cmp #$76 beq + jmp -loop1 + jmp putrts showsrc +d11 lda #$38 sta $d011 +d18 lda #$80 sta $d018 +ds stx $d016 bit $ff ;20 cycles +d16 lda $5c showsrc1 +ly ldy $5c ldx d016lut,y bit $00 aslz asl $7fff rolz rol $7f42 rol $7f41 rol $7f40 rol $7f02 rol $7f01 rol $7f00 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop showsrc2 +l2 lda #$38 sta $d011 +l3 ldy $60 lda d016lut,y sta $d016 bit $00 showsrc3 +l4 lda #$38 sta $d011 +l5 lda #$80 sta $d018 nop nop nop nop ;---------------------------------------------------------- makemovezp lda #<movezp sta $fe lda #>movezp sta $ff lda #$0a sta +l+1 lda #$02 sta +s+1 -loop ldy #0 - lda movezpsrc,y sta ($fe),y iny cpy #4 bne - jsr yaddfe inc +l+1 inc +l+1 inc +s+1 inc +s+1 lda +s+1 cmp #$3a bne -loop jsr putrts lda #$00 sta $fe inc $ff lda #$0a sta +l+1 lda #$02 sta +s+1 -loop ldy #0 - lda movezpsrc,y sta ($fe),y iny cpy #4 bne - jsr yaddfe inc +l+1 inc +l+1 inc +s+1 inc +s+1 lda +l+1 cmp #$3a bne + lda #$42 sta +l+1 + lda +s+1 cmp #$3a bne -loop jsr putrts lda #$00 sta $fe inc $ff lda #$0a sta +l+1 lda #$02 sta +s+1 -loop ldy #0 - lda movezpsrc,y sta ($fe),y iny cpy #4 bne - jsr yaddfe inc +l+1 inc +l+1 inc +s+1 inc +s+1 lda +l+1 cmp #$3a bne + lda #$4a sta +l+1 + lda +s+1 cmp #$3a bne -loop jsr putrts rts movezpsrc +l lda $0a +s sta $02 ;---------------------------------------------------------- maketechtecher lda #<techtecher sta $fe lda #>techtecher sta $ff ldy #0 - lda techtechersrcinit,y sta techtechersrc,y iny cpy #25 bne - lda #0 sta line -loop1 lda line lsr ora #$80 sta +a+1 ldy #0 - lda techtechersrc,y sta ($fe),y iny cpy #25 bne - jsr yaddfe lda +sl1+1 clc adc techtecherspread+0 sta +sl1+1 lda +sl2+1 clc adc techtecherspread+1 sta +sl2+1 lda +d1+1 clc adc #4 sta +d1+1 lda +j1+1 clc adc #9 sta +j1+1 lda +j1+2 adc #0 sta +j1+2 lda +s+1 clc adc #9 sta +s+1 lda +s+2 adc #0 sta +s+2 inc line lda line cmp #$1c beq + jmp -loop1 + jmp putrts techtechersrc ldx tmp +sl1 lda sine+$20,y +sl2 adc sine+$50,x +d1 sta $66 tax lda jsrlut,x +a ora #$80 +j1 sta jv+2 ;charpos%4 lda div64,x +s sta seg+1 ;charpos/4 (segment) techtechersrcinit ldx tmp +sl1 lda sine+$20,y +sl2 adc sine+$50,x +d1 sta $66 tax lda jsrlut,x +a ora #$80 +j1 sta jv+2 ;charpos%4 lda div64,x +s sta seg+1 ;charpos/4 (segment) ;---------------------------------------------------------- makebender lda #<bender sta $fe lda #>bender sta $ff lda #$00 sta +l+1 sta +a+1 lda +s2init+1 sta +s2+1 lda +s2init+2 sta +s2+2 lda #$02 sta +s1+1 -loop1 ldy #0 - lda bendersrc,y sta ($fe),y iny cpy #16 bne - jsr yaddfe tya clc adc +s2+1 sta +s2+1 lda #0 adc +s2+2 sta +s2+2 lda +l+1 clc adc benderspread+0 sta +l+1 lda +a+1 clc adc benderspread+1 sta +a+1 lda +bap+1 clc adc #$01 and #$0f sta +bap+1 tax lda +baps,x clc adc #<benderadds sta +ba+1 lda +s1+1 clc adc #2 sta +s1+1 cmp #$54 beq + jmp -loop1 + jmp putrts +bap .by 0 +baps ;.by 0,1,2,3,4,5,6,7,7,6,5,4,3,2,1,0 .by 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7 bendersrc +l lda sine,y +a adc sine,x +ba adc benderadds +s2 sta bender+12 lda benderlut +s1 sta $02 +s2init sta bender+12 ;---------------------------------------------------------- yaddfe tya clc adc $fe sta $fe lda #0 adc $ff sta $ff rts putrts lda #$60 ldy #0 sta ($fe),y rts ;---------------------------------------------------------- colorinit lda colortype asl tax lda colors,x sta $fe lda colors+1,x sta $ff ldy #0 -loop lda ($fe),y sta color0 iny lda ($fe),y sta color1 iny lda ($fe),y sta color2 dey dey tya lsr tax lda color0 asl asl asl asl ora color1 sta colorlut0,x sta colorlut0+$40,x asl asl asl asl ora color2 sta colorlut1,x sta colorlut1+$40,x iny iny bpl -loop rts colors .wo color00,color01,color02,color03,color04,color05,color06,color07 .wo color08,color09,color0a,color0b,color0c,color0d,color0e,color0f soc color00 .text "0600660666e66ee6eee3ee33e333133113111311331333e33ee3eee6ee66e666066006" .text "0000000000000000000000000000000000000000000000000000000000" color01 .text "0000020929228284a8aafaff7f77171117177f7ffafaa8a48282292902000000" .text "0000000000000000000000000000000000000000000000000000000000000000" color02 .text "00066beef3711173feeb66000000b4ceff71117ffec4b000" .text "000924caff71117ffac429000000928caf71117fac8290000000" .text "0000000000000000000000000000" color03 .text "66666666600929000928290928a82928afa828af7fa8af717faf71117f711111" .text "7f71117faf717fa8af7fa828afa82928a82909282900092900666666666666666" color04 .text "0000bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0000000000000000000" .text "0000000000000000000000000000000000000000000000000000000000000000" ;.text "00bbbbbbbbbbbbbbbbbbbb000000000000000000000000000000000000000000" ;.text "0000000000000000000000000000000000000000000000000000000000000000" color05 .text "00000000000929000928290928a82928afa828af7fa8af717faf71117f711111" .text "d3d111d3e3d1d3e4e3d3e424e3e42624e42606242600062600000000000000000" color06 .text "00928af717fa829000" .text "00924af717fa429000" .text "006b4caf717fac4b6000" .text "006b4ef717fe4b6000" .text "006bee3d1d3eeb6000" .text "00b553dd1dd355b000" .text "009bcff11ffcb9000" .text "000000" color07 .text "b9bb99b999299229222422442444e44ee4eee3ee33e333d33dd3ddd1dd11d111" .text "711771777f77ff7fffaffaafaaa4aa44a4442442242226226626666b66bb6bbbb" ;.text "0000092829000928a8290928afa82982af7fa828af717fa8af71117faf711111" ;.text "7faf71117fa8af717fa828af7fa82928afa8290928a829000928290000000000" color08 .text "0000000600000006b6000006beb60006be3eb606be313eb6be31113ebe311111" .text "3ebe31113eb6be313eb606be3eb60006beb60000006b60000000600000000000" color09 .text "006060666b6b6bb4be4e4eceefefeff3f3331313171111117117171717777f7f7ffffafafaaaa8a8a88882828222292929999090900" .text "0000000000000000000000" color0a .text "090609696b2b28484cececaca5af3f37d7d711117d7d73f3fa5acacecec48482b2b6969060900" .text "0000000000000000000000000000000000000000000000000000000000000000" color0b .text "0928af717fa82900" .text "00928af7fa829000" .text "000928afa8290000" .text "0000928a82900000" .text "0000092829000000" .text "0000928a82900000" .text "000928afa8290000" .text "00928af7fa829000" .text "0" color0c .text "028af717fa820000" .text "024af717fa420000" .text "064af717fa460000" .text "064ef717fe460000" .text "06bef717feb60000" .text "064ef717fe460000" .text "064af717fa460000" .text "024af717fa420000" .text "0" color0d .text "0928af717fa82900" .text "00928af7fa829000" .text "000928afa8290000" .text "0000928a82900000" .text "0000092829000000" .text "0000009290000000" .text "0000000900000000" .text "0000000000000000" color0e color0f .text "000" eoc convertcolors lda #<soc sta $fe lda #>soc sta $ff -loop ldy #$00 lda ($fe),y jsr getcolor sta ($fe),y lda $fe clc adc #$01 sta $fe lda $ff adc #$00 sta $ff lda $fe cmp #<eoc bne -loop lda $ff cmp #>eoc bne -loop rts getcolor ldx #0 - cmp hexcolors,x beq + inx cpx #$10 bne - + txa rts hexcolors .text "0123456789abcdef" ;---------------------------------------------------------- neweffect inc effectpnt lda effectpnt cmp numfx bne + lda #0 sta effectpnt + rts fetcheffect lda effectpnt asl tax lda fxs,x sta $fe lda fxs+1,x sta $ff ldy #0 - lda ($fe),y sta thiseffect,y iny cpy #18 bne - lda duration ora #$01 sta fxcnt lda duration+1 sta fxcnt+1 lda displacement ldx #0 - sta bdispl+1,x inx inx inx inx inx cpx #35 bne - lda techtecherspeed sta tts1+1 lda techtecherspeed+1 sta tts2+1 lda benderstart+0 sta benderpnt+0 lda benderstart+1 sta benderpnt+1 lda benderstart+2 asl sta benderaddpnt+0 lda #$00 rol asl benderaddpnt+0 rol sta benderaddpnt+1 lda techtecherstart+0 sta techtecherpnt+0 lda techtecherstart+1 sta techtecherpnt+1 rts effectpnt .by 0 numfx .by 13 fxs ;.wo fx3a,fx3b_ ;.wo fx10 .wo fx7,fx3c_,fx6,fx3d_,fx4,fx3c,fx5,fx3b,fx8,fx9,fx10,fx3d,fx11 thiseffect benderspread .by $00,$00 benderspeed .by $00,$00,$00 benderstart .by $00,$00,$00 techtecherspread .by $00,$00 techtecherspeed .by $00,$00 techtecherstart .by $00,$00 displacement .by $00 colortype .by $00 duration .wo $0000 ;----------------------------------- fx1 +benderspread .by $00,$00 +benderspeed .by $00,$00,$02 +benderstart .by $00,$00,$00 +techtecherspread .by $00,$00 +techtecherspeed .by $00,$00 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $06 +duration .wo $0100 fx2 +benderspread .by $03,$02 +benderspeed .by $02,$03,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $00,$00 +techtecherspeed .by $00,$00 +techtecherstart .by $33,$00 +displacement .by $00 +colortype .by $06 +duration .wo $0144 fx3a +benderspread .by $03,$03 +benderspeed .by $02,$fd,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $02,$fe +techtecherspeed .by $04,$03 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $06 +duration .wo $0222 fx3b +benderspread .by $03,$03 +benderspeed .by $02,$fd,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $02,$fe +techtecherspeed .by $04,$03 +techtecherstart .by $00,$00 +displacement .by $20 +colortype .by $0b +duration .wo $0222 fx3c +benderspread .by $03,$03 +benderspeed .by $02,$fd,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $02,$fe +techtecherspeed .by $04,$03 +techtecherstart .by $00,$00 +displacement .by $20 +colortype .by $0c +duration .wo $0222 fx3d +benderspread .by $03,$03 +benderspeed .by $02,$fd,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $02,$fe +techtecherspeed .by $04,$03 +techtecherstart .by $00,$00 +displacement .by $20 +colortype .by $0d +duration .wo $0222 fx3b_ +benderspread .by $03,$03 +benderspeed .by $02,$fd,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $02,$fe +techtecherspeed .by $04,$03 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $0b +duration .wo $0222 fx3c_ +benderspread .by $03,$03 +benderspeed .by $02,$fd,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $02,$fe +techtecherspeed .by $04,$03 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $0c +duration .wo $01f0 fx3d_ +benderspread .by $03,$03 +benderspeed .by $02,$fd,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $02,$fe +techtecherspeed .by $04,$03 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $0d +duration .wo $0180 fx4 +benderspread .by $07,$06 +benderspeed .by $fe,$01,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $fc,$05 +techtecherspeed .by $02,$03 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $08 +duration .wo $02c0 fx5 +benderspread .by $04,$05 +benderspeed .by $01,$fe,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $fc,$06 +techtecherspeed .by $03,$02 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $03 +duration .wo $02c0 fx6 +benderspread .by $06,$05 +benderspeed .by $02,$ff,$02 +benderstart .by $00,$00,$00 +techtecherspread .by $0c,$09 +techtecherspeed .by $03,$01 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $09 +duration .wo $02e0 fx7 +benderspread .by $04,$05 +benderspeed .by $02,$ff,$01 +benderstart .by $55,$00,$00 +techtecherspread .by $fe,$03 +techtecherspeed .by $03,$02 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $04 +duration .wo $0288 fx8 +benderspread .by $81,$82 +benderspeed .by $02,$ff,$01 +benderstart .by $00,$00,$00 +techtecherspread .by $01,$01 +techtecherspeed .by $01,$fe +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $06 +duration .wo $0222 fx9 +benderspread .by $04,$04 +benderspeed .by $02,$ff,$01 +benderstart .by $33,$dd,$00 +techtecherspread .by $08,$09 +techtecherspeed .by $05,$06 +techtecherstart .by $00,$00 +displacement .by $00 +colortype .by $05 +duration .wo $0320 fx10 +benderspread .by $04,$05 +benderspeed .by $02,$ff,$02 +benderstart .by $00,$00,$00 +techtecherspread .by $0b,$0e +techtecherspeed .by $01,$02 +techtecherstart .by $cc,$77 +displacement .by $00 +colortype .by $07 +duration .wo $0280 fx11 +benderspread .by $06,$05 +benderspeed .by $02,$ff,$02 +benderstart .by $00,$00,$00 +techtecherspread .by $0b,$0c +techtecherspeed .by $03,$01 +techtecherstart .by $70,$00 +displacement .by $00 +colortype .by $0a +duration .wo $02cc ;---------------------------------------------------------- benderpnt .by $55,$aa,$00 benderaddpnt .wo $0000 techtecherpnt .by $00,$33 ;---------------------------------------------------------- fliinit lda #$00 sta $fe lda #$40 sta $ff ldy #$00 - ;lda #$00 lda #%01010101 sta ($fe),y iny lda #%00000000 sta ($fe),y iny lda #%10101010 sta ($fe),y iny lda #%00000000 sta ($fe),y iny beq + cpy #$80 bne - lda $ff cmp #$52 bne - jmp +end + inc $ff jmp - +end lda #$00 sta $fe lda #$60 sta $ff ldy #$00 tya - sta ($fe),y iny bne - inc $ff ldx $ff cpx #$70 bne - ;init sprite data ... ldx #$c0 lda #$ff - sta $5f00,x inx bne - lda #$7f ldx #$05 - sta $63f8,x sta $67f8,x dex bpl - ldx #$fc stx $63fe stx $67fe inx stx $63ff stx $67ff rts ;---------------------------------------------------------- logoinit ldx #$00 - lda #$e0 sta $6258,x sta $62c0,x inx bne - rts ;----------------------------------------------------------
base/copper_style_fli_plasma.txt · Last modified: 2015-04-17 04:31 by 127.0.0.1