added codeReader and consts.c

This commit is contained in:
nils polek 2023-12-03 16:10:33 +01:00
parent dc33e46e24
commit 8b3770df80
2 changed files with 39 additions and 0 deletions

32
codeReader.c Normal file
View File

@ -0,0 +1,32 @@
#ifndef CODEREADER
#define CODEREADER
#include "consts.c"
#include <stdio.h>
#include <stdlib.h>
#include "program.c"
void fromFile(char *path, struct program program){
unsigned int countInstructions;
unsigned int staticVars;
FILE *fptr;
fptr = fopen(path, "r+b");
if(fptr == NULL) {
printf("Error: cannot open code file %s", path);
exit(EXIT_FAILURE);
}
unsigned int buffer[4];
fread(buffer, 4, 4, fptr);
// Check file type
if(buffer[0] != 0x46424A4E){
printf("Error: wrong file type");
exit(EXIT_FAILURE);
}
if(buffer[1] != VERSION){
printf("Error: wrong version");
}
countInstructions = buffer[2];
staticVars = buffer[3];
unsigned int instBuffer[countInstructions];
fread(instBuffer, 4, countInstructions, fptr);
copyToProgram(instBuffer,countInstructions,program);
}
#endif /* ifdef CODEREADER */

7
consts.c Normal file
View File

@ -0,0 +1,7 @@
#ifndef CONSTS
#define CONSTS
#define VERSION 2
#endif /* ifndef CONSTS
#define CONSTS
#define VERSION 2; */