;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.5.0 #1020 (Oct 16 2005)
; This file generated Sun Oct 16 22:33:20 2005
;--------------------------------------------------------
	.module printf_large
	.optsdcc -mmcs51 --model-small
	
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
	.globl __print_format_PARM_4
	.globl __print_format_PARM_3
	.globl __print_format_PARM_2
	.globl __print_format
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
	.area RSEG    (DATA)
;--------------------------------------------------------
; special function bits 
;--------------------------------------------------------
	.area RSEG    (DATA)
;--------------------------------------------------------
; overlayable register banks 
;--------------------------------------------------------
	.area REG_BANK_0	(REL,OVR,DATA)
	.ds 8
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
	.area DSEG    (DATA)
_output_char:
	.ds 2
_p:
	.ds 3
_value:
	.ds 5
__print_format_PARM_2::
	.ds 3
__print_format_PARM_3::
	.ds 3
__print_format_PARM_4::
	.ds 1
__print_format_radix_1_1::
	.ds 1
__print_format_width_1_1::
	.ds 1
__print_format_store_4_20::
	.ds 6
__print_format_pstore_4_20::
	.ds 1
__print_format_sloc2_1_0::
	.ds 3
__print_format_sloc3_1_0::
	.ds 2
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
	.area	OSEG    (OVR,DATA)
_calculate_digit_radix_1_1::
	.ds 1
_calculate_digit_i_1_1::
	.ds 1
;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
	.area ISEG    (DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
	.area BSEG    (BIT)
_lower_case:
	.ds 1
__print_format_left_justify_1_1::
	.ds 1
__print_format_zero_padding_1_1::
	.ds 1
__print_format_prefix_sign_1_1::
	.ds 1
__print_format_prefix_space_1_1::
	.ds 1
__print_format_signed_argument_1_1::
	.ds 1
__print_format_char_argument_1_1::
	.ds 1
__print_format_long_argument_1_1::
	.ds 1
__print_format_float_argument_1_1::
	.ds 1
__print_format_lsd_1_1::
	.ds 1
;--------------------------------------------------------
; paged external ram data
;--------------------------------------------------------
	.area PSEG    (PAG,XDATA)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
	.area XSEG    (XDATA)
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
	.area XISEG   (XDATA)
	.area CSEG    (CODE)
	.area GSINIT0 (CODE)
	.area GSINIT1 (CODE)
	.area GSINIT2 (CODE)
	.area GSINIT3 (CODE)
	.area GSINIT4 (CODE)
	.area GSINIT5 (CODE)
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
	.area CSEG    (CODE)
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area GSINIT  (CODE)
;--------------------------------------------------------
; Home
;--------------------------------------------------------
	.area HOME    (CODE)
	.area CSEG    (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG    (CODE)
;------------------------------------------------------------
;Allocation info for local variables in function 'output_digit'
;------------------------------------------------------------
;n                         Allocated to registers r2 
;------------------------------------------------------------
;printf_large.c:80: static void output_digit( unsigned char n )
;	-----------------------------------------
;	 function output_digit
;	-----------------------------------------
_output_digit:
	ar2 = 0x02
	ar3 = 0x03
	ar4 = 0x04
	ar5 = 0x05
	ar6 = 0x06
	ar7 = 0x07
	ar0 = 0x00
	ar1 = 0x01
;     genReceive
	mov	r2,dpl
;printf_large.c:83: output_char( n <= 9 ? '0'+n :
;     genCmpGt
;     genCmp
	clr	c
	mov	a,#0x09
	subb	a,r2
;     genNot
;	Peephole 105	removed redundant mov
;     genIfx
;	Peephole 105	removed redundant mov
;	Peephole 245	optimized complement (r3 and acc set needed?)
	cpl	c
	clr	a
	rlc	a
	mov	r3,a
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00103$
00110$:
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r3,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00104$
00103$:
;printf_large.c:84: (lower_case ? n+(char)('a'-10) : n+(char)('A'-10)), p );
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	_lower_case,00105$
00111$:
;     genPlus
	mov	a,#0x57
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r4,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00106$
00105$:
;     genPlus
	mov	a,#0x37
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r4,a
00106$:
;     genAssign
	mov	ar3,r4
00104$:
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00112$
	push	acc
	mov	a,#(00112$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r3
	ret
00112$:
	dec	sp
	dec	sp
	dec	sp
00101$:
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'output_2digits'
;------------------------------------------------------------
;b                         Allocated to registers r2 
;------------------------------------------------------------
;printf_large.c:98: static void output_2digits( unsigned char b )
;	-----------------------------------------
;	 function output_2digits
;	-----------------------------------------
_output_2digits:
;     genReceive
;printf_large.c:100: output_digit( b>>4   );
;     genRightShift
;     genRightShiftLiteral
;     genrshOne
;	peephole 177.g	optimized mov sequence
	mov	a,dpl
	mov	r2,a
	swap	a
	anl	a,#0x0f
	mov	dpl,a
;     genCall
	push	ar2
	lcall	_output_digit
	pop	ar2
;printf_large.c:101: output_digit( b&0x0F );
;     genAnd
	mov	a,#0x0F
	anl	a,r2
	mov	dpl,a
;     genCall
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_output_digit
;------------------------------------------------------------
;Allocation info for local variables in function 'calculate_digit'
;------------------------------------------------------------
;radix                     Allocated with name '_calculate_digit_radix_1_1'
;i                         Allocated with name '_calculate_digit_i_1_1'
;------------------------------------------------------------
;printf_large.c:125: static void calculate_digit( unsigned char radix )
;	-----------------------------------------
;	 function calculate_digit
;	-----------------------------------------
_calculate_digit:
;     genReceive
	mov	_calculate_digit_radix_1_1,dpl
;printf_large.c:129: for( i = 32; i != 0; i-- )
;     genAssign
	mov	_calculate_digit_i_1_1,#0x20
00103$:
;     genCmpEq
	mov	a,_calculate_digit_i_1_1
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00107$
00112$:
;printf_large.c:131: value.byte[4] = (value.byte[4] << 1) | ((value.ul >> 31) & 0x01);
;     genAssign
;     genLeftShift
;     genLeftShiftLiteral
;     genlshOne
	mov	a,0x0004 + _value
	add	a,acc
	mov	r4,a
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r5,_value
	mov	r6,(_value + 1)
	mov	r7,(_value + 2)
;     genGetHbit
;	peephole 177.g	optimized mov sequence
	mov	a,(_value + 3)
	mov	r3,a
	rl	a
	anl	a,#0x01
;     genOr
;	Peephole 105	removed redundant mov
	mov	r2,a
	orl	a,r4
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	(_value + 0x0004),a
;printf_large.c:132: value.ul <<= 1;
;     genLeftShift
;     genLeftShiftLiteral
;     genlshFour
;	Peephole 254	optimized left shift
	mov	a,r5
	add	a,r5
	mov	r5,a
	mov	a,r6
	rlc	a
	mov	r6,a
	mov	a,r7
	rlc	a
	mov	r7,a
	mov	a,r3
	rlc	a
	mov	r3,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
	mov	(_value + 3),r3
;printf_large.c:134: if (radix <= value.byte[4] )
;     genAssign
;     genCmpGt
;     genCmp
	clr	c
	mov	a,0x0004 + _value
	subb	a,_calculate_digit_radix_1_1
;     genIfxJump
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 160	removed sjmp by inverse jump logic
	jc	00105$
00113$:
;printf_large.c:136: value.byte[4] -= radix;
;     genAssign
;     genMinus
	mov	a,0x0004 + _value
	clr	c
	subb	a,_calculate_digit_radix_1_1
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	(_value + 0x0004),a
;printf_large.c:137: value.ul |= 1;
;     genAssign
;     genOr
	mov	a,#0x01
	orl	a,_value
	mov	r2,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	r3,(_value + 1)
	mov	r4,(_value + 2)
	mov	r5,(_value + 3)
	mov	_value,r2
;	Peephole 238.b	removed 3 redundant moves
00105$:
;printf_large.c:129: for( i = 32; i != 0; i-- )
;     genMinus
;     genMinusDec
	dec	_calculate_digit_i_1_1
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00103$
00107$:
	ret
;------------------------------------------------------------
;Allocation info for local variables in function '_print_format'
;------------------------------------------------------------
;pvoid                     Allocated with name '__print_format_PARM_2'
;format                    Allocated with name '__print_format_PARM_3'
;ap                        Allocated with name '__print_format_PARM_4'
;pfn                       Allocated to registers 
;radix                     Allocated with name '__print_format_radix_1_1'
;charsOutputted            Allocated with name '__print_format_sloc3_1_0'
;width                     Allocated with name '__print_format_width_1_1'
;decimals                  Allocated to registers r7 
;length                    Allocated to registers r4 
;c                         Allocated to registers r4 
;store                     Allocated with name '__print_format_store_4_20'
;pstore                    Allocated with name '__print_format_pstore_4_20'
;sloc0                     Allocated with name '__print_format_sloc0_1_0'
;sloc1                     Allocated with name '__print_format_sloc1_1_0'
;sloc2                     Allocated with name '__print_format_sloc2_1_0'
;sloc3                     Allocated with name '__print_format_sloc3_1_0'
;------------------------------------------------------------
;printf_large.c:339: int _print_format (pfn_outputchar pfn, void* pvoid, const char *format, va_list ap)
;	-----------------------------------------
;	 function _print_format
;	-----------------------------------------
__print_format:
;     genReceive
	mov	_output_char,dpl
	mov	(_output_char + 1),dph
;printf_large.c:367: p = pvoid;
;     genAssign
	mov	_p,__print_format_PARM_2
	mov	(_p + 1),(__print_format_PARM_2 + 1)
	mov	(_p + 2),(__print_format_PARM_2 + 2)
;printf_large.c:371: charsOutputted=0;
;     genAssign
	clr	a
	mov	__print_format_sloc3_1_0,a
	mov	(__print_format_sloc3_1_0 + 1),a
;printf_large.c:379: while( c=*format++ )
00221$:
;     genAssign
	mov	r4,__print_format_PARM_3
	mov	r5,(__print_format_PARM_3 + 1)
	mov	r6,(__print_format_PARM_3 + 2)
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r4
	mov	dph,r5
	mov	b,r6
	lcall	__gptrget
	mov	r7,a
;     genPlus
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r4 instead of ar4
	add	a,r4
	mov	__print_format_PARM_3,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r5 instead of ar5
	addc	a,r5
	mov	(__print_format_PARM_3 + 1),a
	mov	(__print_format_PARM_3 + 2),r6
;     genAssign
;     genIfx
;	peephole 177.h	optimized mov sequence
	mov	a,r7
;	Peephole 236.i	used r4 instead of ar4
	mov	r4,a
;     genIfxJump
	jnz	00297$
	ljmp	00223$
00297$:
;printf_large.c:381: if ( c=='%' )
;     genCmpEq
	cjne	r4,#0x25,00298$
	sjmp	00299$
00298$:
	ljmp	00219$
00299$:
;printf_large.c:383: left_justify    = 0;
;     genAssign
	clr	__print_format_left_justify_1_1
;printf_large.c:384: zero_padding    = 0;
;     genAssign
	clr	__print_format_zero_padding_1_1
;printf_large.c:385: prefix_sign     = 0;
;     genAssign
	clr	__print_format_prefix_sign_1_1
;printf_large.c:386: prefix_space    = 0;
;     genAssign
	clr	__print_format_prefix_space_1_1
;printf_large.c:387: signed_argument = 0;
;     genAssign
	clr	__print_format_signed_argument_1_1
;printf_large.c:388: radix           = 0;
;     genAssign
	mov	__print_format_radix_1_1,#0x00
;printf_large.c:389: char_argument   = 0;
;     genAssign
	clr	__print_format_char_argument_1_1
;printf_large.c:390: long_argument   = 0;
;     genAssign
	clr	__print_format_long_argument_1_1
;printf_large.c:391: float_argument  = 0;
;     genAssign
	clr	__print_format_float_argument_1_1
;printf_large.c:392: width           = 0;
;     genAssign
	mov	__print_format_width_1_1,#0x00
;printf_large.c:393: decimals        = -1;
;     genAssign
	mov	r7,#0x00
;printf_large.c:395: get_conversion_spec:
;     genAssign
	mov	r2,__print_format_PARM_3
	mov	r3,(__print_format_PARM_3 + 1)
	mov	r6,(__print_format_PARM_3 + 2)
00101$:
;printf_large.c:397: c = *format++;
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r6
	lcall	__gptrget
	mov	r4,a
	inc	dptr
	mov	r2,dpl
	mov	r3,dph
;     genAssign
	mov	__print_format_PARM_3,r2
	mov	(__print_format_PARM_3 + 1),r3
	mov	(__print_format_PARM_3 + 2),r6
;printf_large.c:399: if (c=='%') {
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r4,#0x25,00103$
;00300$:
;	Peephole 200	removed redundant sjmp
00301$:
;printf_large.c:400: output_char(c, p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00302$
	push	acc
	mov	a,#(00302$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00302$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:401: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00303$
	inc	(__print_format_sloc3_1_0 + 1)
00303$:
;printf_large.c:402: continue;
	ljmp	00221$
00103$:
;printf_large.c:405: if (isdigit(c)) {
;     genCall
	mov	dpl,r4
	push	ar2
	push	ar3
	push	ar4
	push	ar6
	push	ar7
	lcall	_isdigit
	mov	a,dpl
	pop	ar7
	pop	ar6
	pop	ar4
	pop	ar3
	pop	ar2
;     genIfx
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00110$
00304$:
;printf_large.c:406: if (decimals==-1) {
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r7,#0x00,00107$
;00305$:
;	Peephole 200	removed redundant sjmp
00306$:
;printf_large.c:407: width = 10*width + (c - '0');
;     genMult
;     genMultOneByte
	mov	a,__print_format_width_1_1
	mov	b,#0x0A
	mul	ab
	mov	r5,a
;     genMinus
	mov	a,r4
	add	a,#0xd0
;     genPlus
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
;printf_large.c:408: if (width == 0) {
;     genCmpEq
;	Peephole 105	removed redundant mov
	mov	__print_format_width_1_1,a
;	Peephole 162	removed sjmp by inverse jump logic
	jz	00308$
00307$:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00101$
00308$:
;printf_large.c:410: zero_padding = 1;
;     genAssign
	setb	__print_format_zero_padding_1_1
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00101$
00107$:
;printf_large.c:413: decimals = 10*decimals + (c-'0');
;     genMult
;     genMultOneByte
	mov	a,r7
	mov	b,#0x0A
	mul	ab
	mov	r5,a
;     genMinus
	mov	a,r4
	add	a,#0xd0
;     genPlus
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
	mov	r7,a
;printf_large.c:415: goto get_conversion_spec;
	ljmp	00101$
00110$:
;printf_large.c:418: if (c=='.') {
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r4,#0x2E,00114$
;00309$:
;	Peephole 200	removed redundant sjmp
00310$:
;printf_large.c:419: if (decimals=-1) decimals=0;
;     genAssign
	mov	r7,#0x00
;printf_large.c:422: goto get_conversion_spec;
	ljmp	00101$
00114$:
;printf_large.c:425: lower_case = islower(c);
;     genCall
	mov	dpl,r4
	push	ar2
	push	ar3
	push	ar4
	push	ar6
	push	ar7
	lcall	_islower
	mov	a,dpl
	add	a,#0xff
	mov	_lower_case,c
	pop	ar7
	pop	ar6
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:426: if (lower_case)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	_lower_case,00116$
00311$:
;printf_large.c:428: c = toupper(c);
;     genAnd
	mov	r4,#0x00
00116$:
;printf_large.c:431: switch( c )
;     genCmpEq
	cjne	r4,#0x20,00312$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00119$
00312$:
;     genCmpEq
	cjne	r4,#0x2B,00313$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00118$
00313$:
;     genCmpEq
	cjne	r4,#0x2D,00314$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00117$
00314$:
;     genCmpEq
	cjne	r4,#0x42,00315$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00120$
00315$:
;     genCmpEq
	cjne	r4,#0x43,00316$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00122$
00316$:
;     genCmpEq
	cjne	r4,#0x44,00317$
	ljmp	00144$
00317$:
;     genCmpEq
	cjne	r4,#0x46,00318$
	ljmp	00148$
00318$:
;     genCmpEq
	cjne	r4,#0x49,00319$
	ljmp	00144$
00319$:
;     genCmpEq
	cjne	r4,#0x4C,00320$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00121$
00320$:
;     genCmpEq
	cjne	r4,#0x4F,00321$
	ljmp	00145$
00321$:
;     genCmpEq
	cjne	r4,#0x50,00322$
	ljmp	00139$
00322$:
;     genCmpEq
	cjne	r4,#0x53,00323$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00123$
00323$:
;     genCmpEq
	cjne	r4,#0x55,00324$
	ljmp	00146$
00324$:
;     genCmpEq
	cjne	r4,#0x58,00325$
	ljmp	00147$
00325$:
	ljmp	00149$
;printf_large.c:433: case '-':
00117$:
;printf_large.c:434: left_justify = 1;
;     genAssign
	setb	__print_format_left_justify_1_1
;printf_large.c:435: goto get_conversion_spec;
	ljmp	00101$
;printf_large.c:436: case '+':
00118$:
;printf_large.c:437: prefix_sign = 1;
;     genAssign
	setb	__print_format_prefix_sign_1_1
;printf_large.c:438: goto get_conversion_spec;
	ljmp	00101$
;printf_large.c:439: case ' ':
00119$:
;printf_large.c:440: prefix_space = 1;
;     genAssign
	setb	__print_format_prefix_space_1_1
;printf_large.c:441: goto get_conversion_spec;
	ljmp	00101$
;printf_large.c:442: case 'B':
00120$:
;printf_large.c:443: char_argument = 1;
;     genAssign
	setb	__print_format_char_argument_1_1
;printf_large.c:444: goto get_conversion_spec;
	ljmp	00101$
;printf_large.c:445: case 'L':
00121$:
;printf_large.c:446: long_argument = 1;
;     genAssign
	setb	__print_format_long_argument_1_1
;printf_large.c:447: goto get_conversion_spec;
	ljmp	00101$
;printf_large.c:449: case 'C':
00122$:
;printf_large.c:450: output_char( va_arg(ap,int), p );
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	add	a,#0xfe
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar5,@r0
	inc	r0
	mov	ar7,@r0
	dec	r0
;     genCast
	mov	dpl,r5
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00326$
	push	acc
	mov	a,#(00326$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	ret
00326$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:451: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00327$
	inc	(__print_format_sloc3_1_0 + 1)
00327$:
;printf_large.c:452: break;
	ljmp	00150$
;printf_large.c:454: case 'S':
00123$:
;printf_large.c:455: PTR = va_arg(ap,ptr_t);
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	add	a,#0xfd
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar5,@r0
	inc	r0
	mov	ar7,@r0
	inc	r0
	mov	ar6,@r0
	dec	r0
	dec	r0
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r7
	mov	(_value + 2),r6
;printf_large.c:465: length = strlen(PTR);
;     genCall
	mov	dpl,r5
	mov	dph,r7
	mov	b,r6
	lcall	_strlen
	mov	r5,dpl
	mov	r6,dph
;     genCast
	mov	ar4,r5
;printf_large.c:467: if ( ( !left_justify ) && (length < width) )
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_left_justify_1_1,00259$
00328$:
;     genCmpLt
;     genCmp
	clr	c
	mov	a,r4
	subb	a,__print_format_width_1_1
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00259$
00329$:
;printf_large.c:469: width -= length;
;     genMinus
	mov	a,__print_format_width_1_1
	clr	c
;	Peephole 236.l	used r4 instead of ar4
	subb	a,r4
	mov	__print_format_width_1_1,a
;printf_large.c:470: while( width-- != 0 )
;     genAssign
	mov	r6,__print_format_sloc3_1_0
	mov	r7,(__print_format_sloc3_1_0 + 1)
;     genAssign
	mov	r2,__print_format_width_1_1
00124$:
;     genIpush
	push	ar4
;     genAssign
	mov	ar5,r2
;     genMinus
;     genMinusDec
	dec	r2
;     genAssign
	mov	__print_format_width_1_1,r2
;     genCmpEq
;	Peephole 241.c	optimized compare
	clr	a
	cjne	r5,#0x00,00330$
	inc	a
00330$:
00331$:
	mov	r5,a
;     genAssign
	mov	__print_format_sloc3_1_0,r6
	mov	(__print_format_sloc3_1_0 + 1),r7
;     genIpop
	pop	ar4
;     genIfx
	mov	a,r5
;     genIfxJump
;	Peephole 109	removed ljmp by inverse jump logic
	jnz	00259$
00332$:
;printf_large.c:472: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar4
	push	ar6
	push	ar7
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00333$
	push	acc
	mov	a,#(00333$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00333$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar7
	pop	ar6
	pop	ar4
	pop	ar2
;printf_large.c:473: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r6
;printf_large.c:477: while ( *PTR )
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r6,#0x00,00124$
	inc	r7
00334$:
	sjmp	00124$
00259$:
;     genAssign
	mov	r2,__print_format_sloc3_1_0
	mov	r3,(__print_format_sloc3_1_0 + 1)
00130$:
;     genAssign
;     genPointerGet
;     genGenPointerGet
	mov	dpl,_value
	mov	dph,(_value + 1)
	mov	b,(_value + 2)
	lcall	__gptrget
	mov	r5,a
;     genAssign
	mov	__print_format_sloc3_1_0,r2
	mov	(__print_format_sloc3_1_0 + 1),r3
;     genIfx
	mov	a,r5
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00132$
00335$:
;printf_large.c:479: output_char( *PTR++, p );
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	__print_format_sloc2_1_0,_value
	mov	(__print_format_sloc2_1_0 + 1),(_value + 1)
	mov	(__print_format_sloc2_1_0 + 2),(_value + 2)
;     genPlus
;     genPlusIncr
	mov	a,#0x01
	add	a,__print_format_sloc2_1_0
	mov	r5,a
;	Peephole 181	changed mov to clr
	clr	a
	addc	a,(__print_format_sloc2_1_0 + 1)
	mov	r6,a
	mov	r7,(__print_format_sloc2_1_0 + 2)
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
;     genPointerGet
;     genGenPointerGet
	mov	dpl,__print_format_sloc2_1_0
	mov	dph,(__print_format_sloc2_1_0 + 1)
	mov	b,(__print_format_sloc2_1_0 + 2)
	lcall	__gptrget
	mov	r5,a
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00336$
	push	acc
	mov	a,#(00336$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r5
	ret
00336$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:480: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00130$
	inc	r3
00337$:
	sjmp	00130$
00132$:
;printf_large.c:483: if ( left_justify && (length < width))
;     genIfx
;     genIfxJump
	jb	__print_format_left_justify_1_1,00338$
	ljmp	00150$
00338$:
;     genCmpLt
;     genCmp
	clr	c
	mov	a,r4
	subb	a,__print_format_width_1_1
;     genIfxJump
	jc	00339$
	ljmp	00150$
00339$:
;printf_large.c:485: width -= length;
;     genMinus
	mov	a,__print_format_width_1_1
	clr	c
;	Peephole 236.l	used r4 instead of ar4
	subb	a,r4
	mov	__print_format_width_1_1,a
;printf_large.c:486: while( width-- != 0 )
;     genAssign
;     genAssign
	mov	r7,__print_format_width_1_1
00133$:
;     genAssign
	mov	ar5,r7
;     genMinus
;     genMinusDec
	dec	r7
;     genAssign
	mov	__print_format_width_1_1,r7
;     genCmpEq
;	Peephole 241.c	optimized compare
	clr	a
	cjne	r5,#0x00,00340$
	inc	a
00340$:
00341$:
	mov	r5,a
;     genAssign
	mov	__print_format_sloc3_1_0,r2
	mov	(__print_format_sloc3_1_0 + 1),r3
;     genIfx
	mov	a,r5
;     genIfxJump
	jz	00342$
	ljmp	00150$
00342$:
;printf_large.c:488: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar3
	push	ar7
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00343$
	push	acc
	mov	a,#(00343$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00343$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar7
	pop	ar3
	pop	ar2
;printf_large.c:489: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;printf_large.c:494: case 'P':
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00133$
	inc	r3
00344$:
	sjmp	00133$
00139$:
;printf_large.c:495: PTR = va_arg(ap,ptr_t);
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	add	a,#0xfd
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar5,@r0
	inc	r0
	mov	ar6,@r0
	inc	r0
	mov	ar7,@r0
	dec	r0
	dec	r0
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
;printf_large.c:507: output_char( memory_id[(value.byte[2] > 3) ? 4 : value.byte[2]], p );
;     genAssign
;     genCmpGt
;     genCmp
	clr	c
	mov	a,#0x03
	subb	a,0x0002 + _value
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00226$
00345$:
;     genAssign
	mov	r5,#0x04
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00227$
00226$:
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r5,(_value + 0x0002)
00227$:
;     genPlus
;	Peephole 236.g	used r5 instead of ar5
	mov	a,r5
;	Peephole 181	changed mov to clr
;     genPointerGet
;     genCodePointerGet
;	Peephole 181	changed mov to clr
;	Peephole 186.d	optimized movc sequence
	mov	dptr,#_memory_id
	movc	a,@a+dptr
	mov	r5,a
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00346$
	push	acc
	mov	a,#(00346$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r5
	ret
00346$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:508: output_char(':', p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00347$
	push	acc
	mov	a,#(00347$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x3A
	ret
00347$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:509: output_char('0', p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00348$
	push	acc
	mov	a,#(00348$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x30
	ret
00348$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:510: output_char('x', p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00349$
	push	acc
	mov	a,#(00349$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x78
	ret
00349$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:511: if ((value.byte[2] != 0x00 /* DSEG */) &&
;     genAssign
;     genCmpEq
	mov	a,0x0002 + _value
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00141$
00350$:
;printf_large.c:512: (value.byte[2] != 0x03 /* SSEG */))
;     genAssign
;     genCmpEq
	mov	a,0x0002 + _value
	cjne	a,#0x03,00351$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00141$
00351$:
;printf_large.c:514: OUTPUT_2DIGITS( value.byte[1] );
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	dpl,(_value + 0x0001)
;     genCall
	lcall	_output_2digits
;printf_large.c:515: charsOutputted += 2;
;     genPlus
;     genPlusIncr
	mov	a,#0x02
	add	a,__print_format_sloc3_1_0
	mov	__print_format_sloc3_1_0,a
;	Peephole 181	changed mov to clr
	clr	a
	addc	a,(__print_format_sloc3_1_0 + 1)
	mov	(__print_format_sloc3_1_0 + 1),a
00141$:
;printf_large.c:517: OUTPUT_2DIGITS( value.byte[0] );
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	dpl,_value
;     genCall
	lcall	_output_2digits
;printf_large.c:518: charsOutputted += 6;
;     genPlus
	mov	a,#0x06
	add	a,__print_format_sloc3_1_0
	mov	__print_format_sloc3_1_0,a
;	Peephole 181	changed mov to clr
	clr	a
	addc	a,(__print_format_sloc3_1_0 + 1)
	mov	(__print_format_sloc3_1_0 + 1),a
;printf_large.c:520: break;
;printf_large.c:523: case 'I':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00150$
00144$:
;printf_large.c:524: signed_argument = 1;
;     genAssign
	setb	__print_format_signed_argument_1_1
;printf_large.c:525: radix = 10;
;     genAssign
	mov	__print_format_radix_1_1,#0x0A
;printf_large.c:526: break;
;printf_large.c:528: case 'O':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00150$
00145$:
;printf_large.c:529: radix = 8;
;     genAssign
	mov	__print_format_radix_1_1,#0x08
;printf_large.c:530: break;
;printf_large.c:532: case 'U':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00150$
00146$:
;printf_large.c:533: radix = 10;
;     genAssign
	mov	__print_format_radix_1_1,#0x0A
;printf_large.c:534: break;
;printf_large.c:536: case 'X':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00150$
00147$:
;printf_large.c:537: radix = 16;
;     genAssign
	mov	__print_format_radix_1_1,#0x10
;printf_large.c:538: break;
;printf_large.c:540: case 'F':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00150$
00148$:
;printf_large.c:541: float_argument=1;
;     genAssign
	setb	__print_format_float_argument_1_1
;printf_large.c:542: break;
;printf_large.c:544: default:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00150$
00149$:
;printf_large.c:546: output_char( c, p );
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00352$
	push	acc
	mov	a,#(00352$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00352$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:547: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00353$
	inc	(__print_format_sloc3_1_0 + 1)
00353$:
;printf_large.c:549: }
00150$:
;printf_large.c:551: if (float_argument) {
;     genIfx
;     genIfxJump
	jb	__print_format_float_argument_1_1,00354$
	ljmp	00216$
00354$:
;printf_large.c:552: value.f=va_arg(ap,float);
;     genIpush
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	add	a,#0xfc
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar5,@r0
	inc	r0
	mov	ar6,@r0
	inc	r0
	mov	ar7,@r0
	inc	r0
	mov	ar2,@r0
	dec	r0
	dec	r0
	dec	r0
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
	mov	(_value + 3),r2
;printf_large.c:554: PTR="<NO FLOAT>";
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,#__str_0
	mov	(_value + 1),#(__str_0 >> 8)
	mov	(_value + 2),#0x02
;printf_large.c:727: return charsOutputted;
;     genIpop
;printf_large.c:555: while (c=*PTR++)
;     genAssign
	mov	__print_format_sloc2_1_0,__print_format_sloc3_1_0
	mov	(__print_format_sloc2_1_0 + 1),(__print_format_sloc3_1_0 + 1)
00151$:
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r2,_value
	mov	r3,(_value + 1)
	mov	r4,(_value + 2)
;     genPlus
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r5,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	r6,a
	mov	ar7,r4
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	__gptrget
	mov	r5,a
;     genAssign
	mov	ar4,r5
;     genAssign
	mov	__print_format_sloc3_1_0,__print_format_sloc2_1_0
	mov	(__print_format_sloc3_1_0 + 1),(__print_format_sloc2_1_0 + 1)
;     genIfx
	mov	a,r5
;     genIfxJump
	jnz	00355$
	ljmp	00221$
00355$:
;printf_large.c:557: output_char (c, p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00356$
	push	acc
	mov	a,#(00356$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00356$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:558: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc2_1_0
	clr	a
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	a,__print_format_sloc2_1_0,00151$
	inc	(__print_format_sloc2_1_0 + 1)
00357$:
	sjmp	00151$
00216$:
;printf_large.c:570: } else if (radix != 0)
;     genCmpEq
	mov	a,__print_format_radix_1_1
	jnz	00358$
	ljmp	00221$
00358$:
;printf_large.c:575: unsigned char _AUTOMEM *pstore = &store[5];
;     genAssign
	mov	__print_format_pstore_4_20,#(__print_format_store_4_20 + 0x0005)
;printf_large.c:578: if (char_argument)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_char_argument_1_1,00162$
00359$:
;printf_large.c:580: value.l = va_arg(ap,char);
;     genIpush
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	dec	a
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar6,@r0
;     genCast
	mov	a,r6
	rlc	a
	subb	a,acc
	mov	r7,a
	mov	r5,a
	mov	r2,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r6
	mov	(_value + 1),r7
	mov	(_value + 2),r5
	mov	(_value + 3),r2
;printf_large.c:581: if (!signed_argument)
;     genIpop
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_signed_argument_1_1,00163$
00360$:
;printf_large.c:583: value.l &= 0xFF;
;     genIpush
;     genAssign
;     genAnd
	mov	r5,_value
	mov	r6,#0x00
	mov	r7,#0x00
	mov	r2,#0x00
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
	mov	(_value + 3),r2
;     genIpop
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00163$
00162$:
;printf_large.c:586: else if (long_argument)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_long_argument_1_1,00159$
00361$:
;printf_large.c:588: value.l = va_arg(ap,long);
;     genIpush
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	add	a,#0xfc
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar5,@r0
	inc	r0
	mov	ar6,@r0
	inc	r0
	mov	ar7,@r0
	inc	r0
	mov	ar2,@r0
	dec	r0
	dec	r0
	dec	r0
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
	mov	(_value + 3),r2
;     genIpop
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00163$
00159$:
;printf_large.c:592: value.l = va_arg(ap,int);
;     genIpush
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	add	a,#0xfe
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar5,@r0
	inc	r0
	mov	ar6,@r0
	dec	r0
;     genCast
	mov	a,r6
	rlc	a
	subb	a,acc
	mov	r7,a
	mov	r2,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r5
	mov	(_value + 1),r6
	mov	(_value + 2),r7
	mov	(_value + 3),r2
;printf_large.c:593: if (!signed_argument)
;     genIpop
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_signed_argument_1_1,00163$
00362$:
;printf_large.c:595: value.l &= 0xFFFF;
;     genAssign
;     genAnd
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	r5,_value
	mov	r6,(_value + 1)
	mov	r7,#0x00
	mov	r2,#0x00
;	Peephole 238.c	removed 2 redundant moves
	mov	(_value + 2),r7
	mov	(_value + 3),r2
00163$:
;printf_large.c:599: if ( signed_argument )
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_signed_argument_1_1,00168$
00363$:
;printf_large.c:601: if (value.l < 0)
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r2,_value
	mov	r3,(_value + 1)
	mov	r5,(_value + 2)
;     genCmpLt
;     genCmp
;	peephole 177.g	optimized mov sequence
	mov	a,(_value + 3)
	mov	r6,a
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	acc.7,00165$
00364$:
;printf_large.c:602: value.l = -value.l;
;     genUminus
	clr	c
	clr	a
	subb	a,r2
	mov	r2,a
	clr	a
	subb	a,r3
	mov	r3,a
	clr	a
	subb	a,r5
	mov	r5,a
	clr	a
	subb	a,r6
	mov	r6,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r2
	mov	(_value + 1),r3
	mov	(_value + 2),r5
	mov	(_value + 3),r6
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00168$
00165$:
;printf_large.c:604: signed_argument = 0;
;     genAssign
	clr	__print_format_signed_argument_1_1
00168$:
;printf_large.c:608: lsd = 1;
;     genAssign
	setb	__print_format_lsd_1_1
;printf_large.c:610: do {
;     genAssign
	mov	r0,__print_format_pstore_4_20
;     genAssign
	mov	r2,#0x00
00172$:
;printf_large.c:611: value.byte[4] = 0;
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	(_value + 0x0004),#0x00
;printf_large.c:615: calculate_digit(radix);
;     genCall
	mov	dpl,__print_format_radix_1_1
	push	ar2
	push	ar0
	lcall	_calculate_digit
	pop	ar0
	pop	ar2
;printf_large.c:617: if (!lsd)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_lsd_1_1,00170$
00365$:
;printf_large.c:619: *pstore = (value.byte[4] << 4) | (value.byte[4] >> 4) | *pstore;
;     genAssign
;     genSwap
	mov	a,0x0004 + _value
	swap	a
	mov	r3,a
;     genPointerGet
;     genNearPointerGet
	mov	ar5,@r0
;     genOr
	mov	a,r5
	orl	a,r3
;     genPointerSet
;     genNearPointerSet
	mov	@r0,acc
;printf_large.c:620: pstore--;
;     genMinus
;     genMinusDec
	dec	r0
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00171$
00170$:
;printf_large.c:624: *pstore = value.byte[4];
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r3,(_value + 0x0004)
;     genPointerSet
;     genNearPointerSet
	mov	@r0,ar3
00171$:
;printf_large.c:626: length++;
;     genPlus
;     genPlusIncr
	inc	r2
;     genAssign
	mov	ar4,r2
;printf_large.c:627: lsd = !lsd;
;     genNot
;	Peephole 167	removed redundant bit moves (c not set to __print_format_lsd_1_1)
	cpl	__print_format_lsd_1_1
;printf_large.c:628: } while( value.ul );
;     genAssign
;     genAssign
	mov	__print_format_pstore_4_20,r0
;     genIfx
	mov	a,_value
	orl	a,(_value + 1)
	orl	a,(_value + 2)
	orl	a,(_value + 3)
;     genIfxJump
;	Peephole 109	removed ljmp by inverse jump logic
	jnz	00172$
00366$:
;printf_large.c:630: if (width == 0)
;     genCmpEq
	mov	a,__print_format_width_1_1
;	Peephole 162	removed sjmp by inverse jump logic
	jz	00368$
00367$:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00176$
00368$:
;printf_large.c:635: width=1;
;     genAssign
	mov	__print_format_width_1_1,#0x01
00176$:
;printf_large.c:639: if (!zero_padding && !left_justify)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_zero_padding_1_1,00181$
00369$:
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_left_justify_1_1,00181$
00370$:
;printf_large.c:641: while ( width > (unsigned char) (length+1) )
;     genPlus
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r4 instead of ar4
	add	a,r4
	mov	r2,a
;     genAssign
	mov	r3,__print_format_sloc3_1_0
	mov	r5,(__print_format_sloc3_1_0 + 1)
;     genAssign
	mov	r6,__print_format_width_1_1
00177$:
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r2
	subb	a,r6
	clr	a
	rlc	a
	mov	r7,a
;     genAssign
	mov	__print_format_sloc3_1_0,r3
	mov	(__print_format_sloc3_1_0 + 1),r5
;     genAssign
	mov	__print_format_width_1_1,r6
;     genIfx
	mov	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00181$
00371$:
;printf_large.c:643: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00372$
	push	acc
	mov	a,#(00372$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00372$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:644: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r3
	cjne	r3,#0x00,00373$
	inc	r5
00373$:
;printf_large.c:645: width--;
;     genMinus
;     genMinusDec
	dec	r6
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00177$
00181$:
;printf_large.c:649: if (signed_argument) // this now means the original value was negative
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_signed_argument_1_1,00191$
00374$:
;printf_large.c:651: output_char( '-', p );
;     genIpush
	push	ar4
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00375$
	push	acc
	mov	a,#(00375$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x2D
	ret
00375$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar4
;printf_large.c:652: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00376$
	inc	(__print_format_sloc3_1_0 + 1)
00376$:
;printf_large.c:654: width--;
;     genMinus
;     genMinusDec
	dec	__print_format_width_1_1
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00192$
00191$:
;printf_large.c:656: else if (length != 0)
;     genCmpEq
	cjne	r4,#0x00,00377$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00192$
00377$:
;printf_large.c:659: if (prefix_sign)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_prefix_sign_1_1,00186$
00378$:
;printf_large.c:661: output_char( '+', p );
;     genIpush
	push	ar4
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00379$
	push	acc
	mov	a,#(00379$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x2B
	ret
00379$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar4
;printf_large.c:662: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00380$
	inc	(__print_format_sloc3_1_0 + 1)
00380$:
;printf_large.c:664: width--;
;     genMinus
;     genMinusDec
	dec	__print_format_width_1_1
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00192$
00186$:
;printf_large.c:666: else if (prefix_space)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_prefix_space_1_1,00192$
00381$:
;printf_large.c:668: output_char( ' ', p );
;     genIpush
	push	ar4
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00382$
	push	acc
	mov	a,#(00382$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00382$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar4
;printf_large.c:669: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00383$
	inc	(__print_format_sloc3_1_0 + 1)
00383$:
;printf_large.c:671: width--;
;     genMinus
;     genMinusDec
	dec	__print_format_width_1_1
00192$:
;printf_large.c:676: if (!left_justify)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_left_justify_1_1,00200$
00384$:
;printf_large.c:677: while ( width-- > length )
;     genAssign
	mov	r2,__print_format_sloc3_1_0
	mov	r3,(__print_format_sloc3_1_0 + 1)
;     genAssign
	mov	r5,__print_format_width_1_1
00193$:
;     genAssign
	mov	ar6,r5
;     genMinus
;     genMinusDec
	dec	r5
;     genAssign
	mov	__print_format_width_1_1,r5
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r4
	subb	a,r6
	clr	a
	rlc	a
	mov	r6,a
;     genAssign
	mov	__print_format_sloc3_1_0,r2
	mov	(__print_format_sloc3_1_0 + 1),r3
;     genIfx
	mov	a,r6
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00294$
00385$:
;printf_large.c:679: output_char( zero_padding ? '0' : ' ', p );
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_zero_padding_1_1,00228$
00386$:
;     genAssign
	mov	r6,#0x30
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00229$
00228$:
;     genAssign
	mov	r6,#0x20
00229$:
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00387$
	push	acc
	mov	a,#(00387$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r6
	ret
00387$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:680: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00193$
	inc	r3
00388$:
	sjmp	00193$
00200$:
;printf_large.c:685: if (width > length)
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r4
	subb	a,__print_format_width_1_1
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00197$
00389$:
;printf_large.c:686: width -= length;
;     genMinus
	mov	a,__print_format_width_1_1
	clr	c
;	Peephole 236.l	used r4 instead of ar4
	subb	a,r4
	mov	__print_format_width_1_1,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00294$
00197$:
;printf_large.c:688: width = 0;
;     genAssign
	mov	__print_format_width_1_1,#0x00
;printf_large.c:692: while( length-- )
00294$:
;     genAssign
	mov	r0,__print_format_pstore_4_20
;     genAssign
	mov	r2,__print_format_sloc3_1_0
	mov	r3,(__print_format_sloc3_1_0 + 1)
;     genAssign
	mov	ar5,r4
00205$:
;     genAssign
	mov	ar6,r5
;     genMinus
;     genMinusDec
	dec	r5
;     genAssign
	mov	__print_format_sloc3_1_0,r2
	mov	(__print_format_sloc3_1_0 + 1),r3
;     genIfx
	mov	a,r6
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00207$
00390$:
;printf_large.c:694: lsd = !lsd;
;     genNot
;	Peephole 167	removed redundant bit moves (c not set to __print_format_lsd_1_1)
	cpl	__print_format_lsd_1_1
;printf_large.c:695: if (!lsd)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_lsd_1_1,00203$
00391$:
;printf_large.c:697: pstore++;
;     genPlus
;     genPlusIncr
	inc	r0
;printf_large.c:698: value.byte[4] = *pstore >> 4;
;     genPointerGet
;     genNearPointerGet
	mov	ar6,@r0
;     genRightShift
;     genRightShiftLiteral
;     genrshOne
	mov	a,r6
	swap	a
	anl	a,#0x0f
	mov	r6,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	(_value + 0x0004),r6
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00204$
00203$:
;printf_large.c:702: value.byte[4] = *pstore & 0x0F;
;     genPointerGet
;     genNearPointerGet
	mov	ar6,@r0
;     genAnd
	mov	a,#0x0F
	anl	a,r6
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	(_value + 0x0004),a
00204$:
;printf_large.c:707: output_digit( value.byte[4] );
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	dpl,(_value + 0x0004)
;     genCall
	push	ar2
	push	ar3
	push	ar5
	push	ar0
	lcall	_output_digit
	pop	ar0
	pop	ar5
	pop	ar3
	pop	ar2
;printf_large.c:709: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00205$
	inc	r3
00392$:
	sjmp	00205$
00207$:
;printf_large.c:711: if (left_justify)
;     genIfx
;     genIfxJump
	jb	__print_format_left_justify_1_1,00393$
	ljmp	00221$
00393$:
;printf_large.c:712: while (width-- > 0)
;     genAssign
;     genAssign
	mov	r5,__print_format_width_1_1
00208$:
;     genAssign
	mov	ar6,r5
;     genMinus
;     genMinusDec
	dec	r5
;     genCmpGt
;     genCmp
	clr	c
;	Peephole 181	changed mov to clr
	clr	a
	subb	a,r6
	clr	a
	rlc	a
	mov	r6,a
;     genAssign
	mov	__print_format_sloc3_1_0,r2
	mov	(__print_format_sloc3_1_0 + 1),r3
;     genIfx
	mov	a,r6
;     genIfxJump
	jnz	00394$
	ljmp	00221$
00394$:
;printf_large.c:714: output_char(' ', p);
;     genIpush
	push	ar2
	push	ar3
	push	ar5
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00395$
	push	acc
	mov	a,#(00395$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00395$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
	pop	ar3
	pop	ar2
;printf_large.c:715: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00208$
	inc	r3
00396$:
	sjmp	00208$
00219$:
;printf_large.c:722: output_char( c, p );
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00397$
	push	acc
	mov	a,#(00397$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00397$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:723: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00398$
	inc	(__print_format_sloc3_1_0 + 1)
00398$:
	ljmp	00221$
00223$:
;printf_large.c:727: return charsOutputted;
;     genRet
	mov	dpl,__print_format_sloc3_1_0
	mov	dph,(__print_format_sloc3_1_0 + 1)
00224$:
	ret
	.area CSEG    (CODE)
_memory_id:
	.ascii "IXCP-"
	.db 0x00
__str_0:
	.ascii "<NO FLOAT>"
	.db 0x00
	.area XINIT   (CODE)
