plasma: trying to get to fit

This commit is contained in:
Vince Weaver 2021-01-09 15:48:29 -05:00
parent 2010c7b715
commit 7e217c75a0
3 changed files with 20 additions and 24 deletions

View File

@ -11,7 +11,7 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS \
RASTER4.BAS RASTER5.BAS PUMPKIN.BAS PUMPKIN_SMALL.BAS LADY.BAS \
A2.BAS FOURAM.BAS FLOPPY.BAS QR.BAS A2_4EVER.BAS RLE.BAS RLE2.BAS \
RLEASM.BAS HORIZON.BAS FLYER.BAS STAR.BAS HYPER.BAS FASTAR.BAS \
FASTAR2.BAS BIN.BAS FALLING.BAS SNOW.BAS XMAS.BAS AN3.BAS
FASTAR2.BAS BIN.BAS FALLING.BAS SNOW.BAS XMAS.BAS AN3.BAS PLASMA.BAS
cp empty.dsk appleiibot.dsk
$(DOS33) -y appleiibot.dsk BSAVE -a 0x0300 LOAD
# $(DOS33) -y appleiibot.dsk BSAVE -a 0x0C00 FASTAR2
@ -54,6 +54,7 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS \
$(DOS33) -y appleiibot.dsk SAVE A SNOW.BAS
$(DOS33) -y appleiibot.dsk SAVE A XMAS.BAS
$(DOS33) -y appleiibot.dsk SAVE A AN3.BAS
$(DOS33) -y appleiibot.dsk SAVE A PLASMA.BAS
###
@ -146,6 +147,11 @@ XMAS.BAS: xmas.bas
AN3.BAS: an3.bas
$(TOKENIZE) < an3.bas > AN3.BAS
####
PLASMA.BAS: plasma.bas
$(TOKENIZE) < plasma.bas > PLASMA.BAS
####

View File

@ -0,0 +1,2 @@
1REM,=n9D`M1X/5Z.NO.MO-AS'1k-1b3kR4jjk/3bbnXA3k0j_E`>0S91X1P2(02ImRB28=mY8J0N9:W3T/JhO;X/OoI73)mZ[/3/1BQ]M2Q<63nWoR,gb1`<QC8:JoLE0#.1+01,/omnngmoP(L3748DA$ 2@-$ 1CKJA"3'--&)KTA1MF$(*@,F^'W<3'=
2FORI=0TO141:POKE3072+I,4*PEEK(2054+I)-192+(PEEK(2195+I/3)-32)/4^(I-INT(I/3)*3):NEXT:CALL3072

View File

@ -14,6 +14,9 @@
; 149 -- add page flipping
; 144 -- optimize a bit
; 141 -- smc DRAW_PAGE
; goal=135
.include "zp.inc"
.include "hardware.inc"
@ -30,15 +33,11 @@ SAVEY = $FF
jsr SETGR
bit FULLGR
; lda #4
; sta DRAW_PAGE
;col = ( 8.0 + (sintable[xx&0xf])
; + 8.0 + (sintable[yy&0xf])
; ) / 2;
create_lookup:
ldy #15
create_yloop:
ldx #15
@ -84,17 +83,15 @@ plot_frame:
; flip page
; ldx #0 ; x already 0
lda DRAW_PAGE
lda draw_page_smc+1 ; DRAW_PAGE
beq done_page
inx
done_page:
ldy PAGE0,X
eor #$4
sta DRAW_PAGE
sta draw_page_smc+1 ; DRAW_PAGE
; plot frame
@ -117,15 +114,15 @@ plot_yloop:
; after, A is GBASL, C is clear
lda GBASH
adc DRAW_PAGE
draw_page_smc:
adc #0
sta GBASH
plp
lda #$0f ; setup mask
bcc plot_mask
adc #$e0
adc #$e0 ; needlessly clever, from monitor rom src
plot_mask:
sta MASK
@ -153,6 +150,7 @@ plot_lookup_smc:
and #$f
lsr
tax
lda colorlookup,X
sta COLOR
@ -168,16 +166,6 @@ plot_lookup_smc:
bpl plot_yloop
bmi forever_loop
; iny
; cpy #40
; bne plot_xlooph
; inx
; cpx #40
; bne plot_yloop
; beq forever_loop
colorlookup:
bw_color_lookup:
.byte $55,$22,$66,$77,$ff,$77,$55 ; ,$00 shared w sin table
@ -192,7 +180,7 @@ sinetable:
;.byte $00,$55,$77,$ff,$77,$66,$22,$55
; make lookup happen at page boundary
.org $d00
;.align $100
lookup: