π
<-

[ASM83P] Zoom graphique & synchro (fluidité)

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

[ASM83P] Zoom graphique & synchro (fluidité)

Unread postby grosged » 23 Dec 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: Select all
.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)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby Ti64CLi++ » 23 Dec 2015, 16:29

Déjà tu peux remplacer par ce code:
Code: Select all
.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
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

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

Unread postby grosged » 23 Dec 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.
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby Ti64CLi++ » 23 Dec 2015, 17:04

Ah, oui, c'est vrai.
Je l'ai su mais je l'ai oublié :D
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi


Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 24 guests

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2043 utilisateurs:
>1979 invités
>58 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)