Directives de debug

Directives de debug et assertion

PRINT

PRINT 'chaine',variable

Cette directive permet d'écrire du texte, des variables ou expressions dans la console, au cours de l'assemblage. Les variables doivent exister au moment de l'assemblage pour pouvoir être affichées. Le format de sortie par défaut des valeurs est flottant avec décimales. Il est possible de préfixer les variables par les tags suivants pour changer leur format d'affichage:
- {hex} Afficher la valeur en hexadécimal. Si la valeur vaut moins de #FF alors l'affichage sera forcé sur deux chiffres; Si elle vaut moins de #FFFF alors l'affichage sera forcé sur 4 chiffres. Il n'y aura pas d'extra-zéros avec les valeurs supérieures.
- {hex2}, {hex4], {hex8} Forcer l'affichage hexadécimal sur 2, 4 ou 8 chiffres
- {bin} Afficher la valeur en binaire. Il y a un ajustement automatique sur 8 ou 16 bits de façon analogue au préfixe {hex}
- {bin8}, {bin16}, {bin32} pour forcer l'affichage binaire sur 8, 16 ou 32 bits
- {int} Arrondir et afficher un nombre entier

DELAYED_PRINT

DELAYED_PRINT 'chaine',variable

Cette directive fonctionne de façon analogue à la directive PRINT sauf que l'affichage se fait en fin d'assemblage, quand toutes les variables sont connues. Elle permet donc d'utiliser des variables non encore déclarées. Par contre son usage n'est pas pertinent à l'intérieur d'une boucle car tous les DELAYED_PRINT utiliseraient alors la dernière valeur des variables utilisées.

STOP

STOP

Cette directive arrête l'assemblage et ne produit aucun fichier en sortie.

FAIL 'chaine',variable

FAIL 'chaine',variable

Cette directive est une méta-directive cumulant PRINT et STOP. Un message est donc affiché et l'assemblage arrêté.

NOEXPORT / ENOEXPORT

NOEXPORT
NOEXPORT label1, label2, label3
ENOEXPORT
ENOEXPORT label1, label2, label3

La directive NOEXPORT inhibe l'export de symboles. Par défaut tous les symboles suivants (labels, variables et alias) ne sont plus exportés mais il est possible de spécifier quels symboles ne pas exporter. On peut réactiver l'export des symboles avec ENOEXPORT.

BRK

BRK ; équivalent à DEFB #ED,#FF

Produire un point d'arrêt "en dur" dans le code binaire produit. Ce type de point d'arrêt n'est pas géré par tous les émulateurs.

BREAKPOINT

BREAKPOINT
BREAKPOINT label

Ajoute un point d'arrêt exportable en interne. Le binaire n'est pas changé, il faut exporter ces points d'arrêt pour pouvoir les utiliser. Soit en fichier, soit à l'intérieur d'un snapshot, voir options de la ligne de commande.

Tips: Tout label qui commence par le préfixe BRK génèrera un point d'arrêt soft de façon analogue à la directive BREAKPOINT.

NAMEBANK

NAMEBANK numero,'oh la jolie bank!'

Assigne un libellé à une BANK mémoire non temporaire.

NAMEBANK 0,'ROM Init'
NAMEBANK 1,'Serval screen'
NAMEBANK 2,'Rubber code + Rastamix'

produira dans le log de sortie d'une cartouche les libellés entre parenthèse

WriteCPR bank  0 of 14775 bytes start at #0000 (ROM Init)
WriteCPR bank  1 of 14590 bytes start at #0000 (Serval screen)
WriteCPR bank  2 of 10875 bytes start at #0000 (Rubber code + Rastamix)
Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License