Hab mir grad mal das Datenblatt angeschaut aber ich habe keine Ahnung
was du meinst. Falls du dich auf Seite 25 beziehst, da steht was ganz
anderes. Im Codevision Handbuch steht auf Seite 82 oben, man kann für
mega128 maximal 64K für Variablen verwenden. Problem des ganzen ist
einfach, das die Befehle (LDS,STS,...)der Megas nur 64K Addressieren
können. Also von 0x0000 bis 0xFFFF. 0x10FF hast du die I/O Ports und
den Internen SRAM. Wenn du also an eine Adresse zwischen 0x1100 und
0xFFFF schreibst ist das der Externe SRAM. Wenn du nun alle externen
Adressleitungen belegst, werden 64k angesprochen aber du verlierst 4K.
Du müsstest also das 1MB in Fenster a 64kb zerlegen. Das macht dann
1024kb/64kb=16 Fenster. Damit verliert man aber 16*4kb(64kb). Ich habe
das Fenster kleiner gewählt, denn die 32kb passen problemlos hinter die
4kb intern.
Wenn du nun in den Ram schreibst, musst du also erst eins von den 16
Fenstern auswählen(die oberen 4 Addressleitungen), dann kannst du deine
Daten im Ram ablegen. Ist das Fenster voll, nimm das nächste und schreib
einfach wieder ab 0x1100 rein.