dvu4.s 567 B

123456789101112131415161718192021222324252627282930313233343536
  1. .define Dvu4
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. ! This subroutine performs an unsigned division on fourbyte
  8. ! integers. For more details see dvi.s
  9. ! The only difference is that zeropage locations are twice as big.
  10. Dvu4:
  11. ldy #0
  12. sty UNSIGN ! it is unsigned
  13. jsr Pop
  14. stx ARTH
  15. sta ARTH+1
  16. jsr Pop
  17. stx ARTH+2
  18. sta ARTH+3 ! divisor in ARTH - ARTH+3
  19. jsr Pop
  20. stx ARTH+4
  21. sta ARTH+5
  22. jsr Pop
  23. stx ARTH+6
  24. sta ARTH+7 ! dividend in ARTH+4 - ARTH+7
  25. jsr Duv4
  26. lda ARTH+7
  27. ldx ARTH+6
  28. jsr Push
  29. lda ARTH+5
  30. ldx ARTH+4
  31. jmp Push ! store result