BBS: Inland Empire Archive Date: 03-31-93 (06:46) Number: 349 From: DICK DENNISON Refer#: NONE To: MICHAEL BAILEY Recvd: NO Subj: Re: File Date/Time Conf: (2) Quik_Bas
'>>> Start of page 2 of dt.bas
'bits 00h-04h = day (1-31)
'bits 05h-08h = month (1-12)
'bits 09h-0Fh = year (relative to 1980)
day% = parm% AND 31 'get bits 0-4
dayz$ = LTRIM$(STR$(day%))
IF LEN(dayz$) = 1 THEN dayz$ = "0" + (dayz$) 'Parse and add leading 0
' if needed
parm% = parm% \ 32 'shift left 5
Month% = parm% AND 15 'get bits 5-8
parm% = parm% \ 16 'shift left 4
year% = (parm% AND 255) + 80 'get bits 9-15 and add to 1980
moddate$ = dayz$ + mon$(Month%) + LTRIM$(STR$(year%)) 'Format is
' 20-Oct-90
fixdate$ = " " + moddate$ + " "
END FUNCTION
FUNCTION fixtime$ (parm%)
'Date and time are in packed format - these are the breakouts
'bits 00h-04h = 2 second incs (0-29)
'bits 05h-0Ah = minutes (0-59)
'bits 0Bh-0Fh = hours (0-23)
temp& = parm%
IF parm% < 0 THEN temp& = temp& + 65536 'Check for sign (+ -)
secs% = (temp& AND 31) * 2 'get bits 0-4 and multiply by 2
temp& = temp& \ 32 'shift right 5
mins% = temp& AND 63 'get bits 5-10
temp& = temp& \ 64 'shift right 6
hours% = temp& AND 31 'get bits 11-15
sec$ = LTRIM$(STR$(secs%))
IF LEN(sec$) = 1 THEN sec$ = "0" + sec$ 'Parse and add leading 0's
min$ = LTRIM$(STR$(mins%))
IF LEN(min$) = 1 THEN min$ = "0" + min$ 'if needed
hour$ = LTRIM$(STR$(hours%))
IF LEN(hour$) = 1 THEN hour$ = "0" + hour$
modtime$ = hour$ + ":" + min$ + ":" + sec$ 'Format is 01:30:46
fixtime$ = modtime$
END FUNCTION
FUNCTION getdate&
gdatetop:
PRINT "New Month (01-12): ";
mo% = GetNum%(2, 1, 12)
IF mo% = 0 THEN
getdate& = fi.datef + 0&
PRINT "Use Old Date"
EXIT FUNCTION
END IF
PRINT "New Date (01-31): ";
da% = GetNum%(2, 1, 31)
PRINT "New Year : 19";
yr% = GetNum%(2, 0, 99) - 80
PRINT " New File Date : "; LTRIM$(STR$(mo%)); "/"; _
LTRIM$(STR$(da%)); "/"; LTRIM$(STR$(yr% + 80))
'datef% 'bits 0-4h=day(1-31),5-8h=month(1-12),9-Fh=year-1980
' + , * 32 ,*512
datef& = yr% * 512& + mo% * 32& + da%
getdate& = datef&
END FUNCTION
FUNCTION getdir$
CLS
SHARED dta AS STRING * 44
'SHARED namef$
DIM regs AS RegTypeX
DIM array(125) AS STRING
regs.ax = &H1A00 'DOS service to set DTA
regs.ds = VARSEG(dta)
regs.dx = VARPTR(dta)
CALL INTERRUPTX(&H21, regs, regs)
temp$ = "*.*" + CHR$(0)
IF LEN(COMMAND$) THEN temp$ = COMMAND$ + CHR$(0)
findnext% = 0
FOR p% = 0 TO 124
'BEEP
IF findnext% THEN
regs.ax = &H4F00
ELSE
regs.ax = &H4E00 'find first
END IF
regs.cx = 0 'normal attributes
regs.ds = VARSEG(temp$)
regs.dx = SADD(temp$)
CALL INTERRUPTX(&H21, regs, regs)
'PRINT regs.ax
'>>> Continued on page 3.
--- VP [DOS] V4.09e
* Origin: The MailMan (914)374-3903 NY Quick Share Pt #7 *HST (1:272/34)

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