Mercurial > repos > blastem
comparison z80.cpu @ 1727:9ea0b4cc8f02
Implemented BIT instruction in new Z80 core and fixed a bunch of WZ register calculations
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 02 Feb 2019 15:10:18 -0800 |
parents | 4f064b575e57 |
children | b0e01e64d76d |
comparison
equal
deleted
inserted
replaced
1726:4f064b575e57 | 1727:9ea0b4cc8f02 |
---|---|
224 00110110 ld_to_hl_immed | 224 00110110 ld_to_hl_immed |
225 z80_fetch_immed | 225 z80_fetch_immed |
226 z80_store_hl | 226 z80_store_hl |
227 | 227 |
228 00001010 ld_a_from_bc | 228 00001010 ld_a_from_bc |
229 lsl b 8 scratch1 | 229 lsl b 8 wz |
230 or c scratch1 scratch1 | 230 or c wz wz |
231 mov wz scratch1 | |
232 add 1 wz wz | |
231 ocall read_8 | 233 ocall read_8 |
232 mov scratch1 a | 234 mov scratch1 a |
233 | 235 |
234 00011010 ld_a_from_de | 236 00011010 ld_a_from_de |
235 lsl d 8 scratch1 | 237 lsl d 8 wz |
236 or e scratch1 scratch1 | 238 or e wz wz |
239 mov wz scratch1 | |
240 add 1 wz wz | |
237 ocall read_8 | 241 ocall read_8 |
238 mov scratch1 a | 242 mov scratch1 a |
239 | 243 |
240 00111010 ld_a_from_immed | 244 00111010 ld_a_from_immed |
241 z80_fetch_immed16 | 245 z80_fetch_immed16 |
242 mov wz scratch1 | 246 mov wz scratch1 |
247 add 1 wz wz | |
243 ocall read_8 | 248 ocall read_8 |
244 mov scratch1 a | 249 mov scratch1 a |
245 | 250 |
246 00000010 ld_a_to_bc | 251 00000010 ld_a_to_bc |
252 local tmp 8 | |
247 lsl b 8 scratch2 | 253 lsl b 8 scratch2 |
248 or c scratch2 scratch2 | 254 or c scratch2 scratch2 |
249 mov a scratch1 | 255 mov a scratch1 |
256 add c 1 tmp | |
257 lsl a 8 wz | |
258 or tmp wz wz | |
250 ocall write_8 | 259 ocall write_8 |
251 | 260 |
252 00010010 ld_a_to_de | 261 00010010 ld_a_to_de |
262 local tmp 8 | |
253 lsl d 8 scratch2 | 263 lsl d 8 scratch2 |
254 or e scratch2 scratch2 | 264 or e scratch2 scratch2 |
255 mov a scratch1 | 265 mov a scratch1 |
266 add e 1 tmp | |
267 lsl a 8 wz | |
268 or tmp wz wz | |
256 ocall write_8 | 269 ocall write_8 |
257 | 270 |
258 00110010 ld_a_to_immed | 271 00110010 ld_a_to_immed |
272 local tmp 16 | |
259 z80_fetch_immed16 | 273 z80_fetch_immed16 |
260 mov wz scratch2 | 274 mov wz scratch2 |
261 mov a scratch1 | 275 mov a scratch1 |
276 add 1 wz wz | |
262 ocall write_8 | 277 ocall write_8 |
278 and 0xFF wz wz | |
279 lsl a 8 tmp | |
280 or tmp wz wz | |
263 | 281 |
264 ed 01000111 ld_i_a | 282 ed 01000111 ld_i_a |
265 mov a i | 283 mov a i |
266 cycles 1 | 284 cycles 1 |
267 | 285 |
303 mov scratch1 low | 321 mov scratch1 low |
304 add 1 wz wz | 322 add 1 wz wz |
305 mov wz scratch1 | 323 mov wz scratch1 |
306 ocall read_8 | 324 ocall read_8 |
307 mov scratch1 high | 325 mov scratch1 high |
326 add 1 wz wz | |
308 | 327 |
309 00101010 ld_hl_from_immed | 328 00101010 ld_hl_from_immed |
310 meta low l | 329 meta low l |
311 meta high h | 330 meta high h |
312 z80_fetch16_from_immed | 331 z80_fetch16_from_immed |
334 add 1 wz wz | 353 add 1 wz wz |
335 mov wz scratch1 | 354 mov wz scratch1 |
336 ocall read_8 | 355 ocall read_8 |
337 lsl scratch1 8 scratch1 | 356 lsl scratch1 8 scratch1 |
338 or scratch1 reg reg | 357 or scratch1 reg reg |
358 add 1 wz wz | |
339 | 359 |
340 ed 01111011 ld_sp_from_immed | 360 ed 01111011 ld_sp_from_immed |
341 meta reg sp | 361 meta reg sp |
342 z80_fetch_reg16_from_immed | 362 z80_fetch_reg16_from_immed |
343 | 363 |
356 ocall write_8 | 376 ocall write_8 |
357 add 1 wz wz | 377 add 1 wz wz |
358 mov wz scratch2 | 378 mov wz scratch2 |
359 mov h scratch1 | 379 mov h scratch1 |
360 ocall write_8 | 380 ocall write_8 |
381 add 1 wz wz | |
361 | 382 |
362 z80_regpair_to_immed | 383 z80_regpair_to_immed |
363 z80_fetch_immed16 | 384 z80_fetch_immed16 |
364 mov wz scratch2 | 385 mov wz scratch2 |
365 mov low scratch1 | 386 mov low scratch1 |
366 ocall write_8 | 387 ocall write_8 |
367 add 1 wz wz | 388 add 1 wz wz |
368 mov high scratch1 | 389 mov high scratch1 |
369 mov wz scratch2 | 390 mov wz scratch2 |
370 ocall write_8 | 391 ocall write_8 |
392 add 1 wz wz | |
371 | 393 |
372 ed 01000011 ld_bc_to_immed | 394 ed 01000011 ld_bc_to_immed |
373 meta low c | 395 meta low c |
374 meta high b | 396 meta high b |
375 z80_regpair_to_immed | 397 z80_regpair_to_immed |
393 | 415 |
394 11111001 ld_sp_hl | 416 11111001 ld_sp_hl |
395 cycles 2 | 417 cycles 2 |
396 lsl h 8 sp | 418 lsl h 8 sp |
397 or l sp sp | 419 or l sp sp |
398 mov wz scratch2 | |
399 mov sp scratch1 | |
400 ocall write_8 | |
401 add 1 wz wz | |
402 lsr sp 8 scratch1 | |
403 mov wz scratch2 | |
404 ocall write_8 | |
405 | 420 |
406 z80_push | 421 z80_push |
407 cycles 1 | 422 cycles 1 |
408 sub 1 sp sp | 423 sub 1 sp sp |
409 mov sp scratch2 | 424 mov sp scratch2 |
1698 local tmp 8 | 1713 local tmp 8 |
1699 z80_srl_index tmp | 1714 z80_srl_index tmp |
1700 | 1715 |
1701 fdcb 00111RRR srl_iyd_reg | 1716 fdcb 00111RRR srl_iyd_reg |
1702 z80_srl_index main.R | 1717 z80_srl_index main.R |
1718 | |
1719 cb 01BBBRRR bit_reg | |
1720 local tmp 8 | |
1721 lsl 1 B tmp | |
1722 mov main.R last_flag_result | |
1723 and main.R tmp tmp | |
1724 update_flags SZH1PN0 | |
1725 | |
1726 cb 01BBB110 bit_hl | |
1727 local tmp 8 | |
1728 z80_fetch_hl | |
1729 lsl 1 B tmp | |
1730 lsr wz 8 last_flag_result | |
1731 and scratch1 tmp tmp | |
1732 update_flags SZH1PN0 | |
1733 | |
1734 | |
1735 ddcb 01BBBRRR bit_ixd | |
1736 local tmp 8 | |
1737 mov wz scratch1 | |
1738 ocall read_8 | |
1739 cycles 1 | |
1740 lsl 1 B tmp | |
1741 lsr wz 8 last_flag_result | |
1742 and scratch1 tmp tmp | |
1743 update_flags SZH1PN0 | |
1744 | |
1745 fdcb 01BBBRRR bit_iyd | |
1746 local tmp 8 | |
1747 mov wz scratch1 | |
1748 ocall read_8 | |
1749 cycles 1 | |
1750 lsl 1 B tmp | |
1751 lsr wz 8 last_flag_result | |
1752 and scratch1 tmp tmp | |
1753 update_flags SZH1PN0 |