home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
language
/
sozodlib
/
bzero.s
next >
Wrap
Text File
|
1991-03-07
|
764b
|
34 lines
* char *bzero(dest, len)
* register char *dest;
* register unsigned int len;
.text
.globl _bzero
_bzero:
move.l 4(a7),a0 ; destination
move.w 8(a7),d1 ; number of bytes
beq bzero4 ; skip the lot if none to zero
move.l a1,d0
btst #0,d0 ; odd alignment?
beq bzero0
clr.b (a0)+ ; zero first byte
subq.w #1,d1 ; and reduce count
bzero0:
move.w d1,d2 ; save full count value
lsr.w #2,d1 ; convert to long count
bra bzero2
bzero1:
clr.l (a0)+ ; word zero loop
bzero2:
dbra d1,bzero1
btst #1,d2 ; extra word to copy?
beq bzero3
clr.w (a0)+ ; zero residual word
bzero3:
btst #0,d2 ; extra odd byte to copy?
beq bzero4
clr.b (a0)+ ; zero last byte
bzero4:
move.l 4(a7),d0 ; return destination pointer
rts