Subversion Repositories Kolibri OS

Rev

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

Rev 8196 Rev 8236
Line 75... Line 75...
75
  sub  esp,1024
75
  sub  esp,1024
76
  mov  eax,SF_THREAD_INFO
76
  mov  eax,SF_THREAD_INFO
77
  mov  ebx,esp
77
  mov  ebx,esp
78
  mov  ecx,-1
78
  mov  ecx,-1
79
  int  0x40
79
  int  0x40
80
  mov  ebx,[esp+26]
80
  mov  ebx,[esp+process_information.used_memory]
81
  mov  edx,[esp+30]
81
  mov  edx,[esp+process_information.PID]
82
  lea  eax,[ebx-0x20]
82
  lea  eax,[ebx-0x20]
83
  add  esp,1024
83
  add  esp,1024
84
  cmp  esp,eax
84
  cmp  esp,eax
85
  cmova esp,eax
85
  cmova esp,eax
86
  and  esp,not 3
86
  and  esp,not 3
87
if defined @Kolibri@CommandLine
-
 
88
	mov	byte [@Kolibri@CommandLine+256], 0
-
 
89
end if
-
 
90
  xor  eax,eax
87
  xor  eax,eax
91
  cld
88
  cld
92
  mov  edi,@Kolibri@_ThreadTable
89
  mov  edi,@Kolibri@_ThreadTable
93
  mov  ecx,256
90
  mov  ecx,256
94
  rep stosd
91
  rep stosd
Line 171... Line 168...
171
  sub  esp,1024
168
  sub  esp,1024
172
  mov  eax,SF_THREAD_INFO
169
  mov  eax,SF_THREAD_INFO
173
  mov  ebx,esp
170
  mov  ebx,esp
174
  mov  ecx,-1
171
  mov  ecx,-1
175
  int  0x40
172
  int  0x40
176
  mov  eax,[esp+34]
173
  mov  eax,[esp+process_information.box.left]
177
  mov  ebx,[esp+38]
174
  mov  ebx,[esp+process_information.box.top]
178
  mov  ecx,[esp+42]
175
  mov  ecx,[esp+process_information.box.width]
179
  mov  edx,[esp+46]
176
  mov  edx,[esp+process_information.box.height]
180
  add  esp,1024
177
  add  esp,1024
181
  cmp  ecx,[esp+KOLIBRI_THREAD_DATA_LAST_SX*4]
178
  cmp  ecx,[esp+KOLIBRI_THREAD_DATA_LAST_SX*4]
182
  jnz  .main_size
179
  jnz  .main_size
183
  cmp  edx,[esp+KOLIBRI_THREAD_DATA_LAST_SY*4]
180
  cmp  edx,[esp+KOLIBRI_THREAD_DATA_LAST_SY*4]
184
  jz   .main_paint
181
  jz   .main_paint
Line 330... Line 327...
330
  xchg ebp,[esp+8]
327
  xchg ebp,[esp+8]
331
  xchg ebx,[esp+4]
328
  xchg ebx,[esp+4]
332
  ret
329
  ret
333
endp
330
endp
Line 334... Line -...
334
 
-
 
335
macro call func
-
 
336
{
-
 
337
  if func eq __chkstk
-
 
338
	sub  esp,eax
-
 
339
  else
-
 
340
	call func
-
 
341
  end if
-
 
342
}
-
 
343
 
331
 
344
proc @Kolibri@Redraw$qippv
332
proc @Kolibri@Redraw$qippv
345
  push ebp
333
  push ebp
346
  mov  ebp,[esp+12]
334
  mov  ebp,[esp+12]
347
  mov  edx,[ebp+KOLIBRI_THREAD_DATA_FLAG*4]
335
  mov  edx,[ebp+KOLIBRI_THREAD_DATA_FLAG*4]
Line 377... Line 365...
377
  mov  ecx,[ebp+KOLIBRI_THREAD_DATA_Y*4]
365
  mov  ecx,[ebp+KOLIBRI_THREAD_DATA_Y*4]
378
  add  cx,ax
366
  add  cx,ax
379
  add  ecx,5-1
367
  add  ecx,5-1
380
  mov  edx,[ebp+KOLIBRI_THREAD_DATA_C_WINDOW*4]
368
  mov  edx,[ebp+KOLIBRI_THREAD_DATA_C_WINDOW*4]
381
  mov  edi,[ebp+KOLIBRI_THREAD_DATA_TITLE*4]
369
  mov  edi,[ebp+KOLIBRI_THREAD_DATA_TITLE*4]
382
  xor  eax,eax
370
  xor  eax,eax ;SF_CREATE_WINDOW
383
  int  0x40
371
  int  0x40
384
.redraw_picture:
372
.redraw_picture:
385
  call	@@KolibriOnPaint$qv
373
  call	@@KolibriOnPaint$qv
386
.redraw_end_draw:
374
.redraw_end_draw:
387
  mov  eax,SF_REDRAW
375
  mov  eax,SF_REDRAW
Line 418... Line 406...
418
  mov  eax,SF_THREAD_INFO
406
  mov  eax,SF_THREAD_INFO
419
  mov  ebx,esp
407
  mov  ebx,esp
420
  mov  ecx,-1
408
  mov  ecx,-1
421
  int  0x40
409
  int  0x40
422
  mov  esi,eax
410
  mov  esi,eax
423
  mov  edi,[esp+30]
411
  mov  edi,[esp+process_information.PID]
424
.exit_process_loop:
412
.exit_process_loop:
425
  mov  eax,SF_THREAD_INFO
413
  mov  eax,SF_THREAD_INFO
426
  mov  ebx,esp
414
  mov  ebx,esp
427
  mov  ecx,esi
415
  mov  ecx,esi
428
  int  0x40
416
  int  0x40
429
  mov  eax,[esp+30]
417
  mov  eax,[esp+process_information.PID]
430
  cmp  eax,edi
418
  cmp  eax,edi
431
  jz   .exit_process_continue
419
  jz   .exit_process_continue
432
  mov  ebx,eax
420
  mov  ebx,eax
433
  or   bl,15
421
  or   bl,15
434
  inc  ebx
422
  inc  ebx
Line 474... Line 462...
474
  jna  .exit_process_wait_loop
462
  jna  .exit_process_wait_loop
475
  mov  ebx,KOLIBRI_MUTEX_MAX_TIME_WAIT
463
  mov  ebx,KOLIBRI_MUTEX_MAX_TIME_WAIT
476
  jmp  .exit_process_wait_loop
464
  jmp  .exit_process_wait_loop
477
endp
465
endp
Line 478... Line 466...
478
 
466
 
479
proc @Kolibri@ExitThread$qppv,@Kolibri@ThreadMain$qpvt1
467
proc @Kolibri@ExitThread$qppv
480
  mov  esp,[esp+4]
468
  mov  esp,[esp+4]
481
  jmp  Kolibri_main_end
469
  jmp  @Kolibri@ThreadMain$qpvt1.main_end
Line 482... Line 470...
482
endp
470
endp
483
 
471
 
484
proc @Kolibri@ReturnMessageLoop$qppv,@Kolibri@ThreadMain$qpvt1
472
proc @Kolibri@ReturnMessageLoop$qppv
485
  mov  esp,[esp+4]
473
  mov  esp,[esp+4]
486
  bt   dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],30
474
  bt   dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],30
487
  jc   Kolibri_main_end
475
  jc   @Kolibri@ThreadMain$qpvt1.main_end
Line 488... Line 476...
488
  jmp  Kolibri_main_cycle
476
  jmp  @Kolibri@ThreadMain$qpvt1.main_cycle
489
endp
477
endp
490
 
478
 
Line 596... Line 584...
596
  mov  edx,[esp+20]
584
  mov  edx,[esp+20]
597
  int  0x40
585
  int  0x40
598
  ret
586
  ret
599
endp
587
endp
Line -... Line 588...
-
 
588
 
-
 
589
proc @Kolibri@PutImage$qpucllll uses ebx
-
 
590
  mov  eax,SF_PUT_IMAGE
-
 
591
  mov  ebx,[esp+8]
-
 
592
  mov  ecx,[esp+20-2]
-
 
593
  mov  cx,[esp+24]
-
 
594
  mov  edx,[esp+12-2]
-
 
595
  mov  dx,[esp+16]
-
 
596
  int  0x40
-
 
597
  ret
-
 
598
endp
600
 
599
 
601
proc @Kolibri@SetWindowCaption$qpxc uses ebx
600
proc @Kolibri@SetWindowCaption$qpxc uses ebx
602
  mov  eax,SF_SET_CAPTION
601
  mov  eax,SF_SET_CAPTION
603
  mov  ebx,2
602
  mov  ebx,2
604
  mov  ecx,[esp+8]
603
  mov  ecx,[esp+8]
Line 619... Line 618...
619
  mov  [edi],ecx
618
  mov  [edi],ecx
620
  xor  edi,edi
619
  xor  edi,edi
621
.get_proc_info_no_usecpu:
620
.get_proc_info_no_usecpu:
622
  or   edi,[1024+12+8+esp]
621
  or   edi,[1024+12+8+esp]
623
  jz   .get_proc_info_no_name
622
  jz   .get_proc_info_no_name
624
  lea  esi,[esp+10]
623
  lea  esi,[esp+process_information.process_name]
625
  cld
624
  cld
626
  movsd
625
  movsd
627
  movsd
626
  movsd
628
  movsd
627
  movsd
629
  mov  byte [edi],0
628
  mov  byte [edi],0
630
  xor  edi,edi
629
  xor  edi,edi
631
.get_proc_info_no_name:
630
.get_proc_info_no_name:
632
  or   edi,[1024+12+12+esp]
631
  or   edi,[1024+12+12+esp]
633
  jz   .get_proc_info_no_mem
632
  jz   .get_proc_info_no_mem
634
  mov  ecx,[esp+26]
633
  mov  ecx,[esp+process_information.used_memory]
635
  mov  [edi],ecx
634
  mov  [edi],ecx
636
  xor  edi,edi
635
  xor  edi,edi
637
.get_proc_info_no_mem:
636
.get_proc_info_no_mem:
638
  or   edi,[1024+12+16+esp]
637
  or   edi,[1024+12+16+esp]
639
  jz   .get_proc_info_no_pid
638
  jz   .get_proc_info_no_pid
640
  mov  ecx,[esp+30]
639
  mov  ecx,[esp+process_information.PID]
641
  mov  [edi],ecx
640
  mov  [edi],ecx
642
  xor  edi,edi
641
  xor  edi,edi
643
.get_proc_info_no_pid:
642
.get_proc_info_no_pid:
644
  or   edi,[1024+12+20+esp]
643
  or   edi,[1024+12+20+esp]
645
  jz   .get_proc_info_no_rect
644
  jz   .get_proc_info_no_rect
646
  lea  esi,[esp+34]
645
  lea  esi,[esp+process_information.box]
647
  cld
646
  cld
648
  movsd
647
  movsd
649
  movsd
648
  movsd
650
  movsd
649
  movsd
651
  movsd
650
  movsd