MSX BASIC – lezione 5

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

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

Le Funzioni TAB, LOCATE, POS e CRSLIN

Oggi parlerò delle funzioni che servono per aiutarci a posizionare le nostre stampe sullo schermo non grafico e sapere anche le posizioni del cursore. Visto che non sono molto complesse, le spiegherò tutte e quattro.

TAB è la una funzione che ci aiuta a posizionare in un punto sulla riga dello schermo dove si trova in quel momento il cursore. Viene usata sempre assieme al PRINT, cioè dopo:
PRINT TAB(10). L’argomento dopo la funzione deve essere un numero o una variabile numerica e non può essere omesso. Se l’argomento supera la lunghezza della linea, verrà
stampata in quella successiva. Questa esegue un posizionamento orizzontale crescente, questo vuol dire che non può tornare indietro. Per fare capire meglio faccio un esempio
con un piccolo programma:

10 PRINT "NOME"; TAB(20); "CITTA'"; TAB(30); "ETA'"
20 E=50:PRINT "FRANCO"; TAB(20); "MILANO"; TAB(30); E
Il risultato sarà:
NOME CITTA' ETA'
FRANCO MILANO 50

Ricordiamoci che le variabili numeriche verranno spostate di un carattere. Se ammettiamo, avrei messo TAB(30); “MILANO” e poi TAB(20);E, quest’ultima non potendo tornare indietro sarebbe stata stampata subito dopo la parola MILANO: MILANO 50
Può essere usata anche per la stampa su carta, non cambia nulla di quello che ho detto
prima: LPRINT TAB(10)

La funzione LOCATE rispetto alla precedente, stampa in qualsiasi punto sullo schermo senza problemi. LOCATE Coordinata orizzontale, Coordinata verticale, cursore (acceso o
spento). Dove, coordinata orizzontale (X) è il numero della riga dove si vuole stampare, mentre verticale(Y) è il numero della colonna. Cursore se è posto a 0 non verrà visualizzato
se è maggiore di 0, si. Il nostro schermo in modo testo è composto da 40 caratteri orizzontali (da 0 a 39, per default sono 37; da 0 a 36) e 24 verticali (0 a 23),
considerando che sia disattivata la linea di visualizzazione dei tasti funzione (spiegherò più avanti questo argomento). Apro una parentesi per dire che sto parlando solo
dello schermo di default cioè lo SCREEN 0, anche questo verrà spiegato in seguito.
Vogliamo stampare la nostra frase sulla riga 10 della colonna 5, visto che l’MSX parte da zero, scriveremo:
LOCATE 9,4: PRINT “CIAO”
L’MSX non segnalerà errore se 1 dei 2 o tutte e 2 parametri della funzione LOCATE supera i valori impostati dello schermo, ma i risultati saranno sfalsati. Se viene omesso il terzo
parametro, lo considererà come 0 (per default), perciò il cursore sarà spento.

POS(1) e LPOS(1) restituiscono rispettivamente la coordinata orizzontale(X) del cursore, su schermo o su carta. L’argomento della funzione è fittizio, perciò non ha importanza
il suo valore.
X=POS(0)

CRSLIN restituisce la coordinata verticale(Y) del cursore sullo schermo, non è applicabile su carta.
Y=CRSLIN

Queste ultime 2 funzioni sono molto utili in quei programmi di testo che usano le finestre.
Per fare un esempio, un programma che ha l’help in linea e che si attiva premendo un tasto funzione o qualsiasi altro, è molto utile sapere in che posizione dovrà tornare il cursore
dopo aver visualizzato l’aiuto.
E con questo è tutto, grazie e alla prossima

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