π
<-
Chat plein-écran
[^]

Module TI-Python : table de caractères avec ASCII étendu !

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:
Online

Module TI-Python : table de caractères avec ASCII étendu !

Unread postby critor » 17 Dec 2018, 12:40

De quels caractères disposons-nous pour les affichages de scripts
Python
sur nos
Pythonnettes
?

Nous pouvons utiliser la fonction chr(n) dans le script suivant afin de récupérer la table des caractères :
Code: Select all
#0= MicroPython / TI-Nspire
#1= MicroPython / NumWorks
#2= MicroPython / Graph 90+E
#3= MicroPython / Graph 35/75+E
#4= CircuitPython / TI-Python
#5= Xcas / HP Prime
#6= KhiCAS / Graph 90+E
def getplatform():
  r=-1
  try:
    if chr(256)==chr(0):
      r=5+(not ("HP" in version()))
    else:
      r=4*(len(str(1/3))<18)
  except:
    try:
      bytearray
      r=3
    except:
      try:
        enumerate
        r=1
      except:
        r=2
  return r

def dig2hex(n):
  if n<10 : return str(n)
  else: return chr(ord("A")+n-10)

def chars(n=256):
  ncol,nlgn,slgn,platform=16,n/16,"CH|",getplatform()
  pchars=["\b\t\n\r","\t\n\0","\a\b\t\n\v\f\r","\3\b\n\r\x1b","\3\b\t\n\r\x1b","\n\f\0","\n\0"]
  schars=pchars[platform]
  for col in range(ncol):
    slgn+=dig2hex(col)
  print(""+slgn+"|\n--+"+"-"*ncol+"+")
  for lgn in range(nlgn):
    slgn=dig2hex(lgn)+"_|"
    for col in range(ncol):
      n=lgn*16+col
      car=chr(n)
      if car in schars:
        car=" "
      slgn+=car
    print(""+slgn+"|")


La
Casio Graph 90+E
accepte 256 codes de caractères
(soit 8 bits)
.
Des codes 32
(0x20)
à 126
(0x7e)
, on retrouve les 95 caractères affichables du standard ASCII-1967 (7 bits).
En-dessous du caractère de code 32 et au-dessus du caractère de code 126, la machine n'affiche que des espaces.
Elle n'est donc capable d'afficher que 95 caractères différents.

La
Casio Graph 35/75+E
avec l'application a un comportement similaire mais nous réserves quelques surprises.
Oute les 95 caractères affichables de l'ASCII 7 bits, en-dessous du caractère de code 32 la machine nous rajoute un caractère en forme de rectangle. Et au-dessus du caractère de code 126 elle nous rajoute 97 caractères non identifiables, car constitués de pixels désordonnés, de quoi ravir les amateurs d'ascii-art ! :bj:
Au total la machine permet donc d'afficher 95+1+97=193 caractères différents.

Le logiciel web
NumWorks
malgré un comportement similaire est encore plus surprenant.
En plus des 95 caractères ASCII 7 bits, au-delà du caractère de code 126, elle nous rajoute 22 caractères spéciaux utilisés en sciences. Puis au-delà du code 151
(0x97)
, nous avons droit à 104 caractères à pixels désordonnés, mais en prime en niveaux de gris, de quoi pousser l'ascii-art à l'extrême comme tu peux le constater ci-contre... ainsi que 29 autres du même style en-dessous du code 32 ! :bj:
Au total nous avons donc 95+22+104+29=250 caractères visuellement différents.

1008510084La caculatrice
NumWorks
quant à elle diffère quelque peu.
En plus des 95 caractères ASCII 7 bits, au-delà du caractère de code 126, elle nous rajoute non pas 22 mais 23 caractères spéciaux utilisés en sciences. Puis au-delà du code 151
(0x97)
, nous avons droit non pas à des caractères à pixels désordonnés, mais à un point en écriture inversé... et pareil en-dessous du code 32.
Au total la machine offre donc 95+23+1 caractères visuellement différents.

La
HP Prime
en écriture
Python
a un comportement différent, dans le sens où la fonction chr(n) accepte des codes de caractères supérieurs à 255, mais pour boucler et donc afficher à nouveau les mêmes caractères qu'à partir du code 0.
En plus des 95 caractères ASCII 7 bits, nous avons 1 caractère en forme de rectangle.
La machine ne permet donc que 95+1=96 affichages de caractères différents.

La
Graph 90+E
avec l'application
KhiCAS
se comporte de façon similaire, mais est plus généreuse.
Aux 95 caractères ASCII 7 bits, elle rajoute 29 symboles utilisables pour les sciences dont un en couleur avant le code 32, 12 autres à partir du code 128
(0x80)
, 7 symboles permettant d'afficher sur plusieurs lignes de grandes parenthèses ou intégrales à partir du code 140
(0x8C)
, puis 15 autres symboles scientifiques dont encore un de couleur à partir du code 146
(0x92)
. :bj:
Nous avons donc au total 95+29+12+7+15=158 caractères différents affichables.

La
TI-Nspire
avec le programme
Ndless
se comporte différemment en autorisant 1114112 codes de caractères différents
(20 bits + 16 bits)
.
Sur les 7 premiers bits on retrouve les 95 caractères affichables de l'ASCII, un damier en code 127, et 27 caractères spéciaux divers en dessous du code 32.
A partir du code 128 on a accès à plein d'autres caractères spéciaux illustrant la richesse de la table de caractères TI-Nspire, mais hélas ils sont mal affichés à cause d'un bug, ils se voient préfixés d'un ou plusieurs caractères de contrôle. Ne pouvant ainsi être affichés proprement
(en tant que caractère unique)
par un script, nous ne pouvons donc pas les comptabiliser. :'(
La machine n'affiche donc au total que 95+1+27=123 caractères différents.

Donnons la priorité aux caractères standard saisissables donc facilement et utilisables sur différentes plateformes. Nous avons donc pour le moment le classement suivant :
  1. Casio Graph 90+E
    avec l'application et
    158
    caractères
  2. TI-Nspire
    avec le programme
    Ndless
    et
    123
    caractères
  3. calculatrice
    NumWorks
    avec
    119
    caractères
  4. logiciel web
    NumWorks
    avec
    250
    caractères, mais dont seulement
    117
    caractères identifiables
  5. Casio Graph 35/75+E
    avec l'application et
    193
    caractères, mais avec seulement
    96
    caractères identifiables
  6. HP Prime
    avec
    96
    caractères
  7. Casio Graph 90+E
    avec
    95
    caractères

9949Et où se classe le module
TI-Python
pour
TI-83 Premium CE
là-dedans ?
Déjà, il adopte un comportement similaire à celui de la
TI-Nspire
en autorisant lui aussi 1114112 codes différents.
Exécutons le script
(photo ci-contre prise avec une ancienne version du script puisque nous ne disposons hélas toujours pas du module, l'affichage du nouveau script est reconstruit ci-dessous à partir des résultats observés)
:
TI-Python wrote:>>>chars(320)
CH|0123456789ABCDEF|
0_|□□□ □□□□ □□ □□|
1_|□□□□□□□□□□□ □□□□|
2_| !"#$%&'()*+,-./|
3_|0123456789:;<)>?|
4_|@ABCDEFGHIJKLMNO|
5_|PQRSTUVWXYZ[\]^_|
6_|`abcdefghijklmno|
7_|pqrstuvwxyz{|}~ |
8_|□∙◄►▲▼…⸥_
Aa↑
▒ |
9_| |
A_| ¡¢£¤¥¦§¨©ª«¬ ®¯|
B_|º±²³´µ¶·¸¹º»¼½¾¿|
C_|ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ|
D_|ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß|
E_|àáâãäåæçèéêëìíîï|
F_|ðñòóôõö÷øùúûüýþÿ|
G_|□□□□□□□□□□□□□□□□|
H_|□□□□□□□□□□□□□□□□|
I_|□□□□□□□□□□□□□□□□|
J_|□□□□□□□□□□□□□□□□|

On retrouve les 95 caractères affichables de l'ASCII 7 bits. En-dessous du code 32 on retrouve un caractère rectangle, ainsi qu'en code 128.
A compter du code 129, on note 13 caractères spécifiques à la
TI-83 Premium CE
. Puis surprise, à partir du code 161
(0xa1)
on trouve 95 caractères provenant du code ASCII étendu ANSI
(8 bits)
avec donc entre autres plein de lettres accentuées et autres caractères spéciaux pour les pays d'Europe de l'Ouest. :bj:
Par contre au-delà du code 255 la calculatrice n'affiche plus rien d'intéressant, que des caractères rectangle.
Ce qui donne au total 95+1+13+95=204 caractères différents affichables.

Nous avons donc maintenant niveau classement :
  1. module
    TI-Python
    pour
    TI-83 Premium CE
    avec
    204
    caractères
  2. Casio Graph 90+E
    avec l'application et
    158
    caractères
  3. TI-Nspire
    avec le programme
    Ndless
    et
    123
    caractères
  4. calculatrice
    NumWorks
    avec
    119
    caractères
  5. logiciel web
    NumWorks
    avec
    250
    caractères, mais dont seulement
    117
    caractères identifiables
  6. Casio Graph 35/75+E
    avec l'application et
    193
    caractères, mais avec seulement
    96
    caractères identifiables
  7. HP Prime
    avec
    96
    caractères
  8. Casio Graph 90+E
    avec
    95
    caractères
Félicitations au module
TI-Python
, le seul à gérer de l'ASCII étendu, t'offrant ainsi pour tes scripts
Python
une richesse d'écriture et d'affichage à ce jour inégalée par la concurrence ! :bj:
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98%
 
Posts: 33681
Images: 8776
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby Adriweb » 17 Dec 2018, 12:50

Si je ne me trompe pas, sur TI-Nspire, la limitation vient peut-être de la lib nspireio, qui s'occupe donc de l'affichage/input/output en mode console. MicroPython en lui-même semble pouvoir gérer des choses relatives a l'unicode.

https://github.com/Vogtinator/nspire-io ... /charmap.h ne contient "pas grand chose" :P
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 51.7%
 
Posts: 12651
Images: 1081
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby ptitjoz » 17 Dec 2018, 16:43

sur NW on n'a pas les mêmes résultats entre ce que donne Workshop et la calculatrice physique.
exemple le code chr(151) donne le signe degré sur la calculatrice et pas dans Workshop.
User avatar
ptitjozPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 20.9%
 
Posts: 188
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Not specified
Calculator(s):
Twitter: @PtitJoz

Online

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby critor » 17 Dec 2018, 17:18

Ah, merci @ptitjoz. Je vais regarder ça et corriger alors. :)
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98%
 
Posts: 33681
Images: 8776
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby jean-baptiste boric » 17 Dec 2018, 18:55

Je tiens à préciser que les caractères corrompus de la NumWorks sont des débordements de tampon et ces glyphes ne sont pas stables d'un firmware à un autre. De plus, l'équipe NumWorks songe(ait?) à basculer vers de l'UTF-8, donc les caractères >= 0x7F risquent d'être redéfinis à moyen ou long terme.
User avatar
jean-baptiste boricPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 46.1%
 
Posts: 282
Joined: 21 Dec 2015, 22:22
Gender: Not specified
GitHub: boricj

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby Lephe » 17 Dec 2018, 19:46

Je note également que la table étendue de KhiCAS ressemble fort à celle de FONTCHARACTER, l'encodage personnalisé de Casio, à quelques ajouts près :
Attachments
2018-12-17.19-44-58.png
User avatar
LephePartner
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 21.9%
 
Posts: 231
Joined: 15 Jun 2018, 19:53
Gender: Male

Online

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby critor » 17 Dec 2018, 21:46

Voilà, j'ai tenté sur une vraie NumWorks :
1008410085

Toutefois avec juste le ° et l'espèce de caractère inversé avec un point en plus, ce n'est pas ça qui va chambouler le classement.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98%
 
Posts: 33681
Images: 8776
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Online

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby critor » 17 Dec 2018, 21:54

Voilà, j'ai édité le test pour distinguer calculatrice NumWorks et logiciel web NumWorks.
Merci beaucoup @ptitjoz. :)
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98%
 
Posts: 33681
Images: 8776
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby ptitjoz » 17 Dec 2018, 23:14

Merci Critor :)
Pour moi, le but n'est pas le classement en soi, mais de comprendre toutes ces différences.
entre les versions de firmwares, l'émulation sur workshop et l'émulateur javascript...
Pour info il y longtemps que j'avais exploré ces caractères ASCII et je m'étais toujours demandé pourquoi ces glyphes un peu particulier et je remercie Jean-Baptiste Boric de son explication qui éclaire ma curiosité. Alors on va attendre l'UTF-8... mais qu'est-ce que ça va apporter sur cette petite machine ?
User avatar
ptitjozPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 20.9%
 
Posts: 188
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Not specified
Calculator(s):
Twitter: @PtitJoz

Re: Module TI-Python : table de caractères avec ASCII étendu

Unread postby parisse » 18 Dec 2018, 10:24

Lephe wrote:Je note également que la table étendue de KhiCAS ressemble fort à celle de FONTCHARACTER, l'encodage personnalisé de Casio, à quelques ajouts près :

Je n'ai rien fait pour ca. C'est juste l'affichage du SDK. En fait, les chaines sont codees en 8 bits, du coup sur les systemes qui supportent UTF8, on a de l'UTF8 avec un ou plusieurs octets par caractere, sur la Casio, c'est un octet par caractere. Ca pourrait etre de l'UTF8 si le SDK en supportait l'affichage mais cela necessiterait des fontes de caracteres supplementaires en ROM, donc peu de chances que ca se produise un jour...
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.2%
 
Posts: 1793
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Next

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 2 guests

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
460 utilisateurs:
>433 invités
>21 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)