]> git.sur5r.net Git - cc65/blob - libsrc/common/cc65_udiv32by16r16.s
Added a C callable entry point for the division routine.
[cc65] / libsrc / common / cc65_udiv32by16r16.s
1 ;
2 ; Ullrich von Bassewitz, 2009-11-04
3 ;
4 ; CC65 library: 32by16 => 16 unsigned division
5 ;
6
7         .export         _cc65_udiv32by16r16
8         .import         udiv32by16r16m, incsp4
9         .importzp       ptr1, ptr2, ptr3, sp
10
11
12 ;---------------------------------------------------------------------------
13 ; 32by16 division.
14
15 .proc   _cc65_udiv32by16r16
16
17         sta     ptr3
18         stx     ptr3+1                  ; Store rhs
19
20 ; Copy from stack to zeropage. This assumes ptr1 and ptr2 are adjacent.
21
22         ldy     #3
23 @L1:    lda     (sp),y
24         sta     ptr1,y
25         dey
26         bpl     @L1
27
28         lda     #4
29         clc
30         adc     sp
31         sta     sp
32         bcc     @L2
33         inc     sp+1
34
35 @L2:    jmp     udiv32by16r16m
36
37 .endproc
38