mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-04-18 19:40:32 +00:00
rewind2: more work on scrolling
This commit is contained in:
parent
9afacfa703
commit
c728eee55d
@ -133,6 +133,9 @@ music.inc: generate_common MUSIC
|
||||
./generate_common -a 0xd000 -s zx_src_l music.lst >> music.inc
|
||||
./generate_common -a 0xd000 -s hgr_vertical_scroll_main music.lst >> music.inc
|
||||
./generate_common -a 0xd000 -s hgr_vertical_scroll_aux music.lst >> music.inc
|
||||
./generate_common -a 0xd000 -s slow_copy_main music.lst >> music.inc
|
||||
./generate_common -a 0xd000 -s slow_copy_aux music.lst >> music.inc
|
||||
|
||||
|
||||
####
|
||||
|
||||
@ -142,6 +145,7 @@ MUSIC: music.o
|
||||
music.o: music.s zp.inc \
|
||||
aux_memcopy.s copy_400.s \
|
||||
zx02_optim.s vertical_scroll_down.s \
|
||||
slow_copy.s \
|
||||
music/Qjeta_TakeOnMe.pt3 \
|
||||
pt3_lib_core.s \
|
||||
pt3_lib_mockingboard_detect.s \
|
||||
|
@ -14,7 +14,6 @@ headphones:
|
||||
;=================================
|
||||
; Scrolling Headphones
|
||||
;=================================
|
||||
; TODO: scroll them in?
|
||||
|
||||
bit SET_GR
|
||||
bit HIRES
|
||||
@ -29,7 +28,10 @@ headphones:
|
||||
sta DRAW_PAGE ; draw to page2
|
||||
|
||||
;=======================
|
||||
; load graphic to page2
|
||||
; load graphic to $A000
|
||||
|
||||
lda #$80
|
||||
sta DRAW_PAGE
|
||||
|
||||
lda #<headphone_bin
|
||||
sta zx_src_l+1
|
||||
@ -43,9 +45,49 @@ headphones:
|
||||
sta zx_src_h+1
|
||||
jsr zx02_full_decomp_aux
|
||||
|
||||
lda #$20
|
||||
sta DRAW_PAGE
|
||||
|
||||
|
||||
;=================================
|
||||
; copy graphic to off-screen page
|
||||
|
||||
ldx #0
|
||||
ldy #128
|
||||
lda #64
|
||||
jsr slow_copy_main
|
||||
|
||||
ldx #0
|
||||
ldy #128
|
||||
lda #64
|
||||
jsr slow_copy_aux
|
||||
|
||||
jsr wait_vblank
|
||||
jsr hgr_page_flip
|
||||
|
||||
;========================
|
||||
; copy graphic to page 2
|
||||
|
||||
ldx #0 ; line in PAGE1/PAGE2 to output to
|
||||
ldy #128 ; lines to copy
|
||||
lda #63 ; line to start in $A000
|
||||
jsr slow_copy_main
|
||||
|
||||
ldx #0
|
||||
ldy #128
|
||||
lda #63
|
||||
jsr slow_copy_aux
|
||||
|
||||
jsr wait_vblank
|
||||
jsr hgr_page_flip
|
||||
|
||||
|
||||
|
||||
|
||||
.if 0
|
||||
; jsr wait_vblank
|
||||
; jsr hgr_page_flip
|
||||
|
||||
;========================
|
||||
; load graphic to page 1
|
||||
|
||||
@ -63,7 +105,7 @@ headphones:
|
||||
|
||||
jsr wait_vblank
|
||||
jsr hgr_page_flip
|
||||
|
||||
.endif
|
||||
;==================
|
||||
; scroll a bit
|
||||
|
||||
@ -74,8 +116,19 @@ scroll_loop:
|
||||
|
||||
; scroll
|
||||
jsr hgr_vertical_scroll_main
|
||||
|
||||
ldx #0
|
||||
ldy #2
|
||||
ldx SCROLL_COUNT
|
||||
jsr slow_copy_main
|
||||
|
||||
jsr hgr_vertical_scroll_aux
|
||||
|
||||
ldx #0
|
||||
ldy #2
|
||||
ldx SCROLL_COUNT
|
||||
jsr slow_copy_aux
|
||||
|
||||
jsr wait_vblank
|
||||
jsr hgr_page_flip
|
||||
|
||||
|
@ -85,14 +85,14 @@ btpl2:
|
||||
|
||||
; go 16 beyond, which allows our text scrolling routine
|
||||
|
||||
ldx #16
|
||||
extra_table_loop:
|
||||
lda hposn_low,X
|
||||
sta hposn_low+192,X
|
||||
lda hposn_high,X
|
||||
eor #$60
|
||||
sta hposn_high+192,X
|
||||
dex
|
||||
bpl extra_table_loop
|
||||
; ldx #16
|
||||
;extra_table_loop:
|
||||
; lda hposn_low,X
|
||||
; sta hposn_low+192,X
|
||||
; lda hposn_high,X
|
||||
; eor #$60
|
||||
; sta hposn_high+192,X
|
||||
; dex
|
||||
; bpl extra_table_loop
|
||||
|
||||
rts
|
||||
|
@ -5,13 +5,14 @@
|
||||
.include "hardware.inc"
|
||||
.include "zp.inc"
|
||||
;.include "qload.inc"
|
||||
;.include "common_defines.inc"
|
||||
.include "common_defines.inc"
|
||||
|
||||
memcpy_routines:
|
||||
.include "aux_memcopy.s"
|
||||
.include "copy_400.s"
|
||||
.include "zx02_optim.s"
|
||||
.include "vertical_scroll_down.s"
|
||||
.include "slow_copy.s"
|
||||
|
||||
music_lib:
|
||||
|
||||
|
59
demos/rewind2/slow_copy.s
Normal file
59
demos/rewind2/slow_copy.s
Normal file
@ -0,0 +1,59 @@
|
||||
; copy from $A000+start : $A000+end to $2000/$4000
|
||||
|
||||
|
||||
; X=start
|
||||
; Y=len
|
||||
; A=offset
|
||||
|
||||
slow_copy_aux:
|
||||
sta WRAUX
|
||||
sta RDAUX
|
||||
|
||||
slow_copy_main:
|
||||
|
||||
slow_copy:
|
||||
sty LENGTH
|
||||
sta OFFSET
|
||||
|
||||
slow_copy_outer_loop:
|
||||
stx INDEX
|
||||
txa
|
||||
clc
|
||||
adc OFFSET
|
||||
tax
|
||||
|
||||
lda hposn_low,X ; copy src
|
||||
sta slow_copy_smc1+1
|
||||
lda hposn_high,X
|
||||
clc
|
||||
adc #$80 ; to $A0
|
||||
sta slow_copy_smc1+2
|
||||
|
||||
ldx INDEX ; restore index
|
||||
|
||||
lda hposn_low,X ; copy dest
|
||||
sta slow_copy_smc2+1
|
||||
|
||||
lda hposn_high,X
|
||||
clc
|
||||
adc DRAW_PAGE
|
||||
sta slow_copy_smc2+2
|
||||
|
||||
ldy #39
|
||||
slow_copy_loop:
|
||||
|
||||
slow_copy_smc1:
|
||||
lda $A000,Y
|
||||
slow_copy_smc2:
|
||||
sta $2000,Y
|
||||
dey
|
||||
bpl slow_copy_loop
|
||||
|
||||
inx
|
||||
dec LENGTH
|
||||
bne slow_copy_outer_loop
|
||||
|
||||
bit RDMAIN
|
||||
bit WRMAIN
|
||||
|
||||
rts
|
@ -23,8 +23,6 @@ rewind2_start:
|
||||
lda APPLEII_MODEL
|
||||
sta message_type_offset
|
||||
|
||||
jsr hgr_make_tables
|
||||
|
||||
; init vars
|
||||
|
||||
lda #0
|
||||
@ -122,6 +120,11 @@ dont_enable_mc:
|
||||
|
||||
skip_all_checks:
|
||||
|
||||
|
||||
jsr hgr_make_tables
|
||||
|
||||
|
||||
|
||||
;====================================
|
||||
;====================================
|
||||
; Clear DHGR PAGE1
|
||||
|
@ -165,6 +165,9 @@ ODD = $FB
|
||||
|
||||
; headphones
|
||||
SCROLL_COUNT = $F0
|
||||
INDEX = $F1
|
||||
OFFSET = $F2
|
||||
LENGTH = $F3
|
||||
|
||||
; dancing
|
||||
DANCE_COUNT = $F0
|
||||
|
Loading…
x
Reference in New Issue
Block a user