Mercurial > repos > blastem
comparison z80.cpu @ 1730:71f7827ff30a
Implemented remaining DD/FD prefixes for LD in new Z80 core
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 02 Feb 2019 16:16:25 -0800 |
parents | bd13d017f16f |
children | 366b65d91614 |
comparison
equal
deleted
inserted
replaced
1729:bd13d017f16f | 1730:71f7827ff30a |
---|---|
173 mov scratch1 main.R | 173 mov scratch1 main.R |
174 | 174 |
175 01DDDSSS ld_from_reg | 175 01DDDSSS ld_from_reg |
176 mov main.S main.D | 176 mov main.S main.D |
177 | 177 |
178 dd 01DDD100 ld_from_ixh | |
179 invalid D 6 | |
180 lsr ix 8 main.D | |
181 | |
182 dd 01100SSS ld_to_ixh | |
183 invalid S 6 | |
184 local tmp 16 | |
185 and 0xFF ix ix | |
186 lsl main.S 8 tmp | |
187 or tmp ix ix | |
188 | |
189 dd 0110D10S ld_ixb_to_ixb | |
190 | |
191 dd 01DDD101 ld_from_ixl | |
192 invalid D 6 | |
193 mov ix main.D | |
194 | |
195 dd 01101SSS ld_to_ixl | |
196 invalid S 6 | |
197 and 0xFF00 ix ix | |
198 or main.S ix ix | |
199 | |
200 dd 01100101 ld_ixl_to_ixh | |
201 local tmp 16 | |
202 lsl ix 8 tmp | |
203 and 0xFF ix ix | |
204 or tmp ix ix | |
205 | |
206 dd 01101100 ld_ixh_to_ixl | |
207 local tmp 16 | |
208 lsr ix 8 tmp | |
209 and 0xFF00 ix ix | |
210 or tmp ix ix | |
211 | |
212 fd 01DDD100 ld_from_iyh | |
213 invalid D 6 | |
214 lsr iy 8 main.D | |
215 | |
216 fd 01100SSS ld_to_iyh | |
217 invalid S 6 | |
218 local tmp 16 | |
219 and 0xFF iy iy | |
220 lsl main.S 8 tmp | |
221 or tmp iy iy | |
222 | |
223 fd 0110D10S ld_iyb_to_iyb | |
224 | |
225 fd 01DDD101 ld_from_iyl | |
226 invalid D 6 | |
227 mov iy main.D | |
228 | |
229 fd 01101SSS ld_to_iyl | |
230 invalid S 6 | |
231 and 0xFF00 iy iy | |
232 or main.S iy iy | |
233 | |
234 fd 01100101 ld_iyl_to_iyh | |
235 local tmp 16 | |
236 lsl iy 8 tmp | |
237 and 0xFF iy iy | |
238 or tmp iy iy | |
239 | |
240 fd 01101100 ld_iyh_to_iyl | |
241 local tmp 16 | |
242 lsr iy 8 tmp | |
243 and 0xFF00 iy iy | |
244 or tmp iy iy | |
245 | |
178 z80_calc_index | 246 z80_calc_index |
179 arg index 16 | 247 arg index 16 |
180 mov index wz | 248 mov index wz |
181 z80_fetch_immed | 249 z80_fetch_immed |
182 sext 16 scratch1 scratch1 | 250 sext 16 scratch1 scratch1 |
202 mov scratch1 main.R | 270 mov scratch1 main.R |
203 | 271 |
204 00RRR110 ld_immed | 272 00RRR110 ld_immed |
205 z80_fetch_immed | 273 z80_fetch_immed |
206 mov scratch1 main.R | 274 mov scratch1 main.R |
275 | |
276 dd 00100110 ld_immed_ixh | |
277 z80_fetch_immed | |
278 lsl scratch1 8 scratch1 | |
279 and 0xFF ix ix | |
280 or scratch1 ix ix | |
281 | |
282 dd 00101110 ld_immed_ixl | |
283 z80_fetch_immed | |
284 and 0xFF00 ix ix | |
285 or scratch1 ix ix | |
286 | |
287 fd 00100110 ld_immed_iyh | |
288 z80_fetch_immed | |
289 lsl scratch1 8 scratch1 | |
290 and 0xFF iy iy | |
291 or scratch1 iy iy | |
292 | |
293 fd 00101110 ld_immed_iyl | |
294 z80_fetch_immed | |
295 and 0xFF00 iy iy | |
296 or scratch1 iy iy | |
207 | 297 |
208 01110RRR ld_to_hl | 298 01110RRR ld_to_hl |
209 mov main.R scratch1 | 299 mov main.R scratch1 |
210 z80_store_hl | 300 z80_store_hl |
211 | 301 |
222 ocall write_8 | 312 ocall write_8 |
223 | 313 |
224 00110110 ld_to_hl_immed | 314 00110110 ld_to_hl_immed |
225 z80_fetch_immed | 315 z80_fetch_immed |
226 z80_store_hl | 316 z80_store_hl |
317 | |
318 dd 00110110 ld_to_ixd_immed | |
319 z80_calc_index ix | |
320 z80_fetch_immed | |
321 cycles 2 | |
322 mov wz scratch2 | |
323 ocall write_8 | |
324 | |
325 fd 00110110 ld_to_iyd_immed | |
326 z80_calc_index iy | |
327 z80_fetch_immed | |
328 cycles 2 | |
329 mov wz scratch2 | |
330 ocall write_8 | |
227 | 331 |
228 00001010 ld_a_from_bc | 332 00001010 ld_a_from_bc |
229 lsl b 8 wz | 333 lsl b 8 wz |
230 or c wz wz | 334 or c wz wz |
231 mov wz scratch1 | 335 mov wz scratch1 |
378 mov wz scratch2 | 482 mov wz scratch2 |
379 mov h scratch1 | 483 mov h scratch1 |
380 ocall write_8 | 484 ocall write_8 |
381 add 1 wz wz | 485 add 1 wz wz |
382 | 486 |
487 dd 00100010 ld_ix_to_immed | |
488 z80_fetch_immed16 | |
489 mov wz scratch2 | |
490 mov ix scratch1 | |
491 ocall write_8 | |
492 add 1 wz wz | |
493 mov wz scratch2 | |
494 lsr ix 8 scratch1 | |
495 ocall write_8 | |
496 add 1 wz wz | |
497 | |
498 fd 00100010 ld_iy_to_immed | |
499 z80_fetch_immed16 | |
500 mov wz scratch2 | |
501 mov iy scratch1 | |
502 ocall write_8 | |
503 add 1 wz wz | |
504 mov wz scratch2 | |
505 lsr iy 8 scratch1 | |
506 ocall write_8 | |
507 add 1 wz wz | |
508 | |
383 z80_regpair_to_immed | 509 z80_regpair_to_immed |
384 z80_fetch_immed16 | 510 z80_fetch_immed16 |
385 mov wz scratch2 | 511 mov wz scratch2 |
386 mov low scratch1 | 512 mov low scratch1 |
387 ocall write_8 | 513 ocall write_8 |
415 | 541 |
416 11111001 ld_sp_hl | 542 11111001 ld_sp_hl |
417 cycles 2 | 543 cycles 2 |
418 lsl h 8 sp | 544 lsl h 8 sp |
419 or l sp sp | 545 or l sp sp |
546 | |
547 dd 11111001 ld_sp_ix | |
548 cycles 2 | |
549 mov ix sp | |
550 | |
551 fd 11111001 ld_sp_iy | |
552 cycles 2 | |
553 mov iy sp | |
420 | 554 |
421 z80_push | 555 z80_push |
422 cycles 1 | 556 cycles 1 |
423 sub 1 sp sp | 557 sub 1 sp sp |
424 mov sp scratch2 | 558 mov sp scratch2 |