Annotation of researchv10no/cmd/2500/time.c, revision 1.1.1.1

1.1       root        1: #include       "hdr.h"
                      2: 
                      3: Time
                      4: gettime()
                      5: {
                      6:        char buf[64];
                      7:        Time t;
                      8: 
                      9:        if(cmd(4, "timer", buf, "%c%c%c", 0x61, 0x0C, 1)){
                     10:                t.h = t.m = t.s = t.f = 0;
                     11:                return(t);
                     12:        }
                     13:        return(atotime(buf+2));
                     14: }
                     15: 
                     16: settimer(t, who)
                     17:        Time t;
                     18: {
                     19:        cmd(0, "settimer", (char *)0, "%c%c%t", 0x44, who, t);
                     20: }
                     21: 
                     22: timer(type)
                     23: {
                     24:        char buf[64];
                     25:        Time t;
                     26: 
                     27:        if(cmd(4, "timer", buf, "%c%c%c", 0x61, 0x0C, type))
                     28:                return;
                     29:        t = atotime(buf+2);
                     30:        switch(buf[1])
                     31:        {
                     32:        case 0x04:      print("LTC: %T\n", t); break;
                     33:        case 0x14:      print("corrected LTC: %T\n", t); break;
                     34:        case 0x06:      print("VITC: %T\n", t); break;
                     35:        case 0x00:      print("TIMER-1: %T\n", t); break;
                     36:        case 0x01:      print("TIMER-2: %T\n", t); break;
                     37:        default:        print("unexpect timer return type %2.2ux\n", buf[1]);
                     38:        }
                     39: }
                     40: 
                     41: Time
                     42: atotime(b)
                     43:        char *b;
                     44: {
                     45: #define        M(x)    ((((x)>>4)&0x7)*10 + ((x)&0xF))
                     46:        Time t;
                     47: 
                     48:        t.f = M(b[0]&0x3F);
                     49:        t.s = M(b[1]);
                     50:        t.m = M(b[2]);
                     51:        t.h = M(b[3]);
                     52:        return(t);
                     53: }
                     54: 
                     55: taddfr(t, n)
                     56:        register Time *t;
                     57: {
                     58:        t->f += n;
                     59:        if(t->f >= 30){
                     60:                t->s += t->f/30;
                     61:                t->f %= 30;
                     62:                if(t->s >= 60){
                     63:                        t->m += t->s/60;
                     64:                        t->s %= 60;
                     65:                        if(t->m >= 60){
                     66:                                t->h += t->m/60;
                     67:                                t->m %= 60;
                     68:                        }
                     69:                }
                     70:        }
                     71: }
                     72: 
                     73: timecmp(t0, t1)
                     74:        Time t0, t1;
                     75: {
                     76:        register k;
                     77: 
                     78:        if(k = t0.h - t1.h) return(k);
                     79:        if(k = t0.m - t1.m) return(k);
                     80:        if(k = t0.s - t1.s) return(k);
                     81:        return(t0.f - t1.f);
                     82: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.