π
<-
Chat plein-écran
[^]

[ARM926EJ-S] Routine pour le scrolling

C, C++, ASM...

[ARM926EJ-S] Routine pour le scrolling

Message non lude Ti64CLi++ » 20 Jan 2018, 17:23

Bonjour,
Je reviens avec une routine pour faire du scrolling.
Je ne vous donne que celle qui décale l'écran de façon horizontale, enfin, de gauche a droite.
Code: Tout sélectionner
scrollv
    stmfd sp!, {r0-r12, lr}
    ;r1 -> décalage en nombre de fois
    mov r10, r1
    sub r10, r10, #1
scrollvloop
    mov r0, #0xC0000010
    ldr r0, [r0]
    mov r1, #320
    sub r1, r1, #1
    mov r2, #0
    adr r3, scrollsave
scrollvloop1
    mov r4, #0
    mov r5, #0
    add r5, r5, r2, lsl #1
    add r4, r4, r1, lsl #1
    add r4, r4, r2, lsl #9
    add r4, r4, r2, lsl #7
    ldrh r6, [r0, r4]
    strh r6, [r3, r5]
    add r2, r2, #1
    cmp r2, #240
    bllt scrollvloop1
    sub r1, r1, #1
scrollvloop2
    mov r2, #0
scrollvloop3
   mov r4, #0
   mov r5, #0
   add r6, r1, #1
   add r4, r4, r2, lsl #9
   add r4, r4, r2, lsl #7
   mov r5, r4
   add r4, r4, r1, lsl #1
   add r5, r5, r6, lsl #1
   ldrh r6, [r0, r4]
   strh r6, [r0, r5]
   add r2, r2, #1
   cmp r2, #240
   bllt scrollvloop3
   subs r1, r1, #1
   blpl scrollvloop2
   mov r2, #0
   adr r3, scrollsave
scrollvloop4
   mov r4, #0
   mov r5, #0
   add r5, r5, r2, lsl #1
   add r4, r4, r2, lsl #7
   add r4, r4, r2, lsl #9
   ldrh r6, [r3, r5]
   strh r6, [r0, r4]
   add r2, r2, #1
   cmp r2, #240
   bllt scrollvloop4
   subs r10, r10, #1
   blpl scrollvloop
   ldmfd sp!, {r0-r12, pc}

scrollsave
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0
    dcw 0,0,0,0,0,0,0,0,0,0

Le scrollsave me sert autant pour la routine verticale que horizontale, c'est pour cela qu'elle fait 320*2 octets.
Maintenant, je voudrais essayer de faire en sorte qu'elle prenne encore une fois, un parametre en r1, mais que si r1 est négatif, que ca fasse dans l'autre sens.
Et aussi, l'optimiser un max pour qu'elle soit (beaucoup) plus rapide :D
Voila, merci d'avance pour votre aide
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude Ti64CLi++ » 24 Jan 2018, 17:26

Up
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude Ti64CLi++ » 26 Jan 2018, 21:15

Up
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude grosged » 28 Jan 2018, 16:59

Oh, intéressant :)
Je ne me souviens plus trop, mais je suis sûr d'avoir procédé autrement... Faut que je retrouve ça ;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude Ti64CLi++ » 28 Jan 2018, 17:01

Ca me serais utile, si tu pouvais retrouver. Parce que il faut que ce soit le plus rapide possible.
Je travaille en ce moment sur un très gros projet, et j'aurai grandement besoin de ton aide ;)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude grosged » 28 Jan 2018, 18:09

Je ne retrouve plus les codes cources...Mais ce dont je suis sûr , c'est que j'utilisais le transfert/déplacement de données à coups de LDMia/STMia (par blocs constitués de 9 registres)

http://www.keil.com/support/man/docs/ar ... 153200.htm
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude Ti64CLi++ » 28 Jan 2018, 18:14

Ok, je regarde, merci :)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude grosged » 28 Jan 2018, 18:17

j'ai quand même uploadé ce qu'il me reste (c'est-à-dire l'exécutable)

archives_voir.php?id=1349057
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: [ARM926EJ-S] Routine pour le scrolling

Message non lude Ti64CLi++ » 28 Jan 2018, 18:18

Ok, je regarde, merci ;)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi


Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1264 utilisateurs:
>1211 invités
>48 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)