Il s'agit d'un utilitaire permettant d'accélérer la vitesse d'affichage des messages à l'écran. L'affichage sur Amstrad est en effet un peu lent, ceci étant dû en grande partie à la gestion des fenêtres texte. Aussi, ai-je réécrit une routine d'affichage beaucoup plus rapide.Le programme a élé écrit en assembleur. La routine d'affichage peut être utilisée soit dans des programmes en assembleur, soit en BASIC. On exemple : pour afficher 20 fois le mot "BONJOUR" en BASIC (donc avec la routine d'affichage de la ROMJ, il faut 0,3 seconde. Avec ma routine, il ne faut plus que 0,12 seconde. On comprendra donc aisément l'intérêt d'une telle possibilité dans des programmes qui affichent en permanence des données à l'écran. L'activation de la nouvelle routine est obtenue grâce à deux nouvelles commandes RSX. L'utilisation est quant à elle complètement automatique. Le programme est censé n'être utilisé qu'en mode 2 ; ce mode n'autorise, en effet, que 2 couleurs. Il n'y a donc pas de test e couleur de crayon comme pour le mode 0 ou 1 ; c'est là une des explications de la rapidité d'exécution. D autre part, il ne îaut pas que l'écran ait roulé" : c'est-à-dire qu'il y ait eu écriture sur la 26e ligne. Une fois le programme machine chargé en mémoire à l'adresse 41000, l'activation des nouvelles commandes RSX se fait simplement par un CALL 41000. Deux nouvelles RSX sont alors créées. RAPID : qui permet un affichage rapide. Tout ce qui apparaîtra à l'écran sera affiché en mode rapide, sauf les commandes tapées au clavier, les définitions de fenêtres sont quant à elles ignorées. Par exemple, si on fait PRINT "BONJOUR", le mot "BONJOUR" sera affiché en mode rapide. Le catalogue d'une disquette est lui aussi affiché sous ce moae. Pour utiliser la commande RAPID, il faut être sous mode 2. NORM : permet le retour à un affichage normal. PRINCIPE GENERAL DE FONCTIONNEMENT DE LA ROUTINE Lorsque la commande RAPID est exécutée, elle détourne le vecteur d'affichage (» BB5A) vers la nouvelle routine. A ce moment, tout caractère destiné à #BB5A (contenu dans l'accumulateur) sera utilisé par la routine. Le programme distingue : - les caractères de contrôle (codes ASCII <32), sauf CR (ASCII 13) et LF (ASCII 10). Si un tel caractère est rencontré, alors il est affiché par la routine de la ROM. Exemple : si l'on fait un PRINT CHR$(7) et que l'on se trouve en mode rapide, alors on entendra bien un bip et non le caractère n° 7 qui s'affichera. Seuls les caractères 10 et 13 sont traités par la routine cor ceux-ci reviennent assez souvent : une chaîne de caractères se termine en effet avec ces deux caractères ; ils sont donc traités par la nouvelle routine afin d'optimiser encore plus la vitesse.
- les autres caractères (code ASCII > 31). Dans ce cas, la routine comporte en entrée le code ASCII du caractère à afficher dans l'accumulateur. On calcule ensuite l'adresse en ROM de la définition du caractère à partir de son code ASCII. Le programme recherche ensuite tes coordonnées X et Y du curseur, calcule l'adresse en mémoire vidéo correspondant à cette position et affiche te caractère à cette adresse. La routine augmente ensuite la position du curseur d'une position avec vérification et contrôle d'arrivée en fin de ligne. D'autre part, comme la configuration des adresses écran change lorsque l'on écrit sur la 26' ligne, un test est effectué pour savoir si l'on écrit sur cette ligne. Si oui, alors la routine émet un bip invitant à taper sur une touche pour pouvoir continuer l'écriture, mais après avoir effacé l'écran. Je terminerai par un simple test d'exemple:
FOR I= 1 TO 100:PRINT "REVUE DES CPC";:NEXT En affichage normal, le programme s'exécute en 2.46 secondes. Avec la nouvelle routine rapide, il ne met que 0.6 seconde !
CPC n°36 ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 219 millisecondes et consultée 1607 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|
|