1

yop,

Un petit screen : lv1O

Comme vous pouvez voir, la liste des handles et leur adresse est vide...
J'ai essayé avec Pedrom et AMS, sous Window XP, 7, 10.
Toujours une liste vide.

Je ne pense pas qu'il y ait eu des tonnes de binaires de VTI.
Pourtant si quelqu'un en avait un qui ne souffre pas de ce problème, je serais complètement preneur.

Merci d'avance !


(et oui, c'était super fun de poster dans la catégorie débutants, nananère embarrassed grin)
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

2

Lionel Debroux a été invité sur ce sujet.

Sais-tu s'il existe une version de TiEmu sans GDB et portable ?

Merci bien smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

3

Bon, d'après Lionel, ça ne marchait qu'avec les vieilles versions d'AMS.
Sait-on pourquoi ? la table des handles avait un handle bien spécifique, qui a changé ensuite ?
Serait-il possible de patcher PedroM pour forcer cette compatibilité ? Surtout que PedroM vise la compatibilité AMS 1.x au maximum, ça ne devrait pas être sorcier si on sait ce qu'on veut faire.
Ca m'intéresserait d'en savoir plus en tout cas, parce que ça aide vraiment pour les programmes qui manipulent beaucoup de handles. smile

PpHd a été invité sur ce sujet.


Peut-être en saurais-tu plus ? Merci d'avance smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

4

Il va te dire que c'est VTI qu'il faut patcher tongue
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5

Je ne sais pas comment Vti récupérait cette table donc, je ne sais pas si c'est possible.

6

Debug.cpp : #define ROMTBL(x) hw->getmem_dword(hw->getmem_dword(0xc8)+(x)*4) #define HANDLE_TABLE hw->getmem_dword(ROMTBL(0x2f)+0x11a) #define HANDLE_TABLE_92 cpu_readmem24_dword(romFuncAddr[0x1c]+0x1902) #define HANDLE(x) hw->getmem_dword(HANDLE_TABLE+4*(x)) #define HANDLE92(x) hw->getmem_dword(HANDLE_TABLE_92+4*(x)) #define GETBYTE(x) (cpu_readmem24(x)&0xff) #define GETWORD(x) (cpu_readmem24_word(x)&0xffff)if ((calc==89)||(calc==94)) { HandlesBox->Caption="Handles"; max=hw->getmem_word(ROMTBL(0x2f)+0x104); if (max>0x800) max=0x800; for (i=0,chg=0;i<max;i++) { int addr=hw->getmem_dword(HANDLE_TABLE+4*i); if (addr) { n=i+1; if (addr!=oldHandleList[i]) chg=1; } } if ((n!=oldHandleCount)||chg) { Handles->Clear(); for (i=0;i<n;i++) { int addr=hw->getmem_dword(HANDLE_TABLE+4*i); sprintf(str,"$%4.4X -> $%6.6X",i,addr); oldHandleList[i]=addr; Handles->Items->Add(str); } oldHandleCount=n; } } else if (calc==92) { HandlesBox->Caption="Handles"; max=hw->getmem_word(0x5d2c); if (max>0x800) max=0x800; for (i=0,chg=0;i<max;i++) { int addr=hw->getmem_dword(hw->getmem_dword(0x5d42)+4*i); if (addr) { n=i+1; if (addr!=oldHandleList[i]) chg=1; } } if ((n!=oldHandleCount)||chg) { Handles->Clear(); for (i=0;i<n;i++) { int addr=hw->getmem_dword(hw->getmem_dword(0x5d42)+4*i); sprintf(str,"$%4.4X -> $%6.6X",i,addr); oldHandleList[i]=addr; Handles->Items->Add(str); } oldHandleCount=n; } }
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

7

Nan mais tu l’as eu où le source ? C’est du cpp en plus, un simple rebuild suffirait pour corriger ça ? grin
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

8

Ça traînait dans un coin de mon disque dur, j'avais dû télécharger ça il y a une vingtaine d'années. Possible que ce soit une version bêta, par contre.

EDIT : ah ben voilà, qu'est-ce que je disais :
https://www.ticalc.org/archives/files/fileinfo/85/8554.html
C'était le premier endroit où tu aurais dû regarder, voyons !
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

9

Ah, au passage : ça utilise C++Builder. Il y a une version gratuite pour un usage non-commercial ici :
https://www.embarcadero.com/fr/products/cbuilder/starter
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

10

T’es juste un amour ! love
Par contre je vais devoir faire le setup sur une VM parce que mon pc perso à passé le CPU à gauche et je peux pas installer sur mon pro.
L’avantage d’un patch est que ça permettrait de refournir un binaire récent sur ticalc/-fr.
Merci encore !
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

11

Folco (./10) :
mon pc perso à passé le CPU à gauche
Condoléances tsss
(il lui est arrivé quoi ?)

Folco (./10) :
Merci encore !
Bah, de rien hehe
(si c'est trop galère à recompiler et que c'est juste une adresse à changer, on peut aussi patcher l'exécutable shhh)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

12

C'est sur ticalc.org que j'aurais cherché les sources, ouais.
Mais à moins d'utiliser un patch binaire, ce qu'il faudrait surtout, ce sont les sources de la version modifiée par JM, de préférence celle dont les breakpoints fonctionnent correctement. La version modifiée par JM est quand même significativement meilleure que le VTI d'origine...

ROMTBL(0x2f)+0x11a
ROMTBL(0x2f)+0x104
Eh ? Un offset à partir de ScrRect ? Tu m'étonnes que ça ne fonctionne pas sur des versions d'AMS plus récentes, ou sur PedroM...
Même s'il faut faire deux codes différents selon la génération d'AMS, parser HeapDeref, par exemple, est une méthode nettement plus fiable. EDIT: d'ailleurs, sans surprise, c'est ce que fait TIEmu (
debrouxl/tiemuGitHubTIEmu is an emulator of Texas Instruments hand-helds (89/89T/92/92+/V200) for Linux &amp; Windows, written with GTK+. Features include highly accurate emulation and a graphical debugger. - debroux...
).

Un autre truc à corriger: dans la table de HANDLEs, il y a 2000 (0x7D0) HANDLEs, et non 0x800 (2048). En tout cas, c'est comme ça sur les versions modernes d'AMS.
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

13

J'ai vu aussi cette bizarerie avec ScrRect trifus Et pareil pour le nombre de handles.
Pour cette dernière valeur, c'est probablement une approximation à une époque où AMS était mal documenté.

Ok C++ builder. Tu t'inscris sur le site pour dire que tu veux faire une utilisation gratuite/essais gratuit, et il te demande une license à l'install top
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

14

Normalement ils t'envoient par mail une clé de licence à entrer. Y'a peut-être un peu de délai dans leur système.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

15

Zerosquare (./8) :
Ça traînait dans un coin de mon disque dur, j'avais dû télécharger ça il y a une vingtaine d'années. Possible que ce soit une version bêta, par contre.

EDIT : ah ben voilà, qu'est-ce que je disais :
https://www.ticalc.org/archives/files/fileinfo/85/8554.html
C'était le premier endroit où tu aurais dû regarder, voyons !

Wow, j'avais toujours cru que c'était un projet closed-source, et que c'était pour ça que KK avait horreur de VTI. Merci beaucoup pour l'info, je garde ces sources précieusement smile
avatarAppartiens à l'Unification Ultime !

Si vous continuez, le topic devra bientôt être renommé en "publicité pour Asselineau". #roll# - Kevin

16

Parfait merci. smile
J'étais dans les sources du CPU hier soir love
Pareil que pastek, je savais pas que les sources étaient publiques, ça donne limite envie de se mettre dedans love
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

17

Lionel Debroux (./12) :
parser HeapDeref, par exemple, est une méthode nettement plus fiable. EDIT: d'ailleurs, sans surprise, c'est ce que fait TIEmu
Pour toutes les versions d'AMS ?

Zerosquare -> j'avais pas vu le mail, ça marche merci.

Bon par contre, impossible d'ouvrir le projet VTI. Peut-être faut-il recréer un projet et importer toutes les sources dedans. J'ai pas trop le temps en ce moment.
En tout cas, si j'y arrive, le patch a l'air vraiment simple à faire...


Bon, au travail !

Pedrom, graph.asm :
        ScrRect:	dc.b	0,0,SCR_WIDTH-1,ST_Y-1			; Working screen
        STRect:		dc.b	0,ST_Y+1,SCR_WIDTH-1,SCR_HEIGHT-1	; ST screen
        FullRect:	dc.b	0,0,SCR_WIDTH-1,SCR_HEIGHT-1		; Full Screen
        MenuRect:	dc.b	0,0,SCR_WIDTH-1,18			; Menu Screen
+++
+++     prout:		ds.b	$011A-(prout-ScrRect)
+++     		dc.w	HEAP_TABLE
#triclasse#
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

18

Pas sûr que PpHd accepte ce patch grin
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

19

Ah bon tu crois ? #triprie#
Surtout qu'apparemment ce truc sert à récupérer le nombre max de handles, pas le handle de la table qui doit être hardcodé quelque part.

Au fait, Debian 10, PedroM ne compile plus straight forward après un make clean :
patch: **** Can't rename file mpfr-impl.h to '' : No such file or directory
make[2]: *** [Makefile:24: mpfr] Error 2
make[1]: *** [Makefile:128: lib/t-ihm.o] Error 2
make: *** [Makefile:6: all] Error 2
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !