Initial commit
This commit is contained in:
244
SOURCES/ADFLI_A.ASM
Normal file
244
SOURCES/ADFLI_A.ASM
Normal file
@@ -0,0 +1,244 @@
|
||||
;----------------------------------------------------------------------------
|
||||
;
|
||||
;' ADFLI.ASM 386
|
||||
;' (c) Adeline 1994
|
||||
;
|
||||
;----------------------------------------------------------------------------
|
||||
.386P
|
||||
.model SMALL, SYSCALL
|
||||
;----------------------------------------------------------------------------
|
||||
.data
|
||||
;----------------------------------------------------------------------------
|
||||
include \projet\lib386\lib_svga\svga.ash
|
||||
;----------------------------------------------------------------------------
|
||||
.code
|
||||
|
||||
public NoLanguage DrawFrame
|
||||
public NoLanguage UpdateFrame
|
||||
public NoLanguage BlackFrame
|
||||
public NoLanguage CopyFrame
|
||||
|
||||
; public NoLanguage SetPal
|
||||
; public NoLanguage CpyPal
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
DrawFrame proc uses esi edi ebx,\
|
||||
ptframe:DWORD, deltax:DWORD, deltay:DWORD
|
||||
|
||||
mov esi, ptframe
|
||||
mov edi, Log
|
||||
mov edx, edi
|
||||
xor eax, eax
|
||||
NewLine:
|
||||
lodsb ; Nb Block
|
||||
or al, al
|
||||
je EndLine
|
||||
mov bl, al
|
||||
SameLine:
|
||||
lodsb
|
||||
test al, al
|
||||
js short CopyPix ;
|
||||
mov ecx, eax
|
||||
;----------------------
|
||||
lodsb
|
||||
rep stosb
|
||||
;----------------------
|
||||
dec bl
|
||||
jne short SameLine
|
||||
jmp short EndLine
|
||||
CopyPix:
|
||||
;----------------------
|
||||
neg al
|
||||
mov ecx, eax
|
||||
shr ecx, 2
|
||||
rep movsd
|
||||
mov cl, al
|
||||
and cl, 11b
|
||||
rep movsb
|
||||
;----------------------
|
||||
dec bl
|
||||
jne short SameLine
|
||||
|
||||
EndLine:
|
||||
add edx, [deltax]
|
||||
mov edi, edx
|
||||
dec dword ptr [deltay]
|
||||
jne short NewLine
|
||||
EndDrawFrame:
|
||||
ret
|
||||
DrawFrame endp
|
||||
;----------------------------------------------------------------------------
|
||||
UpdateFrame proc uses esi edi ebx,\
|
||||
ptframe:DWORD, deltax:DWORD
|
||||
|
||||
local cptline :WORD
|
||||
|
||||
mov esi, ptframe
|
||||
mov edi, Log
|
||||
xor eax, eax
|
||||
|
||||
lodsw
|
||||
mov edx, deltax
|
||||
imul edx
|
||||
add edi, eax
|
||||
mov edx, edi
|
||||
lodsw
|
||||
mov [cptline], ax
|
||||
xor eax, eax
|
||||
NewLine:
|
||||
lodsb ; Nb Block
|
||||
or al, al
|
||||
je EndLine
|
||||
mov bl, al
|
||||
SameLine:
|
||||
lodsb
|
||||
add edi, eax
|
||||
|
||||
lodsb
|
||||
test al, al
|
||||
js short RepeatPix ;
|
||||
|
||||
mov ecx, eax
|
||||
shr ecx, 2
|
||||
rep movsd
|
||||
mov cl, al
|
||||
and cl, 11b
|
||||
rep movsb
|
||||
|
||||
dec bl
|
||||
jne short SameLine
|
||||
jmp short EndLine
|
||||
RepeatPix:
|
||||
neg al
|
||||
mov ecx, eax
|
||||
lodsb
|
||||
rep stosb
|
||||
|
||||
dec bl
|
||||
jne short SameLine
|
||||
EndLine:
|
||||
add edx, deltax
|
||||
mov edi, edx
|
||||
dec word ptr [cptline]
|
||||
jne short NewLine
|
||||
EndUpdateFrame:
|
||||
ret
|
||||
UpdateFrame endp
|
||||
;----------------------------------------------------------------------------
|
||||
BlackFrame proc uses edi
|
||||
|
||||
mov edi, Log
|
||||
xor eax, eax
|
||||
mov edx, 200
|
||||
NextLine:
|
||||
mov ecx, 320/4
|
||||
rep stosd
|
||||
add edi, 320
|
||||
dec edx
|
||||
jne NextLine
|
||||
ret
|
||||
BlackFrame endp
|
||||
;----------------------------------------------------------------------------
|
||||
CopyFrame proc uses esi edi,\
|
||||
ptsrc:DWORD
|
||||
|
||||
mov esi, ptsrc
|
||||
mov edi, Log
|
||||
mov edx, 200
|
||||
NextLine:
|
||||
mov ecx, 320/4
|
||||
rep movsd
|
||||
add edi, 320
|
||||
dec edx
|
||||
jne NextLine
|
||||
|
||||
ret
|
||||
CopyFrame endp
|
||||
;----------------------------------------------------------------------------
|
||||
|
||||
comment #
|
||||
SetPal proc uses esi edi ebx,\
|
||||
ptsrc:DWORD
|
||||
|
||||
mov esi, ptsrc
|
||||
xor edi, edi
|
||||
|
||||
lodsw
|
||||
mov bx, ax
|
||||
test bx, bx
|
||||
je EndSetPal
|
||||
Again:
|
||||
xor eax, eax
|
||||
lodsb
|
||||
add di, ax
|
||||
lodsb
|
||||
mov ecx, eax
|
||||
or ecx, ecx
|
||||
jne PlusLoin
|
||||
mov ecx, 256
|
||||
PlusLoin:
|
||||
mov dx, 3C8h
|
||||
mov ax, di
|
||||
out dx, al
|
||||
inc di
|
||||
inc dx
|
||||
lodsb
|
||||
out dx, al
|
||||
lodsb
|
||||
out dx, al
|
||||
lodsb
|
||||
out dx, al
|
||||
loop PlusLoin
|
||||
|
||||
dec bx
|
||||
jne Again
|
||||
EndSetPal:
|
||||
ret
|
||||
SetPal endp
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
CpyPal proc uses esi edi ebx,\
|
||||
ptsrc:DWORD, ptdst:DWORD
|
||||
|
||||
mov esi, ptsrc
|
||||
mov edi, ptdst
|
||||
lodsw
|
||||
mov bx, ax
|
||||
test bx, bx
|
||||
je EndCpyPal
|
||||
Again:
|
||||
xor eax, eax
|
||||
lodsb
|
||||
add di, ax
|
||||
add di, ax
|
||||
add di, ax
|
||||
lodsb
|
||||
or al, al
|
||||
jne PlusLoin
|
||||
mov eax, 256
|
||||
PlusLoin:
|
||||
mov ecx, eax
|
||||
add ecx, eax
|
||||
add ecx, eax
|
||||
mfp0: lodsb
|
||||
shl al, 2
|
||||
stosb
|
||||
loop mfp0
|
||||
; rep movsb
|
||||
dec bx
|
||||
jne Again
|
||||
EndCpyPal:
|
||||
ret
|
||||
CpyPal endp
|
||||
|
||||
#
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
; The
|
||||
End
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user