π
<-
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:

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

Message non lude critor » 17 Déc 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: Tout sélectionner
#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 CasioPython 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 MicroPython 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 KhiCAS et 158 caractères
  2. TI-Nspire avec le programme Ndless MicroPython 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 CasioPython 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 a écrit:>>>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 KhiCAS et 158 caractères
  3. TI-Nspire avec le programme Ndless MicroPython 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 CasioPython 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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41467
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude Adriweb » 17 Déc 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
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

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

Message non lude ptijoz » 17 Déc 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.
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

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

Message non lude critor » 17 Déc 2018, 17:18

Ah, merci @ptitjoz. Je vais regarder ça et corriger alors. :)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41467
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude jean-baptiste boric » 17 Déc 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.
Avatar de l’utilisateur
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 4.5%
 
Messages: 374
Inscription: 21 Déc 2015, 22:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
GitHub: boricj

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

Message non lude Lephe » 17 Déc 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 :
Fichiers joints
2018-12-17.19-44-58.png
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude critor » 17 Déc 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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41467
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude critor » 17 Déc 2018, 21:54

Voilà, j'ai édité le test pour distinguer calculatrice NumWorks et logiciel web NumWorks.
Merci beaucoup @ptitjoz. :)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41467
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude ptijoz » 17 Déc 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 ?
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

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

Message non lude parisse » 18 Déc 2018, 10:24

Lephe a écrit: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...
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3500
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Suivante

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

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 60 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2350 utilisateurs:
>2338 invités
>8 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)