MSX BASIC – tabella tasti MSX

da | Nov 20, 2023 | MSX BASIC | 0 commenti

RUBRICA “MSX BASIC” a cura di Orazio Cacciola (bonus)

Tabella tasti MSX

Inserisco la tabella nella spiegazione per fare capire meglio.

È una tabella a matrice che parte dall’indirizzo &HFBE5 fino al &HFBEF cioè 11X8, però in alcuni bit ci sono inseriti 2 tasti perciò possiamo dire che potrebbe essere una 11×16. Per ottenere la seconda voce del tasto dove è riportato, si deve aggiungere il tasto appropriato per mandarlo in esecuzione. 
Per farvi capire meglio, se vogliamo usare il tasto F1 basta premerlo, ma se invece vogliamo usare il tasto F6 dobbiamo combinare i tasti SHIFT + F1.
Per fare questo chiamiamo l’indirizzo dove è riportato il tasto è poniamo a zero il bit utilizzato. I bit vanno da 0 a 7 partendo da destra verso sinistra. Prendiamo in considerazione sempre il tasto F1 che si trova all’indirizzo &HFBEB al quinto bit. Prima di tutto creiamo una variabile e per facilitare il tutto utilizziamo i numeri binari: A=&B11011111, abbiamo posto il 5°bit a zero, che è il tasto F1, poi usando il PEEK per leggere la locazione interessata lo confrontiamo con la variabile, se viene premuto il tasto risulteranno uguali.
Faccio un esempio di un piccolo programmino per fare capire meglio:

10 SCREEN 0: KEYOFF: DEFINT A-Z
20 A=&B11011111: IF(PEEK(&HFBEB)OR A)=A THEN PRINT "F1"
30 A=&B11111101: IF(PEEK(&HFBEB)OR A)=A THEN PRINT "CTRL"
40 A=&B01111111: IF(PEEK(&HFBEC)OR A)=A THEN PRINT "INVIO"
50 A=&B11111011: IF(PEEK(&HFBEC)OR A)=A THEN PRINT "ESC": END
60 GOTO 20

Provatelo e vedrete che con la pressione dei tasti usati li stamperà a video, ESC invece oltre a stamparlo chiuderà il programma.
Se invece vogliamo usare il secondo bit dell’indirizzo della matrice faremo così:

10 SCREEN 0: KEYOFF: DEFINT A-Z
20 A=&B11011111:B=&B11111110: IF(PEEK(&HFBEB)OR A)=A AND
(PEEK(&HFBEB)OR B)=B
THEN PRINT "F6"
30 GOTO 20

Facciamo controllare la pressione dei 2 tasti contemporaneamente, se questa risulterà vera stamperà la frase F6, se no il programma girerà all’infinito
senza stampare niente.
Ho cercato di semplificare rendenod molto semplice la spiegazione.

Fatemi sapere se qualcosa non è chiara

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

LEZIONE 26 – INTERVAL ON, RND ED ALTRI

LEZIONE 26 – INTERVAL ON, RND ED ALTRI

Buongiorno a tutti, In questa puntata parlerò di un interrupt importante, specialmente per i giochi, quando vogliamo far apparire un nemico all'improvviso o un oggetto utile, ma anche per creare un cronometro o un orologio e tante altre cose. Il COMANDO sfrutta il...

it_ITIT_IT