Subversion Repositories Kolibri OS

Rev

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

Rev 3450 Rev 6763
Line 32... Line 32...
32
        jmp     .next
32
        jmp     .next
33
.insert_number:
33
.insert_number:
34
        bt      word [ch6.flags],1
34
        bt      word [ch6.flags],1
35
        jnc     @f
35
        jnc     @f
36
        mov     eax,[cur_number]
36
        mov     eax,[cur_number]
37
        ;mov     ebx,4
-
 
38
        movsx   ebx,byte [sign_n]
37
        movsx   ebx,byte [sign_n]
39
        push    ebx
38
        push    ebx
40
        call    int_to_str
39
        call    int_to_str
41
        pop     ebx
40
        pop     ebx
42
        add     edi,ebx
41
        add     edi,ebx
43
@@:
42
@@:
44
        inc     esi
43
        inc     esi
45
        jmp     .next
44
        jmp     .next
46
.str_end:
45
.str_end:
Line 47... Line 46...
47
 
46
 
Line 48... Line -...
48
;;;;clean memory 
-
 
49
 
-
 
50
        mov     ecx,dword [sf_buf.bmp_header]
-
 
51
        mov     ebx,13
-
 
52
        mov     eax,68
-
 
53
        mcall
-
 
54
 
-
 
55
; ‚ëç¨á«ï¥¬, ᪮«ìª® ¡ ©â ­ã¦­® ¯à¨¡ ¢«ïâì ª ª ¦¤®© áâப¥,
-
 
56
; ç⮡ë á«¥¤ãîé ï ¡ë«  ¢ëà ¢­¥­  ­  4 ¡ ©â .
-
 
57
; ¥§ã«ìâ â ¯®¬¥é ¥¬ ¢ edi.
-
 
58
 
-
 
59
        xor     edx,edx
-
 
60
        movzx   eax,word [scr_buf.width]  ; eax = è¨à¨­  ª à⨭ª¨
-
 
61
        lea     eax,[eax*3]               ; eax = ¡ ©â ­  áâப㠪 à⨭ª¨
-
 
62
        mov     ebx,4                     ; ebx = 4
-
 
63
        mov     edi,ebx                   ; edi = 4
-
 
64
        div     ebx                       ; eax = ¡ ©â ­  áâப㠪 à⨭ª¨ div 4  edx = ¡ ©â... mod 4
47
        mcall   SF_SYS_MISC, SSF_MEM_FREE, [sf_buf.bmp_header]
65
        sub     edi,edx                   ; edi = ª®«¨ç¥á⢮ ¡ ©â
-
 
66
        test    edx,edx
-
 
67
        jnz     @f
-
 
68
        xor     edi,edi
-
 
69
@@:
-
 
70
 
-
 
71
        ; ¢ë¤¥«ï¥¬ ¯ ¬ïâì
-
 
72
;        mov     ecx,[scr_buf.end_ptr]
-
 
73
;        mov     [sf_buf.bmp_header],ecx
-
 
74
 
-
 
75
;        add     ecx,0x36
48
 
76
;        mov     [sf_buf.bmp_area],ecx
49
	;create image struct
-
 
50
	movsx ebx,word[scr_buf.width]
77
        movsx   ebx,word [scr_buf.width]
51
	movsx edx,word[scr_buf.height]
-
 
52
	stdcall [img_create], ebx, edx, Image.bpp24
-
 
53
	mov [sf_buf.bmp_area],eax
78
        movsx   edx,word [scr_buf.height]
54
	test eax,eax
-
 
55
	jz @f
79
        ;imul    ebx,edx
56
		;copy foto to image buffer
-
 
57
		mov edi,[eax+Image.Data]
-
 
58
		mov esi,[scr_buf.ptr]
80
        lea     ebx,[ebx*3]
59
		movsx ecx,word[scr_buf.width]
81
        add     ebx,edi
60
		movsx edx,word[scr_buf.height]
-
 
61
		imul ecx,edx
82
        imul    ebx,edx
62
		imul ecx,3
83
        mov     ecx,ebx
-
 
84
 
63
		rep movsb
85
;        mov     [sf_buf.end],ecx
64
 
86
        add     ecx,0x36
65
		;encode image
87
        mov     ebx,12
66
		stdcall [img_encode], eax, LIBIMG_FORMAT_PNG, 0
Line 88... Line 67...
88
        mov     eax,68
67
		test eax,eax
89
        mcall
-
 
90
 
68
		jz @f
91
        mov     [sf_buf.bmp_header],eax 
69
 
92
        add     eax,0x36
-
 
93
        mov     [sf_buf.bmp_area],eax
70
		mov [sf_buf.bmp_header],eax
Line 94... Line -...
94
        add     eax,ecx
-
 
95
        sub     eax,0x36
71
		mov [sf_buf.end],ecx
96
        mov     [sf_buf.end],eax
72
	@@:
97
 
73
	stdcall [img_destroy], [sf_buf.bmp_area]
Line 98... Line 74...
98
;        push    edi
74
 
99
        ; § ¯®«­ï¥¬ áâàãªâãàã ¤«ï á®åà ­¥­¨ï ä ©« 
75
        ; § ¯®«­ï¥¬ áâàãªâãàã ¤«ï á®åà ­¥­¨ï ä ©« 
100
        mov     ebp,fs_struc
-
 
101
        mov     [ebp],dword 2
76
        mov     ebp,fs_struc
102
 
77
        mov     [ebp],dword SSF_CREATE_FILE
103
        mov     eax,[sf_buf.bmp_header]
78
 
Line 104... Line -...
104
        mov     ebx,[sf_buf.end]
-
 
105
        sub     ebx,eax
-
 
106
        mov     [ebp+12],ebx
-
 
107
        mov     [ebp+16],eax
-
 
108
        mov     [ebp+21],dword file_name
-
 
109
 
-
 
110
        ; § ¯®«­ï¥¬ § £®«®¢®ª bmp
-
 
111
        mov     ebp,[sf_buf.bmp_header]
-
 
112
        mov     [ebp],word 'BM'
-
 
113
        mov     ebx,[sf_buf.end]
-
 
114
        sub     ebx,[sf_buf.bmp_area]
-
 
115
        mov     [ebp+34],ebx    ; à §¬¥à ª à⨭ª¨
-
 
116
        mov     [ebp+10],dword 0x36     ; à §¬¥à § £®«®¢ª 
-
 
117
        add     ebx,0x36
-
 
118
        mov     [ebp+2],ebx ; à §¬¥à ä ©« 
-
 
119
        mov     [ebp+14],dword 0x28
-
 
120
        movzx   eax,word [scr_buf.width]
-
 
121
        mov     [ebp+18],eax ; £®à¨§®­â «ì­ë© à §¬¥à
-
 
122
        movzx   eax,word [scr_buf.height]
-
 
123
        mov     [ebp+22],eax ; ¢¥à⨪«ì­ë© à §¬¥à
-
 
124
        mov     [ebp+26],word 1
-
 
125
        mov     [ebp+28],word 24
-
 
126
 
-
 
127
        ; á®å࠭塞
-
 
128
        mov     esi,[scr_buf.ptr]
-
 
129
        mov     edi,[sf_buf.end]
-
 
130
        movzx   edx,word [scr_buf.height]
-
 
131
        movzx   ebx,word [scr_buf.width]
-
 
132
        lea     ebx,[ebx*3]
-
 
133
        mov     ecx,ebx
-
 
134
        
-
 
135
        test    ebx,11b
-
 
136
        jz      @f
-
 
137
        shr     ebx,2
-
 
138
        inc     ebx
-
 
139
        shl     ebx,2
-
 
140
@@:
-
 
141
        mov     eax,ebx
-
 
142
        sub     eax,ecx
-
 
143
        cld
-
 
144
align 4
-
 
145
.next_str:
-
 
146
        sub     edi,ebx
-
 
147
        mov     ecx,ebx
-
 
148
        shr     ecx,2
-
 
149
        rep     movsd
79
        mov     eax,[sf_buf.bmp_header]
150
        sub     edi,ebx
-
 
151
        sub     esi,eax
80
        mov     ecx,[sf_buf.end]
152
        dec     edx
-
 
Line 153... Line 81...
153
        jnz     .next_str 
81
        mov     [ebp+12],ecx ;file size
154
 
82
        mov     [ebp+16],eax
Line 155... Line 83...
155
       draw_status saving
83
        mov     [ebp+21],dword file_name