| ★ APPLICATIONS ★ PROGRAMMATION ★ RSX SYSTEME|CPC Revue) ★ |
| RSX Systeme | Applications Programmation |
Tout amstradiste amoureux de sa bécane sait que, sous son capot vénéré, se trouve un système d'exploitation dont on peut utiliser les routines. Ces routines sont accessibles par l'intermédiaire d'un blocde saut où se trouvent des vecteurs qui vous propulsent directement aux routines désirées. C'est ce bloc de saut, commun aux 3 CPCs, qui assure (s'il est utilisé) la compatibilité entre le 464, le 664 et 6128. Ceci veut dire que si vous placez dans un programme quelconque CALL &BB06, le résultat sera le même sur les 3 modèles malgré les Roms différentes. Certaines de ces routines sont déjà utilisables à partir du BASIC, mais la majorité nécessite le chargement d'un ou plusieurs registres avant le CALL, ce qui n'est possible qu'en assembleur (ou en incluant du langage machine dans le programme, quel que soit le langage de programmation utilisé). L'utilitaire proposé ici, résout ce problème en vous fournissant des extensions au BASIC sous la forme des RSX suivantes :
Chaque mot place en fait la valeur se trouvant après la virgule dans une case (ou deux) de la Ram. Le mot |SYSCALL,nn récupère dans ces cases les valeurs destinées aux différents registres, les charge, fait le CALL à la routine nn et, au retour de la routine, met le contenu des registres dans les cases déjà mentionnées. Ce contenu est visible avant ou après appel de la routine grâce au mot |REGISTRESSi vous désirez connaître le contenu des registres pendant le déroulement d'un programme (BASIC), il suffit de faire chaque fois :GOSUB 60000en ayant eu soin de loger dans votre programme les lignes suivantes : (listing 1 )Il peut être bon de souligner que de nombreuses routines ont leur équivalent dans le vocabulaire BASIC et qu'il est peu utile de les employer. Cherchez donc celles qui ne correspondent pas à un ordre BASIC. En voici deux exemples : la première remplit un rectangle avec une encre donnée (&BC44) et la deuxième déplace une certaine quantité d'octets d'une zone de la mémoire vers une autre (&B91B). A vos routines !
|