|
|
MiNT 1.04
; Copyright 1992 Eric R. Smith ; All rights reserved ; ; 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 ; 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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.