inn.s 405 B

12345678910111213141516171819202122232425262728
  1. .define inn
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. !bitnr in R1
  8. !size (bytes) in R2
  9. inn:
  10. ld R3, R2
  11. sra R2
  12. ldk R0, $0
  13. div RR0, $020 !R0: bitnr, R1: wordnr
  14. cp R1, R2
  15. jr UGE, 1f !R1 must be < R2
  16. inc R1, $2 !R1 contains nr of words from top stack
  17. sla R1
  18. ld R1, RR14(R1)
  19. bit R1, R0
  20. jr EQ, 1f
  21. ldk R0, $1
  22. jr 2f
  23. 1: ldk R0, $0
  24. 2: ld R1, R3
  25. popl RR2, *RR14
  26. add R15, R1
  27. jp *RR2