Relocator

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Allgemeines[Bearbeiten | Quelltext bearbeiten]

Als Relocator (von engl. to relocate, zu dt.: umziehen) bezeichnet man Anwendungsprogramme, die dazu dienen, Software im Speicher zu verschieben, ohne dass deren Lauffähigkeit darunter leidet. D.h. alle Adressbezüge auf Daten und Programmteile werden dabei berücksichtigt. Ein recht häufiger Anwendungsfall ist, Musik inklusive des abspielenden Codes (Tracker) zu verschieben.

Nähere Erklärung[Bearbeiten | Quelltext bearbeiten]

Der Grund, warum man Assembler-Code nicht einfach an eine andere Startadresse speichern kann, liegt darin, dass einige Opcodes absolut adressieren, d.h. z.B. bei einem bei $1000 anfangenden Assembler-Programm - und nichts anderes sind SID-Tunes letztlich - wird zum Initialisieren über JMP $2000 an eine festgelegte Adresse gesprungen. Verschiebt man jetzt zum Beispiel den kompletten Code nach $2000, so muss das absolut adressierte Sprungziel $2000 in $3000 geändert werden. Um dies nicht mühsam händisch machen zu müssen, gibt es dafür entsprechende Funktionen bzw. Befehle bei Maschinensprachemonitoren oder bereits fertige Tools. Darunter sind einige speziell für das Relocaten von Tunes vorgesehen, die mit bestimmten Trackern programmiert wurden. Andere, ein bisschen universellere Tools sind solche, die z.B. mehrere Versionen eines Trackers abwärtskompatibel unterstützen oder aber sogar mehrere, mit verschiedenen Trackern erstellte SID-Player-Formate. Es gibt auch Relocator-Software, die speziell auf bestimmte Künstler und deren SID-Player zugeschnitten ist.

Software[Bearbeiten | Quelltext bearbeiten]

  • Allgemeine Relocatoren:
    • Maschinensprachemonitor Rat Mon 64
    • Maschinensprachemonitor SMON
  • Tune-Relocatoren:
    • Allround Relocator
    • Ben Daglish Relocator
    • DMC Relocator
    • Future Composer Relocator
    • Rob Hubbard Mover
    • Sound Master Relocater
  • Cross-Tune-Relocatoren
    • Sid reloc

Sidreloc[Bearbeiten | Quelltext bearbeiten]

Dieses Programm kann 91 % aller (nicht-BASIC) Tunes aus der HVSC #56 relocaten - davon 77 % fehlerfrei.[1]

REM Beispiel: delta.sid nach $1000 relocaten und unter delta_1000.sid speichern

sidreloc.exe -p 10 delta.sid delta_1000.sid

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. Informationen zum Sid reloc 1.0 auf www.linusakesson.net Sprache:englisch

Weblinks[Bearbeiten | Quelltext bearbeiten]