mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-10 06:25:04 +00:00
wipes: add a few more
This commit is contained in:
@@ -10,12 +10,14 @@ all: wipes.dsk
|
||||
|
||||
wipes.dsk: HELLO \
|
||||
bubbles/WIPE_BUBBLES \
|
||||
cascade/WIPE_CASCADE \
|
||||
center/WIPE_CENTER \
|
||||
diamond/WIPE_DIAMOND \
|
||||
diamond_stripes/WIPE_DIAMOND_STRIPE \
|
||||
crystal/WIPE_CRYSTAL \
|
||||
fizzle/WIPE_FIZZLE \
|
||||
lr/WIPE_LR \
|
||||
cascade/WIPE_CASCADE
|
||||
thin_bar/WIPE_THIN_BAR
|
||||
cp $(EMPTY_DISK)/empty.dsk wipes.dsk
|
||||
$(DOS33) -y wipes.dsk SAVE A HELLO
|
||||
$(DOS33) -y wipes.dsk BSAVE -a 0x5700 bubbles/WIPE_BUBBLES
|
||||
@@ -25,7 +27,8 @@ wipes.dsk: HELLO \
|
||||
$(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
|
||||
|
||||
$(DOS33) -y wipes.dsk BSAVE -a 0x6000 thin_bar/WIPE_THIN_BAR
|
||||
$(DOS33) -y wipes.dsk BSAVE -a 0x6000 center/WIPE_CENTER
|
||||
###
|
||||
|
||||
HELLO: hello.bas
|
||||
@@ -39,6 +42,9 @@ bubbles/WIPE_BUBBLES:
|
||||
cascade/WIPE_CASCADE:
|
||||
cd cascade && make
|
||||
|
||||
center/WIPE_CENTER:
|
||||
cd center && make
|
||||
|
||||
crystal/WIPE_CRYSTAL:
|
||||
cd crystal && make
|
||||
|
||||
@@ -54,14 +60,19 @@ fizzle/WIPE_FIZZLE:
|
||||
lr/WIPE_LR:
|
||||
cd lr && make
|
||||
|
||||
thin_bar/WIPE_THIN_BAR:
|
||||
cd thin_bar && make
|
||||
|
||||
###
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst *.zx02 HELLO
|
||||
cd bubbles && make clean
|
||||
cd cascade && make clean
|
||||
cd center && make clean
|
||||
cd crystal && make clean
|
||||
cd diamond && make clean
|
||||
cd diamond_stripes && make clean
|
||||
cd crystal && make clean
|
||||
cd fizzle && make clean
|
||||
cd lr && make clean
|
||||
cd thin_bar && make clean
|
||||
|
24
graphics/hgr/wipes/center/Makefile
Normal file
24
graphics/hgr/wipes/center/Makefile
Normal file
@@ -0,0 +1,24 @@
|
||||
include ../../../../Makefile.inc
|
||||
|
||||
LINKER_SCRIPTS = ../../../../linker_scripts
|
||||
|
||||
all: WIPE_CENTER
|
||||
|
||||
###
|
||||
|
||||
WIPE_CENTER: wipe_center.o
|
||||
ld65 -o WIPE_CENTER wipe_center.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
|
||||
|
||||
wipe_center.o: wipe_center.s \
|
||||
../zp.inc ../hardware.inc ../wait_keypress.s ../zx02_optim.s \
|
||||
../main_macros.s \
|
||||
fx.hgr.center.by.pixel.s \
|
||||
../fx.lib.s \
|
||||
../macros.s
|
||||
ca65 -o wipe_center.o wipe_center.s -l wipe_center.lst
|
||||
|
||||
###
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst *.zx02 HELLO WIPE_CENTER
|
||||
|
126
graphics/hgr/wipes/center/fx.hgr.center.by.pixel.s
Normal file
126
graphics/hgr/wipes/center/fx.hgr.center.by.pixel.s
Normal file
@@ -0,0 +1,126 @@
|
||||
;license:MIT
|
||||
;(c) 2019 by 4am
|
||||
;
|
||||
;!cpu 6502
|
||||
;!to "build/FX.INDEXED/CENTER.BY.PIXEL",plain
|
||||
;*=$6000
|
||||
|
||||
copymask1 = $f2
|
||||
copymask2 = $f3
|
||||
skipcounter = $f7
|
||||
top = $f9
|
||||
bottom = $fa
|
||||
counter = $fb
|
||||
maskindex = $fc
|
||||
row = $fd
|
||||
col1 = $fe
|
||||
col2 = $ff
|
||||
|
||||
; !source "src/fx/macros.a"
|
||||
.include "../macros.s"
|
||||
; !source "src/constants.a"
|
||||
.include "../constants.s"
|
||||
|
||||
do_wipe_center:
|
||||
lda #44
|
||||
sta skipcounter
|
||||
lda #$5F
|
||||
sta counter
|
||||
lda #0
|
||||
sta top
|
||||
lda #$BF
|
||||
sta bottom
|
||||
lda #0
|
||||
sta col1
|
||||
lda #39
|
||||
sta col2
|
||||
ColLoop:
|
||||
lda #6
|
||||
sta maskindex
|
||||
jsr wait_vblank
|
||||
MaskLoop:
|
||||
ldx maskindex
|
||||
lda copymasks1,x
|
||||
sta copymask1
|
||||
lda copymasks2,x
|
||||
sta copymask2
|
||||
|
||||
lda #23
|
||||
sta row
|
||||
RowLoop:
|
||||
lda row
|
||||
HGR_ROW_CALC
|
||||
ldx #8
|
||||
BlockLoop:
|
||||
ldy col1
|
||||
lda ($26),y
|
||||
eor ($3c),y
|
||||
and copymask1
|
||||
eor ($26),y
|
||||
sta ($26),y
|
||||
|
||||
ldy col2
|
||||
lda ($26),y
|
||||
eor ($3c),y
|
||||
and copymask2
|
||||
eor ($26),y
|
||||
sta ($26),y
|
||||
|
||||
clc
|
||||
HGR_INC_WITHIN_BLOCK
|
||||
dex
|
||||
bne BlockLoop
|
||||
|
||||
dec row
|
||||
bpl RowLoop
|
||||
|
||||
dec skipcounter
|
||||
LBPL SkipTopAndBottom
|
||||
|
||||
lda top
|
||||
HGR_CALC
|
||||
ldy #39
|
||||
cbpm: lda ($3c),y
|
||||
sta ($26),y
|
||||
dey
|
||||
bpl cbpm
|
||||
inc top
|
||||
|
||||
lda bottom
|
||||
HGR_CALC
|
||||
ldy #39
|
||||
cbpm2: lda ($3c),y
|
||||
sta ($26),y
|
||||
dey
|
||||
bpl cbpm2
|
||||
dec bottom
|
||||
|
||||
dec counter
|
||||
bmi cExit
|
||||
SkipTopAndBottom:
|
||||
lda $c000
|
||||
bmi cExit
|
||||
dec maskindex
|
||||
LBPL MaskLoop
|
||||
inc col1
|
||||
dec col2
|
||||
LBNE ColLoop
|
||||
cExit: ; jmp UnwaitForVBL
|
||||
rts
|
||||
|
||||
copymasks1:
|
||||
.byte %11111111
|
||||
.byte %10111111
|
||||
.byte %10011111
|
||||
.byte %10001111
|
||||
.byte %10000111
|
||||
.byte %10000011
|
||||
.byte %10000001
|
||||
copymasks2:
|
||||
.byte %11111111
|
||||
.byte %11111110
|
||||
.byte %11111100
|
||||
.byte %11111000
|
||||
.byte %11110000
|
||||
.byte %11100000
|
||||
.byte %11000000
|
67
graphics/hgr/wipes/center/wipe_center.s
Normal file
67
graphics/hgr/wipes/center/wipe_center.s
Normal file
@@ -0,0 +1,67 @@
|
||||
; test 4-cade center by pixel wipe
|
||||
|
||||
.include "../zp.inc"
|
||||
.include "../hardware.inc"
|
||||
|
||||
wipe_center_by_pixel:
|
||||
|
||||
bit SET_GR
|
||||
bit HIRES
|
||||
bit FULLGR
|
||||
bit PAGE1
|
||||
|
||||
;=================================
|
||||
; intro
|
||||
;=================================
|
||||
|
||||
lda #<test_graphic
|
||||
sta zx_src_l+1
|
||||
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_center
|
||||
|
||||
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.center.by.pixel.s"
|
||||
|
||||
test_graphic:
|
||||
.incbin "../graphics/a2_dating.hgr.zx02"
|
||||
|
||||
.include "../zx02_optim.s"
|
||||
|
||||
.include "../vblank.s"
|
||||
|
||||
;.include "../wait_for_key.s"
|
@@ -191,9 +191,16 @@ end_pstring:
|
||||
;}
|
||||
|
||||
;!macro LBPL .target {
|
||||
.macro LBPL target
|
||||
; bmi +
|
||||
; jmp .target
|
||||
;+
|
||||
.local plus
|
||||
bmi plus
|
||||
jmp target
|
||||
plus:
|
||||
|
||||
.endmacro
|
||||
;}
|
||||
|
||||
;!macro LBMI .target {
|
||||
|
24
graphics/hgr/wipes/thin_bar/Makefile
Normal file
24
graphics/hgr/wipes/thin_bar/Makefile
Normal file
@@ -0,0 +1,24 @@
|
||||
include ../../../../Makefile.inc
|
||||
|
||||
LINKER_SCRIPTS = ../../../../linker_scripts
|
||||
|
||||
all: WIPE_THIN_BAR
|
||||
|
||||
###
|
||||
|
||||
WIPE_THIN_BAR: wipe_thin_bar.o
|
||||
ld65 -o WIPE_THIN_BAR wipe_thin_bar.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
|
||||
|
||||
wipe_thin_bar.o: wipe_thin_bar.s \
|
||||
../zp.inc ../hardware.inc ../wait_keypress.s ../zx02_optim.s \
|
||||
../main_macros.s \
|
||||
fx.hgr.thin.bar.dissolve.s \
|
||||
../fx.lib.s \
|
||||
../macros.s
|
||||
ca65 -o wipe_thin_bar.o wipe_thin_bar.s -l wipe_thin_bar.lst
|
||||
|
||||
###
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst *.zx02 HELLO WIPE_THIN_BAR
|
||||
|
75
graphics/hgr/wipes/thin_bar/fx.hgr.thin.bar.dissolve.s
Normal file
75
graphics/hgr/wipes/thin_bar/fx.hgr.thin.bar.dissolve.s
Normal file
@@ -0,0 +1,75 @@
|
||||
;license:MIT
|
||||
;(c) 2022 by 4am
|
||||
;
|
||||
;!cpu 6502
|
||||
;!to "build/FX.INDEXED/THIN.DISSOLVE",plain
|
||||
;*=$6000
|
||||
|
||||
row1 = $fe
|
||||
row2 = $ff
|
||||
src = $3c
|
||||
dst = $26
|
||||
|
||||
; !source "src/fx/macros.a"
|
||||
.include "../macros.s"
|
||||
|
||||
do_wipe_thin_bar:
|
||||
|
||||
lda #$00
|
||||
sta row1
|
||||
lda #$BF
|
||||
sta row2
|
||||
loop: lda row1
|
||||
jsr HGRCalc
|
||||
ldy #$27
|
||||
tbm: tya
|
||||
and #$03
|
||||
tax
|
||||
lda (src),y
|
||||
eor (dst),y ; merge source and destination bits
|
||||
and mask1,x ; isolate the bits to replace, zero the rest
|
||||
eor (dst),y ; unmerge source and destination bits, leaves 'to keep' destination bits intact
|
||||
sta (dst),y ; write the result
|
||||
dey
|
||||
bpl tbm
|
||||
lda row2
|
||||
jsr HGRCalc
|
||||
ldy #$27
|
||||
tbm2: tya
|
||||
and #$03
|
||||
tax
|
||||
lda (src),y
|
||||
eor (dst),y
|
||||
and mask3,x
|
||||
eor (dst),y
|
||||
sta (dst),y
|
||||
dey
|
||||
bpl tbm2
|
||||
lda #$30
|
||||
jsr WaitForKeyWithTimeout
|
||||
bmi tb_exit
|
||||
.if 0
|
||||
ldx mask1
|
||||
ldy mask3
|
||||
stx mask3
|
||||
sty mask1
|
||||
ldx mask2
|
||||
ldy mask4
|
||||
stx mask4
|
||||
sty mask2
|
||||
.endif
|
||||
inc row1
|
||||
dec row2
|
||||
lda row1
|
||||
cmp #$C0
|
||||
bne loop
|
||||
tb_exit: rts
|
||||
|
||||
HGR_CALC_ROUTINES
|
||||
|
||||
mask1: .byte %10110011
|
||||
mask2: .byte %11100110
|
||||
mask3: .byte %11001100
|
||||
mask4: .byte %10011001
|
||||
.byte %10110011
|
||||
.byte %11100110
|
67
graphics/hgr/wipes/thin_bar/wipe_thin_bar.s
Normal file
67
graphics/hgr/wipes/thin_bar/wipe_thin_bar.s
Normal file
@@ -0,0 +1,67 @@
|
||||
; test 4-cade thin bar dissolve wipe
|
||||
|
||||
.include "../zp.inc"
|
||||
.include "../hardware.inc"
|
||||
|
||||
wipe_thin_bar_dissolve:
|
||||
|
||||
bit SET_GR
|
||||
bit HIRES
|
||||
bit FULLGR
|
||||
bit PAGE1
|
||||
|
||||
;=================================
|
||||
; intro
|
||||
;=================================
|
||||
|
||||
lda #<test_graphic
|
||||
sta zx_src_l+1
|
||||
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_thin_bar
|
||||
|
||||
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.thin.bar.dissolve.s"
|
||||
|
||||
test_graphic:
|
||||
.incbin "../graphics/a2_dating.hgr.zx02"
|
||||
|
||||
.include "../zx02_optim.s"
|
||||
|
||||
.include "../vblank.s"
|
||||
|
||||
;.include "../wait_for_key.s"
|
Reference in New Issue
Block a user