wow
14 posts
• Page 2 of 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)- Posts: 10995
- Joined: 19 Dec 2005, 00:00
- Location: /dev/null mais je survis :)
- Gender:
- Calculator(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)- Posts: 6875
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: wow
Lionel Debroux wrote: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: Select all
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: Select all
#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)- Posts: 1988
- Images: 8
- Joined: 02 Aug 2009, 00:00
- Location: 54, près de Metz
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 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)- Posts: 6875
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
14 posts
• Page 2 of 2 • 1, 2
Who is online
Users browsing this forum: ClaudeBot [spider] and 15 guests