File:
[RetroPC.NET] /
np2 /
i286a /
i286aea.inc
Revision
1.4:
download - view:
text,
annotated -
select for diffs
Mon Dec 22 19:24:50 2003 JST (21 years, 10 months ago) by
yui
Branches:
MAIN
CVS tags:
VER_0_82_x64,
VER_0_82,
VER_0_81A,
VER_0_81,
VER_0_80,
VER_0_79,
VER_0_78,
VER_0_77,
VER_0_76,
VER_0_75,
VER_0_74,
VER_0_73,
HEAD
fix i286a (T.Yui)
MACRO
$label GETPC8
$label ldr r0, [r9, #CPU_CS_BASE]
add r0, r0, r8 lsr #16
bl i286a_memoryread
add r8, r8, #(1 << 16)
MEND
MACRO
$label GETPC16
$label ldr r0, [r9, #CPU_CS_BASE]
add r0, r0, r8 lsr #16
bl i286a_memoryread_w
add r8, r8, #(2 << 16)
MEND
MACRO
$label GETR0
$label cmp r0, #I286_MEMWRITEMAX
ldrccb r0, [r0, r9]
blcs i286a_memoryread
MEND
MACRO
$label GETPCF8
$label add r0, r5, r8 lsr #16
cmp r0, #I286_MEMWRITEMAX
ldrccb r0, [r0, r9]
blcs i286a_memoryread
add r8, r8, #(1 << 16)
MEND
MACRO
$label GETPCF16
$label add r0, r5, r8 lsr #16
bl i286a_memoryread_w
add r8, r8, #(2 << 16)
MEND
MACRO
$label R8SRC $op, $out
$label and $out, $op, #3
tst $op, #(1 << 2)
add $out, r9, $out lsl #1
addne $out, $out, #1
MEND
MACRO
$label R8DST $op, $out
$label and $out, $op, #(6 << 2)
tst $op, #(1 << 5)
add $out, r9, $out lsr #2
addne $out, $out, #1
MEND
MACRO
$label EAREG8 $src
$label add r0, r5, r8 lsr #16
GETR0
and $src, r0, #(6 << 2)
add r8, r8, #(1 << 16)
add $src, r9, $src lsr #2
tst r0, #(1 << 5)
addne $src, $src, #1
MEND
MACRO
$label REG8EA $dst, $regclk, $memclk
$label add r0, r5, r8 lsr #16
GETR0
add r8, r8, #(1 << 16)
R8DST r0, $dst
cmp r0, #&c0
bcc $label.1
CPUWORK $regclk
R8SRC r0, r12
ldrb r0, [r12, #CPU_REG]
b $label.2
$label.1 CPUWORK $memclk
bl i286a_ea
bl i286a_memoryread
$label.2
MEND
MACRO
$label R16SRC $op, $out
$label and $out, $op, #7
add $out, r9, $out lsl #1
MEND
MACRO
$label R16DST $op, $out
$label and $out, $op, #(7 << 3)
add $out, r9, $out lsr #2
MEND
MACRO
$label EAREG16 $src
$label add r0, r5, r8 lsr #16
GETR0
and $src, r0, #(7 << 3)
add r8, r8, #(1 << 16)
add $src, r9, $src lsr #2
MEND
MACRO
$label REG16EA $dst, $regclk, $memclk
$label add r0, r5, r8 lsr #16
GETR0
and $dst, r0, #(7 << 3)
add r8, r8, #(1 << 16)
add $dst, r9, $dst lsr #2
cmp r0, #&c0
bcc $label.1
CPUWORK $regclk
R16SRC r0, r12
ldrh r0, [r12, #CPU_REG]
b $label.2
$label.1 CPUWORK $memclk
bl i286a_ea
bl i286a_memoryread_w
$label.2
MEND
END
RetroPC.NET-CVS <cvs@retropc.net>