Merci pour la réactivité.
Sur TI-Nspire CX II-T parce que c'est la seule que j'ai sous la main actuellement, la dernière build KhiCAS CX de ce matin semble fonctionnelle :
https://www-fourier.univ-grenoble-alpes ... khicas.zip
Par contre, il n'est pas normal que ça déclenche encore le mode de compatibilité. Si le SDK est maintenant à jour, il faut croire que cela vient du code, particulièrement du code d'affichage...
Et il faudrait éviter, vu que comme on peut voir ci-dessus dans ce contexte nous avons une ligne horizontale de parasites permanents sur l'écran.
KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Il y a une doc specifique pour la nspire cx ii?
Voila le code par ou passent tous les affichages de KhiCAS, si quelqu'un voit du code non portable:
Voila le code par ou passent tous les affichages de KhiCAS, si quelqu'un voit du code non portable:
- Code: Select all
Gc nspire_gc=0;
Gc * get_gc(){
if (!nspire_gc){
nspire_gc=gui_gc_global_GC();
gui_gc_setRegion(nspire_gc, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
gui_gc_begin(nspire_gc);
}
return &nspire_gc;
}
void os_set_pixel(int x,int y,int c){
get_gc();
gui_gc_setColor(nspire_gc,c_rgb565to888(c));
gui_gc_drawRect(nspire_gc,x,y+nspire_statusarea,1,1);
}
void os_fill_rect(int x,int y,int w,int h,int c){
get_gc();
gui_gc_setColor(nspire_gc,c_rgb565to888(c));
gui_gc_fillRect(nspire_gc,x,y+nspire_statusarea,w,h);
}
int os_get_pixel(int x,int y){
if (x<0 || x>=SCREEN_WIDTH || y<0 || y>=SCREEN_HEIGHT)
return -1;
#if 1
get_gc();
char ** off_buff = ((((char *****)nspire_gc)[9])[0])[0x8];
int res = *(unsigned short *) (off_buff[y+nspire_statusarea] + 2*x);
return res;
#else
unsigned short * addr=*(unsigned short **) 0xC0000010;
int r=addr[(y+nspire_statusarea)*SCREEN_WIDTH+x];
return r;
#endif
}
int nspire_draw_string(int x,int y,int c,int bg,int f,const char * s,bool fake){
// void ascii2utf16(void *buf, const char *str, int max_size): converts the UTF-8 string str to the UTF-16 string buf of size max_size.
int l=strlen(s);
char utf16[2*l+2];
ascii2utf16(utf16,s,l);
utf16[2*l]=0;
utf16[2*l+1]=0;
get_gc();
gui_gc_setFont(nspire_gc,f);
int dx=gui_gc_getStringWidth(nspire_gc, f, utf16, 0, l) ;
if (fake)
return x+dx;
int dy=17;
if (f==Regular9)
dy=13;
if (f==Regular11)
dy=16;
gui_gc_setColor(nspire_gc,c_rgb565to888(bg));
gui_gc_fillRect(nspire_gc,x,y,dx,dy);
gui_gc_setColor(nspire_gc,c_rgb565to888(c));
//gui_gc_setPen(nspire_gc, GC_PS_MEDIUM, GC_PM_SMOOTH);
gui_gc_drawString(nspire_gc, utf16, x, y-1, GC_SM_NORMAL | GC_SM_TOP); // normal mode
return x+dx;
}
int os_draw_string(int x,int y,int c,int bg,const char * s,bool fake){
get_gc();
gui_gc_clipRect(nspire_gc,0,nspire_statusarea,SCREEN_WIDTH,SCREEN_HEIGHT-nspire_statusarea,0);
int i=nspire_draw_string(x,y+nspire_statusarea,c,bg,Regular12,s,fake);
gui_gc_clipRect(nspire_gc,0,0,SCREEN_WIDTH,SCREEN_HEIGHT,GC_CRO_RESET);
return i;
}
int os_draw_string_small(int x,int y,int c,int bg,const char * s,bool fake){
get_gc();
gui_gc_clipRect(nspire_gc,0,nspire_statusarea,SCREEN_WIDTH,SCREEN_HEIGHT-nspire_statusarea,GC_CRO_SET);
int i=nspire_draw_string(x,y+nspire_statusarea,c,bg,Regular9,s,fake);
gui_gc_clipRect(nspire_gc,0,0,SCREEN_WIDTH,SCREEN_HEIGHT,GC_CRO_RESET);
return i;
}
int os_draw_string_medium(int x,int y,int c,int bg,const char * s,bool fake){
get_gc();
gui_gc_clipRect(nspire_gc,0,nspire_statusarea,SCREEN_WIDTH,SCREEN_HEIGHT-nspire_statusarea,GC_CRO_SET);
int i=nspire_draw_string(x,y+nspire_statusarea,c,bg,Regular11,s,fake);
gui_gc_clipRect(nspire_gc,0,0,SCREEN_WIDTH,SCREEN_HEIGHT,GC_CRO_RESET);
return i;
}
void statuslinemsg(const char * msg){
get_gc();
int bg=exam_bg();
gui_gc_setColor(nspire_gc,c_rgb565to888(bg));
gui_gc_fillRect(nspire_gc,0,0,SCREEN_WIDTH,nspire_statusarea);
nspire_draw_string(0,0,0xffff,bg,Regular9,msg,false);
}
void display_time(){
int h,m,s;
get_hms(&h,&m,&s);
char msg[10];
msg[0]=' ';
msg[1]='0'+(h/10);
msg[2]='0'+(h%10);
msg[3]= 'h';
msg[4]= ('0'+(m/10));
msg[5]= ('0'+(m%10));
msg[6]=0;
//msg[6]= 'm';
//msg[7] = ('0'+(s/10));
//msg[8] = ('0'+(s%10));
//msg[9]=0;
int bg=exam_bg();
gui_gc_setColor(nspire_gc,c_rgb565to888(bg));
gui_gc_fillRect(nspire_gc,270,0,SCREEN_WIDTH-270,nspire_statusarea);
nspire_draw_string(270,0,0xffff,bg,Regular9,msg,false);
}
void sync_screen(){
get_gc();
//gui_gc_finish(nspire_gc);
gui_gc_blit_to_screen(nspire_gc);
msleep(10);
//nspire_gc=0;
// gui_gc_begin(nspire_gc);
}
// Nspire peripheral reset :
// https://github.com/nDroidProject/nDroid-bootloader/blob/master/kernel.c
// https://hackspire.org/index.php?title=Memory-mapped_I/O_ports_on_CX#CC000000_-_SHA-256_hash_generator
// hardware ports
// https://hackspire.org/index.php?title=Memory-mapped_I/O_ports_on_CX
bool nspire_shift=false;
bool nspire_ctrl=false;
bool nspire_select=false;
void statusline(int mode){
char *msg=0;
if (nspire_ctrl){
if (nspire_shift)
msg="shift ctrl";
else
msg=" ctrl";
}
else {
if (nspire_shift)
msg="shift";
else
msg="";
}
int bg=exam_bg();
gui_gc_setColor(nspire_gc,c_rgb565to888(bg));
gui_gc_fillRect(nspire_gc,210,0,SCREEN_WIDTH-210,nspire_statusarea);
nspire_draw_string(220,0,0xffff,bg,Regular9,msg,false);
if (nspireemu)
nspire_draw_string(210,0,0xffff,bg,Regular9,"e",false);
display_time();
if (mode==0)
return;
sync_screen();
}
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Ah, autre problème que je viens de remarquer entre temps...
Si on laisse la calculatrice sous KhiCAS CX sans l'utiliser pendant un moment elle finit par s'éteindre.
Problème dans le cas de la TI-Nspire CX II-T, on ne peut pas la rallumer. Donc reset...
Si on laisse la calculatrice sous KhiCAS CX sans l'utiliser pendant un moment elle finit par s'éteindre.
Problème dans le cas de la TI-Nspire CX II-T, on ne peut pas la rallumer. Donc reset...
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
critor wrote:Ah, autre problème que je viens de remarquer à l'instant...
Si on laisse la calculatrice sous KhiCAS sans l'utiliser pendant un moment elle finit par s'éteindre.
Problème dans le cas de la TI-Nspire CX II-T, on ne peut pas la rallumer. Donc reset...
J'ai eu ça également. Je pensais avoir fait une mauvaise manip. Il a fallu sortir le trombone!
-
NouryVIP++
Niveau 11: LV (Légende Vivante)- Posts: 317
- Joined: 07 Sep 2018, 09:19
- Location: Sceaux, France 92
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Oui, ca je sais pourquoi, c'est l'adresse I/O du power management qui a change 900B -> 9014.
Comment on teste si on est sur une CX ou CX2?
Comment on teste si on est sur une CX ou CX2?
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Je ne sais pas si ça peut aider, j'ai trouvé ça:
Disponible ici:
https://hackspire.org/index.php?title=M ... cellaneous
- Code: Select all
900A0000 - Miscellaneous
Seems to be similar to CX and Classic, except for the model ID at 900A0000 which is now 0x202.
Disponible ici:
https://hackspire.org/index.php?title=M ... cellaneous
-
NouryVIP++
Niveau 11: LV (Légende Vivante)- Posts: 317
- Joined: 07 Sep 2018, 09:19
- Location: Sceaux, France 92
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
parisse wrote:Oui, ca je sais pourquoi, c'est l'adresse I/O du power management qui a change 900B -> 9014.
Comment on teste si on est sur une CX ou CX2?
Bon en fait, c'est le backlight que je modifiais pour simuler OFF/ON, et l'adresse sur la CX est 0x900f0020, celle sur la CX2 n'est pas connue (on parle de 0x90130018 mais ca plante). A moins qu'il n'y ait un controle qu'on peut ecrire sur le materiel du genre il faut d'abord ecrire quelque chose sur 0xCC000008.
Pour le moment je pense que je vais desactiver la simulation du OFF sur la cx2.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Bon, je remets la version precedente de KhiCAS sous le nom khicas.zip car il y a pas mal de problemes, y compris avec les CX (off ne marche plus). Le khicas pour les cx2 s'appelle khicas52.zip.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
En attendant un émulateur à jour, vous avez une CX II ou pas encore ?
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Je viens d'en acheter une.
Sur les cx ii, ca marche pas mal je trouve, modulo les parasites vers le milieu de l'affichage. J'ai un probleme avec l'interruption par ON dans Xcas qui fait quitter (dans MicroPython ca a l'air de marcher par contre). Il faudra voir si on peut controler le backlight.
C'est sur les cx que je conseille de rester en os 4.5.0 et la version precedente de khicas/ndless. De toutes facons, les versions ulterieures de l'os n'apportent rien.
Sur les cx ii, ca marche pas mal je trouve, modulo les parasites vers le milieu de l'affichage. J'ai un probleme avec l'interruption par ON dans Xcas qui fait quitter (dans MicroPython ca a l'air de marcher par contre). Il faudra voir si on peut controler le backlight.
C'est sur les cx que je conseille de rester en os 4.5.0 et la version precedente de khicas/ndless. De toutes facons, les versions ulterieures de l'os n'apportent rien.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Who is online
Users browsing this forum: ClaudeBot [spider] and 18 guests