sts.s 427 B

12345678910111213141516171819202122232425262728293031323334
  1. .define .sts
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. ! d0 : # bytes
  7. ! a0 : destination address
  8. ! a1 : return address
  9. .sect .text
  10. .sts:
  11. move.l (sp)+, a1
  12. move.l (sp)+, d0
  13. move.l (sp)+, a0
  14. cmp.l #1, d0
  15. bne 1f
  16. move.l (sp)+, d0
  17. move.b d0, (a0)
  18. bra 4f
  19. 1: cmp.l #2, d0
  20. bne 2f
  21. move.l (sp)+, d0
  22. move.w d0, (a0)
  23. bra 4f
  24. 2:
  25. asr.l #2, d0
  26. 3:
  27. move.l (sp)+, (a0)+
  28. sub.l #1, d0
  29. bne 3b
  30. 4:
  31. jmp (a1) ! return
  32. .align 2