Z80 CTC Programmierung - die Anwenderbeispiele history menue Letztmalig dran rumgefummelt: 18.08.09 18:01:38

  1. Dappisches Programm zur Kanalsteuerung in verschiedenen Modi
  2. Effizientes Programm zur CTC-Programmierung
  3. CTC-Programmierung
CTC-Test-Programm im Interruptmode 2 history menue

Aufgabe: Unter Verwendung der Subroutine DAK1  ist nach Programmierung der CTC-Kanäle in verschiedenen Modi wahlweise der Zustand je eines Counters einzulesen sowie anzuzeigen - die Zeichentabelle befindet sich hier!

Lösungsalgorithmus: Die Initialisierungswerte der Kanäle werden durch die Tabelle ab 2020H indiziert, anschließend die Zählerstände der rückwrtszähler der Reihe nach angezeigt, indem Register C heruntergezählt und Indexregister IX heraufgezählt wird. Bei der Zeichenanzahl die Leerzeichen nicht vergessen und gut sind vor der Wiederholung ebenfalls einige Leerzeichen!!!

Anmerkungen zur Steuerung:

AF, A'F', B'C', D'E' werden zerstört

FAQ - The Most Wanted Requested Commands ;-)
Tallarische Befehlsliste und der Schnellversteh-Blockaufbau für die Hosentasche - leider sehr alt und gebraucht ;-) - leider nicht ganz vollständig (kanns't 'de aber vergessen - sind seltene Befehle)
Alphabetische Liste des Z80 Befehlssatzes sowie die LC-80-Befehlsliste gescannt (also Original und damit fehlerfrei)
WORD-Dokument der Alphabetischen Liste - Achtung - kleine Fehler in selten benötigten Befehlen - laufend aktualisiert!
Numerische Liste des Z80 Befehlssatzes
WORD-Dokument der numerischen -Liste - Achtung - kleine Fehler in selten benötigten Befehlen - laufend aktualisiert!
Allgemeine Funktionssymbolik
Befehlsbeschreibung und FLAG-Wirkung auf Befehle

... und hier nochmals die Übersicht zu dem Befehlslisten des Z80 (U880) Mikroprozessors

LC-80 Zeichencodetabelle - vergiss den ASCII ;-)

Marke Adresse Hex-Code Assembler-Code Kommentar
ORG 2000H ;Adresse Programmbeginn
EXIT: 2000H DD 21 20 20 LD IX, 2020H ;Index auf Anfang der Zeichentabelle 2020H
200BH  F5 PUSH AF ;Programm STOPP
200BH  C5 PUSH BC ;Programm STOPP
200BH  D5 PUSH DE ;Programm STOPP
200BH  E5 PUSH HL ;Programm STOPP
DISP:  2004H CD 5A 04 CALL DAK1 ;Call Subroutine auf 045AH
200BH  E1 POP HL ;Programm STOPP
200BH  D1 POP DE ;Programm STOPP
200BH  C1 POP BC ;Programm STOPP
200BH  F1 POP AF ;Programm STOPP
2007H FE 10 CP 10H ;Taste "+" gedrückt?
2009H 20 F9 JRNZ DISP ;springe auf 2004H, wenn nicht ZERO (falsche Taste)
200BH  76 HALT ;Programm STOPP
EQUATE
2020H ORG 2020H ;DATEN Adresse
2020H  AE DEFB 06BH ;Code für "S"
2021H E3 DEFB 0CEH ;Code für "U"
2022H 4F DEFB 0E3H ;Code für "P"
2023H C2 DEFB 0CAH ;Code für "L"
2024H CE DEFB 0CAH ;Code für "E"
2025H 6B DEFB 0CEH ;Code für "H"

Beispiel für eine kleine Anweisungstabelle in vollständiger Mnemoic-Codierung



  4. Handshake-Prinzip und Interruptprogrammierung
  5. Byte-Ausgabe mit Handshake-Betrieb
  6. Dappisches Programm zur Kanalsteuerung
  7. Effizientes Programm zur PIO-Programmierung


Einfaches Programm zur CTC-Programmierung history menue scroll up

 
Programmlisting 


2.Effiziente CTC-Programmierung history menue scroll up

Programmlisting
alle 8-Bit Ergebnisse arithmetischer Operationen stehen grundsätzlich im Akkumulator
zwei 8-Bit-Register können funktional zu einem 16-Bit-Register zusammengefasst werden


3. CTC-Programmierung history menue scroll up

 

CTC-Programmierung
Programme zur CTC-Programmierung

4. Handshake und Interruptprogrammieung history menue scroll up


5. Byteausgabe mit Handshake-Betrieb history menue scroll up

 
Programmlisting für LC-80 (eine Anpassschaltung am Port wird benötigt)
Unsere "Hello World"-Anwendung sollte jetzt funktionieren.