Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
homecomputer:bert [2012/06/26 07:41] – [Sonstiges] volkerp | homecomputer:bert [2025/01/15 07:31] (aktuell) – Download aktualisiert volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== BERT ====== | ====== BERT ====== | ||
- | ~~UNDERCONSTRUCTION~~ | + | Das Mikroprozessorsystem BERT ist ein Einplatinencomputer auf Z8-Basis ([[elektronik: |
- | Das Mikroprozessorsystem BERT ist ein Einplatinencomputer auf Z8-Basis (Z8671), mit serieller Ansteuerung und vielfältigen Experimenten. Beschrieben wurde dieses System im Buch „Einführung in die Mikroprozessor-Anwendung“, | + | Geplant war eine 10teilige TV-Serie im WDR für 1987/1988. Allerdings ist es leider nie zu einer Realisierung gekommen, nur das Begleitbuch und BERT (der eigentliche Fernseh-Star) entstanden. |
- | Geplant war auch die Ausstrahlung einer 10teiligen | + | |
- | Die ersten drei Buchstaben von BERT stehen für " | + | Die Buchstaben von BERT stehen für " |
+ | |||
+ | **Nachbau** | ||
+ | |||
+ | Von Firma shotech können Leiterplatten und ganze Bausätze für einen Nachbau bezogen werden: | ||
+ | https:// | ||
===== Systembeschreibung ===== | ===== Systembeschreibung ===== | ||
Zeile 17: | Zeile 21: | ||
Zum Betrieb des BERT werden zusätzlich ein Netzteil (6-9 V, 300 mA) und ein V24-Kopplung zum PC benötigt. Im Buch sind V24-Interfaceschaltungen für Commodore V20, IBM-PC, | Zum Betrieb des BERT werden zusätzlich ein Netzteil (6-9 V, 300 mA) und ein V24-Kopplung zum PC benötigt. Im Buch sind V24-Interfaceschaltungen für Commodore V20, IBM-PC, | ||
- | Zusätzlich zu BERT müssen | + | Zusätzlich zu BERT mussten |
- | BERT stellt 5 sogenannte Ports A .. E zur Verfügung, die über Kommandos abgefragt bzw. gesetzt werden können. | + | BERT stellt 5 sogenannte Ports A .. E zur Verfügung, die über Kommandos abgefragt bzw. gesetzt werden können. Das sind digitale Ein-/ |
- | Die Ports haben folgende | + | |
+ | Die Ports haben folgende | ||
^ Port ^ Beschreibung | ^ Port ^ Beschreibung | ||
Zeile 27: | Zeile 32: | ||
| C | reiner Eingabeport mit 74LS373 | | | C | reiner Eingabeport mit 74LS373 | | ||
| D | reiner Ausgabeport mit 74LS373 | | D | reiner Ausgabeport mit 74LS373 | ||
- | | E (DIP-Schalter) | + | | E (DIP-Schalter) |
+ | ==== Das Buch zum BERT ==== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | " | ||
+ | Roland Schule; Axel Gruppe.\\ | ||
+ | Unter Mitarb. von Michael Zillgitt. Jean Pütz (Hrsg.).\\ | ||
+ | - 1. Aufl. - Köln: vgs, 1987. (Experimente)\\ | ||
+ | ISBN 3-8025-1239-1 | ||
+ | |||
+ | <WRAP clear></ | ||
+ | **Inhalt**: | ||
- | {{:homecomputer: | + | - Anwendung von Mikroprozessoren: aktuelle Technik und faszinierendes Hobby |
- | Das Buch zum BERT. | + | - Vom Schalter |
+ | - Impulse zählen und erzeugen | ||
+ | - Codes und Zahlensysteme | ||
+ | - Analog und Digital | ||
+ | - Anzeige und Tastatur | ||
+ | - Mechanische Antriebe und Positionierung | ||
+ | - BERT ist ein eigenständiger Computer | ||
+ | - Programm-Entwicklung mit BERT | ||
+ | - Datenübertragung | ||
+ | - Zwei Anwendungsbeispiele für BERT | ||
+ | - Anhang | ||
- | " | ||
===== technische Daten ===== | ===== technische Daten ===== | ||
Zeile 59: | Zeile 86: | ||
| 7000-7fff | | 7000-7fff | ||
- | Die Adressdekodierung ist unvollständig. A15 wird nicht ausgewertet. d.h. die oberen Adressen | + | Die Adressdekodierung ist unvollständig. A15 wird nicht ausgewertet. d.h. die oberen Adressen |
^ DIP Schalter (Port E) ^ Baudrate | ^ DIP Schalter (Port E) ^ Baudrate | ||
Zeile 82: | Zeile 109: | ||
===== Downloads ===== | ===== Downloads ===== | ||
- | * meine Unterlagen | + | * Binaries, reass. Assembler Quellcode u.a. {{: |
- | * Listings | + | * Z8671-Unterlagen {{: |
- | * Assembler-ROM | + | * Assembler-ROM |
{{: | {{: | ||
Zeile 97: | Zeile 124: | ||
BERT wird über die serielle Schnittstelle mit dem PC verbunden. Die Baudrate wird über die DIP-Schalter ausgewählt (110 bis 19200 Baud). Mit " | BERT wird über die serielle Schnittstelle mit dem PC verbunden. Die Baudrate wird über die DIP-Schalter ausgewählt (110 bis 19200 Baud). Mit " | ||
- | Außerdem kann BERT als eigenständiger Computer genutzt werden. In diesem Fall kommt das interne BASIC/DEBUG des Z8671 zum Einsatz. Sowohl Direktmodus als auch Programmmodus sind möglich. Im EPROM ist Platz freigehalten, | + | Außerdem kann BERT als eigenständiger Computer genutzt werden. In diesem Fall kommt das interne BASIC/DEBUG des [[elektronik: |
Dies wird genauer im Buch Kapitel 8 ff. beschrieben. | Dies wird genauer im Buch Kapitel 8 ff. beschrieben. | ||
Zeile 103: | Zeile 130: | ||
==== serielle Schnittstelle ==== | ==== serielle Schnittstelle ==== | ||
- | Der Z8671 kommuniziert über eine serielles Interface der Pins P30 und P37 (s. Unterlagen Z8671). Der Anschluss an einen V24-Schnittstelle am PC erfordert einen Pegelwandler, | + | Der Z8671 kommuniziert über ein serielles Interface der Pins P30 und P37 (s. Unterlagen |
- | Ich habe meinen | + | Ich habe meinen |
Der PC übernimmt dabei dank USB auch gleich die Stromversorgung von BERT mit. | Der PC übernimmt dabei dank USB auch gleich die Stromversorgung von BERT mit. | ||
+ | {{: | ||
+ | |||
+ | Anschluss an BERT: Serielle Verbindung über die Diodenbuchse; | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Einstellungen beim Terminal-Programm **TeraTerm**: | ||
==== Initialisierung ==== | ==== Initialisierung ==== | ||
Zeile 116: | Zeile 150: | ||
* PC sendet ' | * PC sendet ' | ||
- | Am PC wird GWBASIC für die Ansteuerung von BERT genutzt. Die Listings im Buch beginnen alle mit Zeilennummer 100. Vor jedes dieser Programme muss ein Initialisierungsprogramm gestellt werden, dass obige Schritte abarbeitet. Das lnitialisierungs-Programm INIT für den IBM-PC sieht z.B. so aus: | + | Am PC wird GWBASIC |
< | < | ||
Zeile 126: | Zeile 160: | ||
25 WIDTH 40 : KEY OFF : CLS : COLOR 0,7 | 25 WIDTH 40 : KEY OFF : CLS : COLOR 0,7 | ||
30 PRINT" | 30 PRINT" | ||
- | 35 PRINT" | + | 35 PRINT" |
40 PRINT" | 40 PRINT" | ||
45 IF EOF(2) THEN 45 | 45 IF EOF(2) THEN 45 | ||
Zeile 137: | Zeile 171: | ||
</ | </ | ||
- | ==== Kommandos | + | ==== Kommandomodus |
+ | |||
+ | Mit dem BASIC/ | ||
+ | Man kann mit einem Terminalprogramm (z.B. TeraTerm) die BERT-Kommandos interaktiv ausprobieren. Oder ein PC-Steuerprogramm kommuniziert mit BERT, indem die BERT-Kommandos mit PRINT # | ||
+ | |||
+ | Das Buch Kapitel 4 bis 7 arbeitet auf letztere Weise- PC-BASIC-Programme kommunizieren mit BERT, indem sie über Kanal 2 ASCII-Zeichen senden bzw. empfangen. | ||
Im Kommandomodus werden Kommandos als ASCII-Zeichenketten an BERT gesendet. Ein Kommando wird mit ENTER (0Dh) abgeschlossen. Zahlen werden als Dezimalzahlen übertragen. Die Befehle sind alle gleich aufgebaut: Buchstaben benennen den Port, eventuell gefolgt von einer Bit-Nummer (z.B. ' | Im Kommandomodus werden Kommandos als ASCII-Zeichenketten an BERT gesendet. Ein Kommando wird mit ENTER (0Dh) abgeschlossen. Zahlen werden als Dezimalzahlen übertragen. Die Befehle sind alle gleich aufgebaut: Buchstaben benennen den Port, eventuell gefolgt von einer Bit-Nummer (z.B. ' | ||
- | **=** bedeutet Ausgabebefehl: | + | **=** bedeutet Ausgabebefehl: |
- | **?** bedeutet Abfrage (Eingabebefehl): | + | **?** bedeutet Abfrage (Eingabebefehl): |
< | < | ||
Zeile 263: | Zeile 302: | ||
Adresse expr beginnt. | Adresse expr beginnt. | ||
' | ' | ||
+ | |||
+ | G=0 beendet den Kommandomodus und startet wieder den BASIC/ | ||
**Ergänzende Hinweise** | **Ergänzende Hinweise** | ||
Zeile 272: | Zeile 313: | ||
Absetzen des Kommandos erfolgen. Dies gilt insbesondere für die Kommandos des | Absetzen des Kommandos erfolgen. Dies gilt insbesondere für die Kommandos des | ||
Multiplexverfahrens und der Motorsteuerung. | Multiplexverfahrens und der Motorsteuerung. | ||
+ | |||
==== BASIC/ | ==== BASIC/ | ||
- | Nach einem Reset befindet sich BERT bzw. der Z8671 im BASIC/ | + | Nach einem Reset befindet sich BERT bzw. der [[elektronik: |
10 PRINT "HALLO BERT" | 10 PRINT "HALLO BERT" | ||
Zeile 280: | Zeile 322: | ||
RUN | RUN | ||
- | Mit ESC kann ein laufendes BASIC/ | + | Mit ESC kann ein laufendes BASIC/ |
Mit der Funktion USR() können Maschinenprogramme aufgerufen werden. So können auch im BASIC/ | Mit der Funktion USR() können Maschinenprogramme aufgerufen werden. So können auch im BASIC/ | ||
Zeile 288: | Zeile 330: | ||
=== Hex/ | === Hex/ | ||
- | GO@1010B, | + | GO@%101B, |
Gibt des Speicher zeilenweise zu je 8 Byte hexadezimal und Ascii aus. | Gibt des Speicher zeilenweise zu je 8 Byte hexadezimal und Ascii aus. | ||
In der Ascii-Ausgabe wird Bit7 ignoriert; Steuerzeichen werden als ' | In der Ascii-Ausgabe wird Bit7 ignoriert; Steuerzeichen werden als ' | ||
+ | |||
+ | === Z8-Register anzeigen === | ||
+ | |||
+ | GO@%17C3, | ||
+ | |||
+ | === Z8-Register ändern === | ||
+ | |||
+ | Register werden direkt mit BASIC/ | ||
+ | |||
+ | ^8=%2100 | ||
+ | NEW | ||
+ | |||
+ | setzt den Anfang des BASIC/ | ||
+ | |||
+ | @%0C=@%0C-2 | ||
+ | @%0A=@%0A-2 | ||
+ | NEW | ||
+ | |||
+ | verschiebt den Bereich für Variabeln und den Stack um 512 Byte nach unten. | ||
+ | |||
+ | === RAM ändern === | ||
+ | |||
+ | GO@%1830, | ||
+ | |||
+ | Es wird die Adresse angezeigt. Jetzt wird der Speicherinhalt als Hexzahl (ohne %) eingegeben. Nach Enter erscheint die nächste Adr. usw. Beendet wird der RAm-Editor durch sofortiges Enter ohne Eingabe einer Hexzahl. | ||
+ | |||
+ | Alternativ kann der RAM auch mit dem Indirektionsoperator ^ geändert werden. | ||
+ | |||
=== EPROM-Programmierung === | === EPROM-Programmierung === | ||
- | TODO | + | Über eine kleine Zusatzschaltung (Buch S. 196) können mit BERT anwendungsspezifische EPROMs 2732 (25V) und 2732A (21V) programmiert werden. Dabei wird eine Kopie des BERT-EPROMs erstellt und zusätzlich ein Anwender-BASIC/ |
+ | GO@%17C0 | ||
+ | | ||
+ | startet den kompletten Programmierungszyklus: | ||
+ | * Löschtest: Es wird getestet, ob der EPROM gelöscht ist, d.h. überall mit %FF gefüllt ist. Andernfalls gibt es eine Fehlermeldung 'EPROM FEHLER' | ||
+ | * Formatierung: | ||
+ | * Das BASIC/ | ||
+ | * War alles erfolgreich, | ||
+ | |||
+ | Die einzelnen Programmierungsabschnitte können auch einzeln aufgerufen werden. Details siehe Monitorprogramm. | ||
+ | |||
+ | ==== Mini-Assembler ==== | ||
+ | |||
+ | Im Buch wird ein zusätzlicher EPROM von B. Holzhauer beschrieben, | ||
+ | |||
+ | Der Mini-Assembler arbeitet mit Zeilennummern. Er kennt keine Kommentare. Der Code wird als Basicprogramm erfasst. Mit GO@%800[, | ||
+ | |||
+ | Beispiel: Einlesen einer zweistelligen BCD-Zahl an Port C\\ | ||
+ | Binärzahl := Einerziffer + 2 * Zehnerziffer + 2*4 * Zehnerziffer | ||
+ | < | ||
+ | 10 $ABS %13FD | ||
+ | 20 LD R4,%50 | ||
+ | 30 LDC R3,@RR4 | ||
+ | 40 LD R2,R3 | ||
+ | 50 AND R3, #%0F | ||
+ | 60 AND R2, #%F0 | ||
+ | 70 SWAP R2 | ||
+ | 80 RL R2 | ||
+ | 90 ADD R3,R2 | ||
+ | 100 RL R2 | ||
+ | 110 RL R2 | ||
+ | 120 ADD R3,R2 | ||
+ | 130 CLR R2 | ||
+ | 140 RET | ||
+ | </ | ||
+ | |||
+ | Nach dem Assemblieren mit GO@%800 kann anschließend die übersetzte Maschinencode-Routine mit USR(%13FD) aufgerufen werden. | ||
+ | |||
+ | Um sie als **neues Kommando ' | ||
+ | |||
+ | %1A87: ' | ||
+ | |||
+ | 2019: Der beschriebene Assembler-ROM galt als verschollen, | ||
+ | |||
+ | https:// | ||
===== Sonstiges ===== | ===== Sonstiges ===== | ||
Zeile 306: | Zeile 420: | ||
Entwicklungsmuster, | Entwicklungsmuster, | ||
- | Dr. Schulé: "ich kann Ihnen aus rechtlichen Gründen weder die Software duplizieren noch andere Unterlagen zur Verfügung stellen. Ich habe meine Elektronikkiste aufgeräumt und noch vier Exemplare des BERT vorgefunden. - Zwei frühe Entwicklungsstadien mit reichlich Handverdrahtung, | + | Dr. Schulé: "ich kann Ihnen aus rechtlichen Gründen weder die Software duplizieren noch andere Unterlagen zur Verfügung stellen. Ich habe meine Elektronikkiste aufgeräumt und noch vier Exemplare des BERT vorgefunden. |
- | Ich habe zwar seinerzeit den BERT entwickelt, aber die Rechte daran liegen bei der vgs (www.vgs.de) in Köln. Den Schaltplan des BERT können Sie sich sicher aus den Beschreibungen im Begleitbuch und den Unterlagen des Z8671 ableiten. Das Platinen-Layout liegt mir nicht vor; es wurde von der Fa. Thomsen-Elektronik (www.thomsen-elektronik.de) entwickelt, die auch den Computer | + | * Zwei frühe Entwicklungsstadien mit reichlich Handverdrahtung, |
+ | * ein Vorserienmodell | ||
+ | * und ein Serienmodell (siehe Foto). | ||
+ | |||
+ | Die Entwicklungs- und Vorserienmodelle tragen statt des Z8671 einen Z8613, d.h. ein Z8-Prozessor mit externem ROM. | ||
+ | |||
+ | Ich habe zwar seinerzeit den BERT entwickelt, aber die Rechte daran liegen bei der vgs (www.vgs.de) in Köln. Den Schaltplan des BERT können Sie sich sicher aus den Beschreibungen im Begleitbuch und den Unterlagen des Z8671 ableiten. Das Platinen-Layout liegt mir nicht vor; es wurde von der Fa. Thomsen-Elektronik (www.thomsen-elektronik.de) entwickelt, die auch den Computer | ||
+ | |||
+ | Register: | ||
+ | |||
+ | < | ||
+ | %48 Programmunterbrechung Quelle | ||
+ | %47 Zählerüberlauf | ||
+ | %46 Kopie des Registers %F6 | ||
+ | %45 Abeitsregister bei Programmunterbrechungen | ||
+ | %40 Arbeitsregister bei Programmunterbrechungen | ||
+ | %3F Zeiger Arithmetik-Stapelspeicher (Kommandos) | ||
+ | %3E Kopie der letzten Ausgabe an Port D | ||
+ | %3D Kopie der letzten Ausgabe an Port B | ||
+ | %3C Kopie der letzten Ausgabe an Port A | ||
+ | %3B Kommandointerpreter Textzeiger low | ||
+ | %3A -"- high | ||
+ | %39 Kommandointerpreter Tabellenzeiger low | ||
+ | %38 -"- high | ||
+ | %37 Kommandointerpreter Kommandozeiger low | ||
+ | %36 -"- high | ||
+ | %35 Kommandointerpreter Arbeitsregister | ||
+ | %30 Kommandointerpreter Arbeitsregister | ||
+ | %2F Kommandointerpreter Eingabespeicher | ||
+ | %20 Kommandointerpreter Eingabespeicher | ||
+ | </ |