Autore Topic: Imparare L'assembler  (Letto 18605 volte)

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« il: 29 Luglio 2009, 23:57:19 »
 
Vorrei imparare l'assembler del C64, ma non sono sicuro su come iniziare,

ho un paio di dubbi che vado ad elencare :

Dove conviene imparare, su un C64/C128 vero o su un emulatore ?

Se conviene iniziare su un  C64/C128 vero, quale assembler editor mi consigliate ?

se invece conviene un emulatore cosa devo scegliere per iniziare a programmare ?

spero di essere stato chiaro.

 
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

saver71

  • Utente
  • **
  • Post: 277
  • Amante degli anni '80
    • Super 80
Imparare L'assembler
« Risposta #1 il: 30 Luglio 2009, 00:19:01 »
Potresti iniziare facendo una netta distinzione tra "Assembler" e "Assembly": il primo NON è un linguaggio di programmazione bensì un programma che compila i sorgenti in Assembly, mentre il secondo è il linguaggio di programmazione vero e proprio.

Per quanto riguarda la tua richiesta un consiglio che posso darti è quello di dare un'occhiata a questo thread. Il forum è pieno zeppo di informazioni utili, basta solo saper cercare. :)
« Ultima modifica: 22 Gennaio 2015, 00:05:55 da eregil »

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #2 il: 30 Luglio 2009, 01:05:36 »
 
Citazione da: "saver71"
Potresti iniziare facendo una netta distinzione tra "Assembler" e "Assembly": il primo NON è un linguaggio di programmazione bensì un programma che compila i sorgenti in Assembly, mentre il secondo è il linguaggio di programmazione vero e proprio.

Per quanto riguarda la tua richiesta un consiglio che posso darti è quello di dare un'occhiata a questo thread. Il forum è pieno zeppo di informazioni utili, basta solo saper cercare. :)
Grazie tantissimo per la correzione, da questo si puo' capire che sono veramente un principiante. :(

Ho seguito il link che mi hai dato, ma non fa riferimento alle questioni che ho posto, per lo meno non del tutto.

Si fa riferimento al TURBOASSEMBLER che presumo sia un assembler per C64, poi si fa rifeimento alla FINAL CARTRIDGE III che credo contenga anche un assembler al suo interno, ma non si dice se questi siano i migliori o per lo meno i piu' adatti ad un principiante come me.

Poi il mio dubbio piu' grande è se conviene usare un C64 vero o un pc con ad esempio KICKASSEMBLER o il vice insieme a qualche altro programma non so.

Spero di aver chiarito un po meglio i miei dubbi.

Ti ringrazio tantissimo per l'aiuto


P.S.
Per quanto riguarda eventuali manuali sulla programmazione in assembly ho scaricato a tappeto tutto quello che c'era nella sezione libri del sito, aspetto con ansia la Guida di Riferimento per il Programmatore
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #3 il: 30 Luglio 2009, 13:59:17 »
 Ho trovato questo sito riguardante il turbo assembler, sicuramente a molti di voi non sara' una novita'


http://turbo.style64.org/index.php


Mi aiutate a districarmi in mezzo a tutte quelle versioni, qual'è quella giusta da far girare sul c64 ?

Ci sono cosi' tante versioni che non riesco a regolarmi.

HELP!!  :confused:  :confused:

Grazie  :)
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #4 il: 30 Luglio 2009, 20:33:45 »
 Sono riuscito a far partire il turbo assembler, una versione per cosi' dire speciale che ho trovato sul sito che  ho linkato prima.

E' la prima della lista, praticamente è una  raccolta di varie utility piu' il turbo assembler trasformata in formato cartuccia Retro Replay.

Il file è .bin, l'ho caricato nella mia MMC REPLAY e' va che è una meraviglia.

Adesso c'è un altro piccolo particolare, quasi mi vergogno a chiederlo :(,

Ho girato da per tutto ma non riesco a trovare della documentazione sui comandi interni del Turbo Assembler, non dell'Assembly ma del Turbo Assembler vero e proprio.

Mi potete aiutare x lo meno su questo ?  :hail:  :hail:  :hail:

Non mi dite che devo ancora cercare nel sito è tutto il pomeriggio che cerco, nel sito ed oltre.

Qualche passo avanti lo fatto, merito un premio  ;)   :lol:  :lol:  
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

Roberto

  • Administrator
  • Utente
  • *****
  • Post: 2411
    • https://ready64.org
  • Gioco Preferito: Impossible Mission
Imparare L'assembler
« Risposta #5 il: 30 Luglio 2009, 20:49:06 »
 Il primo sito da controllare quando si cercano dox è il solito Project64, purtroppo abbandonato ma ancora utile.
Comunque anche con google cercando "Turbo Assembler commodore 64 manual" è il primo risultato.
Per collaborare, segnalare un errore (o qualsiasi altra comunicazione importante) utilizzare la pagina dei contatti:
https://ready64.org/informazioni/contatti.php

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #6 il: 30 Luglio 2009, 21:35:08 »
Citazione da: "Roberto"
Il primo sito da controllare quando si cercano dox è il solito Project64, purtroppo abbandonato ma ancora utile.
Comunque anche con google cercando "Turbo Assembler commodore 64 manual" è il primo risultato.
Grazie tantissimo roberto, poco prima di leggere il tuo post, avevo trovato lo stesso documento qui :

http://www.c64.ch/programming/index.php

Infondo alla pagina.

Adesso parte l'altra domanda da deficiente :P

Ho trovato questa frase nelle prime righe del manuale,

"{" is the backarrow key in document


Si intende questo carattere "<"  :specchio:

Cioe' come devo interpretare ad esempio questo comando : {RETURN  :confused:

Mi sto rendendo conto che è passato veramente tanto tempo dall'ultima volta che ho cercato di programmare.  :doh:  
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #7 il: 30 Luglio 2009, 22:12:22 »
 Ok trovata la soluzione anche a questa scemata.

si intende il tasto

"←"

che sarebbe il primo in alto a sinistra per il C64,  quello sotto il tasto "ESC" sempre in alto a sinistra per il C128.


Certo che sto scrivendo da solo una guida per iniziare a programmare in assembly per sfigati cronici.

Piu' passo passo di cosi si muore.




 :papersoft:  :azz:  
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #8 il: 02 Agosto 2009, 16:13:40 »
 Posto il link dove potete trovare l'ultima versione della

Turbo Action ROM

la versione 2

Il sito che avevo trovato prima,  che avevo segnalato nei post precedenti, non viene aggiornato dal 2007 e facendo  una ricerca ho trovato il sito dei

Dekadence

che sono il gruppo che sta portando avanti il progetto.

questo è il link :

http://www.dekadence64.org/prodstools.html

Sto postando tutto quello che trovo per le persone che come me sono alle prime armi e vogliono imparare l'assembly, spero che il tutto sia utile a qualch'uno.

Ciao a tutti

P.S.

Comunque nessuno mi ha risposto se è meglio programmare su un c64 vero o su un emulator, fatevi sentire, sempre se non siete in vacanza, in questo caso

BUONE VACANZE A TUTTI.  :metal:  :metal:  :metal:

 
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

mces

  • Utente
  • **
  • Post: 339
  • Gioco Preferito: fort apocalypse
Imparare L'assembler
« Risposta #9 il: 04 Agosto 2009, 09:56:42 »
 molte volte gli assemblatori che girano su PC sono generici (per più processori e non macchina-specifici) e devono quindi essere specializzati dall'utente che deve avere accortezze nel loro utilizzo.
Io è molto che non programmo più il C=64 in assembler, ma ricordo che mi trovavo molto bene con il programma CHAMP che girava su C=64.
Essendo un SW studiato per il C=64 e che girava su C=64 non aveva bisogno di impostare le limitazioni/caratteristiche specifiche della macchina, perchè la macchina usata per programmare era fisicamente quella che doveva eseguire il SW prodotto.
Esisterà di meglio, ma mi ci trovai molto bene.
Prendi in considerazione l'idea di avviare VICE (simula il C=64) sul tuo PC e di caricarci il Champ, credo che sia il meglio, almeno per iniziare con semplicità.

Dimenticavo:
il Champ, SW e manuale, lo trovi quì:
http://ready64.org/download/scheda_downloa...id_download=318

Per il manuale del programmatore del C=64 guarda in giro, magari trovi roba come questo:
http://www.commodore.ca/manuals/c64_progra...s_reference.htm

mentre in specifico sul processore 6502 (su cui il 6510 del C=64 ha una piccola variante) vedi e scarica quì:
http://ready64.org/libri/scheda_libro.php?id_libro=35

spero di esserti stato utile!
 
Non esistono problemi, solo soluzioni.

Emanuele

  • Neo-iscritto
  • *
  • Post: 7
  • Gioco Preferito: The Way of the Exploding Fist
Imparare L'assembler
« Risposta #10 il: 04 Agosto 2009, 20:28:44 »
 Penso che la soluzione migliore per te dipenda molto dalle tue precedenti esperienze di programmazione e da quello che vuoi fare.

Io mi trovo bene con cc65 (ca65+ld65). Se hai gia' esperienza con Linux/GCC, cc65 e' un ambiente familiare. Se non ce l'hai, cc65 e' forse uno degli ambienti piu' complicati da usare, ma d'altro canto i concetti che impari usandolo sono tuttora rilevanti.
 

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #11 il: 05 Agosto 2009, 02:03:39 »
 
Grazie mces per tutti i chiarimenti che mi hai dato, adesso provo L'assembler che mi hai consigliato, questa settimana sono messo male con il lavoro ma dalla prossima ho qualche oretta libera da poter dedicare alla programmazione, vediamo come mi trovo.

Vi terro' informati  :)  
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

AntonyFire

  • Utente
  • **
  • Post: 137
  • Gioco Preferito: WIZBALL
Imparare L'assembler
« Risposta #12 il: 05 Agosto 2009, 02:24:58 »
 
Citazione da: "Emanuele"
Penso che la soluzione migliore per te dipenda molto dalle tue precedenti esperienze di programmazione e da quello che vuoi fare.

Io mi trovo bene con cc65 (ca65+ld65). Se hai gia' esperienza con Linux/GCC, cc65 e' un ambiente familiare. Se non ce l'hai, cc65 e' forse uno degli ambienti piu' complicati da usare, ma d'altro canto i concetti che impari usandolo sono tuttora rilevanti.

Io programmavo a livello molto amatoriale, giusto per divertirmi sull'amiga con l'amos.

Ho fatto qualche demo ed un paio di giochini piuttosto sempliciotti.

Poi da allora piu' niente, il PC non mi attira tanto per la programmazione, non so il perche', ma non mi diverte.

Ma forse sono io che sono troppo nostalgico  :P  :c64:  :c64:

Guardando un po questo cc65 sono riuscito a capire che cosa significa :

Cross-Compiler

spiego per i profani, cosi scriviamo qualche altra cosa utile per noi che ancora siamo alle prime armi


Allora, ci sono 3 modi per imparare l'assembly ( o qualche altro linguaggio di programmazione) su un C64/C128 :

1) avere un C64/C128 vero e fare il tutto li sopra con i vari Assembler che si trovano in giro (Vedere i post precedenti)

2) Usare un emulatore (VICE per esempio) e caricare su quest'ultimo gli stessi programmi che andreste a caricare su un C64/C128 vero.

3 Usare un Cross-Compiler, ovvero un Compilatore Assembly per un processore, nel nostro caso 6502/6510, che pero' gira in un ambiente dove questo processore non esiste, ovvero Windows, Linux, Mac OS.
In pratica questo programma emula le funzioni del processore interessato, il risultato poi lo si puo' provare su un C64/C128 vero oppure emulato (Vice).

Spero di essere stato chiaro.  :lol:
in caso ho sbagliato qualche cosa corregetemi, vi prego.

Ritornando al discorso sul CC65 posso dire che è molto interessante ma credo sia meglio mettere da parte l'opzione dei Cross-Compiler per chi è veramente alle prime armi, e di cominciare con un C64/C128 vero o al massimo con un emulatore.

Per poi riprendere il discorso dei Cross-Compiler non appena si è raggiunta una preparazione nella decenza, giusto per non incasinarsi la vita ancora di piu.


Spero che il tutto risulti utile come sempre

CIAO A TUTTI   :metal:  :metal:  :c64:
 
COMMODORE  BASIC  V7.0  122365 BYTES  FREE
(C) 1985 COMMODORE ELETTRONICS, LTD.
(C) 1977 MICROSOFT  CORP.
ALL RIGHTS RESERVED

READY.

Emanuele

  • Neo-iscritto
  • *
  • Post: 7
  • Gioco Preferito: The Way of the Exploding Fist
Imparare L'assembler
« Risposta #13 il: 05 Agosto 2009, 22:08:06 »
 Dal mio punto di vista 1 e 2 sono molto simili, visto che useresti l'emulatore come un vero e proprio C64.

Se, da come mi e' sembrato di capire (AMOS ho letto e' un BASIC), non hai alcuna esperienza di assembly, una differenza piu' significativa mi sembra quella tra MONITOR e ASSEMBLER. Un monitor ha una corrispondenza piu' diretta tra codice macchina e assembly ed e' secondo me il punto di partenza migliore; per i primissimi esperimenti di 2-10 righe con l'assembly e' ideale.

Come libro ti consiglio:

Machine Language for the Commodore 64 and other Commodore Computers

Io passarei a un assembler (o cross assembler) una volta che padroneggi il monitor e ti senti pronto per programmi piu' lunghi.

marcom_to

  • Neo-iscritto
  • *
  • Post: 43
  • Gioco Preferito: Mean Streak
Imparare L'assembler
« Risposta #14 il: 05 Agosto 2009, 23:17:49 »
 Ciao AntonyFire.
Se posso aggiungere anche la mia opione, bisogna fare una distinzione fra linguaggi ad alto livello, come il Basic, o i linguaggi piu' moderni, e i linguaggi a basso livello, anche detti on the metal.
I primi permettono al programmatore di scrivere codice senza preoccuparsi ad esempio in quale porzione della memoria scrivere il programma, ed ancora quali aree di memoria il programma andra' a toccare durante l'esecuzione.
I secondi  necessitano da parte del programmatore di una buona conoscenza dell'hardware su cui programmare.
Questo per dirti che la scelta dell'assemblatore o cross-assemblatore e' lo step successivo. Prima o allo stesso tempo, dovresti imparare qualcosa sul memory mapping del commodore 64. Per questo la scelta obbligata e' il libro Commodore 64 Programmer's Reference Guide. In seguito potrai leggere un qualsiasi libro sull'assembly, anche quello per atari va bene (Guarda qui ) per imparare qualcosa sulla programmazione di routine, per il resto potrai applicare le cose imparate direttamente sul campo con il tuo C=64 o utilizzando Vice.
 
Another visitor! Stay a while. Staaaaay, FOREVER!!!!