Vous n'êtes pas identifié.
pour mon tuto sur l la prog je voudrais expiquer comment utiliser simplement les routines de 2072 sur les fichiers basic. Je ne vous cache pas que mon niveau en C n'étant pas bien élévé je galere c'est pourquoi je cree ce post dans lequel je poserai toutes mes question.
Je dois reconnaitre que le tuto de 2072 est pas mal fait et les source de swifter m'aide un peu, mais bon je ne voudrai pas dire des conneries dans mon tuto.
J'ai essayer la fonction write et search , et y a aucun prob mais la ou les chose ce complique c'est quand j'uitlise la fonction creat_zone. Ce me fait tout et n'importe quoi voici un petit code tout con qui en theorie doit marcher mais ne pratique c'estle bordel. Si quelqu'un pouvait me dire les erreure quej'ai faite parceque là, je suis perdu.:
#include"BASICf-u.c"
unsigned int segm_video;
struct BASICfile bf;
int main (void)
{ segm_video=peek(0x4E,0); // initialise le segment pour fichier basic
clrscr();
if(create_mem_zone(1,"TEST",55,CREATE_ZONE)!=-2)
{
if (search_basic_file("TEST", &bf) != -1)
{
printf("TEST created !");
}
}
else
printf("TEST not found !");
getch();
return(0);
}
merci à tout ceux qui m'aideront.
Au fait le dernier exemple de 2072 dans son readme, est buggué et ne marche pas sur ma graph100 rom 1.02.
Hors ligne
j'ai encore mieux:
#include"BASICf-u.c"
unsigned int segm_video;
struct BASICfile bf;
int main (void)
{ segm_video=peek(0x4E,0); // initialise le segment pour fichier basic
clrscr();
create_mem_zone(1,"TEST",55,CREATE_ZONE);
write_toBfile(&bf,"nico",0,4);
getch();
return(0);
}
ce ne marche pas ! et franchement je pense que la fonction doit etre bugguée !
Hors ligne
j'ai encore mieux:#include"BASICf-u.c"
unsigned int segm_video;
struct BASICfile bf;
int main (void)
{ segm_video=peek(0x4E,0); // initialise le segment pour fichier basic
clrscr();
create_mem_zone(1,"TEST",55,CREATE_ZONE);
write_toBfile(&bf,"nico",0,4);
getch();
return(0);
}ce ne marche pas ! et franchement je pense que la fonction doit etre bugguée !
a ces debutant ...
#include"BASICf-u.c"
unsigned int segm_video;
struct BASICfile bf;
int main (void)
{ segm_video=peek(0x4E,0); // initialise le segment pour fichier basic
clrscr();
create_mem_zone(1,"TEST",55,CREATE_ZONE);
search_basic_file(&bf,"TEST");
write_toBfile(&bf,"nico",0,4);
getch();
return(0);
}
Et vi, CW, on recherche le fichier basic pouir initialiser la structure &bf !!!
Hors ligne
je te remerci de l'info mais ca ne marche pas plus ton truc:
#include"BASICf-u.c"
unsigned int segm_video;
struct BASICfile bf;
int main (void)
{ segm_video=peek(0x4E,0); // initialise le segment pour fichier basic
clrscr();
create_mem_zone(1,"TEST",55,CREATE_ZONE);
search_basic_file("TEST",&bf);
write_toBfile(&bf,"nico",0,4);
return(0);
}
c'est tel quel !
Hors ligne
c'est bon j'ai plus de prob grace à 2072 qui a explique comment passer outre le bug de sa fonction.
merci 2072
Hors ligne
t tétu ...
tu fumme casioworld ?
regarde un peu tu met :
search_basic_file("TEST",&bf);
et voila ce que g mis :
search_basic_file(&bf,"TEST");
Hors ligne
quand je mets ton truc TurboC me marque un "supsicious pointer"
et puis 2072 n'utilise pas la fonction comme toi. moi je fais comme dans le tuto de 2072.
Hors ligne
Casioworld n'oublie pas qu'il y a un bug dans l'exemple de 2072: regarde le sujet "line useless"...
Et puis moi perso le flag CREATE_ZONE de la fonction creat_mem_zone() me pose plein de blemes, autant utiliser RESIZE_ZONE pour créer, ca marche impec
Hors ligne
dsl CW j'ai vu apres que tu avais lu ce sujet...
Mais pour le RESIZE_ZONE vous remarquerez que c'ets ce que fait 2072
Hors ligne
long search_basic_file(unsigned char *progname, struct BASICfile *bf)
ce que tu fais x-thunder28 ne devrait pas marcher.
puis le flag de create_zone ne sert qu'à empécher d'écraser un fichier basic s'il existe déjà, RESIZE_ZONE retaillera le fichier basic s'íl existe et qu'il est trop petit (mais ne peux pas réduire sa taille).
Hors ligne
dis 2072, pour effacer un fichier basic, ne faudrait-t-il pas remettre la zone méméoire comme elle était avant la création de ce fichier? style tu la sauvegardes où tu veux temporairement, et tu la restaures quand tu veux effacer ce fichier basic :?: :?: c'est possible ou pas?
et pour réduire un fichier basic ben faudra donc sauvegarder en mémoire le nb d'octets qu'on veut garder, jarter les octets qu'on veut pas, effacer les fichier basic, puis restaurer la zone mémoire comme avant, réécrire les octets mis en mémoire dans le fichier basic avec une taille moindre!
ça fait beaucoup ms est-ce possible?
Hors ligne
ben si rom dos peut effacer les files basic, les renommer, changer leur taille et leur contenu y'a pas de raison pr qu'on y arrive.
ou sinon pr réduire la taille, suffirait pas de remplacer les octets en trop par des NULLs ??
Hors ligne
ben si rom dos peut effacer les files basic, les renommer, changer leur taille et leur contenu y'a pas de raison pr qu'on y arrive.
ou sinon pr réduire la taille, suffirait pas de remplacer les octets en trop par des NULLs ??
Mon povr c@siomax, tu y est po du tout ...
1- rom-dos, c un OS, ca fonctionne donc uniquement ac les fichiers !!!
2- ce sont les prog qui gere les fichiers basic eu meme, a moins kil y ait une interruption faissant tout le travail !
3- mettr des NULLs reviendrait a rien, pusique c la taille qui compte, on peu stocker des nulls ds un fichiers basic !!!
voila, si je me trompe dites le moi !
Hors ligne
Pour effacer un file basic il ne suffit pas de déplacer les données, il faut aussi modifier la MAT (Memory Allocation Table) sinon c'est le reset de la mémoire assuré !
Mais ce n'est pas dure à faire, c'est juste qu'il faut que je fasse en sorte que ma fonction qui déplace la mémoire puisse le faire dans les 2 sens (elle ne sais que déplacer de la mémoire vers le haut).
Mais j'attend toujours la fonction que devait me faire Mastermage en asm hyper rapide !!!
Hors ligne