Memento de ASSEMBLER 2.0
Récapitulatif des commandes moniteur
/ Désassemblage
Les curseurs haut et bas servent ensuite à passer au désassemblage
précédent ou suivant. Le curseur droit sert à passer au
désassemblage à partir de l'adresse indiquée par l'opérande dans le
cas d'un désassemblage mnémonique.
A Sortie en ASCII (ASCII Output)
La sortie du désassemblage sera traduite alors en ASCII.
B Affiche la liste des points d'arrêt (Breakpoint)
C Continuer l'exécution du programme machine (Continue)
Reprend l'exécution du programme en stoppant à chaque point d'arrêt programmé valide.
D Affichage d'un bloc de 128 octets (Dump)
sous la forme:
D<adresse>
Exemple: DE000 affiche 128 octets à partir de l'adresse $E000
E Passage d'un fichier sur cassette (End Of File)
G Exécution d'un programme machine (Go)
Exemple: GDEBUT engage l'exécution à l'étiquette "DEBUT".
H Désassemblage en symbolique et numérique
Si la valeur numérique rencontrée correspond à un symbole, elle
sera affichée sous forme de symbole. Sinon, sous forme numérique.
Ce mode de désassemblage est le mode initial de ASSEMBLER.
I Détermine le type d'input (Input)
Utilisable seulement en mode combiné. Exemples:
IH Les valeurs d'entrée devront être en hexadécimal
ID Les valeurs d'entrées devront être en décimal
J Copie d'une zone mémoire
sous la forme J <adresse source> <adresse destination> <taille>
Exemple:
J E000 A000 4
copie la zone $E000-$E003 en $A000-$A003 (4 octets en tout)
K Ajoute un point d'arrêt programmé
Exemple:
KDEBUT stoppera le programme à l'étiquette DEBUT lors de l'exécution.
L Chargement d'un fichier binaire (Load)
sous la forme:
L<numéro de lecteur>:<nom de fichier>.<suffixe> <offset>
L'offset d'implantation, s'il est omis, est égal à $0000.
Le suffixe de fichier, s'il est omis, est "BIN" par défaut.
Le numéro de lecteur est "C" pour la cassette.
M Output en mnémonique
La sortie du désassemblage se fera en mnémonique.
N Output en numérique
La sortie du désassemblage se fera en numérique 8 bits.
En mode combiné:
N1 la sortie numérique sera en 8 bits
N2 la sortie numérique sera en 16 bits
O Détermine le type d'output (OutPut)
Utilisable seulement en mode combiné. Exemples:
OH Les valeurs de sortie seront en hexadécimal
OD Les valeurs de sortie seront en décimal
P Active la sortie sur imprimante (Print)
Q Retour au menu d'ASSEMBLER (Quit)
R Affichage des registres (Registers)
S Sauvegarde d'un programme binaire (Save)
sous la forme:
S<numéro de lecteur>:<nom de fichier>.<suffixe> <a0> <a1> <exec>
a0 étant d'adresse de départ, a1 l'adresse de fin et exec l'adresse
d'exécution. Le numéro de lecteur est "C" pour la cassette.
Le suffixe de fichier, s'il est omis, est "BIN" par défaut.
T Active le traçage de l'exécution (Trace)
Un débogueur
pour ASSEMBLER. En mode combiné, il suffit de faire
suivre le nombre de lignes que l'on veut tracer. Chaque ligne
de traçage de l'exécution sera constituée de la ligne de programme
et de l'état des registres. Cette commande ne peut être utilisée
que lors d'un point d'arrêt programmé.
U Désassemblage en numérique exclusivement
Le désassemblage se fera sous forme numérique exclusivement.
V Vérification de sauvegarde d'un fichier binaire (Verify)
sous la forme:
V<numéro de lecteur>:<nom de fichier>.<suffixe> <a0> <a1> <exec>
a0 étant d'adresse de départ, a1 l'adresse de fin et exec l'adresse
d'exécution. Le numéro de lecteur est "C" pour la cassette.
Le suffixe de fichier, s'il est omis, est "BIN" par défaut.
W Active le traçage en mode WRITE (Write)
Même caractéristiques que TRACE mais pour tracer les programmes en ROM.
X Retour à l'éditeur (Exit)
Y Elimine un point d'arrêt programmé (Yank)
Exemple:
YDEBUT élimine l'étiquette DEBUT de la liste des points d'arrêts.
Z Désassemblage en symbolique exclusivement
Même caractéristiques que pour la commande H. La seule
particularité est que les symboles seront combinés à l'affichage
du désassemblage si leur somme est égale à la valeur rencontrée.
Récapitulatif des commandes pour l'éditeur
Espace Tabulation pour le passage de champs à champs
RAZ Descente d'une page
HOME Remontée d'une page
CNT+X Efface la ligne au curseur
CNT+E Positionne le curseur en fin de ligne
CNT+D Positionne le curseur en début de ligne
CNT+A Ecriture du caractère "["
CNT+Z Ecriture du caractère "]"
CNT+S Ecriture du caractère 127 (caractère espace pour la directive FCC)
Récapitulatif des commandes pour la barre d'édition
A Assemblage du programme source (Assemble)
sous la forme:
A<numéro de lecteur>:<nom de fichier>.<suffixe>/NS/NL/WE/NO/SS/LP
/NS = Pas de listing des symboles
/NL = Pas de listing des lignes
/WE = Stoppe le listing à la première erreur rencontrée (l'appui
sur la touche "c" ou "C" pendant l'assemblage annule l'effet
de l'option). L'assemblage est relancé en appuyant sur une
touche quelconque.
/NO = Pas de programme objet généré en mémoire
/SS = Edition des source et objet sur des lignes séparées
/LP = Sortie du listing sur imprimante
Si le numéros de lecteur, le nom de fichier et le suffixe sont
omis, le programme sera assemblée en direction de la mémoire. Si
seul le numéro de lecteur
est présent (suivi du caractère ":"), le
programme sera assemblé sur le périphérique sous le nom du fichier
assembleur. Si le nom de fichier est présent, le fichier binaire
sera sauvegardé sous ce nom. Le suffixe de fichier, s'il est omis,
est "BIN" par défaut.
Le numéro de lecteur est "C" pour la cassette.
B Saut en fin de programme source (Bottom)
C Copie d'une zone de texte dans le buffer de copie (Copy)
La zone à copier doit avoir d'abord été sélectionnée par la
commande "Z". Si aucune zone n'est sélectionnée, seule la ligne au
curseur sera copiée.
D Effacement d'une zone de texte (Delete)
La zone à effacer doit avoir d'abord été sélectionnée par la
commande "Z". Si aucune zone n'est sélectionnée, seule la ligne au
curseur sera effacée.
E Passage d'un fichier sur cassette (End Of File)
F Recherche d'une expression dans le texte (Find)
sous la forme:
F/expression/
où "expression" est l'expression à rechercher. Celle-ci peut être
encadrée par n'importe quel caractère (ici "/") du moment que les
caractères d'encadrement sont identiques.
I Insertion du contenu du buffer de copie dans le texte (Insert)
La zone à insérer doit avoir d'abord été copiée à l'aide de la
commande "C".
L Chargement d'un programme source (Load)
sous la forme:
L<numéro de lecteur>:<nom de fichier>.<suffixe>
Le numéro de lecteur est "C" pour la cassette.
Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
M Fusion d'un programme source (Merge)
sous la forme:
M<numéro de lecteur>:<nom de fichier>.<suffixe>
Le numéro de lecteur est "C" pour la cassette.
Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
N Effacement du programme source (New)
O Annulation de la tabulation automatique (Off)
ASSEMBLER se comportera comme un éditeur de texte. Pour annuler
l'effet de cette commande, retourner à la page d'accueil de
ASSEMBLER ("Q") puis entrer à nouveau dans l'éditeur ("1").
P Impression du programme source (Print)
Q Retour à la page de menu ASSEMBLER (Quit)
R Remplacement d'un expression dans le texte (Replace)
sous la forme:
R/expr1/expr2/
expr1 = expression à rechercher
expr2 = expression pour remplacement
La zone de remplacement doit d'abord avoir été sélectionnée par le biais de la commande "Z".
Si aucune zone n'a été sélectionnée, seule la ligne au curseur sera traitée.
S Sauvegarde du programme source (Save)
sous la forme:
S<numéro de lecteur>:<nom de fichier>.<suffixe>
Si une zone a été déclarée par la commande "Z", seule cette zone
sera sauvegardée.
Sinon, tout le source sera sauvegardé.
Le numéro de lecteur est "C" pour la cassette.
Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
T Retour en début de programme source (Top)
V Vérification de sauvegarde du programme source (Verify)
sous la forme:
V<numéro de lecteur>:<nom de fichier>.<suffixe>
Le numéro de lecteur est "C" pour la cassette.
Le suffixe de fichier, s'il est omis, est "ASM" par défaut.
X Retour au moniteur (Exit)
Z Sélection d'une zone de texte (Zone)
Les touches de curseur, RAZ et HOME peuvent alors être utilisées
pour agrandir la zone. Cette zone peut être ensuite copiée, effacée
ou sauvegardée. La zone est désélectionnée par la même commande.
Les fichiers ".ASM"
Les fichiers ".ASM" sont les fichiers de type ASCII dont le format est propre à ASSEMBLER. Dans le bloc descripteur de fichier, leur type est de valeur $03 et leur flag de valeur $FF. Une ligne de programme source est limité à 40 caractères, espaces compris, et comporte 4 champs:
- Le champ étiquette (Position 0/Majuscules)
- Le champ instruction (Positon 6/Majuscules)
- Le champ opérande (Position 14/Majuscules)
- Le champ commentaire (Position suivante/Majuscules/Minuscules)
Chacun de ces champs doit être séparé par un espace au moins.
Les minuscules accentuées sont codées sur un quartet faible augmenté de $80 (avec les touches à actionner en préalable, bien que la plupart d'entre ces caractères se trouvent en raccourcis sur le clavier):
ACC+"Kc" $80 = ç
ACC+"Ba" $81 = á
ACC+"Ca" $82 = â
ACC+"Ha" $83 = ä
ACC+"Aa" $84 = à
ACC+"Be" $85 = é
ACC+"Ce" $86 = è
ACC+"He" $87 = ë
ACC+"Ae" $88 = ê
ACC+"Ci" $89 = î
ACC+"Hi" $8A = ï
ACC+"Co" $8B = ô
ACC+"Ho" $8C = ö
ACC+"Cu" $8D = û
ACC+"Hu" $8E = ü
ACC+"Au" $8F = ù
Les espaces entre champs et les espaces de commentaires obéissent aux mêmes lois. Le nombre d'espaces consécutifs est codé sur un quartet faible augmenté de $F0 (de $F1 à $FF). Si le nombre d'espaces consécutifs
dépasse 15, un nouveau code d'espace est créé, jusqu'à ce que le nombre d'espaces total soit atteint. Les espaces de fin de ligne sont ignorés. Une ligne de programme source est clôturée par le caractère CR ($0D).
Constitution d'une ligne de programme source en mémoire
Pour chaque ligne (à partir de l'adresse contenue en $6300/$2300):
Offsets 0-1 Numéro de ligne sur 16 bits
Offset 2 Taille X de la ligne
Offset 3-X+3 Ligne en question
La ligne est codée de la même façon qu'une ligne de programme source ".ASM" sauf que la ligne n'est pas clôturée par le caractère CR ($0D).
Registres fondamentaux
Ces registres ont cours sur toutes les versions de ASSEMBLER. Les quatre premiers registres concernent l'aménagement de la mémoire par ASSEMBLER (avec les intervalles d'adressage pour TO et MO):
6300-6301/2300-2301 Pointeur sur le début du programme source
6302-6303/2302-2303 Pointeur sur la fin du programme source
6304-6305/2304-2305 Pointeur sur le buffer de copie
6306-6307/2306-2307 Pointeur sur le fond de la mémoire
63AE-63AF/23AE-23AF Numéro de la dernière ligne du source
Il est alors possible de générer un code source directement sous ASSEMBLER (liste de FCB, FDB, FCC, mnémonique) dont la routine de renumérotation des lignes en fin de création serait la suivante:
RENUM LDX $6300 Charge adresse de départ du source
LDU #$0000 Initialise numéro de première ligne ($0000)
RENUM1 CMPX $6302 | Si fin du source,
BEQ RENUM1 | sort du programme de renumérotation
STU ,X++ Ecrit le numéro de ligne
LDB ,X+ Lit (et passe) la taille de la ligne
ABX Passe la ligne
LEAU 1,U Incrémente le numéro de ligne de 1 unité
BRA RENUM0 Ligne suivante
RENUM1 STU $63AE Fixe le numéro de la dernière ligne du source
RTS
Et pour MO:
RENUM LDX $2300 Charge adresse de départ du source
LDU #$0000 Initialise numéro de première ligne ($0000)
RENUM1 CMPX $2302 | Si fin du source,
BEQ RENUM1 | sort du programme de renumérotation
STU ,X++ Ecrit le numéro de ligne
LDB ,X+ Lit (et passe) la taille de la ligne
ABX Passe la ligne
LEAU 1,U Incrémente le numéro de ligne de 1 unité
BRA RENUM0 Ligne suivante
RENUM1 STU $23AE Fixe le numéro de la dernière ligne du source
RTS |
|