05.06.2015 Views

PROGRAMMARE IN ERRE

Programming in ERRE language - fourth

Programming in ERRE language - fourth

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Una limitazione di <strong>IN</strong>PUT è che in caso di ingresso di stringhe non si può usare “,” perché questa<br />

verrebbe interpretata come separatore: ad esempio se si ha<br />

<strong>IN</strong>PUT(A$)<br />

rispondendo<br />

PIPPO,PLUTO si ottiene un errore perché <strong>ERRE</strong> interpreta la risposta come input di due variabili a<br />

causa della presenza della ‘,’. In questo caso basterà rispondere “PIPPO,PLUTO” e tutto va a posto.<br />

Nella versione per PC è però possibile utilizzare invece questa forma<br />

<strong>IN</strong>PUT(L<strong>IN</strong>E,A$)<br />

dove in A$ finisce tutto quello che viene battuto sulla tastiera fino alla pressione del RETURN.<br />

Per il C-64 allo scopo di ottenere lo stesso risultato, bisogna ricorrere all’utilizzo del buffer di<br />

tastiera (4.2) : si scriverà cioè<br />

POKE(198,1) POKE(631,34) <strong>IN</strong>PUT(A$)<br />

dove le prime due istruzioni forzano un<br />

doppio apice iniziale (anziché farlo battere<br />

dall’utente – come visto nel paragrafo<br />

precedente) consentendo l’inserimento<br />

anche del carattere separatore “,”.<br />

Altri linguaggi mettono a disposizione il<br />

tipo di variabile ‘CHAR’ che consente di<br />

memorizzare un carattere nella variabile<br />

specificata: questo tipo in <strong>ERRE</strong>, essendoci<br />

già 'STR<strong>IN</strong>G', non è indispensabile ma a<br />

volte c’è il bisogno di poter leggere un<br />

carattere dalla tastiera senza visualizzarlo.<br />

Per fare ciò si usa l’istruzione<br />

GET(var_stringa)<br />

che memorizza in var_stringa il carattere<br />

corrispondente all'eventuale tasto battuto.<br />

La differenza tra le due piattaforme<br />

riguarda la gestione dei tasti speciali.<br />

Mentre il C-64 memorizza tutto usando un<br />

solo byte, il PC in certi casi ne utilizza due: il primo è CHR$(0), il secondo è ricavabile dalla tabella<br />

riportata qui a fianco (detta dei “Codici estesi di tastiera”) (4.3) .<br />

________________________________________________________________________________<br />

4.2) Il buffer di tastiera è una zona di memoria nella quale vengono immagazzinati i codici ASCII dei tasti battuti sulla<br />

tastiera. Sul C-64 va da 631 a 640 e sul PC da &H41E a &H43E (segmento 0).<br />

4.3) L’istruzione GET non rileva i tasti speciali “singolarmente” e bisogna usare l’istruzione PEEK per controllare i byte<br />

di stato della tastiera che sono posti in &H417 e &H418 (segmento 0) per il PC e in 653 per il C-64.<br />

- 40 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!