Beiträge von advotax im Thema „An welcher Adresse laufe ich?“

    Im Grunde genügt es, sich selbst in den Zieladressbereich zu verschieben und neu zu starten.

    Wär das einfacher? Schneller? Ginge auch nur, wenn Programmgröße < 1/2 freies RAM ist oder der Versatz < Programmgröße.

    Bei "Überlappungen" von gewollter und tatsächlicher Position im RAM:

    Offset < 0 - man müsste von "hinten" anfangen zu verschieben,

    Offset > 0 - man müsste von "vorn" anfangen,

    sonst Datenverlust.

    Wenn es ein sehr kleines Programm ist, dann ist vielleicht einfacher, auf Sprünge zu verzichten. :D

    Mit absolutem JSR geht es vielleicht doch.

    Man könnte an eine (bekannte) Adresse im ROM springen, an der ein RTS steht. Setzt natürlich ein (sichtbares und inhaltlich bekanntes) ROM voraus.

    Das RTS kann man natürlich auch selbst vorher ins RAM (z.B. bei $0002) schreiben und dann dahin springen...

    Das geht schon, wenn Du zuvor eine Hilfsroutine an eine bekannte Stelle schreibst:

    So in etwa dachte ich. Aus dem Rücksprung kann ich doch errechnen, wo das Programm beginnt, wenn ich weiß, wo im Programm (statischen Code vorausgesetzt) ich den Hinsprung platziere?!

    Als eine der ersten Instruktionen im Programmablauf dürfte das doch auf dem Stack (interrupt-)sicher sein? Oder soll das eine mehrfache/ständige Abfrage sein? Diddl