Initial revision
[fw/sdcc] / device / lib / large / _moduint.asm
1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:31 2000
4
5 ;--------------------------------------------------------
6         .module _moduint
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl __moduint_PARM_2
11         .globl __moduint
12 ;--------------------------------------------------------
13 ; special function registers
14 ;--------------------------------------------------------
15 ;--------------------------------------------------------
16 ; special function bits 
17 ;--------------------------------------------------------
18 ;--------------------------------------------------------
19 ; internal ram data
20 ;--------------------------------------------------------
21         .area   DSEG    (DATA)
22 ;--------------------------------------------------------
23 ; overlayable items in internal ram 
24 ;--------------------------------------------------------
25         .area   OSEG    (OVR,DATA)
26 ;--------------------------------------------------------
27 ; indirectly addressable internal ram data
28 ;--------------------------------------------------------
29         .area   ISEG    (DATA)
30 ;--------------------------------------------------------
31 ; bit data
32 ;--------------------------------------------------------
33         .area   BSEG    (BIT)
34 ;--------------------------------------------------------
35 ; external ram data
36 ;--------------------------------------------------------
37         .area   XSEG    (XDATA)
38 __moduint_PARM_2:
39         .ds     0x0002
40 __moduint_a_1_1:
41         .ds     0x0002
42 __moduint_count_1_1:
43         .ds     0x0001
44 ;--------------------------------------------------------
45 ; global & static initialisations
46 ;--------------------------------------------------------
47         .area GSINIT (CODE)
48 ;--------------------------------------------------------
49 ; code
50 ;--------------------------------------------------------
51         .area CSEG (CODE)
52         G$_moduint$0$0 ==.
53 ;       _moduint.c 30
54 ;       -----------------------------------------
55 ;        function _moduint
56 ;       -----------------------------------------
57 __moduint:
58         ar2 = 0x02
59         ar3 = 0x03
60         ar4 = 0x04
61         ar5 = 0x05
62         ar6 = 0x06
63         ar7 = 0x07
64         ar0 = 0x00
65         ar1 = 0x01
66 ;       _moduint.c 52
67         push    dph
68         push    dpl
69         mov     dptr,#__moduint_a_1_1
70         pop     acc
71         movx    @dptr,a
72         pop     acc
73         inc     dptr
74         movx    @dptr,a
75 ;       _moduint.c 32
76         mov     dptr,#__moduint_count_1_1
77 ; Peephole 180   changed mov to clr
78         clr  a
79         movx    @dptr,a
80 ;       _moduint.c 35
81         mov     dptr,#__moduint_a_1_1
82         movx    a,@dptr
83         mov     r2,a
84         inc     dptr
85         movx    a,@dptr
86         mov     r3,a
87         mov     r4,#0x00
88 00103$:
89         mov     dptr,#__moduint_PARM_2
90         movx    a,@dptr
91         mov     r5,a
92         inc     dptr
93         movx    a,@dptr
94 ; Peephole 105   removed redundant mov
95         mov  r6,a
96         rl      a
97         anl     a,#0x01
98 ; Peephole 105   removed redundant mov
99         mov  r7,a
100 ; Peephole 109   removed ljmp by inverse jump logic
101         jnz  00117$
102 00119$:
103 ;       _moduint.c 36
104         mov     a,r6
105         xch     a,r5
106         add     a,acc
107         xch     a,r5
108         rlc     a
109         mov     r6,a
110         mov     dptr,#__moduint_PARM_2
111         mov     a,r5
112         movx    @dptr,a
113         inc     dptr
114         mov     a,r6
115         movx    @dptr,a
116 ;       _moduint.c 37
117         clr     c
118         mov     a,r2
119         subb    a,r5
120         mov     a,r3
121         subb    a,r6
122 ; Peephole 108   removed ljmp by inverse jump logic
123         jnc  00102$
124 00120$:
125 ;       _moduint.c 39
126         mov     a,r6
127         clr     c
128         rrc     a
129         xch     a,r5
130         rrc     a
131         xch     a,r5
132         mov     r6,a
133         mov     dptr,#__moduint_PARM_2
134         mov     a,r5
135         movx    @dptr,a
136         inc     dptr
137         mov     a,r6
138         movx    @dptr,a
139 ;       _moduint.c 40
140 ; Peephole 132   changed ljmp to sjmp
141         sjmp 00117$
142 00102$:
143 ;       _moduint.c 42
144         inc     r4
145         mov     dptr,#__moduint_count_1_1
146         mov     a,r4
147         movx    @dptr,a
148         ljmp    00103$
149 ;       _moduint.c 45
150 00117$:
151         mov     dptr,#__moduint_count_1_1
152         movx    a,@dptr
153         mov     r2,a
154 00108$:
155 ;       _moduint.c 46
156         mov     dptr,#__moduint_a_1_1
157         movx    a,@dptr
158         mov     r3,a
159         inc     dptr
160         movx    a,@dptr
161         mov     r4,a
162         mov     dptr,#__moduint_PARM_2
163         movx    a,@dptr
164         mov     r5,a
165         inc     dptr
166         movx    a,@dptr
167         mov     r6,a
168         clr     c
169         mov     a,r3
170         subb    a,r5
171         mov     a,r4
172         subb    a,r6
173 ; Peephole 132   changed ljmp to sjmp
174 ; Peephole 160   removed sjmp by inverse jump logic
175         jc   00107$
176 00121$:
177 ;       _moduint.c 47
178         mov     dptr,#__moduint_a_1_1
179         clr     c
180         mov     a,r3
181         subb    a,r5
182         movx    @dptr,a
183         mov     a,r4
184         subb    a,r6
185         inc     dptr
186         movx    @dptr,a
187 00107$:
188 ;       _moduint.c 49
189         mov     dptr,#__moduint_PARM_2
190         movx    a,@dptr
191         mov     r3,a
192         inc     dptr
193         movx    a,@dptr
194 ; Peephole 105   removed redundant mov
195         mov  r4,a
196         clr     c
197         rrc     a
198         xch     a,r3
199         rrc     a
200         xch     a,r3
201         mov     r4,a
202         mov     dptr,#__moduint_PARM_2
203         mov     a,r3
204         movx    @dptr,a
205         inc     dptr
206         mov     a,r4
207         movx    @dptr,a
208 ;       _moduint.c 50
209         mov     ar3,r2
210         dec     r2
211         mov     a,r3
212         jz      00122$
213         ljmp    00108$
214 00122$:
215 ;       _moduint.c 52
216         mov     dptr,#__moduint_a_1_1
217         movx    a,@dptr
218         mov     r2,a
219         inc     dptr
220         movx    a,@dptr
221         mov     r3,a
222         mov     dpl,r2
223         mov     dph,r3
224 00111$:
225         C$_moduint.c$53$1$1 ==.
226         XG$_moduint$0$0 ==.
227         ret
228         .area   CSEG    (CODE)