Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
8177 superturbo 1
 
2
3
 
4
global go.os.Event
5
global go.os.GetButtonID
6
global go.os.CreateButton
7
global go.os.Exit
8
global go.os.Redraw
9
global go.os.Window
10
global go.os.WriteText
11
global go.os.GetTime
12
global go.os.DrawLine
13
global go.os.DrawBar
14
global go.os.DebugOutHex
15
global go.os.DebugOutChar
16
global go.os.DebugOutStr
17
global go.os.WriteText2
9053 pavelyakov 18
8177 superturbo 19
 
9063 pavelyakov 20
runtime.memequal32..f:
21
    ret
22
23
 
24
runtime.memequal8..f:
25
    ret
26
27
 
28
runtime.memequal:
29
    ret
30
31
 
32
go.os.SetByteString:
33
  push ebp
34
  mov ebp, esp
35
  mov eax, [ebp+8]
36
  mov ebx, [ebp+12]
37
  mov ecx, [ebp+16]
38
  mov dh, [ebp+20]
39
  mov byte[eax+ecx], dh
40
  mov esp, ebp
41
  pop ebp
42
  ret
43
44
 
45
global __go_register_gc_roots
46
global __unsafe_get_addr
47
48
 
49
  push ebp
50
  mov ebp, esp
51
  mov eax, [ebp+8]
52
  mov esp, ebp
53
  pop ebp
54
  ret
55
56
 
57
__go_runtime_error:
58
  ret
59
60
 
61
global runtime.gcWriteBarrier
62
runtime.writeBarrier:
63
    mov eax, [esp+8]
64
    mov ebx, [esp+12]
65
    mov dword[eax], ebx
66
    ret
67
68
 
69
runtime.strequal..f:
70
    mov eax,[esp+8]
71
    mov ebx,[esp+16]
72
    mov ecx,0
73
    strcmp_loop:
74
        mov byte dl,[eax+ecx]
75
        mov byte dh,[ebx+ecx]
76
        inc ecx
77
        cmp dl,0
78
        je strcmp_end_0
79
        cmp byte dl,dh
80
        je strcmp_loop
81
        jl strcmp_end_1
82
        jg strcmp_end_2
83
    strcmp_end_0:
84
        cmp dh,0
85
        jne strcmp_end_1
86
        xor ecx,ecx
87
        ret
88
    strcmp_end_1:
89
        mov ecx,1
90
        ret
91
    strcmp_end_2:
92
        mov ecx,-1
93
        ret
94
95
 
96
    mov eax, [esp+8]
97
    mov ebx, [esp+12]
98
    mov dword[eax], ebx
99
    ret
100
101
 
102
runtime.goPanicIndex:
103
    ret
104
105
 
106
runtime.registerGCRoots:
107
    ret
108
109
 
110
memcmp:
111
    push ebp
112
    mov ebp,esp
113
    mov     esi, [ebp+8]    ; Move first pointer to esi
114
    mov     edi, [ebp+12]    ; Move second pointer to edi
115
    mov     ecx, [ebp+16]    ; Move length to ecx
116
117
 
118
                                ; at increasing addresses
119
    cmp     ecx, ecx            ; Special case: If length parameter to memcmp is
120
                                ; zero, don't compare any bytes.
121
    repe cmpsb                  ; Compare bytes at DS:ESI and ES:EDI, setting flags
122
                                ; Repeat this while equal ZF is set
123
    setz    al
124
    mov esp,ebp
125
    pop ebp
126
    ret
127
128
 
129
 
8177 superturbo 130
    push ebp
131
    mov ebp,esp
132
	mov eax, 5
133
	mov ebx, [ebp+8]
134
	int 0x40
135
    mov esp,ebp
136
    pop ebp
137
    ret
138
139
 
140
 
141
	mov eax, 10
142
	int 0x40
143
	ret
144
145
 
146
  mov   eax,17
147
  int   0x40
148
  test  al,al
149
  jnz   .no_button
150
  shr   eax,8
151
  ret
152
.no_button:
153
  xor   eax,eax
154
  dec   eax
155
  ret
156
157
 
158
	mov eax, -1
159
	int 0x40
160
    ret
161
162
 
163
    push ebp
164
    mov ebp,esp
165
	mov eax, 12
166
	mov ebx, [ebp+8]
167
	int 0x40
168
    mov esp,ebp
169
    pop ebp
170
    ret
171
172
 
173
    push ebp
174
    mov ebp,esp
175
	mov ebx, [ebp+8]
176
	shl ebx, 16
177
	or ebx, [ebp+16]
178
	mov ecx, [ebp+12]
179
	shl ecx, 16
180
	or ecx, [ebp+20]
181
	mov edx, 0x14
182
	shl edx, 24
183
	or edx, 0xFFFFFF
184
	mov esi, 0x808899ff
185
	mov edi, [ebp+24]
186
	xor eax, eax
187
	int 0x40
188
    mov esp,ebp
189
    pop ebp
190
    ret
191
192
 
193
    push ebp
9053 pavelyakov 194
    mov ebp,esp
195
    mov eax,4
8177 superturbo 196
    mov ebx,[ebp+8]
9053 pavelyakov 197
    shl ebx,16
8177 superturbo 198
    mov bx,[ebp+12]
9053 pavelyakov 199
    mov ecx,[ebp+16]
200
    mov edx,[ebp+20]
201
    mov esi,[ebp+24]
202
    int 0x40
8177 superturbo 203
    mov esp,ebp
9053 pavelyakov 204
    pop ebp
205
    ret
8177 superturbo 206
207
 
9053 pavelyakov 208
    push ebp
209
    mov ebp,esp
210
    mov eax,47
211
    mov ebx,[ebp+8]
212
    shl ebx,16
8177 superturbo 213
    mov ecx,[ebp+12]
9053 pavelyakov 214
    mov edx,[ebp+20]
215
    shl edx,16
216
    add edx, [ebp+24]
217
    mov esi,[ebp+28]
218
    int 0x40
219
    mov esp,ebp
220
    pop ebp
221
    ret
222
223
 
224
    push ebp
225
    mov ebp,esp
226
    mov ebx,[ebp+8]
227
    shl ebx,16
228
    mov bx,[ebp+16]
229
    mov ecx,[ebp+12]
230
    shl ecx,16
8177 superturbo 231
    mov cx,[ebp+20]
9053 pavelyakov 232
    mov edx,[ebp+24]
233
    mov eax,38
8177 superturbo 234
    int 0x40
235
    mov esp,ebp
9053 pavelyakov 236
    pop ebp
237
    ret
8177 superturbo 238
239
 
240
    push ebp
9053 pavelyakov 241
    mov ebp,esp
242
    mov   eax,13
8177 superturbo 243
    mov   ebx,[ebp+8]
9053 pavelyakov 244
    shl   ebx,16
8177 superturbo 245
    mov   bx,[ebp+16]
9053 pavelyakov 246
    mov   ecx,[ebp+12]
247
    shl   ecx,16
8177 superturbo 248
    mov   cx,[ebp+20]
9053 pavelyakov 249
    mov   edx,[ebp+24]
250
    int   0x40
8177 superturbo 251
    mov esp,ebp
9053 pavelyakov 252
    pop ebp
253
    ret
8177 superturbo 254
255
 
256
    mov eax, 3
257
    int 0x40
258
    ret
259
260
 
9053 pavelyakov 261
    mov eax, [esp+4]
8177 superturbo 262
    mov   edx, 8
263
    .new_char:
264
    rol   eax, 4
265
    movzx ecx, al
266
    and   cl,  0x0f
267
    mov   cl,  [__hexdigits + ecx]
268
    pushad
269
    mov eax, 63
270
    mov ebx, 1
271
    int 0x40
272
    popad
273
    dec   edx
274
    jnz   .new_char
275
    ret
276
277
 
9053 pavelyakov 278
   mov al, [esp+4]
8177 superturbo 279
   pushf
280
   pushad
281
   mov  cl,al
282
   mov  eax,63
283
   mov  ebx,1
284
   int  0x40
285
   popad
286
   popf
287
   ret
288
289
 
290
   mov  edx,[esp+4]
291
   mov  eax,63
292
   mov  ebx,1
293
 m2:
294
   mov  cl, [edx]
295
   test cl,cl
296
   jz   m1
297
   int  40h
298
   inc  edx
299
   jmp  m2
300
 m1:
301
   ret
302
303
 
304
  push  ebp
9053 pavelyakov 305
  mov   ebp,esp
306
  mov   eax, 8
307
  mov ebx, [ebp+8]
308
  shl ebx, 16
309
  mov bx, [ebp+16]
310
  mov ecx, [ebp+12]
311
  shl ecx, 16
312
  mov cx, [ebp+20]
313
  mov edx, [ebp+24]
314
  mov esi, [ebp+28]
315
  int   0x40
8177 superturbo 316
  mov   esp,ebp
9053 pavelyakov 317
  pop   ebp
318
  ret
8177 superturbo 319
320
 
321
__hexdigits:
322
  db '0123456789ABCDEF'
323
9063 pavelyakov 324
 
325
    dd __hexdigits
326
    dd 15
327