APPLICATIONSCREATION GRAPHIQUE ★ TRIMART ★

Trimart (CPC Revue)Applications Creation Graphique

Comme d'habitude, la première chose à faire est la saisie du listing (Listing n° 1). Le programme étant de longueur raisonnable, ce travail ne doit pas vous poser de gros problèmes. Signalons toutefois que les espaces (blancs) doivent être strictement respectés dans les zones de texte des menus. Le programme est écrit pour le CPC 6128, mais il peut fonctionner sur les autres CPC. Seules sont à modifier les variables du système et en ce qui concerne les routines, toute valeur signalée dans les commentaires du listing source. La simulation de ta fonction COPYCHR$ a été expliquée dans la première partie de nos articles.

La variable système à modifier est celle contenant le poids fort de l'adresse du début écran actif : remplacer &B7C6 par &B1CB.

Un autre problème est posé depuis l'apparition des claviers AZERTY. Les touches ont conservé les numéros des codes en fonction de leurs emplacements sur le clavier, mais ne représentent plus les mêmes caractères ! Ainsi toute conversation avec le programme utilisant la fonction INKEY peut être faussée. Le programme est écrit pour un clavier QWERTY. Si la réponse à une question doit être le caractère A. il faut enfoncer la touche dont le code est 69, donc sur le clavier AZERTY ia touche comportant la lettre QI Pour adapter le programme au clavier AZERTY. Il faut soit modifier les lettres des menus sans changer les codes INKEY, soit modifier les codes INKEY, sans toucher aux menus, ce qui est mieux.

Lors de la première utilisation le programme crée les caractères spéciaux utilisant les matrices du seuil, puis charge les routines. Dans le cas de l'interruption de travail sans reset ces opérations ne sont plus nécessaires et le menu principal est affiché immédiatement après RUN. Compte tenu de la création des caractères par SYMBOL AFTER et SYMBOL, la mémoire au départ doit être conforme à la configuration de l'allumage de l'ordinateur. Faites toujours, par prudence, un reset par CONTROL-SHIFT-ESC avant de charger le programme. En attendant d'avoir toutes les routines, bloquez les GOTO et les GOSUB des INKEY des routines manquantes en transformant les lignes correspondantes en commentaires. (Ajoutez un O au début de ces lignes). N'oubliez pas d'assembler la routine binaire et de la sauvegarder sur la même disquette.

Pou utiliser le programme suivez tout simplement les indications des menus. Afin de ne pas trop alourdir le listing le menu AIDE a été limité à un strict minimum. Les blocages dus à l'utilisation du disque (disque plein, fichier introuvable, etc) ou aux mauvaises commandes sont pratiquement Inexistants, grâce à l'utilisation des traitements d'erreurs. Si néanmoins, à un moment donné, vous ne savez que faire et que la machine vous semble bloquée, essayez la touche de retour au menu principal, M. Dans la plupart des cas vous pourrez reprendre le travail sans dégâts. En plus de ces précautions prises en programmation. Il en est d'autres que vous pouvez prendre vous-même :

  • utilisez une disquette ne comportant que les images à traiter;
  • procédez aux appels fréquents de la routine ZAPP (ERA,"*.BAK"). Les autres détails d'utilisation vous seront donnés en même temps que les explications des routines. Avant de lancer le programme d'application par RUN'TRIMART', ENTREE, recensons les fonctions ne nécessitant pas la présence des routines en code machine. La fonction A : aide, est bien entendu, disponible, ainsi que les deux options F, fin de travail : retour au mode direct ou reset. Le retour au mode direct conserve en mémoire les routines binaires chargées et tous les caractères spéciaux définis par le programme. Le programme lui-même est conservé aussi et vous pouvez le relancer ; vous accéderez directement au menu principal. La fin de travail définitive provoque un reset complet équivaientà l'effet de CONTROL-SHIFT-ESC.

Les autres fonctions disponibles sont L - LOAD ou lecture de l'image. S -SAVE ou sauvegarde de l'image et ZAPP BAK ou effacement des fichiers BAK.

La fonction d'activatlon des écrans 1 ou 2 est aussi disponible. Malheureusement, la disponibilité de toutes ces fonctions demande un préalable : la sauvegarde de la zone de l'écran occupée par le menu dans une zone de mémoire réservée à cet effet. Pour cette opération nous avons besoin d'une petite routine en langage machine. Tant qu'à faire nous ajouterons aussi les premières routines de traitement de l'image : transfert des écrans, inversion vidéo, affichage de ta gamme des gris et la régionalisation.

ROUTINES BINAIRES
— PREMIERE PARTIE

Le listing source "trim" est largement commenté. Toutes les routines sont clairement repérées. Les valeurs à modifier pour CPC464 sont Indiquées dans les commentaires. Nous parlerons donc de leur emploi. La première routine ne nécessite pas votre intervention. Elle est utilisée par le programme d'application pour afficher la gamme des gris. La deuxième routine appelée par le programme d'application sans votre intervention est la routine de conservation de la zone des menus. Elle marche dans les deux sens : sauvegarde ou affichage, en fonction de l'état de l'écran.

La routine de l'inversion des couleurs de l'encre et du papier est appelée sur votre demande expresse à partir du menu principal. Cette demande est commandée par les flèches de déplacement du curseur :

  • à gauche - vidéo normale .
  • à droite - vidéo inverse.

Le programme ne connaît que la notion nominative de l'état de l'écran, mais ne sait pas si cela correspond à la notion intrinsèque du normal ou de l'Inverse. C'est donc l'état de l'écran au moment du chargement de l'image qui fixe la relation entre la notion logique et ia notion physique, ce qui permet de modifier l'état d'origine. Pour mieux comprendre observez les figures n° 1 et n°2. La première chargée au moment où l'état de l'écran est normal sera considérée comme normale et la deuxième, après l'Inversion sera considérée comme inverse, mais si l'état de l'écran au moment du chargement était inversé, c'est la première image qui serait considérée comme inverse et la seconde comme normale. L'état de l'écran est signalé par l'affichage normal ou inversé dans le menu principal. La routine est quasi instantanée. La routine de transfert appelée à partir du menu principal par la touche "T" comporte trois options :

  • copie du contenu de l'écran 1 dans l'écran 2 ;
  • copie du con tenu de l'écran 2 dans l'écran 1 ;
  • échange des contenus des deux écrans.

Ces trois routines purement utilitaires. sont Indispensables pour le bon fonctionnement des routines de traitement des images.

Nous abordons maintenant la première routine de traitement de l'image à proprement parler. C'est la routine de régionalisation appelée à partir du menu principal par la touche "R". La routine agit en deux temps. En premier Heu le sous-menu propose deux options :

  • traitement de la totalité de l'écran : touche T ;
  • traitement limité à une fenêtre : touche "C".

Si vous choisissez la première option le programme appelle directement la première partie de la routine qui effectue une segmentation en régions homogènes de ta taille d'un caractère de texte. Pou cela la routine compte les points de couleur de l'encre à l'emplacement d'un caractère et affiche à cet endroit un caractère-niveau de gris en fonction du total obtenu. Si, par contre, vous choisissez de continuer (touche "C"), la totalité de l'image apparaît avec une petite fenêtre au centre. Cette fenêtre peut être déplacée lentement ou rapidement et sa taille peut être modifiée. Avant de choisir l'option, assimilez bien l'utilisation des touches indiquées par le sous-menu. De toute façon seules sont à utiliser les flèches du curseur. SHIFT et CONTROL. Toutes les combinaisons de simultanéité sont possibles et vous serez rapidement familiarisé. Après la définition de la fenêtre il suffit d'appuyer sur la touche COPY, qui en règle générale signifie la confirmation. La régionalisation sera maintenant effectuée et limitée à la fenêtre choisie. La figure n° 3 montre le cas de régionalisation de la fenêtre contenant le cosmonaute seul. Quelle que soit l'option, après la régionalisation en caractères de texte il apparaît un nouveau sous-menu, permettant de cesser la segmentation et de revenir au menu principal (touche "M") ou de continuer par la segmentation en carrés parfaits (touche "C"). La routine fera la moyenne des caractères adjacents de la même ligne, deux par deux et affichera deux fois le caractère résultant. En mode 2, ceci donnera les carrés parfaits, comme c'est le cas sur la figure n° 4. Dans le cas d'une figure Irrégulière ! faut procéder par plusieurs petites fenêtres, successivement, afin de limiter la régionalisation et éviter de toucher les parties de l'Image que vous souhaitez lasser en clair. L'image est, en dehors des périodes de traitement, cachée par le menu. Pour la voir en totalité il faut utiliser la fonction "I". Image, en respectant les Indications du sous-menu : "C. pour voir l'Image et par la suite "M" pour revenir au menu principal. En attendant la suite de nos routines, examinez la figure n° 5 et devinez qui se cache derrière les petits carrés de l'image traitée en totalité.

CPC n° 37

★ EDITEUR: CPC Revue
★ ANNÉE: 1988
★ CONFIG: 64K + AMSDOS + ROM BASIC 1.1
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: D. VASILJEVIC
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» TrimART    FRENCHDATE: 2013-07-21
DL: 218
TYPE: ZIP
SiZE: 18Ko
NOTE: Basic 1.1/40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Minimag (Computing With the Amstrad)
» Applications » Colorys
» Applications » Crayon Optique Examples (Amstrad Magazine)
» Applications » Mike Cook's Dragon (Computing with the Amstrad)
» Applications » Advanced OCP Art Studio 256ko (NWC patched)
» Applications » Des graphiques réutilisables
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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
Page créée en 802 millisecondes et consultée 1595 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.