Il programma basic si sovrascrive da solo: si carica da 2049 a 34591 e poi alla riga 12 tenta di scrivere nell'area 8192 - 16191. Usa la selezione del banco (tramite il registro $DD00) e le impostazioni per screen RAM e bitmap RAM per usare una zona non occupata dal programma basic. Ad esempio potresti scegliere $E000 - $FF40 per i dati bitmap. Lascio a te il resto.
Il programma asm, invece, è fatto in modo che i dati screen e bitmap si trovino già a destinazione una volta caricato. Il problema è che i colori vanno a finire nella screen ram quando sia tu che il sistema operativo la state ancora usando come pagina di testo. Dopo il caricamento, il sistema scrive "READY", corrompendo parzialmente i colori; tu digiti la SYS in mezzo a una selva di caratteri estranei (i dati del colore) e come risultato il comando non viene eseguito. Potresti provare a collocare i dati colore un po' più avanti, ad esempio a $0800 (ricorda di impostare correttamente $D018).