1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00

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:
uz 2009-11-04 18:25:29 +00:00
parent c200e0ec94
commit 655ba3e6ee
2 changed files with 39 additions and 0 deletions

View File

@ -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 \

View 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