MSX Village forum

La Place des Développeurs Développement assembleur Z80 sur Windows 11

Chris (Spysoft) Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 25/05/2024 à 17h14

Messages: 52

Le 13/10/2024 à 10h05
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 ...


.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
   
hitchhikr Membre non connecté

Vagabond

Rang

Avatar

Inscrit le : 30/07/2024 à 19h08

Messages: 5

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2902

Le 13/10/2024 à 10h31
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. :
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.
Github    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1502

Le 13/10/2024 à 13h23
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


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)
   
Chris (Spysoft) Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 25/05/2024 à 17h14

Messages: 52

Le 14/10/2024 à 15h15
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 ...

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.

Oui c'est bien VS Code que je compte utiliser. Merci pour l'info sur le plugin ;)


.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1502

Le 14/10/2024 à 16h46
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)
   
Sector28 Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 12/05/2018 à 23h00

Messages: 561

Le 14/10/2024 à 18h56
J'utilise zmac


Toute matrice carrée sur un corps K, dont le polynôme caractéristique est scindé, est semblable à une matrice de Jordan. Cette réduction est unique à l'ordre des blocs près. De plus, toute matrice carrée nilpotente sur un corps K est semblable à une matrice de Jordan dont chaque bloc est associé à la valeur 0. Évidement, cette réduction est encore unique à l'ordre des blocs près...
:)
   
Chris (Spysoft) Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 25/05/2024 à 17h14

Messages: 52

Le 16/10/2024 à 13h37
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.

Je verrais bien ...


.......................>>> SPYSOFT <<< ...........................
...___.__..__..._.....__..__._____..__.._____.___..._...__..__...
../.__|..\/..|./_\...|..\/../.__\.\/./.|_..._|.__|./_\.|..\/..|..
..\__.\.|\/|.|/._.\..|.|\/|.\__.\>..<....|.|.|._|./._.\|.|\/|.|..
..|___/_|..|_/_/.\_\.|_|..|_|___/_/\_\...|_|.|___/_/.\_\_|..|_|..
.....
   
Chris (Spysoft) Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 25/05/2024 à 17h14

Messages: 52

Le 12/11/2024 à 11h53
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 :

Citation :
map #c000

GameStatus: # 1
GameSubstatus: # 1
ControlConfig: # 1
...


Il faut remplacer cela par :

Citation :
org #c000

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