Initial commit
This commit is contained in:
216
LIB386/LIB_SVGA/FONT_A.ASM
Normal file
216
LIB386/LIB_SVGA/FONT_A.ASM
Normal file
@@ -0,0 +1,216 @@
|
||||
;----------------------------------------------------------------------------
|
||||
;
|
||||
;' Text_A.ASM 386
|
||||
;' (c) Adeline 1994
|
||||
;'
|
||||
;
|
||||
;----------------------------------------------------------------------------
|
||||
.386P
|
||||
jumps
|
||||
.model SMALL, SYSCALL
|
||||
;----------------------------------------------------------------------------
|
||||
.data
|
||||
;----------------------------------------------------------------------------
|
||||
include \projet\lib386\lib_svga\svga.ash
|
||||
|
||||
ALIGN 4
|
||||
|
||||
PtrFont dd 0
|
||||
DxFont dd ?
|
||||
|
||||
InterLeave dd 1
|
||||
InterSpace dd 10
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
.code
|
||||
|
||||
public NoLanguage CoulFont
|
||||
public NoLanguage SetFont
|
||||
public NoLanguage SizeFont
|
||||
public NoLanguage CarFont
|
||||
public NoLanguage Font
|
||||
|
||||
extrn NoLanguage CoulMask :PROC
|
||||
extrn NoLanguage AffMask_Asm :PROC
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;'
|
||||
CoulFont proc ,\
|
||||
coul:DWORD
|
||||
|
||||
movzx eax, byte ptr [coul]
|
||||
push eax
|
||||
Call CoulMask
|
||||
add esp, 4
|
||||
ret
|
||||
|
||||
CoulFont endp
|
||||
;----------------------------------------------------------------------------
|
||||
;'
|
||||
SetFont proc ,\
|
||||
ptfont:DWORD, inle:DWORD, insp:DWORD
|
||||
|
||||
mov eax, ptfont
|
||||
mov [PtrFont], eax
|
||||
|
||||
mov eax, inle
|
||||
mov [InterLeave], eax
|
||||
|
||||
mov eax, insp
|
||||
mov [InterSpace], eax
|
||||
|
||||
ret
|
||||
|
||||
SetFont endp
|
||||
;----------------------------------------------------------------------------
|
||||
;'
|
||||
SizeFont proc uses esi edi ,\
|
||||
chaine:DWORD
|
||||
|
||||
mov esi, [chaine]
|
||||
mov edi, [PtrFont]
|
||||
xor eax, eax
|
||||
xor edx, edx
|
||||
mov [DxFont], eax
|
||||
;' --------------------------------
|
||||
NextCar:
|
||||
lodsb
|
||||
|
||||
or al, al
|
||||
je short EndSizeFont
|
||||
|
||||
cmp al, 32
|
||||
jne PlusLoin0
|
||||
|
||||
mov edx, [InterSpace]
|
||||
add [DxFont], edx
|
||||
jmp short NextCar
|
||||
|
||||
PlusLoin0:
|
||||
mov edi, [PtrFont]
|
||||
add edi, [edi+eax*4]
|
||||
|
||||
|
||||
mov edx, [InterLeave]
|
||||
add [DxFont], edx
|
||||
|
||||
mov dl, byte ptr[edi]
|
||||
|
||||
add [DxFont], edx
|
||||
|
||||
jmp short NextCar
|
||||
;' --------------------------------
|
||||
EndSizeFont:
|
||||
mov eax, [DxFont]
|
||||
ret
|
||||
SizeFont endp
|
||||
;----------------------------------------------------------------------------
|
||||
CarFont proc uses esi edi ebx ebp,\
|
||||
xcar:DWORD, ycar:DWORD, car:DWORD
|
||||
|
||||
mov eax, car
|
||||
cmp eax, 32 ;' SPACE
|
||||
je Space
|
||||
|
||||
mov ebx, xcar
|
||||
mov ecx, ycar
|
||||
mov esi, [PtrFont]
|
||||
|
||||
mov edi, [PtrFont]
|
||||
add edi, [edi+eax*4]
|
||||
|
||||
xor edx, edx
|
||||
mov dl, [edi+0]
|
||||
add edx, [InterLeave]
|
||||
|
||||
push edx
|
||||
|
||||
Call AffMask_Asm
|
||||
|
||||
pop eax
|
||||
|
||||
ret
|
||||
Space:
|
||||
mov eax, [InterSpace]
|
||||
ret
|
||||
|
||||
CarFont endp
|
||||
;----------------------------------------------------------------------------
|
||||
;'
|
||||
Font proc uses esi edi ebx ebp,\
|
||||
xfont:DWORD, yfont:DWORD,chaine:DWORD
|
||||
|
||||
cmp dword ptr [PtrFont], 0
|
||||
je short EndFont
|
||||
|
||||
;' --------------------------------
|
||||
|
||||
mov esi, [chaine]
|
||||
mov edi, [PtrFont]
|
||||
mov ebx, [xfont]
|
||||
mov ecx, [yfont]
|
||||
xor eax, eax
|
||||
|
||||
jmp NextCar
|
||||
|
||||
;' --------------------------------
|
||||
Space:
|
||||
add ebx, [InterSpace]
|
||||
NextCar:
|
||||
xor eax, eax
|
||||
lodsb
|
||||
|
||||
or al, al
|
||||
je short EndFont
|
||||
|
||||
cmp al, 32
|
||||
je Space
|
||||
|
||||
PasSpace: mov edi, [PtrFont]
|
||||
add edi, [edi+eax*4]
|
||||
|
||||
xor edx, edx
|
||||
mov dl, byte ptr[edi]
|
||||
mov [DxFont], edx
|
||||
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
mov esi, [PtrFont]
|
||||
|
||||
Call AffMask_Asm
|
||||
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
|
||||
add ebx, [InterLeave]
|
||||
add ebx, [DxFont]
|
||||
|
||||
jmp short NextCar
|
||||
;' --------------------------------
|
||||
EndFont:
|
||||
ret
|
||||
Font endp
|
||||
;----------------------------------------------------------------------------
|
||||
; The
|
||||
End
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user