dpvm/inc/mz.h

36 lines
658 B
C
Raw Permalink Normal View History

2024-01-30 23:10:15 -08:00
#ifndef MZ_H
#define MZ_H
#include <stdint.h>
#include <string.h>
typedef struct { // pointer into program data into which load segment is added
uint16_t offset,
segment;
} __attribute__((packed)) reloc;
typedef struct { // no endian checks - this will only work on x86+vm anyway
uint16_t mz,
bytes,
pages,
relsz,
len,
minalloc, // can easily ignore - we have 895k free
maxalloc,
ss,
sp,
sum,
ip,
cs,
rel, // pointer to
overlay; // zero if main binary
} __attribute__((packed)) mz;
typedef struct {
uint16_t ss, sp, ip, cs;
} mz_start;
uint32_t loadmz(mz*, uint8_t*, uint32_t, uint32_t, mz_start*);
#endif