CPP System time handle
CPP
Download (.zip)
#include <dos.h> #include <stdio.h>
extern void message (void); extern void title (void); extern void gramas (void);
char *systime (int ttype) { unsigned char hours, mins, secs, hunds; int pm=0; static char buf[17]; union REGS regs;
regs.h.ah = 0x2c; /* DOS Get System Time */ int86 (0x21, ®s, ®s); hours = regs.h.ch; mins = regs.h.cl; secs = regs.h.dh; hunds = regs.h.dl; if (hours > 11) pm = 1;
switch (ttype) { /* test requested time type */ case 0: sprintf(buf," %02u:%02u:%02u.%02u ",hours,mins,secs,hunds); break; case 1: sprintf(buf," %02u:%02u:%02u ",hours,mins,secs); break; case 20: sprintf(buf,"%02u%02u%02u ",hours,mins,secs); break; case 2: if(!hours) hours=12; sprintf(buf," %u:%02u %cM ",(hours>12)?(hours-12):hours,mins, pm?'P':'A'); break; case 3: if(!hours) hours=12; sprintf(buf," %u:%02u%c ",(hours>12)?(hours-12):hours,mins, pm?'p':'a'); break; case 4: if(!hours) hours=12; sprintf(buf," %u:%02u ",(hours>12)?(hours-12):hours,mins); break; default: sprintf(buf,"%02u:%02u",hours,mins); } if (ttype == 1) { message (); gramas (); }
return(buf); }
char *sysdate (int a) { static char buf[22]; char textyear[5]; unsigned int year; unsigned char month,day; union REGS regs;
regs.h.ah = 0x2a; /* DOS Get System Date */ int86 (0x21, ®s, ®s); year = regs.x.cx; month = regs.h.dh; day = regs.h.dl; itoa (year, textyear, 10);
if (a) sprintf(buf," %02u/%02u/%s ",day,month,textyear+2); else sprintf(buf,"%s%02u%02u",textyear, month, day); return(buf); /* return address of buffer */ }
|