sb: work on vert scroll

This commit is contained in:
Vince Weaver 2023-05-30 00:36:16 -04:00
parent 68dab4547d
commit c844297c3b
8 changed files with 173 additions and 37 deletions

View File

@ -77,7 +77,10 @@ TITLE: title.o
ld65 -o TITLE title.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
title.o: title.s zx02_optim.s \
zp.inc hardware.inc
zp.inc hardware.inc \
hgr_vscroll.s \
graphics/czmg4ap_title.hgr.zx02 \
graphics/videlectrix_top.hgr.zx02
ca65 -o title.o title.s -l title.lst

View File

@ -1,2 +1,19 @@
FN: animation based on Strong Bad E-mail #152 "ISP"
It's a long download of a "break-dancing" rat
MEMORY_MAP:
0000-00ff = zero page
0100-01ff = stack
0200-0369 = disk variables
036A-03ff = vectors and such
0400-07ff = text/gr page1
0800-0bff = text/gr page2
0c00-0fff = ????
1000-11ff = disk load code
1200-1fff = QLOAD
2000-3FFF = hgr page1
4000-5fff = hgr page2
6000-bfff = program space

View File

@ -11,6 +11,7 @@ PNG2SPRITES = ../../../utils/gr-utils/png2sprites
all: strongbad_sample.hgr.zx02 \
czmg4ap_title.hgr.zx02 \
videlectrix_top.hgr.zx02 \
a2_duckpond_title.gr.zx02 \
a2_duckpond.gr.zx02 \
a2_duckpond_twilight.gr.zx02 \
@ -98,6 +99,15 @@ czmg4ap_title.hgr.zx02: czmg4ap_title.hgr
czmg4ap_title.hgr: czmg4ap_title.png
$(PNG_TO_HGR) czmg4ap_title.png > czmg4ap_title.hgr
####
videlectrix_top.hgr.zx02: videlectrix_top.hgr
$(ZX02) videlectrix_top.hgr videlectrix_top.hgr.zx02
videlectrix_top.hgr: videlectrix_top.png
$(PNG_TO_HGR) videlectrix_top.png > videlectrix_top.hgr
####

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,7 +1,7 @@
div7_table = $1000
mod7_table = $1100
hposn_high = $1200
hposn_low = $1300
div7_table = $9C00
mod7_table = $9D00
hposn_high = $9E00
hposn_low = $9F00

76
games/sb/hgr_vscroll.s Normal file
View File

@ -0,0 +1,76 @@
;================================
; HGR vscroll
;================================
; image to scroll in is in $A000
hgr_vscroll:
ldx #191
stx SCROLL ; SCROLL = 0
vscroll_loop:
; for x=0 to 192-SCROLL
; write 40 bytes of 00
ldx #0
vscroll_inner:
lda hposn_high,X
sta OUTH
lda hposn_low,X
sta OUTL
ldy #39
lda #0
vscroll_line:
sta (OUTL),Y
dey
bpl vscroll_line
inx
cpx SCROLL
bne vscroll_inner
;====================
; draw bottom part
lda #0
sta SCROLL_OFFSET
vscroll_bottom:
stx XSAVE
ldx SCROLL_OFFSET
lda hposn_high,X
clc
adc #$80 ; ora instead?
sta INH
lda hposn_low,X
sta INL
inc SCROLL_OFFSET
ldx XSAVE
lda hposn_high,X
sta OUTH
lda hposn_low,X
sta OUTL
ldy #39
vscroll_bottom_line:
lda (INL),Y
sta (OUTL),Y
dey
bpl vscroll_bottom_line
inx
cpx #192
bne vscroll_bottom
;=====================
; scroll whole screen
dec SCROLL
bne vscroll_loop
rts

View File

@ -19,26 +19,59 @@ hires_start:
bit SET_GR
bit PAGE1
;====================
; set up tables
;====================
lda #$20
sta HGR_PAGE
jsr hgr_make_tables
;===================
; Load graphics
;===================
load_loop:
; scroll the logo
;===================
;===================
scroll_logo:
;=============================
;==========================
; Load Image
;===========================
load_image:
;===================
; decomress to $a000
; size in ldsizeh:ldsizel (f1/f0)
lda #<comp_data
lda #<vid_top
sta ZX0_src
lda #>comp_data
lda #>vid_top
sta ZX0_src+1
lda #$A0
jsr full_decomp
;======================
; scroll up vertically
;======================
jsr hgr_vscroll
;===================
; Do Title Screen
;===================
load_loop:
;==========================
; Load Title Image
;===========================
load_title_image:
; size in ldsizeh:ldsizel (f1/f0)
lda #<title_data
sta ZX0_src
lda #>title_data
sta ZX0_src+1
@ -74,7 +107,10 @@ done:
rts
.include "zx02_optim.s"
.include "hgr_tables.s"
.include "hgr_vscroll.s"
comp_data:
title_data:
.incbin "graphics/czmg4ap_title.hgr.zx02"
vid_top:
.incbin "graphics/videlectrix_top.hgr.zx02"

View File

@ -34,26 +34,20 @@ COLOR = $30
; overlap applesoft 67-6a,6f,70,af,b0,ca-cd,d8
; DOS33: Confirmed kills $68
RWTSL = $60
RWTSH = $61
DOSBUFL = $62
DOSBUFH = $63
FILEML = $64
FILEMH = $65
FRAME = $60
FRAMEH = $61
WAITING = $62
LETTERL = $63
LETTERH = $64
LETTERX = $65
LETTERY = $66
LETTERD = $67
LETTER = $68
BLARGH = $69
SCROLL = $62
XSAVE = $63
SCROLL_OFFSET = $64
;WAITING = $62
;LETTERL = $63
;LETTERH = $64
;LETTERX = $65
;LETTERY = $66
;LETTERD = $67
;LETTER = $68
;BLARGH = $69
;FACTOR_I = $66
;FACTOR_F = $67