La sfida “pilota” (si lo ammetto non ero sicuro avrebbe potuto interessare), imperniata sulla ricerca delle Triplette Pitagoriche Primitive, è stata ampiamente raccolta e retro-elaborata attraverso l’uso di

vari linguaggi e su vari computer. Personalmente sono molto contento dal numero di riscontri ottenuti e ancor di più dall’altissima qualità e varietà dei lavori pervenuti. (altro…)

(Article by Phaze101) What is C64 Bedtime Coding? This is a series of articles related to the 6502 Assembly language programming on the Commodore C64. The intention is to learn this while having fun. We will achieve this objective by writing simple games. For who is it These tutorials will be mainly aimed and focused for beginners who want to learn to write assembly language. Also, it is for those that want to write games for the C64 using assembly. My aim is to show you simple things that can get you to achieve this goal of writing your own games and at the same time learn the assembly language. If you are one of those people that always wanted to learn how to write games on the C64 and you never managed to learn assembly then this series is for you. Please note that I will keep things simple and will not go into detail so as not to

confuse beginners. Reflect for a moment We all like playing games, right? Have you ever wondered and thought about how games are done? We are all fascinated with demos where coders show what they can do by pushing the hardware to the limits but how is all this possible? Does it seem something that it is impossible for you to do? Do you think that you are not capable of doing so? Well let me assure you that you do not need to be a genius to write simple games. All you need is patience. Writing games in Basic is simple compare to writing in Assembly but with patience and knowing small simple things you can achieve a lot. With patience you will be able to push the hardware to the limits and achieve greater things that Basic can’t give you. What you need to know There are a few things that you need to know to code in assembly…

(Articolo di Phaze101) Che cos'è C64 Bedtime Coding? E’ una serie di articoli relativi alla programmazione in linguaggio Assembly 6502 sul Commodore C64. L'intenzione è di imparare a programmare divertendosi e raggiungeremo tale obiettivo scrivendo semplici giochi. A chi è rivolto? Questi tutorial saranno principalmente mirati ai principianti che desiderano imparare a scrivere in linguaggio assembly e, in particolare, a coloro che vogliono scrivere giochi per il C64 in questo linguaggio. Il mio obiettivo è quello di mostrarti cose semplici che possono aiutarti a raggiungere questo obiettivo scrivendo giochi e imparando al contempo il linguaggio assembly. Se sei una di quelle persone che hanno sempre voluto imparare a scrivere giochi sul C64 e non sei mai riuscito a imparare l’assembly, questa serie fa per te. Nota che manterrò le cose semplici e non entrerò nei dettagli per non confondere i principianti. Riflettete per un momento A tutti noi piace giocare, vero? Vi siete mai chiesti come sono fatti

i giochi? Siamo tutti affascinati dalle “Demo”, in cui i programmatori mostrano cosa possono fare spingendo l'hardware al limite, ma come è possibile fare tutto ciò? Ti sembra una cosa impossibile da realizzare? Pensi di non essere capace di farlo? Bene, ti assicuro che non è necessario essere un genio per scrivere giochi semplici. Tutto ciò di cui hai bisogno è la pazienza. Scrivere giochi in Basic è più semplice rispetto a scriverli in Assembly, ma con un po’ di pazienza e l’apprendimento di semplici trucchetti potrai ottenere grandi risultati. Armati quindi di impegno e buona volontà e anche tu sarai presto in grado di spingere l'hardware ai limiti e ottenere così risultati più avanzati di quelli che il Basic può offrirti. Cosa hai bisogno di sapere? Ci sono alcune cose che devi sapere per poter programmare in assembly e scrivere giochi: Conoscere il sistema numerico (binario e esadecimale)Conoscere e comprendere il set di istruzioni del 6502 e conoscere lo “Status Register”.Conoscere…

In queste righe farò un excursus sulle notevoli capacità del Basic 7.0 incorporate nel Commodore128, ultimo computer ad 8-bit della Commodore uscito nel 1985. Innanzi tutto una breve storia: il C128 era nato per sostituire il C64 e le sue capacità lasciavano presagire il meglio. Aveva infatti 3 modalità operative: C128 che usava una CPU 8502 con 128 Kbyte RAM; una modalità C64 uguale identica al C64 compatibile con tutte le sue periferiche e cartucce i classici 64Kbyte RAM; ed in più una CPU Z80 per far funzionare il C128 in modalità CP/M, il predecessore di Ms-Dos. Sia la modalità C128 che CP/M usando un monitor Commodore come il 1084 permetteva di usare una modalità ad 80 colonne con risoluzione 640x200 il che gli consentiva di fungere anche da macchina per ufficio. Vendette svariati milioni di esemplari ma venne ben presto dismesso per due motivi principali: l’enorme successo del C64 (in quegli anni rinnovato nella veste C64C simile al C128)

e al fatto che la Commodore ormai si stava impegnando a fondo nel suo primo computer a 16-bit, l’Amiga 1000 con CPU Motorola 68000 come l’Apple Macintosh e l’Atari ST. Il C128 resta quindi l’ultima macchina 8-bit prodotta dalla Commodore. Qui ci concentreremo sulle caratteristiche uniche del BASIC 7.0: è quindi inutile concentrarci sulle capacità di base del tutto uguali a quelle del C64 ma metterò in rilievo le differenze coi BASIC degli altri 8-bit Commodore. Comandi essenziali da disco Per formattare un disco basta il comando HEADER “nome_disco”, id ; con uno solo non serve. Quindi basta ad esempio HEADER “my-disk” per caricare un programma basic da disco DLOAD “nome_prog”, id per salvarlo DSAVE “nome_disco”, id per verificare se il programma nel computer è uguale a quello scritto su disco DVERIFY “nome_prog”, id in tutti questi comandi se non si inserisce l’id del disco si presuppone il device numero 8; se si hanno due drive si può scrivere ad…

(articolo di Davide Fichera) Sorgenti in formato .D64 Print e Poke Per scrivere caratteri a schermo il BASIC V2 ci offre fondamentalmente due alternative: quella del PRINT, con tutti i suoi caratteri PETSCII e quelli di controllo (cursore su, giù, destra, sinistra, home, clear, reverse on, ecc.) , oppure quella del POKE, che però ci permette di scrivere solo un carattere su schermo alla volta. Il POKE però ha il vantaggio che può scrivere da qualsiasi parte dello schermo senza andare ad utilizzare scomodi caratteri di controllo, tipo quelli che si ottengono tramite i tasti freccia. Se vogliamo, ad esempio, scrivere il carattere “A” alla colonna 5 e alla riga 8 tramite il comando POKE dovremo scrivere: 10 POKE 1024+8*40+5,1 se invece opteremo per il PRINT scriveremo il seguente codice: 10 PRINT”{home}{down*8}{right*5}A” La prima versione calcola la posizione che il carattere avrà a schermo utilizzando una formula, dove il 1024 rappresenta la locazione di memoria

del carattere più in alto a sinistra sullo schermo, 8*40 calcola la posizione relativa del primo carattere della 8° riga dello schermo e infine aggiungendo il 5 ci spostiamo di ulteriori 5 caratteri sulla destra. La seconda versione è invece più immediata da comprendere perché semplicemente posiziona il cursore in alto a sinistra con il carattere di controllo home e poi lo sposta di 8 posizioni giù e di 5 posizioni a destra con degli ulteriori caratteri di controllo. La prima scelta però, per certi versi, risulta più veloce, elegante e di più facile lettura rispetto alla seconda, dove i caratteri di controllo compaiono tutti insieme e sono difficili da interpretare al volo (per un occhio non particolarmente avvezzo a quei caratteri speciali). Stampa di caratteri in posizioni generiche Immaginiamo ora di voler posizionare un carattere ovunque sullo schermo tramite delle coordinate X e Y precedentemente assegnate. Come fare ciò nei due casi del PRINT e del POKE? Per quanto riguarda la versione con POKE…