]> git.sur5r.net Git - cc65/blob - libsrc/runtime/toslong.s
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / libsrc / runtime / toslong.s
1 ;
2 ; Ullrich von Bassewitz, 25.10.2000
3 ;
4 ; CC65 runtime: Convert tos from int to long
5 ;
6
7         .export         tosulong, toslong
8         .import         decsp2
9         .importzp       sp
10
11         .macpack        cpu
12
13 ; Convert TOS from int to long
14
15 tosulong:
16         pha
17         jsr     decsp2          ; Make room
18         ldy     #2
19         lda     (sp),y
20 .if (.cpu .bitand CPU_ISET_65SC02)
21         sta     (sp)            ; 65C02 version
22         iny                     ; Y = 3
23 .else
24         ldy     #0
25         sta     (sp),y
26         ldy     #3
27 .endif
28         lda     (sp),y
29 toslong1:
30         ldy     #1
31         sta     (sp),y
32         lda     #0              ; Zero extend
33 toslong2:
34         iny
35         sta     (sp),y
36         iny
37         sta     (sp),y
38         pla
39         rts
40
41 toslong:
42         pha
43         jsr     decsp2          ; Make room
44         ldy     #2
45         lda     (sp),y
46 .if (.cpu .bitand CPU_ISET_65SC02)
47         sta     (sp)            ; 65C02 version
48         iny                     ; Y = 3
49 .else
50         ldy     #0
51         sta     (sp),y
52         ldy     #3
53 .endif
54         lda     (sp),y
55         bpl     toslong1        ; Jump if positive, high word is zero
56         ldy     #1
57         sta     (sp),y
58         lda     #$FF
59         bne     toslong2        ; Branch always
60