home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 15
/
CD_ASCQ_15_070894.iso
/
news
/
sorcpak
/
mandzoom
/
zoom.s
< prev
Wrap
Text File
|
1993-09-02
|
2KB
|
125 lines
.comm source_width,4
.comm dest_width,4
.comm new_width,4
.comm horiz_code,4000
.align 4,0x90
.globl do_zoom
do_zoom:
movl %ebp,(source_width)
andl $65535,(source_width)
shrl $16,%ebp
movl %ebp,(dest_width)
subl %eax,%ebp
movl %eax,(new_width)
pusha
call calc_horiz_code
popa
cld
xorl %eax,%eax
movl %edx,%ecx
next_vert:
addl %ebx,%eax
jle skip_vert_copy
pushl %eax
pushl %esi
call horiz_code
popl %esi
popl %eax
addl %ebp,%edi
subl %edx,%eax
jle skip_vert_copy
copy_next_vert:
pushl %ecx
pushl %esi
movl %edi,%esi
subl (dest_width),%esi
movl (new_width),%ecx
shrl $1,%ecx
rep
movsw
jnc skip_movsb
movsb
skip_movsb:
popl %esi
popl %ecx
addl %ebp,%edi
subl %edx,%eax
jg copy_next_vert
skip_vert_copy:
addl (source_width),%esi
decl %ecx
jnz next_vert
ret
.align 4,0x90
calc_horiz_code:
xorl %ebp,%ebp
leal horiz_code,%edi
movl %ecx,%esi
next_horiz:
addl %eax,%ebp
jle skip_horiz_copy
movl $0x0788068a,(%edi)
movb $0x47,4(%edi)
addl $5,%edi
subl %esi,%ebp
jle skip_horiz_copy
copy_next_horiz:
movw $0x0788,(%edi)
movb $0x47,2(%edi)
addl $3,%edi
subl %esi,%ebp
jg copy_next_horiz
skip_horiz_copy:
movb $0x46,(%edi)
incl %edi
decl %ecx
jnz next_horiz
movb $0xc3,(%edi)
ret