xset.s 360 B

123456789101112131415161718192021222324252627
  1. .define xset
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. !bitnr in R1
  8. !size (bytes) in R0
  9. xset:
  10. popl saveret, *RR14
  11. sra R0
  12. ld R2, R0
  13. 1: push *RR14, $0
  14. djnz R0, 1b
  15. div RR0, $020 !R0: bitnr, R1: wordnr
  16. cp R1, R2
  17. jr UGE, 2f
  18. ldk R2, $0
  19. set R2, R0
  20. sla R1
  21. ld RR14(R1), R2
  22. 3: pushl *RR14, saveret
  23. ret
  24. 2: push *RR14, $ESET
  25. calr trp
  26. jr 3b