/*;
;**********************************************************
;
;   advanced feature server
;   =======================
;   TRANSMITTER to a TABS-PC
;------------------------------------------------------------
;> R<cr>  int
;> O<cr>  int
;
; using: str 0 for work
;
;  string 0:
;
;          1111111111122222222233333333334444444444555555555566666666667
;01234567890123456789012345678901234567890123456789012345678901234567890
;EA-GEN  0<0dddddddddddddddddddddddddddddddddddddddddd
;           -data for rd and wr
;          --sender kennung bei intermodultransfer
;        ----eigene modulnummer
;------------filename
;
*/
        setbaud H,1,300,7,e,1  ;Modul Default
        mode_reco
        setp    0x7f02,0x01
        ;
        setc    0,1          ;error conter for to-send
        movd    "AFS-TABS     ",s0,0
        movd    "0<0",s0,8
        movd    " Transmitter V 1.0 READY for WORK/l/n",s0,11
        out     s0,0,c4         ;to sv-mon
        sett    200
reset_0:
        movd    "0<0 /n",s0,8
        setl    8,1     ;modul ready
        wait    rx_sign,tf_sign ;,ans_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
	out	s0,0,c4
	jmp	reset_0
	;
        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,10
        wrs     s0,11,255
        jnz     write_error
	compd	"E/n",s0,11
	jz	reset_0
	out	s0,0,c4
        jmp     reset_0
        ;
        ; test bdi commands
        ;
test_for_bdi:
opi_cmd:
wait_4:
        out     s0,10,c3        ;send to opi
        jnz     wait_4
        wrs     s0,11,255
        jnz     write_error
        jmp     reset_0
        ;
;**********************************************************
;
; on timeout write "channel_timeout" to sv-mon
; alle 60 sec
;
timeout:
        case    ans_sign,skip_next
        jmp     send_tabs
skip_next:
        sett    20
        jmp     send_tabs
//
// not used
//
        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
        ;
;**********************************************************
; send tabs
; sending to VAX for Alcatel
//
send_tabs:
        sett    10
        ;
        buffrd  s0,11
        buffst                   ;get reco from buffer and send back
        compd   "E/n",s0,11
        jz      reset_0
        sendsig ans_sign,c0     ;start again
        ;
        out     s0,0,c4
        wrs     s0,11,255
        jnz     write_error
        wrchar  ^J
        jmp     reset_0
;
zzz:
;
end

