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


DART A: Setup Protokol

;===================================================
;--- setup protocol of DART-A ----------------------
;===================================================
;
;Eingang:   AKKU enthält Steuerzeichen
;Ausgang:   Protokoll von DART-A eingestellt
;
;           8,7,6 ... Baudrate:
;                       OFF OFF OFF = 150 Baud
;                       OFF OFF ON  = 300 Baud
;                       OFF ON  OFF = 600 Baud
;                       OFF ON  ON  = 1200 Baud
;                       ON  OFF OFF = 2400 Baud
;                       ON  OFF ON  = 4800 Baud
;                       ON  ON  OFF = 9600 Baud
;                       ON  ON  ON  = 19200 Baud
;           5 ..... Number of data bits:
;                       OFF = 7 data bits
;                       ON  = 8 data bits
;           4 ..... parity enable:
;                       ON  = parity bit wird erzeugt
;                       OFF = kein parity bit
;           3 ..... parity:
;                       OFF = even
;                       ON  = odd
;           2 ..... Zahl der Stoppbits
;                       ON  = 2 Stoppbits
;                       OFF = 1 Stoppbit
;           1 ..... unbenutzt
;
            .GLOBAL SETPDA
SETPDA:     PUSH    AF
            PUSH    HL
            LD      (PROTBK),A
            SRL     A           ;Baudrate
            SRL     A
            SRL     A
            SRL     A
            AND     0EH
            PUSH    AF          ;speichern für CLK-mode
            LD      HL,BAUDTB
            ADDHLA
;           LD      A,3
;           OUT     (CTC2),A    ;Timer stoppen
            LD      A,(HL)
            OUT     (CTC2),A    ;Modus laden
            INC     HL
            LD      A,(HL)
            OUT     (CTC2),A    ;Zeitkonstante laden
;
            LD      HL,PROTBK   ;Parität
            POP     AF
            CP      4           ;Baudrate <= 300 ?
            LD      A,044H      ;x16 Modus
            JR      NC,$6
            LD      A,0C4H      ;x64 Modus
$6:         BIT     2,(HL)      ;Parität even/odd
            JR      NZ,$1
            SET     1,A
$1:         BIT     3,(HL)      ;Parität aus/ein
            JR      Z,$2
            SET     0,A
$2:         BIT     1,(HL)      ;Zahl der Stoppbits
            JR      Z,$5
            SET     3,A
$5:         PUSH    AF          ;DART register laden
            LD      A,4
            OUT     (DARTAC),A
            POP     AF
            OUT     (DARTAC),A
;
            LD      A,5         ;Sender Datenbits
            OUT     (DARTAC),A
            LD      A,0AAH
            BIT     4,(HL)
            JR      Z,$3
            SET     6,A
$3:         OUT     (DARTAC),A
            LD      (DAREG5),A  ;Register 5 enthält RTS
;
            LD      A,3         ;Empfänger Datenbits
            OUT     (DARTAC),A
            LD      A,041H
            BIT     4,(HL)
            JR      Z,$4
            SET     7,A
$4:         OUT     (DARTAC),A
;
            POP     HL
            POP     AF
            RET
;
            .DATA
PROTBK: DEFB        0           ;Steuerbits
DAREG5:     DEFB    0           ;RTS-Kontrolle Reg.5
            .CODE
;
BAUDTB:     DEFB    47H,160     ; 150 BAUD
            DEFB    47H,80      ; 300 Baud
            DEFB    47H,160     ; 600 BAUD
            DEFB    47H,80      ; 1200
            DEFB    47H,40      ; 2400
            DEFB    47H,20      ; 4800
            DEFB    47H,10      ; 9600
            DEFB    47H,5       ; 19200 Baud


Last Update: 2008-05-31