Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Gordon, > > > Beim Untersuchen des OS kann ich ein paar Bereiche > > nicht einordnen: > > > > 0x0BF6 bis 0x0E72 > > 0x17F2 bis 0x1916 > > 0x2570 bis 0x25CE > > 0x25E4 bis 0x2648 > > > > Stehen in diesen Bereichen eigentlich verwertbare Daten? > > im 1. Bereich scheinen debug-informationen zu liegen, die > > letzteren Bereiche enthalten m.E. sinnlosen Code... > > Es gibt einige freie Bereiche im OS, die durch die Optimierung bei > OSOPT_V2 entstanden sind. > Die von Dir genannten Bereiche enthalten alles andere als sinnlosen Code. ;-) > Hast Du Dir schonmal das von Eric Hospel disassemblierte OS angesehen ? > Im Adressbereich 0x200 bis 0x347 befinden sich Festtexte > Im Addresbereich 0x348 bis 0x707 befinden sich diverse Sprungtabellen. > Im Adressbereich 0x706 bis 0xB07 befinden sich die Sprungtabellen für die VM-Codes. > (vgl. vmcodes.c2) > Im Adressbereich 0xB08 bis 0x127befinden sich weitere Sprungtabellen. > Im Adressbereich 0x17F2 bis 0x1916 befinden sich Routinen, die zum Initialisieren > von "Data Page Address Pointer" benötigt werden. > Im Adressbereich 0x2570 bis 0x25CF sind die Flash-Lösch-Routinen ausgelagert, > welche vor der Benutzung in den internen RAM-kopiert und dort ausgeführt werden. > Im Adressbereich 0x25E4 bis 0x2649 ist nochmals dasselbe, nur für die Flashschreibroutinen. > > > Außerdem ist mir aufgefallen, das bei vielen Funktionen > > #8 als Parameter für EXTS-Aufrufe übergeben wird. > > Kommen eigentlich außer > > * SEGMENT 0 (Programm) > > * SEGMENT 3 (cc2tools) und > > * SEGMENT 8 (RAM) > > noch andere Segmente zum Einsatz? > > Was meinst Du mit "cc2tools" ? > Vom OS selbst werden nur die Segmente 0, 4, 5, 6 und 7 benutzt. > 0 = OS > 4, 5 = VM-Codes (Programm) > 6, 7 = Konstantenspeicher > (das steht sehr schön im Handbuch ;-) ) > > Die Segmente 1, 2 und 3 sind quasi frei und können für Assemblerprogrammierung und sonstige > Daten verwendet werden. (Segmente 1 und 2 erst seit OSOPT V3.0) > Segment 3 wide eben auch primär für ASM-Treiber benutzt. > (z.B. sys0002.hex, flash.hex, i2ccom.hex etc.) > > > außerdem: > > Wo ist der Unterschied zwischen > > <asm> > > CALLS L0A176 (mit RETS-Rücksprung) > > RETS > > </asm> > > und > > <asm> > > JMPS L0A176 (mit RETS-Rücksprung) > > </asm> > > Vom Programm ablauf, keiner. ;-) > Da aber das OS ursprünglich in C geschrieben wurde, gibt es eben kaum JMPS/A. > Das zweite Konstrukt ist geringfügig schneller und hat eine Verschachtelung weniger. > > MfG André H.