
	;
	;	|@`WPUTv Vol0.5@|
	;			- H26.05/11. By KEYONN_
	;
	;
	;
	;-----------------------------------------------: 
		org	$000000
WC_Work:		ds	16			; vZ[NB
WNMI_Flag:		ds	1			; mlhƁEEE
WCon:			ds	2			; L[́B
Wtrg:			ds	2			; gḰB


		org	$000100
SP_Add:			
SP00_X:			ds	1
SP00_Y:			ds	1
SP00_NO:		ds	1
SP00_ATT		ds	1

SP01_X:			ds	1
SP01_Y:			ds	1
SP01_NO:		ds	1
SP01_ATT		ds	1

SP02_X:			ds	1
SP02_Y:			ds	1
SP02_NO:		ds	1
SP02_ATT		ds	1

SP03_X:			ds	1
SP03_Y:			ds	1
SP03_NO:		ds	1
SP03_ATT		ds	1

SP04_X:			ds	1
SP04_Y:			ds	1
SP04_NO:		ds	1
SP04_ATT		ds	1



WSP_PXY:		ds	2			; {WB
WSP_PY:			ds	2
			ds	4*126

SP_X:			ds	1
SP_Y:			ds	1

		org	$008000
	;-----------------------------------------------: 
NMI_Jump:	sep.b	%00100000			; mlh荞݁B
		inc	!WNMI_Flag			; mlhƁEEE
		pha
		lda	@$4210
		pla
		rti
Copro_Address:	rti					; Rvߊ荞݁B
Break_Address:	rti					; uCNߊ荞݁B
IRQ_Select:	rti					; hqp荞݁B

	;-----------------------------------------------: 
W_NMI:		lda	@$4200				; mlh҂B
		ora.b	%10000001
		sta	@$4200
		stz	!WNMI_Flag
_W_NMI_00:	lda	!WNMI_Flag
		beq	_W_NMI_00
		rts
WSP_Set:	ldx.w	$0000				; SP Set.
		stx	@$2102
		stz	@$4300
		lda.b	004h
		sta	@$4301
		ldx.w	SP_Add
		stx	@$4302
		lda.b	000h
		sta	@$4304
		ldx.w	00220h
		stx	@$4305
		lda.b	00000001b
		sta	@$420B
		rts



WContRead:	lda	@$4212				; Reading?
		lsr	a
		bcs	WContRead
		rep.b	%00100000			; [ A ] 16Bit.
		lda	@$4218				; 1P Key Read.
		eor	!WCon				; L[́B
		and	@$4218
		and.w	$FFF0
		sta	!Wtrg				; gḰB
		lda	@$4218
		and.w	$FFF0
		sta	!WCon
		lda.w	$0000
		sep.b	%00100000			; [ A ] 8Bit.
		rts


	;-----------------------------------------------: 
Reset_Address:	sei					; Zbg̃X^`gAhXB
		clc					; UTWPU`hցB
		xce
		sep.b	%00100000			; [ A ] 8Bit.
		rep.b	%00011000			; [ X,Y ] 16Bit & DCB Off.
		stz	@$420B
		stz	@$420C
		ldx.w	01FFFh
		txs
		ldx.w	$0000				; [ DR ] = 0000H
		phx
		pld
		lda.b	$00
		pha
		plb					; [ DB ] = 00H

		lda.b	08Fh				; SFC Init.
		sta	@$2100
		lda.b	%00000011			; $2101 8/16,6000H-
		sta	@$2101
		stz	@$2102
		stz	@$2103
		lda.b	%00001001			; $2105 BG3,Mode 1.
		sta	@$2105
		stz	@$2106
		stz	@$2107
		stz	@$2108
		lda.b	%01011000			; $2109 BG3:5800H-,1x1.
		sta	@$2109
		stz	@$210A
		stz	@$210B
		lda.b	$00				; $210C BG4,3:0000H-
		sta	@$210C

		stz	@$2111
		stz	@$2111
		stz	@$2112
		stz	@$2112

		lda.b	080h
		sta	@$2115
		stz	@$2116
		stz	@$2117
		stz	@$2121
		stz	@$2125
		stz	@$212C
		stz	@$212D
		stz	@$212E
		stz	@$212F
		lda.b	030h
		sta	@$2130
		stz	@$2131
		lda.b	00E0h
		sta	@$2132
		lda.b	000h
		sta	@$2133
		lda.b	000h
		sta	@$4200
		lda.b	0FFh
		sta	@$4201
		stz	@$4202
		stz	@$4203
		stz	@$4204
		stz	@$4205
		stz	@$4206
		stz	@$4207
		stz	@$4208
		stz	@$4209
		stz	@$420A
		stz	@$420D

		ldx.w	0000Ah				; DMA Clear.
_WR_00:		stz	@$4300,x
		stz	@$4310,x
		stz	@$4320,x
		stz	@$4330,x
		stz	@$4340,x
		stz	@$4350,x
		stz	@$4360,x
		stz	@$4370,x
		dex
		bpl	_WR_00

		stz	@$4200
		stz	@$420C
		lda.b	10000000b
		sta	@$2100

		ldx.w	01FFFh				; RAM Clear.
_WR_01:		stz	@$0000,x
		dex
		bpl	_WR_01

		ldx.w	$0000				; SP Clear.
		lda.b	0E0h
_WR_02:		sta	@SP_Add+0,x
		sta	@SP_Add+1,x
		inx
		inx
		inx
		inx
		cpx.w	00200h
		bcc	_WR_02
		ldx.w	00020h
_WR_02s:	stz	@SP_Add+2,x
		dex
		bpl	_WR_02s
		lda.b	080h				; V-Ram Init.
		sta	@$2115
		ldx.w	07FFFh
		stx	@$2116
_WR_03:		stz	@$2118
		stz	@$2119
		dex
		bpl	_WR_03

		stz	@$420B				; Color SET.
		lda.b	000h
		sta	@$2121
		stz	@$4300
		lda.b	022h
		sta	@$4301
		ldx.w	WColor
		stx	@$4302
		lda.b	000h
		sta	@$4304
		ldx.w	00200h
		stx	@$4305

		lda.b	080h				; BG4C Font SET.
		sta	@$2115
		ldx.w	$0000
		stx	@$2116
		lda.b	001h
		sta	@$4310
		lda.b	018h
		sta	@$4311
		ldx.w	W4CBGFont
		stx	@$4312
		lda.b	page W4CBGFont
		sta	@$4314
		ldx.w	02000h
		stx	@$4315
		lda.b	00000011b
		sta	@$420B

		lda.b	080h				; BGMap SET.
		sta	@$2115
		ldx.w	$5800
		stx	@$2116
		lda.b	001h
		sta	@$4310
		lda.b	018h
		sta	@$4311
		ldx.w	WBG_Map
		stx	@$4312
		lda.b	page WBG_Map
		sta	@$4314
		ldx.w	00800h
		stx	@$4315
		lda.b	00000011b
		sta	@$420B

		lda.b	080h				; SP Font SET.
		sta	@$2115
		ldx.w	$6000
		stx	@$2116
		lda.b	001h
		sta	@$4310
		lda.b	018h
		sta	@$4311
		ldx.w	WSPFont
		stx	@$4312
		lda.b	page WSPFont
		sta	@$4314
		ldx.w	04000h
		stx	@$4315
		lda.b	00000011b
		sta	@$420B





		lda.b 09h
		sta @SP00_NO
		
		lda.b 0Ah
		sta @SP01_NO
		
		lda.b 19h
		sta @SP02_NO
		
		lda.b 1Ah
		sta @SP03_NO





		;ldx.w	$1234				; B
		;stx	!RANDOM_Work+$00
		;ldx.w	$9876
		;stx	!RANDOM_Work+$02
		;stz	!RANDOM_Loop			; RND Loop.

		;jsr	WSCMInit			; B
		;lda.b	$FF
		;sta	!WAFlag				; ^]H
		;ldx.w	$0000
		;stx	!WATime

		;jsr	Start_Jump			; oB

		;jsr	MMatuLOGO			; M.Matuzaka\B

		lda.b	00Fh
		sta	@$2100
		lda.b	%00010100
		sta	@$212C

		nop
		nop
		nop

		ldx.w	$0000				; SP Clear.
		lda.b	0E0h
_WR_09:		sta	@SP_Add+0,x
		sta	@SP_Add+1,x
		inx
		inx
		inx
		inx
		cpx.w	00200h
		bcc	_WR_09
		ldx.w	00020h



WLoop:	jsr	W_NMI				; mlh҂B
		jsr	WSP_Set
		jsr	WContRead			; Reading?
		;jsr	MMatuLOGO			; M.Matuzaka\B
		jsr	ShowSprite
		nop
		nop
		nop
		bra	WLoop

		nop
		nop
		nop

ShowSprite:
		

MinusExpect:
		;lda.b @$2100
		;bpl MinusExpect
		;}CiXȂ(AV_Blank҂ȂƂH
	
		ldx.w 00h
then00:
		lda.b 128-16
		sta.b @SP00_X
		lda.b 112-16
		sta.b @SP00_Y
		

		lda.b 128-8
		sta.b @SP01_X
		lda.b 112-16
		sta.b @SP01_Y
		
		lda.b 128-16
		sta.b @SP02_X
		lda.b 112-8
		sta.b @SP02_Y

		lda.b 128-8
		sta.b @SP03_X
		lda.b 112-8
		sta.b @SP03_Y
		

		;ldx.b 01h
		;lda 136*256+128
		;sta @SP_Add,x
		
		;ldx.b 02h
		;lda 128*256+136
		;sta @SP_Add,x
		
		;ldx.b 03h
		;lda 136*256+136
		;sta @SP_Add,x
		
		
		rts
	;-----------------------------------------------: 
MMatuLOGODa:	dw	$D0B8,$3010,$D0C0,$3011,$D0C8,$3012,$D0D0,$3013
		dw	$D0D8,$3014,$D0E0,$3015,$D0E8,$3016,$D0F0,$3017
MMatuLOGO:	ldx.w	$0020-1				; M.Matuzaka\B
_MMatuLOGO_00:	lda	@MMatuLOGODa,x
		sta	@SP_Add+$1C0,x
		dex
		bpl	_MMatuLOGO_00
		rts





	;-----------------------------------------------: 
WColor:		bin	WA816_T.16C			; PUFFt@CB
W4CBGFont:	bin	WA816_T.4F			; SFtHgt@CB
WSPFont:	bin	WA816_T.SP			; PUFrot@CB
WBG_Map:	bin	WA816_T.MAP			; aflt@CB

	;-----------------------------------------------: 
		org	$00FFE4
		dw	Copro_Address			; Rvߊ荞݁B
		dw	Break_Address			; uCNߊ荞݁B
		dw	Reset_Address			; VXeُ튄荞݂łB
		dw	NMI_Jump			; mlh荞݁B
		dw	Reset_Address			; Zbg荞݁B
		dw	IRQ_Select			; hqp荞݁B
		org	$FFF4
		dw	Copro_Address			; Rvߊ荞݁B
		dw	Break_Address			; uCNߊ荞݁B
		dw	Reset_Address			; VXeُ튄荞݂łB
		dw	NMI_Jump			; mlh荞݁B
		dw	Reset_Address			; Zbg荞݁B
		dw	IRQ_Select			; hqp荞݁B

