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
This commit is contained in:
@@ -101,6 +101,7 @@ S_OBJS = _cwd.o \
|
|||||||
calloc.o \
|
calloc.o \
|
||||||
cc65_imul16x16r32.o \
|
cc65_imul16x16r32.o \
|
||||||
cc65_sincos.o \
|
cc65_sincos.o \
|
||||||
|
cc65_udiv32by16r16.o \
|
||||||
cc65_umul16x16r32.o \
|
cc65_umul16x16r32.o \
|
||||||
chdir.o \
|
chdir.o \
|
||||||
copydata.o \
|
copydata.o \
|
||||||
|
|||||||
38
libsrc/common/cc65_udiv32by16r16.s
Normal file
38
libsrc/common/cc65_udiv32by16r16.s
Normal file
@@ -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
|
||||||
|
|
||||||
Reference in New Issue
Block a user