home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0600 / CCE_0657.ZIP / CCE_0657.PD / BLOCK_BY.GAS < prev    next >
Text File  |  1993-09-09  |  962b  |  65 lines

  1.  
  2.     .globl block_it
  3.  
  4.     .text
  5. | **** Macht den "Nadeldreher": Aufruf: (needle-warp?)
  6. | **** block_it( *dest(4), *src(8), bweite(12), offset(14), bytes_per_spalte(18) )
  7. block_it:
  8.     moveml    a0-a2/d0-d6,a7@-    | ungetestet!
  9.     movew    a7@(58),d2
  10.     subqw    #1,d2
  11.     movel    a7@(54),d1
  12.     movew    a7@(52),d0
  13.     subqw    #1,d0
  14.     moveal    a7@(48),a1
  15.     moveal    a7@(44),a0
  16.  
  17. loop1:    | i-loop
  18.     moveq    #7,d3
  19. loop2:    | j-loop
  20.     movew    d2,d4    | Wie viele Bytes?
  21.     moveal    a1,a2
  22. loop3:    | k-loop
  23.     moveq    #0,d6
  24.     btst    d3,a2@
  25.     beq    ns0
  26.     bset    #7,d6
  27. ns0:    addal    d1,a2
  28.     btst    d3,a2@
  29.     beq    ns1
  30.     bset    #6,d6
  31. ns1:    addal    d1,a2
  32.     btst    d3,a2@
  33.     beq    ns2
  34.     bset    #5,d6
  35. ns2:    addal    d1,a2
  36.     btst    d3,a2@
  37.     beq    ns3
  38.     bset    #4,d6
  39. ns3:    addal    d1,a2
  40.     btst    d3,a2@
  41.     beq    ns4
  42.     bset    #3,d6
  43. ns4:    addal    d1,a2
  44.     btst    d3,a2@
  45.     beq    ns5
  46.     bset    #2,d6
  47. ns5:    addal    d1,a2
  48.     btst    d3,a2@
  49.     beq    ns6
  50.     bset    #1,d6
  51. ns6:    addal    d1,a2
  52.     btst    d3,a2@
  53.     beq    ns7
  54.     bset    #0,d6
  55. ns7:    addal    d1,a2
  56.     moveb    d6,a0@+
  57.     dbf    d4,loop3
  58.  
  59.     dbf    d3,loop2
  60.  
  61.     addql    #1,a1
  62.     dbf    d0,loop1
  63.     moveml    a7@+,a0-a2/d0-d6
  64.     rts
  65.