TKFAXD1 ;PG&A,TK-FAX,2.10,DEVICE DRIVER;16MAR95 3:09P [ 11/22/2000 11:22 AM ] ;Copyright (C) 1991-1994, Patterson, Gray and Associates Inc. ; BEG D DT^TKFAXH I '$D(NB) S NB="" F J=32:2:255 S NB=NB_$C(J,J+1) S NB=$TR(NB,",W;1234567890","") S X=^TKFAXC("CONFIG"),TP=$P(X,"\",4),PGL=$P(X,"\",6),CG=$P(X,"\",3) D JOB ST S ER=1,DD="DATA",DV=FAX,MFR=" ",PTS="" U DV K BAUD,ERR D SEND G:'OK END MFR S MFR=$S(MFR["Ever":"E",MFR["Multi-":"M",MFR["E-TE":"B",OK=3:"D",1:"R") ROCK G:OK=3 ^TKFAXD4 S ER=1,DD="DATA1" D SEND END K BAUD,DT,PGE,PG,RTA,PTS,DATA,SN,X1 Q BAUD S BAUD=$S('$D(BAUD):2400,BAUD=2400:19200,1:0) Q:'BAUD G SETBAUD^TKFAXU ; JOB S JOB=$P(JB,",") Q:JOB="" S JB=$P(JB,",",2,99),TKFAXD="^TKFAXQ(""FX"",JOB)" S B=^TKFAXQ("DIR",1000000-JOB),DT(2)=$P(B,"\",12),J=$P(B,"\",20),DT(1)=$S(J=4:1,J=7:2,1:3) S DT(3)=$P(FAXP,"\")_$TR($P(B,"\",4),NB,""),DT(9)=$P(FAXP,"\",2),CV="Nn"'[$P(B,"\",15),PTL="Nn"'[$P(B,"\",18),PG=1,PGN=$P(@TKFAXD,",",3),PTS="" I PTL S PTL=PGL*97.8 S:PTL<300 PTL=1075 Q ; SEND K ERR F SN=1:1:99 S SCR=$P($T(@DD+SN),";;",2,99) Q:SCR="" I $P(SCR,"`",7)'[MFR H 0 D INQ X $P(SCR,"`",6-OK) Q:'OK Q:OK W $C(13) F J=1:1 D ERROR^TKFAXD2 S JOB=$P(JB,",") Q:JOB="" S JB=$P(JB,",",2,99) Q XMT S C=$P($H,",",2) I DCS="" S DCS=$TR($P($P(DATA,"+FDCS:",2),"\")," ",""),I=$P(DCS,",",2),MIN=20 S:I MIN=$P("0,5,10,10,20,20,40,40",",",$P(DCS,",",8)+1) S MIN=MIN*.001*$S(I=3:960,I=2:720,I=1:480,I=5:1440,1:960),MIN=MFR="E"*MIN*.8+MIN\1 S PAD=$TR($J("",MIN)," ",$C(0)),EL=^TKFAXC(0,2,1),BL=EL_$E(PAD,1,MIN-$L(EL)),EOP=^(2),TFL=0 D RSEND S NL=@TKFAXD@(PG),X=$D(^(PG,0)),X=$D(^(NL)),X=$D(^TKFAXC("FX",2,1)) I MFR'="M" H:$P($H,",",2)=C 1 F MM=1:1:100 W PAD E F MM=1:1:200 W PAD R *B:0 G:B=24 XMTA R A:0 S B=A R A:0 S B=B_A R A:0 G:B_A[$C(24) XMTA W BL I TP F TFL=2:1:TP-.1*97.8#300 W BL I CV,PG=1,$E(CG)="^",$D(@CG) S CC="",TFL=TFL+$S($D(@CG)#2:@CG,1:0),FL=$D(@CG@(0)) F FL=1:1 S CC=$O(^(CC)) Q:CC="" S B=^(CC) W $S($L(B) received" U DV Q ; NEXT S DT(4)=$S(JB:0,PG255 DATA1=DATA,DATA="" S DATA=DATA_A_"\" S:DATA["BUSY" ER=6,OK=0 S:DATA["DIALTONE" ER=4,OK=0 S:DATA["FHNG" OK=0 Q:'OK Q:DATA["OK" Q:'$D(^TKFAXQ(.9,JOB)) I $D(TEST) U 0 W !,"D: ",ER," ",DATA,! U DV S:OK OK=DATA["OK" W:'OK $C(13),"ATZ",$C(13) S:OK CSI=$TR($P($P(DATA,"+FCSI:",2),"\"),""" ",""),ST=$H Q ; AGAIN S PTS=$TR($P($P(DATA,"+FPTS:",2),"\")," ","")_","_PTS,RTA=RTA+1 S:13[+PTS!(RTA>2) PG=PG+1,RTA=0 I PG'>PGN S SN=SN-3 Q D FPOST,JOB S:JOB SN=SN-3 Q ; INQ S OK=0,X1=$P(SCR,"`"),DN=$P(SCR,"`",2),IT=$P(SCR,"`",3),T=$P(SCR,"`",4) I X1["*" S X1=$P(X1,"*")_DT($E($P(X1,"*",2)))_$E($P(X1,"*",2,9),2,255) I $D(TEST) U 0 W "C: ",SCR,! U DV F J=1:1 R A:0 Q:'$T S DATA="" F J=1:1:IT W:X1["$C" @X1 W:X1'["$C" X1,$C(13) S T1=$P($H,",",2)+T F K=1:1:199 Q:$P($H,",",2)>T1 R A:T X:$D(TEST) "U 0 W ""R: "",A,! U DV" S:$L(DATA)+$L(A)<250 DATA=DATA_A_"\" G INQ1:DATA[DN Q INQ1 S OK=1 Q ; RSEND S B=^TKFAXQ("DIR",1000000-JOB),$P(B,"\",27)=C,$P(B,"\",7)=DTM,$P(B,"\",5)=CSI,$P(B,"\",22)=DCS S $P(B,"\",3)="Page-"_PG,^(1000000-JOB)=B Q FPOST S B=^TKFAXQ("DIR",1000000-JOB),A=$P($H,",",2)-$P(ST,",",2)+4,ST=$H S:A<0 A=86400+A S SJB(JOB)=A,CC=$TR($P(B,"\",8)," ",""),A=CC*60+$P(CC,":",2)+A,$P(B,"\",8)=$J(A\60_":"_$E(A#60+100,2,3),5),$P(B,"\",21)=$TR(PTS,",",""),$P(B,"\",5)=CSI S:OK $P(B,"\",3)="Sent"_$S($P(B,"\",33):"-"_($P(B,"\",33)+1),1:""),$P(B,"\",10)=7 S ^TKFAXQ("DIR",1000000-JOB)=B Q:'OK K ^TKFAXQ(.9,JOB) Q ; DATA ;; ;;^K`<02`3`1`S SN=199,OK=3`S OK=1 ;;ATHE1V1Q0`OK`3`1``D BAUD S:J'=IT SN=SN-2,OK=1 H 2 ;;ATHE1V1Q0`OK`2`1 ;;AT+FMFR?`OK`3`1`S MFR=DATA,SN=5 I DATA["RO"+(DATA["Ev")+(DATA["Mult")+(DATA["E-TE")+(DATA["Prac")=0 S SN=3 ;;AT`OK`1`2 ;; DATA1 ;; ;;ATHE1V1`OK`2`2 ;;ATV1M*9L1X4S7=120S8=2`OK`2`2 ;;AT\Q1\X1`OK`2`2```RMB ;;AT+FCLASS=2`OK`2`2`S BAUD=19200 D SETBAUD^TKFAXU ;;AT+FDIS=0,*1,0,2,0,0,0,4`OK`1`2`S DCS="" ;;AT+FLID="*2"`OK`1`2`H 2` ;;*3`OK`1`1``D DIAL H 2 ;;AT+FDT`CONNECT`1`50`D XMT`S ER=2 ;;$C(16,3)`OK`2`8`D NEXT`S ER=5,OK=1,SN=SN+1 ;;AT+FET=*4`OK`1`85`D AGAIN`S ER=5,OK=1 ;;ATZ`OK`2`2 ;; DATA2 ;; ;;ATHE1V1`OK`2`2 ;;AT`OK`2`2`S ST=$H,(C,DTM,DCS,CSI)="" D RSEND H 30 ;;AT`OK`2`2`D FPOST