In linea con passione dal 2007

Il basic 7.0 implementato di default sul Commodore 128 consentiva egregie soluzioni applicative; non da ultimo la possibilità di creare videogames con la ridefinizione del set di caratteri. Di cosa si tratta? "Semplicemente" di far corrispondere delle immagini create ad arte ai comuni caratteri della tastiera. Una lettera A può così diventare un omino stilizzato, una B la ruota di una macchina e così via.... Un simpatico esempio è quello di seguito che produce a schermo una immagine del classico pac-man che apre e chiude la bocca.

10 FAST

20 FOR R=53248 TO 57344

30 BANK 14

40 E=PEEK(R)

50 BANK 15

60 POKE R-45056,E

70 NEXT

80 BANK 15

90 POKE 2604,24

100 FOR I=8192 TO 8255

110 READ X: POKE I,X: NEXT I

120 DATA 7,15,31,60,56,124,127,127

130 DATA 248,252,254,255,127,252,240,192

140 DATA 127,127,127,63,63,31,15,7

150 DATA 240,252,252,255,255,254,252,248

160 DATA 7,15,31,60,56,124,127,127

170 DATA 248,252,254,255,127,255,255,255

180 DATA 127,127,127,63,63,31,15,7

190 DATA 255,255,255,255,255,254,252,248

200 SLOW

210 PRINT CHR$(147)

220 POKE 1024,0:POKE 1025,1: POKE 1064,2: POKE 1065,3

230 FOR I=1 TO 150:NEXT I

240 POKE 1024,4: POKE 1025,5: POKE 1064,6: POKE 1065,7

250 FOR I=1 TO 150:NEXT I

260 GOTO 220

 

Il ciclo è infinito e per terminare occorre premere RUN/STOP. Da notare l'impiego delle istruzioni FAST e SLOW. L'istruzione FAST accelera la velocità del clock a 2 Mhz (rispetto all' 1 originale), SLOW torna nella condizione iniziale (1 Mhz di clock). L'istruzione FAST è incompatibile con lo schermo a 40 colonne pertanto produce uno schermo di colore uniforme e non è utilizzabile per accelerare la grafica. Utile però nel velocizzare le operazioni di calcolo. La ridefinizione del set dei caratteri che utilizza questo esempio basic difatti senza la combinazione FAST-SLOW richiede un tempo di elaborazione di 1 minuto e 30 secondi. Tale tempo di dimezza (45 secondi) raddoppiando nel momento di elaborazione la velocità del processore.

 

Ed ecco di seguito il risultato a schermo: