Autore Topic: Disabilitare una cartuccia  (Letto 503 volte)

Fabel

  • Neo-iscritto
  • *
  • Post: 8
  • Gioco Preferito: nebulus
Disabilitare una cartuccia
« il: 22 Novembre 2020, 15:51:02 »
Buongiorno a tutti. Non ho ormai da più di vent'anni il C64 e sto utilizzando il Vice C64 su un PC con Windows. Più di 30 anni fa con il C64 avevo autoprodotto svariate cartucce, scrivendo su eprom le routine grafiche di Danilo Toma (rivista COMMODORE N°17), il SuperMonitor di SuperCommodore e così via e sono riuscito ancora in questa impresa. Tuttavia non riesco ad implementare il Metabasic+ (rivista SuperCommodore n°87) perché occupa la memoria da $8949 a $9FFF, la stessa occupata dalla cartuccia. Ora con poke1,?? si possono disabilitare la ROM del Basic ($A000-$BFFF) e/o la ROM del Kernal ($E000-$FFFF) e anche altro... la domanda è se sia possibile disabilitare la cartuccia via software una volta che abbia trascritto il contenuto nella RAM del C64.
Sarei grato se qualcuno mi sapesse rispondere.

MOD - Per le richieste di aiuto usa l'apposita sezione, grazie. -eregil
« Ultima modifica: 22 Novembre 2020, 17:23:13 da eregil »

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 507
  • Gioco Preferito: Krakout
Re:Disabilitare una cartuccia
« Risposta #1 il: 23 Novembre 2020, 18:57:14 »
Ciao, dai un'occhiata qui:
Disabling 8K cartridge
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Fabel

  • Neo-iscritto
  • *
  • Post: 8
  • Gioco Preferito: nebulus
Re:Disabilitare una cartuccia
« Risposta #2 il: 23 Novembre 2020, 20:30:08 »
Controllo...intanto grazie.

Fabel

  • Neo-iscritto
  • *
  • Post: 8
  • Gioco Preferito: nebulus
Re:Disabilitare una cartuccia
« Risposta #3 il: 24 Novembre 2020, 18:32:38 »
Provato: non funziona. il commodore 64 (in emulazione VICE C64) va in blocco e non risponde più ai comandi, necessitando di un reset.

Fabel

  • Neo-iscritto
  • *
  • Post: 8
  • Gioco Preferito: nebulus
Re:Disabilitare una cartuccia
« Risposta #4 il: 03 Dicembre 2020, 16:09:44 »
...perciò nessuno ha fatto questa esperienza e mi sa indicare una soluzione?

eregil

  • Administrator
  • Utente
  • *****
  • Post: 696
  • Gioco Preferito: Impossible Mission
Re:Disabilitare una cartuccia
« Risposta #5 il: 05 Dicembre 2020, 16:54:18 »
A parte che se non dici cosa stai facendo non ce lo possiamo immaginare noi: se stai semplicemente utilizzando "alla cieca" le informazioni presenti sulla pagina linkata da tsm, senza ragionarci su, dovresti tenere presente che impostando $34 nella locazione 1 stai disabilitando anche il kernal, quindi un blocco può essere indice del fatto che quello che stai tentando effettivamente funziona.

Vedi ad esempio https://sta.c64.org/cbm64mem.html

Sei inoltre invitato a non fare bump dei thread (art. 17 del regolamento).
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.

Fabel

  • Neo-iscritto
  • *
  • Post: 8
  • Gioco Preferito: nebulus
Re:Disabilitare una cartuccia
« Risposta #6 il: 05 Dicembre 2020, 18:57:06 »
Grazie eregil per la risposta; la mia richiesta è "...avevo autoprodotto svariate cartucce, scrivendo su eprom le routine grafiche di Danilo Toma (rivista COMMODORE N°17), il SuperMonitor di SuperCommodore e così via e sono riuscito ancora in questa impresa. Tuttavia non riesco ad implementare il Metabasic+ (rivista SuperCommodore n°87) perché occupa la memoria da $8949 a $9FFF, la stessa occupata dalla cartuccia." La domanda era ed è se è possibile disabilitare SOLO la cartuccia e non anche la ROM del BASIC e del KERNAL. Il motivo è che la cartuccia occupa gli indirizzi della ram su cui si va ad installare Metabasic+. Le i mi ha dato la risposta: la cosa non funziona perché il valore $34 nella locazione 1 disabilta anche il kernal. Quindi una soluzione potrebbe essere di trascrivere il kernal nella memoria ram. Ci proverò. Grazie ancora.
P.S. Mi scuso per il "bump", ma non mi ero neppure accorto che ci fosse.

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 507
  • Gioco Preferito: Krakout
Re:Disabilitare una cartuccia
« Risposta #7 il: 06 Dicembre 2020, 18:26:44 »
Se non ho capito male vorresti far convivere questo Metabasic con certe routine in cartuccia ma le due cose usano, in buona parte, lo stesso range di indirizzi. È corretto?
Correggetemi se sbaglio, ma almeno uno dei due "concorrenti" dovrebbe essere rilocabile e andrebbe messo in un'altra zona (e andrebbero aggiornati opportunamente i puntatori che definiscono lo spazio per il programma Basic e le variabili), altrimenti è impossibile.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Fabel

  • Neo-iscritto
  • *
  • Post: 8
  • Gioco Preferito: nebulus
Re:Disabilitare una cartuccia
« Risposta #8 il: 08 Dicembre 2020, 12:44:20 »
Purtroppo, l'intervento effettuato da "eregil" che forse non aveva letto con la dovuta attenzione quanto avevo redatto, ha creato confusione. Metabasic occupa una parte delle stesse locazioni della cartuccia sulla quale è salvato (su eprom). Con una banale routine di trasferimento (che inizia da $8009 avendo disposto $09 - $80 nelle locazioni $8000 e $8001 - ovviamente con tutti gli altri "orpelli" come $c3$c2$cd$38$30  tra $8005 e $8008 ) viene trascritta nella ram sotto la eprom della cartuccia (metabasic è collocato da $9000 a $9FFF). A questo punto, siccome questa utility si automodifica in alcune zone, è importante che la cartuccia possa essere disabilitata. Ma sembra impossibile dal momento che agire sulla locazione $0001 consente di disabilitare la rom basic, kernal, o la zona $D000 - $DFFF e non la regione $8000 - $9FFF. Tutto qui: volevo solo aver conferma della possibilità di poter disabilitare una cartuccia via software.

eregil

  • Administrator
  • Utente
  • *****
  • Post: 696
  • Gioco Preferito: Impossible Mission
Re:Disabilitare una cartuccia
« Risposta #9 il: 08 Dicembre 2020, 14:11:03 »
Metabasic occupa una parte delle stesse locazioni della cartuccia sulla quale è salvato (su eprom). Con una banale routine di trasferimento (che inizia da $8009 avendo disposto $09 - $80 nelle locazioni $8000 e $8001 - ovviamente con tutti gli altri "orpelli" come $c3$c2$cd$38$30  tra $8005 e $8008 ) viene trascritta nella ram sotto la eprom della cartuccia (metabasic è collocato da $9000 a $9FFF). A questo punto, siccome questa utility si automodifica in alcune zone, è importante che la cartuccia possa essere disabilitata. Ma sembra impossibile dal momento che agire sulla locazione $0001 consente di disabilitare la rom basic, kernal, o la zona $D000 - $DFFF e non la regione $8000 - $9FFF.

È la prima volta che comunichi questi dettagli, non era possibile che ce li immaginassimo prima. Prova disabilitando la ROM del BASIC (valore 54, $36) dopo aver copiato in RAM sia la cartuccia che la ROM del BASIC, e vedi se funziona.
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.