File:  [RetroPC.NET] / np2 / i286a / i286aio.inc
Revision 1.3: download - view: text, annotated - select for diffs
Sat Dec 20 19:27:55 2003 JST (21 years, 10 months ago) by yui
Branches: MAIN
CVS tags: HEAD
fix i286a (T.Yui)


; ---- cgwindow

	IMPORT	cgwindow

CGW_LOW				equ		0
CGW_HIGH			equ		4
CGW_WRITABLE		equ		8


; ---- dmac

	IMPORT	dmac

; DMACH_adrs		equ		0
; DMACH_leng		equ		4
; DMACH_adrsorg		equ		6
; DMACH_lengorg		equ		8
; DMACH_action		equ		10
; DMACH_outproc		equ		12
; DMACH_inproc		equ		16
; DMACH_extproc		equ		20
; DMACH_mode		equ		24
; DMACH_sreq		equ		25
; DMACH_ready		equ		26
; DMACH_mask		equ		27
DMACH_SIZE			equ		28

; DMA_dmach			equ		0
; DMA_lh			equ		(DMACH_SIZE * 4) + 0
; DMA_work			equ		(DMACH_SIZE * 4) + 4
DMAC_WORKING		equ		(DMACH_SIZE * 4) + 8
; DMA_mask			equ		(DMACH_SIZE * 4) + 12
; DMA_stat			equ		(DMACH_SIZE * 4) + 13


; ---- emm

	IMPORT	extmem

; em_maxmem			equ		0
EM_PAGEPTR			equ		4
; em_target			equ		20
; em_page			equ		24


; ---- gdc

	IMPORT	gdcs

; gdcs_access		equ		0
; gdcs_disp			equ		1
GDCS_TEXTDISP		equ		2
GDCS_MSWACC			equ		3
GDCS_GRPHDISP		equ		4
; gdcs_palchange	equ		5
; gdcs_mode2		equ		6


; ---- grcg

	IMPORT	grcg

; grcg_counter		equ		0
; grcg_mode			equ		4
GRCG_MODEREG		equ		6
GRCG_TILE			equ		8
; grcg_gdcwithgrcg	equ		16
; grcg_chip			equ		20


; ---- pic

	IMPORT	pic
	IMPORT	extirq_pop

; PI_levels			equ		0
; PI_level			equ		4
; PI_levelsbak		equ		12
; PI_levelbak		equ		16
; PI_pry			equ		24
; PI_icw			equ		32
PI_IMR				equ		36
; PI_ocw3			equ		37
; PI_irr			equ		38
; PI_ext			equ		39
; PI_isr			equ		40
; PI_isrbak			equ		41
; PI_writeicw		equ		42
; PI_padding		equ		43
PI_SIZE				equ		44

PIC_MASTER			equ		0
PIC_SLAVE			equ		PI_SIZE
PIC_EXTIRQ			equ		(PI_SIZE * 2)

	MACRO
$label	NOINTREXIT
$label		tst		r8, #I_FLAG
			moveq	pc, r11
			ldrb	r1, [r0, #PIC_EXTIRQ]
			ldr		r2, [r0, #(PIC_MASTER + PI_IMR)]
			mov		r12, #(&ff << 24)
			cmp		r1, #0
			movne	pc, r11
			ldr		r3, [r0, #(PIC_SLAVE + PI_IMR)]
			eor		r0, r12, r2 lsl #24
			tst		r0, r2 lsl #8
			eoreq	r0, r12, r3 lsl #24
			tsteq	r0, r3 lsl #8
			moveq	pc, r11
	MEND

	MACRO
$label	PICEXISTINTR	$noirq
$label		ldrb	r1, [r0, #PIC_EXTIRQ]
			ldr		r2, [r0, #(PIC_MASTER + PI_IMR)]
			mov		r12, #(&ff << 24)
			cmp		r1, #0
			bne		$noirq
			ldr		r3, [r0, #(PIC_SLAVE + PI_IMR)]
			eor		r0, r12, r2 lsl #24
			tst		r0, r2 lsl #8
			eoreq	r0, r12, r3 lsl #24
			tsteq	r0, r3 lsl #8
	MEND

	END


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