Ce programme est un moniteur destiné aux programmeurs en langage machine et aux bidouilleurs invertébrés comme votre serviteur. Pour des raisons évidentes de rapidité et de faible encombrement dans mes étroits 64 K il est 100 % en assembleur. Attention : Il est placé très haut en mémoire donc les caractères de 240 à 255 ne sont pas disponibles. Lorsque vous avez la main sous Basic, évitez une redéfinition de SYMBOL L'accès à une option se fait en appuyant sur la première lettre de son nom. Une option en cours est symbolisée par une bordure rouge vif. L'accès au menu est symbolisé par une bordure noire. Chaque valeur nécessaire au programme doit lui être fournie en hexadécimal sans préfixe et avec tous les chiffres (significatifs ou non) mais sans valider par ENTER. Le reset complet par CTRL/SHIFT/ESC est Inhibé. Bon allez, arrêtez de baver, voici la liste et les explications des différentes options : MONITEUR : Demande si l'on désire une sortie sur imprimante ou non, une adresse de départ, et l'état ROM/RAM si nécessaire. Affiche l'adresse courante suivie des 13 (8 pour imprimante 40 colonnes) octets suivants puis les valeurs ascll de ces octets. Ces valeurs ASCII sont : — Diminuées de &7f si supérieures à &7F. — Pour imprimantes : * Remplacées par «.» si Inférieures à &20. * Le caractère &7F est remplacé par le caractère &7E, ENTER ramène au menu. Une autre touche augmente l'adresse courante de &0D et recommence. FILL : Demande un départ, une longueur non nulle, et une valeur entre &00 et &FF. Remplit la zone mémoire entre départ et départ+longueur avec la valeur spécifiée. TRANSFERT : Demande un départ, une longueur non nulle,.et un nouveau départ. Transfère la zone mémoire entre départ et départ+longueur à la zone mémoire entre nouveau départ et nouveau départ+longueur. SAISIE : Demande une séquence de valeurs entre 0 et 255 octets que l'on désire rechercher en RAM par l'option suivante. - Exemple : - Vous cherchez le mot CPC dans un programme :
- Vous cherchez l'instruction CALL &BB06:
tapez CD 06 BB ENTER ENTER ramène au menu. RECHERCHE : Demande si l'on veut une sortie sur imprimante ou non et une adresse de départ où doit commencer la recherche. Recherche les octets saisis par l'option ci-dessus et affiche les adresses où se trouvent des séquences identiques à celle saisie. Quand "Rien trouvé." s'affiche n'împorte quelle touche ramène au menu. POKER : Demande un départ. Affiche l'adresse courante et la valeur pokée à cette adresse. Demande une nouvelle valeur à poker à cette adresse. ENTER ramène au menu sinon l'adresse courante est incrémentée et on continue. SAUVER : Demande un nom de fichier, les caractères obtenus par CTRL sont autorisés et ce nom est facultatif sur K7 (ENTER), une adresse de départ, une longueur, une adresse d'entrée, et un type de fichier (4 possibles). Sauve la zone ainsi définie sur K7. ESC ramène au menu durant la sauvegarde, CHARGER : Demande un nom de fichier (comme pour Sauver). Charge ce fichier en mémoire. ESC ramène au menu durant le chargement. Affiche l'adresse de départ, la longueur, et l'adresse d'entrée du programme chargé dès la fin du premier BLOCK, attention donc à ne pas écraser SATANAS : si vous avez des doutes tapez ESC. Q: Retourne au BASIC si l'on a chargé SATANAS par (MEMORY &A568:) LOAD'SATANASVCALL &AB67. Un retour à SATANAS est alors possible par le point du pavé numérique (pour 464 et 6128 car je n'ai pas pu trouver l'adresse de redéfinition de cette touche sur le 664 mais vous pouvez taper CÂLL&AB67). Fait un reset complet si l'on a chargé SATANAS par RUN'SATANAS". Le programme SATANAS BASIC est le chargeur Basic complet avec DATA et checksum. Il va poker en mémoire le programme SATANAS et faire les adaptations pour CPC 6128, CPC 664, et Imprimante 40 colonnes car SATANAS est prévu pour CPC 464 et imprimante 80 colonnes. - Pour CPC 6128 : l'adresse de définition du point du pavé numérique (touche 138), soit &B5A4, est pokée sous le format octet faible suivi d'octet fort aux adresses &ABC7 et &ABC8.
- Pour CPC 664 : je n'ai pas trouvé cette adresse mais SATANAS BASIC propose, si vous la connaissez, de faire les modifications nécessaires.
- Pour Imprimante 40 colonnes : le nombre &08 est poké aux adresses &A9C9 et &A9DD, Ce nombre est le maximum d'octets pouvant être Imprimés sur une ligne de 40 colonnes par l'option Moniteur. Par défaut, ce nombre est &0D pour imprimantes 80 colonnes : ce n'est pas plus car j'ai choisi d'avoir le menu constamment sous les yeux donc une fenêtre empêche d'afficher le maximum possible.
Enfin ce programme propose une sauvegarde du code objet ainsi obtenu sous le doux nom de SATANAS. Après cette sauvegarde le programme SATANAS BASIC devient Inutile alors je vous offre une petite démo bande de petits veinards : CALL &AB67 F 0040 A500 00 Q LIST
Etonnant non??? Jérôme ALET , Amstar & CPC n°31 |