HARDWARE ★ Programmübertragung von CPC 464 zum C64 ★

Programmuebertragung von CPC 464 zum C64 (Computer Schau)
★ 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 ★ 

Leider hat auch der CPC 464 der Firma Schneider, so wie viele seiner Konkurrenten, keinen eingebauten Maschinensprache- oder Hexmonitor. Will man aber mehr über diesen Computer wissen, dann sind Hilfsmittel dieser Art unbedingt erforderlich. Dazu soll das - von uns „Hexpeeker” genannte -Programm dienen.

Oft ist es für Computerbesitzer von Interesse, Basic-Programme von einem zu einem anderen Computersystem zu übertragen. Handelt es sich um Computersysteme unterschiedlicher Fabrikate, so ist dies in vielen Fällen - selbst für Spezialisten - nur mit großem Aufwand möglich. Das Problem liegt meist in unterschiedlichen Formaten der Massenspeicher, wie Bandaufzeichnungsverfahren oder Diskettenformate. In diesem Falle gibt es dann üblicherweise nur die Möglichkeit, anhand eines ausgedruckten Programmes (Programmlisting) die entsprechenden Eingaben, also die Programmeingabe, von Hand durchzuführen. Bei kleineren Programmen mag dies noch relativ einfach sein, bei größerem Programmumfang aber artet eine derartige Tätigkeit in „echte Arbeit” aus. Daß es aber, selbst bei zwei doch relativ unterschiedlichen Computern wie den beiden obengenannten Systemen, möglich ist, zeigen wir in diesem Artikel, und auch das Programmlisting ist mit abgedruckt. Außerdem hoffen wir, mit diesem Artikel Anregungen zu geben, wie solche Lösungen auch mit anderen Computern erreicht werden können.

Ein sinnvoller Grund für derartige „Überspielungen“ ist also, zeitraubende Abtipparbeiten zu ersparen. Daß derartig übertragene Programme aber nicht unbedingt in der dann vorliegenden Form im „Empfänger-Computer“ lauffähig sind, leuchtet jedem ein, wenn er berücksichtigt, daß beide Computer stark unterschiedliche Basic-Befehlssätze haben. Wurde aber das Programm so geschrieben, daß es nur die Syntax und die Befehlsworte des C64 beinhaltet und außerdem keine systemspezifischen Peeks, Pokes usw., dann ist es sofort nach der Übertragung lauffähig.

Inwieweit nach der Überspielung noch Änderungen durchzuführen sind, hängt also von dem zu übertragenden Programm ab.

Ein anderer Grund für eine derartige Übertragung von Programmen kann aber auch sein, daß man mangels eines eigenen Druckers sein Programm, z. B. bei einem Bekannten, der den C 64 mit entsprechender Peripherie besitzt, ausdrucken kann. Bei uns war es so, daß es etwas Probleme gab, den zum CPC 464 gehörenden Drucker zu erhalten. Deshalb sannen wir auf einen Ausweg, um Sie doch mit Programmen für den. „Schneider“ versorgen zu können. Zwischenzeitlich haben wir natürlich den Drucker; aber es hat sich gezeigt, daß es drucktechnisch für uns besser ist, die Ausdrucke über den MPS 802 (den Commodore-Drucker) zu machen. (Anmerkung des Chefredakteurs: Der Autor flunkert, er beherrscht die Commodore-Systeme besser als die Schneider-Geräte, aber er bemüht sich!)

(Anmerkung des Autors: Stimmt fast, aber es ist nur eine Frage der Zeit, wann ich den Schneider ebenso beherrsche! Außerdem warder Schneider-Drucker zum entsprechenden Zeitpunkt wirklich nicht lieferbar!)

Scherz beiseite, nun wieder zum eigentlichen Thema.

Zwei Stecker, etwas Draht und ein kleines Programm

Wie geschieht die Ausgabe vom Schneider? Hierzu benützen wir den Druckerausgang des CPC, an dem die Daten bei jedem (List-) Druckvorgang ja ausgegeben werden und „lügen“ dem sendenden Schneider vor, er solle nun ausdrucken. An diesem Anschlußport aber haben wir - bereits vorher - mittels eines passenden Platinensteckers und einem lladrigen Kabel die Verbindung zu einem ebenfalls passenden Stecker und damit zum User-Port des C 64 hergestellt. (Dieses Verbindungskabel kann sehr leicht selbst hergestellt werden. Die entsprechende Tabelle finden Sie in diesem Artikel. Überprüfen Sie vor dem Anschluß und der Inbetriebnahme aber bitte mehrmals die Korrektheit Ihrer Lötarbeit, damit keiner der angeschlossenen Computer Schaden erleidet.) Den Rest erledigen die entsprechenden Befehlseingaben in die beiden Computer und natürlich vor allem das im C 64 stehende, wirklich sehr kurze Programm.

Wer zweimal lügt...

Der Trick an der ganzen Geschichte ist eigentlich sehr simpel. Wir „belügen“ nämlich auch den C64 und gaukeln ihm vor, daß die übertragenen Programmzeilen, welche vom Schneider stammen - und dann mittels des kleinen Programmes auf den Bildschirm des C64 geschrieben werden - von uns durch Tastendruck übernommen werden. Wir spielen dem guten Commodore also vor, wir hätten den Cursor auf die entsprechende Zeilennummer gestellt und mehrmals RETURN gedrückt. Da einige Zeilen darunter ein Sys-Befehl steht und auch dieser mit RETURN „beglückt“ wird, „springt“ der C 64 wieder in das Maschinenprogramm. Bei der Übertragung geschieht also folgendes:

Vom CPC 464 wird ein Listing (Zeichen für Zeichen) gesandt, der C 64 gibt dieses dann jeweils auf dem Bildschirm aus und prüft nach jedem Zeichen, ob es sich um Chr$(13), also ein „Carriage Return“ handelt.

PIN 1STROBEPIN 19GND
PIN 2D0PIN 20GND
PIN 3D1PIN 21GND
PIN 4D2PIN 22GND
PIN 5D3PIN 23GND
PIN 6D4PIN 24GND
PIN 7D5PIN 25GND
PIN 8D6PIN 26GND
PIN 9D7PIN 27GND
PIN 11BUSYPIN 28GND
PIN 14GNDPIN 33GND
PIN 16GNDAll other pin NC

Druckeranschluß am CPC 464 (von hinten betrachtet)

Zeile für Zeile

Ist dies der Fall, dann ist nämlich eine komplette Basiczeile übertragen. Der C 64 beendet dadurch dann sein Programm und springt in den normalen Basicmode zurück. Doch bevor dies geschieht, haben wir seinen Tastaturpuffer manipuliert. Was dadurch bewirkt wird, haben wir bereits beschrieben. Der CPC sendet dann die nächste Zeile usw., bis zur Beendigung der Listingaus-gabe.

Das war ganz pauschal betrachtet eigentlich alles. Im Detail ist es natürlich noch etwas komplizierter. Vor allem ist zu berücksichtigen, daß die Definition der Chr$-Zuordnung, also die Festlegung der Zeichensätze, unterschiedlich ist. Deshalb haben wir uns darauf beschränkt, alles in Großbuchstaben zu wandeln, denn grafische Zeichen nach einer Zeilen-Nummer akzeptiert der C 64 bei der Programmeingabe nicht. Außerdem vertauscht er immer Groß-/Kleinschrift.

Mit etwas größerem Programmaufwand wäre es uns aber ganz sicher auch möglich gewesen, dieses Problem zu meistern. Aber wir wollen vor allem nur die Anregung geben, den „Zuschnitt“ auf ihre speziellen Wünsche können unsere Leser dann ggf. selbst durchführen.

Aus diesem Grunde finden Sie nicht nur das Programm als Datalisting, sondern auch das Assembler-listing ist (kommentiert) abgedruckt.

PinSignalBemerkung
1GND
2+5VMAX. 100 mA
3RESET
4CNT1
5SP1
6CNT2
7SP2
8PC2
9SER. ATN IN
109 VACMAX. 100 mA
119 VACMAX. 100 mA
12GND
AGND
BFLAG2
CPB0
DPB1
EPB2
FPB3
HPB4
JPB5
KPB6
LPB7
MPA2
NGNDBelegung des User Port am C 64

User Port C 64 (von hinten betrachtet)

Ehre, wem Ehre gebührt

Auf ein paar Dinge wollen wir noch hinweisen:

  1. Mit auf diese Idee hat uns die Firma Data Becker gebracht. Im Buch „Tips & Tricks für den Schneider CPC 464“ wird gezeigt, wie die Überspielung vom CPC zur Commo-dore-Floppy 1541 bzw. zum Druk-ker MPS 802 geschehen kann. Leider ist bei der dort enthaltenen Verbindungsübersicht ein Fehler enthalten. Der für GND angegebene Anschluß an Pin 12 ist nämlich NC (not connectet = keine Verbindung), richtig ist Pin 14!
  2. Die Zeilenübernahme beim C64 ist lediglich eine in Maschinensprache geschriebene Variante eines Teiles des Programmes „Standard-Data-Generator“ aus Computer-Schau Heft 12/84. Das Data-Listing wurde sogar mit genau diesem Programm erzeugt!
  3. Hinzugekommen ist lediglich noch der Teil zur Datenübernahme am Userport und die Wandlung ins gewünschte Format.

USER-Port-Stecker

Schneider Druckerausgang

B1
C2
D3
E4
F5
H6
I7
K8
L9
M11
N14
Tabelle für Kabelverbindung

Auch in Basic wart möglich!

Nur so am Rande erwähnt: Die erste Version des Übertragungsprogrammes war ein reines Basicprogramm: um einiges länger, lief aber genauso problemlos.

Nun noch die Bedienung des Programmes bzw. die Handhabung zur Übertragung.

Stellen Sie das Verbindungskabel laut unserer Aufstellung her. Schließen Sie dieses an die beiden Computer an. Schalten Sie beide Computer ein und laden Sie das abgeschriebene Datalisting in den C64. Danach starten Sie dieses Programm mit RUN.

Nach Beendigung des Programmlaufes geben Sie in den C 64 „NEW“ ein.

Laden Sie nun das zu übertragende Programm in den CPC 464. Nach dem Ladevorgang teilen Sie dem „Schneider“ mit, daß er ein Listing drucken soll.

Dies geschieht durch: List #8 Starten Sie das Commodore-Programm mit

Sys 12*4096 oder mit Sys 49152 Nun können Sie verfolgen, wie Zeile für Zeile übertragen wird. Nach Beendigung der Übertragung könnten Sie zwar den C 64 „gewaltsam“ über die Tastenkombination RUN/ STOP-RESTORE aus seiner Wartestellung bringen, besser und sauberer aber ist es, dem CPC folgendes mitzuteilen:

print #8,chr$(0);

Vergessen Sie aber das Semikolon am Schluß nicht, sonst ist der Schneider in „Warteposition“.

Ein wichtiger Punkt noch zum Schluß:

Die zu übernehmenden Basiczeilen dürfen (inklusive der Zeilennummern) zwei C64-Zeilen nicht überschreiten, sonst vergißt der Commodore den Rest dieser Basiczeile.

L. Miedel, Computer Schau

Kommentiertes Assemblerlisting auf der nächsten Seite.

Kurz und bündig

Durch „Überlistung“ des C 64 ist es ohne großen Aufwand möglich, Programme vom CPC 464 zum Commodore-Computer zu übertragen. Sind diese Programme in einem Minimalbasic geschrieben, d. h. nur mit Befehlen, die der C 64 versteht, bzw. keine systemspezifischen Befehle (Peek, Poke usw.) enthalten, so sind diese Programme sofort lauffähig. Die gleiche Methode kann auch zur Überspielung von anderen Rechnern aus angewandt werden. Leider haben wir noch keine praktikable Lösung in umgekehrter Richtung (C64 zum CPC 464) gefunden. Vielleicht kann uns und den anderen Interessenten hier jemand aus dem Leserkreis weiterhelfen?

★ PUBLISHER: COMPUTER SCHAU
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: L. Miedel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Programmuebertragung  von  CPC  464  zum  C64    (Computer  Schau)    GERMAN    LISTINGDATE: 2023-10-28
DL: 48
TYPE: PDF
SiZE: 614Ko
NOTE: Supplied by www.acpc.me ; 2 pages/PDFlib v1.6

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

Lien(s):
» Applications » Transferts CPC/IBM-PC
» Applications » Transferprogramm (Schneider Aktiv)
» Applications » RSX Transfer (CPC Magazin)
» Applications » Transfert d'Images
» Applications » Programa de Transferencia de Screens do Spectrum para Amstrad (Amstrad Magazine)
» Applications » File Transfer from CDC Cyber to Amstrad-6128
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.7-desktop/c
Page créée en 260 millisecondes et consultée 242 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.