Visualizza il feed RSS

Titolo provvisorio...

C64 - Imparare a Programmare in Assembly

Valuta questo inserimento
di pubblicato il 24-01-2019 alle 15:00 (632 Visite)
Negli ultimi anni si riscontra un costante aumento di interesse nei confronti del retrocomputing, che si polarizza quasi ineluttabilmente attorno al più venduto nella storia degli home computer, il nostro beniamino C64.
Le motivazioni di codesto ritorno di fiamma sono varie e potrebbero facilmente riempire un trattato di sociologia informatica (con l'occasione saluto la mia vecchia amica Anne-Marie van O., pioniera olandese della socioinformatica e della digitalizzazione dei servizi al cittadino negli anni Ottanta, materia che desolatamente rimane a tutt'oggi sperticata fantascienza per l'Italia). Tra le più importanti, possiamo citare almeno: insoddisfazione per l'attuale desolante omologazione di hardware e sistemi; nostalgia per un decennio della storia italiana tanto bello quanto irripetibile; fisiologica reazione all'impietoso bombardamento di boiate scolastiche su cui si forma il credo dell'informatico quadratico medio del terzo millennio, come ad esempio la presunta "inutilità" dell'Assembly e della microottimizzazione, l'iperbolica esagerazione delle capacità dei "moderni" compilatori e ottimizzatori fino ai limiti del sovrannaturale, la presunta inaccessibilità del low level a causa del farraginoso gioco di matrioske di macchine e device virtuali su cui si reggono in precario equilibrio i "moderni" sistemi operativi, il maraviglioso potere taumaturgico dei salvifici standard dei linguaggi che - il giorno stesso della promulgazione - fanno svanire nel limbo dell'obsolescenza i miliardi di LOC preesistenti e obbligano ogni programmatore ad usare a piene mani fino all'ultima nuova caratteristica, e via discorrendo. Ecco quindi che (ri)mettere le mani su macchine (e relativi emulatori/debugger) ormai documentate dalla prima all'ultima saldatura, dal primo all'ultimo byte di ROM, nelle quali il Vero Programmatore Assembly può a suo totale piacimento controllare ogni singolo bit, diventa una riaffermazione dei principi fondanti dell'informatica applicativa come la ricerca costante della massima efficienza, il massimo controllo da parte del Programmatore, l'ottimizzazione come arte, la conoscenza puntuale della piattaforma, l'engineering accurato... principi ormai quasi del tutto estromessi dal mainstream e confinati negli ultimi settori "nobili" come i sistemi embedded altamente critici o il supercalcolo su mainframe. Col riso sardonico in sottofondo causato dal fatto che, per ben che vada, l'unico cross compiler C decentemente funzionante per quel target risulta a malapena compatibile col K&R prima maniera, altro che C11. Inoltre il valore formativo e didattico di un simile studio è semplicemente inestimabile nel formare definitivamente la comprensione dei processi logici della computazione, l'architettura e il controllo dell'hardware.

Naturalmente rimane sempre valido il sacro principio che l'Informatica è una scienza, e come tale si apprende su dei buoni libri. Negli oltre tre lustri di strepitoso successo commerciale del C64 sono state stampate centinaia di validi testi, i cui autori molto spesso erano tra le più brillanti stelle del firmamento dei microcomputer, autorevoli e rispettati. Per questo ho preparato una bibliografia di base con un completo percorso formativo che tocca, oltre ovviamente ai manuali originali della casa, mappe di memoria dettagliate, testi sull'architettura hardware, manuali sul linguaggio Assembly del 6502 a vari livelli (principiante, intermedio, avanzato) e tutta una serie di testi verticali sulla programmazione applicativa che trattano a fondo aspetti come il suono, la grafica, l'animazione e la programmazione videoludica.
Ovviamente per padroneggiare appieno il linguaggio occorre anche completare lo studio con l'analisi di sorgenti Assembly pubblicamente disponibili, che oggi sono reperibili in quantità industriali da una molteplicità di fonti qualificate.

Come d'abitudine, è disponibile una comoda versione in PDF dell'articolo completo.

aggiornamento da 05-12-2019 a 01:22 di M.A.W. 1968

Categorie
Libri , Programmazione , Hardware

Commenti