summaryrefslogtreecommitdiff
path: root/z80.cpu
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2019-02-02 20:43:20 -0800
committerMichael Pavone <pavone@retrodev.com>2019-02-02 20:43:20 -0800
commit7b52486266a9eb523e699831c6f721d1da365d03 (patch)
tree695b0d1459d50b4688c6d4058b245c5042e95275 /z80.cpu
parenteb634f4fb3f0253965f15ed0655fcfea437b6f41 (diff)
Implemented DD/FD prefixes for EX in new Z80 core
Diffstat (limited to 'z80.cpu')
-rw-r--r--z80.cpu43
1 files changed, 40 insertions, 3 deletions
diff --git a/z80.cpu b/z80.cpu
index 0c86d08..8b589ce 100644
--- a/z80.cpu
+++ b/z80.cpu
@@ -666,13 +666,50 @@ fd 11100001 pop_iy
cycles 1
mov sp scratch2
ocall write_8
- add 1 sp wz
- mov wz scratch1
+ add 1 sp scratch1
ocall read_8
xchg h scratch1
cycles 2
- mov wz scratch2
+ add 1 sp scratch2
+ ocall write_8
+ lsl h 8 wz
+ or l wz wz
+
+dd 11100011 ex_sp_ix
+ mov sp scratch1
+ ocall read_8
+ mov scratch1 wz
+ mov ix scratch1
+ cycles 1
+ mov sp scratch2
+ ocall write_8
+ add 1 sp scratch1
+ ocall read_8
+ lsl scratch1 8 scratch1
+ or scratch1 wz wz
+ lsr ix 8 scratch1
+ cycles 2
+ add 1 sp scratch2
+ ocall write_8
+ mov wz ix
+
+fd 11100011 ex_sp_iy
+ mov sp scratch1
+ ocall read_8
+ mov scratch1 wz
+ mov iy scratch1
+ cycles 1
+ mov sp scratch2
+ ocall write_8
+ add 1 sp scratch1
+ ocall read_8
+ lsl scratch1 8 scratch1
+ or scratch1 wz wz
+ lsr iy 8 scratch1
+ cycles 2
+ add 1 sp scratch2
ocall write_8
+ mov wz iy
10000RRR add_reg
add a main.R a