U64/JiffyDOS - do not blank screen if one can disable badlines

This commit is contained in:
FeralChild64 committed 2020-10-07 15:45:20 +02:00
1 parent 166cfabf82
commit 9a1f9c7209
1 file changed
+40 -1
+40 -1
View File
@@ -27,13 +27,30 @@ jiffydos_load:
!ifdef CONFIG_IEC_JIFFYDOS_BLANK {
!ifdef CONFIG_MB_U64 {
; Check if turbo register is available
lda U64_TURBOCTL
cmp #$FF
beq @1
; Store turbo register content, disable badlines
sta TBTCNT
lda #$80
sta U64_TURBOCTL
bne @2
; Normal flow - no turbo register
}
@1:
; Preserve register with screen status (blank/visible)
lda VIC_SCROLY
sta TBTCNT
; Blank screen to make sure no sprite/badline will interrupt
jsr screen_off
@2:
; Preserve 3 lowest bits of CIA2_PRA XXX deduplicate this
lda CIA2_PRA
@@ -42,9 +59,12 @@ jiffydos_load:
} else {
@1:
; Store previous sprite status in temporary variable
jsr jiffydos_prepare
sta TBTCNT
@2:
}
; A trick to shorten EAL update time
@@ -148,15 +168,34 @@ jiffydos_load_end:
!ifdef CONFIG_IEC_JIFFYDOS_BLANK {
!ifdef CONFIG_MB_U64 {
; Check if turbo register is available
lda U64_TURBOCTL
cmp #$FF
beq @3
; Restore turbo register content
lda TBTCNT
sta U64_TURBOCTL
jmp @4
; Normal flow - no turbo register
}
@3:
; Restore screen state
lda TBTCNT
sta VIC_SCROLY
@4:
} else {
@3:
; Re-enable sprites
lda TBTCNT
sta VIC_SPENA
@4:
}
; Store last byte as unoptimized LOAD routine would