mon .asm ressemble à ça :
section ".data"
xdef Matrix1
xdef Matrix2
Matrix1 incbin "map011.lvl"
Matrix2 incbin "map012.lvl"
end
et mon .c ressemble à ça :
//#define USE_TI89 // Compile for TI-89
#define USE_TI92PLUS // Compile for TI-92 Plus
#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
#define SAVE_SCREEN // Save/Restore LCD Contents
#include <tigcclib.h> // Include All Header Files
#include "map01.h"
#include "map01.asm"
extern short Matrix1[];
extern short Matrix2[];
void f_write(char **file, void *donnee, unsigned int size)
{
memcpy(*file, donnee , size); // copie 'size' octets d'une adresse dans le fichier
*file += size; // on va 'size' octets + loin pour sauter l'espace pris par cette donnée et acceder aux nveaux elements
}
/* fonction qui va créer notre fichier et sotcker nos données dedant en appelant f_write*/
char create_map(void)
{
char ext[]= {0,'m','a','p', 0 ,OTH_TAG}; // code de l'extension
int taille_donnees = 6 /* extension*/
+ 8*sizeof(short)
+ 2*size_x/16*size_y/16; // octets
SYM_ENTRY *sym; // pointeur SYM_ENTRY, car il va en falloir un :-DD
char *pt_file; // pointeur vers l'emplacement du fichier qu'on va creer
HSYM hsym1 = SymAdd (SYMSTR((char *)MapName)); // crée son nom "Map01" ds le Var Link, à toi de changer le nom ensuite
if (!*(long *)&hsym1) // vérifie qu'on a pu le creer, que tout s'est bien passé
return 1; // sinon on retourne 1, synonyme d'echec
sym = DerefSym(hsym1); // avec ça on obtient l'adresse de ce num qu'on stocke ds une structure
if(!(sym->handle = HeapAlloc(2+ taille_donnees +6))) // donne (en allouant), la taille du fichier, 2 1ers octets qui servent la taille, nos données, et 6 octets pour l'extension, et vérifie que tt s'est bien passé
return 2;
if(!(pt_file = (char *)HeapDeref (sym->handle))) // avec ça, on aura l'adresse du fichier pur, dans un pointeur bien classique, et on vérifie que tt s'est bien passé
return 3;
f_write(&pt_file, &taille_donnees, sizeof(int)); // copie la taille du fichier , cf ARCHITECTURE TIOS
/* copie de toutes nos données*/
f_write(&pt_file, &size_x , sizeof(short) ); // stocke la structure qui donne toutes les infos pour la map
f_write(&pt_file, &size_y , sizeof(short) ); // stocke la structure qui donne toutes les infos pour la map
f_write(&pt_file, &vill , sizeof(short) ); // stocke la structure qui donne toutes les infos pour la map
f_write(&pt_file, &num_vill , sizeof(short) );
f_write(&pt_file, &mons , sizeof(short) );
f_write(&pt_file, &num_mons , sizeof(short) );
f_write(&pt_file, &event , sizeof(short) );
f_write(&pt_file, &gfx_file , sizeof(short) );
memcpy(pt_file, ext, 6); // copie l'extension
return 0;
}
void _main(void)
{
int err;
clrscr();
if(err=create_map()) // crée la map
printf("Création échec %d",err);
else
printf("Création succès");
ngetchx();
}
j'ai inclus le .asm ds les A68K asm files et les *.lvl ds les other files, mais voilà, g l'erreur de compilation "Map01.asm: No such file or directory"
alors soit je suis pas doué, soit tigcc a un bug





