| ★ APPLICATIONS ★ PROGRAMMATION ★ ANALYSE: AIDE A L'ANALYSE DE PROGRAMME BASIC (CPC REVUE) ★ |
| ANALYSE: AIDE A L'ANALYSE DE PROGRAMME BASIC (CPC REVUE) | ADDITIF AU PROGRAMME ANALYSE (CPC Revue n°13) |
Un lecteur a signalé un fonctionnement étrange du programme ANALYSE (CPC n° 10, page 32) dans la fonction “Sous-programmes”. La recherche s'effectue normalement sauf dans un cas très particulier : si la dernière lettre du nom d'une variable à l'intérieur du sous-programme est un "I” majuscule !Cette possibilité ne m'était pas venue à l'esprit lors de la conception du programme, mais l'explication est très simple : lorsqu'ANALYSE a trouvé un sous-programme, il part à la recherche des ordres RETURN qui le concernent. Cette instruction est codée par le TOKEN 201 (utilisez la fonction "scanner" pour le vérifier... ). Or il se trouve que la dernière lettre du nom d'une variable est codée en mémoire par son code ASCII, augmenté de 128 (pour signaler à l'ordinateur la fin du nom de la variable). Normalement, pas de problème, sauf pour I : ASC ("I") + 128 = 201... D'où la confusion du programme qui trouve un RETURN là où il n'y en a pas ! Le remède est simple : il suffit d'ajouter à ANALYSE un petit sous-programme qui va vérifier si le code trouvé se rapporte bien à une instruction. Il convient donc d'ajouter la ligne 64683 et les lignes 65130 à 65155. Un problème analogue peut également se poser lors de l'exécution de la ligne 64660 (recherche et impression du nom d'un sous-programme) si la dernière lettre du nom d'une variable se trouvant sur la première ligne d'un sous-programme est un "E" majuscule. ANALYSE confond alors le code de l'instruction REM (197) avec ASC("E") + 128. Il peut alors se passer des choses très bizarres sur l'écran... Il faut donc remplacer la ligne 64660 par les lignes 64657 à 64663 qui font appel au même sous-programme de vérification. Avec mes humbles excuses... CPC |
| ![]() |
|