Mercurial > repos > blastem
diff zruntime.S @ 290:171f97e70d85
Implement writes from Z80 to YM-2612
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 06 May 2013 00:54:58 -0700 |
parents | 021aeb6df19b |
children | 14a937097c2b |
line wrap: on
line diff
--- a/zruntime.S Mon May 06 00:22:24 2013 -0700 +++ b/zruntime.S Mon May 06 00:54:58 2013 -0700 @@ -90,6 +90,8 @@ jb z80_read_ram cmp $0x8000, %r13w jae z80_read_bank + cmp $0x6000, %r13w + jb z80_read_ym2612 /* TODO: Bank reg, YM-2612, PSG/VDP */ mov $0xFF, %r13b ret @@ -108,6 +110,15 @@ slow_bank_read: /* TODO: Call into C to implement this */ ret +z80_read_ym2612: + call z80_save_context + mov %r13w, %di + push %rsi + call z80_read_ym + pop %rsi + mov %al, %r13b + call z80_load_context + ret .global z80_write_byte z80_write_byte: @@ -118,7 +129,9 @@ cmp $0x8000, %r14w jae z80_write_bank cmp $0x6000, %r14w - je z80_write_bank_reg + jb z80_write_ym2612 + cmp $0x6100, %r14w + jb z80_write_bank_reg /* TODO: YM-2612, PSG/VDP */ ret z80_write_ram: @@ -146,6 +159,15 @@ slow_bank_write: /* TODO: Call into C to implement this */ ret +z80_write_ym2612: + and $0x3, %r14w + call z80_save_context + mov %r14w, %di + mov %r13b, %dl + call z80_write_ym + mov %rax, %rsi + call z80_load_context + ret z80_write_bank_reg: and $1, %r13w shr %r15w