image of READY prompt

Wang2200.org

Listing of file='SORTCAT' on disk='vmedia/tbo_81.wvd.zip'

# Sector 920, program filename = 'SORTCAT'
0010 REM SORTCAT 04/23/81 SORTCAT plus find programs after date Key '14
0020 COM U1$(20)45,U$(20),U
   : INIT(20)U$()
   : U=1
   : SELECT PRINT 005(80)
0030 DIM N$64,T1$(2,255)2,T2$(2,255)2,C$(2,255)8,T$(2,255)14
   : T9=2
   : REM CAT.SIZE MOD
0040 DIM C1$,Z$(16)16,L$(4)64,K$1,Z$1,C$16,C2$6,L$1,Z2$2,S2$2,D8$10,C9$45
   : T1=1
   : GOTO 720
0045 REM %.Scan Cat. area
0050 INIT(FF)C$()
   : FOR S1=S2TO (E-1)
   : Z1=1
   : IF S1>0THEN 60
   : Z1=2
   : PRINT "SEARCHING FOR ";Z2$
   : C1$=Z2$
   : STR(C1$,4)="ITEMS FOUND"
   : GOTO 70
0060 DATA LOAD BA T#1,(S,S)Z$()
0070 PRINT "CAT. SECTOR=";S;HEX(0C)
   : FOR Z=Z1 TO 16
   : Z2$=STR(Z$(Z),1,2)
   : IF Z2$=S2$THEN 120
   : IF Z2$<>HEX(0000)THEN 80
   : Z=16
0080 NEXT Z
   : NEXT S1
0100 RETURN
0110 REM %.Record found items
0120 C$=STR(Z$(Z),9,8)
   : IF I$=" "THEN 130
   : IF STR(I$,1,LEN(I$))<>STR(C$,1,LEN(I$))THEN 80
0130 AND (STR(Z$(Z),3,1),7F)
   : AND (STR(Z$(Z),5,1),7F)
   : IF N=0THEN 140
   : C$=STR(Z$(Z),1,6)
0140 C$(T1,T)=C$
   : T$(T1,T)=STR(Z$(Z),1,6)
   : STR(T$(T1,T),7,8)=STR(Z$(Z),9,8)
   : PRINT "CAT. SECTOR=";S,"FOUND ITEM = ";T0;STR(Z$(Z),9,8);HEX(0C)
   : T0=T0+1
   : T=T+1
   : IF T<256THEN 80
0150 T1=T1+1
   : T=1
   : IF T1<=T9THEN 80
   : PRINT "---PARTIAL SORT"
   : Z=16
   : S1=E-1
   : GOTO 80
0160 REM %.Show catalog details
0170 %     ITEM   NAME     TYPE   START    END   USED   FREE  +USED
0180 %     ####   ########  ###   #####  #####  #####  #####  #####
0190 %         ##############= #####
0200 T0,T=1
   : INIT(20)T$()
   : GOSUB 50
   : REM /Scan catalog
0210 PRINT HEX(07)
   : MAT SORTC$() TO T1$(),T2$()
0215 DEFFN'35
0220 SELECT PRINT 005
   : IF H=0THEN 240
   : SELECT PRINT 215
   : ON UGOTO 230
   : ON D1GOTO 230
   : PRINT " "
   : L=L+3
   : GOTO 240
0230 GOSUB 690
   : PRINT
0240 PRINT
   : PRINTUSING 190,C1$,T0-1
   : ON T0GOTO 350
   : PRINTUSING 170
   : PRINT " "
   : Z2$=S2$
   : I1=0
   : T,Z,T1=1
0250 DEFFN'7
   : IF N<>2 THEN 260
   : T1=INT(T0/256)+1
   : T=T0-((T1-1)*256)
0260 S$=T$(VAL(T2$(T1,T)),VAL(STR(T2$(T1,T),2,1)))
0270 GOSUB '36
   : N$=" "
   : IF F=0THEN 290
   : REM /.jump to skip REMark
0280 IF STR(S$,1,2)=HEX(1080)THEN 422
   : REM /.Get program REMark
0285 IF STR(S$,1,2)<>HEX(1000)THEN 290
   : GOSUB 610
   : REM /.Get DATA REMark
0290 PRINTUSING 180,I1,STR(S$,7,8),D$,S8,S9,S3,S6,S0
   : IF N$=" "THEN 300
0295 PRINT TAB(12);N$;
   : L=L+2
   : PRINT " "
   : PRINT " "
0300 IF H=1THEN 310
   : KEYIN K$,390,410
0310 L=L+1
   : IF L>53THEN 370
   : Z=Z+1
0320 IF N=2THEN 330
   : T=T+1
   : IF T<256THEN 340
   : T=1
   : T1=T1+1
   : GOTO 340
0330 T=T-1
   : IF T>0THEN 340
   : T=255
   : T1=T1-1
0340 IF Z<T0THEN 260
0350 U=U+1
   : IF U<U9THEN 990
   : IF H=0THEN 360
   : U=1
   : C9=C9-1
   : IF C9>0THEN 990
   : SELECT PRINT 215(79)
   : PRINT HEX(0C);
   : FOR Z=1TO 36
   : PRINT HEX(0A);
   : NEXT Z
   : PRINT
0360 H=0
   : GOSUB 1090
   : END
0370 L=3
   : IF H=0THEN 310
   : P1=P1+1
   : PRINT " "
   : PRINT HEX(0C030E);C9$;"  PAGE ";P1
   : PRINTUSING 170
   : PRINT " "
   : GOTO 310
0380 REM %.lower pad key PAUSE
0390 PRINTUSING 170
   : GOSUB 1100
   : PRINT "KEY (EXEC) TO CONTINUE"
0400 KEYIN K$,310,410
   : GOTO 400
0410 IF K$>HEX(01)THEN 420
   : F=VAL(K$)
   : GOTO 310
0420 IF K$=HEX(10)THEN 680
   : IF K$<>HEX(0F)THEN 390
   : S0,H=0
   : GOSUB 690
   : GOTO 220
0422 GOSUB '37
   : IF POS(I$="/")=0 THEN 290
   : IF N$=" "THEN 300
   : GOSUB 2110
   : IF N$="N"THEN 300
   : GOTO 290
0430 REM %.'36 Get catalog line display data
0440 DEFFN'36
   : STR(D$,1,1)=" "
   : IF STR(Z2$,1,1)=HEX(10)THEN 460
0450 STR(D$,1,1)="S"
   : IF STR(Z2$,1,1)=HEX(11)THEN 460
   : RETURN
0460 STR(D$,2,1)="P"
   : IF STR(Z2$,2,1)=HEX(80)THEN 480
0470 STR(D$,2,1)="D"
   : IF STR(Z2$,2,1)=HEX(00)THEN 480
   : RETURN
0480 S8=(256*VAL(STR(S$,3,1)))+VAL(STR(S$,4,1))
   : S9=(256*VAL(STR(S$,5,1)))+VAL(STR(S$,6,1))
   : DATA LOAD BA T #1,(S9,M)L$()
0490 S3=256*VAL(STR(L$(1),2,1))+VAL(STR(L$(1),3,1))
   : S6=S9-S8-S3+1
   : I1=I1+1
0500 S0=S0+S3
   : RETURN
0510 REM %.'37 Get 1st REM statement
0520 DEFFN'37
0530 DATA LOAD BA T#1,(S8+1,M)L$()
0540 M=4
   : C=1
0550 M=M+1
   : IF M>64THEN 100
   : IF STR(L$(1),M,1)=HEX(A2)THEN 560
   : IF STR(L$(1),M,1)=" "THEN 550
   : RETURN
0560 M=M+1
   : IF M>64THEN 100
   : L$=STR(L$(1),M,1)
   : IF L$=":"THEN 100
   : IF L$=HEX(0D)THEN 100
   : STR(N$,C,1)=L$
   : C=C+1
   : GOTO 560
0600 REM %.Display DATA file descriptions
0610 RESTORE
0620 READ N$
   : IF N$<>" "THEN 620
0630 READ N$
   : IF N$=" "THEN 100
   : IF STR(N$,1,8)=STR(S$,7,8)THEN 100
   : GOTO 630
0640 REM %.S.F. Entry
0650 DEFFN'0
   : F=0
   : GOTO 670
0660 DEFFN'1
   : F=1
0670 DEFFN'15
   : S0,H=0
   : GOSUB 690
   : PRINT
   : GOTO 220
0680 DEFFN'16
   : S0=0
   : H=1
   : INPUT "TITLE",C9$
   : PRINT
   : GOTO 220
0690 PRINT HEX(0D0C030E);C9$
   : PRINT "DISK CATALOGUE SORTED BY ";C2$;
   : IF I$=" "THEN 700
   : PRINT " I.D.=";I$;
0700 PRINT
   : PRINTUSING 190,"INDEX SECTORS",E
   : PRINTUSING 190,"END CAT. AREA",E8
   : PRINTUSING 190,"CURRENT END",E9
   : P1=1
   : L=7
   : RETURN
0710 REM %.SET-UP
0720 DEFFN'10
   : SELECT PRINT 005
   : PRINT HEX(03);"REQUEST NUMBER=";U,"SORT DISK FILE CATALOGUE NAMES"
   : F$="(DEFAULT)="
0730 D9=3
   : PRINT "1=(F)310 2=(R)B10 3=(F)320 4=(R)B20 5=(F)330 6=(R)B30 7=(F)350"
   : PRINT "Disk surface";TAB(45);F$;D9;
   : INPUT D9
   : IF D9<1THEN 730
   : IF D9>7THEN 730
0740 ON D9GOSUB 1120,1130,1140,1150,1160,1170,1180
   : PRINT C9$
0750 N=0
   : PRINT "Sort by 0=Name 1=Sector 2=-Sector";TAB(45);F$;N;
   : INPUT N
0760 I$=" "
   : IF N=0THEN 770
   : IF N=2THEN 780
   : N=1
   : GOTO 780
0770 INPUT "Common Root ID",I$
0780 PRINT
   : PRINT "TYPE OF FILE NAMES TO SORT"
0790 PRINT "PROGS+DATA    A          S         ALL"
0800 PRINT "PROGRAMS      AP         SP        P=AP+SP"
0810 PRINT "DATA          AD         SD        D=AD+SD"
0820 PRINT "Category   Active    Scratched";
0830 Z3$="AP"
   : PRINT TAB(45);F$;Z3$;
   : INPUT Z3$
0840 Z2$="AP"
   : IF Z3$="ALL"THEN 860
   : IF Z3$="A"THEN 860
   : IF Z3$="P"THEN 860
   : IF Z3$="D"THEN 850
   : Z2$="SP"
   : IF Z3$="S"THEN 860
   : Z2$=Z3$
   : GOTO 860
0850 Z2$="AD"
0860 S2$=HEX(1080)
   : IF Z2$="AP"THEN 870
   : S2$=HEX(1180)
   : IF Z2$="SP"THEN 870
   : S2$=HEX(1000)
   : IF Z2$="AD"THEN 870
   : S2$=HEX(1100)
   : IF Z2$="SD"THEN 870
   : GOTO 800
0870 C9,H=0
   : PRINT "Output to:","0=CRT  1=Printer";TAB(45);F$;H;
   : INPUT H
   : IF H=0THEN 880
   : PRINT "TITLE=",F$;C9$
   : INPUT C9$
   : INPUT "# OF COPIES (DEFAULT=1)",C9
0880 F=1
   : PRINT "List wanted","0=Cat.data  1=plus REMS ";TAB(45);F$;F;
   : INPUT F
   : ON F+1GOTO 890,890
   : GOTO 880
0890 BIN(STR(U$(U),1,1))=D9
   : BIN(STR(U$(U),2,1))=N
   : STR(U$(U),3,8)=I$
   : STR(U$(U),11,2)=Z2$
   : STR(U$(U),13,2)=S2$
   : BIN(STR(U$(U),15,1))=H
   : BIN(STR(U$(U),16,1))=F
   : U1$(U)=C9$
   : U=U+1
0900 IF Z3$="ALL"THEN 930
   : IF Z3$="S"THEN 910
   : IF Z3$="A"THEN 920
   : IF Z3$="P"THEN 960
   : IF Z3$="D"THEN 970
   : GOTO 980
0910 Z2$="SD"
   : S2$=HEX(1100)
   : Z3$=" "
   : GOTO 890
0920 Z2$="AD"
   : S2$=HEX(1000)
   : Z3$=" "
   : GOTO 890
0930 IF Z2$<>"AP"THEN 940
   : Z2$="AD"
   : S2$=HEX(1000)
   : GOTO 890
0940 IF Z2$<>"AD"THEN 950
   : Z2$="SP"
   : S2$=HEX(1180)
   : GOTO 890
0950 IF Z2$<>"SP"THEN 980
   : Z2$="SD"
   : S2$=HEX(1100)
   : GOTO 890
0960 Z2$="SP"
   : S2$=HEX(1180)
   : Z3$=" "
   : GOTO 890
0970 Z2$="SD"
   : S2$=HEX(1100)
   : Z3$=" "
   : GOTO 890
0980 U9=0
   : INPUT "INPUT NON-ZERO FOR MORE DATA",U9
   : IF U9<>0THEN 720
   : U9=U
   : U=1
0990 D9=VAL(STR(U$(U),1,1))
   : N=VAL(STR(U$(U),2,1))
   : I$=STR(U$(U),3,8)
   : Z2$=STR(U$(U),11,2)
   : S2$=STR(U$(U),13,2)
   : H=VAL(STR(U$(U),15,1))
   : T=VAL(STR(U$(U),16,1))
   : F=VAL(STR(U$(U),16,1))
   : S0=0
1000 ON D9GOSUB 1190,1200,1210,1220,1230,1240,1250
1010 D1=0
   : IF C9$=U1$(U)THEN 1020
   : C9$=U1$(U)
   : D1=1
1020 SELECT PRINT 005
   : IF H=1THEN 1030
   : IF U=1THEN 1030
   : PRINT "KEY (EXEC) TO CONTINUE FOR ";Z2$;
   : INPUT Z
1030 C2$="NAME"
   : IF N=0THEN 1040
   : C2$="SECTOR"
1040 S=0
   : DATA LOAD BA T#1,(S,S)Z$()
   : AND (STR(Z$(1),1,1),7F)
   : S2=VAL(STR(Z$(1),1,1))
   : E=VAL(STR(Z$(1),2,1))
1050 D8$=STR(Z$(1),1,6)
1060 E9=256*VAL(STR(D8$,3,1))+VAL(STR(D8$,4,1))-1
1070 E8=256*VAL(STR(D8$,5,1))+VAL(STR(D8$,6,1))-1
   : GOSUB 690
1080 GOTO 200
1090 SELECT PRINT 005
   : PRINT
   : PRINT "FOR SORTED ITEMS, KEY"
1100 PRINT "'0-Cat.only '1-Cat.with REMs  '14 date + '15 RECALL list  '16 Hard
      copy"
   : RETURN
1110 REM %.Disk references
1120 C9$="310"
   : RETURN
1130 C9$="B10"
   : RETURN
1140 C9$="320"
   : RETURN
1150 C9$="B20"
   : RETURN
1160 C9$="330"
   : RETURN
1170 C9$="B30"
   : RETURN
1180 C9$="350"
   : RETURN
1190 SELECT #1310
   : RETURN
1200 SELECT #1B10
   : RETURN
1210 SELECT #1320
   : RETURN
1220 SELECT #1B20
   : RETURN
1230 SELECT #1330
   : RETURN
1240 SELECT #1B30
   : RETURN
1250 SELECT #1350
   : RETURN
2020 DEFFN'14
2030 INPUT "Find programs updated after  MM/DD/YY ",I$
2040 IF POS(I$="/")>0 THEN 2050
   : REM /.jump if no search wanted
2045 STOP "NO SEARCH WANTED"
2050 PRINT "Find programs updated after ";I$
2060 CONVERT STR(I$,7,2) TO W1
   : CONVERT STR(I$,1,2)TO W2
   : CONVERT STR(I$,4,2)TO W3
2070 PRINTUSING 2090,I$,W2,W3,W1
2080 REM ........  MM DD YY
2090 % ######## = ##/##/##
2095 GOSUB '35
   : REM /.jump into SORTCAT output
2096 RETURN
2100 REM .LOOK FOR DATE
2110 A=POS(N$="/")
   : A=A-2
2120 IF A<1THEN 2220
2130 D8$=STR(N$,A,8)
   : A=3
2140 B=POS(STR(D8$,A+1)="/")
   : IF B<2 THEN 2220
2160 C=NUM(STR(D8$,A+B+1))
   : IF C=0THEN 2220
   : CONVERT STR(D8$,A+B+1,C) TO D
   : C=1
   : W=W1
   : REM /.1ST try year
2170 IF W < D THEN 2230
   : REM /.jump to Yes
2180 IF W > D THEN 2220
   : REM /.jump to No
2190 ON C GOTO 2200,2210,2230
2200 C=NUM(D8$)
   : IF C=0THEN 2220
   : CONVERT STR(D8$,1,C)TO D
   : C=2
   : W=W2
   : GOTO 2170
   : REM /.Next try month
2210 C=NUM(STR(D8$,A+1))
   : IF C=0THEN 2220
   : CONVERT STR(D8$,A+1,C)TO D
   : C=3
   : W=W3
   : GOTO 2170
   : REM /.Next try day
2220 N$="N"
2230 RETURN
9000 DATA " "
   : REM /list of programs and descriptions
9010 DATA " "
   : REM /list of data files and descriptions