| Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier. |
|

Home Anhang Listing: Minimalsystem Includes Nicht initialisierte Interrupts ignorieren |
|
|
|
Nicht initialisierte Interrupts ignorieren
;===================================================
;------ INTERRUPT: receiver DART-A full ------------
;===================================================
;
.GLOBAL GETICA
GETICA: PUSH AF
PUSH HL
PUSH DE
PUSH BC
IN A,(DARTAD) ;Zeichen einlesen
;
$5: LD HL,CNTRLA
DEC (HL) ;Control-Bearbeitung
INC (HL) ; ein ?
JR Z,$2
;
IFA.NE. 'S'-40H,$3 ;^S ?
LD HL,STPOTA
LD (HL),TRUE ;Ausgang stoppen
JR $1
;
$3: IFA.NE. 'Q'-40H,$6 ;^Q ?
LD HL,STPOTA
LD (HL),FALSE ;Ausgang starten
CALL TRMDTA
JR $1
;
$6: IFA.EQ. 'C'-40H,$4 ;^C ?
;
$2: LD HL,VARDBF ;Zeichen in FIFO
CALL WRFIFO
LD HL,VARDBF ;RTS gesetzt ?
CALL TSTFIF
CP 0FAH ;mehr als 250 Zeichen
JR C,$1 ; im Puffer ?
LD A,5
OUT (DARTAC),A
LD A,(DAREG5)
RES 1,A
LD (DAREG5),A
OUT (DARTAC),A ;RTS rücksetzen
$1: POP BC
POP DE
POP HL
POP AF
EI
RETI
;
$4: LD HL,WARM ;Warmstart
PUSH HL
LD HL,STPOTA ;Ausgang ein
LD (HL),FALSE
EI
RETI
;
;===================================================
;----- read character from DART A ------------------
;===================================================
;
;ENTRY: -
;EXIT: CF = 1, falls kein Zeichen vorhanden
; CF = 0, falls Zeichen gültig
; Zeichen in Akkumulator
;
.GLOBAL RDV24A
RDV24A: PUSH HL
PUSH BC
LD HL,VARDBF ;RTS gesetzt
CALL TSTFIF
CP 100 ;weniger als 100
JR NC,$1 ; Zeichen im Puffer ?
LD A,5
OUT (DARTAC),A
LD A,(DAREG5)
SET 1,A
LD (DAREG5),A
OUT (DARTAC),A ;RTS rücksetzen
$1: LD HL,VARDBF
CALL RDFIFO
POP BC
POP HL
RET
|
|
Home Anhang Listing: Minimalsystem Includes Nicht initialisierte Interrupts ignorieren |
|