APPLICATIONSPROGRAMMATION ★ MAXAM ASSEMBLER AND EXPANSION ROM BOARD ★

EXTENSION ROM MAXAM (CPC Revue)MAXAM ROM (Computing with the Amstrad)MAXAM ASSEMBLER AND EXPANSION ROM BOARD (Popular Computing Weekly)MAXAM ASSEMBLER AND EXPANSION ROM BOARD (Home Computing Weekly)Maxam – Im ROM unschlagbar! (CPC Magazin)
★ 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 ★ 

MAXAM heißt er, der "maximale” Assembler von Arnor Ltd aus England - für alle CPC-Computer!

Für den CPC wird bereits eine Reihe von Assemblern angeboten. Welche Unterschiede dabei von Bedeutung sind, darüber mögen sich die Enthusiasten streiten. MAXAM schneidet bereits in der Cassetten- und Diskettenversion gut gegenüber den Mitbewerbern ab. Eine Besonderheit ist z.B. die Möglichkeit, Assemblerprogramme direkt in ein Basicprogramm einzubauen. Wirklich unschlagbar ist MAXAM jedoch als ROM,, wenn alles sofort nach dem Einschalten zur Verfügung steht und man sich nicht mehr um Ladeformalitäten und Speicherplatzbedarf kümmern muß. Diese Bequemlichkeit ist zur Zeit allerdings noch recht teuer. Bereits das ROM selbst kostet mehr als die Cas-setten-/Diskettenversion. Zusätzlich braucht man jedoch eine ROM-Erweiterungskarte.

Von Arnor, der englischen Herstellerfirma des MAXAM-ROMs, wird als Minimalsystem ein Modul mit fest eingelötetem MAXAM- oder PROTEXT-ROM angeboten. Dadurch sind die Kosten für ROM-Anfäger geringer. Wer später das System erweitern und weitere ROMs anschließen will, kann eine Zusatzkarte mit Steckplätzen für diese ROMs auf das MAXAM-Modul aufstecken.

Das Modul hat die Bezeichnung AD-2 (welche Unterschiede zum Vorläufer AD-1 bestehen, ist nicht bekannt). Es handelt sich um eine wirklich erstaunliche Konstruktion. Den Leuten von Arnor ist es auf beeindruckende Weise gelungen, die Busverlängerung, den Stecker für die Erweiterungskarte und die Platine mit der ROM-Auswahlschaltung auf kleinstem Raum unterzubringen. Das Modul wird auf den Erweiterungsport aufgesteckt. Dabei verschwindet ein Teil des Moduls im CPC-Gehäuse, so daß es (ohne Erweiterungskarte) fast unsichtbar ist. Beim CPC 664/6128 klappt das leider nicht so elegant. Da ist innen nicht soviel Platz. Zum Anschluß von AD-2 ist in diesem Fall sogar ein Adapter (Zwischenstecker) notwendig, so daß man bei Bestellungen unbedingt immer den CPC-Typ mit angeben muß. Das ROM selbst läuft auf allen CPCs.

Beim CPC 664/6128 Adapter erforderlich

Die Schwäche von AD-2 ist, daß die Konstruktion ausschließlich vom Erweiterungsport des CPC abhängt. Sobald man den Floppy-Controller aufsteckt, wackelt es arg, und man sollte dringend dafür sorgen, daß weitere mechanische Belastungen vermieden werden. Nach dem Einbau erscheint die Einschaltmeldung um eine MAXAM-Zeüe vermehrt. Weniger auffällig ist die neue Aufteilung des CPC-Speicherplatzes. MAXAM verbraucht 256 plus 4 Byte Speicherplatz, und um diesen Betrag verschiebt sich HIMEM nach unten. Soll ein Programm betrieben werden, das diese Änderung nicht verträgt (es gibt da ja schmerzliche Erfahrungen mit der vortex-Speicherer-weiterung), einfach den Befehl MAX-OFF eingeben. Der Rechner wird dann ohne MAXAM neu gestartet. Dem gleichen Zweck dient der Befehl ROMOFF für den Fall, daß mehrere ROMs angeschlossen sind und unter diesen eine Auswahl getroffen wérden soll.

Für die Arbeit mit ROMs ist auch noch der Befehl HELP vorhanden. Damit werden alle angeschlossenen ROMs aufgelistet. Man erfährt dadurch auch die aktuellen ROM-Nummern (wichtig für Experimente mit SASEM). Der Befehl HELP, romnr listet die Befehle des jeweiligen ROMs. Weitere für die ROM-Version spezifische Befehle sind MSH und MSL. Damit kann der Bildspeicher von seinem Standardbereich &C000 nach &4000 verlegt werden. Das ist eine Möglichkeit, die nur ein ROM-Assembler anbieten kann, da sonst der Speicherplatz nicht ausreichen würde. Aber wozu der Aufwand?

Das MAXAM-Handbuch sagt, daß es darum geht, "sideways RAM" im Speicherbereich ab &C000 zu bearbeiten. Es geht also um Speichererweiterungen. Damit im Zusammenhang stehen wohl auch die Befehle RAMON und RAMOFF, die in der zur Verfügung stehenden Ausgabe des Handbuches leider nicht erklärt werden. Da die Produkte von vortex in England unbekannt sind, kann man nur raten, ob es um die RAM-Erweiterung von dk'tronics geht oder einfach nur um den Zusatzspeicher im CPC 6128. Unabhängig davon besteht eine interessante Anwendungsmöglichkeit für diejenigen, die eigene ROM-Programme entwickeln wollen. Mit MSH und MSL können derartige Routinen nämlich gleich mit ihren richtigen Speicheradressen ab &C000, die sie später einmal im ROM haben müssen, entwikkelt und getestet werden.

Erweiterungs befehle

MAXAM stellt zunächst eine Reihe von Erweiterungs befehlen zur Verfügung. Diese müssen wie RSX-Befehle mit dem senkrechten Strich vorweg eingegeben werden. Die Hauptfunktionen werden dann über den Befehl MAXAM (auch die Abkürzung M ist zulässig) erreicht. Es erscheint das Hauptmenü mit einer Reihe von Speicherfunktionen. Unter anderem sind dies:

  • Initialise Block: Ein Speicherbereich wird mit einem bestimmten Wert (z.B. null) gefüllt.
    Move Memory Block: Verschieben eines Speicherbereiches.
  • Compare Blocks: Vergleichen von Speicherbereichen.
  • Find String: Suchen einer Zeilenfolge in einem Speicherbereich.
  • List Memory: Ein Speicherblock wird in der üblichen Form mit Hex-Werten und ASCII-Zeichen angezeigt.
  • Disassemble: Ein Speicherbereich wird disassembliert.
  • Relocate Block: Damit soll ein Maschinenprogramm so umgekrempelt werden können, daß es an einer anderen Speicheradresse arbeitet. In der Praxis wird das kaum funktionieren, da es keine sichere Methode zur Unterscheidung von Daten und Adressen gibt. Relokali-sieren bleibt Handarbeit.

Die Ausgabe kann wahlweise auch über den Drucker erfolgen. Die Bildschirmausgabe ist in MODE 2 oder vierfarbig in MODE 1 möglich. Der Wechsel innerhalb des Menüs ist jedoch nicht mit Basic-Befehlen, sondern nur mit RSX-Befehlen möglich. MAXAM stellt dafür einen eigenen MODE- Befehl (aus dem gleichen Anlaß auch CAT und SPEED) zur Verfügung. Der Disassembler beachtet die RESTART-Besonderheiten des CPC und gibt die nachfolgenden Bytes als Adresse aus. Die gelegentlich doch mal in Programmen eingesetzten "unbekannten” Z 80-Befehle sind leider auch MAXAM fremd, aber vermutlich kann man nie alles haben.

Für die RAM-Schwerarbeit eignet sich hervorragend der Menüpunkt "Edit Memory". Während für die anderen Funktionen immer die Anfangs- und Endadresse genau angegeben werden muß, ist hier eine Steuerung über die CUR-SOR-Tasten möglich, so daß man im RAM beliebig vorwärts und rückwärts blättern kann. Die Bildschirmausgabe ist wie bei List Memory, in MODE 1 aber nicht mehr so bunt. Hauptsächlich ist dieser Punkt ja auch zum Ändern des Speicherinhalts gedacht. Dazu wird die gewünschte Speicheradresse einfach mit dem Cursor angefahren und der neue Wert eingegeben. Mit der TAB-Taste kann dabei zwischen Hex- und ASCII-Bereich umgeschaltet werden.

Kernstück eines jeden Assemblers ist der Editor, der darüber entscheidet, wie einfach oder mühselig die Eingabe eines Assemblerprogrammes ausfällt. Bei MAXAM gelangt man über den Menüpunkt "Text Editor" in ein weiteres Menü, das es in sich hat. Wer will, kann damit gut Briefe oder auch längere Texte schreiben. Zwar ist es nicht möglich, Druckersteuerzeichen einzubauen, um das Druckbild zu gestalten (dazu braucht man dann doch ein "richtiges" Textverarbeitungsprogramm), aber sonst hat der MAXAM-Editor alles, was man braucht. Die Tastenfunktionen (CLR/DEL/CURSOR) sind so wie in Basic, so daß man nicht ständig umdenken muß. Zusätzliche Funktionen bestehen für die TAB-Taste (Tabulator) und COPY (Markieren von Textblöcken). Blöcke können verschoben, kopiert, unabhängig vom Gesamttext auf Cassette/Dis-kette gespeichert oder an die aktuelle CURSOR-Position geladen werden.

Ein deutscher Zeichensatz ist ganz normal mit Basic-SYMBOL-Befehlen möglich, allerdings muß dazu ein SYMBOL AFTER 0 gegeben werden. Eine Besonderheit ist, daß der freie Wechsel zwischen Textverarbeitung und Basic jederzeit möglich ist. Ein vorhandenes Basic-Programm bleibt erhalten. Der Text wird, solange der Speicher reicht (also maximal ca. 40 K) im Variablenbereich von Basic abgelegt. Wenn die Textbearbeitung beendet ist, sollte man mit dem MAXAM- Befehl CLEAR den Text löschen und Basic von dieser Belastung befreien.

Modify-Funktion

Auch Basic-Programme können über den Editor eingegeben werden. Sinnvoller als eine direkte Eingabe ist das eventuell, wenn man längere Programmlistings abtippen will. Der Editor bietet als Hilfe die Modify-Funktion. Damit können nachträglich Zeilennummern und "Quotes" ('), die dem REM- Befehl entsprechen, eingefügt werden. Die Hauptaufgabe des Editors ist naturgemäß die Eingabe von Assemblertexten. Eine Besonderheit ist, daß der Assembler unterschiedliche Bezeichnungsweisen versteht und dadurch einerseits zu anderen Assemblern kompatibel ist, andererseits z.B. spezielle CPC-Eigenhei-ten bietet, wie die Eingabe von Hex-Wertenmit

Der Text wird über das Editormenü assembliert. Dabei werden nicht nur Fehlernummern, sondern richtige Fehlermeldungen (in Englisch) ausgegeben. Zusätzlich erscheinen Warnungen, z.B. bei relativen Sprüngen, die nur über eine begrenzte Distanz möglich sind. Steht der Error-Zähler endlich auf null, so kann mit einem weiteren Menüpunkt das Maschinenprogramm ausgeführt werden. Um den Maschinencode abzu-speichem, muß man in den Assemblertext eine Write-Anweisung einbauen. Ein weiteres MAXAM-Plus ist, daß es damit auch möglich ist, ein COM-File für CP/M zu erzeugen. Mit einem einfachen BIN-Füe klappte es allerdings nicht. Die Ladeadresse richtete sich beim besten Willen nicht nach der ORG-Anweisung: Es blieb nichts anderes übrig, als das Menü zu verlassen und konventionell mit SAVE "name”, b,... abzuspeichern.

Weitere Eigenheiten: Adresswerte für ORG- und EQU-Anweisungen können auch aus zusammengesetzten Ausdrücken bestehen. In diesem Fall müssen die verwendeten Variablen bereits vorher im Text definiert sein. MAXAM kann die Werte nicht aus den später folgenden Programmteilen berechnen.

MAXAM verwendet für Breakpoints wie allgemein üblich den RESTART 6. Dieser wird jedoch nur beim Einschalten (RESET) gesetzt. Wenn man zwischendurch z.B. den Monitor von vortex benutzt, ist der MAXAM-Vektor zerstört und müßte mit POKEs oder Edit Memory wiederhergestellt werden.

Die meisten CPC-Besitzer werden die Maschinenspracheprogrammierung kaum zu ihrem Hauptberuf machen wollen. Hauptsächlich wird es darum gehen, kurze Routinen zu erstellen. Die schon erwähnte Möglichkeit, Assembler befehle in ein Basicprogramm einzubauen, ist dazu ideal. Die Assemblerteile müssen in REM-Zeilen untergebracht werden (was ja z.B. der Text-Editor schon unterstützt). Der Befehl ASSEM-BLE (sobald alles fehlerfrei läuft, kann die Kurzform ASSEM eingesetzt werden) erzeugt den Maschinencode. Das Programm wird dann einfach mit CALL aufgerufen.

Völlig neue Programmiertechniken sind dadurch möglich, daß mit PUT und GET Werte zwischen Basic und dem Assembler ausgetauscht werden können. Mit einer IF-Anweisung kann die Assemblierung auch von bestimmten Bedingungen abhängig erfolgen. Bei der Ausführung des Maschinenprogramms bestehen diese Möglichkeiten nicht, dazu muß man die herkömmlichen Methoden anwenden (Parameterübergabe mit CALL). In der Regel wird ein Maschinenprogramm, sobald es fertig ist, für sich gespeichert und dann später vom Basic-Hauptprogramm nach Bedarf hinzugeladen. Kann es überhaupt sinnvoll sein, den vollen Assemblerquelltext im Basic-Programm stehenzulassen und auch jedesmal erst wieder neu zu assemblieren?

Als Textobjekt für diese Frage diente das HIDUMP-Programm (CPC Magazin 4/86) mit der Maschinencodelänge von 768 Byte. Ein Basicladeprogramm mit den Hexwerten in DATA-Zeilen hat bereits eine Länge von 2 V2 K. Mit MAXAM-Assemblertext in REM-Zeüen sind es 4 V2 K. Die Umwandlungszeit zur Erzeugung des Maschinencodes dauert in beiden Fällen ca. 7 Sekunden. Bei längeren Programmen gibt es für diese Methode also eine praktische Grenze.

Für die Beurteilung von MAXAM ist schließlich noch das Handbuch wichtig. Nach einer Einleitung und Hinweisen, z.B. zum Laden der Diskettenversion, folgt ein sanfter Einstieg in die Arbeit mit dem Assembler, begleitet von kurzen Beispielprogrammen. Alle Anweisungen und die Menüs sind in den weiteren Abschnitten erklärt. Nützlich sind auch zahlreiche kleine Tips. Ein Anhang bringt dann noch einmal eine übersichtliche Zusammenstellung aller Funktionen und weitere Informationen. Für das Handbuch reicht einfaches Computer-Englisch, es gibt aber auch eine deutsche Fassung.

Gerhard Knapienski, CPC Magazin

★ PUBLISHER: ARNOR
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: COMMERCIALE
★ AUTHOR(S): ???

Cliquez sur l'image pour voir les différents packages (2). 



★ AMSTRAD CPC ★ DOWNLOAD ★

Files:
» MAXAM  v1.14    ROMDATE: 2011-07-18
DL: 1278
TYPE: ZIP
SiZE: 14Ko
NOTE:
.HFE: Χ
.ROM: √

» MAXAM  v1.1    ROMDATE: 2002-12-04
DL: 1298
TYPE: ZIP
SiZE: 14Ko
NOTE:
.HFE: Χ
.ROM: √

» MAXAM  v1.50    ROMDATE: 2011-07-18
DL: 1766
TYPE: ZIP
SiZE: 14Ko
NOTE:
.HFE: Χ
.ROM: √

Adverts/Publicités:
» Arnor-MaxamDATE: 2025-06-18
DL: 521
TYPE: image
SiZE: 253Ko
NOTE: Supplied by archive.org ; w1113*h1588

» Arnor-Maxam    (Amstrad  Assembler)    ENGLISHDATE: 2024-04-17
DL: 88
TYPE: image
SiZE: 30Ko
NOTE: w261*h402

» Arnor-Maxam    (Amstrad  Software  in  ROM)    ENGLISHDATE: 2014-05-05
DL: 678
TYPE: image
SiZE: 91Ko
NOTE: w412*h423

» Arnor-Maxam    (Annoucing  MAXAM  for  Amstrad  CPC464)    ENGLISHDATE: 2015-01-08
DL: 703
TYPE: image
SiZE: 148Ko
NOTE: w860*h604

» Arnor-Maxam    ADVERT    GERMANDATE: 2014-05-05
DL: 592
TYPE: image
SiZE: 59Ko
NOTE: w442*h316

» Arnor-Protext-Maxam-Prospell-Pocket  Protext    ADVERT    ENGLISHDATE: 2014-05-05
DL: 1300
TYPE: image
SiZE: 351Ko
NOTE: w967*h1367

» Arnor-Protext-Maxam-Prospell-Promerge-Rombo-Utopia-BCPL    ADVERT    ENGLISHDATE: 2014-05-05
DL: 1396
TYPE: image
SiZE: 359Ko
NOTE: w967*h1367

» Arnor-Protext-Utopia-MaxamDATE: 2015-01-08
DL: 1038
TYPE: image
SiZE: 522Ko
NOTE: w1917*h1367

» Arnor-Protext-Utopia-Maxam    ENGLISHDATE: 2015-01-08
DL: 717
TYPE: image
SiZE: 240Ko
NOTE: w892*h619

» Maxam    (Happy  Birthday  Maxam)DATE: 2015-01-08
DL: 666
TYPE: image
SiZE: 154Ko
NOTE: w901*h602

Covers/Packages:
» Arnor-Maxam    (Release  ROM)    ENGLISHDATE: 2023-04-07
DL: 138
TYPE: image
SiZE: 638Ko
NOTE: w3075*h1841

» Arnor-Maxam    (Release  TAPE)    ENGLISHDATE: 2023-04-07
DL: 88
TYPE: image
SiZE: 566Ko
NOTE: w2573*h1564

Media/Support:
» Arnor-Maxam    (Release  ROM)    ENGLISHDATE: 2024-04-06
DL: 95
TYPE: image
SiZE: 59Ko
NOTE: Uploaded by CPCLOV ; w632*h800

Manuels d'utilisation & docs:
» Arnor-Maxam    (Jessico)    FRENCHDATE: 2023-01-17
DL: 742
TYPE: PDF
SiZE: 4261Ko
NOTE: Scan by hERMOL ; 19 pages/PDFlib v1.6

» Arnor-Maxam    (Release  ROM-TAPE-DISK)    ENGLISHDATE: 2014-05-05
DL: 18164
TYPE: PDF
SiZE: 1606Ko
NOTE: 51 pages/PDFlib v1.6

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

Lien(s):
» Applications » Maxam 2
» Applications » Maxam Turboass Convert
» Applications » Arnor - Prowort
» Applications » Arnor - Prospell
» Applications » Arnor - Promerge Plus
» Applications » Arnor Prospell ROM
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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.732-desktop/c
Page créée en 734 millisecondes et consultée 11594 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.