Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_meta is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Dopo 48 anni, ecco il codice di Microsoft 6502 BASIC: il pezzo mancante della storia del Commodore 64

Dopo 48 anni, ecco il codice di Microsoft 6502 BASIC: il pezzo mancante della storia del Commodore 64

Microsoft rende open source il 6502 BASIC, linguaggio che ha animato i primi computer Commodore. Il codice originale del 1977 è disponibile su GitHub, permettendo a storici e sviluppatori di rivivere e studiare una pietra miliare della programmazione.

L’azienda di Redmond compie un passo storico nella preservazione del patrimonio software: rilascia ufficialmente il codice sorgente di Microsoft 6502 BASIC, il celebre interprete di linguaggio BASIC che ha segnato l’alba dell’informatica personale. Per decenni, frammenti e copie non ufficiali erano circolati online, spesso conservati da appassionati di retrocomputing e archivi museali. Oggi, per la prima volta, il codice originale è disponibile come software open source, consentendo a sviluppatori, storici e appassionati di esplorare e modificare una pietra miliare della programmazione.

Dopo il rilascio del codice di Altair BASIC del 1975, primo software in assoluto della storia di Microsoft, oggi è la volta di 6502 BASIC.

Le origini: da Altair a Commodore

Microsoft BASIC era un interprete BASIC per il processore Intel 8080, scritto da Bill Gates e Paul Allen per l’Altair 8800. Il successo iniziale portò rapidamente all’adattamento del codice per altri processori a 8 bit, tra cui il MOS 6502, il Motorola 6800 e il 6809.

La versione per MOS 6502, completata nel 1976 da Gates e Ric Weiland, fu distribuita in licenza da Commodore nel 1977 per una somma forfettaria di 25.000 dollari. Questa decisione permise a Microsoft BASIC di diventare il cuore dei computer Commodore PET, VIC-20 e, soprattutto, del leggendario Commodore 64. Il linguaggio, semplice ma potente, consentì a milioni di utenti di muovere i primi passi nella programmazione con istruzioni familiari come:

10 PRINT "HELLO"
20 GOTO 10

La versione 1.1: una capsula del tempo

Il rilascio open source riguarda la versione BASIC M6502 8K VER 1.1, contenente correzioni al garbage collector apportate nel 1978 da Bill Gates insieme all’ingegnere Commodore John Feagans, durante una visita a Bellevue. Questa è la versione che fu distribuita come BASIC V2 sui PET.

Il codice conserva anche un curioso Easter egg, nascosto nelle etichette STORDO e STORD0, confermato dallo stesso Gates nel 2010, un esempio di come i programmatori già all’epoca inserissero piccoli “marchi personali” nel codice. Il sorgente originale mantiene l’intestazione BASIC M6502 8K VER 1.1 BY MICRO-SOFT, un autentico tuffo nel 1978.

Oltre al Commodore 64, la stessa base di codice fu adattata per l’Apple II, dando origine a Applesoft BASIC, mostrando la versatilità e l’influenza di questo interprete sui primi computer personali.

Codice sorgente Microsoft 9502 BASIC

Il ruolo del MOS 6502

Il MOS 6502 è lo storico chip dietro sistemi iconici come Apple II, Atari 2600, NES e molte altre macchine a 8 bit. La sua architettura semplice ed efficiente ha reso possibili computer accessibili e ha influenzato generazioni di programmatori ed educatori.

Oggi, il retrocomputing continua a prosperare: emulatori, ricreazioni FPGA e comunità attive mantengono viva la scena. Il ritorno del marchio Commodore con una nuova versione FPGA del C64 dimostra l’interesse duraturo per queste piattaforme.

Conservazione e ricostruzione del codice

Negli anni, ci si è adoperati per riscostruire gli ambienti software originali, verificando che il codice sorgente potesse ancora generare ROM identiche a quelle di un tempo. Michael Steil, in particolare, ha documentato l’intero BASIC originale, adattando il codice anche agli assemblatori moderni come cc65, rendendolo eseguibile sui sistemi moderni.

Il rilascio open source del Microsoft 6502 BASIC si inserisce in un percorso già iniziato con la pubblicazione di GW-BASIC, discendente dalla stessa linea evolutiva e incluso nei primi PC IBM. Da GW-BASIC sono derivati QBASIC e, successivamente, Visual Basic, ancora oggi utilizzato per lo sviluppo di applicazioni Windows.

Il codice sorgente di Microsoft 6502 BASIC è ora disponibile su GitHub, pronto per essere esplorato, studiato e, perché no, aggiornato per nuove sperimentazioni. Fa davvero effetto leggere, nel repository GitHub, l’indicazione “48 anni fa” a conferma del fatto che i file sono distribuiti così com’erano, senza alcuna modifica aggiuntiva.

Le immagini nell’articolo sono tratte dall’immagine di pubblico dominio (Wikimedia Commons).

Ti consigliamo anche

Link copiato negli appunti