Autore Topic: D64 Into Crt  (Letto 2943 volte)

hiryu

  • Utente
  • **
  • Post: 649
    • http://hiryu.netsons.org/
  • Gioco Preferito: Wizard Of Wor
D64 Into Crt
« il: 23 Maggio 2005, 10:45:44 »
 mi rivolgo agli esperti del settore, è possibile trasferire un D64 in un file da scrivere poi su una ROM per farne una cartuccia, o meglio ancora da sostituire alla ROM BASIC all'inteno del C64? Il programma in questione è Prophet64, vorrei trasformare un c64 in un synth basato su questo programma.

Ian tu il procedimento di "cartuccizzare" un programma l'hai già fatto con contiki, pensi si possa fare anche con questo?

L'unica cosa che all'interno del D64 sono presenti tre eseguibili (+ altri files ma nn credo servano tutti), a me servirebbe anche un menù che ti permetta di selezionare quale programma avviare.

Il procedimento di sostituire la ROM BASIC nel c64 è stato già fatto (http://qotile.net/cynthcart.html)
Elwood: "E' partito un pistone"
Jake: "Poi torna?"
________________________________________________________
Hiryu @ http://hiryu.netsons.org | http://www.virb.com/hiryu

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
D64 Into Crt
« Risposta #1 il: 29 Maggio 2005, 10:03:03 »
 E' un discorso un po' lungo.
Una normale cartucccia contiene da 8 a 16 kb, che vanno da $8000 a $9fff (8kb) o da $8000 a $bfff (16kb)
Una cartuccia di per se' e' fatta da 2 puntatori a 16bit, agli indirizzi $8000 e $8002 e una signature composta dai 5 caratteri "CBM" in reverse e "80", che indicano al kernal che e' presente una cartuccia e, durante un reset, verra' effettuato un salto indiretto all'indirizzo puntato da $8000 con una JMP ($8000).
Codice: [Seleziona]
8000  09 80 12 80 C3 C2 CD 38 30 xx xx xx xx
       |___| |___| |____________|
         1     2        3
1) Puntatore per il reset: questo punta a $8009, e significa che ad ogni reset
   il kernal effettuera' un JMP $8009

2) Puntatore per il restore: questo punta a $8012, e significa che ad ogni
   pressione di Restore il kernal effettuera' un JMP $8012

3) Signature CBM80

Il resto (da $8009 in poi) e' codice normalmente eseguibile, con la particolarita' che NON si tratta della RAM del C64 ma della ROM nella cartuccia vista a quell'indirizzo.
Per fare una crt di un QUALSIASI programma (be', non proprio) si puo' scrivere una piccola routine di trasferimento che porta il contenuto della ROM da $8000 all'indirizzo originale del programma.

Rimane il problema che la memoria da $8000 in poi e' ROM e quindi non utilizzabile.
Per Contiki ho usato mcart di Markus Brenner per fare delle immagini CRT che permettessero il bank switching e, soprattutto, la disabilitazione della ROM. Ogni cartuccia ha un modo diverso di settare i banchi di ROM visibili, ad esempio mettendo il numero di banco a $de00, oppure $00 o $80 se si vuole disabilitare la ROM del tutto e ripristinare la memoria a $8000.
Quella che mi sembrava piu' utilizzabile era la Magic Desk da 32k. Non ho trovato nei dox di Brenner una cartuccia da 16kb che permettesse sia bankswitch che disabilitazione ROM.  

Anche per Prophet64 sembra la piu' utilizzabile, perche' il programma espanso necessita di vedere la RAM da $8000 a $9fff, mentre il programma compresso occupa 16kb o meno.  
Dopo una mattinata da tentativi, nonostante ti avessi anticipato in chat che credevo non si potesse fare, sono giunto a questo risultato:

http://iancoog.altervista.org/hid/Prophet64_CRT.rar

pero' mi funzionano solo con Vice.

C'e' da stabilire come vada realizzata una vera cartuccia di tipo Magicdesk/HES, ma questo lo sanno solo Markus Brenner, Nicolas Coplin e pochi altri esperti di hardware.
A tal proposito qua ci sono gli schemi su come realizzare queste cartucce, vedi un po' se ci capisci tu qualcosa :)
http://www.64hdd.com/download/rom-crts.zip
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

hiryu

  • Utente
  • **
  • Post: 649
    • http://hiryu.netsons.org/
  • Gioco Preferito: Wizard Of Wor
D64 Into Crt
« Risposta #2 il: 29 Maggio 2005, 15:13:09 »
 e con una cartuccia da 32K come questa:

http://home.wanadoo.nl/arjenvellekoop/indexuk.html

come la vedi??
Elwood: "E' partito un pistone"
Jake: "Poi torna?"
________________________________________________________
Hiryu @ http://hiryu.netsons.org | http://www.virb.com/hiryu

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
D64 Into Crt
« Risposta #3 il: 29 Maggio 2005, 20:38:25 »
Citazione da: "hiryu"
e con una cartuccia da 32K come questa:

http://home.wanadoo.nl/arjenvellekoop/indexuk.html

come la vedi??
"First I designed a simple 8k PCB that worked fine, but I still could not play the somewhat larger programs (16k), and I was not able to load several games in one EPROM."
Mi sembra di capire che vada bene solo per i prg da 8k.
In piu' non c'e' scritto che e' switchabile via software ma solo selezionabile tramite switches esterni.  
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

zimox

  • Utente
  • **
  • Post: 171
  • Gioco Preferito: trolls & tribulations
D64 Into Crt
« Risposta #4 il: 05 Giugno 2005, 20:42:13 »
 al limite senza sbattersi tanto si potrebbe comprare una mmc64 (che e' anche passante e tutto sommato non costa poi molto) e inserire i 3 programmi prg nella sd (gli altri sono file di prova) cosi' da aver ...
1  il caricamento di uno dei programmi inseriti in directory oppure
2  il caricamento immediato all' accensione (bootfile) del prg
fermo restando che il drive esterno o il datacassette sono necessari per memorizzare i vari file
preparare un eprom adatta, inserire il prg,comprare una basetta, saldare i componenti, ecc.... :mellow:
saluti
No c64?, no party!