Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RetroMagazine
Anno 1 - Numero 1
SOMMARIO
- Editoriale
- C64List – da T XT a PRG
- Ridisegnamo i caratteri de l C6 4
- International Karate Plus (Amiga)
- Sui pros simi numeri ...
Editoriale
di Francesco Fiorentini
Benvenuti nel 1986... anzi no! Benvenuti al essere il solo interessato anche all’aspetto
primo numero di RetroMagazine, una rivista tecnico e quindi vi preannuncio che il taglio
tutta italiana dedicata al mondo del dlela rivista andra’ proprio in questa
retrocomputing scritta da appassionati per direzione, senza pero’ tralasciare i giochi ed il
appassionati. divertimento! Ridisegnamo i caratteri del C64
Un breve ma esaustivo tutorial per imparare l’ABC della
E’ da un po’ di tempo ormai che accarezzavo Arrivato ormai al mezzo del cammin di programmazione BASIC, la mappatura della memoria
la romantica idea di una pubblicazione tutta nostra vita, mi son ritrovato in una selva video del C64 e per scoprire un software semi-
incentrata sul mondo retro e finalmente ecco oscura... ops, mi sono ritrovato a riscoprire il sconosciuto ma utilissimo.
il primo numero! piacere di conoscere e capire come macchine
favolose come il C64, lo Spectrum, l’Amiga... Articolo a pagina 2
Probabilmente anche molti di voi, come me, venivano programmate e... mi si e’ aperto un
avranno visto in edicola delle riviste patinate mondo! Un mondo che vorrei condividere
e ben fatte dedicate ai computer ed ai giochi con voi.
della nostra infanzia (parlo per quelli che,
come me, hanno purtroppo gia’ doppiato gli Lungi da me il millantare competenze e
‘anta ), ma per un motivo o per un altro ne l’arroganza di insegnare a chi ne sa’ piu’ di
sono rimasti delusi. Quindi da qui l’idea di me; il mio umile intento e’ solo quello di
scrivermela da solo e condividerla con chi ha condividere con voi parte delle mie scoperte
la mia stessa passione, sperando sotto sotto, e perche’ no, di scoprire qualcosa insieme.
di esortarlo a collaborare e rendere cosi’
questa rivista piu’ grande, migliore, bella e Beh, credo di essermi dilungato anche troppo
piu’ ...nostra! in questo primo editoriale, vi chiedo soltanto
di apprezzare lo sforzo e per chi ne avesse
Molte delle riviste che ho trovato in edicola si voglia e tempo, di contattarmi per aiutarmi in IK+ (Amiga)
concentravano principalmente sull’aspetto questa avventura. Un gioco di combattimento che e’ entrato nella
ludico del retrocomputing, tralasciando in leggenda dei picchiaduro. Una pietra miliare che merita
parte o del tutto l’aspetto tecnico e la Come dice qualcuno piu’ preparato di me, di essere giocata almeno una volta nella vita.
programmazione delle macchine a noi tanto lunga vita al Commodore 64! Ed io aggiungo,
care. Leggendo i vari blog, newsgroup, ed i anche all’Amiga, lo Spectrum, l’MSX... Articolo a pagina 5
gruppi facebook dedicati, ho scoperto di non
RETROMAGAZINE ANNO 1 - NUMERO 1 PAGINA 2
C64List
da TXT a PRG e viceversa…
Come forse i piu’ attenti avranno gia’ intuito Il Commodore 64 mappa la memoria video,
dall’editoriale, sono un ex possessore di quella cioe’ che vediamo sul monitor, tra gli
Commodore 64 ed Amiga; quindi quale indirizzi esadecimali $0400-$07FF (1024-2047
miglior modo di cominciare quest’avventura in decimale) vedi tabella sotto:
se non con un bell’articolo dedicato al
biscottone? $0400-$07FF 1024-2047 Screen
memory
Scopriamo come rimappare i tasti del
Commodore 64 con un semplice Il Commodore 64, a differenza di altri
programma in BASIC. computer, non possedeva nel proprio BASIC, $0400-$07E7 1024-2023 Visible screen
Versione 2, delle primitive grafiche avanzate, memory (1000
bytes)
costringendo quindi i programmatori e gli
POKE - scrive il valore indicato nella $07E8-$07F7 2024-2039 Unused (16
smanettoni ad ingegnarsi e studiarne a fondo
locazione di memoria specificata. bytes)
l’architettura per riuscire anche nelle
PEEK - legge il contenuto della
operazioni piu’ semplici come disegnare un
$07F8-$07FF 2040-2047 Area for sprite
locazione di memoria indicata. cerchio. A tal proposito, mi sono spesso pointers (8
chiesto come facessero alcune avventure bytes)
DATA e READ verranno approfonditi testuali a riproporre a video dei caratteri
successivamente... diversi dai soliti; ecco una delle risposte.
RETROMAGAZINE ANNO 1 - NUMERO 1 PAGINA 3
La memoria compresa tra gli indirizzi $0400- dobbiamo quindi renderla accessibile tramite Si tratta di 256 caratteri (da 0 a 255) ed ogni
$07E7 (in decimale 1024-2023) definisce l’istruzione: carattere e’ formato da 8 byte. Dobbiamo
l’area visualizzata sullo schermo. Ricordo che quindi copiare 256*8 byte (ciclo for da 0 a
il Commodore 64 ha una risoluzione nativa di poke 1, peek(1) and 251 255*8) richiedendo molto tempo.
40 colonne per 25 righe. Moltiplicando 40x25
Questa istruzione e’ solo apparentemente La locazione di memoria originale in ROM e’
si ottiene giustamente il valore 1000 che e’
semplice, infatti deve essere spiegata per all’indirizzo 53248, mentre la destinazione in
l’esatta dimensione in bytes dell’area
essere compresa. Il contenuto della locazione RAM e all’indirizzo 14336.
compresa tra gli indirizzi sopra citati.
di memoria 1 determina lo stato delle
Provate ad eseguire questo semplice listato: operazioni di I/O del C64 ed il bit 2 agisce Ma, per agire sulla mappa di memoria senza
come interruttore del modo in cui la CPU interruzioni dobbiamo assicurarci che gli
10 for i=0 to 255 gestisce il set di caratteri ROM (character set Interrupt del C64 non interferiscano con
20 poke 1024+i, i ROM). Se il bit 2 e’ settato a 0 (zero) la CPU questa operazione, quindi provvederemo a
30 next i permette ai dispositivi di I/O di raggiungere il disabilitarli tramite un'opportuna istruzione
character set ROM. Gli altri bit della di mascheratura:
Riuscite ad immaginare il risultato? Esatto, locazione 1 controllano altre funzioni speciali
stampa a video tutti i 256 caratteri del C64, del sistema e non vogliamo assolutamente poke 56334, peek(56334) and 254
partendo dall’angolo a sinistra in alto. alterarli!
L’istruzione POKE infatti dice all’interprete Per agire solo sul bit 2 senza intaccare gli altri Questo fa in modo che le operazioni di I/O
BASIC di scrivere in memoria, all’indirizzo registri ricorreremo agli operandi AND e OR. non interferiscano con la nostra copia. Una
passato come primo parametro, il valore volta portata a ternine l’operazione per
passato come secondo parametro. Semplice, Assumiamo che il valore della locazione 1 sia: riabilitare nuovamente gli Interrupt:
vero?
bit 7 6 5 4 3 2 1 0 poke 56334, peek(56334) or 1
I caratteri che abbiamo appena stampato - 0 1 1 0 1 1 1 1
sono memorizzati nella memoria ROM (Read Ormai avete la chiave di lettura di queste
only Memory) e non possono dunque essere Non importa quale sia il valore di partenza, istruzioni; ma se per interesse volete
modificati. Come facciamo quindi per con un operazione di AND ed il valore o approfondire cosa faccia la locazione di
cambiarli? Semplice, possiamo istruire il C64 (zero) al bit 2 otterremo sempre il risultato di memoria 56334, vi rimando al link sotto:
a cercare questi valori da un’altra parte, per azzerare il bit 2 della locazione 1. Effettuando http://sta.c64.org/cbm64mem.html.
esempio in RAM! Facile? Non proprio, ma una operazione di AND con il valore 251, in
nemmeno troppo complicato. binario 11111011, otterremo: Ora che abbiamo capito come copiare i
caratteri, passiamo a ridefinirli. Per puro ego
Prima di addentrarci in questa operazione, valore 0 1 1 0 1 1 1 1 mi limitero’ a ridefinire le prime tre lettere
vediamo pero’ come ridisegnare un nuovo del mio nome... La F l’abbiamo gia’
and 251 1 1 1 1 1 0 1 1
carattere. Ogni carattere e’ definito da una disegnata, passiamo quindi alla R ed alla A.
risultato 0 1 1 1 1 0 1 1
griglia di 8 per 8. Ogni casella rappresenta un
bit, valorizzata ad 1 se attivata, altrimenti a 0
(zero), mentre la riga intera e’ un byte. Allo stesso modo per riportare il valore ad 1,
ricorreremo ad una operazione OR con il
valore 4, in binario 00000100:
valore 0 1 1 0 1 0 1 1
or 4 0 0 0 0 0 1 0 0
risultato 0 1 1 1 1 1 1 1
90%
con 1 o 2 punti. Il primo che riesce a mettere top, ma per quanto riguarda grafica e
a segno colpi tali da raggiungere 6 punti, sonoro? La grafica non e’ niente di
vince l’incontro. Il secondo classificato, passa impressionante per l’Amiga, anche se e’
al livello successivo. Il terzo classificato decisamente ben fatta. Colorata al punto
Che dire, per me e’ un capolavoro assoluto. Bello a
invece, viene ripreso dal burbero maestro giusto, si lascia apprezzare, ma non fa certo
vedersi, veloce, fluido e giocabile. Un MUST HAVE!
Kawasaki San (nome puramente inventato) e balzare sulla sedia. Un discorso a parte lo
LONGEVITA’ costretto ad una sessione addizionale di merita invece il comparto sonoro. Per me
sfiancante allenamento. indubbiamente una delle colonne sonore
80%
meglio riuscite su Amiga. Ammetto che a
Va da se che, nel caso il giocatore sia il terzo volte lo carico solo per ascoltarne la musica.
classificato, verra’ estromesso dal torneo per
ricominciare a lottare dalla cintura bianca. Ad essere pignoli
Nonostante siano passati quasi 30 anni, IK+ regge alla
grande la prova del tempo. Rimane un capolavoro anche Eh, si’, come nella migliore tradizione del un difetto in IK+
nel 2017. Io mi sono divertito tuttora a giocarlo! Karate, il progressivo avanzamento del c’e’: un solo sfondo!
giocatore viene misurato con le cinture. Si Avremmo preferito
parte dalla cintura bianca, per arrivare un po’ piu’ di
attraverso le gialla, verde, viola e marrone varieta’, anche se
alla tanto agognata cintura nera; il simbolo fortunatamente i
indiscusso del karateka provetto. programmatori si sono divertiti ad inserire un
po’ di effetti speciali e di animazioni per
Il gioco impressiona positivamente per la movimentare la scena. Avete per caso notato
rapidita’, la precisione delle collisioni dei colpi Pacman? Il ragnetto? Ed il sottomarino?
e la fluidita’. Un errato posizionamento
infatti puo’ determinare un colpo a vuoto e la A questo punto non mi resta altro che
successiva risposta dell’avversario. augurarvi buon divertimento con IK+.
(Francesco)
RETROMAGAZINE ANNO 1 - NUMERO 1 PAGINA 6
RetroMagazine
Anno 1 - Numero 1
Direttore Responsabile
Fiorentini Francesco
Ottobre 2017