;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.5.1 #1058 (Jul 15 2005)
; This file generated Fri Jul 15 02:51:35 2005
;--------------------------------------------------------
	.module printf_large
	.optsdcc -mmcs51 --model-large
	
;--------------------------------------------------------
; 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)
__print_format_sloc1_1_0::
	.ds 2
__print_format_sloc2_1_0::
	.ds 3
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
	.area OSEG    (OVR,DATA)
;--------------------------------------------------------
; 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)
_output_char:
	.ds 2
_p:
	.ds 3
_value:
	.ds 5
_output_digit_n_1_1::
	.ds 1
_output_2digits_b_1_1::
	.ds 1
_calculate_digit_radix_1_1::
	.ds 1
__print_format_PARM_2::
	.ds 3
__print_format_PARM_3::
	.ds 3
__print_format_PARM_4::
	.ds 1
__print_format_pfn_1_1::
	.ds 2
__print_format_radix_1_1::
	.ds 1
__print_format_charsOutputted_1_1::
	.ds 2
__print_format_width_1_1::
	.ds 1
__print_format_decimals_1_1::
	.ds 1
__print_format_c_1_1::
	.ds 1
__print_format_store_4_21::
	.ds 6
__print_format_pstore_4_21::
	.ds 2
;--------------------------------------------------------
; 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 with name '_output_digit_n_1_1'
;------------------------------------------------------------
;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	a,dpl
	mov	dptr,#_output_digit_n_1_1
	movx	@dptr,a
;printf_large.c:83: output_char( n <= 9 ? '0'+n :
;     genAssign
	mov	dptr,#_output_digit_n_1_1
	movx	a,@dptr
	mov	r2,a
;     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$
;	Peephole 300	removed redundant label 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$
;	Peephole 300	removed redundant label 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
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00112$
	push	acc
	mov	a,#(00112$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r3
	ret
00112$:
	dec	sp
	dec	sp
	dec	sp
;	Peephole 300	removed redundant label 00101$
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'output_2digits'
;------------------------------------------------------------
;b                         Allocated with name '_output_2digits_b_1_1'
;------------------------------------------------------------
;printf_large.c:98: static void output_2digits( unsigned char b )
;	-----------------------------------------
;	 function output_2digits
;	-----------------------------------------
_output_2digits:
;     genReceive
	mov	a,dpl
	mov	dptr,#_output_2digits_b_1_1
	movx	@dptr,a
;printf_large.c:100: output_digit( b>>4   );
;     genAssign
	mov	dptr,#_output_2digits_b_1_1
	movx	a,@dptr
;     genRightShift
;     genRightShiftLiteral
;     genrshOne
;	Peephole 105	removed redundant mov
	mov	r2,a
	swap	a
	anl	a,#0x0f
;     genCall
;	Peephole 244.c	loading dpl from a instead of r3
	mov	r3,a
	mov	dpl,a
	push	ar2
	lcall	_output_digit
	pop	ar2
;printf_large.c:101: output_digit( b&0x0F );
;     genAnd
	anl	ar2,#0x0F
;     genCall
	mov	dpl,r2
;	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	a,dpl
	mov	dptr,#_calculate_digit_radix_1_1
	movx	@dptr,a
;printf_large.c:129: for( i = 32; i != 0; i-- )
;     genAssign
	mov	dptr,#_calculate_digit_radix_1_1
	movx	a,@dptr
	mov	r2,a
;     genAssign
	mov	r3,#0x20
00103$:
;     genCmpEq
	cjne	r3,#0x00,00112$
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
	ret
00112$:
;printf_large.c:131: value.byte[4] = (value.byte[4] << 1) | ((value.ul >> 31) & 0x01);
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0004)
	movx	a,@dptr
;     genLeftShift
;     genLeftShiftLiteral
;     genlshOne
;	Peephole 105	removed redundant mov
;	Peephole 204	removed redundant mov
	add	a,acc
	mov	r4,a
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r5,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	inc	dptr
	movx	a,@dptr
;     genGetHbit
;	Peephole 105	removed redundant mov
	mov	r0,a
	rl	a
	anl	a,#0x01
;     genOr
;	Peephole 105	removed redundant mov
	mov	r1,a
	orl	ar4,a
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#(_value + 0x0004)
	mov	a,r4
	movx	@dptr,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,r0
	rlc	a
	mov	r0,a
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r5
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
	inc	dptr
	mov	a,r7
	movx	@dptr,a
	inc	dptr
	mov	a,r0
	movx	@dptr,a
;printf_large.c:134: if (radix <= value.byte[4] )
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0004)
	movx	a,@dptr
;     genCmpGt
;     genCmp
;	Peephole 106	removed redundant mov
	mov	r4,a
	clr	c
	subb	a,r2
;     genIfxJump
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 160	removed sjmp by inverse jump logic
	jc	00105$
;	Peephole 300	removed redundant label 00113$
;printf_large.c:136: value.byte[4] -= radix;
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0004)
	movx	a,@dptr
;     genMinus
;	Peephole 105	removed redundant mov
	mov	r4,a
	clr	c
;	Peephole 236.l	used r2 instead of ar2
	subb	a,r2
;     genPointerSet
;     genFarPointerSet
;	Peephole 100	removed redundant mov
	mov	r4,a
	mov	dptr,#(_value + 0x0004)
	movx	@dptr,a
;printf_large.c:137: value.ul |= 1;
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r5,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
;     genOr
	orl	ar4,#0x01
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r5
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
	inc	dptr
	mov	a,r7
	movx	@dptr,a
00105$:
;printf_large.c:129: for( i = 32; i != 0; i-- )
;     genMinus
;     genMinusDec
	dec	r3
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00103$
;	Peephole 259.a	removed redundant label 00107$ and ret
;
;------------------------------------------------------------
;Allocation info for local variables in function '_print_format'
;------------------------------------------------------------
;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'
;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 with name '__print_format_pfn_1_1'
;radix                     Allocated with name '__print_format_radix_1_1'
;charsOutputted            Allocated with name '__print_format_charsOutputted_1_1'
;width                     Allocated with name '__print_format_width_1_1'
;decimals                  Allocated with name '__print_format_decimals_1_1'
;length                    Allocated with name '__print_format_length_1_1'
;c                         Allocated with name '__print_format_c_1_1'
;store                     Allocated with name '__print_format_store_4_21'
;pstore                    Allocated with name '__print_format_pstore_4_21'
;------------------------------------------------------------
;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	r2,dph
	mov	a,dpl
	mov	dptr,#__print_format_pfn_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
;printf_large.c:366: output_char = pfn;
;     genAssign
	mov	dptr,#__print_format_pfn_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genAssign
	mov	dptr,#_output_char
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
;printf_large.c:367: p = pvoid;
;     genAssign
	mov	dptr,#__print_format_PARM_2
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;     genAssign
	mov	dptr,#_p
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;printf_large.c:371: charsOutputted=0;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	clr	a
	movx	@dptr,a
	inc	dptr
	movx	@dptr,a
;printf_large.c:379: while( c=*format++ )
00224$:
;     genAssign
	mov	dptr,#__print_format_PARM_3
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	__gptrget
	mov	r5,a
;     genPlus
	mov	dptr,#__print_format_PARM_3
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;     genIfx
	mov	a,r5
;     genIfxJump
	jnz	00302$
	ljmp	00226$
00302$:
;printf_large.c:381: if ( c=='%' )
;     genCmpEq
	cjne	r5,#0x25,00303$
	sjmp	00304$
00303$:
	ljmp	00222$
00304$:
;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	dptr,#__print_format_radix_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
;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	dptr,#__print_format_width_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
;printf_large.c:393: decimals        = -1;
;     genAssign
	mov	dptr,#__print_format_decimals_1_1
	mov	a,#0xFF
	movx	@dptr,a
;printf_large.c:395: get_conversion_spec:
;     genAssign
	mov	dptr,#__print_format_PARM_3
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
00101$:
;printf_large.c:397: c = *format++;
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	__gptrget
	mov	r6,a
	inc	dptr
	mov	r2,dpl
	mov	r3,dph
;     genAssign
	mov	dptr,#__print_format_PARM_3
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;     genAssign
	mov	dptr,#__print_format_c_1_1
	mov	a,r6
	movx	@dptr,a
;printf_large.c:399: if (c=='%') {
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r6,#0x25,00103$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00305$
00306$:
;printf_large.c:400: output_char(c, p);
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00307$
	push	acc
	mov	a,#(00307$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r6
	ret
00307$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:401: charsOutputted++;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
;printf_large.c:402: continue;
	ljmp	00224$
00103$:
;printf_large.c:405: if (isdigit(c)) {
;     genCall
	mov	dpl,r6
	push	ar2
	push	ar3
	push	ar4
	push	ar6
	lcall	_isdigit
	mov	a,dpl
	pop	ar6
	pop	ar4
	pop	ar3
	pop	ar2
;     genIfx
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00110$
;	Peephole 300	removed redundant label 00308$
;printf_large.c:406: if (decimals==-1) {
;     genAssign
	mov	dptr,#__print_format_decimals_1_1
	movx	a,@dptr
	mov	r7,a
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r7,#0xFF,00107$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00309$
00310$:
;printf_large.c:407: width = 10*width + (c - '0');
;     genIpush
	push	ar2
	push	ar3
	push	ar4
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
;     genMult
;     genMultOneByte
;	Peephole 105	removed redundant mov
	mov	r2,a
	mov	b,#0x0A
	mul	ab
	mov	r2,a
;     genMinus
	mov	a,r6
	add	a,#0xd0
;     genPlus
	mov	dptr,#__print_format_width_1_1
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;printf_large.c:408: if (width == 0) {
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r2,a
;     genCmpEq
;	Peephole 241.c	optimized compare
	clr	a
	cjne	r2,#0x00,00311$
	inc	a
00311$:
00312$:
;     genIpop
	pop	ar4
	pop	ar3
	pop	ar2
;     genIfx
;     genIfxJump
	jnz	00313$
	ljmp	00101$
00313$:
;printf_large.c:410: zero_padding = 1;
;     genAssign
	setb	__print_format_zero_padding_1_1
	ljmp	00101$
00107$:
;printf_large.c:413: decimals = 10*decimals + (c-'0');
;     genMult
;     genMultOneByte
	mov	a,r7
	mov	b,#0x0A
	mul	ab
	mov	r7,a
;     genMinus
	mov	a,r6
	add	a,#0xd0
;     genPlus
	mov	dptr,#__print_format_decimals_1_1
;	Peephole 236.a	used r7 instead of ar7
	add	a,r7
	movx	@dptr,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	r6,#0x2E,00114$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00314$
00315$:
;printf_large.c:419: if (decimals=-1) decimals=0;
;     genAssign
	mov	dptr,#__print_format_decimals_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
;printf_large.c:422: goto get_conversion_spec;
	ljmp	00101$
00114$:
;printf_large.c:425: lower_case = islower(c);
;     genCall
	mov	dpl,r6
	push	ar2
	push	ar3
	push	ar4
	push	ar6
	lcall	_islower
	mov	a,dpl
	add	a,#0xff
	mov	_lower_case,c
	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$
;	Peephole 300	removed redundant label 00316$
;printf_large.c:428: c = toupper(c);
;     genAnd
	mov	dptr,#__print_format_c_1_1
	mov	a,#0xDF
	anl	a,r6
	movx	@dptr,a
00116$:
;printf_large.c:431: switch( c )
;     genAssign
	mov	dptr,#__print_format_c_1_1
	movx	a,@dptr
	mov	r6,a
;     genCmpEq
	cjne	r6,#0x20,00317$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00119$
00317$:
;     genCmpEq
	cjne	r6,#0x2B,00318$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00118$
00318$:
;     genCmpEq
	cjne	r6,#0x2D,00319$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00117$
00319$:
;     genCmpEq
	cjne	r6,#0x42,00320$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00120$
00320$:
;     genCmpEq
	cjne	r6,#0x43,00321$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00122$
00321$:
;     genCmpEq
	cjne	r6,#0x44,00322$
	ljmp	00147$
00322$:
;     genCmpEq
	cjne	r6,#0x46,00323$
	ljmp	00151$
00323$:
;     genCmpEq
	cjne	r6,#0x49,00324$
	ljmp	00147$
00324$:
;     genCmpEq
	cjne	r6,#0x4C,00325$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00121$
00325$:
;     genCmpEq
	cjne	r6,#0x4F,00326$
	ljmp	00148$
00326$:
;     genCmpEq
	cjne	r6,#0x50,00327$
	ljmp	00142$
00327$:
;     genCmpEq
	cjne	r6,#0x53,00328$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00123$
00328$:
;     genCmpEq
	cjne	r6,#0x55,00329$
	ljmp	00149$
00329$:
;     genCmpEq
	cjne	r6,#0x58,00330$
	ljmp	00150$
00330$:
	ljmp	00152$
;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 );
;     genAssign
	mov	dptr,#__print_format_PARM_4
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	add	a,#0xfe
;     genAssign
;	Peephole 100	removed redundant mov
	mov	r0,a
	mov	dptr,#__print_format_PARM_4
	movx	@dptr,a
;     genPointerGet
;     genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	dec	r0
;     genCast
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00331$
	push	acc
	mov	a,#(00331$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r2
	ret
00331$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:451: charsOutputted++;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
;printf_large.c:452: break;
	ljmp	00153$
;printf_large.c:454: case 'S':
00123$:
;printf_large.c:455: PTR = va_arg(ap,ptr_t);
;     genAssign
	mov	dptr,#__print_format_PARM_4
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	add	a,#0xfd
;     genAssign
;	Peephole 100	removed redundant mov
	mov	r0,a
	mov	dptr,#__print_format_PARM_4
	movx	@dptr,a
;     genPointerGet
;     genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	inc	r0
	mov	ar4,@r0
	dec	r0
	dec	r0
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;printf_large.c:465: length = strlen(PTR);
;     genCall
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	_strlen
	mov	r2,dpl
	mov	r3,dph
;     genCast
;printf_large.c:467: if ( decimals == -1 )
;     genAssign
	mov	dptr,#__print_format_decimals_1_1
	movx	a,@dptr
	mov	r3,a
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r3,#0xFF,00125$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00332$
00333$:
;printf_large.c:469: decimals = length;
;     genAssign
	mov	dptr,#__print_format_decimals_1_1
	mov	a,r2
	movx	@dptr,a
00125$:
;printf_large.c:471: if ( ( !left_justify ) && (length < width) )
;     genIfx
;     genIfxJump
	jnb	__print_format_left_justify_1_1,00334$
	ljmp	00264$
00334$:
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r3,a
;     genCmpLt
;     genCmp
	clr	c
	mov	a,r2
	subb	a,r3
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00264$
;	Peephole 300	removed redundant label 00335$
;printf_large.c:473: width -= length;
;     genMinus
	mov	dptr,#__print_format_width_1_1
	mov	a,r3
	clr	c
;	Peephole 236.l	used r2 instead of ar2
	subb	a,r2
	movx	@dptr,a
;printf_large.c:474: while( width-- != 0 )
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r7,a
00126$:
;     genIpush
	push	ar2
;     genAssign
	mov	ar2,r7
;     genMinus
;     genMinusDec
	dec	r7
;     genAssign
	mov	dptr,#__print_format_width_1_1
	mov	a,r7
	movx	@dptr,a
;     genCmpEq
;	Peephole 241.c	optimized compare
	clr	a
	cjne	r2,#0x00,00336$
	inc	a
00336$:
00337$:
	mov	r2,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;     genIfx
	mov	a,r2
;     genIpop
	pop	ar2
;     genIfxJump
;	Peephole 109	removed ljmp by inverse jump logic
	jnz	00264$
;	Peephole 300	removed redundant label 00338$
;printf_large.c:476: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	push	ar7
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00339$
	push	acc
	mov	a,#(00339$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x20
	ret
00339$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar7
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:477: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r3
;printf_large.c:481: while ( *PTR  && (decimals-- > 0))
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r3,#0x00,00126$
	inc	r4
;	Peephole 300	removed redundant label 00340$
	sjmp	00126$
00264$:
;     genAssign
	mov	dptr,#__print_format_decimals_1_1
	movx	a,@dptr
	mov	r5,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
00133$:
;     genIpush
	push	ar2
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	__gptrget
;     genIpop
	pop	ar2
;     genIfx
;     genIfxJump
	jnz	00341$
	ljmp	00135$
00341$:
;     genAssign
	mov	ar3,r5
;     genMinus
;     genMinusDec
	dec	r5
;     genCmpGt
;     genCmp
	clr	c
;	Peephole 159	avoided xrl during execution
	mov	a,#(0x00 ^ 0x80)
	mov	b,r3
	xrl	b,#0x80
	subb	a,b
;     genIfxJump
	jc	00342$
	ljmp	00135$
00342$:
;printf_large.c:483: output_char( *PTR++, p );
;     genIpush
	push	ar2
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	__print_format_sloc2_1_0,a
	inc	dptr
	movx	a,@dptr
	mov	(__print_format_sloc2_1_0 + 1),a
	inc	dptr
	movx	a,@dptr
	mov	(__print_format_sloc2_1_0 + 2),a
;     genPlus
;     genPlusIncr
	mov	a,#0x01
	add	a,__print_format_sloc2_1_0
	mov	r2,a
;	Peephole 181	changed mov to clr
	clr	a
	addc	a,(__print_format_sloc2_1_0 + 1)
	mov	r3,a
	mov	r4,(__print_format_sloc2_1_0 + 2)
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;     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	r2,a
;     genIpush
	push	ar2
	push	ar5
	push	ar6
	push	ar7
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00343$
	push	acc
	mov	a,#(00343$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r2
	ret
00343$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar2
;printf_large.c:484: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r6
	cjne	r6,#0x00,00344$
	inc	r7
00344$:
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r6
	movx	@dptr,a
	inc	dptr
	mov	a,r7
	movx	@dptr,a
;     genIpop
	pop	ar2
	ljmp	00133$
00135$:
;printf_large.c:487: if ( left_justify && (length < width))
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r6
	movx	@dptr,a
	inc	dptr
	mov	a,r7
	movx	@dptr,a
;     genIfx
;     genIfxJump
	jb	__print_format_left_justify_1_1,00345$
	ljmp	00153$
00345$:
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r3,a
;     genCmpLt
;     genCmp
	clr	c
	mov	a,r2
	subb	a,r3
;     genIfxJump
	jc	00346$
	ljmp	00153$
00346$:
;printf_large.c:489: width -= length;
;     genMinus
	mov	dptr,#__print_format_width_1_1
	mov	a,r3
	clr	c
;	Peephole 236.l	used r2 instead of ar2
	subb	a,r2
	movx	@dptr,a
;printf_large.c:490: while( width-- != 0 )
;     genAssign
	mov	ar2,r6
	mov	ar3,r7
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r4,a
00136$:
;     genAssign
	mov	ar7,r4
;     genMinus
;     genMinusDec
	dec	r4
;     genAssign
	mov	dptr,#__print_format_width_1_1
	mov	a,r4
	movx	@dptr,a
;     genCmpEq
;	Peephole 241.c	optimized compare
	clr	a
	cjne	r7,#0x00,00347$
	inc	a
00347$:
00348$:
	mov	r7,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
;     genIfx
	mov	a,r7
;     genIfxJump
	jz	00349$
	ljmp	00153$
00349$:
;printf_large.c:492: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00350$
	push	acc
	mov	a,#(00350$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x20
	ret
00350$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:493: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;printf_large.c:498: case 'P':
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00136$
	inc	r3
;	Peephole 300	removed redundant label 00351$
	sjmp	00136$
00142$:
;printf_large.c:499: PTR = va_arg(ap,ptr_t);
;     genAssign
	mov	dptr,#__print_format_PARM_4
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	add	a,#0xfd
;     genAssign
;	Peephole 100	removed redundant mov
	mov	r0,a
	mov	dptr,#__print_format_PARM_4
	movx	@dptr,a
;     genPointerGet
;     genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	inc	r0
	mov	ar4,@r0
	dec	r0
	dec	r0
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;printf_large.c:511: output_char( memory_id[(value.byte[2] > 3) ? 4 : value.byte[2]], p );
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0002)
	movx	a,@dptr
;     genCmpGt
;     genCmp
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
;	Peephole 132.b	optimized genCmpGt by inverse logic (acc differs)
;	Peephole 177.a	removed redundant mov
	mov  r2,a
	add	a,#0xff - 0x03
	jnc	00229$
;	Peephole 300	removed redundant label 00352$
;     genAssign
	mov	r2,#0x04
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00230$
00229$:
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0002)
	movx	a,@dptr
	mov	r2,a
00230$:
;     genPlus
;	Peephole 236.g	used r2 instead of ar2
	mov	a,r2
;	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	r2,a
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00353$
	push	acc
	mov	a,#(00353$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r2
	ret
00353$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:512: output_char(':', p);
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00354$
	push	acc
	mov	a,#(00354$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x3A
	ret
00354$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:513: output_char('0', p);
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00355$
	push	acc
	mov	a,#(00355$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x30
	ret
00355$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:514: output_char('x', p);
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00356$
	push	acc
	mov	a,#(00356$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x78
	ret
00356$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:515: if ((value.byte[2] != 0x00 /* DSEG */) &&
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0002)
	movx	a,@dptr
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 115.b	jump optimization
	mov	r2,a
	jz	00144$
00357$:
;printf_large.c:516: (value.byte[2] != 0x03 /* SSEG */))
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0002)
	movx	a,@dptr
	mov	r2,a
;     genCmpEq
	cjne	r2,#0x03,00358$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00144$
00358$:
;printf_large.c:518: OUTPUT_2DIGITS( value.byte[1] );
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0001)
	movx	a,@dptr
;     genCall
;	Peephole 244.c	loading dpl from a instead of r2
	mov	r2,a
	mov	dpl,a
	lcall	_output_2digits
;printf_large.c:519: charsOutputted += 2;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x02
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
00144$:
;printf_large.c:521: OUTPUT_2DIGITS( value.byte[0] );
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
;     genCall
;	Peephole 244.c	loading dpl from a instead of r2
	mov	r2,a
	mov	dpl,a
	lcall	_output_2digits
;printf_large.c:522: charsOutputted += 6;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,#0x06
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
;printf_large.c:524: break;
;printf_large.c:527: case 'I':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00153$
00147$:
;printf_large.c:528: signed_argument = 1;
;     genAssign
	setb	__print_format_signed_argument_1_1
;printf_large.c:529: radix = 10;
;     genAssign
	mov	dptr,#__print_format_radix_1_1
	mov	a,#0x0A
	movx	@dptr,a
;printf_large.c:530: break;
;printf_large.c:532: case 'O':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00153$
00148$:
;printf_large.c:533: radix = 8;
;     genAssign
	mov	dptr,#__print_format_radix_1_1
	mov	a,#0x08
	movx	@dptr,a
;printf_large.c:534: break;
;printf_large.c:536: case 'U':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00153$
00149$:
;printf_large.c:537: radix = 10;
;     genAssign
	mov	dptr,#__print_format_radix_1_1
	mov	a,#0x0A
	movx	@dptr,a
;printf_large.c:538: break;
;printf_large.c:540: case 'X':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00153$
00150$:
;printf_large.c:541: radix = 16;
;     genAssign
	mov	dptr,#__print_format_radix_1_1
	mov	a,#0x10
	movx	@dptr,a
;printf_large.c:542: break;
;printf_large.c:544: case 'F':
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00153$
00151$:
;printf_large.c:545: float_argument=1;
;     genAssign
	setb	__print_format_float_argument_1_1
;printf_large.c:546: break;
;printf_large.c:548: default:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00153$
00152$:
;printf_large.c:550: output_char( c, p );
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00359$
	push	acc
	mov	a,#(00359$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r6
	ret
00359$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:551: charsOutputted++;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
;printf_large.c:553: }
00153$:
;printf_large.c:555: if (float_argument) {
;     genIfx
;     genIfxJump
	jb	__print_format_float_argument_1_1,00360$
	ljmp	00219$
00360$:
;printf_large.c:556: value.f=va_arg(ap,float);
;     genAssign
	mov	dptr,#__print_format_PARM_4
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	add	a,#0xfc
;     genAssign
;	Peephole 100	removed redundant mov
	mov	r0,a
	mov	dptr,#__print_format_PARM_4
	movx	@dptr,a
;     genPointerGet
;     genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	inc	r0
	mov	ar4,@r0
	inc	r0
	mov	ar6,@r0
	dec	r0
	dec	r0
	dec	r0
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
;printf_large.c:558: PTR="<NO FLOAT>";
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,#__str_0
	movx	@dptr,a
	inc	dptr
	mov	a,#(__str_0 >> 8)
	movx	@dptr,a
	inc	dptr
	mov	a,#0x80
	movx	@dptr,a
;printf_large.c:559: while (c=*PTR++)
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	__print_format_sloc2_1_0,a
	inc	dptr
	movx	a,@dptr
	mov	(__print_format_sloc2_1_0 + 1),a
00154$:
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r5,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
;     genPlus
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
	mov	r2,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r6 instead of ar6
	addc	a,r6
	mov	r3,a
	mov	ar4,r7
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r5
	mov	dph,r6
	mov	b,r7
	lcall	__gptrget
	mov	r2,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,__print_format_sloc2_1_0
	movx	@dptr,a
	inc	dptr
	mov	a,(__print_format_sloc2_1_0 + 1)
	movx	@dptr,a
;     genIfx
	mov	a,r2
;     genIfxJump
	jnz	00361$
	ljmp	00224$
00361$:
;printf_large.c:561: output_char (c, p);
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00362$
	push	acc
	mov	a,#(00362$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r2
	ret
00362$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:562: 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,00154$
	inc	(__print_format_sloc2_1_0 + 1)
;	Peephole 300	removed redundant label 00363$
	sjmp	00154$
00219$:
;printf_large.c:574: } else if (radix != 0)
;     genAssign
	mov	dptr,#__print_format_radix_1_1
	movx	a,@dptr
	mov	r2,a
;     genCmpEq
	cjne	r2,#0x00,00364$
	ljmp	00224$
00364$:
;printf_large.c:579: unsigned char _AUTOMEM *pstore = &store[5];
;     genAssign
	mov	dptr,#__print_format_pstore_4_21
	mov	a,#(__print_format_store_4_21 + 0x0005)
	movx	@dptr,a
	inc	dptr
	mov	a,#((__print_format_store_4_21 + 0x0005) >> 8)
	movx	@dptr,a
;printf_large.c:582: if (char_argument)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_char_argument_1_1,00165$
;	Peephole 300	removed redundant label 00365$
;printf_large.c:584: value.l = va_arg(ap,char);
;     genAssign
	mov	dptr,#__print_format_PARM_4
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	dec	a
;     genAssign
;	Peephole 100	removed redundant mov
	mov	r0,a
	mov	dptr,#__print_format_PARM_4
	movx	@dptr,a
;     genPointerGet
;     genNearPointerGet
	mov	ar2,@r0
;     genCast
	mov	a,r2
	rlc	a
	subb	a,acc
	mov	r3,a
	mov	r4,a
	mov	r6,a
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
;printf_large.c:585: if (!signed_argument)
;     genIfx
;     genIfxJump
	jnb	__print_format_signed_argument_1_1,00366$
	ljmp	00166$
00366$:
;printf_large.c:587: value.l &= 0xFF;
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
;     genAnd
	mov	r3,#0x00
	mov	r4,#0x00
	mov	r6,#0x00
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00166$
00165$:
;printf_large.c:590: else if (long_argument)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_long_argument_1_1,00162$
;	Peephole 300	removed redundant label 00367$
;printf_large.c:592: value.l = va_arg(ap,long);
;     genAssign
	mov	dptr,#__print_format_PARM_4
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	add	a,#0xfc
;     genAssign
;	Peephole 100	removed redundant mov
	mov	r0,a
	mov	dptr,#__print_format_PARM_4
	movx	@dptr,a
;     genPointerGet
;     genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	inc	r0
	mov	ar4,@r0
	inc	r0
	mov	ar6,@r0
	dec	r0
	dec	r0
	dec	r0
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00166$
00162$:
;printf_large.c:596: value.l = va_arg(ap,int);
;     genAssign
	mov	dptr,#__print_format_PARM_4
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	add	a,#0xfe
;     genAssign
;	Peephole 100	removed redundant mov
	mov	r0,a
	mov	dptr,#__print_format_PARM_4
	movx	@dptr,a
;     genPointerGet
;     genNearPointerGet
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	dec	r0
;     genCast
	mov	a,r3
	rlc	a
	subb	a,acc
	mov	r4,a
	mov	r6,a
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
;printf_large.c:597: if (!signed_argument)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_signed_argument_1_1,00166$
;	Peephole 300	removed redundant label 00368$
;printf_large.c:599: value.l &= 0xFFFF;
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
;     genAnd
	mov	r4,#0x00
	mov	r6,#0x00
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
00166$:
;printf_large.c:603: if ( signed_argument )
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_signed_argument_1_1,00171$
;	Peephole 300	removed redundant label 00369$
;printf_large.c:605: if (value.l < 0)
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
;     genCmpLt
;     genCmp
;	Peephole 105	removed redundant mov
	mov	r6,a
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	acc.7,00168$
;	Peephole 300	removed redundant label 00370$
;printf_large.c:606: 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,r4
	mov	r4,a
	clr	a
	subb	a,r6
	mov	r6,a
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#_value
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00171$
00168$:
;printf_large.c:608: signed_argument = 0;
;     genAssign
	clr	__print_format_signed_argument_1_1
00171$:
;printf_large.c:612: lsd = 1;
;     genAssign
	setb	__print_format_lsd_1_1
;printf_large.c:614: do {
;     genAssign
	mov	dptr,#__print_format_radix_1_1
	movx	a,@dptr
	mov	r4,a
;     genAssign
	mov	__print_format_sloc1_1_0,#(__print_format_store_4_21 + 0x0005)
	mov	(__print_format_sloc1_1_0 + 1),#((__print_format_store_4_21 + 0x0005) >> 8)
;     genAssign
	mov	r5,#0x00
00175$:
;printf_large.c:615: value.byte[4] = 0;
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#(_value + 0x0004)
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
;printf_large.c:619: calculate_digit(radix);
;     genCall
	mov	dpl,r4
	push	ar4
	push	ar5
	lcall	_calculate_digit
	pop	ar5
	pop	ar4
;printf_large.c:621: if (!lsd)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_lsd_1_1,00173$
;	Peephole 300	removed redundant label 00371$
;printf_large.c:623: *pstore = (value.byte[4] << 4) | (value.byte[4] >> 4) | *pstore;
;     genIpush
	push	ar4
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0004)
	movx	a,@dptr
;     genSwap
;	Peephole 105	removed redundant mov
	mov	r7,a
	swap	a
	mov	r7,a
;     genPointerGet
;     genFarPointerGet
	mov	dpl,__print_format_sloc1_1_0
	mov	dph,(__print_format_sloc1_1_0 + 1)
	movx	a,@dptr
;     genOr
;	Peephole 105	removed redundant mov
	mov	r2,a
	orl	ar7,a
;     genPointerSet
;     genFarPointerSet
	mov	dpl,__print_format_sloc1_1_0
	mov	dph,(__print_format_sloc1_1_0 + 1)
	mov	a,r7
	movx	@dptr,a
;printf_large.c:624: pstore--;
;     genMinus
;     genMinusDec
	dec	__print_format_sloc1_1_0
	mov	a,#0xff
	cjne	a,__print_format_sloc1_1_0,00372$
	dec	(__print_format_sloc1_1_0 + 1)
00372$:
;     genIpop
	pop	ar4
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00174$
00173$:
;printf_large.c:628: *pstore = value.byte[4];
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0004)
	movx	a,@dptr
;     genPointerSet
;     genFarPointerSet
;	Peephole 136	removed redundant moves
	mov	r7,a
	mov	dpl,__print_format_sloc1_1_0
	mov	dph,(__print_format_sloc1_1_0 + 1)
	movx	@dptr,a
00174$:
;printf_large.c:630: length++;
;     genPlus
;     genPlusIncr
	inc	r5
;printf_large.c:631: 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:632: } while( value.ul );
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#_value
	movx	a,@dptr
	mov	r7,a
	inc	dptr
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genAssign
	mov	dptr,#__print_format_pstore_4_21
	mov	a,__print_format_sloc1_1_0
	movx	@dptr,a
	inc	dptr
	mov	a,(__print_format_sloc1_1_0 + 1)
	movx	@dptr,a
;     genIfx
	mov	a,r7
	orl	a,r2
	orl	a,r6
	orl	a,r3
;     genIfxJump
;	Peephole 109	removed ljmp by inverse jump logic
	jnz	00175$
;	Peephole 300	removed redundant label 00373$
;printf_large.c:634: if (width == 0)
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
;     genCmpEq
;	Peephole 115.b	jump optimization
	mov	r2,a
	jz	00375$
00374$:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00179$
00375$:
;printf_large.c:639: width=1;
;     genAssign
	mov	dptr,#__print_format_width_1_1
	mov	a,#0x01
	movx	@dptr,a
00179$:
;printf_large.c:643: if (!zero_padding && !left_justify)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_zero_padding_1_1,00184$
;	Peephole 300	removed redundant label 00376$
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_left_justify_1_1,00184$
;	Peephole 300	removed redundant label 00377$
;printf_large.c:645: while ( width > (unsigned char) (length+1) )
;     genPlus
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
	mov	r2,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r6,a
00180$:
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r2
	subb	a,r6
	clr	a
	rlc	a
	mov	r7,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;     genAssign
	mov	dptr,#__print_format_width_1_1
	mov	a,r6
	movx	@dptr,a
;     genIfx
	mov	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00184$
;	Peephole 300	removed redundant label 00378$
;printf_large.c:647: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00379$
	push	acc
	mov	a,#(00379$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x20
	ret
00379$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:648: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r3
	cjne	r3,#0x00,00380$
	inc	r4
00380$:
;printf_large.c:649: width--;
;     genMinus
;     genMinusDec
	dec	r6
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00180$
00184$:
;printf_large.c:653: 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,00194$
;	Peephole 300	removed redundant label 00381$
;printf_large.c:655: output_char( '-', p );
;     genIpush
	push	ar5
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00382$
	push	acc
	mov	a,#(00382$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x2D
	ret
00382$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
;printf_large.c:656: charsOutputted++;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
;printf_large.c:658: width--;
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	dec	a
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	@dptr,a
	ljmp	00195$
00194$:
;printf_large.c:660: else if (length != 0)
;     genCmpEq
	cjne	r5,#0x00,00383$
	ljmp	00195$
00383$:
;printf_large.c:663: if (prefix_sign)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_prefix_sign_1_1,00189$
;	Peephole 300	removed redundant label 00384$
;printf_large.c:665: output_char( '+', p );
;     genIpush
	push	ar5
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00385$
	push	acc
	mov	a,#(00385$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x2B
	ret
00385$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
;printf_large.c:666: charsOutputted++;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
;printf_large.c:668: width--;
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	dec	a
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00195$
00189$:
;printf_large.c:670: else if (prefix_space)
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_prefix_space_1_1,00195$
;	Peephole 300	removed redundant label 00386$
;printf_large.c:672: output_char( ' ', p );
;     genIpush
	push	ar5
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00387$
	push	acc
	mov	a,#(00387$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x20
	ret
00387$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
;printf_large.c:673: charsOutputted++;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
;printf_large.c:675: width--;
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
;     genMinus
;     genMinusDec
;	Peephole 105	removed redundant mov
	mov	r2,a
	dec	a
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	@dptr,a
00195$:
;printf_large.c:680: if (!left_justify)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_left_justify_1_1,00203$
;	Peephole 300	removed redundant label 00388$
;printf_large.c:681: while ( width-- > length )
;     genAssign
	mov	ar2,r5
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r6,a
00196$:
;     genAssign
	mov	ar7,r6
;     genMinus
;     genMinusDec
	dec	r6
;     genAssign
	mov	dptr,#__print_format_width_1_1
	mov	a,r6
	movx	@dptr,a
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r2
	subb	a,r7
	clr	a
	rlc	a
	mov	r7,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r4
	movx	@dptr,a
;     genIfx
	mov	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00299$
;	Peephole 300	removed redundant label 00389$
;printf_large.c:683: output_char( zero_padding ? '0' : ' ', p );
;     genIfx
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	__print_format_zero_padding_1_1,00231$
;	Peephole 300	removed redundant label 00390$
;     genAssign
	mov	r7,#0x30
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00232$
00231$:
;     genAssign
	mov	r7,#0x20
00232$:
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00391$
	push	acc
	mov	a,#(00391$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r7
	ret
00391$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:684: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r3
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r3,#0x00,00196$
	inc	r4
;	Peephole 300	removed redundant label 00392$
	sjmp	00196$
00203$:
;printf_large.c:689: if (width > length)
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r2,a
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r5
	subb	a,r2
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00200$
;	Peephole 300	removed redundant label 00393$
;printf_large.c:690: width -= length;
;     genMinus
	mov	dptr,#__print_format_width_1_1
	mov	a,r2
	clr	c
;	Peephole 236.l	used r5 instead of ar5
	subb	a,r5
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00299$
00200$:
;printf_large.c:692: width = 0;
;     genAssign
	mov	dptr,#__print_format_width_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
;printf_large.c:696: while( length-- )
00299$:
;     genAssign
	mov	dptr,#__print_format_pstore_4_21
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
;     genAssign
00208$:
;     genAssign
	mov	ar7,r5
;     genMinus
;     genMinusDec
	dec	r5
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r4
	movx	@dptr,a
	inc	dptr
	mov	a,r6
	movx	@dptr,a
;     genIfx
	mov	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00210$
;	Peephole 300	removed redundant label 00394$
;printf_large.c:698: 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:699: if (!lsd)
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_lsd_1_1,00206$
;	Peephole 300	removed redundant label 00395$
;printf_large.c:701: pstore++;
;     genPlus
;     genPlusIncr
	inc	r2
	cjne	r2,#0x00,00396$
	inc	r3
00396$:
;printf_large.c:702: value.byte[4] = *pstore >> 4;
;     genPointerGet
;     genFarPointerGet
	mov	dpl,r2
	mov	dph,r3
	movx	a,@dptr
;     genRightShift
;     genRightShiftLiteral
;     genrshOne
;	Peephole 105	removed redundant mov
	mov	r7,a
	swap	a
	anl	a,#0x0f
;     genPointerSet
;     genFarPointerSet
;	Peephole 100	removed redundant mov
	mov	r7,a
	mov	dptr,#(_value + 0x0004)
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00207$
00206$:
;printf_large.c:706: value.byte[4] = *pstore & 0x0F;
;     genPointerGet
;     genFarPointerGet
	mov	dpl,r2
	mov	dph,r3
	movx	a,@dptr
	mov	r7,a
;     genAnd
	anl	ar7,#0x0F
;     genPointerSet
;     genFarPointerSet
	mov	dptr,#(_value + 0x0004)
	mov	a,r7
	movx	@dptr,a
00207$:
;printf_large.c:711: output_digit( value.byte[4] );
;     genPointerGet
;     genFarPointerGet
	mov	dptr,#(_value + 0x0004)
	movx	a,@dptr
;     genCall
;	Peephole 244.c	loading dpl from a instead of r7
	mov	r7,a
	mov	dpl,a
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	lcall	_output_digit
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:713: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r4
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r4,#0x00,00208$
	inc	r6
;	Peephole 300	removed redundant label 00397$
	sjmp	00208$
00210$:
;printf_large.c:715: if (left_justify)
;     genIfx
;     genIfxJump
	jb	__print_format_left_justify_1_1,00398$
	ljmp	00224$
00398$:
;printf_large.c:716: while (width-- > 0)
;     genAssign
	mov	ar2,r4
	mov	ar3,r6
;     genAssign
	mov	dptr,#__print_format_width_1_1
	movx	a,@dptr
	mov	r4,a
00211$:
;     genAssign
	mov	ar6,r4
;     genMinus
;     genMinusDec
	dec	r4
;     genCmpGt
;     genCmp
	clr	c
;	Peephole 181	changed mov to clr
	clr	a
	subb	a,r6
	clr	a
	rlc	a
	mov	r6,a
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	mov	a,r2
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
;     genIfx
	mov	a,r6
;     genIfxJump
	jnz	00399$
	ljmp	00224$
00399$:
;printf_large.c:718: output_char(' ', p);
;     genIpush
	push	ar2
	push	ar3
	push	ar4
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00400$
	push	acc
	mov	a,#(00400$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,#0x20
	ret
00400$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:719: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00211$
	inc	r3
;	Peephole 300	removed redundant label 00401$
	sjmp	00211$
00222$:
;printf_large.c:726: output_char( c, p );
;     genIpush
	mov	dptr,#_p
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;     genPCall
	mov	a,#00402$
	push	acc
	mov	a,#(00402$ >> 8)
	push	acc
	mov	dptr,#_output_char
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	mov	dpl,r5
	ret
00402$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:727: charsOutputted++;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;     genPlus
	mov	dptr,#__print_format_charsOutputted_1_1
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	inc	dptr
	movx	@dptr,a
	ljmp	00224$
00226$:
;printf_large.c:731: return charsOutputted;
;     genAssign
	mov	dptr,#__print_format_charsOutputted_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
;     genRet
;	Peephole 235	loading dph directly from a(ccumulator), r3 not set
	mov	dpl,r2
	mov	dph,a
;	Peephole 300	removed redundant label 00227$
	ret
	.area CSEG    (CODE)
	.area CONST   (CODE)
_memory_id:
	.ascii "IXCP-"
	.db 0x00
__str_0:
	.ascii "<NO FLOAT>"
	.db 0x00
	.area XINIT   (CODE)
