Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
elektronik:z8671:basic_debug [2021/11/18 07:22] – [Downloads] volkerpelektronik:z8671:basic_debug [2022/08/04 06:37] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden volkerp
Zeile 11: Zeile 11:
   * Direktzugriff auf Register und Speicher    * Direktzugriff auf Register und Speicher 
  
-Das BASIC ist im Handbuch **z8671_basic_debug.pdf** ausführlich beschrieben.+Das BASIC ist im Zilog-Handbuch {{ :elektronik:z8671_basic_debug.pdf |}} ausführlich beschrieben.
  
 Das Basic orientiert sich sehr stark an das TINY-BASIC von Tom Pittman (http://www.ittybittycomputers.com/ittybitty/tinybasic/). Das Basic orientiert sich sehr stark an das TINY-BASIC von Tom Pittman (http://www.ittybittycomputers.com/ittybitty/tinybasic/).
 Literatur und Programme zu den dort beschriebenen BASICs für 1802, 6502, 6800-Controller passen auch zum BASIC/DEBUG des Z8671. Literatur und Programme zu den dort beschriebenen BASICs für 1802, 6502, 6800-Controller passen auch zum BASIC/DEBUG des Z8671.
 +
 +11/2021: Tom Pittman hat mir bestätigt, dass er dieses BASIC Ende der 70er im Auftrag von Zilog programmiert hat.
 +
  
 ===== Downloads ===== ===== Downloads =====
Zeile 22: Zeile 25:
     * IL source + IL Makros     * IL source + IL Makros
     * IL Decompiler (perl)      * IL Decompiler (perl) 
 +  * {{ :elektronik:z8671:tb_pittman.zip |}} Quellen der Tiny-BASIC-Versionen von T.Pittman (für RCA1802, 6502, 6800) sowie die aufbereiteten IL zwecks Vergleich
  
-zur Anpassung an andere Systeme und andere Adressen sowie Erweiterungen s. [[tiny:basic_debug|]]+zur Anpassung an andere Systeme und andere Adressen sowie Erweiterungen s. [[tiny:es40:basic_debug]]
 ===== Aufbau ===== ===== Aufbau =====
  
Zeile 31: Zeile 35:
  
 Das BASIC selbst ist nur 432 Byte groß. Das BASIC selbst ist nur 432 Byte groß.
-In Z8-Code ist der Interpreter für diese Codesprache enthalten sowie Initialisierung und In/Out-Code.+In Z8-Code ist der Interpreter für diese Codesprache enthaltensowie Initialisierung und In/Out-Code.
 Diese Art der Implementierung ist extrem speichersparend. Nur so konnten die umfangreichen Fähigkeiten Diese Art der Implementierung ist extrem speichersparend. Nur so konnten die umfangreichen Fähigkeiten
-des BASIC/DEBUG in nur 20248 Byte untergebracht werden.+des BASIC/DEBUG in nur 2048 Byte untergebracht werden.
  
-Das Zwiebelmodell beschreibt sehr schön den Ablauf: Das BASIC-Anwenderprogramm +Das Zwiebelmodell (s. Bild) beschreibt sehr schön den Ablauf: Das BASIC-Anwenderprogramm 
 wird vom BASIC-Interpreter (in TBIL) interpretiert. Dieser wiederum wird vom TBIL-Interpreter (in Z8-Code) interpretiert, und das ganze läuft auf einem Z8-Prozessor und kommuniziert mit der Außenwelt. wird vom BASIC-Interpreter (in TBIL) interpretiert. Dieser wiederum wird vom TBIL-Interpreter (in Z8-Code) interpretiert, und das ganze läuft auf einem Z8-Prozessor und kommuniziert mit der Außenwelt.
 <WRAP clear/> <WRAP clear/>
Zeile 45: Zeile 49:
   * Autostart eines Programms nach RESET   * Autostart eines Programms nach RESET
   * Editierzeichen für DEL, Zeilenende-Zeichenfolge frei vergebbar   * Editierzeichen für DEL, Zeilenende-Zeichenfolge frei vergebbar
-  * eigene I/O-Treiber anstelle der Z8-SIO +  * eigene I/O-Treiber anstelle Nutzung der Z8-SIO 
  
 ===== Literatur ===== ===== Literatur =====
  
-  * z8671_basic_debug.pdf von Zilog. (der Hochpfeil in der Doku ist das Zeichen "^")+  * {{ :elektronik:z8671_basic_debug.pdf |}} von Zilog. (der Hochpfeil in der Doku ist das Zeichen "^") 
 +  * Buch „Mikroprozessoren in der Meß- und Regeltechnik. Funktion - Aufbau und Programmierung“ von Gerhard Ledig, Franzis-Verlag 1988
  
-Literatur zu Tiny-BASIC:+weitere Literatur zu Tom Pittman'Tiny-BASIC:
  
 orig. Scans orig. Scans
Zeile 66: Zeile 71:
   * The First Book of Tiny BASIC Programs\\  https://www.retrotechnology.com/memship/Son_of_TFBOTBAS.HTM    * The First Book of Tiny BASIC Programs\\  https://www.retrotechnology.com/memship/Son_of_TFBOTBAS.HTM 
   * Tiny Basic Experimenters Kit\\   http://www.ittybittycomputers.com/ittybitty/tinybasic/TBEK.txt   * Tiny Basic Experimenters Kit\\   http://www.ittybittycomputers.com/ittybitty/tinybasic/TBEK.txt
-  * Buch „Mikroprozessoren in der Meß- und Regeltechnik. Funktion - Aufbau und Programmierung“ von Gerhard Ledig, Franzis-Verlag 1988 
   * originale Scans und Beispiele und weitere Dokumente\\ http://retro.hansotten.nl/6502-sbc/kim-1-manuals-and-software/kim-1-software/   * originale Scans und Beispiele und weitere Dokumente\\ http://retro.hansotten.nl/6502-sbc/kim-1-manuals-and-software/kim-1-software/
      
Zeile 486: Zeile 490:
 </code> </code>
  
-Aufgrund der Beschränkungen bei LN (nur Werte 00xxh möglich) muss bei LIST ohne Parameter ein wenig gezaubert werden: Die Werte auf dem Stack werden durch Manipulation in kleinste und größtmögliche Zeilennummer gewandelt. Das entspricht dann dem Aufruf "LIST 1,32535".+Aufgrund der Beschränkungen bei LN (nur Werte 00xxh möglich) muss bei LIST ohne Parameter ein wenig gezaubert werden: Die Werte auf dem Stack werden durch Manipulation in kleinste und größtmögliche Zeilennummer gewandelt. Das entspricht dann dem Aufruf "LIST 1,32767".
  
 Die Division ist nur als vorzeichenlose 16-Bit-Division implementiert. Deshalb muss in der IL die Fallunterscheidung bzgl. Vorzeichen und Division durch 0 erfolgen. Die Division ist nur als vorzeichenlose 16-Bit-Division implementiert. Deshalb muss in der IL die Fallunterscheidung bzgl. Vorzeichen und Division durch 0 erfolgen.
  
-Um Bytes zu sparen, wurden Unterprogramme verlegt und Codes zusammengeführt. Das erzeut leider auch schwerer lesbaren Spaghetti-Code, aber nur so passt der gesamte Basic-Interpreter in 2kByte.+Um Bytes zu sparen, wurden Unterprogramme verlegt und Codes zusammengeführt. Das erzeugt leider auch schwerer lesbaren Spaghetti-Code, aber nur so passt der gesamte Basic-Interpreter in 2kByte.
  • elektronik/z8671/basic_debug.1637220121.txt.gz
  • Zuletzt geändert: 2021/11/18 07:22
  • von volkerp