BBS: Inland Empire Archive Date: 02-26-93 (00:11) Number: 179 From: ROB MCKEE Refer#: NONE To: OWEN GIBBINS Recvd: NO Subj: DIRECTORIES 2/3 Conf: (2) Quik_Bas
Hello Owen!
You wrote to All:
'>>> Continued from Previous
SUB findfirstfile (Path$, dta$, Result%)
DIM reg AS RegTypeX
thePATH$ = Path$ + CHR$(0)
reg.ax = &H2F00
CALL INTERRUPTX(&H21, reg, reg)
segm% = reg.es
ofst% = reg.bx
dta$ = SPACE$(43)
reg.ax = SetDTAInt21h '&H1A00
reg.ds = VARSEG(dta$)
reg.dx = SADD(dta$)
CALL INTERRUPTX(&H21, reg, reg)
reg.ax = &H4E00
reg.cx = 255
reg.ds = VARSEG(thePATH$)
reg.dx = SADD(thePATH$)
CALL INTERRUPTX(&H21, reg, reg)
Result% = reg.flag AND 1
reg.ax = SetDTAInt21h '&H1A00
reg.ds = segm%
reg.dx = ofst%
CALL INTERRUPTX(&H21, reg, reg)
END SUB
SUB FindNextFile (dta$, Result%) STATIC
DIM reg AS RegTypeX
SHARED thePATH$
IF LEN(dta$) <> 43 THEN Result% = 2: EXIT SUB
reg.ax = &H2F00
CALL INTERRUPTX(&H21, reg, reg):
segm% = reg.es:
ofst% = reg.bx
reg.ax = SetDTAInt21h '&H1A00
reg.ds = VARSEG(dta$): reg.dx = SADD(dta$):
CALL INTERRUPTX(&H21, reg, reg)
reg.ax = &H4F00:
reg.cx = 251:
reg.ds = VARSEG(thePATH$):
reg.dx = SADD(thePATH$)
CALL INTERRUPTX(&H21, reg, reg)
Result% = reg.flag AND 1
reg.ax = SetDTAInt21h '&H1A00
reg.ds = segm%: reg.dx = ofst%
CALL INTERRUPTX(&H21, reg, reg)
END SUB
SUB GetDiskSize (DkSz AS DiskSizeType, UsPath$)
DIM reg AS RegTypeX
reg.ax = &H3600
i% = INSTR(UsPath$, ":")
IF i% > 0 THEN
D$ = MID$(UsPath$, i% - 1, 1)
IF D$ < "A" OR D$ > "Z" THEN
DkSz.Drive = false
ELSE
DkSz.Drive = ASC(D$) - 64
END IF
ELSE
DkSz.Drive = false
END IF
reg.dx = DkSz.Drive
CALL INTERRUPTX(&H21, reg, reg)
IF reg.ax < 0 THEN DkSz.SecCl = reg.ax + 65536 ELSE DkSz.SecCl = reg.ax
IF reg.bx < 0 THEN DkSz.AvaCl = reg.bx + 65536 ELSE DkSz.AvaCl = reg.bx
IF reg.cx < 0 THEN DkSz.SecSz = reg.cx + 65536 ELSE DkSz.SecSz = reg.cx
IF reg.dx < 0 THEN DkSz.TotCl = reg.dx + 65536 ELSE DkSz.TotCl = reg.dx
DkSz.CluSz = DkSz.SecCl * DkSz.SecSz
DkSz.free = DkSz.AvaCl * DkSz.CluSz
DkSz.Total = DkSz.TotCl * DkSz.CluSz
DkSz.Used = DkSz.Total - DkSz.free
END SUB
SUB GetFileData (dta$, File AS FileType) STATIC
File.attribute = ASC(MID$(dta$, 22, 1))
File.Size = CVL(MID$(dta$, 27, 4))
tim& = CVL(MID$(dta$, 23, 2) + STRING$(2, 0))
File.second = tim& AND &H1F
File.minute = (tim& \ 32) AND &H3F
File.hour = (tim& \ 2048) AND &H1F
File.FTime = RIGHT$(STR$(File.hour), 2) + ":" + RIGHT$("00" +_
LTRIM$(STR$(File.minute)), 2) + ":" +_
RIGHT$("00" + LTRIM$(STR$(File.second)),2)
tim& = CVL(MID$(dta$, 25, 2) + STRING$(2, 0))
File.day = tim& AND &H1F
File.month = (tim& \ 32) AND &HF
File.year = ((tim& \ 512) AND &H1F) + 1980
File.FDate = RIGHT$(STR$(File.month), 2) + "-" + RIGHT$("00" + _
LTRIM$(STR$(File.day)), 2) + "-" + RIGHT$("0000" +_
LTRIM$(STR$(File.year - 1900)), 2)
f$ = MID$(dta$, 31) + CHR$(0)
File.Fname = LEFT$(f$, INSTR(f$, CHR$(0)) - 1)
END SUB
'<<< Continued in Next Message
SysOp 1:125/411 PVT - Rob
--- timEd/B6
* Origin: Flyer_Proof_Computer_Svs,Richmond_CA,MO,V32B (1:125/411)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET