In questo piccolo articolo, una breve descrizione delle aree di memoria in cui il BASIC 2.0 del C64 memorizza il codice e i dati trattati. Con un piccolo esempio di codice reale, vedremo quali sono i puntatori interni che regolano l'accesso alle varie sezioni di codice/dati, l'organizzazione e la struttura di tali dati e alcune caratteristiche di base del funzionamento del BASIC. In seguito sfrutteremo queste indicazioni per proseguire nell'esplorazione del codice del BASIC ...
Sono lieto di presentare la prima parte dell'ebook patrocinato da RetroProgramming - RP Italia e RMW: Retro Magazine World. Il piano dell'opera prevede di coprire, a livello introduttivo, la programmazione in Assembly delle seguenti CPU:MOS 6502/6510 MC68xx Zilog Z80 Vi sono inoltre richieste per estendere la trattazione anche agli 8088/8086 (strettamente limitata ai 16 bit della famiglia x86), che saranno valutate in seguito. Nelle prime cento pagine ...
aggiornamento da 16-12-2020 a 21:01 di M.A.W. 1968
Riprendiamo il problemino numerico già pubblicato qui per proporre una ulteriore soluzione, stavolta sviluppata in linguaggio COMAL 80 per quello che pare essere uno dei trend più divertenti e seguiti nell'ambito del retroprogramming. Raccomando come sempre l'articolo completo in PDF e i sorgenti di tutti gli esempi COMAL in formato .d64. //******************************* // save hymns //******************************* DIM b'digits(10) ...
//******************************* // save hymns //******************************* DIM b'digits(10)
Riprendiamo il simpatico problemino già trattato in questo articolo per proporre una nuova versione della soluzione, questa volta usando il linguaggio COMAL 80 (in particolare la versione 2.01 su cartridge) per Commodore 64. Il codice è altamente leggibile e decisamente "moderno", a maggior ragione considerando che si tratta di un linguaggio concepito in pieni anni Settanta. Il confronto con l'equivalente BASIC sarà un ottimo esercizio per i lettori di ogni livello d'esperienza. ...
aggiornamento da 18-06-2020 a 18:28 di M.A.W. 1968
Abbiamo scelto un altro problema stimolante dal Puzzle Book, un best seller di enigmi di programmazione per C64, caratterizzato da un runtime estremamente lungo, che già all'epoca invogliava a percorrere vie alternative. Si mostra come, pur rimanendo nell'ambito dei linguaggi interpretati di alto livello, si possa facilmente ottenere un miglioramento di un fattore cinque, che nella fattispecie significa passare da oltre 40 minuti a meno di 8, salvo poi ovviamente mettere mano all'Assembly ...
Sono ormai trascorsi più di dieci anni dal primo articolo sulle partizioni su questo blog: un tema che ha sollevato interesse e curiosità negli anni ad ogni nuovo appuntamento. In questa occasione ci riallacciamo al tema del retrocomputing ed al linguaggio COMAL, una della tante "specialità della Casa" , che sta riscuotendo sempre maggiore interesse tra i cultori del computing anni '80, proponendo una implementazione di tre algoritmi che riguardano le partizioni: ...
aggiornamento da 11-05-2020 a 16:16 di M.A.W. 1968
Dopo la breve digressione introduttiva sul problema dei matrimoni stabili proposto nel 1962 da David Gale e Lloyd Shapley, doverosamente incentrata nel più genuino ambito retroinformatico, dedichiamo un altro articolo alla parte più moderna della sua lunga storia. Questo problema e i suoi numerosi derivati sono stati affrontati nei decenni attingendo a piene mani a tutto l'arsenale di tecniche tipiche dell'ottimizzazione combinatoria: programmazione lineare, constraint programming, algoritmi paralleli, ...
aggiornamento da 18-05-2020 a 22:26 di M.A.W. 1968
La celeberrima battuta tratta da “Tailleur pour dames” del grande Georges Feydeau, una delle più esilaranti (e copiate) pochade incentrate sul tema delle relazioni extraconiugali, si presta splendidamente ad introdurre il non meno famoso problema combinatorio noto come “Problema dei matrimoni stabili”. Sfatiamo subito un mito: scorrendo l'ormai vastissima lista delle applicazioni nate attorno a questo problema e sue variazioni, si vede come in realtà l'uso di tali algoritmi in ambito ...
Abbiamo scelto un semplice problema logico, pubblicato come "2199ª prova d'intelligenza" sulla Settimana Enigmistica, per proporre una completa soluzione in linguaggio COMAL 80 (versione 2.01 per C64). Approfittiamo dell'occasione anche per un veloce ripasso su concetti e algoritmi fondamentali per la generazione di oggetti combinatori elementari. Il presente articolo si accoda, con qualche variazione, alla fortunata serie tratta da testi storici di puzzle ...
aggiornamento da 25-03-2020 a 22:54 di M.A.W. 1968
Parliamo nuovamente di partizioni di numeri naturali, uno degli argomenti più seguiti e richiesti del presente blog. Lo facciamo, per questa volta, in compagnia del simpatico personaggio della Settimana Enigmistica che propone indovinelli per uno dei più noti e longevi concorsi a premi dell'amata rivista: il "quesito della Susi". Per l'esattezza, si tratta del 964° quesito, pubblicato sulla rivista N° 4577 del 12 dicembre 2019 come 4513° concorso settimanale. Nelle vignette ...
aggiornamento da 21-05-2020 a 16:39 di M.A.W. 1968
Nella mia lunga esperienza parallela di formatore ho potuto più volte constatare in prima persona l'enorme fatica dell'iniziare a parlare di metodi e linguaggi formali alle giovani generazioni di laureati in discipline attinenti l'informatica e l'elettronica. Nel migliore dei casi qualcuno cita UML o i diagrammi di flusso, altri hanno inteso parlare qualche volta delle triple di Hoare, gli elettronici hanno forse visto in laboratorio qualche applicativo avanzato che sfrutta i BDD per la ...
aggiornamento da 31-12-2019 a 15:41 di M.A.W. 1968
Prendo a prestito il titolo di una nota commedia all'italiana, perché in questo breve articolo si parla di come creare, in generale, calendari d'incontri e tornei. Strumenti utili in vari frangenti, dallo studio del comportamento sociale di volatili e mammiferi alla teoria elettorale, come pure nello sport, dalle boccette agli scacchi passando appunto per palle e palloni di varia foggia. Sappiamo però per lunga esperienza che, ogni volta che si sfiora l'argomento, il lettore medio pensa subito invariabilmente ...
aggiornamento da 11-01-2020 a 23:00 di M.A.W. 1968
Q: Perché in giro leggo tutto e il contrario di tutto riguardo ai sistemi embedded? Come mai questa etichetta sembra poter essere appiccicata liberamente a qualsiasi aggeggio elettronico che non sia un PC, dal rasoio elettrico alla Stazione Spaziale Internazionale? In definitiva, quali e quanti tipi diversi di sistemi embedded vengono classificati dagli specialisti? A: Stante la enorme varietà dei sistemi embedded, è noiosamente ovvio che sia possibile classificarli ...
aggiornamento da 24-12-2019 a 13:21 di M.A.W. 1968
Q: Cosa significa parlare di applicazioni o sistemi "real time"? A: Un Sistema Operativo in Tempo Reale (Real Time Operating System, RTOS) è, genericamente, un sistema nel quale la correttezza del funzionamento non dipende solo dalla validità dei risultati, ma anche dal tempo impiegato a produrre tali risultati. I RTOS, un tempo denominati anche "sistemi reattivi", sono caratterizzati da predicibilità e ripetibilità altamente deterministiche. ...
aggiornamento da 31-01-2020 a 00:29 di M.A.W. 1968
Q: Cosa è un "sistema embedded"? A: Come facilmente intuibile, e come rilevabile dalla insopportabile confusione in materia creata da tanta stampa "specialistica" e da una miriade di siti male informati(zzati) , è possibile fornire varie definizioni di "sistema embedded", ciascuna delle quali spesso è in grado di catturare solo questo o quell'aspetto peculiare di tale vastissima categoria di sistemi. Una delle definizioni informali ...
aggiornamento da 21-01-2020 a 17:28 di M.A.W. 1968