Pratique de l\'assembleur sur MSX

Modèles de programmes pour démarrer (asMSX)

Cet article a été mis à jour, vous consultez ici une archive de cet article!

But de l'article



Cet article présente des modèles de codes source assembleur pour démarrer un programme pour asMSX.


Modèle pour créer un exécutable .BIN



Les fichiers .BIN sont exécutables depuis le MSX-BASIC

Code ASM :
 
; squelette de départ pour programme BINAIRE
; exécutable à partir du BASIC MSX
; chargement des étiquettes BIOS
; et variables RAM si version asMSX >= 0.18.5
    .BIOS
    .ORG 0xC000
    .BASIC
    .START depart
; début des données du programme = adresse indiquée par .ORG
debut:
    nop ; remplacer 'nop' par des routines si besoin, peut être supprimé
; point d'entrée du programme indiqué par .START
depart:
    nop ; remplacer 'nop' vos instructions d'initialisation si besoin
; boucle infinie à remplacer par votre code
boucle:
    jr boucle
 


Modèle pour créer un exécutable .COM


Les fichiers .COM sont exécutables depuis de MSX-DOS
Code ASM :
 
; squelette de départ pour programme MSX-DOS
; chargement des étiquettes BIOS
; et variables RAM si version asMSX >= 0.18.5
    .BIOS
; directive MSX-DOS origine = 0100h
    .MSXDOS
; début des données et point d'entrée du programme = 0100h
depart:
    nop ; remplacer 'nop' par vos instructions d'initialisation si besoin
; boucle infinie à remplacer par votre code
boucle:
    jr boucle
 


Modèle pour créer un exécutable .ROM (non Megarom)


Les fichiers .ROM sont destinés à être intégrés aux cartouches pour MSX, cependant ils peuvent être exécutés avec différents outils depuis le MSX-BASIC ou le MSX-DOS.
Code ASM :
 
; squelette de départ pour programme ROM
; chargement des étiquettes BIOS
; et variables RAM si version asMSX >= 0.18.5
    .BIOS
; implémentation du code en page 1
; à modifier selon votre besoin
; .PAGE 0 équivaut à .ORG 0000h
; .PAGE 1 équivaut à .ORG 4000h
; .PAGE 2 équivaut à .ORG 8000h
; .PAGE 3 équivaut à .ORG C000h
    .PAGE 1
    .ROM
    .START depart
; début des données du programme = adresse indiquée par .PAGE + 16 octets (entête ROM)
debut:
    nop ; remplacer 'nop' par vos instructions d'initialisation si besoin
; point d'entrée du programme indiqué par .START
depart:
; search, si page 1 (4000h) est utilisée,
; permet de chercher automatiquement le slot primaire
; et le slot secondaire de la page 2 correspondante (8000h).
    .search
; boucle infinie à remplacer par votre code
boucle:
    jr boucle
 


Modèle pour créer un exécutable .ROM (Megarom)



Les fichiers .ROM sont destinés à être intégrés aux cartouches pour MSX, cependant ils peuvent être exécutés avec différents outils depuis le MSX-BASIC ou le MSX-DOS.
Les fichiers Megarom nécessitent que la machine dispose de plus de 128 ko de RAM

Code ASM :
 
; squelette de départ pour programme MEGAROM
; chargement des étiquettes BIOS
; et variables RAM si version asMSX >= 0.18.5
    .BIOS
; implémentation du code en page 1
; à modifier selon votre besoin
; .PAGE 0 équivaut à .ORG 0000h
; .PAGE 1 équivaut à .ORG 4000h
; .PAGE 2 équivaut à .ORG 8000h
; .PAGE 3 équivaut à .ORG C000h
    .PAGE 1
    .MEGAROM
    .START depart
; début des données du programme = adresse indiquée par .PAGE + 16 octets (entête ROM)
debut:
    nop ; remplacer 'nop' par vos sous routines si besoin
; point d'entrée du programme indiqué par .START
depart:
; search, si page 1 (4000h) est utilisée,
; permet de chercher automatiquement le slot primaire
; et le slot secondaire de la page 2 correspondante (8000h).
    .search
; boucle infinie à remplacer par votre code
boucle:
    jr boucle