diff options
author | Michael Pavone <pavone@retrodev.com> | 2019-01-29 23:56:48 -0800 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2019-01-29 23:56:48 -0800 |
commit | 62a92e53aa6a9657ee6435ecbe2965de2f4b061a (patch) | |
tree | 51a976399fa9901b54ee2709efb272a1d274acb3 /z80.cpu | |
parent | a8e3afb4499bd2f5a056ad38c1a8035695ad111d (diff) |
Implement 16-bit addition in new Z80 core along with necessary CPU DSL fixes to make them work right
Diffstat (limited to 'z80.cpu')
-rw-r--r-- | z80.cpu | 74 |
1 files changed, 74 insertions, 0 deletions
@@ -525,6 +525,43 @@ fd 11100001 pop_iy add a scratch1 a update_flags SZYHVXN0C +z80_add16_hl + arg src 16 + lsl h 8 hlt + or l hlt hlt + add 1 hlt wz + add src hlt hlt + update_flags YHXN0C + mov hlt l + lsr hlt 8 h + +00001001 add_hl_bc + local hlw 16 + local bcw 16 + meta hlt hlw + lsl b 8 bcw + or c bcw bcw + z80_add16_hl bcw + +00011001 add_hl_de + local hlw 16 + local dew 16 + meta hlt hlw + lsl d 8 dew + or e dew dew + z80_add16_hl dew + +00101001 add_hl_hl + local hlw 16 + meta hlt hlw + z80_add16_hl hlw + + +00111001 add_hl_sp + local hlw 16 + meta hlt hlw + z80_add16_hl sp + 10001RRR adc_reg adc a main.R a update_flags SZYHVXN0C @@ -538,6 +575,43 @@ fd 11100001 pop_iy z80_fetch_immed adc a scratch1 a update_flags SZYHVXN0C + +z80_adc16_hl + arg src 16 + lsl h 8 hlt + or l hlt hlt + add 1 hlt wz + adc src hlt hlt + update_flags SZYHVXN0C + mov hlt l + lsr hlt 8 h + +ed 01001010 adc_hl_bc + local hlw 16 + local bcw 16 + meta hlt hlw + lsl b 8 bcw + or c bcw bcw + z80_adc16_hl bcw + +ed 01011010 adc_hl_de + local hlw 16 + local dew 16 + meta hlt hlw + lsl d 8 dew + or e dew dew + z80_adc16_hl dew + +ed 01101010 adc_hl_hl + local hlw 16 + meta hlt hlw + z80_adc16_hl hlw + + +ed 01111010 adc_hl_sp + local hlw 16 + meta hlt hlw + z80_adc16_hl sp 10010RRR sub_reg sub main.R a a |