home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carousel Volume 2 #1
/
carousel.iso
/
comdore
/
64utils
/
dirfiler
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1989-01-04
|
6KB
|
213 lines
10 N$="ZZ":POKE53281,0:POKE53280,0:NR=214:NC=211:KB=198:POKE808,225
15 GOSUB2000
20 GOTO470
30 POKENR,1:PRINT:PRINT"[159]ARE YOU SURE? (Y/N)"
40 POKEKB,0
50 GETK$:IFK$=""THEN50
60 POKEKB,0:RETURN
70 GOSUB100:POKENR,1:PRINT:PRINT"[159]*** WORKING **** ":RETURN
80 POKENR,1:PRINT"[159]":PRINTMID$(M$,4,16):RETURN
90 M$="":POKENR,1:PRINT:PRINT" ":GOSUB120:RETURN
100 POKENR,RL+2:PRINT:PRINTTAB(CL*20);"[158]"MID$(N$(RL+(I+1)*CL+D-1),4,16)
110 RETURN
120 POKENR,R+2:PRINT:PRINTTAB(C*20);"[159]";MID$(N$(R+(I+1)*C+D-1),4,16)
130 RETURN
140 PRINT"[147][158]"HE$;
150 IFD>1THENPOKENC,21:PRINT" P = PRIOR SCREEN "
160 IFD=<N-40THENPOKENC,21:PRINT" N = NEXT SCREEN "
170 I=INT((N-D-1)/2+.5):IFI>19THENI=19
180 GOSUB80:POKENR,3:PRINT"[158]"
190 FORX=DTOD+I
200 PRINTMID$(N$(X),4,16)",";
210 PRINTT$(ASC(N$(X))ANDNOT248);
220 IF(ASC(N$(X))AND64)=64THENPRINT"<";
230 IFASC(N$(X+I+1)+CHR$(0))=0THEN280
240 PRINTTAB(20);MID$(N$(X+I+1),4,16)",";
250 PRINTT$(ASC(N$(X+I+1))ANDNOT248);
260 IF(ASC(N$(X+I+1))AND64)=64THENPRINT"<";
270 PRINT
280 NEXT:IFR>I+1THENR=I+1
285 IFR<1THENR=1
290 GOSUB120:RETURN
300 GOSUB40:CL=C:RL=R
310 IFK$=CHR$(13)ORK$="[133]"ORK$="-"ORK$=","ORK$=" "ORK$=""THENRETURN
313 IFK$="R"THENRETURN
315 IFK$="[136]"THENRETURN
317 IFK$="[134]"THENRETURN
320 IFK$=""THENR=1:C=0
330 IFK$=""ORK$="[157]"THENC=NOTCAND1
340 IFK$=""ORK$="[145]"THENR=(R+1+2*(K$>""))
350 IFC>N-1THENR=1:C=0
360 IFR>I+1THENR=1
370 IFR<1THENR=I+1
380 IFN$(R+(I+1)*C+D-1)=""THEN330
390 IF(CL<>C)OR(RL<>R)THENGOSUB100:GOSUB120
400 IFK$="P"ANDD>1THEND=D-40:GOSUB140
410 IFK$="N"ANDD=<N-40THEND=D+40:GOSUB140
420 GOTO300
430 POKENR,7:PRINT:PRINT" [158]ARE YOU SURE? (Y/N) "
440 GOSUB40:IFK$="Y"THEN1440
450 IFK$=""THEN440
460 RETURN
470 PRINT"[147][159][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]
480 [153]"PEEK SYSDIRECTORY FILEROPEN PEEK"
490 [153]"PEEK PEEK"
500 [153]"PEEK SYSINSERT DISKETTE IN DRIVEOPEN PEEK"
510 [153]"MID$TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN(null)
520 FORX=1TO6:N$=N$+N$:NEXT
530 N$=MID$(N$,2):N$=N$+N$
540 FORX=828TO861
550 READY:POKEX,Y:NEXT
560 FORX=1TO30:Z$=Z$+CHR$(0):NEXT
570 DIMN$(144),S(18),T$(4):D=1:N=0:F=0:B=1:R=1:C=0
575 DIMB%(144)
580 FORX=0TO17:READY:S(X)=Y:NEXT
590 T$(1)="S":T$(2)="P":T$(3)="U":T$(4)="R"
600 LN$=CHR$(130)+CHR$(18)+CHR$(18)+"----------------"+LEFT$(Z$,11)
610 PRINT"[213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
620 PRINT"[194] [158]PRESS RETURN[146] TO CONTINUE[159] [194]"
630 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]"
640 GOSUB40:IFK$=""THENGOSUB430
650 POKENR,7:PRINT:PRINT" [158]READING DISK NAME "
660 OPEN15,8,15,"I0":OPEN1,8,3,"$"
670 SYS828:INPUT#15,EN$,EM$:IFEN$="00"THEN710
680 POKENR,7:PRINT
690 PRINT" [158]DISK READ ERROR # "EN$" "
700 PRINT:GOTO1480
710 HE$=MID$(N$,143,16)+","+MID$(N$,161,2)
720 POKENR,3:PRINT:PRINT" "HE$" "
730 POKENR,7:PRINT:PRINT" READING ENTRY #"N" "
740 SYS828:FORX=1TO254STEP32:Y=ASC(MID$(N$,X,1))AND127
750 IFY=0THEN770
760 N=N+1:N$(N)=MID$(N$,X,30)
770 POKENR,7:PRINT:POKENC,20:PRINTN
780 NEXT
790 IFST=0THEN730
800 PRINT"[145] TOTAL ENTRIES ="
810 FORX=1TO1500:NEXT
820 CLOSE1
825 IFN=0THENPRINT"[147]":GOTO1410
830 M$="":GOSUB140
840 GOSUB300:F=R+(I+1)*C+D-1
850 IFK$="-"THEN990
860 IFK$=" "ANDN>1THEN1040
870 IFK$=","THEN1120
875 IFK$="R"THEN1600
880 IFK$=""THEN1190
890 IFK$="[133]"THEN1230
895 IFK$="[134]"THEN1700
897 IFK$="[136]"THENGOSUB2000:GOSUB140:GOTO840
900 M$=N$(F):GOSUB80
910 GOSUB300:T=R+(I+1)*C+D-1
920 IFF=T-1ORF=TTHENGOSUB90:GOTO840
930 GOSUB70
940 IFF>TTHENV=-1
950 IFF<TTHENV=1:T=T-1
960 N$(F)=N$(F+V):F=F+V:IFF<>TTHEN960
970 N$(T)=M$
980 GOTO830
990 IFN<144THEN997
995 POKENR,1:PRINT:PRINT"[159]TOO MANY FILES":FORX=1TO2000:NEXT:GOSUB90:GOTO840
997 GOSUB70:B=0
1000 N=N+1:FORX=NTOF+1STEP-1
1010 N$(X)=N$(X-1):NEXT
1020 N$(F)=LN$
1030 GOTO830
1040 GOSUB30:IFK$<>"Y"THENGOSUB90:GOTO840
1050 GOSUB70:B=0
1060 N=N-1:FORX=FTON
1070 N$(X)=N$(X+1):NEXT
1080 N$(N+1)=""
1090 IFN<C+1THENC=0
1100 IFF=N+1THENR=R+(R>1)
1105 IFD>NTHEND=D-40
1110 GOTO830
1120 A=ASC(N$(F))
1130 IFA=130THENA=194:GOTO1150
1140 IFA=194THENA=130
1150 N$(F)=CHR$(A)+RIGHT$(N$(F),29)
1160 POKENR,RL+2:PRINT:PRINTTAB(CL*20+18);
1170 PRINT"[158]"CHR$(-60*(A=194));CHR$(-32*(A=130))
1180 GOTO840
1190 GOSUB100
1200 GOSUB30:IFK$="Y"THEN1410
1210 IFK$=""THEN1200
1220 GOSUB90:GOTO840
1230 GOSUB100:GOSUB30:IFK$<>"Y"THENGOSUB90:GOTO840
1240 POKENR,1:PRINT:PRINT"[159]WRITING DIRECTORY "
1250 IFN/8=INT(N/8)THEN1270
1260 N=N+1:N$(N)=Z$:GOTO1250
1270 S=0:T=18:S(N/8+.5)=255:N=1:OPEN2,8,2,"#"
1280 IFS(S+1)=255THENT=0
1290 PRINT#15,"B-P";2;0
1300 PRINT#2,CHR$(T);CHR$(S(S+1));:P=2
1310 FORX=NTON+7:PRINT#15,"B-P";2;P
1320 PRINT#2,N$(X);:P=P+32:NEXT:N=X
1330 PRINT#15,"U2";2;0;18;S(S):INPUT#15,EN$,EM$:IFEN$="00"THEN1370
1340 POKENR,1:PRINT
1350 PRINT"[159] DISK WRITE ERROR # "EN$
1360 FORT=1TO2000:NEXT:GOTO1440
1370 S=S+1:IFS(S)<>255GOTO1280
1380 IFBTHEN1410
1390 PRINT#2,CHR$(0);CHR$(255);Z$:PRINT#15,"U2";2;0;18;18
1400 POKENR,1:PRINT:PRINT"[159]VALIDATING BAM ":PRINT#15,"V0"
1410 CLOSE2:PRINT#15,"I0":CLOSE15
1420 POKENR,1:PRINT:PRINT"[159]ANOTHER DISK? (Y/N)"
1430 GOSUB40:IFK$="Y"THENRUN
1440 PRINT"[147]":POKENR,7:PRINT
1450 PRINT"[159][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
1460 PRINT"[194] [158]PROGRAM TERMINATED [159][194]"
1470 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]"
1480 CLOSE1:CLOSE2:CLOSE15
1490 SYS65418
1495 END
1500 DATA160,2,177,45,153,137,0,200,192,6,208,246,162
1510 DATA1,32,198,255,32,228,255,164,142,145,140,200
1520 DATA132,142,196,139,208,242,76,204,255
1530 DATA1,4,7,10,13,16,2,5,8,11,14,17,3,6,9,12,15,18
1600 NN$="":POKENR,1:PRINT:INPUT"[159]NEW NAME ";NN$:GOSUB90:IFNN$=""THEN830
1610 NN$=LEFT$(NN$,16):GOSUB70
1620 IFLEN(NN$)<16THENNN$=NN$+CHR$(160):GOTO1620
1630 DU=0:FORX=1TON:IFNN$=MID$(N$(X),4,16)THENDU=1:X=N
1640 NEXT:IFDU=0THEN1670
1650 POKENR,1:PRINT:PRINT"[159]DUPLICATE NAME "NN$:FORX=1TO2000:NEXT:GOTO830
1670 M$=N$(F):N$(F)=LEFT$(M$,3)+NN$+RIGHT$(M$,LEN(M$)-19):GOTO830
1700 POKENR,1:PRINT:PRINT"[159]TURN PRINTER ON - PRESS RETURN"
1710 GOSUB40:IFK$=""THENGOSUB90:GOTO840
1715 IFK$<>CHR$(13)THEN1710
1720 GOSUB90:OPEN4,4:IFST<>0THEN1700
1730 POKENR,1:PRINT:PRINT"[159]LINE UP PAPER AND PRESS RETURN"
1740 GOSUB40:IFK$=""THEN1790
1745 IFK$<>CHR$(13)THEN1740
1750 GOSUB90:GOSUB70:B%(0)=664:FORX=1TON
1752 B%(X)=ASC(MID$(N$(X),30,1))*256+ASC(MID$(N$(X),29,1)):B%(0)=B%(0)-B%(X)
1754 NEXT:PRINT#4,CHR$(15);CHR$(145);HE$;" ";N;"FILES";B%(0);"FREE":PRINT#4
1760 FORX=1TO30:X$="":FORY=1TO4
1765 W=(Y-1)*30+X:IFW>NTHEN1780
1767 W$=STR$(B%(W)):W$=RIGHT$(W$,LEN(W$)-1)
1769 IFLEN(W$)<4THENW$=W$+" ":GOTO1769
1770 X$=X$+W$+MID$(N$(W),4,16)
1780 NEXTY:PRINT#4,X$:NEXTX:PRINT#4
1790 CLOSE4:GOSUB90:GOTO840
2000 PRINT"[147][159]";
2010 PRINT" [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
2020 PRINT" [194] [158]DIRECTORY FILER COMMANDS[159] [194]":GOSUB4010
2040 PRINT" [194] [158]N NEXT SCREEN OF FILES[159] [194]"
2050 PRINT" [194] [158]P PREVIOUS SCREEN OF FILES[159] [194]":GOSUB4010
2060 PRINT" [194] [158]- INSERT DIVIDER ABOVE FILE[159] [194]"
2070 PRINT" [194] [158]R RENAME THIS FILE[159] [194]"
2075 PRINT" [194] [158], LOCK/UNLOCK THIS FILE[159] [194]":GOSUB4010
2080 PRINT" [194] [158]<CRSR> MOVE CURSOR[159] [194]"
2090 PRINT" [194] [158]<HOME> MOVE CURSOR TO TOP[159] [194]"
3000 PRINT" [194] [158]<STOP> ABORT CURRENT DIRECTORY[159] [194]":GOSUB4010
3020 PRINT" [194] [158]<RETN> MOVE FILE/BEFORE THIS FILE[159] [194]":GOSUB4010
3030 PRINT" [194] [158]<SPACE> DELETE THIS FILE[159] [194]":GOSUB4010
3035 PRINT" [194] [158]<F1> REWRITE THE DIRECTORY[159] [194]"
3040 PRINT" [194] [158]<F3> PRINT FORMATTED DIRECTORY[159] [194]"
3043 PRINT" [194] [158]<F7> DISPLAY THIS HELP SCREEN [146][159] [194]":GOSUB4010
3045 PRINT" [194] [158]PRESS RETURN[146] TO CONTINUE[159] [194]"
3050 PRINT" [202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]"
3090 GOSUB40:IFK$<>CHR$(13)THEN3090
4000 RETURN
4010 PRINT" [194] [194]":RETURN