APPLICATIONSDIVERS ★ Prommer 80 am Schneider ★

Prommer 80 (Computer Technik)Applications Divers
★ 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 ★ 

EPROM-Simulator an den CPCs

Über den ECB-Adapter aus Heft 12/85 läßt sich der Prommer 80 (c't 2/85) ohne weitere Hardware-Änderungen problemlos an einen CPC anzuschließen. Allerdings muß man die Treiber-Software an die 16-Bit-Portadressen, an das Timing und den geringen Speicherumfang anpassen.

Für seine'Brennfunktion' benötigt der Prommer 80, wie in c't 2/85 beschrieben, eine zusätzliche Gleichspannung von 9 bis 12 Volt. Bei der in Turbo-Pascal geschriebenen Prommer-Software sollte es eigentlich kein Problem sein, statt mit 8-Bit-Ports mit den für den Schneider erforderlichen 16 Bits zu arbeiten. Dazu müßte man nur die Adressen als INTEGER und nicht als BYTE definieren und könnte so weiterhin das PORT-Array benutzen.

Beim Schreiben auf einen Port (OUT-Befehle) klappt das auch wunderbar, aber wo käme man hin, wenn es auch beim Lesen (IN) so einfach wäre. Zwar verwendet der Turbo-Compiler auch hierfür mit IN L,(C) die indirekte Adressierung über das C-Register, jedoch haben die Turbo-Schöpfer bei Borland leider vergessen, dafür zu sorgen, daß das B-Register richtig gesetzt wird. Dieses B-Register muß ja bei indirekten I/O-Zugriffen die obere Adreßhälfte enthalten.

Beim 16-Bit-IN hilft demnach bislang - nur noch der Ausweg über eine INLINE-Funktion, die das BC-Register mit der Portadresse (als INTEGER) lädt und als Ergebnis das eingelesene Byte liefert.

Eine ‘Inline'-Funktion ermöglicht das Lesen von 16-Bit-Ports unter Turbo-Pascal.

FUNCTION INP (P:INTEGER):BYTE; VAR I:BYTE;
BEGIN
INLINE (
$ED/$4B/P/
$ED/$78/
$32/I
);
INP:=I
END; (* INP *)

Welche I/O-Adressen man letztendlich wählt, hängt vom CPC-Typ und der übrigen Peripherie ab. Beim Prommer lassen sich wie bei den meisten (ordentlichen) ECB-Karten die oberen vier Adreßbits beliebig wählen. Bei dem im Heise-Software-Service erhältlichen Programm sind FBD0H bis FBDFH als Prommer-Adressen auserkoren, so daß sich für den Prommer die Schalterstellung ergibt:

1 off 2 on 3 off 4 off

Das milgelieferte Installer-Programm ermöglicht es aber auch, das Treiberprogramm auf andere Prommer-Adressen ‘umzubiegen'.

In Lagen

Einige Probleme bereitet der doch recht kleine freie Speicherbereich (TPA) beim CPC 464/ 664. Wenn man nicht über eine RAM-Erweiterung verfügt und dennoch neben dem Treiberprogramm (als COM-File) 16 KByte Platz für ein 27128-EPROM benötigt, muß man von einer besonderen Technik Gebrauch machen: den Overlays.

Overlays sind Programm- oder Datenteile, die auf Diskette ausgelagert sind und nur bei Bedarf hinzugeladen werden. Dadurch können sich beispielsweise mehrere Prozeduren einen Speicherbereich teilen.

Turbo-Pascal bietet glücklicherweise einen außerordentlich einfachen Umgang mit Overlay-Prozeduren an: man braucht sie bloß mit dem Präfix 'Overlay' zu kennzeichnen. Der Compiler schreibt aufeinanderfolgende Overlay-Prozeduren in eine Overlay-Datei und reserviert dann soviel Speicherplatz, wie die längste Prozedur benötigt.

Beim Prommer-Programm sind im wesentlichen die Prozeduren (schreiben und lesen von HEX-oder COM-Dateien) als Overlay definiert, die ohnehin auf die Diskette zugreifen, so daß man das zusätzliche Laden der jeweiligen Prozedur kaum bemerkt.

Der Begriff COM-Datei dient in diesem Zusammenhang nur zur Abgrenzung von den HEX-Dateien (Intel-Hex-Format), die die Hex-Bytes in ASCII-Form gespeichert enthalten. Es sind mit ‘COM-Datei' also auch alle anderen 'binären' Dateien gemeint, die Extensions wie BAS, BIN, TEX und so weiter besitzen.

Einschlüsse

Auch wenn man die Fehlermeldungen von Turbo-Pascal nicht mitlädt, stehen normalerweise nur rund 8 KByte Speicher für das Pascal-Programm zur Verfügung. Daher läßt sich die gesamte Source nicht einmal in den Arbeitsspeicher laden, geschweige denn kompilieren. Aus diesem Grund ist das Quellprogramm in mehrere sogenannte Include-Dateien zerlegt, die man nacheinander laden und bearbeiten kann.

Es zeigte sich aber, daß selbst ein Aufteilen der Pascal-Source in etwa 20 ‘Includes' nicht zu kompilieren war (error 99: Speicherüberlauf). Da uns eine noch weitere Unterteilung als zu mühsam erschien und glücklicherweise gerade eine Vortex-Speichererweiterung als Testgerät vorlag, wurde die Chance genutzt und das Programm mit etwas mehr Speicherreserve kompiliert. Das resultierende COM-File ist jedoch weiterhin auf den normalen Speicherumfang (Endadresse auf 9F00h) ausgerichtet, so daß es auf jedem CPC unter CP/M 2.2 hoffähig ist.

Wer Änderungen am Programm vornehmen möchte und zum Kompilieren nicht über eine Speichererweitcrung verfügt, muß also entweder versuchen, mit wesentlich mehr Includes zum Ziel zu kommen, oder sich auf einem anderen CP/M-Rechner mit größerem Speicher das COM-File erzeugen. Bei Formatproblemen kann übrigens SuperTape (c't 11/85 und 11/84) oftmals sehr hilfreich sein.

Das umfangreiche Pascal-Quellprogramm würde natürlich jeden Rahmen für eine Veröffentlichung sprengen; es ist aber vollständig auf Kassette zusammen mit dem kompilierten Treiberprogramm, einem Prommer-Testprogramm und einer Beschreibung ‘READ.ME' beim c't-Software-Service erhältlich.

C'T 8602

★ PUBLISHER: Computer Technik (c't)
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: Andreas STILLER
 

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

Lien(s):
» Hardware » ECB-Adapter fuer alle CPCs (Computer Technik)
» Hardware » ECB-Bus
» Hardware » Der ECB-Bus (Computer Technik)
» Hardware » Interface ROM - Prommer 80
Je participe au site:

» 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 690 millisecondes et consultée 101 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.