Page 1 of 1

Comportamento incomprensibile di ASC(x)

PostPosted: 07 Nov 2021, 16:19
by pier
Eccomi con un nuovo problema incomprensibile che mi sta facendo morire.
Sto simulando queste poche righe di codice.
Code: Select all
$regfile = "m328pdef.dat"                                   
$crystal = 16000000                                         
$baud = 9600                                               
$hwstack = 32                                               
$swstack = 10                                               
$framesize = 40                                           

Dim Nm As String * 1
Config Serialin = Buffered , Size = 50
portd.0 = 1                                       'pullup Rx
Enable Interrupts

do
   If Ischarwaiting() = 1 Then                 
       Nm = inkey()                               
       print  asc(Nm)                           
   end if
loop
End


Tutto funziona bene fino al carattere ASCII 126 mentre dal carattere 127 tutto diventa incomprensibile. Ad esempio con i caratteri 127, 128 e 129 ASC(carattere) dà rispettivamente 166, 199 e 252.
Inserisco i caratteri tramite tastierino numerico + ALT.
Se invece di inserire i caratteri utilizzando la tastiera, li inserisco tramite codice - es. A = CHR (130) print ASC (A) - il risultato stampato è corretto.
Risultati ottenuti con il compilatore 2.0.8.4 build 2.0.8.4.001.
Che cosa sto facendo di sbagliato?
Soluzioni?

Grazie in anticipo
Pier

Re: Comportamento incomprensibile di ASC(x)

PostPosted: 11 Nov 2021, 14:31
by pier
Risolto!
Risposta di Mark:
"When you want the code you entered you need to use 4 digits : ALT+0127 for example.
otherwise you get a code from a code page".
Verificato. Funziona!
Spero sia utile anche ad altri anche se questo forum mi sembra ormai un caro estinto... :cry: :cry:

Re: Comportamento incomprensibile di ASC(x)

PostPosted: 20 Nov 2021, 14:57
by deluca
Grazie per info condivise.