[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Y2K ProDOS 8 (2.0.3)



Charlie wrote:
"Bill Garber" <willy46pa@comcast.net> wrote in message
K-qdnUTUh5DObZOiXTWJgQ@comcast.com">news:K-qdnUTUh5DObZOiXTWJgQ@comcast.com...

"Charlie" <charlied@NOSPAMbboard.com> wrote in message
bel7pd01nou@enews2.newsguy.com">news:bel7pd01nou@enews2.newsguy.com...

"Michael J. Mahon" <mjmahon@aol.com> wrote in message
257d7207.0307101716.1ea07009@posting.google.com">news:257d7207.0307101716.1ea07009@posting.google.com...

"Michael Pender" <mpender@hotmail.com> wrote in message

news:<x49Pa.71588$n%5.56799@nwrddc02.gnilink.net>...

Michael J. Mahon <mjmahon@aol.com> wrote in message
20030710024051.00221.00000126@mb-m03.aol.com">news:20030710024051.00221.00000126@mb-m03.aol.com...

But Apple chose to go a different route, with year values from
40-99 meaning 1940-1999 and years from 00-39 meaning
2000-2039.  Relatively little software actually implements
this fold point, but having the definition out there certainly
biases the argument!


...snip...

I believe all the file creation and mod fields (date and time) take up

four

bytes which contain 5 unused bits (although they are in the field used for
time).  Using those 5 bits in conjunction with the 7 bits already

allocated

would have allowed 4096 years.  Why this wasn't done originally is a

mystery to

me.

I would assume that it is because Apple didn't think anyone would still
be using/caring about the Apple II computers for this long. ;-)


I suppose you are right, Bill, At least about Apple the company but it is hard
to understand why the people who actually did the programming would waste five
bits on every file that was ever created in ProDOS while at the same time
skimping on the number of bits used for the year field.

Charlie





Actually the layout makes sense. I'll refer to the Beneath Apple ProDOS as a reference.

Directory Headers:
$1C:Creation Date = YYYYYYYM MMMDDDDD
$1E:Creation Time = 000HHHHH 00MMMMMM

Try to manipulate the fields in 6502 and you'll see why.  It's easier to
do this:
	LDY  #DATE
	LDA  (HDR),Y
	AND  #YEARMASK
	LSR  #YEARSHIFT
	; A = year

than to manipulate a 32-bit word when extracting or setting date time.

Using a "window" format is used in a lot of places, MS Access and Oracle to name a few.

Jim
--
Remove SPAM BAIT from address to reply