Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier. |
Home Anhang Listing: Minimalsystem Includes 8-Bit-Zeichen in FIFO schreiben | |
|
|
8-Bit-Zeichen in FIFO schreiben
;=================================================== ;----- 8-Bit-Zeichen in FIFO schreiben ------------- ;=================================================== ; ;ENTRY: HL zeigt auf Beginn des FIFOs, ; AKKU enthält Zeichen ;EXIT: CF=0 --> Zeichen in FIFO eingetragen ; CF=1 --> FIFO ist voll, Zeichen nicht ; eingetragen ; ;Struktur des FIFOs: ; 1. Byte: FIFO input pointer (0..255) ; 2. Byte: FIFO output pointer (0..255) ; 3.-258.Byte: FIFO Datenfeld ; ---> Gesamtlänge: 258 Byte ; .GLOBAL WRFIFO WRFIFO: PUSH HL PUSH BC PUSH AF LD C,(HL) ;Eingangspointer INC HL LD A,(HL) ;Ausgangspointer DEC A ;FIFO voll ? CP C JR Z,FIFFUL ;ja POP AF DEC HL INC (HL) ;neuer Pointer INC HL INC HL ;Datenadresse LD B,0 ; berechnen ADD HL,BC LD (HL),A POP BC POP HL OR A ;Carry Flag rücksetzen RET ; FIFFUL: POP AF ;FIFO voll POP BC POP HL SCF ;Carry Flag setzen RET ; ;=================================================== ;------ 8-Bit-Zeichen von FIFO lesen --------------- ;=================================================== ; ;ENTRY: HL zeigt auf Beginn des FIFOs ;EXIT: CF=0, Daten in AKKU sind gültig ; CF=1, FIFO ist leer ; .GLOBAL RDFIFO RDFIFO: PUSH HL PUSH BC LD A,(HL) ;FIFO Eingangspointer INC HL LD C,(HL) ;FIFO Ausgangspointer CP C ;FIFO leer ? JR Z,FIFMPT INC (HL) INC HL ;Datenadresse LD B,0 ; berechnen ADD HL,BC LD A,(HL) POP BC POP HL OR A ;CF=0 ---> Daten OK RET ; FIFMPT: POP BC POP HL SCF ;CF=1 ---> Daten RET ; ungültig ; ;=================================================== ;----- FIFO löschen -------------------------------- ;=================================================== ; ;ENTRY: HL zeigt auf Beginn des FIFOs ;EXIT: FIFO ist gelöscht und leer ; .GLOBAL CLRFIF CLRFIF: PUSH AF XOR A LD (HL),A INC HL LD (HL),A DEC HL POP AF RET ; ;=================================================== ;----- FIFO Status testen -------------------------- ;=================================================== ; ;ENTRY: HL zeigt auf Beginn des FIFOs ;EXIT: CF=1 ---> FIFO voll ; ZF=0 ---> if FIFO leer ; AKKU enthält Zahl der Zeichen in FIFO ; .GLOBAL TSTFIF TSTFIF: LD A,(HL) INC HL SUB (HL) JR Z,TFE ;FIFO leer CP 0FFH JR Z,TFF ;FIFO voll SCF ;FIFO weder voll noch CCF ; leer DEC HL RET ; TFE: SCF CCF DEC HL ;CF=0, ZF=1 RET ; TFF: XOR A LD A,0FFH SCF ;CF=1, ZF=0 DEC HL RET
|
|
Home Anhang Listing: Minimalsystem Includes 8-Bit-Zeichen in FIFO schreiben |