La Place des Développeurs Routine COPY en ASM
ericb59
Membre non connecté
Conseiller Municipal
Reprise du message précédent
En marge du copy que je cherche à rendre plus rapide, je cherche aussi à accélérer l'accès à toutes mes données graphiques.Je viens de faire une jolie découverte qui pourra intéresser l'ami Igal avec son "moteur à brides"
Une image de 54Ko met 47 cycles à se charger et s'afficher à l'écran avec un BLOAD ,S.
Nestor Basic possède des fonctions qui permettent de lire/Ecrire directement sur les secteurs d'un disque.
En ayant préalablement sauvegardé mon image de 54Ko directement dans les secteurs de la carte SD,
J'arrive maintenant à lire et afficher l'image en 18 Cycles seulement !
Soit un gain de 29 cycles (Près d'une demi seconde tout de même) Edité par ericb59 Le 08/01/2016 à 10h12
ericb59 :
@Z80 Je viens de tester mes routines actuelles en ayant préalablement coupé l'affichage par un VDP(1)=VDP(1)AND191.... Les temps sont exactement les même qu'en gardant l'affichage actif.
Ce que tu gagnes avec la méthode z80, tu dois le perdre avec le temps de l'interprétation de "VDP(1)=VDP(1)AND191.... ". Edité par GDX Le 08/01/2016 à 10h09
igal
Membre non connecté
Conseiller Municipal
Effectivement, cela peut être très intéressant surtout pour msx2 et 2+
Je travaille chaque jour sur le moteur pour permettre de Scroller à droite comme à gauche à volonté
Jipe l'avait dit et je me rend compte comme c'est compliqué mais je pense avoir trouvé la solution.
Autre point intéressant si le moteur évolue Côme je le souhaite, ce dernier aura la particularité de lier "espace et le temps"
Je travaille chaque jour sur le moteur pour permettre de Scroller à droite comme à gauche à volonté
Jipe l'avait dit et je me rend compte comme c'est compliqué mais je pense avoir trouvé la solution.
Autre point intéressant si le moteur évolue Côme je le souhaite, ce dernier aura la particularité de lier "espace et le temps"
ericb59
Membre non connecté
Conseiller Municipal
Finalement j'ai gagné 35% de temps sur mes Copy
Au lieu de faire un COPY "File.xx" to (xx,yy),0
Je charge les données dans la VRAM directement depuis les secteurs du disque, puis je fais un COPy (x1,y1)-(x2,y2),1 to (xx,yy)
C'est plus rapide que de charger directement depuis le disque !! Edité par ericb59 Le 08/01/2016 à 15h48
Au lieu de faire un COPY "File.xx" to (xx,yy),0
Je charge les données dans la VRAM directement depuis les secteurs du disque, puis je fais un COPy (x1,y1)-(x2,y2),1 to (xx,yy)
C'est plus rapide que de charger directement depuis le disque !! Edité par ericb59 Le 08/01/2016 à 15h48
ericb59
Membre non connecté
Conseiller Municipal
Jipe :
oui mais ton programme va t'il être portable sur d'autre support que le tien ?
Citation :
Je charge les données dans la VRAM directement depuis les secteurs du disque
oui mais ton programme va t'il être portable sur d'autre support que le tien ?
y a pas de raison, j'utilise des fonctions standard. La partition doit faire 32Mo c'est tout...
ericb59
Membre non connecté
Conseiller Municipal
GDX :
Ce que tu gagnes avec la méthode z80, tu dois le perdre avec le temps de l'interprétation de "VDP(1)=VDP(1)AND191.... ".
ericb59 :
@Z80 Je viens de tester mes routines actuelles en ayant préalablement coupé l'affichage par un VDP(1)=VDP(1)AND191.... Les temps sont exactement les même qu'en gardant l'affichage actif.
Ce que tu gagnes avec la méthode z80, tu dois le perdre avec le temps de l'interprétation de "VDP(1)=VDP(1)AND191.... ".
Pour moi l'idée c'était de faire de l'assembleur pas du basic
TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours)
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,...
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie