internal void DoBlock(BinaryWriter reloc, uint page, int start, int end)
{
//Console.WriteLine("rva = " + rva + " page = " + page);
if (Diag.DiagOn) Console.WriteLine("writing reloc block at " + reloc.BaseStream.Position);
reloc.Write(rva + page);
uint blockSize = (uint)(((end-start+1)*2) + 8);
reloc.Write(blockSize);
if (Diag.DiagOn) Console.WriteLine("Block size = " + blockSize);
for (int j=start; j < end; j++) {
//Console.WriteLine("reloc offset = " + relocs[j]);
reloc.Write((ushort)((0x3 << 12) | (relocs[j] - page)));
}
reloc.Write((ushort)0);
if (Diag.DiagOn) Console.WriteLine("finished reloc block at " + reloc.BaseStream.Position);
}