| Z80 CTC Programmierung - die Anwenderbeispiele |
|
|
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 |
|
|
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 |
|
|
|
| Programmlisting | |
| 2.Effiziente CTC-Programmierung |
|
|
|
| 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 |
|
|
|
| CTC-Programmierung | |
| Programme zur CTC-Programmierung |
| 4. Handshake und Interruptprogrammieung |
|
|
|
| 5. Byteausgabe mit Handshake-Betrieb |
|
|
|
| Programmlisting für LC-80 (eine Anpassschaltung am Port wird benötigt) | |
| Unsere "Hello World"-Anwendung sollte jetzt funktionieren. |