APPLICATIONSPROGRAMMATION ★ TOKEXT (CPC REVUE) ★

Tokext (CPC Revue)Applications Programmation
Cette routine ("TOKEXT" – TOKen EXTerne), ressemblant de très près à l'extension (RSX), a la particularité de ne pas utiliser la barre verticale (SHIFTa>) placée devant

la commande, d'être beaucoup plus simple à mettre en œuvre, et de donner à l'utilisateur la possibilité de baptiser, à sa guise, les différents programmes en mémoire afin de faciliter leur appel.

Ceux qui fréquemment oscillent entre l'utilisation du Basic et un ou plusieurs utilitaires en langage machine, apprécieront les possibilités offertes par "TOKEXT". Prenons un exemple. Résident en mémoire, l'Assembleur ZEN, baptisé "ASS" et un Hard Copy quelconque sous le nom de "COPY". La routine "TOKEXT" est configurée (à titre d'exemple) de façon à reconnaître une commande "ASS" ou "COPY".

A vous, selon vos besoins, de l'adapter différemment. Cette adaptation entraîne une modification au niveau des comparaisons, entre la commande tapée, et celles programmées. Les adresses d'implantation sont pour l'Assembleur ZEN (4000H) et pour le Hard-Copy (0A100H). Le seul travail pour l'utilisateur est de définir la chaîne de caractères ASCII, qui compose le nom d'appel (commande) de ces utilitaires.

Soit, pour l'Assembleur :

A ;S ;S
41H ; 53H ; 53H

Pour le Hard-Copy :

C ; O ; P ; Y
43H 4FH 50H 59H

Maintenant, reste à implanter cette suite de codes dans le programme principal "TOKEXT", qui se charge de contrôler la syntaxe des commandes, et d'aiguiller les adresses d'exécution en fonction de la configuration choisie. L'adresse d'implantation de ce programme est fixée en 7000H, mais peut bien sûr être différente, à condition de le ré-assembler en conséquence.

FONCTIONNEMENT
DE CETTE ROUTINE

En entrée du programme, le registre "E" contient un numéro d'erreur, car l'interpréteur Basic a détecté une commande inconnue par le système. Il faut donc sauvegarder le double registre "DE" si dans les routines appelées, on l'utilise.

Sachez qu'à la suite d'un appel à un sous-programme (CALL XXXX), à partir du Basic, le Stack Pointer (pointeur de pile) est situé à l'adresse 0BFF8H. Cette information n'est pas négligeable, car si on fait appel à un programme qui modifie cette adresse, il ne faut pas oublier de restituer sa valeur initiale avant le retour au Basic. Voici les deux types de fin de routines possibles :

Sans modification du (SP)

TOTO : . .
. .
RET

Avec modification

TOTO : . .
. .
LD SP,0BFF8H
RET

BUFFENT contient l'adresse du buffer entrée du Basic. C'est un buffer de 256 octets, où tous les caractères ASCII représentant les symboles (lettres, chiffres et autres) entrés au clavier, sont stockés jusqu'à ce qu'un code retour-chariot (carriage return) soit détecté. Ouvrons une parenthèse. Vous avez certainement déjà constaté, qu'une ligne Basic ne pouvait comporter plus de 255 caractères. La raison est liée à la taille de ce buffer. C'est donc chaque caractère de ce buffer (jusqu'au retour chariot inclus) qui est comparé avec ceux des différentes commandes (S1 et S2 dans l'exemple) préprogrammées dans la configuration.

Si cette comparaison se révèle exacte, un aiguillage (saut) est réalisé vers le programme en question ayant, auparavant, remis à zéro la cellule Basic "Error", située en 0ADAAH.

Dans le cas contraire, un message d'erreur "SYNTAX ERROR" est affiché comme habituellement.

MISE EN PLACE DES COMMANDES

La configuration est réalisée sous la forme d'une suite d'octets stockés de la façon suivante (dans l'ordre) :

  • codes Ascii des différents caractères de la commande,
  • codes machine de l'instruction JP (0C3H),
  • adresse de la routine à exécuter (poids faible - poids fort).

Bien sûr, il ne faut pas tomber dans l'erreur qui consiste à choisir comme nom de commande des instructions Basic. Si, à la fin des différents programmes appelés, un retour au Basic est prévu, le message "READY" sera affiché (adresse ROM 0C064H).

Dernier point : pour que le programme principal "TOKEXT" soit exécuté automatiquement dès la détection d'une erreur par l'interpréteur, il faut modifier les adresses AC04H-AC05H-AC06H qui contiennent des instructions machine "RET" (C9) par les trois codes correspondant à l'instruction "JP TOKEXT". De cette façon, avant d'afficher un message d'erreur, l'interpréteur sera dévié vers "TOKEXT". Soit pour l'exemple de la figure 1, les codes C3-0C-70. Donc, dès que le programme "TOKEXT" est en mémoire, il faut impérativement commencer par exécuter un CALL à la première adresse, soit pour l'exemple donné : CALL &7000. Dans le cas de l'utilisation d'un chargeur Basic, l'exécution est automatique. Cette routine est donc souple d'emploi et configurable à souhait. A titre d'exposé, le listing suit scrupuleusement l'exemple défini au début. Pour ceux qui utiliseraient un chargeur Basic, suivez l'exemple de la figure 2. Maintenant, à vos claviers...

CPC n°8

★ EDITEUR: CPC Revue
★ ANNÉE: 1985
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: PHILIPPE LEBEL
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Tokext    LISTINGDATE: 2018-03-20
DL: 90
TYPE: image
SiZE: 161Ko
NOTE: w807*h2033

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

Lien(s):
» Applications » CPC-Fehlerroutine (CPC Magazin)
» Applications » SuperPack 80
» Applications » CPC-Expert
» Applications » Variablennamenwandler (CPC Amstrad International)
» Applications » Basic Compiler (CPC Magazin)
» Applications » Rsx - Alpha Rom
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/c
Page créée en 221 millisecondes et consultée 1712 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.