Subversion Repositories Kolibri OS

Rev

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

Rev 131 Rev 205
Line 2... Line 2...
2
;
2
;
3
; Written in pure assembler by Ivushkin Andrey aka Willow
3
; Written in pure assembler by Ivushkin Andrey aka Willow
4
;
4
;
5
; Created: December 16, 2004
5
; Created: December 16, 2004
6
;
6
;
7
; Last changed: February 2, 2005
7
; Last changed: August 27, 2006
8
;
8
;
9
; Compile with FASM
9
; Compile with FASM
Line 10... Line 10...
10
 
10
 
11
; BGI constants
11
; BGI constants
Line 235... Line 235...
235
  .fload:
235
  .fload:
236
    mov  dword[.font],edx ; filename
236
    mov  dword[.font],edx ; filename
237
    mov  esi,edi     ; esi->FontName
237
    mov  esi,edi     ; esi->FontName
238
    mov  [.dest],edi ; ptr to load font
238
    mov  [.dest],edi ; ptr to load font
239
if ~ BGI_LEVEL eq KERNEL
239
if ~ BGI_LEVEL eq KERNEL
240
    mov  [.fsize],1
-
 
241
    mov  eax,58
240
        mov     eax, 70
242
    mov  ebx,.fontinfo
241
        mov     ebx, .fontattr
243
    int  0x40
242
        int     0x40
244
    test eax,eax
243
        test    eax, eax
245
    jnz   .fail
244
        jnz     .fail
246
    dps2  '1'
245
        dps2    '1'
247
    shr  ebx,9
246
        mov     eax, [.fileattr+32]
248
    inc  ebx
-
 
249
    mov  [.fsize],ebx
247
        mov     [.fsize], eax
250
    mov  ebx,.fontinfo
248
    mov  ebx,.fontinfo
251
    mov  eax,58
249
    mov  eax,70
252
    int  0x40	     ; ebx - file size
250
    int  0x40	     ; ebx - file size
253
else
251
else
254
    push edi esi edx
252
    push edi esi edx
255
    mov  eax,.font
253
    mov  eax,.font
256
    xor  ebx,ebx
254
    xor  ebx,ebx
Line 338... Line 336...
338
 
336
 
339
if ~ BGI_LEVEL eq KERNEL
337
if ~ BGI_LEVEL eq KERNEL
340
.fontinfo:
338
.fontinfo:
341
	dd 0
339
	dd 0
-
 
340
	dd 0
342
	dd 0
341
	dd 0
343
.fsize	dd 0
342
.fsize	dd 0
344
.dest	dd 0
343
.dest	dd 0
345
	dd 0x10000
344
.fontfullname:
346
	db BGIFONT_PATH
345
	db BGIFONT_PATH
-
 
346
.font	db 'FONT.CHR',0
-
 
347
 
-
 
348
.fontattr:
-
 
349
        dd      5
-
 
350
        dd      0
-
 
351
        dd      0
-
 
352
        dd      0
-
 
353
        dd      .fileattr
-
 
354
        db      0
-
 
355
        dd      .fontfullname
347
.font	db 'FONT.CHR',0
356
.fileattr rd 40/4
348
else
357
else
349
  .dest   dd 0
358
  .dest   dd 0
350
  .font   db 'FONT    CHR'
359
  .font   db 'FONT    CHR'
351
  .okflag db ' ',0
360
  .okflag db ' ',0
Line 477... Line 486...
477
    movzx eax,byte[ebx+eax]
486
    movzx eax,byte[ebx+eax]
478
    add  edx,eax
487
    add  edx,eax
479
    loop .next
488
    loop .next
480
    mov  ecx,edx ; ecx - x size
489
    mov  ecx,edx ; ecx - x size
481
    movzx dx,byte[edi+6]
490
    movzx dx,byte[edi+6]
-
 
491
    mov  [BGIheight],dx
482
    mov  ebx,[esp+36]
492
    mov  ebx,[esp+36]
483
    and  ebx,BGI_HAMASK
493
    and  ebx,BGI_HAMASK
484
    cmp  ebx,BGI_HARIGHT
494
    cmp  ebx,BGI_HARIGHT
485
    je   .nova
495
    je   .nova
486
    ja   .subv
496
    ja   .subv
Line 688... Line 698...
688
.y	 dw ?
698
.y	 dw ?
Line 689... Line 699...
689
 
699
 
690
.color	 dd ?
700
.color	 dd ?
691
.vec_end dd ?
701
.vec_end dd ?
692
BGIfont_Ptr  dd 0
702
BGIfont_Ptr  dd 0
693
width  dd ?
703
BGIheight dw ?
694
deform dd ?
704
deform dd ?
695
BGIangle dd ?
705
BGIangle dd ?
696
Xscale  dd ?
706
Xscale  dd ?