mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-08 00:29:35 +00:00
trogdor: add scroll down
This commit is contained in:
parent
8e82b8f44e
commit
d8be4e48c7
|
@ -189,7 +189,7 @@ trogdor.o: trogdor.s \
|
||||||
zp.inc hardware.inc qload.inc \
|
zp.inc hardware.inc qload.inc \
|
||||||
graphics/trog00_trogdor.hgr.zx02 \
|
graphics/trog00_trogdor.hgr.zx02 \
|
||||||
hgr_sprite_big_mask.s horiz_scroll_simple.s hgr_copy_magnify.s \
|
hgr_sprite_big_mask.s horiz_scroll_simple.s hgr_copy_magnify.s \
|
||||||
horiz_scroll_skip.s vertical_scroll.s hgr_copy_part.s
|
horiz_scroll_skip.s vertical_scroll_down.s hgr_copy_part.s
|
||||||
ca65 -o trogdor.o trogdor.s -l trogdor.lst
|
ca65 -o trogdor.o trogdor.s -l trogdor.lst
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -87,9 +87,6 @@ trog_no_music:
|
||||||
; left tall 1212 roughly 10 frames (1/2 s)
|
; left tall 1212 roughly 10 frames (1/2 s)
|
||||||
; left short 2 frames
|
; left short 2 frames
|
||||||
|
|
||||||
;======================================
|
|
||||||
; left flame short 2 frames
|
|
||||||
|
|
||||||
; clear to white
|
; clear to white
|
||||||
ldy #$7f
|
ldy #$7f
|
||||||
jsr hgr_clear_screen
|
jsr hgr_clear_screen
|
||||||
|
@ -100,10 +97,10 @@ trog_no_music:
|
||||||
jsr hgr_page_flip
|
jsr hgr_page_flip
|
||||||
|
|
||||||
|
|
||||||
lda #0
|
lda #0 ; blank bg
|
||||||
sta FLAME_BG
|
sta FLAME_BG
|
||||||
|
|
||||||
lda #8
|
lda #8 ; x-coords for two flames
|
||||||
sta FLAME_L
|
sta FLAME_L
|
||||||
lda #24
|
lda #24
|
||||||
sta FLAME_R
|
sta FLAME_R
|
||||||
|
@ -137,9 +134,6 @@ trog_no_music:
|
||||||
jsr hgr_clear_screen
|
jsr hgr_clear_screen
|
||||||
jsr hgr_page_flip
|
jsr hgr_page_flip
|
||||||
|
|
||||||
; lda #24 ; 192/8
|
|
||||||
; sta ANIMATE_COUNT
|
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta COUNT
|
sta COUNT
|
||||||
|
|
||||||
|
@ -222,10 +216,26 @@ scroll_in_loop:
|
||||||
lda #42
|
lda #42
|
||||||
jsr wait_ticks
|
jsr wait_ticks
|
||||||
|
|
||||||
|
;=====================
|
||||||
|
; do flames
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta FLAME_BG
|
sta FLAME_BG
|
||||||
jsr do_flames
|
jsr do_flames
|
||||||
|
|
||||||
|
;=====================
|
||||||
|
; done flames
|
||||||
|
|
||||||
|
ldy #$7f
|
||||||
|
jsr hgr_clear_screen
|
||||||
|
|
||||||
|
jsr hgr_copy_left
|
||||||
|
|
||||||
|
jsr hgr_page_flip
|
||||||
|
|
||||||
|
lda #30
|
||||||
|
jsr wait_ticks
|
||||||
|
|
||||||
|
|
||||||
;======================================
|
;======================================
|
||||||
; dragon man
|
; dragon man
|
||||||
|
@ -274,10 +284,15 @@ scroll_in_loop:
|
||||||
jsr wait_ticks
|
jsr wait_ticks
|
||||||
|
|
||||||
;==========================
|
;==========================
|
||||||
|
; dragon zoom
|
||||||
|
|
||||||
lda #$60
|
lda #$60
|
||||||
jsr hgr_copy_magnify
|
jsr hgr_copy_magnify
|
||||||
|
|
||||||
|
;===========================
|
||||||
|
; rapidly switch
|
||||||
|
|
||||||
|
|
||||||
lda #12
|
lda #12
|
||||||
sta ANIMATE_COUNT
|
sta ANIMATE_COUNT
|
||||||
rapid_switch:
|
rapid_switch:
|
||||||
|
@ -289,6 +304,32 @@ rapid_switch:
|
||||||
dec ANIMATE_COUNT
|
dec ANIMATE_COUNT
|
||||||
bne rapid_switch
|
bne rapid_switch
|
||||||
|
|
||||||
|
|
||||||
|
;===h========================
|
||||||
|
; scroll off screen
|
||||||
|
|
||||||
|
; switch to page1
|
||||||
|
ldy #$7f
|
||||||
|
jsr hgr_clear_screen
|
||||||
|
jsr hgr_copy_left
|
||||||
|
jsr hgr_page_flip
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta COUNT
|
||||||
|
|
||||||
|
scroll_down_in_loop:
|
||||||
|
|
||||||
|
jsr hgr_vertical_scroll_down_left
|
||||||
|
|
||||||
|
lda COUNT
|
||||||
|
clc
|
||||||
|
adc #8
|
||||||
|
sta COUNT
|
||||||
|
|
||||||
|
cmp #200
|
||||||
|
bne scroll_down_in_loop
|
||||||
|
|
||||||
|
;=========================
|
||||||
; clear to white screen
|
; clear to white screen
|
||||||
|
|
||||||
ldy #$7f
|
ldy #$7f
|
||||||
|
@ -503,8 +544,8 @@ trog04_graphics:
|
||||||
.include "irq_wait.s"
|
.include "irq_wait.s"
|
||||||
|
|
||||||
|
|
||||||
;hposn_low = $1e00
|
hposn_low = $1e00
|
||||||
;hposn_high = $1f00
|
hposn_high = $1f00
|
||||||
|
|
||||||
;.include "hgr_sprite_big_mask.s"
|
;.include "hgr_sprite_big_mask.s"
|
||||||
;.include "horiz_scroll_simple.s"
|
;.include "horiz_scroll_simple.s"
|
||||||
|
@ -513,6 +554,7 @@ trog04_graphics:
|
||||||
;.include "vertical_scroll.s"
|
;.include "vertical_scroll.s"
|
||||||
;.include "hgr_copy_part.s"
|
;.include "hgr_copy_part.s"
|
||||||
|
|
||||||
|
.include "vertical_scroll_down.s"
|
||||||
.include "do_flames.s"
|
.include "do_flames.s"
|
||||||
|
|
||||||
;=========================================
|
;=========================================
|
||||||
|
|
72
demos/trogdor/vertical_scroll_down.s
Normal file
72
demos/trogdor/vertical_scroll_down.s
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
;=======================================
|
||||||
|
; hgr_vertical scroll_down
|
||||||
|
;=======================================
|
||||||
|
; scrolls from $6000 to page1
|
||||||
|
; jumps increments of 8 for speed
|
||||||
|
;=======================================
|
||||||
|
|
||||||
|
hgr_vertical_scroll_down_left:
|
||||||
|
; lda #0
|
||||||
|
; beq hgr_vertical_scroll_down_common
|
||||||
|
hgr_vertical_scroll_down_right:
|
||||||
|
; lda #20
|
||||||
|
hgr_vertical_scroll_down_common:
|
||||||
|
; sta vscroll_down_offset_smc+1
|
||||||
|
|
||||||
|
hgr_vertical_scroll_down:
|
||||||
|
|
||||||
|
ldx #183 ; start at bottom
|
||||||
|
|
||||||
|
outer_vscroll_down_loop:
|
||||||
|
lda hposn_low,X ; get page1 address
|
||||||
|
sta INL ; set as output
|
||||||
|
lda hposn_high,X
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
txa ; get address of X+8
|
||||||
|
clc ; and set as output
|
||||||
|
adc #8
|
||||||
|
tay
|
||||||
|
lda hposn_low,y
|
||||||
|
sta OUTL
|
||||||
|
lda hposn_high,Y
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
ldy #29 ; only scroll from 9..29
|
||||||
|
inner_vscroll_down_loop:
|
||||||
|
lda (INL),Y
|
||||||
|
sta (OUTL),Y
|
||||||
|
dey
|
||||||
|
cpy #9
|
||||||
|
bpl inner_vscroll_down_loop
|
||||||
|
|
||||||
|
dex
|
||||||
|
cpx #$FF
|
||||||
|
bne outer_vscroll_down_loop
|
||||||
|
|
||||||
|
|
||||||
|
;================================
|
||||||
|
; copy in off screen
|
||||||
|
; for now assume all white
|
||||||
|
|
||||||
|
|
||||||
|
ldx #7 ; start at top
|
||||||
|
|
||||||
|
outer_vscroll_down_loop2:
|
||||||
|
lda hposn_low,X
|
||||||
|
sta OUTL
|
||||||
|
lda hposn_high,X
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
lda #$7f
|
||||||
|
inner_vscroll_down_loop2:
|
||||||
|
sta (OUTL),Y
|
||||||
|
dey
|
||||||
|
bpl inner_vscroll_down_loop2
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl outer_vscroll_down_loop2
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
Loading…
Reference in New Issue
Block a user