dos33fsprogs/games/sb/fn.s

178 lines
3.0 KiB
ArmAsm
Raw Normal View History

2023-05-02 01:14:07 +00:00
; Animation from SBEMAIL #152
;
; Yet Another HR project
;
; by deater (Vince Weaver) <vince@deater.net>
.include "zp.inc"
.include "hardware.inc"
fortnight_start:
2023-05-02 04:50:49 +00:00
lda #$20
sta HGR_PAGE
jsr hgr_make_tables
2023-05-02 01:14:07 +00:00
;===================
; set graphics mode
;===================
jsr HOME
bit HIRES
bit FULLGR
bit SET_GR
bit PAGE1
;==========================
; Floppy Animation
;===========================
floppy_animation:
lda #<fn_image
sta ZX0_src
lda #>fn_image
sta ZX0_src+1
lda #$20
jsr full_decomp
2023-05-02 05:06:29 +00:00
reset_floppy_loop:
lda #0
sta XPOS
floppy_loop:
ldx XPOS
2023-05-02 04:50:49 +00:00
2023-05-02 05:06:29 +00:00
lda floppy_x,X
2023-05-02 04:50:49 +00:00
sta CURSOR_X
2023-05-02 05:06:29 +00:00
lda #4
2023-05-02 04:50:49 +00:00
sta CURSOR_Y
2023-05-02 05:06:29 +00:00
lda floppy_sprite_l,X
2023-05-02 04:50:49 +00:00
sta INL
2023-05-02 05:06:29 +00:00
lda floppy_sprite_h,X
2023-05-02 04:50:49 +00:00
sta INH
2023-05-02 05:06:29 +00:00
lda floppy_mask_l,X
2023-05-02 04:50:49 +00:00
sta MASKL
2023-05-02 05:06:29 +00:00
lda floppy_mask_h,X
2023-05-02 04:50:49 +00:00
sta MASKH
jsr hgr_draw_sprite
2023-05-02 01:14:07 +00:00
jsr wait_until_keypress
2023-05-02 05:06:29 +00:00
inc XPOS
lda XPOS
cmp #17
bcc floppy_loop
bcs reset_floppy_loop
2023-05-02 01:14:07 +00:00
;==========================
; "breakdancing" rat
;==========================
load_rats:
lda #<rat1_image
sta ZX0_src
lda #>rat1_image
sta ZX0_src+1
lda #$20
jsr full_decomp
lda #<rat2_image
sta ZX0_src
lda #>rat2_image
sta ZX0_src+1
lda #$40
jsr full_decomp
2023-05-02 04:50:49 +00:00
;=============================
; play music and animate rat
;=============================
play_music:
lda #<music
sta MADDRL
lda #>music
sta MADDRH
jsr play_ed
2023-05-02 01:14:07 +00:00
rat_loop:
2023-05-02 04:50:49 +00:00
; bit PAGE1
; jsr wait_until_keypress
; bit PAGE2
2023-05-02 01:14:07 +00:00
jsr wait_until_keypress
2023-05-02 04:50:49 +00:00
; jmp rat_loop
2023-05-02 01:14:07 +00:00
2023-05-02 04:50:49 +00:00
jmp fortnight_start
2023-05-02 01:14:07 +00:00
wait_until_keypress:
lda KEYPRESS ; 4
bpl wait_until_keypress ; 3
bit KEYRESET ; clear the keyboard buffer
rts
.include "zx02_optim.s"
2023-05-02 04:50:49 +00:00
.include "hgr_sprite_mask.s"
.include "hgr_tables.s"
.align $100
.include "duet.s"
music:
.incbin "fn_sound/fortnight.ed"
2023-05-02 01:14:07 +00:00
fn_image:
.incbin "fn_graphics/a2_fortnight.hgr.zx02"
rat1_image:
.incbin "fn_graphics/a2_fortnight_rat1.hgr.zx02"
rat2_image:
.incbin "fn_graphics/a2_fortnight_rat2.hgr.zx02"
2023-05-02 04:50:49 +00:00
.include "fn_graphics/disk_sprites.inc"
2023-05-02 05:06:29 +00:00
floppy_x:
.byte 10,12,14,16
.byte 18,20,22,24
.byte 26,24,22,20,18
.byte 16,14,12,10
floppy_sprite_l:
.byte <disk_sprite0,<disk_sprite1,<disk_sprite2,<disk_sprite3
.byte <disk_sprite4,<disk_sprite5,<disk_sprite6,<disk_sprite7
.byte <disk_sprite0,<disk_sprite7,<disk_sprite6,<disk_sprite5
.byte <disk_sprite4,<disk_sprite3,<disk_sprite2,<disk_sprite1
.byte <disk_sprite0
floppy_sprite_h:
.byte >disk_sprite0,>disk_sprite1,>disk_sprite2,>disk_sprite3
.byte >disk_sprite4,>disk_sprite5,>disk_sprite6,>disk_sprite7
.byte >disk_sprite0,>disk_sprite7,>disk_sprite6,>disk_sprite5
.byte >disk_sprite4,>disk_sprite3,>disk_sprite2,>disk_sprite1
.byte >disk_sprite0
floppy_mask_l:
.byte <disk_mask0,<disk_mask1,<disk_mask2,<disk_mask3
.byte <disk_mask4,<disk_mask5,<disk_mask6,<disk_mask7
.byte <disk_mask6,<disk_mask5,<disk_mask4,<disk_mask3
.byte <disk_mask2,<disk_mask1,<disk_mask0,<disk_mask0
floppy_mask_h:
.byte >disk_mask0,>disk_mask1,>disk_mask2,>disk_mask3
.byte >disk_mask4,>disk_mask5,>disk_mask6,>disk_mask7
.byte >disk_mask6,>disk_mask5,>disk_mask4,>disk_mask3
.byte >disk_mask2,>disk_mask1,>disk_mask0,>disk_mask0