Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| elektronik:z8671 [2012/06/26 09:08] – volkerp | elektronik:z8671 [2024/09/11 10:56] (aktuell) – [Literatur] volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Zilog Z8671 ====== | ====== Zilog Z8671 ====== | ||
| - | |||
| - | ~~UNDERCONSTRUCTION~~ | ||
| Der Zilog Z8671 ist ein Einchip-Mikrorechner von Zilog. Er gehört zu Z8-Reihe. Im internen ROM ist ein BASIC-Interpreter enthalten. | Der Zilog Z8671 ist ein Einchip-Mikrorechner von Zilog. Er gehört zu Z8-Reihe. Im internen ROM ist ein BASIC-Interpreter enthalten. | ||
| - | Von Zilog gibt es neben den Z8-Datenbüchern auch ein zusätzliches Dokument "Z8671 Single-chip BASIC Interpreter: BASIC/DEBUG Software Reference Manual, Zilog, Incorporated, | + | [[http://www.cpushack.com/ |
| - | Ebenso (vielleicht in obigem Software Reference Manual?) gab es von Zilog das komplette Quelllisting des BASIC/DEBUG. | + | |
| - | Der Z8671 wurde auch von SGS produziert. | + | Von Zilog gibt es neben den Z8-Datenbüchern |
| - | Der in der DDR produzierte Z8-Clone [[tiny: | + | Der Z8671 wurde auch von SGS-Thomson und von ST Microelectronics produziert. |
| - | ===== BASIC/DEBUG ===== | + | Der in der DDR produzierte Z8-Clone [[elektronik: |
| + | ===== Literatur ===== | ||
| + | {{: | ||
| - | ===== Literatur ===== | + | * {{: |
| + | * "New Life for the Z8671 BASIC Interpreter" | ||
| + | * Z8_Family_Design_Handbook_Jun88.pdf (Zilog, 660 Seiten, 38 MB) (http:// | ||
| + | * Z8 microcomputer family May86.pdf (SGS, 3th edition, 302 Seiten, 19 MB)\\ enthält Beispielapp. " | ||
| + | * Z8671-Emulator (http:// | ||
| + | * " | ||
| + | * ZiLOG Z8671 BASIC/Debug chip Replacement (http:// | ||
| + | * FORTH for the Zilog Z8 Microcontroller http:// | ||
| + | * [[https:// | ||
| - | * "New Life for the Z8671 BASIC Interpreter" | + | * [[http://www.bitsavers.org/components/zilog/z8/1983_Z8_Microcomputer_Technical_Manual.pdf]] |
| - | * Z8671 Single-chip BASIC Interpreter: BASIC/DEBUG Software Reference Manual, Zilog, 1988 | + | * [[https:// |
| - | * | + | * Das Buch " |
| + | |||
| + | |||
| + | {{: | ||
| ===== Downloads ===== | ===== Downloads ===== | ||
| - | * ROM-Inhalt | + | * {{: |
| + | * {{: | ||
| + | * {{ : | ||
| + | * **NEW 2021** {{ : | ||
| + | |||
| + | |||
| + | ===== BASIC/DEBUG ===== | ||
| + | |||
| + | s.a. [[elektronik: | ||
| + | ===== Initialisierung ===== | ||
| + | |||
| + | Wenn der Reset-Eingang des Z8671 auf L-Pegel geht, so stoppt er alle Aktivitäten. Beim Wiederanstieg dieses Signals beginnt der Z8, das Maschinenprogramm im internen Festwertspeicher ab Adresse %000C auszuführen; | ||
| + | |||
| + | Danach wird die Übertragungsrate zum PC festgelegt, indem die Wert von Adresse %FFFD eingelesen wird. Dabei spielen nur die niedrigstwertigen drei Bits eine Rolle. Die höheren Bits sind beliebig und können für andere | ||
| + | Zwecke verwendet werden. | ||
| + | |||
| + | ^ Wert auf %FFFD ^ Baudrate | ||
| + | | x x x x x 0 0 0 | 150 | | ||
| + | | x x x x x 0 0 1 | 19200 | | ||
| + | | x x x x x 0 1 0 | 9600 | | ||
| + | | x x x x x 0 1 1 | 4800 | | ||
| + | | x x x x x 1 0 0 | 2400 | | ||
| + | | x x x x x 1 0 1 | 1200 | | ||
| + | | x x x x x 1 1 0 | 110 | | ||
| + | | x x x x x 1 1 1 | 300 | | ||
| + | |||
| + | |||
| + | In der Reset-Routine folgt dann das Überprüfen der Speicher-Bestückung. Je nach RAM-Ausbau wird den Variablen ihr Platz zugewiesen und der Stapelzeiger für Rücksprungadressen der Unterprogramme gesetzt; außerdem werden Zeiger auf Anfang und Ende des nutzbaren BASIC-Speichers gesetzt. | ||
| + | |||
| + | Wichtig ist bei der Reset-Routine jedoch auch das Prüfen des Speichers bei niedrigen Adressen. Insbesondere | ||
| + | interessiert sich das Betriebssystem für den Inhalt des Speicherzellen-Paares %1020 und %1021. Sollte sich hier RAM befinden, dann nimmt der Z8671 über BASIC/DEBUG den Dialog mit dem Benutzer auf, indem er den Doppelpunkt sendet. Ist an %1020 Festwertspeicher, | ||
| + | Ist dies nicht der Fall, so wird ebenfalls der Dialog aufgenommen. | ||
| + | |||
| + | Wenn die Bedingung jedoch erfüllt ist, nimmt BASIC/DEBUG die in %1020 und %1021 stehende Zahl als die erste Zeilennummer eines BASIC/ | ||
| + | |||
| + | ===== Register ===== | ||
| + | |||
| + | < | ||
| + | %FF Stapelzeiger low | ||
| + | %FE Stapelzeiger high | ||
| + | %FD Registerblock-Zeiger | ||
| + | %FC Flaggenregister | ||
| + | %FB Programmunterbrechung Maskenregister | ||
| + | %FA Programmunterbrechung Anforderungsregister | ||
| + | %F9 Programmunterbrechung Prioritätsregister | ||
| + | %F8 Betriebsartenregister P0 und P1 (Daten- und Adreßbus) | ||
| + | %F7 Betriebsartenregister P3 | ||
| + | %F6 Datenrichtungsregister P2 | ||
| + | %F5 Vorteilerregister 0 | ||
| + | %F4 Zähler-/ | ||
| + | %F3 Vorteilerregister 1 | ||
| + | %F2 Zähler-/ | ||
| + | %F1 Betriebsartenregister Zähler/ | ||
| + | %F0 Terminal Datenregister | ||
| + | |||
| + | %EF-%80 unbelegt | ||
| + | |||
| + | %7F Arithmetik-Stapelspeicher | ||
| + | %6B Arithmetik-Stapelspeicher | ||
| + | ... | ||
| + | %1F Zeiger Arithmetik-Stapelspeicher (BASIC/ | ||
| + | %1E BASIC/ | ||
| + | %16 BASIC/ | ||
| + | %15 USR-Funktion 2. Argument low | ||
| + | %14 -"- high | ||
| + | %13 USR-Funktion 3. Argument low | ||
| + | %12 -"- high | ||
| + | %11 BASIC/ | ||
| + | %10 -"- | ||
| + | %0F BASIC/ | ||
| + | %0E -"- high | ||
| + | %0D BASIC/DEBUG Aufnahmezeiger in Eingabespeicher low | ||
| + | %0C -"- high | ||
| + | %0B BASIC/DEBUG Obergrenze nutzbares RAM low | ||
| + | %0A -"- RAM high | ||
| + | %09 BASIC/ | ||
| + | %08 -"- high | ||
| + | %07 BASIC/ | ||
| + | %06 -"- high | ||
| + | %05 BASIC/ | ||
| + | %04 -"- high | ||
| + | %03 P3 | ||
| + | %02 P2 | ||
| + | %01 P1 = Daten-/ | ||
| + | %00 P0 = Adreßbus (A8 bis A15) | ||
| + | </ | ||
| + | |||
| + | ===== Aufbau ===== | ||
| + | |||
| + | 2021: | ||
| + | |||
| + | Der orig. Quellcode war nicht aufzufinden. | ||
| + | |||
| + | Der Basic-Interpreter wird intern durch eine eigene IL (interpreter language) abgearbeitet, | ||
| + | |||
| + | Der IL-Code erinnert sehr an die Implementierung von Tom Pittman. In seiner Bibliographie schreibt Pittman auch von einer Implementierung für den Z8 (" | ||
| + | |||
| + | 11/2021: Tom Pittman hat mir bestätigt, dass er dieses BASIC im Auftrag von Zilog programmiert hat. | ||
| + | |||
| + | s.a. http:// | ||
| + | |||
| + | * {{ : | ||