1

S'cusez-moi, savez-vous où je peux trouver des infos dur l'écran graphique géré par AMS (l'application GRAPH) et l'écran PrgmIO pour lire ou écrire dedans dans mes progs asm?
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

2

cmd_dispg();
WINDOW *graph=FirstWindow;
cmd_disp(END_TAG);
WINDOW *prgmIO=FirstWindow;

Et là, tu peux utiliser les fonctions de wingraph.h.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Mais autant programmer en BASIC, là non ?

4

Ben, une fois l'adresse des fenêtres récupérée, on n'a plus besoin des cmd_*. D'ailleurs, on doit pouvoir utiliser des fonctions EV_* à la place des cmd_*.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

au fait:
le handle du graph c'est 0x13
celui du IO c'est 0xF

y'a un handle pour le home?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

6

Ximoon a écrit :
au fait:
le handle du graph c'est 0x13 celui du IO c'est 0xF

Ces numéros de handles dépendent de la version d'AMS et sont même variables sous AMS 2!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

Zut je date excuse...

Erf je vais avoir du code à refaire pour MM sad
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

8

Voici une une méthode pour trouver les handles de ces deux écrans qui sont des 'Duplicate Screen area'. Les fonctions de wingraph.h ne marcheront pas...
OPTIMIZE_ROM_CALLS doit être défini.
asm("
movea.l 0x10B*4(%%a5),%%a0
movea.l (%%a0),%%a0 | gr_active.
movea.l 0x242(%%a0),%%a0 | gr_active -> grwinp.
move.w 0x20(%%a0),%%d2 | Graph window Duplicate screen area handle -> d2
movea.l 0x331*4(%%a5),%%a0 | cmd_clrio.
movea.w 4(%%a0),%%a0 | pointer to IO Screen window.
move.w 0x20(%%a0),%%d3 | IO Screen window Duplicate screen area handle -> d3
")

Bien entendu, si tu utilises ceci, et que tu l'utilises dans un bloc C, il vaut mieux utiliser de l'ASM inline avec opérandes C (2 output, 0 input, 1 registre clobbered: a0).

En comparant ces handles avec les handles de duplicate screen area des windows, tu peux trouver la Graph Window et la PrgmIO Window.
(Regarde le source de tthdex, la partie qui trouve les handles de duplicate screen area).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

9

Merci. Au fait, jé n'aurais pas du mettre ce topic dans Prog en C, je moi qui ne programme qu'en A68k...
(C'est le langage le plus proche du X68k et du IDE68k de mon lycée) et que plus je programme en C en cours, moins j'aime ce langage (J'aime pas quand je ne sais pas trop ce que le prog fait)
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

10

Justement, je trouve qu'en C on s'en rend carrément mieux compte qu'en BASIC ou Pascal par exemple.

11

Oui mais par rapport à l'asm...
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

12

C'est justement pour cela que je préfère programmer à bas niveau, le C est parfois trop Haut pour moi (Même s'il l'est beaucoup moins que le BASIC, même si pour l'instant je cherche un peu à me faire ma propre FLib: Je débute en ASM89, et je n'ai pas encore fait la fonction qui retourne la VAT pour un prog en TI-basic)

Edit: Tiens, post croisé...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

13

XDanger a écrit :
Voici une une méthode pour trouver les handles de ces deux écrans qui sont des 'Duplicate Screen area'. Les fonctions de wingraph.h ne marcheront pas...
OPTIMIZE_ROM_CALLS doit être défini.
asm("
movea.l 0x10B*4(%%a5),%%a0
movea.l (%%a0),%%a0 | gr_active.
movea.l 0x242(%%a0),%%a0 | gr_active -> grwinp.
move.w 0x20(%%a0),%%d2 | Graph window Duplicate screen area handle -> d2
movea.l 0x331*4(%%a5),%%a0 | cmd_clrio.
movea.w 4(%%a0),%%a0 | pointer to IO Screen window.
move.w 0x20(%%a0),%%d3 | IO Screen window Duplicate screen area handle -> d3
")

Bien entendu, si tu utilises ceci, et que tu l'utilises dans un bloc C, il vaut mieux utiliser de l'ASM inline avec opérandes C (2 output, 0 input, 1 registre clobbered: a0).

En comparant ces handles avec les handles de duplicate screen area des windows, tu peux trouver la Graph Window et la PrgmIO Window. (Regarde le source de tthdex, la partie qui trouve les handles de duplicate screen area).


euh je sais c'est pas le forum mais tant que tu y est...

ce code donne bien:

 movea.l	$10B*4(a5),a0 
 movea.l	(a0),a0 	| gr_active. 
 movea.l	$242(a0),a0 	| gr_active -> grwinp. 
 move.w		$20(a0),d2 	| Graph window Duplicate screen area handle -> d2 
 movea.l	$331*4(a5),a0 	| cmd_clrio. 
 movea.w	4(a0),a0 	| pointer to IO Screen window. 
 move.w		$20(a0),d3 	| IO Screen window Duplicate screen area handle -> d3


et optimize_romcall fait en sorte que l'adress à $c8 soit dans a5 et saute directement aux romcalls quand on fait par ex movea.l $10B*4(a5),a0 ?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

14

Ximoon a écrit :
euh je sais c'est pas le forum mais tant que tu y est...

ce code donne bien:

 movea.l	$10B*4(a5),a0 
 movea.l	(a0),a0 	| gr_active. 
 movea.l	$242(a0),a0 	| gr_active -> grwinp. 
 move.w		$20(a0),d2 	| Graph window Duplicate screen area handle -> d2 
 movea.l	$331*4(a5),a0 	| cmd_clrio. 
 movea.w	4(a0),a0 	| pointer to IO Screen window. 
 move.w		$20(a0),d3 	| IO Screen window Duplicate screen area handle -> d3

C'est bon, sauf pour les "|" qui devraient être des ";" sous A68k.
et optimize_romcall fait en sorte que l'adress à $c8 soit dans a5 et saute directement aux romcalls quand on fait par ex movea.l $10B*4(a5),a0 ?

Oui. Mais en assembleur pur, on doit mettre le movea.l $c8,a5 soi-mêmes.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

15

OK merci smile
(j'avais juste oublié de changer les | wink)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

16

Link
a écrit : ...même si pour l'instant je cherche un peu à me faire ma propre FLib: Je débute en ASM89, et je n'ai pas encore fait la fonction qui retourne la VAT pour un prog en TI-basic)

Hmmm et en plus en ASM y'a des chances que ça prenne bcp moins de place qu'en C... À surveiller de près cette affaire gringringrin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

17

dites, je viens de retrouver ce topic, y'a pas un moyen de récupérer les handles sans faire de ClrIO?
En fait, je cherche à copier le contenu de l'écran IO dans le graph...

Et sinon, quelle est la taille d'une Duplicate screen area? 3840 octets comme l'écran?
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

18

Link a écrit :
dites, je viens de retrouver ce topic, y'a pas un moyen de récupérer les handles sans faire de ClrIO? En fait, je cherche à copier le contenu de l'écran IO dans le graph...

Le code de XDanger ne fait pas de ClrIO, il regarde à l'intérieur de la fonction ClrIO pour avoir l'adresse.

Et tu peux aussi essayer ma méthode:
cmd_disp(END_TAG);
WINDOW *prgmIO=FirstWindow;
HANDLE h=prgmIO->DupScr;

Et sinon, quelle est la taille d'une Duplicate screen area? 3840 octets comme l'écran?

Non, c'est la taille de la partie de l'écran sur laquelle la fenêtre est affichée.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

19

Kevin Kofler
a écrit : Non, c'est la taille de la partie de l'écran sur laquelle la fenêtre est affichée.

Ce qui veut dire qu'elle change d'une TI à l'autre... Merci beaucoup.
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.