;************************************************************************
;*	ƒf[ƒ^ˆ³k‰ð“€					(DT_UNCOMPRESS) *
;*     m‚‰‚Žn	  @‚q‚SFƒf[ƒ^Œ³ƒoƒ“ƒNi‚S‚O‚g`‚T‚e‚gj		*
;*		  @‚q‚XF@@@@ƒAƒhƒŒƒX				*
;*		  ‚q‚P‚OF‰ð“€æ@ƒAƒhƒŒƒX				*
;*									*
;*     m‚‚•‚”n ‚q‚P‚OF‰ð“€Œã‚Ì  ‰ð“€æ  ƒAƒhƒŒƒX			*
;*									*
;*     m‚t‚“‚…‚„nR0,R1,R2,R3,R4,R5,R6,R7,R9,R10,R11,R12,R13,R14,R15	*
;************************************************************************
DT_UNCOMPRESS	EQU	$
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒN‰ŠúÝ’è
		MOVE	R14,R9			; ‚q‚P‚S©‚b|‚q‚‚ƒAƒhƒŒƒX‰ŠúÝ’è
;
		MOVE	R9,R10			; (‚q‚X)   ©‰ð“€æƒAƒhƒŒƒX(‰Šú’l)
		IWT	R5,#003FFH		;i‚q‚Tj@©ƒf[ƒ^ŒÂ”ƒ`ƒFƒbƒNƒR[ƒh
		IBT	R6,#0001FH		;i‚q‚Uj@©ƒf[ƒ^ŒÂ”ƒ`ƒFƒbƒNƒR[ƒh
		IWT	R7,#000E0H		;i‚q‚Vj@©ƒf[ƒ^‚s‚™‚‚…ƒ`ƒFƒbƒNƒR[ƒh
		IWT	R8,#000FFH		;i‚q‚Wj@©ƒf[ƒ^I—¹ƒ`ƒFƒbƒNƒR[ƒh
		IWT	R11,#(DT_UNC000+1)	;i‚q‚P‚Pj©‚i‚l‚oæƒAƒhƒŒƒX
;
		CACHE				; ƒLƒƒƒbƒVƒ…§Œä
;
DT_UNC000
		GETB				; ‚q‚O©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC100+1		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		SUB	R8
		ADD	R8
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC100
		SUB	R8
		BNE	DT_UNC200		; ƒf[ƒ^I—¹H
;						; ‚™‚…‚“
		ADD	R8
		STOP				; ‚f‚r‚tI—¹
		NOP
;
;-----------------------------------------------; ƒf[ƒ^ŒÂ”ƒ`ƒFƒbƒN
DT_UNC200
		TO	R2			; ‚c‚’‚…‚‡©‚q‚Q
		AND	R7			; ‚q‚Q©ƒf[ƒ^‚s‚™‚‚…
		SUB	R7
		BPL	DT_UNC300		; ŒÂ”‚P‚e‚gŒÂˆÈãƒf[ƒ^H
;						; ‚Ž‚
		ADD	R7
		AND	R6			; ‚q‚O©iƒf[ƒ^ŒÂ”F‚P‚eŒÂˆÈ“àj
		BRA	DT_UNC500+1
		INC	R0
;
DT_UNC300
		MOVE	R1,R0			; ‚q‚O‚Ì“à—e‚ð‚q‚P‚ÉƒZƒbƒg
		ADD	R0
		ADD	R0
		ADD	R0			; ‚q‚O©‚q‚O–‚W@
		TO	R2			; ‚c‚’‚…‚‡©‚q‚Q
		AND	R7			; ‚q‚Q©ƒf[ƒ^‚s‚™‚‚…
;
		GETB				; ‚q‚O©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC400+1		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		WITH	R1			; ‚r‚’‚…‚‡©‚q‚P
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC400
		WITH	R1			; ‚r‚’‚…‚‡©‚q‚P
		SWAP				; ‚r‚’‚…‚‡i‚k|‚gj¨‚c‚’‚…‚‡i‚g|‚kj
		OR	R1
		AND	R5			; ‚q‚O©iƒf[ƒ^ŒÂ”F‚P‚eŒÂˆÈãj
;
;-----------------------------------------------; ƒf[ƒ^‚s‚™‚‚…ƒ`ƒFƒbƒN
DT_UNC500
		INC	R0
		MOVE	R12,R0			; ‚q‚P‚Q‚Éƒf[ƒ^ŒÂ”‚ðƒZƒbƒg
		MOVES	R0,R2			; ƒf[ƒ^‚s‚™‚‚…ƒ`ƒFƒbƒN
		BEQ	DT_UNC1100		;i”ñ‹¤’Êƒf[ƒ^jH
;						; ‚Ž‚
		SWAP
		BMI	DT_UNC1200		;iŽQÆƒf[ƒ^jH
;						; ‚Ž‚
		ADD	R0
		BPL	DT_UNC1300		;i‚P‚‚‚™‚”‚…‹¤’Êƒf[ƒ^jH
;						; ‚Ž‚
		ADD	R0
		BPL	DT_UNC1400		;i‚Q‚‚‚™‚”‚…‹¤’Êƒf[ƒ^jH
;						; ‚Ž‚
;-----------------------------------------------;iƒvƒ‰ƒX‚Pƒf[ƒ^j
DT_UNC1000
		GETB				; ‚q‚O©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC1040		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		NOP
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC1040
		MOVE	R13,R15			; ‚f‚r‚tƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^‚ð‚q‚P‚R‚ÉƒZƒbƒg
;
		STB	(R10)			; ‚b|‚q‚‚‚Öƒf[ƒ^‚ðƒXƒgƒA
		INC	R0
		LOOP
		INC	R10
;
		JMP	R11			; ‚i‚l‚oi‚c‚sQ‚t‚m‚b‚O‚O‚O{‚Pj
		GETB
;
;-----------------------------------------------;i”ñ‹¤’Êƒf[ƒ^j
DT_UNC1100
		MOVE	R13,R15			; ‚f‚r‚tƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^‚ð‚q‚P‚R‚ÉƒZƒbƒg
;
		GETB				; ‚q‚O©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC1140		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		NOP
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC1140
		STB	(R10)			; ‚b|‚q‚‚‚Öƒf[ƒ^‚ðƒXƒgƒA
		LOOP
		INC	R10
;
		JMP	R11			; ‚i‚l‚oi‚c‚sQ‚t‚m‚b‚O‚O‚O{‚Pj
		GETB
;
;-----------------------------------------------;iŽQÆƒf[ƒ^j
DT_UNC1200
		WITH	R1			; ‚c‚’‚…‚‡©‚q‚P
		GETB				; ‚q‚P©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC1220+1		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		GETB				; ‚q‚O©‚q‚‚ƒoƒbƒtƒ@
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC1220
		GETB				; ‚q‚O©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC1240+1		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		WITH	R1			; ‚r‚’‚…‚‡©‚q‚P
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC1240
		WITH	R1			; ‚r‚’‚…‚‡©‚q‚P
		SWAP				; ‚r‚’‚…‚‡i‚k|‚gj¨‚c‚’‚…‚‡i‚g|‚kj
		TO	R2			; ‚c‚’‚…‚‡©‚q‚Q
		OR	R1			; ‚q‚Q©ŽQÆƒf[ƒ^ƒAƒhƒŒƒX
		WITH	R2			; ‚c‚’‚…‚‡©‚q‚Q
		ADD	R9			; ‚q‚Q©ŽQÆƒf[ƒ^ƒAƒhƒŒƒX
;
		MOVE	R13,R15			; ‚f‚r‚tƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^‚ð‚q‚P‚R‚ÉƒZƒbƒg
;
		LDB	(R2)			; ‚b|‚q‚‚‚©‚çƒf[ƒ^‚ðƒ[ƒh
		STB	(R10)			; ‚b|‚q‚‚‚Öƒf[ƒ^‚ðƒXƒgƒA
		INC	R2
		LOOP
		INC	R10
;
		JMP	R11			; ‚i‚l‚oi‚c‚sQ‚t‚m‚b‚O‚O‚O{‚Pj
		GETB
;
;-----------------------------------------------; i‚P‚‚‚™‚”‚…‹¤’Êƒf[ƒ^j
DT_UNC1300
		GETB				; ‚q‚O©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC1340		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		NOP
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC1340
		MOVE	R13,R15			; ‚f‚r‚tƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^‚ð‚q‚P‚R‚ÉƒZƒbƒg
;
		STB	(R10)			; ‚b|‚q‚‚‚Öƒf[ƒ^‚ðƒXƒgƒA
		LOOP
		INC	R10
;
		JMP	R11			; ‚i‚l‚oi‚c‚sQ‚t‚m‚b‚O‚O‚O{‚Pj
		GETB
;
;-----------------------------------------------; i‚Q‚‚‚™‚”‚…‹¤’Êƒf[ƒ^j
DT_UNC1400
		INC	R14
		BNE	DT_UNC1420+1		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		WITH	R1			; ‚c‚’‚…‚‡©‚q‚P
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC1420
		WITH	R1			; ‚c‚’‚…‚‡©‚q‚P
		GETB				; ‚q‚P©‚q‚‚ƒoƒbƒtƒ@
		INC	R14
		BNE	DT_UNC1440		; ‚m‚…‚˜‚”ƒoƒ“ƒNH
;						; ‚™‚…‚“
		NOP
		INC	R4
		FROM	R4
		ROMB				; ‚b|‚q‚‚ƒoƒ“ƒNƒZƒbƒg
		MOVE	R14,R14
DT_UNC1440
		MOVE	R13,R15			; ‚f‚r‚tƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^‚ð‚q‚P‚R‚ÉƒZƒbƒg
;
		STB	(R10)			; ‚b|‚q‚‚‚Öƒf[ƒ^‚ðƒXƒgƒA
		INC	R10
		DEC	R12
		BEQ	DT_UNC1480		; ƒf[ƒ^I—¹H
;						; ‚Ž‚
		FROM	R1
		STB	(R10)			; ‚b|‚q‚‚‚Öƒf[ƒ^‚ðƒXƒgƒA
		LOOP
		INC	R10
DT_UNC1480
		JMP	R11			; ‚i‚l‚oi‚c‚sQ‚t‚m‚b‚O‚O‚O{‚Pj
		GETB
;
