wow
14 messages
• Page 2 sur 2 • 1, 2
Re: wow
Hm, apu souvenirs de mes cours de 68k de l'année dernière, c'est quoi dbf ?
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Messages: 10995
- Inscription: 19 Déc 2005, 00:00
- Localisation: /dev/null mais je survis :)
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: wow
dbf (parfois incorrectement appelé dbra) est Decrement and Branch until False, c'est à dire tant que les 16 LSB du registre de données argument de cette instruction ne valent pas 0 au moment de l'exécution du dbf
:

Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6875
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
Re: wow
Lionel Debroux a écrit:Désolé de ne pas avoir répondu plus tôt![]()
Pour attendre quelques microsecondes, il faut fortement baisser la valeur de d0![]()
Extrait de TI-Chess, attente active de n ms:
- Code: Tout sélectionner
void WaitForMillis(register unsigned short asm("%d2"));
asm("xdef WaitForMillisn"
"WaitForMillis: move.l %d3,-(%sp)n"
" moveq #31,%d1n"
" moveq #31,%d3n"
"_wl2_: move.w #120,%d0 /* modify this value for exact timing !!! */n"
"_wl1_: rol.l %d3,%d1n"
" dbf %d0,_wl1_n"
" dbf %d2,_wl2_n"
" move.l (%sp)+,%d3n"
" rts");
120 est, d'après le commentaire, fait pour les vieilles HW1 produites avant 2000. Les HW2/HW3/HW4, qui sont un peu plus rapides, nécessitent des valeurs de d0 un peu plus élevées.
Et avec 12 ou 13 au lieu de 120, on a une attente d'environ 100 us.
Peut tu m'en dire plus sur comment utiliser ce code dans mon code C ? J'ai essayé ça, c'est compilé, mais ça attend un certain tps jusqu'à un LINE 1111 EMULATOR
- Code: Tout sélectionner
#define USE_TI89
#include tigcclib.h
#include args.h
#include estack.h
// Main Function
void _main(void)
{
unsigned short n = 2000;
void WaitForMillis(register unsigned short asm("%d2"));
asm("xdef WaitForMillisn"
"WaitForMillis: move.l %d3,-(%sp)n"
" moveq #31,%d1n"
" moveq #31,%d3n"
"_wl2_: move.w #120,%d0n"
"_wl1_: rol.l %d3,%d1n"
" dbf %d0,_wl1_n"
" dbf %d2,_wl2_n"
" move.l (%sp)+,%d3n"
" rts");
}
Dis moi donc comment utiliser ça de telle sorte que ça attende pendant un nombre de microsecondes ou de centaine de microsecondes n !
Merci bien !

Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Messages: 1988
- Images: 8
- Inscription: 02 Aoû 2009, 00:00
- Localisation: 54, près de Metz
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Ingé Logiciel chez Amazon
Re: wow
Mets WaitForMillis hors de _main.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6875
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
14 messages
• Page 2 sur 2 • 1, 2
Retourner vers Autres discussions
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 14 invités