Listing of file='XREF010D' on disk='vmedia/701-2048D.wvd.zip'
# Sector 414, program filename = 'XREF010D' 0010 REM XREF010D,00-00(03/30/76),12003A - COPYRIGHT WANG LABS. INC., 1976 0470 GOTO 5100 0480 DEFFNN(N)=256*VAL(W$(N))+VAL(STR(W$(N),2,1)) 0490 %#### 0500 %<####> -- 0510 %'### - 0540 RETURN 0570 IF P9=1THEN 540 : B=0 : A$=R$ : IF R$<HEX(80)THEN 690 : IF R$>HEX(EB)THEN 820 : MAT SEARCHA$(),=R$TO W$() : X=FNN(1) : MAT COPY A$()<X+1,10>TO A$()<541,10> : X=POS(A$(55)>7F) : A$=STR(A$(55),1,(1-SGN(X))*10+X-SGN(X)) : B=1-INT(VAL(R$)/192) 0690 IF R$=HEX(0D)THEN 780 0710 IF B+C+LEN(A$)>P4THEN 860 0730 IF A$<HEX(20)THEN 760 : IF A$>HEX(7F)THEN 760 : PRINT TAB(C);A$; 0760 C=B+C+LEN(A$) : RETURN 0780 C=P4 : H=H+1 0800 RETURN 0820 IF R$=HEX(FF)THEN 800 : A$=A1$(VAL(R$)-239) : GOTO 710 0860 E=E+1 : PRINT " " : C=P2+6 : IF E<P3THEN 730 : GOSUB 5660 : GOTO 730 0950 R$=HEX(00) : T=1 : DATA LOAD BA T#2,(G,G)R$() : FOR I=1TO 7 : MAT SEARCHR$(),=A1$(I)TO W$() : IF W$(1)=HEX(0000)THEN 1090 : X=FNN(1) : J=LEN(A1$(I)) : MAT COPY R$()<X+J,257-X-J>TO R$()<X+1,256-X> : BIN(W$(1))=239+I : MAT COPY W$()<1,1>TO R$()<X,1> 1090 NEXT I : GOTO 1560 1130 C=P4 : H=H+1 1150 T=T-1 : GOTO 1450 1190 PRINT " " : E=P3 : GOSUB 3780 : H$="PROGRAM LISTING" : INIT(FF)V$() : D,H,L,V(1),V(2),V(3)=0 : E=P3 : C=P4 : A=1 : PRINT " " : GOTO 1450 1320 MAT SEARCHV$()<1,L+2>,>STR(N$(1),1,2)TO W$()STEP 2 : X=FNN(1) : MAT COPY -V$()<X,L-X+1>TO -V$()<X,L-X+3> : L=L+2 : MAT COPY N$()<1,2>TO V$()<X,2> : GOTO 1490 1420 IF R$=":"THEN 1130 : IF R$=HEX(FF)THEN 1150 1450 IF L>L4-6THEN 1190 : MAT SEARCHV$()<1,L+2>,=STR(N$(1),1,2)TO W$()STEP 2 : IF W$(1)=HEX(0000)THEN 1320 1490 MAT SEARCHV$()<1,L+2>,>STR(N$(1),1,2)TO W$()STEP 2 : X=FNN(1) : MAT COPY -V$()<X,L-X+1>TO -V$()<X,L-X+3> : MAT COPY L$()<1,2>TO V$()<X,2> : L=L+2 1560 IF R$=" "THEN 1610 : D$,R0$=R$ : S0$=S$ : $TRAN(D$,T$()) : AND (D$,10) 1610 T=T+1 : MAT COPY R$()<T,1>TO W$() : R$,S$=W$(1) : $TRAN(S$,T$()) : AND (S$,0F) : IF R$=HEX(00)THEN 1560 : IF R$=HEX(FF)THEN 3070 : IF R$=HEX(FD)THEN 950 : IF R$=HEX(FE)THEN 3780 : IF R$=":"THEN 2540 1710 IF S$=HEX(06)THEN 2590 : IF S$=HEX(08)THEN 2610 : GOSUB 570 : IF P9=2THEN 1560 : IF R$>HEX(80)THEN 1560 : IF D$=HEX(00)THEN 1560 : IF S$<>HEX(01)THEN 1560 : N$(1)=HEX(D000) : A1$=HEX(BF) : ADDC(A1$,R$) : ROTATE(A1$,4) : A2$=A1$ : AND (A1$,F0) : AND (A2$,0F) : OR (STR(N$(1),1,1),A2$) 1920 OR (STR(N$(1),2,1),A1$) 1950 T=T+1 : MAT COPY R$()<T,1>TO W$() : R$,S$=W$(1) : $TRAN(S$,T$()) : AND (S$,0F) : IF R$<>HEX(22)THEN 2030 : T=T-1 : GOTO 1560 2030 IF R$=":"THEN 1130 : GOSUB 570 : IF R$=" "THEN 1950 : IF S$=HEX(01)THEN 1560 : IF S$=HEX(02)THEN 2210 : IF S$=HEX(03)THEN 2160 : IF S$<>HEX(04)THEN 1420 : OR (STR(N$(1),1,1),04) : GOTO 1420 2160 OR (STR(N$(1),1,1),08) : GOTO 2230 2210 BIN(A1$)=VAL(R$)-47 : OR (STR(N$(1),2,1),A1$) 2230 T=T+1 : MAT COPY R$()<T,1>TO W$() : R$,S$=W$(1) : $TRAN(S$,T$()) : AND (S$,0F) : IF R$=":"THEN 1130 : GOSUB 570 : IF R$=" "THEN 2230 : IF S$=HEX(03)THEN 2390 : IF S$<>HEX(04)THEN 1420 : OR (STR(N$(1),1,1),04) : GOTO 1420 2390 OR (STR(N$(1),1,1),08) 2400 T=T+1 : MAT COPY R$()<T,1>TO W$() : R$,S$=W$(1) : $TRAN(S$,T$()) : AND (S$,0F) : IF R$=":"THEN 1130 : GOSUB 570 : IF R$=" "THEN 2400 : IF R$<>"("THEN 1420 : OR (STR(N$(1),1,1),04) : GOTO 1420 2540 C=P4 : H=H+1 : GOTO 1710 2590 T$=HEX(3A) : GOTO 2640 2610 IF R$=HEX(22)THEN 2630 : IF S0$=HEX(05)THEN 2830 2630 T$=R$ 2640 GOSUB 570 2650 T=T+1 : MAT COPY R$()<T,1>TO W$() : R$,S$=W$(1) : $TRAN(S$,T$()) : AND (S$,0F) : IF R$=HEX(0D)THEN 2770 : IF R$=T$THEN 2740 : GOSUB 570 : GOTO 2650 2740 IF T$<>HEX(3A)THEN 2770 : C=P4 : H=H+1 2770 GOSUB 570 : GOTO 1560 2830 GOSUB 570 : IF P9=2THEN 1560 : N$(1)=HEX(F000) : IF R0$=HEX(CE)THEN 2880 : N$(1)=HEX(F100) 2880 I=0 2890 T=T+1 : MAT COPY R$()<T,1>TO W$() : R$,S$=W$(1) : $TRAN(S$,T$()) : AND (S$,0F) : IF R$=" "THEN 2970 : IF S$<>HEX(02)THEN 3010 : I=I*10+VAL(R$)-48 2970 GOSUB 570 : GOTO 2890 3010 BIN(STR(N$(1),2,1))=I : IF R$=":"THEN 1130 : T=T-1 : GOTO 1420 3070 MAT COPY R$()<T+1,2>TO W$() : T=T+2 : UNPACK(####)W$(1)TO X : IF P9=1THEN 3200 : IF C+4>P4THEN 3340 3140 PRINT TAB(C); : PRINTUSING 490,X; : C=C+5 : IF P9=2THEN 1560 3200 IF R0$<>HEX(00)THEN 3300 : R0$=HEX(FF) : D=D+1 : L$(1)=W$(1) : GOTO 1560 3300 BIN(N$(1))=INT(X/256)+160 : BIN(STR(N$(1),2,1))=X-INT(X/256)*256 : GOTO 1450 3340 PRINT " " : C=P2+5*SGN(VAL(R0$)) : E=E+1 : IF E<P3THEN 3140 : GOSUB 5660 : GOTO 3140 3430 U=P2+3 : W$(1)=HEX(9999) : MAT SEARCHV$()<I+2,L-I+4>,>W$(1)TO W$() : X=INT(FNN(1)/2) : PRINTUSING 500,X; : U=U+10 3510 I=I+2 : MAT COPY V$()<I,2>TO W$() : IF W$(1)>HEX(9999)THEN 3640 : U=U+5 : IF U+5>P4THEN 3680 3580 UNPACK(####)W$(1)TO X : PRINT TAB(U); : PRINTUSING 490,X; : GOTO 3510 3640 PRINT " " : U=P2 : RETURN 3680 PRINT " " : E=E+1 : U=P2+18 : IF E<P3THEN 3580 : GOSUB 5660 : GOTO 3580 3780 IF P9=2THEN 540 : A=2 : H$="LINE NUMBER CROSS REFERENCE" : E=P3 : I=1 : MAT COPY V$()<I,2>TO W$() 3880 IF W$(1)>HEX(CFFF)THEN 4010 : IF E<P3THEN 3910 : GOSUB 5660 3910 PRINT HEX(0A);TAB(P2); : PRINTUSING 490,(VAL(W$(1))-160)*256+VAL(STR(W$(1),2,1)); : PRINT " - "; : E=E+2 : GOSUB 3430 : V(1)=V(1)+1 : GOTO 3880 4010 H$="VARIABLE CROSS REFERENCE" : A$=W$(1) : AND (A$,0C) : E=P3 4080 IF W$(1)>HEX(EFFF)THEN 4750 : IF E<P3THEN 4120 : GOSUB 5660 4120 A1$=W$(1) : AND (A1$,0C) : IF STR(A$,1,1)=A1$THEN 4270 : IF E<P3THEN 4170 : GOSUB 5660 4170 PRINT HEX(0A);TAB(P2); : FOR K=P2TO P4-2STEP 2 : PRINT "* "; : NEXT K : PRINT : E=E+2 : A$=A1$ 4270 A1$=W$(1) : A2$=STR(W$(1),2,1) : AND (A1$,01) : AND (A2$,F0) : OR (A1$,A2$) : ROTATE(A1$,4) : ADDC(A1$,41) : PRINT HEX(0A);TAB(P2);A1$; : A1$=STR(W$(1),2,1) : AND (A1$,0F) : IF A1$=HEX(00)THEN 4480 : BIN(A1$)=VAL(A1$)+47 : PRINT A1$; 4480 A1$=W$(1) : AND (A1$,0C) : IF A1$=HEX(04)THEN 4620 : IF A1$=HEX(08)THEN 4580 : IF A1$=HEX(0C)THEN 4660 : GOTO 4670 4580 PRINT "$"; : GOTO 4670 4620 PRINT "()"; : GOTO 4670 4660 PRINT "$()"; 4670 PRINT TAB(P2+5);" - "; : E=E+2 : GOSUB 3430 : V(2)=V(2)+1 : GOTO 4080 4750 H$="LOCATION OF DEFFN's" : A1$=HEX(F0) : E=P3 4800 IF W$(1)>HEX(F1FF)THEN 5010 : IF STR(W$(1),1,1)=A1$THEN 4850 : H$="SPECIAL FUNCTION CROSS REFERENCE" : A1$=HEX(F1) : E=P3 4850 IF E<P3THEN 4870 : GOSUB 5660 4870 E=E+2 : PRINT HEX(0A);TAB(P2); : PRINTUSING 510,VAL(STR(W$(1),2,1)); : GOSUB 3430 : IF A1$=HEX(F1)THEN 4800 : V(3)=V(3)+1 : GOTO 4800 5010 H$="SUMMARY" : GOSUB 5660 : PRINT TAB(P2);"TEXT LINES =";D;TAB(P2+30);"TEXT STATEMENTS =";H : PRINT : PRINT TAB(P2);"LINE NUMBERS =";V(1);TAB(P2+30);"VARIABLES =";V(2) : PRINT TAB(P2);"SPECIAL FUNCTIONS =";V(3) : RETURN 5100 GOSUB 5910 : PRINT "MOUNT INPUT PLATTER" : GOSUB 5840 : F=1 : N$=HEX(0000000000000000) 5150 GOSUB 6050 : IF N$=HEX(0000000000000000)THEN 5570 5170 DEFFN'0 : LIMITS T#2,N$,G,I,I : DATA LOAD BA T#2,(G,G)R$() : SELECT PRINT 005(140) : AND (R$(1,1),F0) : IF R$(1,1)<>HEX(50)THEN 5340 : SELECT PRINT 215(140) : PRINT HEX(0D0C);"FILE - ";N$;" - PROTECTED" : GOTO 5540 5340 GOSUB 5910 : PRINT "PROCESSING FILE ";F-1 : PRINT "NAME - ";N$;TAB(64) : SELECT PRINT 215(140) : INIT(FF)V$() : D,H,L,V(1),V(2),V(3)=0 : H$="PROGRAM LISTING" : A,E(1),E(2)=1 : E=P3 : C=P4 : GOSUB 950 : KEYIN H1$,5500,5500 5500 IF H1$<>"H"THEN 5150 : H1$=" " : GOSUB 5910 : GOSUB 5840 5540 GOTO 5150 5570 PRINT HEX(0D0C0C07) 5580 DEFFN'15 : SELECT PRINT 005(64) : PRINT HEX(03);"MOUNT ISS PLATTER" : GOSUB 5840 : COM CLEAR N1$() : LOAD DC T#0,"START040" 5660 PRINT : KEYIN H1$,5740,5740 5680 PRINT HEX(0C0E);TAB(P2/2);Q1$;TAB(((P4-P2)/2+P2-8)/2);N$;TAB(P4/2-8);"PAG E";E(A) : PRINT TAB(P2);H$ : PRINT " " : E=3 : E(A)=E(A)+1 : RETURN 5740 IF H1$<>"P"THEN 5680 : H1$=" " : GOSUB 5910 : GOSUB 5840 : PRINT "PROCESSING FILE ";F-1 : PRINT "NAME - ";N$;TAB(64) : SELECT PRINT 215(140) : GOTO 5680 5840 SELECT CO 205 : PRINT HEX(010A) 5860 KEYIN A$,5860,5860 : INPUT "KEY RETURN(EXEC) TO RESUME",A$ : SELECT CO 005 5910 SELECT PRINT 005(64) : PRINT HEX(01);,,,,,,,,,,,,HEX(01) : RETURN 5960 DEFFN'1 : IF P9=2THEN 540 : E(2)=1 : SELECT PRINT 215(140) : GOSUB 3780 : SELECT PRINT 005(64) : RETURN 6050 IF M$="ALL"THEN 6110 : IF F>P5THEN 6090 : N$=N1$(F) : GOTO 6130 6090 INIT(00)N$ : RETURN 6110 GOSUB 6170 : IF N5<0THEN 6110 6130 F=F+1 : RETURN 6170 GOSUB '229(2,N$) : N5,N1=0 : IF R6<>0THEN 6220 : R=0 : GOTO 6360 6220 IF R6=16THEN 6340 : R6=R6+1 6240 FOR N0=R6TO 16 : IF (N0-1)+ABS(R-1)=0THEN 6330 : IF STR(R9$(N0),1,1)=HEX(00)THEN 6320 : IF STR(R9$(N0),1,1)=HEX(21)THEN 6330 : IF STR(R9$(N0),1,2)=HEX(1080)THEN 6300 : GOTO 6330 6300 N$=STR(R9$(N0),9,8) : N1=1 6320 N0=16 6330 NEXT N0 6340 IF N1=1THEN 6400 : IF R>=R4THEN 6390 6360 DATA LOAD BA T#2,(R,R)R9$() : R6=1 : GOTO 6240 6390 INIT(00)N$ 6400 RETURN 6410 DEFFN'229(R9,R9$) : DATA LOAD BA T#R9,(0,R3)R9$() : AND (STR(R9$(1),2,1),7F) : R4=VAL(STR(R9$(1),2,1)) : R1$=R9$ : XOR (STR(R1$,2),R1$) : R2$=STR(R1$,8,1) : R3$=HEX(0000) : ADDC(R3$,R2$) : ADDC(R3$,R2$) : ADDC(R3$,R2$) 6420 ADD(STR(R3$,1,1),STR(R3$,2,1)) : R3=VAL(R3$) : R3=R3-INT(R3/R4)*R4 : R5=R3 6430 DATA LOAD BA T#R9,(R3,R)R9$() : R6=0 : FOR R7=1TO 16 : IF R3<>0THEN 6440 : IF R7<>1THEN 6440 : R7=2 6440 R2$=STR(R9$(R7),1,1) : IF R2$=HEX(00)THEN 6460 : IF R2$=HEX(10)THEN 6450 : IF R2$<>HEX(11)THEN 6470 6450 IF STR(R9$(R7),9,8)<>R9$THEN 6470 : R6=R7 6460 R7=16 6470 NEXT R7 : IF R2$=HEX(00)THEN 6480 : IF R6<>0THEN 6480 : R2$=HEX(00) : R3=R3-1 : IF R3=R5THEN 6480 : IF R3>=0THEN 6430 : R3=R4-1 : GOTO 6430 6480 RETURN