/* Utility routines to manipulate and display universial format time and date information. */ #include /* Return time in clkbuf as formatted ascii string 23:59:59 */ char *fm24clk(clkbuf,clks) char *clkbuf,*clks; { return(_fm24(clkbuf,clks,6)); } /* Return time in clkbuf as formatted ascii string 23:59 */ char *fm244clk(clkbuf,clks) char *clkbuf,*clks; { return(_fm24(clkbuf,clks,5)); } /* Generalized time string decode/format. */ char *_fm24(clkbuf,clks,ndigit) char *clkbuf,*clks; unsigned ndigit; { char *p,*unpack(); int i; p=clks; if((i = clkbuf[3]) > 127) { /* Relative clock detected */ *p++ = '+'; i &= 0x7f; i <<= 8; i += clkbuf[4]; /* turn into traditional int */ _2dc(p,i,4,FALSE); /* convert to 4 digits */ if(ndigit==6) strcat(clks," "); /* pad as needed to match rtc */ } else { /* Real time clock */ for(i=3;i> 4) + '0'; *buff++ = (bcd & 0x0f) + '0'; return(buff); }