diff --git a/demos/lovebyte2023/1k/blue_flame.s b/demos/lovebyte2023/1k/blue_flame.s index b2d3def3..8d030e41 100644 --- a/demos/lovebyte2023/1k/blue_flame.s +++ b/demos/lovebyte2023/1k/blue_flame.s @@ -1,6 +1,6 @@ ; Apple II graphics/music in 1k -; by deater (Vince Weaver) +; by deater (Vince Weaver) / DsR ; Lovebyte 2023 @@ -10,15 +10,10 @@ ; 1007 bytes -- merge in sier_parallax ; 1006 bytes -- mildly optimzie hgr table gen ; 1046 bytes (+26) -- add static_column - -; TODO: -; MIRROR (140) -; THICK_LINES (88) -; RAINBOW SQUARES (106) -; THICK (113) *** -; WIRES (91) -; STAGGERED (60) -; STATIC_COLUMN (44) *** +; 1044 bytes (+24) -- optimize hgr table gen +; 1040 bytes (+20) -- no need to init FRAME/FRAMEH +; 1038 bytes (+18) -- re-arrange sound init so don't have to set Y to 0 +; 1035 bytes (+15) -- combine memory zeroing functions .include "zp.inc" .include "hardware.inc" @@ -37,8 +32,24 @@ blue_flame: ; A and Y are 0 now? - sty FRAME ; init frame. Maybe only H important? - sty FRAMEH + + ;=================== + ; music Player Setup + + ; assume mockingboard in slot#4 + + ; inline mockingboard_init + + ; Y must be 0 + + + +.include "mockingboard_init.s" + + ; frame is in init area so need to init + +; sty FRAME ; init frame. Maybe only H important? +; sty FRAMEH ;=================== ; int tables @@ -63,9 +74,10 @@ hgr_table_loop: dex - cpx #$ff ; can't bpl/bmi as start > 128 +; cpx #$ff ; can't bpl/bmi as start > 128 bne hgr_table_loop ; though if never use address 0 can we? + ; lookup table of 0..40 but divided by 4 ; in $90 to $C0 or so @@ -75,23 +87,13 @@ div4_loop: asl asl sta div4_lookup,X + + lda #0 ; also clear out $60 - $87 (sound init, etc) + sta $60,X + dex bpl div4_loop - - ;=================== - ; music Player Setup - - ; assume mockingboard in slot#4 - - ; inline mockingboard_init - - ; Y must be 0 - - ldy #0 - -.include "mockingboard_init.s" - .include "tracker_init.s" cli ; enable music @@ -114,7 +116,6 @@ div4_loop: .include "letters.s" - .include "interrupt_handler.s" .include "mockingboard_constants.s" diff --git a/demos/lovebyte2023/1k/tracker_init.s b/demos/lovebyte2023/1k/tracker_init.s index c18b33e0..7170c89e 100644 --- a/demos/lovebyte2023/1k/tracker_init.s +++ b/demos/lovebyte2023/1k/tracker_init.s @@ -2,14 +2,17 @@ tracker_init: ; setup initial ay-3-8910 values (this depends on song) - ; claer out $70-$90 + ; clear out $60-$90 init_registers_to_zero: - ldx #$20 ; init registers to zero - lda #0 -init_loop: - sta AY_REGS,X - dex - bpl init_loop + + ; done elsewhere + +; ldx #$30 ; init registers to zero +; lda #0 +;init_loop: +; sta AY_REGS-16,X +; dex +; bpl init_loop lda #$38 ; ABC channels on sta AY_REGS+7 ; $07 mixer diff --git a/demos/lovebyte2023/1k/zp.inc b/demos/lovebyte2023/1k/zp.inc index 1bb94d21..90634336 100644 --- a/demos/lovebyte2023/1k/zp.inc +++ b/demos/lovebyte2023/1k/zp.inc @@ -11,6 +11,9 @@ GBASH = $27 BASL = $28 BASH = $29 +; our init routine zeros $60-$90 at start + + AY_REGS = $70 ; through = $7D @@ -39,12 +42,4 @@ ROTATE = $FD XPOS = $FE YPOS = $FF -.if 0 -SAVE_Y = $F7 -LETTER_X = $F8 -LETTER_Y = $F9 -COUNT = $FA -INL = $FD -INH = $FE -TEMP = $FF -.endif +