Exchange/RJE Manual

User-Exit Procedure
Example Programs
104698 Tandem Computers Incorporated D–35
Page 15 [1] $RJE.JOSHI.UESRC 1991-06-13 13:25:30
PROC USER^EXIT^MODEM^SUPPORT: PROCEDURE BODY
673. 007160 1 2 CALL WRITEREAD(line^fnum,buf,$LEN(cp^template.cp^hdr),
674. 007160 1 2 ( cp.cp^req.txtin + $LEN(cp^template.cp^hdr) ) ,count ) ;
675. 007173 1 2 IF <>
676. 007173 1 2 THEN
677. 007174 1 2 BEGIN
678. 007174 1 3 stbuf ':='
679. 007174 1 3 " **** READ ERROR: " & sxlinename FOR linenamelen -> @t;
680. 007210 1 3 write^file^mgt^err;
681. 007266 1 3 RETURN READ^LINE^ERR;
682. 007272 1 3 END ;
683. 007272 1 2
684. 007272 1 2 CALL AWAITIO(line^fnum,,count,,max^wait) ;
685. 007303 1 2 IF <>
686. 007303 1 2 THEN
687. 007304 1 2 BEGIN
688. 007304 1 3 stbuf ':='
689. 007304 1 3 " **** READ AWAITIO: " & sxlinename FOR linenamelen -> @t;
690. 007320 1 3 write^file^mgt^err;
691. 007376 1 3 RETURN READ^LINE^ERR;
692. 007401 1 3 END ;
693. 007401 1 2
694. 007401 1 2 CASE cp.cp^rsp.status OF
695. 007406 1 2 BEGIN
696. 007406 1 3 171 -> ! NO REPONSE THUS TIMED OUT ON READ
697. 007406 1 3 BEGIN
698. 007406 1 4 msg^count := msg^count '+' 1 ;
699. 007411 1 4 IF msg^count > 10
700. 007411 1 4 THEN
701. 007414 1 4 BEGIN
702. 007414 1 5 stbuf ':='
703. 007414 1 5 " ***** EXCEEDED NUMBER OF TIMEOUTS WAITING ON MODEM"
704. 007414 1 5 -> @t;
705. 007425 1 5 CALL WRITE(out^file^num,tbuf,@t'-'@stbuf) ;
706. 007437 1 5 CALL disconnect^line ;
707. 007440 1 5 RETURN TIMEOUT^LINE^ERR;
708. 007443 1 5 END ;
709. 007443 1 4 END;
710. 007443 1 3 163 -> ! EOT RECEIVED
711. 007444 1 3 BEGIN
712. 007444 1 4 IF call^completed = TRUE OR ! EOT AFTER COMPETED CALL, END LOOP
713. 007444 1 4 response^status > 0
714. 007444 1 4 THEN
715. 007452 1 4 finished := TRUE
716. 007452 1 4 ELSE
717. 007455 1 4 finished := FALSE ; ! KEEP GOING
718. 007457 1 4 END;
719. 007457 1 3 OTHERWISE ->
720. 007460 1 3 BEGIN
721. 007460 1 4 IF cp.cp^rsp.status
722. 007460 1 4 THEN ! ANY OTHER ERROR
723. 007465 1 4 BEGIN
724. 007465 1 5 CALL log^cp^status ;
725. 007466 1 5 finished := TRUE ;
726. 007470 1 5 END
727. 007470 1 4 ELSE ! GOT A STATUS MESSAGE ?
728. 007471 1 4 BEGIN
729. 007471 1 5 IF cp.cp^rsp.txtin = 0