home *** CD-ROM | disk | FTP | other *** search
- /*
- * convdate(), convtime()
- */
-
- /*
- * convert MSDOS directory datestamp to ASCII
- */
-
- char *
- convdate(date_high, date_low)
- unsigned date_high;
- unsigned date_low;
- {
- /*
- * hi byte | low byte
- * |0|1|2|3|4|5|6|7|0|1|2|3|4|5|6|7|
- * | | | | | | | | | | | | | | | | |
- * \ 7 bits /\4 bits/\ 5 bits /
- * year +80 month day
- */
- static char buffer[9];
- unsigned char year, month_hi, month_low, day;
-
- year = (date_high >> 1) + 80;
- month_hi = (date_high & 0x1) << 3;
- month_low = date_low >> 5;
- day = date_low & 0x1f;
- sprintf(buffer, "%2d-%02d-%02d", month_hi+month_low, day, year);
- return(buffer);
- }
-
- /*
- * Convert MSDOS directory timestamp to ASCII
- */
-
- char *
- convtime(time_high, time_low)
- unsigned time_high;
- unsigned time_low;
- {
- /*
- * hi byte | low byte
- * |0|1|2|3|4|5|6|7|0|1|2|3|4|5|6|7|
- * | | | | | | | | | | | | | | | | |
- * \ 5 bits /\ 6 bits /\ 5 bits /
- * hour minutes sec*2
- */
- static char buffer[7];
- char am_pm;
- unsigned char hour, min_hi, min_low;
-
- hour = time_high >> 3;
- am_pm = (hour >= 12) ? 'p' : 'a';
- if (hour > 12)
- hour = hour -12;
- if (hour == 0)
- hour = 12;
- min_hi = (time_high & 0x7) << 3;
- min_low = time_low >> 5;
- sprintf(buffer, "%2d:%02d%c", hour, min_hi+min_low, am_pm);
- return(buffer);
- }
-