Listing of file='@DOSDIRP' on disk='vmedia/734-8446.wvd.zip'
# Sector 2675, 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"