File:  [RetroPC.NET] / np2 / i286a / i286a_i.s
Revision 1.2: download - view: text, annotated - select for diffs
Wed Dec 17 23:04:43 2003 JST (21 years, 10 months ago) by yui
Branches: MAIN
CVS tags: HEAD
fix i286a (T.Yui)


	INCLUDE		i286a.inc

	IMPORT		i286core
	IMPORT		i286_memorywrite_w
	EXPORT		i286a_localint

	AREA	.text, CODE, READONLY

				; r6 - num / r8 - IP / r11 - ret
i286a_localint	CPUWORK	#20
				ldrh	r4, [r9, #CPU_SP]
				ldr		r5, [r9, #CPU_SS_BASE]
				mov		r4, r4 lsl #16
				sub		r4, r4, #(2 << 16)
				add		r0, r5, r4 lsr #16
				mov		r1, r8
				bl		i286_memorywrite_w
				sub		r4, r4, #(2 << 16)
				add		r0, r5, r4 lsr #16
				ldrh	r1, [r9, #CPU_CS]
				bl		i286_memorywrite_w
				sub		r4, r4, #(2 << 16)
				mov		r4, r4 lsr #16
				add		r0, r4, r5
				mov		r1, r8 lsr #16
				strh	r4, [r9, #CPU_SP]
				sub		r8, r8, r1 lsl #16
				bl		i286_memorywrite_w
				mov		r0, #0
				strb	r0, [r9, #CPU_TRAP]
				ldr		r1, [r9, r6 lsl #2]
				bic		r8, r8, #(T_FLAG + I_FLAG)
				mov		r0, r1 lsr #16
				orr		r8, r8, r1 lsl #16
				mov		r2, r0 lsl #4
				strh	r0, [r9, #CPU_CS]
				str		r2, [r9, #CPU_CS_BASE]
				mov		pc, r11

	END


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