home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / sillies / silly1 / !Rippler / s / asmrip next >
Text File  |  1990-03-17  |  1KB  |  74 lines

  1. a1 RN 0
  2. a2 RN 1
  3. a3 RN 2
  4. a4 RN 3
  5. v1 RN 4
  6. v2 RN 5
  7. v3 RN 6
  8. v4 RN 7
  9. v5 RN 8
  10. v6 RN 9
  11. sl RN 10
  12. fp RN 11
  13. ip RN 12
  14. sp RN 13
  15. lr RN 14
  16. pc RN 15
  17.  
  18.  
  19.     AREA |C$$code|, CODE, READONLY
  20.  
  21. |x$codeseg|
  22.  
  23.         EXPORT    asm_ripple
  24. asm_ripple
  25.         STMFD    sp!, {v1-v6, lr}
  26.         MOV        lr, a4, ASR #16                ; lr = rip
  27.         MOV        a4, a4, LSL #16
  28.         MOV        a4, a4, LSR #16
  29.         SUB        a4, a4, #1                    ; a4 = SIZE - 1
  30.         MOV        v1, #0                        ; v1 = i
  31. next_line
  32.         ADD        v2, v1, lr                    ; v2 = off
  33.         CMP        v2, a4
  34.         BLS        wave_line
  35. copy_line
  36.         ADD        v3, v1, v1, ASL #2
  37.         ADD        v3, a1, v3, ASL #6            ; v3 = src
  38.         B        do_line
  39. wave_line
  40.         LDR        v2, [a3, v2, ASL #2]
  41.         ADD        v2, v2, v1
  42.         CMP        v2, #255
  43.         BLS        src_line
  44.         MOV        v2, #&44
  45.         ADD        v2, v2, v2, ASL #8
  46.         ADD        v2, v2, v2, ASL #16
  47.         MOV        v3, v2
  48.         MOV        v4, v2
  49.         MOV        v5, v2
  50.     GBLA    x
  51. x    SETA    20
  52.     WHILE    x > 0
  53.         STMIA    a2!, {v2-v5}
  54. x    SETA    x - 1
  55.     WEND
  56.         B        end_line
  57. src_line
  58.         ADD        v3, v2, v2, ASL #2
  59.         ADD        v3, a1, v3, ASL #6
  60. do_line
  61. x    SETA    20
  62.     WHILE    x > 0
  63.         LDMIA    v3!, {v2,v4-v6}
  64.         STMIA    a2!, {v2,v4-v6}
  65. x    SETA    x - 1
  66.     WEND
  67. end_line
  68.         ADD        v1, v1, #1
  69.         CMP        v1, #256
  70.         BNE        next_line
  71.         LDMFD    sp!, {v1-v6, pc}^
  72.         END
  73.  
  74.