La Place des Développeurs Format des datas dans les fichiers ASM
aoineko
Membre non connecté
Conseiller Municipal
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 ?
Y a surement des ASM qui attendent des 6Dh, 49h, 04h, 21h, 04h, FBh, 21h, 21h...
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.
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 !
aoineko
Membre non connecté
Conseiller Municipal
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.
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)
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 !
aoineko
Membre non connecté
Conseiller Municipal
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)
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.
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 !
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
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
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 ?
Au fait, les commentaires, dans tous les principaux ASM du MSX, c'est bien le point-virgule ?
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
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
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.
aoineko
Membre non connecté
Conseiller Municipal
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
Même ce format fonctionne :
db 3,219,5
D'après la doc, en espagnol , 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
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.
aoineko :
EDIT : Sur MSX Assembly Page j'ai trouvé encore une autre syntaxe :
Le format des données semble être un sacré bazar en ASM.
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