1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:39 2000
5 ;--------------------------------------------------------
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10 .globl _vprintf_PARM_2
11 .globl _vsprintf_PARM_3
12 .globl _vsprintf_PARM_2
17 .globl _output_to_string
21 ;--------------------------------------------------------
22 ; special function registers
23 ;--------------------------------------------------------
24 ;--------------------------------------------------------
25 ; special function bits
26 ;--------------------------------------------------------
27 ;--------------------------------------------------------
29 ;--------------------------------------------------------
62 ;--------------------------------------------------------
63 ; overlayable items in internal ram
64 ;--------------------------------------------------------
66 ;--------------------------------------------------------
67 ; indirectly addressable internal ram data
68 ;--------------------------------------------------------
70 ;--------------------------------------------------------
72 ;--------------------------------------------------------
74 G$output_to_string$0$0==.
83 _vsprintf_left_justify_1_1:
85 _vsprintf_zero_padding_1_1:
87 _vsprintf_prefix_sign_1_1:
89 _vsprintf_prefix_space_1_1:
91 _vsprintf_signed_argument_1_1:
93 _vsprintf_char_argument_1_1:
95 _vsprintf_long_argument_1_1:
97 ;--------------------------------------------------------
99 ;--------------------------------------------------------
115 _vsprintf_length_1_1:
123 ;--------------------------------------------------------
124 ; global & static initialisations
125 ;--------------------------------------------------------
127 ;--------------------------------------------------------
129 ;--------------------------------------------------------
131 Fvprintf$output_char$0$0 ==.
133 ; -----------------------------------------
134 ; function output_char
135 ; -----------------------------------------
150 ; Peephole 111 removed ljmp by inverse jump logic
151 jnb _output_to_string,00102$
154 mov dptr,#_output_ptr
163 mov dptr,#_output_ptr
167 ; Peephole 180 changed mov to clr
180 ; Peephole 132 changed ljmp to sjmp
189 C$vprintf.c$73$1$1 ==.
190 XFvprintf$output_char$0$0 ==.
192 Fvprintf$output_digit$0$0 ==.
194 ; -----------------------------------------
195 ; function output_digit
196 ; -----------------------------------------
207 ; Peephole 105 removed redundant mov
213 ; Peephole 105 removed redundant mov
215 ; Peephole 110 removed ljmp by inverse jump logic
221 ; Peephole 132 changed ljmp to sjmp
224 ; Peephole 111 removed ljmp by inverse jump logic
225 jnb _lower_case,00105$
230 ; Peephole 132 changed ljmp to sjmp
244 C$vprintf.c$80$1$1 ==.
245 XFvprintf$output_digit$0$0 ==.
247 Fvprintf$output_2digits$0$0 ==.
249 ; -----------------------------------------
250 ; function output_2digits
251 ; -----------------------------------------
273 C$vprintf.c$88$1$1 ==.
274 XFvprintf$output_2digits$0$0 ==.
276 Fvprintf$calculate_digit$0$0 ==.
278 ; -----------------------------------------
279 ; function calculate_digit
280 ; -----------------------------------------
286 ; Peephole 132 changed ljmp to sjmp
311 mov a,0x0004 + _value
313 ; Peephole 132 changed ljmp to sjmp
314 ; Peephole 160 removed sjmp by inverse jump logic
319 mov a,0x0004 + _value
321 mov 0x0004 + _value,a
329 ; Peephole 132 changed ljmp to sjmp
332 C$vprintf.c$123$1$1 ==.
333 XFvprintf$calculate_digit$0$0 ==.
337 ; -----------------------------------------
339 ; -----------------------------------------
345 mov dptr,#_vsprintf_buf_1_1
355 mov dptr,#_vsprintf_buf_1_1
364 mov dptr,#_output_ptr
377 ; Peephole 109 removed ljmp by inverse jump logic
381 clr _output_to_string
382 ; Peephole 132 changed ljmp to sjmp
386 setb _output_to_string
390 mov dptr,#_vsprintf_PARM_2
402 ; Peephole 180 changed mov to clr
407 mov dptr,#_vsprintf_PARM_2
420 ; Peephole 105 removed redundant mov
421 mov _vsprintf_sloc0_1_0,a
426 mov a,_vsprintf_sloc0_1_0
433 clr _vsprintf_left_justify_1_1
435 clr _vsprintf_zero_padding_1_1
437 clr _vsprintf_prefix_sign_1_1
439 clr _vsprintf_prefix_space_1_1
441 clr _vsprintf_signed_argument_1_1
444 ; Peephole 180 changed mov to clr
448 clr _vsprintf_char_argument_1_1
450 clr _vsprintf_long_argument_1_1
452 mov dptr,#_vsprintf_width_1_1
453 ; Peephole 180 changed mov to clr
458 mov _vsprintf_sloc2_1_0,r5
459 mov (_vsprintf_sloc2_1_0 + 1),r6
460 mov (_vsprintf_sloc2_1_0 + 2),r7
465 mov dptr,#_vsprintf_PARM_2
474 mov dpl,_vsprintf_sloc2_1_0
475 mov dph,(_vsprintf_sloc2_1_0 + 1)
476 mov b,(_vsprintf_sloc2_1_0 + 2)
478 ; Peephole 100 removed redundant mov
480 mov dptr,#_vsprintf_c_1_1
489 mov _vsprintf_sloc1_1_0,dpl
494 mov a,_vsprintf_sloc1_1_0
495 ; Peephole 110 removed ljmp by inverse jump logic
499 mov dptr,#_vsprintf_width_1_1
505 mov _vsprintf_sloc5_1_0,a
508 ; Peephole 105 removed redundant mov
509 mov _vsprintf_sloc3_1_0,a
510 add a,_vsprintf_sloc5_1_0
511 ; Peephole 100 removed redundant mov
513 mov dptr,#_vsprintf_width_1_1
522 ; Peephole 105 removed redundant mov
523 mov _vsprintf_sloc4_1_0,a
528 setb _vsprintf_zero_padding_1_1
541 mov _vsprintf_sloc6_1_0,dpl
548 mov a,_vsprintf_sloc6_1_0
554 ; Peephole 111 removed ljmp by inverse jump logic
555 jnb _lower_case,00110$
560 mov dptr,#_vsprintf_c_1_1
564 mov dptr,#_vsprintf_c_1_1
573 ; Peephole 105 removed redundant mov
574 mov _vsprintf_sloc7_1_0,a
584 ; Peephole 105 removed redundant mov
585 mov _vsprintf_sloc8_1_0,a
595 ; Peephole 105 removed redundant mov
596 mov _vsprintf_sloc9_1_0,a
597 ; Peephole 132 changed ljmp to sjmp
598 ; Peephole 163 removed sjmp by inverse jump logic
607 ; Peephole 105 removed redundant mov
608 mov _vsprintf_sloc10_1_0,a
609 ; Peephole 132 changed ljmp to sjmp
610 ; Peephole 163 removed sjmp by inverse jump logic
619 ; Peephole 105 removed redundant mov
620 mov _vsprintf_sloc11_1_0,a
621 ; Peephole 109 removed ljmp by inverse jump logic
630 ; Peephole 105 removed redundant mov
631 mov _vsprintf_sloc12_1_0,a
641 ; Peephole 105 removed redundant mov
642 mov _vsprintf_sloc13_1_0,a
652 ; Peephole 105 removed redundant mov
654 ; Peephole 109 removed ljmp by inverse jump logic
664 ; Peephole 132 changed ljmp to sjmp
676 setb _vsprintf_left_justify_1_1
681 setb _vsprintf_prefix_sign_1_1
686 setb _vsprintf_prefix_space_1_1
691 setb _vsprintf_char_argument_1_1
696 setb _vsprintf_long_argument_1_1
701 mov dptr,#_vsprintf_PARM_3
703 ; Peephole 105 removed redundant mov
706 ; Peephole 100 removed redundant mov
708 mov dptr,#_vsprintf_PARM_3
719 mov dptr,#_vsprintf_PARM_3
721 ; Peephole 105 removed redundant mov
724 ; Peephole 100 removed redundant mov
726 mov dptr,#_vsprintf_PARM_3
747 mov _vsprintf_sloc13_1_0,r2
749 ; Peephole 112 removed ljmp by inverse jump logic
750 jb _vsprintf_left_justify_1_1,00124$
752 mov dptr,#_vsprintf_width_1_1
756 mov a,_vsprintf_sloc13_1_0
758 ; Peephole 108 removed ljmp by inverse jump logic
764 subb a,_vsprintf_sloc13_1_0
770 mov dptr,#_vsprintf_width_1_1
779 ; Peephole 105 removed redundant mov
781 ; Peephole 109 removed ljmp by inverse jump logic
796 ; Peephole 132 changed ljmp to sjmp
806 ; Peephole 105 removed redundant mov
807 mov _vsprintf_sloc12_1_0,a
808 ; Peephole 110 removed ljmp by inverse jump logic
815 ; Peephole 180 changed mov to clr
846 ; Peephole 132 changed ljmp to sjmp
850 jb _vsprintf_left_justify_1_1,00308$
853 mov dptr,#_vsprintf_width_1_1
857 mov a,_vsprintf_sloc13_1_0
865 subb a,_vsprintf_sloc13_1_0
871 mov dptr,#_vsprintf_width_1_1
880 ; Peephole 105 removed redundant mov
897 ; Peephole 132 changed ljmp to sjmp
900 mov dptr,#_vsprintf_PARM_3
902 ; Peephole 105 removed redundant mov
905 ; Peephole 100 removed redundant mov
907 mov dptr,#_vsprintf_PARM_3
922 subb a,0x0002 + _value
923 ; Peephole 108 removed ljmp by inverse jump logic
927 ; Peephole 132 changed ljmp to sjmp
930 mov r2,0x0002 + _value
933 ; Peephole 180 changed mov to clr
934 ; Peephole 186 optimized movc sequence
948 mov a,0x0002 + _value
949 ; Peephole 110 removed ljmp by inverse jump logic
952 mov a,0x0002 + _value
954 ; Peephole 132 changed ljmp to sjmp
959 mov dpl,0x0001 + _value
960 lcall _output_2digits
966 lcall _output_2digits
970 ; Peephole 132 changed ljmp to sjmp
973 setb _vsprintf_signed_argument_1_1
980 ; Peephole 132 changed ljmp to sjmp
988 ; Peephole 132 changed ljmp to sjmp
996 ; Peephole 132 changed ljmp to sjmp
1004 ; Peephole 132 changed ljmp to sjmp
1015 cjne r2,#0x00,00316$
1019 ; Peephole 111 removed ljmp by inverse jump logic
1020 jnb _vsprintf_char_argument_1_1,00152$
1023 mov dptr,#_vsprintf_PARM_3
1025 ; Peephole 105 removed redundant mov
1028 ; Peephole 100 removed redundant mov
1030 mov dptr,#_vsprintf_PARM_3
1044 jnb _vsprintf_signed_argument_1_1,00318$
1048 mov 0x0001 + _value,#0x00
1050 mov 0x0002 + _value,#0x00
1052 mov 0x0003 + _value,#0x00
1056 ; Peephole 111 removed ljmp by inverse jump logic
1057 jnb _vsprintf_long_argument_1_1,00149$
1060 mov dptr,#_vsprintf_PARM_3
1062 ; Peephole 105 removed redundant mov
1065 ; Peephole 100 removed redundant mov
1067 mov dptr,#_vsprintf_PARM_3
1083 ; Peephole 132 changed ljmp to sjmp
1087 mov dptr,#_vsprintf_PARM_3
1089 ; Peephole 105 removed redundant mov
1092 ; Peephole 100 removed redundant mov
1094 mov dptr,#_vsprintf_PARM_3
1110 ; Peephole 112 removed ljmp by inverse jump logic
1111 jb _vsprintf_signed_argument_1_1,00153$
1114 mov 0x0002 + _value,#0x00
1116 mov 0x0003 + _value,#0x00
1119 ; Peephole 111 removed ljmp by inverse jump logic
1120 jnb _vsprintf_signed_argument_1_1,00158$
1124 ; Peephole 111 removed ljmp by inverse jump logic
1145 ; Peephole 132 changed ljmp to sjmp
1149 clr _vsprintf_signed_argument_1_1
1152 mov dptr,#_vsprintf_length_1_1
1153 ; Peephole 180 changed mov to clr
1162 ; Peephole 162 removed sjmp by inverse jump logic
1165 ; Peephole 132 changed ljmp to sjmp
1168 mov a,0x0001 + _value
1169 ; Peephole 162 removed sjmp by inverse jump logic
1172 ; Peephole 132 changed ljmp to sjmp
1176 mov a,0x0002 + _value
1177 ; Peephole 162 removed sjmp by inverse jump logic
1180 ; Peephole 132 changed ljmp to sjmp
1183 mov a,0x0003 + _value
1191 mov dptr,#_vsprintf_length_1_1
1195 ; Peephole 109 removed ljmp by inverse jump logic
1200 mov 0x0004 + _value,#0x00
1203 lcall _calculate_digit
1208 mov a,_value+4 ; a = <msd>
1210 orl b,a ; b = <msd><lsd>
1214 mov a,_value+4 ; a = <lsd>
1220 ; Peephole 167 removed redundant bit moves (c not set to _lsd)
1222 ; Peephole 132 changed ljmp to sjmp
1226 mov dptr,#_vsprintf_width_1_1
1229 ; Peephole 132 changed ljmp to sjmp
1230 ; Peephole 199 optimized misc jump sequence
1231 cjne r3,#0x00,00166$
1232 ; Peephole 201 removed redundant sjmp
1236 mov dptr,#_vsprintf_width_1_1
1241 ; Peephole 112 removed ljmp by inverse jump logic
1242 jb _vsprintf_zero_padding_1_1,00171$
1246 mov dptr,#_vsprintf_width_1_1
1256 mov dptr,#_vsprintf_width_1_1
1260 ; Peephole 110 removed ljmp by inverse jump logic
1270 ; Peephole 132 changed ljmp to sjmp
1274 ; Peephole 111 removed ljmp by inverse jump logic
1275 jnb _vsprintf_signed_argument_1_1,00180$
1281 mov dptr,#_vsprintf_width_1_1
1283 ; Peephole 105 removed redundant mov
1286 mov dptr,#_vsprintf_width_1_1
1288 ; Peephole 132 changed ljmp to sjmp
1292 mov dptr,#_vsprintf_length_1_1
1295 cjne r2,#0x00,00337$
1296 ; Peephole 132 changed ljmp to sjmp
1300 ; Peephole 111 removed ljmp by inverse jump logic
1301 jnb _vsprintf_prefix_sign_1_1,00175$
1307 mov dptr,#_vsprintf_width_1_1
1309 ; Peephole 105 removed redundant mov
1312 mov dptr,#_vsprintf_width_1_1
1314 ; Peephole 132 changed ljmp to sjmp
1318 ; Peephole 111 removed ljmp by inverse jump logic
1319 jnb _vsprintf_prefix_space_1_1,00258$
1325 mov dptr,#_vsprintf_width_1_1
1327 ; Peephole 105 removed redundant mov
1330 mov dptr,#_vsprintf_width_1_1
1334 mov dptr,#_vsprintf_length_1_1
1337 mov dptr,#_vsprintf_width_1_1
1346 ; Peephole 108 removed ljmp by inverse jump logic
1350 ; Peephole 111 removed ljmp by inverse jump logic
1351 jnb _vsprintf_zero_padding_1_1,00202$
1354 ; Peephole 132 changed ljmp to sjmp
1366 ; Peephole 132 changed ljmp to sjmp
1377 ; Peephole 167 removed redundant bit moves (c not set to _lsd)
1381 pop acc ; a = <msd><lsd>
1382 nop ; to disable the "optimizer"
1385 anl a,#0x0F ; a = <msd>
1389 anl a,#0x0F ; a = <lsd>
1394 mov dpl,0x0004 + _value
1397 ; Peephole 132 changed ljmp to sjmp
1401 mov dpl,_vsprintf_sloc0_1_0
1406 ; Peephole 111 removed ljmp by inverse jump logic
1407 jnb _output_to_string,00198$
1412 C$vprintf.c$414$1$1 ==.
1417 ; -----------------------------------------
1419 ; -----------------------------------------
1425 mov dptr,#_vprintf_format_1_1
1434 mov dptr,#_vprintf_format_1_1
1443 mov dptr,#_vprintf_PARM_2
1446 mov dptr,#_vsprintf_PARM_2
1455 mov dptr,#_vsprintf_PARM_3
1458 ; Peephole 181 used 16 bit load of dptr
1462 C$vprintf.c$421$1$1 ==.
1464 ; Peephole 151 removed misc moves via dph, dpl before return
1468 Fvprintf$memory_id$0$0 == .