mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-01 05:31:52 +00:00
peasant: make hgr_copy artificially slow to give the windowblind effect
This commit is contained in:
parent
bb60cd8536
commit
f33a338c72
@ -77,6 +77,7 @@ qload.o: qload.s qboot.inc \
|
|||||||
text/word_list.s \
|
text/word_list.s \
|
||||||
clear_bottom.s \
|
clear_bottom.s \
|
||||||
hgr_hgr2.s \
|
hgr_hgr2.s \
|
||||||
|
hgr_copy.s \
|
||||||
gr_offsets.s \
|
gr_offsets.s \
|
||||||
qkumba_popwr.s \
|
qkumba_popwr.s \
|
||||||
random16.s
|
random16.s
|
||||||
|
@ -3,38 +3,38 @@
|
|||||||
;=========================================================
|
;=========================================================
|
||||||
; copy $2000 to $4000
|
; copy $2000 to $4000
|
||||||
|
|
||||||
; would be faster if we unroll it, but much bigger
|
; intentionally slow for the miniblind effect
|
||||||
|
|
||||||
; 14+ ((14*256)+20)*32 + 5 = 115347 = 8.6fps
|
|
||||||
|
|
||||||
; theoretical unrolled, 30*6 bytes bigger (180 bytes?)
|
|
||||||
; 2 + ((9*32)+5)*256 + 5 = 75015 = 13.3 fps
|
|
||||||
|
|
||||||
hgr_copy:
|
hgr_copy:
|
||||||
|
lda $0
|
||||||
|
sta INL
|
||||||
|
sta OUTL
|
||||||
|
|
||||||
ldx #0 ; 2
|
lda #$20
|
||||||
lda #$20 ; 2
|
sta INH
|
||||||
sta hgr_copy_smc+2 ; 4
|
lda #$40
|
||||||
lda #$40 ; 2
|
sta OUTH
|
||||||
sta hgr_copy_smc+5 ; 4
|
|
||||||
|
|
||||||
hgr_copy_column:
|
|
||||||
|
|
||||||
hgr_copy_smc:
|
ldy #0
|
||||||
lda $2000,X ; 4
|
hgr_copy_outer:
|
||||||
sta $4000,X ; 5
|
|
||||||
|
|
||||||
dex ; 2
|
hgr_copy_inner:
|
||||||
bne hgr_copy_column ; 2nt/3t
|
lda #1
|
||||||
|
jsr wait
|
||||||
|
|
||||||
|
lda (INL),Y
|
||||||
|
sta (OUTL),Y
|
||||||
|
iny
|
||||||
|
bne hgr_copy_inner
|
||||||
|
|
||||||
|
inc INH
|
||||||
|
inc OUTH
|
||||||
|
lda OUTH
|
||||||
|
cmp #$60
|
||||||
|
bne hgr_copy_outer
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inc hgr_copy_smc+2 ; 6
|
|
||||||
inc hgr_copy_smc+5 ; 6
|
|
||||||
|
|
||||||
lda hgr_copy_smc+2 ; 4
|
|
||||||
cmp #$40 ; 2
|
|
||||||
bne hgr_copy_column ; 2/3
|
|
||||||
|
|
||||||
rts ; 6
|
|
||||||
|
|
||||||
|
40
games/peasant/hgr_copy_fast.s
Normal file
40
games/peasant/hgr_copy_fast.s
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
;=========================================================
|
||||||
|
; hgr copy from $2000 to $4000
|
||||||
|
;=========================================================
|
||||||
|
; copy $2000 to $4000
|
||||||
|
|
||||||
|
; would be faster if we unroll it, but much bigger
|
||||||
|
|
||||||
|
; 14+ ((14*256)+20)*32 + 5 = 115347 = 8.6fps
|
||||||
|
|
||||||
|
; theoretical unrolled, 30*6 bytes bigger (180 bytes?)
|
||||||
|
; 2 + ((9*32)+5)*256 + 5 = 75015 = 13.3 fps
|
||||||
|
|
||||||
|
hgr_copy:
|
||||||
|
|
||||||
|
ldx #0 ; 2
|
||||||
|
lda #$20 ; 2
|
||||||
|
sta hgr_copy_smc+2 ; 4
|
||||||
|
lda #$40 ; 2
|
||||||
|
sta hgr_copy_smc+5 ; 4
|
||||||
|
|
||||||
|
hgr_copy_column:
|
||||||
|
|
||||||
|
hgr_copy_smc:
|
||||||
|
lda $2000,X ; 4
|
||||||
|
sta $4000,X ; 5
|
||||||
|
|
||||||
|
dex ; 2
|
||||||
|
bne hgr_copy_column ; 2nt/3t
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
inc hgr_copy_smc+2 ; 6
|
||||||
|
inc hgr_copy_smc+5 ; 6
|
||||||
|
|
||||||
|
lda hgr_copy_smc+2 ; 4
|
||||||
|
cmp #$40 ; 2
|
||||||
|
bne hgr_copy_column ; 2/3
|
||||||
|
|
||||||
|
rts ; 6
|
||||||
|
|
Loading…
Reference in New Issue
Block a user