'===========================================================================
' Subject: GET DIRECTORY INFORMATION          Date: 10-25-99 (18:05)       
'  Author: Randall L. Glass                   Code: PB                     
'  Origin: rlglass@yahoo.com                Packet: PB.ABC
'===========================================================================
'-------------------------------------------------------------------------
'
'                         GetDirInfo
'                      BY Randall L Glass
'                      CopyRight Aug3,1999
'
'---------------------------------------------------------------------------
'
' Email rlglass@yahoo.com
' Snail Mail RR1,BOX 248,McLeansboro,IL 62859
'---------------------------------------------------------------------------
'
' This Program is Public Domain(PowerBasic Code)
'
'  You Must Call this routine after each DIR$ to get directory infomation
'
'----------------------------------------------------------------------------


SUB GetDirInfo(DirDate$,DirTime$,DirSize???,DirAttrib?) PUBLIC
  LOCAL DirDate??,DirTime??,DirAttr?,Dsize???
  ! mov  AX, &H2F00              ; function 2Fh, get DTA location
  ! int  &H21                    ; call DOS
  ! MOV  AX,ES:[BX + 24]
  ! MOV  DirDate??,AX
  ! MOV  AX,ES:[BX + 22]
  ! MOV  DirTime??,AX
  ! MOV  AX,ES:[BX +26]
  ! MOV  DSize???[0],AX
  ! MOV  AX,ES:[BX +28]
  ! MOV  DSize???[2],AX
  ! MOV  AL,ES:[BX +21]
  ! MOV  DirAttr?,AL
  DirSize??? = DSize???
  DirAttrib? = DirAttr?
    GetDateAndTime DirDate??,DirTime??,DirDate$,DirTime$
END SUB

SUB GetDateAndTime(Filedate??,FileTime??,Filedate$,FileTime$) PUBLIC
       Year?? = (Filedate?? AND &B1111111000000000):SHIFT RIGHT Year??,9
       INCR Year??,1980
       Month?? = Filedate?? AND &B0000000111100000:SHIFT RIGHT Month??,5
       Day?? = Filedate?? AND &B0000000000011111
       Hours?? = FileTime?? AND &B1111100000000000:SHIFT RIGHT Hours??,11
       Minutes?? = FileTime?? AND &B0000011111100000:SHIFT RIGHT Minutes??,5
       Seconds?? = (FileTime?? AND &B0000000000011111) * 2

       Month$ = LTRIM$(STR$(Month??))
       Day$ = LTRIM$(STR$(Day??))
       IF LEN(Month$) = 1 THEN Month$="0"+Month$
       IF LEN(Day$) = 1 THEN Day$ = "0"+Day$
       'IF Hours?? > 12 THEN
       '	Hours?? = Hours?? -12:AmPm$ = "p & "
       'ELSE
       '	AmPm$ = "a & "
       'END IF
       Hours$ = LTRIM$(STR$(Hours??))
       Minutes$ = LTRIM$(STR$(Minutes??))
       Seconds$ = LTRIM$(STR$(Seconds??))
       IF LEN(Hours$) = 1 THEN Hours$="0"+Hours$
       IF LEN(Minutes$) = 1 THEN Minutes$="0"+Minutes$
       IF LEN(Seconds$) = 1 THEN Seconds$="0"+Seconds$

       Filedate$ = Month$ + "-" + Day$ + "-" + LTRIM$(STR$(Year??))
       FileTime$ = Hours$ + ":" + Minutes$ + ":" + Seconds$
       'FileTime$ = Hours$ + ":" + Minutes$ + AmPm$ + Seconds$ +"s"
END SUB
