★ CODING ★ BUG ★ BASIC★ $ ★ |
664 Vous avez dit « compatibles » ? (MICROSTRAD) |
Ce qu'il faut savoir pour adapter, au CPC 464, des proqrammes écrits sur CPC 664. La compatibilité entre les deux premiers modèles de CPC - 464 et 664 - est toute relative, tant pour les applications pointues (ne serait-ce qu'à cause d'une limite mémoire, himem, fixée à &A67B sur le 664 et à &AB7F sur le 464), que pour les programmes Basic, puisque le vocabulaire du 664 est un peu plus étendu que celui de son petit frère. Pour vous aider à adapter, sur votre 464, des programmes écrits pour le 664, nous allons passer en revue les mots clés spécifiques du Basic 664. Nous tairons les commandes destinées aux disquettes, puisque ce périphérique n'est pas commun aux deux machines. De plus, cette exploration sera l'occasion d'apporter un correctif aux oublis du manuel du 464 ( car il y en a ! ). — CLEAR INPUT : vide le buffer clavier de son contenu. Sur le 464, un effet semblable s'obtient avec CALL &BB03, ce qui a l'inconvénient de détruire les key def existants. Nul n'est parfait ! — COPYCHR$ : recopie un caractère pris sur l'écran sur un autre canal. On peut essayer d'imiter cette fonction en jonglant avec des fenêtres et des win-dowswap. Solution bien compliquée... — CURSOR$ : force l'allumage et l'extinction du curseur texte, chr$ (2) et chr$ (3) sont des codes de contrôle qui peuvent, dans une certaine mesure, avoir un effet analogue. Par exemple, pour faire disparaître le curseur lors d'un input, vous pouvez essayer : 10 print chr$ (2);: input a. Cette commande étant destinée à améliorer la présentation sur l'écran, vous pourrez tout simplement l'ignorer. — DEC$ : sert au formatage d'expressions numériques. Cette même fonction existe sur le 464, bien qu'elle ne figure pas dans le manuel. La raison de cette absence est une bogue dans sa syntaxe. Pour la faire fonctionner, il suffira de mettre deux parenthèses ouvrantes et une fermante. Exemple : print — DERR : c'est une fonction disquette, n'en parlons pas... — DRAW, DRAWR, MOVE, MOVER, PLOT, PLOTR : acceptent un paramètre supplémentaire pour le mode d'encre. Sur le 464, vous pouvez faire précéder la commande graphique d'un print CHR$ (30); CHR$ (23) ; CHR$ (X)... formule dans laquelle vous remplacerez le x par le paramètre supplémentaire (qui peut varier entre 0 et 3). — FILL : commande de remplissage de zone sur l'écran. Difficile à imiter en Basic, pour cause de — FRAME : améliore la représentation des graphismes mobiles. Aucun problème sur le 464 : vous remplacerez cette commande par call &bd19. — GRAPHICS PAPER : définit une couleur de fond pour la fenêtre graphique. Difficile à imiter : le plus expéditif sera de délimiter une fenêtre texte de même taille que la fenêtre graphique, puis d'utiliser paper pour colorier cette zone. — GRAPHICS PEN : détermine la couleur des tracés graphiques, en même temps que le mode de fond (transparent ou opaque). Un print CHR$(30); chr$ (22) ; chr$ (X), dans lequel x sera remplacé par 0 - opaque - ou 1 - transparent -, peut éventuelle ment faire l'affaire. C'est quand même moins convaincant. — MASK : sert à tracer des lignes graphiques en pointillés selon un format choisi. Solution expéditive pour le 464 ; ne tenez pas compte de cette commande, vous aurez des lignes continues... — MOD : opérateur arithmétique qui rend le reste de la division entière de ses deux arguments. Par exemple print 10 mod 3 rend 1 pour résultat. Aucun problème sur le 464 : cette fonction existe aussi, bien que le manuel n'en parle pas. Oubli regrettable! — ON BREAK CONT : sert à neutraliser la touche ESC. Vous remplacerez cette commande par ON break gosub xxx ; en plaçant en ligne xxx un simple RETURN. Comme vous pouvez le voir, les solutions de remplacement ne sont pas toujours évidentes à mettre en œuvre, quand elles existent ... La preuve, ce petit programme imitateur de fill, qui a quelques inconvénients. Vous pourrez le compléter pour éliminer les trous qu'il lui arrive de laisser dans certains cas de figure. Sans compter qu'il est rapide... comme un escargot !
|