Listing of file='JCAT' on disk='vmedia/731-0071G.wvd.zip'
# Sector 731, program filename = 'JCAT'
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
: 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)
: 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))>0THEN 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
: GOSUB '225(4,1,FIX(10/V7(1)+1),2)
: IF R1$>HEX(00)THEN 4834
: $OPEN #U0
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
4762 DEFFN'231(V3$,V8$,U8,V2,U6)
: M=0
: V5$=STR(V3$,,8)
: GOSUB 4756
: GOSUB 4616
: IF U3(2)=0THEN 4764
: R1$=HEX(02)
: GOTO 4836
4764 U0=11
: SELECT #U0<V8$>
: $OPEN #U0
: ERRORGOTO 4830
4766 LIMITS T#U0,V5$,U3(1),U3(2),U3(3),U3
: ERRORR1$=BIN(ERR)
: GOTO 4834
4767 IF U3<>0THEN 4770
: DATA SAVE DC OPEN T#U0,(U8+2)V5$
: ERRORR1$=BIN(ERR)
: GOTO 4834
4768 GOTO 4778
4770 IF U3<1THEN 4772
: R1$=HEX(02)
: GOTO 4836
4772 IF U3(2)-U3(1)+1>=U8+2THEN 4774
: R1$=HEX(09)
: GOTO 4836
4774 DATA SAVE DC OPEN T#U0,(V5$)V5$
: ERRORGOTO 4830
4778 DSKIP #U0,U8S
: DATA SAVE DC #U0,END
: LIMITS T#U0,V5$,U3(1),U3(2),U3(3),U3
: ERRORGOTO 4830
4780 GOSUB '243(U8,U3(1),V2,V3$,U6)
: IF VAL(R1$)<>0THEN 4834
: $CLOSE#U0
: U0=0
4782 HEXPACKV7$FROMV8$
: U3(8)=VAL(V7$,2)
: U3(1)=2
: U3(3)=1
: GOSUB 4630
: GOTO 4836
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
: $CLOSE#0
: GOTO 4838
4806 DEFFN'236(U3,V7(6))
: M=0
: GOSUB 4756
: U7$=" "
: GOSUB 4642
: GOTO 4836
4812 DEFFN'234(V3$)
: M=0
: GOSUB 4756
: U3(1)=2
: GOSUB 4672
: IF U3(2)=0THEN R1$=BIN(3)
: GOTO 4836
4814 DEFFN'238(V3$,V8$)
: M=0
: GOSUB 4756
: GOSUB 4616
: IF U3(2)<>0THEN 4816
: R1$=BIN(3)
: GOTO 4836
4816 HEXPACKV7$FROMV8$
: STR(V2$(),U3(2)+16,2)=STR(V7$,,2)
: GOSUB 4714
: 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
4844 DEFFN'239(V3$,V8$)
: M=0
: GOSUB 4756
: GOSUB 4616
: IF U3(2)=0THEN 4782
: R1$=HEX(02)
: GOTO 4836
4846 DEFFN'237(V3$)
: M=0
: GOSUB 4756
: GOSUB 4616
: IF U3(2)<>0THEN 4848
: R1$=BIN(3)
: GOTO 4834
4848 HEXUNPACKSTR(V2$(),U3(2)+16,2)TO V8$
: V8$=STR(V8$,,3)
: SELECT #11<V8$>
: SCRATCH T#11,STR(V3$,,8)
: ERRORR1$=BIN(ERR)
: GOTO 4836
4850 U3(1)=2
: GOSUB 4672
: IF U3(2)=0THEN R1$=BIN(3)
: GOTO 4836
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