diff --git a/graphics/hgr/wipes/Makefile b/graphics/hgr/wipes/Makefile index 1e21764f..b8ec7e6c 100644 --- a/graphics/hgr/wipes/Makefile +++ b/graphics/hgr/wipes/Makefile @@ -14,7 +14,8 @@ wipes.dsk: HELLO \ diamond_stripes/WIPE_DIAMOND_STRIPE \ crystal/WIPE_CRYSTAL \ fizzle/WIPE_FIZZLE \ - lr/WIPE_LR + lr/WIPE_LR \ + cascade/WIPE_CASCADE cp $(EMPTY_DISK)/empty.dsk wipes.dsk $(DOS33) -y wipes.dsk SAVE A HELLO $(DOS33) -y wipes.dsk BSAVE -a 0x5700 bubbles/WIPE_BUBBLES @@ -23,6 +24,7 @@ wipes.dsk: HELLO \ $(DOS33) -y wipes.dsk BSAVE -a 0x6000 crystal/WIPE_CRYSTAL $(DOS33) -y wipes.dsk BSAVE -a 0x6000 fizzle/WIPE_FIZZLE $(DOS33) -y wipes.dsk BSAVE -a 0x6000 lr/WIPE_LR + $(DOS33) -y wipes.dsk BSAVE -a 0x6000 cascade/WIPE_CASCADE ### @@ -34,6 +36,9 @@ HELLO: hello.bas bubbles/WIPE_BUBBLES: cd bubbles && make +cascade/WIPE_CASCADE: + cd cascade && make + crystal/WIPE_CRYSTAL: cd crystal && make @@ -54,6 +59,7 @@ lr/WIPE_LR: clean: rm -f *~ *.o *.lst *.zx02 HELLO cd bubbles && make clean + cd cascade && make clean cd diamond && make clean cd diamond_stripes && make clean cd crystal && make clean diff --git a/graphics/hgr/wipes/cascade/Makefile b/graphics/hgr/wipes/cascade/Makefile new file mode 100644 index 00000000..164a4e5a --- /dev/null +++ b/graphics/hgr/wipes/cascade/Makefile @@ -0,0 +1,24 @@ +include ../../../../Makefile.inc + +LINKER_SCRIPTS = ../../../../linker_scripts + +all: WIPE_CASCADE + +### + +WIPE_CASCADE: wipe_cascade.o + ld65 -o WIPE_CASCADE wipe_cascade.o -C $(LINKER_SCRIPTS)/apple2_6000.inc + +wipe_cascade.o: wipe_cascade.s \ + ../zp.inc ../hardware.inc ../wait_keypress.s ../zx02_optim.s \ + ../main_macros.s \ + fx.hgr.cascade.s \ + ../fx.lib.s \ + ../macros.s + ca65 -o wipe_cascade.o wipe_cascade.s -l wipe_cascade.lst + +### + +clean: + rm -f *~ *.o *.lst *.zx02 HELLO WIPE_CASCADE + diff --git a/graphics/hgr/wipes/cascade/fx.hgr.cascade.s b/graphics/hgr/wipes/cascade/fx.hgr.cascade.s new file mode 100644 index 00000000..fbe18958 --- /dev/null +++ b/graphics/hgr/wipes/cascade/fx.hgr.cascade.s @@ -0,0 +1,110 @@ +;license:MIT +;(c) 2019 by qkumba + +;!cpu 6502 +;!to "build/FX.INDEXED/CASCADE",plain +;*=$6000 + + ; !source "src/constants.a" + + .include "../constants.s" + +do_wipe_cascade: + + ldx #191 + +dwc_mmm: + jsr wait_vblank + lda #$40 + sta $e6 + lsr + sta $29 + jsr vposn + lsr $e6 + + ldy #$27 +dwc_m: lda ($26), y + sta $2000, y + dey + bpl dwc_m + + stx maxline + 1 + + ldx #0 + stx $28 + beq dwc_p ;always + +dwc_mm: + lda $26 + sta $28 + lda $27 + sta $29 +dwc_p: inx + jsr vposn + + ldy #$27 +dwc_m1: lda ($28), y + sta ($26), y + dey + bpl dwc_m1 + +maxline: + cpx #$d1 ;SMC + bne dwc_mm + + ldy #5 + +dwc_mm2: tya + pha + dex + jsr vposn + + lda $26 + sta $28 + lda $27 + eor #$60 + sta $29 + + ldy #$27 +dwc_m2: lda ($28), y + sta ($26), y + dey + bpl dwc_m2 + + pla + tay + dey + bne dwc_m2 + + txa + beq done + dex + lda $c000 + bpl dwc_mmm + +done: ; jmp UnwaitForVBL + rts + +vposn: txa + pha + and #$c0 + sta $26 + lsr + lsr + ora $26 + sta $26 + pla + sta $27 + asl + asl + asl + rol $27 + asl + rol $27 + asl + ror $26 + lda $27 + and #$1f + ora $e6 + sta $27 + rts diff --git a/graphics/hgr/wipes/cascade/wipe_cascade.s b/graphics/hgr/wipes/cascade/wipe_cascade.s new file mode 100644 index 00000000..bb7efa7f --- /dev/null +++ b/graphics/hgr/wipes/cascade/wipe_cascade.s @@ -0,0 +1,67 @@ +; test 4-cade cascade wipe + +.include "../zp.inc" +.include "../hardware.inc" + +wipe_cascade: + + bit SET_GR + bit HIRES + bit FULLGR + bit PAGE1 + + ;================================= + ; intro + ;================================= + + lda #test_graphic + sta zx_src_h+1 + lda #$20 + jsr zx02_full_decomp + +; ldy #0 +;fake_hgr2: +; lda #$0 +; sta $4000,Y +; dey +; bne fake_hgr2 +; +; inc fake_hgr2+2 +; lda fake_hgr2+2 +; cmp #$60 +; bne fake_hgr2 + + + jsr HGR2 + bit PAGE1 + + jsr wait_until_keypress + + ;================================= + ; test wipe... + ;================================= +test_loop: + + jsr do_wipe_cascade + + jsr wait_until_keypress + jmp test_loop + +.include "../wait_keypress.s" + +.include "../fx.lib.s" +.include "../main_macros.s" +.include "../macros.hgr.s" + +.include "fx.hgr.cascade.s" + +test_graphic: + .incbin "../graphics/a2_dating.hgr.zx02" + +.include "../zx02_optim.s" + +.include "../vblank.s" + +;.include "../wait_for_key.s"