mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-29 21:29:32 +00:00
riven_hgr2: genericize code a bit
This commit is contained in:
parent
b2aa6b750e
commit
a9153c981e
|
@ -12,7 +12,7 @@ overlays = $2000
|
||||||
; so, movie. each frame is 1/5 second (200ms)
|
; so, movie. each frame is 1/5 second (200ms)
|
||||||
; 25..28 displays initial for 4 frames
|
; 25..28 displays initial for 4 frames
|
||||||
; 29..35 displays handle moving (8 frames)
|
; 29..35 displays handle moving (8 frames)
|
||||||
; 36..52 sits there
|
; 36..52 sits there ; 16 frames
|
||||||
; 53..87 rotates
|
; 53..87 rotates
|
||||||
; 88..97 sits there
|
; 88..97 sits there
|
||||||
; 98 control returns to user
|
; 98 control returns to user
|
||||||
|
@ -48,7 +48,6 @@ movie1_start:
|
||||||
bit PAGE1
|
bit PAGE1
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
; sta DRAW_PAGE
|
|
||||||
sta SCENE_COUNT
|
sta SCENE_COUNT
|
||||||
|
|
||||||
lda #4
|
lda #4
|
||||||
|
@ -76,28 +75,6 @@ movie1_start:
|
||||||
jsr full_decomp
|
jsr full_decomp
|
||||||
|
|
||||||
|
|
||||||
;===============================
|
|
||||||
;===============================
|
|
||||||
; move the handle
|
|
||||||
;===============================
|
|
||||||
;===============================
|
|
||||||
|
|
||||||
.if 0
|
|
||||||
;===============================
|
|
||||||
; decompress initial background
|
|
||||||
;===============================
|
|
||||||
|
|
||||||
before:
|
|
||||||
lda #<img025_bg_zx02
|
|
||||||
sta ZX0_src
|
|
||||||
lda #>img025_bg_zx02
|
|
||||||
sta ZX0_src+1
|
|
||||||
|
|
||||||
lda #$04 ; decompress page1 (dangerous? holes?)
|
|
||||||
|
|
||||||
jsr full_decomp
|
|
||||||
after:
|
|
||||||
.endif
|
|
||||||
;=============================
|
;=============================
|
||||||
; load overlays to $2000-$2FFF
|
; load overlays to $2000-$2FFF
|
||||||
;=============================
|
;=============================
|
||||||
|
@ -125,41 +102,49 @@ load_overlay_loop:
|
||||||
cmp #8
|
cmp #8
|
||||||
bne load_overlay_loop
|
bne load_overlay_loop
|
||||||
|
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
;===============================
|
||||||
|
; initial screen
|
||||||
|
;===============================
|
||||||
|
;===============================
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta WHICH_OVERLAY
|
||||||
|
|
||||||
|
jsr draw_scene
|
||||||
|
|
||||||
|
jsr flip_pages
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
; wait 4 frames (800ms)
|
||||||
|
|
||||||
|
ldx #16
|
||||||
|
jsr wait_50xms
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
;===============================
|
||||||
|
; move the handle
|
||||||
|
;===============================
|
||||||
|
;===============================
|
||||||
|
|
||||||
; could save bytes going backwards?
|
; could save bytes going backwards?
|
||||||
lda #0
|
lda #0
|
||||||
sta WHICH_OVERLAY
|
sta WHICH_OVERLAY
|
||||||
|
|
||||||
scene_loop:
|
move_handle_loop:
|
||||||
|
|
||||||
|
|
||||||
jsr draw_scene
|
jsr draw_scene
|
||||||
|
|
||||||
;============================
|
jsr flip_pages
|
||||||
; flip pages
|
|
||||||
;============================
|
|
||||||
lda DRAW_PAGE ; 3
|
|
||||||
beq was_page1 ; 2/3
|
|
||||||
was_page2:
|
|
||||||
bit PAGE2 ; 4
|
|
||||||
lda #$0 ; 2
|
|
||||||
beq done_pageflip ; 2/3
|
|
||||||
was_page1:
|
|
||||||
bit PAGE1 ; 4
|
|
||||||
lda #$4 ; 2
|
|
||||||
done_pageflip:
|
|
||||||
sta DRAW_PAGE ; 3
|
|
||||||
|
|
||||||
|
; lda KEYPRESS
|
||||||
lda KEYPRESS
|
; bmi done_movie1
|
||||||
bmi done_movie1
|
|
||||||
|
|
||||||
inc WHICH_OVERLAY
|
inc WHICH_OVERLAY
|
||||||
lda WHICH_OVERLAY
|
lda WHICH_OVERLAY
|
||||||
cmp #8
|
cmp #8
|
||||||
bne overlay_good
|
beq done_move_handle
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta WHICH_OVERLAY
|
|
||||||
|
|
||||||
overlay_good:
|
overlay_good:
|
||||||
|
|
||||||
|
@ -167,8 +152,20 @@ overlay_good:
|
||||||
jsr wait_50xms
|
jsr wait_50xms
|
||||||
|
|
||||||
inc SCENE_COUNT
|
inc SCENE_COUNT
|
||||||
; bne scene_loop
|
jmp move_handle_loop
|
||||||
jmp scene_loop
|
|
||||||
|
|
||||||
|
done_move_handle:
|
||||||
|
lda #7 ; point to last one
|
||||||
|
sta WHICH_OVERLAY
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
; wait 16 frames (3.2s?)
|
||||||
|
|
||||||
|
ldx #64
|
||||||
|
jsr wait_50xms
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
done_movie1:
|
done_movie1:
|
||||||
bit KEYRESET
|
bit KEYRESET
|
||||||
|
@ -177,6 +174,35 @@ done_movie1:
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
;===============================
|
||||||
|
draw_scene:
|
||||||
|
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
; decompress background
|
||||||
|
;===============================
|
||||||
|
|
||||||
|
before:
|
||||||
|
lda #<img025_bg_zx02
|
||||||
|
sta ZX0_src
|
||||||
|
lda #>img025_bg_zx02
|
||||||
|
sta ZX0_src+1
|
||||||
|
|
||||||
|
clc
|
||||||
|
lda DRAW_PAGE
|
||||||
|
adc #$4
|
||||||
|
|
||||||
|
jsr full_decomp
|
||||||
|
after:
|
||||||
|
|
||||||
|
; jmp do_overlay
|
||||||
|
|
||||||
|
; fallthrough
|
||||||
|
|
||||||
|
|
||||||
;===============================
|
;===============================
|
||||||
; do overlay
|
; do overlay
|
||||||
;===============================
|
;===============================
|
||||||
|
@ -235,29 +261,26 @@ skip_write:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
;===============================
|
|
||||||
;===============================
|
;============================
|
||||||
draw_scene:
|
; flip pages
|
||||||
|
;============================
|
||||||
|
flip_pages:
|
||||||
|
lda DRAW_PAGE ; 3
|
||||||
|
beq was_page1 ; 2/3
|
||||||
|
was_page2:
|
||||||
|
bit PAGE2 ; 4
|
||||||
|
lda #$0 ; 2
|
||||||
|
beq done_pageflip ; 2/3
|
||||||
|
was_page1:
|
||||||
|
bit PAGE1 ; 4
|
||||||
|
lda #$4 ; 2
|
||||||
|
done_pageflip:
|
||||||
|
sta DRAW_PAGE ; 3
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
;===============================
|
|
||||||
; decompress background
|
|
||||||
;===============================
|
|
||||||
|
|
||||||
before:
|
|
||||||
lda #<img025_bg_zx02
|
|
||||||
sta ZX0_src
|
|
||||||
lda #>img025_bg_zx02
|
|
||||||
sta ZX0_src+1
|
|
||||||
|
|
||||||
clc
|
|
||||||
lda DRAW_PAGE
|
|
||||||
adc #$4
|
|
||||||
|
|
||||||
jsr full_decomp
|
|
||||||
after:
|
|
||||||
|
|
||||||
jmp do_overlay
|
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
|
|
||||||
|
@ -272,6 +295,35 @@ after:
|
||||||
|
|
||||||
.include "movie1/movie1.inc"
|
.include "movie1/movie1.inc"
|
||||||
|
|
||||||
|
frames_l:
|
||||||
|
.byte <img025_bg_zx02
|
||||||
|
.byte <img055_bg_zx02
|
||||||
|
.byte <img056_bg_zx02
|
||||||
|
.byte <img057_bg_zx02
|
||||||
|
.byte <img058_bg_zx02
|
||||||
|
.byte <img059_bg_zx02
|
||||||
|
.byte <img060_bg_zx02
|
||||||
|
.byte <img061_bg_zx02
|
||||||
|
.byte <img062_bg_zx02
|
||||||
|
.byte <img063_bg_zx02
|
||||||
|
.byte <img064_bg_zx02
|
||||||
|
|
||||||
|
frames_h:
|
||||||
|
.byte >img025_bg_zx02
|
||||||
|
.byte >img055_bg_zx02
|
||||||
|
.byte >img056_bg_zx02
|
||||||
|
.byte >img057_bg_zx02
|
||||||
|
.byte >img058_bg_zx02
|
||||||
|
.byte >img059_bg_zx02
|
||||||
|
.byte >img060_bg_zx02
|
||||||
|
.byte >img061_bg_zx02
|
||||||
|
.byte >img062_bg_zx02
|
||||||
|
.byte >img063_bg_zx02
|
||||||
|
.byte >img064_bg_zx02
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
overlays_l:
|
overlays_l:
|
||||||
.byte <overlay25,<overlay29,<overlay30
|
.byte <overlay25,<overlay29,<overlay30
|
||||||
.byte <overlay31,<overlay32,<overlay33
|
.byte <overlay31,<overlay32,<overlay33
|
||||||
|
|
Loading…
Reference in New Issue
Block a user