File:  [RetroPC.NET] / xmil / nds / patch / iocored.s
Revision 1.1: download - view: text, annotated - select for diffs
Thu Mar 26 06:36:11 2009 JST (16 years, 7 months ago) by yui
Branches: MAIN
CVS tags: HEAD
added nds core


	.include	"./nds/ramptr.inc"
	.include	"./patch/iocore.inc"
	.include	"./vram/makescrn.inc"

	.global	dummy_inp
	.global	dummy_out

	.section	.itcm
	.code	32
	.align	2

dummy_inp:		mov		r0, #0xff
dummy_out:
.if INTERWORK
				bx		lr
.else
				mov		pc, lr
.endif

	.if 0

	.global	iocore_out
	.global	iocore_inp

	.section	.text
	.code	32
	.align	2

iocore_out:		ldr		r2, _iocore
				and		r12, r0, #0xff00
				ldrb	r3, [r2, #IOCORE_MODE]
				cmp		r3, #0
				bne		20f
				subs	r3, r0, #0x4000
				bcs		10f
				ldrcc	r12, [r2, r12, lsr #6]
				str		lr, [sp, #-4]!
				mov		lr, pc
				mov		pc, r12
				mov		r12, r12
				ldr		pc, [sp], #4

10:				ldr		r0, [r2, #(IOCORE2CRTC + CRTCE_GRAMACC)]
				ldr		r12, [r2, #(IOCORE2CRTC + _CRTCE_UPDATEBIT)]
				strb	r1, [r0, r3]
				and		r3, r3, r12, lsr #16
				add		r0, r2, #IOCORE2VRAMUPD
				ldrb	r1, [r0, r3]
				orr		r1, r1, r12
				strb	r12, [r2, #(IOCORE2CRTC + CRTCE_SCRNFLASH)]
				strb	r1, [r0, r3]
				mov		pc, lr
20:				bic		r3, r0, #0xc000
				ldr		r12, [r2, #(IOCORE2CRTC + CRTCE_GRAMACC)]
				mov		r0, r0, lsr #14
				cmp		r0, #1
				strneb	r1, [r12, r3]
				add		r3, r3, #0x4000
				cmp		r0, #2
				strneb	r1, [r3, r12]
				add		r3, r3, #0x4000
				cmp		r0, #3
				strneb	r1, [r3, r12]
				ldr		r1, [r2, #(IOCORE2CRTC + _CRTCE_UPDATEBIT)]
				and		r12, r3, r1, lsr #16
				add		r3, r2, #IOCORE2VRAMUPD
				strb	r1, [r2, #(IOCORE2CRTC + CRTCE_SCRNFLASH)]
				ldrb	r0, [r3, r12]
				orr		r0, r0, r1
				strb	r0, [r3, r12]
				mov		pc, lr

_iocore		.word	iocore - 0x100

iocore_inp:		ldr		r2, _iocore
				and		r3, r0, #0xff00
				strb	r3, [r2, #IOCORE_MODE]
				subs	r3, r3, #0x4000
				bcs		30f
				ldr		r12, [r2, r3, asr #6]
				str		lr, [sp, #-4]!
				mov		lr, pc
				mov		pc, r12
				mov		r12, r12
				ldr		pc, [sp], #4
30:				sub		r12, r0, #0x4000
				ldr		r1, [r2, #(IOCORE2CRTC + CRTCE_GRAMACC)]
				ldrb	r0, [r1, r12]
				mov		pc, lr
	.endif


	.end


RetroPC.NET-CVS <cvs@retropc.net>