0 SCREEN,0:MAXFILES=1:CLEAR5000:DEFINTA-Z:DEFSNGD:DEFSTRS:DIMD,T,A,FC,FR,S,SS,ST,FD,LL,LC,DL,LM,FQ,FO,SV(126),SN(146):SE=CHR$(27):SY=SE+"Y":SR=CHR$(13)+CHR$(10):DF=65535:O=126 2 CLS:PRINT"VARCRF.100 [c] 05/31/85 *HONOR SYSTEM*"SR"If you keep and use please mail $5 to:"SRTAB(13)"Woods Martin"SR" 5517 Sturbridge Houston TX 77056" 4 LM=6:RM=79:SF="":SU=""'printer param 6 SM=SPACE$(LM):SS=SPACE$(16):SX=SPACE$(4):LL=RM-LM:S1=STRING$(252,63):S2=S1:GOSUB90:GOSUB95:OPENSOFOROUTPUTAS1:SH=SM+SP+" "+DATE$+" "+TIME$+" Page":PG=0:GOSUB72:PRINT"Checking lines":A=0:S=SS 8 FORD=DSTODF:T=A:GOSUB27:IFNOTFCTHENDL=PEEK(D+3)*256+B:D=D+3:GOSUB27:PRINTDL;:FC=-1ELSEIFT=0THENGOSUB31:GOSUB28:IFA+B=0THEND=DFELSEELSEIFNOTFRANDT=34THENGOSUB31:FQ=(FQ=0)ELSEIFNOTFQTHENGOSUB44:IFNOTFDTHENIFT<128THENGOSUB36ELSEGOSUB46 10 NEXT:S=SPACE$(6):CLS:PRINT"Sorting";:A=C:GOSUB15:CLS:PRINT"Printing";:GOSUB19:GOSUB70:GOSUB70:S=SM+"Variables"+STR$(VT)+" References"+STR$(VR):GOSUB70:GOSUB71:PRINT#1,CHR$(26);:CLOSE:RUN 15 A=A\2:IFATHENT=1:K=C-AELSERETURN 16 I=T:PRINT@10,I; 17 L=I+A:IFSV(I)>SV(L)THENMID$(S,1)=SV(I):MID$(SV(I),1)=SV(L):MID$(SV(L),1)=S:I=I-A:IFI>=1THEN17 18 T=T+1:IFT>KTHEN15ELSE16 19 IFC=0THENRETURNELSEST=SPACE$(10):FORT=1TOC:MID$(ST,1)=LEFT$(SV(T),4)+SS:FV=4:IFASC(ST)>64THEN22ELSEFV=10:I=ASC(ST):IFI=33THENSI="DEF SNG"ELSEIFI=35THENSI="DEF DBL"ELSEIFI=36THENSI="DEF STR"ELSEIFI=37THENSI="DEF INT" 20 IFI=32THENIFINSTR(ST," F")THENSI="MAXFILES"ELSEIFINSTR(ST," R")THENSI="MAXRAM"ELSEIFINSTR(ST," C")THENSI="CLEAR"ELSESTOP 21 MID$(ST,1)=SI 22 PRINT#1,SM;LEFT$(ST,FV);:VL=FV+LM:V=ASC(MID$(SV(T),5)):VF=-(ASC(SV(T))>64ANDASC(SV(T))<91):VT=VT+VF:S="" 23 E=(LEN(SN(V))=255):GOSUB24:IFETHENV=ASC(MID$(SN(V),255)):GOTO23ELSEGOSUB70:GOSUB70:NEXT:RETURN 24 FORA=1TOLEN(SN(V))+ESTEP2:IFVL+6>LLTHENGOSUB70:PRINT#1,SPACE$(LM+4);:VL=LM+4 25 PRINT#1,USING" #####";256*ASC(MID$(SN(V),A))+ASC(MID$(SN(V),A+1));:VL=VL+6:VR=VR+VF: NEXT:RETURN 26 D=D+1 27 A=PEEK(D+1):B=PEEK(D+2):RETURN 28 FC=0:FQ=0:FR=0 29 FD=0:FM=0:FO=0:FF=0:FL=0:FS=0:RETURN 30 GOSUB31:MID$(S,1)=ST:FV=4:GOSUB33:RETURN 31 IFFV=0THENRETURNELSEIFFV>4THENIFASC(MID$(S,FV,1))=40THENMID$(S,3,2)=MID$(S,FV-1,2):FV=4ELSEMID$(S,3,1)=MID$(S,FV,1):MID$(S,4,1)=" ":FV=3 32 IFFV<3THENMID$(S,FV+1)=SSELSEIFFV=3ANDASC(MID$(S,3))>40THENMID$(S,3)=SS:FV=2ELSEIFASC(MID$(S,3))>40THENMID$(S,3,1)=MID$(S,4,1):MID$(S,4)=SS:FV=3 33 MID$(SX,1)=S:I=INSTR(S1,SX):IFITHENI=I/4+1ELSEI=INSTR(S2,SX):IFITHENI=I/4+64ELSEC=C+1:IFC>126THENS="TOO MANY VARIABLES AT LINE"+STR$(DL):GOTO51ELSEI=C:SV(C)=SX+CHR$(C):IFC<64THENMID$(S1,1+(I-1)*4,4)=SXELSEMID$(S2,1+(I-64)*4,4)=SX 34 V=DL/256:N=I:M=N:GOSUB50:SN(N)=SN(N)+CHR$(V)+CHR$(DL-V*256) 35 MID$(S,1)=SS:FV=0:RETURN 36 FL=FL+(FL>0)*(T=41):FS=FS+(FS>0)*(T=44):IFFV=0THENIFT<65ORT>90THENRETURNELSE37ELSEIF(T>47ANDT<58)OR(T>64ANDT<91)THEN37ELSEIFT=33OR(T>34ANDT<38)ORT=40THENGOSUB37:IFA=40THENRETURNELSE31ELSEIFA=40THENRETURNELSE31 37 IFFF=0ORFV<>3THEN39ELSEIFLEFT$(S,3)="SNG"THENMID$(S,1)="!Def"ELSEIFLEFT$(S,3)="DBL"THENMID$(S,1)="#Def"ELSEIFLEFT$(S,3)="STR"THENMID$(S,1)="$Def"ELSE39 38 FV=4:GOSUB33 39 FV=FV+1:MID$(S,FV,1)=CHR$(T):IFFMANDLEFT$(S,3)="RAM"THENMID$(S,1)=" Ram":FV=4:GOSUB33ELSEIF(FOAND(LEFT$(S,2)="AS"ORLEFT$(S,3)="APP"ORLEFT$(S,3)="PUT"))OR(FL=3)OR(FS=2)THEN35 40 IFA>127ORT=40THENGOSUB31:RETURNELSERETURN 44 IF(T=58ANDA=142ANDB=255)THENGOSUB26:RETURNELSEIF(T=137ORT=155ORT=158ORT=168ORT=169)THENFS=1 45 IFA=32OR(FSAND(A=77))THENFS=-FS*(A<>77):GOSUB26:GOTO45ELSEIFT=58THENGOSUB31:GOSUB29:RETURNELSERETURN 46 IFT=132THENFL=0ELSEIFT=153ORT=188THENFO=1ELSEIFT=161THENFF=1:IFA=224THENST="%Def":GOSUB30ELSEELSEIFT=167THENST=" Clr":GOSUB30ELSEIFT=183THENFM=1:IFA=157THENST=" Fil":GOSUB30 47 IFT=146THENFL=1ELSEIFT=131THENFD=-1ELSEIFT=255OR(T=142ANDA<>255)THENFQ=-1:FR=-1 48 RETURN 50 E=LEN(SN(N)):IFE<254THENRETURNELSEIFE=255THENN=ASC(MID$(SN(N),255)):GOTO50ELSEIFO<146THENO=O+1:SN(N)=SN(N)+CHR$(O):N=O:GOTO50ELSEGOSUB70:S=SV(M)+" - Too many references" 51 CLOSE:PRINTSR;S" - CANNOT CONTINUE":END 70 GOSUB73:LC=LC+1:IFLC<59THENRETURNELSEGOSUB71:GOSUB72:RETURN 71 IFPATHENINPUT"Pause--insert paper ";SI:RETURNELSEIFLEN(SF)THENPRINT#1,SF;:RETURNELSES=STRING$(65-LC,10):GOSUB73:RETURN 72 LC=0:PG=PG+1:S=SH+STR$(PG):GOSUB70:S=SM+"Variable (produced by VARCRF.WM8)":GOSUB70:S=SM+"Name ------ Referenced at Lines ------":GOSUB70:GOSUB70:RETURN 73 L=LEN(S):IFL=0THENS=" " 74 PRINT#1,S:S="":RETURN 80 BEEP:PRINTSY"% "SE"J"SI"";:SI="":INPUTSI:IFLEN(SI)=0THENRETURN 81 FORI=1TOLEN(SI):V=ASC(MID$(SI,I)):IFV>96ANDV<123THENMID$(SI,I,1)=CHR$(V-32) 82 NEXT:RETURN 90 SI="To: Line Printer=P or Dev:Filnam.Ext"+SR+" Quit=":GOSUB80:SO=SI:IFSI=""THENMENUELSEIFINSTR("LPT:",SO)=0THEN92ELSESO="LPT:":IF(INP(187)AND6)<>2THENSI="Printer not ready":GOSUB80:GOTO90 91 SI="Paper: single=S continuous=":GOSUB80:PA=(SI="S"):IFLEN(SU)THENLPRINTSU;:SU="":RETURNELSERETURN 92 ONERRORGOTO93:IFINSTR(SO,":")=0THEN94ELSEOPENSOFOROUTPUTAS1:CLOSE:ONERRORGOTO0:SF="":PA=0:RETURN 93 RESUME94 94 ONERRORGOTO0:SI="Invalid output device":GOSUB80:GOTO90 95 CLOSE:CLS:FILES:SI="Program Name - Quit=":GOSUB80:IFSI=""THENMENUELSEPRINT:SP=SI:T=INSTR(SP,"."):IFTTHENSP=LEFT$(SP,T-1) 96 SP=LEFT$(SP+SS,6):FORD=63919TO63919+11*19STEP11:T=PEEK(D):IFT=128ANDPEEK(D+3)=ASC(SP)THENFORI=2TO6:IFPEEK(D+2+I)=ASC(MID$(SP,I))THENNEXT:DS=256*PEEK(D+2)+PEEK(D+1):SP=SP+".BA":RETURN 97 NEXTD:SI=SP+".BA not found":GOSUB80:GOTO95