//
//**********************************************************
//
//   advanced feature server
//   =======================
//
//   5200 hcn <==> front office systeme
//
//------------------------------------------------------------
// mod0: edv      mod1: telz   mod2: bdi   mod3: opa
//> R<cr>  int
//> O<cr>  int
//> rest   send ERR_CMD
//
// using: str 0 for work
//
//  string 0:
//
//          1111111111122222222233333333334444444444555555555566666666667
//01234567890123456789012345678901234567890123456789012345678901234567890
//EDV     0<0dddddddddddddddddddddddddddddddddddddddddd
//           -data for rd and wr
//          --sender kennung bei intermodultransfer
//        ----eigene modulnummer
//------------filename
//
        setbaud 1,1200,8,n,1  //Modul Default
        mode_reco
//
        setc    0,1          //error conter for to-send
        movd    "EDV-RQ          ",s0,0
        movd    "0<0",s0,8
        movd    " READY for WORK with EDV/l/n",s0,11
        out     s0,0,c4         //to sv-mon
//        out     s0,200,c4
        sett    200
reset_0:
        movd    "0<0 /n",s0,8
        setl    8,1     //modul ready
        wait    rx_sign,tf_sign //warte auf anforederung or timeout
//
// auforderung:
// set channl is busy
//
        setl    8,2
        case    rx_sign,timeout
        rds     s0,11           //get data
        jz      reset_0
//
// test intern commands
//
        sett   200
	setc   0,1
//
        compd   "R/n",s0,11
        jnz     test_old
        buffrd  s0,11
        buffst                   //get reco from buffer and send back
        wrs     s0,11,255
        jnz     write_error
	compd	"E/n",s0,11
	jz	reset_0
	out	s0,0,c4
	jmp	reset_0
//
test_old:
        compd   "O/n",s0,11
        jnz     test_for_bdi
//
        buffold s0,11
        wrs     s0,11,255
        jnz     write_error
	compd	"E/n",s0,11
	jz	reset_0
	out	s0,0,c4
        jmp     reset_0
//
test_for_bdi:
opi_cmd:
        movd    "ERR_CMD/n",s0,11
        wrs     s0,11,255
        jnz     write_error
        jmp     reset_0
//
//**********************************************************
//
// on timeout write "channel_timeout" to sv-mon
// alle 60 sec
//
timeout:
        sett    200
        decc    0
        jnz     reset_0
        setc    0,3             //timeout run at 20sec
        movd    " CHANNEL_TIMEOUT/n",s0,11
        out     s0,0,c4
        jmp     reset_0
//
write_error:
        movd    " TIMEOUT ERROR ON WRITE TO CHANNEL_0 (xoff)/n",s0,11
        out     s0,0,c4
        jmp     reset_0
//
//**********************************************************
//
end
