1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:21 2000
5 ;--------------------------------------------------------
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
12 .globl _output_to_string
13 .globl _vprintf_PARM_2
14 .globl _vsprintf_PARM_3
15 .globl _vsprintf_PARM_2
21 ;--------------------------------------------------------
22 ; special function registers
23 ;--------------------------------------------------------
24 ;--------------------------------------------------------
25 ; special function bits
26 ;--------------------------------------------------------
27 ;--------------------------------------------------------
29 ;--------------------------------------------------------
68 ;--------------------------------------------------------
69 ; overlayable items in internal ram
70 ;--------------------------------------------------------
73 ;--------------------------------------------------------
74 ; indirectly addressable internal ram data
75 ;--------------------------------------------------------
77 ;--------------------------------------------------------
79 ;--------------------------------------------------------
81 G$output_to_string$0$0==.
90 _vsprintf_left_justify_1_1:
92 _vsprintf_zero_padding_1_1:
94 _vsprintf_prefix_sign_1_1:
96 _vsprintf_prefix_space_1_1:
98 _vsprintf_signed_argument_1_1:
100 _vsprintf_char_argument_1_1:
102 _vsprintf_long_argument_1_1:
104 ;--------------------------------------------------------
106 ;--------------------------------------------------------
108 ;--------------------------------------------------------
109 ; global & static initialisations
110 ;--------------------------------------------------------
112 ;--------------------------------------------------------
114 ;--------------------------------------------------------
116 Fvprintf$output_char$0$0 ==.
118 ; -----------------------------------------
119 ; function output_char
120 ; -----------------------------------------
135 ; Peephole 111 removed ljmp by inverse jump logic
136 jnb _output_to_string,00102$
140 mov r4,(_output_ptr + 1)
141 mov r5,(_output_ptr + 2)
144 cjne a,_output_ptr,00108$
145 inc (_output_ptr + 1)
152 ; Peephole 132 changed ljmp to sjmp
161 C$vprintf.c$73$1$1 ==.
162 XFvprintf$output_char$0$0 ==.
164 Fvprintf$output_digit$0$0 ==.
166 ; -----------------------------------------
167 ; function output_digit
168 ; -----------------------------------------
179 ; Peephole 105 removed redundant mov
185 ; Peephole 105 removed redundant mov
187 ; Peephole 110 removed ljmp by inverse jump logic
193 ; Peephole 132 changed ljmp to sjmp
196 ; Peephole 111 removed ljmp by inverse jump logic
197 jnb _lower_case,00105$
202 ; Peephole 132 changed ljmp to sjmp
216 C$vprintf.c$80$1$1 ==.
217 XFvprintf$output_digit$0$0 ==.
219 Fvprintf$output_2digits$0$0 ==.
221 ; -----------------------------------------
222 ; function output_2digits
223 ; -----------------------------------------
245 C$vprintf.c$88$1$1 ==.
246 XFvprintf$output_2digits$0$0 ==.
248 Fvprintf$calculate_digit$0$0 ==.
250 ; -----------------------------------------
251 ; function calculate_digit
252 ; -----------------------------------------
258 ; Peephole 132 changed ljmp to sjmp
280 mov a,0x0004 + _value
282 ; Peephole 132 changed ljmp to sjmp
283 ; Peephole 160 removed sjmp by inverse jump logic
288 mov a,0x0004 + _value
290 mov 0x0004 + _value,a
298 ; Peephole 132 changed ljmp to sjmp
301 C$vprintf.c$123$1$1 ==.
302 XFvprintf$calculate_digit$0$0 ==.
306 ; -----------------------------------------
308 ; -----------------------------------------
316 mov (_output_ptr + 1),r3
317 mov (_output_ptr + 2),r4
322 ; Peephole 109 removed ljmp by inverse jump logic
326 clr _output_to_string
327 ; Peephole 132 changed ljmp to sjmp
331 setb _output_to_string
335 mov r2,_vsprintf_PARM_2
336 mov r3,(_vsprintf_PARM_2 + 1)
337 mov r4,(_vsprintf_PARM_2 + 2)
341 ; Peephole 180 changed mov to clr
346 mov _vsprintf_PARM_2,r5
347 mov (_vsprintf_PARM_2 + 1),r6
348 mov (_vsprintf_PARM_2 + 2),r7
353 ; Peephole 166 removed redundant mov
355 mov _vsprintf_c_1_1,r2
360 mov a,_vsprintf_c_1_1
367 clr _vsprintf_left_justify_1_1
369 clr _vsprintf_zero_padding_1_1
371 clr _vsprintf_prefix_sign_1_1
373 clr _vsprintf_prefix_space_1_1
375 clr _vsprintf_signed_argument_1_1
379 clr _vsprintf_char_argument_1_1
381 clr _vsprintf_long_argument_1_1
383 mov _vsprintf_width_1_1,#0x00
385 mov _vsprintf_PARM_2,r5
386 mov (_vsprintf_PARM_2 + 1),r6
387 mov (_vsprintf_PARM_2 + 2),r7
389 mov dpl,_vsprintf_PARM_2
390 mov dph,(_vsprintf_PARM_2 + 1)
391 mov b,(_vsprintf_PARM_2 + 2)
394 cjne a,_vsprintf_PARM_2,00266$
395 inc (_vsprintf_PARM_2 + 1)
398 mov _vsprintf_c_1_1,a
400 mov dpl,_vsprintf_c_1_1
404 ; Peephole 110 removed ljmp by inverse jump logic
409 mov a,_vsprintf_width_1_1
412 mov a,_vsprintf_c_1_1
414 ; Peephole 105 removed redundant mov
418 ; Peephole 105 removed redundant mov
419 mov _vsprintf_width_1_1,a
426 ; Peephole 105 removed redundant mov
428 ; Peephole 110 removed ljmp by inverse jump logic
432 setb _vsprintf_zero_padding_1_1
434 ; Peephole 132 changed ljmp to sjmp
438 mov dpl,_vsprintf_c_1_1
455 ; Peephole 111 removed ljmp by inverse jump logic
456 jnb _lower_case,00110$
460 anl a,_vsprintf_c_1_1
461 mov _vsprintf_c_1_1,a
464 mov a,_vsprintf_c_1_1
471 ; Peephole 105 removed redundant mov
472 mov _vsprintf_sloc0_1_0,a
476 mov a,_vsprintf_c_1_1
483 ; Peephole 105 removed redundant mov
484 mov _vsprintf_sloc1_1_0,a
488 mov a,_vsprintf_c_1_1
495 ; Peephole 105 removed redundant mov
496 mov _vsprintf_sloc2_1_0,a
500 mov a,_vsprintf_c_1_1
507 ; Peephole 105 removed redundant mov
508 mov _vsprintf_sloc3_1_0,a
512 mov a,_vsprintf_c_1_1
519 ; Peephole 105 removed redundant mov
520 mov _vsprintf_sloc4_1_0,a
524 mov a,_vsprintf_c_1_1
531 ; Peephole 105 removed redundant mov
532 mov _vsprintf_sloc5_1_0,a
536 mov a,_vsprintf_c_1_1
543 ; Peephole 105 removed redundant mov
544 mov _vsprintf_sloc6_1_0,a
548 mov a,_vsprintf_c_1_1
555 ; Peephole 105 removed redundant mov
557 ; Peephole 109 removed ljmp by inverse jump logic
560 mov a,_vsprintf_c_1_1
564 mov a,_vsprintf_c_1_1
568 mov a,_vsprintf_c_1_1
570 ; Peephole 132 changed ljmp to sjmp
573 mov a,_vsprintf_c_1_1
577 mov a,_vsprintf_c_1_1
584 setb _vsprintf_left_justify_1_1
589 setb _vsprintf_prefix_sign_1_1
594 setb _vsprintf_prefix_space_1_1
599 setb _vsprintf_char_argument_1_1
604 setb _vsprintf_long_argument_1_1
609 mov a,_vsprintf_PARM_3
612 mov _vsprintf_PARM_3,r0
619 mov a,_vsprintf_PARM_3
622 mov _vsprintf_PARM_3,r0
640 mov _vsprintf_length_1_1,r2
642 ; Peephole 112 removed ljmp by inverse jump logic
643 jb _vsprintf_left_justify_1_1,00124$
646 mov a,_vsprintf_length_1_1
647 subb a,_vsprintf_width_1_1
648 ; Peephole 108 removed ljmp by inverse jump logic
653 mov a,_vsprintf_width_1_1
654 subb a,_vsprintf_length_1_1
655 mov _vsprintf_width_1_1,a
657 mov r5,_vsprintf_width_1_1
661 mov _vsprintf_width_1_1,r5
668 ; Peephole 105 removed redundant mov
670 ; Peephole 109 removed ljmp by inverse jump logic
683 ; Peephole 132 changed ljmp to sjmp
693 ; Peephole 105 removed redundant mov
694 mov _vsprintf_sloc6_1_0,a
695 ; Peephole 110 removed ljmp by inverse jump logic
701 mov _vsprintf_sloc7_1_0,a
702 ; Peephole 180 changed mov to clr
705 mov (_vsprintf_sloc7_1_0 + 1),a
706 mov (_vsprintf_sloc7_1_0 + 2),r7
707 mov _value,_vsprintf_sloc7_1_0
708 mov (_value + 1),(_vsprintf_sloc7_1_0 + 1)
709 mov (_value + 2),(_vsprintf_sloc7_1_0 + 2)
725 ; Peephole 132 changed ljmp to sjmp
729 jb _vsprintf_left_justify_1_1,00308$
733 mov a,_vsprintf_length_1_1
734 subb a,_vsprintf_width_1_1
740 mov a,_vsprintf_width_1_1
741 subb a,_vsprintf_length_1_1
742 mov _vsprintf_width_1_1,a
744 mov r2,_vsprintf_width_1_1
748 mov _vsprintf_width_1_1,r2
755 ; Peephole 105 removed redundant mov
770 ; Peephole 132 changed ljmp to sjmp
773 mov a,_vsprintf_PARM_3
776 mov _vsprintf_PARM_3,r0
790 subb a,0x0002 + _value
791 ; Peephole 108 removed ljmp by inverse jump logic
795 ; Peephole 132 changed ljmp to sjmp
798 mov r2,0x0002 + _value
801 ; Peephole 180 changed mov to clr
802 ; Peephole 186 optimized movc sequence
812 mov a,0x0002 + _value
813 ; Peephole 110 removed ljmp by inverse jump logic
816 mov a,0x0002 + _value
818 ; Peephole 132 changed ljmp to sjmp
822 mov dpl,0x0001 + _value
823 lcall _output_2digits
827 lcall _output_2digits
830 ; Peephole 132 changed ljmp to sjmp
833 setb _vsprintf_signed_argument_1_1
838 ; Peephole 132 changed ljmp to sjmp
844 ; Peephole 132 changed ljmp to sjmp
850 ; Peephole 132 changed ljmp to sjmp
856 ; Peephole 132 changed ljmp to sjmp
859 mov dpl,_vsprintf_c_1_1
869 ; Peephole 111 removed ljmp by inverse jump logic
870 jnb _vsprintf_char_argument_1_1,00152$
873 mov a,_vsprintf_PARM_3
876 mov _vsprintf_PARM_3,r0
889 ; Peephole 132 changed ljmp to sjmp
890 ; Peephole 164 removed sjmp by inverse jump logic
891 jb _vsprintf_signed_argument_1_1,00153$
894 mov 0x0001 + _value,#0x00
896 mov 0x0002 + _value,#0x00
898 mov 0x0003 + _value,#0x00
899 ; Peephole 132 changed ljmp to sjmp
903 ; Peephole 111 removed ljmp by inverse jump logic
904 jnb _vsprintf_long_argument_1_1,00149$
907 mov a,_vsprintf_PARM_3
910 mov _vsprintf_PARM_3,r0
925 ; Peephole 132 changed ljmp to sjmp
929 mov a,_vsprintf_PARM_3
932 mov _vsprintf_PARM_3,r0
947 ; Peephole 112 removed ljmp by inverse jump logic
948 jb _vsprintf_signed_argument_1_1,00153$
951 mov 0x0002 + _value,#0x00
953 mov 0x0003 + _value,#0x00
956 ; Peephole 111 removed ljmp by inverse jump logic
957 jnb _vsprintf_signed_argument_1_1,00158$
961 ; Peephole 111 removed ljmp by inverse jump logic
982 ; Peephole 132 changed ljmp to sjmp
986 clr _vsprintf_signed_argument_1_1
989 mov _vsprintf_length_1_1,#0x00
996 ; Peephole 162 removed sjmp by inverse jump logic
999 ; Peephole 132 changed ljmp to sjmp
1002 mov a,0x0001 + _value
1003 ; Peephole 162 removed sjmp by inverse jump logic
1006 ; Peephole 132 changed ljmp to sjmp
1010 mov a,0x0002 + _value
1011 ; Peephole 162 removed sjmp by inverse jump logic
1014 ; Peephole 132 changed ljmp to sjmp
1017 mov a,0x0003 + _value
1025 mov _vsprintf_length_1_1,r2
1027 ; Peephole 109 removed ljmp by inverse jump logic
1032 mov 0x0004 + _value,#0x00
1035 lcall _calculate_digit
1040 mov a,_value+4 ; a = <msd>
1042 orl b,a ; b = <msd><lsd>
1046 mov a,_value+4 ; a = <lsd>
1052 ; Peephole 167 removed redundant bit moves (c not set to _lsd)
1054 ; Peephole 132 changed ljmp to sjmp
1058 mov a,_vsprintf_width_1_1
1059 ; Peephole 162 removed sjmp by inverse jump logic
1062 ; Peephole 132 changed ljmp to sjmp
1066 mov _vsprintf_width_1_1,#0x01
1069 ; Peephole 112 removed ljmp by inverse jump logic
1070 jb _vsprintf_zero_padding_1_1,00171$
1074 add a,_vsprintf_length_1_1
1076 mov r5,_vsprintf_width_1_1
1084 mov _vsprintf_width_1_1,r5
1086 ; Peephole 110 removed ljmp by inverse jump logic
1096 ; Peephole 132 changed ljmp to sjmp
1100 ; Peephole 111 removed ljmp by inverse jump logic
1101 jnb _vsprintf_signed_argument_1_1,00180$
1107 dec _vsprintf_width_1_1
1108 ; Peephole 132 changed ljmp to sjmp
1112 mov a,_vsprintf_length_1_1
1113 ; Peephole 110 removed ljmp by inverse jump logic
1117 ; Peephole 111 removed ljmp by inverse jump logic
1118 jnb _vsprintf_prefix_sign_1_1,00175$
1124 dec _vsprintf_width_1_1
1125 ; Peephole 132 changed ljmp to sjmp
1129 ; Peephole 111 removed ljmp by inverse jump logic
1130 jnb _vsprintf_prefix_space_1_1,00258$
1136 dec _vsprintf_width_1_1
1139 mov r2,_vsprintf_width_1_1
1144 mov a,_vsprintf_length_1_1
1146 ; Peephole 108 removed ljmp by inverse jump logic
1150 ; Peephole 111 removed ljmp by inverse jump logic
1151 jnb _vsprintf_zero_padding_1_1,00202$
1154 ; Peephole 132 changed ljmp to sjmp
1164 ; Peephole 132 changed ljmp to sjmp
1167 mov r2,_vsprintf_length_1_1
1176 ; Peephole 167 removed redundant bit moves (c not set to _lsd)
1180 pop acc ; a = <msd><lsd>
1181 nop ; to disable the "optimizer"
1184 anl a,#0x0F ; a = <msd>
1188 anl a,#0x0F ; a = <lsd>
1192 mov dpl,0x0004 + _value
1196 ; Peephole 132 changed ljmp to sjmp
1200 mov dpl,_vsprintf_c_1_1
1205 ; Peephole 111 removed ljmp by inverse jump logic
1206 jnb _output_to_string,00198$
1211 C$vprintf.c$414$1$1 ==.
1216 ; -----------------------------------------
1218 ; -----------------------------------------
1221 mov _vsprintf_PARM_2,dpl
1222 mov (_vsprintf_PARM_2 + 1),dph
1223 mov (_vsprintf_PARM_2 + 2),b
1224 mov _vsprintf_PARM_3,_vprintf_PARM_2
1225 ; Peephole 181 used 16 bit load of dptr
1230 C$vprintf.c$421$1$1 ==.
1234 Fvprintf$memory_id$0$0 == .