Exchange/RJE Manual
User-Exit Procedure
Example Programs
104698 Tandem Computers Incorporated D–31
Page 11 [1] $RJE.JOSHI.UESRC 1991-06-13 13:25:30
PROC USER^EXIT^MODEM^SUPPORT: PROCEDURE BODY
445. 006076 1 1
446. 006076 1 1 DEFINE write^file^mgt^err =
447. 006076 1 1 CALL FILEINFO(line^fnum,error);
448. 006076 1 1 t ':=' ",FILE MGT ERROR = " -> @t ;
449. 006076 1 1 CALL NUMOUT(t,error,10,3) ;
450. 006076 1 1 @t := @t '+' 3 ;
451. 006076 1 1 CALL WRITE(out^file^num,tbuf,1) ;
452. 006076 1 1 CALL WRITE(out^file^num,tbuf,(@t '-' @stbuf)) ;
453. 006076 1 1 CALL disconnect^line #;
454. 006076 1 1
455. 006076 1 1 CALL OPEN(out^file^name,out^file^num) ;
456. 006141 1 1 IF <>
457. 006141 1 1 THEN
458. 006142 1 1 RETURN FILE^OPEN^ERR;
459. 006145 1 1 IF phone^number = " "
460. 006145 1 1 THEN ! LEADING BLANKS
461. 006150 1 1 BEGIN
462. 006150 1 2 phone^temp ':=' phone^number FOR phone^number^len ;
463. 006154 1 2 phone^temp[phone^number^len] ':=' [0] ;
464. 006165 1 2 SCAN phone^temp WHILE " " -> @t ;
465. 006171 1 2 phone^number^len := MAX^DIGITS '-' (@t '-' @phone^temp) ;
466. 006177 1 2 phone^number ':=' t FOR phone^number^len ; !LEFT SHIFT THE PHONENUMBER
467. 006203 1 2 END ;
468. 006203 1 1
469. 006203 1 1 RSCAN phone^number[phone^number^len-1] WHILE " " -> @t ;
470. 006211 1 1 phone^number^len := (@t '+' 1) '-' @phone^number ; ! HOW MUCH IS THERE ??
471. 006216 1 1
472. 006216 1 1 CALL FILEINFO(line^fnum,,linename,,devicetype) ;
473. 006232 1 1 linenamelen := fnamecollapse (linename,sxlinename) ;
474. 006237 1 1
475. 006237 1 1 IF devicetype.<04:09> <> 51 AND ! CP6100 LINE TYPE
476. 006237 1 1 devicetype.<10:15> <> 01 ! BSC SUBTYPE
477. 006237 1 1 THEN
478. 006250 1 1 BEGIN
479. 006250 1 2 stbuf ':='
480. 006250 1 2 " **** " & sxlinename FOR linenamelen -> @t;
481. 006264 1 2 t ':=' " IS WRONG DEVICE TYPE, DEVTYPE= %" -> @t ;
482. 006275 1 2 CALL NUMOUT(t,devicetype,8,6) ;
483. 006303 1 2 @t := @t '+' 6 ;
484. 006306 1 2 CALL WRITE(out^file^num,tbuf,0) ;
485. 006316 1 2 CALL WRITE(out^file^num,tbuf,(@t '-' @stbuf)) ;
486. 006330 1 2 CALL CLOSE(out^file^num) ;
487. 006335 1 2 RETURN LINE^TYPE^ERR;
488. 006340 1 2 END ;
489. 006340 1 1
490. 006340 1 1 ! BUILD THE CP6100 CONTROL FUNCTION TO CONNECT (RAISE DTR)
491. 006340 1 1
492. 006340 1 1 cp.cp^req.func := FUNC^CTL ; ! CP6100 CONTROL REQUEST
493. 006344 1 1 cp.cp^req.modf := 2 ; ! JUST RAISE DTR, DON'T WAIT FOR DSR
494. 006351 1 1 reqid := reqid '+' 1 ;
495. 006354 1 1 cp.cp^req.reqid := reqid ;
496. 006357 1 1 cp.cp^req.txtin := 0 ; ! MAX BYTES IN
497. 006362 1 1 cp.cp^req.txtout := 0 ;
498. 006365 1 1
499. 006365 1 1
500. 006365 1 1 CALL WRITEREAD(line^fnum,buf,$LEN(cp^template.cp^hdr) ,
501. 006365 1 1 $LEN(cp^template.cp^hdr),count ) ;