bubble: more size optimization

This commit is contained in:
Vince Weaver 2024-03-01 15:06:55 -05:00
parent a021e824b3
commit 8313ea50c6
3 changed files with 10 additions and 23 deletions

View File

@ -39,7 +39,7 @@ bubble.o: bubble.s hgr_clear_part.s sin_unrolled.s
BUBBLE_TINY: bubble_tiny.o BUBBLE_TINY: bubble_tiny.o
ld65 -o BUBBLE_TINY bubble_tiny.o -C $(LINKER_SCRIPTS)/apple2_c00.inc ld65 -o BUBBLE_TINY bubble_tiny.o -C $(LINKER_SCRIPTS)/apple2_c00.inc
bubble_tiny.o: bubble_tiny.s hgr_clear_part.s sin_unrolled.s hgr_clear_codegen.s bubble_tiny.o: bubble_tiny.s hgr_clear_codegen.s
ca65 -o bubble_tiny.o bubble_tiny.s -l bubble_tiny.lst ca65 -o bubble_tiny.o bubble_tiny.s -l bubble_tiny.lst
### ###

View File

@ -16,6 +16,7 @@
; 2326 bytes -- alignment turned off ; 2326 bytes -- alignment turned off
; 2311 bytes -- optimize mod table generation ; 2311 bytes -- optimize mod table generation
; 1447 bytes -- first attempt at hgr_clear codegen ; 1447 bytes -- first attempt at hgr_clear codegen
; 1443 bytes -- tail call optimization
; soft-switches ; soft-switches
@ -290,7 +291,6 @@ hposn_low = $6b00
hgr_make_tables: hgr_make_tables:
;===================== ;=====================
; make /7 %7 tables ; make /7 %7 tables
;===================== ;=====================
@ -300,10 +300,9 @@ hgr_make_7_tables:
lda #0 lda #0
tax tax
tay tay
div7_loop: div7_loop:
sta div7_table,Y sta div7_table,Y
mod_smc: mod7_smc:
stx mod7_table stx mod7_table
inx inx
@ -315,25 +314,11 @@ mod_smc:
ldx #0 ldx #0
div7_not7: div7_not7:
inc mod_smc+1 ; assume on page boundary inc mod7_smc+1 ; assume on page boundary
iny iny
bne div7_loop bne div7_loop
; ldy #0
; lda #0
;mod7_loop:
; sta mod7_table,Y
; clc
; adc #1
; cmp #7
; bne mod7_not7
; lda #0
;mod7_not7:
; iny
; bne mod7_loop
; Hposn table ; Hposn table
; hposn_low, hposn_high will each be filled with $C0 bytes ; hposn_low, hposn_high will each be filled with $C0 bytes

View File

@ -6,7 +6,7 @@ hgr_clear_codegen:
;======================== ;========================
; set up output pointers ; set up output pointers
lda #<(hgr_page1_clearscreen) lda #<(hgr_page1_clearscreen) ; assume both start page boundary
sta OUTL sta OUTL
sta INL sta INL
@ -29,7 +29,7 @@ hgr_clear_codegen_loop:
lda #$99 ; STA lda #$99 ; STA
jsr write_both jsr write_both
lda hposn_low,X lda hposn_low,X ; low is same both
jsr write_both jsr write_both
lda hposn_high,X lda hposn_high,X
@ -77,9 +77,11 @@ hgr_clear_codegen_loop:
lda #$60 ; RTS lda #$60 ; RTS
jsr write_both ; jsr write_both
rts ; tail call ; rts ; tail call
; fallthrough
;============================= ;=============================