From 88271c91ca3682ef7bd95a91bd0def0ce314a6b8 Mon Sep 17 00:00:00 2001 From: Elias Bennour Date: Mon, 4 Dec 2023 01:20:41 +0100 Subject: [PATCH] fix prog1.bin not working add debug parameter add nja-mac --- SDA.c | 2 +- codeReader.c | 2 +- nja | Bin nja-mac | Bin 0 -> 76816 bytes njvm.c | 86 ++++++++++++++++++++++++++------------------------- prog1.bin | Bin 44 -> 0 bytes 6 files changed, 46 insertions(+), 44 deletions(-) mode change 100644 => 100755 nja create mode 100755 nja-mac delete mode 100644 prog1.bin diff --git a/SDA.c b/SDA.c index 1c60f2a..ff50bd2 100644 --- a/SDA.c +++ b/SDA.c @@ -24,4 +24,4 @@ void printSDA(struct sda s) { } } -#endif \ No newline at end of file +#endif diff --git a/codeReader.c b/codeReader.c index a698b10..d94d25b 100644 --- a/codeReader.c +++ b/codeReader.c @@ -12,7 +12,7 @@ unsigned int fromFile(char *path, struct program program) { FILE *fptr; fptr = fopen(path, "r+b"); if (fptr == NULL) { - printf("Error: cannot open code file %s", path); + printf("Error: cannot open code file %s\n", path); exit(EXIT_FAILURE); } unsigned int buffer[4]; diff --git a/nja b/nja old mode 100644 new mode 100755 diff --git a/nja-mac b/nja-mac new file mode 100755 index 0000000000000000000000000000000000000000..2a7ad145e3bc171775c6e0930d1d6a6fcdf55e3d GIT binary patch literal 76816 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 1) { - if (strcmp(argv[1], "--version") == 0) { - version(); - } else if (strcmp(argv[1], "--help") == 0) { - help(); - } else if (strcmp(argv[1], "--prog1") == 0) { - copyToProgram(code1, sizeof(code1) / sizeof(code1[0]), program); - goto run; - } else if (strcmp(argv[1], "--prog2") == 0) { - copyToProgram(code2, sizeof(code2) / sizeof(code2[0]), program); - goto run; - } else if (strcmp(argv[1], "--prog3") == 0) { - copyToProgram(code3, sizeof(code3) / sizeof(code3[0]), program); - goto run; - } else { - printf("unknown command line argument '%s', try './njvm --help'", argv[1]); + for (int i = 1; i < argc; ++i) { + if (strcmp(argv[i], "--debug") == 0) { + debug = 1; + } else if (strcmp(argv[i], "--version") == 0) { + version(); + return 0; + } else if (strcmp(argv[i], "--help") == 0) { + help(); + return 0; + } else { + sizeSDA = fromFile(argv[i], program); + run = 1; + } } - } else { - run: -// Started - if (*program.saveProgram == 1) { - printf("Ninja Virtual Machine started\n"); - printProgram(program); - execute(program); - printSDA(sda); - } else { - printf("Error: no code file specified\n"); - return 1; - } -// Stopped + } + + /* + * Debug mode + */ + if (debug) { + tests(); + } + + /* + * Run program + */ + if (run) { + printf("Ninja Virtual Machine started\n"); + unsigned int s[sizeSDA]; + sda.size = &sizeSDA; + sda.sda = s; + printProgram(program); + execute(program); + if (debug == 1) printSDA(sda); printf("Ninja Virtual Machine stopped\n"); - return 0; + } else { + printf("Error: no code file specified\n"); + return 1; } } diff --git a/prog1.bin b/prog1.bin deleted file mode 100644 index 8cc0eb19b6f13a5f016cc1a87189b757e39821a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 jcmebCa&lv0U|?VeVn!eavOyFN5OV`D2N#47q!<_gG@Aip