image of READY prompt

Wang2200.org

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