diff options
-rw-r--r-- | include/memoire.h | 3 | ||||
-rw-r--r-- | include/simulator.h | 1 | ||||
-rw-r--r-- | include/terminal.h | 6 | ||||
-rw-r--r-- | lib/assembler.c | 11 | ||||
-rw-r--r-- | lib/linker.c | 3 | ||||
-rw-r--r-- | lib/memoire.c | 28 | ||||
-rw-r--r-- | lib/registre.c | 1 | ||||
-rw-r--r-- | lib/simulator.c | 85 | ||||
-rw-r--r-- | lib/terminal.c | 7 | ||||
-rw-r--r-- | po/ProjetArchi.pot | 132 | ||||
-rw-r--r-- | po/cat-id-tbl.c | 51 | ||||
-rw-r--r-- | src/simul.c | 6 |
12 files changed, 220 insertions, 114 deletions
diff --git a/include/memoire.h b/include/memoire.h index 290068d..b20434e 100644 --- a/include/memoire.h +++ b/include/memoire.h @@ -1,6 +1,9 @@ #ifndef __MEMOIRE_H__ #define __MEMOIRE_H__ #include "types.h" +extern Uint32 * memoire_principale; Uint32 LD(Uint32 offset); void ST(Uint32 offset, Uint32 valeur); +void InitMemoire(void); +void FreeMemoire(void); #endif diff --git a/include/simulator.h b/include/simulator.h index ba8c7d1..41afe2c 100644 --- a/include/simulator.h +++ b/include/simulator.h @@ -13,7 +13,6 @@ #define ADD_SP (TAILLE_MEMOIRE-1) /* Emplacement de la pile */ -extern Uint32 memoire_principale[TAILLE_MEMOIRE]; extern Uint32 registre[NB_REGISTRES_PHYSIQUES]; /* Registres classiques */ extern int debug; diff --git a/include/terminal.h b/include/terminal.h index ed65f71..763c965 100644 --- a/include/terminal.h +++ b/include/terminal.h @@ -5,8 +5,8 @@ extern FILE * input; extern struct termios initial_settings, new_settings; -openterm(); -clearterm(); -initterm(); +void openterm(void); +void clearterm(void); +void initterm(void); #endif
\ No newline at end of file diff --git a/lib/assembler.c b/lib/assembler.c index 3fda135..edf6aed 100644 --- a/lib/assembler.c +++ b/lib/assembler.c @@ -1456,6 +1456,7 @@ void asm_eol(void) int i; char trouve; _TableauVariable it; + bytestream_t * pi; switch (special) { case 2: /* Cas de #define */ @@ -1576,6 +1577,8 @@ void asm_eol(void) /* Operation cruciale: nous avons l'instruction qui correspond le mieux à notre expression, on va tenter de l'évaluer */ + + pi = pushuninit(1); Initialise(&it); for (i = 0; i < instr->nbexplicit; i++) { @@ -1669,8 +1672,8 @@ void asm_eol(void) break; } } - - pushdword(evaluate_field(it, "FI", fields), NULL); + + pi->Encoded = evaluate_field(it, "FI", fields); DetruitTab(&it); break; default: @@ -1691,6 +1694,8 @@ void asm_eol(void) static void writeword(unsigned long int a, FILE * f, int n) { int i; + + fprintf(stderr, "ÉCriture de %08lX sur %i\n", a, fileno(f)); if (fwrite(&a, sizeof(unsigned long int), 1, f) != 1) { if (ferror(f)) { @@ -1787,6 +1792,7 @@ void asm_eof(FILE * f) for (ttext = ttext->next; ttext; ttext = ttext->next) { sprintf(errctx, _("Processing word number %i coming from line %i of the file %s."), ttext->offset, ttext->line, ttext->filename); + fprintf(stderr, "%s\n", errctx); pushcontext(errctx); a = 0; @@ -1905,6 +1911,7 @@ void asm_eof(FILE * f) for (tdata = tdata->next; tdata; tdata = tdata->next) { sprintf(errctx, _("Processing word number %i coming from line %i of the file %s."), tdata->offset, tdata->line, tdata->filename); + fprintf(stderr, "%s\n", errctx); pushcontext(errctx); a = 0; diff --git a/lib/linker.c b/lib/linker.c index b6930e3..0228a9f 100644 --- a/lib/linker.c +++ b/lib/linker.c @@ -138,7 +138,7 @@ void addfile(char *nom) if ((startpoint != -1) && (start != -1)) { exception(1, _("Startpoint already defined.")); } - startpoint = start; + startpoint = start + textsize; objects[objindex]->s_text = readword(f); objects[objindex]->s_data = readword(f); @@ -284,6 +284,7 @@ void dumpfile(char *nom) pushcontext(_("Writing headers")); writeword(0x58454e4e, f); writeword(nbrsymbs + textsize + datasize + 7, f); + writeword(startpoint, f); writeword(textsize, f); writeword(datasize, f); writeword(bsssize, f); diff --git a/lib/memoire.c b/lib/memoire.c index 48daf0e..eb6dadc 100644 --- a/lib/memoire.c +++ b/lib/memoire.c @@ -1,3 +1,5 @@ +#include <stdio.h> +#include <stdlib.h> #include "memoire.h" #include "interne.h" #include "simulator.h" @@ -20,6 +22,15 @@ Uint32 * memoire_principale; /** **/ /*****************************************/ + +void InitMemoire(void) { + memoire_principale = (Uint32 *) Emalloc(TAILLE_MEMOIRE * sizeof(Uint32)); +} + +void FreeMemoire(void) { + free(memoire_principale); +} + /* Lit le mot qui se trouve à l'offset 'offset' en mémoire */ Uint32 LD(Uint32 offset) { @@ -27,24 +38,27 @@ Uint32 LD(Uint32 offset) switch (offset) { case 0xffffff00: - return (!feof(stdin)); + initterm(); + i = !feof(input); + clearterm(); + return (i); case 0xffffff01: - return (fgetc(stdin)); - case 0xffffff05: + initterm(); + i = fgetc(input); clearterm(); + break; + case 0xffffff05: fscanf(input, "%i", &i); - initterm(); - return i; + break; default: if (offset >= TAILLE_MEMOIRE) { exception(1, _("Invalid Memory Adress")); - return (i); } else { i = memoire_principale[offset]; - return (i); } break; } + return i; } static void copychaine(Uint32 * t, char * s) { diff --git a/lib/registre.c b/lib/registre.c index 2d88d45..a11a88c 100644 --- a/lib/registre.c +++ b/lib/registre.c @@ -8,6 +8,7 @@ #define _(x) x #endif +Uint32 registre[64]; /*****************************************/ /** **/ diff --git a/lib/simulator.c b/lib/simulator.c index d542a07..9a859f4 100644 --- a/lib/simulator.c +++ b/lib/simulator.c @@ -1,4 +1,7 @@ #include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> #ifdef HAVE_CONFIG_H #include "config.h" @@ -30,6 +33,27 @@ void IncrementeCompteurOrdinal(void) EcrireRegistrePC(AdditionNonSigne(LireRegistrePC(), 1)); } +static FILE *openfilereading(char *name) +{ + FILE *f; + + if (!(f = fopen(name, "rb"))) { + pushcontext(strerror(errno)); + exception(1, _("Error reading file")); + } + return f; +} + +static Uint32 readword(FILE * f) +{ + Uint32 a; + + if (fread(&a, sizeof(a), 1, f) != 1) { + exception(1, _("premature end of file")); + } + return a; +} + Uint32 Adresse(Uint32 u, Uint32 instruction) { Uint32 tmp; @@ -58,6 +82,8 @@ Uint32 Adresse(Uint32 u, Uint32 instruction) void Initialisation(void) { int i; + + InitMemoire(); for (i = 0; i < TAILLE_MEMOIRE; i++) Reset(&memoire_principale[i]); @@ -67,7 +93,7 @@ void Initialisation(void) EcrireRegistreSP(ADD_SP); /* initialisation du stack pointer */ } -void DecodeExec(Uint32 instruction, Uint32 entrypoint) +void DecodeExec(Uint32 instruction) { Uint32 champ_registre_resultat, val1, val2, resultat; int test1, test2; @@ -344,21 +370,6 @@ void DecodeExec(Uint32 instruction, Uint32 entrypoint) } } } -void Traitement(Uint32 entrypoint) -{ /* ******************** FIXMI ************************* */ - Uint32 instruction; - - while (HasToRun) { - EcrireRegistrePC(entrypoint); - HasToRun = 1; - HasToReset = 0; - while ((HasToRun) && (!HasToReset)) { - instruction = LireInstruction(); - IncrementeCompteurOrdinal(); - DecodeExec(instruction, entrypoint); - } - } -} void AfficheReg(void) // affiche reg { @@ -375,7 +386,7 @@ void AfficheReg(void) // affiche reg fprintf(stderr, "\n"); } fprintf(stderr, "Rg: %08lX | Rd: %08lX | Flag: %08lX | PC: %08lX\n\n", LireRegistreRG(), LireRegistreRD(), - LireRegistreFLAG(), registre[REG_PC]); + LireRegistreFLAG(), LireRegistrePC()); } void Debogueur(void) @@ -384,12 +395,12 @@ void Debogueur(void) while (!out) { AfficheReg(); - printf("%08lX:%08lX > ", LireRegistrePC(), LD(LireRegistrePC())); + fprintf(stderr, "%08lX:%08lX > ", LireRegistrePC(), LD(LireRegistrePC())); switch (fgetc(input)) { case 'G': case 'g': - fprintf(stderr, "Go\n") + fprintf(stderr, "Go\n"); debug = 0; out = 1; break; @@ -401,8 +412,38 @@ void Debogueur(void) case 'R': case 'r': break; + case 'Q': + case 'q': + clearterm(); + exception(1, _("Shutdown requested")); default: - fprintf(stderr, _("Help:\nG: go\nP: Proceed\nR: display registers\n\n"); + fprintf(stderr, _("Help:\nG: go\nP: Proceed\nR: display registers\nQ: quit\n")); + } + } +} + +void Traitement(Uint32 entrypoint) +{ /* ******************** FIXMI ************************* */ + Uint32 instruction; + + fprintf(stderr, "Entrypoint: %08lX\n", entrypoint); + + while (HasToRun) { + EcrireRegistrePC(entrypoint); + HasToRun = 1; + HasToReset = 0; + while ((HasToRun) && (!HasToReset)) { + if (debug) { + initterm(); + Debogueur(); + clearterm(); + } + fprintf(stderr, "Kapoue1\n"); + instruction = LireInstruction(); + fprintf(stderr, "Kapoue2\n"); + IncrementeCompteurOrdinal(); + fprintf(stderr, "Kapoue3\n"); + DecodeExec(instruction); } } } @@ -421,8 +462,11 @@ void ChargeBinaire(char *filename) sprintf(message, _("Loading file %s"), filename); pushcontext(message); + + readword(file); entrypoint = readword(file); /* point d'entrée */ + fprintf(stderr, "Loaded entrypoint: %08lX", entrypoint); nb = readword(file); /* taille du segment text */ ns = readword(file); /* taille des donnes statiques */ nbss = readword(file); /* taille des donnees non init */ @@ -457,3 +501,4 @@ void ChargeBinaire(char *filename) popcontext(); base_addr -= nb + ns + nbss; } + diff --git a/lib/terminal.c b/lib/terminal.c index df3e61d..ace1302 100644 --- a/lib/terminal.c +++ b/lib/terminal.c @@ -4,11 +4,12 @@ #include <termios.h> #include <string.h> #include "config.h" +#include "exceptions.h" FILE *input; struct termios initial_settings, new_settings; -void initterm() { +void initterm(void) { tcgetattr(fileno(input), &initial_settings); new_settings = initial_settings; new_settings.c_lflag &= ~ICANON; @@ -23,11 +24,11 @@ void initterm() { } -void clearterm() { +void clearterm(void) { tcsetattr(fileno(input), TCSANOW, &initial_settings); } -void openterm() { +void openterm(void) { if (!(input = fopen("/dev/tty", "r"))) { exception(1, _("could not open terminal")); } diff --git a/po/ProjetArchi.pot b/po/ProjetArchi.pot index 5f32a22..15241ab 100644 --- a/po/ProjetArchi.pot +++ b/po/ProjetArchi.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2001-04-16 22:11+0200\n" +"POT-Creation-Date: 2001-04-16 23:40+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -131,8 +131,8 @@ msgstr "" msgid "Pattern not matching..." msgstr "" -#: lib/assembler.c:1315 lib/assembler.c:1345 lib/assembler.c:1595 -#: lib/assembler.c:1611 lib/assembler.c:1625 +#: lib/assembler.c:1315 lib/assembler.c:1345 lib/assembler.c:1598 +#: lib/assembler.c:1614 lib/assembler.c:1628 msgid "Unknow constant type in the meta language" msgstr "" @@ -142,7 +142,7 @@ msgid "" msgstr "" #: lib/assembler.c:1357 lib/assembler.c:1382 lib/assembler.c:1390 -#: lib/assembler.c:1653 +#: lib/assembler.c:1656 msgid "Logical error in meta language" msgstr "" @@ -158,148 +158,149 @@ msgstr "" msgid "Value too large for field" msgstr "" -#: lib/assembler.c:1493 lib/assembler.c:1677 +#: lib/assembler.c:1494 lib/assembler.c:1680 msgid "Unknow instruction" msgstr "" -#: lib/assembler.c:1518 +#: lib/assembler.c:1519 msgid "Unknow constant" msgstr "" -#: lib/assembler.c:1527 +#: lib/assembler.c:1528 msgid "Bad constant for an immediate value" msgstr "" -#: lib/assembler.c:1544 +#: lib/assembler.c:1545 msgid "Bad constant for a string" msgstr "" -#: lib/assembler.c:1561 +#: lib/assembler.c:1562 msgid "Bad array size" msgstr "" -#: lib/assembler.c:1571 +#: lib/assembler.c:1572 msgid "You can only have an instruction into a .text segment" msgstr "" -#: lib/assembler.c:1574 +#: lib/assembler.c:1575 msgid "Unmatched instruction" msgstr "" -#: lib/assembler.c:1699 lib/assembler.c:1744 lib/linker.c:45 lib/linker.c:67 +#: lib/assembler.c:1704 lib/assembler.c:1749 lib/linker.c:45 lib/linker.c:67 msgid "Error writing file" msgstr "" -#: lib/assembler.c:1753 lib/assembler.c:2106 lib/linker.c:56 +#: lib/assembler.c:1758 lib/assembler.c:2113 lib/linker.c:56 +#: lib/simulator.c:42 msgid "Error reading file" msgstr "" -#: lib/assembler.c:1770 +#: lib/assembler.c:1775 msgid "Creating temporary files" msgstr "" -#: lib/assembler.c:1773 +#: lib/assembler.c:1778 msgid "Error writing file __text__" msgstr "" -#: lib/assembler.c:1777 +#: lib/assembler.c:1782 msgid "Error writing file __symbols__" msgstr "" -#: lib/assembler.c:1781 +#: lib/assembler.c:1786 msgid "Dumping memory into object file" msgstr "" #. Segment de texte -#: lib/assembler.c:1786 +#: lib/assembler.c:1791 msgid "Dumping text segment" msgstr "" -#: lib/assembler.c:1788 lib/assembler.c:1906 lib/assembler.c:1983 +#: lib/assembler.c:1793 lib/assembler.c:1912 lib/assembler.c:1990 #, c-format msgid "Processing word number %i coming from line %i of the file %s." msgstr "" -#: lib/assembler.c:1850 lib/assembler.c:1853 lib/assembler.c:1928 -#: lib/assembler.c:1931 +#: lib/assembler.c:1856 lib/assembler.c:1859 lib/assembler.c:1935 +#: lib/assembler.c:1938 msgid "Can't evaluate expression for a direct value" msgstr "" -#: lib/assembler.c:1857 lib/assembler.c:1935 +#: lib/assembler.c:1863 lib/assembler.c:1942 msgid "Can only use the diff() function onto labels" msgstr "" -#: lib/assembler.c:1862 lib/assembler.c:1866 lib/assembler.c:1940 -#: lib/assembler.c:1944 +#: lib/assembler.c:1868 lib/assembler.c:1872 lib/assembler.c:1947 +#: lib/assembler.c:1951 msgid "Can only evaluate a diff on local symbols" msgstr "" -#: lib/assembler.c:1870 lib/assembler.c:1948 +#: lib/assembler.c:1876 lib/assembler.c:1955 msgid "Can only evaluate a diff on symbols from the same segment" msgstr "" -#: lib/assembler.c:1876 lib/assembler.c:1954 +#: lib/assembler.c:1882 lib/assembler.c:1961 msgid "Can't evaluate expression" msgstr "" #. Segment de data -#: lib/assembler.c:1904 +#: lib/assembler.c:1910 msgid "Dumping data segment" msgstr "" #. Segment bss -#: lib/assembler.c:1981 +#: lib/assembler.c:1988 msgid "Dumping bss segment" msgstr "" -#: lib/assembler.c:2027 +#: lib/assembler.c:2034 #, c-format msgid "" "Statistics: %i words of text, %i words of data, and %i words reserved.\n" "%i symbols generated with %i internal and %i external.\n" msgstr "" -#: lib/assembler.c:2059 +#: lib/assembler.c:2066 msgid "Loading file" msgstr "" -#: lib/assembler.c:2060 lib/meta.c:516 +#: lib/assembler.c:2067 lib/meta.c:516 #, c-format msgid "Opening file '%s'" msgstr "" -#: lib/assembler.c:2068 lib/meta.c:524 +#: lib/assembler.c:2075 lib/meta.c:524 msgid "Reading file" msgstr "" -#: lib/assembler.c:2070 lib/meta.c:526 +#: lib/assembler.c:2077 lib/meta.c:526 #, c-format msgid "Reading line %i" msgstr "" -#: lib/assembler.c:2079 +#: lib/assembler.c:2086 #, c-format msgid "Summering line %s" msgstr "" -#: lib/assembler.c:2098 +#: lib/assembler.c:2105 #, c-format msgid "Assembling file %s...\n" msgstr "" -#: lib/assembler.c:2099 +#: lib/assembler.c:2106 msgid "Opening output file" msgstr "" -#: lib/assembler.c:2102 +#: lib/assembler.c:2109 msgid "Error writing output file" msgstr "" -#: lib/assembler.c:2108 lib/linker.c:277 +#: lib/assembler.c:2115 lib/linker.c:277 msgid "Writing output file" msgstr "" -#: lib/assembler.c:2109 +#: lib/assembler.c:2116 #, c-format msgid "Generating output file %s...\n" msgstr "" @@ -448,16 +449,16 @@ msgstr "" msgid "FPU not implemented" msgstr "" -#: lib/memoire.c:35 lib/memoire.c:105 +#: lib/memoire.c:55 lib/memoire.c:124 msgid "Invalid Memory Adress" msgstr "" #. Si on voudrait diminuer le nombre de registres -#: lib/registre.c:76 lib/registre.c:92 lib/registre.c:106 lib/registre.c:120 +#: lib/registre.c:77 lib/registre.c:93 lib/registre.c:107 lib/registre.c:121 msgid "Invalid Register Descriptor" msgstr "" -#: lib/linker.c:76 +#: lib/linker.c:76 lib/simulator.c:52 msgid "premature end of file" msgstr "" @@ -499,60 +500,81 @@ msgstr "" msgid "Writing headers" msgstr "" -#: lib/linker.c:292 +#: lib/linker.c:293 msgid "Writing relocating informations" msgstr "" -#: lib/linker.c:295 +#: lib/linker.c:296 msgid "Writing text segments" msgstr "" -#: lib/linker.c:300 +#: lib/linker.c:301 msgid "Writing data segments" msgstr "" -#: lib/linker.c:307 +#: lib/linker.c:308 #, c-format msgid "Statistics: %i words of text, %i words of data and reserving %i words\n" msgstr "" -#: lib/linker.c:309 +#: lib/linker.c:310 #, c-format msgid "Output file size: %i words containing %i relocating offsets.\n" msgstr "" -#: lib/simulator.c:46 +#: lib/simulator.c:63 msgid "Adresse: Call With Invalid r/m Field State ( r/m=00 )" msgstr "" -#: lib/simulator.c:59 +#: lib/simulator.c:76 msgid "Adresse: Unmatched Addr Field" msgstr "" #. arg2 = imm32 -#: lib/simulator.c:230 +#: lib/simulator.c:249 msgid "MOV: Memory to Memory Forbidden On This Type Of Processor" msgstr "" -#: lib/simulator.c:350 +#: lib/simulator.c:369 msgid "DecodeExec: Invalid Opcode" msgstr "" +#: lib/simulator.c:418 +msgid "Shutdown requested" +msgstr "" + +#: lib/simulator.c:420 +msgid "" +"Help:\n" +"G: go\n" +"P: Proceed\n" +"R: display registers\n" +"Q: quit\n" +msgstr "" + #. verification de la signature -#: lib/simulator.c:403 -msgid "Signature invalid" +#: lib/simulator.c:460 +msgid "Invalid Signature" msgstr "" -#: lib/simulator.c:406 +#: lib/simulator.c:463 #, c-format msgid "Loading file %s" msgstr "" -#: lib/simulator.c:438 +#: lib/simulator.c:498 #, c-format msgid "Executing file %s" msgstr "" +#: lib/terminal.c:22 +msgid "could not set terminal attributes" +msgstr "" + +#: lib/terminal.c:33 +msgid "could not open terminal" +msgstr "" + #: src/compilo.c:16 msgid "" "Assembler v1.0\n" diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c index ef1eceb..2a5d02a 100644 --- a/po/cat-id-tbl.c +++ b/po/cat-id-tbl.c @@ -134,40 +134,49 @@ Statistics: %i words of text, %i words of data, and %i words reserved.\n\ {"Adresse: Unmatched Addr Field", 122}, {"MOV: Memory to Memory Forbidden On This Type Of Processor", 123}, {"DecodeExec: Invalid Opcode", 124}, - {"Signature invalid", 125}, - {"Loading file %s", 126}, - {"Executing file %s", 127}, + {"Shutdown requested", 125}, + {"\ +Help:\n\ +G: go\n\ +P: Proceed\n\ +R: display registers\n\ +Q: quit\n", 126}, + {"Invalid Signature", 127}, + {"Loading file %s", 128}, + {"Executing file %s", 129}, + {"could not set terminal attributes", 130}, + {"could not open terminal", 131}, {"\ Assembler v1.0\n\ -\n", 128}, - {"Usage: compilo program.asm objet.out\n", 129}, - {" o Initialising the meta engine... ", 130}, +\n", 132}, + {"Usage: compilo program.asm objet.out\n", 133}, + {" o Initialising the meta engine... ", 134}, {"\ Done!\n\ - o Meta language loading... ", 131}, - {"Meta language loading failed.", 132}, + o Meta language loading... ", 135}, + {"Meta language loading failed.", 136}, {"\ Done!\n\ - o Initialising the assembler core...", 133}, - {"Assembler core init failed.", 134}, - {" Done!\n", 135}, - {"Signal received: segfault", 136}, + o Initialising the assembler core...", 137}, + {"Assembler core init failed.", 138}, + {" Done!\n", 139}, + {"Signal received: segfault", 140}, {"\ \n\ Performing initialisation...\n\ -\n", 137}, +\n", 141}, {"\ \n\ Performing shutdown...\n\ -\n", 138}, - {"Exitting, bye!\n", 139}, +\n", 142}, + {"Exitting, bye!\n", 143}, {"\ Linker v1.0\n\ -\n", 140}, - {"Usage: linker obj1 [obj2 [obj3 [...]]] binary\n", 141}, - {" o Initialising the linker... ", 142}, - {"Linking files...\n", 143}, - {"Generating output file...\n", 144}, +\n", 144}, + {"Usage: linker obj1 [obj2 [obj3 [...]]] binary\n", 145}, + {" o Initialising the linker... ", 146}, + {"Linking files...\n", 147}, + {"Generating output file...\n", 148}, }; -int _msg_tbl_length = 144; +int _msg_tbl_length = 148; diff --git a/src/simul.c b/src/simul.c index 44a1e1f..799a3b7 100644 --- a/src/simul.c +++ b/src/simul.c @@ -8,12 +8,16 @@ #include "simulator.h" #include "alu.h" +#include "terminal.h" int main(void) { + openterm(); Rapide = 1; Initialisation(); - ChargerBinaire("progtest"); + debug = 1; + ChargeBinaire("progtest"); + clearterm(); return (0); } |