Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z1013:erweiterungen:tastatur [2012/09/01 09:45] – [Tastaturanschluss Monitor A2] volkerp | z1013:erweiterungen:tastatur [2023/12/15 07:11] (aktuell) – [PS/2-PC-Tastatur mit AVR] volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Tastatur ====== | ====== Tastatur ====== | ||
- | |||
- | Um die wenig brauchbare Flachfolientastatur des Z1013 zu ersetzen, gibt es in der [[z1013: | ||
{{: | {{: | ||
Originale Flachfolientastatur des Z1013. Die Anordnung der Tasten in alphabetischer Reihenfolge, | Originale Flachfolientastatur des Z1013. Die Anordnung der Tasten in alphabetischer Reihenfolge, | ||
+ | |||
+ | Um die wenig brauchbare Flachfolientastatur des Z1013 zu ersetzen, gibt es in der [[z1013: | ||
+ | |||
+ | |||
+ | * [[z1013: | ||
+ | * [[z1013: | ||
+ | * [[z1013: | ||
+ | * [[z1013: | ||
+ | * [[z1013: | ||
+ | * [[z1013: | ||
+ | * [[z1013: | ||
+ | |||
+ | u.v.a.m. | ||
===== Tastaturanschluss Monitor A2 ===== | ===== Tastaturanschluss Monitor A2 ===== | ||
Zeile 11: | Zeile 22: | ||
muß vom Anwender eine kleine Zusatzbaugruppe erstellt | muß vom Anwender eine kleine Zusatzbaugruppe erstellt | ||
werden. (s. Handbuch Z1013.64 oder Ergänzungsanleitung zum Z1013.16, [[z1013: | werden. (s. Handbuch Z1013.64 oder Ergänzungsanleitung zum Z1013.16, [[z1013: | ||
+ | |||
+ | {{: | ||
Geeignet ist die Tastatur K 7659 vom VEB Elektroschaltgeräte Auerbach. | Geeignet ist die Tastatur K 7659 vom VEB Elektroschaltgeräte Auerbach. | ||
Zeile 17: | Zeile 30: | ||
Die Zeichenbelegung und die Anordnung dieser | Die Zeichenbelegung und die Anordnung dieser | ||
Tasten, wie sie vom Anwender bedient werden können, ist dem | Tasten, wie sie vom Anwender bedient werden können, ist dem | ||
- | Handbuch zu entnehmen bzw. auch dme Monitor-Listing A2. | + | Handbuch zu entnehmen bzw. auch dem Monitor-Listing A2. |
Die Beschriftung der Tasten entspricht bei Buchstaben und Zahlen | Die Beschriftung der Tasten entspricht bei Buchstaben und Zahlen | ||
der Beschriftung auf der K 7659. Die Sonderzeichen weichen | der Beschriftung auf der K 7659. Die Sonderzeichen weichen | ||
- | jedoch ab, so daß durch geeignete Maßnahmen (ev. genügen | + | jedoch ab, so daß durch geeignete Maßnahmen (evtl. genügen |
Aufkleber) die Tastenköpfe anders beschriftet werden müssen. | Aufkleber) die Tastenköpfe anders beschriftet werden müssen. | ||
Ebenfalls geeignet ist die Tastatur K 7252.01. Hier müssen | Ebenfalls geeignet ist die Tastatur K 7252.01. Hier müssen | ||
- | gegenüber der K 7659 Zeilem- und Spaltenleitungen vertauscht werden. | + | gegenüber der K 7659 Zeilen- und Spaltenleitungen vertauscht werden. |
- | Und es muss des Betriebssystem des Z 1013 umgeschaltet werden. Auf der | + | Außerdem |
- | Leiterplatte des Z 1013.64 befindet sich neben dem PROM U 2632 | + | Verbindung von W5 nach W6 hergestellt. Diese Verbindung muß gelöst und W6 mit W7 verbunden werden. |
- | eine Wickelverbindung. Beim Kauf des Gerätes ist die | + | |
- | Verbindung von W5 nach W6 hergestellt. Diese Verbindung muß | + | |
- | gelöst und W6 mit W7 verbunden werden. | + | |
Belegung der Buchsenleiste für 8x8-Tastaturen | Belegung der Buchsenleiste für 8x8-Tastaturen | ||
Zeile 48: | Zeile 58: | ||
</ | </ | ||
- | ===== Brosig-Tastatur nach mp ===== | + | {{: |
- | erstmals vorgestellt bei der [[z1013:tagungen# | + | Um eine K 7669 (Tastatur |
+ | s. http://www.robotrontechnik.de/ | ||
+ | Alternativ gibt es auch eine Variante des unten beschriebenen Brosig-Monitors für die K 7669. | ||
- | Mikroprozessortechnik 7/1988, Rainer Brosig: „Z1013-Tastatur mit Raffinessen“ | + | ==== Download ==== |
- | {{: | ||
- | {{: | ||
- | Die Leiterplatte wurde so entworfen, dass sie auf einer K7659-Tastatur | + | * {{: |
+ | Achtung, in dem 4k-ROM-File ist die Reihenfolge der Monitore gegenüber dem Original (BM204) vertauscht -> korrigieren durch umjumpern. | ||
+ | ===== 8x8-Tastatur | ||
- | Beim abgebildeten Exemplar ist links in der Tastatur ein Lautsprecher eingebaut; ganz rechts sind zwei Zusatztasten für Reset und NMI incl. Entprellung. | + | Von Jens Israel (SCI) stammt eine Lösung zum Anschluss einer Tastatur |
- | ==== Beschreibung ==== | + | {{: |
- | ANMERKUNG: Die hierfolgende Beschreibung ist der sogenannte | + | * {{:z1013: |
- | BROSIG-MONITOR. Diesen gibt es abhängig von zwei | + | |
- | Tastaturen, der hier beschriebenen K 7859 sowie | + | |
- | der K 7652. Letztere hat die gleiche Matrix, nur | + | |
- | dass bei ihr die Koordinaten der Anschlusskabel | + | |
- | B sind, wenn sie hier mit A gekennzeichnet sind und | + | |
- | umgekehrt. Aber B10 und B12 sind bei ihr nicht belegt. | + | |
- | (Siehe | + | Statt der 2 DL021 kann heutzutage |
+ | ===== Brosig-Tastatur nach mp ===== | ||
- | === Vorbetrachtung === | + | erstmals vorgestellt bei der [[z1013: |
- | In zahlloser Folge sind in letzter Zeit Tastaturvarianten fuer den | + | Mikroprozessortechnik 7/1988, Rainer Brosig: „Z1013-Tastatur mit Raffinessen“ |
- | Mikrorechner Z1013 in der Literatur vorgestellt worden. Dies ist | + | |
- | eine logische Folge, denn die originale Flachfolientastatur steht | + | |
- | ausserhalb jeder Diskussion. Man kann die vorgestellten Loesungen | + | |
- | grob in vier Gruppen teilen: | + | |
- | - Verbesserung der Bedienbarkeit durch bessere Schaltelemente | + | Rainer Brosig entwickelte den Anschluss |
- | - Abfragen | + | |
- | | + | |
- | | + | |
- | Alle vier Gruppen haben ihre speziellen Vor- und Nachteile. Es | + | * 4 zusätzliche Leitungen zum Tastaturanschluss |
- | kann festgestellt werden, dass es keine ideale Loesung fuer alle Nutzer gibt, sondern, dass alle vier Gruppen ihren speziellen Nutzerkreis haben. | + | * Einbau eines neuen 4K großen Monitor-EPROMs anstelle des vorhandenen 2K-Monitors [[z1013: |
+ | * Umbau der Monitor-EPROM-Ansteuerung, damit 4K (F000-FFFF) adressiert werden | ||
- | Die erste Gruppe von Tastaturen wird z.B. besonders die Nutzer | + | {{: |
- | interessieren, | + | {{: |
- | sind, da nur allgemeine elektronische Kenntnisse notwendig sind. | + | |
- | Fuer fortgeschrittene Nutzer soll folgender Tastaturvorschlag gedacht sein, der sich in die vierte Gruppe einordnet, fuer die es | + | |
- | bisher wenige Veroeffentlichungen gab. | + | |
+ | Die Leiterplatte wurde so entworfen, dass sie auf einer K7659-Tastatur rechts zwischen Enter und Sondertasten passt. | ||
- | === Loesungsprinzip | + | Beim abgebildeten Exemplar ist links in der Tastatur ein Lautsprecher eingebaut; ganz rechts sind zwei Zusatztasten für Reset und NMI incl. Entprellung. |
+ | Details s. [[z1013: | ||
- | Es wird eine K 7659*) mit einer speziellen Hardwareanpassung verwendet, die an den gleichen Hardwareschnittstellen wie die OriginalTastatur betrieben wird. Dadurch gibt es wenig Probleme bei Software, die direkt auf die Originalmatrix zugreift. Die Tastaturabfrage erfolgt durch ein neues komfortables Programm, welches | + | ==== Downloads ==== |
- | verstaendlicherweise laenger als das originale ist und deshalb | + | |
- | ausserhalb des 2K-Monitors generiert wird (ab 0F800H). Um Softwarekompatibilitaet zu sichern, wurde am Anfang der originalen Tastaturroutine ein Sprung zum externen Tastaturprogramm eingetragen. | + | |
- | Um diesen Sprung einzutragen, | + | * {{: |
- | Monitor zu aendern. Auf den durch den Wegfall | + | * {{: |
- | frei gewordenen Speicherplatz im Monitor wurden kleine Hilfsroutinen, | + | |
- | eine NMI-Unterbrechungsroutine, | + | |
- | Maschinenprogramm mit Registeranzeige abgebrochen werden kann, | + | |
- | was sich bisher als eine ausserordentliche Hilfe bei der Testung | + | |
- | von Assemblerprogrammen erwiesen hat. | + | |
- | Zur Aenderung des Monitor-EPROMs muss nicht unbedingt ein Eingriff | + | ===== Version practic ===== |
- | auf der orig. Leiterkarte erfolgen, was evtl. Garantieansprueche | + | |
- | loeschen koennte. Es besteht die Moeglichkeit, | + | |
- | aussen zuzuschalten (MEMDI-Steuerung). Einfacher ist es aber, den | + | |
- | originalen Monitor-EPROM auszuloeten und durch einen anderen EPROM | + | |
- | mit Fassung zu ersetzen. | + | |
- | Derzeitig wird fuer Monitor und Tastatur ein 2732 benutzt. Auf | + | Von Gerhard Eisenkolb stammt |
- | diesem EPROM befinden sich weiterhin das Headersave sowie ein | + | |
- | Sprungverteiler fuer Peripherie-Schnittstellen. | + | |
- | + | ||
- | + | ||
- | === Hardware === | + | |
- | + | ||
- | + | ||
- | Die zusaetzliche Hardware beschraenkt sich auf einen 1-aus-16-Decoder, | + | |
- | Shift-lock und Hardcopy werden zwei Anzeige-Flip-Flops verwendet. | + | |
- | Damit 12 Spalten abgefragt werden koennen, muss die 4-bit Spalteninformation neu decodiert werden, da der originale Spaltendecoder | + | |
- | nur bis 10 decodiert. Dazu ist es erforderlich, | + | |
- | Sollten auch diese vier Draehte zu viel Aenderung auf der Platine | + | |
- | darstellen, so kann der Spaltenlatch auch extern ueber den Systemstecker neu ausdecodiert werden. | + | |
- | + | ||
- | Die verbleibenden vier Digits vom 1-aus-16-Decoder werden fuer die | + | |
- | Ansteuerung der Flip-Flops, der Statussteuerung und des Tastenbeeps (generatorloser Piezoschwinger o.ae.) genutzt. | + | |
- | + | ||
- | Die Ausgaenge des Decoders steuern die Spaltenleitungen der Tastaturmatrix, | + | |
- | notwendig, um bei der Betaetigung von zwei Tasten (SHIFT, CTRL) | + | |
- | keine Spalten kurzzuschliessen. Die Zeilenausgaenge werden durch | + | |
- | einen Coder auf einen negierten binaeren Code gewandelt, um wieder | + | |
- | die originalen 4-bit-Zeileneingangsleitungen zu erhalten. | + | |
- | Deshalb sind prinzipiell Direktzugriffe auf die Matrix moeglich, | + | |
- | die allerdings nicht die gleiche Tastenbelegung wie die Original-Tastatur aufweist (Korrespondenztabelle benutzen). An dieser | + | |
- | Stelle soll auch darauf hingewiesen werden, dass solche unnoetigen | + | |
- | Praktiken, direkt auf die Matrix zuzugreifen, | + | |
- | Das verwendete Abfrageprinzip weist eine Besonderheit auf, die in | + | |
- | einer Statussteuerung liegt. | + | |
- | + | ||
- | Diese Statussteuerung hat die Aufgabe, alle Spalten der Tastatur | + | |
- | aktiv zu schalten, um einerseits eine schnelle Tastaturabfrage zu | + | |
- | realisieren (der Rechner muss nicht staendig auf den Spaltenleitungen herumklappern) und andererseits die Interruptfaehigkeit zu ermoeglichen (wird momentan nicht ausgenutzt). Die Abfrage der Tastatur bei unbetaetigten Tasten wird durch die Statussteuerung etwa | + | |
- | 100 mal schneller als die originale. Dieser Zeitvorteil hat aber | + | |
- | nicht nur positive Seiten. Programme, die die Abarbeitungszeit fuer | + | |
- | bestimmte Zwecke ausnutzen, laufen dadurch | + | |
- | + | ||
- | Die Funktion der Statussteuerung wird mittels LED angezeigt, die | + | |
- | damit die Bereitschaft | + | |
- | + | ||
- | Die schaltungstechnische Realisierung kann mit verschiedenen Mitteln erfolgen. Die einfachste Moeglichkeit besteht in der Decodierung mit einem 74154, der Codierung mit 2 DL 021 und einem DL 074 | + | |
- | fuer die Anzeige. Somit kann die gesamte Hardware auf 4 IC's beschraenkt bleiben. Um aber den arg strapazierten Netzteil nicht | + | |
- | noch mehr zu belasten, wurde eine etwas aufwendigere CMOS-Schaltung entwickelt, die dazu noch die hoehere Sicherheit gegen unerwuenschte Uebergangswiderstaende aufweist. | + | |
- | + | ||
- | Die Spalte 7 (SHIFT, CTRL) wird durch die Statussteuerung nicht | + | |
- | aktiviert (Fehlen einer Diode), damit beim alleinigen Druecken von | + | |
- | SHIFT oder CTRL der Tastaturstatus nicht veraendert wird. Diese | + | |
- | Spalte wird erst nach Erkennung einer anderen Taste abgefragt, | + | |
- | um die SHIFT-Ebene umzuschalten bzw. eine Control-Maske (1FH) | + | |
- | aufzulegen. Die geringe Anzahl zur Verfuegung stehender zusaetzlicher Steuerleitungen macht es erforderlich, | + | |
- | Funktionen SHIFT-LOCK und Hardcopy zusaetzliche Flip-Flops mit | + | |
- | einer gemeinsamen Resetleitung zu verwenden. Bei jeder Neubelegung | + | |
- | eines Flip-Flops werden deshalb durch den Rechner immer beide | + | |
- | Flip-Flops neu gesetzt. An der Resetleitung ist ebenfalls der | + | |
- | Tastenklick angeschlossen, | + | |
- | Ausgabe des Tones neu gesetzt werden muessen. Der Tastenklick wird | + | |
- | softwaremaessig erzeugt, und ist durch Tastendruck ein- und ausschaltbar. | + | |
- | + | ||
- | Fuer die CMOS-Version wurde eine Leiterplatte | + | |
- | + | ||
- | Damit muss die Leiterplatte nicht unterhalb der Tastatur montiert | + | |
- | werden, und es ergibt sich eine sehr flache moderne Bauform fuer | + | |
- | das Tastaturgehaeuse. Das moderne Aeussere | + | |
- | 10-adrige duenne Kabel von der Tastatur zum Rechner unterstuetzt, | + | |
- | fuer das 10-adrige flexible Telefon-Leitung verwendet wurde. | + | |
- | + | ||
- | + | ||
- | === Software === | + | |
- | + | ||
- | + | ||
- | Fuer die Tastaturabfrage wurde ein neues Abfrageprogramm entwickelt, welches der verwendeten Hardware angepasst ist. Es hat mit | + | |
- | Tabellen | + | |
- | originalen Standort beziehen. Durch den auf der Originalaufrufadresse (F130H) eingetragenen Sprung zum neuen Standort (F800H) | + | |
- | wird die Software-Kompatibilitaet zum Originalmonitor erreicht. Es | + | |
- | muss aber eingeschraenkt werden, dass Programme, die in die originale | + | |
- | Tastaturroutine hineinspringen (eine laienhafte Unsitte), nicht | + | |
- | mehr fehlerfrei laufen. | + | |
- | + | ||
- | Bei der Realisierung des Programms wurde ein in jeder Hinsicht | + | |
- | offenes Prinzip verwendet. Das heisst, dass der Nutzer in der Lage | + | |
- | ist, sich die Tastatur nach eigenen Wuenschen zusammenzustellen. | + | |
- | Bis auf zwei Tasten (SHIFT, CTRL) sind alle Tasten neu belegbar. | + | |
- | Weiterhin kann auch wahlweise ein String auf beliebige Tasten gelegt werden. Wenn dafuer keine besonderen Tasten verwendet werden | + | |
- | sollen, koennen Strings auch durch gemeinsames Druecken von SHIFT | + | |
- | und CTRL sowie einer dritten Zeichentaste erzeugt werden. Der Tastaturtreiber erzeugt dazu intern einen Grafikcode (>80H), mit dem | + | |
- | ein mit diesem Zeichen versehener String in einem Stringfeld gesucht und ausgegeben wird. Sollte kein String mit diesem Kennzeichen existieren, wird dieses interne Grafikzeichen ausgegeben. | + | |
- | Die Ausgabe von Grafikzeichen im Grafikmode wird dadurch nicht beeinflusst. | + | |
- | + | ||
- | Fuer die einzelnen Felder (Stringfeld, | + | |
- | tastenfeld und Funktionstastenadressfeld) gibt es ein Pointerfeld, | + | |
- | welches auf dem ehemaligen Tastencodefeld ab 3BH angelegt wurde. | + | |
- | Damit ist es dem Anwender moeglich, sich durch das Veraendern dieser | + | |
- | Pointer an beliebiger Stelle im RAM ein neues Feld aufzubauen. | + | |
- | Diese Moeglichkeit hat besonders fuer das Stringfeld grosse | + | |
- | Bedeutung, da man dadurch in der Lage ist, Strings fuer verschiedene Anwendungen zu laden (z.B. BASIC-Schluesselwoerter, | + | |
- | anderen Felder neu zusammenzustellen, | + | |
- | + | ||
- | Das Pointerfeld wird durch den Monitor beim ersten Reset auf die | + | |
- | Standardwerte gestellt (nochmaliges Reset wird am C3H auf Adr. | + | |
- | 66H erkannt), womit gesichert ist, dass bei jedem weiteren Reset | + | |
- | ein evtl. geaendertes Pointerfeld erhalten bleibt. | + | |
- | + | ||
- | Das hat aber die Konsequenz, dass ein Programmabsturz auch dieses | + | |
- | Pointerfeld ungewollt zerstoeren kann und der Rechner trotz Reset | + | |
- | nicht mehr bedienbar ist. Dann hilt nur noch Ausschalten des | + | |
- | Rechners! Aendert man folgende vier Zellen, so kann erreicht werden, dass die Neuinitialisierung bei jedem Reset erfolgt. | + | |
- | + | ||
- | F02AH 02H --> F2H | + | |
- | F02BH F2H --> F1H | + | |
- | F02DH 43H --> 33H | + | |
- | F030H 0AH --> 1AH | + | |
- | Man sollte dann aber auch darauf achten, dass aus Programmen nicht | + | [[z1013: |
- | mit Reset oder Sprung zu F000H herausgegangen wird, sondern mit | + | |
- | der Monitorrueckkehrtaste (RST 38H). Ansonsten muss die Pointerinitialisierung neu erfolgen. | + | |
- | Fuer die einzelnen Modes der Tastatur (Grafik, Shift-lock, Hardcopy, | + | {{: |
- | Stringmode, Beep, Slow/Fast) existieren Flags, die in der Systemzelle 27H stehen (ehemaliger Schalter Grafik/ | + | |
- | Ein gesetztes Flag (1) bedeutet darin: | + | |
- | Bit 0 - lange Repeatverzoegerung durchlaufen | + | ====== K7669 Anschluss nach Brosig ====== |
- | 1 - Stringmode on | + | |
- | 2 - Grafikmode on | + | |
- | 3 - Hardcopy on | + | |
- | 4 - Shift-lock (gilt nur fuer Buchstaben) | + | |
- | 5 - Tastenklick on | + | |
- | 6 - Slow | + | |
- | 7 - Taste war betaetigt | + | |
- | Diese Flags werden durch den Tastaturtreiber gesetzt bzw. rueckgesetzt. Indem man diese Flags anderweitig setzt oder ruecksetzt, | + | Seit 1985 befindet sich ein 4-K-Monitor fuer die Tastatur |
- | kann die Betriebsart der Tastatur | + | |
- | Bei den Funktionstasten fallen fuenf Tasten besonders auf. Mit der | + | |
- | Taste F01 laesst sich aus einem beliebigen Anwenderprogramm heraus | + | |
- | zum Monitor | + | |
- | abgefragt wird. Dabei wird auch gleichzeitig eine Reinitialisierung des Zusatz-Kommandoverteilers auf B0H durchgefuehrt, | + | |
- | die standardmaessig eingetragenen Kommandos (@L, @S, @D, @I) wieder | + | |
- | verfuegbar werden. | + | |
- | Die Tasten F06, F07, F08 dienen fuer DirektsprUenge | + | Der originale |
- | meisten Programme zu starten sind. Der Stack wird dazu vor der | + | Fassung |
- | Ausfuehrung des Sprungs neu initialisiert. | + | Die fuer die Tastaturtypen K7659 und K7652 eingesetzten |
- | Eine weitere wichtige Taste ist die Screen-Copy-Taste (F09). Mit | ||
- | ihr ist es moeglich, eine Bildschirmkopie auf dem Drucker zu erzeugen (Druckereinbindung ueber Sprungverteiler DRAKK), ohne das laufende Programm zu unterbrechen. Dabei ist zu beachten, dass waehrend | ||
- | der Bildschirmkopie der Stack des laufenden Programms genutzt | ||
- | wird (Stackbelastung je nach Druckertreiber). | ||
- | Die Tastenentprellung erfolgt positiv und negativ, d.h., damit | + | * {{: |
- | eine Taste als betaetigt erkannt wird, muss mindestens 15 ms (2 MHz) | + | |
- | lang ein prellfreies Signal anliegen (positive Entprellung). Das | + | |
- | gleiche gilt uebertragen fuer das Loslassen der Taste (negative Entprellung). Dadurch kommt es nicht vor, dass selbst bei sehr schlechten Kontakten eine Fehlfunktion auftritt. | + | |
- | Wird eine Taste laenger als 0.5 s (2 MHz) betaetigt, wird die Repeatfunktion (Echofunktion) bei Zeichentasten aktiviert. | + | ====== K7659 Alphatastatur mit U880 ====== |
- | Der Normalaustritt aus der Tastaturroutine erfolgt kompatibel zur | + | Anschluss einer K7659-Tastatur |
- | Originalroutine | + | |
- | Eine " | + | {{: |
- | Routine die Zelle 4 auf 0 gesetzt wird. | + | |
+ | * {{: | ||
- | === Standard-Tastenbelegung | + | Die Leiterplatte ist fast identisch wie beim " |
+ | ====== Commodore-Tastatur mit U880 ====== | ||
- | Funktionstasten (erzeugen keinen Code): | + | analog zum Anschluss einer K7659-Tastatur gibt es auch eine Variante zum Anschluss einer Commodore-Tastatur. |
- | < | + | {{: |
- | F01 - RST 38H | + | |
- | F06 - JMP 100H | + | |
- | F07 - JMP 200H | + | |
- | F08 - JMP 300H | + | |
- | F09 - SCREEN-COPY | + | |
- | F53 - GRAFIK ON/OFF | + | |
- | E53 - HARDCOPY ON/OFF | + | |
- | D53 - SLOW/FAST | + | |
- | C53 - BEEP ON/OFF | + | |
- | D00 - SHIFT-LOCK ON/OFF | + | |
- | B11 - SHIFT (+B99) | + | |
- | C00 - CTRL | + | |
- | </ | + | |
- | Steuerzeichentasten (derzeitige Belegung) | + | * {{: |
+ | * {{: | ||
- | < | + | Bild des Z1013 mit der 6x16-Tastatur |
- | Pos. 1.Code 2.Code 1.Funktion | + | |
- | ------------------------------------------------------------------ | + | |
- | A00 | + | |
- | A01 | + | |
- | A10 | + | |
- | A11 | + | |
- | F14 | + | |
- | F02 | + | |
- | B13 | + | |
- | F05 | + | |
- | D95 | + | |
- | B95 | + | |
- | E14 | + | |
- | D13 | + | |
- | F10 | + | |
- | F11 | + | |
- | F12 | + | |
- | F13 | + | |
- | E95 | + | |
- | F95 | + | |
- | </ | + | |
- | Diese Steuerzeichen stehen mit in der Tastenbelegungstabelle und | + | {{: |
- | koennen somit anderen Erfordernissen angepasst werden. | + | |
+ | //Vielen Dank an Matthias// | ||
- | Tastenbelegungstabelle erste Shiftebene und Zweite Shiftebene | + | ====== PS/2-PC-Tastatur mit AVR ====== |
- | + | ||
- | < | + | |
- | Code Pos. Zeichen | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | </ | + | |
- | | + | |
- | Den Standort der Tastenbelegungstabelle kann man dem Tastenbelegungsfeldpointer (auf 3BH) entnehmen, der auf die Tastenbelegungstabelle im ROM zeigt (standardmaessig). | + | {{: |
+ | Von [[http:// | ||
+ | Emuliert werden die Tasten der originalen Flachfolientastatur; | ||
- | === Aufbau des Pointerfeldes === | + | Download: |
+ | * {{: | ||
+ | * Im Download-Paket zum [[z1013: | ||
- | Das Pointerfeld befindet sich auf dem Platz des jetzt nicht mehr | + | Uwe Gubsch: Hier noch ein paar ergänzende Informationen: |
- | benoetigten Tastaturcodefeldes und wird vom Monitor initialisiert. | + | Warum ATtin2313? |
- | Das originale Tastaturcodefeld beginnt auf Adresse 35H und wird | + | 1. er sprang mich förmlich aus meiner Bastelkiste an!\\ |
- | durch den Monitorsprung RST 38H unterbrochen. Die ersten drei Zellen werden fuer Zaehlzellen des Druckertreibers | + | 2. er verfügt über PIN Change Interrupt\\ |
- | mit 0 initialisiert. Das Pointerfeld beginnt erst hinter dem | + | 3. er verfügt über eine serielle Schnittstelle die auch im synchron |
- | RST 38H auf 3BH mit folgendem Aufbau: | + | |
- | 3BH - Tastenbelegungsfeldpointer | + | Programmiert habe ich das ganze unter AVR-Studio 4.19. |
- | 3DH - Stringfeldpointer | + | Zu Programmierung dieses Chips sind auch noch die sogenannte Fuses zu setzen: |
- | | + | Es wurden aktiviert: |
- | | + | - SPIEN ... einschalten der Programmierung über SPI\\ |
- | | + | - Brown-out detektion at VCC=4.3V\\ |
- | 45H - Funktionstastenadressfeldpointer | + | - Int. RC Osc. 8Mhz; Start-up time: 14 CK+ 65ms\\ |
- | === Aufbau des Stringfeldes === | + | Das ergibt folgende Fuses:\\ |
+ | EXTENDED: 0xFF\\ | ||
+ | HIGH: 0xD9\\ | ||
+ | LOW: 0xE4\\ | ||
- | Das Stringfeld hat einen sehr einfachen und codeeffektiven Aufbau. | + | Ich betreibe die Schaltung |
- | Der auszugebende String beginnt | + | |
- | nur aus einem Grafikzeichen besteht. Es werden | + | |
- | von diesem String ausgegeben, bis ein neues Grafikzeichen auftritt | + | |
- | oder das Ende des Stringfeldes - gekennzeichnet | + | |
- | reserviert sind. Die Strings koennen eine beliebige Laenge haben, | + | |
- | und in beliebiger Reihenfolge angeordnet sein. | + | |
- | Sringfeldaufbau: | + | Das Programm belegt mit 642 Byte nur etwa ein Drittel der verfügbaren 2KByte an Programmspeicher - und da sind die Zeichentabellen auch noch mit enthalten, diese kann man auch noch in den EEPROM Bereich auslagern. |
+ | Das heisst: Es ist noch genug Platz für Erweiterungen und " | ||
- | < | + | Noch ein Wort zu den Zeichentabellen - die erste Tabelle enthält alle einfachen Scancodes gefolgt von der Zuordnung der Tastaturmatrix und einer zweiten Zuordnung für die gedrückte SHIFT-Taste. Hier gibt es immer zwei Zuordnungen, |
- | 1. Grfk-Z. 1.String | + | Die Zweite Tabelle enthält alle Zuordnungen für Extendet Tastencodes bzw. gedrückte ALT oder ALTGR Taste. Hier gibt es nur zwei Bytes pro Zeile. |
- | 2. | + | |
- | | + | |
- | . | + | |
- | . | + | |
- | n. letztes Stringz. | + | |
- | n+1 Grfk.Z. 2. String | + | |
- | n+2 erstes Zeichen 2. String | + | |
- | . | + | |
- | . | + | |
- | . | + | |
- | 0 ;Ende des Feldes | + | |
- | </ | + | |
- | Guenstig ist es, sich auf Kassette einige Felder vorzubereiten und | + | weitere Anmerkungen: |
- | diese mit einer kleinen Umladeroutine zu versehen, welche das | + | |
- | Eintragen des Stringfeldpointers entsprechend des Standortes | + | |
- | vornimmt. Somit ist das jeweilige Stringfeld nach einem Autostart | + | |
- | sofort nutzbar. | + | |
- | Die fuer die Adressierung der Strings benoetigten Grafikzeichen | + | - die Control-Taste ist derzeitig noch ohne Funktion:\\ |
- | koennen in der Tastenbelegungstabelle stehen, welche bei Betaetigung der entsprechenden Taste wirksam werden, worauf der dazugehoerige String ausgegeben | + | - Ctrl-C: S4+K wird liegt derzeitig auf ALT-C\\ |
- | in der gleichzeitigen Betaetigung von SHIFT und CTRL sowie einer | + | - F1-F12 sind noch unbelegt.\\ |
- | Zeichentaste, worauf folgende interne Grafikzeichen | + | - Numlock noch ohne Funktion, auf dem Zahlenfeld werden nur Zahlen |
- | werden: | + | - LED auf der PS/2 Tastatur |
- | < | + | Warum habe ich nicht weitergemacht? |
- | SHIFT+CTRL+Zeichentaste | + | Tja, als die Tastatur erstmal funktionierte, |
- | A 81H | + | |
- | B 82H | + | |
- | C 83H | + | |
- | D 84H | + | |
- | E 85H | + | |
- | F 88H | + | |
- | G 87H | + | |
- | H 8BH | + | |
- | I 89H | + | |
- | J 8AH | + | |
- | K 9CH | + | |
- | L 8CH | + | |
- | M 8DH | + | |
- | N 8BH ; | + | |
- | O 8FH | + | |
- | P 90H | + | |
- | Q 91H | + | |
- | R 92H | + | |
- | S 86H | + | |
- | T 94H | + | |
- | U 95H | + | |
- | V 88H ; | + | |
- | W 97H | + | |
- | X 86H ; | + | |
- | Y 99H | + | |
- | Z 9AH | + | |
- | Ä 9BH | + | |
- | Ö 9EH | + | |
- | Ü 9DH | + | |
- | 0 90H ; | + | |
- | 1 91H ; - " | + | |
- | 2 92H ; - " | + | |
- | 3 93H | + | |
- | 4 94H ; - " - T | + | |
- | 5 95H ; - " - U | + | |
- | 6 96H | + | |
- | 7 97H ; - " - W | + | |
- | 8 98H | + | |
- | 9 99H ; - " - Y | + | |
- | </ | + | |
- | Die Unregelmaessigkeiten zu den korrespondierenden CTRL-Zeichen | + | //Vielen Dank an Uwe// |
- | entstehen beim gleichzeitigen Druecken von SHIFT und CTRL durch | + | |
- | das Kurzschliessen der Matrixzeile 7 und 8, da diese | + | |
- | hardwaremaessig nicht entkoppelt sind. | + | |
- | Im EPROM wurde ein Standardstringfeld mit den am haeufigsten | + | Es gibt **erweitere Versionen** von Ralph und von Hobi. |
- | vorkommenden Basic-Schluesselwoertern eingerichtet. | + | |
+ | https:// | ||
- | === Direktzugriffe auf die Matrix === | + | http:// |
- | Obwohl das direkte Zugreifen auf die Tastaturmatrix | + | Achtung: In der Schaltung |
+ | Fusebits: LOW: 0xE4 HIGH: 0xDE | ||
+ | Kann man machen | ||
+ | In diesem Fall kann mit einem ISP-Programmer der Chip nur ein einziges Mal programmiert werden. Und es ist auch darauf | ||
+ | ====== 8x8-Tastatur mit CD 4051 ====== | ||
- | < | + | **Anschluß einer 8x8 (10x8, 10x16) Tastatur an den Z1013 mit minimalem Hardwareaufwand** (vp) |
- | | + | |
- | ---------------------- | + | |
- | @ 1 E01 | + | |
- | A 3 E03 | + | |
- | B 5 E05 | + | |
- | C 7 E07 | + | |
- | D 9 E09 | + | |
- | E B E11 | + | |
- | F > E13 | + | |
- | G | + | |
- | H Q D01 | + | |
- | I E D03 | + | |
- | J T D05 | + | |
- | K U D07 | + | |
- | L O D09 | + | |
- | M Ue D11 | + | |
- | N | + | |
- | O | + | |
- | P Y B01 | + | |
- | Q C B03 | + | |
- | R B B05 | + | |
- | S M B07 | + | |
- | T . B09 | + | |
- | U < E12 | + | |
- | V <- A10 | + | |
- | W | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | < | + | |
- | SPACE @ B00 | + | |
- | | + | |
- | ENT | + | |
- | </ | + | |
- | Drei Tasten koennen nicht konvertiert werden, da diese Positionen | + | Aus der Wühlkiste eines bekannten Versandhauses hatte ich 1990 eine Tastatur |
- | bei der K 7659 nicht besetzt sind. Die Korrespondenztabelle kann | + | erstanden, mit einer 8x8-Matrix und einem Schaltkreis vom Typ CD 4051 drauf. |
- | auch dazu benutzt werden, um die Hardware mit dem originalen Tastaturprogramm zu testen. | + | Ideal also, um diese an den Z1013 anzuschließen. |
+ | Der 8x8-Monitor basiert auf meinem modifizierten Brosigmontior (Version 2.028 | ||
+ | K7659). Die extrem einfache Schaltung (nur 1 Schaltkreis!!!) erfordert außer dem | ||
+ | Austausch des Betriebssystem-EPROMS, | ||
+ | Änderungen am Z1013 (Wird ein Monitor-Modul ala AK verwendet, ist gar kein | ||
+ | Umbau des Z1013 nötig). | ||
+ | Der Anschluß der Tastatur erfolgt über den Tastaturanschluß X2. | ||
- | === Aenderungen am Monitorprogramm === | + | Die Abfrage der Tastatur funktioniert prinzipiell so: |
- | Eine der wichtigsten Aenderungen ist das Eintragen des Aussprunges | + | OUT 8, Spalte |
- | aus dem originalen Tastaturprogramm und der veraenderten Initialisierung des ehemaligen Tastaturcodefelds. Alles andere koennte original bleiben. Es werden aber weitere Aenderungen vorgenommen, die | + | OUT 2, Zeile |
- | nicht die Softwarekompatibilitaet verringern. | + | IN 2 |
+ | BIT 4,A ; Abfrage Taste an Position Spalte, Zeile | ||
+ | JRZ .... ; Bit 4 = 0 -> Taste wurde gedrückt | ||
- | Solche Veraenderungen sind: | + | Zur Anpassung an andere Tastaturtypen ist im Listing die Tastaturmatrix |
+ | K7KEY zu ändern. Die Abfrage von Shift und Control erfolgt separat in den | ||
+ | Abschnitten " | ||
- | * NMI-Unterbrechung mit Registeranzeige (Init.66H bei Reset) | + | Außerdem wurde die FUNCTion-Taste genutzt, um die Sonderfunktionen |
- | * Hardcopyfunktion | + | Brosigmonitors zu impelmentieren. Die Zahl im Funktionstastenpositionsfeld |
- | * Beschreiben eines IO-Ports vom Monitor aus (" | + | K7FKY gibt die Position in der Matrix an, also 8xSpalte+Zeile. |
- | * Auflistung | + | |
- | * Initialisierung des Zusatzkommandoverteilers mit Standardwerten (@L--> | + | |
- | Da der zusaetzliche Speicher mit dem Tastaturprogramm noch nicht | + | * {{: |
- | ausgelastet ist, wurden auf dem Rest des Speichers das Headersave, | + | |
- | das Screencopyprogramm, die Joystickabfrage sowie der Sprungverteiler fuer die Systemerweiterung fest installiert. | + | |
- | Fuer die Uebernahme der Software ist es guenstig, die kompletten 4K | ||
- | ab F000H zu uebernehmen. | ||
- | |||
- | Die umfassende Vorstellung des Sprungverteilers wuerde hier zu weit | ||
- | fuehren. Deshalb sollen nur die wichtigsten Spruenge beschrieben | ||
- | werden: | ||
- | |||
- | < | ||
- | FFF7H - JMP STAT uebergibt Tastaturstatus im Akku | ||
- | A=0 - keine Taste gedr. | ||
- | A=FFH - Taste gedr. (ausser SHIFT o. CTRL) | ||
- | |||
- | FFF4H - JMP SARUF ruft SAVE-Routine des Headersave | ||
- | Parameteruebergabe entspr. Beschr. Headersave | ||
- | |||
- | FFF1H - JMP LORUF | ||
- | Parameteruebergabe entspr. Beschr. Headersave | ||
- | |||
- | FFEBH - JMP DRDEL setzt den logischen Druckertreiber zurueck | ||
- | (Zaehlzellen fuer Zeile- und Spaltenposition werden zu 0) | ||
- | |||
- | FFE8H - JMP DRAKK uebergibt den Akkuinhalt an den logischen | ||
- | Druckertreiber | ||
- | |||
- | FFE5H - JMP BSDR druckt den Inhalt des BWS bis zur Cursorposit. | ||
- | und kehrt in das aufrufende Programm zurueck | ||
- | |||
- | FFDFH - JMP DRZEL wie DRAKK, nur dass das Zeichen in Zelle 1BH | ||
- | uebergeben wird (vorgesehen, | ||
- | und CALL 0FFDFH zu drucken) | ||
- | |||
- | FFCDH - JMP DRINI Initialisierung des logischen Druckertreibers | ||
- | |||
- | FFCAH - JMP ZEIDR uebergibt ein Zeichen im Akku an physischen | ||
- | Druckertreiber | ||
- | |||
- | FFBBH - JMP GETST Abfrage der Joysticks und Uebergabe des Ergebnis- | ||
- | ses in BC (B-links, | ||
- | Bit 0 - links | ||
- | 1 - rechts | ||
- | 2 - runter | ||
- | 3 - hoch | ||
- | 4 - Aktionstaste | ||
- | Z-Flag=1, wenn keine Betaetigung vorliegt | ||
- | CY-Flag=1, wenn Spielhebel nicht angeschlossen sind | ||
- | |||
- | FFB8H - JMP SOUND Ausgabe einer vollen Periode auf die Tonband- | ||
- | buchse, sowie auf Bit 7 vom Systemport | ||
- | Uebergabe der Periodendauer in C mit T=n*33mks+20mks (2MHz) | ||
- | </ | ||
- | |||
- | Die Spruenge DRINI, DRZEL, DRAKK und ZEIDR sind nicht in den oberen | ||
- | 4K realisiert und sind mit JMP 0E800H, 0E803H, 0E806H und E809H | ||
- | initialisiert, | ||
- | Druckertreiber installieren kann. | ||
- | |||
- | |||
- | === Zusammenfassung === | ||
- | |||
- | |||
- | Es wurde eine alternative Tastaturvariante beschrieben, | ||
- | fessionellen Anspruechen gerecht wird und durch folgende Vorteile | ||
- | gekennzeichnet ist: | ||
- | |||
- | * geringer leistungsarmer Hardwareaufwand | ||
- | * zwischen Tastatur und Rechner nur 10-adriges Kabel erforderlich | ||
- | * Anzeige der Tastaturmodes durch LED's | ||
- | * schaltbarer Tastenklick | ||
- | * schnelle und sichere Abfrage | ||
- | * Interruptfaehigkeit | ||
- | * nur noch zwei SHIFT-Ebenen | ||
- | * hohe Softwarekompatibilitaet | ||
- | * freie Belegbarkeit der Tasten | ||
- | * frei programmierbare Stringausgabe mit Quittung | ||
- | * Repeatfunktion auf allen Zeichentasten | ||
- | * einfache Monitorrueckkehr durch RST 38H-Taste | ||
- | * direkter UP-Aufruf Screencopy aus der Tastaturroutine heraus | ||
- | * Direktspruenge zu festen Adressen aus der Tastaturroutine heraus | ||
- | * es koennen gegenueber der alten Routine alle Steuerzeichen erzeugt werden | ||
- | * Abfrage der vollen 8*12 Matrix | ||
- | * einfache Erweiterung der Tastatur auf 96 Tasten, indem die nicht besetzten Positionen aufgefuellt werden | ||
- | |||
- | |||
- | Dem gegenueber stehen die Nachteile: | ||
- | |||
- | * es wird zusaetzlicher Adressraum des Hauptspeichers benutzt | ||
- | * es muss eine Aenderung des originalen Monitorprogramms erfolgen | ||
- | * nur bedingte Kompatibilitaet bei Direktzugriffen auf die Matrix und bei Spruengen in die originale Routine hinein | ||
- | |||
- | Betrachtet man Vor- und Nachteile, so kann festgestellt werden, | ||
- | dass es sich lohnt, die Nachteile in Kauf zu nehmen, zumal eine | ||
- | Aenderung des Monitors nur einmal erfolgen muss. In jedem Fall | ||
- | stellt diese Tastatur eine echte Alternative zu der Prozessortastatur von Riesa dar, die in jedem Fall einen hoeheren Hardwareaufwand erfordert und eine geringere Leistungsfaehigkeit besitzt. | ||
- | |||
- | *) ZUSATZ: Es gibt diesen Monitor auch fuer die Tastatur der | ||
- | elektronischen Schreibmaschine ' | ||
- | Bestueckung der Leiterplatte ist nur darauf zu achten, dass | ||
- | Spalte 10 und 12 nicht belegt, und dass bei der K7659 und | ||
- | K7652 Spalten und Zeilen (A u. B) umgekehrt sind. | ||
- | |||
- | |||
- | ===== Version practic ===== | ||
- | |||
- | Von Gerhard Eisenkolb stammt eine einfacher aufzubauende Schaltung, die 100% kompatibel zu obiger Lösung ist. Anstelle einer zweiseitigen Leiterplatte wird nur eine einseitige Platine genutzt. | ||
- | |||
- | [[z1013: | ||
- | |||
- | {{: | ||
- | |||
- | ====== K7669 Anschluss nach Brosig ====== | ||
- | |||
- | Seit 1985 befindet sich ein 4-K-Monitor fuer die Tastatur K 7659 und spaeter | ||
- | |||
- | Der originale | ||
- | Fassung | ||
- | Die fuer die Tastaturtypen K7659 und K7652 eingesetzten | ||
- | |||
- | |||
- | * {{: | ||
- | |||
- | ====== K7659 Alphatastatur mit U880 ====== | ||
- | |||
- | Anschluss einer K7659-Tastatur mit eigenem Prozessor, von Riesa | ||
- | |||
- | {{: | ||
- | |||
- | * {{: | ||
- | |||
- | ====== Commodore-Tastatur mit U880 ====== | ||
- | |||
- | analog zum Anschluss einer K7659-Tastatur gibt es auch eine Variante zum Anschluss einer Commodore-Tastatur. | ||
- | |||
- | {{: | ||
- | |||
- | * {{: | ||
- | * {{: | ||
- | |||
- | Bild des Z1013 mit der 6x16-Tastatur | ||
- | |||
- | {{: | ||
- | |||
- | //Vielen Dank an Matthias// |