diff --git a/tyvm.c b/tyvm.c index 06f053f..03c91a4 100644 --- a/tyvm.c +++ b/tyvm.c @@ -104,6 +104,23 @@ void update_flags(uint16_t r) { else reg[RG_COND] = FL_P; } +/* function to load assembly programs*/ +void read_image_file(FILE* file) { + /* image placement memory location */ + uint16_t origin; + fread(&origin, sizeof(origin), 1, file) + origin = swap16(origin); + + uint16_t max_read = UINT16_MAX - origin; + uint16_t* p = memory + origin; + size_t read = fread(p, sizeof(uint16_t), max_read, file); + + /* swapping to little endian */ + while (read-- > 0) { + *p = swap16(*p); + ++p; + } +} int main(int argc, const char* argv[]) {