APPLICATIONSPROGRAMMATION ★ CPCASS : CPC-ASSEMBLER V4.2 (CPC AMSTRAD INTERNATIONAL) ★

CPCass : CPC-Assembler v4.2 (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 ★ 

Einem Oldie Dampf gemacht
Der CPC-Assembler V 2.0 jetzt wahnsinnig schnell

Ein Proerammierwerkzeug für den CPC, das 1986 und als verbesserte Version 1988 für Schlagzeilen sorgte, wurde jetzt weiterentwickelt. Unter Nutzung des CPC-Assembler V2.0, der größtenteils in BASIC geschrieben ist, wurde sein verbesserter Nachfolger, der CPC-Assembler V4.2, geschaffen.

Cliquez sur l'image pour l'agrandirCliquez sur l'image pour l'agrandir

Wer seit der Veröffentlichung in Ausgabe 1/86 beziehungsweise Ausgabe 6/88 den CPC-Assembler nutzt, weiß seine Vorzüge zu schätzen. Aber seine Nachteile, zum Beispiel die geringe Geschwindigkeit, sind auch nicht zu übersehen. Hier schlägt nun ein neues Programm in die Bresche.

Es wurde, man beachte, mit dem oben genannten Assembler entwickelt und ist in seiner Bedienung mit diesem identisch. Es hat natürlich außer der höheren Geschwindigkeit noch einige andere Verbesserungen. Dies sind die Abspeicherung der Maschinenprogramme als COM-Dateien und für CPC-6128-Benutzer die Einbeziehung des größeren Speichers. Um das Programm zu starten, geben Sic
RUN“CPCASS.bas

ein. Der Assembler wird nun geladen und gestartet. Ist das Programm bereits im Speicher, brauchen Sie nur die F1-Taste zu betätigen, und der CPC-Assembler wird aktiviert. Nun werden Sie nach dem Namen des Quelltextes gefragt. Hierbei kann es sich um einen im BASIC-Format oder im ASCII-Format abgespeicherten Quellcode handeln. Dieser wird mit Hilfe des BASIC-Editors entwickelt, wobei man darauf achten sollte, daß am Zeilenanfang immer ein REM-Zeichen steht. Hier ein Beispiel:

10 'LD HL, &4000
20 'LD DE, &4001
30 'LD BC, &3FFF
40 'LDIR
50 ' RET

Bei der Anwendung muß man sich also nicht erst wieder an einen neuen Editor gewöhnen, was wohl ein entschiedenes Plus dieses Programms sein dürfte. Der Assembler kennt die übliche Z80-Mnemonik; er macht keinen Unterschied bei den Definitionsbefehlen. Beispielsweise ist DB gleichbedeutend mit DEFB. Folgende Pseudobefehle können benutzt werden:

  • ORG Adresse — bestimmt die Adresse, ab der das assemblierte Maschinenprogramm abgelegt wird und lauffähig ist.
  • PUT Adresse — bestimmt die Adresse, ab welcher das assemblierte Programm abgelegt wird; muß nicht identisch mit der späteren Ladeadresse sein.
  • PUT2 — legt das assemblierte Programm in den zweiten 64-kByte-Block.
  • Label EQU Wert — weist dem Label einen Wert zu.
  • DEFB n — schreibt das Byte n an die aktuelle Adresse.
  • DEFW nn — schreibt den 16-Bit-Wert nn an die aktuelle Adresse.
  • DEFM “Text“ — schreibt den angegebenen Text an die aktuelle Adresse.
  • DMX — funktioniert wie DEFM, nur wird beim letzten Zeichen das siebente Bit gesetzt.
  • DEFS n — reserviert n Bytes ab der aktuellen Adresse.
  • END — beendet das Assemblieren.
  • FADD “Name“ — assembliert die angegebene Datei dazu.

Während des Assemblierern kann man sich auf Wunsch das Listing auf dem

Bildschirm anzeigen lassen. Unterdrückt man dieses, arbeitet der Assembler natürlich schneller, zur Kontrolle wird in diesem Fall in der linken oberen Ecke ein blinkender Strich angezeigt. Dies ist notwendig, da der Assembler sich nicht gegen Überschreiben schützt. Stürzt er in einem solchen Fall ab, merkt man dies sofort und verbringt nicht unnütz die Zeit mit Warten.

Ist die Assemblierung beendet, werden die Markentabelle und eine Meldung über die Fehlerzahl ausgegeben. Anschließend wird gefragt, ob die Datei abgespeichert werden soll. Ist dies der Fall, muß man nun bestimmen, ob das Maschinenprogramm eine COM- oder BIN-Datei werden soll.

Bei der Initialisierung des Assembler werden folgende RSX-Befehle installiert:

|CAT — führt einen Cat-Befehl mit Cat-Buffer im dafür vorgesehenen Bereich aus. Beim CPC 6128 liegt dieser im zweiten 64-kByte-Spcichcr, beim 464/664 ab &6800 (kann mit |BUFFER verlegt werden).

|BUFFER, catbuf, udefbuf, labbuf — hiermit kann man die verschiedenen Buffer verschieben. Beim CPC 6128 liegen diese alle im zweiten 64-kByte-Spcicher und sollten daher nicht verschoben werden. Beim CPC 464/664 kann man sie je nach Bedarf größer oder kleiner machen.
Bedeutung der Buffer:
catbuf — 2048-Bytes-Buffer für den

|CAT-Befehl.
udefbuf - hier beginnt der Buffer für Undefinierte Label.
labbuf - hier beginnt der Buffer für definierte Label.
Beim CPC 464/664 sollte man darauf achten, daß die Buffer immer groß genug gewählt werden. Ein definiertes Label benötigt jeweils 8 Bytes, ein Undefiniertes 11 Bytes. Beim CPC 6128 liegen diese Buffer in zwei verschiedenen 16-kByte-Blöcken des zweiten 64-kByte-Bereichs; es haben also bis zu 2048 definierte und bis zu 1489 Undefinierte Labels auf einmal Platz. Der Cat-Buffer liegt in einem dritten 16-kBytc-Block.

|LIST,“ < Label > “ — listet ab der Zeile, die mit dem Label beginnt. Es werden bis zu sechs Stellen voneinander unterschieden (gilt allgemein).

|L ,“< Zeilenanfang > “ - listet die BASIC-Datei ab der so beginnenden Zeile.

|AUTO, (Step), ““ - Autobefehl ab der entsprechenden Zeile mit Schrittweite Step. Schrittweite muß nicht angegeben werden. Außerdem legt der Assembler folgende Befehle auf die Funktionstasten:

< F0 > — CALL &8200
< F3 > — |ERA"*.bak
< F4 > — |LIST,""
< F5 > — |CAT
< F6 > — MODE 2: CALL &BC02
< F7 > — LIST
< F8 > — |L,""
< F9 > — |AUTO,“

Diese Funktionstastenbelegung kann aber jederzeit den eigenen Belangen angepaßt werden, man braucht nur Zeile 110 zu editieren.

Der Assembler übersetzt alle Z80-Befehle, auch die Kombinationen mit den Registern IXH, IXLJYH.IYL, also den 8-Bit-Registern High und Low von IX und IY. Hierbei muß man darauf achten, daß zwar alle Kombinationen übersetzt werden, aber nur solche funktionieren, die der Z80-Prozessor auch kennt.

Die Möglichkeit, zu einem Label noch einen festen Wert zu addieren, besteht ebenfalls.

Beispiel: LD HL, label*&100 Findet der Assembler einen solchen Ausdruck, wird HL mit dem Wert des Labels plus dem zweiten Wert, in diesem Fall & 100, geladen.

Befindet sich der CPC-Assembler nun im Speicher, ist dieser beim CPC 6128 folgendermaßen belegt:

&8000-&9C9F : Assembler Zweiter 64-kByte-Speicher:

  1. Block: Platz für Binärcode &4000-&7FFF (ansprechen mit PUT2)
  2. Block: Label ab &4000
  3. Block: Undefinierte Label ab &4000
  4. Block: Buffer für Disketten-Operationen wie |CAT

Bei den Typen CPC 464 und 664 ist er dagegen folgendermaßen belegt: &6800-&6FFF: Buffer für Disketten-Operationen &7000-&77FF: Label &7800-&7FFF: Undefinierte Labels &8000-&9C9F: Assembler Der CPC-Assembler besteht aus den Dateien CPC ASS. BAS und CA. BIN. Die Datei CA.LDR erstellt die Datei CA. BIN.

Bei dieser Version des Assemblers wurde aus Platzgründen darauf verzichtet, ein Programm einzubinden, das einen Datalader erzeugt. Dafür gibt es in diesem Fall das Zusatzprogramm MAKER. Nach dessen Start erfragt das Programm den Namen der Binärdatei, die in einen Datalader umgewandell werden soll. Anschließend können die erste Zeilennummer und die Schrittweite des Dataladers angegeben werden. Die nun gebildete BASIC-Datei wird unter dem alten Namen, aber mit der Erweiterung BLD, abgespeichert.

Roland Barthel/jg , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1991
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1991
★ AUTHOR: Roland Barthel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Aucun fichier de disponible:
» Vous avez des fichiers que nous ne possédons pas concernent cette page ?
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » DimmerScript (CPC Amstrad International)
» Applications » Locoscript 2
» Applications » Superscript (Schneider Magazin)
» Applications » Locoscript 3
» Applications » Locoscript - all you ever need to know
» Applications » PCW-to-PC : Transfer Package for Locoscript PC
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» 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 163 millisecondes et consultée 1046 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.