//
//************************************************
//
//  downloading programm for channl3
//  COMMON MODUL FOR ALL APPLICATIONS
//************************************************
//  USING
//      s12
//
//
//          1111111111222222222233333333334444444444555555555566666666667
//01234567890123456789012345678901234567890123456789012345678901234567890
//EA-GEN  3<3dddddddddddddddddddddddddddddddddddddddddd
//           -data for rd and wr
//          --sender kennung bei intermodultransfer
//        ----eigene modulnummer
//------------filename
//
//***********************************************
//  Buffer
#define printer         3
//
//***********************************************
// Strings
#define dbs_str         s14
#define dbs_str_0       s14,0
#define error_led_mem           s14,240
#define error_led_m1            s14,241
#define error_led_m2            s14,242
#define date_send               s14,250
#define para_date               "@D/n"
//
#define wstr            s12
#define use_str         s3
//
//***********************************************
// Counters    used 2
#define max_error_mess          3
//
//
        setbaud 1,9600,8,n,1    ;Modul Default
	mode_reco
        movd    "00000",error_led_mem
        movd    "AFS-PR  3<3 Buffer output raedy V 2.0/l/n",use_str,0
        out     use_str,0,c4
        setl    11,1
//
//**********************************************************
//
start_0:
//
//**********************************************************
//
no_opi:
        sett    30
no_opi_1:
        wait    tf_sign,im_sign,ans_sign
        case    tf_sign,test_im
//
        compd   "00000",error_led_mem
        jz      non_error_led
#ifdef alarm_ruhe_kontakt
        setl    7,0
//        setl    5,2
#else
        setl    7,1
//        setl    5,2
#endif
        movd    " Observation ERROR code:      /n",wstr,100
        movs    error_led_mem,wstr,124,5
        out     wstr,100,c4
        out     date_send,c4
        decc    max_error_mess
        jnz     main_skip1
        // insert here a rest of the AFS
        jmp     main_skip1
non_error_led:
        setc    max_error_mess,30
#ifdef alarm_ruhe_kontakt
        setl    7,1
        setl    5,0
#else
        setl    7,0
        setl    5,0
#endif
main_skip1:
        sendsig ans_sign,c3
        jmp     no_opi
//
//*****************************************
test_im:
        case    im_sign,test_buffer
        in      use_str,10
        jnz     no_opi
//
no_opi_err:
        compd   "rd",use_str,10
        jz      reading_b
        out     use_str,0,c4
        movd    "ERR_CMD/n",use_str,11
        out     use_str,0,c4
        anss    use_str,10
        jmp     no_opi
//
test_buffer:
        case    ans_sign,no_opi
        readb   use_str,0,printer        ;send printout to printer
        jz      no_opi
        sendsig ans_sign,c3
        wrs     use_str,0,80
test_status:
        buffst          ;space in buffer?
        jnz     bdi_buff_wr
        buffrd  wstr,20
        jmp     test_status
bdi_buff_wr:
        buffwr  use_str,0
        movd    "/l/n",use_str,0
        wrs     use_str,0,10
        jmp     no_opi_1
//
reading_b:
        setc    2,25
        movd    "OK/n",use_str,10
        anss    use_str,10
//
readloop:
        buffrd  use_str,0
        out     use_str,0,c4
        compd   "E/n",use_str,0
        jz      no_opi_1
        decc    2
        jnz     readloop
        jmp     no_opi_1
//
//
zzz_end:
//
end

