Subversion Repositories Kolibri OS

Rev

Rev 7859 | Rev 8213 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7859 Rev 7863
Line 37... Line 37...
37
	jmp	still
37
	jmp	still
38
@@:
38
@@:
39
	or	eax,-1
39
	or	eax,-1
40
	mcall
40
	mcall
Line 41... Line 41...
41
 
41
 
42
make_timestamp:
42
get_tickcount:
43
	push	ebx
43
	push	ebx
44
	mcall	SF_SYSTEM_GET,SSF_TIME_COUNT
44
	mcall	SF_SYSTEM_GET,SSF_TIME_COUNT
45
	imul	eax,10
45
	imul	eax,10
46
	pop	ebx
46
	pop	ebx
Line -... Line 47...
-
 
47
	retn
-
 
48
 
-
 
49
macro BCDtoHEX al {
-
 
50
	aam	16
-
 
51
	aad	10 }
-
 
52
 
-
 
53
make_timestamp:
-
 
54
	mcall	SF_GET_SYS_DATE ; $00SSMMHH (BCD)
-
 
55
	mov	edx,eax
-
 
56
	shr	eax,16
-
 
57
	BCDtoHEX al
-
 
58
	push	eax		; SECONDS
-
 
59
	mov	al,dh
-
 
60
	BCDtoHEX al
-
 
61
	push	eax		; MINUTES
-
 
62
	mov	al,dl
-
 
63
	BCDtoHEX al
-
 
64
	push	eax		; HOURS
-
 
65
	mcall	SF_GET_SYS_DATE ; $00DDMMYY (BCD)
-
 
66
	mov	edx,eax
-
 
67
	shr	eax,16
-
 
68
	BCDtoHEX al
-
 
69
	push	eax		; DAY
-
 
70
	mov	al,dl
-
 
71
	BCDtoHEX al
-
 
72
	add	eax,2000
-
 
73
	push	eax		; YEAR
-
 
74
	mov	ecx,eax
-
 
75
	mov	al,dh
-
 
76
	BCDtoHEX al
-
 
77
	push	eax		; MONTH
-
 
78
; ecx: YEAR
-
 
79
; stack: MONTH, YEAR, DAY, HOURS, MINUTES, SECONDS, retaddr
-
 
80
	mov	eax,ecx
-
 
81
	sub	eax,1970
-
 
82
	mov	ebx,365
-
 
83
	mul	ebx
-
 
84
	mov	ebp,eax
-
 
85
	mov	eax,ecx
-
 
86
	sub	eax,1969
-
 
87
	shr	eax,2
-
 
88
	add	ebp,eax
-
 
89
	mov	eax,ecx
-
 
90
	xor	edx,edx
-
 
91
	sub	eax,1901
-
 
92
	mov	ebx,100
-
 
93
	div	ebx
-
 
94
	sub	ebp,eax
-
 
95
	mov	eax,ecx
-
 
96
	xor	edx,edx
-
 
97
	sub	eax,1601
-
 
98
	mov	ebx,400
-
 
99
	div	ebx
-
 
100
	add	ebp,eax
-
 
101
	pop	ecx
-
 
102
; ecx: MONTH
-
 
103
; stack: YEAR, DAY, HOURS, MINUTES, SECONDS, retaddr
-
 
104
	mov	eax,ecx
-
 
105
	dec	eax
-
 
106
	mov	ebx,30
-
 
107
	mul	ebx
-
 
108
	add	ebp,eax
-
 
109
	cmp	ecx,8
-
 
110
	jbe	months_correction
-
 
111
	mov	eax,ecx
-
 
112
	sub	eax,7
-
 
113
	shr	eax,1
-
 
114
	add	ebp,eax
-
 
115
	mov	ecx,8
-
 
116
      months_correction:
-
 
117
	mov	eax,ecx
-
 
118
	shr	eax,1
-
 
119
	add	ebp,eax
-
 
120
	cmp	ecx,2
-
 
121
	pop	ecx
-
 
122
; ecx: YEAR
-
 
123
; stack: DAY, HOURS, MINUTES, SECONDS, retaddr
-
 
124
	jbe	day_correction_ok
-
 
125
	sub	ebp,2
-
 
126
	test	ecx,11b
-
 
127
	jnz	day_correction_ok
-
 
128
	xor	edx,edx
-
 
129
	mov	eax,ecx
-
 
130
	mov	ebx,100
-
 
131
	div	ebx
-
 
132
	or	edx,edx
-
 
133
	jnz	day_correction
-
 
134
	mov	eax,ecx
-
 
135
	mov	ebx,400
-
 
136
	div	ebx
-
 
137
	or	edx,edx
-
 
138
	jnz	day_correction_ok
-
 
139
      day_correction:
-
 
140
	inc	ebp
-
 
141
      day_correction_ok:
-
 
142
	pop	eax
-
 
143
; eax: DAY
-
 
144
; stack: HOURS, MINUTES, SECONDS, retaddr
-
 
145
	dec	eax
-
 
146
	add	eax,ebp
-
 
147
	mov	ebx,24
-
 
148
	mul	ebx
-
 
149
	pop	ecx
-
 
150
; ecx: HOURS
-
 
151
; stack: MINUTES, SECONDS, retaddr
-
 
152
	add	eax,ecx
-
 
153
	mov	ebx,60
-
 
154
	mul	ebx
-
 
155
	pop	ecx
-
 
156
; ecx: MINUTES
-
 
157
; stack: SECONDS, retaddr
-
 
158
	add	eax,ecx
-
 
159
	mov	ebx,60
-
 
160
	mul	ebx
-
 
161
	pop	ecx
-
 
162
; ecx: SECONDS
-
 
163
; stack: retaddr
-
 
164
	add	eax,ecx
47
	retn
165
	retn
Line 48... Line 166...
48
 
166
 
49
symbol_dump:
167
symbol_dump:
50
 
168