]> git.sur5r.net Git - cc65/blob - libsrc/runtime/lsub.s
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / libsrc / runtime / lsub.s
1 ;
2 ; Ullrich von Bassewitz, 05.08.1998
3 ;
4 ; CC65 runtime: long sub
5 ;
6
7 ;
8 ; EAX = TOS - EAX
9 ;
10         .export         tossub0ax, tossubeax
11         .import         addysp1
12         .importzp       sp, sreg
13
14         .macpack        cpu
15
16 tossub0ax:
17         ldy     #$00
18         sty     sreg
19         sty     sreg+1
20
21 tossubeax:
22         sec
23         eor     #$FF
24 .if (.cpu .bitand CPU_ISET_65SC02)
25         adc     (sp)            ; 65SC02 version - saves 2 cycles
26         ldy     #1
27 .else
28         ldy     #0
29         adc     (sp),y          ; lo byte
30         iny
31 .endif
32         pha                     ; Save low byte
33         txa
34         eor     #$FF
35         adc     (sp),y          ; byte 1
36         tax
37         iny
38         lda     (sp),y
39         sbc     sreg            ; byte 2
40         sta     sreg
41         iny
42         lda     (sp),y
43         sbc     sreg+1          ; byte 3
44         sta     sreg+1
45         pla                     ; Restore byte 0
46         jmp     addysp1         ; Drop TOS
47