;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.5.1 #1058 (Jul 15 2005)
; This file generated Fri Jul 15 02:48:25 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_21::
	.ds 6
__print_format_sloc2_1_0::
	.ds 3
__print_format_sloc3_1_0::
	.ds 3
;--------------------------------------------------------
; 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$
;	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
	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
;	Peephole 300	removed redundant label 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$
;	Peephole 300	removed redundant label 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 r2 
;length                    Allocated to registers r5 
;c                         Allocated to registers r4 
;store                     Allocated with name '__print_format_store_4_21'
;pstore                    Allocated to registers r4 
;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++ )
00224$:
;     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	00302$
	ljmp	00226$
00302$:
;printf_large.c:381: if ( c=='%' )
;     genCmpEq
	cjne	r4,#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	__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	r2,#0xFF
;printf_large.c:395: get_conversion_spec:
;     genAssign
	mov	r3,__print_format_PARM_3
	mov	r6,(__print_format_PARM_3 + 1)
	mov	r7,(__print_format_PARM_3 + 2)
00101$:
;printf_large.c:397: c = *format++;
;     genPointerGet
;     genGenPointerGet
	mov	dpl,r3
	mov	dph,r6
	mov	b,r7
	lcall	__gptrget
	mov	r4,a
	inc	dptr
	mov	r3,dpl
	mov	r6,dph
;     genAssign
	mov	__print_format_PARM_3,r3
	mov	(__print_format_PARM_3 + 1),r6
	mov	(__print_format_PARM_3 + 2),r7
;printf_large.c:399: if (c=='%') {
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r4,#0x25,00103$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00305$
00306$:
;printf_large.c:400: output_char(c, p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00307$
	push	acc
	mov	a,#(00307$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00307$:
	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,00308$
	inc	(__print_format_sloc3_1_0 + 1)
00308$:
;printf_large.c:402: continue;
	ljmp	00224$
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$
;	Peephole 300	removed redundant label 00309$
;printf_large.c:406: if (decimals==-1) {
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r2,#0xFF,00107$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00310$
00311$:
;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	00313$
00312$:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00101$
00313$:
;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,r2
	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	r2,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$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00314$
00315$:
;printf_large.c:419: if (decimals=-1) decimals=0;
;     genAssign
	mov	r2,#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$
;	Peephole 300	removed redundant label 00316$
;printf_large.c:428: c = toupper(c);
;     genAnd
	anl	ar4,#0xDF
00116$:
;printf_large.c:431: switch( c )
;     genCmpEq
	cjne	r4,#0x20,00317$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00119$
00317$:
;     genCmpEq
	cjne	r4,#0x2B,00318$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00118$
00318$:
;     genCmpEq
	cjne	r4,#0x2D,00319$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00117$
00319$:
;     genCmpEq
	cjne	r4,#0x42,00320$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00120$
00320$:
;     genCmpEq
	cjne	r4,#0x43,00321$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00122$
00321$:
;     genCmpEq
	cjne	r4,#0x44,00322$
	ljmp	00147$
00322$:
;     genCmpEq
	cjne	r4,#0x46,00323$
	ljmp	00151$
00323$:
;     genCmpEq
	cjne	r4,#0x49,00324$
	ljmp	00147$
00324$:
;     genCmpEq
	cjne	r4,#0x4C,00325$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00121$
00325$:
;     genCmpEq
	cjne	r4,#0x4F,00326$
	ljmp	00148$
00326$:
;     genCmpEq
	cjne	r4,#0x50,00327$
	ljmp	00142$
00327$:
;     genCmpEq
	cjne	r4,#0x53,00328$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00123$
00328$:
;     genCmpEq
	cjne	r4,#0x55,00329$
	ljmp	00149$
00329$:
;     genCmpEq
	cjne	r4,#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 );
;     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	dpl,r5
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00331$
	push	acc
	mov	a,#(00331$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	ret
00331$:
	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,00332$
	inc	(__print_format_sloc3_1_0 + 1)
00332$:
;printf_large.c:452: break;
	ljmp	00153$
;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	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:465: length = strlen(PTR);
;     genCall
	mov	dpl,r5
	mov	dph,r6
	mov	b,r7
	push	ar2
	lcall	_strlen
	mov	r5,dpl
	mov	r6,dph
	pop	ar2
;     genCast
;printf_large.c:467: if ( decimals == -1 )
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r2,#0xFF,00125$
;	Peephole 201	removed redundant sjmp
;	Peephole 300	removed redundant label 00333$
00334$:
;printf_large.c:469: decimals = length;
;     genAssign
	mov	ar2,r5
00125$:
;printf_large.c:471: if ( ( !left_justify ) && (length < width) )
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_left_justify_1_1,00264$
;	Peephole 300	removed redundant label 00335$
;     genCmpLt
;     genCmp
	clr	c
	mov	a,r5
	subb	a,__print_format_width_1_1
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00264$
;	Peephole 300	removed redundant label 00336$
;printf_large.c:473: width -= length;
;     genMinus
	mov	a,__print_format_width_1_1
	clr	c
;	Peephole 236.l	used r5 instead of ar5
	subb	a,r5
	mov	__print_format_width_1_1,a
;printf_large.c:474: while( width-- != 0 )
;     genAssign
	mov	r6,__print_format_sloc3_1_0
	mov	r7,(__print_format_sloc3_1_0 + 1)
;     genAssign
	mov	r3,__print_format_width_1_1
00126$:
;     genIpush
	push	ar5
;     genAssign
	mov	ar5,r3
;     genMinus
;     genMinusDec
	dec	r3
;     genAssign
	mov	__print_format_width_1_1,r3
;     genCmpEq
;	Peephole 241.c	optimized compare
	clr	a
	cjne	r5,#0x00,00337$
	inc	a
00337$:
00338$:
	mov	r5,a
;     genAssign
	mov	__print_format_sloc3_1_0,r6
	mov	(__print_format_sloc3_1_0 + 1),r7
;     genIfx
	mov	a,r5
;     genIpop
	pop	ar5
;     genIfxJump
;	Peephole 109	removed ljmp by inverse jump logic
	jnz	00264$
;	Peephole 300	removed redundant label 00339$
;printf_large.c:476: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar3
	push	ar5
	push	ar6
	push	ar7
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00340$
	push	acc
	mov	a,#(00340$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00340$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar3
	pop	ar2
;printf_large.c:477: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r6
;printf_large.c:481: while ( *PTR  && (decimals-- > 0))
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r6,#0x00,00126$
	inc	r7
;	Peephole 300	removed redundant label 00341$
	sjmp	00126$
00264$:
;     genAssign
;     genAssign
	mov	r3,__print_format_sloc3_1_0
	mov	r4,(__print_format_sloc3_1_0 + 1)
00133$:
;     genAssign
;     genPointerGet
;     genGenPointerGet
	mov	dpl,_value
	mov	dph,(_value + 1)
	mov	b,(_value + 2)
	lcall	__gptrget
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00135$
;	Peephole 300	removed redundant label 00342$
;     genAssign
	mov	ar7,r2
;     genMinus
;     genMinusDec
	dec	r2
;     genCmpGt
;     genCmp
	clr	c
;	Peephole 159	avoided xrl during execution
	mov	a,#(0x00 ^ 0x80)
	mov	b,r7
	xrl	b,#0x80
	subb	a,b
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00135$
;	Peephole 300	removed redundant label 00343$
;printf_large.c:483: output_char( *PTR++, p );
;     genIpush
	push	ar5
;     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	ar5
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00344$
	push	acc
	mov	a,#(00344$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r5
	ret
00344$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:484: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r3
	cjne	r3,#0x00,00345$
	inc	r4
00345$:
;     genAssign
	mov	__print_format_sloc3_1_0,r3
	mov	(__print_format_sloc3_1_0 + 1),r4
;     genIpop
	pop	ar5
	ljmp	00133$
00135$:
;printf_large.c:487: if ( left_justify && (length < width))
;     genAssign
	mov	__print_format_sloc3_1_0,r3
	mov	(__print_format_sloc3_1_0 + 1),r4
;     genIfx
;     genIfxJump
	jb	__print_format_left_justify_1_1,00346$
	ljmp	00153$
00346$:
;     genCmpLt
;     genCmp
	clr	c
	mov	a,r5
	subb	a,__print_format_width_1_1
;     genIfxJump
	jc	00347$
	ljmp	00153$
00347$:
;printf_large.c:489: width -= length;
;     genMinus
	mov	a,__print_format_width_1_1
	clr	c
;	Peephole 236.l	used r5 instead of ar5
	subb	a,r5
	mov	__print_format_width_1_1,a
;printf_large.c:490: while( width-- != 0 )
;     genAssign
	mov	ar2,r4
;     genAssign
	mov	r6,__print_format_width_1_1
00136$:
;     genAssign
	mov	ar7,r6
;     genMinus
;     genMinusDec
	dec	r6
;     genAssign
	mov	__print_format_width_1_1,r6
;     genCmpEq
;	Peephole 241.c	optimized compare
	clr	a
	cjne	r7,#0x00,00348$
	inc	a
00348$:
00349$:
	mov	r7,a
;     genAssign
	mov	__print_format_sloc3_1_0,r3
	mov	(__print_format_sloc3_1_0 + 1),r2
;     genIfx
	mov	a,r7
;     genIfxJump
	jz	00350$
	ljmp	00153$
00350$:
;printf_large.c:492: output_char( ' ', p );
;     genIpush
	push	ar2
	push	ar3
	push	ar6
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00351$
	push	acc
	mov	a,#(00351$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00351$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar6
	pop	ar3
	pop	ar2
;printf_large.c:493: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r3
;printf_large.c:498: case 'P':
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r3,#0x00,00136$
	inc	r2
;	Peephole 300	removed redundant label 00352$
	sjmp	00136$
00142$:
;printf_large.c:499: PTR = va_arg(ap,ptr_t);
;     genIpush
;     genMinus
;     genMinusDec
	mov	a,__print_format_PARM_4
	add	a,#0xfd
	mov	r0,a
;     genAssign
	mov	__print_format_PARM_4,r0
;     genPointerGet
;     genNearPointerGet
	mov	ar6,@r0
	inc	r0
	mov	ar7,@r0
	inc	r0
	mov	ar2,@r0
	dec	r0
	dec	r0
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r6
	mov	(_value + 1),r7
	mov	(_value + 2),r2
;printf_large.c:511: 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
;     genIpop
;     genIfx
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
;	Peephole 128	jump optimization
	jnc	00229$
;	Peephole 300	removed redundant label 00353$
;     genAssign
	mov	r6,#0x04
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00230$
00229$:
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r6,(_value + 0x0002)
00230$:
;     genPlus
;	Peephole 236.g	used r6 instead of ar6
	mov	a,r6
;	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	r6,a
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00354$
	push	acc
	mov	a,#(00354$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r6
	ret
00354$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:512: output_char(':', p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00355$
	push	acc
	mov	a,#(00355$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x3A
	ret
00355$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:513: output_char('0', 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,#0x30
	ret
00356$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:514: output_char('x', p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00357$
	push	acc
	mov	a,#(00357$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x78
	ret
00357$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:515: if ((value.byte[2] != 0x00 /* DSEG */) &&
;     genAssign
;     genCmpEq
	mov	a,0x0002 + _value
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00144$
;	Peephole 300	removed redundant label 00358$
;printf_large.c:516: (value.byte[2] != 0x03 /* SSEG */))
;     genAssign
;     genCmpEq
	mov	a,0x0002 + _value
	cjne	a,#0x03,00359$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00144$
00359$:
;printf_large.c:518: OUTPUT_2DIGITS( value.byte[1] );
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	dpl,(_value + 0x0001)
;     genCall
	lcall	_output_2digits
;printf_large.c:519: 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
00144$:
;printf_large.c:521: OUTPUT_2DIGITS( value.byte[0] );
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	dpl,_value
;     genCall
	lcall	_output_2digits
;printf_large.c:522: 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: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	__print_format_radix_1_1,#0x0A
;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	__print_format_radix_1_1,#0x08
;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	__print_format_radix_1_1,#0x0A
;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	__print_format_radix_1_1,#0x10
;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
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00360$
	push	acc
	mov	a,#(00360$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00360$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:551: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00361$
	inc	(__print_format_sloc3_1_0 + 1)
00361$:
;printf_large.c:553: }
00153$:
;printf_large.c:555: if (float_argument) {
;     genIfx
;     genIfxJump
	jb	__print_format_float_argument_1_1,00362$
	ljmp	00219$
00362$:
;printf_large.c:556: 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	ar6,@r0
	inc	r0
	mov	ar7,@r0
	inc	r0
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	dec	r0
	dec	r0
	dec	r0
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r6
	mov	(_value + 1),r7
	mov	(_value + 2),r2
	mov	(_value + 3),r3
;printf_large.c:558: PTR="<NO FLOAT>";
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,#__str_0
	mov	(_value + 1),#(__str_0 >> 8)
	mov	(_value + 2),#0x80
;printf_large.c:731: return charsOutputted;
;     genIpop
;printf_large.c:559: 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)
00154$:
;     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	r6,a
;     genAssign
	mov	ar4,r6
;     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,r6
;     genIfxJump
	jnz	00363$
	ljmp	00224$
00363$:
;printf_large.c:561: output_char (c, p);
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00364$
	push	acc
	mov	a,#(00364$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00364$:
	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 00365$
	sjmp	00154$
00219$:
;printf_large.c:574: } else if (radix != 0)
;     genCmpEq
	mov	a,__print_format_radix_1_1
	jnz	00366$
	ljmp	00224$
00366$:
;printf_large.c:579: unsigned char _AUTOMEM *pstore = &store[5];
;     genAssign
	mov	r4,#(__print_format_store_4_21 + 0x0005)
;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 00367$
;printf_large.c:584: 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	ar7,@r0
;     genCast
	mov	a,r7
	rlc	a
	subb	a,acc
	mov	r6,a
	mov	r2,a
	mov	r3,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r7
	mov	(_value + 1),r6
	mov	(_value + 2),r2
	mov	(_value + 3),r3
;printf_large.c:585: if (!signed_argument)
;     genIpop
;     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:587: value.l &= 0xFF;
;     genIpush
;     genAssign
;     genAnd
	mov	r6,_value
	mov	r7,#0x00
	mov	r2,#0x00
	mov	r3,#0x00
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r6
	mov	(_value + 1),r7
	mov	(_value + 2),r2
	mov	(_value + 3),r3
;     genIpop
;	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 00369$
;printf_large.c:592: 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	ar6,@r0
	inc	r0
	mov	ar7,@r0
	inc	r0
	mov	ar2,@r0
	inc	r0
	mov	ar3,@r0
	dec	r0
	dec	r0
	dec	r0
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r6
	mov	(_value + 1),r7
	mov	(_value + 2),r2
	mov	(_value + 3),r3
;     genIpop
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00166$
00162$:
;printf_large.c:596: 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	ar6,@r0
	inc	r0
	mov	ar7,@r0
	dec	r0
;     genCast
	mov	a,r7
	rlc	a
	subb	a,acc
	mov	r2,a
	mov	r3,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r6
	mov	(_value + 1),r7
	mov	(_value + 2),r2
	mov	(_value + 3),r3
;printf_large.c:597: if (!signed_argument)
;     genIpop
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_signed_argument_1_1,00166$
;	Peephole 300	removed redundant label 00370$
;printf_large.c:599: value.l &= 0xFFFF;
;     genAssign
;     genAnd
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	r6,_value
	mov	r7,(_value + 1)
	mov	r2,#0x00
	mov	r3,#0x00
;	Peephole 238.c	removed 2 redundant moves
	mov	(_value + 2),r2
	mov	(_value + 3),r3
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 00371$
;printf_large.c:605: if (value.l < 0)
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r2,_value
	mov	r3,(_value + 1)
	mov	r6,(_value + 2)
;     genCmpLt
;     genCmp
;	peephole 177.g	optimized mov sequence
	mov	a,(_value + 3)
	mov	r7,a
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	acc.7,00168$
;	Peephole 300	removed redundant label 00372$
;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,r6
	mov	r6,a
	clr	a
	subb	a,r7
	mov	r7,a
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	_value,r2
	mov	(_value + 1),r3
	mov	(_value + 2),r6
	mov	(_value + 3),r7
;	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	ar0,r4
;     genAssign
	mov	r2,#0x00
00175$:
;printf_large.c:615: value.byte[4] = 0;
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	(_value + 0x0004),#0x00
;printf_large.c:619: 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: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 00373$
;printf_large.c:623: *pstore = (value.byte[4] << 4) | (value.byte[4] >> 4) | *pstore;
;     genAssign
;     genSwap
	mov	a,0x0004 + _value
	swap	a
	mov	r3,a
;     genPointerGet
;     genNearPointerGet
	mov	ar6,@r0
;     genOr
	mov	a,r6
	orl	a,r3
;     genPointerSet
;     genNearPointerSet
	mov	@r0,acc
;printf_large.c:624: pstore--;
;     genMinus
;     genMinusDec
	dec	r0
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00174$
00173$:
;printf_large.c:628: *pstore = value.byte[4];
;     genPointerGet
;     genNearPointerGet
;     genDataPointerGet
	mov	r3,(_value + 0x0004)
;     genPointerSet
;     genNearPointerSet
	mov	@r0,ar3
00174$:
;printf_large.c:630: length++;
;     genPlus
;     genPlusIncr
	inc	r2
;     genAssign
	mov	ar5,r2
;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 );
;     genAssign
;     genAssign
	mov	ar4,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	00175$
;	Peephole 300	removed redundant label 00374$
;printf_large.c:634: if (width == 0)
;     genCmpEq
	mov	a,__print_format_width_1_1
;	Peephole 162	removed sjmp by inverse jump logic
	jz	00376$
00375$:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00179$
00376$:
;printf_large.c:639: width=1;
;     genAssign
	mov	__print_format_width_1_1,#0x01
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 00377$
;     genIfx
;     genIfxJump
;	Peephole 112.a	removed ljmp by inverse jump logic
	jb	__print_format_left_justify_1_1,00184$
;	Peephole 300	removed redundant label 00378$
;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	__print_format_sloc2_1_0,a
;     genAssign
	mov	r3,__print_format_sloc3_1_0
	mov	r6,(__print_format_sloc3_1_0 + 1)
;     genAssign
	mov	r7,__print_format_width_1_1
00180$:
;     genCmpGt
;     genCmp
	clr	c
	mov	a,__print_format_sloc2_1_0
	subb	a,r7
	clr	a
	rlc	a
	mov	r2,a
;     genAssign
	mov	__print_format_sloc3_1_0,r3
	mov	(__print_format_sloc3_1_0 + 1),r6
;     genAssign
	mov	__print_format_width_1_1,r7
;     genIfx
	mov	a,r2
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00184$
;	Peephole 300	removed redundant label 00379$
;printf_large.c:647: output_char( ' ', p );
;     genIpush
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00380$
	push	acc
	mov	a,#(00380$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00380$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
;printf_large.c:648: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r3
	cjne	r3,#0x00,00381$
	inc	r6
00381$:
;printf_large.c:649: width--;
;     genMinus
;     genMinusDec
	dec	r7
;	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 00382$
;printf_large.c:655: output_char( '-', p );
;     genIpush
	push	ar4
	push	ar5
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00383$
	push	acc
	mov	a,#(00383$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x2D
	ret
00383$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
	pop	ar4
;printf_large.c:656: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00384$
	inc	(__print_format_sloc3_1_0 + 1)
00384$:
;printf_large.c:658: width--;
;     genMinus
;     genMinusDec
	dec	__print_format_width_1_1
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00195$
00194$:
;printf_large.c:660: else if (length != 0)
;     genCmpEq
	cjne	r5,#0x00,00385$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00195$
00385$:
;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 00386$
;printf_large.c:665: output_char( '+', p );
;     genIpush
	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,#0x2B
	ret
00387$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
	pop	ar4
;printf_large.c:666: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00388$
	inc	(__print_format_sloc3_1_0 + 1)
00388$:
;printf_large.c:668: width--;
;     genMinus
;     genMinusDec
	dec	__print_format_width_1_1
;	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 00389$
;printf_large.c:672: output_char( ' ', p );
;     genIpush
	push	ar4
	push	ar5
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00390$
	push	acc
	mov	a,#(00390$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00390$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
	pop	ar4
;printf_large.c:673: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00391$
	inc	(__print_format_sloc3_1_0 + 1)
00391$:
;printf_large.c:675: width--;
;     genMinus
;     genMinusDec
	dec	__print_format_width_1_1
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 00392$
;printf_large.c:681: while ( width-- > length )
;     genAssign
	mov	r2,__print_format_sloc3_1_0
	mov	r3,(__print_format_sloc3_1_0 + 1)
;     genAssign
	mov	r6,__print_format_width_1_1
00196$:
;     genAssign
	mov	ar7,r6
;     genMinus
;     genMinusDec
	dec	r6
;     genAssign
	mov	__print_format_width_1_1,r6
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r5
	subb	a,r7
	clr	a
	rlc	a
	mov	r7,a
;     genAssign
	mov	__print_format_sloc3_1_0,r2
	mov	(__print_format_sloc3_1_0 + 1),r3
;     genIfx
	mov	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00299$
;	Peephole 300	removed redundant label 00393$
;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 00394$
;     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
	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,r7
	ret
00395$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;printf_large.c:684: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00196$
	inc	r3
;	Peephole 300	removed redundant label 00396$
	sjmp	00196$
00203$:
;printf_large.c:689: if (width > length)
;     genCmpGt
;     genCmp
	clr	c
	mov	a,r5
	subb	a,__print_format_width_1_1
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00200$
;	Peephole 300	removed redundant label 00397$
;printf_large.c:690: width -= length;
;     genMinus
	mov	a,__print_format_width_1_1
	clr	c
;	Peephole 236.l	used r5 instead of ar5
	subb	a,r5
	mov	__print_format_width_1_1,a
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00299$
00200$:
;printf_large.c:692: width = 0;
;     genAssign
	mov	__print_format_width_1_1,#0x00
;printf_large.c:696: while( length-- )
00299$:
;     genAssign
	mov	ar0,r4
;     genAssign
	mov	r2,__print_format_sloc3_1_0
	mov	r3,(__print_format_sloc3_1_0 + 1)
;     genAssign
00208$:
;     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	00210$
;	Peephole 300	removed redundant label 00398$
;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 00399$
;printf_large.c:701: pstore++;
;     genPlus
;     genPlusIncr
	inc	r0
;printf_large.c:702: 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	00207$
00206$:
;printf_large.c:706: value.byte[4] = *pstore & 0x0F;
;     genPointerGet
;     genNearPointerGet
	mov	ar6,@r0
;     genAnd
	mov	a,#0x0F
	anl	a,r6
;     genPointerSet
;     genNearPointerSet
;     genDataPointerSet
	mov	(_value + 0x0004),a
00207$:
;printf_large.c:711: 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:713: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	r2
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r2,#0x00,00208$
	inc	r3
;	Peephole 300	removed redundant label 00400$
	sjmp	00208$
00210$:
;printf_large.c:715: if (left_justify)
;     genIfx
;     genIfxJump
	jb	__print_format_left_justify_1_1,00401$
	ljmp	00224$
00401$:
;printf_large.c:716: while (width-- > 0)
;     genAssign
;     genAssign
	mov	r5,__print_format_width_1_1
00211$:
;     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	00402$
	ljmp	00224$
00402$:
;printf_large.c:718: output_char(' ', p);
;     genIpush
	push	ar2
	push	ar3
	push	ar5
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00403$
	push	acc
	mov	a,#(00403$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,#0x20
	ret
00403$:
	dec	sp
	dec	sp
	dec	sp
	pop	ar5
	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 00404$
	sjmp	00211$
00222$:
;printf_large.c:726: output_char( c, p );
;     genIpush
	push	_p
	push	(_p + 1)
	push	(_p + 2)
;     genPCall
	mov	a,#00405$
	push	acc
	mov	a,#(00405$ >> 8)
	push	acc
	push	_output_char
	push	(_output_char + 1)
	mov	dpl,r4
	ret
00405$:
	dec	sp
	dec	sp
	dec	sp
;printf_large.c:727: charsOutputted++;
;     genPlus
;     genPlusIncr
	inc	__print_format_sloc3_1_0
	clr	a
	cjne	a,__print_format_sloc3_1_0,00406$
	inc	(__print_format_sloc3_1_0 + 1)
00406$:
	ljmp	00224$
00226$:
;printf_large.c:731: return charsOutputted;
;     genRet
	mov	dpl,__print_format_sloc3_1_0
	mov	dph,(__print_format_sloc3_1_0 + 1)
;	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)
