1 'DSKLOG.NEC - Original author unknown 2 'Disk catalogging system for Tandy 3 'PDD1 with TS-DOS. 4 ' 10 CLS:GOTO900:'Modified for POWR-DOS by Ronnie Riche;for the NEC by Philip Frank 20 A=INKEY$:IFA=""THEN20ELSERETURN 30 Z=1-Z:LOCATE30,2:PRINTCHR$(128);:RETURN 40 IFLEN(A)<10THENA=A+SPACE$(10-LEN(A)):RETURNELSEA=LEFT$(A,10):RETURN 50 M=0:FORL=1TOU(K):M=M+(Q(K,L)+1279)/1280:NEXTL:K=79-M:RETURN 60 OPENGFORINPUTAS1:OPENGFOROUTPUTAS2:RETURN 70 CLS:RESTORE:FORI=1TO8:READA:LOCATE((I*20+25)MOD40),(INT((I*20+25)/40)):PRINT"("LEFT$(A,1)")"RIGHT$(A,LEN(A)-1);:NEXTI 80 DATA Log disk,Options,Directory,Free,Write,View,Read,Exit 90 GOSUB20:IFA=""THEN90 100 I=(INSTR("LlDdFfOoEeWwVvSsRr",A)+1)/2:IFITHENONIGOTO400,740,200,750,780,790,380,950,910ELSEBEEP:GOTO90 110 GOSUB20:GOTO70 120 CLS:LOCATE10,2:PRINT"Reading";:GOSUB60:GOSUB240:K=0:L=1:M=6:R=0:GOSUB250:GOSUB160:IFKTHEN150 130 L=2:M=5:FORI=1TO39:IFKTHEN150 140 GOSUB250:GOSUB160:NEXTI 150 CLOSE:RETURN 160 A=INPUT$(11,1):IFLEFT$(A,2)<>FS$THENE="Disk error":GOTO890 170 IFASC(MID$(A,3,1))=0THENK=1:RETURN 180 R=R+1:B(R)=RIGHT$(A,9):V(R)=-1:A=INPUT$(20,1):V(R)=ASC(MID$(A,17))*256+ASC(MID$(A,18)) 190 GOSUB30:RETURN 200 CLS:LOCATE5,1:PRINT"Disks"STRING$(15,".")T"/"O:N=0:FORI=1TOT:N=N+U(I):NEXTI:LOCATE5,2:PRINT"Files"STRING$(15,".")N"/"O*40 210 LOCATE5,3:PRINT"Free"STRING$(16,".")FRE("")"/ 8000";:GOTO110 220 IFERR<>54THEN870 230 CLOSE:BEEP:GOSUB60:RESUME190 240 PRINT#2,CHR$(7)CHR$(0)"ZZ"CHR$(7)CHR$(0)CHR$(24)CHR$(13);:RETURN 250 FORJ=1TO9:NEXTJ:PRINT#2,CHR$(5)"ZZ"CHR$(0)CHR$(26)CHR$(1);:PRINT#2,";DIS SP/CONT"CHR$(13)CHR$(10)"ERRL1"CHR$(9); 260 PRINT#2,"CALF"CHR$(L)CHR$(M);:RETURN 270 CLS:LOCATE10,2:PRINT"Reading "F;:ONERRORGOTO360:OPENFFORINPUTAS1:T=0:N=0 280 IFEOF(1)THEN340 290 LINEINPUT#1,A:IFLEFT$(A,1)="<"THEN310 300 N=N+1:C(T,N)=LEFT$(A,9)+RIGHT$(A,LEN(A)-16):Q(T,N)=VAL(MID$(A,11,5)):GOTO280 310 IFT>0THENU(T)=N 320 IFT=OTHENE="Max disks":CLOSE:GOTO890 330 GOSUB30:T=T+1:D(T)=MID$(A,2,10):H(T)=MID$(A,12,8):N=0:GOTO280 340 U(T)=N:CLOSE1 350 RETURN 360 IFERR<>52THEN870 370 T=0:RESUME350 380 IFT=0THEN880 390 CLS:FORI=1TOT:PRINTUSING"##) ";I;:PRINTD(I)" "H(I)" Files"U(I):NEXTI:GOTO110 400 CLS:A="":INPUT"Disk name ";A:IFA=""THEN70 410 GOSUB40:W=0:IFT=0THEN440 420 FORI=1TOT:IFA=D(I)THEN450 430 NEXTI 440 W=1:T=T+1:I=T:D(I)=A 450 S=I:H(S)=DATE$:IFT<=OTHEN480 460 IFWTHENT=T-1 470 E="Max disks":GOTO890 480 GOSUB120:IFR=0THEN880 490 FORI=1TOR:Q(S,I)=V(I):NEXTI:CLS:IFWTHEN640 500 LOCATE10,2:PRINT"Updating old disk";:J=1:K=1:N=U(S):M=N:FORI=1TON:A=LEFT$(C(S,J),9) 510 IFK>RTHEN540 520 IFA=B(K)THEN560 530 IFA>B(K)THENK=K+1:GOTO510 540 IFJ=MTHENM=M-1:GOTO580 550 M=M-1:FORL=JTOM:Q(S,L)=Q(S,L+1):C(S,L)=C(S,L+1):NEXTL:GOTO570 560 K=K+1:J=J+1 570 NEXTI 580 J=1:FORI=1TOR:IFJ>MTHEN610 590 A=LEFT$(C(S,J),9):IFA=B(I)THEN620 600 M=M+1:FORK=MTOJ+1STEP-1:Q(S,K)=Q(S,K-1):C(S,K)=C(S,K-1):NEXTK 610 C(S,J)=B(I):Q(S,J)=V(I):V(I)=1:GOTO630 620 V(I)=0 630 J=J+1:NEXTI:U(S)=R 640 FORI=1TOR:IFW=0 ANDV(I)=0THEN720 650 CLS:PRINT"Enter description for "B(I):FORJ=1TOT-W:IFJ=STHEN680 660 FORK=1TOU(J):IFB(I)=LEFT$(C(J,K),9)THEN690 670 NEXTK 680 NEXTJ:A="*":GOTO700 690 A=RIGHT$(C(J,K),LEN(C(J,K))-9):PRINT" = "A:IFXTHEN710 700 LOCATE10,2:PRINTSTRING$(30,"_");:LOCATE8,2:PRINT;:INPUTA:IFLEN(A)>30THENA=LEFT$(A,30) 710 C(S,I)=B(I)+A 720 NEXTI:U(S)=R:IFYTHENGOSUB800 730 GOTO70 740 GOSUB120:CLS:FORI=1TOR:PRINT" "B(I);:NEXTI:GOTO110 750 CLS:LOCATE5,1:PRINT"0) Menu";:LOCATE5,3:PRINT"1) Auto write"SPACE$(13)HH(Y);:LOCATE5,4:PRINT"2) Auto old name"SPACE$(10)HH(X); 760 GOSUB20:IFA="0"THEN70ELSEIFA="1"THENY=1-YELSEIFA="2"THENX=1-XELSEBEEP:GOTO760 770 GOTO750 780 GOSUB800:MAXFILES=1:ONERRORGOTO960:EXEC17124:CLS:MENU 790 GOSUB800:GOTO70 800 IFT=0THENRETURN 810 GOSUB970:GOSUB980:CLS:LOCATE10,2:PRINT"Writing "F;:OPENFFOROUTPUTAS1:FORI=1TOT:V(I)=I:NEXTI:IFT=1THEN850 820 FORI=1TOT-1:K=I+1:FORJ=KTOT:IFD(V(I))CHR$(13)THEN980ELSEEXEC17091:LOCATE1,7:PRINTCHR$(27)+"p";" DSKLOG.BA FOR TANDY PDD WITH TS-DOS ";CHR$(27)+"q";:RETURN