#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

FILE *file;

void Quit()
{
    fclose(file);
    exit(0);
}

void MakeBinaryFile(char *file_name)
{
    int saisie;
    unsigned char a;
    unsigned char b;
    unsigned char val = 0;
    
    signal(SIGINT, Quit);
    file = fopen(file_name, "wb");
    printf("%s ouvert, prêt à l'écriture.\n (CTRL-C pour terminer.)\n\n", file_name);
    
    printf("Adresse d'execution?: \n");
    scanf("%d", &saisie);
    a = (unsigned char) saisie;
    fputc(a, file);
    printf("\n");
       
    while (1)
      {
         scanf("%d", &saisie);
         a = (unsigned char) saisie;
         scanf("%d", &saisie);
         b = (unsigned char) saisie;
    
         val = a;
         val = val<<4;
         val = val + b;
         fputc(val, file);
         printf("val:%d\n", val);
      }
}

int main(int argc, char *argv[])
{
    if (argc < 2) {
        printf("Usage: %s filename\n\n", argv[0]);
        exit(-1);
    }
    
    printf("%s\n", argv[1]);
    
    MakeBinaryFile(argv[1]);
    
    return 0;
}
