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:// | ||
+ | |||
+ | * {{ : |