La Place des Développeurs Développement assembleur Z80 sur Windows 11
Hello,
vous utilisez quel outil pour assembler du code asm Z80 sur Windows ? Et en êtes vous content ?
Je viens de télécharger personnellement la dernière version 64 bits de asMSX (v1.1.0-RUN) car ce logiciel avait l'air sympa mais pas moyen de l'installer sur mon PC Windows 11 : une fenêtre furtive apparait au lancement puis plus rien !
Pour éviter de tester un par un tous les assembleurs Z80 censés fonctionner sur Windows, j'aimerais donc avoir vos avis ...
vous utilisez quel outil pour assembler du code asm Z80 sur Windows ? Et en êtes vous content ?
Je viens de télécharger personnellement la dernière version 64 bits de asMSX (v1.1.0-RUN) car ce logiciel avait l'air sympa mais pas moyen de l'installer sur mon PC Windows 11 : une fenêtre furtive apparait au lancement puis plus rien !
Pour éviter de tester un par un tous les assembleurs Z80 censés fonctionner sur Windows, j'aimerais donc avoir vos avis ...
.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
aoineko
Membre non connecté
Conseiller Municipal
Perso j'utilise sdasz80 (dérivé de asz80), mais pour une raison très particulière : je programme surtout en C et quand je fais de l'assembleur, j'ai besoin qu'il puisse être assemblé avec le reste du code C. Et comme le compilateur C génère du code sdasz80, c'est ce que j'utilise pour l'assembleur aussi.
C'est un assembleur très complet et assez classique, sauf 2 étrangetés :
- les offsets d'accès au registre IX/IY se mettent avant le nom du registre
- tous les valeurs littérales doivent préfixé avec un dièse
Par ex. :
Mais bon, si tu n'as pas la contrainte du lien avec le langage C, tu as plein d'autres choix. Quelqu'un d'autre pourra mieux te renseigner, mais ayant convertis pas mal de code assembleur créé par d'autre pour intégrer des fonctionnalités dans MSXgl, j'peux juste te dire que j'ai souvent croisé du code au format sjasm.
Les autres formats que j'ai croisé récemment pour du code MSX :
- Glass
- SjASMPlus
- tniASM
Et au delà de l'assembleur, je te conseille d'utiliser VS Code comme éditeur de texte (si c'est pas déjà le cas ).
Tu peux trouver des tas de plugins pour t'aider ; et notamment le Z80 Assembly meter qui te calcul automatique la taille et le nombre de cycles de n'importe quel bout de code que tu surligne (en tenant compte des spécificité du MSX avec ces cycles d'attentes supplémentaires). C'est super pratique.
C'est un assembleur très complet et assez classique, sauf 2 étrangetés :
- les offsets d'accès au registre IX/IY se mettent avant le nom du registre
- tous les valeurs littérales doivent préfixé avec un dièse
Par ex. :
Code ASM :
ld -2 (ix), #0
Mais bon, si tu n'as pas la contrainte du lien avec le langage C, tu as plein d'autres choix. Quelqu'un d'autre pourra mieux te renseigner, mais ayant convertis pas mal de code assembleur créé par d'autre pour intégrer des fonctionnalités dans MSXgl, j'peux juste te dire que j'ai souvent croisé du code au format sjasm.
Les autres formats que j'ai croisé récemment pour du code MSX :
- Glass
- SjASMPlus
- tniASM
Et au delà de l'assembleur, je te conseille d'utiliser VS Code comme éditeur de texte (si c'est pas déjà le cas ).
Tu peux trouver des tas de plugins pour t'aider ; et notamment le Z80 Assembly meter qui te calcul automatique la taille et le nombre de cycles de n'importe quel bout de code que tu surligne (en tenant compte des spécificité du MSX avec ces cycles d'attentes supplémentaires). C'est super pratique.
On est toujours ignorant avant de savoir.
J'utilise sjasm 0.42c depuis plusieurs années et j'en suis content :
https://www.xl2s.tk/sjasmman0.html
AsMSX est buggé, il est à éviter.
Edité par Metalion Le 13/10/2024 à 13h24
https://www.xl2s.tk/sjasmman0.html
AsMSX est buggé, il est à éviter.
Edité par Metalion Le 13/10/2024 à 13h24
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Merci pour vos réponses. Je pense m'orienter plutôt sur sjasmplus (plus récent que sjasm) et me rabattre sur sdasz80 en cas de problème ...
Oui c'est bien VS Code que je compte utiliser. Merci pour l'info sur le plugin
aoineko :
Et au delà de l'assembleur, je te conseille d'utiliser VS Code comme éditeur de texte (si c'est pas déjà le cas ).
Tu peux trouver des tas de plugins pour t'aider ; et notamment le Z80 Assembly meter qui te calcul automatique la taille et le nombre de cycles de n'importe quel bout de code que tu surligne (en tenant compte des spécificité du MSX avec ces cycles d'attentes supplémentaires). C'est super pratique.
Tu peux trouver des tas de plugins pour t'aider ; et notamment le Z80 Assembly meter qui te calcul automatique la taille et le nombre de cycles de n'importe quel bout de code que tu surligne (en tenant compte des spécificité du MSX avec ces cycles d'attentes supplémentaires). C'est super pratique.
Oui c'est bien VS Code que je compte utiliser. Merci pour l'info sur le plugin
.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
Chris (Spysoft) :
Merci pour vos réponses. Je pense m'orienter plutôt sur sjasmplus (plus récent que sjasm) et me rabattre sur sdasz80 en cas de problème ...
Attention, sjasmplus est TRES orienté Amstrad ...
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Metalion :
Attention, sjasmplus est TRES orienté Amstrad ...
ah bon, ce n'est pourtant pas ce que dit l'article Migration de RASM vers SJASM+ dont voici le début :
Citation :
SJASM+ est un assembleur qui est sans conteste l'assembleur z80 de référence pour de nombreuses architectures autres que le CPC (ZX, MSX pour ne citer que les plus courants).
SJASM+ est en effet un assembleur moderne, versatile, rapide et très modulaire, qui respecte de nombreux standards, et dont le développement est toujours très actif. Il suffit de jeter un œil à la page github pour s'en convaincre.
SJASM+ est en effet un assembleur moderne, versatile, rapide et très modulaire, qui respecte de nombreux standards, et dont le développement est toujours très actif. Il suffit de jeter un œil à la page github pour s'en convaincre.
Je verrais bien ...
.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
Pour info j'utilise désormais SjASMPlus qui me parait satisfaisant.
On peut d'ailleurs compiler avec celui ci des programmes initialement prévus pour SjASM, il y a juste les éventuelles définitions de map à convertir car SjASMPlus ne les reconnait pas.
Exemple : dans les sources du jeu Metal Gear (cf https://github.com/GuillianSeed/MetalGear), il y a le fichier variables.asm qui contient les définitions suivantes :
Il faut remplacer cela par :
Je n'ai mis que 3 lignes de définitions de données pour l'exemple mais il y en a évidemment bien plus. Une fois la map convertie, la compilation du jeu via la commande ci dessous ne pose plus aucun problème :
Et il est alors possible de jouer avec le jeu Metal Gear et/ou le debugger sous OpenMSX Edité par Chris (Spysoft) Le 12/11/2024 à 11h54
On peut d'ailleurs compiler avec celui ci des programmes initialement prévus pour SjASM, il y a juste les éventuelles définitions de map à convertir car SjASMPlus ne les reconnait pas.
Exemple : dans les sources du jeu Metal Gear (cf https://github.com/GuillianSeed/MetalGear), il y a le fichier variables.asm qui contient les définitions suivantes :
Citation :
map #c000
GameStatus: # 1
GameSubstatus: # 1
ControlConfig: # 1
...
GameStatus: # 1
GameSubstatus: # 1
ControlConfig: # 1
...
Il faut remplacer cela par :
Citation :
org #c000
GameStatus: ds 1
GameSubstatus: ds 1
ControlConfig: ds 1
...
GameStatus: ds 1
GameSubstatus: ds 1
ControlConfig: ds 1
...
Je n'ai mis que 3 lignes de définitions de données pour l'exemple mais il y en a évidemment bien plus. Une fois la map convertie, la compilation du jeu via la commande ci dessous ne pose plus aucun problème :
Citation :
sjasmplus.exe MetalGear.asm --raw=MetalGear.rom
Et il est alors possible de jouer avec le jeu Metal Gear et/ou le debugger sous OpenMSX Edité par Chris (Spysoft) Le 12/11/2024 à 11h54
.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie