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 ? |