Vous n'êtes pas identifié.
Voila, a priori elles marchent, mais j'ai un doute pour la réception! Car le tuto de superna se "contredit" à un moment dans la réception faut tester les bits 3 et 4 dans le pseudo code, et dans l'exemple c les bits 4 et 5! en plus on teste le bit 2 de al au lieu du premier!
donc voici les routines que je pense debugguées. Dites moi tout!
void sendmap(void) { int CurPosX,CurPosY; asm in al,0x11 //prends la valeur de P11h asm or al,0x60 //active les bits 5 et 6 asm out 0x11,al //remet en P11h asm mov al,0x0 asm out 0x44,al //met 0 dans P44h asm mov al,0x41//comm correcte asm out 0x45,al asm mov al,0x0B //vitesse principale asm out 0x47,al //met dans P47h for(CurPosX=0;CurPosX<22;CurPosX++) for(CurPosY=0;CurPosY<20;CurPosY++) { _AL=maps[0][CurPosY][CurPosX]; asm out 0x46,al asm mov al,0x7C //communication a 115200bps asm out 0x44,al testok: asm in al,0x45 //prends P45h asm and al,1 //ne prend que le bit 0 (1= 00 000 001b) asm cmp al,1 //compare avec 1 asm jne testok // si pas 1, re verifie } asm mov al,0x0 asm out 0x44,al //met 0 dans P44h asm in al,0x11 //prend la valeur de P11h asm and al,0x9F //d‚sactive les bits 5 et 6 asm out 0x11,al //remet en P11h //End } void receivemap(void) { int CurPosX,CurPosY; int ValCase; asm in al,0x11 //prend la valeur de P11h asm or al,0x60 //active les bits 5 et 6 asm out 0x11,al //remet en P11h asm mov al,0x0 asm out 0x44,al //met 0 dans P44h asm mov al,0x0B //vitesse principale (115200bps) asm out 0x47,al //met dans P47h partie4: asm mov al,0x41//comm correcte asm out 0x45,al asm moval,0x7C //reception … 115200bps asm out 0x44,al for(CurPosX=0;CurPosX<22;CurPosX++) for(CurPosY=0;CurPosY<20;CurPosY++) { partie5: asm in al,0x45 //prend P45h partie6: asm mov ah,al //copie de sauvegarde asm and al,1 //prend le bit 1 asm cmp al,1 //verifie sa valeur asm jne partie6 //si 0, re verification asm mov al,ah //reprise de la sauvegarde asm and al,0x18 //prends les bits 4 et 5 asm cmp al,0 //si aucun activ‚ continuer asm je noerror asm in al,0x44 //vide le buffer asm jmp partie5 //reverifie noerror: asm in al,0x44 //prend la valeur re‡ue maps[0][CurPosY][CurPosX]=_AL; } asm mov al,0x0 asm out 0x44,al //met 0 dans P44h asm in al,0x11 //prends la valeur de P11h asm and al,0x9F //d‚sactive les bits 5 et 6 asm out 0x11,al //remet en P11h //End }
Hors ligne
juste une précision, casiomax :
quand tu as un tab comme ca :
tab[2][2]=
{{2,2},
{2,2}};
Pour le send, tu peu le faire en asm comme ceci:
tab+X
ou X va de 0 a 3 !
Comme ca, tu a beaucoup plus de rapidité !
Hors ligne
Voila, a priori elles marchent, mais j'ai un doute pour la réception! Car le tuto de superna se "contredit" à un moment dans la réception faut tester les bits 3 et 4 dans le pseudo code, et dans l'exemple c les bits 4 et 5! en plus on teste le bit 2 de al au lieu du premier!
ça c une erreur de comprehension
je compte les bits dans mon tuto de 0 a 7
donc quand je perle du bit 1 , je parle fait du second
c pareil pour le 3 et le 4
note que si tu comprends pas le texte, le code marche de toute façon
Hors ligne
ouais, je sens que tu vas être testeur réseau! lol
Sinon je vais revoir mes routines et les tester dès que possible!
Hors ligne
spuper interessant mais elle permettent d'envoyer et recevoir quoi ?
Hors ligne
Ben si t'as bien regardé les routines, elles permettent de communiquer la carte de jeu de Bomberman! En gros c'est pour l'add-on Rezo!! En plus tout est prêt! Reste plus qu'à les tester!
Hors ligne
il faudrait faire les routines avec comme parametre un tableau.
parceque l'asm moi pas connaitre.
Hors ligne
ben c'est tout con, tu remplaces maps _AL=maps[0][CurPosY][CurPosX]; par ce que tu veux mettre dans _AL ! c'est à dire les données à envoyer!
et si superna est sûr de son code, pq est ce que c'est cmp al,2 et pas cmp al,1 ?
Hors ligne
et pourquoi y'a des cmp puis je/jne alors que des jz/jnz suffisent?
Hors ligne
ben déjà tous les jxx s'utilients avec cmp, et puis jxz c'est pour comparer avec 0! alors ça convient pas ici...
Hors ligne
et bien
2->%10
or le premier bit est a 0
et le second a 1
or je compte de 0 a 7 donc le bit 1 est bien le bit mis a 1
donc je teste bien le bit 1
voila
Hors ligne
ben déjà tous les jxx s'utilients avec cmp, et puis jxz c'est pour comparer avec 0! alors ça convient pas ici...
Tu ne gardes que le dernier bit ( and 1 avant ), donc ton nombre a tester vaut soit 1 soit 0, donc ca convient tres bien.
Et les jxz n'ont pas besoin de cmp, ils observent si le résultat de la derniere opération est nul ou non.
Hors ligne
le tuto de superna et les fonctions de casiomax ne marchent pas chez moi.
On recoit tout le temps l' octet 11et instantanément, meme sans brancher le cable !
De plus, g pas l' impression que ca vérifie si c bien envoyé ...
Hors ligne
parfait !
ps : resend moi ca a x_thunder28@hotmail.com, car caramail me sort par les trou de nez en ce moment !
Hors ligne
oki je vois !
( a propos : quand on envoie tout le temps, ya bien un courant, c donc de la récéption que ca merde !)
Hors ligne
ah putain ça y est je te l'ai sendé!!
j'arrivais pas car j'avais un pb ac opera ... les cookies pê !?
Hors ligne