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!

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)