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


Centronics-Schnittstelle

;===================================================
;---- Experiment: Centronics-Schnittstelle ---------
;===================================================
;
            .GLOBAL CENTRX
CENTRX:     LD      A,0CFH      ;Port A - Modus 3
            OUT     (PIOAC),A
            LD      A,11111110B ;Bit 0 = /STB
            OUT     (PIOAC),A   ;Bit 1 = BUSY
            LD      A,00000111B ;keine Interrupts
            OUT     (PIOAC),A
;
            LD      A,0CFH      ;Port B - Modus 3
            OUT     (PIOBC),A
            LD      A,00000000B ;alle Bits Ausgang
            OUT     (PIOBC),A
            LD      A,00000111B ;keine Interrupts
            OUT     (PIOBC),A
            LD      A,1         ;/STB auf HIGH legen
            OUT     (PIOAD),A
;
            LD      HL,CENS1    ;Startmeldung
            CALL    PRTSTR
$1:         LD      HL,DSIMG    ;DIPSW geändert ?
            IN      A,(DIPSW)
            CP      (HL)
            LD      (HL),A
            CALL    NZ,SETDSW   ;neues Protokoll
            CALL    RDV24A      ;Zeichen eingelangt ?
            JR      C,$1
            CALL    OUTCEN      ;ja ---> drucken
            JR      $1
;
CENS1:      DEFB    'Serielle Druckerschnittstelle bereit'
            DEFB    0DH,0AH,0
;
;===================================================
;---- String auf Centronics-Schnittstelle drucken --
;===================================================
;
PRTSTR:     LD      A,(HL)      ;Zeichen holen
            CP      0           ;Ende des Strings ?
            RET     Z
            CALL    OUTCEN      ;drucken
            INC     HL          ;nächstes Zeichen
            JR      PRTSTR
;
;===================================================
;--- Zeichen auf Centronics-Schnittstelle drucken --
;===================================================
;
;ENTRY:     Zeichen in A
;EXIT:      Zeichen wird auf Centronics-Schnittstelle
;           ausgegeben
;
OUTCEN:     PUSH    AF
$1:         IN      A,(PIOAD)   ;warten bis BUSY ok
            AND     02H
            JR      NZ,$1
            POP     AF
            PUSH    AF
            OUT     (PIOBD),A   ;Zeichen ausgeben
            LD      A,1
            OUT     (PIOAD),A   ;/STB-Impuls
            LD      A,0
            OUT     (PIOAD),A
            LD      A,1
            OUT     (PIOAD),A
            POP     AF
            RET


Last Update: 2008-05-31