|
|
1.1 root 1: ;
2:
3: ; quickzero(char *place, long size): zero an area of memory. "size" is
4:
5: ; the number of 256 byte blocks in the area, and must be > 0.
6:
7: ; registers changed: d0 and a0
8:
9: ;
10:
11: ; $Log: quickzer.s,v $
12:
13: ; Revision 1.1 1991/05/30 17:23:58 AGK
14:
15: ; Initial revision
16:
17: ;
18:
19: SECTION TEXT
20:
21:
22:
23: XDEF _quickzero
24:
25: _quickzero:
26:
27: move.l 4(sp),a0 ; place to zero at
28:
29: move.l 8(sp),d0 ; number of blocks
30:
31: movem.l d1-d7/a1,-(sp) ; save registers
32:
33: moveq.l #0,d1 ; zero them out
34:
35: moveq.l #0,d2
36:
37: moveq.l #0,d3
38:
39: moveq.l #0,d4
40:
41: moveq.l #0,d5
42:
43: moveq.l #0,d6
44:
45: moveq.l #0,d7
46:
47: move.l d1,a1
48:
49: subq.l #1,d0 ; adjust for dbra loop
50:
51: loop:
52:
53: movem.l d1-d7/a1,(a0) ; zero the memory, 32 bytes at a time
54:
55: movem.l d1-d7/a1,32(a0)
56:
57: movem.l d1-d7/a1,64(a0)
58:
59: movem.l d1-d7/a1,96(a0)
60:
61: movem.l d1-d7/a1,128(a0)
62:
63: movem.l d1-d7/a1,160(a0)
64:
65: movem.l d1-d7/a1,192(a0)
66:
67: movem.l d1-d7/a1,224(a0)
68:
69: lea 256(a0),a0
70:
71: dbra d0,loop
72:
73: ;
74:
75: movem.l (sp)+,d1-d7/a1 ; restore regs
76:
77: rts ; and leave
78:
79: END
80:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.