
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