--- /dev/null
+;
+; 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
+