From 418dd74e406d2cd3134e5ecb175d4ae8b46e70e1 Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Mon, 31 Dec 2012 11:26:57 -0800 Subject: Fix VDP reads --- runtime.S | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'runtime.S') diff --git a/runtime.S b/runtime.S index a383130..33d67a5 100644 --- a/runtime.S +++ b/runtime.S @@ -215,15 +215,22 @@ try_fifo_write: /* bail out if fifo is full */ je fifo_fallback /* populate FIFO entry */ - mov %cx, 4(%rbx) /* value */ - movb $0, 6(%rbx) /* partial */ + mov %cx, 6(%rbx) /* value */ + mov 16(%rdx), %cx + mov %cx, 4(%rbx) /* address */ + mov 18(%rdx), %cl + mov %cl, 8(%rbx) /* cd */ + movb $0, 9(%rbx) /* partial */ mov %eax, %ecx shl $3, %ecx /* multiply by 68K cycle by 7 to get MCLK cycle */ sub %eax, %ecx mov %ecx, (%rbx) /* cycle */ /* update fifo_cur and store back in 68K context */ - add $8, %rbx + add $12, %rbx mov %rbx, (%rdx) + /* update address register */ + movzbw 35(%rdx), %bx + add %bx, 16(%rdx) /* clear pending flag */ andb $0xEF, 19(%rdx) pop %rbx -- cgit v1.2.3