APPLICATIONSDIVERS ★ LE CERCLE EN RSX ★

Cercle (Microstrad)Applications Divers

Une nouvelle commande graphique pour votre CPC ; l'occasion d'utiliser quelques routines arithmétiques du système.

La cruelle absence de commande graphique destinée au tracé des cercles et ellipses se fait souvent sentir. Microstrad se devait donc de combler cette lacune... Mais pour faire preuve d'originalité, nous avons concocté un RSX très spécial, qui utilise les routines arithmétiques du Basic Locomotive. Nous obtenons donc une routine didactique mais assez performante, qui vous montrera - si vous voulez vous pencher un peu sur elle - l'art d'utiliser ce que votre CPC met à votre disposition.

La liste n° 1 est celle d'un programme Basic qui a servi de base à l'élaboration de notre RSX. Elle permet de tracer assez rapidement un cercle ou une ellipse, et utilise les fonctions trigonomé-triques classiques en pareille circonstance. Pour limiter le nombre de calculs trigo (qui sont grands consommateurs de temps), et accélérer le tracé, nous dessinons la courbe par quarts, et nous utilisons un pas angulaire de 10 degrés. Du même coup, le nombre de calculs se limite à 9 : de 80 à 0 degrés! Le programme est relativement long, mais le tracé du cercle devient beaucoup plus rapide, et plus harmonieux à regarder.

La liste n° 2 (page de droite) est la liste source du RSX, rédigée avec notre petit Assembleur favori. Cette liste est là pour vous aider à comprendre le fonctionnement du RSX. Rappelons une fois encore que le langage utilisé ici n'est pas du Basic et que la frappe de ce programme n'est possible que si vous utilisez un logiciel d'assemblage.

Cette liste est une version pour CPC 6128. Cinq routines arithmétiques système y sont utilisées (voir lignes 8 à 12), dont les points d'entrée sont différents sur les trois modèles de CPC. Si vous utilisez un Assembleur, modifiez seulement ces cinq lignes en vous aidant du tableau de conversions des routines arithmétiques que vous trouverez dans ce numéro, page 48.
La liste n° 3 est un chargeur Basic de la routine RSX, pour CPC 6128. Pour l'adapter à un autre modèle, prenez de préférence un Assembleur, et utilisez la liste n° 2 comme indiqué précédemment. Si vous ne possédez pas d'Assembleur, vous aurez un petit travail à faire à la main, en utilisant d'abord la liste n° 2.

Imaginons que vous souhaitiez adapter la routine cercle à votre CPC 464. Le processus à suivre sera le suivant :

1 - Repérez dans le tableau de conversions les adresses des points d'entrée des cinq routines utilisées (entflo, floent,..., cosinu). Par exemple, entflo correspond à BD64 sur le CPC 6128, donc à BD40sur le CPC 464.
2 - Retrouvez dans la liste source n° 2 tous les appels à ces cinq routines. Par exemple, entflo apparaît pour la première fois en ligne 33. Il y a neuf lignes à trouver : 33, 44, 72, 79, 81, 82, 96, 98 et 99.
3 - Modifiez sur chacune de ces lignes les octets de la colonne 3. En ligne 33, vous remplacerez CD64BD par CD40BD. Respectez l'inversion de l'écriture : BD40 s'écrit 40BD...
4 - Il ne reste plus qu'à retrouver dans le chargeur Basic (liste n° 3) les octets que vous avez changés et à les modifier de la même façon. C'est par exemple en ligne 310 que se trouvent les cd,64,bd, que vous remplacerez comme nous l'avons vu par CD,40,bd.
5 - Supprimez, dans la liste du chargeur Basic, les lignes 150 et 170. Supprimez aussi les lignes 340, 460, 580, 700, 820 et 880, car elles contiendraient des valeurs fausses. Sauvegardez votre programme et seulement ensuite essayez-le. Si vous ne faites aucune erreur dans ce travail, le fonctionnement est assuré. Dans le cas contraire, vous aurez sans doute droit à un « plantage ». Vérifiez alors toutes vos modifications.

Lorsque votre routine aura fait la preuve de son bon fonctionnement, vous pourrez sauvegarder la zone mémoire qui la contient en tapant :

SAVE “cercle”,b,&A000,&189

... Ce qui vous permettra de la recharger rapidement et à tout moment en tapant :

MEMORY &9FFF:LOAD “CERCLE”,&A000:CALL &A000.

Pour utiliser la routine, vous pouvez lui transmettre un paramètre pour obtenir un cercle, ou
deux paramètres pour une ellipse. Par exemple : |CERCLE,100 dessinera un cercle de cent points de rayon ; |CERCLE,100,50 dessinera une ellipse de cent points de rayon horizontal et de cinquante points de rayon vertical.

N'oubliez pas, auparavant, de vous placer en mode degrés (avec l'instruction deg), faute de quoi les cercles obtenus auraient un aspect inattendu, bien qu'esthétique !

MICROSTRAD n°5

★ EDITEUR: MICROSTRAD
★ ANNÉE: 1986
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: JEAN-PIERRE LALEVEE

 

★ AMSTRAD CPC ★ DOWNLOAD ★

Aucun fichier de disponible:
» Vous avez des fichiers que nous ne possédons pas concernent cette page ?
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » RSX SymbolXXL
» Applications » RSX - Copy and Restore Screen (Amstrad Action)
» Applications » Les Minis Caractères en Folie
» Applications » Instant Access
» Applications » SOS RSX
» Applications » Rsx - Rolling Characters (Popular Computing Weekly)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 211 millisecondes et consultée 1667 fois

L'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.