La maggior parte degli appassionati di retroinformatica che vogliono cimentarsi con la programmazione delle loro macchine preferite si troverà in un certo momento della propria vita a scontrarsi con la necessità di imparare l’assembly del MOS 6502 ovvero quella gloriosa CPU che negli anni 80 dominava, assieme al probabilmente ancor più diffuso Zilog Z80, il panorama microinformatico (neanche stessimo parlando che ne so… del C64 e lo Spectrum … ehmmm …)
Chiunque di noi ha avuto a che fare con una macchina che montasse una CPU 6502 o una sua derivata (Atari 2600 e 800, Commodore VIC 20 e 64, Oric-1, Creativision… tra le infinite altre) e quindi imparare il linguaggio in grado di trarre l massimo da questo processore è una sfida sicuramente stimolante. Un po’ come se fino a ieri stavi li a pastrugnare sulle foto di Sasha Grey e poi ti suonano alla porta e c’è lei in tette ed ossa che ti dice “bello, mo si fa sul serio!”
Certo è che oggi libri sul 6502 non è facile trovarne e i pur abbondantissimi tutorial o simili che si trovano in rete a volte non sono cosí alla portata di tutti. E allora ecco che un geniaccio del male si inventa la pensata del secolo… si guarda allo specchio e dice : “ma tutta sta menata del web 2.0 interattivo e io mi devo impazzire a leggere 4767 pagine di file .txt in carattere Courier New 8pt. ?? Dico… retroinformatico si ma cogl … tonto no…” e ti tira fuori una serie di lezioni sull’assembly del MOS 6502, chiare e facili da capire per i novellini, il tutto completato da un bell’ambientino “live” di programmazione dove uno si può pure digitare e provare al volo il codice delle varie lezioni (e anche oltre a dire il vero).
Roba che se ce l’aveva il Bei quand’era piccolo l’Oric1 lo squajava…
Nick Morgan, autore di questa piccola meraviglia, descrive Easy 6502 (QUI il link alla pagina) come un piccolo ebook, ma con una differenza, si può davvero usare per eseguire programmi e ci spiega come mai abbia avuto l’idea di creare sto corso interattivo proprio per il 6502.
”Il 6502 era un processore difussisissimo negli anni 70 e 80 sul quale erano basati numerosi computer e console molto famosi come BBC Micro, Atari 2600, Commodore 64 e Nintendo Entertainment System. La sua importanza nella storia dell’informatica è tale che è diventato una specie di icona mitica. Addirittura Bender in Futurama ha un 6502 come processore per il suo cervello ed anche in Terminator era programmato in assembly 6502.”
…e già a questo punto noi, che siamo dei piccoli grandi retronerd, quando uno ci dice “aho… ma lo sai che spacca poprio sta robba che te pippi con l’amichi tua?” tiramo fuori il petto tutti fieri.
Però facciamo finta che siamo dei tizi totalmente disinteressati alla retroinformatica, arriviamo quasi per caso in quell’angolino di GitHub che ospita Easy 6502 e storciamo un po’ il naso… “ma che è sta robba?” saremmo portati ad esclamare, noi incauti e superficiali visitatori. E probabilmente aggiungeremmo pure “manco mi nonna ce farebbe qualcosa”.
E allora ci chiedeamo perché qualcuno dovrebbe dedicare i propri sforzi ad imparare l’assembly del 6502? Perché non imparare direttamente quello dell’architettura x86?
Ed ecco il pensiero di Nick a riguardo:
“Non credo che imparare l’x86 sia utile. Non credo che nessuno di noi scriverá mai una riga di assembly per il proprio lavoro odierno. Questo è un puro e semplice esercizio accademico, qualcosa che ha come scopo quello di espandere la vostra mente e le vostre capacità di ragionamento. Il 6502 venne disegnato in un’epoca differente, un’epoca nella quale la maggior parte degli sviluppatori utilizzavano, appunto, l’assembly piuttosto che linguaggi ad alto livello. Per questo il 6502 venne disegnato per essere utilizzato da umani. Le versioni di assembly per i moderni processori sono pensati per essere utilizzati dai compilatori, quindi meglio lasciarle a loro. Inoltre l’assembly del 6502 è divertente. Nessuno ha mai pensato che quello degli x86 fosse divertente.”
Insomma, il buon Nick vi sta praticamente invitando a mettere da parte sudoku e cruciverba e combattere l’alzheimer studiandovi del buon assembly 6502.
In fondo perché no? Alla fine magari a 85 anni invece di farvela addosso riuscirete a scrivere una conversione decente di Enduro Racer per Commodore 64.
Vi consigliamo vivamente di dare un’occhiata all’ ebook (come lo chiama Nick). In men che non si dica, dopo la lettura del testo della lezione, vi troverete a digitare il vostro codice e sperimentare cosa produce.
È davvero un ottimo metodo per imparare. Le lezioni ci guideranno attraverso i principi fondamentali del 6502, registri, metodi di indirizzamento, lo stack e altro.
Probabilmente, se proprio dobbiamo trovare un difetto a questa bella iniziativa, potremmo dire che forse è un po’ breve ma sicuramente quando arriverete al termine comprenderete almeno ciò che rende il linguaggio assembly, QUALUNQUE linguaggio assembly, diverso dai linguaggi ad alto livello ed inoltre inizierete a capire qual’è il compito che svolgono i compilatori. E non è cosa da poco…
Dategli un’occhiata, per la conversione di Enduro Racer su C64 c’è sempre tempo (o forse no?).
FORSE TI POTREBBERO INTERESSARE:
Ultimi post di MetalRedStar (vedi tutti)
- RGM Today – 004/2016 - 1 febbraio 2016
- RGM Today – 003/2015 - 18 gennaio 2016
- RGM Today – 002/2015 - 21 dicembre 2015
- RGM Today – 001/2015 - 14 dicembre 2015
- Buone retrovacanze - 9 agosto 2015
Il paragone con Sasha Gray non regge molto… comunque bell’idea e ottimo articolo come sempre!
Forse è la spinta giusta che aspettavo.
Forse arrivo tardi, alla mia età, ma oggi nel 2021 è come un reload, per me