Le flipping d'écran ZX est quand même très intéressant. Sur TO8 on peut le faire sans problème à moindre cout avec le gate-array d'affichage, mais ce n'est pas forcément utile car la palette est déjà riche. Par contre sur TO7 ca serait cool des couleurs supplémentaires.
Petit calcul: combien de temps faut-il au 6809 pour copier 16000 octets? Typiquement on aura une boucle déroulée constituée de
Code:
PULS D,X,Y,DP
PSHU D,X,Y,DP
LEAU 14,U
soit 7 octets copiés en 2*(5+7)+5=29 cycles, soit 241k/sec. 16000 octets à copier se font alors en 66ms au mieux, soit 3 balayage d'écran. Pfff c'est lent
Pour pouvoir travailler en moins de 20ms et faire la compétition avec le canon à electron, il fait réduire par 3 la surface à recopier. Cela revient à travailler sur 57% d'un écran complet, soit 184x115.
Vérification: 184x115 occupent 5290 octets forme+fond. A 7 octets en 29cycles, ca donne 21.9ms. Ca colle. Mais il faurai affiner le calcul car 184/8 n'est pas un multiple de 7.
En fait 184/8 = 3*7 + 2, il faut donc faire
Code:
PULS D,X,Y,DP
PSHU D,X,Y,DP
LEAU 14,U
PULS D,X,Y,DP
PSHU D,X,Y,DP
LEAU 14,U
PULS D,X,Y,DP
PSHU D,X,Y,DP
LEAU 12,U
LDD ,S ; 5
STD ,U ; 5
LEAU 21,U
LEAS 19,S
pour copier une ligne. Si je compte bien ca fait 3*29 + 20=107 cycles à répéter 115 fois = 12ms pour l'écran forme. On voit que ca ne va pas. A cause de l'écran fond il faurait que ce soit moins de 10ms.
Le mieux est sans doute de virer les LDD/STD et donc travailler en 168x103 car alors la copie prend (3*29+10)x103=9.9ms, soit 19.9ms pour RAMA + RAMB. On tient la VBL!
Maintenant 168x103 c'est quand même un vachement petit écran. Enfin l'analyse méritait d'être faite je pense pour fixer les limites du flipping sur TO7.