Pratique de l\'assembleur sur MSX

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


But de l'article



Cet article présente des modèles de codes source assembleur pour démarrer un programme destiné à être compilé avec asMSX.


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



Les fichiers .BIN sont exécutables depuis 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 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
 



Cette page a été vue 2771 fois