Nascom Journal

  

Juni 1981 · Ausgabe 6

Dann sucht der Relocator die Information „RELO“, rechnet die folgenden Adressen auf die physikalische Lage des Programms um und addiert (oder subtrahiert) das Displacement zu ihren Inhalten.

Nach Auffinden von 00 00 meldet der Relocator „Ready“ und springt zum Monitor zurück. Das Programm ist nun an gewünschter Stelle lauffähig. Sie können es von dort auch auf Cassette abspeichern (inklusive der Relocator- Informationen). Als Ausgangspunkt für weitere Verschiebung muß aber immer die Anfangsadresse verwendet werden, für die das Programm ursprünglich geschrieben wurde.


Dieses Programm läßt sich natürlich nur dann problemlos durchführen, wenn die Ursprungsprogramme durchsichtig sind und nicht zu viele direkte Sprünge enthalten. (Obwohl das Programmformat immer noch kleiner bleibt als bei TDL) .

Deshalb ein Aufruf an alle Leser, die Programme veröffentlichen:

  1. Vermeiden Sie möglichst direkte Sprünge!
    (Falls die Distanz für relative Sprünge zu groß wird, kann man Programmteile einfügen, die die Distanz verlängern, z.B............
                JR MARK 5
                .
                .
         MARK 5 JR ENDE etc.)
    
  2. Unterstreichen Sie auf jeden Fall alle Adressen, die bei Verschiebung verändert werden müssen. (Wird ja zum größten Teil schon gemacht.)
  3. Komfortabelste Lösung: Hängen Sie die Relocator-Information an Ihre Programme an. Für Anwender eines Assemblers:

    Ans Programm anhängen DEFM „RELO“ und dann die Marken +Displacement, die zu verschiebende Adressen enthalten. Normalerweise ist das Displacement „+1“ z.B. bei

         CALL  CD Adresse
         JP    C3 Adresse
         LD HL 21 Adresse
    

    Nur bei Verwendung der Index-Register wird es „+2“
    z.B. bei

         LD IX DD21 Adresse
    

    Vergessen Sie nicht, die „Ende“- Information 00 00 ! (Assembler: DEFW 0)

Hier als Abschluß das Hex-Dump des Relocators. (Wie gesagt: klein, voll verschieblich und einfach)

Seite 18 von 20