mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-09 03:31:05 +00:00
plasma: working on more plasma demos
This commit is contained in:
parent
a5ff0a38a4
commit
daceb8ef3b
@ -7,7 +7,9 @@ EMPTYDISK = ../../../empty_disk/empty.dsk
|
||||
|
||||
all: plasma.dsk
|
||||
|
||||
plasma.dsk: HELLO PLASMA PLASMA_128 PLASMA_TINY PLASMA_BOT WIRES WIRES_BOT
|
||||
plasma.dsk: HELLO PLASMA PLASMA2 \
|
||||
DIAMONDS STATIC \
|
||||
PLASMA_128 PLASMA_TINY PLASMA_BOT WIRES WIRES_BOT
|
||||
cp $(EMPTYDISK) plasma.dsk
|
||||
$(DOS33) -y plasma.dsk SAVE A HELLO
|
||||
$(DOS33) -y plasma.dsk BSAVE -a 0x70 PLASMA
|
||||
@ -16,6 +18,9 @@ plasma.dsk: HELLO PLASMA PLASMA_128 PLASMA_TINY PLASMA_BOT WIRES WIRES_BOT
|
||||
$(DOS33) -y plasma.dsk BSAVE -a 0x36B PLASMA_BOT
|
||||
$(DOS33) -y plasma.dsk BSAVE -a 0xC00 WIRES
|
||||
$(DOS33) -y plasma.dsk BSAVE -a 0x36B WIRES_BOT
|
||||
$(DOS33) -y plasma.dsk BSAVE -a 0xc00 PLASMA2
|
||||
$(DOS33) -y plasma.dsk BSAVE -a 0xc00 DIAMONDS
|
||||
$(DOS33) -y plasma.dsk BSAVE -a 0xc00 STATIC
|
||||
|
||||
###
|
||||
|
||||
@ -30,6 +35,33 @@ PLASMA: plasma.o
|
||||
plasma.o: plasma.s
|
||||
ca65 -o plasma.o plasma.s -l plasma.lst
|
||||
|
||||
###
|
||||
|
||||
PLASMA2: plasma2.o
|
||||
ld65 -o PLASMA2 plasma2.o -C $(LINKERSCRIPTS)/apple2_c00.inc
|
||||
|
||||
plasma2.o: plasma2.s
|
||||
ca65 -o plasma2.o plasma2.s -l plasma2.lst
|
||||
|
||||
###
|
||||
|
||||
DIAMONDS: diamonds.o
|
||||
ld65 -o DIAMONDS diamonds.o -C $(LINKERSCRIPTS)/apple2_c00.inc
|
||||
|
||||
diamonds.o: diamonds.s
|
||||
ca65 -o diamonds.o diamonds.s -l diamonds.lst
|
||||
|
||||
|
||||
###
|
||||
|
||||
STATIC: static.o
|
||||
ld65 -o STATIC static.o -C $(LINKERSCRIPTS)/apple2_c00.inc
|
||||
|
||||
static.o: static.s
|
||||
ca65 -o static.o static.s -l static.lst
|
||||
|
||||
|
||||
|
||||
###
|
||||
|
||||
PLASMA_128: plasma_128.o
|
||||
|
227
graphics/gr/plasma/diamonds.s
Normal file
227
graphics/gr/plasma/diamonds.s
Normal file
@ -0,0 +1,227 @@
|
||||
; more plasma
|
||||
|
||||
; by Vince `deater` Weaver (vince@deater.net) / dSr
|
||||
; with some help from qkumba
|
||||
|
||||
; zero page
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
MASK = $2E
|
||||
COLOR = $30
|
||||
;CTEMP = $68
|
||||
YY = $69
|
||||
|
||||
FRAME = $FC
|
||||
SUM = $FD
|
||||
SAVEX = $FE
|
||||
SAVEY = $FF
|
||||
|
||||
; soft-switches
|
||||
FULLGR = $C052
|
||||
PAGE1 = $C054
|
||||
|
||||
; ROM routines
|
||||
PLOT = $F800 ;; PLOT AT Y,A
|
||||
PLOT1 = $F80E ;; PLOT at (GBASL),Y (need MASK to be $0f or $f0)
|
||||
GBASCALC= $F847 ;; take Y-coord/2 in A, put address in GBASL/H ( a trashed, C clear)
|
||||
SETCOL = $F864 ;; COLOR=A*17
|
||||
SETGR = $FB40
|
||||
|
||||
|
||||
|
||||
;================================
|
||||
; Clear screen and setup graphics
|
||||
;================================
|
||||
plasma:
|
||||
|
||||
jsr SETGR ; set lo-res 40x40 mode
|
||||
bit FULLGR ; make it 40x48
|
||||
|
||||
|
||||
|
||||
draw_plasma:
|
||||
ldx #39
|
||||
create_yloop:
|
||||
ldy #47
|
||||
create_xloop:
|
||||
lda #128
|
||||
sta SUM
|
||||
txa
|
||||
jsr calcsine
|
||||
tya
|
||||
jsr calcsine
|
||||
|
||||
clc
|
||||
adc FRAME
|
||||
|
||||
jsr SETCOL
|
||||
|
||||
stx SAVEX
|
||||
sty SAVEY
|
||||
|
||||
ldy SAVEX
|
||||
lda SAVEY
|
||||
|
||||
jsr PLOT ; PLOT Y,A
|
||||
|
||||
ldx SAVEX
|
||||
ldy SAVEY
|
||||
|
||||
|
||||
dey
|
||||
bpl create_xloop
|
||||
|
||||
dex
|
||||
bpl create_yloop
|
||||
|
||||
; X and Y both $FF
|
||||
|
||||
create_lookup_done:
|
||||
|
||||
forever_loop:
|
||||
inc FRAME
|
||||
|
||||
jmp draw_plasma
|
||||
|
||||
.if 0
|
||||
cycle_colors:
|
||||
|
||||
; cycle colors
|
||||
; instead of advancing entire frame, do slightly slower route
|
||||
; instead now and just incrememnting the frame and doing the
|
||||
; adjustment at plot time.
|
||||
|
||||
; increment frame
|
||||
|
||||
inc frame_smc+1
|
||||
|
||||
; set/flip pages
|
||||
; we want to flip pages and then draw to the offscreen one
|
||||
|
||||
flip_pages:
|
||||
|
||||
; ldy #0
|
||||
|
||||
; iny ; y is $FF, make it 0
|
||||
|
||||
lda draw_page_smc+1 ; DRAW_PAGE
|
||||
bne done_page
|
||||
dey
|
||||
done_page:
|
||||
; ldx PAGE1,Y ; set display page to PAGE1 or PAGE2
|
||||
|
||||
ldx $BF56,Y ; PAGE1 - $FF
|
||||
|
||||
eor #$4 ; flip draw page between $400/$800
|
||||
sta draw_page_smc+1 ; DRAW_PAGE
|
||||
|
||||
|
||||
; plot current frame
|
||||
; scan whole 40x48 screen and plot each point based on
|
||||
; lookup table colors
|
||||
plot_frame:
|
||||
|
||||
ldx #47 ; YY=47 (count backwards)
|
||||
plot_yloop:
|
||||
|
||||
txa ; get YY into A
|
||||
pha ; save X for later
|
||||
lsr ; call actually wants Ycoord/2
|
||||
|
||||
php ; save C flag for mask handling
|
||||
|
||||
; ugh can't use PLOT trick as it always will draw something
|
||||
; to PAGE1 even if we don't want to
|
||||
|
||||
jsr GBASCALC ; point GBASL/H to address in (A is ycoord/2)
|
||||
; after, A is GBASL, C is clear
|
||||
|
||||
lda GBASH ; adjust to be PAGE1/PAGE2 ($400 or $800)
|
||||
draw_page_smc:
|
||||
adc #0
|
||||
sta GBASH
|
||||
|
||||
; increment YY in top nibble of lookup for (yy<<16)+xx
|
||||
; clc from above, C always 0
|
||||
lda plot_lookup_smc+1
|
||||
adc #$10 ; no need to mask as it will oflo and be ignored
|
||||
sta plot_lookup_smc+1
|
||||
|
||||
;==========
|
||||
|
||||
ldy #39 ; XX = 39 (countdown)
|
||||
|
||||
; sets MASK by calling into middle of PLOT routine
|
||||
; by Y being 39 draw in a spot that gets over-written
|
||||
|
||||
plp
|
||||
jsr $f806
|
||||
|
||||
plot_xloop:
|
||||
|
||||
tya ; get XX & 0x0f
|
||||
and #$f
|
||||
tax
|
||||
|
||||
plot_lookup_smc:
|
||||
lda lookup,X ; load lookup, (YY*16)+XX
|
||||
|
||||
clc
|
||||
frame_smc:
|
||||
adc #$00 ; add in frame
|
||||
|
||||
and #$f
|
||||
lsr ; we actually only have 8 colors
|
||||
|
||||
tax
|
||||
|
||||
lda colorlookup,X ; lookup color
|
||||
|
||||
|
||||
sta COLOR ; each nibble should be same
|
||||
|
||||
jsr PLOT1 ; plot at GBASL,Y (x co-ord goes in Y)
|
||||
|
||||
dey
|
||||
bpl plot_xloop
|
||||
|
||||
pla ; restore YY
|
||||
tax
|
||||
dex
|
||||
bpl plot_yloop
|
||||
bmi forever_loop
|
||||
.endif
|
||||
|
||||
|
||||
calcsine_div_8:
|
||||
lsr
|
||||
calcsine_div_4:
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
calcsine:
|
||||
stx SAVEX
|
||||
and #$f
|
||||
tax
|
||||
lda sinetable,X
|
||||
clc
|
||||
adc SUM
|
||||
sta SUM
|
||||
ldx SAVEX
|
||||
rts
|
||||
|
||||
|
||||
colorlookup:
|
||||
|
||||
; blue
|
||||
.byte $55,$22,$66,$77,$ff,$77,$55,$00
|
||||
|
||||
|
||||
|
||||
sinetable:
|
||||
; this is actually (32*sin(x))
|
||||
.byte $00,$0C,$16,$1D
|
||||
.byte $20,$1D,$16,$0C
|
||||
.byte $00,$F4,$EA,$E3
|
||||
.byte $E0,$E3,$EA,$F4
|
||||
|
242
graphics/gr/plasma/plasma2.s
Normal file
242
graphics/gr/plasma/plasma2.s
Normal file
@ -0,0 +1,242 @@
|
||||
; more plasma
|
||||
|
||||
; by Vince `deater` Weaver (vince@deater.net) / dSr
|
||||
; with some help from qkumba
|
||||
|
||||
; zero page
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
MASK = $2E
|
||||
COLOR = $30
|
||||
;CTEMP = $68
|
||||
YY = $69
|
||||
|
||||
FRAME = $FC
|
||||
SUM = $FD
|
||||
SAVEX = $FE
|
||||
SAVEY = $FF
|
||||
|
||||
; soft-switches
|
||||
FULLGR = $C052
|
||||
PAGE1 = $C054
|
||||
|
||||
; ROM routines
|
||||
PLOT = $F800 ;; PLOT AT Y,A
|
||||
PLOT1 = $F80E ;; PLOT at (GBASL),Y (need MASK to be $0f or $f0)
|
||||
GBASCALC= $F847 ;; take Y-coord/2 in A, put address in GBASL/H ( a trashed, C clear)
|
||||
SETCOL = $F864 ;; COLOR=A*17
|
||||
SETGR = $FB40
|
||||
|
||||
|
||||
|
||||
;================================
|
||||
; Clear screen and setup graphics
|
||||
;================================
|
||||
plasma:
|
||||
|
||||
jsr SETGR ; set lo-res 40x40 mode
|
||||
bit FULLGR ; make it 40x48
|
||||
|
||||
|
||||
|
||||
draw_plasma:
|
||||
ldx #39
|
||||
create_yloop:
|
||||
ldy #47
|
||||
create_xloop:
|
||||
lda #128
|
||||
sta SUM
|
||||
txa
|
||||
adc FRAME
|
||||
jsr calcsine
|
||||
|
||||
tya
|
||||
; adc FRAME
|
||||
jsr calcsine_div_2
|
||||
|
||||
clc
|
||||
stx SAVEX
|
||||
tya
|
||||
adc SAVEX
|
||||
jsr calcsine
|
||||
|
||||
stx SAVEX
|
||||
sty SAVEY
|
||||
|
||||
; clc
|
||||
adc FRAME
|
||||
|
||||
and #$7
|
||||
tax
|
||||
lda colorlookup,X
|
||||
|
||||
jsr SETCOL
|
||||
|
||||
|
||||
ldy SAVEX
|
||||
lda SAVEY
|
||||
|
||||
jsr PLOT ; PLOT Y,A
|
||||
|
||||
ldx SAVEX
|
||||
ldy SAVEY
|
||||
|
||||
|
||||
dey
|
||||
bpl create_xloop
|
||||
|
||||
dex
|
||||
bpl create_yloop
|
||||
|
||||
; X and Y both $FF
|
||||
|
||||
create_lookup_done:
|
||||
|
||||
forever_loop:
|
||||
inc FRAME
|
||||
|
||||
jmp draw_plasma
|
||||
; jmp forever_loop
|
||||
|
||||
.if 0
|
||||
cycle_colors:
|
||||
|
||||
; cycle colors
|
||||
; instead of advancing entire frame, do slightly slower route
|
||||
; instead now and just incrememnting the frame and doing the
|
||||
; adjustment at plot time.
|
||||
|
||||
; increment frame
|
||||
|
||||
inc frame_smc+1
|
||||
|
||||
; set/flip pages
|
||||
; we want to flip pages and then draw to the offscreen one
|
||||
|
||||
flip_pages:
|
||||
|
||||
; ldy #0
|
||||
|
||||
; iny ; y is $FF, make it 0
|
||||
|
||||
lda draw_page_smc+1 ; DRAW_PAGE
|
||||
bne done_page
|
||||
dey
|
||||
done_page:
|
||||
; ldx PAGE1,Y ; set display page to PAGE1 or PAGE2
|
||||
|
||||
ldx $BF56,Y ; PAGE1 - $FF
|
||||
|
||||
eor #$4 ; flip draw page between $400/$800
|
||||
sta draw_page_smc+1 ; DRAW_PAGE
|
||||
|
||||
|
||||
; plot current frame
|
||||
; scan whole 40x48 screen and plot each point based on
|
||||
; lookup table colors
|
||||
plot_frame:
|
||||
|
||||
ldx #47 ; YY=47 (count backwards)
|
||||
plot_yloop:
|
||||
|
||||
txa ; get YY into A
|
||||
pha ; save X for later
|
||||
lsr ; call actually wants Ycoord/2
|
||||
|
||||
php ; save C flag for mask handling
|
||||
|
||||
; ugh can't use PLOT trick as it always will draw something
|
||||
; to PAGE1 even if we don't want to
|
||||
|
||||
jsr GBASCALC ; point GBASL/H to address in (A is ycoord/2)
|
||||
; after, A is GBASL, C is clear
|
||||
|
||||
lda GBASH ; adjust to be PAGE1/PAGE2 ($400 or $800)
|
||||
draw_page_smc:
|
||||
adc #0
|
||||
sta GBASH
|
||||
|
||||
; increment YY in top nibble of lookup for (yy<<16)+xx
|
||||
; clc from above, C always 0
|
||||
lda plot_lookup_smc+1
|
||||
adc #$10 ; no need to mask as it will oflo and be ignored
|
||||
sta plot_lookup_smc+1
|
||||
|
||||
;==========
|
||||
|
||||
ldy #39 ; XX = 39 (countdown)
|
||||
|
||||
; sets MASK by calling into middle of PLOT routine
|
||||
; by Y being 39 draw in a spot that gets over-written
|
||||
|
||||
plp
|
||||
jsr $f806
|
||||
|
||||
plot_xloop:
|
||||
|
||||
tya ; get XX & 0x0f
|
||||
and #$f
|
||||
tax
|
||||
|
||||
plot_lookup_smc:
|
||||
lda lookup,X ; load lookup, (YY*16)+XX
|
||||
|
||||
clc
|
||||
frame_smc:
|
||||
adc #$00 ; add in frame
|
||||
|
||||
and #$f
|
||||
lsr ; we actually only have 8 colors
|
||||
|
||||
tax
|
||||
|
||||
lda colorlookup,X ; lookup color
|
||||
|
||||
|
||||
sta COLOR ; each nibble should be same
|
||||
|
||||
jsr PLOT1 ; plot at GBASL,Y (x co-ord goes in Y)
|
||||
|
||||
dey
|
||||
bpl plot_xloop
|
||||
|
||||
pla ; restore YY
|
||||
tax
|
||||
dex
|
||||
bpl plot_yloop
|
||||
bmi forever_loop
|
||||
.endif
|
||||
|
||||
|
||||
calcsine_div_8:
|
||||
lsr
|
||||
calcsine_div_4:
|
||||
lsr
|
||||
calcsine_div_2:
|
||||
lsr
|
||||
calcsine:
|
||||
stx SAVEX
|
||||
and #$f
|
||||
tax
|
||||
lda sinetable,X
|
||||
clc
|
||||
adc SUM
|
||||
sta SUM
|
||||
ldx SAVEX
|
||||
rts
|
||||
|
||||
|
||||
colorlookup:
|
||||
|
||||
; blue
|
||||
.byte $55,$22,$66,$77,$ff,$77,$55,$00
|
||||
|
||||
|
||||
|
||||
sinetable:
|
||||
; this is actually (32*sin(x))
|
||||
.byte $00,$0C,$16,$1D
|
||||
.byte $20,$1D,$16,$0C
|
||||
.byte $00,$F4,$EA,$E3
|
||||
.byte $E0,$E3,$EA,$F4
|
||||
|
242
graphics/gr/plasma/static.s
Normal file
242
graphics/gr/plasma/static.s
Normal file
@ -0,0 +1,242 @@
|
||||
; more plasma
|
||||
|
||||
; by Vince `deater` Weaver (vince@deater.net) / dSr
|
||||
; with some help from qkumba
|
||||
|
||||
; zero page
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
MASK = $2E
|
||||
COLOR = $30
|
||||
;CTEMP = $68
|
||||
YY = $69
|
||||
|
||||
FRAME = $FC
|
||||
SUM = $FD
|
||||
SAVEX = $FE
|
||||
SAVEY = $FF
|
||||
|
||||
; soft-switches
|
||||
FULLGR = $C052
|
||||
PAGE1 = $C054
|
||||
|
||||
; ROM routines
|
||||
PLOT = $F800 ;; PLOT AT Y,A
|
||||
PLOT1 = $F80E ;; PLOT at (GBASL),Y (need MASK to be $0f or $f0)
|
||||
GBASCALC= $F847 ;; take Y-coord/2 in A, put address in GBASL/H ( a trashed, C clear)
|
||||
SETCOL = $F864 ;; COLOR=A*17
|
||||
SETGR = $FB40
|
||||
|
||||
|
||||
|
||||
;================================
|
||||
; Clear screen and setup graphics
|
||||
;================================
|
||||
plasma:
|
||||
|
||||
jsr SETGR ; set lo-res 40x40 mode
|
||||
bit FULLGR ; make it 40x48
|
||||
|
||||
|
||||
|
||||
draw_plasma:
|
||||
ldx #39
|
||||
create_yloop:
|
||||
ldy #47
|
||||
create_xloop:
|
||||
lda #128
|
||||
sta SUM
|
||||
txa
|
||||
adc FRAME
|
||||
jsr calcsine
|
||||
|
||||
tya
|
||||
; adc FRAME
|
||||
jsr calcsine_div_2
|
||||
|
||||
clc
|
||||
stx SAVEX
|
||||
tya
|
||||
adc SAVEX
|
||||
jsr calcsine
|
||||
|
||||
stx SAVEX
|
||||
sty SAVEY
|
||||
|
||||
; clc
|
||||
adc FRAME
|
||||
|
||||
and #$7
|
||||
tax
|
||||
lda colorlookup,X
|
||||
|
||||
jsr SETCOL
|
||||
|
||||
|
||||
ldy SAVEX
|
||||
lda SAVEY
|
||||
|
||||
jsr PLOT ; PLOT Y,A
|
||||
|
||||
ldx SAVEX
|
||||
ldy SAVEY
|
||||
|
||||
|
||||
dey
|
||||
bpl create_xloop
|
||||
|
||||
dex
|
||||
bpl create_yloop
|
||||
|
||||
; X and Y both $FF
|
||||
|
||||
create_lookup_done:
|
||||
|
||||
forever_loop:
|
||||
inc FRAME
|
||||
|
||||
jmp draw_plasma
|
||||
; jmp forever_loop
|
||||
|
||||
.if 0
|
||||
cycle_colors:
|
||||
|
||||
; cycle colors
|
||||
; instead of advancing entire frame, do slightly slower route
|
||||
; instead now and just incrememnting the frame and doing the
|
||||
; adjustment at plot time.
|
||||
|
||||
; increment frame
|
||||
|
||||
inc frame_smc+1
|
||||
|
||||
; set/flip pages
|
||||
; we want to flip pages and then draw to the offscreen one
|
||||
|
||||
flip_pages:
|
||||
|
||||
; ldy #0
|
||||
|
||||
; iny ; y is $FF, make it 0
|
||||
|
||||
lda draw_page_smc+1 ; DRAW_PAGE
|
||||
bne done_page
|
||||
dey
|
||||
done_page:
|
||||
; ldx PAGE1,Y ; set display page to PAGE1 or PAGE2
|
||||
|
||||
ldx $BF56,Y ; PAGE1 - $FF
|
||||
|
||||
eor #$4 ; flip draw page between $400/$800
|
||||
sta draw_page_smc+1 ; DRAW_PAGE
|
||||
|
||||
|
||||
; plot current frame
|
||||
; scan whole 40x48 screen and plot each point based on
|
||||
; lookup table colors
|
||||
plot_frame:
|
||||
|
||||
ldx #47 ; YY=47 (count backwards)
|
||||
plot_yloop:
|
||||
|
||||
txa ; get YY into A
|
||||
pha ; save X for later
|
||||
lsr ; call actually wants Ycoord/2
|
||||
|
||||
php ; save C flag for mask handling
|
||||
|
||||
; ugh can't use PLOT trick as it always will draw something
|
||||
; to PAGE1 even if we don't want to
|
||||
|
||||
jsr GBASCALC ; point GBASL/H to address in (A is ycoord/2)
|
||||
; after, A is GBASL, C is clear
|
||||
|
||||
lda GBASH ; adjust to be PAGE1/PAGE2 ($400 or $800)
|
||||
draw_page_smc:
|
||||
adc #0
|
||||
sta GBASH
|
||||
|
||||
; increment YY in top nibble of lookup for (yy<<16)+xx
|
||||
; clc from above, C always 0
|
||||
lda plot_lookup_smc+1
|
||||
adc #$10 ; no need to mask as it will oflo and be ignored
|
||||
sta plot_lookup_smc+1
|
||||
|
||||
;==========
|
||||
|
||||
ldy #39 ; XX = 39 (countdown)
|
||||
|
||||
; sets MASK by calling into middle of PLOT routine
|
||||
; by Y being 39 draw in a spot that gets over-written
|
||||
|
||||
plp
|
||||
jsr $f806
|
||||
|
||||
plot_xloop:
|
||||
|
||||
tya ; get XX & 0x0f
|
||||
and #$f
|
||||
tax
|
||||
|
||||
plot_lookup_smc:
|
||||
lda lookup,X ; load lookup, (YY*16)+XX
|
||||
|
||||
clc
|
||||
frame_smc:
|
||||
adc #$00 ; add in frame
|
||||
|
||||
and #$f
|
||||
lsr ; we actually only have 8 colors
|
||||
|
||||
tax
|
||||
|
||||
lda colorlookup,X ; lookup color
|
||||
|
||||
|
||||
sta COLOR ; each nibble should be same
|
||||
|
||||
jsr PLOT1 ; plot at GBASL,Y (x co-ord goes in Y)
|
||||
|
||||
dey
|
||||
bpl plot_xloop
|
||||
|
||||
pla ; restore YY
|
||||
tax
|
||||
dex
|
||||
bpl plot_yloop
|
||||
bmi forever_loop
|
||||
.endif
|
||||
|
||||
|
||||
calcsine_div_8:
|
||||
lsr
|
||||
calcsine_div_4:
|
||||
lsr
|
||||
calcsine_div_2:
|
||||
lsr
|
||||
calcsine:
|
||||
stx SAVEX
|
||||
and #$f
|
||||
tax
|
||||
lda sinetable,X
|
||||
clc
|
||||
adc SUM
|
||||
sta SUM
|
||||
ldx SAVEX
|
||||
rts
|
||||
|
||||
|
||||
colorlookup:
|
||||
|
||||
; blue
|
||||
.byte $55,$22,$66,$77,$ff,$77,$55,$00
|
||||
|
||||
|
||||
|
||||
sinetable:
|
||||
; this is actually (32*sin(x))
|
||||
.byte $00,$0C,$16,$1D
|
||||
.byte $20,$1D,$16,$0C
|
||||
.byte $00,$F4,$EA,$E3
|
||||
.byte $E0,$E3,$EA,$F4
|
||||
|
@ -62,7 +62,7 @@ int main(int argc, char **argv) {
|
||||
+ 128.0 + (128.0 * sin((xx + yy) / 16.0))
|
||||
+ 128.0 + (128.0 * sin(sqrt( (double)(xx * xx + yy * yy)) / 8.0))
|
||||
) / 4;
|
||||
#else
|
||||
//#else
|
||||
col = (int)
|
||||
((
|
||||
4.0 + sin(xx / 16.0)
|
||||
@ -71,10 +71,23 @@ int main(int argc, char **argv) {
|
||||
// + sin(sqrt(xx * xx + yy * yy) / 8.0)
|
||||
)*32) ;
|
||||
|
||||
printf("%d %d %d\n",xx,yy,col);
|
||||
printf("%d %d %d %.2f %.2f %.2f\n",xx,yy,col,
|
||||
sin(xx/16.0), sin(yy/8.0), sin((xx+yy)/16.0));
|
||||
//#endif
|
||||
#else
|
||||
col = (int)
|
||||
(
|
||||
128.0 + 32*sin(xx / 16.0)
|
||||
+ 32*sin(yy / 8.0)
|
||||
+ 32*sin((xx + yy) / 16.0)
|
||||
) ;
|
||||
|
||||
printf("%d %d %d %.2f %.2f %.2f\n",xx,yy,col,
|
||||
sin(xx/16.0), sin(yy/8.0), sin((xx+yy)/16.0));
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
offscreen[xx][yy]=col;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user