★ APPLICATIONS ★ DIVERS ★ RSX EN VRAC - MESSOFF , MESSON & GETCHAIN ★ |
RSX en vrac - MESSOFF , MESSON & GETCHAIN | Applications Divers |
Je vous propose aujourd'hui, trois RSX —|MESSOFF & |MESSON —|GETCHAIN Les deux premiers concernent surtout les utilisateurs de CPC 464 + drive, le troisième concerne l'ensemble des utilisateurs. Les possesseurs de 464 taperont le chargeur machine n° 3 tandis que les autres taperont le n° 2. Les amateurs de langage machine pourront reloger la routine grâce au listing n° 1 écrit en assembleur sous GENA (DEVPAC).N.B. : le listing n° 2 ne contient que le RSX :GETCHAIN, alors que le n° 3 contient les trois RSX mentionnés ci-dessus. |MESSOFF & |MESSON Le principal défaut du 464 est sans nul doute l'impossibilité d'intercepter les messages d'erreur par le BASIC. J'ai donc écrit une petite routine machine permettant d'éliminer ce défaut à travers deux RSX : IMESSOFF et IMESSON qui permettent comme leur nom l'indique de mettre les messages dise OFF et ON. Avant chaque accès au disque , on utilisera IMESSOFF puis IMESSON après la dernière instruction disque. IMPORTANT : après un iMESSOFF, certains vecteurs sont détournés en particulier le vecteur BDD9 servant à l'affichage des caractères à l'écran. N'oubliez donc pas IMESSON après les accès disques, sinon plus rien ne sortirait sur votre moniteur. Il faudra aussi veiller à la ligne de redépart pour le RESUME. En effet, un message d'erreur peut sortir à plusieurs moments. Soit au moment de l'ouverture d'un fichier, soit pendant l'écriture, la lecture ou la fermeture. Après traitement de l'erreur, un RESUME seul pourrait planter le système ou pire, faire écrire au programme des données à n'importe quel endroit du disque. C'est pourquoi il faut absolument forcer le "redépart" la première ligne concernant l'accès disque (voir demo...). Numéro d'erreur contenu dans la variable ERR après détection d'une erreur disque. — ERR est toujours supérieure à 30 — 31:Drive A/B read fail GETCHAIN (SAISIE D'UNE CHAINE) L'instruction BASIC INPUT a bien des défauts. — Le premier est certainement l'impossibilité de tester le nombre et le type de caractères entrés au clavier, le deuxième étant la possibilité pour l'utilisateur de "breaker" le programme au moment de la saisie. On peut bien sûr remplacer "INPUT" par une routine BASIC, mais le nombre de tests obligatoires ralenti considérablement la saisie. Avec |GETCHAIN, les problèmes de saisie deviennent plus simples. Syntaxe |GETCHAIN, A%, A$ Si A% = 0 saisie alphanumérique majuscule Si A% = 1 saisie numérique uniquement Si A% >= 2 saisie alphanumérique majuscule & minuscule Avant appel du RSX, A$ doit être défini sous la forme A$ = SPACE$(X):X pouvant avoir une valeur comprise entre 1 et 255. C'est cette valeur qui définit la longueur maxi de la chaîne à saisir. On sort automatiquement de la routine si cette valeur limite est atteinte. Si le premier caractère saisi est inférieur à 32, on sort de la routine, sinon ces caractères sont ignorés. J'espère que mes explications auront été claires pour tous. De toutes façons, je suis toujours à votre disposition sur mon répondeur télématique. Alors si vous avez des questions, appeliez et au bip,... CONNEXION Bonne saisie!!!
|