Subversion Repositories Kolibri OS

Rev

Rev 846 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
846 serge 1
 
2
WORD  equ word
3
BYTE  equ byte
4
5
 
6
7
 
8
        mov ecx, DWORD PTR [esp+4]
908 serge 9
.L13:
846 serge 10
        mov edx, 0x3FD
908 serge 11
        in al, dx
12
        test al, 96
13
        je  .L13
14
        mov dl, -8
15
        mov eax, ecx
16
        out dx, al
17
        cmp ecx, 10
18
        jne .L7
19
        mov cl, 13
20
        jmp     .L13
846 serge 21
.L7:
22
        ret
23
24
 
25
	push	ebp
26
	push	edi
27
	push	esi
28
	push	ebx
29
	sub	esp, 40
30
	lea	eax, [esp+64]
31
	mov	DWORD PTR [esp+4], eax
32
.L50:
33
	mov	ecx, DWORD PTR [esp+60]
34
	movzx	edx, BYTE PTR [ecx]
35
	test	dl, dl
36
        je      .L51
37
.L17:
38
	lea	eax, [ecx+1]
39
	cmp	dl, 37
40
	mov	DWORD PTR [esp+60], eax
41
        je      .L18
42
	movsx	eax, dl
43
	mov	DWORD PTR [esp], eax
44
	call	_putc
45
	mov	ecx, DWORD PTR [esp+60]
46
	movzx	edx, BYTE PTR [ecx]
47
	test	dl, dl
48
        jne     .L17
49
.L51:
50
	add	esp, 40
51
	pop	ebx
52
	pop	esi
53
	pop	edi
54
	pop	ebp
55
	ret
56
.L18:
57
	movzx	edx, BYTE PTR [ecx+1]
58
	lea	eax, [ecx+2]
59
	mov	DWORD PTR [esp+60], eax
60
	cmp	dl, 115
61
        je      .L22
62
        jg      .L23
63
	cmp	dl, 100
64
        je      .L21
65
.L20:
66
	mov	edx, DWORD PTR [esp+4]
67
	mov	eax, DWORD PTR [edx]
68
	add	edx, 4
69
	mov	DWORD PTR [esp+4], edx
70
	mov	DWORD PTR [esp], eax
71
	call	_putc
72
        jmp     .L50
73
.L23:
74
	cmp	dl, 117
75
        je      .L21
76
	cmp	dl, 120
77
        jne     .L20
78
.L21:
79
	mov	ecx, DWORD PTR [esp+4]
80
	mov	eax, DWORD PTR [ecx]
81
	add	ecx, 4
82
	cmp	dl, 100
83
	mov	DWORD PTR [esp+4], ecx
84
	mov	ecx, eax
85
        je      .L52
86
.L24:
87
	cmp	dl, 120
88
        je      .L53
89
	lea	ebp, [esp+20]
90
	mov	esi, 10
91
	mov	ebx, ebp
92
	mov	edi, ebp
93
.L43:
94
	xor	edx, edx
95
	mov	eax, ecx
96
	div	esi
97
	cmp	edx, 9
98
	lea	eax, [edx+48]
99
        jle     .L31
100
	lea	eax, [edx+87]
101
.L31:
102
	mov	BYTE PTR [edi], al
103
	xor	edx, edx
104
	mov	eax, ecx
105
	div	esi
106
	add	edi, 1
107
	test	eax, eax
108
	mov	ecx, eax
109
        jne     .L43
110
	lea	eax, [edi-1]
111
	cmp	eax, ebx
112
	mov	BYTE PTR [edi], 0
113
        jbe     .L33
114
	lea	ecx, [edi-2]
115
.L35:
116
	movzx	eax, BYTE PTR [ebx]
117
	movzx	edx, BYTE PTR [ecx+1]
118
	mov	BYTE PTR [ebx], dl
119
	add	ebx, 1
120
	mov	BYTE PTR [ecx+1], al
121
	mov	eax, ecx
122
	sub	ecx, 1
123
	cmp	ebx, eax
124
        jb      .L35
125
.L33:
126
	mov	edx, ebp
127
.L36:
128
	movzx	eax, BYTE PTR [edx]
129
	test	al, al
130
        je      .L50
131
	mov	ebx, edx
132
.L39:
133
	movsx	eax, al
134
	mov	DWORD PTR [esp], eax
135
	call	_putc
136
	movzx	eax, BYTE PTR [ebx+1]
137
	add	ebx, 1
138
	test	al, al
139
        jne     .L39
140
        jmp     .L50
141
.L22:
142
	mov	eax, DWORD PTR [esp+4]
143
	mov	edx, DWORD PTR [eax]
144
	add	eax, 4
145
	mov	DWORD PTR [esp+4], eax
146
	test	edx, edx
147
        jne     .L36
148
        mov     edx, .LC0
149
        jmp     .L36
150
.L52:
151
	test	eax, eax
152
        jns     .L24
153
	lea	ebx, [esp+21]
154
	neg	ecx
155
	mov	edi, ebx
156
	mov	esi, 10
157
	lea	ebp, [esp+20]
158
	mov	BYTE PTR [esp+20], 45
159
        jmp     .L43
160
.L53:
161
	lea	ebp, [esp+20]
162
	mov	esi, 16
163
	mov	ebx, ebp
164
	mov	edi, ebp
165
        jmp     .L43
166
167
 
168
169
 
170
restore WORD
171
restore BYTE
172
173
 
174