Listing of file='@DOSDIRP' on disk='vmedia/734-8446-A.wvd.zip'
# Sector 2757, program filename = '@DOSDIRP' 0010 REM %^ @DOSDIRP UTILITY BY KIRIT BAXI EAME R&D 0020 REM % Ver 1.0 20 JUN 1991 0030 REM *********************************************** 0040 REM * * 0050 REM * DIR /P Program * 0060 REM * * 0070 REM *********************************************** 0100 DIM A$(16)32,B$4,C$16,D$3,E$2,F$2,G$2,H$8,I0$3,L$2,M$4,N$1,O$1,P$1,Q$1 : PRINT HEX(06); 0110 REM % FIND THE FLOPPY ADDRESS 0120 REM address setup by dos already : D$=SELECT #N 0130 REM % FIND DISK TYPE AND SET OFFSET SECTOR 0140 DATA LOAD BMT#N,(1440,L)A$() : ERRORE=ERR : IF E=98THEN Y=10 : V=13 : GOTO 160 0150 DATA LOAD BMT#N,(4800,L)A$() : ERRORE=ERR : IF E=98THEN Y=30 : V=27 : GOTO 160 0160 A1,B,C,D,D2=0 : IF Y=0THEN DO : Y=10 : V=13 : END DO 0170 REM % CHECK IF VOLUME HAS A LABEL 0180 DATA LOAD BMT#N,(Y-1,L)A$() : ERRORE=ERR : IF E=98THEN DO : PRINT HEX(070E);"Please insert a diskette in drive" : END DO : IF E=98THEN 680 0190 IF STR(A$(9),12,1)=HEX(28)THEN C$="is "&STR(A$(9),1,11) : ELSE C$="has no label" 0200 REM % DISPLAY VOLUME DATA 0210 PRINT HEX(06) 0220 PRINTUSING 450;D$;C$ 0230 PRINTUSING 460;D$ 0240 PRINT HEX(0A) 0250 REM % GET THE DIRECTORY INFORMATION AND CALCUTATE AND DISPLAY THE DATA 0260 FOR Z=YTO Y+VSTEP 2 0270 DATA LOAD BMT#N,(Z,L)A$() 0280 FOR X=1TO 16 : IF STR(A$(X),1,1)=HEX(00)OR STR(A$(X),1,1)=HEX(E5)OR STR(A$(X),12,1)=HEX( 28)OR STR(A$(X),12,1)=HEX(03)OR STR(A$(X),12,1)>HEX(7F)THEN GOTO 390 : IF STR(A$(X),12,1)=HEX(26)OR STR(A$(X),12,1)=HEX(02)OR STR(A$(X),12,1)=HE X(01)THEN 290 : ELSE GOTO 300 0290 REM % CALCULATE BYTES USED HIDDEN FILES B$=HEX(00 00) STR(B$,3,1)=STR(A$ (X),30,1) STR(B$,4,1)=STR(A$(X),29,1) STR(B$,1,1)=STR(A$(X),32,1) STR(B$, 2,1)=STR(A$(X),31,1) A1=VAL(B$,4) C=C+A1 : GOTO 390 0300 IF STR(A$(X),12,1)=HEX(10)THEN DO : GOSUB 610 : GOSUB 500 : B$=HEX(0000) : STR(B$,3,1)=STR(A$(X),30,1) : STR(B$,4,1)=STR(A$(X),29,1) : STR(B$,1,1)=STR(A$(X),32,1) : STR(B$,2,1)=STR(A$(X),31,1) : A1=VAL(B$,4) : GOTO 380 : END DO 0310 REM % CALCULATE BYTES USED : B$=HEX(0000) : STR(B$,3,1)=STR(A$(X),30,1) : STR(B$,4,1)=STR(A$(X),29,1) : STR(B$,1,1)=STR(A$(X),32,1) : STR(B$,2,1)=STR(A$(X),31,1) : A1=VAL(B$,4) 0320 REM % GOSUB'5000 TO CALCULATE DATE : GOSUB 610 0330 REM % GOSUB 4000 TO CALCULATE TIME : GOSUB 500 0340 REM % DISPLAY THE INFORMATION 0350 REM IF I5$="2"THEN DOIFH>12THENH=H+(24-H)ENDDO : $TRAN(STR(A$(X),1,11),T$()) : PRINTUSING 470;STR(A$(X),1,8);STR(A$(X),9,3);A1;H$;H;I0$ : B=B+1 : C=C+A1 : D2=D2+1 0360 REM % CHECK LINE COUNT : IF D2=23THEN DO : PRINT "Strike a key when Ready . . ."; : KEYIN A$ : IF D2>=23THEN D2=0 : PRINT HEX(0A) : IF POS(HEX(7E7FF0)=A$)<>0THEN 680 : END DO 0370 GOTO 390 0380 REM IFI5$="2"THENDOIFH>12THENH=H+(24-H)ENDDO : $TRAN(STR(A$(),1,11),T$()) : PRINTUSING 480;STR(A$(X),1,8);H$;H;I0$ : B=B+1 0390 NEXT X 0400 NEXT Z 0410 IF Y=10THEN W=368640 : IF Y=30THEN W=1213952 : D=(W-(14*512)-C) 0420 PRINTUSING 440;B;C 0430 REM % DISPLAY LINE IMAGES 0440 % ### File(s) ######### bytes used in Root Directory 0450 % Volume in drive '###' ################ 0460 % Directory of '###':\ 0470 % ######## ### ####### ######## ##:### ######## 0480 % ######## <DIR> ######## ##:### ######## 0490 GOTO 680 0500 REM % CALCULATE TIME ROUTINE 0510 STR(L$,1,1)=STR(A$(X),24,1) : STR(L$,2,1)=STR(A$(X),23,1) 0520 REM CALC HRS : N$=STR(L$,1,1) : ROTATE(N$,5) : O$=HEX(1F)BOOL8N$ : H=0 : H=VAL(O$) 0530 REM CALC MINS : O$=ALL(20) : HEXUNPACKL$TO M$ : HEXPACKP$FROMSTR(M$,2,2) : IF P$>=HEX(80)THEN 560 : O$=P$AND HEX(01) : IF O$>HEX(00)THEN O$=P$SUBHEX(01) : IF O$=HEX(00)THEN 540 : ROTATE(O$,-1) : IF O$>HEX(80)THEN O$=O$XOR HEX(80) : M=VAL(O$) : GOTO 570 0540 O$=P$ : ROTATE(O$,-1) : M=VAL(O$) : GOTO 570 0550 M=0 : GOTO 570 0560 Q$=HEX(80)BOOL6P$ : ROTATE(Q$,-1) : Q$=Q$AND HEX(7F) : M=0 : M=VAL(Q$) 0570 IF M=128THEN M=0 0580 CONVERT MTO STR(I0$,1,2),(##) : IF H>=12THEN STR(I0$,3,1)="p" : IF H<12THEN STR(I0$,3,1)="a" 0590 IF I5$="2"THEN 600 : IF H>12THEN H=H-12 : IF H=0THEN H=12 0600 RETURN 0610 REM % CALCULATE DATE 0620 STR(L$,1,1)=STR(A$(X),26,1) : STR(L$,2,1)=STR(A$(X),25,1) 0630 REM CALC YRS : O$=STR(L$,1,1) : P$=O$AND HEX(FE) : ROTATE(P$,-1) : Y1=VAL(P$) 0640 REM CALC MONTHS : O$=ALL(20) : HEXUNPACKL$TO M$ : HEXPACKO$FROMSTR(M$,2,2) : P$=O$XOR HEX(E1) : ROTATE(P$,-1) : P$=P$AND HEX(0F) : M=VAL(P$) 0650 REM CALC DAYS : O$=ALL(20) : HEXUNPACKL$TO M$ : HEXPACKO$FROMSTR(M$,3,2) : P$=O$AND HEX(1F) : D1=VAL(P$) 0660 CONVERT MTO STR(H$,1,2),(##) : STR(H$,3,1)="-" : CONVERT D1TO STR(H$,4,2),(##) : STR(H$,6,1)="-" : Y1=Y1+80 : IF Y1>99THEN Y1=Y1-100 : CONVERT Y1TO STR(H$,7,2),(##) 0670 RETURN 0680 REM % RETURN TO COMMAND PROC : PRINT : I4$="R" : LOAD T"@DOS"