Mercurial > repos > blastem
diff zruntime.S @ 284:ed7098f717d7
Implement IN and OUT (untested)
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 04 May 2013 15:58:15 -0700 |
parents | 44f0bbf57b4f |
children | 021aeb6df19b |
line wrap: on
line diff
--- a/zruntime.S Sat May 04 15:15:55 2013 -0700 +++ b/zruntime.S Sat May 04 15:58:15 2013 -0700 @@ -1,3 +1,14 @@ +z_inccycles_io: + cmp %edi, %ebp + jnb do_limit +no_sync_io: + add $4, %ebp + ret +do_limit_io: + cmp 112(%rsi), %ebp + jb no_sync_io + jmp sync_io + z_inccycles: cmp %edi, %ebp jnb do_limit @@ -7,6 +18,7 @@ do_limit: cmp 112(%rsi), %ebp jb no_sync +sync_io: call z80_save_context_scratch pop %rax /*return address in read/write func*/ pop 104(%rsi) /*return address in native code*/ @@ -180,6 +192,19 @@ call z_inccycles call z80_write_byte_noinc ret + + .global z80_io_read +z80_io_read: + call z_inccycles_io + /* genesis Z80 has no IO port hardware and always returns FF */ + mov $0xFF, %r13 + ret + + .global z80_io_write +z80_io_write: + call z_inccycles_io + /* genesis Z80 has no IO port hardware and writes have no effect */ + ret .global z80_retrans_stub z80_retrans_stub: