アニメーションコマンド 0x86
指定した2枚の画像を、指定した相対位置に指定した期間表示します。

構文
0x86, sbyte time, ushort image1, ushort image2, short xoffset, short yoffset

パラメータ
sbyte time
画像を表示する期間をフレーム単位で指定します。負数は指定できないことに注意してください。
ushort image1
1枚目の画像のアドレスを指定します。これは、$FC:0000 にあるスプライト画像の配列ポインタの要素番号の4倍を指定します。
ushort image2
2枚目の画像のアドレスを指定します。これは、$FC:0000 にあるスプライト画像の配列ポインタの要素番号の4倍を指定します。
short xoffset
この2枚の画像のX軸方向の位置関係を指定します。
従属画像のX座標は、RAM $0D72の値にこの値を足したものです。
short yoffset
この2枚の画像のY軸方向の位置関係を指定します。
従属画像のY座標は、RAM $0D74の値にこの値を足したものです。

逆アセンブリ
B9:D2AA A6 64 		LDX $64
B9:D2AC B9 00 00 	LDA $0000,Y	; parameter #1
B9:D2AF 29 00 FF 	AND #$FF00
B9:D2B2 18 		CLC
B9:D2B3 75 38 		ADC $38,X
B9:D2B5 95 38 		STA $38,X 	; variable $38 (image display period)
B9:D2B7 10 0D 		BPL $D2C6
B9:D2B9 C8 		INY
B9:D2BA C8 		INY
B9:D2BB C8 		INY
B9:D2BC C8 		INY
B9:D2BD C8 		INY
B9:D2BE C8 		INY
B9:D2BF C8 		INY
B9:D2C0 C8 		INY
B9:D2C1 C8 		INY
B9:D2C2 C8 		INY
B9:D2C3 4C 15 D1 	JMP $D115 	; if image display period has been over, no operation and execute next command
B9:D2C6 B9 02 00 	LDA $0002,Y	; parameter #2
B9:D2C9 95 1A 		STA $1A,X 	; store to variable $1A (next image address)
B9:D2CB AF 6C 00 00 	LDA $00:006C
B9:D2CF F0 28 		BEQ $D2F9
B9:D2D1 AA 		TAX
B9:D2D2 AF 93 05 00 	LDA $00:0593
B9:D2D6 C5 64 		CMP $64
B9:D2D8 D0 1F 		BNE $D2F9
B9:D2DA B9 06 00 	LDA $0006,Y	; parameter #4
B9:D2DD 18 		CLC
B9:D2DE 6F 72 0D 00 	ADC $00:0D72
B9:D2E2 8F 76 0D 00 	STA $00:0D76
B9:D2E6 B9 08 00 	LDA $0008,Y	; parameter #5
B9:D2E9 18 		CLC
B9:D2EA 6F 74 0D 00 	ADC $00:0D74
B9:D2EE 8F 78 0D 00 	STA $00:0D78
B9:D2F2 B9 04 00 	LDA $0004,Y	; parameter #3
B9:D2F5 95 1A 		STA $1A,X 	; store to variable $1A (next image address)
B9:D2F7 74 3A 		STZ $3A,X	; initialize $3A (animation controll)
B9:D2F9 A6 64 		LDX $64
B9:D2FB 98 		TYA
B9:D2FC 18 		CLC
B9:D2FD 69 0A 00 	ADC #$000A
B9:D300 95 3C 		STA $3C,X	; store current animation address to variable $3C
B9:D302 4C 3D D1 	JMP $D13D