Research V2 release
[unix-history] / cmd / date.s
CommitLineData
01c0316a
DR
1/ get date -- date
2/ set date -- date mmddhhmm
3
4.globl ptime
5
6 cmp (sp)+,$2
7 blt prdate
8 tst (sp)+
9 mov (sp),r0
10 setd
11 seti
12 jsr r5,tmul; 0
13 jsr r5,tmul; 10.
14 movfi fr1,r1 / months in r2
15 asl r1
16 jsr r5,tmul; 0
17 jsr r5,tmul; 10.
18 movfi fr1,r3 / days in r3
19 dec r3
20 add mtab-2(r1),r3
21 cmp r1,$6 / march or later?
22 blt 1f
23 add yr1972,r3 / leap year correction
241:
25 mpy $24.,r3 / days to hours
26 jsr r5,tmul; 0
27 jsr r5,tmul; 10.
28 movif r3,fr0
29 addf fr0,fr1 / total hours
30 jsr r5,tmul; 6.
31 jsr r5,tmul; 10.
32 movif $3600.,fr0
33 mulf fr0,fr1
34 tstb (r0)
35 bne error
36 setl
37 tst yr1972
38 beq 1f
39 movif yrtime,fr0
40 addf fr0,fr1
411:
42 movif two,fr0
43 divf fr0,fr1
44 movfi fr1,-(sp)
45 mov (sp)+,r0
46 mov (sp)+,r1
47 alsc $1,r0
48 sys stime
49 br 1f
50
51prdate:
52 sys time
531:
54 alsc $-8,r0
55 bic $!377,r0
56 dvd $20250.,r0
57 add $0.,r0
58 mov r0,r1
59 clr r0
60 dvd $7.,r0
61 mpy $5.,r1
62 add $days,r1
63 mov r1,0f
64 mov $1,r0
65 sys write; 0:..; 5
66 sys time
67 mov $1,r2
68 jsr pc,ptime
69 mov $1,r0
70 sys write; nl; 1
71 sys exit
72
73error:
74 mov $1,r0
75 sys write; 1f; 2
76 sys exit
771: <?>
78nl: <\n>
79
80tmul:
81 movif (r5)+,fr2
82 mulf fr2,fr1
83 movb (r0)+,r2
84 beq error
85 sub $'0,r2
86 cmp r2,$10.
87 bhis error
88 movif r2,fr2
89 addf fr2,fr1
90 rts r5
91
92yrtime:
93 28872.; 4608.
94
95mtab:
96 0
97 31.
98 59.
99 90.
100 120.
101 151.
102 181.
103 212.
104 243.
105 273.
106 304.
107 334.
1080
109
110yr1972: 1
111two: 0; 2
112days: <Sun \0>
113 <Mon \0>
114 <Tue \0>
115 <Wed \0>
116 <Thur >
117 <Fri \0>
118 <Sat \0>
119 .even
120r1,0f
121 mov $1,r0
122 sys write; 0:..; 5
123 sys time
124 mov $1,r2
125 jsr pc,ptime
126 mov $1,r0
127 sys write; nl; 1
128 sys exit
129
130error:
131 mov $1,r0
132 sys write; 1f; 2
133 sys exit
1341: