Subversion Repositories Kolibri OS

Rev

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

Rev 109 Rev 132
Line 10... Line 10...
10
    dd     START                   ; start of code
10
    dd     START                   ; start of code
11
    dd     IM_END                  ; size of image
11
    dd     IM_END                  ; size of image
12
    dd     0x300000                ; memory for app
12
    dd     0x300000                ; memory for app
13
    dd     0x300000                ; esp
13
    dd     0x300000                ; esp
14
    dd     temp_area , 0x0         ; I_Param , I_Icon
14
    dd     temp_area , 0x0         ; I_Param , I_Icon
-
 
15
 
15
include    'lang.inc'
16
include    'lang.inc'
16
include    'macros.inc'
17
include    'macros.inc'
17
;******************************************************************************
18
;******************************************************************************
Line 18... Line -...
18
 
-
 
19
tmp_param dd 0
-
 
20
 
19
 
Line 21... Line 20...
21
START:                          ; start of execution
20
START:                          ; start of execution
22
 
21
 
23
; check for parameters
22
; check for parameters
Line 33... Line 32...
33
   cmp   byte [temp_area],0
32
   cmp   byte [temp_area],0
34
   jz    .no_param
33
   jz    .no_param
35
   mov   edi,string      ; clear string
34
   mov   edi,string      ; clear string
36
   mov   ecx,43*3        ;   length of a string
35
   mov   ecx,43*3        ;   length of a string
37
   xor   eax,eax         ;   symbol <0>
36
   xor   eax,eax         ;   symbol <0>
-
 
37
   add   al,14h
38
   cld
38
   cld
39
   rep   stosb
39
   rep   stosb
Line 40... Line 40...
40
 
40
 
41
   mov   edi,temp_area   ; look for <0> in temp_area
41
   mov   edi,temp_area   ; look for <0> in temp_area
Line 47... Line 47...
47
   mov   ecx,edi
47
   mov   ecx,edi
48
   mov   esi,temp_area
48
   mov   esi,temp_area
49
   mov   edi,string
49
   mov   edi,string
50
   rep   movsb           ; copy string from temp_area to "string" (filename)
50
   rep   movsb           ; copy string from temp_area to "string" (filename)
Line 51... Line 51...
51
 
51
 
52
   call  draw_window
52
   call  load_image
-
 
53
   call  convert
53
   mov   [tmp_param],0xdeadbeef
54
 
Line 54... Line 55...
54
 .no_param:
55
 .no_param:
55
 
56
 
Line 69... Line 70...
69
  @@:
70
  @@:
Line 70... Line 71...
70
 
71
 
71
; ⥯¥àì ¢ ecx ­®¬¥à ¯à®æ¥áá 
72
; ⥯¥àì ¢ ecx ­®¬¥à ¯à®æ¥áá 
Line 72... Line -...
72
    mov  [process],ecx
-
 
73
 
-
 
74
    cmp  [tmp_param],0xdeadbeef
-
 
75
    jne  @f
-
 
76
    jmp  kopen
-
 
77
  @@:
73
    mov  [process],ecx
Line 78... Line 74...
78
 
74
 
Line 79... Line 75...
79
    call draw_window
75
    call draw_window
Line 193... Line 189...
193
    jmp  still
189
    jmp  still
194
    ;call background
190
    ;call background
Line 195... Line 191...
195
 
191
 
196
 getappinfo:
192
 getappinfo:
197
    mov  eax,9
193
    mov  eax,9
198
    mov  ebx,I_END
194
    mov  ebx,process_info
199
    int  0x40
195
    int  0x40
Line 200... Line 196...
200
    ret
196
    ret
201
 
197
 
202
 
198
 
203
load_image:
199
load_image:
204
    mov  dword [fileinfo+8],1 ; how many blocks to read (1)
200
    mov  dword [fileinfo+8],1 ; how many blocks to read (1)
205
    mov  eax,58
201
    mov  eax,58
206
    mov  ebx,fileinfo
202
    mov  ebx,fileinfo
207
    int  0x40
203
    int  0x40
208
    cmp  [I_END+2],dword 512  ; à §¬¥à ä ©«  (file size)
204
    cmp  [I_END+2],dword 512  ; à §¬¥à ä ©«  (file size)
209
    jbe  open1
205
    jbe  @f
Line 210... Line 206...
210
    mov  eax,[I_END+2]
206
    mov  eax,[I_END+2]
211
    shr  eax,9 ; ¯®¤¥«¨¬ ­  512 ¨ ¯à¨¡ ¢¨¬ 1 - ¯®«ã稬 ç¨á«® ¡«®ª®¢
207
    shr  eax,9 ; ¯®¤¥«¨¬ ­  512 ¨ ¯à¨¡ ¢¨¬ 1 - ¯®«ã稬 ç¨á«® ¡«®ª®¢
212
    inc  eax
208
    inc  eax
213
 
209
 
-
 
210
    mov  dword [fileinfo+8],eax
-
 
211
    mov  eax,58
-
 
212
    mov  ebx,fileinfo
-
 
213
    int  0x40
-
 
214
@@:
-
 
215
    mov  eax,[I_END+18]
-
 
216
    mov  ebx,[I_END+22]
-
 
217
    add  eax,20
-
 
218
    cmp  eax,210
-
 
219
    jae  @f
-
 
220
    mov  eax,210
-
 
221
@@:
-
 
222
    add  ebx,58
-
 
223
    cmp  ebx,56
-
 
224
    jae  @f
-
 
225
    mov  ebx,56
-
 
226
@@:
-
 
227
    mov  [wnd_width],eax
-
 
228
    mov  [wnd_height],ebx
-
 
229
    test [bWasDraw],1
-
 
230
    jz   @f
-
 
231
    mov  esi,ebx
-
 
232
    mov  edx,eax
-
 
233
    mov  ecx,-1
214
    mov  dword [fileinfo+8],eax
234
    mov  ebx,-1
Line 215... Line 235...
215
    mov  eax,58
235
    mov  eax,67
216
    mov  ebx,fileinfo
236
    int  40h
Line 382... Line 402...
382
;   *******  WINDOW DEFINITIONS AND DRAW ********
402
;   *******  WINDOW DEFINITIONS AND DRAW ********
383
;   *********************************************
403
;   *********************************************
Line 384... Line 404...
384
 
404
 
385
 
-
 
-
 
405
 
Line 386... Line 406...
386
draw_window:
406
draw_window:
387
 
407
    or   [bWasDraw],1
388
 
408
 
Line 389... Line 409...
389
    mov  eax,12                    ; function 12:tell os about windowdraw
409
    mov  eax,12                    ; function 12:tell os about windowdraw
390
    mov  ebx,1                     ; 1, start of draw
410
    mov  ebx,1                     ; 1, start of draw
391
    int  0x40
411
    int  0x40
392
 
412
 
-
 
413
                                   ; DRAW WINDOW
-
 
414
    xor  eax,eax                   ; function 0 : define and draw window
-
 
415
;    mov  ebx,350                   ; [x start] *65536 + [x size]
-
 
416
;    mov  ecx,400                   ; [y start] *65536 + [y size]
393
                                   ; DRAW WINDOW
417
    mov  ebx,100*65536
394
    xor  eax,eax                   ; function 0 : define and draw window
418
    mov  ecx,100*65536
Line 395... Line 419...
395
    mov  ebx,350                   ; [x start] *65536 + [x size]
419
    add  ebx,[wnd_width]
396
    mov  ecx,400                   ; [y start] *65536 + [y size]
420
    add  ecx,[wnd_height]
Line 447... Line 471...
447
sop      dd 0
471
sop      dd 0
448
eop      dd 0
472
eop      dd 0
449
eos      dd 0
473
eos      dd 0
450
process  dd 0
474
process  dd 0
Line -... Line 475...
-
 
475
 
-
 
476
bWasDraw db 0
451
 
477
 
Line 452... Line 478...
452
thread1:                        ; start of thread1
478
thread1:                        ; start of thread1
Line 453... Line 479...
453
 
479
 
Line 622... Line 648...
622
 drawstring:
648
 drawstring:
623
    pusha
649
    pusha
624
    mov  eax,8             ;invisible button
650
    mov  eax,8             ;invisible button
625
    mov  ebx,21*65536+258
651
    mov  ebx,21*65536+258
626
    mov  ecx,40*65536+15
652
    mov  ecx,40*65536+15
627
    mov  edx,0x40000002
653
    mov  edx,0x60000002
628
    int  0x40
654
    int  0x40
Line 629... Line 655...
629
 
655
 
630
    mov  eax,13             ;bar
656
    mov  eax,13             ;bar
631
    mov  edx,0xe0e0e0
657
    mov  edx,0xe0e0e0
Line 662... Line 688...
662
     dd 1          ;number of blocks  of 512 bytes
688
     dd 1          ;number of blocks  of 512 bytes
663
     dd I_END
689
     dd I_END
664
     dd temp_area
690
     dd temp_area
665
string:
691
string:
666
; db '/HARDDISK/FIRST/1/DICK.BMP                  '
692
; db '/HARDDISK/FIRST/1/DICK.BMP                  '
667
  db '/hd/1/menuet/pics/new.bmp                   '
693
; db '/hd/1/menuet/pics/new.bmp                   '
-
 
694
  db '/rd/1/bgr.bmp                               '
668
  db '                                            '
695
  db '                                            '
669
  db '                                            '
696
  db '                                            '
Line 670... Line 697...
670
 
697
 
Line 965... Line 992...
965
 
992
 
966
; DATA AREA
993
; DATA AREA
967
vflag: db 'x'
994
vflag: db 'x'
Line -... Line 995...
-
 
995
bgrmode: dd 1
-
 
996
 
-
 
997
wnd_width dd 210
968
bgrmode: dd 1
998
wnd_height dd 53
969
 
999
 
970
lsz labelt3,\
1000
lsz labelt3,\
Line 971... Line 1001...
971
    en,   'Background set',\
1001
    en,   'Background set',\
Line 988... Line 1018...
988
    ru, 'Ok'
1018
    ru, 'Ok'
Line 989... Line 1019...
989
 
1019
 
-
 
1020
 
990
 
1021
 
991
 
1022
IM_END:
992
IM_END:
1023
process_info:
993
temp_area:
-