π
<-

[ASM83P] Zoom graphique & synchro (fluidité)

Assembleur, Axe, C/C++, ICE...

[ASM83P] Zoom graphique & synchro (fluidité)

Message non lude grosged » 23 Déc 2015, 11:17

Pour me remettre dans le bain!, je viens d'écrire un programme ASM qui fait un zoom graphique (x2)
Oh Il est surement optimisable (je pense notamment aux rr (hl) sra (hl) qui prendraient moins de temps si l'on optait pour un registre au lieu du travail dans (hl) ) ,mais rien que le fait de lancer un 1er programme qui marche, je suis content! :D

GFXZOOM.ASM (assemblé et compilé avec SPASM)
Code: Tout sélectionner
.nolist
#include    "ti83plus.inc"
.list
.org userMem-2
.db t2ByteTok,tAsmCmp

    ld a,32
    ld hl,plotSScreen+195
    ld de,plotSScreen
    ld b,0
boucle:
    ld c,6
    ldir
    ld c,6
    add hl,bc
    dec a
    or a             ;                     après relecture, je remarque qu'i l n'est pas nécessaire !
    jr nz,boucle
    ld bc,plotSScreen+191
    ld hl,plotSScreen+767
    ld de,plotSScreen+755
    ld a,32
dep:
    push af
    ld a,6
cont:
    push af
    ld a,(bc)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    ldd
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    inc bc
    ldd
    pop af
    dec a
    jr nz,cont
    push bc
    ld bc,-24
    add hl,bc
    ex de,hl
    pop bc
    pop af
    dec a
    jr nz,dep
    bcall(_GrBufCpy)
    ret

archives_voir.php?id=393640 (ASM compilé)

Par contre, j'aimerais savoir comment on pourrait rendre le résultat plus fluide si, par exemple, je veux faire boucler.
Y-a-t-il un moyen de synchroniser avec l'affichage LCD ? Si oui, comment ? En lisant un port ? (c'était comme ça avec l'Amstrad CPC)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [ASM83P] Zoom graphique & synchro (fluidité)

Message non lude Ti64CLi++ » 23 Déc 2015, 16:29

Déjà tu peux remplacer par ce code:
Code: Tout sélectionner
.nolist
#include    "ti83plus.inc"
.list
.org userMem-2
.db t2ByteTok,tAsmCmp

    ld a,32
    ld hl,plotSScreen+195
    ld de,plotSScreen
    ld b,0
boucle:
    ld c,6
    ldir
    add hl,bc
    dec a
    jr nz,boucle
    ld bc,plotSScreen+191
    ld hl,plotSScreen+767
    ld de,plotSScreen+755
    ld a,32
dep:
    push af
    ld a,6
cont:
    push af
    ld a,(bc)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    ldd
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    rra
    rr (hl)
    sra (hl)
    inc bc
    ldd
    pop af
    dec a
    jr nz,cont
    push bc
    ld bc,-24
    add hl,bc
    ex de,hl
    pop bc
    pop af
    dec a
    jr nz,dep
    bcall(_GrBufCpy)
    ret

Après, je ne suis pas très bon en ASM
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.5%
 
Messages: 3446
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [ASM83P] Zoom graphique & synchro (fluidité)

Message non lude grosged » 23 Déc 2015, 17:00

Oui, le "or a" en ligne 17 était futile
Par contre, on ne peut pas se passer de remettre la valeur 6 dans le registre C (ligne 14)
car après un ldir, le registre bc est à zéro.
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [ASM83P] Zoom graphique & synchro (fluidité)

Message non lude Ti64CLi++ » 23 Déc 2015, 17:04

Ah, oui, c'est vrai.
Je l'ai su mais je l'ai oublié :D
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.5%
 
Messages: 3446
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 Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 9 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
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.
2055 utilisateurs:
>2023 invités
>26 membres
>6 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
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)