From e06e7d7afb11ecb732b3bf6e4c94274267328279 Mon Sep 17 00:00:00 2001 From: Marcelina Szostak Date: Fri, 18 Apr 2025 15:36:38 +0200 Subject: [PATCH] Initial commit --- .gitignore | 1 + main.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 .gitignore create mode 100644 main.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cba7efc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +a.out diff --git a/main.c b/main.c new file mode 100644 index 0000000..4b389e2 --- /dev/null +++ b/main.c @@ -0,0 +1,37 @@ +#include +#include +#include + +int main(int argc, char **argv){ + + long mem_size = 0; + + //Handling arguments + if(argc < 2){ + printf("too few arguments\n"); + return 1; + } + for(int i = 1; i < argc; i++){ + if(strcmp(argv[i], "-m") == 0 || strcmp(argv[i], "--memory") == 0){ + char *endptr; + long convert = strtol(argv[i+1], &endptr, 10); + mem_size = &endptr != NULL ? convert : mem_size; + } + if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0){ + printf("Usage: %s [OPTIONS] file\nOptions:\n%s-m, --memory: specify RAM size\n%s-h, --help: print this message\n\n",argv[0]," "," "); + return 0; + } + } + + //Intializing memory and stuff + + long PC = 0; //program counter + char *mem_pointer = malloc(mem_size * sizeof(char)); //allocate RAM + if(mem_pointer == NULL){ + printf("ERROR: Memory allocation failed (Buy more RAM)"); + return 2; + } + + free(mem_pointer); + return 0; +}