X-Git-Url: https://jxself.org/git/?p=zilutils.git;a=blobdiff_plain;f=zilasm%2Fheader.c;fp=zilasm%2Fheader.c;h=e5f350fbaa0265d5a0267721a2137714df8e58f3;hp=54ce75e95d553fc05b6645e452c3646cbd0528d3;hb=37d32bd49e745a5c1686b6495f60172b24222361;hpb=83cad370b16c3abb67c05ad75aade35211c0c892 diff --git a/zilasm/header.c b/zilasm/header.c index 54ce75e..e5f350f 100644 --- a/zilasm/header.c +++ b/zilasm/header.c @@ -1,7 +1,7 @@ /* * header.c -- part of ZilUtils/ZilAsm * - * Copyright (C) 2016 Jason Self + * Copyright (C) 2016, 2019 Jason Self * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -21,6 +21,7 @@ #include /* bzero */ #include +#include #include "header.h" @@ -41,3 +42,20 @@ ZMemblock *program_header_build(void) /* TODO */ return zmb; } + + +Word swapBytes(Word w) +{ + return ((w & 255) << 8) + (w >> 8); +} + + +void outputToFile(Program_header_struct *pHeader, FILE* file) +{ + Program_header_struct h; + memcpy(&h, pHeader, sizeof(Program_header_struct)); + + h.startPC = swapBytes(h.startPC); + h.h_file_size = swapBytes(h.h_file_size); + fwrite(&h, sizeof(Program_header_struct), 1, file); +} \ No newline at end of file