comparison z80.cpu @ 1742:6290c88949bd

Fixed CPI/CPD/CPIR/CPDR in new Z80 core
author Michael Pavone <pavone@retrodev.com>
date Mon, 04 Feb 2019 23:46:35 -0800
parents 3dbfb4524ad2
children a1663a83dcab
comparison
equal deleted inserted replaced
1741:3dbfb4524ad2 1742:6290c88949bd
2125 end 2125 end
2126 2126
2127 z80_cpd_cpi 2127 z80_cpd_cpi
2128 local tmp 16 2128 local tmp 16
2129 local tmp8 8 2129 local tmp8 8
2130 local hf 8
2130 arg change 16 2131 arg change 16
2131 2132
2132 z80_fetch_mod_hl change 2133 z80_fetch_mod_hl change
2133 sub scratch1 a tmp8 2134 sub scratch1 a tmp8
2134 update_flags SZHXN1 2135 update_flags SZHN1
2136
2137 lsr chflags 3 hf
2138 and 1 hf hf
2139
2140 sub hf tmp8 tmp8
2141 update_flags X
2135 2142
2136 and 0x2 tmp8 tmp8 2143 and 0x2 tmp8 tmp8
2137 lsl tmp8 4 tmp8 2144 lsl tmp8 4 tmp8
2138 and 0x88 last_flag_result last_flag_result 2145 and 0x88 last_flag_result last_flag_result
2139 or tmp8 last_flag_result last_flag_result 2146 or tmp8 last_flag_result last_flag_result
2157 2164
2158 ed 10110001 cpir 2165 ed 10110001 cpir
2159 z80_cpd_cpi 1 2166 z80_cpd_cpi 1
2160 if pvflag 2167 if pvflag
2161 2168
2169 if zflag
2170
2171 else
2172
2162 add 1 pc wz 2173 add 1 pc wz
2163 sub 2 pc pc 2174 sub 2 pc pc
2164 cycles 5 2175 cycles 5
2165 2176
2166 end 2177 end
2178 end
2167 2179
2168 ed 10111001 cpdr 2180 ed 10111001 cpdr
2169 z80_cpd_cpi -1 2181 z80_cpd_cpi -1
2170 if pvflag 2182 if pvflag
2171 2183
2184 if zflag
2185
2186 else
2187
2172 add 1 pc wz 2188 add 1 pc wz
2173 sub 2 pc pc 2189 sub 2 pc pc
2174 cycles 5 2190 cycles 5
2175 2191
2192 end
2176 end 2193 end
2177 2194
2178 00100111 daa 2195 00100111 daa
2179 local diff 8 2196 local diff 8
2180 local tmp 8 2197 local tmp 8