Subversion Repositories Kolibri OS

Rev

Rev 1167 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1167 Rev 1169
Line 22... Line 22...
22
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
;*****************************************************************************
25
;*****************************************************************************
Line 26... Line -...
26
 
-
 
27
;Fonts library
-
 
28
;  
26
 
Line 29... Line 27...
29
;;;;;;;;;;;;;;;;;;
27
;;;;;;;;;;;;;;;;;;
Line 30... Line 28...
30
 
28
 
Line 96... Line 94...
96
        lea     edi,[ebp+0x28] ;â edi óêàçàòåëü íà íà÷àëî èìåíè.
94
        lea     edi,[ebp+0x28] ;â edi óêàçàòåëü íà íà÷àëî èìåíè.
97
        xor     eax,eax
95
        xor     eax,eax
98
        mov     ecx,263
96
        mov     ecx,263
99
        repne    scasb   ;íàéäåì êîíåö ñòðîêè
97
        repne    scasb   ;íàéäåì êîíåö ñòðîêè
100
;;;;;;;;;;;;;;;;;;;;;;;
98
;;;;;;;;;;;;;;;;;;;;;;;
101
.next_a:
-
 
102
        sub     edi,5   ;.ksf,0
99
        sub     edi,5   ;.ksf,0
103
        mov     esi,dword name_font
100
        lea     esi,[name_font]
104
        mov     ecx,name_font_e-name_font
101
        mov     eax,dword[edi]
-
 
102
        or      eax,0x20202000  ; ñäåëàåì ðàñøèðåíèå ñòðî÷íûìè áóêâàìè.
105
        repe    cmpsb
103
        cmp     eax,dword[esi]
106
        jnz     @f
104
        jnz     @f
-
 
105
 
107
;;;;;;;; óðà ýòî íàø ôàéë ò.å. íàø øðèôò ìû íàøëè íóæíûé ôàéëèê ))
106
;;;;;;;; óðà ýòî íàø ôàéë ò.å. íàø øðèôò ìû íàøëè íóæíûé ôàéëèê ))
108
;òåïåðü íóæíî òî÷íî óáåäèòüñÿ ÷òî ýòî íàø è òîëüêî íàø ôàéëèê 
107
;òåïåðü íóæíî òî÷íî óáåäèòüñÿ ÷òî ýòî íàø è òîëüêî íàø ôàéëèê 
109
;çàãðóçèì çàãîëîâîê ôàéëà è óçíàåì åãî ðàçìåð ãëèôà.
108
;çàãðóçèì çàãîëîâîê ôàéëà è óçíàåì åãî ðàçìåð ãëèôà.
-
 
109
 
110
        call    alloc_mem       ; âûäåëèì îçó ñâîèõ ïåðåìåííûõ
110
        call    alloc_mem       ; âûäåëèì îçó ñâîèõ ïåðåìåííûõ
111
; ñåé÷àñ íàì íóæíî ñôîðìèðîâàòü èìÿ ôàéëà ñ ïîëíûì ïóòåì        
111
; ñåé÷àñ íàì íóæíî ñôîðìèðîâàòü èìÿ ôàéëà ñ ïîëíûì ïóòåì        
112
        mov     eax,dword [alloc_memory_point]
112
        mov     eax,dword [alloc_memory_point]
113
        lea     edi,dword [eax+4]
113
        lea     edi,dword [eax+4]
114
        lea     esi,[name_fulder]
114
        lea     esi,[name_fulder]
Line 151... Line 151...
151
; ñåé÷àñ íóæíî ïåðåðàñïðåäåëèòü áëîêè ò.å. ïî ìåðå íàõîæäåíèÿ áóäåì ïåðåíîñèòü áëîêè
151
; ñåé÷àñ íóæíî ïåðåðàñïðåäåëèòü áëîêè ò.å. ïî ìåðå íàõîæäåíèÿ áóäåì ïåðåíîñèòü áëîêè
152
; â íà÷àëî áóôåðà
152
; â íà÷àëî áóôåðà
Line 153... Line 153...
153
 
153
 
154
        mov     dword [save_point_nt],ebp
154
        mov     dword [save_point_nt],ebp
155
        pop     ecx
155
        pop     ecx
156
        mov     dword [esp+28],0
-
 
157
        popad
156
        xor     eax,eax
158
        ret
-
 
Line 159... Line 157...
159
 
157
        jmp     .exit
160
 
158
 
161
align 4
159
align 4
162
@@:     pop     ecx
160
@@:     pop     ecx
163
        add     ebp,304
161
        add     ebp,304
164
        dec     ecx
162
        dec     ecx
165
        jnz     .start_loop
163
        jnz     .start_loop
166
;        loop    .start_loop
164
;        loop    .start_loop
Line 167... Line 165...
167
;        xor     eax,eax
165
        or     eax,-1
168
;;;;;;;; ïðîøëèñü - âñå èíòåðåñóùþùèå øðèôòû ïåðåìåñòèëè â íà÷àëî áëîêà.
166
;;;;;;;; ïðîøëèñü - âñå èíòåðåñóùþùèå øðèôòû ïåðåìåñòèëè â íà÷àëî áëîêà.
169
 
167
 
Line 222... Line 220...
222
;load font
220
;load font
223
        mov     ebx,dword struct_f_info
221
        mov     ebx,dword struct_f_info
224
        mov     eax,70
222
        mov     eax,70
225
        mcall
223
        mcall
226
        test    eax,eax
224
        test    eax,eax
227
        jnz     @f 
225
        jnz     .exit 
Line 228... Line 226...
228
 
226
 
229
        lea     eax,[buffer_read_d]
227
        lea     eax,[buffer_read_d]
230
        mov     eax,dword [eax]
228
        mov     eax,dword [eax]
231
        mov     ebx,dword [eax+8]
229
        mov     ebx,dword [eax+8]
232
        add     eax,ebx
230
        add     eax,ebx
233
;        add     eax,dword [eax+8]
231
;        add     eax,dword [eax+8]
234
;        add     eax,dword [buffer_read_d]
232
;        add     eax,dword [buffer_read_d]
235
        mov     dword [font_array_data],eax
233
        mov     dword [font_array_data],eax
236
        mov     dword [esp+28],0
234
        xor     eax,eax
237
;        pop     ecx
-
 
238
popad
-
 
Line 239... Line 235...
239
ret 4
235
        jmp     .ok
240
 
236
 
241
;here error file system
237
;here error file system
-
 
238
align 4
-
 
239
.exit:
242
align 4
240
        or      eax,-1
243
@@:
241
align 4
244
        or      dword [esp+28],-1       ;âåðíåì îøèáêó 
242
.ok:    mov     dword [esp+28],eax       ;âåðíåì îøèáêó 
Line 245... Line 243...
245
        popad
243
        popad
Line 316... Line 314...
316
        mov     ecx, dword [fulder_array_point]
314
        mov     ecx, dword [fulder_array_point]
317
        mov     eax,68
315
        mov     eax,68
318
        mov     ebx,13
316
        mov     ebx,13
319
        mcall
317
        mcall
320
        test    eax,eax
318
        test    eax,eax
321
        jnz     @f
319
;        jnz     @f
322
        or      dword [esp+28],-1       ;âåðíåì îøèáêó 
320
        mov      dword [esp+28],eax       ;âåðíåì îøèáêó 
323
align 4
321
;align 4
324
@@:
322
;@@:
325
popad
323
popad
326
        ret
324
        ret
327
align 4
325
align 4
328
free_font:
326
free_font:
329
;îñâîáîäèòü ïàìÿòü âûäåëåíóþ äëÿ ïîëó÷åíèÿ áëîêîâ ÁÄÂÊ
327
;îñâîáîäèòü ïàìÿòü âûäåëåíóþ äëÿ ïîëó÷åíèÿ áëîêîâ ÁÄÂÊ
Line 331... Line 329...
331
        mov     ecx, dword [font_array_point]
329
        mov     ecx, dword [font_array_point]
332
        mov     eax,68
330
        mov     eax,68
333
        mov     ebx,13
331
        mov     ebx,13
334
        mcall
332
        mcall
335
        test    eax,eax
333
        test    eax,eax
336
        jnz     @f
334
;        jnz     @f
337
        or      dword [esp+28],-1       ;âåðíåì îøèáêó 
335
        mov      dword [esp+28],eax       ;âåðíåì îøèáêó 
338
align 4
336
;align 4
339
@@:
337
;@@:
340
popad
338
popad
341
        ret
339
        ret
Line 342... Line 340...
342
 
340
 
343
align 4
341
align 4
Line 413... Line 411...
413
font_array_data   dd 0x0        ; ðåàëüíûå äàííûå ò.å. ìàòðèöà øðèôòà
411
font_array_data   dd 0x0        ; ðåàëüíûå äàííûå ò.å. ìàòðèöà øðèôòà
414
save_ebp          dd 0x0
412
save_ebp          dd 0x0
415
save_point_nt     dd 0x0
413
save_point_nt     dd 0x0
416
name_fulder       db '/sys/FONTS',0
414
name_fulder       db '/sys/FONTS',0
417
name_fuld_end=     ($-name_fulder) -1
415
name_fuld_end=     ($-name_fulder) -1
418
name_font         db '.ksf'
416
name_font         db '.ksf',0
419
name_font_e:
-
 
420
type_fnt          db 'kf01'
417
type_fnt          db 'kf01'
421
type_fnt_e:
-
 
Line 422... Line 418...
422
 
418
 
423
 
419