C_FLAG				equ		&01
N_FLAG				equ		&02
V_FLAG				equ		&04
H_FLAG				equ		&10
Z_FLAG				equ		&40
S_FLAG				equ		&80
IFF_IFLAG			equ		0
IFF_NMI				equ		1
IFF_HALT			equ		2
CPU_SIZE			equ		(56 + 16)
CPU_STAT			equ		(0 - CPU_SIZE)
CPU_EXT				equ		(56 - CPU_SIZE)
CPU_BC				equ		CPU_STAT + 0
CPU_DE				equ		CPU_STAT + 2
CPU_HL				equ		CPU_STAT + 4
CPU_IX				equ		CPU_STAT + 6
CPU_IY				equ		CPU_STAT + 8
_CPU_AF				equ		CPU_STAT + 10			; shadow
_CPU_SP				equ		CPU_STAT + 12			; shadow
_CPU_PC				equ		CPU_STAT + 14			; shadow
CPU_AF2				equ		CPU_STAT + 16
CPU_BC2				equ		CPU_STAT + 18
CPU_DE2				equ		CPU_STAT + 20
CPU_HL2				equ		CPU_STAT + 22
_CPU_IFF			equ		CPU_STAT + 24			; shadow
; CPU_I				equ		CPU_STAT + 25
; CPU_IM			equ		CPU_STAT + 26
; CPU_R1			equ		CPU_STAT + 27
CPU_R2				equ		CPU_STAT + 28
CPU_IRQ				equ		CPU_STAT + 32
CPU_REQIRQ			equ		CPU_STAT + 36
CPU_REMCLOCK		equ		CPU_STAT + 40
CPU_BASECLOCK		equ		CPU_STAT + 44
; cpu_clock			equ		CPU_STAT + 48
; cpu_stat_size		equ		52
CPU_C				equ		CPU_STAT + 0
CPU_B				equ		CPU_STAT + 1
CPU_E				equ		CPU_STAT + 2
CPU_D				equ		CPU_STAT + 3
CPU_L				equ		CPU_STAT + 4
CPU_H				equ		CPU_STAT + 5
CPU_IXL				equ		CPU_STAT + 6
CPU_IXH				equ		CPU_STAT + 7
CPU_IYL				equ		CPU_STAT + 8
CPU_IYH				equ		CPU_STAT + 9
; CPU_F				equ		CPU_STAT + 10
; CPU_A				equ		CPU_STAT + 11
CPU_MEMREAD			equ		CPU_EXT + 0
CPU_MEMWRITE		equ		CPU_EXT + 4
CPU_MEMBASE			equ		CPU_EXT + 8
; cpu_ext_size		equ		12
CPU_SZPFLAG			equ		0
CPU_INCFLAG			equ		256
CPU_DECFLAG			equ		512
	MACRO
$label	Z80WORK	$c
$label		sub		r10, r10, $c
	MEND
	MACRO
$label	MEMRD8	$r, $m
$label		tst		$m, #&8000
			ldrne	r12, [r7, #CPU_MEMBASE]
			ldreq	r12, [r7, #CPU_MEMREAD]
			ldrb	$r, [r12, $m]
	MEND
	MACRO
$label	MEMWR8	$m, $v
$label		tst		$m, #&8000
			ldrne	r12, [r7, #CPU_MEMBASE]
			ldreq	r12, [r7, #CPU_MEMWRITE]
			strb	$v, [r12, $m]
	MEND
	MACRO
$label	MEMLEA8	$m, $s, $d
$label		tst		$m, #&8000
			ldrne	$s, [r7, #CPU_MEMBASE]
			ldreq	$s, [r7, #CPU_MEMREAD]
			movne	$d, $s
			ldreq	$d, [r7, #CPU_MEMWRITE]
	MEND
	MACRO
$label	GETPC8
$label		tst		r9, #(&8000 << 16)
			ldrne	r12, [r7, #CPU_MEMBASE]
			ldreq	r12, [r7, #CPU_MEMREAD]
			ldrb	r0, [r12, r9, lsr #16]
			add		r9, r9, #&10000
	MEND
	MACRO
$label	GETPC8S
$label		tst		r9, #(&8000 << 16)
			ldrne	r12, [r7, #CPU_MEMBASE]
			ldreq	r12, [r7, #CPU_MEMREAD]
			add		r0, r12, r9, lsr #16
			add		r9, r9, #&10000
			ldrsb	r0, [r0]
	MEND
	MACRO
$label	GETPC16
$label		mov		r0, r9, lsr #16
			add		r9, r9, #&20000
			bl		mem_read16
	MEND
	MACRO
$label	GETIPC	$r, $b
$label		tst		r9, #(&8000 << 16)
			ldrne	r12, [r7, #CPU_MEMBASE]
			ldreq	r12, [r7, #CPU_MEMREAD]
			ldrh	r0, [r7, #$b]
			ldrb	r1, [r12, r9, lsr #16]
			add		r9, r9, #&10000
			tst		r1, #&80
			addne	r1, r1, #&ff00
			add		r1, r1, r0
			bic		$r, r1, #&10000
	MEND
	END
RetroPC.NET-CVS <cvs@retropc.net>