diff options
author | Mike Pavone <pavone@retrodev.com> | 2012-12-31 11:26:57 -0800 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2012-12-31 11:26:57 -0800 |
commit | 418dd74e406d2cd3134e5ecb175d4ae8b46e70e1 (patch) | |
tree | 5a9f3b06b73a8fb431707226be2853f557966709 /runtime.S | |
parent | 8dc3c22d3d0a2f34cd6321365761df66e32847f3 (diff) |
Fix VDP reads
Diffstat (limited to 'runtime.S')
-rw-r--r-- | runtime.S | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -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 |