+ initialize the segment of __stktop, __stkbottom, __nearheap_start and
  __nearheap_end in i8086 far data memory models.
+ 'Hello world!' now works in the i8086 compact and large memory models!



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27377 3ad0048d-3df7-0310-abae-a5850022a9f2
  * made all ppuwrite methods in leaf classes "final", because you cannot
    override them safely in subclasses to add more data (they finalise
    writing their ibentry)
  * removed "virtual" from all ppuload constructors for similar reason
    as above
  + added virtual (empty) ppuwrite_plaform() method that is called from
    tstoreddef/tstoredsym.ppuwrite(), which can be safely overridden in
    child classes to add extra data (called centrally from a new
    tstoreddef/sym.writeentry() method)
  + added virtual (empty) ppuload_platform() method that is called from
    tstoreddef/tstoredsym.ppuload(), which can be safely overridden in
    child classes to read the extra data (unfortunately cannot be called
    from one single location, and these calls had to be added for each
    generic subclass separately)

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27378 3ad0048d-3df7-0310-abae-a5850022a9f2
  * isolated segment-related functionality of tabsolutevarsym into i386/i8086-
    specific descendent classes and moved the code that deals with this in the
    code generator also to target-specific classes -> only ifdefs left in
    pdecvar

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27379 3ad0048d-3df7-0310-abae-a5850022a9f2