base:8x8-plasma-basic
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | base:8x8-plasma-basic [2015-04-17 04:30] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== 8x8 Plasma / Basic Speedcode Generator ====== | ||
+ | < | ||
+ | // | ||
+ | // 8x8 Plasma Crap w/ Basic Generated Speedcode | ||
+ | // For Codebase64 | ||
+ | // By Cruzer/CML 2009 | ||
+ | // Asm: KickAss 3.1 | ||
+ | // | ||
+ | // memory... | ||
+ | .var plasmaCnt = $02 | ||
+ | .var add = $04 | ||
+ | .var codePnt = $05 | ||
+ | .var xPos = $07 | ||
+ | .var yPos = $08 | ||
+ | .var screen = $0400 | ||
+ | .var basic = $0800 | ||
+ | .var sine64 = $1000 | ||
+ | .var sine128 = $1200 | ||
+ | .var colorTable = $1400 | ||
+ | .var bitmap = $2000 | ||
+ | .var code = $4000 | ||
+ | .var codeSrc = $5000 | ||
+ | .var plasmer = $6000 | ||
+ | // | ||
+ | .pc = sine64 " | ||
+ | .for (var i=0; i<$200; i++) | ||
+ | .by 32 + 32 * sin(i/ | ||
+ | .pc = sine128 " | ||
+ | .for (var i=0; i<$200; i++) | ||
+ | .by 64 + 64 * sin(i/ | ||
+ | // | ||
+ | .pc = basic " | ||
+ | // dump of the following basic program, which generates the plasmer speedcode based on the two | ||
+ | // chunks of code from codeSrc... | ||
+ | /* | ||
+ | 10 IL = 12 | ||
+ | 20 PL = 12 | ||
+ | 40 IS = 5*16*256 | ||
+ | 45 PS = IS + IL | ||
+ | 50 TA = 6*16*256 | ||
+ | 100 FOR Y=0 TO 24 | ||
+ | 200 REM -- LINE INIT -- | ||
+ | 202 POKE IS+6,Y*4 | ||
+ | 204 POKE IS+9,Y*7 | ||
+ | 210 FOR I=0 TO IL-1 | ||
+ | 220 POKE TA+I, PEEK(IS+I) :NEXT I | ||
+ | 240 TA=TA+IL | ||
+ | 300 REM -- PLASMER -- | ||
+ | 330 FOR X=0 TO 39 | ||
+ | 331 CC=CC+1: PRINT CC"/ 1000" | ||
+ | 342 POKE PS+1, (X*3 + Y*1)AND 255 | ||
+ | 344 POKE PS+7, (X*1 + Y*2)AND 255 | ||
+ | 346 SA=1024+X+Y*40 | ||
+ | 347 POKE PS+10, SA AND 255 | ||
+ | 348 POKE PS+11, SA / 256 | ||
+ | 350 FOR I=0 TO PL-1 | ||
+ | 360 POKE TA+I, PEEK(PS+I) :NEXT I | ||
+ | 370 TA=TA+PL | ||
+ | 390 NEXT X | ||
+ | 400 NEXT Y | ||
+ | 500 POKE TA,96 | ||
+ | 1000 SYS16384 | ||
+ | */ | ||
+ | .by $00, | ||
+ | .by $00, | ||
+ | .by $b2, | ||
+ | .by $53, | ||
+ | .by $54, | ||
+ | .by $64, | ||
+ | .by $00, | ||
+ | .by $2d, | ||
+ | .by $34, | ||
+ | .by $00, | ||
+ | .by $31, | ||
+ | .by $49, | ||
+ | .by $41, | ||
+ | .by $20, | ||
+ | .by $81, | ||
+ | .by $43, | ||
+ | .by $30, | ||
+ | .by $20, | ||
+ | .by $35, | ||
+ | .by $ac, | ||
+ | .by $09, | ||
+ | .by $30, | ||
+ | .by $41, | ||
+ | .by $aa, | ||
+ | .by $5e, | ||
+ | .by $09, | ||
+ | .by $49, | ||
+ | .by $41, | ||
+ | .by $01, | ||
+ | .by $00, | ||
+ | .by $84, | ||
+ | .by $00, | ||
+ | .by $00, | ||
+ | .by $00, | ||
+ | .by $11, | ||
+ | .by $01, | ||
+ | .by $33, | ||
+ | .by $54, | ||
+ | .by $00, | ||
+ | // | ||
+ | .pc = code " | ||
+ | jmp start | ||
+ | // | ||
+ | // plasma params... | ||
+ | .var width = 40 | ||
+ | .var height = 25 | ||
+ | .var sineSpreadX = $03 | ||
+ | .var sineSpreadY = $01 | ||
+ | .var colorSpreadX = $01 | ||
+ | .var colorSpreadY = $02 | ||
+ | .var realtimeSpread0 = $04 | ||
+ | .var realtimeSpread1 = $07 | ||
+ | sineSpeeds: | ||
+ | addSpeed: | ||
+ | colors: | ||
+ | // | ||
+ | start: | ||
+ | sei | ||
+ | |||
+ | // fill bitmap... | ||
+ | ldx #0 | ||
+ | ldy #$1f | ||
+ | lda #%01010101 | ||
+ | !: sta bitmap,x | ||
+ | eor #%11111111 | ||
+ | inx | ||
+ | bne !- | ||
+ | inc !- +2 | ||
+ | dey | ||
+ | bpl !- | ||
+ | // generate color table... | ||
+ | ldx #0 | ||
+ | |||
+ | !loop: | ||
+ | txa | ||
+ | asl | ||
+ | asl | ||
+ | asl | ||
+ | bcc !+ | ||
+ | eor #$ff | ||
+ | !: lsr | ||
+ | lsr | ||
+ | lsr | ||
+ | lsr | ||
+ | tay | ||
+ | lda colors,y | ||
+ | sta colorTable, | ||
+ | sta colorTable+$100, | ||
+ | inx | ||
+ | bne !loop- | ||
+ | |||
+ | // init vic... | ||
+ | lda #$3b | ||
+ | sta $d011 | ||
+ | lda #$18 | ||
+ | sta $d018 | ||
+ | |||
+ | // | ||
+ | mainLoop: | ||
+ | lda #$00 | ||
+ | sta $d020 | ||
+ | lda #$44 | ||
+ | !: cmp $d012 | ||
+ | bne !- | ||
+ | sta $d020 | ||
+ | |||
+ | lda plasmaCnt+0 | ||
+ | clc | ||
+ | adc sineSpeeds+0 | ||
+ | sta plasmaCnt+0 | ||
+ | lda plasmaCnt+1 | ||
+ | clc | ||
+ | adc sineSpeeds+1 | ||
+ | sta plasmaCnt+1 | ||
+ | lda add | ||
+ | clc | ||
+ | adc addSpeed | ||
+ | anc #$3f | ||
+ | sta add | ||
+ | |||
+ | jsr plasmer | ||
+ | jmp mainLoop | ||
+ | // | ||
+ | .pc = codeSrc " | ||
+ | lineInitSrc: | ||
+ | ldx plasmaCnt+0 | ||
+ | ldy plasmaCnt+1 | ||
+ | clc | ||
+ | lda sine128,x | ||
+ | adc sine64,y | ||
+ | tax | ||
+ | |||
+ | plasmerSrc: | ||
+ | lda sine64,x | ||
+ | adc add | ||
+ | tay | ||
+ | lda colorTable, | ||
+ | sta screen | ||
+ | </ |
base/8x8-plasma-basic.txt · Last modified: 2015-04-17 04:30 by 127.0.0.1