XOB       16
                     SASI       0
                                    10
                     LD          R 3
                                    0
                     EXOB

TEXT 10      "UART:9600,8,N,1;"
                     "MODE:MC0;"
                     "DIAG:F1000,R1000;"


                     COB       0
                                    1
                     ACC       E                                   ; L'accumulatore è impostato al valore del flag E
                     JR           H              OUTRS        ; Se la seriale non è impostata correttamente salta in OUTRS
                     JR           TEST1

CONTINUA:
                     STH        F 1000                          ; F 1000 è l'indirizzo di RSBY.
                                                                         ; Se F 1000=H allora c'è un carattere valido
                     JR           L              FINE
                     SRXD     0                                   ; Seleziona la COM1
                                    R 2
                    
                     LD          R 49                              ; Carattere '1' TEST DEL PLC
                                    49
                     LD          R 42                              ; Carattere '*' RICHIESTA DATI
                                    42
C1:
                     CMP       R 2                                ; Confronto col carattere '*'
                                    R 42
                     JR           Z               DATI
                    
                     CMP       R 2                                ; Confronto col carattere '1'
                                    R 49
                     JR           Z               STATO
                     JPD        FINE
;----------------------------------------------
OUTRS:
                     LD          R 2000
                                    131
                     BITO      8
                                    R 2000
                                    O 48
                     JPD        FINE
;----------------------------------------------
STATO:
                     LD          R 2                               ; Invio il carattere 'o'
                                    111                              ; Significa che il PLC è OK
                     STXD     0
                                    R 2
                     JPD        FINE
;----------------------------------------------
DATI:
                     LD          R 2
                                    0
                     LD          R 100                           ; Carica il registro R 100 con il valore 1
                                    1
                     LD          R 101                           ; Carica il registro R 101 con il valore 2
                                    2
                     LD          R 102                           ; Carica il registro R 102 con il valore 4
                                    4
                     LD          R 103                           ; Carica il registro R 103 con il valore 8
                                    8
                     LD          R 104                           ; Carica il registro R 104 con il valore 16
                                    16
                     STH        I 32
                     ADD       R 2
                                    R 100
                                    R 2
                     STH        I 33
                     ADD       R 2
                                    R 101
                                    R 2
                     STH        I 34
                     ADD       R 2
                                    R 102
                                    R 2
                     STH        I 35
                     ADD       R 2
                                    R 103
                                    R 2
                     STH        I 36
                     ADD       R 2
                                    R 104
                                    R 2
                     STXD     0
                                    R 2
                    
                     MOV      R 2
                                    L 0
                                    R 3                               ; COPIA DI R2 <=> R2=R3
                                    L 0
                    
                     JPD        FINE
;----------------------------------------------
TEST1:
                     LD          R 2
                                    0
                     LD          R 100                           ; Carica il registro R 100 con il valore 1
                                    1
                     LD          R 101                           ; Carica il registro R 101 con il valore 2
                                    2
                     LD          R 102                           ; Carica il registro R 102 con il valore 4
                                    4
                     LD          R 103                           ; Carica il registro R 103 con il valore 8
                                    8
                     LD          R 104                           ; Carica il registro R 105 con il valore 16
                                    16
                     STH        I 32
                     ADD       R 2
                                    R 100
                                    R 2
                     STH        I 33
                     ADD       R 2
                                    R 101
                                    R 2
                     STH        I 34
                     ADD       R 2
                                    R 102
                                    R 2
                     STH        I 35
                     ADD       R 2
                                    R 103
                                    R 2
                     STH        I 36
                     ADD       R 2
                                    R 104
                                    R 2
                    
                     CMP       R 2
                                    R 3                               ; COPIA DEGLI INGRESSI
                     JR           Z              CONTINUA
                     JR           N             CRITICO
                     JR           P              CRITICO
;----------------------------------------------
CRITICO:
                     LD          R 2
                                    101                               ; Carattere 'e'
                     STXD     0
                                    R 2                               ; Il PLC manda la 'e'
                                                                         ; PLC in attesa di risposta
LOOP:
                     STH        F 1000                         ; F 1000 è l'indirizzo di RSBY.
                                                                         ; Se F 1000=H allora c'è un carattere valido
                     JR           L              LOOP
                    
                     SRXD     0                                  ; Carattere '*' ricevuto
                                    R 2
                    
                     JPD        C1
;----------------------------------------------
FINE:
                     ECOB