Exemplo n.º 1
0
        public void writeOboeFile(BinaryOut outfile)
        {
            //write header
            outfile.putFixedString(OBOESIG, 4);
            outfile.putFour((uint)sections.Count);

            //write initial section tbl
            uint sectblsize = (uint)(sections.Count * SECTIONENTRYSIZE);
            uint sectbl     = outfile.getPos();

            outfile.skip(sectblsize);

            //write section data
            uint pos = outfile.getPos();

            foreach (Section sec in sections)
            {
                sec.addr = pos;
                sec.writeOut(outfile);
                pos      = outfile.getPos();
                sec.size = pos - sec.addr;
            }

            //adjust section tbl
            outfile.seek(sectbl);
            foreach (Section sec in sections)
            {
                outfile.putFour(sec.sectype);
                outfile.putFour(sec.addr);
                outfile.putFour(sec.size);
            }
        }
Exemplo n.º 2
0
        //- writing out ---------------------------------------------------------------

        public void writeSectionTblEntry(BinaryOut outfile)
        {
            outfile.putFixedString(name, 8);

            outfile.putFour(memSize);
            outfile.putFour(memPos);
            outfile.putFour(fileSize);
            outfile.putFour(filePos);

            //line numbers are deprecated, we don't write them
            outfile.putFour(relocTblPos);
            outfile.putFour(0);
            outfile.putTwo((uint)relocations.Count);
            outfile.putTwo(0);

            uint flagval = settings.encodeFlags();

            outfile.putFour(flagval);
        }