home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / mint / mint095s / quickzer.s < prev    next >
Encoding:
Text File  |  1993-08-03  |  852 b   |  34 lines

  1. |
  2. | quickzero(char *place, long size): zero an area of memory. "size" is
  3. | the number of 256 byte blocks in the area, and must be > 0.
  4. | registers changed: d0 and a0
  5. |
  6.     .globl    _quickzero
  7. _quickzero:
  8.     movel    sp@(4), a0    | place to zero at
  9.     movel    sp@(8), d0    | number of blocks
  10.     moveml    d1-d7/a1, sp@-    | save registers
  11.     clrl    d1        | zero them out
  12.     movel    d1, d2
  13.     movel    d1, d3
  14.     movel    d1, d4
  15.     movel    d1, d5
  16.     movel    d1, d6
  17.     movel    d1, d7
  18.     movel    d1, a1
  19.     subql    #1, d0        | adjust for dbra loop
  20. loop:
  21.     moveml    d1-d7/a1, a0@    | zero the memory, 32 bytes at a time
  22.     moveml    d1-d7/a1, a0@(32)
  23.     moveml    d1-d7/a1, a0@(64)
  24.     moveml    d1-d7/a1, a0@(96)
  25.     moveml    d1-d7/a1, a0@(128)
  26.     moveml    d1-d7/a1, a0@(160)
  27.     moveml    d1-d7/a1, a0@(192)
  28.     moveml    d1-d7/a1, a0@(224)
  29.     lea    a0@(256), a0
  30.     dbra    d0, loop
  31. |
  32.     moveml    sp@+, d1-d7/a1    | restore regs
  33.     rts            | and leave
  34.