|
|
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: .globl _quickzero ! 12: ! 13: _quickzero: ! 14: ! 15: movel sp@(4), a0 | place to zero at ! 16: ! 17: movel sp@(8), d0 | number of blocks ! 18: ! 19: moveml d1-d7/a1, sp@- | save registers ! 20: ! 21: clrl d1 | zero them out ! 22: ! 23: movel d1, d2 ! 24: ! 25: movel d1, d3 ! 26: ! 27: movel d1, d4 ! 28: ! 29: movel d1, d5 ! 30: ! 31: movel d1, d6 ! 32: ! 33: movel d1, d7 ! 34: ! 35: movel d1, a1 ! 36: ! 37: subql #1, d0 | adjust for dbra loop ! 38: ! 39: loop: ! 40: ! 41: moveml d1-d7/a1, a0@ | zero the memory, 32 bytes at a time ! 42: ! 43: moveml d1-d7/a1, a0@(32) ! 44: ! 45: moveml d1-d7/a1, a0@(64) ! 46: ! 47: moveml d1-d7/a1, a0@(96) ! 48: ! 49: moveml d1-d7/a1, a0@(128) ! 50: ! 51: moveml d1-d7/a1, a0@(160) ! 52: ! 53: moveml d1-d7/a1, a0@(192) ! 54: ! 55: moveml d1-d7/a1, a0@(224) ! 56: ! 57: lea a0@(256), a0 ! 58: ! 59: dbra d0, loop ! 60: ! 61: | ! 62: ! 63: moveml sp@+, d1-d7/a1 | restore regs ! 64: ! 65: rts | and leave ! 66:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.