Commit | Line | Data |
---|---|---|
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 | |
24 | 1: | |
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 | |
41 | 1: | |
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 | ||
51 | prdate: | |
52 | sys time | |
53 | 1: | |
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 | ||
73 | error: | |
74 | mov $1,r0 | |
75 | sys write; 1f; 2 | |
76 | sys exit | |
77 | 1: <?> | |
78 | nl: <\n> | |
79 | ||
80 | tmul: | |
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 | ||
92 | yrtime: | |
93 | 28872.; 4608. | |
94 | ||
95 | mtab: | |
96 | 0 | |
97 | 31. | |
98 | 59. | |
99 | 90. | |
100 | 120. | |
101 | 151. | |
102 | 181. | |
103 | 212. | |
104 | 243. | |
105 | 273. | |
106 | 304. | |
107 | 334. | |
108 | 0 | |
109 | ||
110 | yr1972: 1 | |
111 | two: 0; 2 | |
112 | days: <Sun \0> | |
113 | <Mon \0> | |
114 | <Tue \0> | |
115 | <Wed \0> | |
116 | <Thur > | |
117 | <Fri \0> | |
118 | <Sat \0> | |
119 | .even | |
120 | r1,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 | ||
130 | error: | |
131 | mov $1,r0 | |
132 | sys write; 1f; 2 | |
133 | sys exit | |
134 | 1: |