Ready64 Forum
Commodore 64 => Aiuto & Domande => Topic aperto da: fostox - 06 Aprile 2008, 18:42:23
-
come mi è stato chiesto in pm, pubblico qui volentieri perchè possa essere d'interesse per tutti. Come sostituire i colori del kernal:
Armatevi di un editor esadecimale, caricate il vostro file kernal e alle locazioni sotto indicate sostituite il valore oiginale
Offset: Valore originale:
$0535 $05 (colore bordo)
$0CD9 $00 (colore caratteri)
$0CDa $00 (colore sfondo)
per fare le dovute prove modificate il file "kernal" di winvice (dopo magari averne fatta una copia!!)
non me ne vogliano i moderatori se è già stato trattato quest'argomento e non ho cercato nel forum, solo per scarsa disponibilità di tempo odierna. Grazie
-
Fostox, grazie per l'nteressamento...adesso ho quasi tutto per completare il mio speed Dos sul C64c e 1541II.
Saluti alla board.
-
$0535 $05 (colore bordo)
$0CD9 $00 (colore caratteri)
$0CDa $00 (colore sfondo)
$0535 $05 (colore caratteri) =verde
$0CD9 $00 (colore bordo) =nero
$0CDa $00 (colore sfondo) =nero
questi sono però gli offset sul kernal del C64 1a serie (rom 8k) ed è quella usata anche negli emulatori x64 come WinVICE ecc.
Una combinazione che mi piace è $05=verde, $04=viola e $00=nero.
Saluti go :c64: 64.
-
questi sono però gli offset sul kernal del C64 1a serie (rom 8k) ed è quella usata anche negli emulatori x64 come WinVICE ecc.
Ti correggo: Vice usa una rev 3, ccs una rev 2 modificata; in ogni caso questi offset sono universali, qualsiasi sia la revisione del kernal le locazioni per cambiare i colori non cambiano, basta guardare il disassemblato
E534: A9 0E LDA #$0E <---
E536: 8D 86 02 STA $0286 ; Current Character Color code
$E5A0/58784: Set I/O Defaults
[...]
E5A8: A2 2F LDX #$2F
E5AA: BD B8 EC LDA $ECB8,X; usa la tabella a $ecb9 per
E5AD: 9D FF CF STA $CFFF,X; inizializzare il VIC a $d000
E5B0: CA DEX
E5B1: D0 F7 BNE $E5AA
$ECB9/60601: Video Chip Setup Table
ECB9: 00 00 00 00 00 00 00 00
ECC1: 00 00 00 00 00 00 00 00
ECC9: 00 9B 37 00 00 00 08 00
ECD1: 14 0F 00 00 00 00 00 00
ECD9: 0E 06 01 02 03 04 00 01 <---
ECE1: 02 03 04 05 06 07
-
Ti correggo: Vice usa una rev 3, ccs una rev 2 modificata; in ogni caso questi offset sono universali, qualsiasi sia la revisione del kernal le locazioni per cambiare i colori non cambiano, basta guardare il disassemblato
Si iAN, giusto, mi sono espresso male, cioè volevo dire che gli offset non corrispondono nel caso del 64c, proprio perchè il kernal è linkato al Basic in un unico (file) da 16k e pertanto a quell'indirizzo ci troveremmo nell'area del Basic, ma spostandosi di 8k($) in avanti, ritroviamo i byte che ci interessano qui:
E2534: A9 0E LDA #$0E <---
E2CD9: 0E <---
E2CDA: 06 <---
e che differiscono ancora nel romcode dell'emulatore di Miha Peternel (C64s X86).
Saluti e
GO64
ARE YOU SURE?Y
-
E2534: A9 0E LDA #$0E <---
E2CD9: 0E <---
E2CDA: 06 <---
A costo di sembrare un rompicoglioni, cosa che mi riesce molto facilmente, ti conviene controllare quello che scrivi, E2534 e gli altri 2 non sono indirizzi validi.
Se si posta questo genere di informazioni con l'intenzione di lasciare un riferimento ai prossimi lettori e' bene essere precisi, altrimenti si genera solo confusione.
Probabilmente volevi dire $2534, cioe' esattamente 8kb ($2000) piu' avanti dell'offset in cui si trova lo stesso byte nella rom da 8kb.
Quindi gli offset in una rom da 16kb contenente sia basic che kernal sono, se la matematica non e' un opinione:
$2534
$2CD9
$2CDA
e che differiscono ancora nel romcode dell'emulatore di Miha Peternel (C64s X86).
Il kernal contenuto in C64s (e' all'offset $9200 in c64s.res) e' una rev 3 pesantemente modificata, ma gli offset dei codici colore, in memoria, corrispondono. Nell'header di c64s ci sono anche gli offset in cui si trovano le rom, la struttura dell'header e':
offset :doubleWord (00 02 00 00)
dimensione :doubleWord (00 20 00 00)
nome :24bytes
Estraendo il kernal da $9200 per $2000 byte e confrontandolo con quello di vice vedrai le differenze, ma a tutti gli effetti e' una rev3.