Te l'ho già spiegato il caricamento di un prg è sequenziale, cioè se l'area di memoria di un programma da salvare parte da $0801 e finisce a $cfff se ci sono dei "buchi" sei costretto a salvarli se li salvi in prg, il caricamento in più parti permette di caricare spezzoni diversi della memoria, non necessariamente sequenziali. Puoi ovviare con una cartuccia che fa di fatto l'operazione di crunching, oppure devi cruncharlo tu a mano. Non esistendo un modo semplice per ogni programma non può esistere una guida generica. Per ognuno cambia il metodo perché per ognuno puoi trovarti in situazioni diverse a livello di memoria. Lo stesso fatto che il C64 ha parte della RAM nascosta "sotto" le ROM e non è direttamente accessibile in lettura da BASIC, complica le cose.
Per il C16 potrei aiutarti perché alla fine si fa prima a salvare tutta la memoria visto che sono 12K, ma nel caso del C64 salvare ogni volta tutta la memoria oltre ad essere tecnicamente complicato in situazioni particolari (penso ai primi 2 KB, o alla memoria da $d000 in poi, o peggio ancora da $e000 in poi, che sta sotto ben DUE ROM) diventerebbe profondamente "sprecone" in termini di spazio (quindi di blocchi su disco o di giri su cassetta). Non a caso esistevano cartucce apposite per fare ciò.