/programs/demos/bgitest/trunk/bgifont.inc |
---|
4,7 → 4,7 |
; |
; Created: December 16, 2004 |
; |
; Last changed: February 2, 2005 |
; Last changed: August 27, 2006 |
; |
; Compile with FASM |
237,18 → 237,16 |
mov esi,edi ; esi->FontName |
mov [.dest],edi ; ptr to load font |
if ~ BGI_LEVEL eq KERNEL |
mov [.fsize],1 |
mov eax,58 |
mov ebx,.fontinfo |
mov eax, 70 |
mov ebx, .fontattr |
int 0x40 |
test eax,eax |
jnz .fail |
dps2 '1' |
shr ebx,9 |
inc ebx |
mov [.fsize],ebx |
mov eax, [.fileattr+32] |
mov [.fsize], eax |
mov ebx,.fontinfo |
mov eax,58 |
mov eax,70 |
int 0x40 ; ebx - file size |
else |
push edi esi edx |
340,11 → 338,22 |
.fontinfo: |
dd 0 |
dd 0 |
dd 0 |
.fsize dd 0 |
.dest dd 0 |
dd 0x10000 |
.fontfullname: |
db BGIFONT_PATH |
.font db 'FONT.CHR',0 |
.fontattr: |
dd 5 |
dd 0 |
dd 0 |
dd 0 |
dd .fileattr |
db 0 |
dd .fontfullname |
.fileattr rd 40/4 |
else |
.dest dd 0 |
.font db 'FONT CHR' |
479,6 → 488,7 |
loop .next |
mov ecx,edx ; ecx - x size |
movzx dx,byte[edi+6] |
mov [BGIheight],dx |
mov ebx,[esp+36] |
and ebx,BGI_HAMASK |
cmp ebx,BGI_HARIGHT |
690,7 → 700,7 |
.color dd ? |
.vec_end dd ? |
BGIfont_Ptr dd 0 |
width dd ? |
BGIheight dw ? |
deform dd ? |
BGIangle dd ? |
Xscale dd ? |
/programs/demos/bgitest/trunk/bgitest.asm |
---|
7,7 → 7,7 |
; Last changed: February 2, 2005 |
; |
BGIFONT_PATH equ '/RD/1/' |
BGIFONT_PATH equ '/RD/1/FONTS/' |
_X equ 340 |
_Y equ 240 |
35,8 → 35,8 |
mcall 47,0x80100,,,0x10ffffff |
jecxz .nofont |
lea ebx,[edx+80 shl 16+12] |
mov edx,_BGIfont_Prepare.dest+8 |
mov esi,BGIfont_Coo-1 |
mov edx,_BGIfont_Prepare.fontfullname |
mov esi,_BGIfont_Prepare.fontattr-1 |
sub esi,edx |
add ecx,0x3b800b8 |
BGIfont_Outtext |
/programs/demos/bgitest/trunk/macros.inc |
---|
143,10 → 143,6 |
; optimize the code for size |
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp> |
178,7 → 174,7 |
macro mov arg1,arg2 |
{ |
if (arg1 in __regs) & (arg2 eqtype 0) |
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0')) |
if (arg2) = 0 |
xor arg1,arg1 |
else if (arg2) = 1 |
222,7 → 218,13 |
.x_size dd ? ; +42 |
.y_size dd ? ; +46 |
.slot_state dw ? ; +50 |
rb (1024-52) |
dw ? ; +52 - reserved |
.client_left dd ? ; +54 |
.client_top dd ? ; +58 |
.client_width dd ? ; +62 |
.client_height dd ? ; +66 |
.wnd_state db ? ; +70 |
rb (1024-71) |
} |
struct process_information |