;**********************************************************************
;*          Modo no.7 examination main program                        *
;**********************************************************************
		include	../tools/rp5a22
		include ../tools/rp5c77
;;**********************************************************************
		data
;**********************************************************************
nmi_control	equ	00h
nmi_flag	equ	01h
;**********************************************************************
;
		prog
;
Reset
;		include	../tools/x_reset
;
		jsr	!Initiarize_prosses
		jsr	!Wait_NMI
;
Main_loop
;
		jsr     !Wait_NMI
		bra	Main_loop
;
Initiarize_prosses
		rts
;**********************************************************************
NMI
		rep	#00110000b
		mem16
		idx16
		phb
		phk
		plb
		phd
		pha
		phx
		phy
		lda	#00h
		tcd	
		sep	#00110000b
		mem8
		idx8
		lda	!NMI_status
		sta	<nmi_flag
;
		jsr	!NMI_prosses
;
		rep	#00110000b
		mem16
		idx16
		ply
		plx
		pla
		pld
		plb
		rti
;
;**********************************************************************
NMI_prosses
		mem8
		idx8
		rts
;**********************************************************************
;*			Wait NMI for sfx                              *
;**********************************************************************
		mem8
Wait_NMI
		lda	<nmi_control
		ora	#10000000b
		sta	!NMI_control
		and	#01111111b
		lsr	<nmi_flag
wait_nmi
		bit	<nmi_flag
		bpl	wait_nmi
		sta	!NMI_control
		rts
;**********************************************************************

		org	0ffeah
		word	NMI  
		org	0fffch
		word	Reset
;
		end
