MEGA65 tape support fixes, small makefile update
This commit is contained in:
1 parent
6a04cc52d5
commit
129635daab
4 files changed
+57
-30
No files matched your search
@@ -8,8 +8,8 @@
|
||||
;
|
||||
|
||||
!set NEEDED = 0
|
||||
!ifdef HAS_TAPE { !set NEEDED = 1 }
|
||||
!ifdef CONFIG_IEC_JIFFYDOS { !ifndef CONFIG_MEMORY_MODEL_60K { !set NEEDED = 1 } }
|
||||
!ifdef HAS_TAPE { !ifndef CONFIG_MB_M65 { !set NEEDED = 1 } }
|
||||
!ifdef CONFIG_IEC_JIFFYDOS_BLANK { !set NEEDED = 1 }
|
||||
|
||||
!if NEEDED {
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
;
|
||||
|
||||
!set NEEDED = 0
|
||||
!ifdef HAS_TAPE { !set NEEDED = 1 }
|
||||
!ifdef CONFIG_IEC_JIFFYDOS { !ifndef CONFIG_MEMORY_MODEL_60K { !set NEEDED = 1 } }
|
||||
!ifdef HAS_TAPE { !ifndef CONFIG_MB_M65 { !set NEEDED = 1 } }
|
||||
!ifdef CONFIG_IEC_JIFFYDOS_BLANK { !set NEEDED = 1 }
|
||||
|
||||
!if NEEDED {
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
;; #LAYOUT# * * #IGNORE
|
||||
|
||||
;
|
||||
; Handle screen (visible/blanked) + tape deck motor (on/off),
|
||||
; Handle screen (visible/blanked; on some hardware disable badlines instead) + tape deck motor (on/off),
|
||||
; store/restore screen color
|
||||
;
|
||||
|
||||
@@ -23,7 +23,19 @@ tape_screen_on_motor_off:
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
|
||||
jsr M65_MODEGET
|
||||
+bcs screen_on ; MEGA65 native mode does not have badlines, no need to enable/disable screen
|
||||
bcc @1
|
||||
|
||||
; For compatibility mode, restore normal speed settings and hide VIC-IV
|
||||
|
||||
lda #$03
|
||||
sta MISC_EMU
|
||||
|
||||
lda VIC_CTRLB
|
||||
and #%10111111
|
||||
sta VIC_CTRLB
|
||||
|
||||
sta VIC_KEY
|
||||
@1:
|
||||
rts
|
||||
|
||||
} else ifdef CONFIG_MB_U64 {
|
||||
@@ -53,26 +65,38 @@ tape_screen_off_motor_on:
|
||||
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
|
||||
; On MEGA65 we need to switch banks everytim we retrieve byte to be stored in memory,
|
||||
; additionally we perform advanced tape speed autocallibration - this is all too expensive
|
||||
; to be handled by 1 MHz CPU - so in case of compatibility mode, switch CPU to fast speed
|
||||
; (and disable badlines, so we will not have to blank the screen)
|
||||
|
||||
jsr M65_MODEGET
|
||||
; XXX optimize this
|
||||
bcs @1 ; MEGA65 native mode does not have badlines, no need to enable/disable screen
|
||||
jsr screen_off
|
||||
@1:
|
||||
bcc @2
|
||||
|
||||
jsr viciv_unhide
|
||||
|
||||
lda VIC_CTRLB
|
||||
ora #%01000000
|
||||
sta VIC_CTRLB
|
||||
|
||||
lda #$00
|
||||
sta MISC_EMU
|
||||
@2:
|
||||
|
||||
} else ifdef CONFIG_MB_U64 {
|
||||
|
||||
lda U64_TURBOCTL
|
||||
sta NXTBIT
|
||||
cmp #$FF
|
||||
beq @1 ; branch if no turbo control available
|
||||
beq @2 ; branch if no turbo control available
|
||||
|
||||
lda #$8F ; max speed, no badlines
|
||||
sta U64_TURBOCTL
|
||||
bne @2 ; branch always
|
||||
bne @3 ; branch always
|
||||
|
||||
@1:
|
||||
jsr screen_off
|
||||
@2:
|
||||
jsr screen_off
|
||||
@3:
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
Reference in new issue
Block a user