LC-80 PIO-Port Kanal A auf Parallel-Ausgabe ohne Interrupt history menue Letztmalig dran rumgefummelt: 10.01.14 21:16:40

LC-80

LC-80-Programmierung

LC-80-CTC Einlesen ohne Interrupt - das Logo

inhaltlich auf korrektem Stand - evtl. partiell unvollständig ;-)

Informatik-Profi-Wissen

die beliebte alphabetisch sortierte Schnell-Liste

die beliebte numerisch sortierte Schnell-Liste

Allgemeine FLAG-Wirkung

FLAG-Wirkung auf OP-Code-Gruppen

Befehlsdokumentation mit Beispiel

Übersicht der Subroutinen des LC-8

Z80-CTC

 

Kurzreferenz zur CTC-Programmierung

Anleitung zur Assembler-Programmierung LC-80 Subroutinen KC-Emu in der aktuellen version zum dirkten Start

Assembler-Programmierung

die LC-80 Subroutinen

Der LC-80 Emulator zum direkten Starten

Eigene Aufgabe 1 Systembausteine programmieren: ein PIO-Kanal soll auf Byte-Ausgabe programmiert werden und ein entsprechendes Bitmuster senden.

Vorbetrachtungen:

Funktionsprinzip eines PIO-Kanals

Zweistrahl-Oszilloskop UTD1925C

die Taktfrequenz des LC-80 beträgt 900 kHz ein Kanal kann bis zu einem 0-Durchlauf maximal 255 × 255 = 65025 Impulse verarbeiten

900.00 : 65025 = 13,8408 d.h., alle rund 1/14 Sekunden gibt das einen Impuls am Zählerausgang

Pseudocode zum Programm:

Zeile Marke Block Adresse Hex-Code Assembler-Code Kommentar
0001   ORG 02000H
0002   INIT 02000H 21 1B 20 LD HL,COUNTER ;Zeiger auf ersten Speicherplatz
0003     02003H 1E FF LD E,0FFH ;Anzahl der Einlesevorgänge
0004   02005H 0E EC LD C,0ECH ;Kanaladresse für CTC-Kanal 0
0005     02007H 3E 25 LD A,025H ;CTC Kanalsteuerwort
0005     02009H     ;Steuerwortkennung Bit 0 gleich "1"
0005           ;kein Kanal-RESET - Bit 1 gleich "0"
0005           ;Zeitkonstante folgt Bit 2 gleich "1"
0005           ;kein externer TRIGGER - Bit 3 gleich "0"
0010           ;SLOPE L-Flanke - Bit 4 gleich "0"
0011           ;256/16 - Vorteiler 256 - Bit 5 gleich "1"
0012           ;MODE Zähler - Bit 6 gleich "1"
0013           ;kein Interrupt EI/DI Bit 7 gleich "0"
0014     02009H ED 79 OUT (C),A ;Steuerwort auf Kanladresse
0015     0200BH 3E FF LD A,0FFH ;Zeitkonstante laden
0016     0200DH ED 79 OUT (C),A ;Zeitkonstante auf Kanladresse
0017 READ:    0200FH 06 01 LD B,001H ;Zeitverzögerung bis zum nächsten Einlesen
0018 DELAY:   02011H 10 FE DJNZ DELAY ;Dekrement B und Sprung Zeitverzögerung
0019     02013H ED 78 IN A,(C) ;aktuellen Counterstand einlesen
0020     02015H 77 LD (HL),A ;Zählerstand auf RAM schreiben
0021     02016H 23 INC HL ;nächste Speicherzelle einstellen
0022     02017H 1D DEC E ;Elementezähler decrementieren
0023     02018H 20 F5 JR NZ,READ ;wenn nicht alle Elemente, dann neu einlesen
0024     0201AH 76 HALT ;wird erreicht, wenn alle 256 Elemente eingelesen sind
0025            
0026 COUNTER:   0201BH   SETBASE COUNTER ;Tabelle für eingelesene Werte
0027     0201BH 00 DEFB 000H  

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



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost am 9. Januar 2014 um 17.47 Uhr

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist