loveduck: more work
This commit is contained in:
parent
59b27359eb
commit
6e4d96942e
|
@ -27,15 +27,15 @@ HELLO: hello.bas
|
|||
|
||||
submit: blue_flame.zip
|
||||
|
||||
blue_flame.zip: BLUE_FLAME blue_flame.dsk
|
||||
blue_flame.zip: BF blue_flame.dsk
|
||||
mkdir -p lovebyte2023_blue_flame
|
||||
mkdir -p lovebyte2023_blue_flame/src
|
||||
cp BLUE_FLAME ./lovebyte2023_blue_flame
|
||||
cp BF ./lovebyte2023_blue_flame
|
||||
cp *.s ./lovebyte2023_blue_flame/src
|
||||
cp *.inc ./lovebyte2023_blue_flame/src
|
||||
cp file_id.diz ./lovebyte2023_blue_flame
|
||||
cp blue_flame.dsk ./lovebyte2023_blue_flame
|
||||
cp blue_flame.mp4 ./lovebyte2023_blue_flame
|
||||
cp blue_flame_720p.mp4 ./lovebyte2023_blue_flame
|
||||
cp blue_flame_screen.png ./lovebyte2023_blue_flame
|
||||
zip -r blue_flame.zip lovebyte2023_blue_flame
|
||||
|
||||
|
|
|
@ -7,17 +7,45 @@ PICTUREDSK = ~/research/picturedsk.git/picturedsk
|
|||
LINKER_SCRIPTS = ../../../linker_scripts/
|
||||
ZX02 = ~/research/6502_compression/zx02.git/build/zx02
|
||||
|
||||
all: love_duck.dsk
|
||||
all: love_duck.dsk love_duck.woz love_duck_raw.dsk
|
||||
|
||||
###
|
||||
|
||||
love_duck.dsk: HELLO LOVE_DUCK
|
||||
cp $(EMPTYDISK) love_duck.dsk
|
||||
$(DOS33) -y love_duck.dsk SAVE A HELLO
|
||||
$(DOS33) -y love_duck.dsk BSAVE -a 0xc00 LOVE_DUCK
|
||||
|
||||
love_duck.dsk: LD
|
||||
# 0, 7, 14, 6, 13, 5, 12, 4, 11, 3, 10, 2, 9, 1, 8, 15
|
||||
dd if=/dev/zero of=love_duck.dsk bs=256 count=560
|
||||
dd conv=notrunc if=LD of=love_duck.dsk bs=256 count=1
|
||||
dd conv=notrunc if=LD of=love_duck.dsk bs=256 count=1 seek=7 skip=1
|
||||
|
||||
###
|
||||
|
||||
love_duck.woz: LD
|
||||
$(PICTUREDSK) ./flux_image/duck.bmp love_duck.woz LD
|
||||
|
||||
|
||||
|
||||
###
|
||||
|
||||
love_duck_raw.dsk: HELLO LOVE_DUCK LD
|
||||
cp $(EMPTYDISK) love_duck_raw.dsk
|
||||
$(DOS33) -y love_duck_raw.dsk SAVE A HELLO
|
||||
$(DOS33) -y love_duck_raw.dsk BSAVE -a 0x1000 LOVE_DUCK
|
||||
|
||||
###
|
||||
|
||||
LOVE_DUCK.ZX02: LOVE_DUCK
|
||||
$(ZX02) -f LOVE_DUCK LOVE_DUCK.ZX02
|
||||
|
||||
LD: ld.o
|
||||
ld65 -o LD ld.o -C $(LINKER_SCRIPTS)/apple2_800.inc
|
||||
|
||||
ld.o: ld.s zx02_small.s LOVE_DUCK.ZX02
|
||||
ca65 -o ld.o ld.s -l ld.lst
|
||||
|
||||
|
||||
|
||||
###
|
||||
HELLO: hello.bas
|
||||
$(TOKENIZE) < hello.bas > HELLO
|
||||
|
||||
|
@ -41,7 +69,7 @@ love_duck.zip: LOVE_DUCK love_duck.dsk
|
|||
####
|
||||
|
||||
LOVE_DUCK: love_duck.o
|
||||
ld65 -o LOVE_DUCK love_duck.o -C $(LINKER_SCRIPTS)/apple2_c00.inc
|
||||
ld65 -o LOVE_DUCK love_duck.o -C $(LINKER_SCRIPTS)/apple2_1000.inc
|
||||
|
||||
love_duck.o: love_duck.s speaker_beeps.s dsr_lores.s
|
||||
ca65 -o love_duck.o love_duck.s -l love_duck.lst
|
||||
|
|
|
@ -57,7 +57,11 @@ XX = $FF
|
|||
|
||||
|
||||
love_duck:
|
||||
jsr dsr_rotate
|
||||
|
||||
; .byte 2 ; number of sectors to load
|
||||
; lda $C088,X ; turn off drive motor
|
||||
|
||||
; jsr dsr_rotate
|
||||
|
||||
|
||||
bit SET_GR ; switch to lo-res mode
|
||||
|
@ -129,16 +133,16 @@ inner_loop:
|
|||
; A=color
|
||||
|
||||
;====================
|
||||
; draw the stars
|
||||
; draw the hearts
|
||||
;====================
|
||||
|
||||
lda #32 ; start from right to save a byte
|
||||
|
||||
;======================
|
||||
; draw 8x8 bitmap star
|
||||
;======================
|
||||
;=======================
|
||||
; draw 8x8 bitmap hearts
|
||||
;=======================
|
||||
; A is XPOS on entry
|
||||
draw_star:
|
||||
draw_heart:
|
||||
|
||||
; calculate YPOS
|
||||
sta XPOS
|
||||
|
@ -152,6 +156,65 @@ draw_star:
|
|||
lda bounce,X
|
||||
sta YPOS
|
||||
|
||||
lda #<heart_bitmap
|
||||
sta sprite_smc+1
|
||||
|
||||
lda #$11 ; red
|
||||
sta color_smc+1
|
||||
|
||||
jsr draw_sprite
|
||||
|
||||
|
||||
lda XPOS ; move to next position
|
||||
; going right to left saves 2 bytes for cmp
|
||||
sec
|
||||
sbc #16
|
||||
|
||||
; X is $FF here
|
||||
; Y is $FF here
|
||||
; A is -16 here
|
||||
|
||||
bpl draw_heart
|
||||
|
||||
;===============
|
||||
; draw duck
|
||||
|
||||
lda #32
|
||||
sta XPOS
|
||||
lda #1
|
||||
sta YPOS
|
||||
|
||||
lda #$44 ; green
|
||||
sta color_smc+1
|
||||
|
||||
lda #<duck_bitmap_left
|
||||
sta sprite_smc+1
|
||||
|
||||
jsr draw_sprite
|
||||
|
||||
lda #24
|
||||
sta XPOS
|
||||
|
||||
lda #$99 ; orange
|
||||
sta color_smc+1
|
||||
|
||||
lda #<duck_bitmap_left_beak
|
||||
sta sprite_smc+1
|
||||
|
||||
jsr draw_sprite
|
||||
|
||||
|
||||
jmp main_loop
|
||||
; bmi main_loop ; bra
|
||||
|
||||
|
||||
|
||||
|
||||
;===========================
|
||||
; draw_sprite
|
||||
;===========================
|
||||
draw_sprite:
|
||||
|
||||
|
||||
ldx #7 ; draw 7 lines
|
||||
boxloop:
|
||||
|
@ -180,6 +243,7 @@ boxloop:
|
|||
|
||||
|
||||
ldy #7 ; 8-bits wide
|
||||
sprite_smc:
|
||||
lda bitmap,X ; get low bit of bitmap into carry
|
||||
draw_line_loop:
|
||||
lsr
|
||||
|
@ -188,6 +252,7 @@ draw_line_loop:
|
|||
|
||||
bcc its_transparent
|
||||
|
||||
color_smc:
|
||||
lda #$11 ; red
|
||||
sta (GBASL),Y ; draw on screen
|
||||
its_transparent:
|
||||
|
@ -200,17 +265,10 @@ its_transparent:
|
|||
dex
|
||||
bpl boxloop
|
||||
|
||||
lda XPOS ; move to next position
|
||||
; going right to left saves 2 bytes for cmp
|
||||
sec
|
||||
sbc #16
|
||||
rts
|
||||
|
||||
|
||||
; X is $FF here
|
||||
; Y is $FF here
|
||||
; A is -16 here
|
||||
|
||||
bpl draw_star
|
||||
bmi main_loop
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue