mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-27 07:29:29 +00:00
plasmag: try some hgr
This commit is contained in:
parent
9c5af5412f
commit
4747055c54
|
@ -7,12 +7,13 @@ EMPTYDISK = ../../../empty_disk/empty.dsk
|
||||||
|
|
||||||
all: plasmag.dsk
|
all: plasmag.dsk
|
||||||
|
|
||||||
plasmag.dsk: HELLO PLASMAG PLASMAG_FULL PLASMAG_TINY
|
plasmag.dsk: HELLO PLASMAG PLASMAG_FULL PLASMAG_TINY PLASMAG_HGR
|
||||||
cp $(EMPTYDISK) plasmag.dsk
|
cp $(EMPTYDISK) plasmag.dsk
|
||||||
$(DOS33) -y plasmag.dsk SAVE A HELLO
|
$(DOS33) -y plasmag.dsk SAVE A HELLO
|
||||||
$(DOS33) -y plasmag.dsk BSAVE -a 0x4000 PLASMAG
|
$(DOS33) -y plasmag.dsk BSAVE -a 0x4000 PLASMAG
|
||||||
$(DOS33) -y plasmag.dsk BSAVE -a 0x4000 PLASMAG_FULL
|
$(DOS33) -y plasmag.dsk BSAVE -a 0x4000 PLASMAG_FULL
|
||||||
$(DOS33) -y plasmag.dsk BSAVE -a 0x4000 PLASMAG_TINY
|
$(DOS33) -y plasmag.dsk BSAVE -a 0x4000 PLASMAG_TINY
|
||||||
|
$(DOS33) -y plasmag.dsk BSAVE -a 0xc00 PLASMAG_HGR
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
@ -37,6 +38,15 @@ plasmag_tiny.o: plasmag_tiny.s gr_gbascalc.s make_tables.s
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
PLASMAG_HGR: plasmag_hgr.o
|
||||||
|
ld65 -o PLASMAG_HGR plasmag_hgr.o -C $(LINKERSCRIPTS)/apple2_c00.inc
|
||||||
|
|
||||||
|
plasmag_hgr.o: plasmag_hgr.s gr_gbascalc.s make_tables.s
|
||||||
|
ca65 -o plasmag_hgr.o plasmag_hgr.s -l plasmag_hgr.lst
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
PLASMAG_FULL: plasmag_full.o
|
PLASMAG_FULL: plasmag_full.o
|
||||||
ld65 -o PLASMAG_FULL plasmag_full.o -C $(LINKERSCRIPTS)/apple2_4000.inc
|
ld65 -o PLASMAG_FULL plasmag_full.o -C $(LINKERSCRIPTS)/apple2_4000.inc
|
||||||
|
|
||||||
|
@ -47,4 +57,4 @@ plasmag_full.o: plasmag_full.s
|
||||||
###
|
###
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *~ *.o *.lst PLASMAG HELLO
|
rm -f *~ *.o *.lst PLASMAG HELLO PLASMAG_TINY PLASMAG_HGR
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
5 HOME
|
5 HOME
|
||||||
10 PRINT CHR$(4)"BRUN PLASMAG_TINY"
|
10 PRINT CHR$(4)"BRUN PLASMAG_HGR"
|
||||||
|
|
|
@ -1,26 +1,20 @@
|
||||||
; PLASMAGORIA, Tiny version
|
; PLASMAGORIA, hi-res version
|
||||||
|
|
||||||
; original code by French Touch
|
; original code by French Touch
|
||||||
|
|
||||||
; trying to see how small I can get it
|
|
||||||
|
|
||||||
|
|
||||||
; note can use $F000 (or similar) for color lookup to get passable
|
|
||||||
; effect on fewer bytes
|
|
||||||
|
|
||||||
; 347 bytes -- initial with FAC
|
|
||||||
; 343 bytes -- optimize init
|
|
||||||
; 340 bytes -- move Table1 + Table2 to zero page
|
|
||||||
; 331 bytes -- init not necessary
|
|
||||||
; 319 bytes -- inline precalc + display + init lores colors
|
|
||||||
; 316 bytes -- fallthrough in make_tiny
|
|
||||||
|
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
|
|
||||||
|
hposn_high=$6000
|
||||||
|
hposn_low =$6100
|
||||||
|
hposn_high_div8=$6200
|
||||||
|
hposn_low_div8 =$6300
|
||||||
|
|
||||||
;Table1 = $8000
|
;Table1 = $8000
|
||||||
;Table2 = $8000+64
|
;Table2 = $8000+64
|
||||||
|
|
||||||
|
HGR = $F3E2
|
||||||
|
|
||||||
; Page Zero
|
; Page Zero
|
||||||
|
|
||||||
GBASL = $26
|
GBASL = $26
|
||||||
|
@ -37,6 +31,9 @@ PARAM4 = $63
|
||||||
Table1 = $A0 ; 40 bytes
|
Table1 = $A0 ; 40 bytes
|
||||||
Table2 = $D0 ; 40 bytes
|
Table2 = $D0 ; 40 bytes
|
||||||
|
|
||||||
|
PAGE = $FC
|
||||||
|
COUNT = $FD
|
||||||
|
GBASH_SAVE = $FE
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
; ROUTINE MAIN
|
; ROUTINE MAIN
|
||||||
|
@ -46,10 +43,28 @@ plasma_debut:
|
||||||
jsr HGR ; have table gen appear on hgr page1
|
jsr HGR ; have table gen appear on hgr page1
|
||||||
bit FULLGR
|
bit FULLGR
|
||||||
|
|
||||||
jsr make_tables
|
jsr build_tables
|
||||||
|
|
||||||
bit LORES ; set lo-res
|
ldx #23
|
||||||
|
ldy #184
|
||||||
|
div8_loop:
|
||||||
|
lda hposn_low,Y
|
||||||
|
sta hposn_low_div8,X
|
||||||
|
lda hposn_high,Y
|
||||||
|
sta hposn_high_div8,X
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl div8_loop
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta PAGE
|
||||||
|
|
||||||
lores_colors_fine=$8100
|
lores_colors_fine=$8100
|
||||||
|
|
||||||
|
@ -154,8 +169,8 @@ display_normal:
|
||||||
|
|
||||||
display_line_loop:
|
display_line_loop:
|
||||||
|
|
||||||
txa
|
lda hposn_low_div8,X
|
||||||
jsr GBASCALC
|
sta GBASL
|
||||||
|
|
||||||
ldy #39 ; col 0-39
|
ldy #39 ; col 0-39
|
||||||
|
|
||||||
|
@ -168,7 +183,26 @@ display_row_sin_smc:
|
||||||
sta display_lookup_smc+1 ; patch in low byte of lookup
|
sta display_lookup_smc+1 ; patch in low byte of lookup
|
||||||
display_lookup_smc:
|
display_lookup_smc:
|
||||||
lda lores_colors_fine ; attention: must be aligned
|
lda lores_colors_fine ; attention: must be aligned
|
||||||
|
sta color_smc+1
|
||||||
|
|
||||||
|
lda hposn_high_div8,X
|
||||||
|
clc
|
||||||
|
adc PAGE
|
||||||
|
sta GBASH
|
||||||
|
|
||||||
|
lda #7
|
||||||
|
sta COUNT
|
||||||
|
store_loop:
|
||||||
|
color_smc:
|
||||||
|
lda #$fe
|
||||||
sta (GBASL),Y
|
sta (GBASL),Y
|
||||||
|
clc
|
||||||
|
lda #$4
|
||||||
|
adc GBASH
|
||||||
|
sta GBASH
|
||||||
|
dec COUNT
|
||||||
|
bpl store_loop
|
||||||
|
|
||||||
dey
|
dey
|
||||||
bpl display_col_loop
|
bpl display_col_loop
|
||||||
dex
|
dex
|
||||||
|
@ -176,13 +210,33 @@ display_lookup_smc:
|
||||||
|
|
||||||
; ============================================================================
|
; ============================================================================
|
||||||
|
|
||||||
|
lda PAGE
|
||||||
|
beq was_page1
|
||||||
|
was_page2:
|
||||||
|
bit PAGE2
|
||||||
|
lda #0
|
||||||
|
beq done_pageflip
|
||||||
|
was_page1:
|
||||||
|
bit PAGE1
|
||||||
|
lda #$20
|
||||||
|
done_pageflip:
|
||||||
|
sta PAGE
|
||||||
|
|
||||||
inc COMPT1
|
inc COMPT1
|
||||||
bne BP3
|
beq display_done2
|
||||||
|
; bne BP3
|
||||||
|
jmp BP3
|
||||||
|
|
||||||
|
display_done2:
|
||||||
|
|
||||||
dec COMPT2
|
dec COMPT2
|
||||||
bne BP3
|
beq display_done
|
||||||
|
; bne BP3
|
||||||
|
jmp BP3
|
||||||
|
display_done:
|
||||||
|
|
||||||
beq do_plasma ; bra
|
jmp do_plasma
|
||||||
|
; beq do_plasma ; bra
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -191,7 +245,10 @@ display_lookup_smc:
|
||||||
lores_colors_lookup:
|
lores_colors_lookup:
|
||||||
.byte $00,$88,$55,$99,$ff,$bb,$33,$22,$66,$77,$44,$cc,$ee,$dd,$99,$11
|
.byte $00,$88,$55,$99,$ff,$bb,$33,$22,$66,$77,$44,$cc,$ee,$dd,$99,$11
|
||||||
|
|
||||||
|
.include "hgr_table.s"
|
||||||
|
|
||||||
.include "make_tables.s"
|
.align 256
|
||||||
|
sin1:
|
||||||
|
.incbin "tables"
|
||||||
|
sin2=sin1+256
|
||||||
|
sin3=sin2+256
|
||||||
|
|
Loading…
Reference in New Issue
Block a user