Autore Topic: Basic To Assembly Compiler  (Letto 2388 volte)

Cube_Sid

  • Neo-iscritto
  • *
  • Post: 14
Basic To Assembly Compiler
« il: 17 Settembre 2006, 23:36:25 »
 Salve a tutti,
sono al mio primo post e spero di trovare l'aiuto che mi serve qui. sono un "musicista informatizzato" che da piccolo ha trascorso gran parte del suo tempo attaccato ad un C64. A distanza di molti anni, dopo aver approfondito i meccanismi di funzionamento di sintetizzatori vintage, digitali e software, è rispuntata la passione per la Commodore..

Premettendo che sono alle prime armi come programmatore, vengo al dunque. Vorrei realizzare un software per la produzione musicale (Synth + Sequencer) basata sul motore di sintesi del SID. Vorrei racchiudere il tutto in una cartridge auto bootable (ammesso che il C64 non booti in automatico dalla cartuccia) ed aggiungerci un controller MIDI per gestirne i parametri.

So che non è cosa facile, ma vorrei provare.

Ho cominciato ad informarmi un pò ed a smanettare con il Basic (con l'extender Simons Basic a quanto pare risulta essere il più completo). La prima domanda che mi preme farvi è : Una volta realizzato il mio software in Basic, posso trasferirlo in una EPROM utilizzando un compilatore? Le mie ricerche mi hanno portato a questa pagina : http://www.npsnet.com/danf/cbm/languages.html#Assembly

Tipo..questo BASM "Compiler and assembler" permette di trasformare il Basic in linguaggio macchina assemply 6502?

Vorrei programmare qualcosa tipo il Prophet64 http://www.prophet64.com/
Per realizzare una cosa del genere, a livello di programmazione mi "basta" conoscere il Basic? Rispondete in massa..sono assetato di consigli

:c64: ube_Sid  

P.S. Prego astenersi demoralizzatori  

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Basic To Assembly Compiler
« Risposta #1 il: 18 Settembre 2006, 00:08:54 »
Citazione da: "Cube_Sid"
P.S. Prego astenersi demoralizzatori
Ok, giurin giuretta, non diro' nulla.
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

RedPanda

  • Utente
  • **
  • Post: 125
  • Gioco Preferito: Montezuma's Revenge, Terry's Big Adventure
Basic To Assembly Compiler
« Risposta #2 il: 18 Settembre 2006, 00:18:44 »
 Il Sid fa' sempre da padrone  :metallica: e dire che se il suo progettista poteva, lo avrebbe reso molto piu' potente ancora  :metallica:

Citazione
(ammesso che il C64 non booti in automatico dalla cartuccia)

Le cartucce sono autobootabili, ma devono settare alcuni parametri nella memoria del 64 per essere lanciate all'accensione. Andano a memoria, qualcosa era gia' riportata nel (minimalista) manuale base del 64.

Citazione
Una volta realizzato il mio software in Basic, posso trasferirlo in una EPROM utilizzando un compilatore? Le mie ricerche mi hanno portato a questa pagina : http://www.npsnet.com/danf/cbm/languages.html#Assembly

Tipo..questo BASM "Compiler and assembler" permette di trasformare il Basic in linguaggio macchina assemply 6502?

Hum, so che e' esistito hardware per 64 con cui programmare EPROM. Pero' serve che spieghi come pensi di usare questa eprom con il 64: vuoi costruire una cartuccia vera e propria? Volendo basterebbe salvare il programma su disco/nastro.

Per i compilatori, a volte si parla di un qualcosa che non e' veramente "linguaggio macchina", ma di un programma basic che viene solo "tradotto" in una forma che viene eseguita piu' velocemente (non sono un guru, ma l'idea sarebbe questa...  :stordita: ).
Potrei comunque consigliarti di dare un'occhiata al linguaggio macchina vero e proprio (e non farti scoraggiare dalle prime difficolta'), se ne hai la pazienza ed il tempo: molte funzioni del SID (come regolare i registri) si fanno molto piu' velocemente e semplicemente in LM.

Per il Prophet64 so che qualcuno su questo forum lo usa, sono sicuro che i consigli non tarderanno ad arrivare...

Cube_Sid

  • Neo-iscritto
  • *
  • Post: 14
Basic To Assembly Compiler
« Risposta #3 il: 18 Settembre 2006, 00:33:59 »
 
Citazione da: "RedPanda"
Hum, so che e' esistito hardware per 64 con cui programmare EPROM. Pero' serve che spieghi come pensi di usare questa eprom con il 64: vuoi costruire una cartuccia vera e propria? Volendo basterebbe salvare il programma su disco/nastro.
Ciao RedPanda,

a questo indirizzo c'è un progetto di due ragazzi che hanno realizzato un synth per  :c64:  e trasferito tutto su una EPROM. Hanno addirittura rimosso le ROM del 64 rimpiazzandole con la "scheda" da loro creata.

http://qotile.net/cynthcart.html

Il mio obiettivo è quello di realizzare una workstation che usi il SID come motore di sintesi ed il mio software per controllarne i parametri. Non voglio imbarcarmi in progetti tipo MIDIbox (che fra parentesi sono eccezionali) in quanto prevedono una discreta conoscenza di elettronica applicata. Dovendo scegliere un approccio, per questo progetto, preferisco la programmazione.

Seguirò il tuo consiglio e darò un'occhiata al LM ma l'assembly credo sia un "tantino" più complesso del Basic.

Thanks,

 :c64: ube_Sid

Cube_Sid

  • Neo-iscritto
  • *
  • Post: 14
Basic To Assembly Compiler
« Risposta #4 il: 18 Settembre 2006, 00:43:21 »
 
Citazione da: "iAN CooG/HF"
Citazione da: "Cube_Sid"
P.S. Prego astenersi demoralizzatori
Ok, giurin giuretta, non diro' nulla.
Poi dicono che la pubblicità non insegna..com'è che faceva quella? "..prevenire è meglio che curare"  :P

 :c64: ube_Sid

RedPanda

  • Utente
  • **
  • Post: 125
  • Gioco Preferito: Montezuma's Revenge, Terry's Big Adventure
Basic To Assembly Compiler
« Risposta #5 il: 19 Settembre 2006, 00:01:40 »
 Non male, un progetto davvero ambizioso!  :o Ogni giorno il 64 e' una sorpresa.

Be', se hai la capacita' e i mezzi per creare una cartuccia, e' certamente una scelta fattibile (e di certo dire "ho costruito una cartuccia" fa' sembrare piu'  B) ).
Ma non credo sia essenziale mettere questo programma su cartuccia, a meno che questa non sia fatta per fare cose che il SID da solo non fa' di suo, o hai bisogno di cose speciali come monitor, freeze, dove effettivamente serve un hardware speciale.

Citazione
Seguirò il tuo consiglio e darò un'occhiata al LM ma l'assembly credo sia un "tantino" più complesso del Basic.

E' certamente piu' complesso, ma se stai mirando a sfruttare a fondo il SID, e' un impegno che ripaga.
Prima di tutto un programma in Assembler e' molto piu' veloce da eseguire che uno in Basic, ed il 64 non e' proprio una macchina "velocissima" diciamo, e avere della velocita' in piu' puo' essere cruciale.
La seconda e' che puoi anche sfruttare 16k di memoria in piu' se disattivi l'interprete Basic, e sarebbe piu' memoria per i tuoi dati.

KONEY

  • Utente
  • **
  • Post: 60
    • http://www.koney.org
  • Gioco Preferito: ghost'n'goblins
Basic To Assembly Compiler
« Risposta #6 il: 19 Settembre 2006, 00:44:12 »
 Io ho il Prophet64 e il tuo progetto mi interessa tantissimo! tecnicamente non ho esperienze di programmazione ma se ti servono consigli in generale sono qua a tua disposizione 8))

Cube_Sid

  • Neo-iscritto
  • *
  • Post: 14
Basic To Assembly Compiler
« Risposta #7 il: 19 Settembre 2006, 00:56:59 »
Citazione da: "RedPanda"
E' certamente piu' complesso, ma se stai mirando a sfruttare a fondo il SID, e' un impegno che ripaga.
Prima di tutto un programma in Assembler e' molto piu' veloce da eseguire che uno in Basic, ed il 64 non e' proprio una macchina "velocissima" diciamo, e avere della velocita' in piu' puo' essere cruciale.
La seconda e' che puoi anche sfruttare 16k di memoria in piu' se disattivi l'interprete Basic, e sarebbe piu' memoria per i tuoi dati.
Beh, mi piacerebbe molto imparare l'assembly ma detto chiaramente credo sia davvero complicato affrontare questo linguaggio come prima esperienza di programmazione. Ad ogni modo sto studiando la struttura del SID..e le cose cominciano a diventare + chiare. Vedremo, intanto mi sto facendo spedire la famosissima enciclopedia del Basic..ma ve la ricordate? Quella con le copertine argentate. Meno male che non butto mai niente  :metal:

 :c64: ube_Sid

RedPanda

  • Utente
  • **
  • Post: 125
  • Gioco Preferito: Montezuma's Revenge, Terry's Big Adventure
Basic To Assembly Compiler
« Risposta #8 il: 19 Settembre 2006, 12:50:45 »
Citazione da: "Cube_Sid"
Meno male che non butto mai niente  :metal:
 
Non sei il solo  ;)  

djwiper

  • Utente
  • **
  • Post: 197
  • Gioco Preferito: Sim City
Basic To Assembly Compiler
« Risposta #9 il: 20 Settembre 2006, 19:17:46 »
 Io non so se ti conviene davvero fare tutto in basic e compilare per una serie di motivi.

Il linguaggio macchina, ad esempio, è più ostico ma più performante. Credo che far suonare una nota  decentemente non è un problema per un listato basic. Far suonare una serie di note in tempo 'quasi' reale, settando parametri dinamici (arpeggio, cutoff, ADSR) inizia ad esserlo. Suonare tre note in basic, secondo la mia veduta, è ancora più problematico specialmente se metti di mezzo input/output da periferiche. Guarda questopost ad esempio.

Se proprio non vuoi usare il LM puoi provare ad usare un altro linguaggio, per evitare improbabili compilazioni Basic to Assembler che magari possono essere fatte da compilatori che non conosco. Se n'è parlato in quest'altro topic.

A me è piaciuto tantissimo il compilatore CC65, www.cc65.org, che da codice 'quasi' C genera un .prg, magari puoi scrivere il tuo programma in C?

Ciao
Ho capito di odiare le firme...