Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

77 lines
2.4 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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();
}