From 2b9e8650ded0770064bc135853c6e3cc08716b84 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Tue, 6 Oct 2020 23:59:30 +0200 Subject: [PATCH] various Ultimate 64 improvements --- src/,,config_ultimate64.s | 4 ++-- src/aliases/,aliases_hardware.s | 8 ++++++++ src/basic/assets/startup_banner.s | 14 +++++++++++++- src/basic/basic_commands_01/cmd_fast_slow.s | 18 ++++++++++++++---- 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/,,config_ultimate64.s b/src/,,config_ultimate64.s index edd352c7..e295751d 100644 --- a/src/,,config_ultimate64.s +++ b/src/,,config_ultimate64.s @@ -61,8 +61,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 diff --git a/src/aliases/,aliases_hardware.s b/src/aliases/,aliases_hardware.s index 5b6d5167..ada42e87 100644 --- a/src/aliases/,aliases_hardware.s +++ b/src/aliases/,aliases_hardware.s @@ -71,6 +71,14 @@ !addr VIC_CLKRATE = $D030 ; C128 only } } +!ifdef CONFIG_MB_U64 { + + ; Ultimate 64 registers + + !addr U64_TURBOBIT = $D030 ; 0 = 1 MHz + badlines, 1 = settings from menu + !addr U64_TURBOCTL = $D031 ; bit 0-3 = CPU speed (index), bit 7 = disable badlines, $FF = not available +} + ; SID registers !addr __SID_BASE = $D400 ; base address of the chip diff --git a/src/basic/assets/startup_banner.s b/src/basic/assets/startup_banner.s index e45e5ca8..26e20ccb 100644 --- a/src/basic/assets/startup_banner.s +++ b/src/basic/assets/startup_banner.s @@ -16,7 +16,7 @@ !pet "open roms generic build" } else ifdef CONFIG_BRAND_TESTING { !pet "open roms testing build" -} else ifdef CONFIG_BRAND_ULTIMATE_64 { +} else ifdef CONFIG_MB_U64 { !pet "open roms for ultimate 64" } @@ -43,9 +43,21 @@ rainbow_logo: !set SET_COLOR_3 = $1E !set SET_COLOR_4 = $9F +!ifdef CONFIG_MB_U64 { + + !byte SET_COLOR_1, $B8, $B8, $B8, $B8, $B8, $B8, $B8, $0D + !byte SET_COLOR_2, $B8, $B8, $B8, $B8, $B8, $B8, $B8, $0D + !byte SET_COLOR_3, $B8, $B8, $B8, $B8, $B8, $B8, $B8, $0D + !byte SET_COLOR_4, $B8, $B8, $B8, $B8, $B8, $B8, $B8, $0D + !byte SET_COLOR_0, $00 + +} else { + !byte SET_COLOR_1, $12, $A4, $A4, $A4, $A4, $A4, $A4, $A4, $0D !byte SET_COLOR_2, $12, $A4, $A4, $A4, $A4, $A4, $A4, $0D !byte SET_COLOR_3, $12, $A4, $A4, $A4, $A4, $A4, $0D !byte SET_COLOR_4, $12, $A4, $A4, $A4, $A4, $92 !byte SET_COLOR_0, $00 } + +} diff --git a/src/basic/basic_commands_01/cmd_fast_slow.s b/src/basic/basic_commands_01/cmd_fast_slow.s index 8789c50a..3faff194 100644 --- a/src/basic/basic_commands_01/cmd_fast_slow.s +++ b/src/basic/basic_commands_01/cmd_fast_slow.s @@ -9,17 +9,27 @@ } else ifdef CONFIG_MB_U64 { - ; Command implementation for Ultimate 64 - SuperCPU compatible way should be enough + ; Command implementation for Ultimate 64 cmd_slow: - sta SCPU_SPEED_NORMAL + lda #$00 ; for U64_TURBOCTL - badlines, 1MHz + sta SCPU_SPEED_NORMAL ; any value will do + + ; FALLTROUGH + +cmd_slow_fast_common: + + sta U64_TURBOBIT ; only bit 0 matters + sta U64_TURBOCTL rts cmd_fast: - sta SCPU_SPEED_TURBO - rts + lda #$0F ; for U64_TURBOCTL - badlines, 48MHz + sta SCPU_SPEED_TURBO ; any value will do + + bne cmd_slow_fast_common ; bramnch always } else ifdef CONFIG_PLATFORM_COMMODORE_64 {