File:  [Atari MiNT] / MiNT / src / asm / quickzer.s
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:55:36 2018 UTC (8 years, 1 month ago) by root
Branches: mint, MAIN
CVS tags: mint095, HEAD
MiNT 0.95 pl13

;

; quickzero(char *place, long size): zero an area of memory. "size" is

; the number of 256 byte blocks in the area, and must be > 0.

; registers changed: d0 and a0

;

; $Log: quickzer.s,v $
; Revision 1.1.1.1  2018/04/24 17:55:36  root
; MiNT 0.95 pl13
;

; Revision 1.1  1991/05/30  17:23:58  AGK

; Initial revision

;

	SECTION	TEXT

	

	XDEF	_quickzero

_quickzero:

	move.l	4(sp),a0	; place to zero at

	move.l	8(sp),d0	; number of blocks

	movem.l	d1-d7/a1,-(sp)	; save registers

	moveq.l	#0,d1		; zero them out

	moveq.l	#0,d2

	moveq.l	#0,d3

	moveq.l	#0,d4

	moveq.l	#0,d5

	moveq.l	#0,d6

	moveq.l	#0,d7

	move.l	d1,a1

	subq.l	#1,d0		; adjust for dbra loop

loop:

	movem.l	d1-d7/a1,(a0)	; zero the memory, 32 bytes at a time

	movem.l	d1-d7/a1,32(a0)

	movem.l	d1-d7/a1,64(a0)

	movem.l	d1-d7/a1,96(a0)

	movem.l	d1-d7/a1,128(a0)

	movem.l	d1-d7/a1,160(a0)

	movem.l	d1-d7/a1,192(a0)

	movem.l	d1-d7/a1,224(a0)

	lea	256(a0),a0

	dbra	d0,loop

;

	movem.l	(sp)+,d1-d7/a1	; restore regs

	rts			; and leave

	END


unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.