bN}3ł$F37B-F57F()gpROM̈Ȃ̂ŁAɃR[hǉB


E934:
4C 7B F3	jmp	$F37B		; ̏ɃWv

E961: F0 -> F8				; 5bit`bvƂĈ

----------------------------------------------

F37B:
85 4D		sta	$4D		; $4D$12̃Rs[ƂĂ(̃`FbNXW)
4A		lsr	a		; WvŒׂs
4A		lsr	a		; |
4A		lsr	a		; |
48		pha			; X^bNɃvbV
A5 02		lda	$02		; $02̒l[h
85 4E		sta	$4E		; $4EɊi[
68		pla			; X^bN|bv
4C 37 E9	jmp	$E937		; Wv֖߂

==============================================

F6BF:
4C 89 F3	jmp	$F389		; ̏ɃWv

----------------------------------------------
F389:

A5 41		lda	$41		; Largest block type found[h
C9 E0		cmp	#$E0		; #$E0(̓y)Ȃ΍`FbNɃWv
F0 XX(0A)	beq	`FbN	; |
C9 E8		cmp	#$E8		; uȂ΋uɃWv
F0 XX(3A)	beq	u		; |

A5 10		lda	$10		; $10̒l[h
29 10		and	#$10		; `bvubNȂΒʏ`FbNɃWv
D0 XX(31)	bne	ʏ`FbN	; |

`FbN:(F399:)
A4 4E		ldy	$4E		; YWX^$4E̒l[h
B9 42 00	lda	$0042,y		; ̃`bv[h
C9 C0		cmp	#$C0		; #$C0(E1)ȂΉE⏈1ɃWv
F0 XX(30)	beq	E⏈1	; |
C9 C8		cmp	#$C8		; #$C8(E2)ȂΉE⏈2ɃWv
F0 XX(51)	beq	E⏈2	; |
C9 E0		cmp	#$E0		; #$E0(̓y)ȂΉEy䏈ɃWv
F0 XX(7B)	beq	Ey䏈; |

29 F0		and	#$F0		; 4bito
85 4C		sta	$4C		; $4CɊi[(̒`FbN̂߂Ɏg)

E`FbN:(F3AE:)
A5 42		lda	$42		; Ẽ`bv[h
C9 A0		cmp	#$A0		; #$A0(E1)ȂΉE⏈1ɃWv
F0 XX(4B)	beq	E⏈1	; |
C9 A8		cmp	#$A8		; #$A8(E2)ȂΉE⏈2ɃWv
F0 XX(51)	beq	E⏈2	; |
C9 E0		cmp	#$E0		; #$E0(̓y)ȂΉEy䏈ɃWv
F0 XX(57)	beq	Ey䏈; |

; ̒オĂ邩̃`FbN(F3BC:)
29 F0		and	#$F0		; 4bito
C9 C0		cmp	#$C0		; E1or2łȂLabel3ɃWv
D0 XX(06)	bne	Label3		; |
A5 4C		lda	$4C		; $4C̒l[h
C9 A0		cmp	#$A0		; E1or2ȂΒʏ`FbNɃWv
F0 XX(02)	beq	ʏ`FbN	; |

Label3:(F3C8:)		
18		clc			; łȂ΃^[
60		rts			; |

ʏ`FbN:(F3CA:)
4C C5 F6	jmp	$F6C5		; Wvɖ߂


u:(F3CD:)				; E8̏
A9 08		lda	#$08		; AWX^#$08[h
4C XX XX(D9 F3)	jmp	Label0		; Label0ɃWv

E⏈1:(F3D2:)			; C0̏
A5 4D		lda	$4D		; ̃`FbNXW[h
29 0F		and	#$0F		; 4bito
4A		lsr	a		; AWX^EVtg
09 08		ora	#$08		; #$08Z

Label0:(F3D9:)
85 4E		sta	$4E		; $4EɊi[

A5 11		lda	$11		; `FbNYW[h
48		pha			; X^bNɃvbV
29 0F		and	#$0F		; 4bito
38		sec			; L[Zbg
E5 4E		sbc	$4E		; `FbNYW(4bit) - $4E̒l vZ
90 XX(0E)	bcc	RETURN		; `FbNYW(4bit)  $4E̒l łȂRETURNɃWv

Label1:(F3E5:)
20 0D EE	jsr	$EE0D		; ̂߂荞݂ɑ΂YW␳(AWX^ɃbN}YW猸ZlČĂяo)

A9 00		lda	#$00		; Yxɑ傫ȒlZbg(Ƃ肠łFC.00 = -04.00)
9D 40 04	sta	$0440,x		; |
A9 FC		lda	#$FC		; |
9D 60 04	sta	$0460,x		; |
38		sec			; L[Zbg

RETURN:(F3F3:)
68		pla			; X^bN|bv
85 11		sta	$11		; $11Ɋi[
60		rts			; ^[

E⏈2:(F3F7:)			; C8̏
A5 4D		lda	$4D		; ̃`FbNXW[h
29 0F		and	#$0F		; 4bito
4A		lsr	a		; AWX^EVtg
4C XX XX(D9 F3)	jmp	Label0		; Label0ɃWv

E⏈1:(F3FF:)			; A0̏
A5 12		lda	$12		; Ẽ`FbNXW[h
29 0F		and	#$0F		; 4bito
4A		lsr	a		; AWX^EVtg
49 0F		eor	#$0F		; 4bit]
4C XX XX(D9 F3)	jmp	Label0		; Label0ɃWv

E⏈2:(F409:)			; A8̏
A5 12		lda	$12		; Ẽ`FbNXW[h
29 0F		and	#$0F		; 4bito
4A		lsr	a		; AWX^EVtg
49 07		eor	#$07		; 3bit]
4C XX XX(D9 F3)	jmp	Label0		; Label0ɃWv

Ey䏈:(F413:)		; E0̏1
A5 12		lda	$12		; Ẽ`FbNXW[h
Label2:(F415:)
29 0F		and	#$0F		; 4bito
4A		lsr	a		; AWX^EVtg
85 4E		sta	$4E		; $4EɊi[
A5 11		lda	$11		; `FbNYW[h
48		pha			; X^bNɃvbV
29 0F		and	#$0F		; |
18		sec			; L[Zbg
65 4E		adc	$4E		; (YW and #$0F) + $4E̒l + 1
4C XX XX(E5 F3)	jmp	Label1		; Label1ɃWv

Ey䏈:(F425:)		; E0̏2
A5 4D		lda	$4D		; ̃`FbNXW[h
49 0F		eor	#$0F		; 4bit]
4C XX XX(15 F4)	jmp	Label2		; Label2ɃWv

F42C:


