diff --git a/demos/rewind2/dancing/Makefile b/demos/rewind2/dancing/Makefile index 2b878b86..d8680b70 100644 --- a/demos/rewind2/dancing/Makefile +++ b/demos/rewind2/dancing/Makefile @@ -12,27 +12,56 @@ all: DANCING ### DANCING: dancing.o - ld65 -o DANCING dancing.o -C $(LINKER_SCRIPTS)/apple2_6000.inc + ld65 -o DANCING dancing.o -C $(LINKER_SCRIPTS)/apple2_2000.inc dancing.o: dancing.s \ ../zp.inc ../hardware.inc ../qload.inc ../common_defines.inc \ - aha001.main.zx02 aha001.aux.zx02 + aha.main.zx02 aha.aux.zx02 ca65 -o dancing.o dancing.s -l dancing.lst -#### +### -aha001.aux.zx02: aha001.aux - $(ZX02) aha001.aux aha001.aux.zx02 +aha.main: aha001.main aha002.main aha003.main aha004.main + cat aha001.main aha002.main aha003.main aha004.main > aha.main + +aha.main.zx02: aha.main + $(ZX02) aha.main aha.main.zx02 + +### + +aha.aux: aha001.aux aha002.aux aha003.aux aha004.aux + cat aha001.aux aha002.aux aha003.aux aha004.aux > aha.aux + +aha.aux.zx02: aha.aux + $(ZX02) aha.aux aha.aux.zx02 + +### aha001.aux: aha001.png $(PNG_TO_DGR) aha001.png aha001 -aha001.main.zx02: aha001.main - $(ZX02) aha001.main aha001.main.zx02 +aha002.aux: aha002.png + $(PNG_TO_DGR) aha002.png aha002 + +aha003.aux: aha003.png + $(PNG_TO_DGR) aha003.png aha003 + +aha004.aux: aha004.png + $(PNG_TO_DGR) aha004.png aha004 + +##### aha001.main: aha001.png $(PNG_TO_DGR) aha001.png aha001 +aha002.main: aha002.png + $(PNG_TO_DGR) aha002.png aha002 + +aha003.main: aha003.png + $(PNG_TO_DGR) aha003.png aha003 + +aha004.main: aha004.png + $(PNG_TO_DGR) aha004.png aha004 #### diff --git a/demos/rewind2/dancing/copy_400.s b/demos/rewind2/dancing/copy_400.s index b5af1e1a..6b778e86 100644 --- a/demos/rewind2/dancing/copy_400.s +++ b/demos/rewind2/dancing/copy_400.s @@ -1,32 +1,53 @@ ;========================= ; copy to 400 ;========================= + ; X is page to copy from copy_to_400: + stx c400_smc1+2 + stx c400_smc2+2 + inx + stx c400_smc3+2 + stx c400_smc4+2 + inx + stx c400_smc5+2 + stx c400_smc6+2 + inx + stx c400_smc7+2 + stx c400_smc8+2 ldx #119 looper1: + +c400_smc1: lda $2000,X sta $400,X +c400_smc2: lda $2080,X sta $480,X +c400_smc3: lda $2100,X sta $500,X +c400_smc4: lda $2180,X sta $580,X +c400_smc5: lda $2200,X sta $600,X +c400_smc6: lda $2280,X sta $680,X +c400_smc7: lda $2300,X sta $700,X +c400_smc8: lda $2380,X sta $780,X dex diff --git a/demos/rewind2/dancing/dancing.s b/demos/rewind2/dancing/dancing.s index 3b2ada60..c72a8828 100644 --- a/demos/rewind2/dancing/dancing.s +++ b/demos/rewind2/dancing/dancing.s @@ -12,11 +12,11 @@ dancing: bit KEYRESET ; just to be safe lda #0 + sta DANCE_COUNT ;================================= ; Dancing ;================================= - ; FIXME: make this properly animate bit SET_GR bit LORES @@ -27,40 +27,62 @@ dancing: bit PAGE1 ; start in page1 - lda #aha1_main + lda #>aha_main sta zx_src_h+1 - lda #$20 + lda #$40 jsr zx02_full_decomp - jsr copy_to_400 ; auxiliary part - bit PAGE2 - lda #aha1_aux + lda #>aha_aux sta zx_src_h+1 - lda #$20 + lda #$70 jsr zx02_full_decomp - jsr copy_to_400 ; wait a bit +animate_loop: + bit PAGE1 - lda #3 - jsr wait_seconds + ldy DANCE_COUNT + ldx animation_main,Y -; jsr wait_until_keypress +; ldx #$40 + jsr copy_to_400 + bit PAGE2 + + ldy DANCE_COUNT + ldx animation_aux,Y +; ldx #$70 + jsr copy_to_400 + + jsr wait_until_keypress + + inc DANCE_COUNT + lda DANCE_COUNT + cmp #4 + bne animate_loop + lda #0 + sta DANCE_COUNT + beq animate_loop rts +animation_aux: + .byte $70,$74,$78,$7c -aha1_aux: - .incbin "aha1.aux.zx02" +animation_main: + .byte $40,$44,$48,$4c -aha1_main: - .incbin "aha1.main.zx02" +aha_aux: + .incbin "aha.aux.zx02" + +aha_main: + .incbin "aha.main.zx02" .include "copy_400.s" diff --git a/demos/rewind2/qload.s b/demos/rewind2/qload.s index b840f448..395502d5 100644 --- a/demos/rewind2/qload.s +++ b/demos/rewind2/qload.s @@ -167,15 +167,15 @@ which_disk_array: .byte 1,1,1,1 ; BEAR load_address_array: - .byte $D0,$D0,$60,$60 ; ???, MUSIC, HEADPHONES, DANCING + .byte $D0,$D0,$60,$20 ; ???, MUSIC, HEADPHONES, DANCING .byte $60,$60,$40,$80 ; BEAR start_address: - .byte $D0,$D0,$60,$60 ; ???, MUSIC, HEADPHONES, DANCING + .byte $D0,$D0,$60,$20 ; ???, MUSIC, HEADPHONES, DANCING .byte $60,$60,$40,$80 ; BEAR aux_dest: - .byte $D0,$D0,$60,$60 ; ???, MUSIC, HEADPHONES, DANCING + .byte $D0,$D0,$60,$20 ; ???, MUSIC, HEADPHONES, DANCING .byte $60,$40,$02,$82 ; BEAR track_array: diff --git a/demos/rewind2/start.s b/demos/rewind2/start.s index 298a6a85..4747de41 100644 --- a/demos/rewind2/start.s +++ b/demos/rewind2/start.s @@ -200,7 +200,7 @@ load_program_loop: ; Run headphones ;======================= ;======================= - +.if 0 ; load from disk sei @@ -215,7 +215,7 @@ load_program_loop: jsr $6000 - +.endif ;======================= ;======================= ; Run Dancing @@ -240,7 +240,7 @@ load_program_loop: ;====================== ; start dancing - jsr $6000 + jsr $2000 .if 0 ; copy ATRUS from AUX $8200 to MAIN $8000 @@ -260,99 +260,10 @@ load_program_loop: blah: jmp blah -.if 0 - ;======================= - ;======================= - ; Run Maglev - ;======================= - ;======================= - ; copy MAGLEV from AUX $200 to MAIN $4000 - - lda #$02 ; AUX src $1000 - ldy #$40 ; MAIN dest $4000 - ldx #127 ; 127 pages - jsr copy_aux_main - - ; run maglev - - jsr $4000 - -.endif - - -.if 0 - ;======================= - ;======================= - ; Load GRAPHICS - ;======================= - ;======================= - - sei ; stop music interrupts - jsr mute_ay_both -; jsr clear_ay_both ; stop from making noise - - ; load GRAPHICS - - lda #PART_GRAPHICS ; GRAPHICS - sta WHICH_LOAD - jsr load_file - - - ; restart music - - jsr unmute_ay_both - cli ; start interrupts (music) - - ; Run GRAPHICS - - jsr $6000 - - - ;======================= - ;======================= - ; Load Credits - ;======================= - ;======================= - -.if DEBUG=1 - ; skip to credits music - lda #72 ; FIXME: not right - sta current_pattern_smc+1 - jsr pt3_set_pattern -.endif - - sei ; stop music interrupts - jsr mute_ay_both - jsr clear_ay_both ; stop from making noise - - ; load credits - - lda #PART_CREDITS ; CREDITS - sta WHICH_LOAD - jsr load_file - - - ; restart music - - cli ; start interrupts (music) - - ; Run Credits - - - jsr $8000 - - - ; in theory never get here... - -.endif - -forever: - jmp forever - start_message: .byte 0,0,"LOADING REWIND2 PROOF OF CONCEPT",0 - .byte 0,1,"REQUIRES APPLE IIE, 128K, MOCKINGBOARD",0 + .byte 0,1,"REQUIRES APPLE IIE/C/GS, 128K, MOCKINGBOARD",0 .byte 0,3,"SYSTEM DETECTED: APPLE II" message_type_offset: .byte " ",0 diff --git a/demos/rewind2/zp.inc b/demos/rewind2/zp.inc index af28b2d5..ce29613e 100644 --- a/demos/rewind2/zp.inc +++ b/demos/rewind2/zp.inc @@ -161,7 +161,8 @@ COLORSC = $F8 COLORSB = $F9 COLORSA = $FA - +; dancing +DANCE_COUNT = $F0 ;==============================================