mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-07 16:25:16 +00:00
rewind2: more work on scrolling
This commit is contained in:
@@ -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 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_main music.lst >> music.inc
|
||||||
./generate_common -a 0xd000 -s hgr_vertical_scroll_aux 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 \
|
music.o: music.s zp.inc \
|
||||||
aux_memcopy.s copy_400.s \
|
aux_memcopy.s copy_400.s \
|
||||||
zx02_optim.s vertical_scroll_down.s \
|
zx02_optim.s vertical_scroll_down.s \
|
||||||
|
slow_copy.s \
|
||||||
music/Qjeta_TakeOnMe.pt3 \
|
music/Qjeta_TakeOnMe.pt3 \
|
||||||
pt3_lib_core.s \
|
pt3_lib_core.s \
|
||||||
pt3_lib_mockingboard_detect.s \
|
pt3_lib_mockingboard_detect.s \
|
||||||
|
@@ -14,7 +14,6 @@ headphones:
|
|||||||
;=================================
|
;=================================
|
||||||
; Scrolling Headphones
|
; Scrolling Headphones
|
||||||
;=================================
|
;=================================
|
||||||
; TODO: scroll them in?
|
|
||||||
|
|
||||||
bit SET_GR
|
bit SET_GR
|
||||||
bit HIRES
|
bit HIRES
|
||||||
@@ -29,7 +28,10 @@ headphones:
|
|||||||
sta DRAW_PAGE ; draw to page2
|
sta DRAW_PAGE ; draw to page2
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; load graphic to page2
|
; load graphic to $A000
|
||||||
|
|
||||||
|
lda #$80
|
||||||
|
sta DRAW_PAGE
|
||||||
|
|
||||||
lda #<headphone_bin
|
lda #<headphone_bin
|
||||||
sta zx_src_l+1
|
sta zx_src_l+1
|
||||||
@@ -43,9 +45,49 @@ headphones:
|
|||||||
sta zx_src_h+1
|
sta zx_src_h+1
|
||||||
jsr zx02_full_decomp_aux
|
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 wait_vblank
|
||||||
jsr hgr_page_flip
|
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
|
; load graphic to page 1
|
||||||
|
|
||||||
@@ -63,7 +105,7 @@ headphones:
|
|||||||
|
|
||||||
jsr wait_vblank
|
jsr wait_vblank
|
||||||
jsr hgr_page_flip
|
jsr hgr_page_flip
|
||||||
|
.endif
|
||||||
;==================
|
;==================
|
||||||
; scroll a bit
|
; scroll a bit
|
||||||
|
|
||||||
@@ -74,8 +116,19 @@ scroll_loop:
|
|||||||
|
|
||||||
; scroll
|
; scroll
|
||||||
jsr hgr_vertical_scroll_main
|
jsr hgr_vertical_scroll_main
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
ldy #2
|
||||||
|
ldx SCROLL_COUNT
|
||||||
|
jsr slow_copy_main
|
||||||
|
|
||||||
jsr hgr_vertical_scroll_aux
|
jsr hgr_vertical_scroll_aux
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
ldy #2
|
||||||
|
ldx SCROLL_COUNT
|
||||||
|
jsr slow_copy_aux
|
||||||
|
|
||||||
jsr wait_vblank
|
jsr wait_vblank
|
||||||
jsr hgr_page_flip
|
jsr hgr_page_flip
|
||||||
|
|
||||||
|
@@ -85,14 +85,14 @@ btpl2:
|
|||||||
|
|
||||||
; go 16 beyond, which allows our text scrolling routine
|
; go 16 beyond, which allows our text scrolling routine
|
||||||
|
|
||||||
ldx #16
|
; ldx #16
|
||||||
extra_table_loop:
|
;extra_table_loop:
|
||||||
lda hposn_low,X
|
; lda hposn_low,X
|
||||||
sta hposn_low+192,X
|
; sta hposn_low+192,X
|
||||||
lda hposn_high,X
|
; lda hposn_high,X
|
||||||
eor #$60
|
; eor #$60
|
||||||
sta hposn_high+192,X
|
; sta hposn_high+192,X
|
||||||
dex
|
; dex
|
||||||
bpl extra_table_loop
|
; bpl extra_table_loop
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
@@ -5,13 +5,14 @@
|
|||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
;.include "qload.inc"
|
;.include "qload.inc"
|
||||||
;.include "common_defines.inc"
|
.include "common_defines.inc"
|
||||||
|
|
||||||
memcpy_routines:
|
memcpy_routines:
|
||||||
.include "aux_memcopy.s"
|
.include "aux_memcopy.s"
|
||||||
.include "copy_400.s"
|
.include "copy_400.s"
|
||||||
.include "zx02_optim.s"
|
.include "zx02_optim.s"
|
||||||
.include "vertical_scroll_down.s"
|
.include "vertical_scroll_down.s"
|
||||||
|
.include "slow_copy.s"
|
||||||
|
|
||||||
music_lib:
|
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
|
lda APPLEII_MODEL
|
||||||
sta message_type_offset
|
sta message_type_offset
|
||||||
|
|
||||||
jsr hgr_make_tables
|
|
||||||
|
|
||||||
; init vars
|
; init vars
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
@@ -122,6 +120,11 @@ dont_enable_mc:
|
|||||||
|
|
||||||
skip_all_checks:
|
skip_all_checks:
|
||||||
|
|
||||||
|
|
||||||
|
jsr hgr_make_tables
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;====================================
|
;====================================
|
||||||
;====================================
|
;====================================
|
||||||
; Clear DHGR PAGE1
|
; Clear DHGR PAGE1
|
||||||
|
@@ -165,6 +165,9 @@ ODD = $FB
|
|||||||
|
|
||||||
; headphones
|
; headphones
|
||||||
SCROLL_COUNT = $F0
|
SCROLL_COUNT = $F0
|
||||||
|
INDEX = $F1
|
||||||
|
OFFSET = $F2
|
||||||
|
LENGTH = $F3
|
||||||
|
|
||||||
; dancing
|
; dancing
|
||||||
DANCE_COUNT = $F0
|
DANCE_COUNT = $F0
|
||||||
|
Reference in New Issue
Block a user