2 ; Convertion routine of 24 bits integer to ASCII
4 ; written by Vangelis Rokas <vrokas AT otenet.gr>, 2004
8 ; This program is free software; you can redistribute it and/or
9 ; modify it under the terms of the GNU Library General Public License
10 ; as published by the Free Software Foundation; either version 2
11 ; of the License, or (at your option) any later version.
13 ; This library is distributed in the hope that it will be useful,
14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ; GNU General Public License for more details.
18 ; You should have received a copy of the GNU General Public License
19 ; along with this program; if not, write to the Free Software
20 ; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 ; $Id: cnvint.S 3711 2005-03-31 16:25:17Z vrokas $
40 .registers udata_ovr 0x000
75 movff digit_count, POSTDEC1
81 btfsc r0x00, 0 ; bit 0
84 btfsc r0x00, 1 ; bit 1
87 btfsc r0x00, 2 ; bit 2
90 btfsc r0x00, 3 ; bit 3
93 btfsc r0x00, 4 ; bit 4
96 btfsc r0x00, 5 ; bit 5
99 btfsc r0x00, 6 ; bit 6
102 btfsc r0x00, 7 ; bit 7
105 btfsc r0x01, 0 ; bit 8
108 btfsc r0x01, 1 ; bit 9
111 btfsc r0x01, 2 ; bit 10
114 btfsc r0x01, 3 ; bit 11
117 btfsc r0x01, 4 ; bit 12
120 btfsc r0x01, 5 ; bit 13
123 btfsc r0x01, 6 ; bit 14
126 btfsc r0x01, 7 ; bit 15
129 btfsc r0x02, 0 ; bit 16
132 btfsc r0x02, 1 ; bit 17
135 btfsc r0x02, 2 ; bit 18
138 btfsc r0x02, 3 ; bit 19
141 btfsc r0x02, 4 ; bit 20
144 btfsc r0x02, 5 ; bit 21
147 btfsc r0x02, 6 ; bit 22
150 btfsc r0x02, 7 ; bit 23
167 btfsc r0x00, 4 ; bit 4
170 btfsc r0x00, 5 ; bit 5
173 btfsc r0x00, 6 ; bit 6
176 btfsc r0x00, 7 ; bit 7
179 btfsc r0x01, 0 ; bit 8
182 btfsc r0x01, 1 ; bit 9
185 btfsc r0x01, 2 ; bit 10
188 btfsc r0x01, 3 ; bit 11
191 btfsc r0x01, 4 ; bit 12
194 btfsc r0x01, 5 ; bit 13
197 btfsc r0x01, 6 ; bit 14
200 btfsc r0x01, 7 ; bit 15
203 btfsc r0x02, 0 ; bit 16
206 btfsc r0x02, 1 ; bit 17
209 btfsc r0x02, 2 ; bit 18
212 btfsc r0x02, 3 ; bit 19
215 btfsc r0x02, 4 ; bit 20
218 btfsc r0x02, 5 ; bit 21
235 btfsc r0x00, 7 ; bit 7
238 btfsc r0x01, 0 ; bit 8
241 btfsc r0x01, 1 ; bit 9
244 btfsc r0x01, 5 ; bit 13
247 btfsc r0x01, 6 ; bit 14
250 btfsc r0x01, 7 ; bit 15
253 btfsc r0x02, 0 ; bit 16
256 btfsc r0x02, 2 ; bit 18
259 btfsc r0x02, 3 ; bit 19
262 btfsc r0x02, 4 ; bit 20
265 btfsc r0x02, 5 ; bit 21
268 btfsc r0x02, 6 ; bit 22
271 btfsc r0x02, 7 ; bit 23
288 btfsc r0x01, 2 ; bit 10
291 btfsc r0x01, 3 ; bit 11
294 btfsc r0x01, 4 ; bit 12
297 btfsc r0x01, 5 ; bit 13
300 btfsc r0x01, 6 ; bit 14
303 btfsc r0x01, 7 ; bit 15
306 btfsc r0x02, 0 ; bit 16
309 btfsc r0x02, 1 ; bit 17
312 btfsc r0x02, 2 ; bit 18
315 btfsc r0x02, 3 ; bit 19
318 btfsc r0x02, 4 ; bit 20
321 btfsc r0x02, 5 ; bit 21
324 btfsc r0x02, 6 ; bit 22
327 btfsc r0x02, 7 ; bit 23
344 btfsc r0x01, 6 ; bit 14
347 btfsc r0x01, 7 ; bit 15
350 btfsc r0x02, 0 ; bit 16
353 btfsc r0x02, 1 ; bit 17
356 btfsc r0x02, 2 ; bit 18
359 btfsc r0x02, 3 ; bit 19
362 btfsc r0x02, 4 ; bit 20
365 btfsc r0x02, 5 ; bit 21
368 btfsc r0x02, 6 ; bit 22
371 btfsc r0x02, 7 ; bit 23
388 btfsc r0x02, 1 ; bit 17
391 btfsc r0x02, 2 ; bit 18
394 btfsc r0x02, 3 ; bit 19
397 btfsc r0x02, 6 ; bit 22
400 btfsc r0x02, 7 ; bit 23
417 btfsc r0x02, 4 ; bit 20
420 btfsc r0x02, 5 ; bit 21
423 btfsc r0x02, 6 ; bit 22
426 btfsc r0x02, 7 ; bit 23
504 movff PREINC1, digit_count
525 ;00 000000000000000000000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
526 ;01 000000000000000000000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
527 ;02 000000000000000000000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
528 ;03 000000000000000000000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
529 ;04 000000000000000000000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 6
530 ;05 000000000000000000000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2
531 ;06 000000000000000000000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 4
532 ;07 000000000000000000000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 8
533 ;08 000000000000000000000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 5 6
534 ;09 000000000000000000000512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 2
535 ;10 000000000000000000001024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 4
536 ;11 000000000000000000002048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 4 8
537 ;12 000000000000000000004096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 9 6
538 ;13 000000000000000000008192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 9 2
539 ;14 000000000000000000016384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 6 3 8 4
540 ;15 000000000000000000032768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 7 6 8
541 ;16 000000000000000000065536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 5 5 3 6
542 ;17 000000000000000000131072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 0 7 2
543 ;18 000000000000000000262144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 6 2 1 4 4
544 ;19 000000000000000000524288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 2 4 2 8 8
545 ;20 000000000000000001048576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 4 8 5 7 6
546 ;21 000000000000000002097152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 9 7 1 5 2
547 ;22 000000000000000004194304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 9 4 3 0 4
548 ;23 000000000000000008388608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 3 8 8 6 0 8