From 655ba3e6ee72a28e74cd6aacb449649f16351e3b Mon Sep 17 00:00:00 2001 From: uz Date: Wed, 4 Nov 2009 18:25:29 +0000 Subject: [PATCH] Added a C callable entry point for the division routine. git-svn-id: svn://svn.cc65.org/cc65/trunk@4442 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- libsrc/common/Makefile | 1 + libsrc/common/cc65_udiv32by16r16.s | 38 ++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 libsrc/common/cc65_udiv32by16r16.s diff --git a/libsrc/common/Makefile b/libsrc/common/Makefile index 7b0864280..700401dd9 100644 --- a/libsrc/common/Makefile +++ b/libsrc/common/Makefile @@ -101,6 +101,7 @@ S_OBJS = _cwd.o \ calloc.o \ cc65_imul16x16r32.o \ cc65_sincos.o \ + cc65_udiv32by16r16.o \ cc65_umul16x16r32.o \ chdir.o \ copydata.o \ diff --git a/libsrc/common/cc65_udiv32by16r16.s b/libsrc/common/cc65_udiv32by16r16.s new file mode 100644 index 000000000..351eff855 --- /dev/null +++ b/libsrc/common/cc65_udiv32by16r16.s @@ -0,0 +1,38 @@ +; +; Ullrich von Bassewitz, 2009-11-04 +; +; CC65 library: 32by16 => 16 unsigned division +; + + .export _cc65_udiv32by16r16 + .import udiv32by16r16m, incsp4 + .importzp ptr1, ptr2, ptr3, sp + + +;--------------------------------------------------------------------------- +; 32by16 division. + +.proc _cc65_udiv32by16r16 + + sta ptr3 + stx ptr3+1 ; Store rhs + +; Copy from stack to zeropage. This assumes ptr1 and ptr2 are adjacent. + + ldy #3 +@L1: lda (sp),y + sta ptr1,y + dey + bpl @L1 + + lda #4 + clc + adc sp + sta sp + bcc @L2 + inc sp+1 + +@L2: jmp udiv32by16r16m + +.endproc + -- 2.39.5