8-Bit-Nirvana Startseite  
?CRAY INFERIORITY COMPLEX ERROR IN 32000
[ Home | Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info ]

Sharp

Bauplan: Centronics-Interface für den Sharp MZ7xx

von Karl-Heinz Mau

[ Hardware | Software ]

Teil I: Die Hardware

Zur Herstellung der Verbindung zwischen dem MZ731 und dem Centronics-Druckerkabel ist ein Adapterkabel wie im Schaltbild dargestellt zu löten.

Schaltbild Centronics-Interface
Schaltbild für das Adapterkabel
Platinen-Steckverbinder
Steckkarten-Verbinder

Zum Anschluß an den MZ wird ein 2 x 13-poliger Steckkarten-Verbinder benötigt, leider ist der im Bild gezeigte Steckkarten-Verbinder nur 2 x 10-polig, denn es war kein anderes Foto vorhanden, aber er entspricht dem gleichen Typ des hier verwendeten Steckkarten-Verbinders mit 2 x 13 Polen. Er ist bei Conrad Electronics unter der Bestell-Nr. 74 29 53-99 erhältlich (Kosten um die 2 Mark).

An diesen Verbinder ist nun ein Flachbandkabel AWG 28 (14adrig) zu montieren, das ebenfalls bei Conrad bezogen werden kann. Die übrige, äußere Ader (nicht die markierte!) muß abgetrennt werden. Die markierte Ader (meist roter oder blauer Streifen) ist dabei mit dem Pin 1 des Steckers zu verbinden.

An das freie Ende des Kabels ist eine 25polige SUB-D-Buchsenleiste mit Gehäuse (Conrad), wie im obigen Schaltbild gezeigt, anzulöten.

Vor dem Anlöten empfiehlt sich unbedingt das Aufstecken des Gehäuses über das Kabel! :-) Hierzu habe ich das Flachbandkabel "eingerollt" und mit einem kleinen Stück Isolierschlauch vor mechanischer Beanspruchung (Knicken etc.) geschützt.

Das fertige Adapterkabel wird dann mit dem Stecker des Druckerkabels verbunden und an die Platinensteckverbindung am MZ7xx, welche links neben Resettaster und Lautstärkeregler sitzt, eingesteckt (ist auch am MZ7xx mit 'PRINTER' beschriftet). Dazu muß vorher, falls noch vorhanden, die Schutzabdeckung am MZ7xx abgeschraubt werden (2 Schrauben).

Der Steckkarten-Verbinder hat keinen Verdrehungsschutz, deshalb muß immer darauf geachtet werden, daß sich die gekennzeichnete Ader des Flachbandkabels beim Anschließen von hinten gesehen auf der rechten Seite befindet (am Besten ein für alle Mal eine Markierung am Steckkartenverbinder anbringen).

Der Druckerwahlschalter im MZ7xx muß nun auf externen Betrieb umgeschaltet werden. Der MZ7xx kann nämlich entweder nur den Plotter oder nur den Drucker bedienen. Ein wahlweiser Betrieb von Plotter und Drucker ist daher leider nur durch Umschaltung dieses Schalters zu erreichen.

Dazu muß der MZ7xx geöffnet und aufgeschraubt werden (siehe hierzu die Beschreibung beim 1571 Interface). Der Schiebe-Schalter befindet sich bei den Anschlüssen für den Plotter. Für Druckerbetrieb muß dieser nach links betätigt werden, wenn die Tastatur bedienbar vorn ist. (rechte Stellung ist mit INT auf der Platine für den internen Plotterbetrieb markiert).



Die Signale am Druckeranschluß des MZ7xx:

PIN Signal
1 RDP
3 bis 17 RD1 bis RD8
19 IRT
21 RDA (low aktiv)
23 STA (low aktiv)
25 GND
Die Signale an der SUB-D-Buchse:

PIN Signal
1 Strobe
2 bis 9 D0 bis D7
10 ACK (low aktiv)
11 Busy
16 Reset (low aktiv)
18 bis 25 Ground

Teil II: Die Software


Mzprint.p zum Aufruf aus eigenen Programmen

Die Software kann über CALL 0B800h aus eigenen Maschinencode-Programmen aufgerufen werden. Das Druckerbyte muß dazu vorher in den Accu geladen werden. (Siehe auch Dokumentarzeilen im Programm selbst).

Beim ersten Aufruf sollte das Programm mit CALL 0B803h aufgerufen werden mit dem zu übergebende Druckerbyte im Accu. Hierbei wird das Ausgabeport und der Drucker per Reset in den Betriebszustand versetzt, sonst läuft nix. Der Aufruf über 0B803h muß nach jedem Einschalten des MZ7xx erfolgen, da nach Power off die Ports vom Programm neu initialisiert werden müßen. Danach kann das Programm dann jeweils über die Adresse 0B800h gerufen werden.

Beim ständigen CALL über die Init-Adresse (0B803h) gehen vorher eventuell gesendete Escape-Sequenzen u.U. wieder verloren, da ja der Drucker wieder zurückgesetzt wird.

Während eines Busy-Status des Druckers (Papierende/-stau, Power off, offline etc.) kann das Programm mit SHIFT+BRK abgebrochen werden, denn es wartet in einer loop auf den Ready-Status. Die Break-Bedingung wird dann dem aufgerufenen Programm über das gesetzte Zeroflag mitgeteilt und die eigene Anwendung kann so individuell darauf reagieren (Abbruch, Meldung etc.).

Beispiel:

LD   A,DRUBYTE ; zu druckendes Byte in den Accu laden
CALL 0B800h    ; Druckroutine ausführen
JP   Z,BREAK   ; BRK wurde gedrückt, daher zur eigenen BREAK-Routine

Das zu druckende Byte wird vom MZ-spezifischen Code so weit als möglich in den ASCII- Code umgewandelt.


Hardcopy.p für die Bildschirmausgabe

Eine Beispielanwendung ist die Hardcopy der Bildschirmausgabe. Das Programm kann eine Hardcopy sowohl über Drucker als auch über Plotter ausgeben.

Hierzu muß das Programm mit CALL 0B000h gerufen werden und in die Adresse 0B004h ein Wert von non-zero eingespeichert werden, damit ein Return zum aufrufenden Programm stattfindet:

LD   A,0FFh     ; non-zero Wert in den Accu laden
LD   (0B004h),A ; und an Druckprogramm übergeben
CALL 0B000h     ; Druckprogramm ausführen

Bei einem Wert von 00h auf der Adresse 0B004h findet kein Return statt, sondern es findet eine Rückkehr zum Monitor-ROM statt. Hierdurch kann das Programm auch einen Sreenshot des derzeitigen Bildschirminhaltes über den Befehl 'JB000' ausgeben.

Ferner muß noch das Byte auf der Adresse 0B003h gesetzt werden, um dem Programm mitztuteilen, wohin die Ausgabe gehen soll (Plotter oder Drucker). Für die Ausgabe auf den Plotter ist es auf hex. 50 zu setzen und für die Ausgabe auf den Drucker irgendein anderer Wert ungleich 50h:

LD      A,0FF      ; non-zero Wert in den Accu laden
           ; (return to me, don't return to monitor)
LD      (0B004h),A ; Wert an Druckprogramm übergeben
LD      A,50h      ; für Plotterausgabe 50h in den Accu laden
LD      (0B003h),A ; und an Druckprogramm übergeben
CALL    0B000h     ; Druckprogramm ausführen

Während der Ausgabe des Bildschirminhaltes und auch beim Warten auf den Ready-Zustand des Ausgabegerätes kann das Programm mit SHIFT+BRK abgebrochen werden. Das gesetzte Zeroflag weist hierbei auf diese Bedingung hin, so daß ein eigenes Programm hierauf reagieren kann:

LD      A,0FFh      ; non-zero Wert in den Accu laden
            ; (return to me, don't return to monitor)
LD      (0B004h),A  ; an Druckprogramm übergeben
LD      A,49h       ; für Druckerausgabe 49h in den Accu laden
LD      (0B003h),A  ; und an Druckprogramm übergeben
CALL    0B000h      ; Druckprogramm ausführen
JP      Z,BREAK     ; BRK wurde gedrückt, daher zur eigenen BREAK-Routine

Für weitere Informationen kann auch die Doku in der Source weiterhelfen.

Ein inverses Zeichen auf dem Screen zeigt den Fortschritt bei der Ausgabe als "Cursor" an, was bei Plotterbetrieb eine zusätzliche Hilfe darstellt. Es wird das gerade zu druckende Zeichen invers dargestellt.


Hinweise

Zur automatischen Ausgabe mehrerer aufeinanderfolgender Bildschirmseiten kann später auch die Source des 1571-Interface-Programm weiterhelfen, in der eine mehrseitig lange Directory der Diskette automatisch ausgegeben wird (noch in Vorbereitung!!!).

Die beiden Hex-Files mit dem Suffix ".p" enthalten zuerst die beiden Bytes der Ladeadresse, die das Floppyinterface-Programm braucht. Diese müssen aber beim Laden ohne das Interface entfernt werden!

Hier nun die benötigte Software zum Download: mzprint.zip (33 KByte). Viel Spaß damit!

 
Quicklinks Hersteller:
Über dieses Feld kannst du die verschiedenen Hersteller anwählen. Falls du gezielt ein bestimmtes Gerät ansehen willst, findest du es im Index.

Quicklinks Sharp:
Über dieses Feld kannst du die einzelnen Geräte von Sharp anwählen.

Suchfunktion:
Zusammengesetzte Begriffe in Anführungszeichen eingeben. Ein Pluszeichen vor einem Suchbegriff erzwingt dessen Vorhandensein im Ergebnis, ein Minuszeichen schließt einen Begriff entsprechend aus.

Computer des Tages:



Lesezeichen setzen:
del.icio.us del.icio.us Bei Mister Wong speichern Mister Wong
Seite bei LinkARENA speichern LinkARENA Digg it Digg
Slashdot it Slashdot StumbleUpon StumbleUpon
Google Bookmarks Google YIGG YIGG
oder 

Valid HTML 4.01! Valid CSS!

Projekt 64'er Online Spam Poison


[ Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info | Impressum/Datenschutz | News | Credits | Webmasters | Seitenanfang ]
(C) 1998-2016 by Sascha Hoogen/8-Bit-Nirvana, Bauplan und Software (C) Karl-Heinz Mau, alle Rechte vorbehalten. Verwendete Marken- und Produktnamen sind Handelsmarken, Warenzeichen oder eingetragene Warenzeichen der entsprechenden Inhaber.