<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi everybody,<br>
    <br>
    I just want to inform you that ETHO-plugin for Windows runs as good
    on Windows 10 as on Windows 7.<br>
    <br>
    I did have some trouble because of a huge array (> 1000
    MegaBytes), but this has been resolved by now.<br>
    <br>
    EMIL Zeller comments on this:<br>
=================================================================================================================<br>
    <div class="gmail_extra">32-Bit Programme sind in Windows auf 2GB
      Speicher limitiert. Darin müssen Code, Heap und Stack Platz
      finden. Ihre Hauptdatenstruktur benötigt einen zusammenhängenden
      Block von > 1GB. Offensichtlich kann es passieren, dass kein so
      grosser Block mehr frei ist.</div>
    <div class="gmail_extra"><br>
    </div>
    <div class="gmail_extra">In der mit PELinker erstellten EXE-Version
      wird der ganze Code in einem Stück an einer niedrigen Adresse
      alloziert. Dadurch bleibt bis zur 2GB Limite ein grosses
      zusammenhängendes Stück frei.</div>
    <div class="gmail_extra"><br>
    </div>
    <div class="gmail_extra">In der Oberon-Umgebung werden die Module
      (mit Code) dynamisch auf dem Heap alloziert. Dadurch ensteht eine
      gewisse Fragmentierung des Heaps. Vorallem wenn man auch noch den
      Compiler verwendet und Module lädt und entlädt.</div>
    <div class="gmail_extra"><br>
    </div>
    <div class="gmail_extra">Sie könnten versuchen die Datenstruktur in
      kleinere Blöcke aufzuteilen. z.B.:</div>
    <div class="gmail_extra"><br>
    </div>
    <div class="gmail_extra">notes: ARRAY 24 OF POINTER TO ARRAY 3 OF
      ARRAY 500 OF ARRAY 64 OF NoteDesc;</div>
    <div class="gmail_extra"><br>
    </div>
    <div class="gmail_extra">Sie müssen beim initialisieren dann
      natürlich die 24 Arrays einzel allozieren.</div>
    <div class="gmail_extra"><br>
    </div>
    <div class="gmail_extra">i := 0; WHILE i < 24 DO NEW(notes[i]);
      INC(i) END;</div>
    <div class="gmail_extra">=================================================================================================================<br>
      Shortened english version follows:<br>
      ======================================<br>
    </div>
    32-Bit programs are limited under Windows to 2 GB. In this space
    Code, Heap and Stack must fit in. The main data structure (of my
    program)  needs a contiguous block of  > 1 GB.  <br>
    Obviously it may happen that such a large block is not available.<br>
    <br>
    In the EXE-version created with PELinker the whole code is allocated
    at a lower address. Therefore remains a larger space until the 2 GB
    limit.<br>
    <br>
    In Oberon it may happen that the Heap gets fragmented through
    dynamic loading and unloading modules.<br>
    <br>
    In my program I have the big array: <br>
    <br>
             <font face="Courier New">notes: POINTER TO ARRAY 24 OF
      ARRAY 3 OF ARRAY 500 OF ARRAY 64 OF NoteDesc;<br>
      <br>
    </font>Emil Zeller suggests instead:<br>
    <br>
    <font face="Courier New">    notes:  ARRAY 24 OF </font><font
      face="Courier New"><font face="Courier New">POINTER TO</font>
      ARRAY 3 OF ARRAY 500 OF ARRAY 64 OF NoteDesc;<br>
      <br>
      <font face="Helvetica, Arial, sans-serif">This will make smaller
        contiguous memory blocks and better fit in a fragmented memory
        structure.<br>
        <br>
        Regards,<br>
        Dieter<br>
      </font></font><br>
  </body>
</html>