MSX Village forum

La Place des Développeurs Format des datas dans les fichiers ASM

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2902

Le 11/04/2011 à 22h22
Une question pour les assembleux ; Quels ASM sont les plus utilisés par la communauté MSXienne ?
Y a t'il des grosses différences au niveau du stockage des datas ?
Par exemple, le code ci-dessous est t'il standard ?
Code ASM :
mon_sprite:
db0x00, 0x00, 0x04, 0x04, 0x04, 0x10, 0x21, 0x00
db0x6D, 0x49, 0x04, 0x21, 0x04, 0xFB, 0x21, 0x21
db0x00, 0x04, 0x21, 0x42, 0x04, 0xD6, 0x63, 0x42
db0x00, 0x04, 0x21, 0x63, 0x04, 0x1C, 0x42, 0x42
...
 

Y a surement des ASM qui attendent des 6Dh, 49h, 04h, 21h, 04h, FBh, 21h, 21h...


On est toujours ignorant avant de savoir.
Github    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1512

Le 12/04/2011 à 08h04
Perso j'utilise le cross-assembleur asMSX, il offre une grande souplesse pour les headers (qui restent obscurs en programmation "pure" pour moi). Effectivement les datas sur asMSX se notent en FFh, B2h etc...


MSX un jour, MSX toujours ! :D
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2902

Le 12/04/2011 à 10h29
granced :
Perso j'utilise le cross-assembleur asMSX, il offre une grande souplesse pour les headers (qui restent obscurs en programmation "pure" pour moi). Effectivement les datas sur asMSX se notent en FFh, B2h etc...




Quand tu veux inclure un fichier contenant des données (sprites par exemple), il y a besoin d'autre chose dedans qu'un label et une suite de db FFh, FFh, ... ?


On est toujours ignorant avant de savoir.
Github    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1512

Le 12/04/2011 à 12h27
Pour ma part j'utilise les routines BIOS donc je ne sais pas si ça va t'intéresser...

Sinon tu peux regarder sur le livre Pratique du MSX2 que j'ai retapé en page 93, la routine BLTVD est bien utile pour ça (BLock Transfert VRAM from Disk)


MSX un jour, MSX toujours ! :D
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2902

Le 12/04/2011 à 14h16
granced :
Pour ma part j'utilise les routines BIOS donc je ne sais pas si ça va t'intéresser...



Sinon tu peux regarder sur le livre Pratique du MSX2 que j'ai retapé en page 93, la routine BLTVD est bien utile pour ça (BLock Transfert VRAM from Disk)




En fait, je voulais juste savoir à quoi ressemble un fichier ASM contenant les données d'un sprites par exemple. Je suppose que vous avez des tools qui convertissent les images en fichier ASM à inclure dans le code. Quel fichier exporte t'ils ?



Par exemple, si le fichier contient ça...



Code ASM :
mon_sprite:
    db    00h, 00h, 04h, 04h, 04h, 10h, 21h, 00h
    db    6Dh, 49h, 04h, 21h, 04h, FBh, 21h, 21h
    db    00h, 00h, 04h, 04h, 04h, 10h, 21h, 00h
    db    6Dh, 49h, 04h, 21h, 04h, FBh, 21h, 21h
    ...
 




... est-ce qu'on peut l'inclure dans du code ASM ou bien manque t'il qq chose ?


On est toujours ignorant avant de savoir.
Github    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1512

Le 12/04/2011 à 15h39
Ben euh... oui, des sprites c'est juste une suite d'octets que tu déplaces au besoin dans la table des patrons de sprites (suivant ton mode graphique pour l'adresse of course ^^), donc des données de sprites c'est bien comme tu le décris.



MSX un jour, MSX toujours ! :D
Site web    
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 12/04/2011 à 21h07
J'utilise aussi asMsx pour développer. Par contre, j'utilise la notation suivante :
db $f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0

J'ai eu quelques pbs avec xxh.
Par exemple : DBh plantait, je devait mettre 219...
Sinon, pour les addresses 16bits, tu ne peux pas utiliser A000h mais 0A000h, sinon marche pas non plus

Actuellement pour les sprites, c'est à la main que je code.
Par contre, pour les graphismes et l'éditeur de niveau (en SCREEN 2 seulement), j'utilise un application maison en C# .Net 3.5

Voili voilou
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2902

Le 12/04/2011 à 21h07
Ok. Je vais ajouter une option a mon extracteur/compresseur de sprite pour sortir du code ASM (en plus des fichiers C comme actuellement). :)

Au fait, les commentaires, dans tous les principaux ASM du MSX, c'est bien le point-virgule ?


On est toujours ignorant avant de savoir.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2902

Le 12/04/2011 à 21h09
RibbSayan :
J'utilise aussi asMsx pour développer. Par contre, j'utilise la notation suivante :

db $f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0




Du coup, asMsx accepte les 2 ?

J'ai vu aussi des 0xF0 dans du code ASM sur le net ; c'est aussi supporté ?



EDIT : Sur MSX Assembly Page j'ai trouvé encore une autre syntaxe :



Code ASM :
    DW    #0000,#0100
    DW    #0000,#0000
    DW    #0008,#0008
    DB    0,0,#D0
 




Le format des données semble être un sacré bazar en ASM. ^^ Edité par aoineko Le 12/04/2011 à 21h17


On est toujours ignorant avant de savoir.
Github    
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 12/04/2011 à 21h42
asMSX accepte pas mal de format de données différent. Je crois qu'ils sont dans la doc en PDF.
Même ce format fonctionne :
db 3,219,5
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2902

Le 13/04/2011 à 00h35
RibbSayan :
asMSX accepte pas mal de format de données différent. Je crois qu'ils sont dans la doc en PDF.

Même ce format fonctionne :

db 3,219,5




D'après la doc, en espagnol :gne, asMSX accepte :

Décimal : 0 10 25 1 255 2048

Hexa : 0x8a 0xff 0x10 $8a $ff $10 8ah 0ffh 10h

Octal : 01 077 010 1o 77o 10o

Binaire : 1000000b 11110000b 0010101b 1001b




Par contre, pas de trace de #8a #ff #10...


On est toujours ignorant avant de savoir.
Github    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 13/04/2011 à 02h51
aoineko :


EDIT : Sur MSX Assembly Page j'ai trouvé encore une autre syntaxe :



Code ASM :
    DW    #0000,#0100
    DW    #0000,#0000
    DW    #0008,#0008
    DB    0,0,#D0
 




Le format des données semble être un sacré bazar en ASM. ^^


Ben ce n'est pas pire que le 0x ou le $.

Lorsque c'est le # qui est utilisé pour l'hexadecimal, le % est utilisé pour le binaire et pour l'octal, je ne sais plus.



(Je pense que ces caractères ont été utilisés pour simplifier la programmation de l'assembleur. C'est plus facile de faire un programme qui repére un chiffre précédé d'un caractère spécifique que d'un chiffre suivit d'un h, b ou o puisque une variable peut remplacer un chiffre.) Edité par GDX Le 13/04/2011 à 02h58
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie