mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-12 11:29:37 +00:00
ootw: c2: dome scroll works
This commit is contained in:
parent
cb5dd337a3
commit
5adbc70886
|
@ -52,7 +52,7 @@ OOTW_C2: ootw_c2.o
|
|||
ld65 -o OOTW_C2 ootw_c2.o -C ../linker_scripts/apple2_1700.inc
|
||||
|
||||
ootw_c2.o: ootw_c2.s \
|
||||
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s \
|
||||
gr_copy.s gr_copy_offset.s gr_fast_clear.s gr_pageflip.s gr_unrle.s \
|
||||
gr_putsprite.s gr_putsprite_flipped.s gr_putsprite_crop.s \
|
||||
keyboard.s gr_run_sequence.s physicist.s \
|
||||
ootw_graphics/sprites/sprites_physicist.inc \
|
||||
|
|
59
ootw/gr_copy_offset.s
Normal file
59
ootw/gr_copy_offset.s
Normal file
|
@ -0,0 +1,59 @@
|
|||
;=========================================================
|
||||
; gr_copy_at_offset, 40x48 version
|
||||
;=========================================================
|
||||
; copy $1000 + line offset to $c00
|
||||
; offset is in Y
|
||||
|
||||
gr_copy_to_offset:
|
||||
|
||||
lda #0
|
||||
sta TEMPY
|
||||
|
||||
gr_copy_offset_outer_loop:
|
||||
|
||||
; calculate source
|
||||
|
||||
lda gr_offsets_h,Y
|
||||
clc
|
||||
adc #$c
|
||||
sta gr_copy_offset_smc_src+2
|
||||
lda gr_offsets_l,Y
|
||||
sta gr_copy_offset_smc_src+1
|
||||
tya
|
||||
pha
|
||||
|
||||
; calculate destination
|
||||
|
||||
lda TEMPY
|
||||
tay
|
||||
lda gr_offsets_h,Y
|
||||
clc
|
||||
adc #$8
|
||||
sta gr_copy_offset_smc_dst+2
|
||||
lda gr_offsets_l,Y
|
||||
sta gr_copy_offset_smc_dst+1
|
||||
|
||||
ldx #0
|
||||
gr_copy_offset_line_loop:
|
||||
|
||||
gr_copy_offset_smc_src:
|
||||
lda $1000,X
|
||||
gr_copy_offset_smc_dst:
|
||||
sta $c00,X
|
||||
|
||||
inx
|
||||
cpx #40
|
||||
bne gr_copy_offset_line_loop
|
||||
|
||||
inc TEMPY
|
||||
pla
|
||||
tay
|
||||
iny
|
||||
|
||||
cpy #24
|
||||
bne gr_copy_offset_outer_loop
|
||||
|
||||
rts ; 6
|
||||
|
||||
|
||||
|
|
@ -129,6 +129,7 @@ end_message:
|
|||
.include "gr_unrle.s"
|
||||
.include "gr_fast_clear.s"
|
||||
.include "gr_copy.s"
|
||||
.include "gr_copy_offset.s"
|
||||
.include "gr_putsprite.s"
|
||||
.include "gr_putsprite_flipped.s"
|
||||
.include "gr_putsprite_crop.s"
|
||||
|
|
|
@ -354,16 +354,22 @@ elevator_load_background:
|
|||
|
||||
lda ELEVATOR_OFFSET
|
||||
cmp #24
|
||||
bcs elevator_bg_no_dome
|
||||
bcs elevator_bg_no_dome ; bge
|
||||
|
||||
; dome, dome on the range
|
||||
|
||||
; load background
|
||||
lda #>(dome_rle)
|
||||
sta GBASH
|
||||
lda #<(dome_rle)
|
||||
sta GBASL
|
||||
lda #$c ; load to page $c00
|
||||
lda #$10 ; load to page $1000
|
||||
jsr load_rle_gr
|
||||
|
||||
lda ELEVATOR_OFFSET
|
||||
tay
|
||||
|
||||
jsr gr_copy_to_offset
|
||||
|
||||
rts
|
||||
|
||||
elevator_bg_no_dome:
|
||||
|
|
Loading…
Reference in New Issue
Block a user