mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-10-10 08:23:49 +00:00
kfest: foolishly split things to own functions
This commit is contained in:
parent
96875ee4a6
commit
db35edefdd
@ -224,77 +224,39 @@ page1_loop: ; delay 115+(7 loop)+4 (bit)+4(extra)
|
|||||||
;======================================================
|
;======================================================
|
||||||
; We have 4550 cycles in the vblank, use them wisely
|
; We have 4550 cycles in the vblank, use them wisely
|
||||||
;======================================================
|
;======================================================
|
||||||
|
; scroll_the_text should be 4550+1 -2 - 13 -13 = 4523
|
||||||
; delay 2717 (4550 +1 from falltrough, -2 for loadup, -1832 for scroll)
|
; rasterbars should be 4550+1 -2 - 13 -18 = 4518
|
||||||
|
; do_nothing should be 4550+1 -2 - 13 -19 = 4517
|
||||||
; Try X=8 Y=59 cycles=2715
|
|
||||||
|
|
||||||
; waste 2 cycles
|
|
||||||
;lda DRAW_PAGE ; 3
|
|
||||||
;lda DRAW_PAGE ; 3
|
|
||||||
nop ; 2
|
|
||||||
|
|
||||||
ldy #59 ; 2
|
|
||||||
loop5:
|
|
||||||
ldx #8 ; 2
|
|
||||||
loop6:
|
|
||||||
dex ; 2
|
|
||||||
bne loop6 ; 2nt/3
|
|
||||||
|
|
||||||
dey ; 2
|
|
||||||
bne loop5 ; 2nt/3
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;================================
|
|
||||||
; SCROLL THE TEXT
|
|
||||||
;================================
|
|
||||||
; 5+ 40*(36 + 9)+5+3 -1 + 20
|
|
||||||
; 12+40*(45) + 19 = 1832
|
|
||||||
|
|
||||||
ldy CURRENT_OFFSET ; 3
|
|
||||||
ldx #0 ; 2
|
|
||||||
data_loop:
|
|
||||||
lda words,Y ; 4+
|
|
||||||
sta $6d0,X ; 5
|
|
||||||
|
|
||||||
lda words2,Y ; 4+
|
|
||||||
sta $750,X ; 5
|
|
||||||
|
|
||||||
lda words3,Y ; 4+
|
|
||||||
sta $ad0,X ; 5
|
|
||||||
|
|
||||||
lda words4,Y ; 4+
|
|
||||||
sta $b50,X ; 5
|
|
||||||
|
|
||||||
iny ; 2
|
|
||||||
inx ; 2
|
|
||||||
cpx #40 ; 2
|
|
||||||
bne data_loop ; 2nt/3
|
|
||||||
|
|
||||||
inc OFFSET_GOVERNOR ; 5
|
inc OFFSET_GOVERNOR ; 5
|
||||||
|
|
||||||
lda OFFSET_GOVERNOR ; 3
|
lda OFFSET_GOVERNOR ; 3
|
||||||
cmp #6 ; 2
|
and #$7 ; 2
|
||||||
bne not_yet ; 2
|
|
||||||
|
|
||||||
inc CURRENT_OFFSET ; 5
|
|
||||||
lda #0 ; 2
|
|
||||||
sta OFFSET_GOVERNOR ; 3
|
sta OFFSET_GOVERNOR ; 3
|
||||||
jmp all_done ; 3
|
;===========
|
||||||
not_yet:
|
; 13
|
||||||
; 1
|
|
||||||
lda OFFSET_GOVERNOR ; 3
|
|
||||||
lda OFFSET_GOVERNOR ; 3
|
|
||||||
lda OFFSET_GOVERNOR ; 3
|
|
||||||
lda OFFSET_GOVERNOR ; 3
|
|
||||||
|
|
||||||
all_done:
|
cmp #$5 ; 2
|
||||||
|
bne not_scroll
|
||||||
|
; 2
|
||||||
|
jsr scroll_the_text ; 6
|
||||||
|
|
||||||
|
jmp display_loop ; 3
|
||||||
|
|
||||||
|
not_scroll:
|
||||||
|
; 5
|
||||||
|
and #$1 ; 2
|
||||||
|
bne we_should_do_nothing
|
||||||
|
; 2
|
||||||
|
jsr rasterbars ; 6
|
||||||
|
|
||||||
jmp display_loop ; 3
|
jmp display_loop ; 3
|
||||||
|
|
||||||
|
we_should_do_nothing:
|
||||||
|
; 10
|
||||||
|
jsr do_nothing ; 6
|
||||||
|
jmp display_loop ; 3
|
||||||
|
|
||||||
|
|
||||||
;==================================
|
;==================================
|
||||||
; HLINE
|
; HLINE
|
||||||
@ -331,6 +293,110 @@ clear_page_loop:
|
|||||||
bpl clear_page_loop
|
bpl clear_page_loop
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; Scroll the text
|
||||||
|
;============================
|
||||||
|
; we have 4523 to work with
|
||||||
|
|
||||||
|
scroll_the_text:
|
||||||
|
|
||||||
|
; delay 2708 (4525 -1817 for scroll)
|
||||||
|
|
||||||
|
; Try X=107 Y=5 cycles=2706 R2
|
||||||
|
|
||||||
|
; waste 2 cycles
|
||||||
|
nop ; 2
|
||||||
|
|
||||||
|
ldy #5 ; 2
|
||||||
|
loop5:
|
||||||
|
ldx #107 ; 2
|
||||||
|
loop6:
|
||||||
|
dex ; 2
|
||||||
|
bne loop6 ; 2nt/3
|
||||||
|
|
||||||
|
dey ; 2
|
||||||
|
bne loop5 ; 2nt/3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;================================
|
||||||
|
; SCROLL THE TEXT
|
||||||
|
;================================
|
||||||
|
; 5+ 40*(36 + 9) + 6 + 6
|
||||||
|
; 17+40*(45) = 1817
|
||||||
|
|
||||||
|
ldy CURRENT_OFFSET ; 3
|
||||||
|
ldx #0 ; 2
|
||||||
|
data_loop:
|
||||||
|
lda words,Y ; 4+
|
||||||
|
sta $6d0,X ; 5
|
||||||
|
|
||||||
|
lda words2,Y ; 4+
|
||||||
|
sta $750,X ; 5
|
||||||
|
|
||||||
|
lda words3,Y ; 4+
|
||||||
|
sta $ad0,X ; 5
|
||||||
|
|
||||||
|
lda words4,Y ; 4+
|
||||||
|
sta $b50,X ; 5
|
||||||
|
|
||||||
|
iny ; 2
|
||||||
|
inx ; 2
|
||||||
|
cpx #40 ; 2
|
||||||
|
bne data_loop ; 2nt/3
|
||||||
|
|
||||||
|
inc CURRENT_OFFSET ; 6
|
||||||
|
|
||||||
|
rts ; 6
|
||||||
|
|
||||||
|
|
||||||
|
;=================================
|
||||||
|
; do nothing
|
||||||
|
;=================================
|
||||||
|
; and take 4517-6 = 4511 cycles to do it
|
||||||
|
do_nothing:
|
||||||
|
; Try X=7 Y=110 cycles=4511
|
||||||
|
|
||||||
|
ldy #110 ; 2
|
||||||
|
loop1:
|
||||||
|
ldx #7 ; 2
|
||||||
|
loop2:
|
||||||
|
dex ; 2
|
||||||
|
bne loop2 ; 2nt/3
|
||||||
|
|
||||||
|
dey ; 2
|
||||||
|
bne loop1 ; 2nt/3
|
||||||
|
|
||||||
|
|
||||||
|
rts ; 6
|
||||||
|
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; Rasterbars
|
||||||
|
;============================
|
||||||
|
; we have 4518-6 = 4512 to work with
|
||||||
|
rasterbars:
|
||||||
|
|
||||||
|
; Try X=99 Y=9 cycles=4510 R2
|
||||||
|
|
||||||
|
; waste 2 cycles
|
||||||
|
nop
|
||||||
|
|
||||||
|
ldy #9 ; 2
|
||||||
|
loop3:
|
||||||
|
ldx #99 ; 2
|
||||||
|
loop4:
|
||||||
|
dex ; 2
|
||||||
|
bne loop4 ; 2nt/3
|
||||||
|
|
||||||
|
dey ; 2
|
||||||
|
bne loop3 ; 2nt/3
|
||||||
|
|
||||||
|
rts ; 6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.align $100
|
.align $100
|
||||||
words:
|
words:
|
||||||
; H E L L O
|
; H E L L O
|
||||||
|
Loading…
Reference in New Issue
Block a user