U64/JiffyDOS - do not blank screen if one can disable badlines
This commit is contained in:
1 parent
166cfabf82
commit
9a1f9c7209
1 file changed
+40
-1
@@ -27,13 +27,30 @@ jiffydos_load:
|
|||||||
|
|
||||||
!ifdef CONFIG_IEC_JIFFYDOS_BLANK {
|
!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)
|
; Preserve register with screen status (blank/visible)
|
||||||
lda VIC_SCROLY
|
lda VIC_SCROLY
|
||||||
sta TBTCNT
|
sta TBTCNT
|
||||||
|
|
||||||
; Blank screen to make sure no sprite/badline will interrupt
|
; Blank screen to make sure no sprite/badline will interrupt
|
||||||
jsr screen_off
|
jsr screen_off
|
||||||
|
@2:
|
||||||
; Preserve 3 lowest bits of CIA2_PRA XXX deduplicate this
|
; Preserve 3 lowest bits of CIA2_PRA XXX deduplicate this
|
||||||
|
|
||||||
lda CIA2_PRA
|
lda CIA2_PRA
|
||||||
@@ -42,9 +59,12 @@ jiffydos_load:
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@1:
|
||||||
; Store previous sprite status in temporary variable
|
; Store previous sprite status in temporary variable
|
||||||
jsr jiffydos_prepare
|
jsr jiffydos_prepare
|
||||||
sta TBTCNT
|
sta TBTCNT
|
||||||
|
@2:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
; A trick to shorten EAL update time
|
; A trick to shorten EAL update time
|
||||||
@@ -148,15 +168,34 @@ jiffydos_load_end:
|
|||||||
|
|
||||||
!ifdef CONFIG_IEC_JIFFYDOS_BLANK {
|
!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
|
; Restore screen state
|
||||||
lda TBTCNT
|
lda TBTCNT
|
||||||
sta VIC_SCROLY
|
sta VIC_SCROLY
|
||||||
|
@4:
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@3:
|
||||||
; Re-enable sprites
|
; Re-enable sprites
|
||||||
lda TBTCNT
|
lda TBTCNT
|
||||||
sta VIC_SPENA
|
sta VIC_SPENA
|
||||||
|
@4:
|
||||||
}
|
}
|
||||||
|
|
||||||
; Store last byte as unoptimized LOAD routine would
|
; Store last byte as unoptimized LOAD routine would
|
||||||
|
|||||||
Reference in new issue
Block a user