Infatti il C128 lo ho definito al 99% compatibile ^^. Esistono dei programmi molto particolari per C64, pero', che sul C128 ho visto non andare, perche' credo questi vadano a toccare certe caratteristiche tecniche proprie del 64, come i banchi di memoria o certe funzioni "estreme" dei chip (tipo i trucchetti per guadagnare velocita' o disattivare rom, kernel, I/O per avere tutti i 64K di memoria).
Le incompatibilità col C64 "vero" erano fondamentalmente due: una in parte risolvibile, l'altra assolutamente non risolvibile perché dovuta a un bug.
1) Quella "risolvibile" riguardava la locazione 1. Normalmente all'accensione (senza che il registratore sia in moto) su C64 contiene 55 (hex $37), su C128 contiene 119 (hex $77). Si risolveva in parte premendo il tasto CAPS LOCK (non shift lock) che però aveva il problema (quantomeno sul mio C128) del cambiamento dei caratteri (diventavano più "sottili"). Con il CAPS LOCK inserito la locazione 1 conteneva correttamente 55 (hex $37).
Questo problema all'atto pratico poteva presentarsi raramente in qualche cassetta pirata da edicola che chiedeva di fermare il registratore (ma questo solo all'inizio; successivamente corressero il problema e se PEEK(1)=119 allora considerava ugualmente lo stop del registratore come premuto).
Un software che sembra avesse problemi a partire per questo motivo era la prima release originale del SEUCK, io non posso confermare perché la mia versione non è originale, in ogni caso credo che col trucchetto del CAPS LOCK si risolva.
2) Quella assolutamente non risolvibile riguardava la modalità a 2 MHz della CPU. Il problema riguardava l'ultimo bit della locazione (mi pare) 55296 che nel C64 vero credo abbia qualcosa a che fare col SID (ma non saprei dire cosa).
In pratica se manipolata in un certo modo questa locazione mandava la CPU a 2 MHz (disabilitando tutte le periferiche di I/O tranne la tastiera, più il SID e il video che diventava pieno di caratteri incomprensibili) anche se il C64 non aveva questa caratteristica. L'unico gioco o programma di cui abbia notizia che attivava involontariamente (alcuni demo poi la attiveranno di proposito) questa modalità, rendendo di fatto bloccato il sistema perché poi non se ne usciva più, è quella schifezza di MASTERS OF THE UNIVERSE (il gioco di He-Man). *NON* il The Movie, l'altro uscito un po' di tempo prima. Al momento di premere return (per iniziare a giocare) lo schermo diventava tutto nero e non andava più avanti.
In realtà con una cartuccia potevi ri-pokare la locazione 55296 in modo tale da recuperare il modo a 1 MHz (e io lo feci una volta per vedermi quel giocaccio rendendomi conto che non m'ero perso proprio nulla
), ma il fatto di "non risolvibile" andava considerata come "senza l'ausilio di apparecchiature o modifiche esterne".
Un altro gioco che forse non partiva per questo motivo era KANE (quello ambientato nel far west), ma qui darei più la colpa alla mia cassetta perché già veniva caricato 1 volta su 4 e quindi è probabile che non fosse colpa del C128. In ogni caso l'ho potuto giocare solo molti anni dopo grazie agli emulatori quindi non saprei dirvi.
Per il resto posso assicurarvi che il C128 era assolutamente compatibile al C64 (e anzi faceva molte cose in più :D). I "trucchetti per guadagnare memoria" e via dicendo quindi erano perfettamente funzionanti.
Anzi, il modo 64 in condizioni normali non veniva attivato nel banco 1, ma nel banco 0. Per attivarlo nel banco 1 era necessaria una routine (pubblicata su CCC, in uno degli ultimi numeri che io comprai quindi più o meno tra il n.68 e il n.77 se può interessarvi) che aveva lo scopo di estrarre schermate grafiche in hires dai giochi C64 utilizzando il C128 "nudo e crudo" senza alcun componente o cartuccia hardware aggiuntivo. Quella routine, tra le altre cose, attivava il "modo64" col banco 1 (perché il banco 0 del "modo 64" ad un reset in "modo 128" viene in parte corrotto e questo poteva inficiare il buon funzionamento del programma).
Questo sempre considerando il banco 1 e il banco 0 nello stesso modo con cui li chiamava CCC (ma non vedo perché non si dovrebbero considerare così
).
PS In realtà esiste un'altra incompatibilità, riguardava la cartuccia CP/M per C64 (sul manuale era segnalato chiaramente che non si poteva usare sul C128) e forse anche altre cartucce che sfruttano chissà cosa. In questo post mi sono limitato a normale software reperibile su floppy e cassette (e ai bug documentati e noti), se ce ne sono altri io non ne sono a conoscenza (il che potrebbe voler dire che ce ne sono anche miliardi ma che in quasi 20 anni non me ne sono mai accorto, e mi sembra come minimo *improbabile* anche se comunque *possibile*).