Page 1 sur 1

Identifier le type de Nspire avec ndless

Message non luPosté: 25 Fév 2019, 10:41
de Noury
Bonjour,

J'utilise la bibliothèque nspire-io de Vogtinator qui est un fork de nspire-io de compujuckel
J'ai rencontré un problème sur la fonction uart_ready. Le test à faire pour savoir si le port est prêt est différent selon que l'on est sur une nspire d'avant les CX et CX CAS ou après.
Je n'ai qu'une CX CAS.
J'aurais besoin d'aide pour faire des tests pour arriver à différencier les deux types de calculatrices.
Avec le code suivant:

Code: Tout sélectionner
#include <nspireio/nspireio.h>

int main()
{
        printf("hwtype() = %d\n", hwtype());
        printf("nl_hwsubtype() = %d\n", nl_hwsubtype());
        puts("Bye!");
        wait_key_pressed();
        return 0;
}

J'obtiens 1 pour hwtype(), et 0 pour nl_hwsubtype().

J'aurais besoin que quelqu'un fasse le test sur des modèles pré-CX, et me communique les résultats.
Même besoin pour une CX non CAS.

Ce n'est pas certain que ces éléments permettront d'identifier les modèles, mais c'est tout ce que j'ai trouvé pour l'instant dans les bibliothèques pour faire des tests.

Cette bibliothèque est en principe installée d'office avec Ndless.

Le but est de modifier le code de la bibliothèque pour la rendre plus "universelle".

Merci à ceux qui pourront faire ce test.

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 25 Fév 2019, 11:21
de Adriweb
Notons que libndls.h contient ceci, donc tu peut deja savoir quoi faire pour identifier ces modèles :
Code: Tout sélectionner
#define is_classic (hwtype() < 1)
#define is_cm (nl_hwsubtype() == 1)
#define has_colors (!is_classic)

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 25 Fév 2019, 11:25
de critor
Tu peux consulter les ASIC user flags qui sont infalsifiables :
https://hackspire.org/index.php/Memory- ... cellaneous
https://hackspire.org/index.php/Memory- ... cellaneous
0b00 = TI-Nspire ou TI-Nspire CX
0b01 = TI-Nspire CAS ou TI-Nspire CX CAS
0b10 = TI-Nspire CM
0b11 = TI-Nspire CM CAS

Et tu peux compléter cela par une lecture du model ID en partition Manuf de la NAND :
https://hackspire.org/index.php/NAND_Memory_Layout
Falsifiable, mais en pratique quasiment aucun intérêt.
0C = TI-Nspire CAS
0E = TI-Nspire
0F = TI-Nspire CX CAS
10 = TI-Nspire CX
11 = TI-Nspire CM CAS
12 = TI-Nspire CM
1C = TI-Nspire CX II CAS
1D = TI-Nspire CX II
1E = TI-Nspire CX II-T

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 25 Fév 2019, 14:45
de Noury
critor a écrit:Tu peux consulter les ASIC user flags qui sont infalsifiables :
https://hackspire.org/index.php/Memory- ... cellaneous
https://hackspire.org/index.php/Memory- ... cellaneous
0b00 = TI-Nspire ou TI-Nspire CX
0b01 = TI-Nspire CAS ou TI-Nspire CX CAS
0b10 = TI-Nspire CM
0b11 = TI-Nspire CM CAS

Merci critor.

En appliquant ça à ma CX CAS, j'obtiens la valeur 1 pour le user flag model.
Ce qui correspond à la ligne : 0b01 = TI-Nspire CAS ou TI-Nspire CX CAS

Est-ce que tu aurais la possibilité d'essayer ce code sur d'autres modèles en ta possession ?

Code: Tout sélectionner
#include <nspireio/nspireio.h>
 
int main()
{
        printf("hwtype() = %d\n", hwtype());
        printf("nl_hwsubtype() = %d\n", nl_hwsubtype());
        printf("asic_user_flags_model = %d\n", (*(volatile unsigned*)0x900A002C & 0x7C000000) >> 26);
        puts("Bye!");
        wait_key_pressed();
        return 0;
}


Je joins le .tns à ce post pour t'éviter la recompilation.
Il y a donc 3 résultats.

Cette demande est valable pour tout possesseur d'une TI-Nspire équipée de Ndless, mais pour un autre modele que la CX CAS.
Merci pour toute réponse à cet appel à contribution.

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 25 Fév 2019, 17:28
de Noury
Adriweb a écrit:Notons que libndls.h contient ceci, donc tu peut deja savoir quoi faire pour identifier ces modèles :
Code: Tout sélectionner
#define is_classic (hwtype() < 1)
#define is_cm (nl_hwsubtype() == 1)
#define has_colors (!is_classic)

Merci pour ta réponse.

Tu veux donc dire que si ce n'est pas "cm" et que ça n'est pas "classic", alors c'est CX.
C'est bien ça ?
Je pourrai le vérifier si j'ai suffisamment de réponses à mon tests.

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 26 Fév 2019, 00:18
de Noury
critor a écrit:Tu peux consulter les ASIC user flags qui sont infalsifiables :
0b00 = TI-Nspire ou TI-Nspire CX
0b01 = TI-Nspire CAS ou TI-Nspire CX CAS
0b10 = TI-Nspire CM
0b11 = TI-Nspire CM CAS

Les clickpad sont à classer dans quelle catégorie ? Je les trouve dans les deux premières lignes.
Il faut excuser mon ignorance, mais quelle différence il y a entre CM et clickpad ?

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 26 Fév 2019, 00:23
de critor
Aucun problème. :)
Les ClickPad/TouchPad ont pour noms de modèle TI-Nspire ou TI-Nspire CAS.
Elles ont donc comme ASIC flags 0b00 ou 0b01, exactement comme les TI-Nspire CX.

Maintenant pour les différences :
- les ClickPad/TouchPad ont 32Mio de SDRAM et un écran monochrome 320x240 pixels.
- les CM ont 32Mio de SDRAM et un écran couleur 320x240 pixels.
- les CX et CX II ont 64Mio de SDRAM et un écran couleur 320x240 pixels.

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 26 Fév 2019, 12:00
de Noury
Grace à samourai3745, j'ai pu remplir le tableau suivant:

Image

Ce serait sympa que d'autres contributions permettent de remplir davantage. En particulier pour les "CM".

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 26 Fév 2019, 12:08
de critor
Je t'ai déjà donné les flags, non ?

Re: Identifier le type de Nspire avec ndless

Message non luPosté: 26 Fév 2019, 12:21
de Noury
Oui critor.
Je voulais juste une confirmation pratique.
C'est surtout pour vérifier que le code source correspond bien aux champs indiqués.