mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-26 09:54:20 +00:00
77 lines
2.4 KiB
C
77 lines
2.4 KiB
C
#define VN "\nTIME Vn 1.0 02/18/83"
|
||
/* This utility accepts the current time from the command tail
|
||
validates it, and set the internal system time in the BIOS.
|
||
Alternatively, it can be requested just to display the current
|
||
system time. */
|
||
|
||
#include <LIBRARY.H>
|
||
|
||
char *time; /* pointer to the time in the config. block */
|
||
char *time_set; /* pointer to the time set flag */
|
||
int hh,mm,ss; /* variables to hold hours, minutes, seconds */
|
||
int mcount; /* match count of numeric values entered */
|
||
int count; /* count used to add leading 0's to time */
|
||
|
||
main(argc,argv)
|
||
int argc;
|
||
char *argv[];
|
||
{
|
||
printf(VN); /* display signon message */
|
||
time = get_cba(CB_TIMEA); /* set pointer to time */
|
||
time_flag = get_cba(CB_DTFLAGS); /* set pointer to the time set flag */
|
||
hh = mm = ss = 0; /* initialize the time in case seconds or
|
||
minutes are not specified */
|
||
|
||
if (argc != 2) /* check if help requested (or needed) */
|
||
show_use(); /* display correct usage and exit */
|
||
|
||
if (usstrcmp("SHOW",argv[1])) /* check if not SHOW option */
|
||
{
|
||
/* convert time into hours, minutes, seconds */
|
||
mcount = sscanf(argv[1],"%d:%d:%d",&hh,&mm,&ss);
|
||
if (!mcount) /* input not numeric */
|
||
show_use(); /* display correct usage and exit */
|
||
|
||
if (hh > 12) /* check valid hours, minutes, seconds */
|
||
{
|
||
printf("\n\007Hours = %d is illegal.",hh);
|
||
show_use(); /* display correct usage and exit */
|
||
}
|
||
if (mm > 59)
|
||
{
|
||
printf("\n\007Minutes = %d is illegal.",mm);
|
||
show_use(); /* display correct usage and exit */
|
||
}
|
||
if (ss > 59)
|
||
{
|
||
show_use(); /* display correct usage and exit */
|
||
printf("\n\007Seconds = %d is illegal.",ss);
|
||
}
|
||
|
||
/* convert integers back into formatted string */
|
||
sprintf(time,"%2d:%2d:%2d",hh,mm,ss);
|
||
time[8] = 0x0A; /* terminate with line feed */
|
||
time[9] = '\0'; /* new string terminator */
|
||
|
||
/* convert " 1: 2: 3" into "01:02:03" */
|
||
for (count = 0; count < 7; count+=3)
|
||
{
|
||
if (time[count] == ' ')
|
||
time[count] = '0';
|
||
}
|
||
/* turn bit on to indicate that the time has been set */
|
||
*time_flag |= TIME_SET;
|
||
}
|
||
|
||
printf("\n\tCurrent Time is %s",time);
|
||
}
|
||
|
||
show_use() /* display correct usage and exit */
|
||
{
|
||
printf("\nTIME sets the system time. Usage is :");
|
||
printf("\n\tTIME hh{:mm{:ss}}");
|
||
printf("\n\tTIME SHOW (to display current time)\n");
|
||
exit();
|
||
}
|
||
|
||
|