APPLICATIONSCREATION GRAPHIQUE ★ CHERRY-PAINT (CPC REVUE N°10 -> 15) ★

CHERRY PAINT (CPC Revue n°10)CHERRY PAINT (CPC Revue n°11)CHERRY PAINT (CPC Revue n°12)CHERRY PAINT (CPC Revue n°13)CHERRY PAINT (CPC Revue n°15)
Très chers lecteurs, il m'appartient de vous annoncer une bien triste nouvelle : vous allez assister aujourd'hui au dernier épisode de Cherry-Paint.

En fait, nous sommes obligés d'arrêter Cherry-Paint pour une stupide histoire d'espace mémoire. Faisons les comptes. Jusqu'à présent sont utilisés :

16 K pour la mémoire d'écran,
16 K pour l'image complète,
10 K pour les tables de formes et les pinceaux,
2 K réservés pour le système du CPC,
10 K de programme proprement dit,
9 K pour le stockage temporaire du couper-coller et des menus déroulants.

Il devrait, par conséquent, nous rester 1 K. En fait, il reste en tout et pour tout 600 octets de disponible !

Le seul moyen d'économiser de la mémoire aurait été de compresser la table des formes. Je m'explique : vous vous souvenez sans doute que chaque forme est composée de huit représentations, décalée chacune de 1 bit par rapport à la précédente. Ces huit représentations sont nécessaires uniquement pour la forme actuellement affichée à l'écran ; pour les autres formes une seule représentation suffit, et il faut alors faire les 8 décalages à chaque changement de

la forme affichée. Cette compression permet de réduire la taille de la table de formes à 8 K. C'est cette méthode qui a été employée sur la version commerciale de Cherry-Paint.

Nous allons voir maintenant un accessoire qui tout en étant indispensable, n'est pas trop gourmand en espace mémoire (520 octets : c'était juste !). J'ai nommé le catalogue du disque : il n'y a en effet rien de plus ennyeux que de ne pas pouvoir connaître le contenu de ses disquettes. Le catalogue se trouve bien entendu dans le menu déroulant "FICHIER" qui a été modifié pour la circonstance.

Il faut, comme d'habitude, cliquer sur "FICHIER" et relâcher la barre d'espacement lorsque Catalogue est en vidéo inverse (figure 1 ). Le disque se met alors à tourner pendant quelques instants puis apparaît une fenêtre contenant tous les noms des images crées par Cherry-Paint contenues sur le disque (figure 2). Lorsque l'on clique à l'intérieur de la fenêtre pour la déplacer, l'accès au disque est renouvelé : c'est un moyen commode de faire des catalogues en chaîne sans repasser chaque fois par le menu déroulant. Le programme détecte bien entendu toutes les erreurs (absence de la disquette, disquette non formatée, etc.). Voyons maintenant le côté technique du programme : pour voir le nom des images contenues par un disque, il suffit de faire IDIR,"*.C-P" en Basic, C-P étant l'extension obligatoire de toutes les images Cherry-Paint. Pour effectuer la même opération en Assembleur, il faut faire :

DIR: DEFB "D","I","R" + # 80
VAR: DEFW DES
DES: DEFB 5
DEFW NOM
NOM: DEFM "*.C-P"
LD HL,DIR
CALL #BCD4
LD A, 1
LD IX,VAR
CALL #1B

L'appel de la routine en #BCD4 recherche dans toutes les ROM connectées le RSX (Resident System Extension) dont le nom est pointé par HL, le dernier caractère du nom doit avoir le bit 7 à 1. En sortie, HL contient l'adresse de la routine correspondant au nom, et C le numéro de la ROM où elle se trouve. HL et C sont directement utilisables par la routine en #1B qui fait l'équivalent d'un CALL (HL) dans la ROM C.

Avant de faire CALL #1B, il faut encore préciser le nombre de paramètres (dans A) et l'adresse de la table de paramètres (dans IX). Dans notre cas, la table de paramètres (VAR) ne comporte qu'un élément (DES) qui est le descripteur d'une chaîne de caractères. Le premier octet du descripteur contient le nombre de caractères (5), les deux suivants, l'adresse de la chaîne de caractères proprement dite (*.C-P).

Vous remarquerez sur la figure 2 que le formatage des noms est différent du formatage standard des noms obtenu avec |DIR. Cette routine étant écrite en ROM, il n'est, par conséquent, pas possible de la modifier. La seule solution pour afficher un catalogue personnalisé est, dans ce cas, de détourner la routine d'affichage d'un caractère en #BB5A lors du catalogue, de manière à placer chaque caractère, normalement affiché à l'écran, dans un buffer qu'il est ensuite facile de manipula à sa guise. Il ne faut pas oublier ensuite de restaurer la valeur initiale du vecteur en #BB5A sous peine d'afficher tous les caractères suivants... dans le buffer.

Pour introduire le code machine, il faut modifier le chargeur hexa du mois dernier (lignes 150, 160, 330 du listing 2), le sauver puis le lancer, les octets du listing 1 doivent alors être tapés 8 par 8, suivis chaque fois d'une somme de contrôle. En cas d'erreur la ligne fautive devra être reprise. Après la saisie, il faudra modifier également le programme lanceur du mois dernier (listing 3) et ne pas oublier de le sauver avant de le lancer.

Au-revoir, et peut-être à bientôt...

CPC

★ PUBLISHERS: CPC Revue
★ ANNÉE: 1986
★ CONFIG: AMSDOS + 64K
★ LANGAGE:
★ LiCENCE: LISTING
★ COLLECTIONS: CPC REVUE 1986 , CPC REVUE 1986 , CPC REVUE 1986 , CPC REVUE 1986 , CPC REVUE 1986
★ AUTHOR: Pascal HIGELIN
    


★ 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 » Paint Pot
» Applications » Amspaint
» Applications » RSX Magic Paint (Amstrad Action)
» Applications » M.O.S Painter
» Applications » 3D Mini-Painter (CPC Amstrad International)
» Applications » Paintmax II
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.732-desktop/c
Page créée en 052 millisecondes et consultée 2256 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.