Browse Source

+ added unit omfbase for omf definitions; currently contains all the omf record
type constants

git-svn-id: trunk@30331 -

nickysn 10 years ago
parent
commit
49d501a798
4 changed files with 83 additions and 1 deletions
  1. 1 0
      .gitattributes
  2. 2 0
      compiler/ogomf.pas
  3. 73 0
      compiler/omfbase.pas
  4. 7 1
      compiler/ppc8086.lpi

+ 1 - 0
.gitattributes

@@ -493,6 +493,7 @@ compiler/ogmacho.pas svneol=native#text/plain
 compiler/ogmap.pas svneol=native#text/plain
 compiler/ognlm.pas svneol=native#text/plain
 compiler/ogomf.pas svneol=native#text/plain
+compiler/omfbase.pas svneol=native#text/plain
 compiler/optbase.pas svneol=native#text/plain
 compiler/optconstprop.pas svneol=native#text/pascal
 compiler/optcse.pas svneol=native#text/plain

+ 2 - 0
compiler/ogomf.pas

@@ -33,6 +33,8 @@ interface
        systems,
        { assembler }
        cpuinfo,cpubase,aasmbase,assemble,link,
+       { OMF definitions }
+       omfbase,
        { output }
        ogbase,
        owbase;

+ 73 - 0
compiler/omfbase.pas

@@ -0,0 +1,73 @@
+{
+    Copyright (c) 2015 by Nikolay Nikolov
+
+    Contains Relocatable Object Module Format (OMF) definitions
+    This is the object format used on the i8086-msdos platform.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit omfbase;
+
+{$i fpcdefs.inc}
+
+interface
+
+  const
+    { OMF record types }
+    RT_THEADR    = $80;  { Translator Header Record }
+    RT_LHEADR    = $82;  { Library Module Header Record }
+    RT_COMENT    = $88;  { Comment Record }
+    RT_MODEND    = $8A;  { Module End Record }
+    RT_MODEND32  = $8B;
+    RT_EXTDEF    = $8C;  { External Names Definition Record }
+    RT_PUBDEF    = $90;  { Public Names Definition Record }
+    RT_PUBDEF32  = $91;
+    RT_LINNUM    = $94;  { Line Numbers Record }
+    RT_LINNUM32  = $95;
+    RT_LNAMES    = $96;  { List of Names Record }
+    RT_SEGDEF    = $98;  { Segment Definition Record }
+    RT_SEGDEF32  = $99;
+    RT_GRPDEF    = $9A;  { Group Definition Record }
+    RT_FIXUPP    = $9C;  { Fixup Record }
+    RT_FIXUPP32  = $9D;
+    RT_LEDATA    = $A0;  { Logical Enumerated Data Record }
+    RT_LEDATA32  = $A1;
+    RT_LIDATA    = $A2;  { Logical Iterated Data Record }
+    RT_LIDATA32  = $A3;
+    RT_COMDEF    = $B0;  { Communal Names Definition Record }
+    RT_BAKPAT    = $B2;  { Backpatch Record }
+    RT_BAKPAT32  = $B3;
+    RT_LEXTDEF   = $B4;  { Local External Names Definition Record }
+    RT_LEXTDEF32 = $B5;
+    RT_LPUBDEF   = $B6;  { Local Public Names Definition Record }
+    RT_LPUBDEF32 = $B7;
+    RT_LCOMDEF   = $B8;  { Local Communal Names Definition Record }
+    RT_CEXTDEF   = $BC;  { COMDAT External Names Definition Record }
+    RT_COMDAT    = $C2;  { Initialized Communal Data Record }
+    RT_COMDAT32  = $C3;
+    RT_LINSYM    = $C4;  { Symbol Line Numbers Record }
+    RT_LINSYM32  = $C5;
+    RT_ALIAS     = $C6;  { Alias Definition Record }
+    RT_NBKPAT    = $C8;  { Named Backpatch Record }
+    RT_NBKPAT32  = $C9;
+    RT_LLNAMES   = $CA;  { Local Logical Names Definition Record }
+    RT_VERNUM    = $CC;  { OMF Version Number Record }
+    RT_VENDEXT   = $CE;  { Vendor-specific OMF Extension Record }
+
+implementation
+
+end.

+ 7 - 1
compiler/ppc8086.lpi

@@ -28,7 +28,7 @@
         <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
       </local>
     </RunParams>
-    <Units Count="231">
+    <Units Count="232">
       <Unit0>
         <Filename Value="pp.pas"/>
         <IsPartOfProject Value="True"/>
@@ -62,6 +62,7 @@
       <Unit7>
         <Filename Value="i8086\cputarg.pas"/>
         <IsPartOfProject Value="True"/>
+        <UnitName Value="cputarg"/>
       </Unit7>
       <Unit8>
         <Filename Value="i8086\hlcgcpu.pas"/>
@@ -1004,6 +1005,11 @@
         <IsPartOfProject Value="True"/>
         <UnitName Value="ogomf"/>
       </Unit230>
+      <Unit231>
+        <Filename Value="omfbase.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="omfbase"/>
+      </Unit231>
     </Units>
   </ProjectOptions>
   <CompilerOptions>