Listing of file='JCATSMAL' on disk='vmedia/701-2739G.wvd.zip'
# Sector 243, program filename = 'JCATSMAL' 0010 REM JCATSMAL WP 2.3.5 (C) Copr. Wang Laboratories, Inc. 1986 4502 DIM V2$(256)1,V5$(160)1,V2$67,V3$16,U3$(10)2,U2$85,U2(6),R1$1,V8$4,V7$2,U 7$68,V6$1,U1$2,V0$8,U0$(128)2,V7(10),U3(9),U5(10) 4514 DEFFN'210(U7$,U8$,U9$) : M=0 : R1$=BIN(0) : V3$=U8$ : GOSUB 4788 : V2$=U7$ : V7(8)=3 : GOSUB 4598 : IF V7(4)>0THEN 4516 : R1$=BIN(2) : GOTO 4518 4516 U3(1)=0 : GOSUB 4710 : U5(3)=VAL(STR(V2$(),V7(8)+13,2),2) : STR(V2$(),V7(8)+31,2)=BIN(VAL(STR(V2$(),V7(8)+31,2),2)+1,2) : GOSUB 4714 4517 STR(V2$(),V7(8)+1,22)=ALL(00) : STR(V2$(),V7(8)+58,67)=V2$ : STR(V2$(),3,1)=BIN(1) : STR(V2$(),V7(8)+5,6)=U9$ : STR(V2$(),V7(8)+15,2)=BIN(V7(4),2) : STR(V2$(),V7(8)+33,2)=BIN(V7(10),2) : U3(1)=V7(4) : STR(V2$(),V7(8)+13,2)=BIN(U5(3),2) : GOSUB 4714 4518 STR(U4$,V3+1,1)="0" : GOTO 4836 4524 DEFFN'211(U7$,U8$,U9$,V6$) : M=0 : IF V6$=HEX(01)OR V6$=HEX(FF)THEN 4526 : R1$=BIN(6) : RETURN 4526 V3$=U8$ : GOSUB 4788 : GOSUB 4610 : IF V7(4)>0THEN 4530 4528 R1$=BIN(3) : GOTO 4542 4530 U3(1)=V7(4) : GOSUB 4710 : V7(8)=3 : IF VAL(STR(V2$(),3,1))<>1THEN 4528 : IF STR(V2$(),V7(8)+5,6)=U9$OR STR(V2$(),V7(8)+5,6)=" "THEN 4532 : R1$=BIN(5) : GOTO 4542 4532 IF STR(V2$(),V7(8)+4,1)<>HEX(FF)THEN 4536 4534 R1$=BIN(6) : GOTO 4542 4536 IF STR(V2$(),V7(8)+4,1)<>HEX(00)THEN 4538 : STR(V2$(),V7(8)+4,1)=V6$ : GOTO 4540 4538 IF V6$=HEX(01)THEN STR(V2$(),V7(8)+4,1)=BIN(VAL(STR(V2$(),V7(8)+4,1))+1) : ELSE GOTO 4534 4540 STR(V2$(),V7(8)+23,2)=BIN(U9,2) : GOSUB 4714 : STR(V5$(),V3*32+1,32)=STR(V2$(),4,32) : V2=VAL(STR(V5$(),V3*32+29,1)) : U1$()=STR(V2$(),129,128) : GOTO 4544 4542 STR(U4$,V3+1,1)="0" 4544 $CLOSE#U0 : $CLOSE#0 : RETURN 4546 DEFFN'212(V3) : M=0 : GOSUB 4726 : U3(1)=VAL(STR(V5$(),V7(8)+15,2),2) : GOSUB 4710 : IF STR(V5$(),V7(8)+4,1)=HEX(FF)THEN STR(V5$(),V7(8)+4,1)=BIN(0) : ELSE STR(V5$(),V7(8)+4,1)=BIN(VAL(STR(V5$(),V7(8)+4,1))-1) : STR(V2$(),4,32)=STR(V5$(),V7(8)+1,32) : GOSUB 4714 : IF U4=V3THEN U4=-1 : STR(U4$,V3+1,1)="0" : $CLOSE#U0 : $CLOSE#0 : RETURN 4552 DEFFN'235(V3,U1$()) : M=0 : GOSUB 4726 : U3(1)=VAL(STR(V5$(),V7(8)+15,2),2) : GOSUB 4710 : STR(V2$(),129,128)=STR(U1$(),,128) : STR(V2$(),3,33)=BIN(1)&STR(V5$(),V7(8)+1,32) : GOSUB 4714 : GOTO 4836 4558 DEFFN'214(V3) : M=0 : U0(2)=3 : GOSUB 4726 : IF STR(V5$(),V7(8)+4,1)=HEX(FF)THEN 4560 : R1$=HEX(06) : GOTO 4834 4560 U3(1)=VAL(STR(V5$(),V7(8)+15,2),2) : GOSUB 4710 : GOSUB '223(V3,1,VAL(STR(V5$(),V3*32+2,2),2)) : IF R1$=HEX(00)THEN 4562 : IF R1$<>HEX(24)THEN 4836 : R1$=HEX(00) 4562 U7$=STR(V2$(),61,67) : GOSUB 4662 : STR(V5$(),V7(8)+4,1)=BIN(0) : IF U4=V3THEN U4=-1 : STR(U4$,V3+1,1)="0" : $CLOSE#U0 : $CLOSE#0 : RETURN 4568 DEFFN'213(V3,U7$,U9$,V7) : M=0 : GOSUB 4726 : IF STR(V5$(),V7(8)+4,1)=HEX(FF)THEN 4570 : R1$=HEX(06) : GOTO 4834 4570 V2$=U7$ : IF V7=0OR V7=2THEN 4572 : GOSUB 4610 : IF V7(4)=0THEN 4572 : R1$=BIN(2) : GOTO 4836 4572 U3(1)=VAL(STR(V5$(),V7(8)+15,2),2) : GOSUB 4710 : V7(4)=U3(1) : IF V7=0OR V7=2THEN 4574 : U7$=STR(V2$(),61,67) : GOSUB 4662 : U7$=V2$ : GOSUB 4598 : STR(V2$(),61,67)=V2$ 4574 IF V7=0OR V7=1THEN 4576 : STR(V5$(),V7(8)+5,6)=U9$ 4576 STR(V5$(),V7(8)+15,2)=BIN(V7(4),2) : STR(V2$(),4,32)=STR(V5$(),V7(8)+1,32) : STR(V2$(),3,1)=HEX(01) : U3(1)=V7(4) : GOSUB 4714 : GOTO 4836 4582 DEFFN'217(U3,V7(6),U7$,U8$) : M=0 : U1$()=" " : R1$=BIN(0) : V3$=U8$ : GOSUB 4788 : GOSUB 4642 : IF V7(4)=0THEN R1$=BIN(3) : STR(U4$,V3+1,1)="0" : $CLOSE#U0 : $CLOSE#0 : RETURN 4588 DEFFN'215(U7$,U8$) : M=0 : R1$=BIN(0) : V3$=U8$ : GOSUB 4788 : GOSUB 4610 : IF V7(4)>0THEN 4590 : R1$=BIN(3) : GOTO 4592 4590 U3(1)=V7(4) : GOSUB 4710 : V7(8)=3 : STR(V2$(),V7(8)+4,1)=BIN(0) : GOSUB 4714 4592 STR(U4$,V3+1,1)="0" : $CLOSE#U0 : $CLOSE#0 : RETURN 4598 M=M+1 : V7(5)=0 : GOSUB 4724 : V7(4)=0 : IF V7(3)=0THEN 4838 : V7(4)=U3(4) : STR(U7$,LEN(U7$)+1,1)="." 4600 GOSUB 4722 : U3(1)=V7(4) : GOSUB 4616 : IF U3(2)=0THEN 4602 : V7(10)=U3(1) : V7(4)=VAL(STR(V2$(),U3(2)+16,2),2) : V7(3)=V7(3)-1 : IF V7(3)>0THEN 4600 : V7(4)=0 : GOTO 4838 4602 GOSUB 4742 : IF V7(5)=0THEN 4604 : V2$()=ALL(00) : STR(V2$(),,2)=BIN(0,2) : STR(V2$(),3,1)=BIN(0) : V7(9)=0 : STR(V2$(),4,2)=BIN(0,2) 4604 U3(1)=V7(4) : U3(8)=U3(2) : IF V7(5)=0THEN GOSUB 4630 : ELSE GOSUB 4636 : V7(10)=U3(1) : V7(4)=U3(8) : V7(5)=1 : V7(3)=V7(3)-1 : IF V7(3)=0THEN 4838 : GOSUB 4722 : GOTO 4602 4610 M=M+1 : GOSUB 4724 : V7(4)=0 : V7(4)=U3(4) : U3(9)=0 : STR(U7$,LEN(U7$)+1,1)="." 4612 GOSUB 4722 : U3(9)=U3(9)+1 : U2(U3(9)),U3(1)=V7(4) : GOSUB 4616 : IF U3(2)<>0THEN 4614 : V7(4)=0 : GOTO 4838 4614 V7(4)=VAL(STR(V2$(),U3(2)+16,2),2) : V7(3)=V7(3)-1 : IF V7(3)=0THEN 4838 : GOTO 4612 4616 M=M+1 : U3(6)=0 4618 GOSUB 4710 : IF V7(9)<>0THEN 4620 : U3(2)=0 : GOTO 4622 4620 MAT SEARCHSTR(V2$(),6,V7(9)*18),=STR(V3$)TO U3$()STEP 18 : U3(2)=VAL(U3$(),2) : IF U3(2)=0THEN 4622 : U3(2)=U3(2)+5 : GOTO 4838 4622 U3(6)=U3(1) : U3(1)=VAL(STR(V2$(),4,2),2) : IF U3(1)<>0THEN 4618 : GOTO 4838 4628 U3(1)=U3(2) : GOTO 4632 4630 M=M+1 4632 GOSUB 4710 : IF V7(9)<>13THEN 4634 : U3(2)=VAL(STR(V2$(),4,2),2) : IF U3(2)<>0THEN 4628 : ELSE GOSUB 4684 : STR(V2$(),3,1)=BIN(0) 4634 STR(V2$(),6+V7(9)*18,16)=V3$ : STR(V2$(),22+V7(9)*18,2)=BIN(U3(8),2) : STR(V2$(),,2)=BIN(V7(9)+1,2) : GOSUB 4714 : GOTO 4838 4636 M=M+1 : STR(V2$(),240,2)=BIN(V7(10),2) : GOTO 4634 4642 M=M+1 : V1=0 : IF U7$<>" "THEN 4644 : U3(1)=U3(4) : GOTO 4646 4644 GOSUB 4610 : IF V7(4)=0THEN 4838 : U3(1)=V7(4) 4646 U3(2)=0 : V1=0 : IF U3=0OR V7(6)=0THEN 4838 4648 IF U3(1)<>0THEN 4650 : V1=0 : GOTO 4838 4650 GOSUB 4710 : V7(6)=V7(6)-V7(9) : U3(1)=VAL(STR(V2$(),4,2),2) : IF VAL(STR(V2$(),3,1))=0THEN 4652 : STR(U1$(),,128)=STR(V2$(),129,128) : GOTO 4838 4652 IF V7(6)>0THEN 4648 : V7(6)=V7(6)+V7(9)-1 4654 IF V7(6)>=V7(9)THEN 4656 : STR(U1$(),1+U3(2)*16,16)=STR(V2$(),6+V7(6)*18,16) : HEXUNPACKSTR(V2$(),V7(6)*18+22,2)TO STR(U2$(),1+U3(2)*4,4) : U3(2)=U3(2)+1 : V7(6)=V7(6)+1 : V1=V1+1 4656 IF V1=U3THEN 4838 : IF V7(6)<V7(9)THEN 4654 : IF U3(1)=0THEN 4838 : GOSUB 4710 : U3(1)=VAL(STR(V2$(),4,2),2) : V7(6)=0 : GOTO 4654 4662 M=M+1 : U2$=U7$ : GOSUB 4610 : IF V7(4)=0THEN 4838 : U3(1)=V7(4) : GOSUB 4710 : IF VAL(STR(V2$(),3,1))=1THEN 4664 : R1$=BIN(10) : GOTO 4834 4664 U3(6)=0 : GOSUB 4690 4666 IF U3(9)<>1THEN 4668 : V3$=U2$ : GOTO 4670 4668 MAT SEARCHU2$,="."TO U3$() : V3$=STR(U2$,VAL(U3$(U3(9)-1),2)+1) : U2$=STR(U2$,,VAL(U3$(U3(9)-1),2)-1) 4670 U3(1)=U2(U3(9)) : GOSUB 4672 : U3(9)=U3(9)-1 : IF U3(9)=0THEN 4838 : IF U3(2)=-1THEN 4838 : IF U3(2)=-2THEN 4666 : MAT SEARCHU2$,="."TO U3$() : V3$=STR(U2$,VAL(U3$(U3(9)-1),2)+1) : U3(1)=U2(U3(9)) : U3(9)=U3(2) : GOSUB 4616 : STR(V2$(),U3(2)+16,2)=BIN(U3(9),2) : GOSUB 4714 : GOTO 4838 4672 M=M+1 : GOSUB 4616 : IF U3(2)=0THEN 4838 : U3(5)=(U3(2)-6)/18+1 : IF U3(5)<>V7(9)THEN 4674 : STR(V2$(),U3(2),18)=" " : GOTO 4676 4674 STR(V2$(),U3(2),(V7(9)-U3(5))*18)=STR(V2$(),U3(2)+18,(V7(9)-U3(5))*18) : STR(V2$(),6+(V7(9)-1)*18,18)=" " 4676 STR(V2$(),,2)=BIN(V7(9)-1,2) : GOSUB 4714 : U3(2)=-1 : IF V7(9)<>1THEN 4838 : IF U3(6)<>0THEN 4678 : U3(2)=VAL(STR(V2$(),4,2),2) : IF U3(2)=0THEN U3(2)=-2 4678 GOSUB 4690 : GOTO 4838 4684 M=M+1 : GOSUB 4742 : GOSUB 4710 : STR(V2$(),4,2)=BIN(U3(2),2) : GOSUB 4714 : STR(V2$(),,241)=ALL(00) : U3(1)=U3(2) : V7(9)=0 : STR(V2$(),4,2)=BIN(0,2) : GOTO 4838 4690 M=M+1 : IF U3(1)=U3(4)THEN 4838 : V1=VAL(STR(V2$(),4,2),2) : $OPEN #U0 : GOSUB 4706 : U3(5)=VAL(STR(V2$(),3),2)+1 : IF U3(5)=124THEN 4838 : STR(V2$(),3,2)=BIN(U3(5),2) : STR(V2$(),3+U3(5)*2,2)=BIN(U3(1),2) : GOSUB 4718 : V2$()=ALL(00) : DATA SAVE BA T#U0,(U9+U3(1))V2$() : ERRORGOTO 4830 4692 IF U3(6)=0THEN 4838 : U3(1)=U3(6) : GOSUB 4710 : STR(V2$(),4,2)=BIN(V1,2) : GOSUB 4714 : GOTO 4838 4698 $OPEN #U0 : ERRORGOTO 4830 4700 DATA LOAD DC OPEN T#U0,V0$ : ERRORIF V0$<>"WPSYSTEM"THEN STR(U4$,POS(U4$="0")-1,1)="0" : GOTO 4830 4702 LIMITS T#U0,U3(1),U3(2),U3(3) : ERRORGOTO 4830 4704 U9=U3(1) : U3(3)=1 : GOSUB 4706 : U3(4)=VAL(STR(V2$(),,2),2) : U3(1)=U3(4) : RETURN 4706 DATA LOAD BA T#U0,(U3(3)+U9)V2$() : ERRORGOTO 4830 4708 RETURN 4710 DATA LOAD BA T#U0,(U3(1)+U9)V2$() : ERRORGOTO 4830 4712 V7(9)=VAL(STR(V2$(),,2),2) : RETURN 4714 IF U3(1)>0THEN STR(V2$(),255,2)=BIN(4,2) : DATA SAVE BA T#U0,(U3(1)+U9)V2$() : ERRORGOTO 4830 4716 RETURN 4718 STR(V2$(),255,2)=BIN(3,2) : DATA SAVE BA T#U0,(U3(3)+U9)V2$() : ERRORGOTO 4830 4720 RETURN 4722 V3$=STR(U7$,,(POS(U7$=".")-1)) : U7$=STR(U7$,POS(U7$=".")+1) : RETURN 4724 MAT SEARCHU7$,="."TO U3$() : MAT SEARCHU3$(),=HEX(0000)TO U3$()STEP 2 : V7(3)=(1+VAL(U3$(),2))/2 : RETURN 4726 IF V3>=0AND V3<4THEN 4728 : R1$=BIN(8) : GOTO 4832 4728 V7(8)=V3*32 : R1$=BIN(0) : IF VAL(STR(V5$(),V7(8)+4,1))>0 AND STR(V5$(),V7(8)+23,2)<>HEX(2020) THEN 4730 : R1$=BIN(7) : GOTO 4832 4730 U0=15-V3 : U9=VAL(STR(V5$(),V7(8)+23,2),2) : RETURN 4736 M=M+1 : STR(V2$(),,2)=BIN(U3(3)+1,2) : U3(4)=U3(3)+1 : U3(1)=U3(4) : STR(V2$(),3,2)=BIN(7,2) : FOR I=1TO 7 : STR(V2$(),3+I*2,2)=BIN(U3(3)+I+1,2) : NEXT I : GOSUB 4718 : GOSUB 4710 : STR(V2$(),,2)=BIN(0,2) : STR(V2$(),4,2)=BIN(0,2) : GOSUB 4714 : GOTO 4838 4742 M=M+1 : U1$=BIN(U3(1),2) : GOSUB 4706 : U3(2)=VAL(STR(V2$(),3),2) : IF U3(2)>0THEN 4748 : U3(1)=0 : GOSUB 4710 : STR(V2$(),26,2)=BIN(U9,2) : STR(V5$(),4*32+1,32)=STR(V2$(),4,32) : V7(1)=VAL(STR(V2$(),32,1)) : STR(V5$(),132,1)=BIN(255) : V7(2)=V3 : U0(2)=3 : GOSUB '225(4,1,FIX(10/V7(1)+1),2) : IF R1$>HEX(00)THEN 4834 4744 H=5 : V3=V7(2) : V2$()=ALL(00) : FOR U5=1TO V8 : FOR U=0TO V7(1)-1 : STR(V2$(),H,2)=BIN((VAL(U0$(U5),2)-1)*V7(1)+U,2) : IF STR(V2$(),H,2)<=STR(V5$(),4*32+25,2)THEN 4746 : PRINT AT(22,0);"Serious error occurred. Call your Wang representative.";H EX(07) : $CLOSE : STOP # : END 4746 H=H+2 : NEXT U : NEXT U5 : U3(2)=V7(1)*V8 : STR(V2$(),,2)=BIN(2,2) 4748 STR(V2$(),3,2)=BIN(U3(2)-1,2) : GOSUB 4718 : U3(2)=VAL(STR(V2$(),3+U3(2)*2,2),2) : U3(1)=VAL(U1$,2) : DATA LOAD BA T#U0,(U9+U3(2))V2$() : ERRORGOTO 4830 4750 IF POS(V2$()>HEX(00))=0THEN 4838 : PRINT AT(22,0);"Serious error occurred.";HEX(07) : $CLOSE : STOP "Call your WANG Representative."# : END 4756 R1$=BIN(0) : U0=0 : V0$="WPSYSTEM" : GOTO 4698 4788 M=M+1 : GOSUB 4756 : GOSUB 4616 : IF U3(2)<>0THEN 4790 : R1$=BIN(3) : GOTO 4834 4790 HEXUNPACKSTR(V2$(),U3(2)+16,2)TO V8$ : V8$=STR(V8$,,3) : V3=POS(U4$="0") : IF V3>0THEN 4792 : R1$=BIN(4) : GOTO 4834 4792 U0=16-V3 : STR(U4$,V3,1)="1" : V3=V3-1 : V0$=V3$ : SELECT #U0<V8$> : GOSUB 4698 : GOTO 4838 4806 DEFFN'236(U3,V7(6)) : M=0 : GOSUB 4756 : U7$=" " : GOSUB 4642 : GOTO 4836 4822 M=0 4824 GOSUB 4756 : GOSUB 4706 : GOSUB 4736 : GOTO 4836 4830 R1$=BIN(ERR) 4832 RETURN CLEAR 4834 IF M=0THEN 4836 : M=M-1 : GOTO 4832 4836 $CLOSE#U0 : $CLOSE#0 : RETURN 4838 M=M-1 : RETURN 4856 DEFFN'232 : M=0 : $OPEN #0 : DATA SAVE DC OPEN T#0,(10)"WPSYSTEM" : ERRORR1$=BIN(ERR) : IF VAL(R1$)<>83THEN 4834 : DATA SAVE DC OPEN T#0,("WPSYSTEM")"WPSYSTEM" : ERRORR1$=BIN(ERR) : IF VAL(R1$)<>84THEN 4834 : DATA LOAD DC OPEN T#0,"WPSYSTEM" 4858 DSKIP #0,8S : DATA SAVE DC #0,END : V2$()=ALL(00) : LIMITS T#0,"WPSYSTEM",A,B,C,D : FOR I=ATO B-2 : DATA SAVE BA T#0,(I)V2$() : NEXT I : GOTO 4824