From cfb50cda46444b243c74744500819a42de8e2dc3 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 25 Aug 2019 13:31:28 +0200 Subject: [PATCH] adapted SID initialization for these insane 8 SID configurations --- STATUS.md | 2 +- c64/kernal/fda3.ioinit.s | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/STATUS.md b/STATUS.md index 211c014d..8bcd4a96 100644 --- a/STATUS.md +++ b/STATUS.md @@ -6,7 +6,7 @@ Here are the features of the Open ROMs not found in the original ROMs from the 8 * improved keyboard scanning, supports multi-key roll-over and rejection of spurious joystick input * joystick (port 1) can be used to move text cursor * uses RAM under ROM and I/O: 61436 bytes free -* cold/warm start silences SID chips - $D400, $D420, ..., $D4E0, $D500 +* cold/warm start silences multiple SID chips - all $D4xx and $D5xx addresses * extended `LOAD` command * start/end addresses are displayed, in the Final cartridge style * command with just the file name tries to use the last device if it's number seems sane; otherwise uses 8 diff --git a/c64/kernal/fda3.ioinit.s b/c64/kernal/fda3.ioinit.s index 92cd3b7c..961ffdae 100644 --- a/c64/kernal/fda3.ioinit.s +++ b/c64/kernal/fda3.ioinit.s @@ -20,25 +20,24 @@ ioinit: sta CPU_R6510 stx CPU_D6510 - ;; Silence the SID chips in the $D4xx range + ;; Silence the SID chips under common addresses ldy #$00 * + ;; SIDs under $D4xx lda SID_SIGVOL, Y and #$F0 sta SID_SIGVOL, Y + ;; SIDs under $D5xx + lda SID_SIGVOL + $100, Y + and #$F0 + sta SID_SIGVOL + $100, Y tya clc adc #$20 tay bne - - ;; Silence the SID chip on $D500 - - lda SID_SIGVOL+$100 - and #$F0 - sta SID_SIGVOL+$100 - ;; XXX: calibrate TOD for both CIA's, see here: https://codebase64.org/doku.php?id=base:efficient_tod_initialisation ;; Enable CIA1 IRQ and ~50Hz timer (https://csdb.dk/forums/?roomid=11&topicid=69037)