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!
|
||||
|
||||
|
||||
* 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:
|
||||
@@ -11,9 +10,14 @@ Follow these rules, or bad things will happen!
|
||||
|
||||
- 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!
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
;; #CONFIG# KEY_REPEAT_DEFAULT NO
|
||||
;; #CONFIG# KEY_REPEAT_ALWAYS NO
|
||||
;; #CONFIG# KEY_FAST_SCAN YES
|
||||
;; #CONFIG# JOY1_CURSOR YES
|
||||
;; #CONFIG# JOY2_CURSOR YES
|
||||
;; #CONFIG# JOY1_CURSOR NO
|
||||
;; #CONFIG# JOY2_CURSOR NO
|
||||
|
||||
;; #CONFIG# PROGRAMMABLE_KEYS YES
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
!ifndef CONFIG_LEGACY_SCNKEY {
|
||||
!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 {
|
||||
!addr RODATA = $B6 ; -- NOT IMPLEMENTED --
|
||||
}
|
||||
|
||||
@@ -19,9 +19,8 @@
|
||||
!ifdef HAS_TAPE {
|
||||
!addr __MSG_KERNAL_PRESS_PLAY = __msg_kernalplay - __msg_kernal_first
|
||||
!addr __MSG_KERNAL_FOUND = __msg_kernalfound - __msg_kernal_first
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
!addr __MSG_KERNAL_OK_SEARCHING = __msg_kernaloksearching - __msg_kernal_first
|
||||
} }
|
||||
!addr __MSG_KERNAL_OK = __msg_kernalok - __msg_kernal_first
|
||||
}
|
||||
|
||||
!ifdef CONFIG_PANIC_SCREEN {
|
||||
!addr __MSG_KERNAL_PANIC = __msg_kernalpanic - __msg_kernal_first
|
||||
@@ -70,14 +69,10 @@ __msg_kernalfound:
|
||||
!pet "found"
|
||||
!byte $80 + $20 ; end of string mark + space
|
||||
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
|
||||
__msg_kernaloksearching:
|
||||
__msg_kernalok:
|
||||
!pet "ok"
|
||||
!byte $0D, $0D
|
||||
!pet "searchin"
|
||||
!byte $80 + $47 ; end of string mark + 'G'
|
||||
} }
|
||||
!byte $80 + $0D ; end of string mark + return
|
||||
}
|
||||
|
||||
!ifdef CONFIG_PANIC_SCREEN {
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
;; #ALIAS# print_return = KERNAL_0.proxy_K1_print_return
|
||||
|
||||
;; #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# tape_normal_byte_store = KERNAL_0.tape_normal_byte_store
|
||||
|
||||
@@ -113,13 +113,10 @@ tape_prepare_reading:
|
||||
|
||||
} ; CONFIG_TAPE_HEAD_ALIGN
|
||||
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
|
||||
; Display confirmation
|
||||
|
||||
ldx #__MSG_KERNAL_OK_SEARCHING
|
||||
ldx #__MSG_KERNAL_OK
|
||||
jsr print_kernal_message
|
||||
}
|
||||
|
||||
; Prepare for reading
|
||||
|
||||
|
||||
@@ -19,15 +19,21 @@ tape_screen_on_motor_off:
|
||||
lda COLSTORE
|
||||
sta VIC_EXTCOL
|
||||
|
||||
!ifndef CONFIG_MB_M65 {
|
||||
|
||||
jmp screen_on
|
||||
|
||||
} else {
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
|
||||
jsr M65_MODEGET
|
||||
+bcs screen_on ; MEGA65 native mode does not have badlines, no need to enable/disable screen
|
||||
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
|
||||
sta COLSTORE
|
||||
|
||||
!ifndef CONFIG_MB_M65 {
|
||||
|
||||
jsr screen_off
|
||||
|
||||
} else {
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
|
||||
jsr M65_MODEGET
|
||||
; XXX optimize this
|
||||
@@ -56,6 +58,24 @@ tape_screen_off_motor_on:
|
||||
jsr screen_off
|
||||
@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
|
||||
|
||||
Reference in new issue
Block a user