Ultimate 64 tape improvements
This commit is contained in:
1 parent
2b9e8650de
commit
166cfabf82
7 files changed
+47
-31
No files matched your search
+7
-3
@@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
Follow these rules, or bad things will happen!
|
Follow these rules, or bad things will happen!
|
||||||
|
|
||||||
|
|
||||||
* Don't mix ROMs for different platforms - use generic BASIC with generic KERNAL, Ultimate64 BASIC with Ultimate64 KERNAL, etc.
|
* Don't mix ROMs for different platforms - use generic BASIC with generic KERNAL, Ultimate64 BASIC with Ultimate64 KERNAL, etc.
|
||||||
|
|
||||||
* Don't mix these ROMs with any other ROMs; exceptions:
|
* Don't mix these ROMs with any other ROMs; exceptions:
|
||||||
@@ -11,9 +10,14 @@ Follow these rules, or bad things will happen!
|
|||||||
|
|
||||||
- chargen_*.rom - these ones are fully interchangeable
|
- chargen_*.rom - these ones are fully interchangeable
|
||||||
|
|
||||||
- Don't mix ROMs from different builds/versions (again, CHARGEN is an exception).
|
* Don't mix ROMs from different builds/versions (again, CHARGEN is an exception).
|
||||||
|
|
||||||
- The generic ROM set should be compatible with any C64-compatible machine; platform-specific ROMs might not work on other platforms.
|
* The generic ROM set should be compatible with any C64-compatible machine; platform-specific ROMs might not work on other platforms.
|
||||||
|
|
||||||
|
|
||||||
|
For Ultimate 64 the following settinghs are recommended:
|
||||||
|
|
||||||
|
* U64 Specific Settings -> Turbo Control -> U64 Turbo Registers
|
||||||
|
|
||||||
|
|
||||||
Have fun!
|
Have fun!
|
||||||
|
|||||||
@@ -71,8 +71,8 @@
|
|||||||
;; #CONFIG# KEY_REPEAT_DEFAULT NO
|
;; #CONFIG# KEY_REPEAT_DEFAULT NO
|
||||||
;; #CONFIG# KEY_REPEAT_ALWAYS NO
|
;; #CONFIG# KEY_REPEAT_ALWAYS NO
|
||||||
;; #CONFIG# KEY_FAST_SCAN YES
|
;; #CONFIG# KEY_FAST_SCAN YES
|
||||||
;; #CONFIG# JOY1_CURSOR YES
|
;; #CONFIG# JOY1_CURSOR NO
|
||||||
;; #CONFIG# JOY2_CURSOR YES
|
;; #CONFIG# JOY2_CURSOR NO
|
||||||
|
|
||||||
;; #CONFIG# PROGRAMMABLE_KEYS YES
|
;; #CONFIG# PROGRAMMABLE_KEYS YES
|
||||||
|
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
!ifndef CONFIG_LEGACY_SCNKEY {
|
!ifndef CONFIG_LEGACY_SCNKEY {
|
||||||
!addr BITTS = $B4 ; -- NOT IMPLEMENTED --
|
!addr BITTS = $B4 ; -- NOT IMPLEMENTED --
|
||||||
}
|
}
|
||||||
!addr NXTBIT = $B5 ; -- NOT IMPLEMENTED --
|
!addr NXTBIT = $B5 ; -- NOT IMPLEMENTED -- [!] also used by tape routine, we use it only for Ultimate 64 turbo handling
|
||||||
!ifndef CONFIG_LEGACY_SCNKEY {
|
!ifndef CONFIG_LEGACY_SCNKEY {
|
||||||
!addr RODATA = $B6 ; -- NOT IMPLEMENTED --
|
!addr RODATA = $B6 ; -- NOT IMPLEMENTED --
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,9 +19,8 @@
|
|||||||
!ifdef HAS_TAPE {
|
!ifdef HAS_TAPE {
|
||||||
!addr __MSG_KERNAL_PRESS_PLAY = __msg_kernalplay - __msg_kernal_first
|
!addr __MSG_KERNAL_PRESS_PLAY = __msg_kernalplay - __msg_kernal_first
|
||||||
!addr __MSG_KERNAL_FOUND = __msg_kernalfound - __msg_kernal_first
|
!addr __MSG_KERNAL_FOUND = __msg_kernalfound - __msg_kernal_first
|
||||||
!ifdef CONFIG_MB_M65 {
|
!addr __MSG_KERNAL_OK = __msg_kernalok - __msg_kernal_first
|
||||||
!addr __MSG_KERNAL_OK_SEARCHING = __msg_kernaloksearching - __msg_kernal_first
|
}
|
||||||
} }
|
|
||||||
|
|
||||||
!ifdef CONFIG_PANIC_SCREEN {
|
!ifdef CONFIG_PANIC_SCREEN {
|
||||||
!addr __MSG_KERNAL_PANIC = __msg_kernalpanic - __msg_kernal_first
|
!addr __MSG_KERNAL_PANIC = __msg_kernalpanic - __msg_kernal_first
|
||||||
@@ -70,14 +69,10 @@ __msg_kernalfound:
|
|||||||
!pet "found"
|
!pet "found"
|
||||||
!byte $80 + $20 ; end of string mark + space
|
!byte $80 + $20 ; end of string mark + space
|
||||||
|
|
||||||
!ifdef CONFIG_MB_M65 {
|
__msg_kernalok:
|
||||||
|
|
||||||
__msg_kernaloksearching:
|
|
||||||
!pet "ok"
|
!pet "ok"
|
||||||
!byte $0D, $0D
|
!byte $80 + $0D ; end of string mark + return
|
||||||
!pet "searchin"
|
}
|
||||||
!byte $80 + $47 ; end of string mark + 'G'
|
|
||||||
} }
|
|
||||||
|
|
||||||
!ifdef CONFIG_PANIC_SCREEN {
|
!ifdef CONFIG_PANIC_SCREEN {
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
;; #ALIAS# print_return = KERNAL_0.proxy_K1_print_return
|
;; #ALIAS# print_return = KERNAL_0.proxy_K1_print_return
|
||||||
|
|
||||||
;; #ALIAS# __MSG_KERNAL_PRESS_PLAY = KERNAL_0.__MSG_KERNAL_PRESS_PLAY
|
;; #ALIAS# __MSG_KERNAL_PRESS_PLAY = KERNAL_0.__MSG_KERNAL_PRESS_PLAY
|
||||||
;; #ALIAS# __MSG_KERNAL_OK_SEARCHING = KERNAL_0.__MSG_KERNAL_OK_SEARCHING
|
;; #ALIAS# __MSG_KERNAL_OK = KERNAL_0.__MSG_KERNAL_OK
|
||||||
;; #ALIAS# __MSG_KERNAL_FOUND = KERNAL_0.__MSG_KERNAL_FOUND
|
;; #ALIAS# __MSG_KERNAL_FOUND = KERNAL_0.__MSG_KERNAL_FOUND
|
||||||
|
|
||||||
;; #ALIAS# tape_normal_byte_store = KERNAL_0.tape_normal_byte_store
|
;; #ALIAS# tape_normal_byte_store = KERNAL_0.tape_normal_byte_store
|
||||||
|
|||||||
@@ -113,13 +113,10 @@ tape_prepare_reading:
|
|||||||
|
|
||||||
} ; CONFIG_TAPE_HEAD_ALIGN
|
} ; CONFIG_TAPE_HEAD_ALIGN
|
||||||
|
|
||||||
!ifdef CONFIG_MB_M65 {
|
|
||||||
|
|
||||||
; Display confirmation
|
; Display confirmation
|
||||||
|
|
||||||
ldx #__MSG_KERNAL_OK_SEARCHING
|
ldx #__MSG_KERNAL_OK
|
||||||
jsr print_kernal_message
|
jsr print_kernal_message
|
||||||
}
|
|
||||||
|
|
||||||
; Prepare for reading
|
; Prepare for reading
|
||||||
|
|
||||||
|
|||||||
@@ -19,15 +19,21 @@ tape_screen_on_motor_off:
|
|||||||
lda COLSTORE
|
lda COLSTORE
|
||||||
sta VIC_EXTCOL
|
sta VIC_EXTCOL
|
||||||
|
|
||||||
!ifndef CONFIG_MB_M65 {
|
!ifdef CONFIG_MB_M65 {
|
||||||
|
|
||||||
jmp screen_on
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
jsr M65_MODEGET
|
jsr M65_MODEGET
|
||||||
+bcs screen_on ; MEGA65 native mode does not have badlines, no need to enable/disable screen
|
+bcs screen_on ; MEGA65 native mode does not have badlines, no need to enable/disable screen
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} else ifdef CONFIG_MB_U64 {
|
||||||
|
|
||||||
|
lda NXTBIT
|
||||||
|
sta U64_TURBOCTL ; restore turbo control settings
|
||||||
|
jmp screen_on
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
jmp screen_on
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -44,11 +50,7 @@ tape_screen_off_motor_on:
|
|||||||
lda VIC_EXTCOL
|
lda VIC_EXTCOL
|
||||||
sta COLSTORE
|
sta COLSTORE
|
||||||
|
|
||||||
!ifndef CONFIG_MB_M65 {
|
!ifdef CONFIG_MB_M65 {
|
||||||
|
|
||||||
jsr screen_off
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
jsr M65_MODEGET
|
jsr M65_MODEGET
|
||||||
; XXX optimize this
|
; XXX optimize this
|
||||||
@@ -56,6 +58,24 @@ tape_screen_off_motor_on:
|
|||||||
jsr screen_off
|
jsr screen_off
|
||||||
@1:
|
@1:
|
||||||
|
|
||||||
|
} else ifdef CONFIG_MB_U64 {
|
||||||
|
|
||||||
|
lda U64_TURBOCTL
|
||||||
|
sta NXTBIT
|
||||||
|
cmp #$FF
|
||||||
|
beq @1 ; branch if no turbo control available
|
||||||
|
|
||||||
|
lda #$8F ; max speed, no badlines
|
||||||
|
sta U64_TURBOCTL
|
||||||
|
bne @2 ; branch always
|
||||||
|
|
||||||
|
@1:
|
||||||
|
jsr screen_off
|
||||||
|
@2:
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
jsr screen_off
|
||||||
}
|
}
|
||||||
|
|
||||||
jmp tape_motor_on
|
jmp tape_motor_on
|
||||||
|
|||||||
Reference in new issue
Block a user