APPLICATIONSPROGRAMMATION ★ Reloc ★

Reloc (CPC Amstrad International)Applications Programmation
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Reloc ist ein Programm für jeden der sich schon geärgert hat, daß zwei seiner Maschinenspracheprogramme in dem selben Speicherbereich liefen, so daß er sie nicht zusammen verwenden konnte. Was nützten z.B. die besten Grafik-RSX-Routinen, wenn die Hardcopyroutine den gleichen Speicherbereich braucht. Um flexibel zu sein, braucht man relocalisierbare Programme, die in jede Adresse geladen und von dort aus gestartet werden können. Dies bedeutet aber mühselige Arbeit, wenn das alles mit der Hand geschehen soll, um im Assemblerquellcode eine Tabelle für jeden Label anzulegen und außerdem zwei Bytes mehr, pro Label. Reloc legt die Tabelle selbst an und braucht auch nur ca. 1 Byte pro Label.

So wird Reloc benutzt:

  1. Man assembliert sein Programm einmal mit ORG 0, merkt sich die Einsprungsadresse, die Länge und speichert es anschließend ab. Das gleiche Verfahren wird mit der Adresse &1000 angewendet. Bei dem Maxam Assembler geschieht das mit dem Write Befehl. Bei dem Devpac Assembler wird das mit der Option 16 ausgeführt. Bei dem Zen Assembler einfach mit dem LOAD Befehl.
  2. Man startet Reloc, gibt den Dateinamen, die Länge und die Ansprungadresse an.
  3. Man schreibt sich das Tabellenende, die Gesamtlänge und die 2. Ansprungadresse die angezeigt wird, auf. Und anschließend wählt man einen Dateinamen zum Abspeichern des relo-calisierbaren Programms . Nun kann man das Programm an eine beliebige Adresse laden und benutzen.

Das wird so gemacht:

l=lcrdeadresse (z.B.himem-Länge)
memory 1-l
load "Programmm",l

call 1

Nun kann man wenn man unbedingt Speicherplatz sparen will, eingeben:

memory1+Tabellenende.

Wenn man dies ausgeführt hat, muß man jetzt jedoch: call 1

call 1+ zweite Ansprungadresse verwenden.

Es ist auch möglich, ein kleines Ladeprogramm zu schreiben, der dies automatisch macht. Es könnte für eine RSX Erweiterung so aussehen (falls als Ansprungadresse für Reloc die RSX Initialisierungsroutine angegeben wurde):

10 input"Ladeadresse (Enter = höchst möglich)";a$
20 il a$="" then la=himem-

GesammtLänge + 1 else la=val(a$)

30 memory la-1
40 load"relocalisierbares Programm'Ma 50 call la: 'Relocalisieren und dann Aufruf der Initialisierungsroutine 60 memory la+TabellenEnde 70 print"Folgende RSX wurden instaliert:"
80 print "|FELL"
90 print" |HARDCOPY "
100 new

Das Programm ist in der Lage bis zu 16 kByte Code zu verarbeiten.

Es können nur dann Fehler auftreten, wenn die Quellprogramme auch im Assemblertext nicht relocalisierbar wären: wenn Absolutadressen im Programm getrennt als high und low Byte verarbeitet werden.

(A. Gobbi) , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1987
★ AUTHOR: A. Gobbi
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Reloc    (CPC  Amstrad  International)    GERMANDATE: 2022-08-02
DL: 74
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » RSX Input (Computer Partner)
» Applications » Extended Basic v1.0 (Kliment Andreev)
» Applications » RSX Short (Schneider CPC-Welt)
» Applications » RSX Speech System (Amstrad Action)
» Applications » Rsx - Fast Screen (CPC Amstrad International)
» Applications » Maxi Caractères
Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 307 millisecondes et consultée 420 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.