1

bon, j'aimerais que quelqu'un me dise une façon qui marche (surtout Extended) pour qu'une fois pour toute je réussisse à faire des trucs compatible !
y en a marre !
il me faut juste la manip pour tester les touches sans arreter le programme (pas comme le idle_loop) et avoir le résultat dans d0 (comme idle_loop)
la ou je comprend rien, c'est que j'ai pris ma fonction idle_loop, et j'ai viré la partie "si on a d0=0, ben on reteste les touches), car la routine est compatible HW2, donc la je comprends toujours pas pourquoi ça veut toujours pas marcher !
:D

2

Ah bah ouais parceque la méthode d'ExtendeD elle marche. Ca c sûr.
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.

3

N'utilise pas kb_vars.

Alternative 1:
1. Redirige les auto-ints 1 et 5.
2. Lis le clavier directement à travers les ports I/O.

Alternative 2:
Utilise OSdequeue (ROM_CALL normal) et kbd_queue:
 moveq.l #6,d0
 trap #9
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é

4

juste ça et d0 vaut bien ce que je veux ?
si ça marche, y a des news qui se préparent !
:D

5

>juste ça et d0 vaut bien ce que je veux ?

Non. kbd_queue (les 2 instructions que je t'ai données) te donne l'adresse de la keyboard queue en a0, puis OSdequeue, si appelée correctement (OSdequeue (unsigned short *dest, void *Queue);), te met la touche appuyée dans une adresse mémoire spécifiée.

Tout est dans la documentation de TIGCC.
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é

6

faut utiliser la matx clavier, avec un nb de nop suffisant. (genre 12 je crois)

7

"...je réussisse à faire des trucs compatible ! "
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

8

ba koi ?

9

Sur 92 le programme ne fonctionnera pas !?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

10

mais il a pas parlé de 92 confus

et puis si c 89/92+, suffit d'adapter la matrx, je vois pas le pb confus

P.S.
Pour 92 ça doit etre la meme matrx que la 92+, suffit de chercher une doc.

11

Mais à quoi se réfère le terme compatible qu'il emploie alors ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

12

erf, comment puis-je le savoir ??

>> trucs compatible !
le topic parle de HW2 par contre.

dans ce cas, il suffit d'augmenter le nb de nop jusqu'a ce que ça fonctionne sans pb.
(c plutot 16 sur hw 2 je crois d'ailleurs)

13

C'est à lui que ma question est adressée wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

14

ben tu dis 'qu'il emploie'
wink

15

C'était quand même pour lui, mais comme je te répondait en même temps j'ai fait cette faute révélatrice (Brenesham <-> Huffman ça te dis quelque chose).

C'est terrible d'être vieux grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

16

HerveRV, relis tes mails smile

----- Original Message -----
From: ExtendeD
To: HerveRV@aol.com
Sent: Thursday, May 24, 2001 11:26 PM
Subject: Re: SOR3 - aide en asm

(...)

Je pense que tu utilise les ram_calls KEY_PRESSED_FLAG et GETKEY_CODE, ou alors kb_vars ou kb_globals+$1c et +$1e ( c la même chose).
Mais le problème, c que le fonctionnement de ces ram call est particulier sur AMS 1.00, et différent sur les autres AMS.
Ta routine consistait, si je ne me trompe pas, à effacer le KEY_PRESSED_FLAG (...+1$c), a envoyer GETKEY_CODE (...+$1e) dans d0. Si d0=0, alors tu quittais ta routine de test de touches, sinon tu comparais d0 a chaque touche et tu faisais ce qu'il fallait faire.
Le problème c'est que sur AMS 2.0x, ca ne marche pas comme ca. d0 peut très bien être différent de 0, alors que le joueur n'a pas appuyé de touches. C'est pour ça que KEY_PRESSED_FLAG existe: si il est égal à zéro, alors aucune touche n'a été appuyée, si il est différent de 0, alors une touche a été appuyée et on peut lire sa valeur dans GETKEY_CODE. Donc il faut absolument tester si KEY_PRESSED_FLAG est = 0, et non si GETKEY_CODE = 0. Après avoir lu la valeur de la touche, si une touche a été appuyée, il ne faut pas oublier d'effacer KEY_PRESSED_FLAG.
Le problème, c que les AMS 2.0x ne gèrent pas les touches appuyées longtemps, en utilisant cette méthode. C'est-à-dire que l'on ne peux pas laisser "avant" appuyé, il faut appuyer plein de fois. C'est pour ça que mon portage de HL ne rendait pas si bien que le
prog original. Enfin, peut-etre que c possible, mais en tout cas je n'y arrive pas.


(...)

17

>Le problème, c que les AMS 2.0x ne gèrent pas les touches appuyées longtemps, en utilisant cette méthode

Si, mais il arme un bit dans le code la touche quand elle est repetée il me semble (il faut masquer avec $F7FF si je me souviens bien).
So much code to write, so little time.

18

sinon, ya un tuto sur Tifr: ça peut constituer de bonnes bases...
La programmation est un art... Ne prétendons pas en être des virtuoses mais tout au plus des adeptes...
ASM Rulez!!

19

>ExtendeD:

Donc j'avais bien deviné qu'il utilise kb_vars (= kb_globals). C'est une manière très sale de lire le clavier! OSdequeue est beaucoup plus pratique si on sait l'utiliser.
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é

20

mais plus lente?

21

Si on y tient à la vitesse, autant accéder aux ports I/O directement (comme le fait la macro _rowread en C TIGCC).
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é

22

euh, je suis pas a la pointe du progrès ou j'ai rien compris à la vie, mais si on prog en asm, on est cencé connaitre la doc de tigcc ?
:D

23

Oui.

Tous les ROM_CALLs importants sont documentés là-dedans!
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é

24

Bah HerveRV pourrait tout simplement utiliser keylib, non ?
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

25

mais HerveRV utilise très bien le clavier quand il accede aux port I/o ! (d'ailleurs c sa lib qui le fait). C avec kb_vars que ca plantait seulement.

26

je sais très bien le faire, (merci ExtendeD), mais le but est de simuler la fonction getkey() du basic, car j'ai pas envie du tout de me remettre dans moucheII et half, car ils sont pas bien, mal programmés, et que pleins de gens veulent y jouer (juste une fois en fait !), donc la manip la est tordue niveau compatibilité HW ! rage
:D

27

Ouais, tout plein de gens, c'est bcp dire... grin
Moi...

Et c'est pas pour y jouer une fois... Mais bon, c'est vrai que je préfererais R-Type...
Vive CF !!
Vive la Time To Team !!!

28

et tu peux même pas imaginer comme ça avance bien !
j'irai même jusqu'à dire que si quelqu'un me trouve un code répondant à mes critères d'éxecution, il y aura une triple news !
- half
- mouche II
- rtype + le super éditeur de niveaux (demandez à flashz si il est pas bien (et il a une vieille version, encore)

non, c pas du chantage ! wink
merci quand même de me trouver un truc qui marche, enfin, moi je m'en fou g pas de hw2, donc ... m'enfin ça fait toujours chier, quoi !
:D

29

Aidez le !!!!!!!!!!!!!!!!!!!
Vive CF !!
Vive la Time To Team !!!

30

Kevin Kofler a répondu a ta question je pense.
Bon si tu veux vraiment un bout de source :
	moveq	#6,d0
	trap	#9               ;execute kbd_queue
	lea	kbq(pc),a1
	move.l	a0,(a1)    ;pointe sur la kbd queue de l'os
	;(...)
	
	move.l	kbq(pc),-(a7)
	pea	key(pc)
	jsr	doorsos::OSdequeue
	addq.w	#8,a7
	move.w	key(pc),d0
	tst.w	d0 			;une touche appuyée?
	beq	SkipKeyTest		;non
	and.w	#$F7FF,d0		;même code même si c'est une repetition
					;de touche (thx Nitro ;))
	;Le numero de la touche appuyée est dans d0
	;(...)
	
SkipKeyTest:
	;(...)

key	dc.w	0
kbq	dc.l	0